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.
Good news for Squeak developers. It looks like they are in the final throws of converting all code to the MIT or the Apache license. They still need an official release before the conversion is complete, but it looks like it's just a formality. There have been several problems with the Squeak License. First, the license has a few clauses that are different than most of the mainstream Open Source licenses. An indemnity clause that could require software distributors to pay legal fees to Apple in case of law suit. Another to add in export restrictions. At one time, some of the pieces could not be used in "for profit" software (like the fonts). So all around good news for Smalltalkers!
This is my first post since moving from Des Moines, IA to St Louis, MO. My previous blog can be found here. Lately what has been of interest to me is data mining and how it can be used to help in software development. Last month I demoed/presented on OCaml at a newly created languages user group in St Louis called the Lambda Lounge. We're two months into it and it's shaping up to be fun and interesting group.
More to come soon!