Friday, June 26, 2009

Joe Nuxoll of the Java Posse recently tweeted that he was a huge Commodore 64 fan, "back in the day." Well, I happened to be wearing a C64-themed t-shirt that I made a year back, so I tweeted a picture of it and offered to send him one.

But then, to optimize shipping costs, I figured I might as well package up a set of 4 shirts of my own design and outfit the whole Posse in (hopefully) unique geeky wit, in t-shirt form. And for that matter, why not publish my work so everyone can enjoy my sense of humor (or implore me not to quit my day job).

So here's the collection so far. I have lots more ideas, but this is a catalog of shirts I've actually made and worn (in public, no less!).

This was my contribution to a larger t-shirt design at work. I think it stands on its own. The code snippets are real things we found in the code base at work. :)

Yes, I was a huge Commodore 64 fan back in the day too.

It's true!

This one that gets people commenting pretty frequently. Reactions run the gamut from "don't get it even after explanation, which is fine 'cause it's not funny once you try to explain it," through to overly deep analysis ("aren't the letters themselves just symbols that replace words?")

This one probably gets more comments than any other. I've become somewhat of an expert at explaining what rot13 is to non-geeks. I'm happy to say several people have decoded it from across the room without my help.

Plus, it's the only t-shirt design I'm aware of that comes with a secret decoder key under the front panel!

Shirts for other people

Ok, so I haven't worn all the shirts I made. Here are some I've given away as gifts:

This one was a birthday present for my friend Chris, who seizes every opportunity to remind us in no uncertain terms that he doesn't like to eat mushrooms.

This is the only one that wasn't my idea. Someone at BSDCan told me he always wanted a shirt like this, so I made it for him. What does it mean? Ask Locutus of Borg.

My sister's boyfriend Tom enjoys boasting about the time they visited some friends and their new baby was quite content to be held by him, but kept crying every time my sister took a turn. I'm not sure if this shirt was intended as a jibe or just more fuel for the fire, but he wears it proudly.

This one was for my father-in-law, Billy. Yes, he's a bit of an IKEA fan and so are we.

Monday, June 8, 2009

The week before JavaOne, I traveled to Ottawa to attend PGCon, the PostgreSQL Conference. I had the opportunity to spend the weekend following the conference with my wife, Linda, and our 6-month-old son, Elliot. We enjoyed ourselves! Ottawa is a great place to be a tourist for the weekend.

As usual with PGCon, I learned a lot at the talks, and I met interesting like-minded people in the hallway and after hours at the social events.

The last session of the conference was a general session which consisted of a series of lightning talks. Some of the talks were funny, others were informative, and some skillfully combined those two qualities. Very late in the game (Friday morning), I decided I should give a lightning talk about Power*Architect, an open source project I have the privilege to maintain as part of my day job. I had spotted a Power*Architect screenshot on Thursday in Steve Singer's OpenStreetMap session. I got to thinking there were probably several people at the conference who could use an ER diagramming tool with forward and reverse engineering, so I got up early on Friday and put together a small set of slides for a sub-5-minute talk introducing the Architect.

I sent off the slides to Selena Deckelmann, who was in charge of that session, and got back an answer right away: the lightning talk schedule was already full! Selena invited me to blog about it instead, so here I am.

Without further ado, an introduction to Power*Architect in 5 minutes or less:

E-R DiagrammingWhat is Power*Architect? In a nutshell, it's a visual data modeling tool that lets you work with E-R diagrams that look like this:

Reverse EngineeringWe have intentionally made Power*Architect easy to learn and easy to use. For example, reverse engineering an existing database complete with foreign keys, data types, default values, sequences and autoincrement columns, indexes, and remarks is a simple drag-and-drop (or copy-and-paste) operation. There are no knobs to turn. It just works like you expect!

Forward Engineering (DDL Generation)Similarly, forward engineering your data model into a database is a simple affair. Simply tell the Architect you want a create script, and tell it which dialect of SQL to use. If you connect to the database where you want to create all those objects I mentioned above, the Architect will execute the script for you (you can also save it to a file if you prefer).

The reverse- and forward-engineering features together make the Architect a really simple tool for migrating an existing database from one platform to another--hopefully from other platforms to PostgreSQL, but that's ultimately your choice to make. :)

Compare Data ModelsThe Architect can also compare databases to each other (structure only—not data) and create alter scripts for you. You can compare database to database, database to project, or project to project. You can even compare two databases of different platforms. This is really handy if you happen to write a database-independent application.

Multiplatform - OSPower*Architect works on all platforms where a full Java 5 runtime environment is available. We develop and test it on Mac OS X, Linux, and Windows. We also know it works great on Free/Net/OpenBSD and Solaris.

Multiplatform - DBThe Architect also works great across database platforms. As I already mentioned, you can even directly compare, for example, a MySQL database to a PostgreSQL schema. The Architect handles implementation details such as sequences vs. autoincrement columns automatically. The current list of fully supported databases is: DB2, HSQLDB, MySQL, Oracle, PostgreSQL, and SQL Server. Reverse engineering is possible on a larger number of platforms, but forward engineering to those platforms is unlikely to work.Free, in the wider sensePower*Architect is distributed under the GPLv3. We develop it completely in the open. There is no hidden backend source code repository or anything.

Some NumbersFrom July 2007 to May 2009, we've had:3 community contributors8 releases*1773 forum posts160427 downloads

*the eighth release, 0.9.13, came out on the day I had planned to give this talk.