Author Archives: Serrano Pereira

Project moved to GitHub

The GetGNULinux project source code has been moved to a different version control system and code hosting service. When I started managing this project I used Bazaar for version control and Launchpad for project hosting. During my internship last summer I started using Git for version control because I heard good things about it. It didn’t take long before I was sold, partly because the book Pro Git by Scott Chacon was a delight to read and easy to understand. I soon started converting my personal Bazaar repositories to Git (see Convert bzr to git by AstroFloyd for instructions).

I later converted getgnulinux’ repository to Git as well. You can check out the new project page at GitHub. From now on this is where you can find the source code, report bugs, and make suggestions for the website. Patches, suggestions, and comments are welcome.

Belated update

The getgnulinux project had come to a halt for about 6 months due to my 5 months internship to which my focus was drawn. But the internship has come to a successful end in December 2012 and I have some spare time on my hands once again. So there is some catching up to do because the translators didn’t stop contributing to the project, for which I’m grateful. I’m pleased to announce that two more translations were completed:

Other translations have undergone updates as well. These include Arabic (56%), German (53%), Finnish (13%), French (77%), Interlingua (30%), Italian (74%), and Russian (85%). And a new language was added: Lithuanian (28%). I can’t help but wonder which will finish next.

Chinese translation completed

It’s unbelievable, but true. Yet another translation for GetGNULinux.org was completed today! GetGNULinux.org is now available in Chinese (中文), more specifically Modern Standard Chinese, also known as Mandarin. Who knows how many more people we can reach now?

Many thanks to Sayson Peng, leonfeng, Jason Lau and others who worked on the Chinese translation! We couldn’t thank you enough!

Jason pointed out that the Chinese translation requires more improvement (grammar, spelling, fluidity, etc.) and that he will continue to make improvements where he can. But this kind of work shouldn’t be done by just one person. So if you are fluid in Mandarin and happen to have some spare time on your hands, please consider helping out with improving the Chinese translation. Head over to our translation section to get started.

The completion of the translation for Standard Chinese also opens the doors for other variants of Chinese. Transifex has a clone feature which makes it possible to copy all translations from one language to a new language for a project. Cantonese anyone?

Language negotiation implemented

Two posts back I was writing about my plans to implement language negotiation for getgnulinux.org. I’m happy to announce that its implementation was completed today.

“Language negotiation is a function of the HTTP protocol which lets a server choose among several language versions of a page, based on the URL and on preference information sent by the browser (specifically in the Accept-Language header).” – http://www.w3.org/International/questions/qa-when-lang-neg

Before language negotiation was implemented, http://getgnulinux.org/ would always bring the visitor to the website in its default language (i.e. English). Now, when the language preferences are properly set in the visitor’s web browser and the website is available in one of the preferred languages, the website will automatically display the page in the visitor’s preferred language. It will only do this for languages for which the translation is complete (at the time of writing this, these are Hebrew and Asturian). This was a conscious design decision – it wouldn’t be very nice to display a page which is only partly translated.

Other changes came along with the implementation of language negotiation. The language menu on the top of each page now only shows the languages for which the translation is complete. Incomplete translations are still accessible from the “More languages” item in the language menu. This link brings the user to the new language selection page which gives an overview of all translations and their status.

The implementation of language negotiation was actually very simple. Language negotiation is a common feature for websites which means that there is a good chance that someone has already written freely available code for it. And indeed, someone has. There is HTTP::negotiateLanguage from PEAR, PHP’s own structured library of code. However, I used a modified version of that function which I got from Matthew Somerville’s website. The reason I chose Somerville’s version is because apparently PEAR’s version fails on one criterion (see Somerville’s page for details). This also allowed me to adapt some code to GGL’s code which made implementation even easier.

Flag as a symbol of language – not a good idea

While working on the GetGNULinux.org project in June 2011, I decided to update the look of the website as I wasn’t very satisfied with it. It just wasn’t very nice on the eye and I’m not easily satisfied. One of the things I thought definitely needed a face-lift was the language menu. One of the changes I made was anchoring images of country flags to the language links in the language menu. I mainly did this because I thought it looked nice and because it could make it easier for someone to select the preferred language (the flag of your own country is very recognizable). But I recently realized that this wasn’t such a good idea.

This decision has given some issues. For example, GetGNULinux.org is written in English, American English to be more specific. But from the start I’ve been using the flag of the United Kingdom for the English language. This obviously doesn’t make sense. I later changed this to the flag of the United States. This however doesn’t solve the problem, as I later found out.

Last week I got an email from a translator who explained that I was using the wrong flag for the Catalan language. Fact is that I was using the flag for Andorra for the Catalan language. According to Wikipedia, “Catalan [is] the national and only official language of Andorra and a co-official language in the Spanish autonomous communities of Catalonia.” So which flag should be used to link to the Catalan language: the flag for Andorra or the Catalonian flag? I was later told by a Catalan translator that the Catalonian flag should be used to refer to the Catalan language, for historical reasons and because it was used more often. So I changed it.

To get back to the issue with the “English flag”. I still wasn’t sure whether this use of the UK or USA flag for the English language was correct. So I googled “flags language” and the first result read: “Why you should not use a flag as a symbol of language”. This of course drew my attention, so I clicked on that link which brought me to an article with the title “Flag as a symbol of language – stupidity or insult?“. It is a very well written article which explains the issue very clearly. To keep things short: a flag is a symbol of a country, not a language. And there is no reason to bind the country and the language strictly together.

“Why should, for example, a Brasilian select the flag of Portugal to select his native language? It’s quite possible that a Brasilian does not even know the flag of Portugal.” - http://www.cs.tut.fi/~jkorpela/flags.html

Hence the use of flags to refer to languages doesn’t make sense. So today I followed the advice from that article and I removed all flags from the language menu of GetGNULinux.org.

But it doesn’t stop there. On that same website I found a section “Techniques for multilingual Web sites” with more useful documents from the same author. I took more advice from those documents in order to optimize GetGNULinux.org. For example, the language menu has been moved to the bottom of the documents in order to emphasize the content at the beginning of a page in indexing. And language negotiation is something I wanted to make use of for some time now, and this is something those documents also cover. So this is something I’ll work on in the near future.

Asturian translation completed

With just two months passed since the completion of the Hebrew translation, another language can be added to the list of completed translations for GetGNULinux.org. I’m very happy to announce that the Asturian translation is now online! Many thanks to the Softastur translators team, and especially to their member Iñigo Varela who took the translation to Asturian upon himself. At first I was skeptic when he told me via email that he could do the translation in one or two days. Imagine how surprised I was when I got an email from him the very next day, with the words: “All translations done!”

In fact, Iñigo did the translation of getgnulinux.org in collaboration with Marcos Costales  (from Softastur) back in 2009. But the getgnulinux.org project was stalled and Iñigo and Marcos decided not to wait longer. Marcos downloaded the structure of getgnulinux.org, Iñigo translated the .html files, and they hosted it at faiteconlinux.softastur.org in collaboration with Mikel González (also from Softastur).

Last week I noticed visitors coming from that website which brought me to their Asturian version of GetGNULinux. I was very surprised to find a fully translated GetGNULinux in a language I, at that point, never even heard of. What’s even stranger, is that there were no traces of translation files for Asturian to be found in the original GGL repository (but that makes sense now, knowing that the .html files were translated manually). So I contacted the Softastur translators team who responded very quickly. Iñigo offered to translate it again using Transifex, Mikel provided an icon of the Asturian flag, and the next day there was http://getgnulinux.org/ast/.

This is yet another big step forward in encouraging more people to try Linux. More translations coming soon (I hope)!

First translation completed

I am happy to announce that the very first translation of GetGNULinux.org was completed today! Many thanks to Yaron Shahrabani, a Hebrew translator from Israel, who started the translation for Hebrew exactly one month ago. That he was able to finish the translation by himself in just one month truly amazes me. And that for a language that is so very different from English. Like Arabic, Hebrew is written from right to left. Yaron had a helping hand in improving the display for right-to-left languages as well. Some images needed to be updated for right-to-left languages.

It turns out that Transifex, the new translation platform for GetGNULinux.org, is working pretty good (at least, I have not received any complaints). Some kind individuals have joined a translation team to help out with the translations. Since the switch to the new translation platform, translations for a few new languages have been started. These include Bulgarian, Esperanto, Hebrew and Interlingua. I’m looking forward to the completion of more translations so we can reach an even larger audience.

There used to be a trimmed edition of GetGNULinux.org which contains less pages. For the trimmed edition, some translations had been completed already. Translations for the trimmed edition are now simply being used for the full edition. I have not had the time to implement a trimmed edition yet. Mainly because I haven’t figured out the best way to implement this yet. Until then, the full edition will be used to publish any translations.

Server downtime

The server behind getgnulinux.org experienced some troubles today. For some reason the server had rebooted and the GRUB configuration file was gone, welcoming me with the message,

error: file not found
grub rescue>

So it was no longer able to boot into the operating system. Not knowing how to use the grub command-line, I used the rescue mode of the Ubuntu server CD to re-generate the GRUB configuration file. After rebooting the system it seems that everything is working again. All data still seems to be intact and the websites are back up. I have not found any indications of the server being cracked, so I have no idea what caused this.

Update 2012/03/13: I found the cause of the problem. This issue was caused by an external hard disk drive that is permanently connected to the server via USB. Backups are automatically written to this external hard drive. The server’s BIOS was setup to boot from USB devices first and so the server tries to boot from this external drive. However, the boot fails because GRUB was looking in this drive for a GRUB configuration file (which isn’t there). What was GRUB doing on that external drive? Well, that is a leftover from a previous Ubuntu installation (GRUB was installed on the MBR). So I deleted GRUB from the MBR with,

dd if=/dev/zero of=/dev/sdb bs=446 count=1

Of course “/dev/sdb” is the external drive. But after this the server still tried booting from the external drive, leaving me with a black screen and a blinking underscore at boot time. *sigh* Why is the BIOS still trying to boot from this external drive when GRUB is removed from the MBR?

Ultimately I had to solve work around this issue by just setting in the BIOS to not boot from USB devices.

Switch: gNewSense to Trisquel

Of course this replacement needs to be, like gNewSense, an entirely free GNU/Linux distribution – no restrictions. The website of the GNU project contains a list of free GNU/Linux distributions which I used as a list of candidates for the replacement. There I looked for a general purpose Linux distribution which is both beginner-friendly and up-to-date.

http://trisquel.info/files/trisquel-logo-compact.pngHaving had a quick look at the different distributions, I thought Trisquel GNU/Linux was the best choice. It’s an entirely free Ubuntu-based Linux distribution designed for various audience. Installation is easy and very similar to that of Ubuntu. The standard version of the recently released Trisquel 5.0 comes with a very nice looking GNOME 2 desktop. And best of all, Trisquel is being actively developed. The latest version, Trisquel GNU/Linux 5.0 STS, was released on the 17th of this month.

As of today, getgnulinux.org recommends Trisquel GNU/Linux to people who want a 100% free and beginner-friendly Linux distribution. Head over to the Choose a distribution page and check out the new face in the list. Its description is an edited version of the description for gNewSense. Most part is the same which should make it easier for translators. Now, writing is not my strongest skill, so if you find any flaws in the description (or anywhere else for that matter), please let me know, or better even, file a bug.

Any thoughts on the switch? Please leave a comment.