Installing and Running a GNU/Linux Environment on Any Android Device - <AUTHOR> https://www.xda-developers.com/guide-installing-and-running-a-gnulinux-environment-on-any-android-device/ <comment><USER2> _Some applications will refuse to run or will crash, usually due to the fact that some resources that are usually exposed on GNU /Linux systems are kept hidden by Android._

If your device is rooted, and you use chroot instead of proot, are any of those limitations lifted?

<comment><USER3> > If your device is rooted, and you use chroot instead of proot, are any of > those limitations lifted?

On a rooted Android device, beyond chroot you have to take additional steps -- remount the filesystem read/write, then begin replacing system binaries with ones that behave differently than the defaults. So it can be done, but it's more like a game of whack-a-mole than normal system reconfiguration.

</comment></comment><comment><USER4> To me this is just sidestepping the real issue: I want an actual Linux phone, not android. I want a phone that runs debian/ubuntu/rh/whatever. I know Ubuntu makes a phone, but their website says they are currently all sold out. I also think that they just recently started selling to the US.

<comment><USER5> There isn't anything decent out of the box, especially if you want to have a working LTE. You have two options. First, use Android kernel + blobs + libhybris, and on top of that install normal mobile glibc Linux distro.

Second option is the same thing, but using upstream kernel and open drivers. If you can succeed in that, it's the best.

Some pointers:

* [https://plasma-mobile.org](https://plasma-mobile.org)

* [https://talk.maemo.org/showthread.php?t=96932](https://talk.maemo.org/showthread.php?t=96932)

* [https://wiki.merproject.org/wiki/Adaptations/libhybris](https://wiki.merproject.org/wiki/Adaptations/libhybris)

Handsets are harder because of more specialized hardware. Tablets should be easier. I red, that Nexus 7 2013 (flo) should be almost ready to work with upstream kernel out of the box.

The impression I get is, that Nexus 5 / Neuxs 7 are closest to becoming usable that way.

</comment></comment><comment><USER5> This keeps all Android underneath though. A real way to do it, is to have hardware drivers, but mobile situation is so messed up, that they simply aren't available most of the time.

I saw some article a while ago, that Nexus 5 got better support upstream now. With Freedreno for graphics it sounds interesting. And it looks like brcmfmac should work for WiFi. Does anyone know if there are drivers that can replace other blobs there?

Here is a list that I found: [https://developers.google.com/android/drivers#hammerhead](https://developers.google.com/android/drivers#hammerhead)

<comment><USER6> Came here to say the same thing, the driver situation is something Google really let slide for too long instead of making life tough for vendors who didn't want to release the source, and yes I know that would have made it tough to get decent hardware on android devices, but you need to start somewhere.

<comment><USER5> Did you ever try running upstream kernel on Nexus 5? I have one to experiment, but not sure if it's even feasible at present. I'd try it, if there was a chance of success.

<comment><USER6> I have a Nexus 6 at present, I assumed that it was too hard/impossible to somehow get it working with an upstream kernel otherwise someone would already have done it, never owned a 5 though.

</comment></comment></comment></comment><comment><USER3> Personally, I think "Installing and Running a GNU/Linux Environment on Any Android Device" is a bit misleading. The GNU/Linux environment is just an application running alongside Android. There are a number of similar apps available for Android, most of them rely on chroot to accomplish what they do.

I wrote SSHelper, which does something similar (without using chroot) -- it provides Busybox and a command-line environment, but it's just an application, it doesn't replace Android. Using chroot creates a more complete environment, but all these solutions rely on Android being present in the background.

</comment><comment><USER7> Is there a way to use a desktop computer as the tty for the Debian instance and to run the scheduler on the Android device in active mode without keeping poking at the touchscreen?

I recently installed Ubuntu Touch hoping that I could turn my Nexus 5 into an ARM dev board, but power-save scheduling when usin the device via ssh made it useless for my use case: [http://askubuntu.com/questions/875625/how-to-make- ubuntu-tou...](http://askubuntu.com/questions/875625/how-to-make-ubuntu-touch- run-at-normal-speed-with-screen-turned-off)

<comment><USER8> > and to run the scheduler on the Android device in active mode without > keeping poking at the touchscreen?

Enable Developer Mode, there is a checkbox that allows you to keep the display powered as long as there is USB power.

</comment></comment><comment><USER9> Looks interesting but it wouldn't install on my Lenovo A7600F 10" tablet. I even went through the Google trouble shooting guide which involved trying to install at least another six times.

Error -24 every time.

Any ideas?

</comment><comment><USER10> Cool hack. Although there are already some nice terminals and IDEs on the Play store for Android. I wouldn't want to run Eclipse on my phone even though I like it a lot.

</comment><comment><USER8> Does anyone know a good PC-style keyboard for tablets?

Especially one that can send stuff like Ctrl+C to terminal emulators or to XSDL?

<comment><USER11> Are you looking for software (on-screen) keyboard or hardware keyboard?

Hacker's keyboard* is the go to keyboard if you are looking for a soft keyboard and want to work with terminals & SSH clients.

* [https://play.google.com/store/apps/details?id=org.pocketwork...](https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard&hl=en_GB)

<comment><USER8> On-screen. Very cool, thanks for the hint - the problem is that I don't want that keyboard for all the other apps. Can I pin a specific keyboard to a specific app (i.e. Hacker's keyboard to sshdroid + XSDL, and Google Keyboard to the rest)?

<comment><USER12> Nope, there can be only one active IME at a time: [https://developer.android.com/guide/topics/text/creating- inp...](https://developer.android.com/guide/topics/text/creating-input- method.html)</comment></comment></comment></comment>


Buxfer (YC W07) it is still working? - <AUTHOR> It seems like an awesome budget app-website but its clear their support and social media is zero...its funny because their competition is valued in millions. I cannot connect to a non US bank by the way <comment><USER2> Founder here.

Yes, Buxfer is still working.

Social media (and marketing efforts in general) are pretty scant.

Support is good though. Product updates are frequent. User feedback is considered precious and incorporated into the product frequently.

Please file a ticket through the website, or email support@ We occasionally review comments on Twitter/FB, but the direct channels will get you a faster response.

Sync with non-US bank: Please email support@ and we will work with you to figure out if that can be fixed.</comment>


Show HN: List Tool - a web app for comparing lists - <AUTHOR> http://skratchdot.github.com/list-tool/ Started really simple, but I spent a little extra time to use the Ace Editor, Web Workers, and give it a responsive design.
List Tool - http://skratchdot.github.com/list-tool/
Source Code - https://github.com/skratchdot/list-tool/ <comment><USER2> Very neat! I've been searching for WinMerge alternative ...</comment>


Energy Department Tells Scientist to Remove 'Climate Change' from Study - <AUTHOR> http://observer.com/2017/08/energy-department-censorship-scientists-climate-change/ <comment><USER2> This is, of course, outrageous. The Science Magazine version of the article has a bit more information. [http://www.sciencemag.org/news/2017/08/doe- denies-it-has-pol...](http://www.sciencemag.org/news/2017/08/doe-denies-it- has-policy-remove-climate-change-agency-materials) Of course, the DOE says they have no such policy, yadda yadda yadda.</comment>


Forget about Clean Code, Let's Embrace Compassionate Code - <AUTHOR> http://johannesbrodwall.com/2018/06/24/forget-about-clean-code-lets-embrace-compassionate-code/ <comment><USER2> This seems a like pointless nonsense piece.

What exactly am I supposed to take away from this?

>> Many who know me consider me an exceptionally skilled programmer.

Ugh, I don't get how someone can write that about themselves without curling up from the cringe.

Is his point that he disagrees with Uncle Bob (god I hate that nickname) about some political issue so we should stop trying to write clean, maintainable, testable code?

How are these two things even related. Or was the point of the blog just virtue signalling about immigration, loosely and nonsenically tied to coding?

That entire blog post seems to be something that doesn't need to exist.

<comment><USER3> One useful takeaway:

> When Clean Code becomes a source of less boring work, I'm for it. When it > becomes a source of frustration and guilt, I'm against it.</comment></comment>


Show HN: Bash-end – clean back end written in bash - <AUTHOR> http://bash-end.com/ <comment><USER2> Finally some competition for the BCHS stack [https://learnbchs.org/](https://learnbchs.org/)

</comment><comment><USER3> NOW WE NEED ONE IN PS/2</comment>


Ask YC: Exchange hosting? - <AUTHOR>

So our company has committed to going with Exchange.  Yes, we have looked at alternatives, don't really want to get into a discussion on that.<p>Just curious if anyone out there has a hosted Exchange provider that they would stand behind? <comment><USER2> I would not recommend Mailstreet, had mediocre experiences with them. I did have really good results with Intermedia though, so give them a shout.

</comment><comment><USER3> Timely for me as I am in the market for mail hosting as well. Saving this to see if anyone weighs in with useful info :)</comment>


When you see a product that is labeled as 'Beta', what goes through your mind? - <AUTHOR> https://twitter.com/yusuf_giftworks/status/1253830554274783234 <comment><USER2> Definitely on the excited _side_, though I rarely show emotion while visiting random websites. ;-)

I've noticed that "beta" can be an effective word to use while speaking from the dev side of things. It's even more effective while interfacing with non- tech-savvy types these days, because people are used to it. So the public sees "beta", but it's really only there because some internal process is a pain in the neck.

For example, if any given design approval process or other blocking organizational process is taking forever, you can say, "how about a beta. Are we OK to launch a beta?" And it's like the entire team can breathe again, without being quite as hung up on the launch concept. A beta! The public is OK when some things aren't quite finished, but still generally work!

In a lot of cases I'd guess very few people deeply GAF what the public thinks about that "beta" label, for the same reason--it's mostly about internal messaging and internal team psychology relief. And from there, discussions on quality and any fixes can continue in a friendlier way.

<comment><AUTHOR> I totally agree on the dev side of things.

It's just that I've been hearing from people lately that having a product labeled as beta is a turnoff to the non-tech-savvys, especially if it's a consumer product.

If it's a software for made for devs, I'd reckon devs would love to try anything on beta. Devs are really amazing problem solvers :)</comment></comment>


How to Write iOS Apps Without Xcode - <AUTHOR> https://medium.com/better-programming/writing-ios-apps-without-xcode-89450d0de21a <comment><USER2> [https://archive.is/rbbDE](https://archive.is/rbbDE)</comment>


Mexico decriminalizes small-scale drug possession - <AUTHOR> http://www.google.com/hostednews/ap/article/ALeqM5iP1GlMCOzYSi8kbAUY1lLDdqc4vAD9A70MDO0

<comment><USER2> My God. This means that the government wants to encourage consumption of drugs, creating a new legal market. This will of course make the small scale usage more spread, but again, from those that consume, who ever keeps great amount of drugs? Mexico has always served as the transit zone for drugs to the US, this will have created an encouragement for all to freely "try it out".

These are first steps to gain control of the drugs market, and a sign of government _greed_ They want people to consume more, as they have a great stake in it. This will also mean easier transport to the US, as dealers will be spread on every corner. The crime threshold has just been raised.

The governments are not against drugs, ethicality and that sort of cr*p. What they are pissed of is that they can't regulate such a $$$$$$$$$$$$$$$ market. These are the first steps towards that. If the government says it is ok, then I guess it is? Next thing will be complete legalization, with government taxing. Drugs will be toys for the very rich ones, and in some 50 years, I am sure we'll be able to get them from the supermarket shelf. History repeats itself, the modern prohibition.

Makes me sick.

<comment><USER3> I disagree. Portugal enabled a legislation similar to Mexico a couple of years ago and the drug consumption didn't get higher (I read about it in Newsweek about 3 months ago). Like Mexico, Portugal is also a route for drugs. Also, untill the first decades of 20th century drugs like cocaine and marijuana were legal in most countries in the world. And their consumption wasn't actually that high. In the US the biggest consumers of cocaine were the workers on docks (to endure the hard work), farmers' wives (to endure boredom) and doctors (because it was so easily available for them).

<comment><USER2> I am giving a second thought to this too. I remembered that article too. However, I find it difficult to believe this is the case in Mexico, a very corrupted country with high level of narcotics penetration. We can't predict the future, so I am interested in statistics. In two years we should have them I hope. But again, statistics can easily be manipulated, since it is mostly the government agencies feeding us this data. Let's see, I want to be wrong.</comment></comment></comment>


Show HN: Zammad – Open Source ticket system - <AUTHOR> https://zammad.com/ <comment><AUTHOR> We just published our new open source ticketing and customer service system.

Commercial page: [https://zammad.com/](https://zammad.com/) Source: [https://github.com/zammad/zammad](https://github.com/zammad/zammad) Org page: [https://zammad.org/](https://zammad.org/) Foundation page: [http://zammad- foundation.org/](http://zammad-foundation.org/)

Background: The founder and creator of the OTRS ticket system build an open source Zendesk alternative with some pretty neat features which can be found here: [http://days.zammad.org/](http://days.zammad.org/)

Can't wait to read your feedback and what you think.

<comment><USER2> Is there a vagrant version available for download?

<comment><AUTHOR> Good point! Not yet but I created an issue for that: [https://github.com/zammad/zammad/issues/253](https://github.com/zammad/zammad/issues/253) we will come to that as soon as possible.

<comment><USER3> Great! I'll give it a go when the Vagrant box is ready. At the moment I'm providing support for a small product via email and it's getting old. I'm keen to switch to something better.

<comment><AUTHOR> Done with: [https://github.com/zammad/vagrant](https://github.com/zammad/vagrant) Please note: [https://github.com/zammad/zammad/issues/280](https://github.com/zammad/zammad/issues/280)

</comment></comment></comment></comment></comment><comment><USER4> I suppose this image should have channel instead of kanal.

[https://zammad.com/content/1-home/tickets-per- kanal.svg](https://zammad.com/content/1-home/tickets-per-kanal.svg)

<comment><AUTHOR> Thanks! We'll fix it asap.

</comment></comment><comment><USER5> Slight issues on mobile: [http://i.imgur.com/Xw1d88j.jpg](http://i.imgur.com/Xw1d88j.jpg)

<comment><AUTHOR> Thanks! We fixed and pushed it.</comment></comment>


Why your security should be like Shrek - <AUTHOR> http://www.ihackforfun.eu/index.php?title=why-your-security-should-be

<comment><USER2> Stinks? Makes you cry? Yay, we're there all right! (sorry, couldn't resist)

<comment><AUTHOR> If we look at things realistically you are in fact correct, some companies have good layered security but for most security stinks and most of the measures they take are inefficient or not even working at all, this makes for fun discussions when I work for one of these companies as a consultant :-)</comment></comment>


Techcrunch founder vs. new Editor turns ugly - <AUTHOR> http://z3n.tv/2011/09/14/techcrunch-founder-vs-new-editor-turns-ugly/

<comment><USER2> Time to get more popcorn:

[http://techcrunch.com/2011/09/14/the-2011-disrupt-sf- battlef...](http://techcrunch.com/2011/09/14/the-2011-disrupt-sf-battlefield- final-round-companies/)

Scott Yates · Top Commenter · CEO at BlogMutt

Hate to say it, but this comment from Michael Arrington is the absolute proof that Techcrunch is no longer to be trusted at all.

Michael Arrington · Top Commenter · Founder at TechCrunch

Scott Yates I'm worried too. I just had a tense conversation with Erick about the definition of the words "involved" and "final." Keep it simple. Keep it truth.</comment>


I am a 14 year old programmer. I'm stuck. - <AUTHOR> Hi, As the title implies I am 14 years old and an intermediate programmer. I would consider myself "fluent" in python with also experience in objC JavaScript HTML and a handful of other technologies. The problem is that my school does not offer any computer science courses other than Computer Applications 1 (learning how to use word, PowerPoint etc). Anyway, I feel as if I am stuck. Lots of people recommend creating some shareware or something like that. The problem is that while I know all the ins and outs of python(ish) this task seems daunting. The jump from intermediate to advanced, if you will, is huge. I would love to publish a desktop application that syncs with multiple cloud services but again, but the API's are daunting. Could anyone offer any advice or help, thank you! <comment><USER2> > The problem is that while I know all the ins and outs of python(ish) this > task seems daunting.

This seems entirely expected -- you have a good background in a programming _language_ , but no real training in software _design_ , which is to say, in breaking down a large project into useful components, setting and using appropriate abstractions, and managing complexity. This is unsurprising, since this is an entirely different sort of task than just knowing the syntax of a language.

There are several good options here, like the textbooks _Structure and Interpretation of Computer Programs_ and _How to Design Programs_, both freely readable online. Reading things like ESR's summary of the UNIX philosophy (<http://www.catb.org/esr/writings/taoup/html/ch01s06.html>) might also help -- much of the UNIX philosophy exists to manage complexity in a huge system.

Another good option is to look at high-quality existing free/open-source software and understand how it's designed and why. If you can, find something you want to change in it and contribute it back. The skills you'll develop in understanding how to find your way in a large software project will serve you well in designing a large software project yourself.

</comment><comment><USER3> While I'm sure this won't sound terribly appealing to you, my advice would be to pick a medium size open source project that you're interested in and does code reviews. Start small by contributing bite sized fixes or features that they already have listed as things they want to do - many projects have lists like that for newcomers. If you do that even just a few times and get your code accepted you'll have gained more skills and knowledge about how to build a successful piece of software than almost any classroom would offer. In my experience many projects will be very welcoming to someone like you and yet be willing to hold you to higher standards than most teachers would.

After you did that you'd be much, much more likely to be able to build a successful project on your own.

<comment><USER4> Could you point out some of the projects that have those beginner type lists? Could be useful as a starting point.

<comment><USER5> <http://whatcanidoformozilla.org/>

This popped up on Hacker News the other day. It looks like the majority of the bugs are C/C++ related, but you might find some helpful folks in a project so interested in new contributors. Good luck and keep hacking!

</comment></comment></comment><comment><USER6> What sorts of things are you interested in? You'll have better luck working on something you find exciting.

If you get stuck on technicalities, two good things to try are (a) Google code search (<http://code.google.com/codesearch>) for examples related to what you're doing (for example, if you were trying to make an S3 connection from Python, you could check [http://code.google.com/codesearch#search/&q=s3connection...](http://code.google.com/codesearch#search/&q=s3connection%20lang:python&type=cs)) and (b) a relevant IRC channel if there is one.

If there are any programmer meetups in your area, try going and asking for help in person. When I was your age and trying to learn programming, I didn't know anyone who could help me. In retrospect, that was the #1 thing that held me back.

</comment><comment><USER7> My answers are more general to your growth as a programmer and not as a means to an end for help to make that desktop app.

Google Code-in starts next <https://code.google.com/opensource/gci/2012/index.html> .

"The tasks are grouped into the following categories:

      1. Code: Tasks related to writing or refactoring code
      2. Documentation/Training: Tasks related to creating/editing documents and helping others learn more
      3. Outreach/Research: Tasks related to community management, outreach/marketing, or studying problems and recommending solutions
      4. Quality Assurance: Tasks related to testing and ensuring code is of high quality
      5. User Interface: Tasks related to user experience research or user interface design and interaction"

You could even win a trip to Google HQ in Mountain View.

I did the college version (Summer of Code) and it was a very rewarding experience. I think the code-in can put you in contact with some organizations that might want to mentor you. The Mozilla Foundation has a bunch of projects you can contribute patches and fixes to as well.

If you don't know it already, learn how to use git. I would also suggest the book Programming OpenSouce Software by Karl Fogel (just google for it, he offers it free online).

</comment><comment><USER8> I have a similar problem, but I'm off by a year. I'm fifteen and have basically run out of any CS-related classes to take at my school. I have shifted into math classes (Calc, Stats) to help me get some "computation" this year at school. Just as someone who was where you are, I'd say don't get discouraged by what your school offers and try to work on your craft outside of school. Depending on how much you have learned about CS and programming, maybe learning more and iterating on some side projects would suffice. It's definitely something that is hard to get over, you're not alone. Keep developing.

</comment><comment><USER9> I remember being in your shoes. My advice is to get a web server and to start hacking it. Create websites, mess with databases. Install some open source apps and figure out how to create a module. You can do it; one step at a time; the daunting feeling will turn into great gratitude. I feel like there are better people here that can give you more overall sound advice, but hopefully this provides you with a platform to at least keep moving.

<comment> saiko-chriskun This. Just break it down into many smaller steps and take 'em one at a time. Make sure you always have something to work on and are making progress, no matter how slow that progress may seem.

</comment></comment><comment><USER10> For starters create a basic web app. Pick something you or you and your friends/family are interested in.

Maybe a to do list app or maybe an app that you can chat with your friends on or track your DVD/other collection . . . organize photos or maybe a family meal planner.

Pick something you are interested in and then start trying to build it at a basic level.

There are lots of tutorials out there for the individual components you'll need.

Once you have the basics up and running then start adding features.

As far as the APIs go choose something simple for starters, like obtaining a piece of data you want to incorporate into your app via an API and go from there. Maybe creating a basic HTML5 mobile weather app.

You are going to have to learn some things on your own even in college so don't worry about advanced classes not being available at your school. Classes are typically going to be behind the latest trends anyway. They provide a good foundation but won't cover everything you need.

Some ideas for new things to check out . . . skills to learn.

Learn to develop mobile websites and apps using jQuery Mobile.

Learn Ruby on Rails.

Create some simple iOS apps.

Create a websites for friends and family.

Good luck!

</comment><comment><USER11> For what purpose are you writing software, and what is your desired destination?

Do you want to program something interesting for you? (then figure out what you want to program, figure out the technologies it would take to make it happen, then learn them, and do it)

Do you want to get better at the trade so that at some point someone will pay you to program? (then go through MIT's OpenCourseWare: <http://ocw.mit.edu/index.htm> on CS topics to build up your fundamentals, then start reviewing/helping/hacking on open source for a while)

Do you want to use programming as a tool to do other things that you are interested in? (look around at what topics are necessary to understand, learn more about those topics, and go for it)

Personally, I knew when I was young that I would be into programming; when I was 5-7, we did LOGO in school, but there weren't really any programming courses worth anything in my high school (Cobol, Fortran, Hypercard, and Pascal), and I took the two electronics courses that were offered. I held myself back until college, where I did my best to learn and program as much as possible. After college, I went to grad school, continued programming as much as I could (I wrote an editor in Python for Python, dozens of data compression libraries, several distinct MUDs, ...), and got a PhD in theoretical computer science. Since then, I've been working in industry (because the academic market is crappy right now).

So I again ask; what is your destination? If you don't know yet, that's okay. You can improve your skills, your fundamental knowledge, and your technique without taking formal classes (see my link to MIT's OpenCourseWare). Heck, you may even be able to do so without talking with others (though it is hard). Once you do figure out your destination, it's a lot easier to ask for directions to get there.

</comment><comment><USER12> I have only been coding for a couple of years and know the feeling. There are so many things you could know that thinking about it is intimidating. A few of things I think you should do...

1\. There are a lot of free CS courses being put online. Start with the courses at Udacity.com they are the most "friendly" to start with. Then move up to the university level courses at coursera & edx.

2\. Find a local user group. Connecting with other programmers in your area gives you a support network to ask questions to.

3\. Study algorithms.

4\. Write lots of little command line apps. Don't worry about them being useful just focus on making the code good.

5\. If you are not already doing it take all the math classes you can.

You are 14 and that is a good thing. If you stick with it and keep learning you will be a badass when you are 18.

</comment><comment><USER13> Unlike your peers, there is no precedence for you. There is no preconfigured direction for you. There is no magic set of courses to get you where you want to go. Don't be discouraged, this is a very very good thing.

Reading Hacker News might get you excited, thinking "There are tons of people just like me out there!", but we are geographically distributed; and most aren't like you at all.

I know some of your story. I lived it. I've had a lot of success, and here's how I came about it:

Write a list called "What I want to be making by the time I'm 30", and devote it to memory. Stay abstract and philosophical. Talk to people who know about who you'd need to hire to accomplish those goals, and go learn to be those people. You have time, but not as much as you'd think. It takes 10 years to master a skill, and I'm guessing you'll have at least 4 to master before your list is ready for implementation. Start now. You can do more than one concurrently. The further along you get, the easier it will get. The goal is to master. Maintain a hunger for purity. Don't use something until you know exactly how it works, and why it was created. If you like something, try writing your own version.

It will be very hard at first. Keep that list in mind for motivation. Get jobs requiring your required skills, and always volunteer for the tasks your coworkers are afraid of. You will make mistakes, you will fail from time to time, but every year you will get better, stronger and faster.

Someday (if you stick with it) you'll be able to invent and build things that are yours, and yours alone. Things that matter. Things that change lives. Corporations will depend on you specifically. You will move the state of the art forward and make the world better.

Make sure you never forget what it felt like when you were new. When you'd take out a pen, and draw interface designs for a product you can't build yet. When "This would be so cool" outweighed "This will be so hard to build". Create your own challenges and break through them.

You'll do great :). I'm looking forward to a chance to hire or compete with you some day.

<comment><AUTHOR> Wow, this is incredibly inspiring. I am going to save this and will look upon it for the rest of my life. Thank you so much for taking time out of your day to help somone like me, your kindness is incredible. Thank you.

</comment></comment><comment><USER14> Hi,

It seems like you want support in expanding, mentorship etc.

There are a couple of options you have. You can see if you can take classes at your local junior/community college in python.

You can try to do what you want, and when you get stuck, go on a python mailing list, a irc channel, stackoverflow.com, a python user group, a hacker space, etc.

You can also decide things are too hard and give up, or put things off. I won't judge you, programming is often difficult and frustrating when I'm doing new stuff.

Anyway, do something else, dive in, or give up.

</comment><comment><USER15> This probably isn't going to be much help, but I've been thinking back to when I was your age a lot lately (I'm 35). Your generation has so many resources available to learn programming, and so many opportunities to create through the open source world. This is a great time to be learning how to program, and I wish you lots of luck. This career can be a real pain in the butt a lot of times, but it's also a lot of fun.

</comment><comment><USER16> This may be out of the box a bit, but if you think going from "intermediate to advanced" (your wording) will be huge, maybe that is exactly what you need?

Get it? It should be scary. You are doing something new to you.

Watch the movie "Indie Game". If you dont have the $10 to buy it I will gift it to you from iTunes.

Ask questions, you are 14, you wont be bothering anyone. If someone gives you a hard time it is because they are jealous. E-Mail in profile.

</comment><comment><USER17> have you checked out coursera?

I started when I was 8, first professional programming job in 10th grade...

The jump from intermediate to "complete" is indeed very large, so expect a journey.

You need to find something you enjoy working on that you evolve over the next couple of years to learn about software engineering and what automation is important etc. This could be a game or an extension to an open source game, it doesn't really matter. It will almost certainly be a failure in some sense, so it's good to get that first failure out of the way so you can scrap it, revisit, etc.

I think coursera would be a great place for you to start, though it may require you to learn a new language (this is one step on the journey towards advanced in X language, I expect it would be octave/matlab) I'd recommend doing the introductory machine learning course and whatever other stuff interests you.

From the quality of your writing, you're quite bright for 14 - so stick to it and don't neglect your physical health and artistic/emotional/cultural education because you need to be free of distractions to reach highest level.

</comment><comment><USER18> Don't underestimate yourself. Don't be afraid to shine through.

Start small. Maybe start with a single cloud platform, like Evernote or iCloud. Once you know the ins and outs of a particular platform, and are an expert on that, move on to the next one.

Baby steps, just keep moving in the right direction and DON'T STOP and DON'T BE AFRAID.

You are experiencing a fear of success. Overcome it, and just keep your head down and ship.

</comment><comment><USER19> Hey, I'm 15 and feel like I was just in your position. Emails in my profile, if you'd like to talk, or you can Skype me at michaelhfine

<comment><USER20> Having a partner to discuss with, learn from and teach makes everything both easier and harder. But it's not a substitute, rather it's a complement, to the books suggested above.

Easier because 2 sets of eyes and 2 minds will let you make smarter progress.

Harder because you have to think about the other person. But this is the good kind of hard.

</comment></comment><comment><USER21> I have some teenagers working with Python on Nuuton and you might feel at home with them. They are building the main search crawler, and some of the APIs, so its also a cool and interesting project for you. Send me an email (address in profile). If anything, I can at least point you in a good direction.

<comment><AUTHOR> This sounds very promising, thank you! But i couldn't find your adress in your profile. It just said founder of Nuuton under the about.

<comment><USER21> I'm an idiot.

Send an email to firstname.lastname@example.com

</comment></comment></comment><comment><USER22> Start with www.coursera.org. There, you will find classes with varying degree of difficulty. If you can, audit a computer science class in the nearby college/university. Build something that you think you would be able to use yourself. Build it bottom-up, one small feature at a time.

</comment><comment><USER23> Don't waste your childhood on programming. Get some other knowledge outside of computer science.

</comment><comment><USER24> This is going to be short but my advice is "Jump In".

As long as you keep at it you'll learn how to swim in larger and larger oceans.

You can ask questions on sites like StackOverflow or in IRC if you get stuck.

<comment><AUTHOR> Awesome, will do!

</comment></comment><comment><USER25> Build something small that does a little bit of what you find interesting. Try to do less. The more you take on up front, the harder and more daunting it will be for you.

</comment><comment><USER26> Check out Web2py which is a simple download and enables super easy development of Python-based web apps.

</comment><comment><USER27> Find a mentor.

<comment><AUTHOR> Thank you, I will look into this

</comment></comment><comment><USER28> My first advice for you is to read SICP and watch the lecture videos.

SICP = Structure and Interpretation of Computer Programs <http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html> [http://swiss.csail.mit.edu/classes/6.001/abelson-sussman- lec...](http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/) [http://www.codepoetics.com/wiki/index.php?title=Topics:SICP_...](http://www.codepoetics.com/wiki/index.php?title=Topics:SICP_in_other_languages) <http://eli.thegreenplace.net/category/programming/lisp/sicp/> <http://www.neilvandyke.org/sicp-plt/> <http://www.youtube.com/watch?v=rdj6deraQ6k>

Each programming language comes with its own cultural bubble. While most programming languages are general enough to be applied outside of their bubble, you just find more material (books, tutorial, libraries, applications, etc) written inside the bubble of a given language.

The question you have, is that of the bubble. Some programming languages have a bigger bubble, which means that by learning a language, you will learn things beyond the language, in its cultural bubble.

Do not confuse the density of a bubble with its size either. Some languages are highly popular, with a lot of programmers, blog entries, books, and jobs, but are nonetheless constrained to a small cultural bubble: anybody can learn it in three month and get a job, and that's the purpose of it.

But you want a big bubble, with things to learn beyond.

So after reading SICP (which uses scheme for its example), you may want to go further with scheme or Common Lisp. <http://www.schemers.org> <http://cliki.net> There are a lot of material, old an new in the lisp bubble, and those languages give access to a lot of concepts.

Then you may explore connected bubbles, at least: \- prolog for logic programming, \- Haskell, for functional programming.

You will also have to learn about data structures and algorithms. There are several books about it, including Donald E. Knuth's "The Art of Computer Programming".

In any case, you will have to read a lot of books (online or paper), read a lot of programs, and learn a lot of API, some of them quite big.

Oh, and be sure to write a lot of programs too! It's by doing that you actually learn what you've read.

But APIs often don't present any new concepts. The best APIs are small, or require you to use only a small part for normal cases. Well documented APIs will have a conceptual section, that is the only thing you need to read prior starting programming with the API. The detailed API references you can read them only on the job, when you're writing the program using it. That said, it pays having learn at least one big API well, because it helps you structure your approach to new APIs. Since you've worked with Objective-C I assume it's on MacOSX (or iOS), and I would advise you to read all the Apple developer documentation from end to end. Once you've done that, you will be able to deal with other APIs easily.

</comment><comment><USER29> You should become a PowerPoint ninja if your school only offers PowerPoint.</comment>


The Decline Effect and the Scientific Method : The New Yorker - <AUTHOR> http://www.newyorker.com/reporting/2010/12/13/101213fa_fact_lehrer?currentPage=all <comment><USER2> I sense some vaguely spiritual concepts (often disguised as pop philosophy) that are being introduced into public conversations about science of late, probably this is a result of the growing mistrust and desire to return to "a simpler, more wholesome world" I've been hearing about. What the article cites as " _cosmic habituation_ " is nothing more than thinly veiled anthropocentrism, an attempt to explain the behavior of complex systems with simple delusions of how human semantics supposedly influence cosmic reality.

The specific meme discussed in the article has been popping up all over the place in the last two weeks, and to give the New Yorker's editors minimal credit, they strain to eventually reach a balanced view in an effort not to offend anyone. However, some viewpoints just don't deserve equal consideration, and it doesn't matter how many supposed authorities are dragged into the debate to infuse it with credibility.

I worry about statements like " _Such anomalies demonstrate the slipperiness of empiricism._ ", because while factually true, they serve as pretexts to mislead the public into thinking that scientific results are just opinions and open to a debate based on spiritual worldviews. Yes, models are almost always faulty, yes there are tons of results that turned out to be spotty or in dire need of adjustment. Science welcomes these faults, because they serve to point out errors that need to be corrected.

So some researchers discovered their assumptions turned out to be false, I get that frustration. But it's not a cosmic conspiracy. Articles like this one often play with the sentiment that "the truth wears off", it doesn't. It is really hard to define models that stand the test of time. If you're a scientist your goal is to find models that best explain your data. You accept your models will be incomplete at best, and have a decent chance of turning out as totally wrong later. No matter the outcome, finding new data contradicting the old model is always a good thing, because it's a chance to update it, to make it stronger, or to throw it out in favor of something better.

We're dealing with a number of complex systems that have complex interactions. It's hard to isolate factors. And even if you do, many researchers fail miserably at basic statistical reasoning when it comes to determine the relevance of variables. It happens even to renowned physicists. It's hard. But it's not the mysterious work of an anthropocentric cosmos. The universe really doesn't care what we believe or not.

<comment><USER3> > _I worry about statements like "Such anomalies demonstrate the slipperiness > of empiricism."_

I found the end of the article very honest and open, except the two last paragraphs, which are indeed a little sensationalist and relativist (the sentence you quote is the first of the last paragraph).

The article should have stopped at _"the decline effect is actually a decline of illusion"_ (perfect conclusion).

</comment></comment><comment><USER4> I take from this article that the decline effect is merely an illusion. What initially appears to be a scientific breakthrough is found out to be nothing more than (i) random noise or (ii) hype resulting from publication bias (publish only the positive results and ignore the negative).

<comment><USER5> I can't seem to find the link at the moment, but someone wrote up a parody patent on something like, Method and Apparatus for Converting Random Data to Publishably Significant Results. Basically involves taking an infinite stream of random data, sampling N points at a time, checking for statistical significance at the p < whatever level, and repeat until you get it. Obviously an unsound statistical procedure, but many corners of science follow something not that dissimilar from it: collect data, analyze it to see if it's interesting, and if not, collect different data and repeat.

</comment></comment><comment><USER6> This is not really the kind of problem it seems to be made to be in the article.

Science is model building, nothing more, nothing less.

Models to predict outcomes with. As long as the outcomes are predictable it's established as a fact.

But these predictions are always temporary that is the very basic principle of the scientific method as put forward by Popper. In other words you can never do enough testing to establish something to be universally true.

The problem with Poppers method is his tendency to see the scientific method as something with a direction. I.e. we build knowledge to gain better and better and increasingly more true understanding of our world.

The article shows exactly the limits of testing. You can even for a very long time and repeatedly have the same outcomes just until you don't have them anymore. We have no way of knowing whether our observations of various phenomena are universal or simply just some patterns that happen to be true for a limited time (even if we talk millions of years)

And that is ok. Just as we make assumptions in our personal lives that are true for some time until they fall apart. (housing market, pension funds, that death sure job, marriage)

Life's complicated and we never know what it will turn up with. I find that part of why it's great to live.

<comment><USER7> I don't think this is what the article is about. At least for physical and biological phenomena, there is some objective truth. For example, Seroquel does or does not reduce schizophrenic symptoms---the reason an original finding is "temporary" and wears off is not because the efficacy has changed over time---it's because it was never efficacious in the first place (and we were mistaken because of bad research practices).

<comment><USER6> But that is my point. Whether we call it objective or not is solely based on our practices, our observations. And these can never be completely satisfactory. The scientific method no matter how rigor is not telling us whether something is objectively true but rather that as far as we have tested something to be true it is.

More specifically I was commenting on this:

 _...For many scientists, the effect is especially troubling because of what it exposes about the scientific process. If replication is what separates the rigor of science from the squishiness of pseudoscience, where do we put all these rigorously validated findings that can no longer be proved?..._

<comment><USER7> I see your point---my point is that this article is not a good jumping off point for discussions about philosophy of science or epistemology (bold title notwithstanding). It's about bad statistical practice. More importantly, it's about a bad practice that is well-known (at least among statisticians) and has remedies.

<comment><USER6> Fair enough.

</comment></comment></comment></comment></comment><comment><USER7> Andrew Gelman has a great blot post on this:

[http://www.stat.columbia.edu/~cook/movabletype/archives/2010...](http://www.stat.columbia.edu/~cook/movabletype/archives/2010/12/the_truth_wears.html)

In a nutshell, the problem arises from trying to estimate small effects and then screening results on statistical significance.

</comment><comment><USER3> > _Joseph Banks Rhine, a psychologist at Duke, had developed an interest in > the possibility of extrasensory perception, or E.S.P. Rhine devised an > experiment featuring (...) cards printed with one of five different symbols: > a card was drawn from the deck and the subject was asked to guess the > symbol. A [test subject] averaged nearly 50% during his initial sessions, > and pulled off several uncanny streaks, such as guessing nine cards in a > row. The odds of this happening by chance are about one in two million._

I think this is what happened: <http://www.youtube.com/watch?v=fn7-JZq0Yxs#t=1m24s> (opening scene from Ghostbusters).

The point of "replicability" is to eliminate bias; but it assumes bias affects each person independently.

In fact, bias is also a cultural phenomenon and is subject to fashion. Some results are expected at a certain point in time; replicating an experiment with different experimenters ("scientists") at the same time doesn't eliminate the "fashion bias".

Repeating the experiment ten years later does.

</comment><comment><USER8> There have been several articles of this ilk on HN of late. It seems to me that science and engineering education needs to focus more on the philosophy of science, the techniques of experimental design, and statistics. The scientific method as taught in junior high school is only part of the story.

</comment><comment><USER9> The decrease could be caused by aliens or time-traveler coming from the future (or the distant past) ;-)

That could be the starting point for a nice sci-fi series...

</comment><comment><USER10> "There are more things in heaven and earth, Horatio, than are dreamt of in your philosophy."

I'm not sure what this makes me - but I'm always quite excited when I read something which confirms Hamlet's claim. I really want the universe to escape us - and I'm glad when it consistently does.

Having said that - does anyone understand the research on this issue? I'm going to remain dubious until I hear about it more than just from the New Yorker...

<comment><USER6> The only problem with Hamlets statement is that he assumes that this "more" is metaphysical.

The answer of course is. Of course there is more things that can be dreamt of in our philosophies. But you don't need to go meta for that to be true.</comment></comment>


Ask HN: Am I welcome here? - <AUTHOR> Hi HN,
I finally got around to reading some of ESR's writing and I feel sad and disappointed. I know that there are many people in the world with strong, negative feelings about people like me, but I didn't realize how interwoven those ideas are with the other communities that I interact with.
So, my question: am I welcome here?
It's tempting to write off these sorts of questions as being irrational or over-emotional; to say that facts don't care about your feelings. But of course, they do[0]. These issues are deeply cyclic, the way that we talk about them and the conclusions we draw feed back into the issues themselves.
I'm not trying to make any sort of moral judgement here - to say that anyone should change their opinions or the way in which they express them. But I'm coming, painfully, to understand why tech communities can feel so intimidating. And I know that, if I set my talent and passion aside and leave tech, I'll be seen by some as another example of how [X people] can't hack-it in the tech world.
Maybe you think you know better than I do what it's like to be me. You don't. You don't know me. But I wish you did. I'd love to get a drink with you and geek-out about dependent types and AI policy and the semantic web.
I know that HN isn't the place for political posts, but I hope that I can share my feelings about something that is both personal and relevant to this community without making a political statement. If there are others who have asked this same question, or have found an answer, I'd love to hear your thoughts. Cheers/
[0] https://en.wikipedia.org/wiki/Bias <comment><USER2> If you're into Semantic Web, you're welcome here in my eyes!

More seriously, esr doesn't speak for everybody in the "hacker community" even to the extent that there is one, cohesive "hacker community" to talk about. And he definitely doesn't speak for HN or everybody here. And I say this as somebody who does respect a portion (but not all) of what esr has to say.

Beyond that... you don't say what you mean by "people like me", but by and large, the answer is "yes, you are welcome here". Most HN posters are most interested in someone's intellectual contribution than any other features about that person that are the kinds of things that people often show bias around (eg, sexual orientation, religion, gender, skin color, ethnicity, etc).

OTOH, realize that HN culture is not big on coddling people, or showing people special attention or deference either. And some people here can be blunt, arguably even rude at times. So if you're very thin-skinned and take offense easily, then you may well find yourself feeling uncomfortable at times. But to a first approximation, we can say that it won't be because of your (sexual orientation, religion, gender, skin color, ethnicity, ...).

</comment><comment><USER3> > strong, negative feelings about people like me

You haven't said anything about yourself. What is it about you that some people have strong negative feelings about?

</comment><comment><USER4> It's just an internet forum. Some people will welcome you, some people will hate you, many people will disagree with you for sport, many others won't care. Hacker News isn't a monoculture, even if it seems that way depending on which threads you visit and who shows up for them. Just don't take karma or downvotes seriously and you'll be fine.

</comment><comment><USER5> HN isn't the place for self-reflection but if someone else or an article raises a topic that you have a discussion provoking opinion of, feel free to comment.</comment>


Linear Algebra for Data Scientists - <AUTHOR> http://alexhwoods.com/2015/07/11/linear-algebra-for-data-scientists/?utm_campaign=Data%2BElixir&utm_medium=email&utm_source=Data_Elixir_44

<comment><USER2> I tend to think that anybody using the title "Data Scientist" should already know this material like the back of their hand. Good intro for those looking to learn, though.

"While in data science it's not as important, I personally think understanding (if possible) the algorithm you're using is a noble goal."

People think this? Good god...

<comment><USER3> Don't you know that we live in a world where anybody who can run couple of machine libraries in Python can call himself/herself "Data Scientist"? No need to understand the underlying algorithms!

</comment></comment><comment><USER4> Lets make a deal, if you don't know linear algebra please don't call yourself a data scientist.

<comment><USER5> I agree with everything said above. I think the term "data scientist" is used very loosely. With some of the "data science" I see in big companies, they tend to just import the library and leave the math up to PhD's and the writers of scikit-learn.

I do think this is a problem and that is the point I was trying to get across when I wrote the post.

</comment></comment><comment><USER6> Not bad for an intro to linear algebra but he covers a lot of topics without diving into the details.

In college I watched the Khan Academy lectures. They were amazing. Made linear algebra very intuitive. [https://www.khanacademy.org/math/linear- algebra](https://www.khanacademy.org/math/linear-algebra)</comment>


Freelancer pricing - <AUTHOR> http://williejackson.com/freelancer-pricing <comment><USER2> I couldn't help feeling Rickrolled by that post, but I do agree with the sentiment.</comment>


Ask HN: How real is the skill barrier for self-taught/bootcamp devs? - <AUTHOR> Stories about self-taught devs or bootcamp devs that get into web development or mobile development are very common these days. While they may eventually coast well in those areas, they may probably find themselves unable to cut it anywhere else.<p>Someone can say self-taught people can break into the software industry with ease but I haven't heard of cases where they shift focus to less common but still respected roles, for example, network programming, HFT, systems engineering or embedded programming. Is there a big skill barrier here? How hard would it be for a self-taught person to break that skill barrier and transition outside of web or mobile apps? <comment><USER2> I wouldn't use the term "skill barrier." Any skilled job requires specific skills and experience, obviously. You can acquire some skills, or at least get started, in school, classes, bootcamps, and self-study. If you want to advance or branch our you have to continue to acquire skills and experience, through practice and study.

Every programmer started out with no skills and no experience, and most of them advanced on their own, through practice, usually subsidized by a series of employers.

Skill implies knowledge, ability, and practice. It doesn't mean casual familiarity, reading about something in a book, or taking a class; those can start someone on the path but aren't usually sufficient. A bootcamp graduate with no prior programming experience doesn't possess actual skills. They have motivation, potential, and just enough knowledge to persuade an employer to take a chance on them, in hopes that the cost of imparting skills and experience will be offset by profits derived from labor. Employees who cost more than they contribute wash out.

Programmers who already have multiple skills and years of experience can pick up new things quickly from books, web sites, classes because they have a mental framework of related concepts to hang new things on. New programmers don't have that, everything looks fragmented and challenging.

<comment><AUTHOR> Most of your statements have been truisms but I'd like to see some concrete examples of self-taught or bootcamp devs moving out of web dev to a radically different field in software. Specifically in things that require an understanding of high performance, critical or real time software. These jobs usually have a higher barrier to entry, but you can still learn them on your own. It was discouraging to hear from a couple people that it's a big "nope" for self taught devs to take these jobs and that they should become a less risky hire by getting a traditional CS education. But that's just been without any examples of why.

<comment><USER2> I don't have any concrete examples. The bootcamp grads I've met are all working in web dev with fairly limited skills.

Coming at it another way, many of the programmers I've known who work in areas like embedded, high performance, real time, etc. were self-taught, mostly on the job. By that I mean they had some programming/technical expertise and worked someplace that gave them the opportunity to expand their skills through mentoring and real projects. I'm a self-taught developer and I've learned all of my skills that way. But I didn't start with a bootcamp or web development -- I started 40 years ago on mainframes.

I think it's more a matter of time and exposure. I learned high-end computer graphics and mapping/GIS on the job at an oil exploration company that hired me to do traditional business/database stuff but needed people to learn their other systems. I had to learn all kinds of math and new programming skills but I had patient, experienced mentors and the opportunity to work on real systems. I can't imagine learning all of that on my own, from books and online videos, or at a bootcamp, but everyone has different abilities and background.

tl;dr I don't think going from a web dev bootcamp to a significantly different or more demanding technical domain is impossible, but it will take a long time, a lot of work, and the right environment. A CS degree would provide a better conceptual framework to base new skills on than knowing HTML, CSS, and Javascript, for sure. The bootcamp model and mentality -- zero to $100K in six months -- works for web dev for some people because demand is high and you don't need a lot of high-end skills to build sites from templates or hook APIs up. The companies that hire bootcamp grads generally have experienced developers and a process to bring green people up to speed and let them advance.</comment></comment></comment>


An MIT Underwear Exposé (and Sorting Hat) - <AUTHOR> http://mitadmissions.org/blogs/entry/an-mit-underwear-expose <comment><USER2> Reading this made me downright sad that I didn't, and probably never will, attend MIT.

Oh, the interesting people! The interesting projects!

How I wish I had worked harder.

<comment><USER3> FWIW, I never went to MIT (went to a small liberal arts college); but I work at an MIT affiliate, so by virtue of proximity and affiliation, go to talks given on campus, eat at their cafeteria, have audited classes and play basketball at their gym. But basically a third-party observer to campus culture, my subjective $0.02:

The undergrad population is much to my dismay similar to any American school trained on the professional treadmill; most conversations I overhear involves seniors applying to medical school or law school or consulting or underclassmen discussing Google internships.

To use a Bostonian (maybe NYC too?) metaphor that Bostonians can understand, there are just as many people with Canada Goose jackets on MIT campus as on Newbury Street.

Like any school, it is not a homogenous population, "nerd's paradise" as parodied in the 80's movie "Real Genius"; although there are people who are genuinely interested in tech, there are people who want to pursue academic route who don't care for the Slashdot culture, jocks who are also science nerds, theatre geeks, int'l students who don't get the "American geek" culture...

The only real insight I can offer in a Computational Biology class I audited, I've never seen so many interruptions in lecture when the professor is flying through the slides on the derivation of this algorithm and that proof. Hands fly up right there asking for clarification on what is this greek variable on the previous slide... whereas during the same undergrad class I took years ago, none of us would have spoken on the spot due to lack of confidence to avoid looking dumb/lack of drive to try to understand something right there on the spot.

<comment><USER4> You're definitely missing a significant subculture that exists among MIT undergraduates. The kinds of MIT-affiliated events that you describe are certainly not the ones where you are likely to discover it. You are correct, though, in observing that not all MIT undergraduates fit into that subculture and many will go into finance, law, or medical careers. And there is certainly nothing wrong with that.

<comment><USER3> Hi phd514, in reading your comment, you are absolutely right; my comment did paint a broad brush. In reconsidering my response, I'd retract what I said about MIT culture and say my remarks really says more about me and my own cynicism/preoccupation at my age, late twenties.

It is in direct response to the parent post where the poster lamented about missing out a chance to experience the idealistic/radical youth culture when he was young, I responded more cynically about how in college I and my other friends did live in creative undergraduate communities; but whereas it was easy and natural to take on that attitude during undergrad, I found it became much harder to sustain those ideals in adulthood, as hard choices and realization of human nature creeps in, whether to truly sacrifice precious time and energy in your adulthood working towards them vs. "establishing" oneself professionally and socially; and because I struggle mightily with this, I put more value on what imperfect choices that people commit to as adults vs. the exciting (albeit memorable/enriching) experiences that they partook in as undergrads.

</comment></comment></comment></comment><comment><USER5> This is the best thing.

I'm sorry, but I don't feel the need to qualify that statement. This is just one of those absolutely crazy projects that people do from time to time (although MIT certainly has a reputation for hosting a lot of them), and I love that sort of thing. As much as we talk up the importance of Bayes' theorem and other algorithms as things that can change the world, etc., sometimes, you can just build something cool, and have a laugh.

</comment><comment><USER6> > Reasons for emailing all undergraduates include event announcements for > student groups and departments, flame wars, and occasionally lost items. In > contrast, the kinds of emails sent within a dorm mailing list include, at > the top of my inbox right now, parties, house meetings, and foodmobs to > restaurants in Boston; decisions about when to turn off the heating for > spring, invitations to test food experiments, and a memo to the person who > left their clothes in the middle washer; and requests for empty gallon jugs, > superglue, cooking scales, male-to-male audio cables, MIDI cables, 120V > twist lock connectors, funnels, and hairdryers.

I can only imagine the volume of email that entails; how do people deal with it? I would guess that these days the mailing lists are through Google Groups so you can at least turn off emails and use the list as a forum, but I doubt most would know or bother to do that and let themselves drown in email.

<comment><USER7> Sort all from: EC-Discuss into folder: EC-Discuss

... Try to sort through it when you are bored... Realize you don't get anything out of it anymore -> Un-Subscribe to EC-Discuss email list.

Clarification: EC-Discuss = East Campus (of MIT) discussion email list... it is known for this mass email of random nature.

</comment></comment><comment><USER8> Ofcourse Senior House had a lot of black underwear ;)

<comment><USER9> Of course! Would be interesting to see BC broken down by floor...

</comment></comment><comment><USER10> So, if you are aspiring to attend classes at MIT then you know what to do now. If you are applying for the admission, then you can choose your underwear color to increase your chances to get in.

</comment><comment><USER11> Of course it was a fellow Randomite who put this together. :)

Also, of course it was Senior Haus which had the highest prevalence of black underwear.

</comment><comment><USER12> This might be my favorite data science post ever to grace the front page of HN.

</comment><comment><USER13> this is awesome. Eg, "There is a sad, persistent decrease in multicolored underwear, ending with none by senior year." Does "none" refer to NA (None, null, etc.) or to the lack of color in the respondents' underwear, or to going commando? i suppose like all great research, it raises more questions than it answers.

more seriously, The OP seems to be inspired by a well-established tradition at the institute--MIT's sand mandala, perhaps. I graduated in 1992 and i remember some of my classmates from time to time, engaging in self-assigned projects that (i) seemed to lack any discernible purpose or utility whatever--certainly none for the student and (ii) that required a mind-boggling amount of meticulous effort. Somehow seeing these two attributes juxtaposed in a single endeavor, was hilarious to us (likewise the OP). Sometimes, though not always, these projects were deemed "pranks" but separate in my view.

</comment><comment><USER14> This type of thing makes me proud to be at MIT :)

<comment><USER15> This type of thing made me kind of sad to be unimpressive 2 years ago :) :(

</comment></comment><comment><USER16> How were those pie charts generated?

<comment><USER17> From article:

> so I made pie charts from the parsed data and traced and colored them in BMF > kitchen.

<comment><USER13> i think this is a oblique way of saying the OP isn't going to open source their data visualisation code. :-)

</comment></comment></comment><comment><USER18> A silly question for the insiders: what does "teal with cameras" mean?

<comment><USER19> I assumed that the underwear was teal, and had cameras printed on it.

</comment></comment><comment><USER20> Shouldn't MIT pay royalties if it's using Harry Potter references in its marketing material?

</comment><comment><USER21> 'Creepy' is right.

I wonder how many people refrained from using an otherwise-useful mailing list because of someone they didn't want thinking about the color of their underwear.

I further wonder if reluctance to talk about their underwear color publicly impacts different genders disproportionately.

<comment><USER22> It is creepy. But US colleges have done far far worse.

[http://www.nytimes.com/1995/01/15/magazine/the-great-ivy- lea...](http://www.nytimes.com/1995/01/15/magazine/the-great-ivy-league-nude- posture-photo-scandal.html)

> ONE AFTERNOON IN THE LATE 1970's, deep in the labyrinthine interior of a > massive Gothic tower in New Haven, an unsuspecting employee of Yale > University opened a long-locked room in the Payne Whitney Gymnasium and > stumbled upon something shocking and disturbing.

> Shocking, because what he found was an enormous cache of nude photographs, > thousands and thousands of photographs of young men in front, side and rear > poses. Disturbing, because on closer inspection the photos looked like the > record of a bizarre body-piercing ritual: sticking out from the spine of > each and every body was a row of sharp metal pins.

<comment><USER22> Not quite sure what's happening with the votes on this post, with some up and some down votes.

In case it wasn't clear: several US universities took nude "posture photographs" of most people who attended, and did so for decades. They took the photos in the name of science, but that science was probably junk.

That feels worse than an unofficial email list asking people what colour underwear they have on before accepting their post.

<comment><USER23> Hey I voted you up. I really enjoyed the article and came back to upvote for that. My initial knee jerk reaction to your post was that it's slightly besides the point -- an interesting aside but somewhat off topic for the post. I suppose that could be why you were getting downvoted. Anyway it's super interesting, thanks for sharing</comment></comment></comment></comment>


I/O Access Methods for Linux - <AUTHOR> http://www.scylladb.com/2017/10/05/io-access-methods-scylla/ <comment><USER3> The diagram is a bit misleading. There is no system call (switching to the kernel) with read or write hits, assuming the memory is already mapped, has a page table entry and is resident. You only incur switches when performing the mapping and due to various page fault modes (lazy mapping, non-resident data, copy-on-write needed).

 _> This usually happens when the ratio of storage size to RAM size is significantly higher than 1:1. Every page that is brought into cache causes another page to be evicted._

While true one can optimize these things by unmapping larger ranges in bulk (to reduce cache pressure) or prefetching them (to reduce blocking) with madvise, allowing the kernel doing the loading asynchronously while you're accessing the previously prefetched ones.

If you know your read and write patterns very well you can effectively use this for nearly asynchronous IO without the pains of AIO and few to none extra threads.

<comment><USER4> In really new linux there is a preadv2 sysscall that was merged. preadv2 supports a flag RWF_NOWAIT to tell the kernel to not block if a read requires uncached data.

This lets you play around with policy for blocking reads in user space. Examples: try to make progress on partially read data & queue up the rest on another thread; try performing reads from your network thread and if unavailable queue up the blocking read onto another disk thread & serve a different request.

There's no RWF_NOWAIT support for write in pwritev2. But it's technically possible to implement it and if your write will cause a writeout to disk return EWOULDBLOCK.

LWN description: [https://lwn.net/Articles/612483/](https://lwn.net/Articles/612483/)

LWN summary of my talk: [https://lwn.net/Articles/636967/](https://lwn.net/Articles/636967/)

Final patch set by Christoph: [https://lwn.net/Articles/731700/](https://lwn.net/Articles/731700/)

Disclaimer: I'm the author of the preadv2/pwritev2 syscalls. And the original author of the support for RWF_NOWAIT, which Christoph Hellwig took over. So feel free to consider this to be self congratulatory.

Correction: It looks like there's a patch set floating around for adding support for RWF_NOWAIT in pwritev2 as well. [https://patchwork.kernel.org/patch/9787271/](https://patchwork.kernel.org/patch/9787271/) (comment from Christoph)

<comment><USER5> > try performing reads from your network thread and if unavailable

How does this differ from recv(..., MSG_DONTWAIT)?

<comment><USER4> This was my original model when I came up with the idea; in fact, my v1 hack used recv and MSG_DONTWAIT. For a number of a reasons the kernel community did not want to overload that interface and that flag.

Besides some technical reasons, the big reason was an "impedance mismatch" of the recv API which was working with stream data. In that context you're depending on another party send data. Also, you can wait on this to happen using another API (select et. al) so the buffer will be filled not by your actions. On the other hand preadv2(..., RWF_NOWAIT) is not going to trigger any more read in and theres no wait to wait on the data. Although the previous statement is not a 100% true... preadv2 may or may not trigger readahead (if it's enabled).

Here's the whole thread about it... if you're interested in the history of how this came to be: [https://lkml.org/lkml/2014/7/24/787](https://lkml.org/lkml/2014/7/24/787)

</comment></comment></comment></comment><comment><USER6> Very nice job, I like the diagrams and the description.

Noticed this bit "block size which is typically 512 or 4096 bytes" and was wondering how would the application know how to align. Does it query the file descriptor for block size? Is there an ioctl call for that?

When it comes to IO it's also possible to differentiate between blocking/non- blocking and synchronous/asynchronous, and those categories are orthogonal in general.

So there is blocking and synchronous: read, write, readv, writev. The calling thread blocks until data is ready and while it gets copied to user memory.

non-blocking synchronous: using non-blocking file descriptors with select/poll/epoll/kqueue. Checking when data is ready is done asynchronously but then read, write still happens inline and the thread waits for it to be copied to user space. This works for socket IO in Linux but not for disk.

non-blocking asynchronous: using AIO on Linux. Here both waiting till data is ready to be transferred and transferring happens asynchronously. aio_read returns right way before read finished. Then have to use aio_error to check for its status. This works for disk but not socket IO on Linux.

blocking asynchronous: nothing here

<comment><USER7> I released a native add on [1] for Node.js earlier this week for querying a block device file descriptor for block size. It uses different ioctl calls depending on the platform and works on FreeBSD, Linux, macOS and Windows.

It also provides cross-platform aligned buffers for DMA.

Note that block size can be logical or physical sector size. IIRC st_blksize will typically report logical sector size (usually 512 bytes), but physical sector size (usually 4096 bytes) is often larger for Advanced Format drives, and is what you want to be using for optimal alignment. Any multiple of 4096 bytes is usually a safe bet for block size. Note that some SSD drives have 8192 or 16384 bytes as a "physical sector" page size / block size.

[1] [https://github.com/ronomon/direct-io](https://github.com/ronomon/direct- io)

<comment><USER6> Ooh, very nice work. Was reading your README and the binding.cc file, learned a lot of stuff like calling fsync on direct i/o file descriptor might not flush anything to disk since the dirty page write mechanism is bypassed.

In the benchmark what was the physical block size, 16KB? it seems with O_DIRECT after 16KB the speed tapers off and stays at about 130MB/s. And there is a significant jump from 4K (60Mb/s) and 8K (90Mb/s).

<comment><USER7> Sorry for the late reply, just spotted your comment.

Thanks for the input, glad you found it useful!

Regarding the benchmark, the physical block size of the drive itself was 512 bytes. The memory page size on the Ubuntu system was 4K. It would be good to update the benchmark script to include these kinds of numbers.

I'm not sure why O_DIRECT speed increased with block size=4K (60MB/s) to 8K (90MB/s) and tapered off at 16KB (130MB/s). Perhaps system call overhead is more noticeable at 4K and 8K and less so at 16KB? Any other ideas?

130MB/s is the raw drive write speed and matches what I got from dd for the same flags for the same drive.

</comment></comment></comment></comment><comment><USER8> > The great advantage of letting the kernel control caching is that great > effort has been invested by the kernel developers over many decades into > tuning the algorithms used by the cache.

Some other advantages:

The kernel has a global view of what is going on with all the different applications running on the system, whereas your application only knows about itself.

The cache can be shared amongst different applications.

You can restart applications and the cache will stay warm.

<comment><USER9> > The disadvantage, however, is that these algorithms are general-purpose and > not tuned to the application.

Another big disadvantage is that the page cache is only useful for caching data of actual files and nothing else.

<comment><USER8> Do you mean you want to cache things that can't be serialised to memory pages, or you don't want the memory pages to be backed by files?

In the context of this article, many databases use the page cache to cache their data-structures, either in combination with private pages (ie postgres) or entirely (ie LMDB).

<comment><USER9> The latter case; and allocating anonymous memory is not caching.

<comment><USER8> Oh I see, I thought you might be referring to how the page cache (obviously) can't cache things like sockets.

Some applications do use the page cache for non-caching purposes though, for instance IPC, or ensuring their working-data will survive an application restart. The memory is still associated with files naturally, but this is often regarded as a feature, not a problem. Some applications use files on tmpfs so that their page cache data is backed by swap (or nothing), the same as anonymous pages.

</comment></comment></comment></comment></comment><comment><USER10> Nice article. I agree with the strategy. No matter how clever the OS is in general, it cannot be more clever than a well designed db kernel.

A little off topic, but I have been waiting over a decade for Linux to merge all async waiting into one system call.

Wouldn't it be nice if there was a kqueue system call in posix? It would then force Linux to finally implement it.

</comment><comment><USER11> The author's name, Avi Kivity sounded familiar. Turns he created KVM, the Linux kernel hypervisor.

[https://il.linkedin.com/in/avikivity](https://il.linkedin.com/in/avikivity)

<comment><USER12> Literally written at the bottom of the article...

<comment><USER11> >_<

</comment></comment></comment><comment><USER13> Great article for a noob like me. Any similar article suggestions, which gives a good high level overview on kernel internals, specifically on IO topics like what happens when an application requests for a file - right from issuing a system call to disk Interactions.

I was always confused - still I am - with regards to different caching layers that involve in an IO operation.

<comment><USER7> Alice and Bob in I/O Land:

[http://haifux.org/lectures/253/alice_and_bob_in_io_land/alic...](http://haifux.org/lectures/253/alice_and_bob_in_io_land/alice_and_bob_in_io_land.html)

<comment><USER13> Enjoyed reading the article, thanks for sharing.

</comment></comment></comment><comment><USER14> There's also a class of functions that act like read/write, but are done completely in the kernel without returning to userspace (sendfile/(vm)splice/copy_file_range).

</comment><comment><USER15> They seem to target the situation that the storage-to-memory ratio is very high.

But this raises the question: isn't this ratio decreasing with cheaper and cheaper RAM these days?

(I've seen a lot of systems already moving to completely in-memory databases, taking this to the extreme; so this is actually a reality)

<comment><USER16> In my experience, the amount of data many applications are expected to access is growing geometrically, while RAM costs are declining only arithmetically. There certainly are in-memory use cases, but for most use cases it is not now (and probably won't become) economical.

<comment><USER15> That's odd, because I've seen the number of cases where in-memory databases make sense increase over the last three decades.

<comment><USER16> Agreed. For certain use cases (session store, user profile store), the lower cost of memory and the relatively slow growth of data will mean that they will usually fit in memory. But, in my experience, there's a larger, and growing, class of use cases (ML, IOT, Fraud detection, Gaming data) where both the amount of raw data captured and the expectations for data retention are causing the total dataset to spiral into the dozens or hundreds of TB, with expectations for real-time SLAs on query. That's what I was talking about.

<comment><USER15> Yes, but data on the order of TBs is usually stored on platters (as opposed to SSD).

In that case, a fast data access library will not buy you much, because the disk will be slow anyway.

(By the way it is common that an in-memory database is combined with on-disk storage for large blobs; those blobs are just flat files, and the OS already offers the fastest way to access them without any library)

<comment><USER17> Multi-Terabyte SSDs are very common. An i3.16xlarge instance on AWS, for example, has 15TB of SSD storage.

<comment><USER15> Ok, but it doesn't take away the point that very often the database can still be stored in memory, except for large blobs which are stored in flat files. Access of those files is usually sequential, so you will not need a special library.

<comment><USER16> Yes, video streaming and management is a use case as you describe. Metadata is kept in memory, and the video files, themselves, are stored on an inexpensive media - usually as file system. So queries about "what can i watch" are quick, but loading the video can take seconds. But any use case where you want to keep state over time - sums, averages, maxes, histories - requires you to keep all the individual points of data in the database. Those are the (increasingly common) use cases that I run into where very fast disk storage like Scylla are important.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> What are typical use cases for direct I/O? I never stumbled upon anything that used it. Intuitively, I would assume specialized logging applications or databases, but even these seem to use other mechanisms.

<comment><USER17> Specialized logging applications, databases, userspace filesystems, and virtual machine monitors.

</comment></comment><comment><USER19> A bit off topic, but do anybody have some practical experience with Scylla (using at work) ? What's your feedback on the product ?

<comment><USER20> I work in online advertising (AdGear/Montreal/Canada) and a lot of the business is around RTB (Real Time Bidding). This is an area where millions of requests/second is the norm and latency is the name of the game.

We've been using Cassandra for many years. As the business has grown, we've refreshed/updated/resized/tweaked/hacked the cluster. Unfortunately past a certain point, there were no more performance wins to be had - further - <USER2> started experiencing stability issues.

We came across ScyllaDB. I had heard about the underlying SeaStar framework and was excited to test something based on it that was addressing a real pain point.

We are not (yet) customers of ScyllaDB - however we're pretty advanced into our POC. To summarize: * Extremely low latency compared to cassandra * During delivery valeys, peaks, and even burst batch loads * It delivers the above running on a fraction of the hardware Cassandra does * Very good no-bs responsive engineering support

Scylla's having a conference in SF later this month where AdGear will be presenting our use case more in depth. If it sounds like the product may address some pain points you're working on, might be worth attending.

/not affiliated with Scylla beyond the potential-customer-in-POC case described above</comment></comment>


Startup CEOs are born bad "leaders" - <AUTHOR> http://greatcompanies.io/startup-ceos-are-born-bad-leaders/

<comment><USER2> I've seen a bunch of these articles recently, and I'm tempted to agree to a certain extent. But I feel that its a bit misdirected maybe ? Seems to be plenty of other positions where ppl "behave" much like this, were it hurts just as much.

<comment><AUTHOR> Agreed that its mostly empirical and that correlation does not imply causation.

Can you elaborate on what you mean by "other positions" though? Do you know of specific cases where startups have failed as a result of the said personality of founders?

<comment><USER2> With my limited experience in the field of it, 10 years at some isp's and a few startups. Its seems to me that ppl how score less in terms of "agreeableness" have a way of getting in to positions where they are allowed to act out on their "entrepreneurship", since its often recognised as a sign of good leadership. Positions lower then CEO, maybe CTO or even further down the ladder, "head of yadayada" reporting to C*O's. I've nothing solid to support this though. But I've seen ppl (and companies) having to pay high prices for having these entrepreneurs not doing what they're actually good at. Source: gut feeling.

Edit: I have some, not sure I'm the right guy to disclose though.

<comment><AUTHOR> Well the point of the article is that the said personality type makes good entrepreneurs. Its totally understandable that they would not be the best of employees (which is what you are describing).

<comment><USER2> Yes indeed. Maybe I've suffered from a broken recruitment effort in my case.</comment></comment></comment></comment></comment>


Yellowbrick: Machine Learning Visualization - <AUTHOR> http://www.scikit-yb.org/en/latest/ <comment><USER2> It's nice to see this based on matplotlib. A picture is worth a thousand words and be able to visualise your machine learning model is nice baked directly in sci-kit.

I think Python is pretty under appreciated language. I feel it's due to fact it's easy to pick up and work with. If simmering like this comes up in rust or go there will be an endless thread of comments.

I like the simplicity of Python and its very down to earth approach to work with low level C or C++ when necessary, sometimes practicality beats purity.

I also like swift from apple given it follows similar simple way as Python. It's just that, it's very heavily single platform for many libraries except for tensorflow which recently released swift binding.</comment>


IPen: the first active stylus for iPad by Cregle Inc. — Kickstarter - <AUTHOR> http://www.kickstarter.com/projects/1225098940/ipen-the-first-active-stylus-for-ipad <comment><USER2> If you look at the video, it looks like the technology is quite ingenious: Apparently, there's some kind of camera in the pen, and there's a little jiggling cursor on the the screen- The Camera and jiggling interact to pinpoint the pen position (apparently) down to a single pixel.

This pen should be _extremely_ accurate... what I worry about is how quickly you can move the pen.

<comment><USER3> That's a pretty old idea: <http://en.wikipedia.org/wiki/Light_pen>

It's how the Duck Hunt gun works.</comment></comment>


Separating Covid infected mothers from newborns are violating human rights - <AUTHOR> https://www.masslive.com/coronavirus/2020/05/efforts-to-curb-coronavirus-transmission-by-separating-infected-mothers-from-newborns-are-violating-human-rights-boston-health-experts-say.html <comment><USER2> Now this is proper quarantining. Human rights are not a consideration when preventing the spread. /s</comment>


Norvig's Law: Any technology that surpasses 50% penetration will never double again  - <AUTHOR> http://www.norvig.com/norvigs-law.html

<comment><USER2> The universe is not static. And demands and supplies are particularly dynamic. Intuitively I see no reason why penetration percentage can't wax and wane with time due to changes in supplies, demands, populations, behaviors etc.

He obviously understands the implications of shifts in demand given his "what you count" argument. Why bother stating a "law" if you can see its own holes?

</comment><comment><USER3> <http://flickr.com/photos/7736808@N03/863738963/>

</comment><comment> daniel-cussen That was pretty obvious. I guess it means you can't ride on the coattails of network effects after that point.

<comment><USER3> Of course you can. Once the Internet reaches 51% penetration, you don't think we'll be able to benefit from the network effects of connecting part (all just isn't going to happen...) of the last 49% of the planet.</comment></comment>


Ask HN: Opportunities in the EV market? - <AUTHOR> There have been reading a lot of news recently about growth of EV: https://news.ycombinator.com/item?id=15224578 https://news.ycombinator.com/item?id=15219469 https://news.ycombinator.com/item?id=15208565<p>While this change/growth has a lot to do with car manufacturers, what kind of opportunities will it present for companies outside the auto or ride sharing space? <comment><USER2> There are the big car manufacturers but then there are all kinds of smaller and more distributed businesses that revolve around the car.

For instance, gas stations do not just sell gas, but they also sell groceries and prepared food, drinks, beer, and other things. Maybe some will become electric car charging centers. If it takes longer to charge your battery than it does to gas up, you may spend more time there and possibly more money. On the other hand, you may charge up most of the time at home or at work in which case you do not go so often. No matter what, people are going to buy the non- gas things they get at gas stations somehow.

Every three to six months you change the oil on your gas car. Electric cars will need maintenance, but not the same kind. You'll still need tires, but maybe you won't need to change your brake pads as often because you depend more on regenerative braking. I knew a mechanic in 2002 who saw change coming and decided to establish himself as a hybrid car expert and he started writing service manuals for hybrids.

On the other hand, I have no idea how fast change is coming. A few years ago people were talking about the "oil peak" but now people are buying GMC Suburbans as fast they can make them. Some countries are saying big things about the future, but it took Germany 30 years to really begin a promised phase-out of nuclear power. Scares about the availability of lithium could take the place of scares about the availability of petroleum...

<comment><AUTHOR> Thanks for the insight.

Surely the speed of progress is surely a concern and given the amount of petrol cars on the road it will surely take a long time coming.

My understanding on lithium is that it is abundant in nature.

<comment><USER2> Lithium abundance has issues.

It is not that common in the universe at large (compared to other elements early in the periodic table) because it burns up very quickly in the core of stars. People who have thought about this in terms of nuclear energy think that lithium used for fusion is not all that likely to be a larger resource than uranium used for fission in a plutonium economy.

Right now most lithium is mined from a few countries in Latin America that are not globally minded so I could see politics getting in the way.

Certainly there are other reserves of lithium that we know of, probably more that we don't know of. When we go looking we often find there are resources we didn't know about. On the other hand, it takes time and money to develop resources. A "baseline scenario" is that it is like oil and other commodities, the price will go up and down.

</comment></comment></comment><comment><USER3> Charger networks. There are a few big players out there now, (ChargePoint, EVGo, and SemaConnect), but none of them have, to me, really captured the market.</comment>


Tail-Recursion in Go - <AUTHOR> https://medium.com/@meeusdylan/tail-recursion-in-go-fb5cf69a0f26 <comment><USER2> > Hence there is less overhead for managing stack frames.

Isn't the point of saying to Go has not TCO, that this overhead is _not_ being get rid of? So in Go there should be no difference in performance because the stackframes get created even if not needed _because_ Go can not recognize that it's not needed?

Or am I mixing things up?</comment>


A Russian satellite is probably stalking a US spy satellite in orbit - <AUTHOR> https://www.technologyreview.com/s/615129/a-russian-satellite-is-probably-stalking-a-us-spy-satellite-in-orbit/ <comment><USER2> Discussion: [https://news.ycombinator.com/item?id=22207683](https://news.ycombinator.com/item?id=22207683)

Other sources for the story:

[https://news.ycombinator.com/item?id=22204838](https://news.ycombinator.com/item?id=22204838) : thedailybeast.com

[https://news.ycombinator.com/item?id=22200881](https://news.ycombinator.com/item?id=22200881) : Extended Twitter discussion

[https://news.ycombinator.com/item?id=22229130](https://news.ycombinator.com/item?id=22229130) : interstellarspecies.blogspot.com

Other submissions:

[https://news.ycombinator.com/item?id=22209705](https://news.ycombinator.com/item?id=22209705) : theverge.com

[https://news.ycombinator.com/item?id=22196710](https://news.ycombinator.com/item?id=22196710) : twitter.com

</comment><comment><USER3> What a co-incidence! Exactly 11 years ago from today, communications satellites Iridium-33 (US) and Kosmos-2251 (Russia) collided in orbit, destroying both.[1]

[1]: [https://anniversary7.blogspot.com/2020/02/11-years-ago- commu...](https://anniversary7.blogspot.com/2020/02/11-years-ago- communications-satellites.html)</comment>


Pay your taxes on your smartphone using Intuit's SnapTax - <AUTHOR> http://venturebeat.com/2011/01/14/intuit-snaptax/ <comment><USER2> Who on earth is the target market for this? I wasn't aware that people were doing their taxes so frequently as to require the ability to do them any time on the go.

Further restrictions: > Intuit says it's for people who make $80,000 or less a year; only have income from W-2s, interest, and unemployment; and don't owe any property.</comment>