TasPython - Ομαδα Python CEID

Syndicate content
Ελληνική κοινότητα χρηστών Python. Greek Python User Group (PUG).
Updated: 46 min 4 sec ago

Sage

Fri, 06/08/2010 - 09:25

Το Sage είναι μια μεγάλη, Python-based συλλογή από modules για μαθηματικό προγραμματισμό (αλλά όχι μόνο).

Σύμφωνα με το site ( http://www.sagemath.org ), πρωτεύων σκοπός του πακέτου είναι η εκπαίδευση και η έρευνα στον κλάδο των μαθηματικών, όμως απευθύνεται και γενικότερα σε όσους θέλουν να συνδιάσουν σοβαρό μαθηματικό προγραμματισμό "με ο,τιδήποτε άλλο", γι' αυτό και επιλέχθηκε η Python σαν βάση. Ως εκ τούτου, περιλαμβάνει, πάλι σύμφωνα με το site, 64+ (ή 100+) άλλες FOSS βιβλιοθήκες, μεταξύ των οποίων το γνωστό NumPy, interfaces για την Maxima και την Mathematica, modules για 2d/3d plotting, visualizations και γραμμική άλγεβρα, για θεωρία αριθμών, για κρυπτογραφία, για category theory, για group theory και αρκετές ακόμη εφαρμογές.

Φυσικά τα εν λόγω χαρακτηριστικά έχουν ως επακόλουθα και κάποια μειονεκτήματα, όπως είναι η πολυπλοκότητα χρήσης κάποιων μαθηματικών εργαλείων για όσους δε γνωρίζουν μαθηματικά (π.χ. δυσκολεύτηκα να χειριστώ απλά σύνολα (Sets-προσέξτε το κεφαλαίο S) πριν ασχοληθώ με την βασική category theory!).
Άλλη μια ιδιαιτερότητα του πακέτου είναι οτί, εξ'αιτίας του μεγέθους και της πολυπλοκότητας του, δεν υπάρχουν Windows binaries και διανέμεται για Windows μόνο στα πλαίσια μιας virtual machine (με Linux) η οποία μπορεί να τρέξει στον VMWare Player.

Παρ'όλα αυτά, εναλλακτικά προσφέρεται πλήρως μέσα από ένα web interface, μετά από διαδικασία εγγραφής, για όσους θέλουν να αποφύγουν το μέγεθος του download, ή να μοιραστούν άμεσα τη δουλειά τους με άλλους χρήστες της web εφαρμογής.

Διανομή scripts σε APK

Tue, 03/08/2010 - 17:33

Υπέροχα νέα για όλους! Πλέον το Distribute scripts as APKs έχει κλείσει ως επιλυμένο πρόβλημα, που σημαίνει ότι είναι δυνατή η δημιουργία αρχείων APK από εφαρμογές που είναι γραμμένες σε Python για το Andoid! Αυτό το πολυπόθητο χαρακτηριστικό από πολλούς το αναμέναμε ήδη κάποιο καιρό, αλλά σήμερα είναι η μέρα που μαρκαρίστηκε ως επιλυμένο.

Python 3.2

Tue, 03/08/2010 - 04:43

Με χαρά είδαμε πριν δύο μέρες να κυκλοφορεί η Python 3.2 alpha 1.

Και σε αυτή την έκδοση της Python συνεχίζονται οι προσπάθειες για βελτίωση και σταθεροποίηση της σειράς Python 3.x. Να θυμίσουμε ότι πλέον η Python 2.x λαμβάνει μόνο bug-fixes, και νέες λειτουργίες αναπτύσσονται μόνο για την 3.x σειρά.

Μιας και το PEP 3003 συνεχίζει να βρίσκεται σε ισχύ, καταλαβαίνεται ότι δεν υπάρχουν ούτε σε αυτή την έκδοση αλλαγές στο τρόπο σύνταξης της γλώσσας. Η όλη ανάπτυξη επικεντρώθηκε στη standard library και στη περαιτέρω υποστήριξη για μεταφορά κώδικα σε Python 3. Οι πιο σημαντικές βελτιώσεις φαίνονται παρακάτω:

  • Πολυάριθμες βελτιώσεις στο module για unittesting
  • PEP 3174, υποστήριξη για .pyc repository directories
  • Λεπτομερή "επιθεώρησή και επισκευή" του GIL, με αποτέλεσμα την μείωση του contention
  • Διορθώσεις που αφορούν την συνέπεια και την συμπεριφορά των αριθμητικών πράξεων
  • Λύσεις σε πολυάριθμα προβλήματα σχετικά με τα strings και το unicode
  • Ένα sysconfig module που προσφέρει πρόσβαση σε πληροφορίες σχετικά με το configuration
  • Μία καθαρή Python implementation του module datetime
  • Προσθήκες στο shutil module, μεταξύ των οποίων και η υποστήριξη πλέον για archive file
  • Βελτιώσεις στον pdb, τον debugger της Python

Ζητούνται Pythonistes!

Mon, 26/07/2010 - 14:27

Η εταιρία SocialCaddy ζητάει python developers για unit testing για την web εφαρμογή της. Γνώσεις APIs (facebook, linkedin, gmail) θα εκτιμηθούν. Για περισσότερες πληροφορίες στείλτε στο jon@socialcaddy.com

Το NumPy σε Python 3

Sun, 11/07/2010 - 11:03

Το NumPy είναι ένα θεμελειώδες πακέτο για επιστημονικό υπολογισμό. Αποτελεί μια από την βασικότερες εξαρτήσεις για πολλά άλλα πακέτα και η μεταφορά του σε Python 3 ανοίγει πολλούς δρόμους. Μπορεί κάποιος να βρει τον Numpy συμβατό με την Python 3 μέσα από την έκδοση SVN trunk:

svn clone http://svn.scipy.org/svn/numpy/trunk/ numpy
cd numpy
python3 setup.py build

Ο κώδικας θα συμπεριλυφθεί στις εκδόσεις 1.5 και 2.0. Παράλληλα η δουλειά για την μεταφορά σε Python 3 του Scipy (που βασίζεται στο Numpy), προβλέπεται να τελειώσει σύντομα ανοίγοντας ακόμα περισσότερους δρόμους για τη μεταφορά πακέτων σε Python 3.

PyCon AU 2010

Wed, 07/07/2010 - 04:00

Η παγκόσμια κοινότητα της Python κάθε χρόνο διοργανώνει διάφορα συνέδρια, τα λεγόμενα PyCon (Python Conferences), σχετικά με την γλώσσα σε διάφορα μέρη του κόσμου.

Έτσι στις 25-26-27 Ιουνίου πραγματοποιήθηκε ακόμα ένα συνέδριο Python στο Σύδνεϋ της Αυστραλίας.

Οι παρουσιάσεις που έγιναν περιελάμβαναν θέματα όπως web programming, επαγγελματικές εφαρμογές,  game development, θέματα επιστημονικού και μαθηματικού ενδιαφέροντος, εκπαίδευσης, testing, βάσεις δεδομένων και άλλα.

Τα βίντεο των παρουσιάσεων είναι πολύ ενδιαφέροντα και μπορείτε να τα βρείτε εδώ.

Mercurial 1.6

Mon, 05/07/2010 - 21:41

Τα δύο πιο σημαντικά χαρακτηριστικά του Mercurial 1.6 είναι:

  • Σελιδοδείκτες που μπορούμε να κάνουμε push και pull. Έτσι πλέον μπορούμε να τους συγχρονίζουμε ανάμεσα στα αποθετήρια.
  • Μια νέα ισχυρή γλώσσα ερωτημάτων έκδοσης (revision query language)
Περισσότερες λεπτομέρειες

Python 2.7

Mon, 05/07/2010 - 12:22

H Python 2.7 έχει προγραμματιστεί να είναι η τελευταία έκδοση της σειράς 2.x πριν εισέλθει σε μια παρατεταμένη περίοδο υποστήριξης. Η συγκεκριμένη έκδοση περιέχει χαρακτηριστικά που ήδη έχουμε γνωρίσει μέσω της Python 3.1.

  • Ταξινομημένου τύπου λεξικού
  • Καινούργια χαρακτηριστικά στο unittest
  • Πολύ πιο γρήγορο IO άρθωμα
  • Αυτόματη αρίθμηση των πεδίων στη μέθοδο str.format()
  • Μερικές αλλαγές στην αναπαράσταση των αριθμών κινητής υποδιαστολής
  • Υποστήριξη Tile στο Tkinter
  • Κατανοήσεις λεξικού και συνόλου
  • Όψεις λεξικού
  • Νέο συντακτικό για εμφωλευμένα with
  • Το άρθωμα sysconfig

Ήδη η κοινότητα προσπαθεί να προωθήσει πιο ενεργά την έκδοση 3 της Python, επομένως αν αρχίζεται τώρα ένα project εφόσον υπάρχουν οι βιβλιοθήκες που χρειάζεστε ή μπορείτε να βασιστείτε σε αυτές που έρχονται μαζί με την Python, ξεκινήστε το στην σειρά 3.x της Python. Αλλιώς η έκδοση 2.7 προσφέρει μια πολύ καλή ευκαιρία να μάθετε τα καινούργια χαρακτηριστικά που φέρνει η Python 3 και να είναι πιο ομαλή η μελλοντική μετάβαση.

Διανομή Python εφαρμογών σε Android

Fri, 02/07/2010 - 09:07

Όπως φαίνεται σε λίγο καιρό θα είναι δυνατή η διανομή εφαρμογών γραμμένων σε Python για το Android στην μορφή APK (Android Package) ξεχωριστά από το ASE (Android Scripting Environment). Οι χρήστες των συγκεκριμένων εφαρμογών θα απαιτείται να εγκαταστήσων και τον κατάλληλο ερμηνευτή (interpreter) αλλά κατά τα άλλα η εφαρμογή θα παρουσιάζεται ως μια κανονική εφαρμογή για Android.

Online εξάσκηση

Sun, 27/06/2010 - 10:31

Στο http://codingbat.com/ υπάρχουν online ασκήσεις στα αγγλικά που μπορούμε να κάνουμε μέσα από τον browser και να επιβεβαιωθεί αν παράγεται το επιθυμητό αποτέλεσμα. Πέρα από την Python, υπάρχουν ασκήσεις και για Java. Τον ιστότοπο τον έχει κατασκευάσει ο Nick Parlante ο οποίος είναι καθηγητής στο Stanford.

Συνέντευξη από Γιώργο Πορτοκάλογλου

Sun, 27/06/2010 - 08:52

Τον Γιώργο είχαμε την τύχη να τον γνωρίσουμε σχεδόν μόλις άρχιζε η προσπάθεια μας ως TasPython. Μας βοήθησε πάρα πολύ με τις συμβουλές καθώς ξέρει πολλά πράγματα για το πως πρέπει να δουλεύει μια ομάδα. Από κοντά είναι ένας πρόσχαρος και πολύ φιλικός άνθρωπος, πάντα πρόθυμος να βοηθήσει. Ο Γιώργος έκανε την παρουσίαση: Φτιάχνοντας το μέλλον σου.

Ποιός είσαι;
Λέγομαι Γιώργος Πορτοκάλογλου. Είμαι τελειόφοιτος του τμήματος Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών του ΤΕΙ Λάρισας. Ασχολούμαι με το open source στη χώρα μας, κυρίως μέσω της ομάδας LinuxTeam του ΤΕΙ Λάρισας και μέσω της ομάδας Fosscomm.

Τι παρουσίασες;
Έκανα μια διαφορετική, από τις συνηθισμένες παρουσιάσεις που γίνονται στις συναντήσεις της TasPython, με τίτλο "Φτιάχνοντας το μέλλον σου" και σκοπό, να δείξω στους φοιτητές, πως η ενασχόληση με φοιτητικές ομάδες, όπως η TasPython, μπορούν να βοηθήσουν στην επαγγελματική μας καριέρα.

Χρησιμοποιείς την Python για...
.. να μάθω να τη χρησιμοποιώ, προς το παρόν. Όμως μιας και η πτυχιακή που έχω αποφασίσει να κάνω, θα είναι πάνω σε Python & QT, θα χρειαστεί να ασχοληθώ άμεσα πιο σοβαρά, και πιθανόν να ανατρέξω στη βοήθεια των TasPythonistas σύντομα ;-)

Τι σου αρέσει στην Python;
Από τα λίγα που έχω δει, μου αρέσει πολύ που μαθαίνεται εύκολα, που δεν έχει δείκτες και που φυσικά είναι open source!

Τι δεν σου αρέσει;
Δε μου αρέσει που ακόμα χρησιμοποιούνται αρκετές εκδόσεις της Python με αποτέλεσμα ο νέος προγραμματιστής. να μπαίνει σε δίλημμα για το ποια έκδοση να χρησιμοποιεί για να γράψει τα προγράμματα του.

Τι εξελίξεις προβλέπεις;
Το μέλλον είναι (στο) Open Source!

Εντυπώσεις από την κοινότητα;
Μιας και γνωρίζω πολλές από τις κοινότητες που υπάρχουν στην Ελλάδα, και ασχολούνται με τεχνολογικά θέματα, η TasPython μου δίνει την αίσθηση ότι είναι από τις πιο.. χαρούμενες! Με πολύ όρεξη για δουλειά, και έντονη δραστηριότητα ειδικά μετά τα Χριστούγεννα που το έργο βγήκε εντονότερα προς τα έξω.
Οι παρουσιάσεις που είδαμε σε Fosscomm και OpenFest ήταν απλά απολαυστικές, και επειδή έχετε θέσει ψηλά τον πήχη, θα θέλαμε να συνεχίσετε έτσι!
TaSpάτε!

PyPy 1.3

Sat, 26/06/2010 - 02:29

Πριν λίγες ώρες βγήκε το PyPy 1.3, μια υλοποίηση της Python σε Python! Η συγκεκριμένη έκδοση επικεντρώνει στην σταθεροποίηση του JIT (just in time) compiler και σε μια πρώτη υλοποίηση της υποστήριξης Cpython αρθωμάτω επέκταση γραμμένα σε C. Για να ενεργοποιηθεί αυτό το χαρακτηριστικό πρέπει να κάνεις κάποιος:
import cpyext
πριν προσπαθήσει να εισάγει οποιοδήποτε .so αρχείο. Επίσης, οι βιβλιοθήκες είναι συμβατές με βάση τον κώδικα και όχι δυαδικά συμβατές. Αυτό σημαίνει πως πρέπει να ξαναγίνουν compile χρησιμοποιώντας για παράδειγμα:
python setup.py build.

Πιο αναλυτικές λεπτομέρειες μπορεί να βρει κάποιος στο επίσημο site όπου έγινε και η ανακοίνωση.

Συνέντευξη από Δημήτρη Γλέζο

Fri, 25/06/2010 - 19:26

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;

  • Duck typing -- οδηγεί στη δημιουργία καθαρού κώδικα ο οποίος "just makes sense". Για το dynamically typed δεν το συζητώ, αρχίζει κανείς και νιώθει ότι όλες οι άλλες προσεγγίσεις είναι παλαιολιθικές και σου "δένουν τα χέρια"..
  • Optimized for reading -- και συνεπώς, high code re-usability. Είναι χαρά Θεού να παίρνεις κάποιου άλλου τον κώδικα, ο οποίος πολλές φορές χρησιμοποιείται σαν μέσο έκφρασης και μοναδικότητα του κάθε προγραμματιστή, και να καταλαβαίνεις τι κάνει και πώς να το βελτιώσεις όπως θες.
  • Only one way to do something -- με μικρό κόπο μπορείς να διαχειριστείς μεγάλα έργα και να νιώθεις ότι ξέρεις εκ των προτέρων πού πρέπει να πάει τι.
  • Πλούσιες βιβλιοθήκες -- τόσο ενσωματωμένες όσο και εξωτερικές. Η ποσότητα τους είναι τρομακτική.

Τι δεν σου αρέσει;
Η έλλειψη "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.

Συνέντευξη από Γιώργο Κεραμίδα

Thu, 24/06/2010 - 19:25

Ο Γιώργος συνδιάζει τις απίστευτες γνώσεις σε εξαιρετικά δύσκολα σημεία του αντικείμενου των υπολογιστών με μια φιλική και πρόσχαρη άνθρωπος προσωπικότητα, πάντα και διαθέσιμος να βοηθήσει τους υπόλοιπους. Έχει έντονη δράση στον χώρο του ανοικτού λογισμικού ενώ αποτελεί 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 μου αρέσει επειδή:

  • Είναι dynamically typed.  Δε χρειάζεται σε κάθε μικρό σημείο να γράφει κανείς τον τύπο μιας μεταβλητής ή μπορεί η ίδια συνάρτηση να εφαρμοστεί σε διάφορους τύπους δεδομένων.  Το duck-typing της Python δεν είναι ακριβώς τόσο επεκτάσιμο ή τόσο δυναμικό όσο το fully dynamic typing της Lisp, αλλά είναι μια πάρα πολύ καλή προσέγγιση από το ίδιο επίπεδο λειτουργικότητας και ελευθερίας.
  • Η Python έχει ενσωματωμένο garbage collection.  Πριν από 20 χρόνια η χρήση garbage collection φάνταζε «εξωτική» και υπερβολική.  Σήμερα πλέον δεν υπάρχει λόγος να ασχολούμαστε με τόσο trivial και low level λεπτομέρειες παρά μόνο σε πολύ εξειδικευμένα περιβάλλοντα, όπως σε embedded πλατφόρμες με πολύ περιορισμένη φυσική μνήμη.
  • Ο κώδικας της Python, ακριβώς όπως και η Common Lisp, μπορεί να διαβαστεί με ένα μοναδικό και σαφή τρόπο.  Όσοι πρωτοβλέπουν κώδικα γραμμένο σε Python ανησυχούν για τη χρήση whitespace ως μέρος του συντακτικού της γλώσσας.  Αυτό έχει όμως παρόμοια αποτελέσματα με τη χρήση των symbolic expressions σε Lisp: υπάρχει ένας, μοναδικός και σαφής, καθόλου αμφίσημος τρόπος να διαβαστεί ένα block κώδικα.  Αυτό είναι μεγάλο πλεονέκτημα όταν βλέπει κανείς κώδικα που δεν τον έχει γράψει ο ίδιος ή τον έχει γράψει μήνες πριν.  Η αναγνωσιμότητα του κώδικα είναι ο πιο σημαντικός μας στόχος ως προγραμματιστές. Ακριβώς όπως έχει πει κι ο Donald Knuth: «Programs should be written so that people, not just computers, can understand them».
  • Υπάρχει μεγάλη διαθεσιμότητα βιβλιοθηκών Python.  Οι βιβλιοθήκες τις οποίες μπορεί να βρει κανείς δεν έχουν πάντα το ίδιο επίπεδο ποιότητας, αλλά τα παραδείγματα βιβλιοθηκών όπως οι NumPy και SciPy είναι ιδιαίτερως ενθαρρυντικά.  Με τέτοιες βιβλιοθήκες ποιοτικού και ελεύθερα διαθέσιμου κώδικα μπορεί ο προγραμματιστής της 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! :)

Συνέντευξη από Δημήτρη Λεβεντέα

Wed, 23/06/2010 - 19:10

Ο Δημήτρης είναι ένα από τα παιδιά που ξεκίνησαν αυτή την προσπάθεια και αυτός ο οποίος δε πρόκειται ποτέ να βαρεθεί να γράφει και να ασχολείται με το 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 χρόνια υπερυπολογιστές είναι τώρα στα σπίτια μας).

Εντυπώσεις από την κοινότητα;
Όσο πάει και μεγαλώνει, και αυτό είναι πολύ ευχάριστο!

Open Research Computing in Python

Wed, 23/06/2010 - 13:28

Οι William Stein, Fernando Perez και ο Jarrod Millman δημιουργούν ένα ίδρυμα μη κερδοσκοπικού χαρακτήρα για μαθηματική και επιστημονική έρευνα στον υπολογισμό. Ο σκοπός τους είναι να διασφαλίσουν απεριόριστη πρόσβαση στα καλύτερα υπολογιστικά εργαλεία για έρευνα και εκπαίδευση στα μαθηματικά, την επιστήμη και την μηχανική. Προσπαθούν να το επιτύχουν μέσα από την βοήθεια υπαρχόντων προσπαθειών και κοινοτήτων. Αρχικά θα επικεντρωθούν στην Python παρά σε άλλες γλώσσες για επιστημονικό υπολογισμό όπως η R ή η Scilab. Παρά αυτό το γεγονός, ο σκοπός του ιδρύματος δεν θα είναι απλά να προωθήσει την χρήση της Python στην επιστήμη.

Θα γίνει ένα πρώτο δωρεάν event στις 25 Ιουνίου στο Mathematical Sciences Research Institute (MSRI) στο Berkeley. Για περισσότερες λεπτομέρειες: http://drupal.mscomp.org/orcp2010

Συνέντευξη από Κωνσταντίνο Αραβανή

Tue, 22/06/2010 - 19:41

Ο Κώστας είναι από τα πιο ενεργά μέλη της κοινότητας αυτής, βοήθησε στο στήσιμο του site και στη συνέχεια στη συντήρηση του, έχει γράψει τον οδηγό για το Mercurial που αποτελεί το πιο πολυκατεβασμένο έγγραφο του site, έχει γράψει αρκετά άρθρα στην κεντρική σελίδα, συνήθως αναρτά τα αποτελέσματα των συναντήσεων μας, αφού βοηθάει πρώτα στην ανακοίνωση τους. Το laptop του ήταν το υπεύθυνο για τις περισσότερες παρουσιάσεις και γενικότερα είναι ένας από τους ανθρώπους που κάνει την διαχειριστική δουλειά που άλλοι ίσως να βρίσκαν βαρετή, αλλά κάποιος πρέπει να την κάνει. Όσον αφορά από κοντά, είναι πολύ φιλικός και μπορείς άνετα να συνεργαστείς πολύ ευχάριστα μαζί του.
Οι παρουσιάσεις του ήταν: CEID Battle, Mercurial, Λεξικά Set Κλάσεις, Παρουσίαση της κοινότητας στο OpenFest. Μπορείτε να τον θαυμάσετε στην πρώτη κεφάτη παρουσίαση που κάναμε μαζί για το CEID Battle.

Ποιός είσαι;
Με λένε Κωνσταντίνο Αραβανή και είμαι φοιτητής στο τμήμα Μηχανικών Η/Υ και Πληροφορικής. Από Σεπτέμβριο ελπίζω να είμαι πτυχιούχος! Λατρεύω την Python, το Open Source και το Debian. Τα ενδιαφέροντα μου αφορούν το High Performance, Distributed Systems, Web Development και ενίοτε Operating Systems. Επίσης στον ελεύθερο μου χρόνο μου αρέσει να επιδίδομαι στο άθλημα που λέγεται scripting... ψάχνοντας τρόπους να διευκολύνω τη ζωή μου!

Τι παρουσίασες;
Δύο φορές έκανα μία εισαγωγική παρουσίαση για το Mercurial, μία στο TasPython και μία εκπροσωπώντας την κοινότητα στο OpenFest. Επίσης με τον Δημήτρη Λεβεντέα είχαμε κάνει δύο παρουσιάσεις πάνω στο CEID Battle, ένα παιχνίδι που αναπτύξαμε στο TasPython με τη χρήση του pygame module, και άλλη μία στο OpenFest όπου παρουσιάσαμε την κοινότητα. Τέλος με τον Νίκο Νοδαράκη, στα πλαίσια των εισαγωγικών παρουσιάσεων πάνω στην Python, είχαμε κάνει μία παρουσίαση πάνω στα λεξικά, τα sets και τις κλάσεις στην Python.

Χρησιμοποιείς την Python για...
Χρησιμοποιώ την python πραγματικά όπου μπορώ... Μπορείς να γράψεις κώδικα και να αναπτύξεις πράγματα σε κλάσματα δευτερολέπτου. Πραγματικά την λατρεύω! Όνειρο μου είναι να την δω να χρησιμοποιείται και σε μικρότερου τύπου συσκευές όπως αυτές στα ασύρματα δίκτυα αισθητήρων!

Τι σου αρέσει στην Python;
Φυσικά το dynamic typing, ο garbage collector, το γεγονός ότι η σύνταξή της σε αναγκάζει να στοιχίζεις σωστά τον κώδικά σου βοηθώντας και εσένα αλλά και αυτούς που θα αναπτύξουν μετά από σένα και ο πραγματικά μεγάλος αριθμός από modules. Επίσης το Django!

Τι δεν σου αρέσει;
Ο GIL. Πιστεύω ότι κάποια στιγμή πρέπει να λυθεί το πρόβλημα ανοίγοντας έτσι και νέους δρόμους για την Python.

Τι εξελίξεις προβλέπεις;
Πιστεύω ότι η python μελλοντικά θα χρησιμοποιείται σε όλο και μεγαλύτερο βαθμό, πράγμα που φαίνεται και από την ζήτησή της στην αγορά εργασίας (κυρίως βέβαια στο εξωτερικό) και στη χρήση της από εταιρίες όπως η Google. Επίσης η ταχύτητα ανάπτυξης εφαρμογών και τα επιστημονικά εργαλεία - modules, δείχνουν ότι θα είναι ένα από τα κύρια εργαλεία ανάπτυξης στις επιχειρήσεις και στον ερευνητικό τομέα τα επόμενα χρόνια!
Επιπλέον να πω ότι προβλέπω το μέλλον ακόμα πιο ανοιχτό και ελεύθερο σε όλους τους τομείς από το Software μέχρι το Hardware αλλά και σε θέματα όπως η τέχνη και διακίνηση ιδεών. Όλα αυτά μάλλον τα οφείλουμε στην επανάσταση της Πληροφορίας και το δρόμο που μας έδειξε το Internet και Open Source γενικότερα!

Εντυπώσεις από την κοινότητα;
Οι καλύτερες! χαχα
Χαίρομαι να βλέπω άτομα που μέσα από μία συλλογική προσπάθεια όπως οι TasPython, ή η κοινότητα του PatrasLUG , προσπαθούν να μεταλαμπαδεύσουν τις γνώσεις τους και να συνεργαστούν για να βγάλουν κάτι καλό. Ελπίζω μελλοντικά να δούμε την κοινότητα να επεκτείνει ακόμα περισσότερο τις δράσεις της!

import antigravity

Tue, 22/06/2010 - 12:34

Με αφορμή μια δημοσίευση στο blog του Guido van Rossum, το οποίο είναι ενεργό ξανά μετά από ένα χρόνο, ευκαιρία να δούμε ένα Easter Egg που υπάρχει στην Python 3.x και στο Google App Engine. Η Python, που είναι γνωστή για την ευκολία της, έχει μια χαρακτηριστική ανάφορά σε ένα comic του xkcd. Γράφοντας:

>>> import antigravity

εμφανίζεται το συγκεκριμένο comic.

Συνέντευξη από Απόστολο Μπέσσα

Mon, 21/06/2010 - 18:37

Ο Αποστόλης είναι ένα από τα λαμπρά μυαλά της κοινότητας μας. Έχει πολύ ισχυρό θεωρητικό υπόβαθρο αλλά και γενικότερα σφαιρική κατανόηση του αντικειμένου. Έτσι, θα τον δείτε να σας εντυπωσιάζει με τις ιδέες του ενώ να είναι και πολύ καλός στην υλοποίηση τους. Μας παρουσίασε τους Descriptors.

Ποιος είσαι;
Ονομάζομαι Απόστολος Μπέσσας. Έχω τελειώσει τη σχολή Μηχανικών Η/Υ και Πληροφορικής στην Πάτρα και έχω μεταπτυχιακό από την ίδια σχολή στην Επιστήμη και Τεχνολογία των Υπολογιστών.

Τι παρουσίασες;
Η παρουσίασή μου αφορούσε τη χρήση των descriptors στην Python. Οι descriptors αποτελούν ένα εργαλείο που, χρησιμοποιούμενο σωστά, βοηθάει στην παραγωγή κομψότερου κώδικα. Είναι ένα παράδειγμα της απλότητας της Python ως προς την υλοποίηση και χρήση και ταυτόχρονα της δύναμης της ως γλώσσα.

Χρησιμοποιείς την Python για...
Τα πάντα :) Εντάξει, σχεδόν τα πάντα. Από scripting μέχρι GUI και web applications.

Τι σου αρέσει στην Python;
Η απλότητα της γλώσσας (και σαν υλοποίηση) και οι δυνατότητες που σου παρέχει. Επίσης, ότι το whitespace είναι σημαντικό! Κάνει πολύ εύκολο το διάβασμα κώδικα γραμμένου σε Python.

Τι δεν σου αρέσει;
Η ταχύτητα εκτέλεσης (όχι ότι πλέον είναι τόσο σημαντικό). Πόσο χρόνο θα πάρει μέχρι να μπορούμε να χρησιμοποιήσουμε τις 3.x εκδόσεις.

Τι εξελίξεις προβλέπεις;
Με την υποστήριξη της google, λογικά θα δούμε σύντομα ακόμη σημαντικότερες βελτιώσεις της ταχύτητας εκτέλεσης προγραμμάτων γραμμένων σε Pyhton. Η μετάβαση στην ανάπτυξη web applications θα δώσει μεγαλύτερη ώθηση στη χρήση της, καθώς τα μειονεκτήματά της δεν έχουν τόση σημασία σε τέτοια use cases. Projects όπως το django και το turbogears, αλλά και λιγότερα γνωστά που αφορούν με οποιοδήποτε τρόπο την ανάπτυξη διαδικτυακών εφαρμογών, θα παίζουν όλο και σημαντικότερο ρόλο.

Εντυπώσεις από την κοινότητα;
Πολύ καλή και με αρκετά μέλη. Τα παιδιά είναι ακούραστα!

Συνέντευξη από Παντελή Βικάτο

Sun, 20/06/2010 - 19:12

Ο Παντελής είναι ένα από τα παιδιά που δεν έχασε ούτε μια συνάντηση μας! Πέρα από αυτό, μας βοήθησε κάνοντας δυο πολύ ενδιαφέρουσες παρουσιάσεις:
1. Spam filtering in Python
2. Bioinformatics: Programming in Python
Επίσης παίζει πολύ καλό μπάσκετ! Μπορείτε να τον θαυμάσετε (δυστυχώς από κάρφωμα δεν έχουμε βίντεο) εδώ.

Ποιος είσαι;
Βικάτος Παντελής φοιτητής του τμήματος Μηχ. Η/Υ & Πληροφορικής. Συμμετείχα στην TasPython με δυο παρουσιάσεις και δεν έχασα καμία από τις συναντήσεις μας. Τα ενδιαφέροντα μου είναι η ανάπτυξη εφαρμογών, κατασκευή ιστοσελίδων, ανάκτηση πληροφορίας, εξόρυξη δεδομένων, pattern recognition, bioinformatics και επεξεργασία φυσικής γλώσσας.

Τι παρουσίασες;
Στην Taspython συμμετείχα με δύο παρουσιάσεις με τίτλους "Spam filtering with python" και "Bioinformatics programming in Python". Η πρώτη ξεκίνησε ως μια προσπάθεια να μετατρέψω ένα project που είχα υλοποιήσει για ένα μάθημα επιλογής σε Python γνωρίζοντας τα πλεονεκτήματα και τα έτοιμα εργαλεία που σου προσφέρει η Python.
Μέσα σε αυτό το πλαίσιο ανακάλυψα το module NLTK το οποίο περιέχει ό λες τις δυνατότητες για επεξεργασία φυσικής γλώσσας καλώντας απλώς υλοποιημένες συναρτήσεις και το module BeautifulSoup το οποίο χρησιμοποιείται για parsing Html και Χml αρχείων. Όπως ανέφερα και στην παρουσίαση μου η διαδικασία του spam filtering ανάγεται στο πρόβλημα document categorization οπότε και ανέλυσα όλους τους τρόπους με τους οποίους μπορεί να αντιμετωπιστεί και μίλησα ειδικότερα για την μέθοδο εποπτευόμενης μάθησης NaiveBayes που χρησιμοποίησα στην υλοποίηση. Αυτό που πιστεύω έκανε ιδιαίτερη εντύπωση στην συγκεκριμένη παρουσίαση ήταν η σύνδεση της θεωρίας με την πράξη και η αντιμετώπιση ενός πρακτικού προβλήματος με την χρήση της Python με πολύ καλή απόδοση και λίγες γραμμές κώδικα.
Η δεύτερη ξεκίνησε με μια έρευνα στο google με το ερώτημα: “Bioinformatics & Python “ μέσα στις πρώτες επιλογές ανακάλυψα το module Βiopython με ένα πλήρη οδηγό χρήσης και πολλά παραδείγματα. Αμέσως διαπίστωσα τις ευκολίες αλλά και τις πολλές δυνατότητες που μπορεί να προσφέρει στα άτομα που ασχολούνται με βιοπληροφορική. Η επιβεβαίωση του παραπάνω ισχυρισμού μου ήρθε από τους ίδιους του προγραμματιστές οι όποιοι χρησιμοποιούν ως επί των πλείστων το Biopython module σε αντίθεση με άλλα πακέτα όπως το BioJava και το BioPerl. Στην παρουσίαση έγινε αναφορά σε θέματα διαχείρισης συμβολοσειρών, διαδικασίες parse - read - write βιολογικών αρχείων με διάφορα formats, αναζήτηση από online βάσεις δεδομένων, χρησιμοποίηση WebServices και σε διάφορα πιο ειδικά θέματα. Οφείλω να σημειώσω ότι με αυτή την παρουσίαση πολλοί από τους παρευρισκομένους είχαν την πρώτη τους επαφή με την βιοπληροφορική και κατανόησαν τους τρόπους αντιμετώπισης των διάφορων προβλημάτων που σχετίζονται με την υπολογιστική βιολογία.

Χρησιμοποιείς τη Python για...
Χρησιμοποιώ την Python για προγραμματισμό εφαρμογών και ως βοηθητικό εργαλείο για επιστημονικούς σκοπούς όπως για bioinformatics, pattern recognition, data mining και επεξεργασία φυσικής γλώσσας.

Τι σου αρέσει στη Python;
Η Python είναι σχετικά μια εύκολη γλώσσα ως προς την εκμάθηση και την αναγνωσιμότητα. Μπορείς να γράψεις κάποια εφαρμογή με οποιοδήποτε προγραμματιστική μέθοδο δηλαδή scripting, C-like ή object-oriented. Σε απαλλάσσει από το άγχος της χρησιμοποίησης παράξενων σύμβολων (~=, , eq, '\n', {}...) και σε αναγκάζει με την χρήση των tabs να δομήσεις σωστά τον κώδικά σου. Ο ορισμός των μεταβλητών και η διαχείριση της μνήμης που σε άλλες γλώσσες αποτελεί καταναγκαστικό έργο και βραχνάς στην Python απλά δεν σε απασχολεί. Επίσης η Python συνεργάζεται άψογα με άλλες γλώσσες προγραμματισμού και είναι cross platform.

Τι δεν σου αρέσει;
Αρνητικά στην Python υπάρχουν όπως και σε κάθε άλλη γλώσσα. Ειδικότερα στις scripting γλώσσες το θέμα της ταχύτητας εκτέλεσης και της απόδοσης είναι ένα ζήτημα. Επίσης η ανυπαρξία ενός σύγχρονου IDE για την δημιουργία γραφικών εφαρμογών αποτελεί ένα σημαντικό μειονέκτημα. Όσον αφορά στο multithreading προγραμματισμό τα προβλήματα ελπίζω να διορθωθούν με την νέα έκδοση της Python.

Τι εξελίξεις προβλέπεις;
Σε καιρούς οικονομικής κρίσης η χρησιμοποίηση ελεύθερου λογισμικού και γλωσσών προγραμματισμού σαν την Python αποτελεί μονόδρομο για την ανάπτυξη εφαρμογών και την συντήρηση πληροφοριακών συστημάτων.
Η Python έχει μπει πολύ δυναμικά στο web development και αποτελεί ένα εύκολο και συνάμα ισχυρό εργαλείο στην διαχείριση δυναμικών sites. Προβλέπω ότι παραδοσιακές τεχνικές διαδικτυακού προγραμματισμού όπως η PHP, ASP ίσως να περιοριστούν ή και να λησμονηθούν από την χρήση του Django.
Επίσης η Python προωθείται στον επιστημονικό τομέα κυρίως σε θέματα επιστημονικού υπολογισμού, αριθμητικής ανάλυσης με τα πακέτα SciPy και NumPy και ίσως αντικαταστήσει την Matlab που ναι έχει πολλά καλά χαρακτηριστικά αλλά είναι πανάκριβη. Επιπλέον η Python εντάσσεται στα πανεπιστημιακά τμήματα για εκπαιδευτικούς σκοπούς και σε πολλά διδάσκεται από το πρώτο έτος π.χ. MIT.

Εντυπώσεις από την κοινότητα;
Οι οργανωτές της ομάδας και συνολικά όλα τα παιδιά που συμμετείχαν με τις παρουσιάσεις, την ομαλή διεξαγωγή ακόμα και αυτοί που ασχολήθηκαν με την βιντεοσκόπηση έκαναν τρομερή δουλειά. Ήταν πρωτοποριακό για την σχολή η δημιουργία μιας τέτοιας ομάδας και νομίζω ότι υπάρχουν ακόμα ιδέες για βελτίωση και συνέχιση αυτής της προσπάθειας.