« January 2008 | Main | March 2008 »

February 27, 2008

IPv4

So IPv4 address space is running out.

Again.

There is a ARIN proposal to auction IPv4 space to the highest bidder. Although the proposal is not totally insane, I find it much more interesting to think about a future world, past the depletion of IPv4 address space.

fade in, a alley, with our character walking in the center, entering and exiting zones of light from old-style lamp posts.

suddenly a call from a darken door frame

(dealer) hey you, wanna buy a nice IPv4 address?
(hero) what?
(dealer) yeah, fresh stuff, right of the DHCP server. Long lease time, guarantee.
(hero) no thanks
(dealer) what's the matter, already had your fix today? Too much porntube already?
(hero) no, I just don't need it.
(dealer) oh, I see, rich mommy gave you a nice block of /48 IPv6 for christmas. You rich bastards are all the same.

My apologies to all of those who do screen play writing for a living.

Security report for RedHat 4

Excellent report about the Risk to users of the RedHat Enterprise Linux 4.

This is not an endorsement of RedHat by itself. I cannot do that due to the lousy commercial department. But I wish other vendors where so up-front with this information.

Oh, and in case you where wondering, I'm a happy CentOS user.

Temptation

I don't have a iPhone nor an iPod Touch because I would like to have 3G on the device. 3G is more important than Wifi where I live.

Anyway, for the first time today, I saw an application that really tempted me to buy one: Labyrinth.

Yes, my desire for this kind of thing is not natural.

February 26, 2008

Dinosaur

Three weeks ago I powered down my oldest Linux server.

It started is useful life as a NFS server for mail.pt site, moved to MySQL server of EVOLUI.com, and now is going to rest a bit.

It went online March 1999. I pulled the plug in 27th, January 2008.

It still has the original CPUs (dual PIII, 450Mhz), the original memory (although half of it is from an upgraded after I moved it to MySQL server, for a total of 1Gb), and this is the real kicker, the same 4 data SCSI disks, connected to a DAC9660 RAID SCSI controller.

I don't remember the original Linux distro, but given that the servers where assembled by me and Celso, I guess he suckered me into installing Debian on the box. Lately it was running RedHat 7.2 (Enigma), with a 2.4.18-17 kernel.

They don't make them as they used to.

February 22, 2008

MS-OSS: yeah, sure

I've commented this in a couple of blogs, so I though I just write it here once.

The Microsoft announcement about opening up some of their stuff is an interesting read, but nothing else. The licensing terms are incompatible with the GPL (both version 2 and 3), so this is more a PR stunt than anything real.

Let's keep the eyes on the ball, and ignore the fat lady flashing body parts.

todo.pl

I'm trying Hiveminder again.

My first attempt some months ago was not successful, and I must admit that although the new interface (specially the IM-based one) is very easy and fast to use, I still see the lack of offline-mode the biggest barrier to use this type of services.

Be sure to check pjf presentation Effective Procrastination with HiveMinder, its really good.

One thing that I was having problems just now was the todo.pl command line interface. Apparently, it doesn't like characters with accents. I looked at the code and it seemed to deal with them fine, figuring out the encoding of the terminal and using binmode to set the encoding filter of STDOUT to the proper charset.

But still, I was getting this errors: "\x{00e3}" does not map to ascii at /Users/melo/bin/todo.pl line 276.

Part of the problem is that terminal encoding detection fails on Mac OS X terminal. The problem seems to be inside I18N::Langinfo, because he reports us-ascii, but thats a XS module, so it might take a while for me to figure it out.

In the meantime I added a encoding setting to the todo.pl program, to force a specific encoding. Apply this short patch to todo.pl, edit ~/.hiveminder and add a line encoding: utf-8 and all should be well.

I don't think this patch is worth pushing upstream right now. The correct fix is in I18N::Langinfo, but I needed to get some work done today.

Update: fixed big 404. Sorry bout that.

BSG Season 4 - the countdown

April 4. Ok, April 5 for those with SciFi-over-BitTorrent only.

Checklist

So, leaving for FOSDEM 2008 later today, I need a checklist:

  • Passport: check;
  • Plane ticket: check (Pedro tells me a plain ticket will not fly...);
  • Laptop hard drive: update clone at the office - still to do;
  • Send phone number to one or two persons going to be there: still to do done;
  • Clothes: still to pack;
  • Clean up non-essencial stuff from backpack: still to do done.

I'll drive to Lisbon around 1PM and catch the plane at 7PM. I'll probably miss the FOSDEM Beer Event though.

February 19, 2008

Castro steps down

This will be all over the news, but Fidel Castro is stepping down after, what, 30 49 years (corrected by Pedro) as President of Cuba.

Its the end of an era, for sure.

Now, two choices:

  • Cuba becomes the live action series Miami, the Next Generations Vices;
  • a civil war erupts between a tired population and a elite trying to keep the same control that Fidel had.

Time will tell.

Working with Wikipedia data

The good people at Freebase launched WEX, a Wikipedia Extraction tool, and made their exported data downloadable.

This allows you to use our usual text, XML or even SQL processing tools to analyze Wikipedia entries.

I mention this because the FreeBase project is one of the most interesting thing happening in the online knowledge space. If you haven't noticed, this project is building a huge structure data repository, open and extremely linked, with strong meta-data.

You should check it out.

Snap

In the past I toyed with the idea of sending HTML pages, including forms, via email, as the basis of a workflow system.

I never did anything with it because the target people all use Outlook and HTML support was always spotty, and with the latest version seems to be even worse.

Today I found out about Snap.

Snap delivers HTML forms for workflow purposes, but using RSS feeds. Your news reader becomes your task inbox. There is a demo available to see this in action.

I must admit that my head is buzzing with places where I really can use this. I see no reason not to do it in lots of places, and if I can get a decent windows-based RSS reader with HTML support (maybe FeedDemon, I'll have to check it out), then this has a lot of potential.

Also I can see other tools adopting this really fast. A "actions" feed for Trac tickets? Or Bugzilla bugs? Your personal todo manager?

Possibilities...

February 17, 2008

Android, XMPP and EXI

Last week there was some chatter about Google decision to rename the XMPP API in Android to GTalk API, and dropping the XML-based wire protocol for something binary.

The reason that the Android team gave for this was: XML is too verbose.

First, let me state that I agree that the API should be changed to GTalkAPI if its no longer a compatible XMPP API. This leaves the name open for a future real XMPP API, so in this limited way, it makes total sense to rename it.

Second, "XML is too verbose" seems to me a quick and dirty excuse, and I would prefer to have a real reason for this. A couple come to mind:

  • XMPP is too heavy in terms of CPU and/or battery consumption for our target levels (we have XML parsing, optional zlib compression and TLS encryption);
  • XMPP is too complex and we only need a couple of small things;
  • We want to tie this to our own Google Talk service.

I don't know much about mobile platforms to say if the CPU and/or battery usage is an issue, but I wouldn't be surprised if it were. On the other hand, if the new binary protocol doesn't offer some sort of encryption, well, it won't really be an option, right?

But the most interesting discussion that this change will trigger is about XMPP wire-level protocol.

The upper layers of XMPP should be XML. Our specs are written in XML and I only see advantages on doing so. But this does not mean that the wire protocol must remain as XML. We must understand that XML is just one of the possible representations of the XMPP protocol. It's the one we choose in our documentation, because its the one we humans find easier to read and understand. But that's it. In the end it will be machines that read and parse and interpret the XMPP protocol, and the wire representation should be the most efficient to the machine. Having a XML console is nice, and it will always be there, even if we change the wire representation.

There are alternatives to a UTF-8 human readable version of XML, and one of the most likely to succeed is Efficient XML Interchange (EXI). It remains to be proven, as Robert points out, that EXI (or any other binary encoding applied to XMPP) is more efficient than the current XML-over-zlib-over-TLS.

But making justice to the X in XMPP, we can extend XMPP to support these alternative encodings, using an existing standard, XEP-0138. There is already a proposal for a EXI encoding for XMPP using that same XEP. So experimenting with different encodings can be done within the standard, and that is good.


So we can see that we don't have to use XML as a wire representation and still be XMPP compatible. The next issue is: is the problem with mobile platforms and XMPP related to the XML representation or the protocol itself?

Both Robert and the people participating in the discussion on the standards mailing list (several threads, but this is probably the most interesting one, specially after the change of subject), seem to think that the main issue is the very verbose nature of the protocol, specially with <presence> stanzas.

Also mentioned is the fact that XMPP is usually implemented over a TCP connection and that we don't have a good, quick and efficient way to recover a session after a dropped TCP connection.

So maybe XMPP is not very effective in the mobile world right now. But one thing is clear to me: a lot of people in the XMPP community are knowledgeable and even experts in that field, and so I'm sure we will see further specs to optimize the XMPP usage in a mobile environment.


But getting back to the XMPP wire representation. I really hope to have something more efficient than the current XML representation. And I don't say this because of the mobile world. I want this on the server-side.

More and more, servers are splitting themselves in standalone components: a frontend connection manager, a couple of core XMPP routers, and a set of external components, each dealing with specific features like file transfer, multi-user chat, or publish/subscribe.

And these components must talk to each other, and process a lot of messages. (as a side note, I once tested a commercial XMPP server, doing 500k messages per second). Even right now, I see servers doing tens of thousands of messages per second.

So given this traffic volume, making the overhead per message the lowest possible is a worthy goal, and if that means dropping the XML representation and adopting a new binary one, I for one will welcome the change, and the new binary overlords.

iPod Touch and NewsGator Mobile

So the wife bought a iPod Touch a couple of days ago, and I helped her set it up and make it play nice with the Vista laptop she uses.

I tried the interface and it really is very cool.

But it wasn't until last night that it really hit me how good it is.

I was playing around with this and I remembered that NetNewsWire syncs with NewsGator and that they have a online mobile interface. So I though lets try this and see how it goes.

I was able to access http://m.newsgator.com/ without problems, and after checking my password, I was able to login just fine.

The first impression was not good. I got a blank page, without any information on what to do next.

It turns out that you have to enable the list of feeds you want to see on the mobile edition in the main site. I think this is great because I can tailor the feeds I want to read on the mobile site, but a single text message saying "You haven't selected any feeds for this device. Use the main web interface to select the feeds you want to read here" or something to that effect would be most welcome for first time users.

So after a quick trip to the web interface and setting all feeds to show on the mobile interface, I was back and with my unread items nice and tidy.

A second pet-peave: I keep my groups ordered manually on NetNewsWire, but the order of the groups is not synced to NewsGator.

I spend the most part of an hour going through my feeds, reading some entries, and switching between portrait and landscape modes, just enjoying the experience.

All I can say is this: its the best experience I have had with an online portable device.

I won't buy one. Its not the correct iPod for me. If I buy a new iPod it will be the Classic model for sure.

But I'll definitively buy the 3G iPhone when that shows up.

Even with Celso constantly teasing me, I shall resist the temptation, and wait for the 3G version.

February 16, 2008

ezmlm survival guide

Every time I have to do something with ezmlm-idx, I end up reading a lot of documentation.

It really tells you something about the quality of ezmlm. The need to tweak it is rare, so I forget how it all works.

Anyway, this time I wrote a couple of notes, a small survival guide if you will.

ezmlm survival guide

This survival guide covers ezmlm-idx version 0.440. Most of the information was obtained from the http://ezmlm.org/faq/index.html.

I just copied and adjusted the parts that I need most often.

Creating lists

(Taken from a FAQ entry and the ezmlm-make man page)

To create a list with the following properties:

  • the list address is local@domain;
  • two lists will be created: a normal list and a digest list;
  • you (me@host) will be the owner, remote administrator and subscriber of both lists;
  • only subscribers will be able to post or retrieve the archives.
  • digest will be generated every two days, when 30 messages have arrived since last digest, or when mode than 64kbytes of message body has arrived;
  • ~/list/dir is the directory that will be created to store all the information regarding this list: subscriber lists, archives, the works;
  • ~/.qmail-list is the dot-qmail file that receives mail for the local@domain address.

The commands needed are:

ezmlm-make -dgiu -5 me@host ~/list/dir ~/.qmail-local local domain
ezmlm-sub ~/list me@host
ezmlm-sub ~/list/digest me@host
ezmlm-sub ~/list/mod me@host

Explanation of the options used:

  • d: make a digest list also;
  • g: guard archives - only subscribers can retrieve messages - this option is secure, even if you fake a mail message to retrieve the archives;
  • i: mantain index for archives, useful to ezmlm-cgi;
  • u: only users can post;
  • 5: define the email of the list owner;

Also usefull options not used in this situation:

  • r: enable remote admin;
  • m: enable message moderation;
  • s: enable subscription moderation.

Another example of usage: you want to create a list xpto@some.vdomain.com. Moderated, both posts and subscriptions. lists.vdomain.com is a virtual qmail domain, with a vd prefix delivered to your homedir. You want all the control stuff to be inside ~/lists/vd-xpto. You (you@domain.com) want to be the owner of the list. And you want digest and most common security features.

ezmlm-make -dgiums -5 you@domain.com ~/lists/vd-xpto ~/.qmail-vd-xpto xpto lists.vdomain.com
ezmlm-sub  ~/lists/vd-xpto you@domain.com
ezmlm-sub  ~/lists/vd-xpto/digest you@domain.com
ezmlm-sub  ~/lists/vd-xpto/mod you@domain.com

Done. You are the owner, subscriber (of both regular and digest list), and moderator of your new list.

Moderation of messages

(Taken from http://ezmlm.org/faq/FAQ-4.html#ss4.18)

To moderate messages, do this:

touch DIR/modpost
ezmlm-sub DIR/mod email_of_moderator@domain

Remove the DIR/modpost file to disable moderation.

Moderation of subscriptions

(Taken from http://ezmlm.org/faq/FAQ-4.html#ss4.16)

To moderate subscriptions, do this:

touch DIR/modsub
ezmlm-sub DIR/mod email_of_moderator@domain

Removing the DIR/modsub file disables moderation.

Adding, listing and removing subscribers

To subscribe a user:

ezmlm-sub DIR me@host

To unsubscribe a user:

ezmlm-unsub DIR me@host

To list subscribers:

ezmlm-list DIR

You can change DIR with DIR/digest to add/see/remove people from the digest list, or DIR/mod to work on the moderator list.

Forcing the reply-to to the list

See the EZMLM FAQ entry about this.

Basically, you need to do 2 things:

  • put reply-to into DIR/headerremove: this will remove any reply-to header from incoming messages;
  • put Reply-To: <#l#>@<#h#> into DIR/headeradd: this will add the proper header to outgoing messages.

Adding common prefix to subject of messages

Just do this:

echo "[PREFIX]" > DIR/prefix

Software patents

An interesting article about software patents by Philip Greenspun.

Two quotes stand out to me. The opening shot (which you get to read it yourself), and further down this one:

I was asked "Why didn't you patent this yourself, if you developed it first?" My reply was "It only took me an hour to build; if I went down to the patent office after every hour of programming, I wouldn't get very much done."

I can relate to this. At least once, I coded something at some job that 10 years later was covered by some stupid software patent.

February 15, 2008

Smoking

In Private equity firm pours $100 million into SCO money pit:

"We saw a tremendous investment opportunity in SCO and its vast range of products and services, including many new innovations ready or soon to be ready to be released into the marketplace," Norris said in a statement.

I want a big pile of the same stuff SNCP is smoking.

Index cards

I've uploaded to Flickr a couple of pictures of my current index card system that I use to track the stuff I need to get done.

In the end, after a year and a half trying several different systems, this is the one that stood the test of time: it works for me.

I would love to have something online that I could work with, specially because working with other people using index cards is not practical, but I haven't found it yet (I will try Hiveminder again just because it seems they have a IMAP interface, I'm curious about that. update: false alarm, no such feature exists, but it would be an interesting one).

One thing that I like with this index card system is the built-in expiration cycle of tasks: monday morning, I look through all the cards and I rewrite some of them, to merge related stuff. When I copy a task from a card to a new one, I add a number at the end, like (1). This is the number of times I copied the task without completing it.

It gives me a very good view about tasks that are really not that important.

Screenshot editor

I need a Mac app to blur or hide certain parts of screenshots I take.

I don't want a app tied to any online system. Just a quick, direct, graphics editor.

Any recommendations?

Screencast software

I usually use Snapz Pro X and I'm pretty happy with it, but ScreenFlow is amazing.

Checkout the screencast, specially the last 20 or 30 seconds.

But €79.99? Yeah, only if you are a Pro.

Apple TV as a AirTunes destination

A quick tip that I just read, and I didn't see this mentioned anywhere else: the Apple TV, with the latest software update, is now a AirTunes destination.

This is very cool. I can send the music from my iTunes to the big speakers easily now.

February 14, 2008

High-performance SSH

A very interesting patch to the standard OpenSSH code base, to improve SSH throughput.

Something to try in a week or so.

There is also a TCP tuning article at the same site worth a read.

Operations Mantras

A big Operations Mantras article by Alan Kasindorf.

Loads of interesting stuff, but it does take a bit to digest.

February 13, 2008

Live Yahoo!

Ok, Live Yahoo! is awesome.

It took me literally 3 clicks to have a multi-user video conference going.

git hosting

If you need to host your project somewhere using git, I suggest you try gitorious.org.

Setup was a breeze, painless and just worked. I was up and running in less than 5 or 10 minutes.

I tried repo.or.cz a couple of days ago, but I still can't push to a project I created there...

Pretty please, with sugar on top?

I've been using ecto since I started writting this mis-mash of notes. It's good enough and doesn't get in the way. I know where everything is and I don't get lost.

With all the publicity about MarsEdit, I downloaded the latest version and tried it out.

Although its much more polished than Ecto2, I didn't find any compeling reasons to re-learn a new tool. I loved the Cmd-Shift-D to post (I use that with Mail.app) but that's about it.

The MarsEdit author has been writing about the upcoming WYSIWYG editor, but given that I write all my post in Markdown, I really don't care that much.

But there is a feature that would make me switch in a heartbeat.

After I write a article, I go through it and link certain phrases or words. But some words are usually linked to the same place. For example, Rui, Nuno and pfig, are always linked to http://the.taoofmac.com/, http://nunonunes.org/, and http://pfig.livejournal.com/, respectively. The same treatment would be used for phrases like for example Daring Fireball, or I'm felling lucky.

So if the application learned about this associations and presented me with the option to link, it would save me a lot of time. One thing I would need is an option to link just the first occurrence of a word, but apart from that policy-thingie, it would be lovely.

I wonder if the ecto 3 plugin system allows for this kind of thing...

WordPress, king of the community

I can only say that with all these security problems WordPress is having (releases 2.3.3, 2.3.2, and 2.3.1), it truly is the best choice to build a community site: everybody will be able to edit your pages.

Flash vs iPhone

This whole "Flash on the iPhone eminent"-rumors is weird.

Given that Flash now supports H.264 as a video codec, maybe iPhone supporting Flash is just that: Apple will support Flash video if the codec used is H.264.

If YouTube starts encoding the videos as H264 (maybe as an option at first given that Flash with H.264 support is probably still in the single digits market share), then this makes total sense for Apple to support. Even the original rumor article mentions that YouTube had to convert some of their catalog to H.264 to support Apple TV and the iPhone.

Anyway, back to work.

February 09, 2008

github.com

There is a new service starting up, github.com, that provides Git hosting including a very nice Web interface with some cool twists like LightHouse integration.

Another cool feature is the read-only Subversion repository of the git master branch.

Unfortunately the service is still in beta. I've subscribed for an account, I hope they open up more slots soon.

AIM/ICQ, and now Yahoo!

There is something in the air, because we now have two big IM providers flirting with XMPP. A couple of weeks back we could login to the AIM/ICQ network using XMPP. The trial seems to be over though.

But today, Mickaël Rémond tells us about Yahoo! Live experiments with XMPP.

Very cool.

FOSDEM 2008

Hotel: check; Plane: check; Baby sitter to cover for me during the weekend: check.

Guess I'm ready to go.

I'll see you at FOSDEM 2008. You'll probably find me around the Jabber Software Foundation stand.

Sniffing browser history

Came across this article about using JavaScript to sniff your browser history.

Very interesting stuff. I wonder how long it will take to see a jQuery plugin for it?

(via 43 folders)

February 08, 2008

Stallman on copyright

Richard Stallman wrote an article entitled "Freedom - or Copyright". Its an interesting read.

Two paragraphs stand out to me:

When computer networks provide an easy anonymous method for sending someone a small amount of money, without a credit card, it will be easy to set up a much better system to support the arts. When you view a work, there will be a button you can press saying “Click here to send the artist one dollar”. Wouldn't you press it, at least once a week?

This is fine and logical but what should the arts do until the computer networks offer such methods? Asking the people who stand most to loose to trust the users to do the right thing? Do we really believe it will happen?

To make copyright fit the network age, we should legalize the noncommercial copying and sharing of all published works, and prohibit DRM. But until we win this battle, you must protect yourself: don't buy any products with DRM unless you personally have the means to break the DRM and make copies.

(emphasis mine)

So, for example, given that we can bypass Apple FairPlay, both in legal (burn and rip) and illegal ways, its ok to buy their stuff? I was surprised by the "unless" twist on the last phrase, really. I did not expect this from Stallman. I didn't expect to agree with him at all, but on this last phrase, we are soul mates.

My next birthday present

Feel free to pitch in so that I can buy my next birthday present.

The second picture of the setup is amazing...

But yeah, I could settle for something in the range of a 1/50th of the total cost.

(via pfig)

The first fix is free

Google launched Google Apps Team Edition.

In a nutshell, users of an organization can setup a Team, with all the goodies of Google Apps for Domains, using only a valid email address. no need to bother the IT administrator...

Smart, very smart. Get the users addicted, and have them push for the stuff internally, a "upgrade" to the bussiness package (watch the video at the Google Talkabout blog, and pay close attention to the last 30", starting at 1:54").

My concern is the Google Talk integration. You can use the Google Talk server with those email addresses, but you'll loose XMPP federation, because the required SRV records will not point to the Google Talk servers.

Also, I wonder what happens if a @example.com user starts using this. Now that one user @example.com is using the GTalk network, will internal routing of the GTalk network assume that the entire domain is local or this per address? So if a user with an email address @simplicidade.org uses this, will it sink all connectivity between my domain and the Google Talk network?

This needs to be checked further...

(thanks to fabieuse for pointing this out in the comments, even if I didn't get all the implications at first)

.bash_completion.d

André Cruz asked me why wasn't his ~/.bash_completion.d/ being used by default.

Well, its a feature of the bash_completion system that you must activate by hand. In my ~/.bashrc I have the following code:

bash=${BASH_VERSION%.*}; bmajor=${bash%.*}; bminor=${bash#*.}
if [ "$PS1" ] && [ $bmajor -eq 2 ] && [ $bminor '>' 04 ] ; then
  if [ -f ~/bin/bash_completion   ] ; then
    BASH_COMPLETION=~/bin/bash_completion
    BASH_COMPLETION_DIR=~/.bash_completion.d
    export BASH_COMPLETION BASH_COMPLETION_DIR
    . ~/bin/bash_completion
  fi
fi  
unset bash bmajor bminor

The trick is the BASH_COMPLETION_DIR setting before you source the bash_completion script. The BASH_COMPLETION environment is required because I keep a local copy of script.

I'm using the latest version of bash_completion, 20060301. If you download the 20060301 tarball, check the README file. There is a FAQ at the end that mentions this and other cool tricks.

February 07, 2008

git bash completion

If you download the git tarball, you'll find a git-completion.bash script that adds shell completion to your git day-to-day usage. Look for it in the contrib/completion/ directory. (update: if you can't find it there, look for it in the $sharedir/git-completion/ directory. A recent patch by Johannes Schindelin promoted git-completion.bash to the big leagues.)

When I started using git, I just sticked the script into my ~/.bash_completion.d/ and bash picked it up after a exec bash -login.

One thing I didn't do was read the file, and I missed some cool stuff. One of them is a PS1 hack to show the branch you are on:

4) Consider changing your PS1 to also show the current branch: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '

The argument to __git_ps1 will be displayed only if you are currently in a git repository. The %s token will be the name of the current branch.

Be careful to use '' and not "" in the PS1= statement.

If you have several branches active at the same time, this really helps.

Software Update is dumb

I'm updating two Macs via Software Update in the same network and they share four downloads between them.

Why do they need to download the new versions from Apple? I mean, they could just find each other and swap.

This isn't rocket science, at least not in a system that has Bonjour built in.

And its not as this would be terrible security-wyse: all the updates are signed by Apple and Software Update will refuse to install them if the signature doesn't check.

Oh well, maybe in the next cat.

February 05, 2008

git gc --auto

For normal usage, git is written to be as fast as possible. That means that certain house-cleaning tasks are not done on every command and from time to time, you have to let the git gremlins cleanup the place.

For the last couple of git releases, the most common command to do that is to use git gc --auto. This will check the repository, see if it needs cleaning, and perform the necessary operations. Its a safe command, you can even start it, and keep on working on the same repository.

Personally, I run it when I remember or when git gui reminds me that I have to many loose objects.

In case you might be wondering the sort of impact this can have on your repo, I'll quote an extreme case. Notice that the user didn't use git gc --auto but choose a different, more aggressive, set of options. The tradeoff is execution time and you cannot use the repo while git gc runs.

I used git-svn to import a repository with 33000 revisions and about 7500 files. It took about 18 hours to import. When it was done, my .git folder had 242001 files that comprised 2.0GB. I ran git gc --agressive --prune and let that sit overnight (I wish it was more verbose, it went for over an hour without printing anything), and that managed to compress the repo down to 334 files and 64MB.

So from time to time, don't forget to git gc --auto.

February 04, 2008

Microsoft + Yahoo

A semi-random sample of anagrams of "Microsoft Yahoo":

  • Tory fiasco homo;
  • Mafioso Torch Yo;
  • Chaos Fit Room Yo;
  • Fiasco Hot Roomy;
  • Yahoo For Sitcom;
  • Fiasco Oh My Root;
  • Chaos Firm Too Yo.

You'll be assimilated...

... eventually :).

I actually did use IPC::MorseSignals to try a stupid idea. It worked as advertised, although it did not solve the idiotic nature of the solution.

But it sure was fun.

February 03, 2008

Android

A nice article by Bill de hÓra about Android and other Telco/Webco musings. My favorite quote:

If you had to pick a company that "gets all this", it's Amazon - which is why Redmonk James is right - someone should buy them before they turn into the 21st Century's answer to General Electric.

I don't like to post links without my personal comment, but I'll make and exception for this one.

Y$

44.6B is a lot of cash, and they didn't even need to go to the bank. That's nice.

Google is the big winner here, me thinks. Yahoo proves that they could not solve their problems, and Microsoft admits that they cannot leverage the brains they have on the payroll (I believe Microsoft to be second best in terms of brain-per-sq-feet, only to be bested by IBM) to produce a viable product in the search wars.

The value proposed is too big not to provoke something to happen: the deal is most likely to go forward, and only a Yahoo + Google scenario (and we can imagine how happy that would make the Y! board) could save Yahoo from falling into Microsoft hands.

The next months are interesting because Microsoft will unveil his plans of assimilation to the horde of Yahoo workers, and if those plans include migrations to Microsoft technology (remember the HotMail purchase? We can only hope that Microsoft did learn a lesson there), then the natives will be restless. Probably a mass defection to Google, and other smaller companies, and a rush of new startups.

I personally don't have big concerns about this merger. There are a lot of tools that I use that belong to Yahoo (Flickr is probably the most important, other smaller software tools like Firebug, YSlow, the standard CSS layouts, also made the list), but I think they will survive just fine.

In terms of the Instant Messaging world, two giants that where already sleeping together are getting married. I do feel sorry for this, because although I don't expect to see an official XMPP gateway from MSN, I was expecting to see one from Yahoo in a year or so. I do think that AOL will probably align with the XMPP federation now. They really don't have nothing to loose now.

Next episode: the Yahoo board response.

Update: a lot of people are writing about this deal, as you could expect. My favorite article so far is from John Siracusa, at Ars.Technica.

Update 2: tied for first place, Fake Steve Jobs take on Microsoft/Yahoo deal.

Down and Up

Last week we had a server crash. And I did 400 kms to fix all the bits. And it works now.

Nothing to see, move along.

Unless you are a true geek... In that case:

  • Pentium 4 motherboard (about 3 years old) with a graphics card no longer supported by the graphical installer of CentOS 5 (see below why is that important);
  • 1Gb memory: I could have bumped it to 2 Gb, but I had other more important hardware upgrades to make;
  • Our single (I though I had two RAID1 disks, I was wrong) 80Gb disk was caving under usage. Also, the console started burping about cannot read, blah, blah, blah.

So I slapped two 250Gb SATA drives. Total cost about €100. Then I set to update to latest CentOS 5.1. I wanted to use software raid 1 and then use LVM on top of that.

Turns out, you can only do that if you use the graphical installer, and the on board ATI Rage something is no longer supported by the CentOS 5 installer. So I had to bring my preferred rescue disk, INSERT, built the partitions, raid and LVM setup by hand (not that hard, two fdisks, and a sequence of mdadm, pvcreate, vgcreate and lvcreate; six commands total), and then used the text-based installer to map and format the partitions.

I took the opportunity to remove all the PHP vestiges I had on my blog. I was using PHP to include the sidebar on every page, but I replaced it with Lighttpd mod_ssi.

Copying data (in my case, about 20 Gb of mail mostly) was the slowest part, really. Lots os small files. rsync --size-only helps a bit here.

All this work makes you look at Google Apps for Domains really hard, but my "clients" don't want to have their mail inside GMail, so I'll stick to the current setup for now.

But now we're back, and ready for the next 2 or 3 years.