Tag : patch

From new user to kernel compilation to upstream fix

It is quite exciting when helping new users solve issues while migrating to the Linux operating system, and Ubuntu Linux in this case.

A couple of weeks ago, a new member at the Ubuntu-gr forum posted a question about a sound problem in an Ubuntu Linux installation.

Alsa Mixer

Alsa Mixer

Here is the timeline

  1. An initial post was made with the relevant hardware information.
  2. More information was gathered that led to the PCI ID and subsystem ID of the sound card, which further led to the source of a patch for a quirk.
  3. The advice to recompile the full kernel (with the patch) was given. This process required over 10GB, which caused the distribution to crash. The user was fine to reinstall.
  4. A subsequent route was taken to simply compile Alsa (not the full kernel) and add the patch.
  5. This route was successful and the sound was now working.
  6. We want to post this patch upstream so that newer versions of the kernel contain the fix. In addition, all distributions will benefit as well.
  7. A bug report was submitted to the Alsa bugtracking #0004561. We now wait.
  8. Days are passing with no progress. A question at #alsa (Freenode) shows that the Alsa bugtracking is probably not used, so there is need to contact the developers through the mailing list.
  9. An e-mail is sent to the Alsa mailing list with the patch. The Alsa developer takes the patch and applies to his tree. We missed by several days the release of Linux 2.6.30; the patch should appear in 2.6.31.

The whole process took ten days. It is amazing how rewarding it is to follow the open-source processes and contribute the personal time to help make open-source better.

The patch was evidently elemental, however it required new testing to make sure it works, and that it applies to the current state of Alsa. There are many areas that you can contribute some of your time to make open-source better.

I would like to thank Theodora for going through the process, locating and verifying the patch, so that now it is pending inclusion in Linux 2.6.31.

Update 22Apr 2010: The change has been added to the Linux kernel :-). It’s a tiny small change that anyone can do.


thersa.org.uk, infected.

Probably through SQL injection, this page of thersa.org.uk links to a javascript file from some server in China

The screenshot shows the thersa.org.uk website has been infected, and users that visit it end up running in their browsers malicious JavaScript code. The code loads Javascript files from the .cn and the .la domains.

There is a reference in one of the files to a cookie named killav (Kill Antivirus?) that may disable some antivirus programs.

In addition, one of the JavaScript files checks which browser you have. If you have Internet Explorer 6 or 7, it loads some exploit which attempts to run binary code. If this succeeds, you are infected. If you have Firefox, it does not attempt to perform an infection, and it goes to the next phase.

The next phase is to open up pages to sites in China. It appears to me that the bussines plan in that case is to generate revenue from ad hits.

The worst thing however is if you get infected. Unpatched windows systems are at the mercy of these attackers.

One way to mitigate such risks is to use Mozilla Firefox, and have the NoScript add-on installed.

Update 5 June 2008:

The RSA updated their website by moving it away from Windows and ASP, to open source software. They are using Centos Linux, Apache, and an open-source CMS. Therefore, the above security risk does not apply any more.

task update (el)

Ακολουθώντας το παράδειγμα του Δημήτρη για συνοπτική ενημέρωση των πεπραγμένων,

  • Πρόσθεσα τις μεταφράσεις του Γιάννη Κατσαμπίρη στο SVN του GNOME. Έκανα έλεγχο των μεταφράσεων και έστειλα σχόλια στη λίστα του gnome.gr. Ο Γιάννης μετέφρασε ή ενημέρωσε τις μεταφράσεις για τα vinagre, gnome-mag, mousetweaks, mousetweaks-help.
  • Έκανα σχόλια στο http://laptop.grinia.net/ για τη διαβούλευση για το μαθητικό υπολογιστή. Βλέπω ότι δεν έχουν γίνει πολλά σχόλια από άλλους. Είναι καλό να το κάνετε.
  • Πρόσθεσα το ιστολόγιο του Αλέξανδρου στον πλανήτη. Ανταλλάξαμε μερικά γράμματα για κάποια τεχνικά ζητήματα (μια εγγραφή είχε ένα χαρακτήρα που δεν είναι utf-8 οπότε όλο το feed φαινόταν με ?????, πως μπορούμε να συνδιάσουμε κατηγορίες του wordperss για τη δημιουργία πιο κατάλληλου feed, χρήση του feedburner). Απομένουν: χρήση των ειδικών βελτιώσεων του feedburner όπως αναγραφή αριθμού σχολίων. Χμμ, ολόκληρες εγγραφές στο feed;
  • Έστειλα γράμματα στη λίστα εξελληνισμού του μαθητικού υπολογιστή για 1) υπενθύμηση του glossary που παρέχει το ellak.gr για όρους πληροφορικής (μπορεί κάποιος να κάνει σχόλια/αλλαγές), 2) αναφορά για τη μετάφραση του eToys (τώρα είμαστε στο %6).
  • Πριν από μερικές εβδομάδες έγινε δεκτό το patch για την ελληνική διάταξη πληκτρολογίου, για τη χρήση των συμβόλων dead_psili, dead_dasia. Αυτό σημαίνει ότι στις νέες διανομές του Μαρτίου/Απριλίου το πολυτονικό θα δουλεύει, αλλά μπορεί και όχι…
  • Στάλθηκε patch για την υποστήριξη του πολυτονικού από το GTK+· λόγω του σχεδόν κλειστού παραθύρου για εισαγωγή νέων χαρακτηριστικών στο GTK+, αυτό θα μπει μάλλον αργότερα, στην επόμενη έκδοση.
  • Όταν κάνεις αποπροσάρτηση ενός τόμου/συσκευής USB, το σύστημα δεν θέτει τη συσκευή σε κατάσταση εκτός λειτουργίας ή χαμηλής κατανάλωσης. Αυτά σε Nautilus αλλά πιστεύω και αλλού. Δεν έχουν όλες οι συσκευές τη δυνατότητα αυτή και φαίνεται ότι δεν έχω ούτε μία τέτοια συσκευή (που να υποστηρίζει off-standby). Από την άλλη πλευρά, το VirtualBox κατάφερε να θέσει μια τέτοια συσκευή σε κατάσταση off (πώς το έκανε!;!;) Η προσθήκη υποστήριξης είναι στο TODO για τώρα.
  • Το Σ/Κ θα είμαι στις Βρυξέλλες για το FΟSDΕΜ!

Ενημέρωση: σύνδεσμος με τα σχόλια από τη διαβούλευση.

One-line hardware support (USB Wireless Adapter)

I got recently a USB Wireless Adaptor, produced by Aztech. It was a good buy for several reasons:

  • It advertised Linux support
  • It was affordable
  • It had good quality casing; you can step on it and it won’t break
  • It had the Penguin on the box and was really really cheap

When I plugged it in on my Linux system, it did not work out of the box. The kernel acknowledged that a USB device was inserted (two lines in /var/log/messages) but no driver claimed the device.

With the package came a CD which had drivers for several operating systems, including Linux. Apparently one would need to install the specific driver. I think the driver was available in both source code and as a binary package (for some kernel version).

The kernel module on the CD was called zd1211, so I checked whether my kernel had such a module installed. To my surprise, there was such a kernel module, called zd1211rw. I hope you have better chance with the URL because now the website appears to be down (Error 500).

Therefore, what was wrong with my zd1211rw kernel module? Reading the documentation of project website, I figured out that you have to report the ID (called the USB ID) of your adapter  so that it is included in the kernel module, and when you plug in your device, it will be automatically detected.

You can find the USB ID by running the command lsusb. Then, it is a one-line patch for the zd1211rw driver to add support for the device,

— zd1211rw.linux2.6.20/zd_usb.c      2007-09-25 14:48:06.000000000
+++ zd1211rw/zd_usb.c    2007-09-28 11:35:51.000000000 +0300
@@ -64,6 +64,7 @@
{ USB_DEVICE(0x13b1, 0x0024), .driver_info = DEVICE_ZD1211B },
{ USB_DEVICE(0x0586, 0x340f), .driver_info = DEVICE_ZD1211B },
{ USB_DEVICE(0x0baf, 0x0121), .driver_info = DEVICE_ZD1211B },
+       { USB_DEVICE(0x0cde, 0x001a), .driver_info = DEVICE_ZD1211B },
/* “Driverless” devices that need ejecting */
{ USB_DEVICE(0x0ace, 0x2011), .driver_info = DEVICE_INSTALLER },
{ USB_DEVICE(0x0ace, 0x20ff), .driver_info = DEVICE_INSTALLER },

What Aztech should have done is to submit the USB ID to the developers of the zd1211rw driver. In this way, any Linux distribution that comes out with the updated kernel will have support for the device.

It is very important to get the manufacturers to change mentality. From offering a CD with “drivers”, for free and open-source software they should also work upstream with the device driver developers of the Linux kernel. The effort is small and the customer benefits huge.

Important MO file optimisation for en_* locales, and partly others

During GUADEC, Tomas Frydrych gave a talk on exmap-console, a cut-down version of exmap that can work well on mobile devices.

During the presentation, Tomas showed how to use the tool to find the culprits in memory (ab)use on the GNOME desktop. One issue that came up was that the MO files taking up space though the desktop showed English. Why would the MO translation files loaded in memory be so big in size?

gtk20.mo                             : VM   61440  B, M   61440  B, S   61440  B

atk10.mo                      	     : VM    8192  B, M    8192  B, S    8192  B

libgnome-2.0.mo			: VM   28672  B, M   24576  B, S   24576  B

glib20.mo			     : VM   20480  B, M   16384  B, S   16384  B

gtk20-properties.mo           : VM     128 KB, M     116 KB, S     116 KB

launchpad-integration.mo  : VM    4096  B, M    4096  B, S    4096  B

A translation file looks like

msgid “File”

msgstr “”

When translated to Greek it is

msgid “File”

msgstr “Αρχείο”

In the English UK translation it would be

msgid “File”

msgstr “File”

This actually is not necessary because if you leave those messags untranslated, the system will use the original messages that are embedded in the executable file.

However, for the purposes of the English UK, English Canadian, etc teams, it makes sense to copy the same messages in the translated field because it would be an indication that the message was examined by the translation. Any new messages would appear as untranslated and the same process would continue.

Now, the problem is that the gettext tools are not smart enough when they compile such translation files; they replicate without need those messages occupying space in the generated MO file.

Apart from the English variants, this issue is also present in other languages when the message looks like

msgid “GConf”

msgstr “GConf”

Here, it does not make much sense to translate the message in the locale language. However, the generated MO file contains now more than 10 bytes (5+5) , plus some space for the index.

Therefore, what’s the solution for this issue?

One solution is to add to msgattrib the option to preprocess a PO file and remove those unneeded copies. Here is a patch,

— src.ORIGINAL/msgattrib.c 2007-07-18 17:17:08.000000000 +0100
+++ src/msgattrib.c 2007-07-23 01:20:35.000000000 +0100
@@ -61,7 +61,8 @@
REMOVE_FUZZY = 1 << 2,
+ REMOVE_COPIED = 1 << 6
static int to_remove;

@@ -90,6 +91,7 @@
{ “help”, no_argument, NULL, ‘h’ },
{ “ignore-file”, required_argument, NULL, CHAR_MAX + 15 },
{ “indent”, no_argument, NULL, ‘i’ },
+ { “no-copied”, no_argument, NULL, CHAR_MAX + 19 },
{ “no-escape”, no_argument, NULL, ‘e’ },
{ “no-fuzzy”, no_argument, NULL, CHAR_MAX + 3 },
{ “no-location”, no_argument, &line_comment, 0 },
@@ -314,6 +316,10 @@
to_change |= REMOVE_PREV;

+ case CHAR_MAX + 19: /* –no-copied */
+ to_remove |= REMOVE_COPIED;
+ break;
@@ -436,6 +442,8 @@
–no-obsolete remove obsolete #~ messages\n”));
printf (_(“\
–only-obsolete keep obsolete #~ messages\n”));
+ printf (_(“\
+ –no-copied remove copied messages\n”));
printf (“\n”);
printf (_(“\
Attribute manipulation:\n”));
@@ -536,6 +544,21 @@
: to_remove & REMOVE_NONOBSOLETE))
return false;

+ if (to_remove & REMOVE_COPIED)
+ {
+ if (!strcmp(mp->msgid, mp->msgstr) && strlen(mp->msgstr)+1 >= mp->msgstr_len)
+ {
+ return false;
+ }
+ else if ( strlen(mp->msgstr)+1 < mp->msgstr_len )
+ {
+ if ( !strcmp(mp->msgstr + strlen(mp->msgstr)+1, mp->msgid_plural) )
+ {
+ return false;
+ }
+ }
+ }
return true;
However, if we only change msgattrib, we would need to adapt the build system for all packages.

Apparently, it would make sense to change the default behaviour of msgfmt, the program that compiles PO files into MO files.

An e-mail was sent to the email address for the development team of gettext regarding the issue. The development team does not appear to have a Bugzilla to record these issues. If you know of an alternative contact point, please notify me.

Update #1 (23Jul07): As an indication of the file size savings, the en_GB locale on Ubuntu in the installation CD occupies about 424KB where in practice it should have been 48KB.

A full installation of Ubuntu with some basic KDE packages (only for the basic libraries, i.e. KBabel – (ls k* | wc -l = 499)) occupies about 26MB of space just for the translation files. When optimising in the MO files, the translation files occupy only 7MB. This is quite important because when someone installs for example the en_CA locale, all en_?? locales are added.

The reason why the reduction is more has to do with the message types that KDE uses. For example,

msgid “”
“_: Unknown State\n”
msgstr “Unknown”

I cannot see a portable way to code the gettext-tools so that they understand that the above message can be easily omitted. For the above reduction to 7MB, KDE applications (k*) occupy 3.6MB. The non-KDE applications include GNOME, XFCE and GNU traditional tools. The biggest culprits in KDE are kstars (386KB) and kgeography (345KB).

Update #2 (23Jul07): (Thanks Deniz for the comment below on gweather!) The po-locations translations (gnome-applets/gweather) of all languages are combined together to generate a big XML file that can be found at usr/share/gnome-applets/gweather/Locations.xml (~15MB).

This file is not kept in memory while the gweather applet is running.
However, the file is parsed when the user opens the properties dialog to change the location.
I would say that the main problem here is the file size (15.8MB) that can be easily reduced when stripping copied messages. This file is included in any Linux distribution, whatever the locale.

The po-locations directory currently occupies 107MB and when copied messages are eliminated it occupies 78MB (a difference of 30MB). The generated XML file is in any case smaller (15.8MB without optimisation) because it does not include repeatedly the msgid lines for each language.

I regenerated the Locations.xml file with the optimised PO files and the resulting file is 7.6MB. This is a good reduction in file space and also in packaging size.

Update #3 (25Jul07): Posted a patch for gettext-tools/msgattrib.c. Sent an e-mail to the kde-i18n-doc mailing list and got good response and a valid argument for the proposed changes. Specifically, there is a case when one gives custom values to the LANGUAGE variable. This happens when someone uses the LANGUAGE variable with a value such as “es:fr” which means show me messages in Spanish and if something is untranslated show me in French. If a message has msgid==msgstr for Spanish but not for French, then it would show in French if we go along with the proposed optimisation.


(see http://www.guadec.org/schedule/warmup)

At the first presentation, Quim Gil talked about GNOME marketing, what have been done, what is the goal of marketing. He showed a focused mind on important marketing tasks; it is easy to get carried away and not be effective, a mistake that happens in several projects.

The next session was by Tomas Frydrych (Open Hand – I have their sticker on my laptop!) on memory use in GNOME applications. Many people complain that XYZ is bloated. However, this does not convey what exactly happens; pretty useless. In addition, the common tools that show memory use do not show the proper picture because of the memory management techniques. That is, due to shared libraries, the total memory occupied by an application appears very big. A tool examined is exmap. This tool uses a kernel module that shows memory use of applications by reading in /proc. It takes a snapshot of memory use; it’s not real-time info. It comes with a GTK+ front-end (gexmap) that requires a big screen (oops, PDAs). However, it is not suitable for internet tablets and other low-spec devices. Therefore, they came up with exmap-console which addresses the shortcommings. It has a console interface based on the readline library.

Here are the rest of my notes. Hope they make sense to you.

. exmap –interactive
. ?: help
. Head: quite useful (dynamic allocation)
. Mapped:
. Sole use: memory that app is using on its own (rss?)
. “sort vm”
. “print” or “p”
. “add nautilus”
. “clear”
. “detail file” (what executables/libs loaded and how much consume)
. “detail none”

Sole use
. valgrind, to analyse Sole Use memory?
. “detail ????”

Lots of small libraries: overhead

Looking ahead
. Pagemap: by Matt Macall
. http://projects.o-hand.com/exmap-console/

. Sole use: ~18MB ;-(

Tomas was apparently running Ubuntu with the English UK locale. The English UK translation team is doing an amazing job at the translation stats. Actually, most messages are copied, however with a script one can pick up words such as organization and change to organisation. The problem here is that, for example, the GAIM mo file is 215KB (?), however for the British English translation the actual changes should be less than 2-3KB. Messages that are missing from a translation mean that the original US English messages will be used. I’ll have to find how to use msgfilter to make messages untranslated if msgid == msgstr. Where is Danilo?

After lunch time (did not go for lunch), I went to the Accerciser session. Pretty cool tool, something I have been look for. Accerciser uses the accessibility framework of GNOME in order to inspect the windows of running applications and see into the properties. A good use is to identify if elements such as text boxes come with description labels; they are important to be there for accessibility purposes (screen reader), as a person that depends on software to read (text to speech) the contents of windows.

The next session was GNOME accessibility for blind people. Jan Buchal gave an excellent presentation.

My notes,

. is from Chech republic, is blind himself. has been using computers for 20+ years

. from user perspective
. users, regular and irregular 😉
. software
. firefox 3.0beta – ok for accessibility other versions no
. gaim messenger ok
. openoffice.org ok but did not try
. orca screenreader ^^^ works ok.
. generally ready for prime time
. ubuntu guy for accessibility was there
. made joke about not having/needing display slides ;-]
. synthesizer: festival, espeak, etc – can choose
. availability of voices
. javascript: not good for accessibility
. links/w3m: just fine!
. firefox3 makes accessibility now possible.
. web designer education, things like title=””, alt=”” for images.
. OOo, not installed but should work, ooo-gnome
. “braillcom” company name
. “speech dispatcher”
. logical events
. have short sound event instead of “button”, “input form”
. another special sound for emacs prompt, etc.
. uses emacs
. have all events spoken, such as application crashing.
. problems of accessibility
. not money main factor, but still exists.
. standard developers do not use accessibility functions
. “accessor” talk, can help
. small developer group on accessiblity, may not cooperate well
. non-regular users (such as blind musician)
. musicians
. project “singing computer”
. gtk, did not have good infrastructure
. used lilypond (music typesetter, good but not simple to use)
. singing mode in festival
. use emacs with special mode to write music scores (?)
. write music score and have the computer sing it (this is not “caruso”)
. gnome interface for lilypond would be interesting
. chemistry for blind
. gtk+
. considering it
. must also work, unfortunately, on windows
. gtk+ for windows, not so good for accessibility
. conclusion: free accessibility
. need users so that applications can be improved
. have festival synthesizer, not perfect but usable
. many languages, hindi, finnish, afrikaans
. endinburgh project, to reimplement festival better
. proprietary software is a disadvantage
. q: how do you learn to use new software?
. a: has been a computer user for 20+ years, is not good candidate to say
. a: if you are dedicated, you can bypass hardles, old lady emacs/festival/lilypond
. brrlcom, not for end-users(?)
. developer problem?
. generally there is lack of documentation; easy to teach what a developer needs to know
. so that the application is accessible
. HIG Human Interface Guidelines, accessible to the developers
. “speakup” project
. Willy, from Sun microsystems, working on accessibility for +20 years, Lead of Orca.
. developers: feel accessibility is a hindrance to development
. in practice the gap is not huge
. get tools (glade) and gtk+ to come with accessibility on by default
. accessibility
. is not only for people with disabilities
. can do amazing things like 3d interfaces something

These summaries are an important example of the rule that during presentation, participants tend to remember only about 8% of the material. In some examples, even less is being recollected.

Επιστροφή από GUADEC 2006

Σήμερα το πρωί επέστρεψα από το συνέδριο GNOME User and Developer European Conference (GUADEC).

Το συνέδριο ήταν μια πολύ καλή ευκαιρία για να συναντηθούν τα άτομα που εργάζονται στο ίδιο το γραφικό περιβάλλον GNOME και αλλά σημαντικά έργα όπως το Xorg.

Οι πρώτες δύο μέρες ήταν για warm up και υπήρχαν θέματα γενικά για το ελεύθερο λογισμικό. Υπήρξαν αναφορές για τοπικοποίηση ελεύθερου λογισμικού όπως OOo και Mozilla. Ο οργανισμός SIL International έκανε επίδειξη την δουλειά που κάνει με τη βιβλιοθήκη graphite, που επιτρέπει την απεικόνιση περίπλοκων γραφών (ινδικά, κτλ) καθώς και τη γραφή με τη χρήση combining marks. Για το τελευταίο, όταν π.χ. κάποιος γράφει ελληνικά μπορεί να χρησιμοποιήσει είτε χαρακτήρες precomposed (με τα σημάδια ήδη επάνω τους) είτε τους χαρακτήρες της αλφαβήτου με τα combining marks. Δοκιμάστε να γράψετε σε GNOME

α + Ctr-Shift-301 παράγει ά

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

Με τη μηχανή graphite είναι δυνατό να αποδοθούν οι κατάλληλες πληροφορίες στις γραμματοσειρές για να γίνει η σωστή απεικόνιση.
Ακόμα, η βιβλιοθήκη KMFL επιτρέπει το εύκολο γράψιμο σε άλλες γλώσσες. Σε Ubuntu είναι διαθέσιμη ως συστατικό του SCIM.

Ο Federico Mena Quintero έκανε μια βασική παρουσίαση για τα πρώτα βήματα στο προγραμματισμό και στη δημιουργία επιρραμμάτων (patches). Στόχος της παρουσίασης ήταν να κάνει την τοπική κοινότητα να ξεκινήσει τον προγραμματισμό.

Την πρώτη ημέρα του Guadec ο Jeff Waugh άνοιξε το συνέδριο με παρουσίαση των βασικών στόχων του έργου GNOME. Στο προσκήνιο είναι ο Dave Neary.
Go to the screencast

Ο Alex Graveley παρουσίασε το Gimmie, ενός προγράμματος που μπορεί να αντικαταστήσει το ταμπλώ στο GNOME. Υπάρχει τώρα και ελληνική μετάφραση του πακέτου.

Ο Miguel κάθεται στα δεξιά (πράσινο t-shirt).

Η Kathy Sierra έκανε μια παρουσίαση με τίτλο How to make passionate users. Η παρουσίαση αυτή ήταν από της καλύτερες του συνεδρίου διότι παρουσίασε προβλήματα στη σωστή προβολή και διάδοση ελεύθερου λογισμικού. Συγκεκριμένα, πρέπει να υπάρχει μια ροή κατά τη διάρκεια της εκμάθησης ενός νέου πακέτου λογισμικού ώστε να γίνει η μετατροπή ενός νέου χρήστη σε ένα παθιασμένο χρήστη.
O Behdad έκανε μια παρουσίαση για το pango και τις γραμματοσειρές. Υπάρχει ένα ζήτημα για το θέμα της σωστής υποστήριξης ελληνικών στη διανομή Fedora Core Linux. Αυτή τη στιγμή η πιο κατάλληλη ελεύθερη γραμματοσειρά είναι η DejaVu. Δεν έγινε αναφορά στο ζήτημα αυτό, σε αυτό το σημείο.
O Robert Love έκανε μια παρουσίαση για το NetworkManager, που επιτρέπει εφαρμογές να διατηρούν μια σωστή σύνδεση με το δίκτυο. Το πακέτο αυτό είναι ιδιαίτερο σημαντικό όταν υπάρχουν πολλαπλά access points και θέλετε να υπάρχει αυτόματη ρύθμιση δικτύου. Στην ίδια παρουσίαση, ο Robert αναφέρθηκε και το πακέτο FUSE που επιτρέπει στους χρήστες να γράφουν τα δικά τους συστήματα αρχείων σε κατάσταση χρήστη (userspace).
Ο Damien Sandras παρουσίασε το Ekiga, πρόγραμμα επικοινωνίας μέσω φωνής και βίντεο. Φαίνεται ότι υπάρχει ανάγκη για βοήθεια στο θέμα της προώθησης του λογισμικού (μάρκετινγκ).

Ο Alexander Larsson παρουσίασε το νέο API για εκτυπώσεις σε GTK+. Υπήρξε συζήτηση για κάποιες επιλογές με το ενδεχόμενο να υπάρχουν άλλες επιλογές. Πάντως έγινε αναφορά ότι για τώρα δεν είναι εύκολη η αντιγραφή και επικόλληση του κειμένου μέσα από το νέο API.

Έπειτα, ο Federico έκανε το μεσημεριανό keynote με τίτλο How Much Faster? περιγράφοντας τις στρατηγικές βελτιστοποίησης του λογισμικού ώστε να μην υπάρχει παράξενα κολλήματα κατά τη χρήση (ζητήματα ροής από την παρουσίαση της Kathy). Υπάρχει ένα σημαντικό θέμα στην ανάλυση πακέτων λογισμικού όπως Evolution και Firefox για τη βελτιστοποίηση της χρήσης μνήμης και της διαδραστικότητάς τους.
O Glynn Foster παρουσίασε το πακέτο DTrace που επιτρέπει τον έλεγχο της λειτουργίας λογισμικού (χρειάζεται αλλαγές στον πυρήνα). Το DTrace είναι διαθέσιμο σε Solaris και FreeBSD. Είναι αρκετά καλό να το χρησιμοποιήσει κάποιος για την κατανόηση των προβλημάτων μνήμης/ταχύτητας των πακέτων ελεύθερου λογισμικού.

Την επόμενη μέρα, ο Lluis Sanchez παρουσίασε το MonoDevelop και τα νεώτερά του χαρακτηριστικά. Το MonoDevelop επιτρέπει την εύκολη δημιουργία εφαρμογών σε Mono αλλά και για άλλες γλώσσες.

Ο Jim Gettys παρουσίασε το έργο OLPC και αναφέρθηκε στις πληροφορίες που μπορεί να βρει κάποιος και από το www.laptop.org. Έβγαλα φωτογραφίες με τις διαφάνειες και θα τις βάλω κάπου σύντομα.

Ο Lluis Villa έκλεισε το συνέδριο GUADEC με μια πολύ δυνατή παρουσίαση. Ο Lluis ήταν bugmaster στο bugzilla.gnome.org και έχει προσφέρει αρκετά. Τώρα ξεκινά πτυχίο για δικηγόρος με αποτέλεσμα να είναι εκτός της σκηνής για τα επόμενα 4 χρόνια. Χρησιμοποίησε το στοιχείο αυτό για να αναφερθεί στο 2010 και σε τι πιστεύει να έχει γίνει μέχρι τότε. Το μήνυμά του ήταν ότι GNOME is about people.
Οι επόμενες δύο μέρες ήταν της μορφής After Hours workshop.

Υπήρξε μια συζήτηση για το OLPC από τον Jim Gettys. Έγινε αναφορά στην τοπικοποίηση και στα τυχόν προβλήματα καθώς και στο ζήτημα της ανάγκης hinting στις γραμματοσειρές.

Ακόμα, έγινε μια συζήτηση για το θέμα των γραμματοσειρών στη διανομή Fedora. Όπως είναι τώρα, όταν κάποιος εγκαταστήσει ελληνικά, έχει ένα αποτέλεσμα που μοιάζει με αυτό το χάλι. Ο λόγος για τον οποίο δεν έχει μπει άμεσα η γραμματοσειρά DejaVu στη διανομή Fedora είναι διότι η γραμματοσειρά αυτή περιλαμβάνει αραβικούς χαρακτήρες και μπορεί εν δυνάμει να δημιουργήσει πρόβλημα στους χρήστες από αραβικές χώρες. Ωστόσο, το ίδιο ζήτημα το έχουμε στα ελληνικά, και η πραγματική λύση είναι η επέκταση του υποσυστήματος fontconfig για να επιτρέπει τη μη-χρήση χαρακτήρων σε συγκεκριμένες γραμματοσειρές μέσω του αρχείου ρυθμίσεων /etc/fonts/fonts.conf

Ο Keith Package δήλωσε ότι θα δεχτεί επίρραμμα (patch) για την προσθήκη της νέας λειτουργίας, που θα απενεργοποιεί μια και καλή περιοχές χαρακτήρως σε συγκεκριμένες γραμματοσειρές. Κάτι τέτοιο είναι καλό για τα ελληνικά. Από την πλευρά του, οι Nicholas και Jay (sun.com) ετοίμασαν ένα επίρραμμα που υλοποιεί κάτι παραπλήσιο αλλά επιτρέπει εκείνους τους κακούς χαρακτήρες να είναι χρησιμοποιήσιμοι με απευθείας επιλογή. Κάτι τέτοιο ίσως είναι πιο θεμιτό διότι για π.χ. το κοινό που γράφει CJK και θέλουν τα ελληνικά που υπάρχουν στις γραμματοσειρές τους.

Ο Behdad από την πλευρά του δήλωσε ότι θα δεχτεί την DejaVu LGC. Τώρα είμαστε στο σημείο να κλείσει το ζήτημα με την επιλογή μιας ή και των δύο επιλογών.

Έκανα μια παρουσίαση για το θέμα της γραφής στο GNOME και συγκεκριμένα ότι είναι θεμιτό (desirable) να υπάρχει η δυνατότητα να μπορούν οι χρήστες να γράφουν ακόμα περισσότερους χαρακτήρες που υποστηρίζει το Unicode και οι γραμματοσειρές.

Η επιστροφή ήταν θεαματική. Προλάβαμε το αεροπλάνο με περιθώριο ~10 λεπτά. Το μέρος (venue) ήταν πολύ όμορφο και υπήρξε παραλία αρκετά κοντά…

Ένας από τους προσκεκλημένους ήταν από την Μογγολία. Του δώρισαν ένα βιβλίο για το Mono (εκείνο το μπλε βιβλίο) και έβαλε και τον Miguel να το υπογράψει 🙂
Το επόμενο Guadec θα γίνει στο Birmingham, στο H.B. Όσοι είστε στην Αγγλία αξίζει να πάτε.

How to easily modify a program in your Ubuntu?

Suppose we want to change the functionality of an Ubuntu application but we do not want to go into all the trouble of finding the source code, installing in /usr/local/, breaking dependencies with original versions and so on.

Let’s change Character Map (gucharmap), and specifically change the default font size from 20pt to 14pt, so that when you start it there is more space in the character window. Currently Character Map does not offer an option to save this setting.

We get the source code of Character Map,

# apt-get source gucharmap


cd gucharmap-1.4.4/

and now we edit the file gucharmap/main.c

We know what to edit because we visited the GNOME CVS Website, at http://cvs.gnome.org/viewcvs/gucharmap/

and we examined the logs for the file http://cvs.gnome.org/viewcvs/gucharmap/gucharmap/main.c?view=log

which show that for Revision 1.69, the following change took place,


2004-02-01  Noah Levitt

* gucharmap/gucharmap-table.c: Improve square size.

* gucharmap/main.c: Increase default font size.

When we click on the link Diff to previous 1.68 of the above page, we pinpoint the change,

version 1.68, Sun Feb 1 03:46:21 2004 UTC version 1.69, Mon Feb 2 00:48:05 2004 UTC
Line 93 main (gint argc, gchar **argv)
Line 93 main (gint argc, gchar **argv)

gint default_size = PANGO_PIXELS (1.5 * pango_font_description_get_size (window->style->font_desc));

gint default_size = PANGO_PIXELS (2.0 * pango_font_description_get_size (window->style->font_desc));

The change in the multiplier (from 1.5 to 2.0) changes the font size from 15pt to 20pt.

20pt is too big for us, therefore we edit the file gucharmap/main.c and change the 2.0 to 1.4 (14pt).
At this point we can compile the package using the command line

$ dpkg-buildpackage -rfakeroot -uc -b

dpkg-buildpackage: source package is gucharmap
dpkg-buildpackage: source version is 1:1.4.4-1ubuntu1
dpkg-buildpackage: source changed by Sebastien Bacher
dpkg-buildpackage: host architecture i386
fakeroot debian/rules clean


At this point it is possible that you will get an error that an essential package is missing. The above command line will name the missing files, therefore you can simply install by

# apt-get install package-name

In case you do not have the basic compiler packages, you would need to install the build-essential meta-package. Do

# apt-get install build-essential

Finally, after the dpkg-buildpackage command completes, it will create one or more .deb packages in the directory above gucharmap.

# cd ..

# ls -l *.deb




You can now install them (over the original packages) by running

# dpkg -i gucharmap_1.4.4-1ubuntu1_i386.deb libgucharmap4_1.4.4-1ubuntu1_i386.deb libgucharmap4-dev_1.4.4-1ubuntu1_i386.deb

Now we start the Character Map from Applications/Accessories/ and we get the default character size of 14pt!

Is there something we should pay attention on top of this? Yes, we should investigate the GNOME Bugzilla in case there is relevant work on this issue. We visit


and specifically we click on the link Browse.

There, we select the package gucharmap (how do we know that Character Map is gucharmap? We either click on Help/About in Character Map which shows the internal name, or we run ps ax at a Applications/Accessories/Terminal while Character Map is running; the name gucharmap will pop up at the end of the long list.).

gucharmap is under the Desktop heading in the Browse list; or click on this direct link of bug reports on gucharmap.
If you start perusing the gucharmap bugs list, you will notice Bug #140414, titled remember settings. This report describes a superset of the problem we tried to solve above. That is, the bug report asks to enable Character Map to use the GNOME configuration database (gconf) so that it saves/remembers the user settings. However, this specific bug report is still pending.

The correct way to solve the configuration settings issue of gucharmap is to implement what is described in Bug #140414. If you have Ubuntu 6.06, you most likely have a very recent version of the source code of gucharmap. Therefore, the differences would be rather minimal. You can give it a go and try to get the gconf functionality in place.

You compile, install and test. If it works, you can make a patch of your changes; visit another directory and download a fresh copy of the source code using the apt-get source packagename command. Rename gucharmap-1.4.4 to gucharmap-1.4.4.ORIGINAL

# mv gucharmap-1.4.4 gucharmap-1.4.4.ORIGINAL

and make sure you clean the original gucharmap-1.4.4/ directory from compiled files (enter the directory were you did the source code changes and run make clean).

Finally, create a diff file,

# diff -ur ~/tmp/gucharmap-1.4.4.ORIGINAL ~/gucharmap-1.4.4/ > remember-settings.patch

In ideal terms, it is preferable if you could produce a patch for the latest version of gucharmap. That is, the version of gucharmap you get from http://cvs.gnome.org/viewcvs/gucharmap/. By doing so, the developers will love you because they will be able to simply apply the patch and limit the burden of adding the feature. Indeed, if it is too much effort to get a build system running, you can start off with simple patches and if you feel you are doing well with it, make the extra mile to have a build system. More on this in a future post.

Keyboard updates in Xorg

There have been a few updates in Xorg regarding the multilingual keyboard support.

First, a new dead key has been added for Finish, dead_stroke. It appears that Cyrillic would find it useful as the available dead keys are too few to be reused in this case. The moral of the story is that if you want to add a dead_key, justify the necessity and it can be added.
Second, the Compose file nls/en_US.UTF-8/Compose.pre has been updated so that any Unicode keysyms have a value over 0x100000 (if keysym is Unicode keysym and had value < 0x100000, add 0x100000 to its current value). You will not see the change in the previous URL (which shows that CVS only); the updated Compose file is in git.

Third, there was an addition of the Braille input method which closed bug #6296. Braille is already available in the Unicode standard.

Thanks to Daniel Stone for going through these patches.

To get your daily fix on changes applied to Xorg, see the web-based interface to git.

Update (6Feb07): The new location of the compose file is http://gitweb.freedesktop.org/?p=xorg/lib/libX11.git;a=tree;f=nls

Ανατομία ενός γράμματος

Με ενδιαφέρον είδα μια συζήτηση (τίτλος upgrade σε ubuntu 5.10 = προβλήματα με τα ελληνικά) στη λίστα συνδρομητών Linux-greek-users για το θέμα της υποστήριξης γραφής ελληνικών σε ελεύθερο λογισμικό.
Ωστόσο, μετά από λίγα γράμματα, στάλθηκε (more…)

Re: Το αυγό και η κότα

Απαντώ με νέα εγγραφή στο σχόλιο του Γιάννη Μ., μια και το σχόλιο ήταν μεγαλύτερο από το όριο που θέτει το LiveJournal.

Τα παρακάτω τα απαντάω ως Σίμος και όχι ως ομάδα. Χρησιμοποιώ όμως πληθυντικό, οπότε αν υπάρχει κάποια παρατήρηση από τους Κώστα Π, Νίκο Χ, Πέτρο, Κώστα Μ. και άλλους, παρακαλώ διορθώστε με/προσθέστε.

Αν και με παίρνει λίγο και εμένα η μπάλα (i.e. εκφέρω γνώμη χωρίς να έχω καν προσπαθήσει να διαβάσω ένα πρόγραμμα 200-300 μηνυμάτων)

Ναι, μια τέτοια εμπειρία θα απαντήσει τα περισσότερα από τα παρακάτω ερωτήματα. Είναι υπόθεση μερικών ωρών και όπως λένε οι άγγλοι “put the money where the mouth is” :). Για τις δύσκολες λέξεις/όρους, στείλε γράμμα στη λίστα i18ngr για συμβουλές (κοίταξε παράδειγμα).
Ενναλακτικά, εγκατέστησε Ubuntu Linux Hoary με το ελληνικό περιβάλλον (μπαίνει/βγαίνει εύκολα) και αφιέρωσε μερικές ημέρες για σοβαρή “δοκιμή/review”.

– Ακούγεται λες από τρίτους ότι θα πρέπει οι αποδόσεις μεταφράσεις να είναι από την καθημερινή γλώσσα κλπ: αναρωτιέμαι, δε θα πρέπει;

Η τρομακτική πλειοψηφία των μηνυμάτων είναι αναγνώσιμη από τον καθένα. Υπάρχει ένα 1% από όρους που δημιουργεί “πρόβλημα” και καταναλώνει το 99% της κριτικής. Κοίταξε την καινούργια μου εγγραφή για το Ubuntu Linux και τα ελληνικά και πες μου αν υπάρχουν όροι δύσκολοι. Η “κακή εικόνα” είναι μια ιδέα, όπως όταν μπαίνεις στην θάλασσα για πρώτη φορά και το νερό είναι πολύ κρύο.

ΟΚ, εγώ ως Γιάννης έχω “παράλογες” απαιτήσεις από το τι συνιστά σωστό εξελληνισμό (όντως έχω – και επειδή δεν ικανοποιούνται, χρησιμοποιώ ΠΑΝΤΑ αγγλικές εκδόσεις).

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

Ωστόσο, ως άτομο που συμμετέχει στον εξελληνισμό λογισμικού τι ακριβώς ψάχνεις όταν μεταφράζεις ένα γνωστό όρο; Ποια είναι τα κριτήρια; Τα κριτήρια που ανέφερεις, τι βαρύτητα έχουν;

Υπάρχουν μια σειρά από κριτήρια, τα οποία φυσικά διαμορφώνονται εμπειρικά. Αν κάτι δεν δουλεύει, δοκιμάζουμε κάτι άλλο. Τι διάλο, ελεύθερο λογισμικό είναι. Βασικό είναι ο τελικός χρήστης να αποκτήσει την ίδια πληροφορία που θα δει κάποιος όταν έχει το αγγλικό μήνυμα. Μερικοί το λένε “εννοιολογική μετάφραση”. Ένα άλλο κριτήριο είναι αυτό της πληρότητας, ένα μισο-μεταφρασμένο πρόγραμμα είναι χειρότερο από ένα αμετάφραστο. Όταν μεταφράζεις κάτι, πρέπει να προσπαθήσεις να είναι όσο το δυνατόν περισσότεροι όροι στα ελληνικά. Το κατώφλι (threshold) για το οποίο θεωρούμε ότι ένα όρο τον αφήνουμε όπως είναι, είναι σχετικά φηλά και αυτή είναι τυπική αντιμετώπιση στον χώρο των μεταφράσεων. Οπότε, κάποιος αναζητά από άλλες πηγές για εύστοχες μεταφράσεις, είτε από υπάρχουσες μεταφράσεις, ερώτηση άλλων, komvos.edu.gr, in.gr, ΜΟΤΟ, ΕΛΕΤΕΡΜ, eurodictautum κτλ. Στο τέλος, ο μεταφραστής πρέπει να κάνει μια “εμπνευσμένη” επιλογή (educated decision). Στην περίπτωση που το IELSP ή ο ELOT καθιερώσουν λεξικό ορολογίας για το ελεύθερο λογισμικό, είναι δυνατόν εκ των υστέρων να γίνει ενημέρωση (διότι υπάρχει ο πηγαίος κώδικας).

Κάθε ώριμη κριτική είναι δεκτή, και θέλουμε να γίνεται. Ευχαριστούμε αυτούς που μπαίνουν στον κόπο και απαντούν. Στο τέλος της σειράς των προτάσεων, ο μεταφραστής παίρνει τις προτάσεις και λαμβάνει την τελική απόφαση. Όπως πολλά πράγματα στην ζωή, δεν υπάρχει μια μοναδική λύση οπότε επιλέγεται το πιο “κατάλληλο”. Η επιλογή πάλι, είναι στο χέρι του μεταφραστή.

– Περί “ολοκληρωμένου λεξικού”: δεν υπάρχει και αυτό είναι ΠΡΟΒΛΗΜΑ και πρέπει να διορθωθεί. Τα περί αυγού και κότας είναι ενδιαφέροντα, αλλά το πρόβλημα παραμένει, δε διορθώνεται. Εγώ γουστάρω να κάνω update το λειτουργικό μου, σε όποιο λειτουργικό και αν εργάζομαι. Στα ελληνικά τι ακριβώς θα κάνω; Θα το ενημερώνω; Θα το patch-άρω; ΤΙ;

Πως θα λυθεί το πρόβλημα του “ολοκληρωμένου λεξικού”; Το να καθόμαστε με σταυρωμένα χέρια δεν λύνει το πρόβλημα. Δοκιμάζοντας και αποκτώντας εμπειρία προσεγγίζουμε την λύση. Τα μέχρι στιγμής αποτέλεσμα είναι: κάνουμε το “να”, “ΝΑ”. Οι δύσκολοι όροι είναι πολύ λίγοι…
Αν κάνω λάθος, τότε να τα παρατήσω μέχρι να έρθει ο από μηχανής θεός

Προσπαθούμε να συζητήσουμε χωρίς να έχουμε κοινή αντίληψη (perception) επί του θέματος. Γίνεται συχνά στην Ελλάδα και δύσκολα βλέπει ο έλληνας ένα θέμα από μια άλλη οπτική γωνία από την προσωπική. Φαντάσου ότι είσαι ένας συνταξιούχος σε ένα ορεινό χωριό και η κοινότητα τοποθετεί έναν κοινό υπολογιστή για να στέλνουν τα παιδιά και εγγόνια e-mail. Πως θα το ρύθμιζες; Θα έφτιαχνες πολλαπλούς λογαριασμούς στον υπολογιστή για να κάθονται οι συνταξιούχοι με την σειρά και να συνδέονται; Μήπως θα ήταν καλύτερα να υπήρχε μια γενική διεύθυνση ε-μαιλ και ο υπάλληλος να τύπωνε την αλληλογραφία με μεγάλα γράμματα και να τα έδινε στους παραλήπτες; To “privacy”; Η εκτύπωση να γίνεται αυτόματα μια φορά την ημέρα όταν οι ενδιαφερόμενοι είναι παρόντες; Να γίνει χρήση λογισμικού όπως Skype/GNOMEMeeting; Να μην κάνουμε τίποτα διότι είναι δύσκολο; Μάλλον να κάνουμε μια μελέτη σκοπιμότητας; Πολλά ερωτήματα…

Με πιο απλά λόγια: το “κατέβασμα” (για να αναφέρουμε ως παράδειγμα) ως απόδοση/μετάφραση μου σπάει τα νεύρα. Ομοίως και το μεταφόρτωση (personal opinion, μην το παίρνεις προσωπικά). Αλλά αν υπάρχει μια συνοχή μπορώ να δεχτώ αμφότερα. Πάρε τον αγγλικό όρο: download. Στα Windows το λένε download. Στον αγγλικό Mozilla download. Στον αγγλικό Internet Explorer download. Στον αγγλικό Konqueror download. Στο αγγλικό Gnome download (…). Στις ελληνικές εκδόσεις των παραπάνω είμαι σίγουρος ότι θα ακούσω 5 διαφορετικές απόψεις.

Σου σπάει τα νεύρα το ζήτημα της συνοχής των μεταφράσεων; Αυτό είναι διαφορετικό από την ίδια την επιλογή του όρου.

Πόσος είναι ο όγκος του Παρθενώνα; Μπορείς να το υπολογίσεις μέσα σε 10 λεπτά; Πως θα σκεφτείς;
Στην Αμερική, στις μεγάλες εταιρίες όπως Google, MS, όταν κάνουν τα “interview” πριν την πρόσληψη, θέλουν να δοκιμάσουν τον υποψήφιο αν μπορεί να επιλύσει δύσκολα προβλήματα που θα παρουσιαστούν και δεν θα σηκώσει ψηλά τα χέρια. Πως θα έλυνες το πρόβλημα με το “download”;

– Περί αυγού και κότας: το πρόβλημα είναι ότι δεν μιλάμε για αυγό και κότα. Γιατί ότι από τα παραπάνω και αν έγινε πρώτα, ακολούθησε το άλλο. Το ίδιο και με το φούρνο, θα βγάλεις μια, δυο, τρεις φουρνιές τούβλα, αλλά ΚΑΠΟΤΕ θα χτίσεις τον καινούριο φούρνο με ΣΩΣΤΑ τούβλα.

Και κότα, και τούβλα είναι. Τα άτομα που δεν έχουν σχέση με τον εξελληνισμό βρίσκονται στο πρώιμο στάδιο του “ήταν η κότα ή το αυγό ή η κότα ή το αυγό…”. Στην πραγματικότητα είμαστε στο σημείο του “ρίξτε μια ματιά στα τούβλα που φτιάξαμε”. Είναι ικανή η υπάρχουσα δουλειά και εμπειρία για να γίνει τυποποίηση. Αφιέρωσε όμως κάποιο χρόνο στα τούβλα για να αποκτήσεις και εσύ την εμπειρία, και έπειτα κάνε “lobbying” για την τυποποίηση. Αν όντως έχεις ενδιαφέρον, υπάρχουν οι προτάσεις για το σημείο αυτό.

Βλέπω με ενδιαφέρον όσα γίνονται εδώ και διαβάζω τα πρακτικά. Φυσικά, λόγω απόστασης δεν γνωρίζω τι γίνεται στις συναντήσεις. Πάντως, έχω προτάσεις για ενέργειες. Ενδιαφέρεται κανείς;

Μην πάρεις τα παραπάνω ως προσωπική μομφή. Από περιέργεια έχω δει το ελληνικό Gnome 2.8, ενώ στο PC μιας φίλης εγκατέστησα τον Firefox 1.0. Η δουλειά σας είναι πραγματικά πολύ καλή, και δεν υπολείπεται σε τίποτα ή ελάχιστα της δουλειάς επαγγελματιών (αν η αντίστοιχη δουλειά στα Windows γίνεται από επαγγελματίες: έτσι θέλω να ελπίζω και έτσι φαίνεται). Αλλά και πάλι τα αυγά που βγαίνουν από τις κότες σας πρέπει κάποτε να κάνουνε … κότες, τα τούβλα που βγαίνουν από τους φούρνους σας … καινούριους φούρνους. Και δυστυχώς δεν είναι μόνο στο χέρι σας αυτό.

Δεν κατάλαβα την παράγραφο αυτή. Τι ακριβώς ζητάς εδώ;

Αν πιστεύεις ότι έχεις οφεληθεί από το ελεύθερο λογισμικό, είναι καλό να δώσεις κάτι πίσω στην κοινότητα. Υπάρχουν χρήστες ελεύθερου λογισμικού που μοιάζουν με χρήστες Windows στα χρόνια της πειρατίας λογισμικού. Βάζεις ένα πακέτο, δοκιμάζεις αν δουλεύει με την πρώτη, αν όχι το παρατάς και κάνεις επιφανειακά “αποκοδομητικά” σχόλια.

Εκτός του bugzilla και τις (καλές) αναφορές σφαλμάτων μπορείς να ασχοληθείς με την γενικότερη διαδικασία του εξελληνισμού/τοπικοποίηση. Για παράδειγμα, όλο και περισσότερες διανομές έχουν υποστήριξη για γράψιμο σε άλλες γλώσσες χωρίς να χρειαστεί να ανοίξεις το /etc/X11/xorg.conf. Όμως αρκετές φορές όλα δεν δουλεύουν ρολόι διότι χρειάζεται δοκιμή και επικοινωνία με τους προγραμματιστές. Αν έχεις γρήγορη σύνδεση με το Διαδίκτυο, μπορείς να κάνεις νταουνλόουντ την δοκιμαστικές εκδόσεις (τώρα Ubuntu Linux Hoary, Fedora Core 4 test 1, SuSE??) και να δοκιμάσεις. Ούτε γραμμή μετάφραση…