Using SVN for GNOME Translators
Update 3rd June 2009: This is a very old post when GNOME was using SVN for the VCS (now we use git). My blog theme does not show the year, so I am writing this in case you are confused by the post.
Now GNOME uses SVN to manage the development of the software.
To use SVN, the basic relevant commands are described at Getting the most out of Subversion in GNOME.
If you are a translator, the work is further simplified. You would normally new SVN to get a copy of the source code of a package so that you can extract the translation messages of the UI or the documentation. In addition, in some cases you can provide localised images and screenshots.
First of all, if you do not have an account on SVN yet, you need to connect using Anonymous access. You still have all access, however if you want to upload any translations would need to give them to someone else who has such an SVN account.
Furthermore, the source code of a package is often branched during a GNOME release so that when there is ongoing development, the released version of the package is not affected. Branches usually have a name similar to gnome-2-18. The not-branched branch is called trunk (or HEAD, in CVS lingo), where all cutting-edge development usually happens.
To checkout (here checkout means to obtain a copy) the source code of a package.
Checkout trunk as anonymous
svn checkout http://svn.gnome.org/svn/gnome-utils/trunk my-trunk-gnome-utils
Checkout trunk as simos
svn checkout svn+ssh://simos@svn.gnome.org/svn/gnome-utils/trunk my-trunk-gnome-utils
Checkout branch called "gnome-2-18" as anonymous
svn checkout http://svn.gnome.org/svn/gnome-utils/branches/gnome-2-18/ gnome-utils-stable
Checkout branch called "gnome-2-18" as simos
svn checkout svn+ssh://simos@svn.gnome.org/svn/gnome-utils/branches/gnome-2-18 gnome-utils-stable
To commit you changes means that you send your changes upstream to the project.
In order to commit, you enter the directory you checked out and you run
svn commit -m "Updated Greek translation"
The changes you make typically include updated your language's LL.po file, and also updating the ChangeLog file.
You cannot commit in a anonymous checkout. The system knows that it's you when you are commiting because the checkout command saved the username you used earlier.
In the SVN commands, you can abbreviate checkout with co, and commit with ci. Sometimes this leads to the most common newbie error; you tend to think that co is for commit. In practice you cannot make a mess though, as the command line parameters between the two actions are very different, and the command will fail.
Convert your legacy font to Unicode
There exist quite a few legacy fonts, from the time that 8-bit-style encodings was the norm. Nowdays, most (if not all) spoken and ancient scripts have been added to the Unicode standard.
Therefore, if you have a legacy font, you can convert to Unicode using a guide by William J Poser. The guide uses Linear B as an example.
The program mentioned in the guide is pfaedit, which is now known as FontForge. FontForge is available in your Ubuntu distribution; simply search using the package manager.
Once you have a Unicode font, the next step is to prepare an input method so that you can write in this script. But that's another blog post.
Multimedia support in Ubuntu Linux 6.10
This is a follow-up to the article Multimedia support in Ubuntu Linux 6.06 on how to add extended multimedia support to the Ubuntu Linux distribution.
The new version of Ubuntu Linux, 7.04, has a new functionality to help add multimedia support in a seamless way; when you try to play a media file that requires a new codec, you will be asked to install it at that time. The new functionality was made available thanks to the work on the gstreamer multimedia library (bug #161922 - script to provide plugin installation info), and work with the Ubuntu distribution. It is important to note that the new version of Fedora Linux 7 has a similar mechanism of automatic multimedia support installation.
In Ubuntu 6.10, start System/Administration/Synaptic Package Manager. Under Settings/Repositories, select the universe and multiverse repositories. Click ok, then Reload to update your package cache.
Subsequently, click on Search and type in
gstreamer-0.10
You will get quite a few results; you can install packages found apart from those which names end with -dev (development packages, not normally required) and -dbg (debug packages, not normally required).
Finally, the w32codecs package (do a new search for this) adds support to other binary codecs that no native Linux software exists yet.
Video playback problems (black) after installing Beryl (or Compiz)
Note: Here we describe a workaround. The proper solution is to fix the graphics drivers and the X.Org X server. Such work is taking place, and for several cases you do not need this workaround. Especially with newer versions of Linux.
You just installed your 3D Linux desktop and you are really enthusiastic about it. But when you try to play some videos, you get a strange black output. What's going on?
The common software video players that come with the Linux desktop are able to display the video stream to several types of output devices. This includes several types of output for the graphical interface, and also obscure output devices such as text mode, using ASCII characters.
The default output device is XVideo (or Xv) for players such as those based on GStreamer (totem) and VLC.
As you guessed, there is a bug with XVideo when using Beryl/Compiz. Therefore, to fix, you need to switch to another output device that works.
For GStreamer players (such as totem, the default movie player in GNOME, Ubuntu and so on), you need to run from the command line the command
gstreamer-properties
(with older distributions such as Ubuntu 6.06 there is an option in System/Preferences for this).
and pick
Video, then for Default Video Plugin choose X Window System (No Xv). Click on test to verify that it actually works. Click Close and you are set.
VLC is not installed by default in Ubuntu 6.10. You need to install manually using the Synaptic Package Manager (under System/Administration), once you have activated the Universe repository in Repositories.
Start VLC and click on Settings, then Preferences. Expand Video and then expand Output modules. You will notice several options for output device. How do we actually choose which one should be the active output device? Well, it appears it's a bit tricky. Select the item Output modules, and notice the checkbox at the bottom right that says Advanced options. Check the box, and now you have the option to select a different output device. Pick X11 video output, click on Save and you are set!
Update (17 Jun 2007): Added section at UbuntuGuide.org, How do I fix black windows during video playback.
For how long have I been using my computer?
Do you want to check how many hours you have been using your computer/laptop?
Do you want to find out if that second-hand hard disk salesman is saying the truth?
Are you about to buy a second-hand laptop that had been used only sparingly?
You can figure out what's going on, with the help of your Linux box and the smartmontools package. Especially since I decided to keep my old hard disk that sits next to me.
Modern hard disks support a feature called Self-Monitoring, Analysis, and Reporting Technology (S.M.A.R.T.), which helps make them more reliable.
One of the data recorded by S.M.A.R.T. is the total number of hours a hard disk has been in operation. This is the S.M.A.R.T. attribute 09 called Power-On Hours (POH). When your computer is on, your hard disk is on as well, therefore you can get the total number
of hours your computer has been on. Let's see how we put all of these in action.
You need to install the smartmontools package, available from the standard Ubuntu repositories.
- Start System/Administration/Synaptic Package Manager and search for smartmontools. Select the package for installation and click to Apply.
- Assuming your hard disk corresponds to device /dev/hda, run the command sudo smartctl --all /dev/hda on a terminal window.
You will get a long list of information and attributes. Wade through the output and notice the attribute list and the line with ID 09.
On my system it is
ID# ATTRIBUTE_NAME ... UPDATED WHEN_FAILED RAW_VALUE
9 Power_On_Hours ... Always - 24
Here you can see that this hard disk has been in operation for 24 hours in total. Yes, it's a new hard disk.
If your hard disk is a bit exotic, you may see a strangely large raw value. Other manufacturers measure the time in minutes or seconds, so you need to convert accordingly.
Other information you may extra from S.M.A.R.T. include the temperature of the hard disk. The temperature has ID 194. For me it is
ID# ATTRIBUTE_NAME ... UPDATED WHEN_FAILED RAW_VALUE
194 Temperature_Celsius ... Always - 41
That is 41 degrees Celsius.
You can also perform self-tests on your hard disk in order to check if it is about to fail. In S.M.A.R.T. terminology there are short (1min duration) and long (30min duration) tests, and the last five results are saved in the hard disk non-volatile memory. The entry includes the number of hours the hard disk has been in operation as explained above. Therefore, when you loan a laptop to a hard working person that has to finish an essay, you can perform a test so that the current number of hours are recorded, and then perform another test when you receive it back. If you are said hard working person, leave the laptop on as much as possible.
Apparently, most USB/Firewire caddies/enclosures do not pass the S.M.A.R.T. information, therefore you cannot access the relevant attributes. You need to connect the hard disk on the IDE/SCSI/etc channel.
Multimedia support in Ubuntu Linux 6.06
With Ubuntu Linux 6.06, it is much clear how to install those codecs in order to get broad multimedia file support.
In Ubuntu, the multimedia infrastructure is handled by GStreamer; you install GStreamer plugins and any application that uses GStreamer can immediately benefit from the new codec support.
A typical installation of Ubuntu will bring in the free and open-source codecs by default. This includes the base gstreamer plugins package, gstreamer0.10-plugins-base that covers
- /usr/lib/gstreamer-0.10/libgstadder.so
- /usr/lib/gstreamer-0.10/libgstaudioconvert.so
- /usr/lib/gstreamer-0.10/libgstaudiorate.so
- /usr/lib/gstreamer-0.10/libgstaudioresample.so
- /usr/lib/gstreamer-0.10/libgstaudiotestsrc.so
- /usr/lib/gstreamer-0.10/libgstcdparanoia.so
- /usr/lib/gstreamer-0.10/libgstdecodebin.so
- /usr/lib/gstreamer-0.10/libgstffmpegcolorspace.so
- /usr/lib/gstreamer-0.10/libgstogg.so
- /usr/lib/gstreamer-0.10/libgstplaybin.so
- /usr/lib/gstreamer-0.10/libgstsubparse.so
- /usr/lib/gstreamer-0.10/libgsttcp.so
- /usr/lib/gstreamer-0.10/libgsttheora.so
- /usr/lib/gstreamer-0.10/libgsttypefindfunctions.so
- /usr/lib/gstreamer-0.10/libgstvideo4linux.so
- /usr/lib/gstreamer-0.10/libgstvideorate.so
- /usr/lib/gstreamer-0.10/libgstvideoscale.so
- /usr/lib/gstreamer-0.10/libgstvideotestsrc.so
- /usr/lib/gstreamer-0.10/libgstvolume.so
- /usr/lib/gstreamer-0.10/libgstvorbis.so
With a properly encoded multimedia file, you can play music or video with subtitles. Such good codecs are Ogg, Vorbis and Theora. You can also rip CDs; cdparanoia is also there.
By default you also get the good package, gstreamer0.10-plugins-good
It contains
- /usr/lib/gstreamer-0.10/libgst1394.so
- /usr/lib/gstreamer-0.10/libgstaasink.so
- /usr/lib/gstreamer-0.10/libgstalaw.so
- /usr/lib/gstreamer-0.10/libgstalpha.so
- /usr/lib/gstreamer-0.10/libgstapetag.so
- /usr/lib/gstreamer-0.10/libgstavi.so
- /usr/lib/gstreamer-0.10/libgstautodetect.so
- /usr/lib/gstreamer-0.10/libgstcacasink.so
- /usr/lib/gstreamer-0.10/libgstcdio.so
- /usr/lib/gstreamer-0.10/libgsteffectv.so
- /usr/lib/gstreamer-0.10/libgstgoom.so
- /usr/lib/gstreamer-0.10/libgstid3demux.so
- /usr/lib/gstreamer-0.10/libgstlevel.so
- /usr/lib/gstreamer-0.10/libgstefence.so
- /usr/lib/gstreamer-0.10/libgstmulaw.so
- /usr/lib/gstreamer-0.10/libgstossaudio.so
- /usr/lib/gstreamer-0.10/libgstrtp.so
- /usr/lib/gstreamer-0.10/libgstrtsp.so
- /usr/lib/gstreamer-0.10/libgstsmpte.so
- /usr/lib/gstreamer-0.10/libgsttaglib.so
- /usr/lib/gstreamer-0.10/libgstudp.so
- /usr/lib/gstreamer-0.10/libgstvideobox.so
- /usr/lib/gstreamer-0.10/libgstvideoflip.so
- /usr/lib/gstreamer-0.10/libgstwavenc.so
- /usr/lib/gstreamer-0.10/libgstwavparse.so
- /usr/lib/gstreamer-0.10/libgstauparse.so
- /usr/lib/gstreamer-0.10/libgstdebug.so
- /usr/lib/gstreamer-0.10/libgstnavigationtest.so
- /usr/lib/gstreamer-0.10/libgstalphacolor.so
- /usr/lib/gstreamer-0.10/libgstcairo.so
- /usr/lib/gstreamer-0.10/libgstflxdec.so
- /usr/lib/gstreamer-0.10/libgstmatroska.so
- /usr/lib/gstreamer-0.10/libgstvideomixer.so
- /usr/lib/gstreamer-0.10/libgstcutter.so
- /usr/lib/gstreamer-0.10/libgstmultipart.so
- /usr/lib/gstreamer-0.10/libgstflac.so
- /usr/lib/gstreamer-0.10/libgstjpeg.so
- /usr/lib/gstreamer-0.10/libgstpng.so
- /usr/lib/gstreamer-0.10/libgstspeex.so
- /usr/lib/gstreamer-0.10/libgstgconfelements.so
- /usr/lib/gstreamer-0.10/libgstshout2.so
- /usr/lib/gstreamer-0.10/libgstvideobalance.so
- /usr/lib/gstreamer-0.10/libgsticydemux.so
- /usr/lib/gstreamer-0.10/libgstximagesrc.so
- /usr/lib/gstreamer-0.10/libgstannodex.so
- /usr/lib/gstreamer-0.10/libgstgdkpixbuf.so
- /usr/lib/gstreamer-0.10/libgsthalelements.so
- /usr/lib/gstreamer-0.10/libgstdv.so
This includes generic AVI support, access to digital video and Firewire devices, visualisers, the Matroska codec, access to shoutcast servers, the speex audio codec, the flac codec and many more.
At this point, you can install Pitivi, a gstreamer-enabled video editor written in Python that helps you create your own movie. Make sure you install gstreamer0.10-gnonlin which enables non-linear editing in gstreamer.
Up to here you got free and open-source software.
You can continue with more codecs by installing the package gstreamer0.10-plugins-ugly. This package is not part of the official Ubuntu distribution; you need to enable the Universe repository. Use System/Administration/Synaptic Package Manager to install these additional packages.
Ugly are the plugins and codecs that may have distribution problems in some countries.
Ugly includes
- /usr/lib/gstreamer-0.10/libgsta52dec.so
- /usr/lib/gstreamer-0.10/libgstasf.so
- /usr/lib/gstreamer-0.10/libgstdvdlpcmdec.so
- /usr/lib/gstreamer-0.10/libgstdvdread.so
- /usr/lib/gstreamer-0.10/libgstdvdsub.so
- /usr/lib/gstreamer-0.10/libgstiec958.so
- /usr/lib/gstreamer-0.10/libgstmad.so
- /usr/lib/gstreamer-0.10/libgstmpeg2dec.so
- /usr/lib/gstreamer-0.10/libgstmpegaudioparse.so
- /usr/lib/gstreamer-0.10/libgstmpegstream.so
- /usr/lib/gstreamer-0.10/libgstrmdemux.so
- /usr/lib/gstreamer-0.10/libgstsid.so
This package will bring in, among others, DVD playback and subtitle support, ASF file support, MP3 support (MAD package) and MPEG2 video playback.
You can also get MP3 support if you install the gstreamer0.10-fluendo-mp3 plugin which is available from Universe as well. This package is probably free to use in any country thanks to the efforts of the Fluendo team.
It appears that if you install ugly, it is good to install gstreamer0.10-ffmpeg so that you get support for
FFmpeg plugin for GStreamer
This GStreamer plugin supports a large number of audio and video compression
formats through the use of the FFmpeg library. The plugin contains GStreamer
elements for encoding 40+ formats (MPEG, DivX, MPEG4, AC3, DV, ...), decoding
90+ formats (AVI, MPEG, OGG, Matroska, ASF, ...), demuxing 30+ formats, and
colorspace conversion.
Finally, there is a package gstreamer0.10-plugins-bad with plugins of potentially suboptimal quality. It includes
- /usr/lib/gstreamer-0.10/libgstbz2.so
- /usr/lib/gstreamer-0.10/libgstcdxaparse.so
- /usr/lib/gstreamer-0.10/libgstdtsdec.so
- /usr/lib/gstreamer-0.10/libgstfreeze.so
- /usr/lib/gstreamer-0.10/libgstgsm.so
- /usr/lib/gstreamer-0.10/libgstmms.so
- /usr/lib/gstreamer-0.10/libgstmodplug.so
- /usr/lib/gstreamer-0.10/libgstmusepack.so
- /usr/lib/gstreamer-0.10/libgstqtdemux.so
- /usr/lib/gstreamer-0.10/libgsttrm.so
- /usr/lib/gstreamer-0.10/libgstspeed.so
- /usr/lib/gstreamer-0.10/libgstswfdec.so
- /usr/lib/gstreamer-0.10/libgsttta.so
- /usr/lib/gstreamer-0.10/libgstvideo4linux2.so
- /usr/lib/gstreamer-0.10/libgstwavpack.so
- /usr/lib/gstreamer-0.10/libgstxingheader.so
- /usr/lib/gstreamer-0.10/libgstneonhttpsrc.so
With bad you get GSM audio codec support, MMS support, QT playback support for some formats, Flash (SWF) playing support, Video4Linux2 support, MUSEPACK support and a few more.
Επιστροφή από 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.
![]()
Ο 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
Then,
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,
Log:
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
gucharmap_1.4.4-1ubuntu1_i386.deb
libgucharmap4_1.4.4-1ubuntu1_i386.deb
libgucharmap4-dev_1.4.4-1ubuntu1_i386.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.
Fedora in Greek #2

Fedora in Greek #2
Προέρχεται από τον simosx.
Fedora Core 5 (Greek) when configured to use the DejaVu fonts as the main fonts. The DejaVu fonts are available from Fedora Extras (use the Package Manager to install). You then need to edit /etc/fonts/fonts.conf by replacing "Bitstream Vera" with "DejaVu".
This is 10pt, which is closer to the default size (is the default 10pt or 12pt?).
Fedora in Greek #1

Fedora in Greek #1
Προέρχεται από τον simosx.
Fedora Core 5 (Greek) when configured to use the DejaVu fonts as the main fonts. The DejaVu fonts are available from Fedora Extras (use the Package Manager to install). You need to edit /etc/fonts/fonts.conf by replacing "Bitstream Vera" with "DejaVu". I am using font size 8pt which is pretty small (normally 10pt-12pt).
Click All Sizes to view in full resolution.
Mydomain sucks!
No, it's not my domain that sucks, it's mydomain.com sucks, a web-hosting company.
Last June I chose mydomain.com to move my website to, as they had a special offer for a domain transfer and webhosting. Since my needs for my Website were specific, I gladly accepted the offer.
Since then, the service was good; I did not have to bother them as everything was working ok and I could find my way with installing software on my site.
It was a Sunday near the end of April that when I tried to access my site, I found that I exceeded my monthly quota. Due to this, my Website gets blocked and any access was replaced with a generic "Blocked" page. This page has ads and makes money over my expense (the referenced links gain from the popularity of my Website when GoogleBot visits).
In one respect it is a compliment to have your Website become popular and exceed its bandwidth. However, before buying more bandwidth, I wanted to make sure when the new month starts and the bandwith is set to zero. Surprisingly, this information was not on the notification. By the way, notifications are not sent to you by e-mail; they are stored on the Web hosting administration pages, so if you do not visit that page you aremore than likely to miss it. At this point I noticed something strange; since my website was blocked, there was additional traffic arriving which was strange. No, the block page was a HTTP redirect to another web server so any traffic would be minimal (200 bytes per hit?). Due to my website being blocked, I was unable to connect with FTP to access my files either.
"No, we use a rolling 30-day period to calculate your monthly bandwidth. Therefore, there is no day after which your bandwith is set to zero", I was told by the customer support. A rolling 30-day period simply means that every morning your bandwidth for the last 30 days is calculated. If it is under the limit, you get access today, else you are blocked. "So, this means that my 30-day bandwidth total will be smaller tomorrow and I may get access?", I recounted. "No, it is actually possible that the bandwidth may increase and you will still be blocked", he explained. "Can you tell me the daily bandwidth consumption for the last few days?", I insisted. "No, we do not keep daily bandwidth consumption.", he fired back. I don't want to be pushy here, as a web hosting company you need to keep daily bandwidth consumption if you want to use the rolling 30-day period system; you need to know the bandwidth of the oldest day so that you take it off when a new day gets completed.
The following days had this pattern; I would see in the administrative pages of mydomain that the "Bandwidth Used this month" was increasing steadily. I would call the customer support and try to explain that this rolling 30-day period is not working. And no, I do not want to upgrade my bandwidth because something is wrong with your systems.
It is quite funny how ridiculous the situation became. The customer support would not accept that there is a problem with their system. They tried to be polite and professional but it did not work well. I got the "Oh, it's you again" attitude and at some point I heard laughter in the background. Imagine this family conversation at bedtime, "Darling, how was job today?" "We had this crazy customer telling us we don't know how to do our job".
The customer support telephone number is 360-253-2210 which is in Vancouver, WA (US). And it was not outsourced to another country. The customer support explained that the web hosting business is in the same building as well.
Eventually they realised that I might have a point and they promised to investigate. They would send an e-mail to me about it. The next day comes and there was no e-mail (I never received an e-mail). However, my website was up and running. The administrative pages showed that I was given some extra bandwidth. On the other hand, the 30-day bandwidth value never decreased but kept increasing steadily. The access to my website was really good for me as I managed to back up every single bit of my files (and mysql database!). In addition, I grabbed a copy of the log files (the log files of the last 30 days, each day as an individual file).
I enjoyed the extra bandwidth bonanza for a while and when I was blocked again, I got back on the phone. "Bandwidth keeps increasing very quickly, and btw, I wrote a script that parses the log files and shows a substantial discrepancy between MY values and YOUR values", I started. "Sir, you need to upgrade your bandwidth or change hosting plan" he repeated. Somehow I was not suggested this time to wait for my bandwidth to drop.
Eventually I managed to get them to admit that the system that checks the bandwidth is faulty,
As a customer I am not happy with this resolution. My monthly bandwidth is below the hosting plan limit so I should get full service. However, MyDomain does not acknowledge that.
I was quite happy to get the initial offer for a domain name and web hosting bundle last year. I would not mind to keep my webhosting there for the next year. However, this attitude is unacceptable.
We are in May now and I have already moved to a new webhosting company. This is a small company and there is a person behind it that you can contact and have a conversation. The Web hosting features are much more advanced and I have full access to all the features. I'll write about this in a few weeks (if I encountered a problem or all are well). If you are on the technical side, you can find which company it is.
I just checked the mydomain bandwidth quota. Obviously it is not increasing anymore (I moved away from them) but it did not drop a tiny bit.
The customer support number 360-253-2210 corresponds to several companies, namely Dotster, Hostlane, 000domains, SignatureDomains, and NameZero, to name a few. That is, it looks that all these companies are the same with different fronts so that they capture more customers. Therefore, be prepared when calling their customer support number.
Ανατομία ενός γράμματος
Με ενδιαφέρον είδα μια συζήτηση (τίτλος upgrade σε ubuntu 5.10 = προβλήματα με τα ελληνικά) στη λίστα συνδρομητών Linux-greek-users για το θέμα της υποστήριξης γραφής ελληνικών σε ελεύθερο λογισμικό.
Ωστόσο, μετά από λίγα γράμματα, στάλθηκε



