Software Carpentry

Το Ελληνικο πανεπιστημιο παραδοσιακα θελει να βρισκεται στην “κοντινενταλ” παραδοση, και σε αντιθεση με το αγγλοσαξωνικο συστημα θελει να δινει οσο το δυνατον πιο γερες θεωρητικες βασεις. Προσωπικα, δεν διαφωνω καθολου μα καθολου με αυτο. Ομως, στο πεδιο της πληροφορικης, υπαρχουν μια σειρα απο δεξιοτητες τις οποιες το Ελληνικο εκπαιδευτικο συστημα ποτε δεν κανει τον κοπο να διδαξει.

Μιλαω για πραγματα οπως version control, make/ant, scripting, unit testing και αλλες τετοιες παρεμφερεις δεξιοτητες (ακομα και τη σωστη χρηση ενος IDE…). Ολα αυτα τα πραγματα αφηνονται στην ευχερεια των φοιτητων να τα μαθουν μονοι τους, αν τα μαθουν ποτε. Και αυτο ειναι περα για περα τραγικο.

Οπως καποιος που σπουδαζει ηλεκτρονικη πρεπει να μαθει να χρησιμοποιει κολλητηρι και καλαι, οπως ο αρχιτεκτονας, ο μηχανολογος και ο πολιτικος μηχανικος πρεπει να μαθει σχεδιο, οπως ο τοπογραφος πρεπει να μαθει να χρησιμοποιει εκεινη την κουμουτσα που σερνουν τα ερμα τα φοιτητακια στην Πολυτεχνειουπολη κατακαλοκαιρα, ετσι πρεπει και ο μηχανικος υπολογιστων να μαθει να …χρησιμοποιει σωστα τα εργαλεια του, δηλαδη τον υπολογιστη του. Ο υπολογιστης μαλιστα ειναι αντιστοιχα σημαντικο εργαλειο ακομα και σε αλλα επιστημονικα πεδια (φυσικοι, χημικοι, βιολογοι κτλ) οπου υπαρχει η αναγκη να γραφεται κωδικας.

Τα τελευταια χρονια, εχει εμφανιστει η ιδεα της εισαγωγης του “Software Carpentry” σαν προπτυχιακο μαθημα, ακριβως για να αντιμετωπισει αυτο το ζητημα. Στο Τοροντο, ηδη διδασκεται και μαλιστα με σημαντικα αποτελεσματα. Τελοσπαντων, δεν ξερω σε τι σταδιο βρισκεται η κουβεντα για το Προγραμμα Σπουδων στην ΣΗΜΜΥ ΕΜΠ, αλλα νομιζω οτι ενα τετοιο μαθημα πρεπει καποια στιγμη να περασει στο ΠΣ, κατα προτιμηση νωρις, αμεσως αφου οι φοιτητες εχουν παρει τα εισαγωγικα μαθηματα προγραμματισμου…

Software Carpentry

Συνθεση γραφων με τριπλη γραμματικη γραφων

graph merging with TGG

Για οποιον απορει τι διαολο καθομαι και κανω τοσο καιρο θαμενος σπιτι μου, το αποπανω διαγραμμα δινει μια μικρη ιδεα. Απο τα δυο μοντελακια στο μεσαιο επιπεδο, χρησιμοποιωντας τους κανονες στο πανω πανω επιπεδο, φτιαχνουμε το μοντελακι στο κατω επιπεδο.

Η “τριπλη γραμματικη γραφων” για τη συγκεκριμενη περιπτωση ειναι το συνολο των κανονων στα μπλε στρογγυλα κουτακια και δεν ειναι ακριβως ορθη triple graph grammar (τολαχιστον οχι οπως περιγραφεται εδω), αλλα ειναι πανω κατω στο ιδιο πνευμα.

Συνθεση γραφων με τριπλη γραμματικη γραφων

The Java Trap is disarmed.

Το 2006 η Sun ανακοινωσε πως θα απελευθερωνε την Java, αδειοδοτωντας το Java Development Kit με την GPL. Το μεγαλυτερο μερος της δουλειας ολοκληρωθηκε τον επομενο χρονο, ομως ενα σημαντικο ποσοστο (4 με 5%) των περιπου 6,5 εκατομμυριων γραμμων κωδικα το οποιο δεν ανηκε στη Sun, παρεμενε υπο μη-ελευθερη αδεια.

Τοτε, ο Richard Stallman ειχε πει: “The one last obstacle [which] remains in liberating JDK and disarming the Java Trap completely”.

Οποτε, παραλληλα με το OpenJDK, ξεκινησε και το IcedTea project, με σκοπο να κανει το OpenJDK λειτουργικο χωρις να βασιζεται στο μη-ελευθερο κομματι του JDK. Το IcedTea βασιστηκε στο Gnu Classpath, το οποιο πριν ακομα η Sun απελευθερωσει το JDK ειχε αρχισει να χτιζει μια ελευθερη εναλλακτικη.

E, τα καλα νεα ειναι οτι το IcedTea ολοκληρωσε το εργο του και η “Java Trap” ανηκει στο παρελθον!

(via dzone)

Στην εικονα: ο tux και ο duke πολεμουν τους σατανικους paperclips του υπερτατου αντιπαλου της Java, του .NET. Οι κατανες του tux και του duke ειναι προσφορα του Richard Stallman και του xkcd, ενω η εικονα ειναι απο το duke project, με BSD license.

The Java Trap is disarmed.

C++

Tο πετυχημενοτατο 3ο Συνεδριο ΕΛ/ΛΑΚ τελειωσε σημερα στο ΕΜΠ, καταληγοντας με μια Συζητηση Στρογγυλης Τραπεζης για την αναπτυξη λογισμικου. Ο Αλεξης Ζαβρας, σε ρολο συντονιστη, εδειχνε στους Mathias Bauer, Jim Blandy, Luca Deri, John Eaton και Wietse Venema διαφορα αποφθεγματα απο σημαινουσες μορφες του χωρου και οι καλεσμενοι καλουνταν να σχολιασουν και να κουβεντιασουν ελευθερα.

Σε καποιο σημειο, το θεμα της κουβεντας ηταν η C++. Καποιος απο τους ομιλητες (δεν ξερω ποιος, αν καποιος μπορει ας με συμπληρωσει) ειπε το εξης απιθανο:

If your only tool is a hammer, everything starts to look like a nail.

If your only tool is C++, everything starts to look like your left thumb.

😆

C++

KTwitter

Υπαρχουν πολλες και διαφορες εφαρμογες για να ποσταρει κανεις στο Twitter. Απο τις διαφορες που κυκλοφορουν και για linux, αυτη που εμενα με τραβηξε ηταν -προφανως- το KTwitter.

Και το uber-kool της υποθεσης? Το KTwitter ειναι ενα one-liner. Ειναι δηλαδη ενα σκριπτακι που απλουστατα χρησιμοποιει το curl και το kdialog. Μην περιμενετε βεβαια τιποτα τρομερες δυνατοτητες -δεν ειναι και καμια σουιτα γραφειου- αλλα τη δουλεια του (το ποσταρισμα) την κανει μια χαρα.

Παρακατω, μια ελαχιστα πειραγμενη απο εμενα εκδοχη του. Οι “αλλαγες” που εκανα ηταν μονο να το σπασω σε γραμμες για καλυτερη αναγνωσιμοτητα, να βαλω ξεχωριστες μεταβλητες για username και password και να προσθεσω τιτλο στο παραθυρακι. Της πλακας δηλαδη:

#!/bin/bash

username='your twitter username here'
password='your twitter password here'

curl -u $username:$password -s -F \
        status="`kdialog \
                --caption 'KTwitter' \
                --inputbox 'what are you doing right now?'`" \
        http://twitter.com/statuses/update.xml \
        http://twitter.com/account/end_session

Η αδεια (αν σηκωνει αδεια αυτο το πραγματακι) ειναι GPL.

Αυτο ειναι το ζεν του Unix: προγραμματακια που κανουν ενα πραγμα, και το κανουν καλα. Αν τα εχεις αυτα, μπορεις να τα συνδυασεις μεταξυ τους για να κανεις τη δουλεια σου. Keep it simple, stupid, ε? 🙂

KTwitter