Web Frameworks Jam Wrap-Up

The last day consisted of a steady morning of TurboGears activity followed by lunch, a great hike, and wrapping up with a podcast that summarized our experiences in the different areas. I’ll add a link as that becomes available. I didn’t get into the testing capabilities bundled with TurboGears to the degree I had wanted, so I’ll have to do that later and blog about it.

We also rented bikes for hitting the Lower Loop at 8:00 a.m. tomorrow; I eneded up with a Gary Fisher Piranha from The Alpineer. It’s not quite my Hoo Koo E Koo, but at least it has the same Genesis geometry; that Specialized bike I rode on Monday was a dog, though that was mostly due to it being horribly unmaintained. The geometry on it was really awkward for me as well.

Web Frameworks Jam, Day 3

By the end of today, I feel quite confident that TurboGears holds great potential as a productive web application framework. We went through all of the 20-Minute Wiki and TurboTunes tutorials. It would take a full-blown article to cover the stuff I’ve seen, but for now, I will just highlight some of the features that surprised me.

Despite the youth of the TurboGears project, they seem to have already realized the important of a useful toolset. With a simple command-line tg-admin toolbox from the root of my TurboTunes tutorial workspace, I found an impressive little bundle of tools there at my disposal:

The TurboGears Toolbox

What’s CatWalk? A web application to browse my domain model? No way, you must be kidding! Nope:

The Catwalk Model Browser

Lo and behold, my domain model, with one-to-many and many-to-many relationships, browsable and editable right there. Wow. I had also noticed a Model Designer, and set my expectations to what I thought was an appropriate “lowness”. Not necessary:

The Model Designer

That is the sample model for the domain I had manually created, represented in diagram form. I have yet to see any tools like this for Rails, though they may exist. The “pythonic” nature of the MVC components of a TurboGears application has an aesthetic that totally appeals to me. I also noticed that unit testing code is stubbed out and ready to be run using Nose. Looking forward to learning more about that.

Web Frameworks Jam, Day 2

The second day of the WFJ for me was the second half of my journey up the learning curve on installing TurboGears (TG) on Debian with Python 2.3 and 2.4 installed. The predicament seems to have been that 2.3 is still the default Python version, even in sid, and the python-turbogears package is targeted for 2.4. The package does not pull in at least one of its dependencies, so I was finally relegated to trying a manual installation. Once I figured out that easy_install-2.4 allowed me to install the necessary Python eggs into my /usr/lib/python2.4/site-packages directory, I was all set to go with TurboGears 0.9a6.

Once TG was installed, the rate at which we were able to progress into the tutorial was impressive. I think if we’d been more familiar with how Python libraries are handled, we would have been much farther along. This, of course, is a great motivation for me to give attention to the Debian package so that at least one Linux distro can have a great out-of-the-box TG experience.

Web Frameworks Jam, Day 1

We kicked off the Web Frameworks Jam today, and so far it looks like another great event. We ended up sorting into three groups, one for TurboGears, one for Spring/Hibernate, and one for the Google Web Toolkit (GWT). Bruce, Dianne, and I are the TurboGears group. I was on the fence between Ruby on Rails and TurboGears, but since I would have been the only person looking at Rails, that I would’ve forfeited the benefit of the group.

I didn’t make much progress today; it seems I am a victim of Debian‘s Python 2.3 to 2.4 transition and a rather nascent python-turbogears package in Debian. I am learning about Python package management and parallel installs of multiple Python versions, which is something I have been meaning to learn anyway. Hoping for a more productive day tomorrow; in the meantime I was able to file 5 bugs against the Debian TurboGears package along with some patches. We hiked around Lake Erwin in the middle of the day, which was a welcome pause from my installation and setup frustrations.

Man, it’s good to be back in Crested Butte. I rode the Lower Loop yesterday afternoon with my brother. What a beautiful trail for mountain biking. The Americanos at Camp 4 Coffee were something I’ve been missing as well.

Debian Graphical Installer — excellent work, guys

I recently had to provision a laptop at my client’s site for my use. Certain third-party applications that are key to managing the technology practice there are Windows-only, but I (am fortunately allowed to) refuse to have a Windows-only machine. They are cool enough to let me shrink the corporate WIndows XP image and set up a Debian sid instance for dual-booting. I took my trusty CD of a recent daily snapshot (the fact that I have been able to use daily snapshots of the Debian Installer ISO for several years with little to no trouble is in itself a huge testimony to the quality of that project’s work) and popped it into the media drive of this rather battered Dell Latitude D600. I had heard at DebConf that the graphical installer was now fully part of the daily snapshots, so on a whim I invoked it with the ‘expertgui’ directive at the boot prompt.

Wow.

Language selection in the graphical Debian Installer

If you haven’t seen this, go and burn an ISO of the daily snapshot for your architecture and boot into it. (I won’t even elaborate on the fact that being able to choose from 11 different architectures is massively impressive.) What a beautiful interface, and how amazingly tasteful as far as look-and-feel. It’s very professional-looking, yet not corporate. There’s a button to capture snapshots of the install screens right there on each screen. It may take a minute or two to adjust to having the right line in the display highlighted before clicking the button to continue in more-complex screens, but the annoyance is neglible. I was thoroughly impressed, so much so that I wiped my backup laptop, a ThinkPad T42, and did a reinstall using the graphical interface. You can still pop over to the other virtual terminals just like in the character-based installer; the graphical interface seems to use the fifth virtual terminal. I just popped out of it to the second via Ctrl + Alt + 2 and was able to mount a USB drive with some firmware I needed.

I wiped the T42 so I could run the IBM recovery and get XP back on a small partition. Hey, how else am I going to play Warcraft III? (Seriously, though, if anyone has managed to get Warcraft III to run via an emulator, let’s talk.) I found it a study in contrasts, installing XP and then installing Debian immediately after. The first thing I noticed with XP is how little visibility I have into the install process compared to the Debian installer. I suppose I shouldn’t have to since all these vendors have supposedly ensured (stifling audible laughter here) a smooth installation process for me. However, when something does go wrong, I am pretty much out of luck. Second, I have come to take for granted how quickly you can fully provision an OS instance with Debian’s rich package-management system. The benefits of an awesome package management system are painfully obvious as soon as you have to reinstall Windows or OS X, especially if you are a software developer with a whole litany of tools necessary for your work.

A graphical installer was the last major impediment to me recommending Debian to my friends and relatives who are too befuddled by a character-based application or installer. This closes a significant gap in the Debian offering, and I wish to sincerely thank those who have poured so much time into the installer project as a whole and have gone the extra distance to create an interface that reaches out to the less-technically-oriented crowd.