Monthly Archives: April 2009

JavaFX, Microsoft Surface, and TDD talks this week

The Ann Arbor area is ripe with events this week (apologies to our spouses).

Join up with fellow coders tonight at NSCoderNight, at Sweetwaters in Kerrytown.

Tomorrow night (Wednesday April 15), you will have to choose between attending a JavaFX talk at the Detroit JUG and a Microsoft Surface talk at GANG (Great Lakes Area .NET User Group).  Jim Weaver has solidly embraced JavaFX, and is working on his second book.  I'm thrilled that he's returning to the area, since I missed his talk at the Ann Arbor JUG late last year.  The meeting will be held at ePrize, 1 ePrize Drive, Pleasant Ridge, MI.  I had a hard time finding the location the first time I went there, so definitely check out the directions. The meeting starts at 6:30.

The Microsoft Surface is also pretty exciting.  VectorForm is a Michigan company that has been doing Surface development perhaps as long as the device has been available.  My first view of the Surface was in the James Bond movie (Quantum of Solace), and then I was also lucky enough to see one at CodeMash.  So if you haven't seen the Surface, definitely head out to the Microsoft office in Southfield (1000 Town Center Drive, Suite 1930, Southfield, MI 48075) tomorrow night.  Joe Engalan and Jennifer Marsman will co-present.  The meeting starts at 6:30.

And after the meeting (around 9 pm), join up with CoffeeHouse Coders in person at Mujo's in the Duderstadt Center on North Campus or on their IRC channel.

On Thursday 4/16 for lunch, choose between the monthly A2 Nerd Lunch or the weekly A2B3.  They're about a block apart, so perhaps you can hit both.

On Thursday evening, you have several choices in Ann Arbor: Ann Arbor Startup Drinks at Grizzly Peak, and the Washtenaw Linux Users Group at WCC.

Also on Thursday, but a little further from home, Dennis Burton is speaking at the Greater Lansing .NET User Group with his talk on "Test Driven Development is Driving me Insane".  Dennis will discuss patterns and techniques for writing tests that are more robust and provide better information, including techniques that you can apply to your design when writing new code to make testing easier, as well as tools for working with existing applications that do not have good test coverage.  If you miss his talk on Thursday, catch this talk again the following week 4/21 in Toledo, at Northwest Ohio .NET User Group.

On Friday, you can learn how (and why) to join a non-profit board in the Ann Arbor area.  A2Geeks is helping to sponsor training at the NEW Center, for just $35.

This is your last chance (mine too!) for the 2008/2009 academic year to visit the MPowered Entrepreneurship Hour at UM.  The speaker this week is Joshua Pokempner of Entrepreneur Toy Company.  The meeting is held from 3:30-4:30.

Pair programming with Corey Haines last week at SRT

Corey Haines is a software developer from Cleveland, OH, who has embarked upon a pair programming journey. He's spending a year or so, traveling around the country (soon to be extended to Europe and perhaps Asia), programming on whatever projects individuals or small companies are interested in working on.  Last week, SRT was privileged to host Corey, and he paired with me one of the days that he was in town.  He also stayed with my family overnight, which is what he does in order to keep his expenses down during his year of travel.

When I was at the Java Posse Roundup, I spent an afternoon with a group of people working with Bill Venners on Scalatest. Several of us agreed to help afterward, but I hadn't had time to jump in.  Last Friday, with Corey, I found that time.  He and I spent the day working on an HTML Reporter for Scalatest.  We made a lot of progress, and even worked a bit with Bill, remotely.  No, Corey's not a Scala programmer, but his ability to pick up the language quickly speaks strongly of his aptitude for languages and perhaps of Scala as well.  Corey had previously worked with David Chelimsky on RSpec.  Since Bill has added behavior driven developmentsupport in Scalatest, we focused on that.

We accomplished WAY more than I had thought that we would, especially given that I couldn't dedicate the entire time to only pairing.  We certainly got more done together than I would have accomplished by myself.  (Hopefully soon,) I'll go back and finish up the other support, and get the code to Bill for his approval and checkin.  And, I think that Corey had a good time too.  He said that he's going to start working on a Scala port of RubySlim!

But I wanted to write a little about Corey's style of pairing and why I enjoyed it so much.  He likes each person to have a keyboard and mouse and monitor.  Instead of pairing side-by-side, he likes to pair across a desk.  That offers the ability for the pair to talk and to see one another.  I like this; it feels collaborative.  And, for someone who doesn't pair every day, it's less disruptive to the office environment.  There was no need to rearrange desks or squeeze behind one.  Rather, we just needed to pull up a desk.

The hardest thing for me when pairing with Corey was that he uses a Mac and I use a PC.  My keyboard doesn't have all of the fancy keys that his does (and I have a habit of using HOME and END, which mapped badly).  But we laughed it off and I really enjoyed my time on the Mac even if it was from my PC keyboard.  I keep threatening to buy a Mac, and by the end of the day, I was pretty convinced that I wanted to hit the Apple store.  Hmm, maybe next week.

My first experience in a bullpen programming environment was in 1988, when I worked for a very progressive company.  I enjoy working in collaborative environments and pairing just notches it up a bit.  Corey made some interesting observations about pairing.  We all spend time collaborating, working together, helping one another. Why not sit down and work together for a little while. Maybe try pairing for a few hours each day.  Try it for a few weeks, a month.  See what you think.  You might find it highly productive.