Tag : ui

The Ubuntistas magazine (in Greek)

Ubuntistas is an e-magazine by Ubuntu-gr, the Greek Ubuntu community.

This is the 9th issue of Ubuntistas for May-June-July. You can click on the image above and have a look at the issue. The text should look Greek to you 🙂 but you can get the gist of the content.

The contributors for the 9th issue of Ubuntistas are

  1. Almpanopoulos Nikos (editing)
  2. Diamantis Dimitris (author)
  3. Kwstaras Giannis (author)
  4. Papadopoulos Dimitris (author, desktop publishing)
  5. Petoumenou Jennie (editing)
  6. Savvidis Solon (author, public relations)
  7. Fwtiadis Grigoris (design)
  8. Fwtiadis Fillipos (author)
  9. Hatzipantelis Pantelis (author, desktop publishing)

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.

ubuntistasdz0
They did give it a go and we got Ubuntistas Issue #1 (Nov-Dec 2008).

Ubuntu Font Beta and Greek

Update: All open bugs for this font at https://bugs.launchpad.net/ubuntufontbetatesting/+bugs File your bug. Currently there bugs relating to Greek, 1. Letter γ ((U03B3) has an untypical style 2.  In letters with YPOGEGRAMMENI, YPOGEGRAMMENI is expected to be under not on the right and 3. Many Greek small letters have untypical style

Here we see some samples of Greek with Ubuntu Font Beta.

Ubuntu Font supports both Greek and Greek Polytonic.

In the following we compare between DejaVu Sans (currently the default font in Ubuntu) and the proposed Ubuntu Font Beta.

Screenshot Waterfall DejaVuSans

This is DejaVu Sans, showing the Greek Unicode Block. This means, modern Greek and Coptic.

Screenshot Waterfall UbuntuBeta Greek

This is Ubuntu Font Beta, showing the Greek Unicode Block. Coptic is not covered as it was not part of the requirements for this version of the font (actually Coptic currently uses a separate new Unicode Block so the Coptic here are too low of a priority).

Screenshot-Waterfall DejaVu Polytonic

This is DejaVu Sans showing the Greek Polytonic Unicode Block coverage. We show the second part of the Unicode Block which has the most exotic characters with up to three accents.

Screenshot Waterfall UbuntuFont Beta Polytonic

Same thing with Ubuntu Font Beta.

Note that those characters that appear as empty boxes are characters that either were not designed by the font designers, or are reserved characters that have not been defined yet.

Antigoni text in DejaVu Sans and Ubuntu Font Beta (PDF, 12pt)

Antigoni text in DejaVu Sans and Ubuntu Font Beta (PDF, 10pt)

If there are things to be fixed, this is the time to do them. Post a comment and we can take if further.

Traditionally, the letters γ and ν tend to have a unique form. In this case, in Ubuntu Font Beta, γ looks different to what a Greek user is accustomed to. I attach an SVG file of γ; if you have suggestions for enhancement, please use Inkscape, this gamma_UbuntuBeta-Regular file and make your suggestion!

(see top of post for link to bug reports)

Workaround for bad fonts in Google Earth 5 (Linux)

Update Jan 2010: The following may not work anymore. Use with caution. See relevant discussions at http://forum.ubuntu-gr.org/viewtopic.php?f=5&t=15607 and especially http://kigka.blogspot.com/2010/11/google-6.html

Older post follows:

So you just installed Google Earth 5 and you can’t figure out what’s wrong with the fonts? If your language does not use the Latin script, you cannot see any text?

Here is the workaround. The basic info comes from this google earth forum post and the reply that suggests to mess with the QT libraries.

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:

If you have a 32-bit version of Ubuntu,

cd /opt/google-earth/
sudo mv libQtCore.so.4 libQtCore.so.4.bak
sudo mv libQtGui.so.4 libQtGui.so.4.bak
sudo mv libQtNetwork.so.4 libQtNetwork.so.4.bak
sudo mv libQtWebKit.so.4 libQtWebKit.so.4.bak
sudo ln -s /usr/lib/libQtCore.so.4.4.3  libQtCore.so.4
sudo ln -s /usr/lib/libQtGui.so.4.4.3  libQtGui.so.4
sudo ln -s /usr/lib/libQtNetwork.so.4.4.3  libQtNetwork.so.4
sudo ln -s /usr/lib/libQtWebKit.so.4.4.3  libQtWebKit.so.4

If you have the 64-bit version of Ubuntu, try

cd /opt/google-earth/

sudo getlibs googleearth-bin
sudo mv libQtCore.so.4 libQtCore.so.4.bak
sudo mv libQtGui.so.4 libQtGui.so.4.bak
sudo mv libQtNetwork.so.4 libQtNetwork.so.4.bak
sudo mv libQtWebKit.so.4 libQtWebKit.so.4.bak
sudo ln -s /usr/lib32/libQtCore.so.4.4.3  libQtCore.so.4
sudo ln -s /usr/lib32/libQtGui.so.4.4.3  libQtGui.so.4
sudo ln -s /usr/lib32/libQtNetwork.so.4.4.3  libQtNetwork.so.4
sudo ln -s /usr/lib32/libQtWebKit.so.4.4.3  libQtWebKit.so.4

Requires to have getlibs installed, and when prompted, install the 32-bit versions of the packages as instructed.

Now, with qtconfig-qt you can configure the font settings.

Playing with Git

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

git clone git://github.com/schacon/whygitisbetter.git

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.

Git is used for the developement of the Linux kernel, the Perl language, Ruby On Rails, and others.

Layout editor keyboard

This is a screenshot of the keyboard for the layout editor. The keyboard is a widget which is composed of individual widgets of each key.

I did not use glade-3 for the keyboard at this time. Although it is possible to create custom widgets in Python and install them in Glade, the current distributed packages are missing something, thus it would be messy when others try to use the editor. It’s a good experience to do all by hand anyway.

When creating a layout, you drag and drop characters on the keyboard. The editor shows a table with characters though it would be possible to drag characters from gucharmap as well.

The next step is to get an intuitive UI so that when you drop a character on a key, the key expands (a popup appears) showing the available four positions to receive the character.

Keyboard layout editor UI concept

(click for bigger image)

At the top we select the keyboard layout file, the variant, and set the corresponding verbose name.

The keyboard layout editor shows a standard keyboard, where each keyboard key can show up to four levels. When you select a key, the bottor-left window shows the characters that have been set (here we use four levels). In this bottom-left window we can drag and drop characters (from Unicode blocks) and dead keys that are found from the right of the image. Dead keys are shown in red boxes.

The user is also able to include existing keyboard layout files in the current layout.

At this stage I am thinking how to easily draw the keyboard in a PyGTK application. It would be important not to draw it manually. It would be cool to have a GTK+ keyboard key widget, that you can specify the size, and the text that appears on it, then build a keyboard in Glade. Another option would be to have the basic keyboard as an SVG file (already exists), then draw over it with Cairo. I am inclined for the second option.

Firefox 3 statistics, and the Greek language

Firefox 3 was released on the 17th June, 2008 and up to now, an impressive 22 million copies have been downloaded.

kkovash had a peek at the stats and produced a nice post with diagram for the downloads of the localised versions of Firefox 3 (that is, excluding en-US).

Firefox 3 Downloads; part of EMEA region, focus on Greece

Downloads at [Release+3] days (20th June 2008)

Dark red signifies that there have been more than 100,000 downloads originating from the respective country. It is quite visible that most European countries managed to surpass the 100,000 threshold. Greece at that point was hovering to about 50,000 downloads. In the Balkan region, Turkey was the first country to grab the red badge.

It is interesting to see that Iran has been No 2 in the whole of Asia (No 1 has been Japan). Only now China managed to reach the second place, and pushed Iran in the third place. When taking into account the population gap and the political situation, Iran achieved a amazing feat.

In the first few days, a few countries only managed to jump fast over the 100K mark. It appears that these countries have strong social network communities, that urged friends to grab a copy of Firefox 3.

Firefox 3 downloads, showing Greece, with Red status

This is a recent screenshow (26th June 2008), at [Release+9] days. Greece has achieved Red status the other day. In the Balkan region, Turkey, Romania and Bulgaria had reached 100,000 first.

In the EU region, it is notable that Ireland, at 76,000 downloads, is lagging behind.

Another observation is that the countries from Africa are lagging significantly from the rest of the world. Low broadband Internet penetration and limited number of Internet users is likely to be the reason.

How many downloads have there been for the Greek localisation of Firefox 3;

kkovash reveals that there have been about 60,000 downloads for the Greek localisation of Firefox 3. This would approximately mean that more than 60% of the downloads in Greece have been for the localised version. Great news.

Today you’ll make history with Firefox

Today you’ll make history with Firefox

Are you ready to make history? Are you ready to set a World Record? Today is Download Day. To become part of the official Guinness World Record you must download Firefox 3 by 17:00 18:15 UTC on June 18, 2008, or roughly 24 hours from now.

Download page with live download statistics

The sender of this email is Mozilla Corporation, 1981 Landings Drive, Bldg. K, Mountain View, CA 94043-0801.

Did you receive your notification for your pledge?

The Firefox Download Day has just started. We are already counting 1 and a half hours in the download day. See download countdown which shown until when your downloads count for the record attempt.

Mozilla.com is currently very slow due to the repeated attempts to download. I hope the issue is resolved soon.

Update +2 hours: Now it works; when you visit the download page, it now shows correctly that Firefox 3.0 is available for download.

Update +16 hours: The download count reached 5,400,000 downloads. It is good to drive it higher. You can get your national download total, and ask your friends and family to help increase it.

Update +20 hours: The download count is over 6,000,000 downloads. Due to the technical issues at the start of the record attempt, the deadline for downloads has been extended by one hour and 15 minutes.

Update +24 hours: The download count is nearing 8,000,000 downloads. We have a bit more than an hour to go (due to the technical issue that delayed the start of the downloads). Can we make it to 8 million?

Update +25 hours: We did it! 8 million downloads in 24 hours! World record!

Update +30 hours: The world record attempt has been completed. Still, the Firefox 3 downloads continue. At the moment we surpassed 9.4 million downloads and counting.

Looking into the symbol files

In the previous post, we talked about the ANTLR grammar that parses the XKB layout files.

The grammar is available at http://code.google.com/p/keyboardlayouteditor/source/browse. I’ll rather push to the freedesktop repository once the project is completed. Now it’s too easy for me, just doing svn commit -m something.

Below you can see the relevant layout files for each country (and in some cases, language), and how the grammar deals with them. First column is filenames from the CVS XKB symbols subdirectory (to be moved eminently to GIT). Last’s week discussion with Sergey helped me figure out issues with the symbol files, simplify what information is needed, and what can be eliminated. Second column has Not OK if something is wrong. Third column tries to explain what was wrong.

ad
af
al
altwin
am
ara
az
ba
bd
be
bg
br
braille
bt
by
ca
capslock
cd
ch
cn
compose
ctrl
cz
de
dk
ee
epo
es
et
eurosign
fi
fo
fr
gb NOK Non-UTF8
ge
gh
gn
gr
group NOK virtualMods= AltGr
hr
hu NOK Non-UTF8
ie
il NOK key.type=”FOUR_LEVEL” (typically: key.type[something]=….)
in NOK key.type=”FOUR_LEVEL” (typically: key.type[something]=….)
inet
iq
ir
is
it
jp NOK key <BKSP> {
type=””,   // empty?
symbols[Group1]= [ bracketright, braceright ]
};
keypad NOK overlay1=<KO7> }; // what’s “overlay”?
kg
kh
kpdl
kr
kz
la
latam
latin
level3 NOK virtual_modifiers LAlt, AlGr; virtualMods= Lalt
level5
lk
lt
lv
ma
mao
me
mk
mm
mn
mt
mv
nbsp NOK Non-UTF8
ng
nl
no
np
olpc
pc NOK key <AA00> { type=”SOMETHING” } instead of { type[Group1]=”SOMETHING” }
pk
pl
pt
ro
rs
ru
se
shift NOK actions [Group1] = [
si
sk
srvr_ctrl NOK key <AA00> { type=”SOMETHING” } instead of { type[Group1]=”SOMETHING” }
sy
th
tj
tr
ua

Non-UTF-8 are the files that have characters that are not UTF-8 (are iso-8859-1).

Some layouts have key.type = “something” and others key.type[SomeGroup] = “something”. Apparently, the format allows to infer which is the group that the type acts upon? That’s weird. Would it be better to put the group information? Is it required that the group is not set?

Some files have virtualMods, which I do not know what it is. Is it used?

thersa.org.uk, infected.

Probably through SQL injection, this page of thersa.org.uk links to a javascript file from some server in China

The screenshot shows the thersa.org.uk website has been infected, and users that visit it end up running in their browsers malicious JavaScript code. The code loads Javascript files from the .cn and the .la domains.

There is a reference in one of the files to a cookie named killav (Kill Antivirus?) that may disable some antivirus programs.

In addition, one of the JavaScript files checks which browser you have. If you have Internet Explorer 6 or 7, it loads some exploit which attempts to run binary code. If this succeeds, you are infected. If you have Firefox, it does not attempt to perform an infection, and it goes to the next phase.

The next phase is to open up pages to sites in China. It appears to me that the bussines plan in that case is to generate revenue from ad hits.

The worst thing however is if you get infected. Unpatched windows systems are at the mercy of these attackers.

One way to mitigate such risks is to use Mozilla Firefox, and have the NoScript add-on installed.

Update 5 June 2008:

The RSA updated their website by moving it away from Windows and ASP, to open source software. They are using Centos Linux, Apache, and an open-source CMS. Therefore, the above security risk does not apply any more.

Keyboard Layout Editor GSOC project

I got accepted for a GSOC project with the X.Org Foundation. My mentor is Sergey Udaltsov and I look forward working with him.

The project is about creating a Keyboard Layout Editor, that can be used to edit XKB files with a nice GUI.

I will be blogging about these from here (fdo category at this blog).

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.