Building notes, projects, and ocasional rants


last update:

Recipe for true geeks.

Grab one of these. Add several of these for flavor. Choose your toping from these choices (some can even be combined). Stir (gently). No need to add water. You are probably drooling just about now, thinking about this.


The ZFS filesystem seems to be too good to be true. A good presentation about ZFS major features is available. Having instantaneous snapshots is something that I grew accustomed to with NetApp OnTap filesystem. I love the idea of having them in my servers. And if you believe the rumors flying around about Leopard, soon in a laptop near you. Regarding the Mac, using ZFS as the basic filesytem for Mac OS X would be a superb move, and would give them for free all the technology to implement Time Machine.

Programming Jabber

Some people I know are starting programming with Jabber/XMPP. The classical book on the subject, "Programming Jabber (Programming)" (D.J. Adams), is a out-of-date, but is still good to browse for basic protocol notions, some of those are still the same. The entire book is also available online now. The best book right now is probably "Jabber Developers Handbook (Developer's Library)" (William Wright, Dana Moore), but that is also a bit out-of-date.

Land of the free...

Some states keep getting better and better. I wonder if the USA is still a safe place to visit...

This might be obvious to many of you, but it wasn't for me, so here it is. If you have a many-to-many relation in DBIx::Class, you can remove all the relations with: $self->set_RELATION_NAME([]); The set_RELATION_NAME method is created automatically for each many-to-many relation you setup. It can receive a list of objects that will become related to $self. The obvious $self->set_RELATION_NAME(); will croak on you.

GraphViz under Mac OS X

In case you are trying to install the Perl module GraphViz under Mac OS X 10.4.x, you might need this script. First, install a decent version of GraphViz. I use this snapshots of Graphviz by Ryan Schmidt. Be careful not to use this version on MacIntel's, the package is PPC-only. After this is done, add /usr/local/graphviz-2.12/bin to your PATH. Second, while installing the GraphViz module via CPAN, one of the dependencies is IPC::Run, which might fail on your system.

Harry Potter and the Deathly Hallows

The Harry Potter and the Deathly Hallows is now on pre-order on Yes, I've already ordered mine. The sales rank lists both versions of the book taking the two top spots. Amazing. Some time later... There is something wrong with some people... From the Wikipedia article about book seven: In September 2006, Rowling was nearly barred by US Transportation Security Administration officials from carrying a working manuscript for the seventh Harry Potter novel onto an airplane, due to security restrictions, but eventually she prevailed.


For the past 3 months, I've been working as a freelancer. In September, I left my previous employer, SAPO, where I worked for almost a year and a half as the Technical Project Manager for the Jabber/XMPP-powered instant messaging project, Mensageiro. The switch was due to family issues. My second son was born May 31th, and since then the pressure of doing a 200km commute to Lisbon twice a week was getting a little bit more than I was willing to handle.

MySQL and UTF8 support

I've talked about this before. Basically, if you use UTF8 in your database, the scalars returned by DBD::mysql wouldn't have the utf8 flag turned on for text fields. Until now. With the latest release (DBD-mysql-4.0000), things have changed. A patch from Dominic Mitchell was applied (in DBD-mysql-3.0008_1 according to the changelog) that does the right thing regarding UTF8 text fields. Check the documentation (search for mysql_enable_utf8) to see how it works.