Andrew Graham

The time is nearly upon us.

Our first child is due to arrive in less than a week.  It’s a very scary but exciting prospect, knowing that our routines and our lives will alter significantly, but not quite knowing the exact moment when.

I hope that I won’t have “embarrasing dad” syndrome.  I just have a mental image of myself in ten years’ time complaining of my child’s taste in music, forcing them to sit down while I put on the CD of Jeff Wayne’s Musical Version of War of the Worlds.

17 June 2009 09:21

When software becomes mainstream.

I’ve taken the plunge and decided to install WordPress for a personal project. I was hoping to use some of the blog-esque plugins found in ModX, but it quickly became apparent that the limited functionality and clunky implementation couldn’t hold a candle to WordPress.

When exploring blog options, WordPress was the one that came instantly to mind. It’s always interesting to see how one piece of software or website achieves critical mass, breaks through from its competitors and becomes mainstream. It happened recently with the jQuery JavaScript framework; suddenly ColdFusion developers started waxing lyrical about jQuery in their blogs.

I suspect the real driver towards mainstream usage is what might be termed “deceptive simplicity” - giving users the bare minimum of features to start with, hiding the complicated stuff under the hood. jQuery will let you do cool stuff with some pretty easy syntax. WordPress will get you up and running in five minutes, but start exploring and you’ll find a wealth of features. And look at iTunes - a clear interface that somehow does all you need it to. User experience, then, may be thought of as a lower priority than functionality, but it may prove to be the difference between a runaway success and another also-ran piece of software.

16 May 2009 12:08

Hope you like our new direction.

andrewgraham.co.uk has a shiny new look. The front page is collated from several social networking sites, thus giving the impression of being updated frequently without having to lift a finger on my part.

There’ll be some general tidying up over the next few weeks - be patient while everything is rehoused.

6 March 2009 14:25

In common with much of the blogosphere, I've started to dislike Internet Explorer 6 enormously.

Well, ‘hate’ is such a strong word.  In work I’ve been developing a web-based system of collating Fire Risk Assessments for NHS Wales, and I’ve suddenly found myself more than ever coming across the limitations of IE6.  We can’t ditch support for it - some of our corporate applications still rely on IE6 - so don’t even think about exhorting us to update our browsers.  We simply can’t.

Anyway I wondered why IE6 was causing me grief this time around.  And then it hit me.  Firebug.  The Firefox extension makes developing such a breeze, especially for Ajax applications, that I barely take a look at IE during the development process.  And then instantly regret it when my carefully crafted web page becomes a garbled mess.

So, Firebug, I reckon you can take much of the credit for the clamour to ditch IE6.

11 February 2009 12:51

"‘Me and my grandad are both really happy because it could have damaged our reputation..."

“‘Me and my grandad are both really happy because it could have damaged our reputation permanently,’ said the 23-year-old Satanic Sluts dancer.”

- Metro article on the Brand/Ross controversy, 30 October 2008

30 October 2008 08:59

Object Oriented Programming is starting to make sense.

Don’t get me wrong, I’ve been familiar with the principles of OOP for a while, through initial forays into the world of Java as well as working briefly on ASP.NET projects. I’ve read so many times those simplistic examples of inheritance, where a Dog is a subclass of an Animal and a Car is a subclass of a Vehicle, and it all seems logical enough. 

All these nicely defined object oriented principles seemed to be irrelevant, however, when I decided to apply them to a pet project of mine at work: the rewrite of the collection of NHS Wales’s generic sites.

I thought that using OOP in a language I’m familiar with, ColdFusion, would help to consolidate my knowledge, but thanks to my ad hoc way of working, and hampered by my procedural programming habits, the code soon turned into a weird mess of interrelated connections. Objects were passed back and forth willy-nilly and copies of the same variable were being stored in a number of scopes and objects.

It just didn’t “feel” right.  It may be strange for the non-programmer to talk of “elegant”, or “ugly” code, but ugly is what grew in front of me as I tapped away at the keyboard.  What’s more, I was beginning to think that a simple website, delivering one database-driven page at a time, wasn’t really a prime candidate for the object oriented approach.  Hello Mr Sledgehammer, meet Mr Nut.

I’d originally built a Page object, which generates and stores the constituent elements of a page (the navigation, search box, sidebars and the like) for later rendering.  The Page object also invoked a component in a cfc somewhere to build the main content of a page.  The component depended on the page type - a news item would get content from news.cfc, a sitemap from sitemap.cfc, and so on.  However, to access the methods and properties of the Page object, I needed to pass the entire Page object as an argument to the component - pretty nasty!

Then, an epiphany. A news item is a particular type of page. So is a sitemap. It’s inheritance!  I knew all about it, I’ve read about it so many times, why didn’t it occur to me before that I should use it?  A NewsPage is a subclass of a Page in exactly the same way as a Dog is a subclass of an Animal. A short time rewriting made everything more elegant.

For me, then, it was all very well learning about OOP but it’s hard to shake the habits of procedural programming.  I knew about it, but didn’t quite “get” how to apply it.  That knowledge begins to coalesce with practical experience, like trying the pieces of a jigsaw in various configurations before they start to fit.

I can now even see how interfaces, another initial stumbling block for me, can be useful in ensuring that new page types conform to a certain set of standards.  It’s a strange feeling - finally it all makes some kind of sense.

16 October 2008 22:20

Source: tumblr

This page is not updated conventionally, rather it pulls in data from various Web 2.0 sites from across the internet.

Likes these articles...

Tips for Secure File Uploads with ColdFusion

coldfusionBloggers.org Feed

24 June 2009 16:00

50 Fresh JavaScript Tools That Will Improve Your Workflow

Smashing Magazine

22 June 2009 03:22

Which ColdFusion JVM Version

coldfusionBloggers.org Feed

12 June 2009 15:30

How to Tune the JVM Part 1

coldfusionBloggers.org Feed

12 June 2009 15:30

Scotch on the Road and CFObjective Presentations

coldfusionBloggers.org Feed

10 June 2009 11:30

A short, intensive course in type design

i love typography, the typography and fonts blog

29 May 2009 17:23

This OOP Debate Isn't About OOP At All

coldfusionBloggers.org Feed

27 May 2009 10:00

Typographic Layout Design Contest: Join In and Win!

Smashing Magazine

21 May 2009 17:53

How Google's cute "doodles" became Satan's pawns

Ars Technica

22 May 2009 02:44

Converting XHTML To Text-Only Version Using ColdFusion And XSLT

coldfusionBloggers.org Feed

20 May 2009 19:14

Source: Google Reader

Is surfing...

Amiga Forever

I loved my Amiga, and kept it long after the world had moved on to PCs. This collection recreates the nostalgia.

3 July 2009 13:44

Comedy | Mumbai calling - ITV Entertainment

The highest profile spotting of my Exuberance Primary font so far - on the telly!

24 June 2009 09:45

A List Apart: Articles: Faux Absolute Positioning

Positioning elements in web pages is always tricky to get right. This article from June 2008 explains another technique to use.

27 May 2009 12:05

XSLT Tips you don't learn at w3schools

I constantly find myself returning to the w3schools XSLT tutorial. This page has some great tips to take your XSLT writing to the next level.

19 May 2009 19:56

CFLib.org

Handy prebuilt ColdFusion functions for use in your own applications.

19 May 2009 13:04

Cynical-C Blog - You Can't Please Everyone

Today's Guardian describes thus: "One-star Amazon reviews for otherwise universally applauded classic movies, literature and music."

16 May 2009 12:33

Source: delicious

Is listening to...

The Decemberists

Played 6 times

Neon Neon

Played once

Silversun Pickups

Played once

Sufjan Stevens

Played once

BBC Radio 4

Played once

Source: last.fm