Seminar day at RAH

Saturday (4/22) was Student Conference Day at Rensselaer at Hartford (RAH).  That's always an enjoyable, if long, day for me.  I supervised nine student papers this year, which is a lot.  Every year I threaten not to do it again, and so far every year I keep doing it.

(Ack. Ignore the link — it's to last year's Student Conference. Sigh.)

The papers were interesting, though.  Students are drawn to "compare and contrast" papers like a magnet, but a friend of mine pointed out that there really aren't that many other options available.  So this year I had compare and contrast papers on Struts vs Spring (which can be used together, of course), Hibernate vs Spring JDBC vs roll your own DAO layer, Framework A vs Framework B (where A and B are Struts, JSF, WebWork, RoR, …), and more.

Still, everyone did a good job.  It's quite low pressure, especially when the presentation is done. 🙂

I guess you could say a good time was had by all.

The (understandable) arrogance of the Rails team

Back in March, I had the pleasure of attending a No Fluff Just Stuff conference in Danvers, MA. I really enjoyed it and learned a ton about the hot technologies these days.

One of the people I went to see was Dave Thomas. His list of accomplishments is extraordinary. In addition to being the author of the pickaxe ("Programming Ruby") and the main co-author on the definitive Rails book ("Agile Web Development with Rails"), he also wrote "The Pragmatic Programmer" with Andy Hunt and then built a publishing company to sell it. See The Pragmatic Programmers web site for details.

In person he's a great speaker. He's witty and clever, with lots of amusing anecdotes to tell. He also is not afraid to take on the dysfunctional development practices in the industry. He gave the keynote speech at the conference, talking about cargo cults and other stupid practices in software development.

As a not-unrelated aside, if you watch the Rails introductory video, you get to see David Heinemeier Hansson (the creator of the framework) build an app in twenty minutes. During the presentation, he continually makes comments that I find but startling and wonderful. I love it when that happens. I really enjoy finding out that everything I knew was either wrong or a vast oversimplification of the truth. His arguments in favor of dynamic typing, and convention over configuration, and allowing Ruby code right in the view pages are really fun.

IHMO, a lot of his comments have a similar flavor. They feel like, if giving you this freedom means you might shoot yourself in the foot, then the answer isn't to take away the freedom. Then answer is not to shoot yourself in the foot! It's a very liberating attitude, especially when you see how productive it can be.

There's a problem, however, and this comes up with both DHH and with Dave Thomas.  They obviously feel they know better than everyone else.  They're obviously tired of defending their correctness.  They also are beseiged by stupid questions on a regular basis.  The result, unfortunately, is that they start to get dismissive of outside opinions.

More than once during his presentations, Dave Thomas said, "is anyone using <insert technology here>?  God forbid," or words to that effect.  Sometimes he trashed a technology that was being discussed at the same conference, with the creator of that technology in the building.  DHH recently at the Canada for Rails conference put up a slide that told all people who didn't like the Rails approach to f-off (I'm deliberately not linking to that).

This isn't good.  I've been around some of the most brilliant people in the world, and there's never a good enough reason for that sort of dismissive arrogance.  It always, always, always comes back to bite you.

I believe that Rails is already bigger than any one individual, and maybe bigger than any one team.  But this isn't a pretty sight.  A little humility goes a long way.  I'm glad they're shaking up the established wisdom and I'm very glad they've been so successful with their innovations.  But a smack-down is coming, and I'm sad about it. 

This week’s activities

This week I'm spending time working through David Black's Ruby for Rails book (hereinafter referred to as R4R) and helping Will Provost with his courseware. I'm working through the labs and demos in his Intro Java course, now that they've been ported to Java 5.

I'm okay with the enhanced for loop, and with variable arguments, and am getting used to enums. Generics are just plain ugly, and the inheritance aspect of them is very awkward. I thought I was going to really like generics, but now that I'm getting used to a dynamic typing language like Ruby, it all seems so unnecessary.

Six months ago if you'd asked me about dynamically typed languages, I would have said they were too error-prone to be useful. In other words, I would have given the standard Java answer. Now that I've spent time with Ruby and with JavaScript (of all things, but thanks, Ajax), I'm starting to see why they work so well. I'm also beginning to understand why every SmallTalk developer I've ever met loved that language.

I really need to assemble a "Ruby Traps for Java Developers" page, though.

Red Sox update

The Sox kept coming back last night agains the D-Rays. Of course, Mike Timlin gave up two runs in the top of the 8th to tie the game (and, better for him, the runs were charged to Matt Clement), but Youkilis and Papi came through in the bottom of the inning to make it 7-4.

On came Jonathan Papelbon. So far he was 6 for 6 in save chances, but each one has been getting to be more of an adventure. This night was no different. He struck out two, but it took a while and he sandwiched a walk between them. Then we had a hit and another walk, and suddenly our save situation has become a real problem.

We've got bases loaded, two outs, a three run lead, and a full count on the batter. He hits a soft fly to shallow center. Adam Stern decided to try to catch it, which was a real risk. If it gets by him, it's a tie game. Instead he makes a great, diving catch right off of his shoetops to end the game.

Now Papelbon is 7 for 7 and still hasn't given up an earned run. That's not going to last, though. Still, we're now 10-4. Even better, Randy Johnson got clobbered (7 runs in five innings) and the Yankees lost to the Blue Jays. Welcome to last place, NY. The lead is only 3 1/2 games, but I'll take it.
It's only April, but life is good. 🙂

Hello world!

I always planned to run my own blog. I was going to use Typo, under Ruby on Rails, to do so. I even downloaded typo and plan to continue to investigate it, but a few things intervened.

1. I want to upgrade to Rails 1.1 (I think 1.1.2 is the current version) and typo still doesn't work under that.

2. I'm not sure my configuration under Apache 2 is right yet.

3. What the heck, maybe I'll just let WordPress deal with the whole availability issue. I've got other things to learn.

Which is why I'm here. This is my "things I've learned recently" blog. I'll use it to document what I'm doing and learning these days. Of course, that will include more than technical stuff. It'll also be stuff I learn about the people around me, and even stuff I've had to learn over and over and over again.