Building notes, projects, and occasional rants


last update:

Alex and Adam asked me to elaborate on the tools I used to implement the Tarpipe XMPP gateway. I used the Net::XMPP2 Perl module, in particular the Net::XMPP2::Component class. It uses the AnyEvent async framework, which in turn support the EV library , giving you all the love of kernel polling. Until the Net::XMPP2 author releases a new version, you should use my own copy if you plan on doing external component work (check the component-reply-with-from branch).

Using Tarpipe via XMPP

Tarpipe is a wonderful service to execute a workflow of web services. You create your workflow visually, and then you send an email or POST to a API end-point to run it. For example, this is the workflow I use to post to Twitter, Jaiku, and Pownce: Usually I would send an email and my subject would be posted, but I also have an IM client always available. So I wrote this XMPP-to-Tarpipe gateway.

OAuth and Google

Excellent news! Google now supports OAuth on all Goggle Data APIs.


On the topic of Bonjour goodies, take a moment to read about, and install, some of the *jour tools. Very cool stuff.

Bounjour, CPAN!

For a Perl programmer, a local (on your laptop) CPAN mirror is a worthy investment. The problem is that a full mirror is 5.8Gb of disk space. Fortunately we have CPAN::Mini that creates a mirror of the most important stuff using only 830Mb. So now you have your local mirror, and after you add the path to your cpan urllist configuration, all your module installations will use this faster mirror.


Something to pay attention to, Reconnoiter. Its still work in progress but in the last status report, Theo Schlossnagle mentions that he is already using this software to monitor about 2.9k services with less than 0.10 load, peek. That's impressive.

A simple file upload?

Yesterday, I tried to upload my usual avatar to my Google Account. If looks like a simple file upload, right? Guess not: WTF? Couldn't they just fallback to a simple file upload? Is this rocket science?

MySQL master/master how-to

New location: the How-to is now live at In the past, I needed to use a MySQL master/master setup for a client. At the time, I got it to work, but forgot to take notes about the process. In the last days, a friend asked my for help to do a setup like that again, to use with a Tigase XMPP server. So I wrote this how-to, complete with configuration files, sample data and schemas, that walks you step-by-step through the process of setting up a pair MySQL servers in a master/master configuration.

Git starters

In the last two or three weeks, I had about five or six people IM'ing me "What's the best way to start with git?". Last time I wrote about this was almost 7 months ago, so I think its time for an update. First, I personally compile git from source. I do not trust package maintainers yet. Some parts of git use ssh (for example), so they mark ssh as a dependency, and this brings their own version of ssh.

The Pre-Air Season

Every year, around this time, we start seeing pre-air or pilot episodes of shows that might or might not be produced for next season. This year is no exception and the first round of shows is out there. I've seen some of them and I organized them into categories. First, I think these are sure winners: True Blood (HBO): by Alan Ball (Six Feet Under fame) - vampires are now in the open, as a regular member of our comunity.