Software Database Models I Have Known And Endured
One thing you might have noticed that we do is SQL. We do a lot of SQL, so you’d think we would have figured out the best way of hooking up applications to databases.
To an extent, we have become so familiar with the requirements of database-driven development that we have come to accept the tools that we have as being adequate. Even ODBC.
Obviously we’ve long ago moved past PHP functions like mysql_fetch_row. We expect things like sanitizing and escaping, multiple vendor support, query abstraction, and so on. We look back fondly on the clumsy simplicity (and scope for injection) of things like this:
PHP
mysql_query( "SELECT * FROM T_Shirt WHERE color = '{$favorite_color}'" );Nowadays we’re more likely to fetch records through a framework API, such as this use of Zend Framework’s Zend_Db:
PHP / Zend Framework
$db = Page::getDb();
$select = $db->select();
$select->from( 'T_Shirts' );
$select->where( 'color = ?', $favorite_color );
return $db->fetchAll( $select );
Because the query is broken down into a set of calls we can pass the select object around before we do the fetch. This is surprisingly handy.
But what else is out there that might be better than what we’re doing now? What would be the next step, the thing that would make Zend_Db look like mysql_query?
Software Eclipse FTW!
Eclipse: when it rocks it rocks, but when it goes pear-shaped, it really does go pear-shaped.
Productivity This Explains Everything

Marketing How Having An Awesome Blog Is Really Cool
Many, many people keep blogs. Few, few people read them. Even this blog, which is part of a surprisingly successful business, has a readership that struggles to stay in single figures.
My new blog, on the other hand, is astonishingly successful. If I have fewer than 30 000 uniques in a day then I feel bad; the record so far is around 130K. I’ve been linked from boingboing, neatorama, gawker, all the cool well-edited places. I’ve been #1 on digg and #1 on reddit. Possibly at the same time, I’m not sure because I am constantly distracted by how awesome my blog is.
Success of this magnitude obligates me to convey some part of the genius involved to you, the less-successful bloggers. Here are my secrets.
Open Source .NOT
One of Innova’s stock monologues to deliver to clients is “PHP is an excellent development language.” It’s true: PHP with the Zend Framework is the most flexible and reliable way of creating sites that I’ve ever seen. It’s a win. The reason we have to keep delivering the monologue is because clients - or people who advise clients, such as corporate IT drones - often have an unhealthy respect for Microsoft-based solutions, specifically .NET. At some point in the last ten years Microsoft replaced IBM in the lexicon of corporate uniformity, with obvious consequences for anyone not toeing the line.
For developers, .NET comes with some pretty heavy strings attached. It involves committing to a Microsoft stack, using IIS instead of Apache, Windows Server instead of Linux, a whole bunch of odd Microsoftian applications, wizards, talking paperclips, brown shoes with a black suit, all things that good developers hate. The upside is C#, good library support and excellent performance.
On balance, if we were forced to use .NET we would probably give up and move to New Mexico and raise organic chickens or something; it just wouldn’t be fun.
Enter Mono, stage left.
