Archive for category Uncategorized

Standard Out Has Moved!

See my blog at its new home with a new look and (assuming I can keep a New Years resolution) many new posts in the months to come at


Leave a comment

Clojure Conj Keynote and Day 3

Now that I have (somewhat) recovered from the 2011 Clojure Conj, I can finish up my reflections.

Starting with Rich’s keynote (which was on Day 2, but I didn’t have time to respond to then), as I said earlier it was more of a technical talk than the philosophical keynotes he gave at both StrangeLoop and last year’s Conj.  This may have disappointed some people (his philosophical rants have become quite popular it seems), but it was still a good talk.  He mainly discussed places for Clojure to move forward, not in so much as a timeline of new features but more of a nice to have list.  The two points that stuck with me were making a leaner version of Clojure for restricted build environments (such as Android), and adding extensional types to values.  The example he gave was date formats; different people may want to have different representations of a data object.  But as long as the date that is read in is annotated in some way its type (to show that it is a long representing the ms since the Unix epoch, for example), the reader could convert it when it is read to whatever your preferred type is (smells a bit like implicits in Scala).  This could make Clojure values a much more attractive general purpose transfer format like XML (except without the suck XML tends to drag in).  In terms of syntax, I may be missing something, but couldn’t that be handled today with metadata?  There would have to be some agreed upon conventions (and the reader would need to be able to recognize it), but I wouldn’t think a new syntactical form would be needed.  I would also worry that this could result in Clojure values becoming too big, though this would of course be optional.

On to Saturday’s talks.  It opened up with Nathan Marz’s Cascalog talk.  At StrangeLoop I attended his Cascalog workshop, so I already am a bit familiar with it, but it looks like a great library if you are working with Hadoop and HBase tables.  That was followed by an interesting talk by an overly caffeinated Daniel Spiewak on immutable persistent data structures.  He is a member of the Scala community (which Neal Ford reminded everyone is not the enemy), so that is what the talk focused on, but for the most part it was applicable to both languages.  It might say something about the Clojure community that we find talks on data structures interesting regardless of the language its in, though.  And on the subject of talks that cross language boundaries, Craig Andera’s talk on debugging performance problems involved almost no Clojure at all, though that’s a good thing since it turned out Clojure itself wasn’t responsible for the performance problems he saw in this case study (those were the database (of course) and logging).  When that talk makes it on video, I would recommend it for anyone interested in performance analysis, which hopefully is every software engineer out there.

There were a few other good ones throughout the day.  Fogus gave a talk on macros, and there were a few interesting lightning talks.  Out of those, the one that stuck with me the most was Chris Granger’s demo of Korma, a library for working with SQL (relational databases, how old school is that?).

But the conference ended with a bang with Sam Aaron showing off Overtone, described as  “a Clojure front-end to the state-of-the-art realtime sound synthesis engine SuperCollider”.  But honestly, you need to see (or rather hear) it for yourself to understand it.  Writing software to literally make music is an intriguing (if not beyond my talent level, when I last played with Overtone I spent most of my time trying to figure out why it wasn’t making any noise, until I realized my sound was off) idea.

It was a great conference, and I learned a lot and took away a lot of ideas to play with.

Leave a comment

Clojure Conj, day 2

Ok, so after 3 days of agile training followed by two full days of Clojure Conj, I am a bit ready for a rest.  Too much coffee and convention food can make my stomach feel a tad off.

Anyway, yesterday started off ominously enough, with a Veterans Day parade shutting down a couple of streets, including the ones around the hotel, making getting to the hotel a bit difficult for those of us local who drive in each day.  But I did make it in just in time to hear a very interesting (and perhaps a bit controversial) talk by Neil Ford on taking enterprise mindshare.  He argued that Clojure can indeed plant itself inside enterprises, but that raises the question, should it?  Should the goal be to make roads in large companies, or be a tool to compete with them (I think it was Paul Graham who said Lisp can be a startup’s secret weapon).

There were a few other interesting talks, though quite a few seemed to be on works in progress (in fairness, that can be expected from a young language).  David Nolen spoke on predicate dispatch, a feature I can’t wait to make it in the language.  And Daniel Gomez gave an intriguing talk on running Clojure on Android.  There are still a few hurdles to cross, though the fact that Scala has made it on Android with very little overhead does give me hope.  And the fact that I now have a Clojure REPL on my phone might result in me having one more thing to waste time on.

A few other notable talks included Chas Emerick’s talk on Bayesian networks and Clojure, something I am looking forward to playing with.  That’s the problem with these conferences, I come up with long lists of things I want to work on.  In fact you can to that list ClojureScript and Logs as data from yesterday’s talks as well.

The day finished up with Rich’s keynote.  It was more of a technical talk, not a rant-style talk like his Simple talk at Strange Loop or the Hammock talk last year, but still interesting.  I’ll go into it in more depth later since today’s talks are about to start.

The party was nice as well, though I wasn’t feeling well so I didn’t stay long.  I still got to have some interesting talks with people (and free beer of course).  Still no bagpipes though.  I suppose my sneezing will have to be the loud annoying sound this year.

Leave a comment

Farewell IBM

After almost 7 years, today was my last day at IBM.  And starting Monday, I will start my new job as a Senior Software Developer at Wireless Generation, an educational software company opening a new office down here in Durham (this transition is my excuse for not blogging much recently).  I enjoyed working at IBM (well, most of the time), and wish the best of luck to my former co-workers and IBM in general, but I am also very excited to start this new chapter in my career.

1 Comment

Back from Strange Loop

I just returned from the Strange Loop conference earlier tonight.  I don’t really have time to get into too much detail of what I saw (I do have to get back on Eastern Standard Time), but let me say it was a great conference.  Some of the standouts were Rich Hickey’s keynote (if you’ve never heard him speak before, watch either Are We There Yet or Hammock Driven Development from last years Clojure Conj while waiting for the Strange Loop recording to be made available), Nathan Marz’s talk on Storm (I’m really going to have to start searching for a problem to use this for), the language panel (even though it was accidentally cut short), Erik Meijer’s keynote on Big Data, and Blake Mizerany’s talk on Doozer.  And the part of Sussman’s speech I was able to understand before my brain started to short out was great too.  Unfortunately there were a lot of talks I missed which I will have to wait for the recordings to come out.  That might have been the biggest problem with the conference (well, other than the elevator fiasco), there arguably were too many tracks with competing talks at the same time (most blocks had 7 talks to choose between).  Of course there were a lot of talks scheduled and only a limited amount of time to give them in, but perhaps it would have been possible to fit in more time slots by varying the times a bit more.  While some talks definitely required the 50 minute slot and in fact often went over, others had less information to present and could had made do with a shorter, maybe 15 minutes to half hour block “lighting” talks.  Then a couple of extra time slots could have been made by splitting a few hours up.  But all in all, it was a great conference (again, except for the elevators).  I’ll post my notes and reactions to the speeches I saw in the days to come…

Also as a note, the Clojure Conj has posted their schedule, and it looks like a great lineup as well (including several speakers I just saw this week).  Its local, so it will be easier to attend, assuming I can manage to take some more time off…

Leave a comment