«Εσείς, κύριέ μου, έχετε όρεξη για κουβέντα!» Ντρανκ!

Έχει έρθει το guerrila μάρκεντινγκ και στην Ελλάδα. Σε παίρνουν τηλέφωνο και σε πιέζουν να αγοράσεις ένα προϊόν ή μια υπηρεσία χρησιμοποιώντας πολλές επιθετικές τακτικές, μια από αυτές είναι ότι σε ξαφνιάζουν με το τηλεφώνημα και τη γρήγορη ροή του λόγου.

Έχω ακούσει ιστορίες για ηλικιωμένες κυρίες που επιλέγουν νέα συμβόλαια για το τηλέφωνο με 26 ευρώ το μήνα (περιλαμβάνει απεριόριστές κλήσεις) αντί του υπάρχοντος 14 ευρώ το μήνα (ΟΤΕ, 28 ευρώ το δίμηνο), ενώ τα τηλεφωνήματα που κάνουν είναι πολύ λιγότερο από 12 ευρώ (η διαφορά).

Όταν χτύπησε το τηλέφωνο, δεν το έπιασα εγώ. Μετά από λίγα λεπτά με παραξένεψε η σχετική ησυχία. Πάω να δω, «Λέει κάτι για το τηλέφωνο και το Ίντερνετ». Προσφέρομαι να συνεχίσω τη συνομιλία.

«Σας απαλάσσουμε από το πάγιο του ΟΤΕ. Με την υπηρεσία μας μπορείτε να παίρνετε τηλέφωνο δωρεάν στην Ελλάδα και το εξωτερικό. Ακόμα, σας βάζουμε και Ιντερνετ. Και πολλά άλλα, που σας τα λέω από το τηλέφωνο αλλά είμαι σίγουρη ότι δε θα τα θυμάστε όταν γράφεται την κατάντια μας στο ιστολόγιό σας.»

«Με ενδιαφέρει το κομμάτι για το Διαδίκτυο. Μπορείτε να μού πείτε περισσότερα;»

διαβάζει μερικές παραγράφους με τυπικές πληροφορίες, που φυσικά δεν μπαίνουν σε λεπτομέρειες

κάνω μερικές τεχνικές ερωτήσεις

κάνει προσπάθεια για απαντήσεις

«Μπορείτε να μου πείτε τι διαφορά έχει η υπηρεσία σας από άλλες παρόμοιες; Βλέπω ότι έχετε ακριβώς τις ίδιες τιμές. Γιατί να προτιμήσω εσάς;»

κάποια λεπτομέρεια που δεν θυμάμαι. Ας είναι καλά ο ΟΤΕ, δεν υπάρχει διαφοροποίηση παρά μόνο όταν το δίκτυο είναι ιδιόκτητο. (Λάθος, το δίκτυο ήταν ιδιόκτητο. Ακόμα και με ιδιόκτητο, το ίδιο αποτέλεσμα στις τιμές)

εδώ ρωτώ για το χρόνο που χρειάζεται για την ενεργοποίηση (δεν υπάρχει εγγύηση για το πότε θα λειτουργήσει η γραμμή), δεν υπάρχει εγγύηση για το πόσο χρόνο θα είναι η τηλεφωνική γραμμή εκτός λειτουργίας, δεν υπάρχει εγγύηση, δεν υπάρχει εγγύηση, …

«Ποια είναι η διαδικασία για να αγοράσω την υπηρεσία σας; Πως θα μάθω τις λεπτομέρειες του συμβολαίου;»

«Θα μου δώσετε τα στοιχεία σας και θα έρθει ο κούριερ να σας δώσει το συμβόλαιο να υπογράψετε»

«Είναι διαθέσιμο το συμβόλαιο για να το διαβάσω πιο νωρίς; Για παράδειγμα, κάποιος δικτυακός τόπος;»

«…»

«Εννοώ είναι διαθέσιμο το συμβόλαιο σε ηλεκτρονική μορφή στο Ίντερνετ;»

«Αα. Το συμβόλαιο θα το φέρει ο κούριερ. Μόνο ο κούριερ το έχει. Θα το δείτε εκείνη τη στιγμή.»

«Θα διαβάσω το συμβόλαιο όσο περιμένει ο κούριερ;»

«Ναι»

«Θα περιμένει ο κούριερ εμένα να διαβάσω το συμβόλαιο; Αν χρειάζομαι 20 με 30 λεπτά;»

«Τι λέτε τώρα; Ο κούριερ πάει σε 50 σπίτια την ημέρα. Σε 2 λεπτά μπορείτε να το ρίξετε μια ματιά και να το υπογράψετε!»

Όταν κάποιος λέει “Θα κάνω μισό λεπτό”, εννοεί ότι θα γυρίσει μετά από μισή ώρα ή περισσότερο. Όταν κάποιος λέει “Έχεις δύο λεπτά χρόνο”, εννοεί ότι 20 δευτερόλεπτα είναι το ανώτατο χρονικό όριο πριν πάρει το στυλό και σε πιέσει να υπογράψεις.

«Δεν έχω τη δυνατότητα να υπογράψω ένα συμβόλαιο που δεν έχω δει πριν, και που πρέπει να αφιερώσω τόσο λίγο χρόνο για να το διαβάσω.»

«Εσείς, κύριέ μου, έχετε όρεξη για κουβέντα!» Ντρανκ!

Γράμμα από τον κ. Μπιλ Γκέιτς #2

Μιλήσαμε πρόσφατα για ένα γράμμα από τον κ. Γκέιτς για να προστεθούν χαρακτηριστικά στα έγγραφα γραφείου που να κάνουν δύσκολη τη πρόσβαση από τρίτους κατασκευαστές.

Θα μιλήσουμε τώρα για ένα ακόμα γράμμα από τον κ. Γκέιτς για να προστεθούν χαρακτηριστικά στο BIOS των υπολογιστών ώστε να είναι δυσκολότερη η λειτουργία από τρίτα λειτουργικά συστήματα.

Email by Bill Gates to Microsoft to make ACPI misbehave for Linux

Email by Bill Gates to Microsoft to make ACPI misbehave for Linux

Μπορείτε να δείτε το πλήρες κείμενο από τα τεκμήρια της δίκης μεταξύ Comes και Microsoft, που έγινε στην Αμερική πριν από μερικά χρόνια.

Το κείμενο στα αγγλικά,

From: Bill Gates
Sent: Sunday, January 24, |999 8:41 AM
To: Jeff Westorinon; Ben Fathi
Cc: Carl Stork (Exchange); Nathan Myhrvofd; Eric Rudder
Subject: ACPI extensions

One thing I find myself wondering about is whether we shouldn’t try and make the “ACPI” extensions somehow Windows specific.

If seems unfortunate if we do this work and get our partners to do the work and the result is that Linux works great without having to do the work.

Maybe there is no way to avoid this problem but it does bother me.

Maybe we could define the APIs so that they work well with NT and not the others even if they are open.

Or maybe we could patent something relaled to this.

(πηγή: τεκμήριο δίκης μεταξύ Comes και Microsoft)

Το κείμενο στα ελληνικά (με ελεύθερη μετάφραση):

Από: Bill Gates
Στάλθηκε: Sunday, January 24, |999 8:41 AM
Προς: Jeff Westorinon; Ben Fathi
Αντιγραφή: Carl Stork (Exchange); Nathan Myhrvofd; Eric Rudder
Θέμα: ACPI extensions

Ένα πράγμα που με απασχολεί είναι το αν θα έπρεπε να κάνουμε τις επεκτάσεις ACPI να είναι ειδικές για Windows.

Φαίνεται να είναι ατυχής κατάσταση αν κάνουμε τη δουλειά και οι συνεργάτες μας κάνουν τη δουλειά, και το αποτέλεσμα είναι να δουλεύει στο Linux δίχως να χρειάζεται να κάνει τη δουλειά.

Ίσως να μην υπάρχει τρόπος να το αποφύγουμε, αλλά με απασχολεί το ζήτημα.

Ίσως να μπορούσαμε αν καθορίσουμε τα API ώστε να δουλεύουν καλά με NT και όχι με τους άλλους, ακόμα και αν είναι ανοιχτά.

Ή ίσως να μπορούσαμε να πατεντάρουμε κάτι σχετικό.

(πηγή: τεκμήριο δίκης μεταξύ Comes και Microsoft)

Είναι σημαντικό να προσέξουμε ότι το παραπάνω γράμμα δεν είναι τεκμήριο ότι η Μίκροσοφτ έκανε όντως τέτοιες ενέργειες. Ο κ. Γκέιτς ήταν εκείνο το διάστημα CEO της Μίκροσοφτ, και η δουλειά του ήταν να κατευθύνει την εταιρία. Οι δε υπάλληλοι δούλευαν στην κατεύθυνση του CEO.

Το μήνυμα που πρέπει να κρατήσουμε σε κάθε κατάσταση είναι ότι το παραπάνω γράμμα δείχνει τη συμπεριφορά της εταιρίας στο χώρο της πληροφορικής. Ως καταναλωτές, η συμπεριφορά αυτή είναι πολύ αρνητική.

Δείτε το άρθρο του Λευτέρη για ένα πρόβλημα χρήστη με τη μητρική του και το ACPI.

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.

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

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 blog at http://blogs.gnome.org/simos/.

Enhancing the writing support in GTK+

Upgrading to Wordpress 2.6 and the white blank page

I just completed the upgrade of my blog to Wordpress 2.6. It took more time that I had anticipated. However, the process was quite educational.

I have upgraded before using the WordPress Auto Updated plugin. After a few clicks, your blog is updated. It is so easy that it is hard to resist. I tried WPAU in order to get to Wordpress 2.6, and the process was somewhat interrupted on the final stages. It was not clear what the problem was. The effect however was any access to any page of the blog would result to a blank page. No errors, no warnings whatsoever.

In terms of troubleshooting, it is really annoying not to have some sort of feedback. My visit to #wordpress at Freenode resulted in “oh dude, join the club”. Apparently, the blank page issue is common and it affects many users. I just noticed that Irene’s blog gives a blank page as well; I wonder if she upgraded recently.

There are a few blog posts that debate on the blank page issue; use blogsearch.google.com to find the most fresh of them. The typical blog post on the blank page issue has a standard format with the author dumping a laundry list of things they tried first before mentioning at the end of the post in vague terms what they think the source of the problem is. I will spare of the long list as we are already at the fourth paragraph of the post.

What I believe was the problem is the theme. When you use WPAU, it does not disable the theme since you are upgrading from within the Wordpress administration screen. Then, you end up with a new WordPress and a theme that crashes. If you are planning to try WPAU, it might be good to revert to a default theme first.

If you are reading this, then you probably messed up your blog already. You can change the theme using phpmyadmin, by altering the wp_options table. The option_names of interest are template, stylesheet and current_theme. Put default values here.

Overall it was quite educational to go through the details of installing WordPress, picking new theme, dumping old plugins and updating existing ones. What’s needed now is a full backup and hope the blog works until WordPress 3.0.

Code of conduct και ελληνικές κοινότητες ΕΛ/ΛΑΚ

Ένα πρόβλημα με τις κοινότητες ελ/λακ είναι ότι μερικά από τα μέλη δεν ακολουθούν τους τυπικούς κανόνες συμπεριφοράς, και αυτό έχει το αποτέλεσμα να δημιουργείται συχνά ένα αρνητικό κλίμα.

Ένα πρόσφατο παράδειγμα είναι στη λίστα gnome-i18n, όπου ένας νέος μεταφραστής ήταν πολύ αρνητικός και προσβλητικός στη συμπεριφορά του απέναντι στο συντονιστή της συγκεκριμένης γλώσσας και άλλα άτομα που έλαβαν μέρος στη συζήτηση (=όπως εμένα!). Κατά τη συζήτηση, έγινε αναφορά στο λεγόμενο Code of conduct του GNOME, απλοί κανόνες καλής συμπεριφοράς. Αν θέλεις να συμμετέχεις στο GNOME, πρέπει να ακολουθείς τους κανόνες καλής συμπεριφοράς. Εννοείται ότι ο καθένας που λαμβαίνει μέρος στην ανάπτυξη του GNOME ακολουθεί τους κανόνες αυτούς· ωστόσο μπορεί κάποιος και να υπογράψει ότι ακολουθεί τους κανόνες. Το ίδιο συμβαίνει με την κοινότητα του Ubuntu Linux όπου ο χρήστης μπορεί να υπογράψει ψηφιακά το Code of Conduct με το κλειδί του, και να λάβει το χαρακτηρισμό Ubuntero.

Στην ελληνική πραγματικότητα δεν έχουμε φτάσει ακόμα σε τέτοια επίπεδα και η κατάσταση είναι σχεδόν ad-hoc. Αναφερθήκαμε πρόσφατα στο πρόβλημα με το φόρουμ Linux του Adslgr.com.Ένα πράγμα που θεωρώ πολύ σημαντικό είναι ότι πρέπει να υπάρχει σεβασμός και τήρηση των τυπικών κανόνων καλής συμπεριφοράς. Παλαιότερα που έβλεπα τη λίστα LGU, παρατηρούσα ότι υπήρχαν συχνές «παραβάσεις», με αποτέλεσμα να επικρατεί αρνητικό κλίμα, να μην βγαίνουν αποτελέσματα στις συζητήσεις, ο καθένας να προσπαθεί να κάνει τον έξυπνο και να «την βγει» στον άλλο, και ουσιαστικά να γίνεται κακό στην κοινότητα, στους νέους χρήστες. Για τώρα δεν γνωρίζω, έχω την εντύπωση ότι τα πράγματα δεν έχουν καλυτερέψει σημαντικά. Είδα την πρόσφατη συζήτηση στην LGU για το σχολιασμό της μετάφρασης από ΕΛΟΤ των θεμελιωδών όρων πληροφορικής. Πολλά άτομα απάντησαν, ωστόσο στη συζήτηση αυτή δεν παρατήρησα κάποιο χειροπιαστό αποτέλεσμα.

Ένα άλλο πρόσφατο παράδειγμα είναι με αυτό το γράμμα στη λίστα public@hellug.gr. Ανεξάρτητα αν έχει δίκιο ή όχι ο αποστολέας, το γράμμα αυτό είναι από τα πιο τυπικά για να κάνει μια συζήτηση να αποσυντονιστεί. Ο δε αποστολέας του γράμματος δεν είναι νέος χρήστης· είναι μέλος της κοινότητας πάνω από δέκα χρόνια. Αντί να έχει την ωριμότητα να κλείσει το θέμα, το ανοίγει περισσότερο.

Βλέπω αυτό το εχθρικό περιβάλλον να διαιωνίζεται σε συγκεκριμένες κοινότητες, με μικρές ελπίδες για αλλαγή.

Προσωπικά αφιερώνω χρόνο στο φόρουμ του ελληνικού Ubuntu, στο http://ubuntu.opengr.net/ όπου υπάρχει έντονη προσπάθεια να έχουμε ένα θετικό περιβάλλον. Βλέπουμε να έχουμε αποτελέσματα, και να γίνονται μέλη περισσότεροι νέοι χρήστες της διανομής. Το ίδιο θετικό περιβάλλον υπάρχει στη λίστα του Ubuntu-gr.

Αντιγράφω εδώ τους κανόνες καλής συμπεριφοράς του GNOME,

Advice

  • 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.

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.

What to see in OpenOffice.org 3.1 Writer;

At the User Experience mailing list at OpenOffice.org there is a thread to discuss & plan what new things should make it to OpenOffice.org 3.1. Here is the first email,

From: Christian Jansen

Date: Wed, Jun 25, 2008 at 8:35 AM

Hi,
OpenOffice.org 3.1 planning will start soon, thus I’d like to collect some ideas (from an UX-perspective) for improving OpenOffice.org Writer.

- What drives you nuts?

- What works pretty well?

- My most wanted feature is:

Thanks for your feedback!

Regards,
Christian [Jansen]

Source: http://ux.openoffice.org/servlets/ReadMsg?list=discuss&msgNo=1890

Feedback started pouring in. Make your way to the user-experience discuss@ux.openoffice.org mailing list to add your views. When you log in to OpenOffice.org, you click to subscribe to the mailing list. That is, you need to make an account first.

Converting between XKB and XML

I completed the stage that takes keyboard layout files from XKB (X.Org) and converts them to XML documents, based on a keyboard layout Relax NG schema. Then, these XML documents can also be converted back to keyboard layout files.

Here is an imaginary example of a keyboard layout file.

// Keyboard layout for the Zzurope country (code: zz).
// Yeah.

partial alphanumeric_keys alternate_group hidden
xkb_symbols "bare" {
   key <AE01> { [        1, exclam,      onesuperior,  exclamdown      ] };
};

partial alphanumeric_keys alternate_group
xkb_symbols "basic" {
   name[Group1] = "ZZurope";

   include "zz(bare)"

   key <AD04> { [        r, R,           ediaeresis,   Ediaeresis      ] };
   key <AC07> { [        j, J,           idiaeresis,   Idiaeresis      ] };
   key <AB02> { [        x, X,           oe,           OE              ] };
   key <AB04> { [        v, V,           registered,   registered      ] };
};

partial alphanumeric_keys alternate_group
xkb_symbols "extended" {
    include "zz(basic)"
    name[Group1] = "ZZurope Extended";
    key.type = "THREE_LEVEL"; // We use three levels.
    override key <AD01> {   type[Group1] = "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC",
[ U1C9, U1C8], [  any,   U1C7 ]   }; // q
    override key <AD02> {   [ U1CC, U1CB, any,U1CA ],
type[Group1] = "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" }; // w
    key <BKSP> {
        type[Group1]="CTRL+ALT",
        symbols[Group1]= [ BackSpace,   Terminate_Server ]
    };
    key <BKSR> { virtualMods = AltGr, [ 1, 2 ] };
    modifier_map Control { Control_L };
    modifier_map Mod5   { <LVL3>, <MDSW> };
    key <BKST> { [1, 2,3, 4] };
};

When converted to an XML document, it looks like

<?xml version="1.0" encoding="UTF-8"?>
<layout layoutname="zz">
  <symbols>
    <mapoption>hidden</mapoption>
    <mapoption>xkb_symbols</mapoption>
    <mapname>bare</mapname>
    <mapmaterial>
      <tokenkey override="False">
        <keycodename>AE01</keycodename>
        <keysymgroup>
          <symbolsgroup>
            <symbol>1</symbol>
            <symbol>exclam</symbol>
            <symbol>onesuperior</symbol>
            <symbol>exclamdown</symbol>
          </symbolsgroup>
        </keysymgroup>
      </tokenkey>
    </mapmaterial>
  </symbols>
  <symbols>
    <mapoption>xkb_symbols</mapoption>
    <mapname>basic</mapname>
    <mapmaterial>
      <tokenname name="ZZurope"/>
      <tokeninclude>zz(bare)</tokeninclude>
      <tokenkey override="False">
        <keycodename>AD04</keycodename>
        <keysymgroup>
          <symbolsgroup>
            <symbol>r</symbol>
            <symbol>R</symbol>
            <symbol>ediaeresis</symbol>
            <symbol>Ediaeresis</symbol>
          </symbolsgroup>
        </keysymgroup>
      </tokenkey>
      <tokenkey override="False">
        <keycodename>AC07</keycodename>
        <keysymgroup>
          <symbolsgroup>
            <symbol>j</symbol>
            <symbol>J</symbol>
            <symbol>idiaeresis</symbol>
            <symbol>Idiaeresis</symbol>
          </symbolsgroup>
        </keysymgroup>
      </tokenkey>
      <tokenkey override="False">
        <keycodename>AB02</keycodename>
        <keysymgroup>
          <symbolsgroup>
            <symbol>x</symbol>
            <symbol>X</symbol>
            <symbol>oe</symbol>
            <symbol>OE</symbol>
          </symbolsgroup>
        </keysymgroup>
      </tokenkey>
      <tokenkey override="False">
        <keycodename>AB04</keycodename>
        <keysymgroup>
          <symbolsgroup>
            <symbol>v</symbol>
            <symbol>V</symbol>
            <symbol>registered</symbol>
            <symbol>registered</symbol>
          </symbolsgroup>
        </keysymgroup>
      </tokenkey>
    </mapmaterial>
  </symbols>
  <symbols>
    <mapoption>xkb_symbols</mapoption>
    <mapname>extended</mapname>
    <mapmaterial>
      <tokenname name="ZZurope Extended"/>
      <tokeninclude>zz(basic)</tokeninclude>
      <tokentype>THREE_LEVEL</tokentype>
      <tokenmodifiermap state="Control">
        <keycode value="Control_L"/>
      </tokenmodifiermap>
      <tokenmodifiermap state="Mod5">
        <keycodex value="LVL3"/>
        <keycodex value="MDSW"/>
      </tokenmodifiermap>
      <tokenkey override="True">
        <keycodename>AD01</keycodename>
        <keysymgroup>
          <symbolsgroup>
            <symbol>U1C9</symbol>
            <symbol>U1C8</symbol>
          </symbolsgroup>
          <symbolsgroup>
            <symbol>any</symbol>
            <symbol>U1C7</symbol>
          </symbolsgroup>
          <typegroup value="SEPARATE_CAPS_AND_SHIFT_ALPHABETIC"/>
        </keysymgroup>
      </tokenkey>
      <tokenkey override="True">
        <keycodename>AD02</keycodename>
        <keysymgroup>
          <symbolsgroup>
            <symbol>U1CC</symbol>
            <symbol>U1CB</symbol>
            <symbol>any</symbol>
            <symbol>U1CA</symbol>
          </symbolsgroup>
          <typegroup value="SEPARATE_CAPS_AND_SHIFT_ALPHABETIC"/>
        </keysymgroup>
      </tokenkey>
      <tokenkey override="False">
        <keycodename>BKSP</keycodename>
        <keysymgroup>
          <symbolsgroup>
            <symbol>BackSpace</symbol>
            <symbol>Terminate_Server</symbol>
          </symbolsgroup>
          <typegroup value="CTRL+ALT"/>
        </keysymgroup>
      </tokenkey>
      <tokenkey override="False">
        <keycodename>BKSR</keycodename>
        <keysymgroup>
          <symbolsgroup>
            <symbol>1</symbol>
            <symbol>2</symbol>
          </symbolsgroup>
          <tokenvirtualmodifiers value="AltGr"/>
        </keysymgroup>
      </tokenkey>
      <tokenkey override="False">
        <keycodename>BKST</keycodename>
        <keysymgroup>
          <symbolsgroup>
            <symbol>1</symbol>
            <symbol>2</symbol>
            <symbol>3</symbol>
            <symbol>4</symbol>
          </symbolsgroup>
        </keysymgroup>
      </tokenkey>
    </mapmaterial>
  </symbols>
</layout>

When we convert the XML document back to the XKB format, it looks like

hidden xkb_symbols "bare"
{
	key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
};

xkb_symbols "basic"
{
	name = "ZZurope";
	include "zz(bare)"
	key <AD04> { [ r, R, ediaeresis, Ediaeresis ] };
	key <AC07> { [ j, J, idiaeresis, Idiaeresis ] };
	key <AB02> { [ x, X, oe, OE ] };
	key <AB04> { [ v, V, registered, registered ] };
};

xkb_symbols "extended"
{
	name = "ZZurope Extended";
	include "zz(basic)"
	key.type = "THREE_LEVEL";
	modifier_map Control { Control_L };
	modifier_map Mod5 { <LVL3>, <MDSW> };
	override key <AD01> { [ U1C9, U1C8 ], [ any, U1C7 ], type = "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC"  };
	override key <AD02> { [ U1CC, U1CB, any, U1CA ], type = "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC"  };
	key <BKSP> { [ BackSpace, Terminate_Server ], type = "CTRL+ALT"  };
	key <BKSR> { [ 1, 2 ], virtualMods = AltGr  };
	key <BKST> { [ 1, 2, 3, 4 ] };
};

Some things are missing such as partial, alphanumeric_keys and alternate_group, which I discussed with Sergey and he said they should be ok to go away.

In addition, we simplify by keeping just Group1 (we do not specify it, as it is implied).

I performed the round-trip with all layout files, and all parsed and validated OK (there is some extra work with the level3 file remaining, though).

Some issues that are remaining, include

  • Figuring out how to use XLink to link to documents in the same folder (+providing a parameter; the name of the variant), and how to represent that in the Relax NG schema.
  • Sort the layout entries by keycode value.

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.

Firefox Download Day Today! Check the start time!

Tuesday, 17th June 2008, is the Firefox 3 download day.
Download Day
For the world record attempt, check the start time for your location before downloading Firefox.

If you are located in Athens, Greece, we start at 20:00, Tuesday 17th June 2008.

If you are located in London, UK, we start at 18:00, Tuesday 17th June 2008.

Check the correct start time for your location.

Download Firefox 3!
Download Day - English
For more information, see http://www.spreadfirefox.com/