Το προφίλ μας στο Google Plus
4

deltaHacker 055 editorial: GNOMElightenment!

Φίλες και φίλοι,

  • Έχουν περάσει δεκαπέντε χρόνια από το 2001.
  • Εκείνο το έτος αποτέλεσε ορόσημο στην τεχνολογική μου σταδιοδρομία, καθώς βρήκα το κουράγιο να εγκαταστήσω για πρώτη φορά το Linux.
  • Μη βιαστείτε να με χαρακτηρίσετε ως κακεντρεχή ή κάτι τέτοιο. Αγαπώ κι εγώ το Linux, αλλά η εγκατάστασή του ήταν ιδιαίτερα απαιτητική τότε. Ξεχάστε τους οδηγούς εγκατάστασης και τα εύχρηστα GUI, την αυτόματη διαίρεση των δίσκων σε κατατμήσεις, την αυτόματη ρύθμιση του boot manager και την αυτόματη επιλογή πακέτων. Ένα μικρό λαθάκι ήταν αρκετό για να καταλήξεις μ’ ένα σύστημα που δεν ξεκινά καθόλου ή, ακόμα χειρότερα, μ’ έναν ισοπεδωμένο σκληρό δίσκο.
  • Η πρόσβαση στο Internet ήταν απελπιστικά αργή (άσχετα με το Linux, ναι) και οι πηγές για τη λήψη βοηθείας ελάχιστες. Ρωτούσες το πρωί σε κάποιο forum κι αν ήσουν τυχερός σου απαντούσαν το απόγευμα. Κι αν κατάφερνες να εντοπίσεις κάποιο καλογραμμένο κι επεξηγηματικό κείμενο, έπρεπε να το τυπώσεις: smartphone και tablet για να το διαβάσεις από εκεί, δεν υπήρχαν.
  • Κάπως έτσι άρχισα να ταλαιπωρώ τους δύο 40ρηδες δίσκους του υπολογιστή μου. Έβγαζα τη μία διανομή κι έβαζα την άλλη, ενώ πολλές φορές εγκαθιστούσα την ίδια διανομή ξανά και ξανά, μόνο και μόνο γιατί η προηγούμενη εγκατάσταση ήταν προβληματική.
  • Αυτή η δουλειά κράτησε αρκετά χρόνια, με πολύ μικρά διαλείμματα κατά τα οποία εγκαθιστούσα Windows. Τα κίνητρα γι’ αυτή την προδοσία ήταν πολύ συγκεκριμένα: Unreal Tournament και Half-Life: Counter-Strike. Παιχνίδια του 1999 και 2000, αντίστοιχα, που είχαν προλάβει να γίνουν κλασικά!
  • Μέσα στο γενικότερο χαμό που επικρατούσε στους δίσκους του υπολογιστή, μόνο ένα πράγμα έμενε σταθερό: Το περιβάλλον GNOME και οι ρυθμίσεις του, που φρόντιζα να μη χάνονται ποτέ. Αυτή η εκτίμηση, όμως, δεν αναπτύχθηκε από την πρώτη στιγμή που χρησιμοποίησα Linux.
  • Μη νομίζετε ότι κάθε φορά που άλλαζα διανομή ενδιαφερόμουν για τις αρχιτεκτονικές ιδιαιτερότητες της καθεμίας. Τον πρώτο καιρό μεταπηδούσα από το ένα σύστημα στο άλλο, μόνο και μόνο γιατί αυτός ήταν ο ευκολότερος τρόπος να δοκιμάσω κάποιον άλλο window manager. Το κατέβασμα μεγάλων εφαρμογών που απαρτίζονταν από πολλά πακέτα δεν ήταν πάντα εφικτό, ενώ το κατέβασμα ενός CD ISO από τα μηχανήματα της σχολής ήταν παιχνιδάκι. Σου έδινε και τη δικαιολογία για να πιεις έναν ακόμα καφέ.
  • Free Virtual Window Manager: αυτό ήθελα να το γράψω, είναι σχεδόν συγκινητικό.
  • Αφού προσπέρασα τον FVWM, ξόδεψα αρκετά βράδια μπροστά από τον Window Maker. Κι όταν το ομολογουμένως έξυπνο όνομα έπαψε να με εντυπωσιάζει, πέρασα μερικές μέρες ρυθμίζοντας τη συμπεριφορά ενός drawer στον AfterStep.
  • Μετά δοκίμασα το BlackBox, το OpenBox και το Enlightenment, του οποίου την εξέλιξη παρακολουθώ ακόμα. Τι, δεν με πιστεύετε; Το έκανα πριν από λίγο, δεν μετράει;
  • Πάντως ο δρομέας του terminology –του terminal emulator που συνοδεύει τον εφετζίδικο Enlightenment–, συνιστά τη μεγαλύτερη ποζεριά που έχω συναντήσει στο χώρο των υπολογιστών. Είναι κάτι σαν τα κουτιά με καλύμματα από Plexiglas και φωτισμό με μπλε LED, μόνο που είναι απείρως πιο καλαίσθητος.
  • Όταν αποφάσισα να σταματήσω το παιχνίδι με τους window managers, στράφηκα στο KDE και στο GNOME. Αυτά τα δύο συστήματα ήταν ογκώδη και δυσκίνητα σε σχέση με οτιδήποτε είχα δει ως τότε. Προσέφεραν όμως όλες τις λειτουργίες ενός σύγχρονου περιβάλλοντος και, κυρίως, πάρα πολλές ευκολίες. Για να αλλάξεις κάτι στο περιβάλλον, π.χ., ένα link στο κεντρικό μενού, αρκούσαν μερικά κλικ και δεν χρειαζόταν να εντρυφήσεις στη δομή κάποιου (κρυφού) αρχείου ρυθμίσεων.
  • Μετά απ’ όλη αυτή την περιπλάνηση, η τελική απόφαση ελήφθη γρήγορα: Οι σκέτοι window managers και το KDE απορρίπτονται. Για διαφορετικούς λόγους, βεβαίως. Οι πρώτοι συνιστούσαν ένα εξαιρετικά φτωχό περιβάλλον, ενώ το KDE ήταν φορτωμένο με περιττά μπιχλιμπίδια. Αφήστε το άλλο! Ορισμένα themes του KDE προσπαθούσαν αγωνιωδώς να αντιγράψουν το περιβάλλον των Windows, γεγονός που μου προκαλούσε απέχθεια. Ναι, η αντιπάθεια προς τη Microsoft ήταν ήδη στη μόδα :)
  • Το KDE προσέφερε εκατοντάδες ρυθμίσεις. Μπορούσες να αλλάξεις θέση, μέγεθος και χρώμα σε οτιδήποτε εμφανιζόταν στην οθόνη. Σε άφηνε να τροποποιήσεις τα πάντα. Κάποιοι ισχυρίζονταν ότι αυτό το χαρακτηριστικό προσέφερε στο χρήστη την απόλυτη ελευθερία, που για τους ίδιους κάποιους, αποτελούσε το κύριο ζητούμενο από ένα ελεύθερο λειτουργικό σύστημα. Εγώ, από την άλλη, πίστευα ότι έχουν μπερδέψει τις διαφορετικές εννοιολογικές αποχρώσεις της λέξης “ελεύθερος” και, θέλοντας να παίξω με τη σύγχυσή τους, σημείωνα το εξής: οι αμέτρητες, κυριολεκτικά, ρυθμίσεις, μοιάζουν με λαβύρινθο — με μια περίτεχνη φυλακή!
  • Το GNOME πάλι ακολουθούσε εντελώς διαφορετική φιλοσοφία. Είχε σαφή άποψη για το στήσιμο του περιβάλλοντος και δεν φοβόταν να την επιβάλει. Ταυτόχρονα προσέφερε ένα ικανοποιητικό περιθώριο παραμετροποίησης, ενώ ήταν και αισθητά πιο ελαφρύ έναντι του KDE.
  • Για πολλά χρόνια το KDE και το GNOME δεν είχαν φίλους. Είχαν οπαδούς που σύχναζαν σε fora και σε κανάλια του IRC, έχοντας πάντα τη διάθεση να εμπλακούν σε μια ατελείωτη αντιπαράθεση. Ατελείωτη και κυρίως ανούσια, αφού το GNOME ήταν ξεκάθαρα ανώτερο :P
  • Ε, λοιπόν, δεκαπέντε χρόνια μετά, απέκτησα έναν ακόμη λόγο για ν’ αγαπώ το GNOME.
  • Πριν από μερικούς μήνες ξεκίνησα ένα σύνθετο project, άσχετο με το περιοδικό. Περιλάμβανε την κατασκευή διαφόρων κυκλωμάτων, τον προγραμματισμό ενός AVR και την ανάπτυξη ενός παραθυρικού προγράμματος για το Raspberry Pi.
  • Το ξεκίνησα μαζί μ’ έναν φίλο ο οποίος έχει καθαρά προγραμματιστικό background, σε αντίθεση μ’ εμένα που έχω εντρυφήσει περισσότερο στο hardware και στα ηλεκτρονικά. Όταν ωστόσο ολοκληρώθηκαν τα απαραίτητα κυκλώματα, καταλήξαμε να γράφουμε κώδικα και οι δύο.
  • Στο Raspberry Pi εγκαταστήσαμε το Raspbian, ενώ για την ανάπτυξη της εφαρμογής επιλέξαμε τη γλώσσα C και την εργαλειοθήκη GTK+. Τίμια πράγματα!
  • Για τη συγγραφή του κώδικα χρησιμοποιήσαμε το Geany. Μέχρι πριν από λίγους μήνες αγνοούσα την ύπαρξή του. Σήμερα; Σήμερα τολμώ να πω ότι είναι ο αγαπημένος μου editor. Θα μπορούσα ν’ αραδιάσω δεκάδες λόγους που μ’ έκαναν να το αγαπήσω, αλλά θα σας πω μόνον έναν: Κρατάς πατημένο το [CTRL], κάνεις κλικ επάνω στο όνομα μιας συνάρτησης κι ως δια μαγείας μεταφέρεσαι στο αρχείο και στο σημείο όπου βρίσκεται ο κώδικάς της. Ανεκτίμητη ευκολία.
  • Μη φανταστείτε ότι δουλεύουμε στο ίδιο εργαστήριο ή με βάρδιες. Ο καθένας εργάζεται από το χώρο του και γράφει κώδικα οποτεδήποτε του καπνίσει, σε οποιοδήποτε αρχείο και σε όποια θέση του αρχείου θελήσει. Ο αχταρμάς που προκύπτει με αυτόν τον τρόπο μετατρέπεται σε λειτουργικό πρόγραμμα με τη βοήθεια του Git. Θεϊκό εργαλείο. Αν έπρεπε να το διαφημίσω στην τηλεόραση, θα έλεγα ότι έχει εγκέφαλο.
  • Στις ώρες του μεγάλου πανικού έχει τύχει να προσθέτουμε δεκάδες γραμμές ο καθένας, σε σχεδόν τυχαία σημεία μέσα στο ίδιο αρχείο. Το Git δεν μάσησε ποτέ. Κάποιες άλλες φορές (ευτυχώς λιγότερες) έτυχε να τροποποιήσουμε και οι δύο την ίδια συνάρτηση. Το Git δεν μάσησε ούτε και τότε. Θα έλεγε κανείς ότι ξέρει τι προσπαθούμε να γράψουμε, καλύτερα από εμάς τους ίδιους.
  • Για τη σχεδίαση του GUI χρησιμοποιήσαμε το Glade. Πολλές φορές, ωστόσο, περιοριστήκαμε στο Geany. Το αρχείο που περιγράφει την όψη του προγράμματος είναι ένα απλό XML.
  • Για μένα, τον hardware guy, η γνωριμία μ’ όλα αυτά τα εργαλεία αποτέλεσε μια συναρπαστική εμπειρία. Αυτό που εκτίμησα περισσότερο, όμως, ήταν η βιβλιοθήκη Glib.
  • Προσέξτε, δεν αναφέρομαι στην Glibc — GNU C standard library. Αυτή περιλαμβάνει wrapper για τα system calls που προσφέρει ο πυρήνας και για κάποιες άλλες θεμελιώδεις εργασίες.
  • Η Glib –χωρίς to “c” στα δεξιά– αποτελεί το υπόβαθρο του GNOME. Ξεκίνησε σαν τμήμα του GTK+, αλλά πολύ γρήγορα ο κώδικάς της διαχωρίστηκε και σχημάτισε μια αυτοτελή βιβλιοθήκη. Κι όταν λέμε αυτοτελή, κυριολεκτούμε. Η Glib χρησιμοποιείται απαραιτήτως σε όλα τα προγράμματα που στηρίζονται στο GTK+, αλλά μπορεί να χρησιμοποιηθεί και σε εφαρμογές της κονσόλας.
  • Ανάμεσα στις αμέτρητες ευκολίες που προσφέρει, διαθέτει μια σειρά από βασικά data types. Στην πράξη, δεν διαφέρουν από τους βασικούς τύπους δεδομένων της C, μόνο που τα ονόματα και ο χειρισμός τους είναι πολύ πιο ομοιόμορφος. Αυτό, θα πείτε, λύνεται με μερικά typedef και δεν αποτελεί ουσιαστικό λόγο για να προτιμήσουμε μια βιβλιοθήκη. Ωστόσο, τα ενσωματωμένα data types αναδεικνύουν την ομοιομορφία και την κομψότητα που διέπουν ολόκληρη τη βιβλιοθήκη.
  • Η Glib διαθέτει την υποδομή για το σχηματισμό ενός “main loop” και το χρονοπρογραμματισμό διαφόρων εργασιών. Αν αυτές οι λειτουργίες είναι αρκετά υψηλού επιπέδου για τα γούστα σας, στο οπλοστάσιο της Glib θα βρείτε μηχανισμούς για τη δημιουργία multi-threaded εφαρμογών καθώς κι αρκετούς ακόμα, που καταπιάνονται με θεμελιώδεις εργασίες. Πάρτε για παράδειγμα τα GIOChannel, που επιτρέπουν τον εύκολο και ομοιόμορφο χειρισμό αρχείων, pipes και sockets.
  • Δυστυχώς, μέσα από αυτές τις γραμμές είναι πρακτικά αδύνατο να σας πείσω. Για να εκτιμήσει κανείς τη Glib πρέπει να τη χρησιμοποιήσει. Μια σειρά άρθρων πάνω στο θέμα θα ήταν καλή ιδέα. Θα περιμένω να δροσίσει λίγο κι αν είναι θα βάλω μπρος.
  • Δεν ξέρω αν θα συμβεί το ίδιο και μ’ εσάς, αλλά μέσα από αυτή τη γνωριμία εγώ τουλάχιστον βρήκα έναν πρόσθετο λόγο για να υποστηρίζω το GNOME. Δεν αποκλείεται να πάθαινα το ίδιο και με κάποια άλλη βιβλιοθήκη. Η Glib, όμως, είναι μοναδική γιατί αποτελεί θεμελιώδες συστατικό του GNOME. Ναι, συμφωνώ. Αυτό το σχήμα είναι κυκλικό αλλά…
  • GNOME!

4 Responses to “deltaHacker 055 editorial: GNOMElightenment!”

  1. Keravnos2 | 30/06/2016 at 21:42

    Linux Madrake … έπεσε τότε στά χερια μου από ένα περιοδικό μαζί με τίς οδιγίες εγκατάστασης τότε …ενα πράγμα σαν Arch να λέμε, το εγκατέστισα τότε , μπορώ να πώ ότι έχω ακόμα το CD …

    Αλλα μιά αποφράδα ημέρα διάβασα σε ένα αλλο περιοδικό γιά τό Hal Life 2 ενα παιχνίδι επανάσταση τότε … ( και ήταν ) μεσα ειχε δωρο την Beta tou Counter strike Source…. και εσβισε τό μέλον μμτ ..

    Επανήλθα μετά απο χρόνια πιά στόν ίσιο δρομο…ελπιζω….

    GNOME ftw !!! αγαπημενο και από εμένα τότε και τώρα και δέν το αλλάζω μέ τίποτα .

    • subZraw | 01/07/2016 at 08:32

      Το Mandrake ήταν απλά θεϊκό :) Θυμάμαι ότι κάποια στιγμή είχαμε φιλοξενήσει σχετικό αφιέρωμα στο RAM. Είχαν τότε πεταχτεί κάτι πρώιμοι ταλιμπάν των lugs και schmoogs να μας κράξουν, επειδή τολμήσαμε να μιλήσουμε για το “εύκολο, desktop Linux”. Ότι, και καλά, αυτοί ήταν uber system programmers που έγραφαν κώδικα Assembly –στο τσακίρ κέφι και καμιά C– κι όσοι δεν ήταν σαν αυτούς δεν έπρεπε να πιάνουν το Linux στο στόμα τους, πόσο μάλλον να κάνουν αφιέρωμα στο desktop Linux :P

  2. Keravnos2 | 01/07/2016 at 09:50

    Εκείνη την εποχή το μόνο σίτε πού παρίχε πληροφορίες για το Λίνουξ στα Ελληνικά ήταν ένα και μόνο , δυστιχός ο όρος Ethical Hacking δέν υπήρχε στο λεξιλόγιο τότε και κάποια στιγμή το κλίσανε .

  3. pcnoic | 03/07/2016 at 19:13

    “I see you’re running GNOME. Actually, I am on KDE myself. I know this desktop environment is supposed to be the best, but you know, old habits.” – MR.ROBOT (Tyrell Wellick) 2015

    Έπρεπε να το σχολιάσω. :P

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων