elliot's blog

Ruby on Rails

I am loving Ruby on Rails so far. Ruby itself seems like a very neat language, fully object oriented (like Java), but still simple to write scripts (like Python), so the best of the two worlds I like to inhabit. Rails is a nice web framework which includes templating, caching, and code generation from database schemas for CRUD operations. Within about 3 hours, I'd managed to write an application which allowed me to display records from two related database tables, edit them, add new ones, and delete them. Rails needs some understanding of web application development, and some familiarity with Model-View-Controller is useful, but it was relatively painless to pick up. Though some of Ruby's syntax still eludes me.

So, deciding Rails is a good framework, I started thinking about building a web server with proper Rails support, and perhaps writing something useful with it (like a new blog engine or CMS, just what the world needs). By default, Rails works through CGI, but this is no good for production use as it's too slow; instead, I decided to venture into the world of FastCGI, another method for running rails, faster, more efficient and more secure than CGI. In the end, I built mod_ruby support into my XAMPP setup, installed the FastCGI module into XAMPP from source, installed FastCGI (fcgi) bindings for Ruby from source, and tinkered with my Rails code to make it use FastCGI. This article was a life-saver for getting this up and working. Now I have XAMPP with mod_ruby and mod_fastcgi, running my first Rails application. Once I've reached some level of proficiency with the framework, I plan to write up my journey, including all of this stuff. The notes are stacking up...

Kate Wilhelm

Just finished a thought-provoking book of short stories (Somerset Dreams) by Kate Wilhelm, who is not really science fiction through and through, more "speculative fiction" (as it says on the cover). Her work is very emotionally charged, and one interesting feature of it is how she manifests conflicts between or within characters (often caused by stultifying marriages) as supernatural entities: for example, in "The Hounds", two dogs represent the anxieties of the main female character, literally "hounding" her until she confronts her husband with her frustrations, at which point the threat disappears. In "State of Grace", a woman sees tiny creatures in a tree in her garden which no one is able to dislodge or capture. She uses their elusiveness to distract her husband, who is pressuring her into being a drudge, and by the end of the story the creatures are dictating her and her husband's sex lives. Very skilfully written, and good characterisation. Well worth a look.

My sister's blog and the mysterious tabular disappearance

My sister now has a blog (you'll need to join up to read it). Funny sort of blog engine which needs you to login before reading, but anyway.

Apologies if you tried to access my Drupal site over the weekend: one of the tables (storing caching information) strangely disappeared, which stopped the whole site from working. Nothing showed up in the logs, no error messages from PHP, so I only worked it out by chance (error message from mysqldump when it tried to backup a non-existent table). Just rebuilt the table and it seems OK now. Hopefully it's not a Drupal security hole someone exploited...

Music baton

Jono has passed on the music baton to me, so here goes.

Total volume of music on this computer: 8.7Gb

Last CD I bought: "Lover's Acid" - Luke Vibert

Song playing right now: "Map Ref. 41N 93W" - Wire

Five songs I listen to a lot, that mean a lot to me:

  1. "On Your Own Again" - Scott Walker
  2. "Dead Beat Descendant" - The Fall
  3. "Surf's Up" - the Beach Boys
  4. "You Hung Your Lights in the Trees" - Wire
  5. "We Have All the Time in the World" - My Bloody Valentine

Very few of my friends have blogs, so the baton may halt with me here... If you're reading this, feel free to pick it up, and send me a trackback.


I've been fiddling with two PEAR packages for PHP, PHPDocumentor and PHPUnit2. This is part of an attempt to make my PHP development more structured. These should provide, respectively, a unit testing framework and a system for documenting my code.

One annoying thing about PHP libraries is that they seem to have multiple incarnations (e.g. a PEAR homepage and another homepage), which reference different versions; and there are multiple libraries with very similar names which do similar things; plus the documentation is appalling in nearly all cases. It took me a while to hunt through the rubble to find what I wanted, but I got there eventually.

So, still using the trusty XAMPP (which bundles PEAR), I installed these two with a simple:

    /opt/lampp/bin/pear install --alldeps phpunit2
    /opt/lampp/bin/pear install --alldeps phpdocumentor

--alldeps ensures all dependencies of the packages are installed as well. I've toyed with PHPUnit and got that working satisfactorily (I think a howto may be in order before too long), but haven't got round to PHPDocumentor yet.

PEAR (and the related PECL) are noble attempts to pull together the morass of PHP libraries, but they are still very hard to dig around in. What's needed for PHP is a kind of "PHP Ubuntu", which sorts the wheat from the chaff and presents the "best of breed" libraries for particular tasks. Typically this will be the PEAR/PECL libraries, but occasionally there will be gaps or deficiencies in PEAR where you want to know what the good solutions are (e.g. Phrame for Model-View-Controller, Smarty for templating). I'm hoping that companies like SourceLabs might move into this area and produce an add-on for their AMP stack.

Looking for attractive personnel for your corporate event?

I had to blog this unusual company, who provide attractive, caring professional staff for events. Nicholas is my favourite, and would surely add a touch of class to any function. As the site states, he looks the part and oozes presence.

San Francisco visit

Sunny California. The Beach Boys playing on the plane over promising summer. Sun-bleached, geometrical, mock-Victorian buildings. A pock-nosed cab driver taking me from the airport to the Savoy Hotel, past municipal planting made up of luxuriant, exotic plants I'd kill to grow in my cold, damp garden. Packs of homeless people wandering around the Tenderloin near my hotel: some in wheelchairs, some staggering drunk across the road, some pushing shopping trollies seeming to contain only plastic bags. Hills so steep they made my shins ache.

No tea in the hotel room, but a personal percolator. Fan in the ceiling. Quotation from a Belinda Carlisle song on the covine and a child's surfer suit framed on the wall. On the TV, alternating adverts: junk food, health product, junk food, health product... Embedded food: you can't just buy a cheese roll, you have to get a roll with a pancake inside it, with cheese in the pancake. Wierd toothpaste flavours like cinammon, citrus, vanilla.

On Sunday, went to Fisherman's Wharf, where you embark for Alcatraz. It is a shit hole, a bit like Margate in Kent, but with more begging. Exhibition of antique amusement machines on the pier: metal horse, bizarre monkeys, terrifying father and mutant children. Alcatraz poised on the edge of utter deriliction, populated by sea birds and Agaves, crouching among the fallen stones and inscrutable machines. A gruelling, matter-of-fact narrative about the games prisoners played in "The Hole" (solitary confinement with no light): throwing a button into the dark, then trying to find it, over and over; or pressing eyes shut so tight it created hallucinations of light. On the way back, hunted down a couple of locations they used in the film "Vertigo" and took some photos.

Next day, through Pacific Heights, Alta Plaza Park (where they filmed parts of "What's Up Doc?"), Union Street, down to the Marina, then onto the Golden Gate. Walked along the bridge a bit, but felt strangely unaffected. More interesting was the withered beauty of the nature reserve, including wild Echeveria and Echium in massive drifts. Caught the bus to the Golden Gate Park, then through to Haight-Ashbury. Full of mock hippies and poseurs. Extremely seedy; I walked through quickly. Less like the centre of the hippy movement and more like Camden. Returned to my hotel via the gauntlet of Market Street, dodging people lunging from doorways, thrusting plastic cups at me.

Tuesday and Wednesday were taken up with the Open Source Business Conference. Tuesday night, Sun provided a very nice buffet of food from around the city, and I sat and ate mine with a nice fellow called Randall Stewart Baird, a resident of California. I informed Randall that London isn't really that foggy, and he told me that San Francisco is foggy in summer. I thus demonstrated to him that British people really are obsessed with talking about the weather, so that cliché is true at least.

On the last day, I didn't walk too far, and went to a fantastic cult/pulp bookshop called Kayo. Tried to go to the Museum of Modern Art as well, but it didn't open until 11:45 and I had a plane to catch at 14:00.

So overall: A beautiful city, with some great things to see. Alcatraz is a good day out. I can't comment on the food, as I was very conservative in what I ate (mainly pizza). It could perhaps be said that I squandered my opportunity to sample the rich tapestry of Californian cuisine. The conference was interesting, though I was a bit disappointed with some of the talks; but there were a few gems.


This content management system is one of those which uncomfortably straddles the open source/proprietary boundary. The code is open source, but by default only comes equipped to use SQL Server as a back-end server. If you want to use it with MySQL as the back-end, you have to pay for a separate data provider. I found the project website difficult to navigate, and it was almost impossible to find installation instructions (couldn't find any on the website, and there seem to be none bundled with the download). Add to this lots of broken links, and the fact that several of the links in the Documentation page are books for sale rather than free documentation, and you've got a system which is tricky to get a handle on and install. Coupled with the fact that I'd be virtually forced to use IIS to run it (unless I can work out Mono), I'm immediately put off. A client is interested in this system, but I'm not sure I would be happy recommending it to anyone else.

MySQL migration suite

This nifty piece of software could be useful. Currently supports Access and Oracle. Perhaps this is an indication of where MySQL thinks the competition is: at the two extremes of the market, the big corporate back end and the desktop. I've just watched the demo of an Access migration, and it looks really smooth. I used to use MySQL-Front to migrate Access to MySQL, when MySQL-Front was freeware and before it turned commercial. Between these two states, development halted altogether, and the product went out of step with MySQL versions. I learned an important lesson about proprietary software when this happened, leaving me stuck with a version which wouldn't work with my version of MySQL: I vowed never to use proprietary software again for anything important.

Google Maps UK

Hurrah! Google Maps UK has been launched, as looks just as good as its US counterpart. It even does directions, like the RAC. While I was playing with it, I also came across a Birmingham business directory I hadn't seen before, which might be useful.

Syndicate content