Building notes, projects, and ocasional rants


last update:

I see you, and raise an Extreme

It seems that the WebKit team just raised their bet in the JS Engine poker game. Without comparing with other engines, which is a game in itself, the speed up from previous versions of Safari to the current Webkit is nothing short of amazing. I was looking around for a Safari version 2.x to see how it compares, but I don't have one anymore. Still, a ten-fold increase between the 3.

A couple of years ago I looked at Ruby to see what the fuss was all about. I found a clean language with a couple of features that I really liked (the blocks with yield stuff) but also two major annoyances: their version of CPAN was very limited at the time in the areas that I required (namely asynchronous network programming and XMPP libs);lousy support for Unicode handling.The library has been growing, and although you can find good XMPP libraries now, I still didn't see anything like the AnyEvent Perl framework.

Perl and database access

The base of all database work with Perl is the DBI module. There is no possible argument about this. If you need something more high-level, things get dicey. For the last 2 years I've been using the most excellent DBIx::Class. From all the ORM's that I've used so far, it is the best one out there and I still recommend it if you want to get up and running fast (quick tip: start with DBIx::Class::Schema and the load_namespaces() API, do not use load_classes()).

AWS newest offer: instant S3-based CDN

The process is simple: upload your stuff to a S3 bucket, call an API, receive a DNS name that you can use. Done. The bucket is now CDN-ized. I don't think you could do this any simpler. You can read more about it at the Amazon Web Services blog or at Amazon CTO Werner Vogels blog, where I found out about it. I wonder how long it will take AWS to become the horse pulling the wagon at Amazon.

DNS prefetching in Chrome

Interesting tidbit: A major goal of Google Chrome was to improve user enjoyment and value in web surfing. Critical to that is increasing the responsiveness of the browser to user input, or reducing user perceived latency. Measurements in the browser have shown that a significant amount of time is traditionally spent waiting for DNS to resolve domain names. To speed up browsing, Google Chrome resolves domain names before the user navigates, typically while the user is viewing a web page.

EFI-x is shipping

I'm thinking on ordering one of these EFI-x dongles, to play around. I wonder how well it works. My motherboard is supported... hmms...

Dirac hits 1.0 milestone

Dirac, a GPL'ed wavelet-based video compression algorithm, reached the 1.0 milestone. I'm not expecting a Apple-official QuickTime component (there is a non-Apple project to create a QT component for Dirac, including encoder), but I'm interested on comparisons with H.264. Anyone?

I don't contribute with code to the git project, so the least I can do is use the master version daily. As I explained previously, I have a automatic process to do that. To keep my git up-to-date, I use my x-git-update-to-latest-version script. This script updates my local clone of the git repo (localy at ~/work/track/git), and then configures, installs (at /usr/local/git-git describe) and updates the/usr/local/git` symlink. This way, I can have /usr/local/git/bin in my PATH and I'm always using the latest version.

XMPP presentation at Barcamp

The first weekend of September, I went to Barcamp in Coimbra. I was only there for the first day, but I got to know and talk to a lot of people that I usually only read online, which was pretty cool. I gave a presentation entitled WTF is XMPP? mostly centered around non-instant messaging applications of XMPP. I think it went well, the room was pretty full and I talked a lot with people after the event which plan to use XMPP in the short term.

Project baseline

For quite some years now, I have been using some scripts to setup my baseline system for each project. If happen to work in Portugal, at one of my previous employers, you might find them somewhere in /servers. (Historical note: the /servers nomenclature was devised between '95 and '97, either at Telenet or IP Global. It later was refined at other companies to include /servers/etc, /servers/logs, /servers/data, and /servers/workspace for specific purposes.