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

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.

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.

4Nov/072

StixFonts, finally available (beta)!

The STIX Fonts project (website) has been developing for over 10 years a font suitable to be used in academic publications. It boasts support from Elsevier, IEEE and other academic publishers or associations.

A few days ago, they published a beta version of the font in an effort to get public feedback. The beta period runs until the 15th December.

STIX Fonts Beta showing Greek (Regular), from STIX Fonts Beta

STIX Fonts Beta currently support modern Greek. An effort to get support for Greek Polytonic did not work out well a few years back.

STIX Fonts Beta showing Greek (Italic), from STIX Fonts Beta

The main benefit of STIX Fonts is the support for mathematical and other technical symbols. This helps when writing academic publications and other technical documents.

STIX Fonts Beta showing Greek (Bold), from STIX Fonts Beta

STIX Fonts have extensive support of mathematical symbols, symbols that exist in Unicode Plane-1.

STIX Fonts Beta showing Greek (Bold Italic), from STIX Fonts Beta

If there is any modification that we would like to have in STIX fonts, we should do now. Once they are released, they will be widely distributed. Currently, Fedora has packaged STIX Fonts and made them available already.

8Aug/0760

Cannot write Greek Polytonic in Linux

For up to date instructions for Greek and Greek Polytonic see How to type Greek, Greek Polytonic in Linux.

The following text is kept for historical purposes. Greek and Greek Polytonic now works in Linux, using the default Greek layout.

General Update: If you have Ubuntu 8.10, Fedora 10 or a similarly new distribution, then Greek Polytonic works out-of-the-box. Simply select the Greek Polytonic layout. For more information, see the recent Greek Polytonic post.

Update 3rd May 2008: If you have Ubuntu 8.04 (probably applies to other recent Linux distributions as well), you simply need to add GTK_IM_MODULE=xim to /etc/environment. Start a Terminal (Applications/Accessories/Terminal) and type the commands (the first command makes a backup copy of the configuration file, and the second opens the configuration file with administrative priviliges, so that you can edit and save):

$ gksudo cp /etc/environment /etc/environment.ORIGINAL
$ gksudo gedit /etc/environment

then append

GTK_IM_MODULE=xim

save, and restart your computer. It should work now. Try to test with the standard Text editor, found in Accessories.

In Ubuntu 8.10 (autumn 2008), it should work out of the box, just by enabling the Greek Polytonic layout.

Update 20th June 2008: If still some accents/breathings/aspirations do not work, then this is probably related to your system locale (whether it is Greek or not). It works better when it is Greek. If you are affected and you do not use the Greek locale, there is one more thing to do.

$ gksudo cp /usr/share/X11/locale/en_US.UTF-8/Compose /usr/share/X11/locale/en_US.UTF-8/Compose.ORIGINAL
$ gksudo cp /usr/share/X11/locale/el_GR.UTF-8/Compose /usr/share/X11/locale/en_US.UTF-8/Compose

The first command makes a backup copy of your original en_US Compose file (assuming you run an English locale; if in doubt, read /usr/share/X11/locale/locale.dir). The second command copies the Greek compose file over the English one. You then logout and login again.

End of updates

To write Greek Polytonic in Linux, a special file is used, which is called the compose file. There is a bit of complication here in the sense that the compose file depends on the current system locale.

To find out which compose file is active on your system, have a look at

/usr/share/X11/locale/compose.dir

Let's assume your system locale is en_US.UTF-8 (Start Applications/Accessories/Terminal and type locale).

In the compose.dir file it says

en_US.UTF-8/Compose: en_US.UTF-8

Note that the locale is the second field. If you have a different system locale, match on the second field. Many people make a mistake here. Actually, I think be faster for the system to locate the entry if the compose.dir file was sorted by locale.

Therefore, the compose file is

/usr/share/X11/locale/en_US.UTF-8/Compose

So, what's the problem then?

Well, for the Greek locale (el_GR.UTF-8) we have a different compose file, a compose file in which Greek Polytonic actually works ;-).

Therefore, there are numerous workarounds here to get Greek Polytonic working.

For example,

  • If you speak modern Greek, you can install the Greek locale.
  • You can edit /usr/share/X11/locale/compose.dir so that for your locale, the compose file is the Greek one, /usr/share/X11/locale/el_GR.UTF-8/Compose.
  • You can edit the Greek compose file, take the Greek Polytonic section and update the Greek Polytonic section of en_US.UTF-8/Compose.
  • You can copy the Greek compose file in your home directory under the name .XCompose. I did not try this one, and also you may be affected by this bug. (not tested)

Of course the proper solution is to update en_US.UTF-8/Compose with the updated Greek Polytonic compose sequences. There is a tendency to add the compose sequences of all languages to en_US.UTF-8/Compose, and this actually is happening now. In this respect, it would make sense to rename en_US.UTF-8/Compose into something like general/Compose.

2Jul/060

Re: gtk1.x και Ελληνικά

Ο Νίκος Νύκταρης έγραψε:
Μιας και από φαίνεται δεν μου κάθεται μια νέα έκδοση του  knoppel είπα να
ασχοληθώ με μερικά bugs που κάποια στιγμή είχα συναντήσει.
Παρακάτω είναι ένα από αυτά και αφορά τις εφαρμογές gtk1.x και τα Ελληνικά ,
θα ήθελα τη γνώμη σας πριν κάνω κανένα bugreport που είναι άχρηστο ή λάθος.
Το πρόβλημα λοιπόν είναι η εμφάνιση των ελληνικών στις εφαρμογές gtk1.x που
συναντώ εδώ και καιρό (από τότε που βγήκε το x.org) στο Debian. Κάνοντας πριν
μερικές μέρες εγκατάσταση του τελευταία έκδοση του etch τα Ελληνικά  στο xmms
εμφανίζονται όπως στο
The image “http://www.knoppel.org/gtkbug/xmms1.png” cannot be displayed, because it contains errors.

Εδώ βλέπουμε ότι τα μεταφρασμένα μηνύματα της εφαρμογής είναι σε μορφή Unicode (για μονοτονικό είναι 2 byte ανά χαρακτήρα). Το XMMS για κάποιο λόγο δεν καταλαβαίνει ότι τα μηνύματα είναι σε μορφή UTF-8 με αποτέλεσμα να προσπαθεί να απεικονίσει κάθε byte ως χαρακτήρα από μια κωδικοποίηση 8-bit. Η επανάληψη του χαρακτήρα & υποδεικνύει το πρόβλημα αυτό.

Αυτό το πρόβλημα είχε αναφερθεί και για την ρώσικη γλώσσα καιρό πριν (debian
bug 330144) το οποίο και λύθηκε για αυτούς. (είναι το bug που έλεγα πριν από
καιρό στον simo)
Για αντίστοιχη λύση για τα Ελληνικά έχουμε δύο κομμάτια. Το ένα αφορά την
γραμματοσειρά που υπάρχει στο /etc/gtk/gtk.utf8 που προφανώς δεν υποστηρίζει
σωστά τα Ελληνικά
Ανοίγοντας το αρχείο και αλλάζοντας την γραμματοσειρά σε fixed το αποτέλεσμα
είναι το όπως εμφανίζεται στο

http://www.knoppel.org/gtkbug/xmms2.png

Τη διαφορά στο αποτέλεσμα μεταξύ των δύο παραπάνω στιγμιοτύπων οθόνης το λαμβάνεις με την απλή αλλαγή της γραμματοσειράς; Αυτό μπορεί να σημαίνει ότι η πρώτη γραμματοσειρά δεν είναι Unicode.

Από όσο γνωρίζω, η παραπάνω γραμματοσειρά είναι μια από τις Ασιατικές γραμματοσειρές.

Προφανώς δεν είναι ότι καλύτερο αισθητικά
Και επανέρχομαι στο bug 330144 και παρατηρώ ότι τα δικά μας αρχεία
στο /usr/share/X11/locale/el_GR.UTF-8 υπάρχουν μεν αλλά  είναι κενά. και από
φαίνεται στο locale.dir έτσι και αλλιώς δεν χρησιμοποιούνται.
Τα δημιούργησα λοιπόν και πρόσθεσα τις δύο κωδικοποιήσεις iso8859-7 και cp1253
που δεν υπάρχουν στο αντίστοιχο Αγγλικό αρχείο. Άλλαξα το locale.dir να
χρησιμοποιεί τα νέα αρχεία το αποτέλεσμα είναι όπως εμφανίζεται στο

The image “http://www.knoppel.org/gtkbug/xmms3.png” cannot be displayed, because it contains errors.

Να σημειώσω ότι έτσι και αλλιώς το αρχείο /etc/gtk/gtk.utf-8 πρέπει να
αλλαχτεί διαφορετικά το αποτέλεσμα είναι όπως το

http://www.knoppel.org/gtkbug/xmms4.png

Αυτό είναι πολύ παράξενο. Για να δείξει εκτεταμένους λατινικούς χαρακτήρες, η κωδικοποίηση της μετάφρασης του XMMS πρέπει να είναι 8-bit ή γίνονται παράξενες έμμεσες μετατροπές στην κωδικοποίηση. Μπορείς να επιβεβαιώσεις ότι η κωδικοποίηση της μετάφρασης του XMMS είναι UTF-8 και ότι η δήλωση στη κεφαλίδα είναι όντως UTF-8;

Προφανώς το αποτέλεσμα αισθητικά είναι πολύ καλύτερο. Το θέμα είναι είναι και
τεχνικά σωστό? Γιατί υπάρχουν τα αρχεία στο el_GR.UTF-8 και είναι κενά? Το
πρόβλημα αυτό υπάρχει και στις άλλες διανομές?
Ο κατάλογος el_GR.UTF-8 δεν χρειάζεται διότι αρκεί ο κατάλογος en_US.UTF-8. Η κωδικοποίηση είναι κοινή, UTF-8.
Για 8-bit ελληνικά (iso-8859-7) χρειάζεται τέτοιος κατάλογος που φυσικά είναι διαθέσιμος.
Παρακάτω ακολουθεί ένα link με τα αλλαγμένα αρχεία για όποιον θέλει να ελέγξει
τις αλλαγές ή/και να τις δοκιμάσει.

http://www.knoppel.org/gtkbug/gtkbug.tar.gz

Προσωπικά προτιμώ εφαρμογές που χρησιμοποιούν την κωδικοποίηση UTF-8 και άλλες επιλογές προσθέτουν πολυπλοκότητα που δεν έχουμε ανάγκη. Αν έχεις τη δυνατότητα να αλλάξεις την εφαρμογή XMMS σε μια από τις νεώτερες εκδόσεις που βασίζονται στο GTK2+, είναι η καλύτερη λύση.

Ακόμα, είναι καλό να αλλάξεις την βασική γραμματοσειρά συστήματος σε DejaVu (Dejavu Sans) διότι υποστηρίζει ελληνικά και είναι hinted.

9Jun/061

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

http://bugzilla.gnome.org/

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.

27May/0611

Διανομή Linux για μικρά συστήματα

Puppy OS screenshot

Προέρχεται από τον simosx.

Υπάρχουν μια σειρά από διανομές Linux που δεν έχουν μεγάλες απαιτήσεις σε χώρο στο σκληρό δίσκο ή επιδόσεις από τον επεξεργαστή. Ακόμα, είναι εύκολο να γίνει η εγκατάστασή τους σε USB stick/CDROM/Προσομοιωτή/ZIP Disk/Σκληρό δίσκο/κτλ με αποτέλεσμα να είναι αρκετά φορητά.

Τέτοιες διανομές είναι

  • Feather Linux, που συνδυάζει όλα τα αρχεία σε λιγότερο από 128ΜΒ (βασίζεται σε Knoppix remaster),
  • Damn Small Linux (DSL), που συνδυάζει όλα τα αρχεία σε λιγότερο από 50ΜΒ.
  • Puppy Linux (PuppyOS), που συνδυάζει όλα τα αρχεία σε λιγότερο από 70ΜΒ.

Για το Damn Small Linux (DSL), τα χαρακτηριστικά είναι

  • Boot from a business card CD as a live linux distribution (LiveCD)
  • Boot from a USB pen drive
  • Boot from within a host operating system (that's right, it can run *inside* Windows)
  • Run very nicely from an IDE Compact Flash drive via a method we call "frugal install"
  • Transform into a Debian OS with a traditional hard drive install
  • Run light enough to power a 486DX with 16MB of Ram
  • Run fully in RAM with as little as 128MB (you will be amazed at how fast your computer can be!)
  • Modularly grow -- DSL is highly extendable without the need to customize

Για το Puppy Linux (PuppyOS), τα χαρακτηριστικά είναι

  • Puppy will easily install to USB, Zip or hard drive media.
  • Booting from CD, Puppy will load totally into RAM so that the CD drive is then free for other purposes.
  • Booting from CD, Puppy can save everything back to the CD, no need for a hard drive.
  • Booting from USB, Puppy will greatly minimise writes, to extend the life of Flash devices indefinitely.
  • Puppy will be extremely friendly for Linux newbies.
  • Puppy will boot up and run extraordinarily fast.
  • Puppy will have all the applications needed for daily use.
  • Puppy will just work, no hassles.
  • Puppy will breathe new life into old PCs

Τέτοιες διανομές είναι πολύ σημαντικές διότι προσεγγίζουν τη λειτουργικότητα του OLPC.
Χρησιμοποίησα το Puppy OS σε USB stick και παρακάτω είναι μια σειρά από σχόλια

  • Σε τυπικό φορητό υπολογιστή Pentium M, η διανομή είναι πολύ διαδραστική. Κάθε λειτουργία ξεκινά πολύ γρήγορα και δεν ακούς καθόλου το ανεμιστηράκι (ίσως πρέπει να ενεργοποιήσετε το powersave kernel module για το φορητό σας :)).
  • Οι διανομές αυτές χρησιμοποιούν τον πυρήνα 2.4.x. Είδα ότι υπήρχαν χρήστες που έκαναν αναβάθμιση σε 2.6.x, δεν ξέρω αν αλλάζει κάτι σημαντικό στη διαδραστικότητα ή στη χρήση της μνήμης.
  • Υπάρχει Firefox και δουλεύει αρκετά καλά. Ωστόσο, ο υπολογιστής έχει 512ΜΒ RAM και μπορείτε να δείτε στο στιγμιότυπο ότι γίνεται χρήση ενός σεβαστού ποσού της μνήμης.
  • Το Abiword ξεκινά πολύ γρήγορα, είναι διαδραστικό. Πολύ όμορφα.
  • Δεν κατάφερα να γράψω ελληνικά διότι η έκδοση αυτή του XFree86 δεν είχε τα απαραίτητα αρχεία με τις διατάξεις πληκτρολογίου. Γενικά θα είναι προβληματική η κατάσταση αυτή αν δεν υπάρχει μικροεφαρμογή που να δείχνει την τρέχουσα ενεργή διάταξη πληκτρολογίου.
  • Η βασική γραμματοσειρά δεν έχει ποιοτικά ελληνικά, μπορεί κάποιος να εγκαταστήσει DejaVu ρίχνοντας τα αρχεία στο ~/.fonts/
  • Υπάρχει διαχειριστής πακέτων και μπορείτε να εγκαταστήσετε νέες εφαρμογές σχετικά εύκολα.
  • Ο διαχειριστής παραθύρων νομίζω ότι είναι ο fvwm. Η βασική εγκατάσταση είναι αρκετά βασική. Ωστόσο, άλλοι χρήστες κατάφεραν και είχαν πολύ καλύτερο αποτέλεσμα.
  • Κατά την εκκίνηση γίνεται αντιγραφή του περιεχομένου του USB stick στο σκληρό δίσκο. Δεν ξέρω αν αυτό είναι απαίτηση ή γίνεται για λόγους ταχύτητας. Μετά το κλείσιμο του υπολογιστή, το αρχείο αυτό αντιγράφεται πίσω στο USB stick.

Ενημέρωση: Υλοποίηση proof-of-concept με τη χρήση του Puppy Linux για το OLPC.

6Apr/060

Ελεύθερο λογισμικό στα ελληνικά

Εδώ θα κάνουμε μια σύντομη περίληψη για τη μετάφραση ελεύθερου λογισμικού στα ελληνικά.

Το Ελεύθερο Λογισμικό / Λογισμικό Ανοικτού Κώδικα (ΕΛΛΑΚ) είναι λογισμικό που αναπτύσσεται δημόσια από κοινότητα χρηστών και προσφέρεται ελεύθερα στον καθένα. Ανάλογα με το λογισμικό, η κοινότητα χρηστών μπορεί να διαθέτει έτοιμα εγκαταστάσιμα πακέτα ή CD με το λογισμικό για την ευκολότερη χρήση.

Τα πιο γνωστά πακέτα ΕΛΛΑΚ (για Windows/Linux/OSX) είναι

  • Mozilla Firefox Web browser
  • Mozilla Thunderbird mailer
  • OpenOffice.org Office Suite

Τα Mozilla Firefix και Thunderbird είναι διαθέσιμα ήδη στα ελληνικά από τις προσπάθειες του Κώστα Παπαδήμα. Υπάρχει καλή συνεργασία με το έργο Mozilla και μπορείτε να πάρετε τα ελληνικά εγκαταστάσιμα πακέτα από το ίδιο

http://www.mozilla.com/firefox/all.html
http://www.mozilla-europe.org/el/
Ο δικτυακός τόπος της ελληνικής μεταφραστικής ομάδας είναι http://moz.sourceforge.net/

Δεν έχει ολοκληρωθεί ακόμα η μετάφραση των αρχείων βοήθειας των Mozilla Firefox και Thunderbird.

Το OpenOffice.org είναι και αυτό διαθέσιμο στα ελληνικά. Η τρέχουσα έκδοση 2.0.3 (δοκιμαστική έκδοση, για έλεγχο) είναι διαθέσιμη από
ftp://ftp.linux.cz/pub/localization/OpenOffice.org/devel/680/SRC680_m162/Build-1/
(Γενικότερα από ftp://ftp.linux.cz/pub/localization/OpenOffice.org/devel/680/)
Η γενική τοποθεσία για τις ελληνικές εκδόσεις είναι
http://el.openoffice.org/

Η βασική μετάφραση του OpenOffice.org έγινε από τη Sun Microsystems (γραφικό περιβάλλον και αρχεία βοήθειας) και τώρα η συντήρηση των μεταφράσεων γίνεται από τον Κώστα Παπαδήμα. Αυτή τη στιγμή υπάρχει ένα deadline για τις 20 Απριλίου (http://blog.janik.cz/archives/2006/04/05/T21_06_11/).

Οι διανομές Linux αποτελούνται από συγκεκριμένα μέρη που χρειάζονται μετάφραση,

  • εφαρμογές εγκατάστασης και διαχείρισης της συγκεκριμένης διανομής
  • γραφικό περιβάλλον εργασίας GNOME ή KDE (έχει γίνει η μετάφραση του γραφ. περιβάλλοντος)
  • Mozilla Firefox
  • OpenOffice.org

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

Έτσι, μπορείτε να πάρετε διανομές όπως Ubuntu Linux και Debian Linux που υποστηρίζουν ελληνικά.

Στάλθηκε στο http://www.translatum.gr/forum/index.php/topic,2919.0.html

25Jan/060

Διαδικαστικά

Στον Πλανήτη ΕΛ/ΛΑΚ θα παρατηρήσατε κάποιες φορές να τον μονοπωλούν ιστολόγια που προέρχονται από το LiveJournal. Αυτό συμβαίνει διότι για κάποιο πρόβλημα ασφάλειας στο LiveJournal έκαναν κάποιες αλλαγές στο σύστημα με αποτέλεσμα οι ημερομηνίες των εγγραφών μπερδευτούν. Πιστεύω ότι τώρα το πρόβλημα έχει λυθεί.

Θα ήθελα να καλοσωρίσω τον Κώστα Μαργαρίτη στον Πλανήτη ΕΛ/ΛΑΚ, που όπως βλέπετε έχει και το δικό του hackergotchi (μικρογραφία).

Αν το ιστολόγιό σας είναι στον Πλανήτη ΕΛ/ΛΑΚ, στείλτε ένα σύντομο βιογραφικό για να προστεθεί στη σελίδα http://planet.hellug.gr/WhoWeAre/

Στις 25 πρώτες μέρες του 2006 έχουμε σχεδόν 1500 μοναδικούς επισκέπτες που αξιοποίησαν 2GB bandwidth.

Οι 4 από τους 5 επισκέπτες έρχονται με ελεύθερο λογισμικό (Mozilla, κτλ).

Οι δύο πιο σημαντικοί referers είναι οι http://www.ellak.gr/ και http://bizwriter.blogspot.com/

Τα πιο σημαντικό λεκτικά που οδήγησαν χρήστες μηχανών αναζήτησης εδώ είναι planet, hellas, cyprus, κύπρος και openoffice.

Υπήρξαν και δύο επισκέπτες που πέρασαν από εδώ λόγω του fnac. fnac και στην Ελλάδα...

Ένα ενδιαφέρον νέο ιστολόγιο που έστειλε χρήστες στον Πλανήτη: http://dhatz.blogspot.com/

27Nov/050

SIL Open Font License (OFL)

Είναι πολύ θετικό που το SIL International προωθεί την διαδικασία δημιουργίας μιας ελεύθερης άδειας διάθεσης γραμματοσειρών.

Δείγμα με την γραμματοσειρά Gentium
Σκοπεύουν να την χρησιμοποιήσουν για την διάθεση κάποιων γραμματοσειρών και ελπίζω μια από αυτές να είναι η Gentium, διότι περιλαμβάνει ελληνικά (μονοτονικό και πολυτονικό). Πάντως η γραμματοσειρά Doulos SIL θα διατεθεί με τη νέα ελεύθερη άδεια.

Από το SIL έχουν ξεκινήσει επικοινωνία για τον καθορισμό της άδειας διάθεσης. Για παράδειγμα, δείτε την συζήτηση στη λίστα debian-legal καθώς και την επίσημη σελίδα συζήτησης ofl-discuss. Δείτε τα σχόλια του Jim Gettys για τις ελεύθερες άδειες διάθεσης γραμματοσειρών.

Είναι σημαντικό να στέλνει κάποιος γράμματα σε οργανισμούς όπως το SIL International για την ελεύθερη διάθεση γραμματοσειρών. Οι στόχοι του SIL International δεν απέχουν πολύ από αυτούς του ανοιχτού λογισμικού.

16May/05Off

Διάθεση 4 νέων ελληνικών γραμματοσειρών ως ανοιχτό λογισμικό (ενημερώθηκε)

Με πρόλαβε ο Αστέρης στην ανακοίνωση των γραμματοσειρών MgOpen α λα ιστολόγιο :).

Τέσσερις λοιπόν γραμματοσειρές, MgOpen Canonica, MgOpen Cosmetica, MgOpen Modata και MgOpen Moderna γίνονται διαθέσιμες με άδεια συμβατή με το ανοιχτό λογισμικό. Δείτε δείγματα αρχείο PDF, αρχείο ODT (OpenOffice.org 2.0/OpenDocument).

Η πρωταρχική σελίδα με τις γραμματοσειρές είναι http://www.ellak.gr/fonts/mgopen/ και κάθε ανανέωση θα γίνεται γνωστή εκεί. Οι έμπειροι χρήστες καθώς και οι χρήστες που θέλουν να εισάγουν τις γραμματοσειρές σε μια διανομή καλό είναι να αναφέρονται στην διεύθυνση http://packages.debian.org/unstable/x11/ttf-mgopen διότι εδώ υπάρχουν και πληροφορίες "hinting".

Αξίζουν συγχαρητήρια στην εταιρία ΜΑΤΖΕΝΤΑ ΕΠΕ για την αρχική διάθεση των γραμματοσειρών. Νομίζω ότι αν θέλετε να ευχαριστήσετε την εταιρία, μπορείτε να το κάνετε εδώ. Από την αρχική διάθεση μέχρι σήμερα αρκετά άτομα εργάστηκαν, και συγκεκριμένες ευχαριστίες μπορείτε να δείτε στο τμήμα Ιστορία στη σελίδα των γραμματοσειρών MgOpen καθώς και στην ανακοίνωση του Ζήνωνα.

Οι γραμματοσειρές θα αποκτήσουν μεγαλύτερη αξία αν γίνουν διαθέσιμες από τις ίδιες τις διανομές και να μην χρειάζεται ο τελικός χρήστης να τις εγκαθιστά χειρωνακτικά. Το πρώτο βήμα το έκανε ο Κώστας Μ. για τη διανομή Debian. Αν σας έχει προσφέρει κάτι η διανομή σας, κάντε τις ενέργειες για να συμπεριλάβει τις γραμματοσειρές MgOpen!

Ενημέρωση:
Μόλις καταχωρήθηκαν οι MgOpen στο fontguide του Ed Trager:
Screenshot showing all four MgOpen fonts

Switch to our mobile site