Ruby vs. Crystal Performance - <AUTHOR> https://ptimofeev.com/ruby-vs-crystal-performance/ <comment><USER2> Crystal and Ruby do not even remotely have the same semantics. They look similar but the similarity is extremely superficial. The extra semantics that Ruby has have a _massive_ impact on performance, for even the most optimising implementations. This is not a reasonable comparison if you do not consider the 'slick as Ruby' part. No runtime metaprogramming! The entire Ruby ecosystem is built on runtime metaprogramming!

(Crystal is a fine language and compiler - but it's nothing to do with Ruby.)

<comment><USER3> Metaprogramming doesn't need to have a performance impact. VM languages like Java, C#, and JS allow you do define and modify code at runtime

JS you can redefine anything, Java support is pretty good, C# better support is coming with generators

<comment><USER4> Ruby's meta-programming capabilities is why optimising Ruby is so darn difficult. It's extremely powerful, but also complicates a lot of things.

<comment><USER3> I reason the difference is mostly when metaprogramming can happen. In Java, redefining or adding code is very explicit, it can't just happen whenever. Same with C#. And there are lots of rules. A class can't modify itself, and there's limits to what changes you can make. And to make changes you must have control over the "classloader" that loaded that code.

JS on the other hand can do most of what ruby does, to my knowledge. Objects are key value pairs so you're free to mess with them in virtually any way you please. You can also mess with the inheritance by altering JS prototype chains.

I don't think metaprogramming itself has much to do with the speed of Ruby, with my admittedly limited knowledge of this stuff

<comment><USER5> However, JS does not treat everything as an object as pervasively as Ruby does. A JS object and a JS integer are two different abstract data types. A Ruby number literal "1" is treated as an object of the Integer class. There are no separate abstract data type other than an object. All operators for an Integer can be overriden (in runtime), or perhaps, a specific object's methods can be overridden. Now granted, the runtime cheats and implements certain things in C ... but those can be overriden during runtime ...

If you want to find out more about the limits of what can be done to optimize Ruby, check out the Truffle project. That came out of someone's PhD dissertation on novel methods for doing JIT optimization for Ruby. It is sufficiently difficult and novel to warrant awarding a PhD for. Last time I heard, Truffle still could not run Rails.

<comment><USER6> A JS integer is actually an instance of the "Number" object, you can to a small degree alter fundamental behavior even with primitive types

<comment><USER7> No it is not. It is a primitive, this difference is well defined in the ECMAScript spec. Same for strings. An instanceof String is strictly _not_ the same as a string primitive (and there are runtime consequences).

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> This article by one of the Crystal developers explains why this comparison is not fair: [https://crystal-lang.org/2016/07/15/fibonacci- benchmark.html](https://crystal-lang.org/2016/07/15/fibonacci-benchmark.html).

> When doing operations between integers, Ruby will make sure to create a > Bignum in case of overflow, to give a correct result.

> Now we can understand why Ruby is slower: it has to do this overflow check > on every operation, preventing some optimizations. Crystal, on the other > hand, can ask LLVM to optimize this code very well, sometimes even letting > LLVM compute the result at compile time. However, Crystal might give > incorrect results, while Ruby makes sure to always give the correct result.

<comment><USER9> You may want to edit the link.

<comment><USER8> Whoops. Thank you!

</comment></comment></comment><comment><USER10> Coming at Crystal from a Go and PHP development background, here are my thoughts:

\- The syntax is lovely. No, really.

\- I hate waiting for it to compile, especially compared to Go's compile time.

\- It's really young yet, and the ecosystem is just getting started.

<comment><USER11> > \- The syntax is lovely. No, really.

Matter of taste; I find it horrible, just as I find Ruby syntax horrible. And I do not care about syntax too much generally (among my production langs are k and clojure) but I find this an eye sore; don't know why but it is what it is.

Edit: aaah downvotes for an opinion :) Anyway, background; I maintained a huge Rails codebase for years; it was pretty much the worst thing I ever did (in 30 years of production coding) and that was pretty much down because how much I don't like the syntax. That doesn't happen often.

<comment><USER12> I don't like rails either but I like ruby syntax. You're sure you don't like ruby and not rails?

You got downvoted for not liking something "just because". (I didn't downvote.)

<comment><USER11> Is that not a matter of taste means? I even say I do not know why; I just break out in hives when I open a ruby file. When I open up a file to start programming, I have to have some feeling of 'let's do it'; I have that with most languages but with ruby I just think 'crap this is ugly'. Not sure how to explain that; it is more like trying to explain why I prefer Klee over Rembrandt. I guess some people can but I cannot put that into words.

<comment><USER12> I share the same feeling when opening up rails project because of their own weird rules and files being all over the place. I don't feel that when writing a single ruby file and feel elegant.

<comment><USER11> I don't know...

[http://www.rosettacode.org/wiki/Mutual_recursion#Ruby](http://www.rosettacode.org/wiki/Mutual_recursion#Ruby)

I find almost every other implementation better on the eyes; picolisp, pari/gp, nim and some others I would call elegant; the Ruby version looks like overly noisy and fairly ugly to me. Not so much (but still) the function defs, but p (Array.new(20) {|n| F(n) }) I find pretty nasty for some reason (again, not sure why).

Randomly picked example.

</comment></comment></comment></comment></comment></comment><comment><USER13> A massive point for me missing in this article is the experience of having to wait for Crystal to compile - especially for development, this sucks. Try timing puts "Hello, world" on both:

      ~ % cat test.rb
      puts "Hello, world"
      ~ % time ruby test.rb
      ruby test.rb  0.03s user 0.05s system 25% cpu 0.312 total
      ~ % time crystal run test.rb
      Hello, world
      crystal run test.rb  1.48s user 1.09s system 72% cpu 3.559 total

<comment><USER14> I find this perspective kind of funny, because every medium-sized Ruby project I've worked on takes 10+ seconds just to load and start rspec (before it runs any of my tests) or a REPL.

Because of this, working with Ruby is actually substantially _slower_ than working with a similarly sized Go project, in my experience, even though Go theoretically has the disadvantage of needing to compile things before running them.

Plus, Go's type system will catch tons of bugs that Ruby optimistically treats as "maybe you _meant_ to do this". Obviously Rust's type system is really awesome, but Go's is still really helpful, while compiling much faster than Rust.

Since Rust and Crystal are both LLVM-based, I would guess that Crystal's compile times also tend to be a bit painful on medium-sized projects, like Rust, but I've never actually used Crystal for anything more than "Hello, World".

(I've been paid to work full time with Ruby, Rust, and Go over the years, and they each have pros and cons, but I just don't think I would ever personally choose Ruby for any new project in 2020, if I had a say in it, given how great Go is for web development.)

</comment></comment><comment><USER15> I'm excited to see Crystal grow - I think it has a lot to offer. I know it's not an intended consequence or a goal of Crystal's development, but you'd be surprised how easily plain Ruby maps to Crystal's syntax and method name choices. It can come in handy when you're looking for an easy performance boost.

<comment><USER16> Actually, I would argue that mapping Ruby's syntax and method name choices to Crystal _has_ been a major goal in Crystal's development. It's practically in the tag line for the language, "Fast as C, Slick as Ruby"

</comment></comment><comment><USER5> The thing I like about Crystal is that I can generate statically-linked binaries and distribute them. I can quickly build utilities for people to use and don't have to distribute the runtime. The type system wasn't as bad as I thought (especially with type inferencing). Having written Ruby professionally for 14 years, Crystal was relatively easy to pick up. There are a many libraries that hew closely to their Ruby counterparts.

There are some amazing things I love about Ruby, like the metaprogramming and monkeypatching ... but I have moved on. I do my server work with Elixir these days.

</comment><comment><USER17> Neat seeing crystal on here.

I built my startup using crystal and now I write crystal full time.

I'm still only using a single dedicated server with a SQLite database.

<comment><USER18> Why SQLite?

<comment><USER17> That's how I started it. I didn't want to start a company with a complex setup. The whole service runs on a single machine so it's very fast and simple. I just back up the SQLite file every hour to s3. Its easy to download that file from s3 to use production data in development.

If I start getting scaling problems I'd have to start using multiple servers and at that point I'd need Postgres.

But we're at ~36 employees and 8 figures of revenue on a single server.

I can probably go another year or 2 without a big database.

</comment></comment></comment><comment><USER9> I sort of felt compelled to post this. An OS written in Crystal. [1] Which got quite a bit of discussion last time it was on HN [2] .

I know this may sounds strange but I would not be surprised once Crystal reached 1.0 there will be a Ruby implementation written in Crystal.

[1] [https://github.com/ffwff/lilith](https://github.com/ffwff/lilith) [2] [https://news.ycombinator.com/item?id=21860713](https://news.ycombinator.com/item?id=21860713)

</comment><comment><USER19> The recursively written Fibonacci benchmark is terrible for comparing a interpreted language to a compiled language. When compiling with optimizations in C, for example, the compiler significantly transforms the program. [1] It's possible Crystal does too.

[1] [https://godbolt.org/z/vaESBG](https://godbolt.org/z/vaESBG)

<comment><USER20> Recursive fibonacci is highly artificial, but the fact that a compiler can greatly transform the program is an important advantage of compilers over interpreters.

<comment><USER19> I had the (mistaken) impression that the GCC code signicantly transformed the algorithm because there is only one recursive call instruction, but looking at it closer it's still exponential. I still think it's a pretty silly idea to use such an unrealistic benchmark. Especially since it might be possible to make a compiler turn the exponential algorithm linear.

<comment> nv-vn I'd be very surprised if there's a commercial compiler that would automatically optimize this into linear time. Maybe some obscure functional research language? But certainly don't think LLVM is capable of dynamic programming.

</comment></comment></comment></comment><comment><USER21> I really liked Crystal some years ago, even used in a prototype. Soon I realized that despite its cute syntax and good performance, coming from Elm, I would prefer a simpler language with type safety, good error messages and very fast compile time. Maybe in the next years I'll experiment again, especially due to Lucky web framework.

<comment><USER22> May I ask what language you decided to move to instead?

<comment><USER21> In my current job I use Node/Koa with Js, and I am not happy with it. Every side project that I start I use Elixir, and I plan working with it next year, or maybe with Clojure. It's not exactly what I was looking for, but while I can't find one that matches the criteria in the next years, these are pleasant options for me.

</comment></comment></comment><comment><USER23> Some underrated live coding tutorials on Crystal on this YT channel: [https://youtu.be/Q1wOFmt3yng](https://youtu.be/Q1wOFmt3yng)

<comment><USER24> I knew who it was before clicking. I learnt to love Crystal from this channel. Great content.

</comment></comment><comment><USER25> Here are thorough benchmarks of Crystal and C up against other interpreted languages: [https://github.com/kostya/jit- benchmarks](https://github.com/kostya/jit-benchmarks). It has other examples besides Fibonacci.

<comment><USER26> I'm quite surprised to see Javascript / Node so high up the ranks, quite impressive the amount of optimizations that's been done to the engine throughout the years.

<comment><USER27> Yeah, a lot of people don't realise that JavaScript performance is closer to Java than Python, even though the semantics are much closer to Python.

<comment><USER28> We recently finished our first node backend (typescript) and I have to say it was an amazing experience. The npm ecosystem definitely attracts its fair share of undesirables, but I struggle to see why JS full stack isn't the default for 99% of people.

<comment><USER29> Lots of people are sure their stack provides an amazing experience, for example I don't get why you would choose node over rails. As for the performance: looks good for js, but quite a memory hog or am I missing something?

<comment><USER28> I'm not expert in Ruby, but I'd say there's definitely a few wins in typescript (types, performance, async). But the biggest wins have nothing to do with language differences, but rather not having to worry about that because you're using one language. If teams are large and split between api and frontend, then perhaps less of an issue. But if you're doing anything fullstack, to be able to use one language, everywhere with mostly the same ecosystem...well it's kind of what Java wanted to be.

And I say this coming from a python/django background. And ORM is one big thing that Rails/Django definitely are clear leaders in.

<comment><USER29> I like the one language thing. I think it's overrated a bit (most syntax mistakes I make are caught by linters) but it's nice. However, it's still js. Lots of warts still. Also - for a normal web app I really don't see how async is a plus. I don't like promises or async that much, especially with so much db access - why would i want everything to go to an event loop?

It's a never ending discussion, I think all of these stacks are "good enough" to get the job done, a lot of it is how your brain ticks and what you're experienced with...

</comment></comment></comment></comment></comment></comment></comment><comment><USER30> What's the elevator pitch on Crystal? Seems like typed Ruby with performance considerations.

<comment><USER31> Exactly, it's basically statically typed, compiled Ruby with really good performance.

Also it has really powerful type inference, which allows you to write really Ruby-like code while maintaining your static typing. The downside of that is that it makes the compiler kind of slow.

<comment><USER32> Does go-to definition work in crystal? That was always my least favorite thing about ruby, I find it very awkward to write code without being able to jump to definitions.

<comment><USER6> This is the reason why I have to keep IntelliJ Idea Ultimate/RubyMine laying around.

I don't have the greatest laptop, and run a lot of containers, so Jetbrains IDE's are generally a no-go for me and I stick to VS Code, but trying to develop Ruby/Rails without a Jetbrains IDE Is crippling.

I think ctrl+click definition jump does work in Crystal and it has a decent language server.

<comment><USER32> That's good to keep in mind, I strictly write code in vim but if I have to pick up ruby again I'll give those IDEs a shot.

I really like the sales pitch of rails, but as someone that almost exclusively writes in modern, compiled languages, it's really tough to adjust to ruby and be productive with it.

<comment><USER6> I wrote Rails professionally for a few years back when that was THE de-facto tech for greenfield projects and new startups.

At the time, I really enjoyed it, but I'd never written a modern-feeling typed/gradually typed language yet (C#, which I found really verbose and ugly, a lot of pre-ES6 JS and Ruby, some Lua + Python).

I would never voluntarily write it again. Ruby/Rails completely falls apart in larger projects if the entire team doesn't stick to best practices + stringent code and doc standards with stuff like YARD or Sorbet. And so many magic, implicit methods injected everywhere.

Super happy writing Typescript and occasional Rust/Go now. I thought Kotlin was pretty nice too, the one small project I had to implement in it.

<comment><USER33> Another issue with writing rails is the "bug in production that would've been caught at compile" issue lots of people have. There's been multiple instances early in my career when I missed a nil guard somewhere that broke months later because someone else used the method and sent it a nil. Types are super useful because they also work as on-demand accessible documentation, and the compiler helps you figure out well in advance when you're sending an invalid input etc.

<comment><USER34> I mean, the answer is just, more tests. If you choose a dynamic language over a compiled one, then you've in essence chosen to eliminate type definitions in code and replace them with type verifications in tests. Of course, if you switch to a typed language that doesn't have nil types, that doesn't help...

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER35> If `brew install crystal` is taking more than an hour to complete, in my case it was because llvm is a dependency and for some reason it was trying to compile it from source. If you manually install a precompiled llvm (you can do `brew install llvm` with some flags) it should skip that step during the crystal installation.

<comment><USER36> I installed crystal almost instantly with ASDF. Just:

        asdf plugin-add crystal https://github.com/asdf-community/asdf-crystal.git
        asdf global crystal 0.34.0

It was painless. Other languages I've installed with ASDF must have had the same dependencies.

</comment></comment><comment><USER37> _> If you recall Crystal is a statically typed language but you can omit explicit type restriction and the compiler will try to infer the type of variable. In our code Crystal uses the Int32 type for the n variable which has the maximum value of 2,147,483,647 but the 47th number is higher. In this case we need to specify the type of n. We can use Unsigned Int 64._

Both Ruby and Python use arbitrary-precision integers throughout. I thought Crystal would do the same, given the frequent comparisons to Ruby. I assume the reason it doesn't is to enable AOT compilation (i.e. not only because Crystal is statically-typed)?

Is there a statically-typed language that _does_ use arbitrary-precision integers throughout?

More generally, what other features are common in dynamic languages and rare in static ones, that aren't directly related to type-safety?

<comment><USER38> Haskell has arbitrary precision.

JavaScript has fixed precision.

<comment><USER39> Well, they both have both. More or less. Haskell has Integer for arbitrary and int for fixed precision integers, for example. JavaScript has arbitrary precision integers (via BigInt), and fixed precision floats.

</comment></comment></comment><comment><USER40> Crystal would benefit a lot if ported and packaged for ARM architectures. Those small embedded boards seem the best place to make use of a system language that produces tight and fast native executables. I know there's something for the Raspberry-PI+Raspbian, however I hoped there was an official port for other boards on a more generic distro such as Debian, Armbian or DietPI. Being a bootstrapped compiler (a compiler written in the same language it compiles) makes this even harder to accomplish.

</comment><comment><USER41> Huge ruby ran here. Ruby on Rails has been my day job for a decade, and it pays the bills well enough. Crystal has always been a curiosity to me, but I have never been as productive in any other language or framework as I have been with Rails. I dont' care if you're language is "ruby-like" or "go fast" \- if I'm not as productive with it as I am with Ruby, I'm not gonna touch it.

Get back to me when there is Crystal on Rails.

<comment><USER42> Here you go: [https://spider-gazelle.net/](https://spider-gazelle.net/)

<comment><USER41> Does it also have a massive community and thousands of libraries(rubygems) for almost every possible thing you can possibly think of?

<comment><USER42> It's a significantly younger language than Ruby, so no, the ecosystem is not as diverse (yet). It is quite populated though - for a taste you can browse at sites like [https://crystalshards.xyz/](https://crystalshards.xyz/) or [https://shards.info/](https://shards.info/).

</comment></comment></comment></comment><comment><USER43> I think language-to-language comparisons are often "unfair". Comparing Ruby and Crystal is probably not much better than comparing Ruby to C. Syntax is not an absolute signal for language similarity, and the most important parts of Ruby (in my opinion) more or less require it to be interpreted and not compiled. One can always make languages look the same (which Facebook did with OCaml <-> JS transpiler) without the languages being similar by other measures.

tl;dr "yes, that one is faster and looks similar to the other one so our developers will be less scared and this is good" is important and valid but "that one is just the fast language but slower" is not a valid comparison, which I'm kind of getting.

</comment><comment><USER44> I really like Crystal and have had good success using it for web stuffs. I still reach for ruby first, because the dev feedback loop is a lot faster and the ecosystem is more vibrant.

The biggest gain I've found in using Crystal vs Ruby is reduced memory usage.

Most often my code isn't slow because of the language, but the data access behind it, so counting CPU cycles is less of a priority for me.

</comment><comment><USER45> Crystal is quite interesting, but a fib benchmark?

<comment><USER46> I mean it's kinda trivial but it does have the added benefit of also showing off that it's statically typed. For a more real world example check out the website of Kemal (Crystals Sinatra equivalent) at [https://kemalcr.com/](https://kemalcr.com/), where it benchmarks at ~46k requests per second in a HTTP benchmark vs 4k in Ruby.

<comment><USER9> Or something like Sidekiq in Crystal [1], which was 7 times faster. But now I wonder how much faster would Sidekiq run on TuffleRuby.

[1] [https://github.com/mperham/sidekiq.cr](https://github.com/mperham/sidekiq.cr)

<comment><USER46> I'd be amazed if TruffleRuby could beat Crystal, given the problems most JITs have had with Ruby. By restricting the extreme dynamism of Ruby a bit, Crystal can allow for optimalisations that no Ruby implementation will be able to match. It's just really difficult to properly compile languages where it's possible to dynamically redefine the + operator based on input from HTTP requests. That said, Truffle is looking super cool and Crystal does not have anything near the size and quality of the Ruby ecosystem yet.

</comment></comment></comment></comment><comment><USER47> Here is a much more fair comparison: Ocaml vs Crystal vs Go:

[https://gist.github.com/s0kil/155b78580d1b68768a6c601a66f8e2...](https://gist.github.com/s0kil/155b78580d1b68768a6c601a66f8e29b)

</comment><comment><USER48> I would like Crystal to include some modern features instead just being a fast and nice language. How about stuff like: immutability, good functional programming support, complex union types, compile-time guarantees?

<comment><USER49> Check out Crystal's official website sometime to learn more about its modern features. Crystal doesn't have immutability, but does have support for functional programming and union types. "Compile-time guarantees" is such a vaguely specified feature that virtually all programming languages have that, but its type system is actually pretty strong despite how it looks with all the type inference, and even prevents null pointer exceptions unlike a lot of static languages.

It also has a lightweight threading system that makes it work well as a web server. Not quite as elegant as something like Elixir, with its isolated processes, but still nice. It also supports macros, which can make the code a lot more elegant and performant compared to similar languages.

</comment></comment><comment><USER50> It's cool if it looks like Ruby but if it doesn't run Ruby gems, it's kinda pointless to consider it a Ruby alternative. Might as well consider Rust or C++

</comment><comment><USER51> some of these benchmarks Fibonacci etc are superficial. don't reflect real world use. people need to start comparing languages on ecosystems etc, error reporting e.g Elm | Rust have beautiful error messages. time to write a feature and deployment. Your language | framework could run in microseconds etc but if getting started is a nightmare or it has cryptic error messages, then it's non starter</comment>


DARTH MAUL: Apprentice – A Star Wars Fan-Film - <AUTHOR> https://www.youtube.com/watch?v=Djo_91jN3Pk <comment><AUTHOR> Seriously, this is really worth watching. It's very well made—choreography, music, acting, effects, everything.</comment>


Lee Felsenstein Launches Educational Hardware - <AUTHOR> https://www.patreon.com/user?u=2485468&ty=h <comment><USER2> I'm starting a segment of STEM hardware to allow middle-school kids to learn digital logic design in an interactive, visual-tactile way, in order to build a basis for learning software.

My official product crowdfunding is still in preparation - meanwhile I committed to teach a class on March 12 so I've designed a smaller, crude version that will work for the purpose.

The device is a reverse-engineered version of the first programmable logic chips with the fuse matrices replaced by a diode matrix. Users express logic equations by placing diodes at matrix junction points - this provides a tactile experience and visual feedback.

The logic and-or trees thus created control latches whose outputs go back to the matrix. The user can create state machines this way - it's microprogramming since the underlayment is hardware only. And it allows users to grasp how symbols can control physical structure.

My Patreon fundraising page for the temporary stopgap device is www.patreon.com/lfelsenstein . The larger project webite is www.andorbit.com .

This will be an open project - I'm counting on others to develop courseware, peripherals and a web-based structure for mentoring support.</comment>


In Pictures: America's Fastest-Dying Cities  - <AUTHOR> http://www.forbes.com/2008/08/04/economy-ohio-michigan-biz_cx_jz_0805dying_slide_2.html?partner=rediff

<comment><USER2> "Where Some See Crisis, Others See Opportunity..."</comment>


Ask HN: What do you do to relax? - <AUTHOR> One thing I do is work out.
But I'm trying to find something I can do every night to wind down and have a bit of fun.
I'm thinking I might watch a movie (or part of one) a few nights a week. Maybe a tv show. Maybe read.
What else? What do you do? <comment><USER2> Read.

Do it right though. Sit down in a comfortable chair. Turn off your computer so you're not constantly getting up and checking your email. Maybe turn on some music. Allocate a sufficient block of time, so you can become truly engrossed in your book.

Good fiction has a way of taking your mind elsewhere that no other medium can match. It's the most satisfying and fulfilling way to relax that I know of.

edit: minor grammar correction

<comment><USER3> I do like reading (non-narrative nonfiction mostly), but I can never seem to _relax_ while doing so. Sitting up in a chair makes holding the book up difficult, reclining is no better, and lying in bed makes my back uncomfortable. How do people physically read for more than an hour at a time?

<comment><USER4> I fidget a lot, too. I suppose I've just gotten used to it, though.

I would recommend "bone support." You shouldn't be _holding_ the book up, but resting it somehow. Angle your arm so you don't have to use muscle, or it'll become painful.

I don't know if that's a good term for it, but that's what they called it when we were learning to shoot in the Marine Corps. Same idea. :-)

</comment></comment></comment><comment><USER5> Undertake a small 'home-improvement' task that takes no more than an hour or two. After spending so much time in computer systems solving problems, fixing a real-life bug or enhancement in my flat is strangely satisfying.

e.g.

      - finally get that TV/DVD/Stereo setup the right way;
      - replace the dodgy doorbell
      - throw out old crap
      - repaint a room (if you make a mistake, just paint over it)

(edit:formatting)

</comment><comment><USER6> My girlfriend and I like to roleplay as _Atlas Shrugged_ characters.

She dresses up as Dagny Taggart.

</comment><comment><USER7> Draw. Its nice when the refresh rate of what I'm looking at is how often I blink.

</comment><comment><USER8> I read in my hammock. <http://Eaglesnestoutfittersinc.com> has the worlds best hammock. Bought one in 2002 and might say it's the best thing I've ever purchased. I can toss it up almost anywhere in a matter of seconds, kick back and read, take a nap, and then get back to work.

<comment><USER6> I just visited that site, and those are some of the most bad-ass hammocks I have ever seen.

<comment><USER8> If you ever get the chance the lay in one, you'll be hooked. I just have the standard single nest + slap strap pro and it's amazing. The hammock packs down to the size of a softball and you can just clip them onto a backpack or anything, setup takes about a minute, and the material is almost like silk. I'm getting a rain fly and bug net next summer for some hiking trips. Can't wait to try it out in the real wild!

</comment></comment></comment><comment><USER9> Between the 3 kids and helping my wife with the housework I'm lucky to get any "me" time at all.

When I do I typically read, exercise, or play some minecraft or maybe something on kongregate.

<comment><USER10> +1 for Minecraft! Problem is, once you start building something there, you just can't stop until it's ready.

</comment></comment><comment><USER11> I keep bees. No, really. I play computer games, I go camping, and I keep bees.

</comment><comment><USER12> I play backgammon. My father-in-law introduced me to Tavli two years ago and thoroughly beat me. I decided that the next time I saw him I would win (we live on opposite sides of Europe so I don't see him as much as I'd like). I practiced backgammon and learnt how to play properly. It's better than draughts, but easier and more fast paced than chess.

You can also download it for free from <http://www.gnubg.org/> or play online (also for free, reg required) at <http://www.gamesgrid.com/>

If any HN'ers want to play some time I'm happy to have a game. If there's enough interest I'd be happy to run a backgammon school on a sunday for people to learn the basics and a little strategy.

</comment><comment><USER13> Booze and board games (Dominion or Settlers mostly) with buddies.

<comment><USER14> Mostly agreed... but Dominion seems like it doesn't have much real human interaction. It's more like playing simultaneous games of solitaire with your buddies in a race to the victory conditions. I haven't used all the cards yet so I could be mistaken, but it seems the only real time you can affect other players directly is with the militia, which you can't target and just slows down everyone else. Tthat's not to say there isn't fun to be had, like in chaining together multiple Markets in a round.

You should also check out Bohnanza; similar ideas, fewer rules to parse, plus inter-player trading.

</comment></comment><comment><USER15> Usually I read a book or play StarCraft II/Civilization V/Halo Reach. Depends on whether I've come to hate technology that day or not. Cleaning stuff also helps me relax, but sometimes it just ends up becoming busy work.

Closing Colloquy and Skype helps too.

<comment><USER16> I was going to say StarCraft II, but then I remembered that it actually causes me stress.

<comment><USER15> Heh, if I'm really stressed out I'll at least avoid 1v1 online. 4v4 is not so bad thanks to diffusion of responsibility. :)

</comment></comment></comment><comment><USER17> Working out and reading are my top two wind down methods.

A simple walk around the block works wonders as well.

</comment><comment><USER18> I work with my hands. As a computer worker, my brain is tired at the end of the day and my eyes sore while other parts of my body and mind are restless from the day-long sitting station.

So I go on craigslist buy old things which I fix in my garage. Sometimes it's a PC but usually it is something more organic or mechanical like a piece of furniture, or an old mechanical tool. Very restful satisfying and useful. I think working out i still needed though.

</comment><comment><USER19> I really enjoy reading. I take it as a serious hobby (I spend on average 1 hour a day reading, often times more).

I read a variety of books: programming (learn something new), business (keep yourself motivated and consider new approaches), lifestyle (what can I do to be a better person?), and fiction (oooh, a good story).

I can't being to explain how much of a profound impact reading has had on my life. I used to read a ton when I was younger, but when I started university I stopped for a while (hanging out with people, lots of social stuff), and didn't get back into the habit until the beginning of last year.

Reading keeps my mind focused, helps me relax, and teaches me new things all the time. When I read programming books, I make a point to write some software using whatever techniques / libraries the book I'm reading is discussing. This helps me get a better understanding of what I'm reading and learning about, and it's a lot of fun.

How often do you read? Do you enjoy what you're reading?

</comment><comment><USER20> Play poker, masturbate, play with my cat.

Not at the same time.

<comment><USER21> I can't believe people on HackerNews are upvoting that comment. Does it really add that much to the conversation?

In the time I've been here on HN I've come to this position. When I reply or submit, I like to consider a hypothetical someone in a year's time, mining HN comments for insight and information. I'd like to think that what I write has some use to the in context, and at the same time accurately reflects who I am now.

And yes, the reply fits in that mould. In a year's time if someone came across that comment, I'd like them to know that I thought it peurile and unfunny, and I flagged it.

Maybe I am just an old fart, but get off my lawn!

<comment><USER22> > "Does it really add that much to the conversation?"

Yes. It has 3 items that satisfy the requirement of relaxing.

</comment></comment></comment><comment><USER23> These days, I really enjoy removing the skins from chick peas. You soak them overnight, boil them for two hours, and then you can squeeze them out of their skins.

It's very repetitive and boring, and lets my mind drift. Plus you get smoother hummus if you remove the chick pea skins first.

<comment><USER24> Cooking provides lots of tasks that sound boring (and are easily handled by food processors, etc.), but are still very grounding to do my hand and focus on 100%.

I really enjoy making bread. Kneading dough feels very real after hours of debugging bad Algol code.

Also: You forgot to mention garlic!

</comment></comment><comment><USER25> Walk in the woods.

</comment><comment><USER26> A few ideas: \- Meditate \- Exercise (running, weights, etc) \- Yoga

Do something that's totally unproductive that's pure fun. This might sound silly, but finger painting or something similar.

Relaxing is all about feeling like there's nothing you NEED to to be doing right now. You're just in your own space, enjoying your own company.

Maybe there's something you've always wanted to do but haven't for whatever reason. Conquer your fears! Go take that mambo class. Attend that french pastry chef course.

You know? Mix it up, have some fun. : )

</comment><comment><USER27> Luthery.

I have started to make acoustic guitars (specifically, Selmer-Maccaferri copies; the type of guitar Django Reinhardt was famous for). I don't get a lot of free time with a relatively young child, but what little time I can squeeze into my workshop is very relaxing. After pushing bits around with your brain all day there is something immensely satisfying about making a real physical object with your hands. Luthery is also an excellent lesson in patience and long-term goals.

<comment><USER28> Agreed. I don't make guitars, but physical crafts are a huge relief after writing code all day. I sew, knit/crochet, book-bind...any sort of craft that results in a physical object you can hold when you're done is immensely satisfying. And the repetitive motions of some of those crafts is great for getting in the zone with them. I find handsewing and crocheting especially relaxing. Knitting hurts my hands more for some reason.

</comment></comment><comment><USER29> The most satisfying way I've found to relax and wind down is doing something completely unrelated to work that involves focus, and even better, a practiced skill. Watching a movie or reading a book can mostly take my mind off work, but it feels much better to do something where you can get in the zone. For me this is skateboarding, rock climbing, racquetball, or cooking. I imagine playing a musical instrument falls into this category as well.

</comment><comment><USER30> I read books, mostly sci fi and stuff like that but also humor horror and other genres. Books are wonderful and when you read right before bed you can really tell when you are tired (which is vastly different if you are watching T.V. or other more passive things), I guess after a while your imagination just stops working.

I probably spend most of my personal free time reading books and they are great for me to wind down.

</comment><comment><USER31> -critical music listening (some decent hi-fi speakers/headphones required)

-meditating/deliberate breathing

-static/dynamic apnea free diving (need access to body of water)

</comment><comment><USER32> I bike to work, which feels good and offsets a bit of the sitting-on-my-fat- ass all day syndrome. Likewise playing sports (soccer, ultimate frisbee, lately team handball).

Making/crafting things in the real world as opposed to in software is nice. And hearing/watching/playing music, for me mostly a blend of acoustic/bluegrass.

</comment><comment><USER33> I ride - either mountain-bike or road. I love getting out and riding up the river or just wandering through areas I don't know. I see a lot more that I wouldn't if I were driving. It can be somewhat meditative and it's an antidote to sitting in front of a computer.

</comment><comment><USER34> I used to play world of warcraft, nothing like that level of immersion to relax in respect to real life, but it might just replace real life tension with virtual tension.

Until the new expansion pack comes out I find myself just watching TV

I'm a spud.

</comment><comment><USER35> Well...Apart from reading fiction/non fiction, ( I usually alternate between them ), I've taken up painting, and it's soothing to say the least. Put on some light music and let the brush follow it's will :)

</comment><comment><USER36> Working out is awesome and essential.

I also play bridge in my down-time.

[http://www.bridgeworld.com/default.asp?d=intro_to_bridge&...](http://www.bridgeworld.com/default.asp?d=intro_to_bridge&f=bbeg0.html)

</comment><comment><USER37> Read.

I do the same. I would suggest you to read fiction books. It will relax your mind.

BUT, if you have friends, family or kids, I would suggest you to hang out with them, play with them.

It will make you more productive next day at work.

Try it for a month. It works. :)

</comment><comment><USER38> I watch Arsenal play some kick-ass football. Also, performing magic, playing the guitar, listening to classical pieces (or sometimes classic rock) and just going for a walk if the weather permits.

</comment><comment><USER39> One thing that really works is Meditation. Best combination is work out in a gym for about an hour and after that meditate for half hour. You are completely de-stressed after that.

<comment><USER40> >One thing that really works for me is meditation.

FTFY

</comment></comment><comment><USER6> Tai Chi (available everywhere): <http://www.taoist.org/content/standard.asp?name=FindClasses>

</comment><comment><USER41> Exercise, cook, read (I read a lot), play Halo Reach, sex, meditate, spend time with friends, and read on-line material (what used to be called "surfing the web").

</comment><comment><USER42> Watch TV in a foreign language. There are lots of ways that this could be entertaining, and if done correctly you can pick up a language in your leisure time.

</comment><comment><USER43> Play some relaxing games. flOw, Flower, and echochrome are all pretty good. Harvest Moon is also good, but I tend to doze off while playing.

</comment><comment><USER44> Take long walks around Manhattan by myself with music blasting. (It's amazing how much faster you walk with some good music on, btw)

</comment><comment><USER45> Strangely, I like to code to relax. When I get stressed out working on something, I just switch to working on something more fun.

<comment><USER46> yup, this is why all my personal projects are 90% done. i'll finish the other 90% some other time.

</comment></comment><comment><USER47> Eat wholesome meal with glass of green tea.

Listen to music and breathe.

Take a bubble bath alone or with gf.

Watch science and nature documentaries.

Take a walk and talk with an old friend.

</comment><comment><USER48> Put on some chill music and have a bath.

</comment><comment><USER49> Do at least 20 minutes of a hard aerobic workout. There's nothing like an adrenaline rush to relax you.

</comment><comment><USER50> Read. a lot

Also, I picked up a musical instrument, I find my playing to be very relaxing, my girlfriend does not. :-p

</comment><comment><USER51> Smoke weed.

</comment><comment><USER22> Play piano, watch movies/TV comedies, rollerskate, play Lego with the kids.

</comment><comment><USER52> I close my eyes and play the piano, sometimes for hours (unknowingly).

</comment><comment><USER53> after working behind a computer all day, walking the dog is a great way to unwind. sometimes, i ride my bike. getting a drink with friends is good too.

</comment><comment><USER6> Hot shower (as hot as you can tolerate) for 30 minutes.

<comment><USER22> Stand up? Crazy. Get a bath.

<comment><USER6> I actually have a foldable cedar chair I sit on in the shower.

</comment></comment></comment><comment><USER54> I read and swim (or get some exercise in general).

</comment><comment><USER55> run (although this amps you up, not winds you down) play guitar (this could go either way)

</comment><comment><USER56> Yoga.

Cook (then eat).

</comment><comment><USER57> starcraft

</comment><comment><USER58> I read Hacker News.

</comment><comment><USER59> Visit my village.

</comment><comment><USER60> read, sports/exercise, video games.

</comment><comment><USER61> TM

</comment><comment><USER62> Python

</comment><comment><USER63> Surf.

</comment><comment><USER64> Avoid hackerne.ws and reddit.</comment>


Yes I Still Want to Be Doing This at 56 (2012) - <AUTHOR> http://thecodist.com/article/yes_i_still_want_to_be_doing_this_at_56 <comment><USER2> Still love coding (and still going to be doing it at 56, no choice), but coding at work lost appeal for me -- rat-racing in Agile teams, with every keystroke accounted for in JIra, and no place for a smallest independent idea to try.

No wonder there is less and less experienced people on those teams, and the tech landshaft adapts accordingly -- people just don't know anymore how to employ experienced developers. Big old companies are not built that way anymore (am employed by one, multi-national, tried several geos, all the same), and young companies... you know it all, young folks are just smarter.

Sorry to sound pessimistic (I am not really, for many reasons, one of them being, I cannnot afford to retire).

Side projects, yes. Becoming wilder and wilder with every year, rarely reaching the end. Just for staying sane as someone here mentioned.

<comment><USER3> When I was young, I wanted to stay away from the old large companies. When I crossed the 35 year threshold, they became the only one's I wanted to work for: every passing year made that desire stronger. Almost 40 now and finally working for one, I couldn't be happier - I could be making more, but not happier.

<comment><USER4> I'm 30 going on 31, and am currently doing that. I recently came from a start- up gig that worked me until I burned out, then laid off my whole team shortly after launch. I'm at a medium sized company that still does cool things, but doesn't force ridiculous deadlines on you and actually seems to care about the well-being of their employees. Most of the engineers have been there for 2-10 years; I've heard this should be a metric by which you determine your next position, but I hadn't realized just _how_ important that is until I got chewed up and spit out by a 'cool' startup.

<comment><USER3> Yeah, I'd say the majority of people I deal with have been there for 5+ years. The company promotes from within, so a lot of the vets are in some form of management or research by now. That was one clue that this was the company I wanted to work for. The other was just how real and truly comfortable everyone was working there.

</comment></comment></comment></comment><comment><USER5> 46 here, and for me, luckily I guess, I ended contracting from the age of 24 and have been doing that on and off for 22 years. I've been able to move technologies and really enjoy being right at the coal face. I have run projects and teams, but the pure pleasure I get from coding has never left me.

I would say my one 'regret' is that I really did not discover hackathons and even meetups until about 3 years ago. Huge amounts of fun that has really integrated me into the local developer community.

These days I contract as and when I need to financially, and then take time off to sprint at ideas as and when family life/finances allow me to. I do feel I came late to the idea of start-up culture but I never ever feel it is too late to learn.

</comment><comment><USER6> I no longer have an age, I have a version.

I am version 4.8.

I already used that once but I think it's worth a repeat ;)

\---

On another note, this age subject has come up a few times:

Old Geek: [https://news.ycombinator.com/item?id=12503458](https://news.ycombinator.com/item?id=12503458)

Programmers: Before you turn 40, get a plan B (2009) [https://news.ycombinator.com/item?id=9361580](https://news.ycombinator.com/item?id=9361580)

Silicon Valley's Dark Secret: It's All About Age (2010) [https://news.ycombinator.com/item?id=9710936](https://news.ycombinator.com/item?id=9710936)

I also wish I could copy paste this comment I already wrote: [https://news.ycombinator.com/item?id=9362508](https://news.ycombinator.com/item?id=9362508)

<comment><USER7> I recommend planning for 4.10, 4.11, etc. rather than introducing breaking changes.

</comment></comment><comment><USER8> 56 here as well. Like yourself, I've been doing this for a long, long time. If it weren't for my personal projects that usually incorporate some pretty wild ideas or technologies, I think I would've given it up years ago.

Today, with a head cold, trying to get caught up on the 400 emails I have because I took yesterday off. The idea of selling ice cream at the beach sounds like a kick-ass career move.

<comment><USER9> 36 and personal/side projects are the only thing that keep my sanity. Hopefully one or some become enough to move on, because I can't work for someone ever again.

</comment></comment><comment><USER10> A contrary view: [http://thecodist.com/article/my-biggest-regret-as-a- programm...](http://thecodist.com/article/my-biggest-regret-as-a-programmer)

<comment><USER11> Is this the same writer?

<comment><USER12> Wait... yeah, isn't it? That makes the 2012 post have a very different feeling, after reading this.

<comment><USER13> A bit.

Sounds like he still enjoyed programming but was kicking himself about all the money he missed out on by leaving the Bay area and quitting Apple in 94.

</comment></comment></comment></comment><comment><USER14> Wow. Based on the number of responses here, we should start a club - "56 and still doing it".

Those of us born around 1960 came of age during the earliest days of personal computing. I guess a lot of us got hooked and are still at it!

<comment><USER15> An older coders club is an _excellent_ idea, I'm in. Looking at the discussion for this and some other HN threads there's definitely interest, but this a horribly served segment, I think. Most material (blogs, videos, etc.) are done by and target the younger coders.

<comment><USER16> OLd Geek Jobs [1] was popular here recently [2].

[1] [https://oldgeekjobs.com/](https://oldgeekjobs.com/)

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

</comment></comment></comment><comment><USER17> I like programming a lot, and am pretty good at it.

What I dislike is the fact that it feels very tough to break into demanding programming jobs without Ivy League credentials. I certainly have the experience, and I've done some badass stuff, but, yeah.

Any advice is welcome. I am 35 and trying to work to avoid being dead-ended as a replaceable dev. Really interested in PL implementations and empowering devs to do more.

<comment><USER18> More annoyingly, it's tough because you're expected to answer whiteboard algorithm questions that closely mimic CS course exam questions but have very little to do with real world programming.

So that stuff you've been doing all day every day for the past 15 years is useless, you have to study for these interviews on your own time. Companies will even send you little study guides with references and strategies for practicing.

Essentially and as far as Google/Facebook/etc are concerned, your experience is worthless and any fresh grad can plug into your role like a cog. Or at least that's what's implied by their selection criteria.

<comment><USER19> For what it's worth, I currently work at one of the aforementioned software companies and my college experience is half a music degree. I didn't do any intense studying for the interview either, just spent a couple evenings doing project Euler problems in my favorite language to brush up as my job at the time was using different languages and didn't involve a lot of programming. I'm on the SRE/PE side of the world though, where I think interviews tend to line up with practical experience a little better.

</comment></comment></comment><comment><USER20> 56 here to, still love doing what im doing. For the younger ones, one advice. Keep it simple.

<comment><USER21> As someone who is mid 30s, ageism in the industry concerns me.

What have you observations been regarding your age when interviewing? Have you run into ageism?

<comment><USER22> I'm a little out of the current state of the art in programming (retired early). That said, I strongly suspect that little has changed in terms of what a _good_ programmer is worth. I stress "good". Good programmers are rare and I suspect will always be in demand. And age doesn't make you not good.

Just as a for instance (statistically valid sampling of one :), I had a guy working with me, Rick Smith, who is older than I am (I'm 55) and he is one of the most productive programmers I've ever met. Just amazing what he can get done, I really don't understand how he does it, I'm nowhere near that good. But he's as good as I was at my best so I think it is possible to be old and good.

But it is a lot harder than being young and good. I used to be able to pour myself a glass of wine in the evening, sit down, and hammer out a couple of really good commits. These days not so much. Forget the wine, it's rare that I have the juice to do anything useful, those really good coding days are not something I can just switch on like I used to. They come to me when they want and I have to grab 'em and ride them as far as I can because it will be a month or more before I get another one. I'm talking about those really productive coding sessions where you have all the state in your head, you see the code, you see the docs, you see the test cases, you see how it all fits together and you are just typing it in as fast as you can. Don't get those like I used to.

My Dad once told me that you are basically done doing anything significant by the time you are 35 (he was high energy theoretical nuclear physics). I've certainly proved him wrong, I did plenty of work that I'm proud of in my 40's, but 50's? Hmm, not so much. It gets hard.

Sorry to be a downer, I guess. If I were to offer up any hope I'd say stay as fit as you can. Healthy body, healthy mind and all that.

<comment><USER23> You sure you just don't need TRT? Hormone levels get worky by your 50's

<comment><USER22> I have no idea. My bits and pieces all seem to still work (not that anyone wants them) if that's any indication.

And I stay busy, just with other stuff like this:

[http://www.mercurynews.com/2017/03/17/mountain-vigilantes- ta...](http://www.mercurynews.com/2017/03/17/mountain-vigilantes-tackle- plague-of-potholes/)

Yeah, don't get me started on how my county (doesn't) maintain[s] roads. It's depressing and it's not just here.

But I'll ask my doctor if TRT is right for me. I actually will though I sound like a crappy TV ad.

<comment><USER24> You sound like you've got potential to be a burner ;)

<comment><USER22> Sorry to be so old, but what's a burner? Pot smoker? If so, I've never found pot and programming to mix, for me. Might work for other people, I still remember being stoned at a terminal hooked to a VAX 780 runing 4.3BSD. It's when I learned what the hjkl keys did in vi (I used arrow keys, shoot me). A wasted hour or two of looking down, hitting the j key, looking up, thinking "did it move? I'm not sure, lemme try again".

Not my best work :)

Or burnt out? Maybe, I dunno.

So what's a burner?

<comment><USER21> I believe pugworthy meant something like this:

[http://journal.burningman.org/2008/06/opinion/serious- stuff/...](http://journal.burningman.org/2008/06/opinion/serious-stuff/what- is-a-burner-anyway/)

"Still, the majority consensus appears to be something more broadly defined; it seems like maybe being a Burner is not about where you've been, or what you've attended, but what you do, and how you live."

<comment><USER24> Correct, thanks.

<comment><USER22> Huh, well reading the link, if you think I'm a burner, that's a compliment in my book. Thanks!

I credit my youth in Wisconsin with giving me a desire to help other people. You pretty much have to have that attitude in the winter, everyone is helping push each other out of the snowbanks. It was just sort of what you did, I didn't think about it until I moved to California and found that it was less common out here. Much more common in the Santa Cruz mountains, which is part of why I live there.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER25> I'm 56, still doing software and systems engineering every day, still love it. My daily routine is a lot like the author's. I've thought off and on over the years about doing something else, but the simple fact is I'm addicted to that rush I get when we solve a problem and see it work for the first time.

</comment><comment><USER26> I'm the same age as the author and have been coding since 1986. I still enjoy the immersive (flow) aspect of coding, but I'm no longer compelled to code in my off hours. In fact, about 25 years ago I realized that coding alone couldn't keep me enraptured indefinitely. So I diversified into R&D: AI & data mining, HPC, image processing, and recently deep learning.

I hope to remain in harness for another decade, probably in some sort of AI role, which seems plausible since the demand in that space for skill + experience far outstrips supply, and I'm willing to move.

</comment><comment><USER27> I'm still loving it at 60. I'm actually looking forward to being able to change jobs in the next year, but I am realistic about how difficult it will be.

</comment><comment><USER28> I just turned 54 and started learning to code at 53. Okay, learning to code _again_ because I haven't done anything since 1985 and FORTRAN77.

It's interesting because my employer (a multinational telco HQ'd in Canada) is keen to give me real work coding as soon as I want it. So with that, and my real purpose (building my next application myself) I'm really engaged and having a lot of fun.

</comment><comment><USER29> A question for programmers in their 30s wanting to still be doing this in their 50s and 60s...

Are you worried about the advancement in AI, i.e. programs writing other programs... will there still be enough programming jobs in 20 years for humans?

Ps I'm only a prototyper, I don't create production ready code, hence the slightly naive question.

<comment><USER30> No, not worried about that, particularly. But there are few other options, that might be worrying to some:

The routine tasks will more and more go away. Still amazed how much is done by hand today (like research, data preparation, communication, marketing, business to business processes, scheduling, HR).

Just as with every profession over the past decades, if you want to stay employable, you will have to level up your game significantly because the simple software stuff (of which there is a huge amounts today) will go away, let's say in the next ten years.

In 2030 software related employment will look more like in the 1960s. A highly selected and highly self selective group of borderline asperger guys having a blast thinking, proving theorems, playing piano and writing code.

Why I believe that? Because we see the 80-20 rule play out in so many fields. And in 2030 the leverage you get from technology will just a tad more intense that in is today.

</comment></comment><comment><USER31> One thing to remember is that the US has places with much higher salaries and a lot lower land costs than the rest of the world.

In NZ, the median house price is 5 times the annual salary of a senior dev. In our largest city, it's 8 times that. So the romantic idea of staying close to the tech and coding forever and not becoming a suit for me is really just that - a romantic idea. I want to own a decent house and support myself during retirement.

So forget 56. I don't want to be doing this when I'm 35.

<comment><USER32> > In NZ, the median house price is 5 times the annual salary of a senior dev. > In our largest city, it's 8 times that

Depends on what you mean by "senior", but that's not very far from the situation in the Bay Area

<comment><USER31> Right, but that's one area in a huge country. 5 times is the median across my entire country, most of which is provincial and rural, and which only has a single city over 1 million.

<comment><USER32> Well, this "one area" has significantly larger population than the whole of NZ, but I take your point. I think you're trying to point out the low salaries of SW developers, because I find it hard to imagine homes in non-central areas are very expensive?

P.S. I <3 NZ

<comment><USER31> No, it's much more a case of over-priced homes [1] than under priced developers. Even homes in non-central areas are very expensive - not to mention of a very low standard

Here's [2] an insulated house with no central heating and single glazed windows in a town of 20k people going for $125,000 USD. No real employment opportunities unless you work for local government or commute 50km. No Lord of the Rings style vistas in the Horowhenua either, it's drained swamp.

[1] [http://www.newshub.co.nz/home/money/2017/03/new-zealand- hous...](http://www.newshub.co.nz/home/money/2017/03/new-zealand-housing-most- unaffordable-in-the-world-the-economist.html)

[2] [http://www.realestate.co.nz/3036902](http://www.realestate.co.nz/3036902)

</comment></comment></comment></comment></comment><comment><USER33> 51, dont wont to do anything else. Working in a startup, coworkers are half my age. Having fun.

<comment><USER13> Ya, but don't all the GIF memes on Slack annoy you just a bit? :)

</comment></comment><comment><USER34> > If you want to be a programmer at 55 still you can't ever lose the hunger to > know more, know better and know simpler. Once you lose that edge the > technology steamroller keeps on coming closer and closer until you wind up > flat doing something else for a living.

Steamroller is an interesting metaphor. Treadmill is a little more common, thinking about the difference is potentially instructive.

Having observed some points between 20something and 55 (if still a good ways off from the latter end), one of the things I've noticed is that I'm no less hungry to know more. I'm possible _more_ hungry -- as my knowledge has grown, I've realized how much _more_ there is that I don't know. But I'm also far more picky and concerned about ROI. I have less patience for learning to keep up with churn; if it's at all possible, I prefer to _reserve new learning for new capabilities_ rather than learning a new way of doing the same thing. Unless it clearly _is_ better and simpler (but if that were so clear, why the proliferation of solutions?)...

</comment><comment><USER35> I want to be a programmer or at least be building important stuff at 56. I just don't want my sustenance to depend on it.

There is crazy ageism in this industry. And I don't want to fighting pointless battles, while you could be spending time in peace doing a lot of other work.

</comment><comment><USER36> Frankly, I can't agree with the author here, at least not professionally.

I want to be running an engineering org or company by 40. I enjoy coding and architecting, but I get much more enjoyment out of helping people get to where they want to go in their careers. I also enjoy the idea of directly helping businesses make more money/reach bigger markets and collecting much bigger paychecks (supposedly) and or bonuses as a result.

I do enjoy coding, though, so I would like to keep doing that during whatever spare time I can find. Though between living life on weekends and career efforts after hours during the weekdays, this will likely be difficult to do (as it already is).

<comment><USER37> "but I get much more enjoyment out of helping people get to where they want to go in their careers. I also enjoy the idea of directly helping businesses make more money/reach bigger markets"

Yeah, you don't sound like someone who will be happiest if you stick to coding. A lot of us code precisely because we don't feel comfortable or confident with the skills you mention.

</comment></comment><comment><USER38> I'm 61 and still coding. Although I am winding down, only working 4 days a week now.

</comment><comment><USER39> I'm late 30something and I do not want to be writing code any more. I'm burnt out, thanks to being an Android developer. (Don't do it!)

I'm not sure what I'll do instead. I've been reading a bunch of stuff folks have written about the subject, but most people are focused on going in to management or QA or whatever. I think I'd just like "out". My brain ain't what it used to be and I'd rather quit than be fired, if you get my meaning.

I don't have an answer yet. I half-joke about becoming an Amazon Flex driver.

<comment><USER40> > I'm burnt out, thanks to being an Android developer. (Don't do it!)

Curious by your answer: something about bad apis on Android, or you got burned by deadlines or boring work?

<comment><USER39> Whoa sorry about my super late reply here.

The APIs are not great. Some of it is down to poor naming, for example:

The callback you'd use on a CheckBox is called `OnCheckedChangeListener.onCheckedChanged(view, boolean)` (or something) but it is called whether or not the check state actually changed (e.g. if you call `setChecked(true)` and it's already checked you'll get the callback anyway). This is an issue that plagues the APIs in other places like `OnLayoutChangeListener` and `TextWatcher.OnTextChanged`

The fragment lifecycle is incredibly complex to the point that many people advocate against using it -- I'm one of them. It's like someone decided to try to solve every problem ever without asking the real users (devs) what they thought was wrong.

But the worst thing about it, bar none, is just how long it takes to build and run an app. We're talking 1.5-2 minutes. Everyone has their pet idea for reducing the build/test cycle but they provide marginal benefits at best and don't offer up concrete examples with concrete data (e.g. "I am running this gradle command for this github project on this computer and am measuring it this way, and here are my results"). I've spent weeks of time, scattered over the years, trying to figure out a way to reduce this to something more reasonable like 5 seconds, but to no avail.

My best guess is that other people are working on tiny toy apps or are just building the default project and then proclaiming that I must be mistaken, I must be doing something wrong for my build (of a reasonable sized app) to be as slow as it is.

</comment></comment></comment><comment><USER41> Fifty Eight and reading and retaining more IT tech news than the Students in the classes I teach. I am 1/3 programmer and 2/3 sysadmin, overlay by manager and trainer. It the variety that has kept me going. After 3 to 7 years I want to toss out the things I working on and move on. Always planing for the next cycle. Studying up for a couple of Cert by the end of the year because I am getting that itchy feeling.

</comment><comment><USER42> I was still doing it at 56...eight years ago.

<comment><USER43> Are you now too?

</comment></comment><comment><USER44> Didn't he write an article about how his biggest regret is not going into the management route?

<comment><USER45> Correct. 4 years after this 2012 article, he wrote this [2016] => [http://thecodist.com/article/my-biggest-regret-as-a- programm...](http://thecodist.com/article/my-biggest-regret-as-a-programmer)

He laments how he quit Apple when it was going down, then Steve Jobs came along few months later and the rest is history. Also how his Sister went the management route and has 10x Assets etc. I wish I hadn't found this 2016 article because that makes me read this OP 2012 article in a whole new light. And it's not very encouraging... :(

</comment></comment><comment><USER46> I chose this career exactly because I wanted to have a career I could work in up to my 50s or 60s.

</comment><comment><USER47> 63 here. Still doin' it...

</comment><comment><USER48> I'm 35, I wish I could relate. The technology is not the problem, of course.

</comment><comment><USER49> 64 and still coding, although not full-time.

8 years ago I learned Objective-C and physics engines and published a number of mobile apps for IOS.

Nowadays I am learning Go, Solidity & Viper and writing blockchain-based dapps. Big fun.

</comment><comment><USER50> Used to keep quite well up to date with reading this blog some years ago, thank you for bringing it back to my attention!

</comment><comment><USER51> at 56 i'll be a robot's assistant.

</comment><comment><USER52> 69 now. still working. big(gish) co so good insurance, would not have it on my own. Embedded systems.

</comment><comment><USER53> I'm 56 and I hope I will still be coding for many more years.

</comment><comment><USER54> Yes I Still Want to be Doing This at 65.

</comment><comment><USER55> With age discrimination, will a 56 year old still be employed? Perhaps as a manager.

</comment><comment><USER56> I am 56 and still love programming. I had a wake-up call recently about whether the programming world still loves me however. I am looking for a new challenge and saw an opening for a "C++ cross platform dev" at an interesting (sports stats and league management) startup just down the road from my house. I love sport, love stats and I've been hobby coding a successful C++ chess GUI for years (plus tons of professional C++ experience). Submitted an application through an annoying SaaS job application site. When the submission completed the automated message from the CTO was "thanks we'll get in touch if your experience matches our needs". I had a strange premonition. "I am never going to hear from these guys". Two weeks later, after hearing nothing I thought I'd try something else. After spending an hour to eventually successfully find out the CTO's email (it's one of these cool new companies that makes direct contact more or less impossible) I sent the following email;

Subject: Can I Buy you a Coffee? To: $Name, CTO $Company

Hi $Name,

I am an experienced programmer looking for interesting challenges. $Company is exactly the kind of company I'd like to help out next. I love the idea of taking on the world from $NiceSuburbWhereBothMeAndCompanyLive. I could send you a CV but I don't think that's the best way of us finding out if there is a real opportunity for me to help you. Basically I have heaps of experience in a bunch of important technologies, but much more importantly I am capable of learning new languages and technologies quickly. For example, at the moment I am teaching myself Rust, just for the hell of it, and because I think it is cool and exciting and has a future. I am not a paint by numbers developer. Copying and pasting snippets from Stackoverflow without understanding is not my thing. Deep level understanding and sound software engineering is my thing.

I'd love a chance to show you what I can do, and I would definitely consider doing so on an unpaid basis, at least initially. I've had some significant success in my career and these days I don't have to work to make a living. For this reason I could be the ultimately flexible "resource" \- for example it's possible I could help out on an occasional basis, without requiring inflated contractors' rates.

Basically I am offering something a little bit "out of the box". I don't think either of us has much to lose by having that coffee and opening our minds to the possibilities.

Cheers,

Bill.

I must admit this time I did expect a reply, but no luck this time either. What kind of person would just ignore something like that? I think it might be a generational thing - just ignore emails if you don't want to answer them. They're still advertising that C++ job too. It took me a while to realise that these days cross platform C++ probably means iOS and Android - not Windows, Mac and Linux any more. Still you get a certain amount of experience and you realise there's very little really new under the sun and you can adapt your experience and understanding and learn anything "new" quickly if you need to. End of my bitter rant.

<comment><USER56> For the record, a chance meeting led to this company actually giving me a fair chance. The lesson - emails and web submissions are easily lost in the chaos of daily business and a personal contact in meatspace trumps electronic "reaching out" every time.

</comment></comment><comment><USER57> 43 here. You might think you still want to be coding into your 50s, but I am here to warn you that the matter is highly subjective. I'm noticing that each subsequent job search after 40 is a little tougher and rejections are for silly reasons now (because you're old isn't ever one of them). The laws won't protect you, so forget about that.

No matter what you think, you won't be as employable in your 40s and 50s as you were in your 20s--being young in the tech industry means you can be exploited and exploitation is the #1 factor. They know young people will work a ton of extra hours for no extra pay to gain experience, to try and prove themselves, or whatever.

I recently talked to a colleague who is 62 and still coding. He is worried about the next seven years as he is not ready to retire (not financially ready, that is). His department is going through downsizing and he is trying to position himself in another area that isn't likely to drop people. He rightly realizes that finding a new developer job at 62 will be next to impossible. It's all a big chess game after 40 so be prepared.

Unlike the codist, I'm sure I don't want to be doing this work after 50. I have a plan for getting out. This year, because of a family obligation, I took some months off. During that time, I did a trial run of how to 'retire' from software development. There were quite a few surprises for me and it didn't look like I had expected. Finding an alternative career after 20+ years as a developer is do-able: There are roles that require attention to detail and analytical skills, but that don't require coding, for example.

I won't go into detail, but I will say I rejected downshifting to a non- developer role even though I had a couple offers at 80-90% of what I was pulling down as a developer. Instead, I'm headed back to doing development for another 5-7 years, but with more knowledge about how to proceed in later years. I want to retire around age 50 and am working on having the passive income to do so. I may need to work part-time in odd jobs as well, but I predict I won't be a developer in my 50s.

If you're older, you had better understand that the next downturn could very likely take your job and getting another one will be hard. For all the happy talk about how great the job market is and how age doesn't matter, I beg to differ. That "great" can change insanely quickly. There is more competition in our field than ever before and the only thing that creates job security for us is being able to actually write code and get crap done and even that is of thin value because companies don't care: they see us as another commodity. To management, it doesn't hardly matter how good a coder you are, companies are happy to accept fungible, mediocre people as long as the systems sort of work.

The last thing I will leave you with is that you don't know how long you're going to live. If you have any ambition to do anything in life besides work, you need to get going on those plans right now. Dropping dead from a sudden heart attack or stroke does happen to a lot of people.

<comment><USER58> Some of us, for financial reasons (like emigration, bad luck, divorce, child support, or all the aforementioned) will be coding until we drop dead or get kicked out and can't get work.

Trust me, most of us in this situation are probably acutely and painfully aware of the nightmare scenario, but we've got the tiger by the tail and can't realistically let go. Such is life.</comment></comment>


Ask HN: Haskell vs OCaml for Compiler Writing? - <AUTHOR> Which programming language is better for writing a compiler? (For example, Haskell might be the better "functional" language but side effects + OOP  might be more convenient for building a symbol table, or one language might have better compiler-specific tooling than the other.) <comment><USER2> Ocaml. But I suck at Haskell. Rust did well bootstrapping off ocaml</comment>


Ask HN: How important to JavaScript is MDN? - <AUTHOR> Creating MDN was a huge effort back in the day. Now that Mozilla is without the MDN team:
How do you think JS will continue to evolve?
Will the living standard retain its importance without a proper centralised vehicle of information?
Is it a good time for web developers to start looking for alternative jobs/career paths? <comment><USER2> Isn't MDN a wiki?

<comment><AUTHOR> yes</comment></comment>


When Languages Die - <AUTHOR> http://papercuts.blogs.nytimes.com/2008/12/03/when-languages-die/ <comment><USER2> amazing how the reaction to dying computer languages is on the other side of the spectrum (terms like "thank god" and "damn company XXX for being adamant")</comment>


AirSkip: Skip baggage claim while traveling - <AUTHOR> https://airskip.app <comment><USER2> While doing _what_ , now?

The secret of comedy...

<comment><AUTHOR> People would travel again, won't they?</comment></comment>


Standing-only escalators can carry up to 30 per cent more people - <AUTHOR> http://www.telegraph.co.uk/news/2016/03/22/the-simulation-that-proves-standing-only-escalators-work-on-the/ <comment><USER2> This is probably off-topic, but are they using different colors for male and female escalator users? Does it matter? They already have different graphics, but for some reason felt the need to make it _really clear_ that there are different gendered people here, riding escalators? Very strange.

Also, it doesn't seem to address the "total time for the ride", the minimization of which is of course the reason why people want to walk in escalators. That's the egoistical reason, to minimize overall throughput is perhaps somewhat less interesting to each individual.

That said, optimizing the system as a whole for throughput is a good goal so perhaps it's time to change escalator culture!

<comment><USER3> They could use the colours to indicate walking vs standing preference but instead chose to indicate gender for seemingly no reason.

There should be three classes:

1\. Wants to stand 2\. Wants to walk 3\. Wants to stand but will walk if lack of standing space.

These might be in their simulation but it's not well explained.

But the simulation isn't the main point, there was a real life study!

</comment></comment><comment><USER4> Even if leaving space for people to walk is slower on average it might still be better because it allows people in a hurry to go faster.

<comment><USER5> From the foot of the elevator people walking will reach the top faster. However, navigating from the back of the queue at peak time to the start of the escalator is often time consuming.

It would be interesting what the times were between those navigating the queue and walking up vs during the trial where everyone stands but the queue to the escalator is shorter.

<comment><USER6> People who stand and queue up do not block the people who want to walk. The queue leaves access for the people who are willing to walk.

<comment><USER7> Apparently you haven't been on the London Underground at rush hour. The escalator halls aren't long enough for an orderly queue to form on one side when a tube offloads its passengers.

</comment></comment></comment></comment><comment><USER8> And walking-only escalators can carry even more people, provided people walk on both sides.

I'm in favor of building enough escalators to give everyone a choice. In an emergency situation everyone will have to walk anyway.

<comment><USER9> As the article clearly stated, they did leave people a choice. Some of the tube stations have more than a dozen escalators, and only some were changed to standing-only. It makes perfect sense to optimize for throughput generally, but leave some lanes for those relatively few people who need/want to walk (TFA also discusses the difference in this willingness for escalators of different lengths).

</comment></comment><comment><USER10> This may be true for TFL, but like they say, the results depend on people's willingness to walk, and desire for personal space.

At peak hours/stations in the Seoul subway system, standing only would be a disaster. There are more than enough people willing to walk to completely fill the left side of the escalator. Everyone keeps up a steady walking pace while being essentially 1 person per step, so I'd guess it's at least a 30% improvement in throughput.

<comment><USER11> > while being essentially 1 person per step

I think this estimate is incorrect. The article demonstrated otherwise. Also, people are willing to pack closer together when standing than when walking (and when walking than running!)

Walking does increase the overall speed, but the study shows it's not enough for the increased space required. At least for British personal space requirements.

Similarly, when driving, you need a certain amount of time between each vehicle. Yes, you can pack in with <1m space between bumpers in a stopped traffic jam, but you need many vehicle lengths to be safe at speed.

For each mode of transport, there is an optimal speed and packing density. But you can't change one (speed) without affecting the other!

</comment></comment><comment><USER12> They're also assuming people are willing to stand tightly packed, rather than one on every second stair. I've never seen an escalator, no matter how dense the crowds, with strangers standing on the same side of adjacent steps.

<comment><USER13> Not quite, because this is based on an actual real-life test.

If people are currently leaving a single spare step when standing, but the people walking have to leave more than one spare step (or because there aren't so many, more than one step is left) then there's spare capacity that's not being used.

</comment></comment><comment><USER14> The more people willing to walk the lower that % becomes.

You could probably sway a lot more people to walk instead of stand by pointing out (truthfully) that it's an easy habit to get into to promote fitness.

It would be a good use for spare advertising space not being used to encourage tourists to go see Wicked or Mamma Mia.

<comment><USER15> I was just about to comment: And so far, not one mention of the health benefit of walking (well, actually, ascending stairs) vs standing still. Then saw that you had it covered. :-)

</comment></comment><comment><USER16> I find it interesting that most pieces on the topic consider only the throughput perspective while game theory seems more appropriate. People aren't homogenous "units of production/demand" as queueing theory suggests, there is a mix of incentives at play. Some people are OK with waiting in the queue and on the standing escalator, while others are in a hurry and really need a way to go faster. It is surprising that almost no one complains about dedicated mass transit lines on our roads ("we can increase vehicle throughput by removing them!"), yet most people (people in charge, too) apply similar arguments to escalator usage.

</comment><comment><USER17> In most places it's not a question of throughput, it's a question of allowing those that are really in a hurry to go faster, so it's not like societal normals should change due to this study conclusions.

<comment><USER18> People who are really in a hurry are likely to take the stairs. There's no line for the stairs.

</comment></comment><comment><USER19> Don't they turn standing room only when it gets super busy anyway? And when it's not busy...who cares.

<comment><USER20> At some busy stations (e.g. Canary Wharf during the morning rush hour) you'll find a big cluster of people at the bottom waiting for the standing side while there's space on the walking side. Obv. it gets dangerous if a trainload of people can't leave the station before the next trainload arrives. (Or more cynically, if they can achieve the same throughput with fewer escalators they'll save money on escalators).

<comment><USER21> Yeah, but it's only dangerous because those people choose to stand there waiting instead of using their legs. It's their choice to be lazy and those create a danger for everyone else. We need to stop rewarding people who can't do anything for themselves.

<comment><USER20> True laziness would be not building more escalators were they're needed. Basic safety isn't "rewarding" people.

</comment></comment></comment></comment><comment><USER22> Another conclusion, if more people were willing to walk up longer than average escalators, there would be less congestion at peak hours.

<comment><USER23> Indeed. Or just get rid of escalators entirely. Stairs are much cheaper and can accomodate more people. And maybe it'll dissuade people from running around with more luggage than they can carry.

Lifts are of course perfectly acceptable for the diagonally challenged (wheelchairs, prams, whatnot).

<comment><USER24>
      Or just get rid of escalators entirely.

I'm guessing you haven't used London's tube much :)

Many of the stations are very deep - the equivalent of a 15 storey building. Changing to stairs would certainly lower throughput because that's a really long climb.

<comment><USER25> > Many of the stations are very deep - the equivalent of a 15 storey building

I find that incredibly hard to believe. Assuming 4 meters per storey, you are saying that the London underground stations are at a depth of 60 meters.

If true, that's really amazing.

<comment><USER26> From [1], "Hampstead is the deepest station below the surface, at 58.5 metres (192 ft), as its surface building is near the top of a hill". So the deepest is about 60m, but from browsing around, it seems many are at least 40m deep.

[1]: [https://en.wikipedia.org/wiki/London_Underground_infrastruct...](https://en.wikipedia.org/wiki/London_Underground_infrastructure#Stations)

</comment></comment></comment></comment></comment><comment><USER27> This is an attack on our very way of life and must be resisted with all our strength.

</comment><comment><USER28> From the late Mitch Hedberg. "An escalator can never break: it can only become stairs. You should never see an Escalator Temporarily Out Of Order sign, just Escalator Temporarily Stairs. Sorry for the convenience."

<comment><USER29> Until they open it up to fix it, at which point the escalator is temporarily a death trap.

</comment></comment><comment><USER6> As a user of the system, I am not interested in throughput, I am interested in latency. Standing-only might have better throughput, but it reduces latency for the users _who hurry and are willing to walk_.

<comment><USER30> What's going to happen to your latency when you have to wait before you're able to get on the escalator because it is already at max capacity?

<comment><USER20> You can get past onto the walking side - the standing side hits capacity first and so only people who aren't in a hurry are delayed. (I see this every morning at Canary Wharf)

<comment><USER6> Exactly. In my life I have never saw a congestion on the escalator. At rush hour, poeple who stand, queue up, sure, but they never queue up enough in order to block the passage of people who want to walk.

Even on New Year's Eve, where demand is highest and the trains are overloaded, I haven't seen congestion _on the stairs_.

<comment><USER31> Escalators in some London stations are sufficiently congested _every day_ for people to be queuing to get onto either side.

</comment></comment></comment></comment></comment><comment><USER21> Are they serious? It's faster for who exactly? The people who were already standing instead of walking? Why should the people who are walking care, they want to get somewhere faster so they walk, if people want to be lazy and just stand there then they can wait, that's the choice they made. This entire article and the time wasted on it is idiotic.

</comment><comment><USER32> It probably helps congestion at the bottom of the escalator where people wanting to stand cross from left to right and vice versa as well.

</comment><comment><USER33> That's what the Sao Paulo subway is like: only standing escalators and no stairs. But it's frustrating as hell.

<comment><USER34> The article, though, is about standing vs. walking on escalators, it doesn't mention elevators.

<comment><USER33> Oops, typo, I meant escalators. I like the way that in London there is an elevator at every station and mostly stairs.

</comment></comment></comment><comment><USER35> this isn't surprising. most people are lazy and unfit. we should make it all walking-only escalators. yeah, that'll show'em!</comment>


Data mining for the taboo: searching for what isn't there - <AUTHOR> https://linkingideasblog.wordpress.com/2015/08/19/data-mining-for-the-taboo-searching-for-what-isnt-there/ <comment><USER2> A similar but slightly simpler computational concept is the `LEFT OUTER JOIN` in SQL, in which for every row on the "left"-side table is listed, whether or not it has a corresponding match on the "right"-side table...doing a `WHERE` filter for `NULL` values then shows you all of the left-side records that have no match.

INNER JOINs are plenty useful in themselves, of course...it's already difficult for humans to manually compare two lists to see the matches, and it's not done as routinely as it could be (think of the number of surprising news stories and investigative journalism that involves discovering that a person in one list is also in another list, e.g. campaign contributors, convicted sex offenders, etc). Given the difficulty of matching -- even though its insights are tangible to most people -- my experience has been that people don't even consider looking for what _isn 't_ there that _should_ be there. Maybe it's a corollary of Donald Rumsfeld's apt observation of the "unknown unknowns".

Here's a toy example I use in one of my classes: Using the U.S. Social Security baby names data, look for the most popular baby names in 2010 that did not exist in the 1990 dataset:

[http://2015.padjo.org/assignments/midterm-babysteps- sql/#the...](http://2015.padjo.org/assignments/midterm-babysteps- sql/#the-5-most-popular-names-in-2010-that-dont-show-up-at-all-in-1990)

(actually, it's pretty surprising how much churn there is even within a decade...When I initially used LEFT JOINs just to see which popular names in, say, 1970, were still among the most popular names today, the result set was so small (sometimes, just empty), that I thought I had made a mistake in my query)</comment>


Gmail and Google Contacts, brought together by Rapportive (YC S10) - <AUTHOR> http://blog.rapportive.com/address-book-inbox-together-at-last

<comment><USER2> This is great - I've been using Rapportive, and I also use Google Contacts as my main address book.

The problem with Google Contacts, for me, has been that it takes a long time to load --- sometimes as long as 20 seconds. I've always found this odd, and expected it to speed up eventually, because Google is supposed to be obsessed by speed...

<comment><USER2> It seems I spoke too soon. It's only nine days later, and Google Contacts has changed: Now it's way faster, and looks a lot different too!

</comment></comment><comment><USER3> "Except there's a problem. When a contact emails you back, you don't see their business card. If you want to phone them, you have to jump from Gmail to Google Contacts via a series of clicks just to even see their number. This is crazy..."

Hover over the sender name in an email or the inbox and a 'card' pops up with picture etc. Click their name to see all details. 1 click, not too crazy.

<comment><AUTHOR> Good catch — I didn't even know you could do this. I always used to click on the contact, click on "More", and then click on "Contact Details". I much prefer not having to have click at all :)

</comment></comment><comment><USER4> Very nice addition.

The first thing I noticed is many of my Google Contact entries are woefully out of date -- even for my own wife, yikes. Once I made the change, it does not seem to have updated her phone number.

Have I missed something? Or could this be slow because it's a new feature everyone is playing with?

<comment><USER5> Hi there, we should pick up the change within 24 hours - unfortunately the sync is not instant.

Based on the time of your comment, it should have updated by now - if we're still not showing the updated phone number, could you email firstname.lastname@example.com with details so we can take a look?

<comment><USER4> Indeed it did. Thanks for the follow up.

</comment></comment></comment><comment><USER6> Rapportive is a great plug-in, but I'm still curious about the upcoming premium version alluded to by one of the founders on Quora:

<http://www.quora.com/What-is-Rapportives-business-model>

<comment><AUTHOR> Thanks! You should see paid-for features later this year. Everything that you see today should remain completely free.

</comment></comment><comment><USER7> Does Rapportive support reformatting of phone numbers? I just realized that quite a few of my numbers are in different formats and would love an app that puts things in standard +(country) (rest of number) format.

Also, is the Rapportive support bidirectional? I.e. data discovered is written back to Google Contacts. This way, any changes would be auto propogated down to my mobile device.

<comment><AUTHOR> I'd also love an app to go through my phone numbers and internationalise them. It would have to be a semi-automated process, as I've got contacts with local numbers in a number of different countries.

The Google Contacts support is currently one way, but it's a great idea to write the data back. Could you please vote on it here: <http://rapportive.com/feedback/527051> — that way you'll be kept in the loop as we make progress :)

What mobile device do you use?

<comment><USER7> Multiple. webOS and Android.

It would be interesting if you could somehow tie into webOS Synergy services.

If the internationalization app is sufficiently smart, it should be able to detect local numbers for different countries and at least make an attempt.

</comment></comment></comment><comment><USER8> I really enjoy using Rapportive. The only thing I feel it lacks is the ability to join my personal address book in Gmail and my contacts in Google Apps (without merging the libraries, but just searching in both for data and notes).</comment>


The Heroku Toolbelt - <AUTHOR> http://toolbelt.heroku.com/

<comment><USER2> The Linux version of this is horribly wrong in so many ways. For one, you're downloading a shell script and running it with root privileges. A shell script that loads someone else's key into your system's database of trusted package signing keys, and then installs a package that can do just about anything to your system, including `rm -rf /*`.

And beyond the immediate security issues, this tramples both on the system git packages (because I doubt that Heroku uses so many advanced git features that they need the latest version) and on however you or your distro use RubyGems. Really, it would be far better to link to a page that tells you:

        sudo apt-get install git-core rubygems
        sudo gem install heroku foreman

<comment><USER3> Thanks for the feedback!

We made the script a link so you could check out what's going on before running it.

The heroku-toolbelt .deb actually depends on system git-core and ruby1.9.1 so we shouldn't be trampling anything.

<comment><USER2> Which is better than most people who just say "curl <http://shortened.url/> | sudo sh", but inspecting the script doesn't really reveal much about what actually happens during the _install_. It basically just says, "We're adding this repo to your system, you'll just have to install heroku-toolbelt and see what happens!"

</comment></comment></comment><comment><USER4> How is this different then the gem? Is it just a package of the gem?

<comment><USER5> It's primarily intended for folks who don't come from a Ruby background and prefer their OS-native installation methods to rubygems. If you're happy using the gem, carry on.

<comment><USER6> I personally use RVM and gems, but like this approach for other people that haven't gone that way.

But instead of a shell script, can we get heroku-toolbelt into Ubuntu Software Center? Linux devs are pretty particular with what they run at the shell...know your audience and all.

<comment><USER5> Debian packaging has the widest reach by far, and rolling our own repo is something we have control over, so it makes the most sense as a first step. We may consider a PPA or possibly even submitting it for inclusion into something like Ubuntu universe at some point in the future.

</comment></comment></comment></comment><comment><USER7> This should probably be called the Heroku OS X Client, rather than giving it a new name (i.e. "Toolbelt") and implying that it is something new.</comment>


Stephen Colbert and Neil DeGrasse Tyson Discuss Pluto - <AUTHOR> http://laughingsquid.com/stephen-colbert-and-neil-degrasse-tyson-discuss-the-new-horizons-mission-debate-plutos-status-and-eat-ice-cream/ <comment><USER2> Not available in Canada :(</comment>


Ask HN: Do average people think A players are weird? - <AUTHOR>

Do they?  Is that why so many A players are banished to spend the rest of their lives in  specialized communities like Silicon Valley? <comment><USER2> "A players are banished to spend the rest of their lives in specialized communities like Silicon Valley?"

This sounds to me more like "tribal overrating" bias (I invented this bias myself :) ). You just define that SV only has these "A players" (a purposely loose definition btw), so you go ahead and also imagine there are no A players outside these "specialized communities".

And I hate the way you formulated your question, opposing "average people" and "A players" so, so determinative, creating a "we" vs "them" situation.

</comment><comment><USER3> There are all kinds of successful people. Someone like Richard Branson, Woz or Felix Dennis are reportedly highly likable. Others like Nate Myhrvold, Bill Gross or Mark Zuckerberg do not get along with regular people as well.

</comment><comment><USER4> You don't need to be socially awkward to be an "A player".

</comment><comment><USER5> "A players" are, by definition, not the weird ones.</comment>