2009
The non-existent tension between FP and OOP
Is the Supremacy of Object-Oriented Programming Over?:
The fact is, for a lot of these applications, it’s just data. The ceremony of object wrappers doesn’t carry its weight. Just put the data in a hash map (or a list if you don’t need the bits "labeled") and then process the collection with your iterate, map, and reduce functions.
I wish I’d had a “pocket Dean Wampler” when I was first learning Haskell and trying to reconcile idiomatic Haskell with what I’ve become so accustomed to with Ruby, JavaScript and, well, everything.
The State on DVD, finally
It would appear that, after long last, The State DVD is forthcoming. I cannot wait. The State and Daria were probably the two best works of original programming ever on MTV. (Via Coudal Partners)
Three sides of language geekery
Ted Leung’s notes on the JVM Language Summit, Dynamic Language Summit and Lang.NET. Great reading for those interested in what makes programming languages tick.
A console for any Ruby project
I’ve been finding this little snippet extremely useful lately:
$ irb -Ilib -rmy_library
If your Ruby app or library follows the idiom of requiring all the files for your app in a file named after the library, this will load everything up. If you’re being clever, you may need to invoke said cleverness before you can really get started poking around.
Anyone doing something similar?
John Mayer, closet software developer
“The idea is to run as many concurrent streams of production as we can." - Is John Mayer recording an album or bootstrapping an indie app?
More harmful than harmful
We are lucky to live in a time when 99.9% of programmers will never have a legitimate argument for using GOTO
(hi kernel programmers!). But in case you’re feeling nostalgic and/or ornery, there’s always COMEFROM. You can even implement it in Ruby via @callcc@!
Elevating the art of language implementation
Suppose we can take the following statement as true:
Whether you use it or not, the state of the programming craft has been elevated by many of the ideas bundled in Ruby on Rails.
ActiveRecord in particular brought many ideas that made it easier for more people to program with a database. Whereas before most people thought in terms of mappings or extracting data from hashes, AR gave a more fluent and object-like notation to work with. Thus, more interesting applications were born.
Right now, good VM technology is limited to Sun and Microsoft, while Apple, Google and Mozilla are re-inventing it for their web browsers. Open source languages, mostly, lack this VM technology.
ActiveRecord improved the state of the programming craft by spreading ideas that make working with a database easier. Could a similar improvement in the programming craft be realized by diffusing the knowledge of how to implement a good VM through a library? Is this a worthwhile aspiration?
Postmodern comedy gold
The Nietzsche Family Circus - random Nietzsche quote + vintage comics = comedy gold.
When technical discussions get intense
Pro-tip: trying to unwind contentious technical discussions is a losing game. There are really multiple things going on: people discussing trade-offs in absolutes, personal vendettas being aired, missing tact filters and turf protection. If you’re lucky, there’s also some useful information hidden in the turd tossing.
Solution: don’t read too deeply, go do something useful instead.
Bonus tip: talking it out, face to face, over good drinks in a nice environment is “something useful”.
Think
The scene in The Blues Brothers where they are recruiting Matt “Guitar” Murphy is quite possibly my favorite of the movie. From the start of “Think” to the first “Freedom!” chorus, I get all sorts of musical tingles. I highly recommend it, if you have the means.
Since I can’t link to any video of the scene, why not listen to “Freedom” by Charles Mingus. It’s goodness.
The economic dashboard
What’s the state of the economy? - a stunningly brilliant visualization of where the economy has been (lagging indicators) and where it’s going (leading indicators). The explanations are excellent too. (Via Flowing Data).
Decoupling newspapers
My wife works for the local newspaper (thankfully, in their less layoff-prone online division). So I’ve been wondering about this whole newspaper business collapse would work out. Clay Shirky’s got an important point:
Society doesn't need newspapers. What we need is journalism. For a century, the imperatives to strengthen journalism and to strengthen newspapers have been so tightly wound as to be indistinguishable.It's not about the end of newspapers, it's about decoupling the core of journalism from newspapers. We'll see how that pans out. Let's just hope cable news doesn't take its place.
Underwater volcano go boom
I think one of the first things I decided I wanted to “be” when I was a wee lad was a volcanologist. I’d still love to go to an actual volcano, preferably active. Thusly, the pictures of undersea eruptions near Tonga from the Big Picture are, without a doubt, spectacular.
Pattern matching in Ruby with Case
Pattern matching, ala Erlang or Haskell, is a language feature near and dear to my heart. Dean Wampler has a great explanation of how to use the Omnibus Concurrency Library to play with pattern matching in Ruby, even if it’s a little odd.
The power of not knowing
It's a programmer's biggest strength when he knows what he doesn't need to know. And gaining (experience) in not knowing isn't as easy as it sounds.