ZoomifyImage Version 1.5 Released Today.

October 22, 2009 | 3 comments

Today, I uploaded a minor update to ZoomifyImage on SourceForge. Here is the changelog for this release: 10/21/2009 Added version 4 Zoomifyer viewer and new licence. Added contribution by Fran Firman.

Headless Drupal Revisited: Programmatic Manipulation of CCK Defined Nodes

March 13, 2009 | 6 comments

In my previous Headless Drupal post, I proposed ways to work with Drupal content programmatically, particularly for bulk tasks like updating many nodes.

But, in that post, I conveniently only covered plain vanilla Drupal nodes; what if the nodes you need to work with have CCK (Content Construction Kit module) defined fields? These are specified through Drupal’s administrative GUI, and so, its not obvious how to programmatically reference them.

This post will show you the way that I commonly deal with this situation, and I’m embarassed to say, it relies more on knowing a few Drupal tricks than any deep knowledge of the inner workings of Drupal. But these methods easily and reliably show you how to programmatically reference, access and change CCK defined fields just like any other node attribute.

Migrating Nodes and Taxonomies, as well as CCK and Views Definitions, Between Drupal Instances

March 6, 2009 | 4 comments

In my previous Headless Drupal post, I proposed ways to work with Drupal content programmatically, particularly for bulk tasks like updating many nodes.

A question was raised in a comment on that post as to how to use that information to migrate content between instances of Drupal, and in particular how to handle file attachments on nodes, especially if they are large.

I have to admit that I haven’t had to solve this exact problem often, and when I did in the past, it was with basic page nodes. My initial reaction is that the techniques explored in my Headless Drupal post may not be the best fit for this task. I view this task as a basic import/export problem, and from my past experience, I know of contributed modules that specifically address this need, so I decided to reacquaint myself with them in an effort to provide a set of options for solving similar problems.

Agile Project Communication Using The One-Page Project Manager.

February 11, 2009 | 4 comments

The One-Page Project Manager by Clark A. Campbell presents and explores the One-Page Project Manager tool, a specialized Excel template, that turns out to be a very clever and practical way to communicate the status of a given project at certain points in time. As a follower of agile project methodologies, what I immediately noticed is that this tool is a perfect compliment to these methodologies, emphasizing effective communication over undigestible documentation.

Demand Respect

February 3, 2009 | 1 comment

I recently read Never Work For Free by Paul Boag and I have to say that after being an independent contractor for over five years now, I have to agree with his central premise: (almost) never work for free. I’ve fallen for the false logic of doing free work a few times in the past, and I’ve always regretted it. It can never be the basis of a good relationship with a client, because you are telling the client from the start that your services are worth nothing. They never will respect you, or value your work. As a result, they actually become the most demanding “clients” you will have, and they will never be happy with the service you provide no matter how much you do, no matter the quality of your work.

Headless Drupal: Using Drupal’s API to Batch Script Your Drupal Site.

January 20, 2009 | 50 comments

Whenever I work with a significant framework or off-the-shelf software, I invariably encounter situations in which I need to do “one-off” programmatic batch tasks outside the normal flow of the application.

Today, I will explore how to do some programmatic manipulation of Drupal (specifically Drupal 6, although this approach is very similar in Drupal 5) showing specific examples to get you started creating your own scripts.

Still More Reflections on Blueprint.

January 13, 2009 | 1 comment

I recently built a new site using the Blueprint CSS framework and was once again astounded by how little time I spent on fussing with the design of the site and how much I actually enjoyed the process–something that just didn’t happen before I started using Blueprint.

Search Form Zen, Using jQuery, with WordPress and Drupal Examples

January 6, 2009 | 3 comments

In one of my earliest blog posts, I described an approach to customizing a search form that I employ on many of my sites. Instead of having a search form that consists of three elements: a label, text input field, and submit button, I like to reduce everything to just the text field with the label inside it, as you can see on the right hand column of this very blog. This frees up room, and requires less mouse work on the part of the user.

I originally saw this basic functionality on the Mambo CMS site, and because I don’t like to needlessly duplicate work (otherwise known as laziness), I decided to completely and shamelessly rip off their source.

More recently, however, I have been using jQuery and have been moving toward implementing Javascript unobtrusively, and so, I decided to explore re-implementing this approach accordingly.

Recent Adventures in (Commodity) Drupal Hosting

December 30, 2008 | 2 comments

I recently built a Drupal site for a small (individual) client who wanted to host the site on a Network Solutions basic Web hosting plan. This made sense for him, because he had registered several domains with them. He wanted to keep things simple, which is always my goal too. We weren’t anticipating tremendous traffic, etc., and ongoing costs were a consideration, so this conservative approach made sense.

I had never used Network Solutions before, but thought I had heard generally good things about it. I double-checked what came with the basic hosting plan, and everything looked fine.

Then the day came when I actually tried to implement it…

Review of RESTful PHP Web Services Book by Samisa Abeysinghe

December 16, 2008 | 1 comment

After the first short chapter, the author quickly gets our hands dirty with genuinely useful code based on real-world applications. And this is the book’s strength: its the most comprehensively thorough technical book I’ve read in a long time. If you’ve ever been frustrated because an author doesn’t emphasize a small step in their instructions that turns out to be crucial to make the code work, you’ll appreciate the author’s thoroughness. Every detail of the code implementation is examined, and the author’s reasoning behind his decisions are all plainly laid out for the reader. Because of this, the author is able to provide more than just ‘demo’ code, while still making the progression through the book pretty gentle, so I think this book will appeal to a wide range of experience levels.