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

22Jun/092

The bashrc bash configuration files

The default shell in most Linux distributions is the bash shell. Contrary to all the usability work that has been done to the GUI, the shell is most neglected area.

Current bashrc shell (shows prompt only)

Depicting a shell is not an easy task; in the screenshot above we only show the default prompt. It has the following disadvantages,

  1. It does not differentiate visually between the username and hostname.
  2. It shows the relative path only, making it difficult to realize quickly the full path for the current working directory.
  3. Cannot copy the path using the mouse by double-clicking on it. The ~ is not included in the highlighted text, that one needs to paste and add the remaining part of the path (such as /home/user/)
  4. The point of input changes position on the command line, depending on the size of the path. As you cd into directories, the point of input moves further to the right.

The bashrc project shell

This is the prompt with the bashrc project configuration files. It solves the problems described with the default configuration files found in Linux distributions.

Obviously, there are more to the shell’s configuration files than a usable prompt. For example,

  • the ability to show the partial matches when you press Tab for the first time
  • enabling the shopt options to reasonable values
  • have reasonable aliases for . .. … / -
  • adding –verbose, –interactive to basic utilities such as cp, mv, rm
  • show the exit value of an application if it is other than 0 ($?)

There is a EnhancedBash project for the Ubuntu Linux distribution which might be able to break apart and provide better default configuration files.

If you want to help and add more to the proposed configuration, visit http://github.com/simos/bashrc/

To use the bashrc shell, you need to

  1. Download the latest package from http://github.com/simos/bashrc/ (note the Download button).
  2. Extract the package, open a terminal window and enter the newly created directory.
  3. Run make install
  4. Open a new shell window. The new settings should be activated.
20Jun/090

Συνέδριο ΕΛΛΑΚ: Εξελληνισμός GNOME 2.26

Στις 19 Ιουνίου 2009 έγινε παρουσίαση του έργου εξελληνισμού του GNOME στο συνέδριο δημιουργών ΕΛ/ΛΑΚ.

Είχαμε την ευκαιρία να μιλήσουμε για το αποτέλεσμα του τελευταίου έργου εξελληνισμού του GNOME όπου ολοκληρώσαμε τη μετάφραση του GNOME 2.26 για το γραφικό περιβάλλον και την τεκμηρίωση στα ελληνικά.

Πριν ξεκινήσουμε στις αρχές της άνοιξης, είχαμε μεταφρασμένο ήδη το 32% της τεκμηρίωσης και το 87% του γραφικού περιβάλλοντος. Με το τέλος του έργου (πλήρης μετάφραση), για την τεκμηρίωση έχουμε μεταφράσει 343.000 λέξεις περίπου και για το γραφικό περιβάλλον 190.000 λέξεις.

Οι μεταφραστές που βοήθησαν στην έκδοση αυτή είναι

  • Μάριος Ζηντίλης
  • Τζένη Πετούμενου
  • Στέργιος Προσινικλής
  • Φώτης Τσάμης
  • Γιάννης Κατσαμπίρης
  • Μιχάλης Κοτσαρίνης
  • Βασίλης Κοντογιάννης
  • Σωκράτης Βαβύλης
  • Κώστας Παπαδήμας (pkst)
  • Νίκος Χαρωνιτάκης (frolix68)
  • Σίμος Ξενιτέλλης (simosx)
  • (κάποια μέλη δεν έδωσαν το πλήρες όνομά τους, παρακαλώ επικοινωνήστε)

Από τα μεγάλα πακέτα της τεκμηρίωσης, έχουμε τα

  • Οδηγός διαχείρισης (Τζένη)
  • Οδηγός προσιτότητας (Τζένη)
  • Τεκμηρίωση Evolution Mail (Μάριος)
  • Τεκμηρίωση Aisleriot (Τζένη)
  • Τεκμηρίωση gedit (Μιχάλης)
  • Τεκμηρίωση gdm (Στέργιος)

Το μεγαλύτερο μέρος από τα στιγμιότυπα οθόνης (screenshots) τα ανέλαβαν οι Φώτης Τσάμης και Μάριος Ζηντίλης.

Το παραδοτέο είναι διαθέσιμο στο http://www.gnome.gr/files/gnome226/ και οι συντονιστές έργου ήταν οι Τζένη Πετούμενου και Σίμος Ξενιτέλλης. Οι commiters ήταν οι Νίκος Χαρωνιτάκης, Κώστας Παπαδήμας και Σίμος Ξενιτέλλης.

Το αρχείο της τεκμηρίωσης είναι ELLAK_Conf2009-GNOME-L10n (.odp, για OpenOffice.org Impress).

23May/090

Try Firefox 3.5 (pre), with in-built video support (+subtitles)

You can try out Firefox 3.5 (not final yet) now and have a sneak preview of the new features.
Among the new features is the in-built support for video (there is a new video tag you can add to your (X)HTML pages)).

With some extra Javascript, it is possible to top up the video playback with subtitles, in your language!

1. Therefore, grab a copy of Firefox 3.5 (pre).

2. When you run it, it is advised to run it as

./firefox -ProfileManager -no-remote

This asks you to select a different profile, so you can create a special profile just for testing Firefox 3.5. The -no-remote option helps you to have independent Firefox sessions from your normal Firefox you may be running.

3. Visit the Firefox 3.5 video demonstration page with subtitles.

4. Here is a version with translated subtitles for Greek.

Mozilla 3.5 demonstrating video with Greek subtitles

Note that Firefox supports the OGV video container format. Therefore, you may need to convert your videos to OGV.

5May/092

Migrate from Hotmail to GMail

So you have this Hotmail account and you want to migrate to GMail for all the obvious reasons. How can you do that?

A few months ago it was possible to forward your Hotmail e-mails to another e-mail account, which made it very easy to migrate to any other e-mail provider. However, Microsoft decided to limit this functionality so that you can only forward within the Microsoft e-mail services (such as hotmail.com, live.com, etc). This limitation looks like a desperate attempt to limit the drain of e-mail users.

Since mid-March, Microsoft provides POP3 access to your live.com or hotmail.com e-mail account. It looks like Microsoft had to let this go because users want to receive their e-mails to their mobile devices, etc.

Thus, how do you migrate from Hotmail.com or Live.com to GMail?

  1. In GMail, click on Settings→Accounts and scroll down to Get mail from other accounts.
  2. Click on Add a mail account you own.
  3. GMail Add your account

  4. GMail My account Settings

  5. When you click on Add Account », GMail will check on the spot if it can access the Hotmail account. If there is a problem, you will be prompted with the precise error. For example, I noticed that Hotmail does not like logging on in POP3 twice with 15 minutes. So, when you add two Hotmail accounts, space it out to over a quarter of an hour.
  6. GMail Identity

    On the next screen, you are prompted if you want GMail to setup an e-mail identity for this Hotmail account. What this does is that it allows you to reply to the received e-mails using your Hotmail e-mail address while you are inside GMail! Here I recommend to enable this feature, but select your GMail address in the Reply-To field. This means that by default, when you reply to your Hotmail mails, the sender will be your GMail account. However, on demand, you have the option to select the identity of your Hotmail e-mail account when composing a new e-mail. This process helps in your contacts learning gradually that your e-mail address is actually your GMail one. For those that continue to send mails to your Hotmail.com account you can remind them which is your current address.

16Feb/091

Google Street View enters Europe

Google Street View has entered Europe. The Wikipedia article has up to date information on the countries covered already (France, Italy, Spain). In addition, there is information of the countries that will get covered in the future.

Google Street View (Europe)

The colored areas are the areas that Google Street View data is available. These areas appear when you drag the yellow doll from the zoom area at the left, and you hover it over the map.

Apparently, the privacy concerns did not stop Street View from entering Europe. The faces of the people and the car number plates are blurred in most cases. If you search a bit, it is possible to find cases that a traffic plate or face have not been blurred (example, example).

Filed under: general 1 Comment
16Feb/090

Dreamhost coupons for free domains

When you register to Dreamhost for your new webhosting plan, you can choose the following coupons in order to get free domains. The domains are free for the lifetime of your account with them.

TWODOMAINSFREE, you get two free domains in total

THREEDOMAINSFREE, you get three free domains in total

Filed under: general No Comments
7Jan/090

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.

Filed under: general No Comments
11Dec/080

Upgraded to Wordpress 2.7

I used the WPAU (WordPress Automatic Update), found at http://wordpress.org/extend/plugins/wordpress-automatic-upgrade/ which lets you perform the upgrade from the UI (it’s not an unattended automatic upgrade, but rather Assisted upgrade).
I am posting this using the QuickPress feature in 2.7.
WPAU may not be good for you depending on what weird security features have been enabled by your webhosting provider.

Tagged as: , No Comments
12Nov/082

Ubuntu 8.10, PulseAudio and Skype Problem

You installed Ubuntu 8.10, then added Skype, you try out Skype and you notice that the microphone does not work.

What’s wrong? If you search the lists, you can find some indications, however no proper explanation of what’s the source of the problem. Without having the Skype Linux developers explain, it’s difficult to know what is goind on.

Some instructions advise to disable PulseAudio. That is not a proper solution, so we ignore. We aim forward not backwards.

Some other instructions suggest to remove the pulseaudio package, then add it back again. I do not understand how that helps over /etc/init.d/pulseaudio restart.

Skype sound device settings

Skype sound device settings

The workaround that works for me is to keep the settings to pulse and set Sound In to HDA Intel (hw:Intel, 0).

Recording does not go through PulseAudio but it interfaces directly to the sound card.

Remember that before trying to troubleshoot Skype, make sure that recording and playback works with Applications▶Sound&Video▶Sound Recorder.

3Oct/082

The Keyboard Layout Editor

(this entry is a repost, the original was lost in a database mishap.)

As part of the 2008 GSoC program, I worked on a Keyboard Layout Editor for the X.Org Foundation.

The Keyboard Layout Editor (KLE) is an application that allows you to create keyboard layouts for the X.Org server, commonly found in the Linux, OpenSolaris, *BSD, etc Desktops.

My mentor was Sergey Udaltsov, maintainer of xkeyboard-config, the Keyboard Indicator applet in GNOME, supporting libraries for keyboard layouts and much more. I had great help and Sergey was very supportive. Highly recommended mentor for your GSoC’09 project.

The Keyboard Layout Editor showing a layout

The Keyboard Layout Editor showing a layout

The screenshot above shows the main window of the program; a keyboard with blank layout (keys are empty), a section Add to layout with items that can be used to populate the layout, and a section for the description of the layout (Layout details).

There are typically two workflows; first you start off with a blank layout and you add Unicode characters, dead keys, include files, then you save.

The other workflow is to start with an appropriate existing layout as a base, then add more characters, make changes, etc.

It might be strange to talk about different workflows, but in terms of usability it’s important provide assistance for such cases. For example, having tooltips is important when a person starts off with a new layout.

Using the Keyboard Layout Editor

Using the Keyboard Layout Editor

Here we started with a blank layout; we click on Start Character Map, then locate the characters you need, and drag and drop them to the appropriate keys. Each key is composed of four parts, and we number these from 1 to 4. The way we count is quite peculiar,

  1. bottom left, when you press the key as is (key)
  2. top left, when you press the key with Shift (Shift + key)
  3. bottom right, when you press the key with AltGr (AltGr + key)
  4. top right, when you press the key with Shilft+AltGr (Shift + AltGr + key)
Analysis of a key

Analysis of a key

This is my entry to the most engineered diagram competition.

The dead keys relate to diacritic marks such as grave and acute. Since they are too small to see, we present them next to a D letter (D for Dead key). In some cases I could not find a character equivalent to the diacritic mark, so I put ?, therefore it looks like D?. If you put the mouse pointer over the key, you can see the full details in the tooltip.

Including files

Including files

In many cases, there exist layouts/variants that contain most of the characters you want to add. In this case, you add and enable in the Include files section. You can then override any of those characters by dragging and dropping to the layout.

At this stage in the blog post, it is important to clarify the notions of a layout and a variant. The two are quite similar and the distinction is messy when trying to explain to the end-user. The French layout file is fr, which contains several variants (distinct groups of mappings of physical keys to Unicode characters). When you are actually talking about a French keyboard layout, you are actually referring to the default variant of the «fr» file. Oftentimes people refer to the «fr» file as a whole as the French layout. You can also pick a non-default variant of the layout file, and call it your layout.

The way I would like to define layout and variant is this: a layout refers to the default variant of the layout file. This is consistent to the fact that distributions pick the default variant in the settings so it’s what get the most visibility, or when users select a new layout, they are presented with the default setting first. Regarding layouts in general, it is important for different languages/scripts to make effort that the default layout is updated and includes extra useful and relevant characters.

The new Greek keyboard layout

The new Greek keyboard layout

This is the updated Greek keyboard layout, and is the near-final version that we are planning to submit to xkeyboard-config. It adds Greek Polytonic to the existing Greek layout.  It does not make changes to the previous default layout, so users will not be unpleasantly surprised. It also adds all sort of characters that are found in the Greek Unicode block.

In this post I simplified some of the terms/description. If I went a bit too far, please correct me and I’ll update in-place.

Update 8th Sep 08: What are the plans for further development of the layout editor;

  • Increase the user base and get more people trying out the editor. This requires some more cleanup of the code, more instructions on how to run it youselves, and get people to provide feedback. An open-source project without users is not a successful project.
  • Make it easier for developers to contribute on the project. If you use Eclipse, you can install pydev, antlr3ide, mylyn, subclipse, and you can do the full development from within the cozy Eclipse environment. These need documentation.
  • The Issues page at the project has about ten items. This list needs to be reduced.
  • The natural place for users of the layout editor is the http://listserv.bat.ru/xkb/List.html mailing list. We need to promote the editor there, and get examples of users actually using it to maintain layouts.
  • An issue that plagues some users is when they need compose sequences to generate characters that no pre-composed forms exist. If users really need this (mainly Latin and Cyrillic scripts, complex scripts), it can be adapted to the UI.
  • It is technically easy to adapt the editor so that it produces XML layouts. Considering the state of XKB-atkins, this may not be a top priority at the moment. libxml2 comes with the MIT license, so in license terms it would be OK. Not sure if it is OK to link libxml2 to the X.org server. It might actually solve the slow parsing of the configurations files and the issues of xkbcomp.
  • At the moment the default geometry is a somewhat generic keyboard. In addition, I deactivated several keys (such as the function keys), in order not to confuse users (you can activate with a small change in the code). The keyboard can be expanded to a full 105-keys style. A related project would be to figure out an efficient way to edit those geometry files, and make the keyboard customised. If people start creating layouts with the editor, they will certainly love to edit geometry files!
24Jul/080

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.

18Jul/080

Éńĥãǹčīṅǧ·ẗḧë·ẃṛīťıñĝ·ṩụṗṗọṙẗ·ıń·ǦŤḰ+

These are the presentation slides of my talk on improving the writing support in GTK+. It relates to several posts I have in my other (now not used anymore) blog at http://blogs.gnome.org/simos/2008/07/23/guadec-2008-presentation-slides/.

Enhancing the writing support in GTK+

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 “Éńĥãǹčīṅǧ·ẗḧë·ẃṛīťıñĝ·ṩụṗṗọṙẗ·ıń·ǦŤḰ+”.