Mi blog lah! Το ιστολόγιό μου

22Jun/095

The bashrc bash configuration files

The default shell in most Linux distributions is the bash shell. Contrary to all the usability work that has been done to the GUI, the shell is most neglected area.

Current bashrc shell (shows prompt only)

Depicting a shell is not an easy task; in the screenshot above we only show the default prompt. It has the following disadvantages,

  1. It does not differentiate visually between the username and hostname.
  2. It shows the relative path only, making it difficult to realize quickly the full path for the current working directory.
  3. Cannot copy the path using the mouse by double-clicking on it. The ~ is not included in the highlighted text, that one needs to paste and add the remaining part of the path (such as /home/user/)
  4. The point of input changes position on the command line, depending on the size of the path. As you cd into directories, the point of input moves further to the right.

The bashrc project shell

This is the prompt with the bashrc project configuration files. It solves the problems described with the default configuration files found in Linux distributions.

Obviously, there are more to the shell's configuration files than a usable prompt. For example,

  • the ability to show the partial matches when you press Tab for the first time
  • enabling the shopt options to reasonable values
  • have reasonable aliases for . .. ... / -
  • adding --verbose, --interactive to basic utilities such as cp, mv, rm
  • show the exit value of an application if it is other than 0 ($?)

There is a EnhancedBash project for the Ubuntu Linux distribution which might be able to break apart and provide better default configuration files.

If you want to help and add more to the proposed configuration, visit http://github.com/simos/bashrc/

To use the bashrc shell, you need to

  1. Download the latest package from http://github.com/simos/bashrc/ (note the Download button).
  2. Extract the package, open a terminal window and enter the newly created directory.
  3. Run make install
  4. Open a new shell window. The new settings should be activated.
10May/0915

How to type Greek, Greek Polytonic in Linux

Update 2010: Please see the docs.google.com edition of the guide as it has the latest material. See link below.

There is a new guide on how to write Greek and Greek Polytonic in Linux, and in particular using the latest versions of Linux distributions.

https://docs.google.com/View?docID=dccdrjqk_4cqjn9zcj (LATEST VERSION)

The guide shows in detail how to add the Greek keyboard layout to your Linux desktop, and how to write Greek, Greek Polytonic and other Ancient Greek characters.

The guide is also available in both ODT and PDF format. (both files are somewhat obsolete. use google docs URL from above instead)

For a Greek version of the guide, please see http://docs.google.com/Doc?id=dccdrjqk_3gx3bq5f9 (does not update as often as the English version)

We attach the HTML version of the guide in this post. The docs.google.com version is the latest, please read that instead.

Again, you can find the latest version of this document at
http://docs.google.com/Doc?id=dccdrjqk_4cqjn9zcj
10May/090

Ενημερωμένος οδηγός γραφής ελληνικών (και πολυτονικό)

Ενημέρωσα τον οδηγό για το γράψιμο ελληνικών (και πολυτονικό) και είναι διαθέσιμος από τη σελίδα

http://docs.google.com/Doc?id=dccdrjqk_3gx3bq5f9

Είναι διαθέσιμος ο οδηγός για γράψιμο ελληνικών (και πολυτονικού) σε μορφή PDF.

Είναι διαθέσιμος ο οδηγός για γράψιμο ελληνικών (και πολυτονικού) σε μορφή ODT.

Ο οδηγός περιγράφει τη δυνατότητα γραφής μονοτονικού, πολυτονικού και αρχαίων ελληνικών χαρακτήρων. Ο οδηγός αυτός διορθώνει μια σειρά από αβλεψίες στις οδηγίες.

Ο οδηγός ισχύει για τις διανομές Fedora 11 (ή νεώτερες), Ubuntu Linux 9.04 (ή νεώτερες) και άλλες διανομές που θα βγουν την Άνοιξη του 2009. Για προηγούμενες διανομές, δείτε τις οδηγίες (και τον αντίστοιχο παλαιότερο οδηγό) από το παρόν ιστολόγιο για το πως μπορείτε να προσθέσετε την νέα ελληνική διάταξη πληκτρολογίου.

Κάθε σχόλιο για βελτίωση του οδηγού είναι ευπρόσδεκτο.

10May/090

10 Μαΐου: Το φόρουμ Ubuntu-GR έχει ΓΕΝΕΘΛΙΑ (1 χρόνος)!

10 Μαΐου: Το φόρουμ Ubuntu-GR έχει ΓΕΝΕΘΛΙΑ (1 χρόνος)!

Δείτε την παρουσίαση του φόρουμ του Ubuntu-gr που έκανε ο goofy στο συνέδριο FOSSCOMM που έγινε στη Λάρισα.

Δείτε την ανακοίνωση γενεθλίων στο www.ubuntu-gr.org.

Μερικά στατιστικά στοιχεία κατά τη συμπλήρωση του ενός χρόνου λειτουργίας του φόρουμ,

Γραφτείτε στο φόρουμ ubuntu-gr και μάθετε περισσότερα για το ελεύθερο λογισμικό στην ελληνική γλώσσα!

20Feb/0911

Workaround for bad fonts in Google Earth 5 (Linux)

Update Jan 2010: The following may not work anymore. Use with caution. See relevant discussions at http://forum.ubuntu-gr.org/viewtopic.php?f=5&t=15607 and especially http://kigka.blogspot.com/2010/11/google-6.html

Older post follows:

So you just installed Google Earth 5 and you can't figure out what's wrong with the fonts? If your language does not use the Latin script, you cannot see any text?

Here is the workaround. The basic info comes from this google earth forum post and the reply that suggests to mess with the QT libraries.

Google Earth 5 is based on the Qt library, and Google is using their own copies of the Qt libraries. This means that the customisation (including fonts) that you do with qtconfig-qt4 does not affect Google Earth. Here we use Ubuntu 8.10, and we simply installed the Qt libraries in order to use some Qt programs. You probably do not have qtconfig-qt4 installed, so you need to get it.

So, by following the advice in the post above and replacing key Qt libraries from Google Earth with the ones provided by our distro, solves (read: workaround) the problem. Here comes the science:

If you have a 32-bit version of Ubuntu,

cd /opt/google-earth/
sudo mv libQtCore.so.4 libQtCore.so.4.bak
sudo mv libQtGui.so.4 libQtGui.so.4.bak
sudo mv libQtNetwork.so.4 libQtNetwork.so.4.bak
sudo mv libQtWebKit.so.4 libQtWebKit.so.4.bak
sudo ln -s /usr/lib/libQtCore.so.4.4.3  libQtCore.so.4
sudo ln -s /usr/lib/libQtGui.so.4.4.3  libQtGui.so.4
sudo ln -s /usr/lib/libQtNetwork.so.4.4.3  libQtNetwork.so.4
sudo ln -s /usr/lib/libQtWebKit.so.4.4.3  libQtWebKit.so.4

If you have the 64-bit version of Ubuntu, try

cd /opt/google-earth/

sudo getlibs googleearth-bin
sudo mv libQtCore.so.4 libQtCore.so.4.bak
sudo mv libQtGui.so.4 libQtGui.so.4.bak
sudo mv libQtNetwork.so.4 libQtNetwork.so.4.bak
sudo mv libQtWebKit.so.4 libQtWebKit.so.4.bak
sudo ln -s /usr/lib32/libQtCore.so.4.4.3  libQtCore.so.4
sudo ln -s /usr/lib32/libQtGui.so.4.4.3  libQtGui.so.4
sudo ln -s /usr/lib32/libQtNetwork.so.4.4.3  libQtNetwork.so.4
sudo ln -s /usr/lib32/libQtWebKit.so.4.4.3  libQtWebKit.so.4

Requires to have getlibs installed, and when prompted, install the 32-bit versions of the packages as instructed.

Now, with qtconfig-qt you can configure the font settings.

22Nov/082

Help make «DocBook XML to PDF» work for Greek

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<article lang="en">
<section><title>Title</title>
<para>ëãáâṩẫëĝéõōåőȩçą</para>
<para>ЁЂыњѨѬѺѸѶѦщЖЊЌЍШЩзф</para>
<para>ᾶᾳὰέᾁᾂδϕϟϸϡϸϸαϷϕϲδϕϛ€ϕ©ϖϐͻ©ϖϐ</para>
</section>
</article>

This is an issue that I would appreciate if someone could help in solving.

The above document (mytestfile.xml) is a DocBook XML document with text in many scripts (latin, cyrillic and greek). Normally it was difficult to convert to PDF, until recently.

Now, one can run

dblatex --backend=xetex --verbose mytestfile.xml

(requires to install the dblatex package and any dependencies) and it creates mytestfile.pdf. If you have a fresh installation of Ubuntu 8.10 and you go through the process of installing these packages, please make a list of them, to use as advice for new users.

Generated PDF document with lang=en

Generated PDF document with lang=en

Since we use XeTeX as a backend, we can work with Unicode text directly, which is the proper thing to do. Above you can see that all characters are shown (except a few obscure ones that are not found in DejaVu Sans and are shown as boxes). You can see Latin (+Extended), Cyrillic (+Extended), Greek (+Extended) in the same document.

Generated PDF document with lang=el

Generated PDF document with lang=el

The issue arises when we change the lang modifier in the document above, from en to el. Here you see Τιτλε, which in fact is Title but with the characters replaced with their Greek equivalent. This is a sign for non-Unicode, 8-bit encoding conversion issue. In addition, some of the rest of the characters are shown, and apparently a strange conversion took place.

What we need to do is figure out is how to fix xetex when 'lang=el'. There is some work to get Greek XeTeX support upstream, and there are instructions on how to add local Greek XeTeX support in your distribution.

What we need is instructions on how to fix the Greek XeTeX support in Ubuntu 8.10, and test that dblatex can generate documents correctly when lang=el.

For your testing, here are the files mytestfile-en.pdf, mytestfile-el.pdf, mytestfile-en.xml, mytestfile-el.xml.

19Nov/080

Rendering bug in Firefox, threat level: annoyance

There is this rendering bug in Firefox that currently can be classified as an annoyance.

It was discovered during a discussion at the Ubuntu-GR mailing list and reported in June 2008, and at that time it would cause Firefox to crash. Therefore, it was deemed as a security issue, and the bug report was not made public. Just recently, the issue was revisited, current versions of Firefox do not crash, and the security tag was removed. It is quite possible that there is some existing report on the issue, and not being classified as a security bug, it will be easier sort out. Thus, have a look at bug report #441307.

The source of the rendering bug is the HTML code

<HR WIDTH=143165425 ALIGN=RIGHT>

So, you send an HTML e-mail and you add the above code. The code says to show a Horizontal line, with some huge width (here, you simply put 143165425).

If you received such an annoying e-mail, here is how it may look like (Yahoo WebMail)

If you received such an annoying e-mail, here is how it may look like (Yahoo WebMail)

How GMail might look like when you receive such an HTML email.

How GMail might look like when you receive such an HTML email.

Some versions of Firefox respond differently to this rendering bug, which probably relates to a different set of linked libraries. For example, the Firefox 3 found in Ubuntu Linux 8.10 is able to show the e-mail in GMail just fine (though it messes up with other pages). The above screenshots are by Minefield 3.1b2pre (64-bit). The Windows version of Firefox is also affected.

To try out yourself, create a file /tmp/mypoc.html with contents

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
</HEAD>
<BODY BGCOLOR="#ffffff">
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#e0e0e0">
<TR>
<TD>
<HR WIDTH=143165425 ALIGN=RIGHT>
</TD>
</TR>
</TABLE>
This is a test.
<HR WIDTH=143165425 ALIGN=RIGHT>
Some more text.
</BODY>
</HTML>

Load it up in Firefox. Click to Select All, then Copy. You can then paste in your mailer, when you compose as HTML (for example, with Thunderbird).

Just to reiterate, this issue is currently at level annoyance, unless someone manages to produce an HTML file that can crash Firefox. If you manage to do so, please file a bug report at http://bugzilla.mozilla.org/ and specify the security settting so that the bug gets high priority.

17Nov/085

How to install the 64-bit Adobe Flash Player 10 for Linux in Ubuntu Linux?

Update 2 May 2010: There is a repository for Flash 64bit at https://launchpad.net/~sevenmachines/+archive/flash Though I have not tried this, I suggest to give it a try. I tried this and it works like a charm. Uninstall flashplugin-nonfree, add the new PPA repository with sudo add-apt-repository ppa:sevenmachines/flash and then install flashplugin64-installer.

Update 10 Nov 2010: The package name changed to 'flashplugin64-installer'. It was to be called -nonfree. The commands below have been updated. You can simply copy and paste. The latest Flash 64-bit for Linux is 10.2 d1161. See Tools→Addons→Plugins to verify the version.

Here are the commands

sudo apt-get remove flashplugin-nonfree flashplugin-installer

sudo add-apt-repository ppa:sevenmachines/flash

sudo apt-get update

sudo apt-get install flashplugin64-installer


Original post: So you just read the announcement from Adobe for the alpha version of the 64-bit Flash Player 10 for Linux and you want to install in Ubuntu Linux?

Here is how to do it.

  1. First, we understand that the flashplugin-nonfree package that is currently available to those with 64-bit Ubuntu Linux, installs the 32-bit version of Flash and uses the nspluginwrapper tool to make it work.
  2. After some time, I expect that the flashplugin-nonfree will stop using nspluginwrapper and will simply install Adobe Flash Player 10 (64-bit) for Linux. So you need to have a look in your package manager and the package description in case flashplugin-nonfree has already been updated. If flashplugin-nonfree has been updated, stop reading now.
  3. Close Mozilla Firefox.
  4. Uninstall the flashplugin-nonfree package using your package manager, or simply running sudo apt-get remove flashplugin-nonfree
  5. Download the alpha version of the 64-bit Adobe Flash Player 10 for Linux and extract the file from the archive. You will get a libflashplayer.so file, which is about 10MB is size.
  6. If you want all users in your system to have this alpha version of Adobe Flash Player 10 for Linux, copy the libflashplayer.so file to /usr/lib/mozilla/plugins/. The command is sudo cp libflashplayer.so /usr/lib/mozilla/plugins/
  7. If you want just the current user to try out the Flash player, copy the libflashplayer.so file to /home/yourUSERNAME/.mozilla/plugins/. The command is cp libflashplayer.so ~/.mozilla/plugins/
  8. Check that in ~/.mozilla/plugins/ there is no dormant file with the name npwrapper.libflashplayer.so. A common issue with people who migrate their profiles is to perform a simply copy of the profile. The effect of this is sometimes there is an actual file called npwrapper.libflashplayer.so instead of a symbolic link. The result is that these people would end up using some old buggy version of nspluginwrapper which might be the cause of Firefox crashes! When you backup, use cp -a, so symbolic links remain symbolic links.
  9. You can now start Mozilla Firefox. Visit about:plugins and verify that the version of Flash is something like Shockwave Flash 10.0 d20. Make sure there is no remnant of any other previous Flash player.
  10. If you want to return back to the 32-bit Flash Player with emulation, remove the file we just added and install again the flashplugin-nonfree package.

The instructions for other distributions should be fairly similar.

12Nov/080

Updated to Ubuntu 8.10


I just updated my system to Ubuntu 8.10. Since I had a separate partition for /home, I opted to actually reinstall while retaining the files in /home. The rest of the post is a laundry list of tips.

I could not find a blank CD or CDRW, so I opted to write the installation 8.10 ISO to a USB stick, then rebooted with the USB stick and finally installed. It was really fast and and convenient.

All hardware was properly detected (sound card: snd-hda-intel, wifi: iwl3945, bluetooth, intel graphics card). Regarding the sound card, some kind soul probably submitted the PCI ID and model information to the ALSA project, so there is no need anymore to specify manually.

I upgraded the stock OpenOffice.org 2.4.1 to OpenOffice.org 3.0. There are many ways to do it, however the easiest is to simply add the software source

deb http://ppa.launchpad.net/openoffice-pkgs/ubuntu intrepid main

and let the system update itself automatically. For more on this, see the instructions at softpedia.

OpenOffice.org does not support OpenType fonts yet. I had the impression that OpenOffice.org 3.0 could see OpenType fonts but had trouble printing or exporting to PDF. My test showed that OOo 3.0 could not see OpenType fonts such as the ttf-gfs-* fonts, even when trying to force loading with spadmin. OpenType support is scheduled for the next version of OpenOffice.org. For now, we can use the wide range of TTF fonts.

I installed VirtualBox by adding the repository details described at the VirtualBox Linux Download webpage. Then, I tried to search with Add/Remove or Synaptic, however I could not find the virtuabox package. Only the virtualbox-ose packages were visible. It appears there is some sort of bug in the package description. If you open Synaptic, then click on the Origin (Προέλευση) filter which shows packages per repository. Select the virtualbox repository and you can eventually see virtualbox-2.0. Pretty weird.

For Evolution Mail, previously one would package the files manually and then restore them. This was error-prone because the account information are saved in gconf, the passwords in ~/.gnome2_private, etc. The proper solution is to remember to perform a backup before installing a new version of Ubuntu. In Ubuntu 8.04 and Evolution (from GNOME 2.22) there is an option to backup your settings, which includes mails and all. You finally restore in your new system; when the new Evolution starts for the first time, you are asked whether you want to restore a previous backup.

Firefox would freeze momentarily for some strange reason. I run from the command line and I noticed that some pages that had references to Flash material would freeze Firefox while trying to locate the Flash plugin. This was solved be installing flashplugin-nonfree.

I installed the updated Greek layout, so I can now type ϡϠϸϕϟαϛϚϖϐʹ͵ϻϺ«»ᾶᾅἒᾥ in the same layout.

Update #1: Ubuntu 8.10 works better with a dual head configuration. In System/Preferences/Screen resolution, you can activate the second display. The utility realises that the (currently) hard-coded maximum virtual display is not big enough to accomodate both monitors, and it asks you to edit automatically the xorg configuration file in order to add the setting for you. After a logout and re-login sequences, dual head works. Sadly for my graphics card, this means that there is no 3D support in this mode. With Intel 965GM, if the virtual screen does not fit in 2048x2048, then you no can haz 3D. Actually, if I align the displays vertically, they do fit and I would be able to get 3D.

Update #2: Time to put the system temperature sensors (CPU, hard disk). For the backend, we install the lm-sensors and hddtemp packages. With lm-sensors, we need to run sudo sensors-detect so that the appropriate settings can be detected. If you have a recent Intel CPU, this will probably find that you need to add the coretemp kernel module to /etc/modules, then reboot to activate it. For the hard disk temperature, simply install hddtemp and choose yes when prompted to add the hddtemp service. For the front-end, install the sensors-applet applet. You need to logout and login again so that this applet, called Hardware Sensors Monitor, appears in the applets list. Once you add, click to enable all available sensors in the preferences.

3May/080

Using Anjuta in Ubuntu 8.04 to develop a GNOME C++ application (gtkmm)

You can install Anjuta 2.4.1 from the Synaptic package manager. You also need to install a few development packages. I do not know if there is a nice meta-package such as build-essential (used to install compilers et al), so I'll just ask you to install the packages by hand. A more elegant way would be very much appreciated to see in the comments.

$ sudo apt-get install build-essential libgtkmm-2.4-dev autogen automake libtool intltool libglademm-2.4-dev

That is the order of installation when you go trial by error inside Anjuta to compile a project. Each package draws in several other packages. Also, if you have the Ubuntu 8.04 DVD in your drive, most of these packages will be installed in a jiffy. We have the Greek localisation enabled, so bear with us. Thanks to Giannis Katsampiris for completing the recent update of the Anjuta 2.4 localisation.
Screenshot of Anjuta, initial screen (Localisation: Greek)
Once Anjuta is installed, you are presented with the Anjuta main window.

We then click on File/New/Project (Αρχείο/Νέο/1. Έργο),

Project creation wizard

We click on Forward here.

Choose project type

There are many many project types. We wade through and we pick to use C++ and GTKMM (C++ bindings for GTK+). We could pick any other variation; GTKMM was a request from the Ubuntu-gr mailing list.

Fill in some contact details

We then fill in some contact details.

Sorting out the project settings

There is an option to specify at this stage external packages. We opt not to specify them now.

We are actually done!

Once you click Apply (Εφαρμογή) - the button with the green tick, Anjuta will create an initial dummy package (actually a hello world application), and will run automatically the equivalent of ./configure for you.

Read to work!

Now, this is the final screen, when you start working. Here you would click on Κατασκευή/Κατασκευή έργου (Build/Build Project), so that the project gets compiled.

Then, you would click on Κατασκευή/Εκτέλεση προγράμματος... (Build/Run program...) to run the program!

Start typing!

Here is shows that we have located the source file (main.cc), and we see main().

It takes about 3 second to compile a program with g++ (at least on my system). Therefore, the dead time between (a) Let's compile it and (b) Oh, I am running my program!, is under 5 seconds, which is good.

15Mar/081

How to easily modify a program in Ubuntu (updated)?

Some time ago we talked about how to modify easily a program in Ubuntu. We gave as an example the modification of gucharmap; we got the deb source package, made the change, compiled, created new .deb files and installed them.

We go the same (well, similar) route here, by modifying the gtk+ library (!!!). The purpose of the modification is to allow us to type, by default, all sort of interesting Unicode characters, including ⓣⓗⓘⓢ , ᾅᾷ, ṩ, and many more.

The result of this exercise is to create replacement .deb packages for the gtk+ library that we are going to install in place of the system libraries. Because these new libraries will not be original Ubuntu packages, the update manager will be pestering us to rollback to the official gtk+ packages. This is actually good in case you want to switch back; you will have the enhanced functionality for as long as you postpone that update.

There is a chance we might screw up our system, so please make backups, or have a few drinks first and come back. I take no responsibility if something bad happens on your system. If you are having any second thoughts, do not follow the next steps; use the safer alternative procedure. You may try however this guide just for the kicks; up to the dpkg command below, no changes are being made to your system.

We use Ubuntu 7.10 here. This should work in other versions, though your mileage may vary.

The compilation procedure takes time (about 30 minutes) and space. Make sure you use a partition with >2GB of free space. We are not going to use up 2GB (a bit less than 1GB), but it's nice not to fill up partitions.

We are going to use the generic instructions on how to recompile a debian package by ducea.

First of all, install the development packages,

sudo apt-get install devscripts build-essential

Next, we use the apt-get source command to get the source code of the GTK+ 2 library,

cd /home/ubuntu/bigpartition_over2GB/
apt-get source libgtk2.0-0

We then pull in any dependencies that GTK+ may require. They are normally about a dozen packages, but we do not have to worry for the details.

apt-get build-dep libgtk2.0-0

At this stage we need to touch up the source code of GTK+ before we go into the compilation phase. Visit the bug report #321896 – Synch gdkkeysyms.h/gtkimcontextsimple.c with X.org 6.9/7.0 and download the patch (look under the Attachment section). You should get a file named gtk-compose-update.patch. If you have a look at the patch, you will notice that it expects to find the source of gtk+ in a directory called gtk+. Making a link solves the problem,

ln -s libgtk2.0-0 gtk+

We then attempt to apply the patch (perform a dry run), just in case.

patch -p0 --dry-run < /tmp/gtk-compose-update.patch

If this does not show an error message, you can the command again without the --dry-run.

patch -p0 < /tmp/gtk-compose-update.patch

Finally, we are ready to build our fresh GTK+ library.

cd libgtk2.0-0
debuild -us -uc

This will take time to complete, so go and do some healthy cooking.

At the end of the compilation, if all went OK, you should have about a dozen .deb files created. These are one directory higher (do a "cd .."). To install, use dpkg,

dpkg -i *.deb

If you have any other deb files in this directory, it's good to move them away before running the command. If all went ok, the .deb files should install without a hitch.

The final step is to restart your system. To test the new support, see the last section at this post. Use Firefox and OpenOffice.org to type those Unicode characters.

If you managed to wade through all these steps, I would appreciate it if you could post a comment.

Good luck!

29Feb/081

FOSDEM ’08, summary and comments

I attended FOSDEM '08 which took place on the 23rd and 24th of February in Brussels.

Compared to other events, FOSDEM is a big event with over 4000 (?) participants and over 200 lectures (from lightning talks to keynotes). It occupied three buildings at a local university. Many sessions were taking place at the same time and you had to switch from one room to another. What follows is what I remember from the talks. Remember, people recollect <8% of the material they hear in a talk.

The first keynote was by Robin Rowe and Gabrielle Pantera, on using Linux in the motion picture industry. They showed a huge list of movies that were created using Linux farms. The first big item in the list was the movie Titanic (1997). The list stopped at around 2005 and the reason was that since then any significant movie that employs digital editing or 3D animation is created on Linux systems. They showed trailers from popular movies and explained how technology advanced to create realistic scenes. Part of being realistic, a generated scene may need to be blurred so that it does not look too crisp.

Next, Robert Watson gave a keynote on FreeBSD and the development community. He explained lots of things from the community that someone who is not using the distribution does not know about. FreeBSD apparently has a close-knit community, with people having specific roles. To become a developer, you go through a structured mentoring process which is great. I did not see such structured approach described in other open-source projects.

Pieter Hintjens, the former president of the FFII, talked about software patents. Software patents are bad because they describe ideas and not some concrete invention. This has been the view so that the target of the FFII effort fits on software patents. However, Pieter thinks that patents in general are bad, and it would be good to push this idea.

CMake is a build system, similar to what one gets with automake/autoconf/makefile. I have not seen this project before, and from what I saw, they look quite ambitious. Apparently it is very easy to get your compilation results on the web when you use CMake. In order to make their project more visible, they should make effort on migration of existing projects to using CMake. I did not see yet a major open-source package being developed with CMake, apart from CMake itself.

Richard Hughes talked about PackageKit, a layer that removes the complexity of packaging systems. You have GNOME and your distribution is either Debian, Ubuntu, Fedora or something else. PackageKit allows to have a common interface, and simplifies the workflow of managing the installation of packages and the updates.

In the Virtualisation tracks, two talks were really amazing. Xen and VirtualBox. Virtualisation is hot property and both companies were bought recently by Citrix and Sun Microsystems respectively. Xen is a Type 1 (native, bare metal) hypervisor while VirtualBox is a Type 2 (hosted) hypervisor. You would typically use Xen if you want to supply different services on a fast server. VirtualBox is amazingly good when you want to have a desktop running on your computer.

Ian Pratt (Xen) explained well the advantages of using a hypervisor, going into many details. For example, if you have a service that is single-threaded, then it makes sense to use Xen and install it on a dual-core system. Then, you can install some other services on the same system, increasing the utilisation of your investment.

Achim Hasenmueller gave an amazing talk. He started with a joke; I have recently been demoted. From CEO to head of virtualisation department (name?) at Sun Microsystems. He walked through the audience on the steps of his company. The first virtualisation product of his company was sold to Connectix, which then was sold to Microsoft as VirtualPC. Around 2005, he started a new company, Innotek and the product VirtualBox. The first customers were government agencies in Germany and only recently (2007) they started selling to end-users.

Virtualisation is quite complex, and it becomes more complex if your offering is cross platform. They manage the complexity by making VirtualBox modular.

VirtualBox comes in two versions; an open-source version and a binary edition. The difference is that with the binary edition you get USB support and you can use RDP to access the host. If you installed VirtualBox from the repository of your distribution, there is no USB support. He did not commit whether the USB/RDP support would make it to the open-source version, though it might happen since Sun Microsystems bought the company. I think that if enough people request it, then it might happen.

VirtualBox uses QT 3.3 as the cross platform toolkit, and there is a plan to migrate to QT 4.0. GTK+ was considered, though it was not chosen because it does not provide yet good support in Win32 (applications do not look very native on Windows). wxWidgets were considered as well, but also rejected. Apparently, moving from QT 3.3 to QT 4.0 is a lot of effort.

Zeeshan Ali demonstrated GUPnP, a library that allows applications to use the UPnP (Universal Plug n Play) protocol. This protocol is used when your computer tells your ADSL model to open a port so that an external computer can communicate directly with you (bypassing firewall/NAT). UPnP can also be used to access the content of your media station. The gupnp library comes with two interesting tools; gupnp-universal-cp and gupnp-network-light. The first is a browser of UPnP devices; it can show you what devices are available, what functionality they export, and you can control said devices. For example, you can use GUPnP to open a port on your router; when someone connects from the Internet to port 22 on your modem, he is redirected to your server, at port 22.

You can also use the same tool to figure out what port mapping took place already on your modem.

The demo with the network light is that you run the browser on one computer and the network light on another, both on the local LAN (this thing works only on the local LAN). Then, you can use the browser to switch on/off the light using the UPnP protocol.

Dimitris Glezos gave a talk on transifex, the translation management framework that is currently used in Fedora. Translating software is a tedious task, and currently translators spent time on management tasks that have little to do with translation. We see several people dropping from translations due to this. Transifex is an evolving platform to make the work of the translator easier.

Dimitris talked about a command-line version of transifex coming out soon. Apparently, you can use this tool to grab the Greek translation of package gedit, branch HEAD. Do the translation and upload back the file.

What I would like to see here is a tool that you can instruct it to grab all PO files from a collection of projects (such as GNOME 2.22, UI Translations), and then you translate with your scripts/tools/etc. Then, you can use transifex to upload all those files using your SVN account.

The workflow would be something like

$ tfx --project=gnome-2.22 --collection=gnome-desktop --action=get
Reading from http://svn.gnome.org/svn/damned-lies/trunk/releases.xml.in... done.
Getting alacarte... done.
Getting bug-buddy... done.
...
Completed in 4:11s.
$ _

Now we translate any of the files we downloaded, and we push back upstream (of course, only those files that were changed).

$ tfx --project=gnome-2.22 --collection=gnome-desktop --user=simos --action=send
 Reading local files...
Found 6 changed files.
Uploading alacarte... done.
...
Completed uploading translation files to gnome-2.22.
$ _

Berend Cornelius talked about creating OpenOffice.org Wizards. You get such wizards when you click on File/Wizards..., and you can use them to fill in entries in a template document (such as your name, address, etc in a letter), or use to install the spellchecker files. Actually, one of the most common uses is to get those spellchecker files installed.

A wizard is actually an OpenOffice.org extension; once you write it and install it (Tools/Extensions...), you can have it appear as a button on a toolbar or a menu item among other menus.

You write wizards in C++, and one would normally work on an existing wizard as base for new ones.

When people type in a word-processor, they typically abuse it (that's my statement, not Berend's) by omitting the use of styles and formatting. This makes documents difficult to maintain. Having a wizard teach a new user how to write a structured document would be a good idea.

Perry Ismangil talked about pjsip, the portable open-source SIP and media stack. This means that you can have Internet telephony on different devices. Considering that Internet Telephony is a commodity, this is very cool. He demonstrated pjsip running two small devices, a Nintendo DS and an iPhone. Apparently pjsip can go on your OpenWRT router as well, giving you many more exciting opportunities.

Clutter is a library to create fast animations and other effects on the GNOME desktop. It uses hardware acceleration to make up for the speed. You don't need to learn OpenGL stuff; Clutter is there to provide the glue.

Gutsy has Clutter 0.4.0 in the repositories and the latest version is 0.6.0. To try out, you need at least the clutter tarball from the Clutter website. To start programming for your desktop, you need to try some of the bindings packages.

I had the chance to spend time with the DejaVu guys (Hi Denis, Ben!). Also met up with Alexios, Dimitris x2, Serafeim, Markos and others from the Greek mission.

Overall, FOSDEM is a cool event. In two days there is so much material and interesting talks. It's a recommended technical event.

Switch to our mobile site