Sunday, June 19, 2011

Maritime DevCon 2011

I'm back from a jaunt to Fredericton, New Brunswick, for Maritime DevCon. Here's a post that lies between a 'random walk' and a review.

Background

From PEI originally, I've spent most of my career in St Louis/USA. I've been an active member of the user group/conference scene there. When I moved to the Maritimes in 2010, I wondered if I could find 'my people' who can/read write in the original Geek.

The upshot is: these are my people. This one-day event was a gem. The organization was first-class (good food, killer door-prizes). The topics were interesting and straddled the fence between pragmatic and esoteric-but-neat (reminiscent of Strange Loop). Most importantly: the 'spark' was there; that palpable energy that naturally spins out of conversation between interesting techies.

Venue

Maritime DevCon was held at the Wu Centre at the University of New Brunswick. About 70 people attended, notably giving up a Saturday to spend time talking tech.

Talks

Here is the schedule. I attended these talks:

OpenStack 101 (by Sandy Walsh)

I'm not especially familiar with cloud computing, or virtualization, so I was surprised to learn that Open Stack is a huge initiative among big players (e.g. Intel, Cisco, and... NASA!?). The architecture involved here is mind-blowing: will the real platform please stand-up?

Random thoughts:

  • I often wonder if programming language X will be the Next Big Thing. Though it is in a different scope, virtualization is Right Now. Every time I think I have an appreciation for its influence, I see another talk where the landscape has changed ever further.
  • Pythonistas unite! Though thinking at this level often reduces the programming language to an implementation detail, I was delighted to hear that the underlying system is written in Python.
Redis (by Peter Doan)

At other conferences, I've missed talks on Redis, the key-value store. On the way to NB, I listened to a changelog interview with the author, Salvatore Sanfilippo. Consequently, I expected a simple, near-minimalist API, and Peter confirmed that with his code examples. Works for me.

Natural Language Processing with Java (by Chris Nicholls)

Interesting piece on the state-of-the-art in NLP, especially sentiment analysis. The two main libraries are LingPipe (not free) and Apache's OpenNLP. I hadn't thought about NLP in a long time, and certainly not with respect to Twitter: (a) Twitter could be a gold-mine (b) '#' is a legit, vital punctuation mark.

Git (by Chris Dail)

This was a thoughtful, solid intro to Git. I've been away from Git for awhile, so this was useful refresher, and pulled together a couple of tectonic plates floating in my consciousness.

I especially enjoyed a section described branching in terms of highway lanes rather than trees. I appreciated anecdotes about using the Git client for Subversion as a rebel effort to 'subvert Subversion'. Note that Chris has a detailed blog post about migrating from Subversion to Git.

Node.js (by Justin Vaillcourt)

Node is another topic that I haven't seen yet. For this talk, as my friend Weiqi Gao would say: you had to be there. This was pure, unadulterated hackage, executed by a pack of young, feral dogs with unbridled enthusiasm for technology.

Justin grinned though an abbreviated talk that ranged wildly. Just when frat-house interactions with his posse threatened to steal the show, out came jaw-dropping illustrations of Node.js.

A key example used the socket.io package:
  • a visitor hits a website and scrolls around
  • an admin console shows a thumbnail of page the visitor is viewing
  • as the visitor scrolls, navigates in his/her browser, the thumbnail scrolls in the admin console
This was done about 150-200 lines of Javascript. I don't know if this is a strong Node example. I'm still trying to wrap my mind around it.

MongoDB (by Derek Hatchard)

As with Redis and Node, I'm familiar with the buzz of MongoDB but hadn't looked into it. From the perspective of presentation techniques, this was a strong talk. A good arc from the motivation through to code examples, with images instead of bullet-lists.

Like Redis, the MongoDB API is deceptively simple. It's hard to appreciate the power. I was happy to see explanation of sharding with MongoDB, and very happy for an introductory theme on "no silver bullet", applied to relational DBs and NoSQL tools.

Suggestions

My main suggestion is that the sessions should have written evaluations. This benefits the speakers, the organizers, and ultimately the attendees. Also, there should be an overall conference evaluation.

Bottom-line

It is non-trivial to travel from PEI to Fredericton, but DevCon was worth it. The material and the energy felt like events in larger urban centers, and that's saying something.

A shout-out to Derek Hatchard, other organizers, and sponsors: thanks! I'll be back next year, as an attendee (or possibly as a speaker?): after all, these are my people.

Sunday, June 12, 2011

Random Walk Down NFJS (2011)

Long-time readers know that I am a big fan of No Fluff, Just Stuff. There are many posts on this blog regarding reviews, keynotes, pianos, and so on.

Often, I start writing a "random walk" post, intending it to be quick and whimsical, but I end up writing a full review. This one will be quick, otherwise it won't be written, alas. Here we go...

I returned to St. Louis (again!) in May to attend the Gateway Software Symposium. As you can imagine, it was fantastic to catch up with old friends in a familiar environment. Just like old times.

Code As Proof

I attended Venkat Subramaniam's talk on concurrency without pain in Java. The talk was all-code with no slides. A few small examples began with "synchronized and suffer" (his phrase) model and scaled through various techniques, including locks, STM, and actors.

All interesting stuff, but I was especially taken with the elegance of the examples. If you've studied math, you may know the minimalist charm of a proof: there is no excess fat; everything is a direct line from A to B. As a presentation style, Venkat's talk recalled that spirit. Every example added one element to get to the next point.

HTML5

HTML5 officially has my attention. I saw a few talks, and was taken especially with Nathaniel Schutta's session on mobile jQuery. As someone who is notoriously divided on choosing Android versus iOS as a development platform, this blew my mind. A unified UI experience for mobile! I'm still trying to get my mind around the idea (and how to monetize it in the various app stores).

Sonar

The headline: Apache applies Sonar to its projects, as shown here. Matthew McCullough's talk convinced me that this isn't merely a collection of code metrics. With experience, I think a Sonar guru can transcend the raw data and see interesting patterns over time, such as the impact of summer weather on code quality (!). This is a Freakonomics-like enabler.

Crafting Software

Two paraphrased thoughts that really stuck (I hope I've captured the essence).

One from Peter Bell, along the lines of: on initial estimates for a project, give enough time to do the minimum spec, and include time to polish based on feedback from the first cut.

From your friend and mine, Ken Sipe: two major problems with software teams are (1) poorly defined acceptance tests and (2) dysfunction in the daily stand-up. When someone with Ken's experience distills things down to two items, that's powerful stuff.

And The Gradle Will Rock

Ken also spoke on Gradle. I'm a fan, and gave an intro talk back at GSS May 2010. The interesting story here is the growth. There is a lot of industry momentum here, and the training/book offerings are ramping up big-time.

Where's The Groovy!?

I caught Venkat's talk on Spock, and liked it very much. I didn't catch any Groovy or Grails talks, only because I'm very familiar with them. It was interesting to reflect on the history of these technologies. Grails has been 1.0 since Feb 2008! They grow up so fast.... *sniff*

Anapestic Tetrameter!

Nothing stresses me out like poetic meter (pun intended). It is one of a handful of high-school subjects that I just Could Not Understand. When I saw Tim Berglund's tweet that he was working in anapestic tetrameter, I shivered out of reflex. Gah!

Then, at NFJS, Jay Z showed the video. All is forgiven. Tim crafted an ode to Kent Beck's Implementation Patterns. Vote for Tim's vid on DZone. Vote it up on YouTube. It is wonderful.

Thanks

This may sound like trite, blanket statement, but I can't mention everyone. The weekend truly was chock-full of heartfelt re-unions and conversations, on many levels. See you again soon!