Building notes, projects, and ocasional rants


last update:

TextMate Scratches

Scratches is a new TextMate bundle that I'm finding very useful. Basically it allows you to take snippets of code, "scratch" them, and then reuse them on other places. A sort-of glorified multi-buffer copy&paste. I believe the inspiration came from a BBEdit feature. The current version (see below for instructions to install) has a very nice scratch viewer. You can see how it looks with the small screencast (authored by Hans-Jörg Bibiko).

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.