Building simplicidade.org: notes, projects, and ocasional rants

Notes

last update:

Tips

Pedro took the time to write about latest Apple news. Worth a read. I share most of his points of view: ring tones: it's a big business based on idiotic consumers, move on. I personally hate ring tones;iPod Touch activation: the iTMS account is required to purchase stuff, not to activate the iPod as far as I could read, but I'll wait until I see some Linux geek reporting his life with the iPod Touch.

Lazy web request: SATA prices

I'm trying to buy some SATA drives in bulk, to have some idea of the cost of 2TB of storage. The question to you all: do you know of a price comparison site for bulk purchases of SATA drives that I could use just to get some idea on prices? Thank you all.

Sane policy for cyclic module dependencies

In medium-to-large Perl projects (case in point has 164 .pm files, far from over), cyclic module dependencies can become a issue. Usually I use a lot of Module::Pluggable stuff, coupled with registry-style approaches. So each module is dynamically loaded based on his namespace using Module::Pluggable and registers itself into the core application. The problem usually crops up when some registry class also requires a module that uses its services. For example, a registry module that uses a DBIx::Class schema, and some of the Tables use that same registry.

SynergyKM

Beta6 of SynergyKM is working ok for me. I recommend the upgrade to anybody using Synergy on a Mac. Things that can bite you: if your clients can't see the server, disable Bonjour discovery: it fails miserably with me;don't use screen names with spaces in it: it will fail with some strange error about failing to read /tmp and friends. If you look at the log file, you'll see that it barfs with spaces.

if unless

In Perl, you can do something like VERB if CONDITION or VERB unless CONDITION. There is not clear rule about which one to use, and I can say that I've preferred one of the other at different parts of my Perl-life. Recently, I've settled on a simple rule to decide which one to use. The decision is based on the type of CONDITION that follows. For me, something like 'CONDITION && CONDITION' is much easier to read and understand than 'CONDITION || CONDITION'.

There is a new git in town

Git v1.5.3 was released earlier this month but I only noticed today. There are a lot of tweaks and improvements, but for me the killer feature of this release is git-stash. That feature alone is worth the upgrade.

Touch me, touch me

There was a lost opportunity yesterday when the new iPod Touch didn't use Samantha Fox hit "Touch me". Lots of '80 teenagers (ok, me!) where saddened by this lack of vision on Apple. Back to the goodies, the best value still is the lower end of the iPod Classic. The iPod Touch is cool, but I believe the iPhone 3G will be the one that makes me buy something with a multi-touch interface from them.

In bed with birds

It seems that Oracle buying InnoDB left MySQL uncomfortable enough about their dependency on the only transactional engine they had. The new MySQL6 alpha is pretty much a Falcon-lovers buffet. There is a lot of stuff to read about the new engine, but I will wait for MySQL Performance take on this.

Changes ahead

In the next few days, I'll be moving all my feeds to Feedburner and reorganizing them a bit. Zee plan right now is: feeds for: full blog content;blog comments;flickr photos;project change sets;a full feed: aggregates all of the above except change sets.The first to move will be the full blog content. Others will join him with time. I'll place permanent redirects on all my current feed urls, so decent news readers will do the right thing.

The E-word

Last week I had a discussion in the local perl mongers mailing list about threads in Ruby vs Perl, and parallelism in general. My view is that it's the programmer responsibility to start using all those core coming our way, and that the Java/Ruby-style of threads, with a share-everything model, are the wrong way of doing it. I a very big fan of shared-nothing by default when it comes to threads.