Thursday, September 27, 2007

My Must Have Tools

We've added some extra staff to help out with our work load. One thing that keeps surprising me is that there are tools that I use every day (hour, minute ...) that other web developers haven't heard of. This doesn't reflect poorly on them. Really it's more about how we create our own development culture and forget that it might not be the norm. But rather is based on a fairly random sequence of events and connections that are unique to your situation. Anyway thinking about all this it seemed a good time to talk about the tools I use everyday and can't live without. I'm not talking about the big things (ie Dreamweaver, Flex Builder etc). But rather the extensions and services that fill the gaps the core applications can't or don't do. So here they are :

Firefox Extension : Firebug

The Firebug extension for Firefox allows you to view the html, javascript and css of any web page you can view in your browser. More than that it allows you to navigate the code view by selecting elements of the page (and visa versa) and to modify the css (temporarily) to discover how things work in that page or to debug problems in your page. For me working in a browser that doesn't have Firebug is like trying to eat porridge without a spoon.

Firefox Extension : Web Developer Toolbar

The Firefox Web Developer Toolbar does some of the things that Firebug does and a bunch of things it doesn't. Somethings can be done without the toolbar. But the toolbar makes it easier. For example, you can disable/enable javascript, clear the cache, resize the browser, disable/enable css (just to name a few) all with a couple of clicks. Between Firebug and the Toolbar there isn't much you can't do that you might want to do.

IE : Developer Toolbar

Sure most web developers have realised what a piece of junk internet explorer is. Unfortunately most of the world still has some catching up to. So we still need to make websites work for Internet Explorer. In fact most of the problems that need to be solved relate to making things work in IE. So the good news is that the IE Developer Toolbar is a really good. It features cover most of what the Firefox Toolbar does and some of what Firebug does. It even does some things better than either of the Firefox extensions.

gotAPI

Not an extension but a web service. A search engine for the API's of most of the programming languages a web developer will ever need. For example, select PHP and it will search and display documentation from php.net. Very fast. Very useful.

Social Bookmarking : BlueDot

There are obviously a few social bookmarking services on the web and they all have their strengths. I started using BlueDot in January this year and have never regretted it. It is a great way to maintain and access your bookmarks. What is essential isn't BlueDot but rather using online bookmarking. You will see tools and solutions that you don't need today or that you'll need again in a few months. You need to be able to find them quickly wherever you are. I think this is more important for web developers that for most other groups. A good bookmarking service consistently maintained is essential.

That's it. I may think of more over the next few days. But these are the things I really couldn't live without. Maybe you already know about these. Maybe you don't. What are your must have tools?

Wednesday, September 19, 2007

Flex Design Pattern : MVC

As mentioned in a previous post I'll be doing a presentation on the Model View Controller Design Pattern as it relates to Adobe Flex tomorrow evening. For those who are interested you can download the presentation from Adobe Share.

Tuesday, September 11, 2007

Drupal multisite setup

High on my list of priorities as we move towards our first real Drupal site was understanding how to setup multiple Drupal sites using the same core files. A lot of users have written on this subject and in the last couple of days I've read most of them. The alarming thing is that no two seem to be the same. The sad news is that I want to add to that growing list of multisite setups instructions.

The reason most of the posts proved unhelpful is that they assume you are creating different sites under different domains. For example, www.examplesite1.com and www.examplesite2.com will point to the same ip. But that wasn't what we were after. All our sites are under one domain. So we will create www.ourdomain.com/examplesite1/ and www.ourdomain.com/examplesite2/. The following instructions assume that you have already created a new alias in your Apache configuration file that points to your Drupal install.

In your Drupal 5 folder you will find a sites folder containing two folders ; "all" and "default". The "all" folder is for shared modules and themes that aren't part of the core but will be used with all your sites. The "default" folder contains a settings.php. If no other sites are found, based on your url, then the default folder is used. To create new sites using the same core you create new folders with their own settings.php file within the sites folder. The first important thing you need to know is that the folder name of your new sites need to reflect the address of the site with "." replacing "/" in the folder name. For example, if your site's url is http://localhost/test1/ then Drupal will look for a folder named localhost.test1. There are a few possible variations on this and they are described in settings.php. But what proved crucial for us was that you need to uncomment and change the $base_url variable to hold your full url without the trailing slash. Ours looked like this :

$base_url = 'http://localhost/test1';

This variable is optional in settings.php and for the senario of multiple domains for a single ip then it's probably doesn't need changing. But if you've done everything else and keep seeing the default site then you probably need to change this setting. We definitely did. Now to create a new site at this url you need to create a new empty database and assign priviledges. Add this information to settings.php as shown in the examples provided (in settings.php). Then navigate to install.php at the new sites url (e.g http://localhost/test1/install.php) and follow the usual install procedure. The result should be a shiny new Drupal website.

Victorian Adobe User Group : September Meeting

The September meeting of the Victorian Adobe User Group will be taking place Thursday week (20th September, 2007) starting at 6 PM. This month Steve Piscopo from Nectarine will be talking about animation principles and how they apply to Flash. In addition to that I'll be talking about the Model View Controller Design Pattern and how it applies to Flex. Below is the full description for my presentation.

The venue has a limited window of easy access so make sure you check out the access details (note : site still branded as MUV) before coming.

Flex was created for developing Rich Internet Applications (RIA's). When you develop an RIA's you quickly come to appreciate the need for a consistent and efficient framework. Therefore it's not surprising that Flex developers turned to Design Patterns. The success of the Cairngorm framework quickly turned Model View Controller (MVC) into the most popular pattern for Flex development.

This presentation will start with an overview of Design Patterns before delving into the MVC pattern. Finally, we'll look at what frameworks are available for Flex MVC development and touch on alternative patterns for Flex development.

Sunday, September 09, 2007

Drupal : Themed Taxonomy

As discussed in my last post we've been looking at CMS's at work. In particular we did some tests with Drupal and TextPattern. We seem to have settled on Drupal. Mostly because of an existing (and stable) LDAP module. For our tests we looked at an existing project that was built as a static site with editors using Contribute. In the next iteration of this site we need to look at adding search functionality as well as making the structure more flexible without loosing the strengths of the current site. Those strengths offer some very real challenges to any CMS. Specifically the site uses over 20 distinct templates because each themed area has it's own look. In researching Drupal I eventually came across the Taxonomy Theme module which may offer the best way to handle this. I've installed it twice now ; once on our development server and once on my laptop. Both times I initially assumed that enabling the Taxonomy module would make it magically appear (it doesn't). Both times I thought that installing and enabling the module would make it appear (it doesn't). In fact like most Drupal modules you need to find the modules settings page (Administer > By Module > Taxonomy Theme > Taxonomy Theme) after enabling it. Enabling the module in the Global settings allows you to then select a different theme for each Taxonomy term (available from the Taxonomy tab in the Taxonomy Theme area). Obviously you'll need to define a taxonomy and create a list of terms first.

The thing that surprises me is that enabling any module in Drupal requires a very similar process and yet despite this we still intend to move forward with Drupal. We move forward in the full knowledge that we as developers have much to learn so that our users will have little to learn.

Thursday, September 06, 2007

TextPattern : Quality not hype

I haven't had much time to post for the last fortnight. But there has been lots I wanted to talk about. One reason I've been time poor is that we've been doing some research into Content Management Tools to cover the needs of some upcoming projects. In the end we installed and tested two systems; Drupal and TextPattern. This short list was partly derived by running available CMS based sites through the W3C validator. TextPattern was the only CMS that validated cleanly and Drupal was fairly close. But in the end some popular choices from our shortlist quickly disappeared as they had so many validation errors.

The inclusion of TextPattern was a big surprise. We currently have a casual working for us who is a real TextPattern fan. I kept saying ; but you wouldn't be able to do x in TextPattern and almost everytime the answer was yes. In fact almost anything you would want to do with Drupal could be done with TextPattern. Though in every example there was one major difference between the two : TextPattern was easier. Everything in Drupal requires three semi-obscure steps to set it up. While everything in TextPattern required one click and a save.

There were things we really needed that weren't available for TextPattern (ie. LDAP validation) so in the end we decided on Drupal. But if you are looking for a CMS and your needs aren't too complicated then I suspect you won't go to far wrong using TextPattern.