• Dynamic open of libpthread considered harmful

    Here goes another portability issue I've met multiple times while packaging software for NetBSD 2.x, where libpthread has some restrictions that other systems don't seem to have. Simply put, a non-threaded program cannot become threaded at run time, because, if it does, you get a nice "Abort trap". But, how can this happen? Suppose you have an application that is not linked against libpthread, neither directly nor indirectly (through required libraries).

  • Good user interfaces

    First of all, let me apologize for not posting in several days. Unfortunately, this situation will continue as my time is quite limited because of university stuff... Anyway, to the point of this post. A few days ago I found an interesting article that talks about free software and good user interfaces; you can read it here. It starts giving a summary of what a good UI should be, why free software can design good interfaces (comparing UI design to code design) and whether commercial companies help or hurt this process.

  • Do you run?

    Hmm, running (or jogging if you prefer). It has passed a year - more or less - since I started practicing this sport. I must really like it because I keep running as a hobby after all this time. While running, you can hardly think of anything else than you and the road, so you can easily disconnect from any problems you have. And maybe the best thing about it is that you can practice it anytime, anywhere, with very few equipment.

  • GNOME 2.8.1 released

    The 2.8.1 version of the GNOME Desktop has been released today. This is the first minor release of the 2.8 branch, providing lots of bug fixes and minor improvements, such as new and updated translations. 2.8.2 will be published next month, if everything goes well. Time to start working in the update of the packages in pkgsrc ;-)

  • Portability: unsetenv('FOO') vs. putenv('FOO')

    (This happened last Friday, but I've had not enough time to write about it.) After fixing the Evolution Data Server crashes (let's call it E-D-S for simplicity), I noticed a strange problem caused by it. The GNOME Clock applet showed the right local time before it was clicked, but, after the calendar was shown (by clicking on the text), the time got changed to UTC and there was no way to reverse it (other than killing the applet).

  • The libexec and libdata directories

    Some time ago, a Linux-guy asked me what the libexec and libdata directories present on a BSD system (placed under /, /usr, or other top-level hierarchies) are, because he had never seen them before in his Linux box. So here is a detailed explanation. libexec is a directory that contains daemons and utilities that can't be used directly by the user. Simply put, they rely on other programs to launch them.

  • Fixing Evolution Data Server crashes

    Yesterday, I packaged evolution-webcal (which was a trivial task), but, as I expected, it didn't work. In fact, I realised that neither the contacts view nor the calendar view of Evolution 2.0 were working at all. I could see the components, but I couldn't interact with them. So I started to debug the problem. In the console, there were several warnings printed out by Evolution that told it couldn't activate some bonobo component coming from Evolution Data Server.