PostgreSQL looking good

I’ve been reading about PostgreSQL. I like what I see, a lot.

I’m a database weenie, which is unusual among application developers from what I’ve seen. I’ve found that almost universally, application developers don’t understand transactions, don’t understand basic data modeling rules, and generally regard RDBMSs as a pain in the butt, to be marginalized as much as possible.
Continue reading “PostgreSQL looking good”

OmniGraffle Pro and Subversion

I’m working on wireframes for a startup company, and I’m using the excellent OmniGraffle Pro to do it. Of course I’m keeping all my artifacts in Subversion. But there’s a problem: OmniGraffle sometimes changes a file’s format from a single flat file to a “bundle”, which is a directory that Mac OS X pretends is a single entity (as is seen with all the .app bundles in the /Applications directory). OmniGraffle bundles contain a file with a hideously awful filename, which I’ve seen in the old Classic MacOS if I remember correctly: Icon^M. Like, 5 characters, 5th is a carriage return. Subversion can’t check it in, svn:ignore can’t ignore it. Ugh. Here’s the fix: Using OmniGraffle with Subversion without Sadness

Choosing Your Battles in Software Architecture

When you’re starting a software project, you have to make some technology choices. You have to pick a technology stack, but you also have to pick the tools that your team will use to manage code, track issues, write specs, and collaborate over long distances, among other things.

Some of these things are more important than others, but they all matter. If the majority of the team is using PowerBooks but the UI specs are all done in Visio, that’s going to be annoying. If you’re working on something involving trade secrets (or national security), using AIM is probably a bad choice. But whether you do page wireframe drawings in PowerPoint or OmniGraffle on those PowerBooks, or whether you use IRC or Jabber over a secure connection for collaboration, is less important.
Continue reading “Choosing Your Battles in Software Architecture”