What would you take in an earthquake?

I was at a co-working space in Herndon, getting ready to type and I noticed the external 20″ monitor that I was connected to was rocking a bit.  I steadied it with my hand and casually asked my office mates: “can you guys feel that?”  I thought perhaps someone was moving something super heavy upstairs.

Then the shaking got stronger and all I can remember is that I shut my MacBook Pro, ripped out the DisplayPort connector, grabbed it like a baby/football and then sprinted out the door just a few yards away…out across the sidewalk, across the street and to the other side of the parking lot.

I felt a bit more shaking while in the parking lot and then all was calm.  It seemed surreal and then later we found out via USGS that there was a roughly 6.0 magnitude earthquake just 90 miles south of where we were!

In retrospect, it seems odd that I took the time to grab my laptop.  If I was at home, my wife and I would’ve just grabbed our kids and headed out away from any buildings.  I always heard that you should just drop and leave everything.  Maybe I need to work on my backup strategy so I feel more secure in leaving my laptop in an emergency.

iPhoneDevCampDC is coming July 31st – August 1st!

We are putting together a local gathering of iPhone developers in the Washington DC area. Its called iPhoneDevCampDC and it is a satellite event of the main iPhoneDevCamp (which is in Sunnyvale, CA.) There are satellite events all over the country and Washington DC is one of the new ones in this third iteration. iPhoneDevCamp Florida, by the way, is another new one – go East Coast!

iPhoneDevCampDC is going to be the evening of July 31st and then all day August 1st. We are looking for sponsors for the event, so if you are looking to get your company in front of iPhone developers, please contact us.

We will be limiting the number of attendees this year to 50. Ticket registration will start next week around the beginning of July. This is a BarCamp-style conference, where the attendees present the sessions, so if you’re planning to attend, start thinking of what session you could present. We won’t have time for everyone to present, but if everyone comes ready, then we’ll have great topics for everyone to choose from.

There’s a website for iPhoneDevCampDC with some more details and we’ve also started tweeting at @iphonedevcampdc, where we’ll publish news about the event (like when registration starts.)

RubyNation 2008 wrap up

I attended RubyNation 2008 last weekend on Friday and Saturday. It was great to meet up with fellow Rubyists in the Washington DC area. It was also my first time helping to organize a conference – I think we did a pretty good job considering that we did it in a short time and the conference was sold out. We do stand on the shoulders of giants though – we had help from fellow Regional Ruby Conf organizers from around the country – Lone Star, Mountain West, etc. I also wrote a nice app (in Objective-C) to pick the prize winners that I’m codenaming Prizes.

As usual, there was the good practical technical meat from JRuby to testing to DSLs. You can find a links to the speakers and the Ruby frameworks and tools that they mentioned at my links pages (which I took with my Mac bookmarking app Webnote) to post it to both delicious and ma.gnolia.

delicious: http://delicious.com/tag/rubynation

magnolia: http://ma.gnolia.com/tags/rubynation

But, what I found more interesting is the philosophy of programming. Neal Ford who gave the opening keynote related how Ruby helps you capture the essence of your problem while avoiding the ceremony that other languages like Java make you perform and that we should learn the lore of programming. Glenn Vandenberg reminded us that we really should try to fit the tools to the problem and that there is always a benefit and cost to each. Rich Kilmer noted that Ruby is becoming mainstream and that is has grown organically (to our benefit.)

Finally, Stu wrapped up with how Ruby is good overall, but that there are some bad practices / parts of the language that could come back to bite us later especially as Ruby adoption grows. He called out: class attributes (use instance attributes on eigenclasses instead), constants (you can’t change them unlike almost everything else in Ruby), accessing instance variables directly (use accessors), and how procs are treated (he likes Giles’ L alias for lambda but solving the ugliness of using more than one block will likely need change at the VM level.)

As a programmer who lives in both the Ruby and Objective-C worlds, I had the additional takeaway of how much the Objective-C community can learn from Ruby practices. Things like testing, mocking and DSLs are under-utilized but I think have the potential for improving our apps.

Going further and thus wrapping back to Neal’s talk about the lore of programming, I think we owe it to ourselves as programmers to learn other languages, especially the “root” languages like Smalltalk and Lisp and to read “the classics”. Neal mentioned The Mythical Man-Month, Smalltalk Best Practice Patterns, and The Pragmatic Programmer. To that list, I would add Refactoring.

Thanks for everyone who spoke, attended and organized RubyNation 2008! We’ll be having another one in June 2009.

New Programming Language Group forming in Northern Virginia

I don’t know what it is about Northern Virginia and programming languages, but we just can’t seem to get enough of them! A new group “novalanguages” has just formed.

Here’s a brief description of the group:

Thoughts on the makeup of the group include obtaining (however you want) a book,
working through the book 1 chapter per week on one night of that week with a group of
like minded individuals. For the first one, my company Iterative Designs will sponsor it (not sure what that means just yet) and we can go from there.

It will mean meeting up and having a group to ask questions about the language we are learning and they aren’t going to give you the snub nose responses of “Don’t you know that — you n00b” that you might get in an IRC chat room.

I am thinking the first language should be something out there but semi-applicable (like an Erlang, Smalltalk, or even Lisp). Unless everyone in the group has a Mac (or can borrow one) and we can learn Cocoa/Obj-C — which would be fun given the iPhone SDK availability.

Chris Williams

Personally, I’d be happy to learn Erlang. Chad’s been talking about it for awhile now and I got really excited about the potential of it while at MountainWest RubyConf where I saw some good presentations about it.

I’d also be interested in going through Cocoa/Objective-C. I already know it, but its always good to go back through the basics and practice, practice, practice. Plus, it’s also good to share your knowledge with others – teaching is sometimes the best way to deeply ingrain something into your brain. However, we’re already planning to go through the Cocoa Programming for Mac OS X, 3rd ed book in our NSCoder DC Night group.

Thanks to Chris Williams for setting this up!