Page 70 - Linux Inside τ. 10

Linux Inside
70
Π
ριν από δυόμισι χρόνια περίπου είχε φτάσει η ώρα να
αναλάβω την πτυχιακή μου εργασία. Μετά από συζητή-
σεις με το φίλο μου Γιάννη Σπανό και τον καθηγητή
μας κ. Χρήστο Σωμαρά, καταλήξαμε σε μία ιδέα, η οποία θα
επίλυε το παρακάτω πρόβλημα.
Το πρόβλημα
Το ΤΕΙ μας (και φαντάζομαι κάθε σχολή) είχε έναν υπερβο-
λικό αριθμό από ιστοσελίδες που παρείχαν σημαντικές ανα-
κοινώσεις. Ήταν πολύ δύσκολο να τις ακολουθήσεις όλες (η
γνώση χάνεται όταν είναι διάσπαρτη), για να μην αναφέρω τη
μη διαθεσιμότητα κάποιων κατά τη διάρκεια των σαββατοκύ-
ριακων. Ελπίζω να ανήκει πλέον στο παρελθόν, δεν έχω πα-
ρατηρήσει κάτι πρόσφατα, αλλά παλιότερα το πρόβλημα ήταν
εντονότατο. Αν και οι Web υπηρεσίες ήταν πολλές και σημα-
ντικές, μερικοί φοιτητές δεν είχαν ιδέα για την ύπαρξή τους
(
π.χ., το career.teilar.gr έχει πληροφορίες για θέσεις εργα-
σίας, μεταπτυχιακά προγράμματα κ.λπ.).
Ένα ακόμα πολύ σημαντικό πρόβλημα ήταν ότι οι περισσό-
τερες από αυτές τις σελίδες χρειάζονται διαφορετικούς λο-
γαριασμούς χρήστη. Αρκετοί φοιτητές (κυρίως εκτός πληρο-
φορικής) δεν συγκρατούσαν τους κωδικούς τους, αντ' αυτού
άλλαζαν τον κωδικό κάθε νέο εξάμηνο. Τέλος, καμία από τις
αναφερόμενες σελίδες δεν παρείχε RSS feeds, κάνοντάς το
ακόμα πιο δύσκολο να τις παρακολουθείς.
Brainstorming
Αυτό που θα ήταν πραγματικά χρήσιμο ήταν μία εφαρμογή
Web που θα συνδύαζε όλες αυτές τις ανακοινώσεις σε μία
syndicator-like σελίδα. Εκτός από συλλογή ανακοινώσεων, θα
ήταν καλό να υπάρχει συλλογή προσωπικών πληροφοριών,
όπως βαθμολογίες, δήλωση εξαμήνου, ακόμα και τα φοιτητι-
κά e–mails. Αλλά και ένας αριθμός μη προσωπικών πληροφο-
ριών θα ήταν επίσης εφικτός, όπως μία λίστα με καθηγητές
και τα e–mails τους, καθώς και αναζήτηση βιβλίων στη βιβλιο-
θήκη της σχολής.
Το πιο σημαντικό στοιχείο θα ήταν ένα ενοποιημένο RSS
feed για όλες τις ανακοινώσεις, για την εύκολη παρακολούθη-
ση όλων μέσω ενός desktop application. Βέβαια, δεν χρειαζό-
μαστε κάθε ανακοίνωση από κάθε τμήμα ή κάθε καθηγητή, ο
φοιτητής θα πρέπει να έχει τη δυνατότητα να επιλέξει τι θέλει
να δει. Μιας και οι ιστοσελίδες του ΤΕΙ δεν παρείχαν RSS
feeds, θα έπρεπε να γίνει Web scraping και να αποθηκευτούν
οι πληροφορίες σε βάση δεδομένων. Κάποιες από αυτές
χρειάζονται εξουσιοδότηση πρώτα, οπότε θα χρειαζόμασταν
τα credentials του χρήστη που θα έπρεπε να είναι κρυπτο-
γραφημένα με blowfish, ώστε το σύστημά μας να μπορεί να
τα επαναχρησιμοποιεί όταν χρειαστούν.
Ώρα για coding!
Το πρώτο βήμα ήταν να στηθεί ο server. Πήραμε ένα και-
νούργιο μηχάνημα, όπου εγκαταστήσαμε και παραμετροποιή-
σαμε τις απαραίτητες υπηρεσίες. Εν συνεχεία, αρχίσαμε να
παίζουμε με το pycurl και την BeautifulSoup για το Web
scraping. Μας πήρε μερικές μέρες, αλλά στο τέλος είχαμε
δύο python scripts, τα οποία στην ουσία ήταν standalone αρ-
χεία Django. Το πρώτο αποθήκευε στη βάση δεδομένων τα
ονόματα των σχολών, των καθηγητών, των μαθημάτων και
των Web services από όπου θα συλλέγαμε τις ανακοινώσεις.
Το δεύτερο αποθήκευε τις ανακοινώσεις. Η διαδικασία του
Web scraping ήταν αρκετά αναξιόπιστη, αλλά δεν υπήρχε κα-
λύτερος τρόπος που μπορούσαμε να σκεφτούμε και, επιπλέ-
ον, δούλευε μια χαρά.
Μερικές από τις ιστοσελίδες που συλλέγαμε:
Η πιο σημαντική ιστοσελίδα, περιέχει ανα-
κοινώσεις καθηγητών, σχολών και γενικές ανακοινώσεις
του ΤΕΙ Λάρισας.
e-class.teilar.gr:
Ίδιας σημασίας. Το e-class είναι μία πολύ
δημοφιλής εφαρμογή Web ανάμεσα στα ελληνικά Πανεπι-
στήμια και ΤΕΙ, που παρέχει τα εργαλεία για καλύτερη επι-
κοινωνία μεταξύ καθηγητών και φοιτητών. Εκτός από τις
ανακοινώσεις, παρέχει την δυνατότητα για upload και απο-
θήκευση αρχείων, όπως παρουσιάσεις ή εβδομαδιαία
projects, ημερολόγια, ένα mini-chat, φόρμες επικοινωνίας
κ.ά. Πολλοί καθηγητές το προτιμούν για τις ανακοινώσεις
τους σε σχέση με την άλλη ιστοσελίδα.
dionysos.teilar.gr:
Περιέχει τους λογαριασμούς των φοι-
τητών, μαζί με όλες τις προσωπικές πληροφορίες τους.
myweb.teilar.gr:
Υπηρεσία webmail.
Μερικές ακόμα ιστοσελίδες που περιέχουν πληροφο-
ρίες και μόνο:
LinuxTeam, PR, Library, Career, NOC και
άλλες (ακόμα προστίθενται καινούργιες).
Αφού είχαμε συλλέξει όλα αυτά τα δεδομένα στη βάση δε-
δομένων, ήταν ώρα να δημιουργήσουμε τα signup/login
systems και μετά να εκτυπώσουμε όλα αυτά τα δεδομένα
στους χρήστες. Το σύστημα εισόδου μας πήρε λίγο καιρό για
να ετοιμαστεί. Παίξαμε πολύ με τον LDAP, το python-ldap και
μερικά django authentication backends για να καταλάβουμε
Του Θεόδωρου Χατζημίχου <tampakrap@gentoo.org>
Linux Labs – Cronos
Οι φοιτητές, δυστυχώς, δεν μπορούν να αλλάξουν
τον τρόπο λειτουργίας της σχολής τους. Ή μήπως
μπορούν; Δείτε πώς δύο πτυχιακές εργασίες
άλλαξαν τον τρόπο λειτουργίας του ΤΕΙ Λάρισας.
Εργαλεία:
Django, pycurl,
BeautifulSoup
Δυσκολία:
URL:
Δείτε το!
Δύο πτυχιακές αλλάζουν μία σχολή!
Ο Θόδωρος ζει και εργάζεται στην Πράγα και ασχολείται με το Gentoo.
Το πιο σημαντικό στοιχείο θα ήταν ένα
ενοποιημένο RSS feed για όλες τις
ανακοινώσεις, για την εύκολη παρακολούθηση
όλων μέσω ενός desktop application.