(From HN) “What code is worth studying?”

My personal list (mostly imperative languages)

C++: (Complex software with elegance + performance )

  • Dart source code

  • V8 source code (Same people as Dart)

  • LevelDB

  • Chrome (the only downside: too much virtual dispatch -> “javism”)

C:

  • SQLite

  • Redis

  • Nginx

  • Solaris and Freebsd

Java:

  • Rich Hickey implementation of the clojure runtime in Java
    (it was there in 2009.. maybe now this is in clojure itself??)

Go:

  • The Go standard libraries

I think the craziest idea I have heard in the last few years is that everyone should learn to code. That is the most bizarre and regressive idea. There are good reasons why we don’t want everyone to learn nuclear physics, medicine or how financial markets work. Our entire modern project has been about delegating power over us to skilled people who want to do the work and be rewarded accordingly. I’m all for making us aware of how various technological infrastructures work. But the idea everyone should learn how to code is as plausible as saying that everyone should learn how to plumb. To me it just makes no sense.

… They are ripe for ridiculing because they are ridiculous in many cases, and the only reason they are advancing is because they plug in the conceptual and theoretical holes in their theories with buzzwords that have no meaning – “openness” or “the sharing economy” – what on earth is the sharing economy?

What I’ve tried to do in my reviews is engage seriously with these bullshit concepts, as if they were serious – to see whether an idea such as “cognitive surplus”, of which Clay Shirky is very fond, has any meaning at all. I do close readings of things that aren’t meant to be read very closely. That is how our technology discourse works, there are lots of great bloggers, soundbites and memes, but once you start putting them together you realise that they don’t add up. And making people aware that they don’t add up is a useful public function.

Here is where the second form of corruption begins to emerge. The construct of the ‘good hacker’ has paid off in unexpected ways, because in our computerised world we have also seen the emergence of a huge, aggressively competitive technology industry with a serious innovation obsession. This is the realm of startups, venture capitalists, and shiny corporate research and development departments. And, it is here, in subcultures such as Silicon Valley, that we find a rebel spirit succumbing to perhaps the only force that could destroy it: gentrification.

Monthly recap (July 2015)

(Intended to make up for an absence of Facebook, and for personal archival … this one is rushed, will do a better job next month!)

Yosemite was the first long-ish “go somewhere and stay there and come back” trip with Tara, and it was a big success (her first bus ride (!) and the first time she sat in a high chair — the park itself was limited this time to a minor flat hike).

This month she also started sitting, standing with support, and drinking water from a “sippy cup” (which, like “onesie”, is a recent addition to my vocabulary). Her activity has shot up, and she vigorously crawls and plays, is extremely curious, and is scarily eager to climb things.

Among not-so-good news is that she had her first fever, to which we obviously over-reacted, and which turned out to be not such a big deal after all.

Other than that, not much. I’m busy and happy 😛

Creative programming takes time, and careful attention to the details. Programming is all about expressing intent, and in any large program there are many areas in which the programmer’s intent is unclear. Clarification requires insight, and acquiring insight is the primary creative act in programming. But insight takes time and often requires extensive conversation with one’s peers. In industry, time is unavailable, one has to work with only a small set of peers, and no one can afford to spend time thinking about what something means. It’s necessary to make something that works, more or less, and move on to the next thing. But the fact that the programmer didn’t fully understand the problem at hand means that there is a portion of the program that works by accident rather than by design. And those places are where the bugs live.