---------- 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/