Tag : behaviour

Ποιο είναι το λάθος του Hellug;

(σχετική προηγούμενη δημοσίευση για το ίδιο θέμα).

Είναι ένα μεγάλο ερώτημα τι λάθος κάνει ο Hellug και δημιουργούνται καταστάσεις που περιγράφονται σε κάποιο βαθμό εδώ. Παρόμοιο ζήτημα υπήρξε πριν από επτά μήνες περίπου αλλά και παλαιότερα, και φαίνεται ότι επηρεάζουν την γενικότερη κοινότητα ΕΛ/ΛΑΚ στον ελληνικό χώρο.

Είναι το λάθος με τους «άλλους» ή στον ίδιο το Hellug;

Ο ρόλος του Hellug είναι «να βοηθάει με όσες δυνάμεις έχει τις υπόλοιπες κοινότητες (και ειδικά σε θέματα που απαιτείται θεσμική παρέμβαση), και να αποτελεί το δίαυλο επικοινωνίας μεταξύ τους. πολλές φορές μάλιστα (όπως στην περίπτωση της συμφωνίας με τη ms) εκπροσώπησε τη φωνή της κοινότητας σε θεσμικά όργανα.» (πρόεδρος του Hellug, πηγή).

Είμαι σίγουρος ότι το συμβούλιο του Hellug και τα άτομα που προσφέρουν γύρω στο Hellug πιστεύουν πραγματικά τον παραπάνω ρόλο. Ωστόσο, ο τρόπος με τον οποίο συμπεριφέρονται με άλλα άτομα του ελληνικού χώρου ΕΛ/ΛΑΚ είναι στραβός.

Αντί να «κλείνουν» προβλήματα και καταστάσεις, αρκετά από τα μέλη του έχουν μια επιθετική και πολωτική συμπεριφορά. Τέτοια συμπεριφορά θα μπορούσε να είναι χαρακτηριστική σε μεμωνομένα άτομα, ωστόσο για τα μέλη του μεγαλύτερου συλλόγου ΕΛ/ΛΑΚ της χώρας είναι απαράδεκτη. Δεν υπάρχει δικαιολογία «μα με προκάλεσε» διότι πρόκειται για τον μεγαλύτερο σύλλογο ΕΛ/ΛΑΚ της χώρας. Και δεν υπάρχει δικαιολογία ότι κάποια μηνύματα γράφτηκαν δίχως την ιδιότητα τους ως μέλη του συλλόγου, διότι το περιεχόμενο των μηνυμάτων αυτών χαρακτηρίζουν τα άτομα.

Ας δούμε κάποια παραδείγματα από την οπτική γωνία του πως θα έπρεπε να συμπεριφερθούν τα μέλη του Hellug.

Α. Ο Κώστας Μπουκουβάλας ανακοίνωσε μια έκτακτη συνάντηση του Thelug. Ο τρόπος που την ανακοίνωσε άφησε πολλά ερωτήματα διότι δεν καθορίστηκε ατζέντα και προέκυψε μετά συζήτηση στη λίστα. Υπήρχαν κάποιες ενδείξεις ότι ο Κώστας ήταν δυσσαρεστημένος με ενέργειες μελών του Hellug στη FOSSCOM και η συνάντηση αυτή θα είχε ένα τέτοιο θέμα.

Τι θα έπρεπε να κάνουν τα μέλη του Hellug; Τίποτα. Δεν υπάρχει θέμα συζήτησης διότι δεν υπάρχουν θέσεις πάνω στις οποίες μπορεί να γίνει συζήτηση.

Πως αντέδρασαν; Υπήρξαν απαντήσεις από τους Χρήστο Ρικούδη, Έφη Μουζέλη που απλά πόλωσαν τη συζήτηση. Ήταν τόσο άκομψη η συμπεριφορά, που είδαμε και το «[γ]ια να μην αρχίσω και εγώ με τη σειρά μου και βρεθώ σε κανα blog πάλι για ad hominem συμπεριφορές, θα πω πολύ λιγότερα από όσα θα ήθελα:» (πηγή). Είναι τόσο προβληματική η συμπεριφορά που βλέπουμε και σπόντες προς άτομα που δεν έχουν σχέση με τη συζήτηση. Αναρωτιέμαι αν η αναφορά σε μένα ήταν μεμονωμένη…

Πρέπει να διαβάσετε τους παραπάνω συνδέσμους διότι δε θέλω να μεταφέρω εδώ τέτοιες εκφράσεις.

Πριν λίγο, ο Χρήστος Μπαχαράκης έγραψε στο ιστολόγιό του ότι, κατά τις πληροφορίες του, ο Thelug σχεδιάζει να φτιάξει δικό του πανελλήνιο σύλλογο ΕΛ/ΛΑΚ. Δεν υπήρξε ακόμα ανακοίνωση οπότε η όλη συζήτηση γίνεται από κάποιες πληροφορίες.

Στο σχόλια του άρθρου του Χρήστου υπήρξε έντονος διάλογος, και έλαβαν μέρος μέλη του συμβουλίου του Hellug καθώς και υποστηρικτές του.

Μερικά παραδείγματα λόγου:

  • «Απλα μερικοι μερικοι ειναι τοσο πεινασμενοι, που συνεχως ονειρευονται τα καρβελια που δεν εχουν οι αλλοι…» (συνέχεια επιχειρήματος ότι ο hellug δεν έχει στόχο να επιδιώξει επιχορηγήσεις).

Στη συνέχεια έγινε διόρθωση ότι δεν υπάρχουν στοιχεία ότι ο hellug επιδίωξε επιχορηγήσεις, και η διόρθωση έγινε με κατανοητό και αποδεκτό (για μένα) τρόπο. Η ανταπάντηση,

  • «Ε ναι, ειμαστε στο Internet και ο καθενας λεει οτι μ*λακια του κατεβει στο κεφαλι.»

Και άλλα,

  • «<τάδε>, λόγω της ηλικίας σου, θα έπρεπε…» (aha! ad hominem)
  • « Ε λοιπόν κάποια στιγμή αυτή η ψυχασθένεια πρέπει να σταματήσει. Δεν είναι δυνατόν όποιος δεν εκλέγεται στο ΔΣ του Hellug ή όποιος διαφωνεί με το ΔΣ να βγάζει μια ζωή όλα του τα απεκκρίματα στον σύλλογο.» (ditto)
  • «Όλοι όσοι διαβάλλουν τον σύλλογο είτε είχαν προσωπική επαφή με τον σύλλογο και δεν ικανοποιήθηκε το προσωπικό τους μεγαλείο, είτε είναι κάποιοι που δεν ασχολήθηκαν κάν γιατί ήξεραν ότι δεν θα ικανοποιηθεί μέσα από έναν δημοκρατικό φορέα το προσωπικό τους μεγαλείο, είτε τέλος είναι άτομα που η άποψή τους διαμορφώθηκε από τις δύο προηγούμενες κατηγορίες.»
  • «Γιατί ο σύλλογος είναι τόσα χρόνια βαθύτατα δημοκρατικός, καθαρός από λαμογιές και εξαρτήσεις και δεν έχει επιτρέψει σε κανέναν να τον καπηλευτεί.»

Αντιγράφω ξανά ποιος είναι ο ρόλος του hellug κατά τον πρόεδρό του.

Ο ρόλος του Hellug είναι «να βοηθάει με όσες δυνάμεις έχει τις υπόλοιπες κοινότητες (και ειδικά σε θέματα που απαιτείται θεσμική παρέμβαση), και να αποτελεί το δίαυλο επικοινωνίας μεταξύ τους. πολλές φορές μάλιστα (όπως στην περίπτωση της συμφωνίας με τη ms) εκπροσώπησε τη φωνή της κοινότητας σε θεσμικά όργανα.» (πρόεδρος του Hellug, πηγή).

Ακόμα και αν είχε απόλυτο δίκαιο σε κάθε ένα από τα ζητήματα, ο τρόπος συμπεριφοράς του συμβουλίου και των μελών δίνουν στο hellug μια πολύ αρνητική εικόνα. Η προσφορά στο ΕΛ/ΛΑΚ είναι κατά βάση εθελοντική και είναι αναγκαίο να υπάρχει σεβασμός στον καθένα που έρχεται σε επαφή με το σύλλογο. Ακόμα και αν κάποιος τυχαίος έρχεται σε επαφη με το σύλλογο και είναι αρνητικός, η συμπεριφορά των μελών ενός ώριμου συλλόγου πρέπει να είναι θετική. Αυτά μπορεί να μοιάζουν με ανεφάρμοστες ουτοπίες από το Βουδισμό και ότι δε γίνονται στο Ελλάντα. Η αντίληψή μου είναι ότι απλά αυτή η πρακτική (να μην υπάρχει επιθετική και πολωτική συμπεριφορά) είναι αυτό που δημιουργεί και μεγαλώνει ένα σύλλογο.

Είναι τόσο δύσκολο;

Σημείωση: no negging please

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.

Important MO file optimisation for en_* locales, and partly others

During GUADEC, Tomas Frydrych gave a talk on exmap-console, a cut-down version of exmap that can work well on mobile devices.

During the presentation, Tomas showed how to use the tool to find the culprits in memory (ab)use on the GNOME desktop. One issue that came up was that the MO files taking up space though the desktop showed English. Why would the MO translation files loaded in memory be so big in size?

gtk20.mo                             : VM   61440  B, M   61440  B, S   61440  B

atk10.mo                      	     : VM    8192  B, M    8192  B, S    8192  B

libgnome-2.0.mo			: VM   28672  B, M   24576  B, S   24576  B

glib20.mo			     : VM   20480  B, M   16384  B, S   16384  B

gtk20-properties.mo           : VM     128 KB, M     116 KB, S     116 KB

launchpad-integration.mo  : VM    4096  B, M    4096  B, S    4096  B

A translation file looks like

msgid “File”

msgstr “”

When translated to Greek it is

msgid “File”

msgstr “Αρχείο”

In the English UK translation it would be

msgid “File”

msgstr “File”

This actually is not necessary because if you leave those messags untranslated, the system will use the original messages that are embedded in the executable file.

However, for the purposes of the English UK, English Canadian, etc teams, it makes sense to copy the same messages in the translated field because it would be an indication that the message was examined by the translation. Any new messages would appear as untranslated and the same process would continue.

Now, the problem is that the gettext tools are not smart enough when they compile such translation files; they replicate without need those messages occupying space in the generated MO file.

Apart from the English variants, this issue is also present in other languages when the message looks like

msgid “GConf”

msgstr “GConf”

Here, it does not make much sense to translate the message in the locale language. However, the generated MO file contains now more than 10 bytes (5+5) , plus some space for the index.

Therefore, what’s the solution for this issue?

One solution is to add to msgattrib the option to preprocess a PO file and remove those unneeded copies. Here is a patch,

— src.ORIGINAL/msgattrib.c 2007-07-18 17:17:08.000000000 +0100
+++ src/msgattrib.c 2007-07-23 01:20:35.000000000 +0100
@@ -61,7 +61,8 @@
REMOVE_FUZZY = 1 << 2,
REMOVE_NONFUZZY = 1 << 3,
REMOVE_OBSOLETE = 1 << 4,
– REMOVE_NONOBSOLETE = 1 << 5
+ REMOVE_NONOBSOLETE = 1 << 5,
+ REMOVE_COPIED = 1 << 6
};
static int to_remove;

@@ -90,6 +91,7 @@
{ “help”, no_argument, NULL, ‘h’ },
{ “ignore-file”, required_argument, NULL, CHAR_MAX + 15 },
{ “indent”, no_argument, NULL, ‘i’ },
+ { “no-copied”, no_argument, NULL, CHAR_MAX + 19 },
{ “no-escape”, no_argument, NULL, ‘e’ },
{ “no-fuzzy”, no_argument, NULL, CHAR_MAX + 3 },
{ “no-location”, no_argument, &line_comment, 0 },
@@ -314,6 +316,10 @@
to_change |= REMOVE_PREV;
break;

+ case CHAR_MAX + 19: /* –no-copied */
+ to_remove |= REMOVE_COPIED;
+ break;
+
default:
usage (EXIT_FAILURE);
/* NOTREACHED */
@@ -436,6 +442,8 @@
–no-obsolete remove obsolete #~ messages\n”));
printf (_(“\
–only-obsolete keep obsolete #~ messages\n”));
+ printf (_(“\
+ –no-copied remove copied messages\n”));
printf (“\n”);
printf (_(“\
Attribute manipulation:\n”));
@@ -536,6 +544,21 @@
: to_remove & REMOVE_NONOBSOLETE))
return false;

+ if (to_remove & REMOVE_COPIED)
+ {
+ if (!strcmp(mp->msgid, mp->msgstr) && strlen(mp->msgstr)+1 >= mp->msgstr_len)
+ {
+ return false;
+ }
+ else if ( strlen(mp->msgstr)+1 < mp->msgstr_len )
+ {
+ if ( !strcmp(mp->msgstr + strlen(mp->msgstr)+1, mp->msgid_plural) )
+ {
+ return false;
+ }
+ }
+ }
+
return true;
}
However, if we only change msgattrib, we would need to adapt the build system for all packages.

Apparently, it would make sense to change the default behaviour of msgfmt, the program that compiles PO files into MO files.

An e-mail was sent to the email address for the development team of gettext regarding the issue. The development team does not appear to have a Bugzilla to record these issues. If you know of an alternative contact point, please notify me.

Update #1 (23Jul07): As an indication of the file size savings, the en_GB locale on Ubuntu in the installation CD occupies about 424KB where in practice it should have been 48KB.

A full installation of Ubuntu with some basic KDE packages (only for the basic libraries, i.e. KBabel – (ls k* | wc -l = 499)) occupies about 26MB of space just for the translation files. When optimising in the MO files, the translation files occupy only 7MB. This is quite important because when someone installs for example the en_CA locale, all en_?? locales are added.

The reason why the reduction is more has to do with the message types that KDE uses. For example,

msgid “”
“_: Unknown State\n”
“Unknown”
msgstr “Unknown”

I cannot see a portable way to code the gettext-tools so that they understand that the above message can be easily omitted. For the above reduction to 7MB, KDE applications (k*) occupy 3.6MB. The non-KDE applications include GNOME, XFCE and GNU traditional tools. The biggest culprits in KDE are kstars (386KB) and kgeography (345KB).

Update #2 (23Jul07): (Thanks Deniz for the comment below on gweather!) The po-locations translations (gnome-applets/gweather) of all languages are combined together to generate a big XML file that can be found at usr/share/gnome-applets/gweather/Locations.xml (~15MB).

This file is not kept in memory while the gweather applet is running.
However, the file is parsed when the user opens the properties dialog to change the location.
I would say that the main problem here is the file size (15.8MB) that can be easily reduced when stripping copied messages. This file is included in any Linux distribution, whatever the locale.

The po-locations directory currently occupies 107MB and when copied messages are eliminated it occupies 78MB (a difference of 30MB). The generated XML file is in any case smaller (15.8MB without optimisation) because it does not include repeatedly the msgid lines for each language.

I regenerated the Locations.xml file with the optimised PO files and the resulting file is 7.6MB. This is a good reduction in file space and also in packaging size.

Update #3 (25Jul07): Posted a patch for gettext-tools/msgattrib.c. Sent an e-mail to the kde-i18n-doc mailing list and got good response and a valid argument for the proposed changes. Specifically, there is a case when one gives custom values to the LANGUAGE variable. This happens when someone uses the LANGUAGE variable with a value such as “es:fr” which means show me messages in Spanish and if something is untranslated show me in French. If a message has msgid==msgstr for Spanish but not for French, then it would show in French if we go along with the proposed optimisation.