How to Naturally Reset Your Sleep Cycle In One Night - <AUTHOR> http://www.wisebread.com/how-to-naturally-reset-your-sleep-cycle-overnight <comment><USER2> For everyone that's intent on doing this, I've tried it before and it didn't work. I fly quite often between Honolulu and the East Coast to see family, and there's a six hour time difference. The jetlag is pretty terrible. Someone told me about this research and I tried it out very excited to finally have a way to avoid the jetlag, but it absolutely didn't work — at least, for me. Furthermore, not eating for 16 hours is not very enjoyable — arguably, it was less enjoyable than a couple days of jetlag.

</comment><comment><USER3> I am planning to change my sleeping schedule tonight as it happens. I have just enough time to try this and see if it helps. I have changed my schedule before, so I will have past experience to compare it to. I will reply to myself tomorrow morning to let you know if it seems to help or not.

<comment><USER4> Be careful about this, I have personally had _a_ (as in one) horrid experience, YMMV. (I've done this 3 times, and yes it works however I fasted for a full 16-17 hours.)

Back story: I irresponsibly slept for 2-3 weeks. Racking up a sleep debt of sometimes 4 hours per night. So by the time that I decided to reset my schedule I was about 24 hours+ in sleep debt. Needless to say I used this exact method, I didn't eat for 16 hours before, and I had to get up a 7 so I stopped eating around 3PM. This was a bad idea, I didn't have a very filling lunch, and after a while if you've done this before you note that not eating makes you very very very sleepy. I left work around 5:15. I fell asleep around 5:30, unfortunately I was still driving at the time. The car veered into the oncomming lane (it was empty) and went up the curb, on which was a small hill. I was still asleep when this happened, and then the car went up so far it couldn't sustain, and it flipped back into my lane (this happened at 40-50 MPH). Needless to say I awoke scared shitless as I was plummeting towards the ground and my airbags were deploying.

I escaped the accident with just some cuts on my hand from the shattered glass from the side windows. My car was totaled. The officer who came on site gave me a 200$ ticket. My father took me to the hospital, where I was given a CAT scan and everything checked out fine. However I had no way of getting to work. The car wasn't worth much it was an 11 year old Ford Escort Coup. Blue book value was around $4,000. The moral of the story is, be thankful for what you have, sleep responsibly and take care of yourself.

The accident was last Monday.

<comment><USER5> Another argument in favor of public transportation.

<comment><USER6> Trust the Japanese salaryman on this: public transportation is not a panacea for avoiding accidents caused by drowsiness. You have to be able to get to the train station and from the train station to your house, all without killing yourself.

I have become a frequent face at a local hotel because I was so tired I did not trust myself to do that. (The project at issue is mostly done. Thank God.)

(Quick sidenote: Five minutes before checking into the hotel to avoid killing myself walking down the street, I was being paid time-and-a-half because my workplace apparently thought that my presence was adding value. Some of you people reading this will eventually be engineering managers. If you ever are, prior to ordering Heroic Efforts (TM), please consider whether you really want me working on a production system in that state.)

<comment><USER4> I'd argue it's much easier to fall asleep sitting rather than walking.

<comment><USER7> For sufficiently high values of drowsiness, the difference can become negligible.

</comment></comment></comment></comment></comment></comment><comment><USER8> If I have a full meal I barely can stay awake. I know that the body switches into a different mode to process the meal and extract the proteins etc and for this it drains me of other energy like focusing. It is interesting how my productivity increases with hunger. That's why lions sleep 20 hours a day. After a massive meal they can barely do anything but digest. So I think mammals' first thing of the day is to go out and find food. Once food found and eaten there's no point to stay awake. I really think that a meal concludes the day not starts it in the animal world. Although providing the body with just enough to keep it fueled and in a way that it won't have to put you to sleep to extract the proteins we can make ourselves do more and take hunger & sleeping off our minds during the day.

To stay fresh just don't starve or over-eat yourselves. It works for me.

<comment><USER9> It can also depend on _what_ you eat from what I hear. Some foods can wreak more havoc on blood sugar levels than others.

<comment><USER8> True. Some types of food will take a lot of work from the digestive system to be broken down before the body can use them as a source of energy. That's why you put highly refined petrol into a car and not raw oil. It's choosing a musli bar over a burger...well almost.

<comment><USER10> Actually... a burger (without the bun, ideally with lots of veggies) will trigger a much less jagged insulin response than a musli bar will.

Fats and proteins tend to raise the blood sugar in a much more sustainable fashion... thus allowing the eater to not feel sleepy after a meal.

<comment><USER7> "A more sustainable fashion" relative to what? Carbohydrates, I'm guessing?

</comment></comment></comment></comment></comment><comment><USER11> I've flown back and forth Between Toronto and Amsterdam on a two week schedule for over two years. My take away lesson is this:

The body can adapt fairly easily to a longer day but it hates shortening days (and that's my body, so YMMV).

My trick to deal with jet-lag was very simple. Extend your day. Make sure you have plenty of low energy things to do but stay awake on the day that you travel.

Going 'west' makes your day 6 hours longer, going 'east' then makes your day 18 hours longer. 18 is pushing it a bit so I usually would go to bed around 10 in the evening and sleep for 9 hours instead of going to bed at 12 and sleeping for 7.

This simple trick seemed to work for me and I never suffered from jet lag after I started doing it, before it was absolute hell. It would take me roughly until the time that I was ready to leave again to acclimatize.

</comment><comment><USER12> Why do I read Hacker News?

Because the week I'm to fly from California to Ohio, an article about hacking jet lag is on the front page.

Awesome

<comment><USER13> I dunno if fasting for 12+ hours is worth it for a three hour time difference!

<comment><USER14> Fasting is considered to have some health benefits by many, so maybe you can kill two birds with one stone here. Though I guess 12 hour fasting would be too short to benefit.

</comment></comment></comment><comment><USER15> Melatonin is natural and works wonders, and you can eat!

<http://en.wikipedia.org/wiki/Melatonin>

<comment><USER16> The nice thing about melatonin is that it's not addictive. About three days, and the body finds its pattern. As the article mentioned, fasting during the correct times would work but that + a low dosage of melatonin 30 minutes before the desired bedtime would probably work even better.

<comment><USER7> Something important to note is that melatonin is not going to force you to sleep. You're not going to fall asleep staring at a computer screen if you take a dose of melatonin. It will make you sufficiently tired to sleep if you lie down and close your eyes for a bit, but it's not going to overcome the awareness-brainhack that is staring at bright light.

</comment></comment></comment><comment><USER17> I accidentally noticed this a few years ago and have been waking up refreshed ever since (prior to this I was consistently groggy in the morning my whole life). I attempt to eat a large breakfast, a normal sized lunch, and then a light healthy snack in the evening if I must. Probably not for everyone but it's worked for me.

<comment><USER9> Ah, interesting. So for you, the fact that you where eating large dinners and not much of a breakfast was throwing your sleep out of whack before?

<comment><USER17> Not really, just the fact that I was eating later in the day. The hunch is that the energy being used to digest food while sleeping is now being used to re-energize my brain. I rarely need an alarm clock anymore.

</comment></comment></comment><comment><USER18> Nice...I've been trying to wake up earlier and get on the same sleep schedule as hubby (I'm a night owl, he's a morning person, constant source of relationship tension). Maybe this will work...although since I don't work well when I'm famished, I'll have to wait until I have a free day to try it.

</comment><comment><USER19> I never eat a breakfast. I usually eat my first meal after 12 closer to 2. I am now convinced I need to set up an easy breakfast the night before. Cause this night owl stuff just isn't working anymore.

<comment><USER20> Sounds familiar. I am naturally something of a night owl. I used to really dislike eating breakfast. I just didn't feel hungry in the morning and it seemed like too much hassle to prepare something. But now that I have actually started to have breakfast as part of my morning routine (I really had to force myself to begin with) I find that my energy levels during the morning are much improved and so is my concentration.

I'd recommend you try something that you don't have to chew too much to begin with. Like oat meal (lots of complex carbohydrates which is good for me because I do weight training). I buy boxes of compressed bricks of oats that come apart once soaked in milk for a while. two or three bricks in a bowl and I usually add a little protein powder (weight training again) and maybe a little extra sweetener (usually the protein powder is enough). Quick to eat and I'm not really big on chewy/crunchy stuff right after I get up, too much effort. :)

</comment></comment><comment><USER21> Seeing as I'm on a plane every few years I'll defiantly try this out.

On a side note, did anyone else find this amusing?

 _Here's a quick summary of Saper's research findings:

"For a small mammal, finding food on a daily basis is a critical mission. Even a few days of starvation, a common threat in natural environments, may result in death," the study said._

I would never have guessed!

</comment><comment><AUTHOR> Well, I just tried it. Didn't it since 4pm yesterday, and woke up at around 6:50 with the help of an alarm (which usually don't work).

I just had breakfast, and will not eat after 4pm today either, and see when I fall asleep/wake up without an alarm this time.

</comment><comment><USER22> This was posted on HN before. I think another article cited that it was 10-16 hours beforehand.

The other 3 tips were to focus on exposure to sunlight, routinizing the whole sleeping/waking process, and exercising during the day.

</comment><comment><USER23> Or, just do it with a natural nutritional supplement available OTC in the USA. <http://en.wikipedia.org/wiki/Melatonin>

</comment><comment><USER24> Hey, that can come in handy! I want to get up a bit earlier without using an alarm, so I hope it works!

<comment><USER4> In my experience you'll wake several times in the night in bursts of energy (as a defense mechanism telling you to get food), they'll subside if you lay there for about 10 minutes and you'll cruise right back to sleep just from your body trying to conserve energy.

<comment><USER7> Very handy to know! Thank you.</comment></comment></comment>


Gokrazy – a pure-Go userland for Raspberry Pi 3 appliances - <AUTHOR> https://gokrazy.github.io/?hn <comment><USER2> A while ago, I had the "krazy" idea of writing my own single binary Go router software on top of linux kernel. Turns out it's fairly easy to get up and running with literally having nothing but a kernel image and a single executable that gets called on boot. My kernel booted in less than 2 second on a VM.

<comment><USER3> I guess the next step would be to try a uni-kernel. ClickOS claims to be able to boot in 20ms.

[http://unikernel.org/projects/](http://unikernel.org/projects/)

<comment><USER4> Also, MigrageOS is amazingly fast, and can use tons of existing OCaml libraries.

<comment><USER5> Or just use IncludeOS, and you'll have the option to recompile most of the software out there (as IncludeOS is C++).

<comment><USER6> Including the memory corruption bugs written by those that use it as "C with C++ compiler".

</comment></comment></comment></comment></comment><comment><USER7> Very cool project! I'm just getting started with Go and my target platform is the Raspberry Pi (and other low-powered ARM boards). Will the newly-announced Zero W support this?

<comment><USER8> Unfortunately not. The arm64 architecture is a requirement (see also [https://www.reddit.com/r/golang/comments/5xgf8u/gokrazy_a_pu...](https://www.reddit.com/r/golang/comments/5xgf8u/gokrazy_a_purego_userland_for_your_raspberry_pi_3/dei7b2m/)), and the Zero W uses the older BCM2835 SoC, which is not arm64.

<comment><USER9> It's armv6 and golang may be dropping support for it [https://github.com/golang/go/issues/17082](https://github.com/golang/go/issues/17082)

</comment></comment></comment><comment><USER10> The documentation says to compile with GOARCH=amd64; isn't RPI3 an ARM architecture? Is that a typo, or am I misunderstanding something?

<comment><USER11> Either a typo that was fixed in the meanwhile, or you misread. It currently reads "arm64".

<comment><USER10> Ah, I probably misread. Thanks!

</comment></comment></comment><comment><USER12> this seems fun.

I wonder though if bringing Go or Rust bare metal onto the Pi would give you the smallest attack surface?

[http://blog.thiago.me/raspberry-pi-bare-metal-programming- wi...](http://blog.thiago.me/raspberry-pi-bare-metal-programming-with-rust/)

<comment><USER10> Go doesn't currently run on bare metal, though I think there are forks that do. At any rate, this would be unusable for most interesting programs unless you plan to rewrite all of the things the kernel gives you in Go/Rust (though there are projects which aim to do this as well).

<comment><USER6> The most usable thing would be to prove to naysayers that it is possible to use Go in such scenarios.

Another usable thing would be to program bare metal devices without memory corruption issues.

</comment></comment></comment><comment><USER13> Anything like this available for .NET Core?

<comment><USER14> Yes, .NET Micro Framework is a thing.

Also what's notable is that it was opened up in 2009--a full five years before all the hubbub about core and corefx. And it's under Apache 2.0, so if any organization has any problems swallowing the terms of MS's patent grant on .NET Core, they have a more palatable option.

[http://netmf.github.io](http://netmf.github.io)

</comment></comment><comment><USER15> What would it take to get this to support other ARM boards? (Especially the Orange Pi in my case.)

<comment><USER16> They have no plans to but would entertain someone volunteering: [https://www.reddit.com/r/golang/comments/5xgf8u/gokrazy_a_pu...](https://www.reddit.com/r/golang/comments/5xgf8u/gokrazy_a_purego_userland_for_your_raspberry_pi_3/dei6fim/)

</comment></comment><comment><USER17> If I ever write a Go thing I'll be sure to call it Getnuts.

</comment><comment><USER18> does it support docker?

<comment><USER19> no, docker does not work with CGO_ENABLED=0

</comment></comment><comment><USER20> Excellent. Perhaps it's finally time to build a wunderground-consulting sprinkler timer...</comment>


UX design: Tools, methods and frameworks for generalists - <AUTHOR> https://nickdewilde.substack.com/p/the-keyring-zac-halbert-on-ux-design <comment><USER2> Great post!

To op, for tools like Figma, what do you think the future holds? In what dimension will they evolve? How can they help you be more effective? Will they help you express your ideas in ever higher fidelity over time? [1]

[1] Biased questions, but genuinely curious about the op's answers given his deep expertise in the field (as the founder of [https://mintdata.com](https://mintdata.com))

<comment><USER3> Great question. Figma is leaps and bounds closer to giving designers tools that work like code, but it still has a long way to go. My wish list design tool is something that has the creative flexibility of design canvas, but the power of clean, performant code. Truthfully I think it'll require evolution both in the design tools space, but also the HTML and CSS specs.

For instance, in Figma we've only had a reliable way of adding something simple like button padding (where you can create a reusable button that will expand as you type a longer label) for a year. There have been plugins that did it before that, but they weren't reliable. This is crazy when you consider you've had the ability to add padding to a box in CSS for _decades_. At the same time, try doing a complex layout in HTML/CSS, which requires you to learn about flexbox, floats, position, and/or CSS grid. Compare that to the ability to just draw a box, move, scale, and rotate it in a design tool.

So I see design tools and browser tools converging over time to allow designers, engineers, even product managers a layer of abstraction over interfaces that feels much more intuitive, with less duplication. Right now, I have components in Figma that mirror components we use in React, though this is usually manual effort which is also a bit crazy. I don't really count WYSIWYG editors as having figured this out yet, since they produce garbage code in my experience.

<comment><USER4> Like this? [https://news.ycombinator.com/item?id=24096004](https://news.ycombinator.com/item?id=24096004)</comment></comment></comment>


How essential is Maths? - <AUTHOR> I'm in my final year of studying computer science/programming in university. I'm pretty good at programming, infact I'm one of the top in my class. However, I struggle with my math classes, barely passing each semester. Is this odd, to be good at programming but be useless at maths? What worries me the most is what I've read about applying for programming positions in places like Google and Microsoft, where they ask you a random math question. I know that I'd panic and just fail on the spot... edit: Thanks for all the tips and advice. I was only using Google and Microsoft as an example, since everyone knows them. Oh and for all the redditors commenting about 'Maths' vs 'Math', I'm not from the US and was unaware that it had a different spelling over there. Perhaps I should forget the MATHS and take up English asap! <comment><USER2> How do we report spam users?

jackson_1 seems to be both "final year of studying computer science" and "So I'm a 3rd year electrical engineering student" ([https://news.ycombinator.com/item?id=11825550](https://news.ycombinator.com/item?id=11825550))

the text from both of those questions mentions reddit, and can be googled and traced to ~2010...

</comment><comment><USER3> Depends a little: essencial _for what_?

Also, "math" is a very, very broad term. What comes to your mind when you think of "math"? Arithmeric operations? Being good at mental calculations at the supermarket? High-school-level math? Calculus? Discrete math? Abstract algebra? The answer to this question alone may point out the fact that you struggle with a specific branch of math, not with math as a whole.

That being said, I don't think it's _essential_ for _most_ coding/software engineering work. There are some exceptions, though:

\- Real Computer _Science_ work. Think research-level position in the industry.

\- Systems that rely on math properties to work (math is tangential). For a simple example, consider implementing the compare() method for a custom class. That may require some basic understanding of abstract-ish algebra to ensure that the semantic conditions (the ones your compiler can't check via static analysis), for example.

\- Systems that are built around (or almost around) a math concept: machine learning, 3D graphics programming, Monoids for big data calculations, Monads for functional programming, etc.

Except for heavier research work, I don't think you absolutely need a _prior_ "ability" with math to learn the concepts required to work even with mathematically-inclined systems. You may need to work harder on getting your head around certain concepts, though.

</comment><comment><USER4> 1 - You shouldn't take English. "Math" is U.S. English. "Maths" is British English for Mathematics. The French also write "Maths" for "Mathématiques". In Arabic, it's رياضيات. A plural in every one of those languages.

I use U.S. English, but I mostly write "Maths". Here's for the nit-pick. Nobody can accuse you of sucking at English since the British, you know, the people who spoke English first, write it that way.

2 - How essential?

I don't know and it depends. I personally do Maths for several reasons:

* Fun. I enjoy it. I find it beautiful on the rare occasions I understand it, so it's a glimpse of what lies ahead and motivates me to keep at it despite being inept. It's something I'll keep doing until I die.

* Preemptive measure to understand things in the future so that I don't have to worry about the Maths aspect of a hypothetical topic. I'm comforted in this logic because it has helped me in the past in finding solutions (for instance, Taylor series to simplify modulation in a transistor circuit).

* Some topics require a certain sophistication: I had courses in Control Systems (continuous and discrete) and there's a bunch of topics like Hamilton-Jacobi-Bellman, stability, optimal control, etc) that, if you want to understand, require a certain toolbox. You can get by without having that toolbox but you'd only be good at blindly _applying_ formulas and computing results, basically what a computer can do better than you.

That's only my naive opinion. I don't even have a job so what do I know.

</comment><comment><USER5> Do you plan to apply to Google or Microsoft? There are literally thousands of companies that aren't Google or Microsoft. And most of those companies don't have every "programmer" and their brother applying to them. I don't think you should be too worried about math. Assuming you can count, add, divide, etc. Unless you are creating advanced algorithms that have never been created before (i.e. Cryptography).</comment>


Innovation at Google - <AUTHOR> http://www.infoq.com/presentations/Innovation-at-Google

<comment><AUTHOR> Surprised this got no traction. It is one of the best "getting started" talks I've seen for a while. Real ideas based on real world experience from a company that is demonstrably successful at innovation. Seriously, well worth viewing.</comment>


Major U.S. climate report says damages are 'intensifying across the country' - <AUTHOR> https://www.washingtonpost.com/amphtml/energy-environment/2018/11/23/major-trump-administration-climate-report-says-damages-are-intensifying-across-country/ <comment><USER2> I think the focus on regional effects is a good one because people relate to them much more easily. Today there is also a great article in the NYT on climate change in Yellowstone. It talks about snowpack, drought, and invasive species of weeds and bugs that are more prevalent because of shorter warmer winters. That kind of specificity hit home for me living in the Midwest. In the past few years our ash trees were ravaged by the Emerald Ashbore and just this year a horribly difficult weed, the yellow nutsedge, began spreading. Both of these are new in our area because of warmer temperatures.

</comment><comment><USER3> Discussion of original source, currently on front page: [https://news.ycombinator.com/item?id=18518407](https://news.ycombinator.com/item?id=18518407)</comment>


PGP habits could be better - <AUTHOR> https://wowana.me/blog/my-and-your-pgp-habits-could-be-better.xht <comment><USER3> What I'm really seeing here is a person documenting a whole lot of performative stuff they do --- grooming their keys, fastidiously using 4096-bit RSA (whatever breaks 2048 bit RSA is going to end RSA, by the way), signing other people's keys, creating lots of separate PGP keys and grooming the metadata on them, publishing a "proper canary" \--- or wish they were doing.

Which is a big problem with PGP. All the ceremony repels normal users, makes the system far harder to use, but also tightly binds enthusiasts to its subculture, making it that much harder to improve.

<comment><USER4> PGP seems like a leaky abstraction. I am highly technical and my eyes glaze over when I see terms like elliptic curve.

What should I use if want to send dead simple, foolproof encrypted email? (Foolproof in that I can trust that updating the program will patch vulnerabilities and incorporate the state of the art methods)

<comment><USER3> You can't send a foolproof encrypted email. Email is insecure and always will be. The idea that PGP could make it secure was always a fantasy. Efail should have been the final nail in the coffin. If you want to talk to other people securely, use a secure messenger; secure messenger cryptography is its own distinct subfield of cryptography research, and real secure messengers have cryptography purposely designed for it. It involves elliptic curves, but you don't have to think about that.

Signal is the best of the lot, but Wire, or anything else that uses Signal Protocol is fine.

<comment><USER5> > Signal uses standard cellular mobile numbers as identifiers

This is a big no. Even Wire uses metadata but only requires an e-mail account. I would like to see Ricochet ([https://ricochet.im/](https://ricochet.im/)) picked up by someone. Tor hidden services have been improved with added features which Ricochet does not utilize. I skimmed through the codebase and I came across some issues, heck, even the design is a bit obsolete as we have better algorithms with better parameters. Regardless, the idea is great and this is definitely doable, even by modifying Ricochet's codebase.

There is Cwtch ([https://cwtch.im/](https://cwtch.im/)) that extends Ricochet to support multi-party messaging. I did not dig deep into it, but it may use the same algorithms. Additionally, it uses a language with a GC.

I think a Ricochet-like IM software written in Ada/SPARK using libsparkcrypto ([https://github.com/Componolit/libsparkcrypto](https://github.com/Componolit/libsparkcrypto)) would be ideal.

<comment><USER6> > _Signal uses standard cellular mobile numbers as identifiers_

Exactly and what's to say I want some random guy on the internet being able to call my phone.

Keep in mind tptacek quite literally pastes replies gushing about Signal/Wire in any thread related to PGP or instant messaging. They even paste it in threads which mention PGP but talk about other issues such as file encryption, signing etc, ie the uses not covered by an instant messaging platform. I have come to just skimming over anything they say because of it. Come on, put a bit of effort into your reply.

> _Wire uses metadata but only requires an e-mail account._

It also doesn't offer federation. At this point I think Matrix is the best hope if you're okay with minimal metadata. It is also making huge strides of progress if you keep up to date with their development, so that's exciting. [https://matrix.org/blog/posts](https://matrix.org/blog/posts)

> _There is Cwtch ([https://cwtch.im/](https://cwtch.im/)) that extends > Ricochet to support multi-party messaging. I did not dig deep into it, but > it may use the same algorithms. Additionally, it uses a language with a GC._

I have high hopes for Cwtch. It seems to be a common thing people don't want to address: metadata. That said you can have a fairly meta-dataless experience with Matrix if you run a server and don't federate.

Ideally I'd like to see this get solved [https://github.com/vector-im/riot- web/issues/2320#issuecomme...](https://github.com/vector-im/riot- web/issues/2320#issuecomment-485227466)

<comment><USER7> To be completely fair tptacek is a recognised security expert. Yes, he likes Signal. Apparently like you, I disagree (their refusal to implement non- personally identifying information as an identity is enough for me). However, I'm not a recognised security expert (and just between you and me, I'm not actually a security expert... or even more than mildly competent... maybe not even that... ;-) ).

He's got his opinions and he states them pretty clearly. I don't think that's a crime. I've discussed his opinions with him in threads before and I can't see anywhere where he's obviously wrong. When I've asked him directly about the identifiers, he's declined to answer -- which makes me think that he probably agrees but thinks that the other issues are more important than that. I could be wrong, but that's my impression.

<comment><USER8> _he 's declined to answer -- which makes me think_

You don't have to, it's easy to pull the plentiful relevant hadith:

[https://hn.algolia.com/?query=author:tptacek%20signal%20phon...](https://hn.algolia.com/?query=author:tptacek%20signal%20phone%20number&sort=byDate&dateRange=all&type=comment&storyText=false&prefix&page=0)

<comment><USER7> Cool. Thank you. It seems that my assumption was correct :-)

<comment><USER8> About the phone numbers? Not really how I read it. But that's just me - <USER2> impression from reading endless secure messenger HN threads is that both 'phone numbers' and 'federation' are ideological sideshows that have very little to do with the actual security and privacy properties of secure messengers.

<comment><USER7> I can only give you my feeling. There are 2 issues. One is security of the message itself. Can someone other than the key holder read the message? Do you have forward security (i.e. if I expose earlier messages do new messages become readable as well)? Is any of the meta data exposed? Can a third person collect information about the message apart from the message itself? Generally Signal looks good as far as I can tell from those perspectives.

Where it runs into problem is with authentication and protecting users from third parties collecting information about which people are exchanging information with each other. Signal makes the assumption that you don't mind that the person you are communicating with knows who you are. This makes it unacceptable for certain dissidents. The key you use to identify yourself allows the government (or almost anyone, really) to find out your name and your address.

All people in a conversation know who all the people participating in the conversation are. So even if the target of your conversation doesn't mind being identified, you may have third parties who make introductions. Those third parties _must_ be identified with Signal. This allows a potential attacker to build up profiles of who is associating with whom.

At one point Moxie was discussing the idea of a protocol which would allow parties to introduce one another without having to reveal their identities. As far as I know this hasn't been implemented yet (but I haven't been keeping track of development). Additionally, as far as I can tell, _Signal_ can potentially know which people are talking to which other people. Now, in the source code for their server, it doesn't, but there is actually no way to know that they are _really_ using that source code in production unmodified. The lack of federation means that there is no way to mitigate this risk (To be fair, I completely understand their point on federation, but again I find it disingenuous that all discussion of federation is thrown out of the window as being too difficult to implement -- without any acknowledgement that we still have a problem that we need to address!)

I don't think any of these issues are in dispute. The answer is simply: Signal does not intend to solve these problems. Their goal is to provide end to end encryption in the context of how you would use SMS. If that doesn't fit your purposes, then Signal will not work for you.

I honestly feel that people are being a bit disingenuous. There are plenty of situations where email is a great medium for exchanging information. To say that "Email can not be secured" and that you should go to a messaging format is not exactly telling the whole story. There are applications where email can be secured "enough". There are applications where SMS messaging can be secured "enough". There are applications where neither is good enough. And yet, the argument against email is taken to the nth degree (the fact that you can take the contents of an encrypted email and send it unencrypted is purportedly a serious security flaw, while the fact that I can take the contents of Signal message and do the same thing is apparently not).

However, like I said, I don't think tptacek is _trying_ to be disingenuous. He honestly _does_ like Signal and it honestly _does_ improve security in the average case. He doesn't care that it doesn't do the things that it doesn't do because he thinks those things are less important. It's fair. He's an expert and certainly his opinions reasonably carry a lot of weight. You don't have to unthinkingly accept those opinions, though.

<comment><USER6> and yes.. I agree with nearly everything you said in your post mikekchar.

The one thing I would keep in mind is elevating a person's opinion because: " _recognized security expert_ ".

Their comments should be taken at face value and not given any extra special value because of " _who they come from_ ".

I purposely leave my background, education and employment out of my comments for that reason. I would not want my opinions to be judged more highly because of where I work.

> _He doesn 't care that it doesn't do the things that it doesn't do because > he thinks those things are less important._

Just because he doesn't care doesn't make them any less of an issue.

On that note Matrix also offers a similar method with the phone number (it's optional to use a phone number) and if you do use it, the identity server can link you with other people that use it. [https://matrix.org/docs/projects/other/sydent](https://matrix.org/docs/projects/other/sydent) (that's also optional, you can run a matrix server without it).

Ideally the best usage would be to have two accounts, an account with your phone number you use with people that know you, (family, work etc) and one you use for random people on the internet that does not.

Signal laid a lot of the ground work with [https://en.wikipedia.org/wiki/Double_Ratchet_Algorithm](https://en.wikipedia.org/wiki/Double_Ratchet_Algorithm) hopefully now Matrix can take it to the next level (next generation), like email.

Their cross-signing stuff looks to be particularly interesting. [https://github.com/matrix-org/synapse/issues/4110](https://github.com/matrix- org/synapse/issues/4110)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> PGP is dying a horrific death with the mass electronic and internet user.

Since 1992, I've been in this game. It will never catch on.

<comment><USER10> That which never lived cannot die

</comment></comment><comment><USER5> So what does it criticize exactly? PGP, OpenPGP, GPG, or...?

</comment><comment><USER11> Using-pink-in-moderation habits could be better.</comment>


Young File-Sharers Respond To Tough Laws By Buying A VPN - <AUTHOR> http://torrentfreak.com/young-file-sharers-respond-to-tough-laws-by-buying-a-vpn-120501/ <comment><USER3> I feel pretty double about VPN as a solution for masking my online activities. My reasons for using a VPN break down into these (related) categories:

1\. Security. I don't trust this network at all, such as unsecured wifi in coffeeshop.

2\. Access. This network has draconian restrictions I need to get around, such as corporate proxy servers or country firewalls.

3\. Privacy. It's none of this network's business what I'm doing.

4\. Legal. I don't want to get in trouble here. Especially when traveling where I don't know the laws, but increasingly in my own country. Hell, the courts in NL haven't figured out if TPB is legal, how should I know?

VPN can solve many of these problems most of the time... but _always_ using a VPN means that I have a single point of failure for all four of these.

<comment><USER4> Any recommendations on VPN Providers?

EDIT: I saw this further down: <https://www.getcloak.com>

<comment><USER5> I use <http://www.goldenfrog.com/vyprvpn>

<comment><USER6> A fair amount of research suggests this company subscribes to the GoDaddy school of thought about your privacy.

</comment></comment></comment></comment><comment><USER7> VPNs aren't just used for file-sharing. One of the main reasons why people outside the US (including American expats) use VPN services is to get access to geo-tarded services.

<comment><USER8> As a swede I'd say most do it to hide their online activities, at least that is the case with most the people I know using a VPN-service.

</comment></comment><comment><USER9> Almost all my traffic goes over a VPN these days. I don't do any file sharing, but I just don't want my ISP keeping tabs on me. (Yes, yes, I know, a VPN ISP can keep track too) It's so easy (and cheap) to set up a VPN or SSH tunnel with your own server (or servers). My favorite site for finding a cheap provider is www.lowendbox.com or www.lowendstock.com.

I have several VPN/SSH servers around the world for an average of $20-$25 per year.

<comment><USER10> Even better, if you're worried about privacy, you can pay for your VPN with Bitcoin:

<https://en.bitcoin.it/wiki/Trade#Connectivity>

[https://en.bitcoin.it/wiki/Trade#Dedicated.2FVirtual_Server_...](https://en.bitcoin.it/wiki/Trade#Dedicated.2FVirtual_Server_Hosting)

</comment></comment><comment><USER11> I've been using my Linode as a VPN lately since I do a lot of work in coffee shops and it works great. More recently I've been using it here in Bahrain to access sites that are blocked by the government (innocent ones that come up on HN, dunno why they're blocked), and US-only sites like Pandora.

However, Linode is kind of expensive for this purpose only (I also host my small website on it, though), and have been looking into maybe an AWS micro instance which I can spin up when I need it, or possibly others.

Anyone have good recommendations here for VPNs that are fast, relatively inexpensive, reliable, and other criteria that might be useful?

<comment><USER12> I've been using PrivateTunnel for a while. Reliable and relatively inexpensive.

</comment></comment><comment><USER13> Since I have a bunch of EC2 nodes anyway, I route my own traffic through one of them when I want a VPN (mostly for a little extra safety on untrusted wifi).

It works great until you realize how much of the web blocks access from EC2.

<comment><USER14> Why would websites block access from ec2?

<comment><USER15> No idea. Last time I bothered trying Stack Overflow did though. (That was a while ago, when it was still called that.)

<comment><USER16> It's still called stackoverflow (?).

<comment><USER15> Oh. I thought they switched to stackexchange or something stupid like that. Whichever, I don't use the site much.

</comment></comment></comment></comment></comment><comment><USER17> My fear is that use of an anonymising VPN will in itself become cause for the state to hassle you, and that this won't require any new laws to be passed.

<comment><USER18> I'm more afraid that the use of a VPN will actually become less secure than without using it. ISPs are governed by different laws ensuring your privacy (to some extent). VPNs aren't subjected to those laws and can thus, legally, sell you out long before your ISP ever could. Sure, the potential outrage for such behavior is probably enough to convince most VPN services to never do it (although a secret agreement with MPAA or similar is probably tempting for many) - but you get _no_ extra protection against the law.

Since the moment someone has a warrant against you both the VPN and your ISP are obligated to cooperate you really have nothing to gain, in theory, from using a VPN in order to pirate.

There is one exception and that is if your VPN resides in a different country, then filing a warrant is probably trickier but with time this hole will probably be a lot smaller (at least within countries of EU etc.). And having a VPN in another country is of course not the best thing you can do performance wise.

That or the absurd idea that VPNs is to be criminalized. I wish it was a joke but politicians are seriously considering it.

<comment><USER19> I think a lot of it depends on which ISP you have, how much you trust your ISP, and how much you trust your VPN. Many VPNs claim to keep no data at all, which means that government intervention cannot reveal your Internet activities, because there are no records. If you live in an area where your ISP is required to maintain certain histories, and you have a trusted VPN in a more relaxed country, it's easy to see how a VPN might be preferred.

<comment><USER20> This works until your VPN provider gets an order "please start logging for user PaperclipTaken and turn over all logs for the coming 30 days to $BADGUYS".

</comment></comment></comment></comment><comment><USER21> This is obvious progress due to the lawsuits of recent years. File-sharing will move over to take advantage of IP addresses of countries with relaxed copyright legislation. If all countries implemented strict copyright laws, there's I2P and other similar encrypted anonymous networks. People just have to trade off transfer speed to get what they already used to have in the 90's.

I think that the fact people are willing to pay for a VPN just to get a better, "pirated", product no thanks to MAFIAA aptly underlines the severity of the challenges that content industry is facing.

Money is not the issue why those who have money do pirate content.

</comment><comment><USER22> I was looking into VPNs recently, when I remembered The Pirate Bay launched their own early 2010. I considered signing-up until I found out Sweden is following EU policy on data retention [https://blog.ipredator.se/2012/03/the- question-of-data-reten...](https://blog.ipredator.se/2012/03/the-question-of- data-retention.html)

Not that a VPN is 'safe', so I considered Tor, but then that's only as safe as the exit node.

<comment><USER23> If you are serious about this go for perfect privacy, mulvad or bwprivacy.to. those are used by pros from the good and the dark side of teh internetz.

</comment></comment><comment><USER24> I suppose what's interesting about this to me is that the pirates are presumably _paying_ for VPN service? Which means that I guess we've figured out the threshold where they are and aren't willing to pay for things -- to keep out of jail.

I should launch a Piracy as a Service app. Each month, you send me $100, and I will send you back copies of hot movies of varying quality, but all perfectly legal. You stay out of jail, I stay out of jail, and the pirates can rest assured that they never had to actually pay for the media they're consuming.

<comment><USER25> > Each month, you send me $100, and I will send you back copies of hot movies > of varying quality, but all perfectly legal

Your snide comment is way off the mark. By your tone I'm assuming you're staunchly anti-piracy and don't pirate stuff, so you don't have experience with the actual quality of pirated media.

As a long-time pirate (10+ years), I can unequivocally tell you that pirated media is _lightyears_ ahead of anything available legally. By using just _1_ (one) torrent site, I can gain access to pretty much _every_ single movie, music album, video game (console or PC), piece of software (all platforms), and book. The downloads almost always max out my connection.

As for quality - it's _better_ than if you buy the media. Netflix and iTunes are just now bringing out 1080p content, and it's almost definitely going to be compressed in a lossy way. I can torrent the original Bluray disc image (~50 GB) if I want to, or get a high quality X264 compressed version to save space/bandwidth. You're not forced to go with the one thing that's offered to you. Both options have been available ever since Bluray (and HDDVD) first came out. I've been watching 1080p content for years without ever buying a Blu-ray drive or any other special hardware.

And the best part of all - both the downloading process and the files I get are in standard & open formats that I can run & view on my Linux PC. What's available for download is browsed via a normal web browser, the BitTorrent protocol is open and has been implemented on Linux many times over, and I've never had any issues playing back content once it's been downloaded - <USER2> formats are open and are supported by a variety of open source media players.

Let me know when I can run iTunes or Netflix on Linux. I doubt it'll ever happen.

Oh, and VPN services don't cost $100 a month. You can get them for less than $20/month. When I was sharing a seedbox with a friend, it was $10/month for unlimited data transfer and 250 GB of storage space.

<comment><USER26> "I can unequivocally tell you that pirated media is lightyears ahead of anything available legally"

I find this unlikely. Piracy is just a copy. It's not like anything new is actually created in the process. You are getting a very nice duplicate of the original.

You are part of the entitlement generation. Since you are so used to just getting things for free, you will just keep making excuses to pirate when the company doesn't give you exactly what you want.

This will have many consequences in the future, including:

1) Commercial software will only be serviced-based. So, instead of paying one- fee for software, you will be required to pay for it every month/year. IE: the "cloud".

2) Software developer salaries will be much lower. Although not directly related to piracy, open source being so freely available means that businesses only need people to do updates (software mechanics not engineers).

3) DRM and more protections schemes. DRM was a direct result of piracy, not the other way around.

Continue to pirate all you want, but don't be shocked at the future you helped create.

<comment><USER25> > I find this unlikely. Piracy is just a copy. It's not like anything new is > actually created in the process. You are getting a very nice duplicate of > the original.

As unlikely as you may find it, it's a fact. Pirated media has none of the restrictions that legitimately obtained media does. For example, I don't have to worry about whether a new device that I've just bought will be compatible with all the media I already possess - since it's not DRM-encumbered, I'm free to do whatever neccessary to get the file onto the device.

Acquiring the media is the same - I can torrent music on my Linux PC, but I can't download music using many legitimate sources.

> You are part of the entitlement generation. Since you are so used to just > getting things for free, you will just keep making excuses to pirate when > the company doesn't give you exactly what you want.

Wrong. I buy media when it's provided in a cross-platform and non-DRM encumbered manner. I've purchased every single Humble Indie Bundle until now (and paid more than the average), not only because Linux & Android versions are available, but also because I can download the games from my web browser. I haven't really played the games that much, but that's not the point.

When Louis CK announced his $5 comedy special that was available online (from a web browser) in a non-DRM encumbered manner, I went and purchased it immediately, even though I don't particularly enjoy his comedy, and did the same with Aziz Ansari's comedy special as well.

</comment></comment></comment></comment><comment><USER27> This is not going to end well. Back to the dark ages for strong crypto (ITAR et al.)? Perhaps RIPA in the UK is already sufficient.

<comment><USER28> It's an arms race. Technologists will find new ways to hide, while the rent seekers experiment with new legislation.

</comment></comment><comment><USER29> I believe many here have some sort of VPS or dedicated server. Just setup VPN and use it. Just use it. Installing pptp server is very easy. And if you are more determined - install OpenVPN - it allows compression and better security.

<comment><USER30> be aware though that, depending on your setup, you are basically telling the other side "hi, I am the owner of this domain".

</comment></comment><comment><USER31> The only VPN I know that explicitly guarantees no logging is the Swedish vpntunnel.se

They operate many nodes, and they tell you that due to data retention laws in the EU and USA, _your traffic with them or any other provider will be logged for a period of time_ no matter what anyone says otherwise.... except if you use their Swedish endpoints because, apparently, Sweden has no and is subject to no data retention laws (yet).

</comment><comment><USER32> Ironically, I recently bought a VPN in the UK to go around China's Great Firewall. Luckily, I can switch to another location free of charge.

</comment><comment> excuse-me Queue banning of VPNs in 3....2....1.....

There is evidence of links to terrorism. Well, VPN is 3 letters and so is IRA, ETA and RAF so thats a link. Better throw child pornography and drug smuggling in there as well

<comment><USER33> [Responses from the article]

> But then governments will replace VPNs

>> Then governments will be replaced

This is already becoming the true in Germany. ~10% vote Pirate Party in Berlin, more states have similar voting numbers. PPDE is now the _third largest party_ in Germany by member count.

<comment><USER34> > PPDE is now the third largest party in Germany by member count.

According to their own wiki[1] they are number 7. Even if you count cdu and csu as one party they are 6. place.

[1][http://wiki.piratenpartei.de/Mitglieder#Mitglieder_im_Vergle...](http://wiki.piratenpartei.de/Mitglieder#Mitglieder_im_Vergleich_zu_anderen_Parteien_.28bundesweit.29)

</comment></comment></comment><comment><USER35> This is why you can't legislate the Interwebz very well. Legislation will typically be ~5 steps behind technology (a rough guesstimate that has no basis in research).

</comment><comment><USER36> Any law that is considered pernicious by the community suffers that.

Prohibition? Just drink in secrecy. Password to enter some clubs.

Of course, that's what criminals do too. The difference is the amount of people doing it

</comment><comment><USER37> Won't the network just "interpret as damage and route around it" without needing a VPN?

<comment><USER38> The VPN is the routing around the damaged network.</comment></comment>


Google wants to control wind energy  - <AUTHOR> http://www.networkworld.com/community/node/67329

<comment><USER2> User _coondoggie_ 's only activity on HN is posting large numbers of links to networkworld.com, about one per day. If their scores are anything to judge by, this is not found very helpful by the HN community. They pretty much all seem to be low-added-value articles, each summarizing content found on another page somewhere. (HN FAQ: "Please submit the original source. If a blog post reports on something they found on another site, submit the latter.") I guess coondoggie = Michael Cooney, the author of all those articles.

All of which seems rather unhelpful. Although the individual articles themselves don't seem to me to warrant flagging, I'm flagging the most recent 10. This comment is here mostly in case some HN deity is curious and goes looking to see why I did it :-).

</comment><comment><USER2> _What the article says_ : Google wants to invest in wind farms.

 _Article title_ : "Google wants to control wind energy".

 _HN submission title_ : "Google now wants to control the wind".

Presumably the next step is: "Google now wants to be God". I have no idea what comes after that.</comment>


Amazing Places Affordable With San Francisco Rent - <AUTHOR> http://teleport.org/2014/08/amazing-places-affordable-san-francisco-rent/

<comment><USER3> Can I throw one into the list? The median cost of a one-bedroom apartment in San Francisco gets you approximately two bedrooms in Tokyo... in a semi-luxury apartment, in the most desirable neighborhoods. (Though this comparison is complicated a bit by the non-comparability of Japanese and US real estate. For example, your costs on move-in day will be substantially higher in Tokyo, and the real price of apartments is a few percentage points higher than the sticker price due to being assessed 1 month's rent every time you renew the rental contract, which happens in 2 to 5 year intervals.)

Still though, given that I have had lifelong impressions of Tokyo as being the most expensive place to live anywhere, I was pretty gobsmacked when I started doing the math.

</comment><comment><USER4> You don't even have to leave the country: [http://www.trulia.com/rental/3162120184-Apt-Condo-Twnhm- Chic...](http://www.trulia.com/rental/3162120184-Apt-Condo-Twnhm-Chicago- IL-60611#photo-1).

The decor is a little bit eclectic (though I love wall paper), and the lake view is indirect, but it's a quiet little corner just a few blocks from the magnificent mile: [https://maps.google.com/maps?saddr=E+Chestnut+St+%26+N+Dewit...](https://maps.google.com/maps?saddr=E+Chestnut+St+%26+N+Dewitt+Pl,+Chicago,+IL+60611&daddr=W+Kinzie+St&hl=en&ll=41.898437,-87.620195&spn=0.0134,0.01929&sll=41.893796,-87.626867&sspn=0.013401,0.01929&geocode=FcVRfwIdlwXH- ilhyvC7VdMPiDEHY8z65jadGQ%3BFYotfwIdbtHG-g&dirflg=r&ttype=now&noexp=0&noal=0&sort=def&mra=ltm&t=m&z=16&layer=c&cbll=41.898437,-87.620195&panoid=Gyt4JfA6ZTjWezqOj4dM0g&cbp=12,64.27,,0,-5.41&start=0). Only $2,000 per month for a 2BR and 1,000 square feet.

<comment><USER5> You can do much, much better than this in Chicago by choosing a location anywhere outside the mag mile. The overwhelmingly superior quality of rental housing in Chicago is one many reasons this is a great place to start a company (unless you're hoping to raise VC money).

Also: give up. You're obviously moving back here. You bring Chicago up more than I do! One- of- us. One- of- us.

<comment><USER4> I would've posted an area a bit younger/more residential, but I didn't know what the article meant by "city center" for SF. Moving back is on the radar: we'd like to buy a place at some point and we can't really conscience the housing prices in DC or NYC, especially considering that in our field Chicago pays as much as anywhere else.

</comment></comment></comment><comment><USER6> If you ever need a demonstration of that UI concept where "more choice makes things harder", try taking a long-term remote gig, then go buy a house.

Easy, right? Not so much.

You see, if you got an on-site job in Portland, you'd have a choice: Live out in the suburbs and commute in, or go Urban and pick up a loft in the Pearl District. You've got maybe a 20 mile radius to choose from. Head over to Zillow and you'll have things narrowed down in an hour or so.

Ok, instead, let's see what happens when your choice is limited by "Someplace on the planet."

I spent the better part of two years auditioning surf breaks in various 3rd world countries, after drawing from another 10 years of experience backpacking around the world and stopping for months at various climbing destinations, beaches, cities, etc. I knew enough to know that no place is perfect in all respects, and that each new place you visit will just add another tick box or two onto the list of "things my ideal location needs to have". You get to learn a lot about what your (and your family's) actual priorities are.

Granted, it's a bit of a first world problem to have. But it's definitely an issue, and not one that you immediately think about when you land a gig that lets you work from "anywhere".

<comment><USER7> What you describe seems like a very nice problem to have.

</comment></comment><comment><USER8> It may sound like a great idea, but you should make sure it's suitable for your needs. The main reason I couldn't live in Cape Town is how limited the internet access is. Try finding a coffee shop with "free WiFi". They may exist, but they'll hand you a voucher for a 5MB bandwidth cap. There are cheaper markets in America, including the South or Midwest, where you can find lower cost of living and gigabit fiber.

</comment><comment><USER9> Is it typical for a digital nomad to still be paid a competitive SF salary? I'm assuming companies don't provide cost of living adjustment for telecommuters so I'm guessing base salary would be much less than 100k

<comment><USER6> That's a very harmful assumption to make. If you need a datapoint, I work remotely, and I always work at my "Bay Area" rate even though I've never lived there.

There was a point, early in my guy-on-the-beach-with-a-laptop era where I would cut my bill rate in half while working from the beach with a laptop. Clients were happy about that, and it more than paid for beers and thatch huts. Then one time I tried not cutting my bill rate in half. Nobody but me seemed to notice. So now I don't do that anymore.

Neither should you. The work you're doing is exactly the same regardless of where you do it from. Charge accordingly.

<comment><USER9> Not making any assumptions, just reading the OP. I was thinking more about employees than freelancers/contractors. In that case it's your business run it how you want and if your customers are willing to pay you're in luck!

Edit:spelling

</comment></comment></comment><comment><USER10> I recommend researching the legal requirements for living and working in each destination on the list, and including these in the article.

This would include visa requirements, and those related to the viability of renting an apartment annually, as a foreigner.

Otherwise, it's just (pleasant) daydreaming. :)

<comment><USER11> I'm also fairly certain that the very vast majority of people - <USER2> those who evince a 'digital nomad' lifestyle, are going to be drawn in any way, shape or form, to Burma, of all places. Not exactly a friendly government, just ask.

</comment></comment><comment><USER12> I'd like to see this list adjusted for "salary an entry-level {Google, Facebook, Twitter, ...} employee would make in ${LOCATION}". Does a ${COMPANY} employee in Greece actually make the same $100 000 USD as one in SF?

<comment><USER13> I imagine you could solve this problem by working remotely with companies in the US or Bay Area.

</comment></comment><comment><USER14> Let's move. Where should we go? - The last question is the bigger problem, than realising that we actually all should. So, where?</comment>


Average Income per Programming Language - <AUTHOR> http://bpodgursky.wordpress.com/2013/08/21/average-income-per-programming-language/ <comment><USER2> Please don't attempt to operationalize this data by saying "I know PHP. If I learn Ruby, then I can get a $5,000 raise!" I talk to more engineers than is healthy, and many of them think that languages are the primary differentiator in salary (or some other metric of interest in their career). They're very mistaken. Far more salient are negotiating skill, location, what company you work for, where you're assigned in that company (profit center or cost center, favored project/division/etc or not, etc), and ability to use computer code as leverage to accomplish things that capitalism cares about.

Also, the dynamic range among e.g. Ruby programmers of my acquaintance goes from something like $2k a month to $2k a day, not primarily based on skill with Ruby. (If I were comfortable describing the individuals at the high end some people might say "That's cheating! They're getting compensated for non- Ruby things which happen to be expressed in Ruby programs." I call that _winning_ rather than _cheating_ but to each their own.)

<comment><USER3> Language _is_ a primary differentiator in hire-ability.

In case you don't remember, we had a discussion about the job market last year: [https://news.ycombinator.com/item?id=4214543](https://news.ycombinator.com/item?id=4214543)

You were claiming the hiring market was _on fire_ and that being fizzbuzz capable was about enough to get meetings with hiring directors and that your clients were begging you to find them an engineer.

During that time I was spending a great deal of time applying to jobs, going to tech meetups and interviewing and had very little success despite a track record of successfully taking on challenges in the business world and demonstrable junior-level programming skills. I asked you to your back up your claims and put me in touch with any of these clients dying for an engineer, as you might remember.

Now—about a year later—I've achieved the goals I had at that time. I'm working in a purely technical role building a large site that many, many people use. My compensation is at least in the top decile of both programmers in the US and residents of the city where I live. And one thing that was _key_ to me getting a flood of offers from both large companies and start-ups a few months ago was developing domain-expertise in JavaScript and becoming proficient in several frameworks. Putting up projects on github and contributing to others played a role, too.

There is a high rate of unemployment in the US right now. As a result, many, many people are trying to break into the software world. For new graduates, there's a bit of an open door via internships but it's not at all easy in the general case. I've seen many talented people struggle for months to break in and then suddenly get a flood of offers. There's clearly a good degree of herd behavior involved.

Without the specific framework skills that I had, companies would have had a very long list of applicants to consider before getting to me. And both understanding the frameworks and doing well in the technical interviews required some fairly deep understanding of the language. Yes, the company you work for and the team you're working on have a great deal to do with your compensation. But both of those things are heavily influenced by how skilled you are in what technologies, especially for typical engineering roles. Knowing the right stack can open doors for networking around the front-door, too!

>They're getting compensated for non-Ruby things which happen to be expressed in Ruby programs." I call that winning rather than cheating but to each their own.

I wouldn't call that _cheating_ but I would call it a poor anecdote to generalize from. Some people with a legal background translate contracts and earn a great deal of money for it, but that fact doesn't speak much to the market for translators as a whole or show there's no appreciable difference in career trajectories for translators of various languages.

<comment><USER4> If your argument here is that knowing Javascript earns you more money than knowing no programming language in depth at all, I don't think anyone disagrees with you.

You could however have picked Ruby, PHP, Python, Haskell, Java, C(++), Objective-C (holy crap, Objective-C), Scala, Clojure etc to deep-dive on and would have been just as employable.

To convince me otherwise, you'd have to make the case that all of my professional connections are conspiring to deceive me or that I'm experiencing hallucinations on a near-daily basis and need professional help.

<comment><USER3> Yes and no. The particular job offers I got all relied on JavaScript, but of course there are a lot of great positions that require other languages. I do think that JavaScript was the optimal choice. There is such a small number of people who have experience with the MEAN stack compared to LAMP / Java / RoR that it makes it a quite a bit easier for an outsider to break in through unconventional means.

Objective C would have been very strong as well. Many companies of all sizes, including my current one use it. It would probably have taken a successful app on the app store or a stronger resume in order to get the kind of interest I did from top tier companies. Ruby would have lead to openings, but probably wouldn't have done much for me my interviews with Google. Java is used all over the place but from what I've seen, few junior devs without a degree break into the better work. Haskell would have been absolutely horrible--I'd have been competing with freakishly smart people for a small number of low-paying jobs!

The beauty of JavaScript is:

1) It's in the front end of every web stack, so nearly everyone needs it.

2) The MEAN stack (which includes Node and Angular) is a fast rising platform with few people competent in it. Even knowing "old" frameworks like Backbone can lead to a lot of opportunities.

3) In general, there is a bit less conservative of a culture among JavaScript programmers. Java/C/Python shops are more likely to care about pedigree and formal credentials.

</comment></comment></comment></comment><comment><USER5> What are the distributions of the salaries among one language? Mean values alone are completely useless, give us some information about how you found the salaries out, what their standard deviations are etc.

I don't want to imply maliciousness here, so I'm going to call this an example of unknowingly bad statistics (which, sadly, seems to be the default in most places). Bonus points for the bar (!) chart that starts at 90,000 and looks like ActionScript is twice as profitable as the rest of the languages.

<comment><USER6> He found the salaries out using rapleaf... which didn't know the salaries but was making an educated guess. (You can try out their api if you register an account, FWIW it was way off for the people I've tried it on.)

With data like that, I'd imagine the only sort of data you _could_ trust would be the mean, since I'm guessing its much harder to be wrong about relative income levels between large groups than it is to be right about actual income numbers.

<comment><USER5> The only sort of data you can trust is the data itself. Providing the mean of data is providing a sum value a person thinks is useful to convey the shape of the data, and the mean in particular is unsuitable at conveying shape on its own.

What the author tries to get at is a precise quantity, namely the average salary for each language. However, we cannot measure that quantity directly, so taking samples (from a good source) is as good as it gets.

The easiest assumption about that data is that it follows a normal distribution, which does have a mean, but also a standard deviation; both of these are required to talk about any meaning of the result. (If the normal distribution is not a good fit things may get more complicated.)

What I'm saying is that providing just means is not a ballpark way of doing statistics, it is wrong. The statistical ballpark is the normal distribution, and maybe a value ensuring that it is at least somewhat appropriate to use that one.

<comment><USER7> So forgive the statistical ignorance, but how would one display mean and std dev in useful graphical form? (Asking seriously as it would be good to know which setting to press on gnu plot)

<comment><USER8> Not quite the same, but box-and-whisker plots ([https://en.wikipedia.org/wiki/Box_plot](https://en.wikipedia.org/wiki/Box_plot)) are good for visualising distributions. They show the mean, minimum, maximum and the first and second quartiles.

Since they show the minimum and maximum we can judge the overall spread, the mean tells us...well...the mean and first and second quartile lets us judge how close data is clustered around the mean.

See [http://gnuplot.sourceforge.net/demo/candlesticks.html](http://gnuplot.sourceforge.net/demo/candlesticks.html) for gnuplot examples.

<comment><USER9> A minor point, but I think Box Plots usually show the _median_ rather than the _mean_ at the centre.

It would make sense perhaps to use standard deviations and means for some data, but in cases like this I think quartiles and medians make more sense.

</comment></comment></comment></comment></comment></comment><comment><USER10> This states that it is average _household_ income by language.

I could assert the following from the data:

* ActionScript developers are horribly underpaid, but more likely to marry lawyers, doctors and bankers.

* Haskell developers are relatively well paid, but more likely to live alone or with a stay-at-home parent.

* Pythonists get roughly the same salary as Haskell developers, but their partners are all low-paid key workers.

<comment><USER11> Pythonistas marry for love.

<comment><USER12> Haskellers are single because _you 're not my type_

<comment><USER13> Being lazy doesn't help either.

<comment><USER14> Or terse.

</comment></comment></comment></comment></comment><comment><USER15> Without knowing where the users are based, this data alone is pretty meaningless. Where I'm from in South West England pretty much all the programming jobs are Java (hence why I left), and you are lucky to get £40k. Spain and Portugal have even lower salaries. I'm guessing this is US based, but even then, I'm sure there is a lot of variation. Working in London as a Java developer in finance you could easily get over £100k.

<comment><USER16> And you can be based in post-soviet ("happy" 45th anniversary to crushing Czechoslovakia's future) country, make $10k or $20k and be very happy.

<comment><USER15> Personal experience? My SO is Lithuanian, so I would be interested to know what working in that area is like.

<comment><USER17> I can tell you that you live really well for quite few Euro after tax in Transylvania (as long as you don't go to West Europe for vacation).

This is quite easy to check, Google: living costs Cluj London

[http://www.expatistan.com/cost-of- living/comparison/london/c...](http://www.expatistan.com/cost-of- living/comparison/london/cluj-napoca)

(Don't trust information about cities with too few data points.)

<comment><USER16> The only downside is that the prices of imported goods (most notably electronics) and software are usually higher than in the US for example. Services are much cheaper of course.

</comment></comment></comment></comment></comment><comment><USER18> GIGO.

Most commercial Haskell jobs are in finance -- where you don't get to contribute code to github. That leaves the PhD students and open source folks, shifting the data sideways.

<comment><USER19> _Most commercial Haskell jobs are in finance_

Cool - do you have any articles/references about that?

<comment><USER20> [http://www.haskell.org/haskellwiki/Haskell_in_industry](http://www.haskell.org/haskellwiki/Haskell_in_industry)

Seems like more than a few quant shops advertise that they use Haskell.

</comment></comment></comment><comment><USER21> I can kinda understand why XSLT is one of the most expensive (on an intuitive level - as quchen said, it's not clear how the data was obtained for this post). Certain parts of it is a complete brainfuck. I worked on a small opensource project of mine once, where I decided to use XSLT to translate XML to HTML. I din't know much XSLT, so I started reading docs and eventually managed to accomplish my goal. However after struggling with it for a while, I realized it sometimes makes completely no sense. Or, to be more fair, it takes a rather different logic to understand it than I usually apply to programming languages... because, well it's not a programming language.

I only wonder, where is XSLT usually used? Can anyone outline the most typical types of projects and environments?

<comment><USER22> I just had an exam about XSLT, XML Schema, etc... this morning. My take-away is this. Pick any scripting language (python, ruby, php...) + templating engine and you'll avoid the World Of Pain that is XSLT.

XSLT is kind of 'declarative', but it has ifs, switches, ... They probably didn't start out with the plan to implement a programming language with xml tags, but they did. It's horrible.

Edit: XML Schema is horrible as well. This is how you define an element with string content, and one attribute (which is VERY basic):

      <xs:element name="myElement">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:string">
              <xs:attribute name="myAttribute" type="xs:string" />
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>

Just off the top of my head, I could invent something better, like:

      <myElement myAttribute="xs:string">xs:string</myElement>

<comment><USER21> Ahh yes. I tried writing a schema for my document (ocd here, I like things to be valid), but then I realized that the cost/benefit ratio of this process would be completely unreasonable.

<comment><USER22> If I had to do it today, I'd probably use DTD to validate the XML tag hierarchy and than use a programming language (with xpath) to validated the attribute and tag contents.

XML Schema tries to validate both the tag hierarchy and the contents, which requires data types and complicated definitions. So much overkill...

DTD and XPath are actually very nice and simple. This is the DTD equivalent of my XML Schema example above:

      <!ELEMENT myElement (#PCDATA)>
      <!ATTLIST myElement myAttribute CDATA>

I could see myself writing a small domain language and translate it to DTD, to make it even nicer.

<comment><USER23> The way I work around XML schema pain is to use visual tools for it, like the ones in Visual Studio, for example.

Hand editing XML schema files is too much of a pain.

<comment><USER24> My impression is that this is considered the norm in the XML world: you're supposed to edit it via a specialized editor, not directly as raw text.

</comment></comment></comment></comment></comment></comment><comment><USER25> I am totally baffled about where the income data supposedly comes from, and how it's mapped to GH user accounts.

[http://www.rapleaf.com/about-us/faq/#where](http://www.rapleaf.com/about- us/faq/#where)

"Rapleaf aggregates consumer data from data providers, cleanses it and maps it to emails, and ultimately makes it accesible through our easy to use Append portal and API. We partner with dozens of large and small data companies to aggregate data that we ultimately anonymize and tie to email addresses. We source it from only legitimate data bureaus who adhere to the highest consumer privacy standards -- sources that give consumers appropriate notice and choice about sharing their information and have opted in to make their data accesible."

What? Are they claiming to know the salary of all the github users used in this study? Were the users filtered down to those who had income data available? Because if so, that's a really weird (bad) selection technique. If not, what is being done with users whose income data is not available? Also where the hell is rapleaf getting their data?? This whole thing confuses the heck out of me, someone please help.

<comment><AUTHOR> Rapleaf's API provides income given an email address, when available. I ran the list of emails from the git commit log across that API, which only gives me data points for the users who have income data available.

Is there really any way to correct for the fact that not all the data is going to be available? It certainly doesn't exclude a sampling bias, which I did mention in the post, possibly not aggressively enough.

</comment></comment><comment><USER26> I believe ITJobsWatch ( [http://www.itjobswatch.co.uk/](http://www.itjobswatch.co.uk/) ), despite being limited to the UK, gives a much more comprehensive overview on the topic.

<comment><USER27> I concur. I always use it if I want some statistics.

</comment></comment><comment><USER28> The actionscript programmers may be getting paid higher (Mostly because the Flex enterprise hangover is still lingering), but in my experience the actual _number_ of actionscript jobs available is sharply falling. I have been doing Flash/Flex dev for about 8 years now, and while my evidence is certainly anecdotal,i have gone from having tons of contract offers swamping my inbox to once every few months.Make no mistake, Flash and Flex IS dying. Javascript meanwhile is maturing remarkably, and it will soon be in a position where enterprise will seriously start considering it as a viable platform.

</comment><comment><USER29> As a former actionscript programmer, this makes me cringe a little. My assumption is that actionscript is a new COBOL - tons of businesses rely on it, but now that it's looking like a dead end, the only way to fill those positions is to crank up the salary to compensate for the perceived dead space on a resume.

IMHO experience in it translates well to Javascript, but I miss some of the features - especially the type system and the token API (which was much more consistently implemented than the various JS deferred systems).

</comment><comment><USER30> Isn't the real news here that programmers are making $100K on average?

Language doesn't really seem to be too big a variable, it affects the income level by typically less than 10%

Are people really making that much around here? Why are you on HN then?

<comment><USER31> I make $24K after taxes anually.

I live in Uruguay, and program in VB6, VB.NET, and occasionally in Forte4GL, C# or PHP, but I'd make the same programming in Java or C# (it's an average local salary for a developer).

The way to make more money, as Patio11 said, is not to switch languages, but the "ability to use computer code as leverage to accomplish things that capitalism cares about"

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

If I made $100K, I wouldn't mind reading HN either :) (I know people that make orders of magnitude more and who occasionally browse it, or even post).

<comment> V-2 I make about 14K per annum in Poland (net pay) : )

<comment><USER31> Ouch, is that a full-time job? Is that 14K euros or dollars?

I barely manage on 24K for me and my girlfriend (made some bad decisions though).

I've heard rent and cost of living is cheaper in Poland than in Uruguay - we're still in a housing bubble here, and it's close to the most expensive country on earth for some stuff (example: cars).

<comment> V-2 US dollars. See [http://www.worldsalaries.org/computerprogrammer.shtml](http://www.worldsalaries.org/computerprogrammer.shtml) The numbers are dated, but it doesn't turn upside down in a decade. Uruguay is not included in the statistics. It does seem to be more expensive at first glance - I looked it up on [http://www.numbeo.com/cost-of- living/compare_countries_resul...](http://www.numbeo.com/cost-of- living/compare_countries_result.jsp?country1=Poland&country2=Uruguay)

<comment><USER31> Nice, those numbeo comparisons are really good to know, and relevant to this article :) .

As many mentioned, 100K is a lot, but you have to take into account cost of living.

Can't believe Uruguay is 50% more expensive to live in than Poland, used to be the other way round a decade ago.

<comment> V-2 Well I can say that the prices on Numbeo are fairly accurate for Poland

</comment></comment></comment></comment></comment></comment></comment><comment><USER32> I would say location weighs heavily on average income as a programmer. For example, the average dev salary in the midwest might be more like $50,000 and anything approaching $100,000 being very high end.

<comment><USER33> This. Salaries are based upon more than just skills and languages.

It seems like this article is biased towards California or New York salaries. I once jokingly told a SF based recruiter that $55k might not seem too much, but those aren't California dollars, which are worth less than Pittsburgh dollars. If I wanted to make six figures right now, I'd probably move.

</comment></comment><comment><USER34> Subtracting the top 2 and bottom 2 language data points and you have a range of $94,031.19 to $103,179.39.

With a range that small, IMHO nothing significant can be derived.

It's not like the range is $50k to $150k.

<comment><USER35> The range is probably not small, but the range between the highest and the lowest average is.

</comment></comment><comment><USER36> Given the sample size here I don't think this means anything.

I've seen real world programming jobs in the U.S.A. everywhere from $25,000 up to $250,000. Everything you get is closely clustered around $100,000k and when you consider the sample size I;m nit sure any of these mean anything.

</comment><comment><USER37> This is absolutely useless. Emacs Lisp? Really? XSLT? What? CSS? Woah. I love that the internet has made it easy for anyone to share their opinion, I hate when noise is presented is as useful information.

</comment><comment><USER38> Do I understand the chart correctly that people get paid exclusively for writing vim plugins (VimL)?

<comment><AUTHOR> No, but people who contribute to VimL projects (among other projects) do get paid for something.

</comment></comment><comment><USER39> After just reading the headline the first thought I had was "the comments are going to seriously question the statistical basis used" I was not disappointed.

</comment><comment><USER40> The article lists household income, which makes it just about useless. Household income will be higher if you are married. People who are married are more likely to chose a more stable job working for a large corporation. Such jobs require languages more like Java, and less like Haskell. Such people might also have less spare time to play around with new languages due to family engagements, or a dozen other differences, all masked by this chart.

</comment><comment><USER12> ±10% is almost nothing... OTOH, maybe I could do XSLT, if I just took some nausea pills...

PS: I actually think XSLT is a brilliant application of some cool ideas - putting them to work in (e.g.) grammar compatibility, it's just, like XSD, using XML itself as the syntax (e.g. _i < 10_ pls shoot me) and lack of helpful conventions (e.g. the empty stylesheet should be the identity transform, which you can then tweak).

<comment><USER41> XSLT smells to me like it should be a compilation target for a scheme rather than something you actually write directly.

<comment><USER42> Yeah, the repetitive boilerplate of it all...

This is probably something that many well-paid "XSLT developers" probably figured out early on. Develop your XSLT using ANYTHING except XSLT. ...and then they go on to create the "actual" programs to vomit the crapwads of excessive mark-up, and mystify those who made their own unfortunate beds and chose to consume this... this... XSLT.

</comment></comment></comment><comment><USER43> Remember as patio11 says the most important and valuable skill is not making money for your employer but being able to enable them (and eventually other companies, as your own entrepreneurial soldier of fortune) to make more money.

[http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a- pro...](http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/)

</comment><comment><USER44> Being a very versatile web developper, I never understood why (good) PHP programming gets so little credit in the profession, whereas to me it appears to be much more demanding to write a decent piece of software using PHP rather than with Ruby, Python, or even ASP/.NET. These other languages have so many easy tools, great debugging and all that, with the natural counterpart of offering less performance. PHP strikes me more as the C Language of web development : easy to learn, but harder to decently apply on a day-to-day basis. So I wonder if the companies out there just value other languages more because they tend to misinterpret the "simplicity" of a language for the quality of the developer using it. To me, making a good website using Rails is child's play compared to making one using PHP, framework or not...

<comment><USER45> Supply and demand and perception is pretty much what it boils down too. There's a lot of PHP apps, and a lot of terribly written PHP apps. Add that companies that hire for such positions have a plethora of options for cost- effective (read dirt cheap) and a lot of developers that will work for such wages and you have a language that while popular, is not well respected, and has those looking for more money and a more versatile skill set seeking greener pastures.

</comment></comment><comment><USER46> I didn't know that ActionScript was used in the enterprise environment? Why and what for? Did I miss something?

<comment><USER28> It is because of Adobe AIR.Which is a cross platform runtime. Contrary to popular public opinion, Flash and Flex is actually a stunningly beautiful platform to code in. It's a very very mature platform, with an excellent community, and amazing libraries. (As a matter of fact, the creator of Angular JS wrote a blog post citing some of Flex's features as his inspiration). It's just that Adobe keeps screwing up their Runtimes. Flash and AIR both have performance issues which is why they are starting to get left behind now. For enterprise softwares,its cheaper and more optimal to have a single codebase that can work across platforms and in return take a slight hit on the performance.

<comment><USER47> I agree flash/flex is a great platform to develop on. From the language, to the IDE, to the API. It's like a strongly typed javascript with XAML done right. You can create a great looking app that shares the same code base between the web, iPhone and Android.

</comment></comment></comment><comment><USER48> Lolwut? Are these for two person households where each person is in the same language or only for people working at quant funds? About 40% of my social circle is made up of programmers and no one makes close to these amounts. 100% anecdotal, but, I think we are all being shafted ;0

</comment><comment><USER49> Some languages heavily used in finance (and not much else) haven't been mentioned, and would likely fair pretty well. I'm thinking about K, and in Ocaml. Ocaml in particular is used at Jane Street which is known for paying extremely well.

</comment><comment><USER50> You should control for geographical differences in pay and language distribution. California likely has more Ruby programmers-- the higher cost of living and higher salaries there may explain the entire difference between Ruby and PHP.

</comment><comment><USER51> It's not listing Cobol.

<comment><USER52> That's because Cobol programmers probably make an order of magnitude greater income than on this chart. The only people who still write Cobol from my understanding are people who continuously update banking mainframe software. Government mainframes, etc. Usually these days you are apprenticed by someone with years of experience because of how difficult it is to obtain old documentation etc.

<comment><USER53> A vocational school here in Sweden recently started offering a 1 year Cobol degree, ostensibly after demand from the banking and insurance sector.

</comment></comment></comment><comment><USER54> I thought Puppet was a collection of Ruby scripts, not a programming language in the same sense as the others listed. To put it another way, can you "program" in Puppet without first having Ruby installed?

On a side note, I am always wary of the statistics Github gives for each repository where they estimate the percentage of code from different languages used (e.g., 90% Python, 10% C, etc.). In your opinion, how accurate do you think these are?

<comment><USER55> Puppet has it's own DSL. It's easy to learn, but it is difficult to use it well. Basically as a Puppet 'programmer' I can generally see the difference between an experienced user or not.

This all said, to extract a lot of power from Puppet you also have to script in Ruby, as to add additional functions not included in the Puppet core DSL requires you to write your own scripts.

<comment><USER54> Do you need Ruby installed to run Puppet programs?

The answer if I'm not mistaken is yes.

Personally I would be afraid to use Puppet as a substitute for my own configuration scripts. With the later, I'm required to know how things work at the shell level (and I use a small POSIX-like shell, not bash). But is this true with Puppet? I note it currently has some open security issues. But hey, if you are paid a competitive salary to write Puppet scripts, then there's little reason to learn more than how to do that.

I imagine Puppet probably saves you heaps of time.

<comment><USER55> Indeed. Puppet was created in Ruby and thus requires it to function.

Puppet is generally meant to be a replacement for configuration scripts. Essentially your Puppet scripts define a 'state' that you want the server to be in, thus if you want a user account called 'bob' you'd do something like this:

user {'bob': ensure => present, gid => '0', uid => '0', password => '<my encrypted password>', }

From this Puppet would do all the 'difficult' bits for you.

You mention that if you get paid to write Puppet scripts you wouldn't need to know how things work at the shell level. That is extremely far from the truth. You need a strong background and experience with shell commands, configuration layouts, shell/CLI methodology, etc. Without those you would quickly be lost both in terms of managing and dealing with Puppet and scripting in it.

Knowing Puppet is no replacement for Shell knowledge unless the extent of what you need to do with Puppet is understand you're using it to launch your Vagrant instances. Honestly there are things which to build out in Puppet would require extensive Ruby based functions and sometimes you really just need to fall back to using exec {} statements in Puppet (Meaning you're running shell commands from within Puppet). You can see some examples of this in the zookeeper module I built: [https://github.com/justicel/puppet- zookeeper](https://github.com/justicel/puppet-zookeeper)

Feel free to message me with Puppet questions and really, if you're just using Shell scripts I highly, highly recommend moving toward configuration- management (even if it's not Puppet), unless you only have one or two servers to manage.

<comment><USER54> Informative response. Thank you for this.

Perhaps my time has been well spent mastering the shell at the expense of not learning Ruby and Puppet.

I have a need for keeping things small (too small for Ruby) so if I do need to use scripting languages other than sh for configuration, I'm planning to use Lua.

Here's a question for you since you mentioned Vagrant: I'm interested in hosting that allows me to run my preferred bootloader that reliably boots my DomU kernels instead of the PyGrub hack that AWS uses. I can deploy my systems as Xen kernels, as filesystem images that have a Dom0 that can run my DomU kernels, whatever. I can also run limited purpose kernels in userspace so I am not necessarily restricted to Xen as a means of "virtualization".

I want the AWS convenience of creating and launching an instance remotely rather than having to visit a datacenter. But I do not want anything to do with grub.

All my configuration is in the DomU kernel's embedded filesystem. When I change configs I simply edit the kernel source and recompile. My kernels recompile very quickly. I don't use kernels provided by third parties.

I'll probably have to build my own "cloud" to get things the way I want. Big itch; relentless scratching. Easy? No. But, so often that's how useful software comes into existance: because of someone personally finds the status quo inadequate.

</comment></comment></comment></comment></comment><comment><USER56> It looks like the most data points are found in the middle of the field. The extremes at both ends are underrepresented (except Java). That is a common finding, because the probability of deviation from a "true norm" would be highest in the smallest sample.

The big question is: How significantly do these datapoints deviate from the null hypothesis of "all programming languages average the same pay).

</comment><comment><USER57> as much as i'm loving that coldfusion (my primary language of choice) is included on this chart and ranked in the top 10, i would really like to see how the job market compares to the other languages on the chart.

on a side note: really? xslt is second on the list? i remember using it to create a code generator years ago. probably one of the poorer decisions i've made in my life :P

</comment><comment> V-2 [http://en.wikipedia.org/wiki/Simpson's_paradox](http://en.wikipedia.org/wiki/Simpson's_paradox) is quite likely ;) There's many other variables apart from the programming language itself that affect the salary. They can be only indirectly correlated with the language.

</comment><comment><USER58> I think in reality the highest paid languages are C, Objective-C and C++, with Java a close second (though it very much depends on what is being done).

And if you're looking to be at the top of your game, one single piece of advice: _master C_. Once you've mastered it, you can pick and choose whatever else you want.

<comment><USER45> I second this. Have a mate of mine that has five years in C and has been able to walk into any shop that he wants, regardless of language they use, and get a gig, and well paying to boot.

On the other end of the scale, I have almost six years in PHP and it's worth as much as a broken kinder egg for anything outside the LAMP stack world (and in some cases, within that world as well)

<comment><USER59> I've noticed less interesting gigs and lower pay as well for PHP over the last year or so. Spending a lot of time with Python and Go now.

</comment></comment></comment><comment><USER53> Actually the only really interesting thing about that data is how close the lowest and highest values are, certainly they must be within the margin of error (something I noticed he failed to talk about). So it seems the real conclusion to draw is that average income is largely uncorrelated with language used.

</comment><comment><USER60> Averaging is a very lossy method to use. You could be looking at a histogram shaped like a satellite dish and the average value you come to is one few are close to. There are a lot of extremes in tech salaries from what I've seen hiring and contracting over the years.

</comment><comment><USER61> What about programmers who are proficient in multiple languages? (As any good programmer should be).

</comment><comment><USER53> Surely who you're working for and what you're working on has a much much bigger effect on income than what programming language you happen to use. People using python at a top hedge fund will surely earn more than people using python at a low end web shop.

</comment><comment><USER27> This chart looks like a GROUP BY clause which was used in a not too meaningful way. As others mentioned above there are a lot of parameters here like the company you are working for, location, project nature and such which would be important to point out.

</comment><comment><USER27> This chart looks like if a GROUP BY clause was used in a not too meaningful way. As others mentioned above there are a lot of parameters here like the company you are working for, location, project nature and such which would be important to point out.

</comment><comment><USER62> What's the standard deviation on these numbers?

For all I know, they could all be the same (within error).

</comment><comment><USER63> > I'm unfamiliar with some of the other languages... Any ideas on why these > languages ranked higher or lower than average?

The unknown languages may appear on the outsides just because of the statistics: smaller sample size => higher variance in the sample mean.

</comment><comment><USER64> Looks like rubbish frankly speaking. That XSLT alone is a sign of something being wrong.

</comment><comment><USER65> It's based on household income, so is it reasonable to infer that Haskell programmers may be likely to be the sole income while ActionScript programmers have working spouses? That could make sense.

</comment><comment><USER66> Is there a point im missing that causes CSS to perform better than Erlang?

<comment><USER67> I think CSS covers here a general "front-end web development" among with HTML and there is simply a big demand for such stuff, especially will all the new features of CSS3 and HTML5 - everyone wants a modern 3.0 website now :)

</comment></comment><comment><USER68> Well this sucks, in India even after speaking Java, Ruby, CoffeeScript and Scala I get a measly $35,000 which after taxes goes down to $25,000. Yeah, I know low cost of living etc. etc.

</comment><comment><USER69> Perhaps the differences is in the demographics, not the language. People using 'older' languages may be older, further along in their careers. That would explain everything.

</comment><comment><USER70> LOL, even PHP programmers earn more than Haskell programmers.

<comment><USER53> If you're getting paid to program Haskell chances are you are in either academia or finance. I think it's safe to assume that a) Haskell programmers in finance earn more than most PHP programmers and b) that they're not allowed to upload their latest projects to github.

</comment></comment><comment><USER71> Without significance testing, are those results significant? It looks like random data to my eye but I've not got the source data for any proper analysis.

</comment><comment><USER72> As a C and Java developer, the numbers made me feel good.

</comment><comment><USER73> Hmm, looks like my giving up ColdFusion was a mistake...

</comment><comment><USER74> All those "CSS programmers" must be freelancers, with the salary covering the whole contract.

Otherwise, I'm really, really, really underpaid.

</comment><comment><USER75> Your graphic representation is highly misleading.

</comment><comment><USER76> Where does he get income from? How does Rapleaf (whatever it may be) correlate emails with household income?

</comment><comment><USER77> I'd really like to see a differing standard deviation between them.

</comment><comment><USER52> I guess I should drop php and switch to ruby & js exclusively eh?

</comment><comment><USER78> actionscript, whaaat. I thought people are using flah less and less.

</comment><comment><USER79> You can make money writing Emacs Lisp?

</comment><comment><USER80> what's happened</comment>