ΕΛ/ΛΑΚ | creativecommons.gr | mycontent.ellak.gr |
freedom

Παρουσιάσεις από την φετινή Fosdem 2016: Cockpit, Libre Office, Homebrew

Η FOSDEM είναι η μεγαλύτερη συνάντηση των κοινοτήτων Ελεύθερου και Ανοικτού Λογισμικού, από την Ευρώπη αλλά και από όλο τον κόσμο. Μέσα στο διήμερο της εκδήλωσης διεξάγονται πάνω από 600 παρουσιάσεις και ομιλίες σε δεκάδες διαφορετικές αίθουσες.   Αυτό είναι το δεύτερο από μια σειρά άρθρων που παρουσιάζουμε μερικές από τις σημαντικές παρουσιάσεις και ομιλίες τις οποίες παρακολουθήσαμε.


1 . Cockpit: A Linux Session in your Browser

Η συγκεκριμένη ομιλία αφορούσε το λογισμικό cockpit, το οποίο επιτρέπει τη δημιουργία απομακρυσμένων συνεδριών μέσω browser σε μηχανήματα Linux. Μέσω του cockpit ο χρήστης μπορεί να εκτελεί λειτουργίες διαχείρισης όπως αλλαγή hostname, ορισμός διεύθυνσης IP κ.α. μέσα από ένα απλό GUI και χρησιμοποιώντας μόνο έναν browser.

Ένα από τα βασικά χαρακτηριστικά του, όπως αναφέρθηκε από τον ομιλητή, είναι ότι επικοινωνεί απευθείας με APIs του συστήματος και συνεργάζεται απευθείας με υπηρεσίες όπως το systemd, Network Manager, passwd, docker, /proc κ.α. όπως ένα κέλυφος (shell).

Στη συνέχεια παρουσιάστηκαν κάποια προγραμματιστικά χαρακτηριστικά του, όπως τρόποι με τους όποιους μπορεί ο χρήστης να αλληλοεπιδράσει με το Cockpit μέσω javascript και να μιμηθεί τις λειτουργίες ενός κανονικού Linux terminal. Ταυτόχρονα, το Cockpit επεκτείνει αυτές τις λειτουργίες επιτρέποντας στον χρήστη να εκτελεί ασύγχρονες κλήσεις (όπου το αποτέλεσμα λαμβάνεται σε μεταγενέστερο χρόνο) ή να κάνει stream μεγάλα αρχεία. Στη συνέχεια ο ομιλητής έδειξε πως λειτουργεί σε επίπεδο συστήματος, δίνοντας μια εικόνα για τις διεργασίες που τρέχουν πριν συνδεθεί ο χρήστης και μόλις συνδεθεί.

Δείτε την σελίδα και το βίντεο της παρουσίασης για το cockpit στην Fosdem 2016


2. Libre Office: Lowering the bar for new developers

Η συγκεκριμένη ομιλία είχε ως στόχο να παρουσιάσει τις μεθόδους που έχει χρησιμοποιήσει η ομάδα του Libre Office για να βοηθήσει νέους developers που δεν έχουν ξανασυνεισφέρει στο Libre Office να ενσωματωθούν γρήγορα στην κοινότητα και να ενσωματώσουν τις συνεισφορές τους.

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

Για τη βελτίωση της κατάστασης, η ομάδα εισήγαγε το λογισμικό Gerrit, καθώς και κάποιες διαδικασίες βάσει των οποίων για κάθε συνεισφορά ανατίθεται αυτόματα ένας reviewer, ο οποίος αναλαμβάνει να ελέγξει την συνεισφορά και να δώσει απάντηση εντός 48 ωρών από την υποβολή της. Επιπλέον, έγιναν σημαντικές βελτιώσεις στο wiki, ώστε να είναι πιο ξεκάθαρα τα coding standards και να περιοριστούν οι αλλαγές που χρειάζονται κατά μέσο όρο για ενσωματωθεί μια συνεισφορά. Άλλες ενέργειες προς αυτή την κατεύθυνση ήταν η δημιουργία/επέκταση των unit tests του Libre Office καθώς και η απλοποίηση/καλύτερη περιγραφή των σύνθετων issues προκειμένου να μπορούν ευκολότερα να αναληφθούν από άτομα της κοινότητας.

Με τις νέες διαδικασίες, η ομάδα του Libre Office λαμβάνει πλέον 5-8 patches την ημέρα, από τα οποία ένα σημαντικό ποσοστό ενσωματώνεται εντός μιας εβδομάδας.


3. Homebrew: Things we do differently

Η συγκεκριμένη ομιλία αφορούσε το Homebrew package manager. Ο ομιλητής αρχικά ανέπτυξε τους λόγους για τους οποίους χρειάζεται μια αναθεώρηση στον τρόπο με τον οποίο γίνεται η διαχείριση πακέτων και πως το Homebrew διαφέρει από τα πιο παραδοσιακά package managers.

Σύμφωνα με τον ομιλητή, η πρώτη διαφορά έγκειται στον αριθμό των reviewers που εξετάζουν τα πακέτα που πρόκειται να εισαχθούν. Ενώ σε παραδοσιακά package managers όπως το apt υπάρχει μεγάλος αριθμός από reviewers, στο Homebrew η διαδικασία αυτή γίνεται από έναν περιορισμένο αριθμό reviewers, με στόχο να υπάρχει όσο το δυνατό πιο κοινή αντιμετώπιση των πακέτων. Μια άλλη διαφορά είναι ότι ο ορισμός των πακέτων και των απαιτήσεων γίνεται μέσα από μια Rubybased DSL (domain specific language), η οποία επιτρέπει τη χρήση σύνθετων εκφράσεων. Κάποιες διαφορές σε χαμηλό επίπεδο είναι ότι το Homebrew δεν απαιτεί χρήση root και περιορίζει τα πακέτα που κατεβάζει μόνο στον λογαριασμό χρήστη που τα εγκατέστησε. Ταυτόχρονα κάνει απευθείας χρήση των APIs του συστήματος αντί μέσω προγραμμάτων κάτι το οποίο είναι γρηγορότερο και σταθερότερο. Τέλος, αντίθετα με παραδοσιακούς package managers, τα πακέτα εγκαθίστανται μέσω git και αναβαθμίζονται αυξητικά (incrementaly) κάτι που μειώνει τα δεδομένα που πρέπει να λάβει ο χρήστης σε κάθε αναβάθμιση.

Στη συνέχεια αναφέρθηκε σε κάποια από τα αρνητικά αυτών των προσεγγίσεων, όπως την πιθανότητα να δημιουργηθούν merge conflicts κατά την αναβάθμιση σε κάποιες περιπτώσεις, ή τη μη υποστήριξη νέων χαρακτηριστικών που προσφέρουν τα APIs του συστήματος χωρίς αναβάθμιση του Homebrew.

Δείτε την σελίδα και το βίντεο της παρουσίασης για το Homebrew στην Fosdem 2016

Leave a Comment