Object Commando languages, development and design


Strange Loop Highlights

I thought I'd punch up my thoughts on Strange Loop last week here. I think the conference went very well. Sitting next to Alex at work keeps a steady stream of Strange Loop excitement going for months before the conference and I think it delivered. The Pageant was a great venue, with plenty of space. The Moonrise rooms could get a little cramped (standing room only, people sitting on the floor etc) but the bigger rooms were definitely adequate. Having lunch and dinner open is a nice bonus because the Loop has a ton of great restaurants. I didn't watch much of the Strange Passion Talks, but enjoyed having a few beers and talking with other developers. Below are the highlights of the conference from my perspective.

Hilary Mason - Machine Learning: A Love Story

I really enjoyed Hilary’s talk and her presentation style. She wouldn’t necessarily have bulleted lists of what she was going to cover, rather just a background image and she would talk through it (slides here). I thought that this was a good high-level overview of data mining basics. It brought back memories of grad school working through Data Mining by Jiawei Han which she mentioned after a question from the audience (it's the "purple" data mining book she referred to). The talk had several very practical applications of data mining and some good pointers for developers wanted to learn more.

Java Provisioning in the Cloud - Adrian Cole

Adrian gave a rundown of the goals of the JClouds project, the niche that it's trying to fill and some of companies using it (along with info on how they are using it). He also covered some of the philosophy of what goes into JClouds and what doesn't. It really helped me appreciate the fine line that the JClouds folks walk in working with the various cloud providers. There was an example or two in Java with several in Clojure. It was nice to meet Adrian face to face after quite a few discussions online!

Expression problem - Chouser

Great talk. He walked through a somewhat typical code path in Java that would necessitate a “wrapper” class. He then improved the code slightly by monkey patching in a Java like syntax. He then did the same code in Clojure, walking through the implementation then moving it into multi-methods. He then walked through a refactor of multi-methods to protocols (something we have been doing recently at Revelytix as well). He then gave a rundown of the pros/cons of protocols vs. multi-methods. I found most of this talk review, but the material was covered well. The slides from the talk are here, there should also be video of it soon.

How to Think about Parallel Programming: Not! - Guy Steele

Guy Steele's talk was on how we can make programs parallel. His focus was on certain operations having wiggle room in how the code is executed. Specifically his example was around a reduce type of operation where the calculations are not linear but more divide and conquer, where the divide happens on separate threads and the conquer step merges the results from the threads. His examples were in Fortress but seems easily applicable to other languages. I found that I have a big lack of knowledge in this area and am looking forward to doing more research in this topic.

Enterprise NoSQL: Silver Bullet or Poison Pill? - Billy Newport

It's easy to get carried away with new technology. With all the hype around NoSQL, it's certainly ripe for misuse. I liked Billy's reality check on the technology. Slides from the talk are here. His point wasn't that you shouldn't use a NoSQL database, but rather there are trade-offs. He enumerated examples of clear wins and clear losses. He reminded the audience several times that the laws of physics don't change, even with Map/Reduce. I think I knew a lot of what he was saying already, it just wasn't as firmed up as after his talk. Thanks for keeping our feet on the ground Billy!

Querying Big Data Rapidly and Robustly with Cascalog - Nathan Marz

This was a talk given by Nathan Marz about his Clojure based Hadoop/Cascade library. There was a lot of excitement during/after this talk. Nathan created a nice Clojure DSL that made a very succinct representation of Hadoop queries. It shows what the power of a language with as flexible syntax as Clojure can do. For those familiar with SPARQL, the syntax will look especially familiar since his DSL and SPARQL are both based on Datalog. I definitely have that library on my "To Learn" list.

Outside In TDD - Brian Marick

Brian Marick went through some examples of his Clojure based Midje mocking framework. I had some difficulty following some of the syntax and examples, so I think I'll need to download it and try it out before coming to any conclusions about the framework. I did like how Brian had molded Emacs and Slime into a even quicker REPL environment and included it with Midje. His point on filing down the rough edges of your development process (in this case Emacs extensions) is a good take-away from the talk. The combination of some Emacs extensions and the Midje Clojure code looks like you could focus on the testing task at hand in a pretty fast and slick way.


In conclusion, Strange Loop was a great investment of time with a lot of top notch speakers and great topics. There was a lot of technical content with very little marketing. There are several other talks I wanted to make and am hoping to catch the video of when they are released. I think Strange Loop's content is broad enough to appeal to any passionate developer and would definitely recommend going next year.