ΕΕΛ/ΛΑΚ - Λίστες Ταχυδρομείου

Fwd: Διαγωνισμός Ελληνοποίησης ΕΛ/ΛΑΚ

---------- Forwarded message ----------
From: Δημήτρης Μπούσης <whantana [ at ] gmail [ dot ] com>
Date: 2009/2/16
Subject: Διαγωνισμός Ελληνοποίησης ΕΛ/ΛΑΚ
To: info [ at ] ellak [ dot ] gr


=====================================================================
 Ανάπτυξη επιπέδου εξουσιοδότησης χρηστών για το λογισμικό Transifex
=====================================================================

Δημήτρης Μπούσης

Το Transifex[1] είναι μια πρότυπη υπηρεσία ανοιχτού κώδικα,διεκπεραίωσης
μεταφραστικών εργασιών στοχευμένες σε έργα ανάπτυξης λογισμικού. Προτείνεται η
ανάπτυξη ενός επιπέδου εξουσιοδότησης (authorization layer module) ώστε να
επιτευχθεί σαφής και ασφαλής διαχωρισμός των ρόλων/ενεργειών του μεταφραστή, του
διαχειριστή του έργου και του "απλού επισκέπτη" που χρησιμοποιούν τη
συγκεκριμένη web υπηρεσία.


Ιστορικό
--------

Το Transifex είναι μια πλατφόρμα για μεταφράσεις ελεύθερου λογισμικού.
Χρησιμοποιείται επιτυχώς από το Fedora και τη Red Hat για την κυκλοφορία των
τελευταίων 3 τελευταίων εκδόσεων του Fedora και έχει λάβει περισσότερες των
5000 μεταφράσεων τον τελευταίο 1 χρόνο. Εκτός του Fedora, το Transifex
μελετάται για υιοθέτηση και από άλλες μεγάλες κοινότητες όπως οι GNOME,
Mozilla, Wikipedia, ενώ χρησιμοποιείται ήδη από σημαντικά πακέτα του Linux
όπως τα PackageKit και PulseAudio.

Όπως και σε άλλες πλατφόρμες/κοινότητες που υπάρχουν στο Διαδίκτυο, έτσι και το
Transifex (Tx for short) χρειάζεται ένα μηχανισμό εξουσιοδότησης των χρηστών
του,ώστε η ανάθεση των διαφόρων μεταφραστικών εργασιών να γίνεται με σαφή,
παραμετροποιήσιμο και ασφαλή τρόπο σύμφωνα με τις επιθυμίες του εκάστοτε
διαχειριστή ενός έργου.

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


To Transifex με μια ματιά
--------------------------

Με σκοπό την αποσαφήνιση των στόχων παρούσας πρότασης καθίσταται αναγκαία μια
επισκόπηση των βασικών μεταφραστικών μονάδων του Transifex:

- Projects: περιλαμβάνει όλα τα μεταφραστικά στοιχεία σχετικά με ένα project.
  Στα πλαίσια της παρούσης υλοποίησης του Transifex ένα project είναι τυπικά
  ένα αυτόνομο λογισμικό, π.χ. ένα πρόγραμμα πλοήγησης (epiphany), επεξεργασίας
  αρχείων (nautilus), ανταλλαγής μηνυμάτων (pidgin) κλπ.

- Component: κάθε project συμπεριλαμβάνει ένα ή περισσότερα components. Στα
  πλαίσια της παρούσης υλοποίησης του Transifex ένα component αποτελεί τυπικά
  ένα branch ενός project.

- Γλώσσες: κάθε project τυπικά μεταφράζεται σε μία ή περισσότερες γλώσσες.

- Collections: ως collection ορίζεται μια συλλογή από projects ή collections.
  Παραδείγματος χάρην, το Gnome ορίζεται τυπικά ως μια συλλογή επιμέρους
  projects όπως ο nautilus, το pidgin, το epiphany, η βιβλιοθήκη gtk ο anaconda
  installer κ.α.

- Releases: ως release ορίζεται μια συλλογή από components. Π.χ. το Fedora 10
  release θα μπορούσε να συμπεριλαμβάνει το Firefox 3.0, το VLC Media Player
  0.8.4 κ.ά.


Στόχοι
------

Το Transifex είναι μια web υπηρεσία, υλοποιημένη σε Python και Django. Στόχος
μας είναι η ανάπτυξη ενός rich authorization layer με τους παρακάτω στόχους:

- Χτίσιμο πάνω από το auth layer του Django για μεγιστοποίηση συνδεσιμότητας με
  επεκτάσεις και άλλα plugins

- Ύπαρξη διακριτών ρόλων, αρμοδιοτήτων και δικαιωμάτων (privileges) σε επίπεδο
  έργο-υποέργο-γλώσσα (Ο Γιάννης είναι reviewer των Ελληνικών στο έργο GNOME
  για το release 2.24)

- Υλοποίηση κατηγοριών χρηστών: ενδεικτικές κατηγορίες οι οποίες θα υλοποιηθούν
  στα πλαίσια του παρόντος είναι "μη εξουσιοδοτημένοι χρήστες", "απλοί
  χρήστες","μεταφραστές", "project maintainers" και "διαχειριστές"

- Ανάπτυξη ενός προσαρμοσμένου πρωτοκόλλου ενεργειών. Το πρωτόκολλο αυτό μπορεί
  να δώσει τη δύναμη για τη σωστή κατεύθυνση του μεταφραστικού έργου στα σωστά
  άτομα. Πχ. Ο Δημήτρης ώς Project Leader έχει επιλέξει να λαμβάνει ειδοποιήσεις
  από τους μεταφραστές του Project του, ή να μπορούν οι maintainers που έχουνε
  δηλωθεί να έχουν τη δυνατότητα να προσθέσουν/αφαιρέσουν μεταφραστές).

- Δυνατότητα έλεγχου μεταφραστικών ομάδων από διαχειριστές και Team Leaders.

- Παροχή πλήρους βάσης για ανάπτυξη ενός ευέλικτου workflow μεταφράσεων.

- H προτεινόμενη λύση διαφυλάσσει τον σκοπό που εξαρχής  έχει θέσει η ομάδα
  ανάπτυξης του Tx, την ανάπτυξη μιας υγιούς και παραγωγικής σχέσης μεταξύ της
  μεταφραστικής ομάδας και της ομάδας ανάπτυξης ενός έργου λογισμικού. Another
  win for the global localization movement!


Παραδοτέα
---------

- Κώδικας σε Python (Django framework) που υλοποιεί τους παραπάνω στόχους.

- Δημόσιο repository (http://bitbucket.org/whantana/tx-auth-layer/).

- Τεκμηρίωση της εργασίας,Design document & test cases.

- Up & Running application , σε συνεργασία με το Transifex team.


Χρονοδιάγραμμα
--------------

- 15/3: Σύνταξη του Design document σχετικά με τις αρχιτεκτονικές τροποποιήσεις
  που απαιτεί η συγκεκριμένη εργασία.

- 25/3: Ολοκλήρωση συγγραφής test cases.

- 25/4: Ολοκλήρωση αρχικής υλοποίησης.

- 5/5:  Ολοκλήρωση πρώτης εκτέλεσης των test cases.

- 25/5: Επιδιόρθωση των προβλημάτων που προέκυψαν από την εκτέλεση των test
  cases, τροποποίηση της αρχιτεκτονικής και παράδοση του τελικού κώδικα.


Γιατί εμένα
-----------

Το όνομα μου είναι Δημήτρης Μπούσης και είμαι προπτυχιακός φοιτητής στο τμήμα
Μηχανικών Η/Υ & Πληροφορικής στο 5ο έτος.

Η ενασχόληση μου με το Software Developing ξεκινάει πρίν την εισαγωγή μου στη
σχολή με διαφορα μικρά projects se Perl. Η προγραμματιστική μου εμπειρία μέχρις
στιγμής είναι πολύ καλή σε Java, C και καλή σε: Python, C++, C#, Perl, PHP,
JavaScript, bash.

Η ενασχόληση μου με το ελεύθερο λογισμικό σε επίπεδο χρήστη είναι με τα
λειτουργικά Linux/FreeBSD και διάφορες άλλες εφαρμογές (Firefox, Thunderbird,
Apache, κλπ). Σε επίπεδο ανάπτυξης λογισμικού είχα την τύχη να συμμετέχω στην
ανάπτυξη της πλατφόρμας FinN[2].

Γενικότερα, πιστεύω είμαι ένα άτομο που τον ενδιαφέρουν οι νέες τεχνολογίες στο
χώρο της πληροφορικής και της πληροφόρησης. Επίσης, θεωρώ κάθε software
developing ως μια όμορφη και δημιουργική πρόκληση και ιδιαίτερα τη συγκεκριμένη
προσπάθεια που ως σκοπό έχει να βοηθήσει μια πλατφόρμα που ήδη προσφέρει πολλά
πίσω στο Free Software/Open Source community.

Λεπτομέρειες : Δημήτρης Μπούσης, whantana [ at ] gmail [ dot ] com, Αλαμάνας 7-9
Πάτρα, 6946808220,
145368733 & Β ΔΟΥ ΙΩΑΝΝΙΝΩΝ.


Αναφορές
--------

- [1]:"Tranisfex an integrated translation platform by Indifex"
  http://transifex.org/ http://www.indifex.com/
- [2]:"FinN(Fun-in-Numbers) is a platform for developing and playing mobile,
  locative and collaborative distributed games."
  http://finn.cti.gr/web/guest/home





-- 
Πριν εκτυπώσετε αυτό το μήνυμα, σκεφθείτε το περιβάλλον! Ένα χαρτί
λιγότερο! - http://karounos.gr/blog/

πλοήγηση μηνυμάτων