All in the name of good

I was very saddened to hear the news about Aaron Swartz, who January 11th took his own life. The reasons for the far too early good bye from the child prodigy are a political issue as much as anything else, and it has already been covered well by many. While politics and societal factors are a horrible reason for a young person’s farewell, what really got to me is the feeling described by his friend, Lawrence Lessig (please read the entire post for context):

No doubt it is a certain crazy that brings a person as loved as Aaron was loved (and he was surrounded in NY by people who loved him) to do what Aaron did. It angers me that he did what he did.

A couple of years ago I got very close to having to go through the exact same reflections and rationalizations that Aaron’s friends and family must now go through. Every time I hear those same feelings expressed, I’m struck by an almost indescribable panic that forces me to stop whatever I’m doing and spend that much needed time asserting that everything is at least okay. I sincerely wish that on no one, and no matter the reasons, we should all make it a part of the agenda to build a society where this “last resort” kind of action is neither an option nor necessary.

I did not personally know Aaron Swartz, but his systematic work on liberation of information and creative works has been a great influence and inspiration for myself, just as his unstoppable drive to share and defend his opinions and beliefs has been nothing but incredible and empowering to follow, which more than once made me wish that I was at least a little like that. Mine and many other’s fascination with and respect for Aaron Swartz is probably best encompassed by Lessig:

Aaron had literally done nothing in his life “to make money.” He was fortunate Reddit turned out as it did, but from his work building the RSS standard, to his work architecting Creative Commons, to his work liberating public records, to his work building a free public library, to his work supporting Change Congress/FixCongressFirst/Rootstrikers, and then Demand Progress, Aaron was always and only working for (at least his conception of) the public good.

January 13, 2013 |

Readable code

I’ve come across the kind of developer that Eli Bendersky describes in his latest rant more and more often:

I recently ran into a statement that left me very perplexed. A programmer was proudly declaring that he can’t understand every piece of code he wrote a week ago. I honestly tried to figure out where the pride comes from, but I can’t. Is he proud that he writes so much code every day? That anyone is willing to pay him to write code?

Let me state my opinion on this matter clearly up-front: not being able to understand the code you wrote a week ago, or a year ago, is unforgivable for a professional programmer.

No one is expecting anyone to remember exactly what they did a week ago let alone a year ago, but not being able to go back and read your own code and quickly deduce how things work — or, more often, how they were supposed to work — means that you’ve done shitty work. It may work perfectly, but it’s horrible, shitty work. There’s no other way to put it.

Eli suggests the exact same approach as I’ve been taking for years in order to make sure that I keep my work up to standards — an approach that often gives me a little more work but also keeps me sane in moments of dispair:

And once you’re happy with the result, read it again. And again after a couple of days. This reminds me of writing the deeper technical articles for this blog; for each sentence I write, I read 20 and rewrite 5. Often this is also true of the code I write. Perfection can be achieved either by a gift in your genes, or by ruthless practice and iteration.

Oh yea, and if you’re not convinced that your code actually needs to be readable, I dare you to go read the source and figure out the inner workings of Varnish. It may be good, but it’s sure as hell not pretty.

January 6, 2013 |

Sharpen your saw

A little jewel from Hacker News; a series of computer programming challenges called Programming Praxis, some of which have been used in job interviews at Google, Amazon et al, while others date back to the early 70’s. Like the problem sets from competitions like the International Olympics of Informatics, it’s always good practise to sit down and tackle a pure programming problem every now and then if nothing than to stay sharp on algorithms etc.

What’s fascinating by the Programming Praxis challenges is how some of these reflect the fact that programming at its core has changed very little in the last 40 years, like the following problem from Niklaus Wirth’s 1973 book Systematic Programming:

Develop a program that generates in ascending order the least 100 numbers of the set M, where M is defined as follows:

a) The number 1 is in M.
b) If x is in M, then y = 2 * x + 1 and z = 3 * x + 1 are also in M.
c) No other numbers are in M.

December 11, 2012 |

“Good enough” gets us nowhere

Interesting piece on the stagnation in device color depth, which has been stuck at 24 bits since virtually forever:

Rationalized by easily disprovable research from the 1970s, 24-bit color is accepted as “good enough.” Academics have told us that human eyes can’t distinguish between the 16,777,216 colors provided by 24-bit depth, so we believe that even though it can’t be true.

Great case of my response to people who’re overly critical of the fact pace of technology: “good enough” gets us nowhere.

December 11, 2012 |

Don’t get any ideas

I don’t usually agree with Paul Graham’s rants, but in his post “How to Get Startup Ideas” he hit upon something, that is incredibly obvious, yet I see people missing it all the time:

The way to get startup ideas is not to try to think of startup ideas. It’s to look for problems, preferably problems you have yourself.

The very best startup ideas tend to have three things in common: they’re something the founders themselves want, that they themselves can build, and that few others realize are worth doing. Microsoft, Apple, Yahoo, Google, and Facebook all began this way.

Add 37signals, GitHub and virtually all other really successful startups in “my time” to that list. GitHub, for me at least, probably embodies Graham’s point — what 37signals has popularised as “scratching your own itch” — better than anyone else. Chris Wanstrath tells the story at Startup Bootcamp 2010 about how he and Tom Preston-Werner built GitHub on the side as nothing but a tool to help themselves in building their other projects. Wanstrath’s side prohect was one of those archetypical “startup ideas,” called nothing less than “FamSpam,” which would be a kind of social network for spread out families.

Interestingly, what wound up happening was, that people started e-mailing the GitHub co-founders asking how they could pay. Because the site was still in a rough beta version, ie. it wasn’t being given a lot of attention, no payment options were available, but people wanted to make sure that it kept going, so they actively asked for it. FamSpam, on the other hand, while seemingly a brilliant “startup idea,” got virtually no subscribers despite having a fully functional subscription system set up. Today, GitHub is valued at at least $ 750 million.

November 21, 2012 |