June 2007

Just upgraded to Gutsy Gibbon Tribe 2

After reading a post on Planet Ubuntu Users, I grew envious that I didn't have the latest and greatest of Ubuntu--so I decide to take the plunge. First I tried the sudo update-manager -c -d, which error'ed out. So I hacked away at the /usr/lib/python2.5/site-packages/UpdateManager/DistUpgradeFetcher.py file by adding import os. Everything started going fine, except my connection was crawling (almost dial-up speeds)--there was no way that I was going to wait. So I grabbed the latest ISO, picking the alternate install just to avoid the hassle of booting up into the live cd. Everything worked nicely--except I got a little worried when the install hung for ten minutes when installing Tomboy. But with a little patience, everything installed properly. I'm currently updating the system and looking into the new Dual Monitor tool. I am looking forward to exploring this new toy!

Code Statistics

I like looking at numbers. So when I saw an interesting gif on a friend's webpage saying that a certain piece of software had so many thousands of lines of code and cost so much money, I was naturally intrigued. After clicking on the link, I was directed to ohloh.net. This site analyzes public version control repositories and provides some interesting statistics about the project--including the lines of code and estimated cost to develop the software from scratch. I decided to try for myself and registered RadLex. I would have registered my VCSFrenzy branch, but currently only Subversion, CVS, and GIT are supported. After a little digging, it seems like ohloh uses David Wheeler's SLOCCount program. With an easy

sudo apt-get install sloccount

I was using SLOCCount to find out more stats about various other programs I was working on. I was happy to see that my afternoon of hacking on some Festival Python bindings is estimated to have cost $3,480. Now if only SLOCCount deposited that money in my bank account.... I was wondering what your favorite tracking/code stat programs are--let me know? I've been using CIA.vc, but are there any other must have code stat programs?

Sync Outlook, Thunderbird, a PDA, and your Smartphone

Since I first owned a PDA, I have been looking for an elegant solution to syncing my data with the PDA and 'nonstandard' applications (Thunderbird / Sunbird / anything in Linux) ... as apparently many people are.


I tried switching over to Outlook as my primary email/calendar program, my unholy marriage to Outlook lasted longer than I care to admit, mostly because syncing with my PDA <em>just worked</em>.


With the release of Thunderbird 1.5, I decided I had enough of MS Outlook. Around the same time, Lightning and Sunbird caught my attention. After extensive google'ing, I found an excellent product, BirdieSync. I installed the trial version, and was loving it, until my 20 day trial expired. At €19.95 (roughly 27 USD) the product was a little extravagant as a college student. If you have the money and only use Windows, this is a decent option.


After the trial of BirdieSync ended, I switched over to FinchSync. This free (but not open source) product did work, but did not utilize Activesync at all, so you needed two separate programs the PDA client and desktop client both on and looking for each other. It did have the benefit of allowing me to sync via wifi (and if I wanted to, I probably could have remotely synced over the internet). However, this product still needs some polishing to make it a real competitor.

Back to Outlook (but with webdav and RemoteCalendars)

I did not spend much time with FinchSync, it just bothered me having to open the application on my PDA and desktop to sync. In addition, I decided to switch over to Ubuntu almost full time. So I engineered a complex solution. I still used Thunderbird and Lightning (both in Windows and Linux) which synced a iCal file up to a WebDav server (I could have used Google Calendar). Then whenever I was using Windows and cradled my PDA, Outlook would open and sync with the calendar by using RemoteCalendars. This solution worked alright for a while, mainly since I was using Windows so much for work. But two issues plagues this solution: 1) Windows needed to be on to sync, 2) I could only do a one way sync from desktop to PDA, since the Activesync always viewed the recently downloaded iCal file as "fresher."

Finally, Funambol

Several weeks ago, I got a Motorola Q--a very nice Windows Mobile based smartphone. I went back to Google and my "knight in shining armor," Funambol, appeared (formerly Sync4j). As a commercial product with almost everything open source, I got an enterprise solution for free. First step was downloading and installing the server--which I put on my Ubuntu server. After 20 minutes of that and configuring my firewall, I was onto getting plugins. I installed one into Thunderbird that syncs Lightning and my contacts. I installed one on my new Motorola Q, one in my old PDA, and one in Outlook for good measure. The plugins have nice integration into Thunderbird, Outlook, and Windows Mobile, while not using Activesync. One awesome benefit is that I can now sync through the internet--no more USB cable. It just works.

The Winner

Funambol, in my mind, is the clear winner of syncing solutions. Cross-platform, open source, free, nice UI, remote syncing, and solid performance. There are plugins for Blackberry, Palm, Evolution, SugarCRM, Exchange, LDAP, iPod, and quite a few others. I now have my calendar and contacts synced on multiple computers and smart devices. I am happy since I am free of Windows and getting the most out of my smartphone.

Update: damo corrected me, BirdieSync is roughly $27, not $40--thanks damo!

Upgrade to VirtualBox 1.4.0

VirtualBox 1.4.0 was released yesterday, so I thought I would write a very quick guide to installing it in Ubuntu Feisty. My previous post detailed downloading the file directly and several troubleshooting steps. If you run into a problem, check that post out. Add VirtualBox Repository Open up /etc/apt/sources.list (with sudo gedit) and add this line:

deb http://www.virtualbox.org/debian feisty non-free

Add the VirtualBox Public Key

wget http://www.virtualbox.org/debian/innotek.asc
sudo apt-key add innotek.asc

Update Apt and Install

sudo apt-get update
sudo apt-get install virtualbox

If you already installed VirtualBox, you may just need a simple

sudo apt-get upgrade

after adding the repo and updating apt. Troubleshooting If you run into a error when starting VirtualBox, execute a quick:

sudo /etc/init.d/vboxdrv setup

and everything should be fine. Again, look at the previous post if you have a problem.

Getting Involved with Ubuntu

My history with Linux started off with RedHat 9 then moved through Mandrake, Mandriva, openSUSE, and most recently, Ubuntu. I must admit that Ubuntu is by far the most polished/easy to use/accessible distribution yet. I am excited by the progress of the project and the community. Therefore, since I get such a nice operating system to use everyday for free, I want to give something back to the community and get more people involved with Ubuntu. I've been writing quite a few guides to using Ubuntu (or a least tools on Ubuntu); but I have also started getting involved in some Ubuntu projects, most notably VCS Frenzy. I've also updated my Launchpad Profile and my wiki page. Maybe one day I'll get into the respected ubuntu-dev group.

Install Pidgin in Ubuntu

Sure, there are some posts on the Ubuntu Forums with links on how to install a deb package of Pidgin from some untrusted repository. Personally, I'm not too thrilled about using a package that hasn't gone through the community process of being added to Ubuntu. So I have two goals:

  1. Install Pidgin
  2. Show you how to install something from source

Don't be afraid by that last point--a few months ago I was too, but there is no reason to be afraid, because in 7 commands/15 minutes you are going to have Pidgin on your system.

Get the dependencies

Compiling from source does not get all the dependencies like apt-get does, but luckily I will tell you. From the command line type:

sudo apt-get install libgtk2.0-dev libxml2-dev gettext libnss-dev libnspr-dev

Additionally, if you want spell checking, include libgtkspell-dev in that list. Get the source: In my case 2.0.1 was the latest code, so check out the download page just to make sure. If there is a newer version, download that source version and skip this step:

wget http://easynews.dl.sourceforge.net/sourceforge/pidgin/pidgin-2.0.1.tar.bz2

Now unpack it:

tar xvfj pidgin-2.0.1.tar.bz2
cd pidgin-2.0.1

Configure and Install

Now the part that will take a few minutes between each command.

sudo make install


You installed the latest IM client! Now, you have to remember that it is your responsibility to reinstall anytime a newer version comes out, apt-get will not do it for you. So do this until Ubuntu backports Pidgin or until you upgrade to Gutsy Gibbon.


If you you get an error message like:

configure: error:

You must have the GTK+ 2.0 development headers installed to compile Pidgin.
If you only want to build Finch then specify --disable-gtkui when running configure.

then make sure you installed the dependencies:

sudo apt-get install libgtk2.0-dev

Or if you get:

configure: error:

You must have libxml2 >= 2.6.0 development headers installed to build.

Same thing, install the dependencies:

sudo apt-get install libxml2-dev

Thanks to amosharper for catching this one:

configure: error:

The msgfmt command is required to build libpurple.  If it is installed on your system, ensure that it is in your path.  If it is not, install GNU gettext to continue.

Again, install the dependencies:

sudo apt-get install gettext

Additionally, if you are getting a warning at the end of configuration that MSN and Google will not work, or if they simple do not work, make sure you have the last two dependencies:

SSL Library/Libraries......... : None (MSN and Google Talk will not work
without SSL!)

Again, install the dependencies:

sudo apt-get install libnss-dev libnspr-dev

Do you want spell checking? If so, you should install libgtkspell-dev with apt-get, then rerun the configure/make/sudo make install.