The difference between online and print

I really hate the people think writing online needs to be significantly dumbed down and shorter than writing in print. Studies have shown that people are conditioned to skip around and to read only small blocks of text when reading online, but I hardly think thats the fault of the LCD they're looking at. When you compare the two mediums, print and web, I don't think the brain knows the difference between looking at letters on a computer or letters on a sheet of dead tree. LCD's do arguably cause more eye-strain, but that's slowly improving with technologies like e-ink.

The difference, I think, is our own fault. When's the last time you saw an online article that looked like page from The Hitchhiker's Guide to the Galaxy or Anathem? Don't be surprised if you can't think of one, because I can't either. Online reading is plagued by absolutely horribly designed flash ads and other sorts of chrome surrounding it. We're programmed to be drawn to motion, so if there's an invasive flash ad complete with video and animation sitting right next to a long-form article, who can blame our brain for tending to stare at it rather than focus on what we're reading?

The solution then, to online writing, is not to write ever shorter articles. Who wants to live in a world where the New York Times produces nothing but Twitter posts? Rather I think we need to bring back the long-form article and remove what has been slowly killing it: distractions, bad typography and noisy pages. Then, just maybe, we'll be able to regain the attention of the continually more distracted reader.

Node.js isn't a silver bullet, but it's still a bullet.

If you're using Node.js, you're doing life wrong

This morning, on a conference mailing list, I made some disparaging remarks about Node.js (the title of this post, in fact). A couple people asked me why I felt that way. Rather than respond individually, I'll just list my reasons here — codeslinger.posterous.com

I really don't understand all the hate for Node.js. It seems like many of the articles and rants against Node.js assume that Node.js was supposed to be good at everything. It's not. Just like every other framework and language in existence, it's good at some things and bad at others.

Node.js, at least from my understanding, was designed to be great at transporting small bits of information around the internet very quickly, and in real-time. Server-side events, instant messaging apps, real-time games, and collaboration tools are all great example of this. Take for example Trello. Trello is a real-time collaboration app that leverages Socket.io and Node.js to enable real-time propagation of events and state-changes between clients. You could do the same thing with long-polling ajax or even frequent polling, but those both come with the cost of tying up unnecessary worker threads on the server and dealing with extra requests. Node.js on the other hand is inherently great at this. It's asynchronous event based architecture makes receiving, processing, and sending real-time events simple, painless, and very fast.

At the same time, Node.js isn't isn't especially good at computation. If for example you were trying to build an API to return the nth number in the Fibonacci sequence, Node.js would almost certainly be a bad choice? Why? The whole reason to use Node.js is based around the idea of not waiting on things. Instead of waiting for a db query to return results, it just triggers a db query and sets a callback event. Then, while the query is processing, your program can be doing other things (like handling another request). This is what makes Node.js seem so fast, without actually using more than 1 CPU core. In our example of computing Fibonacci numbers, however, the program doesn't need to wait on anything. The speed at which such an API can return results is directly linked to how fast it can compute a result. So here it would be better to use another, computationally faster language like Haskell or Scala.

So what's the point of all this? The point is that it's silly and irrational to complain that a framework isn't good at completing task A, when it was only ever designed to do task B. Node.js is extraordinarily good at what it was designed to do- so don't rant that it's bad at something else.

You can discuss this post on Hacker News.

there's never been a better case for minimalism

“@sdw: This is how Apple sells its laptops. http://twitpic.com/89a4ay This is how HP sells laptops. http://twitpic.com/89a47m" CC @gruber

Yet HP is Apple's largest, most competent competitor? No wonder Apple made $46.3 Billion last quarter.

SimpleGeo is shutting down.

After purchasing Jay Adelson's geolocation service SimpleGeo in October, Urban Airship announced yesterday that they're shutting down the service on March 31, 2012. Two and a half months notice with no drop in replacement on the market.

3 months of warning for the shutdown of a product with no drop-in alternatives is really an insult. Look closely at the migration page https://support.urbanairship.com/customer/portal/articles/31... and you'll get a sense of the effort to replace SimpleGeo. For instance, the recommendation for users of the Context product is to read the Wikipedia page on R-trees, then download various census etc. data to replicate the functionality in-house. — runako on Hacker News

This makes me quite glad that we decided early on in the development of Kea not to rely on SimpleGeo, and instead build our own Place's API. I'd be really surprised if any current SimpleGeo customers even think about doing business with Urban Airship again, after they do something like this.

Hacker News Discussion on shutdown

great.

No matter how hard some people try and find it, there is no secret to being a great programmer. The same goes for any trade, whether you're a designer, painter, writer, or carpenter. The only "secret" is to be passionate and fully present at whatever it is you're doing, to work at it day and night, and to keep doing that for a really, really long time. No one has ever become a great writer by buying the perfect distraction free writing environment. No one has ever become a master programmer by trying to convince the internet that only node.js and mongodb are webscale. If more people realized that, many more people would be a lot closer to actually being masters.

Makebelieve Help, Old Butchers, and Figuring Out Who You Are (For Now)