O Δημήτρης (@glezos, linkedin) μας έκανε μια από τις ευχάριστες εκπλήξεις λίγο πριν κάνουμε την πρώτη μας παρουσίαση. Είχαμε μόλις αρχίσει το CEID Battle κυρίως για να "παίξουμε" λίγο με την Python, όπου και μας ανακάλυψε και έκανε τα πρώτα bug report και υπέβαλλε patches χωρίς καν να το περιμένουμε! Μετά από λίγες μέρες τον γνωρίσαμε από κοντά στην πρώτη μας ανοικτή παρουσίαση, ενώ είχαμε την τύχη να μας κάνει δυο παρουσιάσεις μεταφέροντας μας την εμπειρία του από τους (πολλούς) χώρους που κινείται. Η πρώτη ήταν Hacking with Python for fun and profit ενώ η δεύτερη και η οποία μέχρι τώρα είναι η παρουσίαση που έχει τις περισσότερες προβολές είναι Extreme Web Programming: Η τεχνική πλευρά του νομίσματος, η οποία και συμπυκνώνει με μεγάλη επιτυχία πάρα πολλές χρήσιμες έννοιες.
Ποιός είσαι;
Με λένε Δημήτρη Γλέζο. Είμαι ένας geek με γυαλιά, μουσάκι και λίγα μαλλιά. (:-)
Το τελευταίο έτος δουλεύω στην Indifex, μια εταιρία που ίδρυσα στην αγαπημένη Πάτρα με στόχο να δουλεύω αποκλειστικά σε ελεύθερο λογισμικό και Python. Παρέα με 5 ακόμη coders γράφουμε λογισμικό διαχείρισης έργων μεταφράσεων που χρησιμοποιείται από εταιρείες σαν τις Nokia, Intel, Red Hat και έργα ελεύθερου λογισμικού όπως τα Mozilla, Django, Mercurial και Creative Commons.
Τα τελευταία 5 χρόνια εμπλέκομαι σε διάφορα έργα ελεύθερου λογισμικού, με κυριότερο το Fedora, στο οποίο έχω την ευθύνη του έργου μεταφράσεων και έχω διατελέσει μέλος του Fedora Board.
Ξεκίνησα με την Python το 2007, όταν ένιωσα ότι η PHP περιόριζε τις δυνατότητες μου σαν προγραμματιστή. Από τότε δεν έχω κοιτάξει πίσω.
Τι παρουσίασες;
Στην παρουσίαση "Extreme Web Programming: The Technical Side" είδαμε τι χρειάζεται για να "τρέξει" ένα δημοφιλές (read: scalable) web application σε Python και Django: από object-level caching μέχρι static serving και queuing systems.
Στόχος ήταν να δούμε το full stack του καθαρά τεχνικού τμήματος ενός τέτοιου έργου. Θυμάμαι ήταν διασκεδαστικό να προσπαθούμε να χωρέσουμε τόσα πολλά θέματα σε τόσο λίγο χρόνο παρουσίασης, έστω και επιγραμματικά!
Χρησιμοποιείς την Python για...
Λίγο-πολύ για τα πάντα. Ο μεγαλύτερος χρόνος μου με την Python είναι web development, κυρίως μάλιστα πάνω από το Django web framework, και Unit Testing. Οπουδήποτε όμως χρειάζεται κάτι υπολογιστικό το οποίο το απλό calculator δε μπορεί να χωνέψει, το python prompt είναι ό,τι πιο χρήσιμο!
Τι σου αρέσει στη Python;
Τι δεν σου αρέσει;
Η έλλειψη "hype" που βρίσκει κανείς σε άλλες κοινότητες, όπως πχ. στη Ruby ή ακόμη και την PHP. Φυσικά αυτό είναι συνεπακόλουθο ενός ισχυρού developer community, ωστόσο υπάρχουν κοινότητες που έχουν καταφέρει να έχουν και hype και ισχυρό development (πχ. το git, όσο πανάθλιο και να είναι).
Τι εξελίξεις προβλέπεις;
Λιγότερα: Enterprise standards (*cough*J2EE*cough*), Microsoft,
Περισσότερα: Συζητήσεις για application level, Web, loose-coupling, Linux, διδαχή Python σε Πανεπιστήμια/Σχολεία/OLPC.
Εντυπώσεις από την κοινότητα;
Πολύ, πολύ καλές εντυπώσεις, μπράβο για τη δουλειά μέχρι τώρα!
Προτάσεις: Να συνεχίσουν και να αρχίσουν να μεταμορφώνονται σε workshops και hackfests. Πιο οργανωμένα με πιο πολλές παρουσιάσεις από νέους contributors. Προσκεκλημένοι από Αθήνα πού και πού. Lightning talks.
Σε μια καινούρια χρονιά με ακόμη μεγαλύτερες επιτυχίες, και να συνεχίσουμε να TaSpame.
Ο Γιώργος συνδιάζει τις απίστευτες γνώσεις σε εξαιρετικά δύσκολα σημεία του αντικείμενου των υπολογιστών με μια φιλική και πρόσχαρη άνθρωπος προσωπικότητα, πάντα και διαθέσιμος να βοηθήσει τους υπόλοιπους. Έχει έντονη δράση στον χώρο του ανοικτού λογισμικού ενώ αποτελεί core contributor του FreeBSD. Αποτελεί έναν από τους "διάσημους" που είχαμε την τύχη να κάνουν παρουσίαση, και σύμφωνα με μετριοπαθείς υπολογισμούς έκαναν 1023 ανθρώπους που ενδιαφέρονται να μάθουν κάτι παραπάνω μέσα από την παρουσίαση για Unit testing της οποίας το βίντεο μπορείτε να βρείτε εδώ. Αν δεν το έχετε δει ακόμα, μη περιμένετε άλλο, ευκαιρία να στρογγυλοποιήσετε τον παραπάνω αριθμό!
Ποιός είσαι;
Με λένε Γιώργο Κεραμίδα. Ήμουν για κάποιο καιρό φοιτητής στο CEID. Στο CEID γνώρισα το ανοικτό λογισμικό και την Python. Εκεί, επίσης, ήρθα σε επαφή με άλλους προγραμματιστές open & free software.
Τα τελευταία 10 χρόνια είμαι μέλος της ομάδας ανάπτυξης του FreeBSD έχω γνωρίσει τεχνικές και έχω μάθει πράγματα τα οποία με έχουν ευχαριστήσει & βελτιώσει ως άνθρωπο και ως προγραμματιστή. Η συμμετοχή μου στην ομάδα του FreeBSD είναι ένα από τα πράγματα που με κάνουν περήφανο, ιδιαίτερα επειδή έχω προσφέρει με το δικό μου τρόπο τόσο στην ανάπτυξη όσο και την προώθησή του.
Εργάζομαι ως senior software developer σε εταιρείες λογισμικού σε Ελλάδα και εξωτερικό. Η ειδίκευσή μου είναι κυρίως σε θέματα δικτυακών εφαρμογών, release & configuration management, testing και quality assurance.
Τι παρουσίασες;
Παρουσίασα το unit testing, χρησιμοποιώντας παραδείγματα γραμμένα σε σχετικά απλή ANSI C. Οι ίδιες ακριβώς ιδέες εφαρμόζονται και σε Python, C++ ή οποιαδήποτε άλλη γλώσσα.
Έκανα την παρουσίαση με κυριότερο σκοπό τη διάδοση του unit testing ως ιδέα στον κόσμο που ξεκινά τώρα να ασχολείται με τον προγραμματισμό. Είναι ένας από τους λίγους τρόπους να εξασφαλίσουμε την ποιότητα του λογισμικού το οποίο γράφουμε. Τέτοιου είδους τεχνικές και γνώση είναι ακριβώς αυτό που πιστεύω ότι αξίζει να διαδίδεται μέσα από ομάδες όπως η TasPython.
Χρησιμοποιείς την Python για...
Χρησιμοποιώ την Python σχεδόν παντού. Οπουδήποτε χρειάζεται κάτι πιο περίπλοκο από απλό string processing ή απλά shell pipe-lines. Για όλα τα πράγματα που χρειάζονται ωραίες και ευανάγνωστες δομές δεδομένων :-) Η κλασική αντιμετώπιση που έχω σε οποιοδήποτε μέρος της καθημερινής μου δουλειάς έχει σχέση με αυτοματοποίηση είναι: «Αν είναι πάνω από 100 γραμμές ή χρειάζεται οτιδήποτε πιο περίπλοκο από μια απλή λίστα από γραμμές κειμένου, είναι ήδη ώρα να το γράψεις σε Perl ή Python.»
Τι σου αρέσει στην Python;
Προσωπικά μου αρέσουν πολλά χαρακτηριστικά της Python. Είμαι από παλιά φίλος των dynamically typed γλωσσών. Η γλώσσα την οποία προτιμώ για τις εντελώς δικές μου εργασίες είναι π.χ. η Common Lisp, μια κατεξοχήν δυναμική & επεκτάσιμη γλώσσα. Η Python μου αρέσει επειδή:
Τι δεν σου αρέσει;
Οι επιλογές του Guido van Rossum δε με βρίσκουν πάντα σύμφωνο. Π.χ. οι απόψεις του περί lambda function support, macro support και οι αλλαγές που κάνει στην Python στις εκδόσεις 3.0 και τις νεώτερες είναι πολύ σημαντικές, επηρεάζουν ιδιαίτερα το συντακτικό της γλώσσας, αλλά και έτσι ακόμα δεν είναι αρκετές για να φτάσουμε και στην Python την πλήρη αυτονομία του συντατικού από το σημειολογικό επίπεδο του πηγαίου κώδικα ενός προγράμματος --- κάτι που υπάρχει ήδη σε άλλες γλώσσες.
Τι εξελίξεις προβλέπεις;
Οι υπολογιστές παίζουν ήδη σημαντικό ρόλο στη ζωή μας. Έχουμε κάνει τεράστια βήματα μέσα στα τελευταία 50 χρόνια. Από τους υπολογιστές οι οποίοι χρειαζόντουσαν ένα μέτριο κτίριο ο καθένας έχουμε φτάσει σε τέτοιο επίπεδο που ο καθένας από εμάς κυκλοφορεί στο δρόμο με πολλαπλούς μικρούς υπολογιστές πάνω του (τηλέφωνα, bluetooth-enabled devices, PDA, ακόμη και φορητούς μίνι-υπολογιστές γενικής χρήσης). Η πρόοδος της τεχνολογίας είναι εντυπωσιακή και συνεχίζει με ακάθεκτο ρυθμό. Τέτοια είναι η φύση της προόδου: όταν ξεκινήσει προς μιας κατεύθυνση δε μπορεί εύκολα να πισωγυρίσει, τουλάχιστον χωρίς δραματικές και απότομες αλλαγές καταστροφικής φύσης.
Είναι πολλές οι πλευρές της καθημερινής μας ζωής, της δουλειάς μας, της διασκέδασης, της επικοινωνίας, της κοινωνικής και προσωπικής έκφρασης του καθενός από εμάς οι οποίες επηρεάζονται ή βελτιώνονται από τη χρήση της τεχνολογίας. Οι θετικές επιδράσεις της τεχνολογίας είναι σίγουρα χρήσιμες, αλλά χρειάζεται να αναπτύξουμε και το κατάλληλο ηθικό υπόβαθρο για να μπορέσουμε ως ανθρωπότητα να χειριστούμε αποδοτικά, με ασφάλεια και σύνεση τις επιδράσεις αυτής ακριβώς της προόδου. Οι υπολογιστές και η τεχνολογία γενικότερα θα συνεχίσουν στο δρόμο που έχουν ήδη πάρει. Η πρόκληση για όλους μας θα είναι, τόσο ατομικά όσο και ως ανθρωπότητα, στο σύνολο του πληθυσμού:
Πιο συγκεκριμένα, για τον προγραμματισμό και τη γλώσσα Python, θα ήθελα να δω μεγαλύτερη διάδοση μαθημάτων για τη γλώσσα Python σε πρωτοετείς φοιτητές σχολών. Είναι μια πολύ ωραία γλώσσα για εισαγωγικά μαθήματα στον προγραμματισμό -- εύκολη στην εκμάθηση, χωρίς να της λείπει κάτι από άλλες γλώσσες, είναι διαθέσιμη σχεδόν παντού και η χρήση της δεν περιορίζεται στον ακαδημαϊκό χώρο ή μόνο στα στενά όρια ενός και μόνο μαθήματος.
Θα θελα π.χ. να δω σε μαθήματα γλωσσών προγραμματισμού να μαθαίνουν οι νέοι προγραμματιστές τόσο Python όσο και άλλες γλώσσες προγραμματισμού. Ένα πλήρες σετ από γλώσσες, που καλύπτει τόσο στατικές compiled γλώσσες, όσο και δυναμικές ή εξωτικές γλώσσες. Ένας προγραμματιστής πρέπει να έχει επαφή τόσο με statically typed, non-GCed γλώσσες όπως η C/C++ όσο και με δυναμικές γλώσσες όπως η Perl, Python και η Scheme ή η Lisp. Κάτι τέτοιο ας πούμε θα ήθελα να είναι μέσα στα μελλοντικά σχέδια των Πανεπιστημιακών τμημάτων τα οποία έχουν σχέση με τεχνολογία: η έμφαση στη χρήση multi-paradigm γλωσσών ή πολλαπλών γλωσσών με διαφορετικό στυλ προγραμματισμού. Και η Python είναι σίγουρα μέσα στις γλώσσες που θέλω να βλέπει κάθε νέος προγραμματιστής όταν ξεκινά να μαθαίνει τα βασικά στοιχεία του προγραμματισμού.
Εντυπώσεις από την κοινότητα;
Οι παρουσιάσεις της TasPython είναι ωραία ιδέα. Δε μπόρεσα να έρθω σε πολλές, αλλά είμαι κατα-ενθουσιασμένος από τον κόσμο που είδα σε όσες συναντήσεις ήρθα. Κατ' αρχήν να πω ότι πρέπει να τις συνεχίσετε. Με τέτοιες προσπάθειες δημιουργούνται οι τοπικές ομάδες από hackers και με τέτοιο ακριβώς πνεύμα ανταλλαγής ιδέων είναι που προωθείται η ιδέα ότι είναι ενδιαφέρον, χρήσιμο, και πάνω από όλα πολύ διασκεδαστικό να βλέπουμε ο ένας τι κάνει ο άλλος. Συγχαρητήρια σε όλους τους TasPython! :)
Οι William Stein, Fernando Perez και ο Jarrod Millman δημιουργούν ένα ίδρυμα μη κερδοσκοπικού χαρακτήρα για μαθηματική και επιστημονική έρευνα στον υπολογισμό. Ο σκοπός τους είναι να διασφαλίσουν απεριόριστη πρόσβαση στα καλύτερα υπολογιστικά εργαλεία για έρευνα και εκπαίδευση στα μαθηματικά, την επιστήμη και την μηχανική. Προσπαθούν να το επιτύχουν μέσα από την βοήθεια υπαρχόντων προσπαθειών και κοινοτήτων. Αρχικά θα επικεντρωθούν στην Python παρά σε άλλες γλώσσες για επιστημονικό υπολογισμό όπως η R ή η Scilab. Παρά αυτό το γεγονός, ο σκοπός του ιδρύματος δεν θα είναι απλά να προωθήσει την χρήση της Python στην επιστήμη.
Θα γίνει ένα πρώτο δωρεάν event στις 25 Ιουνίου στο Mathematical Sciences Research Institute (MSRI) στο Berkeley. Για περισσότερες λεπτομέρειες: http://drupal.mscomp.org/orcp2010
Ο Δημήτρης είναι ένα από τα παιδιά που ξεκίνησαν αυτή την προσπάθεια και αυτός ο οποίος δε πρόκειται ποτέ να βαρεθεί να γράφει και να ασχολείται με το TasPython. Βοηθάει στη διαχείριση του ιστοτόπου και μας κάνει να γελάμε πέρα από το να μαθαίνουμε μέσα από τις παρουσιάσεις του! Έκανε μια σειρά παρουσιάσεων για την Python (Εισαγωγή, Δομές Ελέγχου, Λίστες Συναρτήσεις Γεννήτορες, Εξαιρέσεις), το CEID Battle, τον Global Interpreter Lock και το MapReduce και μια παρουσίαση βασισμένη σε ένα βιβλίο για την Δημιουργία Web Εφαρμογών. Συμμετείχε παρουσιάζοντας στο OpenFest και στη FOSSCOMM. Για την ακρίβεια δεν υπάρχει event και συνέδρειο στο οποίο να υπήρχαν παρουσιάσεις από την κοινότητα και ο Δημήτρης να μην συμμετείχε με έστω και μία παρουσίαση!
Ποιός είσαι;
Ονομάζομαι Δημήτρης Λεβεντέας. Τελειώνω, όντας στο 5ο έτος, τη σχολή Μηχανικών Η/Υ & Πληροφορικής στην Πάτρα.
Τι παρουσίασες;
Συμμετείχα σε μια σειρά παρουσιάσεων για την Python, οι οποίες με βοήθησαν να γράψω αρκετά μεγάλο μέρος του οδηγού που υπάρχει αναρτημένος στον ιστότοπο καθώς και σε διάφορες άλλες παρουσιάσεις όπου πάντα με αφορμή την Python, αλλά χωρίς περιορισμό αυστηρά σε αυτή, προσπαθούσα να ζητήσουμε θέματα που ανά καιρούς μου φαινόντουσαν πολύ ενδιαφέροντα. Το πιο ωραίο κομμάτι βέβαια είναι όταν η παρουσίαση μετατρέπεται συζήτηση όπου συνδιάζεται η πραγμάτευση ενδιαφέροντων θεμάτων με ένα πιο φιλικό κλίμα.
Χρησιμοποιείς την Python για...
...για παιχνίδια! Ποιος είπε ότι το Linux δεν έχει παιχνίδια; Απλά δοκιμάστε python3 στην κονσόλα ή ανοίξτε έναν editor!
Πέρα από την πλάκα, την βρήκα ιδιαίτερα χρήσιμη για την επίλυση ασκήσεων από το projecteuler (παιχνίδια δηλαδή), για να σπαμάρεις του φίλους σου με πολλές φορές το ίδιο email (εκνευριστικά παιχνίδια), για να έχεις διαφορετικές υπογραφές σε κάθε email που στέλνεις (τα παιδία παίζει), για να βρίσκεις τα σπάνια ονόματα συμφοιτητών σου στη σχολή (για να κερδίζεις τα σχετικά παιχνίδια) ή για να λύνεις γραμμικά συστήματα (όχι παίζουμε!). Επίσης, για να αντλείς πληροφορίες με λίγο parsing από το Internet (Προσοχή: στα πολιτικά sites η εντροπία είναι 0!), για να δοκιμάζεις αλγόριθμους (τέχνη) και εν τέλει για μια αποδεκτή αφορμή από το κοινωνικό σύνολο για να βρεθείς με περισσότερους geeks!
Τι σου αρέσει στην Python;
Τα κενά μετράνε, όπως και στη ζωή! Αν σου πω 3.14 δεν θα με ρωτήσεις αν είναι ακέραιος ή δεκαδικός. 3/5 κάνει 0.6 και όχι 0 (στην Python 3 τουλάχιστον). Αν προσθέτεις θετικούς ακεραίους δεν ανησυχείς αν το αποτέλεσμα μπορεί να κάνει αρνητικό(!!). Το Mercurial τα σπάει (ψιλοάσχετο!). Ο καλός προγραμματιστής ξεχωρίζει από το τι γράφει και όχι πως το γράφει (είμαι φαν των αλγορίθμων :P ).
Τι δεν σου αρέσει;
Ίσως δεν είναι τόσο γνωστή όσο θα της άξιζε. Επίσης, θα προτιμούσα να έχουν μεταφερθεί περισσότερες βιβλιοθήκες στην έκδοση 3 της Python.
Τι εξελίξεις προβλέπεις;
Δεν θα έχουμε ποντίκια (ελπίζω ούτε κατσαρίδες!), 5 υπολογιστές παγκοσμίως δεν θα είναι αρκετοί, και θα υπάρξει μια μάχη σε δυο διαφορετικούς τρόπους υπολογισμού που ήδη έχει αρχίσει. Κατανεμημένος (πολλοί μικροί υπολογιστές συνδέονται μεταξύ τους) vs Κεντρικοποιημένος (οι πριν 10 χρόνια υπερυπολογιστές είναι τώρα στα σπίτια μας).
Εντυπώσεις από την κοινότητα;
Όσο πάει και μεγαλώνει, και αυτό είναι πολύ ευχάριστο!
Με αφορμή μια δημοσίευση στο blog του Guido van Rossum, το οποίο είναι ενεργό ξανά μετά από ένα χρόνο, ευκαιρία να δούμε ένα Easter Egg που υπάρχει στην Python 3.x και στο Google App Engine. Η Python, που είναι γνωστή για την ευκολία της, έχει μια χαρακτηριστική ανάφορά σε ένα comic του xkcd. Γράφοντας:
>>> import antigravity
εμφανίζεται το συγκεκριμένο comic.