Android device as dev machine - <AUTHOR> https://market.android.com/details?id=com.spartacusrex.spartacuside <comment><USER2> Oh this looks awesome! I am so excited for the future of developing on Android, with hardware keyboards and devices like the Transformer Prime. I can't wait to try this out. The idea of carrying around just a tablet and being able to write Android applications on the fly is just too cool.

I wonder how far we are from a total replacement of old desktop operating systems in the mainstream, even for developers? I'm aware they're not going away since there will be millions and millions that cling to them. But they may become specialty cases, not sold on computers in stores, etc.

<comment><USER3> I honestly can't tell if this is sarcastic or not. The idea of developing on anything without a fullsize keyboard makes me nauseous just thinking about it.

Handy for tweaking something on the go, but developing projects (especially in such verbose languages) on a pocket-sized device would be incredibly painful.

I'd be interested to see how this works on a laptop-ish Android device though.

<comment><USER4> The future is a cell phone that can be plugged into a dock that has a monitor, keyboard, mouse, other sound, additional power, possibly additional cooling, etc. None of this is a particularly far-out projection, either, as USB pretty much does everything necessary to enable that, it just hasn't quite been done. (Close, though. There are existing Android cell phone/laptop hybrid thingies, and they will only develop further in this direction.) Specialists may use laptops or desktops for various high-powered computing needs, but it would no longer be the common case.

Unfortunately, the cell phone in the cell phone is really hobbling the whole process, because that attaches the future of computing to the whims of the cell phone companies. That dependency needs to go.

<comment><AUTHOR> I've long thought this, but there may be a problem...

ARM processors probably can't get much faster without an unacceptable loss in battery life - for e.g., the iPhone/iPad are underclocked, and the Tegra 3 quad-core in the new Transformer Prime has three modes, each with lower clocking. Batteries might address this, but their rate of improvement is slow (no Moore's law there). The apparent solution is "multi-core", but we aren't able to parallelize in general, after decades of research. Note that desktops are stuck at quad-core - there's more cores on server chips, but they are usually doing many tasks already (e.g. webserving). The dramatic multi-core progress is in GPUs, which again is a naturally parallel domain.

You _could_ switch to power-hungry performance when docked, like the Transformer Prime... but it seems a bit of an ugly chimera in general. If performance is needed for development, then x86 desktops will win. Eventually, ARM could catch up to what is needed (even if x86 keeps ahead) - but if this is to simultaneously satisfy mobile needs, it will be at a _much_ slower pace than Moore's Law.

An ARM _purely_ for desktop could catch up easily; but what benefit does it offer over x86, if its power-consumption advantage is irrelevant? And it lacks the massive ecosystem of x86 software. But that's not the idea discussed here, of a dockable mobile device.

Other factors: (1) ARM SoC is cheaper and smaller than x86; but Intel has made a SoC x86. (2) people like the convenience of the same data, apps and UI for mobile and desktop; but cloud provides the same data; webapps address the same apps and UI. A prediction: the iPad 3 won't be quad-core. It's too hard to convert multi-core into user performance, so it's an efficient use of power and silicon. Instead it will have masses of GPU silicon (at least x4 the iPad 2, for the x4 pixels in the retina display - possibly x8, to give an sense of improvement in addition).

tl;dr battery life and multi-core prevent an ARM-based dockable desktop.

<comment><USER4> I never said ARM. ARM != mobile, a point you make yourself but apparently didn't follow through to its logical conclusion. I also _did_ say the future. Only prototypes exist now (though they _do_ exist), but I don't expect widespread adoption for at least another three years. In three years, a cell phone with at least as much power as a netbook of today will be perfectly feasible.

I don't much care what's in them. I'm much more interested in whether they are open computers with a cell phone attached, or closed cell phones with vaguely computery locked down capabilities.

<comment><AUTHOR> These are just my thoughts, I wasn't attacking you. I was hoping for a refutation of my argument, if you can spare the time.

BTW: arguably, a cell phones are already comparable in performance to netbooks: my old eee PC has a 900MHz celeron (though less powerful than today's netbooks); the samsung galaxy 2 has a dual-core 1.2 GHz Cortex-A9, and the Transformer Prime has a quad-core 1.3 GHz Cortex-A9 (though that's a tablet, not a cell phone)

 _EDIT_ I should point out we're on the same side: I've said what you say (e.g. <http://news.ycombinator.com/item?id=2014578>), and I submitted the present story.

</comment></comment></comment></comment></comment></comment><comment><USER5> "Also vim has been setup by default in a humane way (arrow keys work, backspace..), so that starting on this long and glorious journey won't begin with a punch in the face."

Awesome.

<comment><USER6> What would be more awesome would be including emacs as well.

<comment><USER7> I had been wondering about why there were no editors with Emacs keybindings around, and it turns out that the reason is that they just wouldn't work very well.

The Android keyboard event model has horrible handling of modifier keys. Basically it's a total crap-shoot whether a chord is passed through to the application or silently eaten. So you might e.g. get events for something very simple like Ctrl-A, but not Ctrl-Space or. Meta-Left.

And even rooting your device and editing the key mapping files to specify outputs for these chords doesn't necessarily make them available to the app. I haven't dug too much into why. If anyone knows, I'd love to know.

<comment><USER6> That's unfortunate, but as I'm seeing through my own development and exploration, android is a lot less 'hacker' and a lot more 'consumer' than I originally thought it would be.

</comment></comment></comment></comment><comment><USER8> It's great application, last couple of days I was searching to change the hosts file to test localhost mobile web app. But it was difficult to root access and push the host file to the android system. Anyway this may help to all the things.

</comment><comment><USER9> Is there any android hardware out that could make good use of this?

I'm thinking a phone with a mini-HDMI port, so whereever I go I can just connect it to any real monitor which is to hand. If the thing can act as a USB host, add in a micro-USB to full-USB dongle, and I can connect a real keyboard and mouse too.

What'd be even nicer would be a deck-of-cards sized "docking station", which could have 4 full USB ports (keyboard, mouse, thumb drive, spare), VGA out, and wired ethernet.

</comment><comment><USER10> Can someone point me to an IDE as awesome as this but for iOS? This will go on my phone, but I want something awesome like this for my iPad!

<comment><USER11> I'm not completely sure since I have no experience with almost nothing made by Apple, but I think the terms of service of the iOS App Store disallow compilers/interpreters. Also, you can't run unsigned binaries.

If I'm accurate, both of the aforementioned policies are sort of showstoppers for an IDE, except maybe for jailbroken devices.

<comment><USER10> Yeah, I was worried about that. Such a shame; Apple's the only one losing out on the opportunity. Codea rocks, but I'd like to see a more useful editor. Even without a real compiler or debugger.

</comment></comment></comment><comment><USER12> Pretty cool and I almost installed it before I noticed it was the largest filesize (31MB) of any Android app I've ever seen.

<comment><USER13> I gave it a try, and it's great. Love the keyboard and vim :)

</comment></comment><comment><USER14> This is awesome! What I'd like to see added next, I think, is gcc - I'd like to bootstrap from there to a package manager to installing all the other tools I'm used to having in a command line environment. Vim, bash and javac are nice, but I can't use it to work on my existing projects unless I can compile their dependencies.

</comment><comment><USER15> The problem is the lack of an efficient input method. I personally haven't come across any good soft full keyboard. And special keys won't work on bluetooth keyboards on old Android versions. I personally do not have a ICS device yet, but I think it's definitely possible to develope on ICS if the input problem is solved.</comment>


Is there any age limit to being a programmer ? - <AUTHOR> I am about to turn 24 next month, although I do have a keen interest in Technology but never have taken up programming. My question, is there any age limit to really getting to learn how to program ? please share your experience on how long did it take you to learn to program <comment><USER3> If you want to be a good programmer, you probably need to reformulate your question. You never "learn to program" and then just kick back and rest on your laurels. If you do, technology will soon overtake you. Good programmers are always learning.

So a better question is: am I interested enough in technology to continuously spend some quality time of my life keeping up with how people are making computers do stuff?

I think if you're interested (and able to find some way to consume technical material that works for you) that age doesn't matter in the least. But you've got to have enough passion to plow through boring stuff at times so that you can do cool stuff later on. And to really be good, you have to be able to rinse and repeat.

<comment><USER4> _You never "learn to program" and then just kick back and rest on your laurels. If you do, technology will soon overtake you. Good programmers are always learning._

Exactly. Programming is like being a doctor or a lawyer where the right term in those fields is to say you "practice (law|medicine)." We programmers should really get together and adopt that terminology.

<comment><USER5> While true I think it's important to really know a technology before moving on. You can do fine only learning one new and popular stack (language, popular frameworks / API's, debugger, etc) every ten years. Now days, if you really know, Java, Ruby, Python, or C#. Net it's not hard to get a decent job, but there is little need to know _all_ of them.

The trailing edge of the programming wold moves slowly so you have a few years to move onto the next trend before you become obsolete. Often you will make less money during those transition periods, but it's still worth.

PS: I only point this out because compared to the average American you can make a great living programming as a 9-5 job. You can step above that, but it's not required.

</comment></comment></comment><comment><USER4> A thing that, I think, is often overlooked is that when you start at something like this at a very young age you can miss important lessons. I don't have a concrete example, exactly, but I literally cannot remember starting to program - I just always have. The upside of that is that a ton of stuff is deeply internalized in me that I know newbies have a hard time "getting" at first. The downside, though, is probably the first 10 or 12 years of my programming life I spent doing things in weird ways with bad abstractions because I had no one to show me otherwise. (And at first I may have been too young to even grasp some abstractions anyway.) That can be a good learning experience because I learned a lot from "first principals" so-to-speak, but it also means that for many many years my programming skills were not well-directed and the process was extremely inefficient. By starting later in life you can avoid wasting so much time. It's not as hard to "catch up" to someone like me who has been doing it my whole life as you might expect. (Also, there's this neat thing called "The Internet" now... :)

</comment><comment><USER6> Here is my experience. I spent my 20s studying math. When I left grad school at 28 my first job was an introductory programming job. I previously had no interest in computers or programming. A year later I was able to get a much better programming job. Within 3 more years I had patches in the Perl core, a pretty good reputation on Perlmonks (a well-known programming forum), and was a decent programmer (though I had some pretty big gaps).

I am now 40 and am about to start a job at Google. I will always have a lot more to learn, but I'm pretty happy with how I've developed. So I think that 24 is not too late to start.

But you need to set reasonable expectations. You aren't going to start programming and in a month be the second coming of Ken Ritchie. If you take it seriously you should expect to see rapid improvement for several years. See <http://norvig.com/21-days.html> for more on that.

</comment><comment><USER7> The programming profession is young enough that not a great many of them have made it in to their sixties yet, but those that I know about and that did are going strong. Maybe a bit more cautious, maybe not quite as fast as before, but the quality is definitely still there.

I'm 45 and I find that I can't quite remember everything as easily as I used to, but I guess that is expected. I plan to keep on coding until my body fails me in a way that makes it impossible.

Just like I would assume a musician would always want to make music, even when older.

<comment><USER8> "I plan to keep on coding until my body fails me in a way that makes it impossible."

What is great about programming is that, as technologies progress, the odds that you will be able to keep programming until you just die keep getting better all the time.

</comment></comment><comment><USER9> I started to be serious about learning to program at 26. Then, I was in an entry-level position where I learned how to write spreadsheet macros on my own, with just the spreadsheet documentation as my guide. I also had a problem I needed to solve so my self-training was directed by what I needed to accomplish. That's often the best way to learn how to program: take a problem you want to solve and develop a solution with whatever tools you have available. When you have completed your first programming task, you will find that you have built foundation for you to tackle your next task, which may be even more complex than the first one you solved. Today there is an overwhelming amount of tools and information available for learning how to program on the Web.

Now I am 46 and have been building applications for almost 20 years and the learning doesn't stop. Even experienced programmers continually learn how to program as they pick up on new techniques, new programming languages, and new best practices. Good luck with your efforts.

</comment><comment><USER10> I've been programming since I was about 9, I'm now 39, and still learning. There's no end to learning, just new perspectives to see. I believe your starting environment can have a significant effect on your progress. If you pick something too obtuse and low level it may get hard to grasp some of the basic concepts you will need to master. These days I'd recommend JavaScript since you can start quickly in the broswer without having to learn an IDE. Also having the DOM to play with right away is fun, easy with obvious visual feedback that what you are doing is working (or not). I'd also start simply with the basic language, from scratch (without a library). Just learn the language and syntax. Get the O'Reilly JavaScript book make your dead simple index.html with inline JavaScript and see what you can do. Only once you get the basics, migrate to a framework (jQuery's a good choice). Oh, you'll want FireBug (or something similar too).

</comment><comment><USER11> My father-in-law was a mechanical engineer and manager. Never worked with software until he retired at age 62. He then taught himself how to program and built a sophisticated GIS system as a semi-hobby, semi-part-time consulting.

</comment><comment><USER12> I think you can become a decent programmer quickly, especially now when there are so many good books, high-order languages and tutorials on the subject. To master programming (like everything else) takes a lot of effort thought (check out Peter Norvig's "Teach yourself programming in Ten years" [1]). But even if it takes 10 years you will only be 34 and have about ~25 work years left in you... 25 years, that's a long time.

So if you are really liking the idea of programming, start small and do a small project - - like creating a site for one of your hobbies. I can recommend checking out Dive Into Python[2] and Why's (Poigant) Guide to Ruby [3]. There are lots of great (and free) books on programming out there, so you don't really have to invest any money...

Good luck :)

[1] <http://norvig.com/21-days.html>

[2] <http://www.diveintopython.org/>

[3] <http://mislav.uniqpath.com/poignant-guide/>

<comment><USER13> Ooh, I love Why's (Poignant) Guide to Ruby so far. Thank you for recommending it!

</comment></comment><comment><USER14> I have a classmate that started his undergrad when he was 24 and were almost completely clueless when it came to programming, computers and nerd culture in general.

Two years in hes hacking on side projects during lectures, referencing xkcd in casual conversation and has found areas of interests where hes more knowlegable than anyone else in my program where some of us have been into these types of things for as long as we can remember.

I know it hasn't been easy for him as the learning curve is rather steep but it flattens out so just don't give up, try to work the problems and questions when you have to (stackoverflow.com and vark.com are great depending on the size and difficulty) and you'll pick things up pretty quickly and I don't think you're starting out quite as bad as he did.

I started programming when I was 11 or 12, so I'm not really sure I can give you a satisfactory answer to the last question. I also learn new things every day so I wouldn't say I'm done and I hope I never will be.

<comment><USER15> I started programming when I was 10, over a decade later I build software for a living and am still clueless about nerd culture. Being a dweeb is not required.

</comment></comment><comment><USER16> One of the best programmers I know (my tutor in a sense) is 57 and started programming in his late 30's after buying out of the Air force.

So: no :)

<comment><USER8> Sorry for the aside, but how does one "buy out" of the Air force?

<comment><USER16> This is in the uk: in the RAF you obviously sign up fir at least X years. But at a certain point you can buy out you remaining years. I'd have to ask how it works.

</comment></comment></comment><comment><USER17> When you die, your programming abilities have expired. So, I'm sorry to say, the answer to your question is YES!

If anyone can convince you that you are too old to do anything while you are still breathing, then it's YOU who is being programmed, and if that happens then you aren't going to be worth much for anything.

</comment><comment><USER18> I started programming when I was 21 (I had a bit in school, and some at work before that) but I really got started at 21. Am I as good as others that I interact with, especially those who started way before I did. My certain answer is No. But that only drives me to learn more and work harder.

I spend time reading about Algorithms and Lisp and SICP and what have you. I spend time reading a lot of open source code, and writing a lot (both at work and in my spare time). I engage in conversations with those who are way smarter and experienced than I (both in person, and online - BTW HN is a great resource) hoping to find that one nugget of information that I can use.

To answer your question - See if it really "takes" over you. See if you find a thrill in making a computer bend to your wishes. See if technology really "tickles" you. Programming is for the most part about figuring things out. And that involves figuring out why things don't work. Yes, there is that tingling excitement when what you wanted to happen happens, but a large part of programming is debugging and maintenance, reading documentation and exiting (and often pretty badly done) existing source code.

How long did it take for me to learn? I doubt I will ever be done. Programmers, at least the good ones are constantly learning. Books, blogs, online forums, in-person discussions and your own experiments.

I don't think there is an age limit to learning it, but my experience has been that for people like me, it's a struggle (YMMV). I know there are things I don't know, and discussions like those at HN are very humbling. I am constantly trying to "catch" up with those that have more experience, but that's not a bad thing. It keeps me on my toes.

My take on this - Dig in something that gets you going quickly. Someone suggested JavaScript, I would recommend something like Ruby or Clojure. Buy a book, fire up your text editor and start writing. You can soon upgrade to one of the classics like Structure and Interpretation of Computer Programs to a get a good foundation, and take it from there.

[Update - Sorry, I did not realize how long that was. My apologies if that comes across as a rant, it's not. I hope it helps]

</comment><comment><USER19> It takes 10 years to master programming, but 24 is not too late at all. I know a lot of people that started in their twenties and now are good programmers.

My problem instead starts to be how much time I can continue to do programming for work. I'm 32, it seems fair to me to continue for another 10 years, but should I switch at some point? My dream is to turn myself into a teacher around 45 opening a programming school, but probably children can learn faster just by internet than with an old teacher ;)

<comment><USER20> _My problem instead starts to be how much time I can continue to do programming for work._

I'd assume you can continue until you no longer find it interesting...

</comment></comment><comment><USER8> As others have pointed out, there is no age limit, and the learning never stops. But like anything else, you can take it as far as you want to go - <USER2> around the block or the rest of your life. Just start and see what happens. Even if you end up writing just the simplest "hello world" program and decide to never go any further, you will have learned something most people have no clue about and will at least begin to understand the potential of what is possible.

</comment><comment><USER21> If I could start playing the violin at 22, learning programming at 24 is not even a question!!!

<comment><USER22> How old are you now?

</comment></comment><comment><USER23> Lucky for you 24 is the cutoff date from starting to learn programming. It has been scientifically proven that it is impossible to learn how to program past the age of 24.

Ok. I lie.

1\. Select a language you would like to learn. Taking time to figure out which language to learn first shapes the way you will learn programming. Get advice from programmers. I would recommend one of three routes.

Route 1: (the low road) Learning languages like C/C++ or Java can be great for learning the base fundamentals. Then you can appreciate what fancy higher level languages do for you later.

Route 2: (the high road) Choose a language like Ruby or Python. These languages have a lot of magic and allow you to accomplish your goals in less lines of code. Higher level languages really make programming fun, IMHO.

Route 3: (the pretty road) If you are a visual learner, programming Flash's Action Script 3 or JavaScript would be a decent option. Learning Flash as a platform may be kind of distracting to accomplishing the goal of learning how to program, but it could be used as a visual way to learn programming.

2\. Think of a project that will be fun. Don't set your sites too high.

3\. Read a book or two first just to get some of the basics down. Don't get hung up with the drudgery of some of the contrived examples. Take what you learn as you learn it, and try to apply it to your project when possible.

(Personal Bias Alert! For your own sake, avoid PHP unless you want to learn some really bad habits. Also I would urge you to select an open source technology. Open source communities generally are more willing to help you learn from my past experience.)

</comment><comment><USER24> The age limit is you can't learn to program when you're -0.5 years old. You need to be at least 1. Also if you're over 80 you should worry about RSI.

</comment><comment><USER25> If you think you might enjoy it then do it. I started at 33 and it was one of the best decisions of my life. As for how long, think in terms of hours. If you want to get up to speed quickly, then put in a lot of hours to it. When I started I worked 120 hours a week to get up to speed. I enjoyed it enough that it didn't feel like I was killing myself. YMMV.

</comment><comment><USER26> Is there an age limit to thinking? An age limit to "living"? Seriously, there is no age limit to anything. I'm 23 years old with no formal training in Comp Sci and I'm teaching myself Scheme as we speak (The Little Schemer is a great book!).

If you want to climb Mt. Everest and you're 70 years old, what is holding you back? Health? Get healthy. Doctor saying no? Screw em' (I'd rather die on top of Mt. Everest than sick in a bed).

Stop asking for permission from those around you and go f'ing do it if you want to. Stop caring about what other people think, stop being insecure in your "not knowing" and you will achieve whatever it is you want.

</comment><comment><USER27> Very similar topic on SO: [http://stackoverflow.com/questions/1048004/start- programming...](http://stackoverflow.com/questions/1048004/start-programming- at-27)

</comment><comment><USER28> In short... no. It's going to take dedication on your part, to get up to speed, but in months you should be able to code, and in months/years if you like, do this professionally. I think with many things in life, if you really enjoy something you'll excel at it regardless of preconceived "talent". Also, its best not to ask for permission to try something since some people will say no, just go with it and act like you don't know any better in terms of likelihood to succeed.

</comment><comment><USER29> My obsession with programming started when I was 14 (I'm 46 now) and it's still going strong. I've noticed that it takes me longer to code stuff than when I was in my 20's & 30's but the quality of my code has improved dramatically over that time and as a result, I spend a lot less time debugging than I used to. I think that as long as you can look back at your old code and realize just how bad it was, then you're still learning and there's hope for you.

</comment><comment><USER30> I began to learn programming when I was 11, now I'm almost 22. As for the answer, in my opinion, it's never late to learn anything. Like Nike's motto goes, Just do it.

</comment><comment><USER31> No. Of course, I'm just 23 and I learned when I was 17ish, so maybe I have no relevant experience. However, the people who taught me learned in their 40s. Anyway, I expect to have to learn new things about new languages and new ways to program every few months for the rest of the forseeable future. So, no, there is no age limit, and if there were... it wouldn't be 24... it would be much closer to 110.

</comment><comment><USER32> I was recently listening to one of the podcast of Ruby on Rails creator, DHH and he said, he started programming in the early 20's and he has certainly made a small dent in the universe.

I understand that, we are surrounded by successful stories of Programmers or Entrepreneurs who started programming at an early age but that shouldn't stop you from learning Programming. "It's better late than never".

</comment><comment><USER20> Some variation of this question comes up every couple of months. It's unfortunate that somehow many people get the message that they are not among the 'select' group of people who can learn new things. Especially since this belief often becomes a self-fulfilling prophecy.

I feel sympathy for people, of whatever age, who seem to need reassurance that, yes, they really are capable of learning.

</comment><comment><USER33> I started with programming when I was 27. I've been a power _user_ of computers for a long time, but it was first when I took some university courses in programming and found Perl that I finally found a programming langueage that fit me. What drove me to programming was that I was making all these .html documents and it was a PITA to update them all.

</comment><comment><USER34> I taught myself around age 25. I learned Perl and Java, and had a position within about 6-8 months. I was fortunate to have some connections in the industry, and found what was basically an apprenticeship under a programmer who was brilliant, and also self-taught.

As another commenter pointed out, curiosity is a critical part of being self- taught.

</comment><comment><USER35> I started to be serious about programming at 33. 6 months for me was enough to get started. Of course there is a difference between being able to program and being able to program well. The latter takes longer, potentially a lifetime depending on what you mean by "well".

</comment><comment><USER36> Loads of people learned programming when they were older than 24. It's not a problem.

</comment><comment><USER37> a curious mind will be a learning mind.

</comment><comment><USER38> I'm 57. I started programming at 52. I was an electronic engineer and the most I ever did was assembly and some C. I own some fast food restaurants and my wife suggested we get online. Long story short, I couldn't spell "web developer" but now I are one.

<comment><USER39> Can you do a thread elsewhere about owning the restaurants? I'm fascinated by the food business.

<comment><USER40> This is how you end up with a small fortune in the food business: start with a big one!

</comment></comment></comment><comment><USER41> Absolutely not, and 24 is young.

When you're 22, it's intimidating to compete with the people who have been on a career path since high school (e.g. the kid who knew he wanted to be an investment banker when he was 13, and has been reading the WSJ since 1997). It creates the illusion that the only way to succeed is to have been planning for it since you were in grade school. What you learn later on is that pretty much everyone interesting will change career tracks at least once in his or her life, and have to start over. It's not so bad, because a lot of the skills you've learned previously transfer over.

Advice: pick up a language (I'd choose Clojure, but HN would have some good advice here) and start writing code. It doesn't matter if it's useful; just become comfortable with the process. Find a job where you'll be able to learn from a mentor more experienced than you are.

</comment><comment><USER42> No, but just remember - when you're working for people younger than you, it's probably time to become an entrepreneur or director. Very rarely does "programming" offer a salary commensurate with the level of seniority older people actually have attained.

When you're middle aged and not paid what you're really worth, it borders on pathetic, not just merely sad.

<comment><USER43> 42 year old programmer here. just wanted to say "fuck you". thanks.

<comment><USER42> Help yourself out. If you were paid what you're really worth, you wouldn't have any desire to say that. I'm sure there are programmers out there reading HN who make over 200 grand (or are wealthy from other means) who are not trying to say "fuck you" to me, because they are in the class of professionals who are actually paid what they're worth.

Don't shoot the messenger, my friend.

<http://www.acooke.org/>

Is this you? Wonder why you're based in Chile.... something to do with the cost of living, perhaps? Wage arbitrage means you don't disagree with me at all, in fact you seem to be in vehement concurrence.</comment></comment></comment>


Email Introduction Etiquette - <AUTHOR> http://blog.42floors.com/email-introduction-protocol/ <comment><USER2> If you're like me, and sometimes jump to the discussion before reading the article, please go ahead and read the article. It's one of those rare ones that is truly a summary of itself: super short, information dense, with every part having meaning and nothing else.

This protocol is super simple, and allows for very efficient transfer of information without putting people in uncomfortable situations.

<comment><USER3> Here's another take on the subject: double opt-in introduction by Fred Wilson: [http://www.avc.com/a_vc/2009/11/the-double-optin- introductio...](http://www.avc.com/a_vc/2009/11/the-double-optin- introduction.html)

<comment><USER4> so if one person opts in, and the other does not, do you just tell the first: "sorry he wasn't interested in meeting you"?

<comment><USER5> This has always been my issue with these e-mails.

Either way, it will be awkward, and checking in with someone to see if they can be introduced just adds another e-mail to the chain.

Maybe I'm just overly choosy with who I introduce, but I have never had someone not respond, or say "No, I don't want to be introduced to that person." It just always seems to add an unnecessary step.

</comment></comment></comment></comment><comment><USER6> > makes a specific ask

You mean ask a specific question? Or is this silicon valley jargon?

edit:

Through the power of The Googles I now realize he could have been using the stock market form of 'ask'. It makes some sense since you're asking for an investment. Not that I like it any better...

       The price a seller is willing to accept for a security,
       also known as the offer price. Along with the price, the
       ask quote will generally also stipulate the amount of the
       security willing to be sold at that price.

[http://www.investopedia.com/terms/a/ask.asp](http://www.investopedia.com/terms/a/ask.asp)

<comment><USER7> It's nasty language change which has spread, kind of like "I spoke to she about that problem" is spreading. Not specific to SV, but extremely common here.

<comment><USER8> "ask" as a noun is fine (even outside of finance). I've never seen or heard "spoke to she" and Google doesn't seem to turn up anything.

<comment><USER7> I hear it occasionally. I hear its equally-appalling equivalent all the time: "Please join Mary and I in welcoming John to our team."

Of course, prescriptive grammar is for the birds, anyway.

<comment><USER9> That's surely just an over-reaction to people being told "and _I_ " in response to a sentence like "Mary and me would like to welcome John to the team". You can't win.

<comment><USER10> As a kid, you get 'Me and Mary' as the subject corrected to 'Mary and I' for reasons of both grammar and politeness. Some people don't understand or remember the compound reason and just use 'and I' everywhere.

</comment></comment></comment></comment></comment></comment><comment><USER11> Can anyone clarify—why BCC?

More precisely, what purpose does moving Mark to BCC, and then acknowledging that and addressing him in the letter, serve? Why not just exclude him from the conversation completely, or leave in CC if you're still addressing him?

<comment><USER12> Most people don't make a good use of BCC.

Another instance where it is useful is when asking a question at a mail list but asking that anyone who answers only addresses the you not the whole email list.

Just send the email with the list in BCC, and that's gonna be automatic.

<comment><USER13> That's a pretty rude and selfish way to approach a mailing list.

I wouldn't be surprised if such a question goes on to be ignored.

<comment><USER14> There are uses:

        From: me
        To: me
        Bcc: foo-enthusiasts
        Subject: [survey] what's your favorite version?

        What's your favorite version of foo?  Write me off-list
        and I'll post back to summarize.

<comment><USER15> From RFC 1855, _Netiquette Guidelines_ , Section 3.1.2, _Mailing List Guidelines_ :

> If you ask a question, be sure to post a summary. When doing so, truly > summarize rather than send a cumulation of the messages you receive.

[http://www.apps.ietf.org/rfc/rfc1855.html#page-10](http://www.apps.ietf.org/rfc/rfc1855.html#page-10)

</comment></comment></comment></comment></comment><comment><USER16> This is spot on, but this is still a PITA for everyone involved. There should still be a better way.

<comment><USER17> Yes, I fully expected this to be an article about how to "fix" this problem situation. I have to say that I have been in a few of the positions in this sort of chain, and now if I'm the inviter, I always just CC both. Not forwarding on the entire chain feels dishonest. (Obviously the invitee doesn't need to read the whole thread, but it's there for posterity, and to give context.) If the "busy person" is so rude that they wouldn't want the introduction in the first place, then they can be that rude themselves, and not leave it to the middle person, IMO. If they're not rude but not interested, then they can take the 2 minutes it takes to compose a "bowing out" email. Sheesh.

<comment><USER18> As a frequent introducer, I would never forward the whole chain.

Consider the case of a friend looking for a job. If they come to me asking for an introduction, they may be open with me about things they wouldn't tell a stranger in the first minute of contact. E.g., concerns about the target company, fears they might not measure up, things going on in their life. It's hard for me to know what they don't want shared, I want to minimize the risk a violation of trust, and I don't want to guess at what the recipient might have an issue with. So I'll always write my own intro or ask for something I can forward.

Also, if someone dumps some unwelcome request from a pal in my lap, I'd be irritated that I had to do the work of bowing out. It's their friend, not mine, so it shouldn't be my problem. For that reason, I always ask permission to do an intro unless I have strong reason to believe the intro would be welcome. (E.g., if somebody told me they're looking for developers, I'll do intros without confirming an interest in each specific person.)

<comment><USER19> I once worked at a place where the board members were having a discussion _about_ the CEO, and then of the board members decided to just cc: said CEO into the conversation at random, because "well we are talking about him and he deserves to know."

That board was not well-functioning.

</comment></comment></comment></comment><comment><USER20> As someone who does a lot of introducing, if someone already owes me a favor, sometimes I try to cut the middle step of, "Would you talk to X?" and just cc: them both, but I realize it's a bit presumptuous.

As the OP rightfully suggests, it's the little things in etiquette that are important.

<comment><USER21> I do this as well, though it seems in my field this is fine and acceptable behavoir (Unless you're from a competing research group...)

</comment></comment><comment><USER22> I find the social dynamics of To/CC/BCC really interesting. You only see it in Emails and it doesn't exist in any other communication medium. Most social communication platforms I can think of the top of my head only really support the "To" part of email.

<comment><USER23> BCC is pretty close to the social dynamics of in-person conversations that sound like: "Don't tell <person> I told you but FYI ...".

<comment><USER24> It's not typically used that way -- bcc is used to prevent disclosing all recipient emails, and it also prevents spamming all recipients on replies:

        to:  email@example.com
        bcc: recipient1@, recipient2@, . . .

Ever been part of a giant cc list that everyone replies to and hammers your inbox? bcc would have avoided that.

</comment></comment></comment><comment><USER25> I've often been tripped up by the semantics of the word "meet" in email introductions, as in "Nice to meet you". Everyone seems to want to reserve the word "meet" for actual in-person meeting, and I've seen such constructs as: "Pleased to 'meet' you" "Pleased to e-meet you" "Pleased to virtually meet you", etc

I'd love to hear how the language-sensitive hacker news crowd deals with this issue, and also what tortured constructions you've seen recently. Currently I'm using "pleased to make your acquaintance" or "thanks Jim for the intro", but neither of those is completely satisfactory.

<comment><USER26> I say "nice to meet you" or "nice to be introduced to you." If I'm feeling particularly edgy then I say "nice to be intro'd to you."

</comment></comment><comment><USER27> It's nice to have a reference like this, but as the comments on this thread display, everyone has their own preferred variant(s).

It's silly to think that there is a "one size fits all" email intro framework. Different contexts require different amounts of background information and introducer participation.

Really, the greater theme at play is the need for people to think more about how their actions (here, nearly effortless electronic ones) effect others. Sending email intros without understanding the benefits and detriments to both sides is impolite at best and downright rude at worst.

The Golden Rule applies, even to email.

</comment><comment><USER28> Great, actionable advice! I've been using Gagan Biyani's "forwardable email" as a guideline, which is very similar. [https://www.udemy.com/raising-capital- for-startups/](https://www.udemy.com/raising-capital-for-startups/)

It seems that the likelihood of the email being read increases the shorter email is. At the same time, I have found the shorter the email, the harder it is to write.

</comment><comment><USER29> Related: One of my favorite articles on how to send an email introduction: [http://jfleeg.tumblr.com/post/21231029406/the-art-of- making-...](http://jfleeg.tumblr.com/post/21231029406/the-art-of-making-an- email-intro-photo-above)

</comment><comment><USER30> This is generally the protocol I use. I like to use BCC during the handoff if the referral is coming to me. I'm surprised at how often I get pulled into conversations that I don't need to be a part of, because someone doesn't BCC me in return.

</comment><comment><USER31> Anytime I have worked for a larger organization, I wished they would have a quick session on best practices / etiquette with communication.

</comment><comment><USER32> The "fresh email" from Mark fails to satisfy the author's own prescription: it does not "make a specific ask".

</comment><comment><USER33> This proposed workflow reads like a product spec for a great web app... hopefully someone builds a website which does this exactly!

<comment><USER34> Do you think we really need a web app that does something this simple that can be accomplished via any existing email app/product? And I'm not trying to be a dick by saying that, I'm actually curious. I feel like I see sites that would do something like this (do something general, something that could easily be done with an existing app/product) a bunch of times each week that seem neat for a min, but then I completely forget about them. It always ends up being that the existing app/product you use a 100x a day is just easier to use/remember.

</comment></comment><comment><USER35> Wow, this is anal.

You can learn a lot about people by observing their etiquette.

(I am pretty sure what the first comment to this comment will be)

</comment><comment><USER36> Nice. Also learned how and when to really use BCC.

</comment><comment><USER37> Thanks, the BCC bit was interesting.

</comment><comment><USER38> A fine article, but - maybe this makes me a jerk - a bit obvious.

<comment><USER39> You'd think that, but the things that are obvious to you are not obvious to everyone <\--- which itself is a thing I used to think would be obvious to everyone.

</comment></comment><comment><USER40> This is why it's unreasonable to have any faith in the contemporary Silicon Valley. Cold-calling used to work out there, because it was full of people who just wanted to do a good job and help each other succeed. Now, you need an introduction because it's full of emasculated social climbers who need some way of determining whether a person is of sufficient social status to merit 30 seconds of consideration. Because of that, the positive-feedback loops that occur when hard-working people want each other to succeed have completely stopped in the Valley.

<comment><USER18> Oh, please. This intro etiquette isn't about status; it's about respect for people's time.

People still generally want to help people succeed. But people are also _busy_. I do intros like this pretty much any time I talk to two people who are likely to benefit by talking. I'd guess I average 2 a week.

I've been in San Francisco 14 years, and I think this place is even easier to navigate now than when I got here. Few cold call anymore, but that's more because we've got better things than phones. Meetups, conferences, mailing lists, on-line groups, and Twitter all allow people to connect in ways much better than strangers using a loud mechanical bell to interrupt somebody in the middle of whatever they were actually trying to do.

<comment><USER40> _People still generally want to help people succeed._

Doubt it. Rents and house prices are at a record high due to horrible NIMBY regulations and no one's doing a damn thing about it. Startup equity slices are tiny, and the old Silicon Valley guarantee (that working for a startup meant the founders would take a personal interest in setting you up to be a founder in your next gig) is long gone. VCs are funding lots of well-connected rich idiots, but if you don't come from the "right" social milieu, it's nearly impossible to get.

What used to be a quirky and different society is now a shitty knock-off of Manhattan that copies its worst parts but none of its good ones.

 _Few cold call anymore, but that 's more because we've got better things than phones._

s/call/email/g. You know what I mean. Obviously _calling_ someone you don't know is considered pretty rude these days.

<comment><USER18> Evidence? I don't see any of that as worse than 15 years ago except the rents. And that I'd blame on demand spikes more than nimbyism.</comment></comment></comment></comment>


Ask HN: Would you employ a developer who talks to himself during work? - <AUTHOR>

I know this question might sound bizarre. I have never met someone in my career talking to himself in front of his computer until recently and puzzled myself about the reasons and the impact on his work... <comment><USER2> Is he doing some kind of rubber duck debugging? <http://en.wikipedia.org/wiki/Rubber_duck_debugging>

I don't talk to myself, but sometimes by simply talking aloud about my problems to my peers I can flesh out a solution to a hard problem.

I have seen other programmers talk to themselves to find a solution when they're stuck, and it seems to work quite well.

<comment><USER3> What tends to happen with me is I'll hit a snag that I can't seem to figure out or debug myself. So I fire up gmail and write a note to one of the contractors who does odds and ends stuff for me.

I describe the problem in decent detail and ask when he/she is available to fix it. Send.

Then a few minutes later, the solution appears in my head, I go solve the problem myself, and send an apology note to my developer.

<comment><USER4> I do this too, but I've found that I don't usually need to hit send, I just save it as a draft then go take a walk. The answer usually comes to me when I come back, but if it doesn't I'll send it.

The act of explaining it in enough detail so another person could understand the problem usually increases my understanding of the problem.

</comment></comment></comment><comment><USER5> At least I know he's focused on his work. As opposed to say writing an Ask HN about it.

</comment><comment><USER6> Probably not, if he's doing that all the time, the office is shared, he does it in different voices and/or uses the Black Speech of Mordor.

Other than that, why not? When I'm behind closed doors, I sometimes to this myself, too. Giving thoughts proper form often helps to order them, so both writing and monologue are perfectly fine. That's what some people get out of pair programming.

</comment><comment><USER7> We had an employee once who essentially narrated himself. For instance, if he was installing the latest build of our software to test the installer, he might say something like this:

        I'm putting the floppy in the drive. I see it on the
        desktop. I'm double clicking it. I see the new
        installer. Now I'm opening RegEdit. I'm finding the
        keys for $OurProduct, and deleting them to test a fresh
        install. Now I'm double clicking the installer. I see
        a dialog box. I'm typing in my product key, and hitting
        the install button...

If you had to do anything with him, he'd include you in the narration:

        OK, now I'm watching Bob make a new release for me to test.
        His compile finished, and he's copying to a floppy. He's
        giving me the floppy. I'm going to go test it...

This got real annoying real fast.

<comment><USER8> Wow, that's hilarious. Any chance he was taking voice notes to a device?

</comment></comment><comment><USER9> I would, since I do it myself. Infrequently actually, but a lot of it is swearing.

</comment><comment><USER10> Do you accommodate other preferences of the developer? Do you let them adjust their chair or rearrange their desk? Do you let them come in at flex hours, as long as the work is done and they don't unduly inconvenience others (meetings, etc)? Do you let them wear headphones at work? Do you let them choose their preferred editor (again, as long as it doesn't inconvenience others) or perhaps even OS?

If so, why would you not accommodate someone who works slightly differently in this one way?

</comment><comment><USER11> It depends. If they are talking and it is barely audible, sure...I do this, and with the exceptional expletive, it's more or less silent. Most of the developers here, myself included, wear headphones for the day unless we're talking to one another. I don't think anyone even notices I'm mouthing things to myself or reading "out-loud" (e.g., moving my mouth).

Not totally related, but I'm also bobbing my head to music all day (usually groovesalad on some.fm)

All that said...how would you know if you're going to hire someone who talks to themselves anyway, or is this just hypothetical?

</comment><comment><USER12> Yes, I would. Thinking out loud helps a lot in my experience - and that's what most people perceive as "talking to himself".

</comment><comment><USER13> Since the question refers to a developer (a special category of employees) the answer is a strong "Yes".

<comment><USER14> Absolutely. I'm a developer who has hired 15-20 other developers in my time. "talks to himself" isn't a reason not to hire a nice, talented developer.

</comment></comment><comment><USER15> if they file clean code, solve problems, are positive in their nature and make the people around them great they can marry their their iPad.

some of the best people startup people, at least in my experience, are "unique."

Embrace the odd, create the future.

</comment><comment><USER16> I wouldn't. At one job, the desks were arranged so that I sat at my computer with my back to my coworker (who talked to himself/no-one-in-particular/me throughout the day) and I could never tell when he was trying to talk to me or just vocalizing something. Also, I found it annoying. A small annoyance, sure, but if it bothers your other developer's, it's not a good idea.

<comment><USER17> Well if you were doing the hiring I am guessing you can also set the seating.

<comment><USER16> Good point, as long as it is possible to place the self-talker in a place where others aren't bothered, whether that's alone, or with people who aren't bothered, it wouldn't be too bad.

</comment></comment></comment><comment><USER18> I wouldn't consider it a factor in an employment decision unless it was exceptional in some way (i.e. it was non-stop, extremely loud, disruptive).

<comment><AUTHOR> In fact, I was wondering if someone who needs to talk out loud has a different approach of solving problems or if he has even has some shortcomings given that he is not able to keep things in his mind. When children learn reading at school, the first step is to read loud, then to understand what they read out loud. It takes considerably more efforts until a child is able to understand a text she is reading silently.

<comment><USER19> That is certainly an interesting way to look at people talking to themselves, definitely correct with children. Personally I talk to myself a lot when working at home, and never when in an office (it is rude and distracting for other people). I think I do much better work at home, especially when trying to solve problems. For some reason saying something out loud can often make it clearer, easy to see something stupid you've done etc.

In theory anything you can do in a meeting, talking with others, can be done in email, but IMHO well run meetings are a very good way of bringing ideas together, solving problems etc. Talking to yourself is like having a meeting with yourself :-)

</comment></comment></comment><comment><USER20> Talking to yourself is fine. It's when you start responding to yourself that you should be worried.

<comment><USER21> This is funny, but I respond to my own questions all the time. Often out of sync with the timeline of events, too. I'll remember an answer and answer my question from 10 minutes ago all while discussing it with myself. ;)

<comment><USER22> Self correcting - first you talk to yourself, then you start answering yourself, then you argue with yourself - then you sulk and stop talking to you.

</comment></comment></comment><comment><USER23> There's a difference between delusional psychosis, being socially awkward, and talking to yourself to debug computer problems. However, some might believe it to be a very thin line between psychosis and debugging computer problems aloud.

</comment><comment><USER24> Depends. At the best, you're being paranoid. At the worst, he could be developing schizophrenia. Is he in his late teens or early twenties, does he sound agitated or paranoid? Is his thought process coherent? What is he talking about? A young, paranoid male talking gibberish to himself without regard for who's around would be concerning. If you want a great portrait of schizophrenia, watch "The Soloist": <http://www.imdb.com/title/tt0821642/>

But if he's not acting like that, then maybe he's just helping you expand your definition of normal.

</comment><comment><USER25> If they were working from home, sure :P

I can't see it impacting on their work, but it might irritate others.

There is an obvious second question though, how would you know before you employed them. The question then becomes, would you _fire_ an developer that talks to themselves at work.

In which case, No - I probably wouldn't. At least not without trying to find other ways of dealing with it, it is possible they don't even know they're doing it - and after making them aware you might find that they stop.

</comment><comment><USER26> Sometimes people with dislexia or other reading problems will read aloud. Sometimes, the only way they can process the content is by hearing it.

</comment><comment><USER27> Will he get a private office?

</comment><comment><USER28> I talk to myself during work most of the time (but usually it happens in the privacy of my head only). Or better, I talk to the monitor in front of me as if it would help debug something faster :) ... well sometimes it does, actually. But when i become very frustrated with the piece of code i am debugging, I usually say something out loud as well.... swearing mostly :D

</comment><comment><USER29> Sounds like the newest in agile techniques - pair programming for one. Write a book and start your consulting career now.

</comment><comment><USER30> I talk to myself, even when not working. So yes. He's just special.

Sometimes if you're eager to say something to real people, you may talk to yourself (ADHD people do it). If you're standing right there and he's talking to himself, then he either doesn't know you're there, or it's just helping him think.

<comment><USER31> Erm... I have ADHD and I don't do it.

<comment><USER30> Well there are different types of ADHD. It's related to the fact that ADHD people have bad working memory. So practicing how they would say stuff is a way to get it out before they forget it.

</comment></comment></comment><comment><USER32> No. I worked with a guy who did this. I didn't have to sit at the desk next to him, but the guy who did... Well, he absolutely hated it.

It's also quite a bit different than 2 people talking, or even someone talking on the phone.

I think a quiet workplace is very important for proper thinking.

</comment><comment><USER8> You know of good developers who don't?

I mean, as long as he isn't muttering about red staplers or burning the office down, what's the issue?

</comment><comment><USER33> this would be an incidental, to me. perhaps it would be annoying, but i don't feel like it would necessarily impact his actual work.

</comment><comment><USER34> Sure.

</comment><comment><USER35> Talking to yourself is a symptom of stress. Because your working memory is too populated by stressors in order to keep the entire "conversation" inside your head, you externalize it. Think of it as paging out. The only inconvenience is that it can bother people. Well, maybe there are other inconveniences, too, but I'm not aware of any studies that suggest externalized verbal problem solving creates worse results than internalized problem solving, though I suspect it actually might be the case.

<comment><USER36> > Talking to yourself is a symptom of stress.

Not always. I talk to myself all the time whether I'm happy, sad, stressed, relaxed, whatever. I just seem to solve problems better when I explain them to myself out loud -- see "rubber ducking": <http://c2.com/cgi/wiki?RubberDucking>

<comment><USER35> I agree that rubber ducking is a great technique. I also think that you can "have" both stress and the subjective affective state of happiness simultaneously.</comment></comment></comment>


Intel Demonstrates Why Linux Is so Much Better than Windows - <AUTHOR> http://news.softpedia.com/news/Intel-Demonstrates-Why-Linux-Is-so-Much-Better-than-Windows-402148.shtml <comment><USER2> > Everything that runs on Linux is accounted for. Every binary that runs in > the memory has a very specific purpose, and everything in the kernel is > screened by a mountain of people. Nothing is actually happening without the > user knowing about it.

This has exactly nothing to do with Linux.</comment>


Ask HN: What is a broke person's way to learn data engineering? - <AUTHOR> As a broke individual living in a third world country who wants to learn data engineering, how do I go about it? AWS/similar options seem to be super expensive to me, and I don't have access to clusters. Any advice? <comment><USER2> AWS, GCE, Azure, all of them offer credits for new accounts to experiment. You might be limited in some resources but you can learn a lot. Also, a lot of data tools such as Spark, Airflow, Kafka, etc can be deployed in Kubernetes, which can be run locally using Minikube. Just that and read a lot of blog posts.

</comment><comment><USER3> Most people (regardless of where they are in the world) are not going to be able to afford a cluster of any meaningful size. So, the best option is to learn these tools by running them on your local machine. You can use Virtualbox or Docker to set up virtual hosts within your machine to simulate a cluster.

Also, data engineering is a vast field. Pick an area that you would like to pursue first and go deep: Machine learning (feature extraction+training), Hadoop/Spark job processing, event streaming & aggregation etc.

Then try to find a entry level job that would allow you to apply what you learned and also get to expand your knowledge of running actual clusters.

</comment><comment><USER4> You need representative data; the sort you'll be working with. There's plenty of it for free on AWS. E.g. GDELT.

You then need use cases: things to do to the data. From this you learn how to process it using whatever tools you like.

How to set up clusters ... worry about that less. It's more and more commoditised over time and it's the admin part of data engineering anyway.

</comment><comment><USER5> We might be able to give you more targeted advice for your country.

I'm a massive advocate of community colleges over "boot camps" and other such educational vectors, but I'm not sure what infrastructure is already available in your country that would help you get on that path.

<comment><AUTHOR> Thanks for replying! I'm Indian. I only have access to a laptop at the moment. I'm not sure that educational programs in data engineering are so accessible to me, so I was looking to go the self learning route.

</comment></comment><comment><USER6> what is data engineering to you? You don't need a cloud provider to setup a "cluster". Look at kubernetes where you can run a "cluster" in 1 machine that will have multiple pods/services running.

</comment><comment><USER7> Hi, I can help you with logistics and learning. Can you ping me on firstname.lastname@example.com.</comment>


PyPy.js: Now faster than CPython - <AUTHOR> https://rfk.id.au/blog/entry/pypy-js-faster-than-cpython/ <comment><USER2> I felt it was a grave mistake for Python to direct the community effort into backwards incomparable Python 3, rather than on focusing on the speed (and better profiling instrumentation) of Python 2 (perhaps adding a standard JIT compiler). As a result, had our company started now, we would have written our Twisted server in C or Go instead of Python like we did.

<comment><USER3> Meanwhile, refactored PHP makes Wordpress 20% faster. [http://news.php.net/php.internals/73888](http://news.php.net/php.internals/73888) , [https://wiki.php.net/phpng](https://wiki.php.net/phpng) and [https://news.ycombinator.com/item?id=7699322](https://news.ycombinator.com/item?id=7699322)

HHVM and now PHP 5.7-dev, both with JIT - the future of PHP looks bright.

Starting a new project, we would choose PHP, Node.js or Go according to the requirements.

<comment><USER4> Yeah, so refactored PHP makes a PHP app 20% faster.

But you might actually not like to hear Node's V8 engine is between 50 and 150 _times_ faster than PHP in synthetic benchmarks, and about 20 _times_ faster in more diversified applications (as long as they don't sit an eternity blocking waiting on a DB call which is the way people did web apps 10 years ago). That's 2000% faster than PHP, just so we use the same units here.

I'm very happy PHP is getting faster and all, but just don't juxtapose it next to JS engines (which the article talks about), let alone something more serious like the JVM, because the "bright future" of PHP starts looking quite dim in comparison.

<comment><USER3> It depends, for things like Web Sockets Node.js is really good. But for other things, HHVM (Facebook's HipHop JIT) and the new PHP 5.7 dev with JIT are really fast.

Check out an independent benchmark for comparision: [http://www.techempower.com/benchmarks/#section=data-r9&hw=i7...](http://www.techempower.com/benchmarks/#section=data-r9&hw=i7&test=update)

</comment></comment></comment></comment><comment><USER5> I just ran the same test and got 80.8K pystones/sec (CPython) vs. 234.3K/sec (PyPy.js - Chrome, after a few warm-ups), so yeah, wow.

</comment><comment><USER6> I am colourblind and have problems with your choice of red and green for graphs.

<comment><USER7> Not that it shouldn't be fixed, but have you tried [http://www.ryobi- sol.co.jp/visolve/en/](http://www.ryobi-sol.co.jp/visolve/en/) ?

<comment><USER6> I have on Windows, didn't really "stick". But I'll try it out on mobile though, might be more useful as a form of augmented reality, thanks!

</comment></comment></comment><comment><USER8> I get 157K/sec in the terminal and 309K/sec in Chrome.

As the article says, Chrome's performance shows wide variation, even after JIT warmup. It's ranging from 50K/sec to 320K/sec. Bizarre.

<comment><USER9> JITs are great but can be unpredictable, that's probably the cause. As mentioned in the article, JITs vs AOT have upsides and downsides.

<comment><USER10> Doesn't Chrome specifically _not_ optimize asm.js, as well? Wonder if that has anything to do with it.

<comment><USER11> It doesn't special case the asm.js JS subset same way as Firefox does, but V8 guys are paying attention to optimizing asm.js-style code.

</comment></comment></comment></comment><comment><USER12> So for how long will the python community pretend that performance isn't a problem? (Inb4 "all the intensive parts of my app are written in C", _addendum: "my app isn't CPU bound", "we have libraries written in C"_)

The interpreters (esp CPython) need some hardcore engineering (like how javascript got V8). Languages that have the same theoretical performance limits of Python are now blowing it out of the water.

The stories about teams that were able to go down from N servers to 1 server by switching from Python to Go/Scala/node.js will hurt it in the long run.

<comment><USER13> Lots of people use Python for tasks that are not CPU-bound. Scalable web- whatever and scientific computing aren't the whole world.

<comment><USER14> Even scalable web-whatever is often IO-bound... of my several apps in production, there's only one where CPU is a serious concern, and I run that one on PyPy. cPython is fine for the others.

<comment><USER15> I'll go so far as to say that we haven't done enough with making things fast on multicore processors _except_ with IO-bound tasks. The current architecture of multicore processors stinks for achieving anything but the "embarrassingly parallel."

</comment></comment></comment></comment><comment><USER16> In the browser environment, people usually use quite a few inline anonymous functions. Javascript is great at this since you can define full-blown anonymous functions anywhere.

Python, on the other hand, is definitely one of the worst at this. You can only create one-line, single-expression anonymous function with its lambda keyword. Of all the languages you want to convert to JS so that it runs on the browser, Python is probably the last.

<comment><USER17> I really don't understand this obsession with anonymous functions. If you're doing anything longer than one line, there is absolutely no reason why you should be sticking the entire function definition as a parameter.

I've had great usage from Javascript where I have separate functions with proper names and formatting, and then pass a reference to them into the code that asks for them.

Can someone please enlighten me about this whole anonymous functions thing that Javascript seems to have popularized? What are some of the pro's of using it over regular named/defined functions that sit by themselves and are _reusable_.

<comment><USER18> I suggest you read SICP and gain an appreciation for higher-order functions. Once you do, you will probably have answered your own question. [http://mitpress.mit.edu/sicp/](http://mitpress.mit.edu/sicp/)

<comment><USER19> Doesn't that section use lambda for anonymous functions? [http://mitpress.mit.edu/sicp/full-text/book/book- Z-H-12.html...](http://mitpress.mit.edu/sicp/full-text/book/book- Z-H-12.html#%_sec_1.3.2)

The OP is complaining about lambda functions in Python.

<comment><USER18> In python, it would be proper to say that ALL functions are lambdas except that some/most of those lambdas are assigned to variables via syntactic sugar (this is made very plain in sicp which is the main reason for suggesting it).The only thing different about python vs most other languages is guido refusing to implement multi-line lambdas.

As to any complaint, lambdas exist in python (that is, are made accessible to the programmer) for the exact reason python also has a for loop in addition to a while loop -- because they make things easier and more maintainable.

      def myApplyAdd(func, x):
        return lambda y: func(x+y)

      applyAddInst = myApplyAdd(lambda z: z*2, 20)
      applyAddInst(3) #output 26

becomes much less maintainable without lambdas and pollutes the scope with unnecessary variables you must then keep track of

      def myApplyAdd(func, x):
        def innerAdd (y):
          return func(x + y)
        return innerAdd

      def mulByTwo(x):
        return x*2

      applyAddInstance = myApplyAdd(mulByTwo, 20)
      applyAddInst(3) #output 26

I would also note that list comprehensions make heavy use of lambdas. For example, the following is actually using a for loop and calling

      lambda i: i**2

each each iteration

      result = [ i**2 for i in range(3, 30) ]

<comment><USER17> _" In python, it would be proper to say that ALL functions are lambdas except that some/most of those lambdas are assigned to variables via syntactic sugar"_

If a function is "assigned to a variable" then it's no longer a lambda, because it's bound to an identifier. But I suppose the lines are a tad blurred.

<comment><USER18> While I agree that the function "has a name", the function is still anonymous in the sense that pointers don't have types, only values have types. As a side effect of converting church's model to Turing's model, all "unnamed" lambda functions are given one-time symbols as are all anonymous numbers, arrays, classes, objects, etc.

      x = lambda x: x+x #a lambda, but has a named pointer
      x = 5

lambda is still in memory (until garbage collection), but it no longer has a pointer to it.

      def x(y):
        return y+y

      x = 5 #the "named" function above is now without a pointer

A little off-topic (but answers your previous question and perhaps looks a little deeper into lambdas), but let's take a quick look at javascript. JS developers use lambda functions both because lexical closures don't pollute the global namespace, they offer modules and alternatives to prototypal objects, and because the language tends to make heavy use of callbacks (which demonstrate the bad side of lambda functions). JS also only makes subtle differences between lambdas and named functions.

      //lambda expression
      var x = function (){};

      //named function
      function x() {}

      //named lambda expression
      var x = function x() {};

      //self-executing lambda (returns 5)
      (function (x) {return x;}(5));

note that this would be a self-executing lambda in python

      (lambda x: x)(5)

basic module pattern using self-executing lambda

      my_module = (function (self) {
        "use strict"
        self = self || {};

        //private
        //pretty much inaccessible to the outside scope
        var privateVar = 5;
        //lambda expression again
        var privateFunc = function () {};

        //public
        self.publicVar = 5;
        self.publicFunc = function () {};
        self.getPrivateVar = function () {
          return privateVar;
        };

        return self;
      }(my_module));

      my_module.publicVar = 8;
      my_module.publicFunc();
      my_module.getPrivateVar();

This is where too many lambdas becomes a problem. Judicious use of naming (even though they're only used once) makes things more legible.

      func1(function () {
        func2(function () {
          func3(function () {
            func4(function () {
          })
        })
      })

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> Does this work at all in Safari? Is Safari's crappy performance of native->js ever going to catch up to FF and Chrome?

<comment><USER9> Yes, Safari has been working on an LLVM-based JIT called FTL. It now outperforms v8 on almost all asm.js benchmarks,

[http://arewefastyet.com/#machine=12&view=breakdown&suite=asm...](http://arewefastyet.com/#machine=12&view=breakdown&suite=asmjs- apps)

That's not in release versions of Safari yet, it was just enabled on trunk. But it will make Safari very competitive once more.

<comment><USER15> What if LLVM based JITs with NaCL style security were available in all browsers except IE? (I'm just assuming Microsoft will drag their heels.) Then an LLVM IR based bytecode could become a standard bytecode for browsers.

<comment><USER18> I believe that in many ways, this would be ideal. Not only could any language be used (the implementers being responsible for interfacing with the browser API), but the LLVM pseudo-asm could be pre-optimized saving the browser a lot of work.

In the meantime, browsers would still be free to compete based on their JIT implementations.

With rust and by proxy, Mozilla/Samsung's experimental Servo layout engine targeting the LLVM, I can also see potential synergy in this situation.

</comment></comment></comment></comment><comment><USER21> Still trying to find a suitable "python to js compiler written in js that runs in the browser" project.PyPy.js is unfortunatly too big and all the other projects i found are either written in python or dont pass the browserify step.I need a transpiler that runs in the browser.

</comment><comment><USER22> It's not faster on my computer, a 32bit netbook with an Intel Atom N450 chip (all scores average of five warm runs):

        CPython 2.7.5:  27032
        PyPy.js:        20103
        PyPy 2.0.2:    444011

I ran PyPy.js on Firefox 29.

</comment><comment><USER23> Python in the browser so far is a big disappointment. I still find it a lot easier to just split frontend and backend development. In the future, PyPy.js might become a viable alternative for big browser applications.

</comment><comment><USER17> Am I the only one that considers the title of this very "bait"-y? I mean, if you go on and read the article, it clearly shows that native PyPy is leaps and bounds faster than the JS version. So in essence, it re-iterates what most of us already know... That the PyPy implementation is much faster than the standard CPython one. It's just now we get to "prove" it in JS as well, as if it's some "suck it, python users" flaunt.

On a side note: To the PyPy.js authors/devs, great job! Looking forward to playing around with this.

<comment><USER24> According to the author, it is deliberately bait-y:

        OK OK, I couldn't resist that title but it probably goes a bit far. Let me try for
        a little more nuance:
            PyPy.js: Now faster than CPython, on a single carefully-tuned benchmark,
            after JIT warmup.</comment></comment>


When 911 calls fail - <AUTHOR> http://www.theverge.com/2014/10/3/6414949/911-call-failures-fcc <comment><USER2> Please HN, there are a few comments in this thread talking about "taking action" if you happen to be a bystander during an emergency.

Let me implore you. If the area isn't safe, do not even attempt to enter the scene. Fires can instantly flare up and engulf a room in seconds. Rivers can be so cold they cause shock upon entering the water and, in some cases, they cause cardiac arrest. Tiny pieces of broken glass can cause deep, sometimes life-threatening lacerations. An accident on the side of the road can immediately escalate into a multi-vehicle incident if another driver doesn't pay attention.

What we don't want to happen is for you, the hero, to become another patient. Not only are you putting your life in danger, you're also increasing the risk for your rescuers as well.

What you can do is this:

1\. Secure the scene. If the accident occurred at the side of the road, park behind the accident and turn your hazards on. Wave at traffic to slow down and be cautious around the accident. If there is a house fire, try to find the gas shut-off valve and turn it off.

2\. Assist the location of the scene. It's often difficult for EMS to locate the scene of the emergency. Standing near the front of the building or the entrance to the parking lot and flagging the ambulance/PD/fire down helps a ton. Leading them directly to the scene is just as important.

3\. Use your common sense. Don't let the panic take hold of you. Be rational, reasonable. I'm not saying you should never try to help someone, just make sure that YOU are safe FIRST before heading in to assist.

I hold EMT/Paramedic certs and volunteer in my spare time.

Thanks.

Edit: I also want to point out that there is generally very little anyone can do aside from basic management of the ABC's (airway, breathing and circulation) without equipment. Some of that equipment is located onboard a fire truck or an ambulance. Most of that equipment is usually found inside the operating room of your local hospital. The faster the patient is moved safely to the local ED, the better it is.

<comment><USER3> >I also want to point out that there is generally very little anyone can do aside from basic management of the ABC's (airway, breathing and circulation) without equipment

When I took CPR causes we were told to start doing cpr before calling an ambulance, unless we thought it was a heart attack (since the person would be death by the time the ambulance arrived otherwise). Was this wrong?

<comment><USER4> You're usually taught to yell for help as you start CPR. There's not really a way to tell if a person has a had a heart attack without an EKG or labs. You can assess for cardiac arrest (that's the whole reason for CPR), and any time the heart is stopped, the best chance for the patient is immediate, high quality CPR.

The only exception to this rule is if you are in an area where no one will find you unless you call for help yourself. For example, if you are home alone with someone and you start CPR, you will probably need to stop out of exhaustion before someone will hear you cries for help. In this case, you need to call 911 first. If you're in a mall or something, then leave the emergency call to someone else and get started on chest compression.

</comment></comment></comment><comment><USER5> I started the first VoIP 9-1-1 service for providers. 9-1-1 and similar emergency response services are a great boon. Something most people just take for granted and figure it just works like magic. The job those people have is mostly thankless and comes with killer stress. (Listening to a few recordings, I'd have a breakdown within a day on that job.)

On a more HN-note, I saw an interesting glimpse into how some of the responders view privacy. In context of what to do for VoIP phones, the general feeling at one NENA meeting was "ISPs should provide detailed location information on any access lines to VoIP devices". The implication there is that any software on your computer or network would be able to do a real "geo IP" lookup because your ISP would have to provide your address of record to anything using the connection. No one seemed to realise the massive problem this would create.

The other interesting thing is that PSAPs are heading towards an interconnected model. The idea being (at least a few years ago) that PSAPs could all be on the Internet, and transfer calls to each other with SIP + some nutty extensions, bridge in translators, a real utopia. Which sounds nice until you realise so many PSAPs are woefully underfunded and in no position to be running critical infrastructure on the Internet. Hopefully states would step up and provide adequate funding and it could be pulled off as a government project. But it's not so clear, and there's a long way to go. One PSAP told us he didn't want us sending calls from "Internet phones" because his PSAP equipment might get a virus (over his voice line.)

<comment><USER6> SWAT'ing would be way too easy if there was a really easy VoIP solution to call 911.

<comment><USER5> SWAT'ing is trivially performed. Sign up for VoIP service, dial 911. Many systems also have normal phone numbers that go into a 911 center, or to a failover call processing place.

Police departments will also let you submit crime reports online. I "swatted" myself by accident after filing a report because one of my license plates was missing. I didn't get any follow up, so I figured I'd just go deal with it later. A bit after that, a cop pulls me over, draws his weapon, aims -- because my car pops up as stolen on his scanner. If someone was to file such a report on someone with concealed carry, I'll be the outcome could be pretty bad.

<comment><USER7> I feel like i'm missing part of the story. You reported a stolen license plate and it got translated to a stolen car?

<comment><USER5> I had two plates, and I guess one fell off or got stolen or something. So I still had my back plate on. Since the PD never confirmed anything after the online report, I figured I would have to go down and do it in person some time. But apparently not.

Since there was zero confirmation, this means you can just do the same to anyone. If the person is particularly jumpy, disabled, has mental issues, etc. it could easily get serious.

</comment></comment></comment></comment></comment><comment><USER8> This is why some states have chosen to go with a single PSAP for the whole state - Cellular E911 has a couple problems, one - the geolocation features of cell phones is best effort, and if it fails, the best the company can do is guess from which site/sector the call is coming in on to route them to the correct PSAP. Two - the cellular networks on whole are best effort, cellular as a technology cannot be as reliable as a wireline hookup, period.

In the future, I believe the move to VoLTE will make E911 more reliable, as it will enable more location data to be sent from the handset at the time of call, but until then, the most reliable way to get geolocation data to a PSAP is to use a landline, period, the landline telephone, is and will remain more reliable, consistent and predictable than any of the technologies replacing it.

As far as why the carrier couldnt be reached? likely calling the wrong place - Sprint FWIW is and has been in the midst of a forklift network upgrade for a couple years now, its just wrapping up now, but parts of the network have been partially non-functional for hours or days at a time - I know however that regular e911 drive testing is a part of test and turnup, and the planned maintenance process for Sprint.

<comment><USER9> The UK has (essentially) one PSAP for the whole country (it's not actually — there's a number spread across the country for reasons of redundancy, but call allocations are done across the whole network).

It has a few interesting results — most notably, when giving a location, they likely know nothing about it. If you say you're in "Central Park, Fakesville", and it's a small park where you can see the whole thing from the entrance, they will still ask you where about in the park you are — because they don't know. People in high-stress situations can end up wasting time trying to describe in gratuitous detail where they are, instead of just giving an answer like, "it's small; they'll see".

I'm surprised that the situation wasn't handled better by the phones, though. At least here, if a mobile can contact _any tower_ (regardless of network), an emergency call can be placed through it without charge. I suppose if the emergency line is already stagnated, trying again on a different network would just make it worse. Hmm…

<comment><USER10> A month or two ago I had to call 999 to report a fire on my road. I gave the names of my road and neighbourhood and the operator asked which town or city I was in.

This threw me a little as I live in what is, arguably, the UK's second city (Manchester) and assumed that the system would have at least identified that much from the cell tower.

Still, the fire brigade responded within 5-10 minutes of me placing the call and had the blaze under control little more than 10 minutes after that so I guess the system works.

<comment><USER9> They almost certainly had it on the screen in front of them. They typically ask for full details anyway, primarily to confirm. City often gets asked separately to make sure the report gets to the right place.

</comment></comment></comment></comment><comment><USER11> 911 for mobile is hard. Just routing to the right PSAP is tough. In the early days of cellular, California originally routed all cellular 911 calls to the California Highway Patrol, on the grounds that someone was probably calling from a car. The CHP ended up running a sizable call center to redirect emergency calls.

Only recently did most phones have GPS capability. Picking the PSAP based on cell tower gets you to roughly the right place, but PSAPs have to have really good handoff capability to nearby jurisdictions, and some of them don't.

All this is a separate issue from calling 911 and not getting any answer. That's a serious carrier failure and should be treated as such.

</comment><comment><USER12> Interesting - carriers need to _..track callers to within 50 meters horizontally and 3 meters vertically_

This poses a problem in dense urban areas with high-rise buildings. The private sector companies mentioned in the article who "zipping ahead" of carriers can provide an altitude using things like wifi tracking, but that still needs to be cross-referenced to an actual floor number. (Keep in mind some buildings don't have a 13th floor, etc.) Barometers in phones don't work well indoors either...

So, this may be a case where an FCC regulation is next to impossible to meet, unless someone can figure out how to map altitudes to actual building floor numbers at scale. Seems like that would be pretty labor intensive effort...

<comment><USER13> Where does the FCC regulation say you need to map it to a specific floor? The carrier just has to say where the person is, not how to get to them. They don't have to provide navigation directions to the EMS crew do they? Seems to me like just giving an elevation and coordinates would be compliant.

<comment><USER12> They need to be accurate within 3 meters vertically, and telling a first responder that a call came in from an area say 1000ft above sea level would not be that helpful to him/her when standing in front of a 45 storey building, wondering which floor they should go to.

So, it would seem knowing the floor number would be super helpful (though maybe not a regulatory requirement as you say.)

<comment><USER14> Presumably, the first responder could could have an altimeter (or gps) and know their own height.

<comment><USER12> Better, but still not going to be overly helpful. Call came from 1000ft, first responder is standing at 750ft - there are 250ft of floors in between.

<comment><USER15> So now we just need to carry blueprints for every building that tells us how tall the floors are...

</comment></comment></comment></comment></comment></comment><comment><USER16> I understand that it's a good idea keep the local (10-digit) numbers in your phone for the police and fire departments where you live and work. See, for example the San Francisco PD web site [http://www.sf- police.org/index.aspx?page=38](http://www.sf-police.org/index.aspx?page=38) which notes, "When calling 911 on a cellular phone near a highway, the call is connected to The California Highway Patrol (CHP) dispatch center."

</comment><comment><USER17> _Leneweaver attempted to track down Sprint employees about the outage, but couldn 't reach anyone at the company.

[...]

Two weeks later, Leneweaver got in touch with the company._

Erm, how is this okay?

<comment><USER18> You really shouldn't be allowed to sell a phone - or collect revenue from a phone - that isn't able to call 911.

</comment></comment><comment><USER19> I have had this experience in Maryland in 2009. Luckily it wasn't a very serious emergency in then end. There was a small explosion in our heater and I smelled smoke, so I wanted the fire department to check it out. I called 911 repeatedly on my cell and repeatedly got a busy signal, finally I went back in the house, got out my computer (before smart phones) and looked up the local fire department number. After they arrived they asked me if I called 911, and I said I couldn't get through and they said I needed to keep trying so they had it for their records?!? The fact that they asked sort of implies that this happens often (or maybe they just knew that I had called directly). It was a weird experience, and turned out that I was lucky that the heater hadn't completely exploded. I definitely don't think I will ever trust 911 again.

</comment><comment><USER20> The title should be clearer: E911 is not 911. This is why we still have an overpriced landline at my home.

</comment><comment><USER21> I am on Sprint, would like to test my 9-1-1 coverage, but unsure how without making a false 9-1-1 call.

<comment><USER22> In setting up (and verifying) several VoIP E-911 systems and other PSTN phone systems, I've made dozens of "test" calls without issue. When the dispatcher answers, just tell them that you are testing 911 service and that you would like to verify that you got connected to the correct dispatching center.

I've never had one of the dispatchers become upset at this - they want your 911 calls to succeed just as much as you do.

<comment> k-mcgrady I can understand doing this as part of your job to test a system but isn't it reckless for people to do it just to test their own phones? You're taking up one of a limited number of phones lines for 10-20 seconds, potentially leaving someone in a life threatening situation unable to get through in the only 10-20 seconds they have the opportunity to make the call in.

<comment><USER23> If everyone did this at once, it might overwhelm the call center, but in general a E911 call center needs to have far more capacity than there are calls (or otherwise an urgent call might go unanswered).

My understanding is the key rules are:

1) wait for an operator and do not hang up (because if you hang up they assume something bad happened and will send police/fire/etc to you), and,

2) tell them that it is a test call so that they can assess whether they can spend time on you or should hang up to answer a more urgent call.

I'm sure kids call 911 enough as a prank that your test call won't have a meaningful impact on call volume.

<comment><USER24> In my area there were actually advertisements on the radio asking people to use the lock function on their cellphone to prevent pocket-calls to 911 a few years back. They claimed it had become a problem.

It leads me to wonder if your comment about capacity (which I assumed was the case as well) does not apply evenly everywhere.

<comment><USER23> Well, if you don't tell them it's a test call and you pocket dial, I would hope that the 911 call center would assume that you're being held hostage and send police/fire/etc. to you.

So, IMO, that the system isn't meant to handle this type of false alarm isn't reflective of call center capacity but rather fire/police/ambulance capacity (and also annoying everyone involved).

</comment></comment></comment></comment></comment></comment><comment><USER25> What about setting up the phones so that dialling 911/999 etc shows the current GPS co-ordinates on the phone screen (on phones that GPS enabled).

That or even a button on the screen that will "read" them to the telephone operator at the other end.

</comment><comment><USER26> This looks like an opportunity for an app. Your phone has GPS and a better idea of where you are than the cell network. What if you could open a 911 app, tick a few check boxes (Is this a medical emergency? violent situation? Do you require an ambulance, fire truck, and/or police?), and it would post your GPS coordinates and your cell number. The local dispatch office would than automatically call you and hook you up with a dispatcher who gets the details.

<comment><USER13> What is this theoretical app providing that isn't established within the first 10 seconds of a 911 call?

<comment><USER27> It could be a much faster, nicer way to answer the question 'where are you?'

This is obviously anecdotal, but I've had to call 911 a couple times (I live in NYC, things happen on the subway). Explaining where I am took up 75% of those calls. They want very precise details and it's sometimes hard to answer to the level of detail they want.

Example: I once had to call 911 when a woman fainted in the middle of the platform. I spent (seriously) several minutes explaining my location to the 911 operator. I was waiting for a train that only has one platform - the train goes east/west, and eastbound stops on the opposite side of the same platform as the westbound. The 911 operator couldn't process this and kept asking me whether I was on the westbound or the eastbound platform.

We wasted a few minutes going back and forth on this - which could've been critical if the woman was in need of urgent medical care.

<comment><USER28> It would also allow you to make a 911 "call" silently, which in some (admittedly rare) circumstances would be a huge benefit.

</comment></comment></comment></comment><comment><USER29> The main image say "911, what's your emergency?", but in my experience they have always intro'd with "911, where is your emergency?". I wonder if there was a protocol change where they figured that the location was the most important piece of information in case the phone call got cut short.

</comment><comment> t-rex1 This is just crazy, the FCC keeping quiet is quite unbelievable.

<comment><USER5> It's more sensationalist than crazy. The only worthwhile point is that the FCC should get around to looking at the location accuracy requirements for indoor usage.

But talking about the article, suppose there is a scheduled maintenance that will affect service, and there's no way around it. What exactly should the telco do? There's not a whole lot they _can_ do. Yeah, it's bad if the service is unavailable, and generally, no one wants that to be the situation. But somehow trynna make it out to some terrible secret is silly.

<comment><USER30> Getting a fast busy signal when calling 911 when you _have service_ and can reach normal numbers is a serious problem that needs to be resolved no matter what angle you take.

For the other issues, agreed, there's only so much you can reasonably expect.

</comment></comment></comment><comment><USER31> Fascinating, never thought about these implications before for network carriers.

</comment><comment><USER32> This may be slightly off-topic, but it's also important.

911 is not there to help you. You need to know how to help yourself.

My story - Interstate 880 in the East Bay, Fremont, CA. Not a desolate stretch of highway, not in the middle of nowhere (I mean, Fremont sucks but...)

I saw an SUV swerve and then roll in front of me on the highway. Took out 2 other cars as well. Slid on its roof about 50 feet then stopped. Gasoline, debris, and fruit (it was carrying fruit?) strewn about the Freeway.

Tons of people pull over. Insanity.

The car is still running, and gas is pouring out of the SUV. A bystander and myself get the passengers out. They're unconscious. I recognize the danger of moving them, but the fire danger was very real.

Anyway, long story short -- guy goes into shock. Pisses himself, won't respond.

15 people had called 911.

Elapsed time? 20 minutes.

Still not a single local PD, Firetruck, or CHP officer.

The first officer was DRIVING BY on the freeway and didn't know the accident had even happened.

Imagine that was your wife, your son, your partner, your family.

We had a nurse stop and give care. We also had a contractor who had a box of flares stop and close lanes for us. This was all citizens doing work.

Shortly after this incident, I bought a handgun. Because I knew when seconds count, the police/fire/emt are MINUTES away.

(I also took medical course)

<comment><USER11> "The car is still running, and gas is pouring out of the SUV." ... "I bought a handgun."

A fire extinguisher and a first aid kit in your car might be more useful.

<comment><USER9> It's worthwhile to note that in many places you are _legally obliged_ to have both in your car.

<comment><USER33> most us states are not those places.</comment></comment></comment></comment>