Showing posts from June, 2009

Sometimes I miss doing Linux end user support work

Last October I set an Ubuntu desktop for Carla's family. We live very far away from them, so it was important that their system was resilient, otherwise it wouldn't last long. They are all beginners in this internet thing, so installing Windows for them would have been a bad idea.

And I was right. Things ran pretty smoothly, we talked via Skype very often, with no signs of virus or crashes. I even found this file in their system:
clica-aqui.exe (click-here.exe, in Portuguese)
Of course this was harmless - a Windows malware downloaded on Linux.

After many months of usage everything was still working fine, until the computer stopped booting.

Helping them from the phone was a challenge. They had to read the error messages in English for me (and they don't understand this language), while we tried to fix GRUB. In the end I assumed the hard disk was just dead.

I asked my good friend Marcelo Lemos for help and he burned an ISO image of Ubuntu and sent them by mail. I live in Swi…

Fixed my first bug in C++. PROFIT!

I'm still trying to learn C++ by fixing bugs. Well, the bug I wanted to fix in Ekiga had already being solved upstream (should I be happy or sad?), but I had fun trying to debug it anyway.

Luckily I found another one to fix today. After 1h30m playing around with gdb and adding debug messages everywhere, I fixed a bug in Gnote where preferences were not being set unless you restarted the program.

The biggest challenge was to find out that all code was written already, it just wasn't working. I initially thought I'd have to write the callback methods myself, but then I saw references to "gconf...notify" in the code, which would normally be enough.

Reading the gconf API docs was sufficient for me to find the culprit. 2-liner patch submitted ;-).

Having fun while trying to learn C++

I've been trying to learn C++ lately. I read a few chapters of a few books, but I got tired of just reading so now I am trying to fix bugs in free software out there.

The first step was to install Ubuntu on the Macbook Pro that I use. Second step was to find useful software written in C++ that needs small bugs fixing.

First I tried to fix a bug in gnote, but I wasn't persistent enough and the lead developer fixed the bug himself after many days without any update from me. The lesson learned here is do not just propose a fix a go walkabout. Stick to it until the end.

Now I'm trying to fix an bug in Ekiga. Actually, I think the bug is in the libopal, but I'm not so sure. The symptom is a segmentation fault in SIPHandler::SendRequest() and it only crashes when I set an outbound SIP proxy. Maybe I'm setting an invalid proxy, but well, it shouldn't be crashing.

Let's see how far I'll go this time.