I remember the first discussions that led to the creation of the Ubuntistas magazine. It happened at the Ubuntu-gr forum where I was a moderator at that time. As moderator, our goal was to provide a friendly environment so that users get quality help and continue to use Ubuntu. As a result of that, the chances that some of these users would end up giving back to the community would be higher.
My input to the discussion was that there are many way to contribute back and I gave a list of (very boring) things to do. I felt that a magazine endeavor requires many people to cooperate and it was quite complicated task. My belief however was that they should give it a go anyway.
They did give it a go and we got Ubuntistas Issue #1 (Nov-Dec 2008).
Workaround for bad fonts in Google Earth 5 (Linux)
Google Earth 5 is based on the Qt library, and Google is using their own copies of the Qt libraries. This means that the customisation (including fonts) that you do with qtconfig-qt4 does not affect Google Earth. Here we use Ubuntu 8.10, and we simply installed the Qt libraries in order to use some Qt programs. You probably do not have qtconfig-qt4 installed, so you need to get it.
So, by following the advice in the post above and replacing key Qt libraries from Google Earth with the ones provided by our distro, solves (read: workaround) the problem. Here comes the science:
Git is a version control system (VCS) software that is used for source code management (SCM). There are several examples of VCS software, such as CVS and SVN. What makes Git different is that it is a distributed VCS, that is, a DVCS.
Being a DVCS, when you use Git you create fully capable local repositories that can be used for offline work. When you get the files of a repository, you actually grab the full information (this makes the initial creation of local repositories out of a remote repository slower, and the repositories are bigger).
You can install git by installing the git package. You can test it by opening a terminal window, and running
The files appear in a directory called whygitisbetter. In a subdirectory called .git/,git stores all the controlling information it requires to manage the local repository. When you enter the repository directory (whygitisbetter in our case), you can issue commands that will figure out what’s going on because of the info in .git/.
With git, we create local copies of repositories by cloning. If you have used CVS or SVN, this is somewhat equivalent to the checkout command. By cloning, you create a full local repository. When you checkout with CVS or SVN, you get the latest snapshot only of the source code.
What you downloaded above is the source code for the http://www.whygitisbetterthanx.com/ website. It describes the relative advantages of git compared to other VCS and DVCS systems.
Among the different sources of documentation for git, I think one of the easiest to read is the Git Community Book. It is consise and easy to follow, and it comes with video casting (videos that show different tasks, with audio guidance).
You can create local repositories on your system. If you want to have a remote repository, you can create an account at GitHub, an attractive start-up that offers 100MB free space for your git repository. Therefore, you can host your pet project on github quite easily.
GitHub combines source code management with social networking, no matter how strange that may look like. It comes with tools that allows to maintain your own copies of repositories (for example, from other github users), and helps with the communication. For example, if I create my own copy of the whygitisbetter repository and add something nice to the book, I can send a pull request (with the click of a button) to the maintainer to grab my changes!
If you have already used another SCM tool (non-distributed), it takes some time to get used to the new way of git. It is a good skill to have, and the effort should pay off quickly. There is a SVN to Git crash course available.
If you have never used an SCM, it is cool to go for git. There is nothing to unlearn, and you will get a new skill.
Note: The title may not appear properly because I use a fancy effect that does not support the full range of Unicode characters. It’s a drawback of being trendy. The title says “Éńĥãǹčīṅǧ·ẗḧë·ẃṛīťıñĝ·ṩụṗṗọṙẗ·ıń·ǦŤḰ+”.
Ένα πρόβλημα με τις κοινότητες ελ/λακ είναι ότι μερικά από τα μέλη δεν ακολουθούν τους τυπικούς κανόνες συμπεριφοράς, και αυτό έχει το αποτέλεσμα να δημιουργείται συχνά ένα αρνητικό κλίμα.
Ένα πρόσφατο παράδειγμα είναι στη λίστα gnome-i18n, όπου ένας νέος μεταφραστής ήταν πολύ αρνητικός και προσβλητικός στη συμπεριφορά του απέναντι στο συντονιστή της συγκεκριμένης γλώσσας και άλλα άτομα που έλαβαν μέρος στη συζήτηση (=όπως εμένα!). Κατά τη συζήτηση, έγινε αναφορά στο λεγόμενο Code of conduct του GNOME, απλοί κανόνες καλής συμπεριφοράς. Αν θέλεις να συμμετέχεις στο GNOME, πρέπει να ακολουθείς τους κανόνες καλής συμπεριφοράς. Εννοείται ότι ο καθένας που λαμβαίνει μέρος στην ανάπτυξη του GNOME ακολουθεί τους κανόνες αυτούς· ωστόσο μπορεί κάποιος και να υπογράψει ότι ακολουθεί τους κανόνες. Το ίδιο συμβαίνει με την κοινότητα του Ubuntu Linux όπου ο χρήστης μπορεί να υπογράψει ψηφιακά το Code of Conduct με το κλειδί του, και να λάβει το χαρακτηρισμό Ubuntero.
Στην ελληνική πραγματικότητα δεν έχουμε φτάσει ακόμα σε τέτοια επίπεδα και η κατάσταση είναι σχεδόν ad-hoc. Αναφερθήκαμε πρόσφατα στο πρόβλημα με το φόρουμ Linux του Adslgr.com.Ένα πράγμα που θεωρώ πολύ σημαντικό είναι ότι πρέπει να υπάρχει σεβασμός και τήρηση των τυπικών κανόνων καλής συμπεριφοράς. Παλαιότερα που έβλεπα τη λίστα LGU, παρατηρούσα ότι υπήρχαν συχνές «παραβάσεις», με αποτέλεσμα να επικρατεί αρνητικό κλίμα, να μην βγαίνουν αποτελέσματα στις συζητήσεις, ο καθένας να προσπαθεί να κάνει τον έξυπνο και να «την βγει» στον άλλο, και ουσιαστικά να γίνεται κακό στην κοινότητα, στους νέους χρήστες. Για τώρα δεν γνωρίζω, έχω την εντύπωση ότι τα πράγματα δεν έχουν καλυτερέψει σημαντικά. Είδα την πρόσφατη συζήτηση στην LGU για το σχολιασμό της μετάφρασης από ΕΛΟΤ των θεμελιωδών όρων πληροφορικής. Πολλά άτομα απάντησαν, ωστόσο στη συζήτηση αυτή δεν παρατήρησα κάποιο χειροπιαστό αποτέλεσμα.
Ένα άλλο πρόσφατο παράδειγμα είναι με αυτό το γράμμα στη λίστα firstname.lastname@example.org. Ανεξάρτητα αν έχει δίκιο ή όχι ο αποστολέας, το γράμμα αυτό είναι από τα πιο τυπικά για να κάνει μια συζήτηση να αποσυντονιστεί. Ο δε αποστολέας του γράμματος δεν είναι νέος χρήστης· είναι μέλος της κοινότητας πάνω από δέκα χρόνια. Αντί να έχει την ωριμότητα να κλείσει το θέμα, το ανοίγει περισσότερο.
Βλέπω αυτό το εχθρικό περιβάλλον να διαιωνίζεται σε συγκεκριμένες κοινότητες, με μικρές ελπίδες για αλλαγή.
Αντιγράφω εδώ τους κανόνες καλής συμπεριφοράς του GNOME,
Be respectful and considerate:
Disagreement is no excuse for poor behaviour or personal attacks. Remember that a community where people feel uncomfortable is not a productive one.
Be patient and generous:
If someone asks for help it is because they need it. Do politely suggest specific documentation or more appropriate venues where appropriate, but avoid aggressive or vague responses such as “RTFM”.
Assume people mean well:
Remember that decisions are often a difficult choice between competing priorities. If you disagree, please do so politely.
If something seems outrageous, check that you did not misinterpret it. Ask for clarification, but do not assume the worst.
Try to be concise:
Avoid repeating what has been said already. Making a conversation larger makes it difficult to follow, and people often feel personally attacked if they receive multiple messages telling them the same thing.
You can install Anjuta 2.4.1 from the Synaptic package manager. You also need to install a few development packages. I do not know if there is a nice meta-package such as build-essential (used to install compilers et al), so I’ll just ask you to install the packages by hand. A more elegant way would be very much appreciated to see in the comments.
That is the order of installation when you go trial by error inside Anjuta to compile a project. Each package draws in several other packages. Also, if you have the Ubuntu 8.04 DVD in your drive, most of these packages will be installed in a jiffy. We have the Greek localisation enabled, so bear with us. Thanks to Giannis Katsampiris for completing the recent update of the Anjuta 2.4 localisation.
Once Anjuta is installed, you are presented with the Anjuta main window.
We then click on File/New/Project (Αρχείο/Νέο/1. Έργο),
We click on Forward here.
There are many many project types. We wade through and we pick to use C++ and GTKMM (C++ bindings for GTK+). We could pick any other variation; GTKMM was a request from the Ubuntu-gr mailing list.
We then fill in some contact details.
There is an option to specify at this stage external packages. We opt not to specify them now.
Once you click Apply (Εφαρμογή) – the button with the green tick, Anjuta will create an initial dummy package (actually a hello world application), and will run automatically the equivalent of ./configure for you.
Now, this is the final screen, when you start working. Here you would click on Κατασκευή/Κατασκευή έργου (Build/Build Project), so that the project gets compiled.
Then, you would click on Κατασκευή/Εκτέλεση προγράμματος… (Build/Run program…) to run the program!
Here is shows that we have located the source file (main.cc), and we see main().
It takes about 3 second to compile a program with g++ (at least on my system). Therefore, the dead time between (a) Let’s compile it and (b) Oh, I am running my program!, is under 5 seconds, which is good.
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.
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.
Create flash videos of your desktop with recordmydesktop
To install, click on System/Administration/Synaptic Package Manager, and search for gtk-recordmydesktop. Install it. Then, the application is available from Applications/Sound&Video/gtkRecordMyDesktop.
Before you are ready to capture your Flash video, you need to select the video area. There are several ways to do this; the most common is to click on Select Window, then click on the Window you want to record. A common mistake is that people try to select the window from the preview above. If you do that, when you would have selected the recorder itself to make a video of, which is not really useful. You need to click on the real window in order to select it; then, in the desktop preview you can see the selected window. In the above case, I selected the OpenOffice Writer window.
Assuming that you do not need to do any further customisation, you can simple press Record to start recording. Generally, it is good to check the recording settings using the GNOME Sound recorder beforehand. While recording, you can notice a special icon on the top panel. This is gtk-recordmydesktop. Once you press it, recording stops and the program will do the post-processing of the recording. The resulting file goes into your home folder, and has the extension .ogv.
Some common pitfalls include
I did not manage to get audio recording to work well for my system; I had to disable libasound so that the audio recording would not skip. With ALSA, sound skips while with OSS emulation it does not. Weird. Does it work for you?
The post-processing of the recording takes some time. If you have a long recording, it may take some time to show that it makes progress, so you might think it crashed. Have patience.
I had made one such recording, which can be found at the Greek OLPC mailing list. John told me that the audio part of the video was not loud enough, and one can use extra post-processing to make it sound better. For example, one could extract the audio stream of the video, remove the noise, beautify (how?) and then add back to the video.
It’s good to try out gtk-recordmydesktop, even for a small recording. Do you have some cool tips from your Linux desktop that you want to share? Record your desktop!
ert-archives.gr: “Linux/Unix operating systems are not supported”
When browsing the website from Linux, you were blocked with a message that Linux/Unix operating systems are not supported. This message was appearing due to User-Agent filtering. Even if you altered your User-Agent, the page would not show the multimedia.
Firefox, with the mplayerplugin, supports the video/x-ms-wmp streaming format. You can verify if you have it by writing about:plugins in the location bar and pressing Enter. For my system it says
Windows Media Player Plugin
mplayerplug-in 3.40Video Player Plug-in for QuickTime, RealPlayer and Windows Media Player streams using MPlayer
I am not sure if the mplayerplugin package is installed by default in Ubuntu, and I do not know what is the workflow from the message that says that a plugin is missing to the process of getting it installed. If you use the Totem Media Player, it instructs you to download and install the missing packages. I would appreciate your input on this one.
A workaround is to write a Greasemonkey script to replace the string so that Firefox works out of the box. However, the proper solution is to have ERT fix the code.
I must say that I would have preferred to have Totem Movie Player used to view those videos.
I just finished watching a documentary from the 80s about ecology and sustainability of the forests on my Linux system. It is amazing to listen again to the voice-over which is sort of a signature voice for such documentaries of the said TV channel. The screenshot shows goats in a forest, and mentioning the devastating effects of said animals on recently-burnt forests.