Red Squirrel Reflections
Dave Hoover explores the psychology of software development

Dave Hoover

All [Atom]
Craftsmanship [Atom]
Dynamic [Atom]
Intersection [Atom]
Learning [Atom]
Links [Atom]
Polyglot [Atom]
Projects [Atom]
XP [Atom]
Old Blog

Obtivian Blogs

Andy Maleh
Colin Harris
Fred Polgardy
Jim Breen
Kevin Taylor
Todd Webb
Turner King
Tyler Jennings


March 2009 (1)
January 2009 (1)
December 2008 (1)
October 2008 (3)
September 2008 (1)
June 2008 (4)
April 2008 (3)
March 2008 (1)
February 2008 (1)
August 2007 (1)
July 2007 (1)
June 2007 (1)
May 2007 (4)
April 2007 (3)
March 2007 (5)
February 2007 (6)
January 2007 (6)
December 2006 (10)
November 2006 (5)
October 2006 (8)
September 2006 (8)
August 2006 (5)
July 2006 (12)
June 2006 (7)
May 2006 (5)
April 2006 (5)
March 2006 (4)
February 2006 (2)
January 2006 (5)
December 2005 (5)
November 2005 (3)
October 2005 (3)
September 2005 (6)
August 2005 (4)
July 2005 (7)
June 2005 (14)
May 2005 (6)
April 2005 (8)
March 2005 (9)
February 2005 (11)
January 2005 (16)
Old Archives


Thu, 12 Jun 2008

Look Ma, No Server-Side!

When I launched the sexy page, I decided that it would only serve static HTML and JavaScript. I thought it would be an interesting constraint that would help me break out of my server-side tendencies. So I mashed in a Google Calendar and a badge that shows the latest posts from our Google Group. I was happy with how easy this was.

And then we launched Polyglot Programmers of Chicago and had our first meeting. Being the lazy organizer that I am, I didn't ask anyone to RSVP and we ended up ordering too much pizza and stocked too much beer. I pondered aloud at a recent Obtiva geekfest about my need for an RSVP system without any server-side dependency and Renzo suggested we use Twitter. Coming off of a couple weeks of obsessive Twitter hacking, I was keen to try it. (The Twitter API is a programmer's playground, add a <canvas> tag, and it's a programmer's amusement park.) So I hacked together our RSVP system in 10 lines of client-side code. First, I provided the link to submit the RSVP:

<a target="_blank" href="">RSVP to this meeting via Twitter</a>
Then, I read the RSVP's:
<script type="text/javascript">
function rsvp(json) {
	var confirmed = document.getElementById("rsvp")
	for (var i = 0; i < json.results.length; i++) {
		confirmed.innerHTML += '<img src="' + json.results[i].profile_image_url + '" /> <a href="' + json.results[i].from_user +  '">' + json.results[i].from_user + "</a><br />"
<script type="text/javascript" src=""></script>
You'll notice I used Summize, which sits on top of Twitter and provides an excellent service for searching through Tweets in real-time. It's funny, when I code stuff like this I feel like I'm cheating. It's freeing to only need to think about the client-side and let the service providers worry about the rest.

[/polyglot] permanent link

Tue, 10 Jun 2008

Upcoming Conferences

Portland in July: I will be speaking about Apprenticeships on Open Source at OSCON with Brian Tatnall.

Toronto in August: I will be facilitating a game of Ping Pong Programming at Agile 2008 with Andy Maleh.

Chicago in September: I will be attending WindyCityRails and will hopefully have an opportunity to talk about the development of Mad Mimi alongside the product's visionary Gary Levitt.

[] permanent link

Sun, 08 Jun 2008

How did you get started in programming?

objo called me out, so I'm answering the questions.

How old were you when you started programming? How did you get started in programming? What was your first language? What was your first professional programming gig?

9, 13 and 25. When I was in grade school we were introduced to Logo, which was interesting, but since I could only play with it at certain times at school, I didn't get far with it. But it definitely sparked an interest. When I was in junior high we had an Apple IIe. I loved playing games on it, and when I saw the movie Tron, I was convinced that I would one day be a programmer like Flynn. I bought a book on Basic and tried to create some games on the Apple IIe, but mostly just keyed stories into code and had them print to the screen. I gave up when I couldn't create anything compelling. It was 1999 when I was wrapping up my master's degree in child and family therapy and I was fascinated by the internet and the way it was changing the world. My wife and I had just had our first child (who slept in the closet of our one bedroom apartment) and I was looking for ways to supplement my upcoming income. I taught myself enough HTML to secure a side job as a the Teen Advice guide at Over the next year I was a child and family therapist by day, and a HTML wrangler by night, and I began to realize that I really enjoyed the technical work. I was surprised that I could sit in front of a computer and feel energized. Dreams of Flynn flooded into the back of my mind and I decided to try programming full-time. I was hired by Edventions, a startup in Skokie, IL as a content editor. Over the course of the year I worked there, I taught myself Perl and I worked my way into the programming side of the business. And by late 2000, I had officially taken the red pill. I was completely hooked on programming, specifically Perl.

What was the first real program you wrote?

Most of my early Perl hacking was fixing bugs in or enhancing other people's CGI scripts. The first real program I wrote from scratch was lovingly called PGAS, the Perl Golf Administration System. Yes, for several months in 2002, I was the main instigator of monthly Perl Golf competitions. This is the first time I've stated that publicly, and I'm not sure how I feel about that.

What languages have you used since you started programming?

  • Java
  • JavaScript
  • Perl
  • C
  • Ruby
  • C#
  • C++
  • Erlang
  • Scheme

If you knew then what you know now, would you have started programming?


If there is one thing you learned along the way that you would tell new developers, what would it be?

Find opportunities to Be the Worst.

What’s the most fun you’ve ever had ... programming?

The first was in 2004 when I worked for ThoughtWorks. I was on a team that included Dave Astels, Obie Fernandez and Aslak Hellesøy. Though the weekly travel to Detroit was excruciating, working with those guys changed my career, and was a ton of fun.

The second was in 2007 at Obtiva. Our first full-time Software Studio project was This project had many ups and downs, but working with the world-class Mad Mimi team and watching Mad Mimi come to life has been another career-altering experience.

Who am I calling out?

[] permanent link

Tue, 03 Jun 2008

Polyglot Programming as opposed to Polyglot Programmers

I've needed to clarify something about this polyglot meme to people a few times and I thought it would be a good idea to state it publicly. There's really not much to it, but I think it's important.

There is a difference between polyglot programming and a polyglot programmer.

Ola just wrote another great layers of languages post, and I want to make it clear that he's talking about polyglot programming. I also want to make it clear that I am excited about what he's proposing, and after watching Dean's talk last month, it's also clear to me that this sort of thing is not some hot new trend, it has been going on for decades. But we should understand that polyglot programming could potentially be done by a team of single-language specialists working together to create a multi-language system.

A polyglot programmer is someone who could single-handedly create a multi-language system. A polyglot programmer is someone who might choose a single language for an entire system, and they will be more likely than a specialist to pick a language that suits the problem domain. They might program in a single language for a whole year, and then easily set aside that language and pick up a previous one. I believe that polyglot programming is best accomplished with polyglot programmers. I also believe that it's important for more of us programmers to become polyglot programmers, which is why I helped start the polyglot programmers user groups.

Like I said, there's not much to this, but I think it's an important distinction to make as the meme continues to spread.

[/polyglot] permanent link

powered by blosxom