I’m out here in chilly San Francisco for CodeConf, a conference for programmers sponsored and hosted by the folks at GitHub. This is my first real time spent in San Francisco (previously it’s just been through the airport or a one night stay due to an aircraft engine problem while trying to make it through the airport) and it was with much delight that The Wife and I experienced the Ferry Building and its farmer’s market for breakfast. Despite problems with the staff finding my registration, I made it in time to hear all the talks for the day, and in general the speakers were very good and subject matter covered was interesting.Dr. Nic WilliamsThe first talk was by crazy Australian Dr. Nic Williams who talked about the importance of learning something, then making it into a tool, and then once you get into this habit making tools that help you build tools faster and more efficiently. Simple, and even though it was a little forced at times, he made the talk unforgettable with movie clips from Tinkerbell, the theme song from the A-Team, and his choice of clothing which was a pink tutu and fairy wings. He left the podium with AC/DC blasting to applause.

He talked about building textmate snippets to help with database migrations in rails.

Bundling those snippets for better/easier distribution with .dmg

Building a tool to help with the construction of .dmgs (choctop)

All in all interesting, if a little bizarre.Coda HaleNext up was Coda Hale from Yammer who gave the best talk of the day which was easily worth the price of admission for the entire conference (and I’m saying this only 50% of the way in). His topic was code instrumentation and he discussed the various techniques and ways we need to measure our software so that we can implement the OODA method: Observe, Orient, Decide and Act. OODA is a combat operations process that was designed in the Airforce and many of us in the development or operations groups of tech companies can see the similarities between combat and figuring out what’s happening with complex software stacks.With OODA as our goal, we need to employ five different ways of measuring: Gauges, Counters, Meters, Histograms, and Timers. Yammer has wrapped these tools into a JVM friendly project located here that they use to publish meaningful metrics to downstream analytic consumers like Nagios and Ganglia. He spent some time going into some detail on the statistical models they use to break histograms down into meaningful quantiles without torching huge amounts of disk space, and while he recognized most of us in attendance aren’t using the JVM, the challenge was laid down to get these tools into the hands of programmers using other runtimes or languages.The bottom line was: “If a piece of code affects our business, we must instrument it,” and this was underscored with an example he provided of two different ways to call a sort. One should be faster due to its underlying construction that we may or may not know, but then he showed how the code calling it actually had a sleep(100) within the call loop. In other words, without instrumenting this on production we have no idea which one is faster, and we’re probably wrong without closing the gaps between our mental model and the executing code and proving the gap.This was an absolutely fantastic talk, and his slides can be found here.Other Speakers / Presenters

Jonathan Rentzsch talked about “Design by Contract” programming or “Contract Driven” programming. The examples seemed to be preprocessed assertions (not unit tests)that are fed and managed by the compiler. More research needed.

There was a great demo provided in about 3 minutes from the folks at Tropo.com (a Twillio competitor) that showed a Tropo app connected to a redistogo.com Redis queue that then talked to a Node.js process and when the demo-er called a phone number it asked him which color he wanted, used voice recognition to process “blue” or “yellow” and then the background of the website changed in near real-time.

Creator of Node.js Ryan Dahl spent his time in very animated fashion blasting out some memorable one-liners while discussing the efforts that are underway to port Node.js to Windows.

One of the founders of Django talked about the need for clear documentation and said some controversial things about tools like rdoc or jdoc. His bottom line: make sure you’re answering the who, what, when, where, and why in your documentation and there’s no substitute for human written docs.

Former Lifehacker Gina Trapani talked about the importance of community in Open Source projects. She’s currently managing/contributing to ThinkUp and talked about how many Open Source communities struggle to integrate and accept contributions from non-programmers.

The food that’s been provided has been fantastic showcasing a lot of local ingredients and vendors. The conference hall is probably a bit too small and a little cramped, and there is no power provided at your seat. The 75% of us who brought laptops whittled down to about 2% by the end of the day as we ran out of power. The night events all involve open bars at what seem to be nice venues. All in all, an enjoyable first day at CodeConf.