Tor 12 November 2009
As you may have noticed, there's been a major update to this site. The main reason is that I've moved all my subsites sharing the same Drupal installation, reducing the work I have to to every time there's an update. I was also quite mispleased with the old design, and the new one should be a bit easier to read and hold up for whatever web browser you decide to use. Even though it might be totally uninteresting for many of you, I wanted to write a bit about the tools I am using.
Drupal is the CMS I'm using. It's an incredible piece of open source software which has an growing and vibrant community. It is also incredibly extensible. There is about 5000 (!) modules and if that's not enough it's really easy to build your own. For this site I've built two of my own custom modules.
The first module is the a custom frontpage. I build this as module with a specific url, which is then set as frontpage in Admin -> Settings -> Site information. This way I could easily pull whatever information i wanted from the system, like displaying blog entries and project separately and displaying them differently. Another goal was to make better use of the front page space than simply list nodes in a long column.
I also wrote another module to convert images from the the old system, which I converted from Drupal 5, to the new CCK driven imagefield system. If you want to know more there is some background on how to handle CCK fields programmaticly in this article, and this.
Blueprint is a CSS framework. This means I can spend less time cursing over Internet Explorer 5 or why Safari doesn't float my divs correctly, and more time developing features or concentrating on the actual design. A lot of people doesn't like the way Blueprint works. Mostly because they think mixing in design features like class=span-12 in the semantics interferes with design principle of separating content and presentation. They have a point, but with a language like CSS, if you want to call it that, that lacks aliasing or variable handling making anything more than the trivial cases a coding nightmare. There has been some work in making Blueprint an "offline" tool which is then interpreted or compiled by a Ruby preprocessor into a final form. That would be cool, but right now I'm busy enjoying my fully working cross-browser columns.
Drush stands for drupal shell and is a unix command line tool for drupal. It has made my life so much easier in the last few days. In fact, I can only, like Drupal-king Mårten from Denmark, declare my undying love for this tool. Downloading drupal and module is as easy as
drush dl drupaldrush dl cck
and your done. Keeping your site updated is likewise as easy
drush update cck
and your done. Don't even have to update the database, Drush does this for you! Read Mårtens post for even more cool details, and how to setup your bash environment to handle Drush effortlessly.