Further Impressions of the Blueprint CSS Framework

August 8, 2008 | 0 comments

Much to my surprise, one of my most popular blog posts has been First Impressions of the Blueprint CSS Framework. People continue to read it, cite it, and comment on it, even though it is horribly out of date.

The post was written a year ago using the 0.40 version of Blueprint, which is currently at 0.7.1 as this is being written. And I wrote this post as sort of a test, and didn’t intend it to be a Blueprint tutorial in anyway. I am not a CSS guru, which I thought might make my experiences with Blueprint more interesting, as someone who might particularly benefit from this framework.

Given that this post continues to be cited, however, I feel that I’m doing a disservice to the Blueprint project. So, I want to try to set the record straight in this post.

The 416

July 18, 2008 | 0 comments

Last night during one of my final email checks of the day, I got an email message from a recruiter. What made this particular email interesting was that the recruiter didn’t bother to hide any of the addresses he had sent this email to, and I was able to see just how many people get targeted in these types of emails. In this case, it was 416 (or so I’m told–someone counted). I went to sleep shortly thereafter, and slept in, taking Friday off. When I woke up and finally got around to my first email check of the day, I was puzzled to see a thread in Gmail that was 61 messages long. Some poor schlub had hit reply-to-all on that recruiter’s email, and drama followed. People replied-to-all complaining at first, but then the emails quickly turned to seeing the humor in the situation. Then people started to introduce each other…

Misguided Attempts to Develop Overspecialized Skills.

July 3, 2008 | 1 comment

Over the years, I’ve encountered a number of people trying to specialize too narrowly in their jobs, to the detriment of all involved. Here are a few examples of the behavior I see most often…

Drupal 6 Site Structure Script.

June 23, 2008 | 14 comments

I continue to find useful the script I posted some time ago that creates a basic site structure in Drupal. Its not uncommon that a customer will want a leg up on migrating their content into Drupal, or will have a basic structure in mind even before they fill it with content.

I recently started working in Drupal 6, now that many of the modules I typically use are at least in beta for Drupal 6. So, I found that I needed to update the script as follows:

Drupal Developer’s Orientation

June 8, 2008 | 2 comments

I am starting development of a significant new Web site implemented in Drupal, and have as my team five talented, but relatively inexperienced, developers with little existing knowledge of Drupal. This is my attempt to provide a quick orientation to Drupal from a developer’s perspective, based on my experience.

Common open source tools make generating visual software documentation easier.

May 21, 2008 | 0 comments

Recently, I needed to create end-user documentation for a desktop application. Although screencasting is a possible alternative, I didn’t feel it was appropriate in this type of situation, where the end user really needs something printer-friendly to have in hand while using the application.

Although I did want the document to be highly visual, I wasn’t looking forward to the tedious process of capturing screens manually, one by one, then inserting them into a document, manually, one by one. I needed something that would streamline both of these processes so I could concentrate on making good documentation.

ZoomifyImage Version 1.4 Released Today.

May 14, 2008 | 0 comments

It seems I make a new release of ZoomifyImage once a year like clockwork. This time around, I fixed a minor bug and made a few enhancements including writing temporary files to the system temporary directory and accounting for changes in ZODB’s transaction handling.

Fixing Shipcalc Module Bug is an Example of Overriding Drupal Forms.

April 23, 2008 | 0 comments

A customer on a newly launched Drupal e-commerce site I produced reported the following error:

Please enter a valid ZIP Code for the sender. (error -2147219498) usps configuration error. Please notify the site administrator.

Which occurred during the checkout process and only happened when a zip code contained a “+ 4” code at the end.

Of course, I often find Google to be the best debugging tool of all, and I quickly found this post containing a workaround by Kenneth Bartlett that not only made it so I didn’t have to untangle the shipcalc module’s code, which would likely mean debugging Web Services calls to USPS, but is actually a pretty good solution in its own right I think.

The only thing I didn’t like about it was that it directly patched an e-commerce module file at modules/ecommerce/address/address.module. Whenever I use a piece of customizable software like Drupal (or Wordpress, osCommerce, etc.) I avoid directly patching both the core code and any third party modules, because this creates a maintenance burden for me when I want to upgrade the core software or an affected module, which could potentially wipe out these kinds of patches. I have my hands maintaining my own code, I don’t want to worry about modules I didn’t write.

Being Steve Jobs.

April 17, 2008 | 2 comments

I am reading The Second Coming of Steve Jobs by Alan Deutschman, and although the book was published way back in 2000, it was written at a time when Apple had already made a strong comeback, so I thought that it would still be a relevant case study of Job’s and Apple’s success.

A Potential Confusion When Converting HABTM Relationships to has_many :through.

April 10, 2008 | 5 comments

As someone relatively new to Ruby on Rails, I managed to confuse myself on one of my Rails projects recently when I decided to follow some very logical advice in Obie Fernandez’s The Rails Way that said that has_and_belongs_to_many (habtm) relationships were essentially deprecated in Rails, and that has_many :through was the preferred way to handle many-to-many relationships.

With has_many :through, the join table becomes a full-fledged rails model, meaning that you have more flexibility to extend the functionality of that model as your application evolves in the future–a very sensible best practice. So, I decided to convert an existing relationship that I had specified as habtm to has_many :through. I began to see errors that initially confused me, along the lines of NameError: Uninitialized Constant …. I had misnamed my join model and table because I was still thinking from the habtm perspective instead of treating the new model as I would any other model in a has_many…belongs_to relationship.