I need to clarify my interests. I keep getting calls from recruiters who want to hire me to do Perl or database management. So, I am trying out an experiment in self-analysis by describing my enthusiasms as they relate to specific programming languages. I am currently interested in the web software applications of Ruby, JavaScript, […]
I read an interesting article by Dave Fayram (kirindave) contrasting monkeypatching in Ruby with protocol extension in Clojure. The article compares two of my favorite languages, but I think it was unfortunate to present monkeypatching as the main way to “associate behavior and data in a flexible way.” In fact, Ruby has a number of […]
I was lucky enough to present a talk about asynchronous concurrency in Clojure (and JavaScript and Ruby as it turned out) on May 27th in Reston. Thanks to FGM and Matt and Russ for organizing and hosting the Capital Area Clojure meetup. I have the slides available for review from scribd below. There’s plenty about […]
(Or, my impressions of JSConf US 2010) I wrote a very ambitious (and partially successful) post last year attempting to recap the first JSConf. I can’t even pretend to repeat that feat this year: track B was so good that I spent half my time in it, and I couldn’t get to everything I wanted […]
A few weeks ago I posted about my initial impressions of CommonJS’s approach to concurrency, in particular the use of promises. Today I add my look at promises and futures in Clojure. I’m aware that I’m kind of writing these blog posts backwards. I’m learning more as I go, which means before I’m done I […]
The haters are wrong, part one I just finished an excellent blog post by my friend Blake Patterson. It’s about the iPad. Blake realized in the wee hours of Sunday morning that the iPad was actually Alan Kay’s Dynabook, emerging after 40 years in Steve Jobs’ turtleneck-clad arms. Seriously, it’s a great post. Go read […]
It’s a concurrent world, and, increasingly, it’s an asynchronous world too. Many things are going on at the same time, and it’s impossible to determine exactly when each is starting or ending. In other words, everything is fast and out of control. As a software developer, both concurrency and asynchronicity are more important concepts than […]
I drove up to Baltimore’s Beehive coworking space last night to meet the folks in the Baltimore/DC Javascript Users group. We poked around the Twitter API and looked at both what you could get from the API via JSONP and what you could do with it.
I gave a talk on Ruby’s Enumerators at the DC Ruby Users Group in August. I’ve posted my slides from the presentation, if you’re interested. Basically, I discovered that enumerators make lazy evaluation easy to implement in Ruby, and applying lazy techniques with enumerators may yield more efficient and elegant code.
I count myself lucky that I can earn a living programming with Ruby and in particular with the Ruby on Rails framework. But every tool, even the best, has a few surprises up its sleeve. Sometimes you get hung up on something quirky, but more often you’re having a problem with a feature—something that’s there […]