Building notes, projects, and ocasional rants


last update:


I'm not in Lisbon, so I didn't feel the Earth move. At least not at that time of the day. The question I have for those in Lisbon is very simple: did you knew where you towel was? Just in case?

A pergunta

Usually you'll only find articles written in english here, but next weekend there will be a referendum about abortion here in Portugal, so this post will be in portuguese. Por várias razões vou votar sim. Nunca pensei muito nisso, mas nenhum dos argumentos pelo não me parece ter peso suficiente para justificar a actual situação legal relativamente ao aborto. Infelizmente não herdei da minha mãe o dom da palavra, pelo que em vez de fazer figura triste a tentar escrever algo decente, deixo-vos um pdf com o texto que ela escreveu para uma intervenção ontem.

Shove it!

Here is how Jobs says shove it! to the Nordic, French and German consumer groups that where complaining about Fairplay. No comment from me, just providing the link. I'll watch this one from the sidelines. I couldn't care less about DRM. It's broken, it will always be and it does not prevent me from doing anything that I want to do. BTW, at last count, I have 1311 tracks purchased from iTMS and I never ever bough a CD again since iTMS Portugal open up.

In Perl, sometimes you have a coderef, normally a callback, and you need to know where is that code located in your source. This will do the trick: sub _dude_wheres_my_coderef { use Devel::Peek; $code = \&$code; # guarantee a hard reference my $gv = Devel::Peek::CvGV ($code) or return; return *$gv{PACKAGE} . '::' . *$gv{NAME}; } Taken from BTW, $name also includes filename and line number.

Defense of Marriage Initiative

If this gets approved, Washington state will be know as the Rabbit State, because all of them will try to stay married... It's an absurd measure of course, and the proponents only want to promote discussing of same-sex marriage, but I find it disturbing nonetheless. update: a bit of history behind all this. (via Pedro Timoteo), and I still find the idea disturbing. I don't know why really...

XMPP servers

ejabberd just reached 1.1.3, and you can download new fresh installers from the download page. Of particular interest to me is the new Mac OS X Intel installer that allows me to have a ejabberd running on my Macbook. With this, that makes three different XMPP servers now, that I run on a regular basis: ejabberd, Wildfire, and DJabberd. Each one has good and bad points. Lets see a couple of them.

One of the best things about kids...

... it's Lego. Bought a bunch of them at the online store, but one of the ones I wanted apparently is not available in Portugal. Hey, pfig, can you check out around your town for this and send it to me? Thanks :). Update: I was able to order it from the online Lego shop! Strange, because last week I couldn't but yesterday it worked, at least they accepted my order.

Good stuff coming to a Kernel near you.

Yesterday, Zack Brown (of kernel-traffic fame) posted a patch to run any Linux syscall asynchronously. One of the problems with people doing high-performance event-driven network programming like Lighttpd, Perlbal, or DJabberd was that some syscalls block, and there wasn't a good clean way to do it. One of them mentioned regularly is stat. For kicks, Lighttpd has a patch to move stat to a fcgi app... Good news is that Linus liked it.

RedHat and the RHN Satellite Server

Just saw that RedHat will release RHN Satellite Server source code. Well, too late. I was a more or less happy customer of RHEL for 2 years, with 4 licenses of RHES3. The distribution was rock solid, but the RHN was a mess, rarely worked the way it was supposed to, updating only some of my servers, and the performance was painfully slow. I dropped RHEL and moved over to CentOS, not because of price (I believe they should be payed by their services), but because the software update service was better, '''way''' better than RHN.

Top 3 tools for MySQL

At the moment, my top 3 tools to tune MySQL are: mysqlreport: a friendly report about the status of your MySQL server (or SHOW STATUS for real persons);innotop: a top-like program to see what's going on with your MySQL server (works with multiple servers);mysqlsla: analyses MySQL statement logs (including slow queries).Other tools are also useful sometimes: Duplicate Index Checker: checks your indexes to see if you have multiple indexes covering the same information, in the same order;MySQL Query Profiler: reports on what work MySQL will have to do for a given batch of queries.