programming


Δικαστής Alsup: Τα API της JAVA δεν έχουν copyright 2

Courtroom One GavelΠριν λίγο καιρό είχα γράψει για μια σημαντική απόφαση του Ευρωπαϊκού Δικαστηρίου που έκρινε ουσιαστικά ότι τα API (Application Programming Interfaces) ενός προγράμματος δεν μπορούν να προστατευθούν από την νομοθεσία που καλύπτει το copyright. Μπορεί στο μυαλό ενός προγραμματιστή η μη προστασία ενός API από το copyright να μην είναι κάτι καινούριο και σε ορισμένους να μοιάζει σαν στάνταρ πρακτική στην επιστήμη της πληροφορικής.

Ωστόσο η απόφαση αυτή του δικαστή Alsup στα πλαίσια της δικαστικής διαμάχης μεταξύ της Oracle και της Google επιβεβαίωσε την απόφαση του Ευρωδικαστηρίου. Το αν τελικά η Oracle θα εφεσιβάλλει την απόφαση θα εξαρτηθεί από πολλούς παράγοντες, ένας από τους οποίους είναι το ότι ο τρόπος με τον οποίο είναι γραμμένη ουσιαστικά αφήνει πολύ λίγες πιθανότητες να κερδίσει την έφεση της η Oracle από την άλλη δεν πρέπει να ξεχνούμε ότι πιθανόν το συμβούλιο των μετόχων της να μην έχει την ίδια άποψη με εμένα.

Τελικά η περίφημη δίκη Oracle εναντίων Google φαίνεται ότι ουσιαστικά θα αποφέρει ελάχιστα χρήματα στην Oracle καθώς η Google κρίθηκε ως ένοχη για μικροπαραβιάσεις της νομοθεσίας προστασίας πνευματικής ιδιοκτησίας και δεν διαπιστώθηκε καμία παραβίαση πατέντας λογισμικού από την μεριά της. Φυσικά αυτό δεν σημαίνει ότι ήρθε το τέλος των νομικών ζητημάτων του Android αλλά ας είμασ


Ευρωπαϊκό Δικαστήριο: οι δυνατότητες ενός προγράμματος και οι γλώσσες προγραμματισμού δεν μπορούν να έχουν copyright 3

ECJ, EuGH, Große Kammer, LuxemburgΤο Ευρωπαϊκό Δικαστήριο προχώρησε στην έκδοση της ακόλουθης ανακοίνωσης η οποία αρχίζει με το ακόλουθο κείμενο:

Οι λειτουργικές δυνατότητες ενός προγράμματος ηλεκτρονικού υπολογιστή και η γλώσσα προγραμματισμού δεν είναι δυνατό να προστατεύονται με το δικαίωμα πνευματικής ιδιοκτησίας.

Και συνεχίζει με την ακόλουθη διευκρίνηση:

Ο λήπτης της αδείας χρήσεως ενός προγράμματος έχει, κατ’ αρχήν, το δικαίωμα να παρατηρεί, να μελετά ή να δοκιμάζει τη λειτουργία του προγράμματος αυτού, προκειμένου να εντοπίσει τις ιδέες και τις αρχές στις οποίες αυτό στηρίζεται

Δεν ξέρω πως σας φαίνεται εσάς αλλά εμένα μου φαίνεται αρκετά ενδιαφέρουσα ως εξέλιξη, επίσης να πρέπει να τονιστεί ότι πρόεδρος του Ευρωπαϊκού Δικαστηρίου είναι ο Έλληνας δικαστής κύριος Βασίλειος Σκουρής. Η ανακοίνωση του Ευρωπαϊκού Δικαστηρίου πρόκυψε μετά την απόφαση στην υπόθεση C-406/10 SAS Institute Inc. κατά World Programming Ltd πιό συγκεκριμένα με βάση την ανακοίνωση του Ευρωπαϊκού Δικαστηρίου:

Η εταιρία SAS Institute Inc. ανέπτυξε το σύστημα SAS, ένα ολοκληρωμένο σύνολο προγραμμάτων το οποίο παρέχει στους χρήστες τη δυνατότητα να εκτελούν εργασίες επεξεργασίας και αναλύσεως δεδομένων, ιδίως στατιστικές αναλύσεις. Το βασικό συστατικό στοιχείο του συστήματος SAS καλείται Base SAS. Παρέχει στους χρήστες τη δυνατότητα καταρτίσεως και εκτελέσεως προγραμμάτων εφαρμογής (γνωστών επίσης ως «scripts»), γραμμένων στη γλώσσα προγραμματισμού SAS, τα οποία καθιστούν δυνατή την επεξεργασία των δεδομένων.
Η εταιρία World Programming Ltd (WPL) θεώρησε ότι θα υπήρχε ζήτηση στην αγορά για ένα εναλλακτικό λογισμικό ικανό να εκτελεί προγράμματα εφαρμογής γραμμένα στη γλώσσα SAS. Ως εκ τούτου, δημιούργησε το World Programming System (WPS). Το τελευταίο αναπαράγει μέρος των λειτουργιών των συστατικών στοιχείων SAS, υπό την έννοια ότι, πλην μερικών ήσσονος σημασίας εξαιρέσεων, η WPL επιχείρησε να διασφαλίσει ότι οι ίδιες εντολές (εισαγωγές δεδομένων στο σύστημα) θα συνεπάγονταν τα ίδια αποτελέσματα (παραγωγές δεδομένων). Τούτο θα παρείχε τη δυνατότητα στους χρήστες του συστήματος SAS να εκτελούν στο «World Programming System» τα scripts που δημιούργησαν για να χρησιμοποιούν με το σύστημα SAS.
Για τη δημιουργία του προγράμματος WPS, η εταιρία WPL αγόρασε νομίμως αντίγραφα της προοριζόμενης για εκμάθηση εκδόσεως του συστήματος SAS, τα οποία παρέχονταν κατόπιν λήψεως αδείας κατά την οποία τα δικαιώματα του λήπτη περιορίζονταν σε μη παραγωγικούς σκοπούς. Η WPL χρησιμοποίησε και μελέτησε τα προγράμματα αυτά για να κατανοήσει τη λειτουργία τους, αλλά τίποτε δεν επιτρέπει να θεωρηθεί ότι η WPL είχε πρόσβαση στον πηγαίο κώδικα των συστατικών στοιχείων SAS ή ότι αντέγραψε τον κώδικα αυτόν.
Η SAS Institute άσκησε αγωγή ενώπιον του High Court of Justice (Ηνωμένο Βασίλειο) ζητώντας να διαπιστωθεί ότι η WPL αντέγραψε τα εγχειρίδια και τα συστατικά στοιχεία του συστήματος SAS, προσβάλλοντας τα δικαιώματά της πνευματικής ιδιοκτησίας και παραβαίνοντας τους όρους της αδείας της εκδόσεως εκμαθήσεως. Στο πλαίσιο αυτό, το High Court ερωτά το ∆ικαστήριο ως προς το περιεχόμενο της νομικής προστασίας που παρέχει το δίκαιο της Ένωσης στα προγράμματα ηλεκτρονικών υπολογιστών και, ιδίως, αν προστασία αυτή καλύπτει τις λειτουργικές δυνατότητες και τη γλώσσα προγραμματισμού.

Με άλλα λόγια μια μικρή εταιρεία η WPL η οποίο προσπάθησε να εξομοιώσει στα προϊόντα της την γλώσσα και την λειτουργικότητα της στατιστικής σουίτας SAS. Μάλιστα για να το κάνει αυτό αγόρασε μια έκδοση της εν λόγω σουίτας (μάλιστα μια που προοριζόταν για εκπαιδευτικούς σκοπούς και δεν ήταν πλήρως λειτουργική) και μέσω αντίστροφης μηχανικής (ή reverse engineering όπως λένε και στα χωριά μας) κατάφερε να αντιγράψει τις περισσότερες λειτουργίες του προγράμματος της SAS.

To δικαστήριο στήριξε την απόφαση του στην ακόλουθη λογική.

Το ∆ικαστήριο υπενθυμίζει, πρώτον, ότι η οδηγία για τη νομική προστασία των προγραμμάτων ηλεκτρονικών υπολογιστών (Οδηγία 91/250/ΕΟΚ του Συμβουλίου, της 14ης Μαΐου 1991, για τη νομική προστασία των προγραμμάτων ηλεκτρονικών υπολογιστών (ΕΕ L 122, σ. 42)) επεκτείνει την προστασία που παρέχει το δικαίωμα πνευματικής ιδιοκτησίας σε κάθε μορφή εκφράσεως της προσωπικής πνευματικής εργασίας του δημιουργού ενός προγράμματος ηλεκτρονικού υπολογιστή (Απόφαση του ∆ικαστηρίου της 22ας ∆εκεμβρίου 2010, C-393/09, Bezpečnostní softwarová asociace.). Αντιθέτως, οι ιδέες και οι αρχές στις οποίες στηρίζεται οποιοδήποτε στοιχείο προγράμματος ηλεκτρονικού υπολογιστή, περιλαμβανομένων και εκείνων στις οποίες στηρίζονται τα συστήματα διασυνδέσεώς του, δεν προστατεύονται με δικαιώματα πνευματικής ιδιοκτησίας βάσει της οδηγίας αυτής.
Ως εκ τούτου, μόνον η έκφραση των ιδεών και των αρχών αυτών πρέπει να προστατεύεται με το δικαίωμα πνευματικής ιδιοκτησίας. Το αντικείμενο της προστασίας που παρέχει η οδηγία 91/250 αφορά το πρόγραμμα σε όλες τις μορφές εκφράσεώς του, οι οποίες επιτρέπουν την αναπαραγωγή του σε διάφορες γλώσσες προγραμματισμού, όπως ο πηγαίος και ο αντικειμενικός κώδικας.
Βάσει των σκέψεων αυτών, το ∆ικαστήριο κρίνει ότι ούτε οι λειτουργικές δυνατότητες ενός προγράμματος ηλεκτρονικού υπολογιστή ούτε η γλώσσα προγραμματισμού και ο μορφότυπος αρχείων δεδομένων που χρησιμοποιούνται στο πλαίσιο ενός προγράμματος ηλεκτρονικού υπολογιστή για την εκμετάλλευση ορισμένων λειτουργιών του συνιστούν μορφή εκφράσεως. Ως εκ τούτου, δεν προστατεύονται με το δικαίωμα πνευματικής ιδιοκτησίας.
Συγκεκριμένα, η παραδοχή ότι η λειτουργική δυνατότητα προγράμματος ηλεκτρονικού υπολογιστή μπορεί, αυτή καθεαυτήν, να τύχει προστασίας με το δικαίωμα πνευματικής ιδιοκτησίας θα συνεπαγόταν τη δυνατότητα μονοπωλήσεως των ιδεών, εις βάρος της τεχνικής προόδου και της βιομηχανικής αναπτύξεως.
Στο πλαίσιο αυτό, το ∆ικαστήριο διευκρινίζει ότι, αν ένας τρίτος αποκτήσει μέρος του πηγαίου κώδικα ή μέρος του αντικειμενικού κώδικα που αφορά τη γλώσσα προγραμματισμού ή τον μορφότυπο αρχείων δεδομένων που χρησιμοποιούνται στο πλαίσιο ενός προγράμματος και δημιουργήσει, με τη βοήθεια του κώδικα αυτού, παρόμοια στοιχεία στο δικό του πρόγραμμα, η συμπεριφορά αυτή είναι δυνατό να απαγορευθεί από τον δημιουργό του προγράμματος. Εν προκειμένω, από τις εξηγήσεις του αιτούντος δικαστηρίου προκύπτει ότι η WPL δεν είχε πρόσβαση στον πηγαίο ούτε στον αντικειμενικό κώδικα του προγράμματος της SAS Institute και δεν προέβη σε αντίστροφη μεταγλώττιση του αντικειμενικού κώδικα του προγράμματος αυτού.
Μόνο χάρη στην παρατήρηση, τη μελέτη και τη δοκιμή της συμπεριφοράς του προγράμματος της SAS Institute, η WPL αναπαρήγαγε τις λειτουργικές δυνατότητες του προγράμματος αυτού, χρησιμοποιώντας την ίδια γλώσσα προγραμματισμού και τον ίδιο μορφότυπο αρχείων δεδομένων.
∆εύτερον, το ∆ικαστήριο επισημαίνει, αφενός, ότι, κατά την οδηγία για τη νομική προστασία των προγραμμάτων ηλεκτρονικών υπολογιστών, ο αγοραστής μιας αδείας χρήσεως λογισμικού έχει το δικαίωμα να παρατηρεί, να μελετά ή να δοκιμάζει τη λειτουργία του προγράμματος, προκειμένου να εντοπίσει τις ιδέες και τις αρχές στις οποίες στηρίζεται οποιοδήποτε στοιχείο του προγράμματος. Κάθε συμβατική ρήτρα η οποία είναι αντίθετη προς το δικαίωμα αυτό είναι άκυρη.Αφετέρου, ο εντοπισμός των εν λόγω ιδεών και αρχών μπορεί να πραγματοποιηθεί στο πλαίσιο των πράξεων που επιτρέπει η άδεια.
Κατά συνέπεια, ο φορέας του δικαιώματος πνευματικής ιδιοκτησίας επί προγράμματος ηλεκτρονικού υπολογιστή δεν μπορεί να εμποδίσει, επικαλούμενος τη σύμβαση για τη χορήγηση αδείας, την εκ μέρους του λήπτη της αδείας αυτής παρατήρηση, μελέτη και δοκιμή της λειτουργίας του προγράμματος αυτού, προκειμένου να εντοπίσει τις ιδέες και τις αρχές στις οποίες στηρίζονται όλα τα στοιχεία του ως άνω προγράμματος, όταν διενεργεί τις πράξεις που καλύπτονται από την άδεια αυτή, καθώς και τις πράξεις φορτώσεως και εκτελέσεως που είναι αναγκαίες για τη χρήση του προγράμματος και υπό την προϋπόθεση ότι δεν θίγει τα αποκλειστικά δικαιώματα του φορέα του δικαιώματος πνευματικής ιδιοκτησίας επί του εν λόγω προγράμματος.
Επιπλέον, κατά το ∆ικαστήριο, το δικαίωμα πνευματικής ιδιοκτησίας δεν προσβάλλεται όταν, όπως εν προκειμένω, το πρόσωπο που έλαβε νομίμως άδεια δεν είχε πρόσβαση στον πηγαίο κώδικα του προγράμματος ηλεκτρονικού υπολογιστή, αλλά περιορίστηκε στην παρατήρηση και τη δοκιμή του προγράμματος αυτού, προκειμένου να αναπαραγάγει τις λειτουργικές του δυνατότητες σε ένα δεύτερο πρόγραμμα.
Τέλος, το ∆ικαστήριο διαπιστώνει ότι η αναπαραγωγή, σε ένα πρόγραμμα ηλεκτρονικού υπολογιστή ή σε εγχειρίδιο χρήσεως του προγράμματος αυτού, ορισμένων στοιχείων που περιγράφονται στο εγχειρίδιο χρήσεως άλλου προγράμματος ηλεκτρονικού υπολογιστή προστατευόμενο από το δικαίωμα του δημιουργού συνιστά προσβολή του δικαιώματος αυτού επί του τελευταίου εγχειριδίου, αν τα εν λόγω αναπαραγόμενα στοιχεία συνιστούν την αναπαραγωγή της εκφράσεως της προσωπικής πνευματικής εργασίας του δημιουργού του εγχειριδίου.
Συναφώς, το ∆ικαστήριο κρίνει ότι, εν προκειμένω, οι λέξεις-κλειδιά, η σύνταξη, οι εντολές, οι συνδυασμοί εντολών, οι επιλογές, οι προεπιλογές καθώς και οι επαναλήψεις αποτελούνται από λέξεις, από αριθμούς ή από μαθηματικές έννοιες τα οποία, θεωρούμενα μεμονωμένως, δεν αποτελούν καθεαυτά προσωπική πνευματική εργασία του δημιουργού του προγράμματος αυτού. Μόνο μέσω της επιλογής, της διευθετήσεως και του συνδυασμού των λέξεων, των αριθμών ή των μαθηματικών εννοιών αυτών καθίσταται δυνατό στον δημιουργό να εκφράσει το δημιουργικό του πνεύμα με πρωτότυπο τρόπο.
Στο αιτούν δικαστήριο εναπόκειται να ελέγξει αν τα στοιχεία των οποίων η αναπαραγωγή προβάλλεται στην υπόθεση της κύριας δίκης συνιστούν την έκφραση της προσωπικής πνευματικής εργασίας του δημιουργού του εγχειριδίου χρήσεως του προγράμματος ηλεκτρονικού υπολογιστή, πνευματική εργασία που προστατεύεται με το δικαίωμα του δημιουργού.

Όπως οι περισσότεροι αναγνώστες αυτού του blog γνωρίζουν δεν είμαι δικηγόρος ωστόσο πιστεύω ότι με την απόφαση του αυτή το Ευρωπαϊκό Δικαστήριο δημιουργεί ένα δικαστικό προηγούμενο που ουσιαστικά επιτρέπει το reverse engineering της λειτουργικότητας ενός προγράμματος.

Πρέπει να επισημάνω ότι μέσα στην εβδομάδα αναμένεται η απόφαση δικαστηρίου των ΗΠΑ για το αν η Google παραβίασε πνευματική ιδιοκτησία της Oracle με το Android συνεπώς το timing του Ευρωπαϊκού Δικαστηρίου δεν μπορούσε να είναι καλύτερο.


RAD: Προγραμματίστε το Arduino με Ruby

Το RAD είναι ένα framework που επιτρέπει να  προγραμματίστε το Arduino σας χρησιμοποιώντας την γλώσσα προγραμματισμού Ruby. To RAD ουσιαστικά μετατρέπει τον κώδικα που γράφετε από Ruby σε C, που μπορείτε να το κάνετε compile και να τον τρέξτε στο Arduino σας.

Ο στόχος στην περίπτωση του RAD είναι η απλοποίηση του προγραμματισμού του Arduino χρησιμοποιώντας μια υψηλού επιπέδου γλώσσα.

Πως το εγκαθιστώ;

‘Έστω λοιπόν ότι έχουμε εγκατεστημένη την Ruby στο σύστημα μας αν όχι  μπορείτε να προσθέστε το πακέτο ruby-dev και της εξαρτήσεις του (το παράδειγμα που ακολουθεί δουλεύει στις περισσότερες deb based διανομές).


sudo apt-get install ruby-dev libruby-extras

Λογικά μετά από αυτό θα μπορείτε να δώστε την εντολή

sudo gem install rad

Και (ανεύ απροόπτου) θα έχετε το rad στο μηχάνημα σας. Δίνοντας την εντολή που ακολουθεί θα δημιουργηθεί το δικό σας sketch

rad my_sketch

Η παραπάνω εντολή θα δημιουργήσει ένα φάκελο του RAD με το όνομα my_sketch με ένα κενό αρχείο στο οποίο θα γράψτε το κώδικα σας και ένα φάκελο vendor στον οποίο θα είναι όλη η υποδομή υποστήριξης του RAD.
Δίνοντας των κώδικα που ακολουθεί θα μπορούσαμε να φτιάξουμε ένα πολύ απλό hello world (σε συσκευές όπως το Arduino το αντίστοιχο του hello world είναι ένα LED που αναβοσβήνει).

class MySketch < ArduinoSketch output_pin 7, :as => :led
def loop
blink led, 500
end
end

Αφού στήσουμε το config/hardware.rb και το config/software.rb το μόνο που έχουμε να κάνουμε είναι να συνδέσουμε το Arduino μας με το USB και να δώσουμε την εντολή
rake make:upload
Αυτό ήταν, το RAD θα δημιουργήσει τον κατάλληλο κώδικα για το Arduino σας, θα ετοιμάσει και θα κάνει compile μια τοπικά εγκατεστημένη έκδοση του sketch σας, ακόμη και θα σας πει να πατήστε το κουμπάκι του reset στο Arduino σας καθώς αυτό χρειαζόταν στα παλιότερα μοντέλα και έτοιμο.

Αν θέλετε να ασχοληθείτε με το RAD λίγο περισσότερο ρίξτε μια ματιά στο κώδικα του github.

Ακολουθεί video με το παράδειγμα του helloworld στο οποίο αναφέρθηκα προηγουμένως. (ο δημιουργός χρησιμοποιεί μια παλαιότερη πλατφόρμα Arduino που χρειάζεται reset όταν ανεβάζει κανείς νέα sketch).

(more…)


OpenFest 2011 φεστιβάλ ΕΛ/ΑΚ στο TEI Πειραιά 5

Το Σαββατοκύριακο 9 και 10 Απριλίου θα γίνει στο TEI Πειραιά το OpenFest 2011. Το OpenFest είναι διοργανώνεται από σπουδαστές του Τμήματος Ηλεκτρονικών Συστημάτων και Υπολογιστών με την υποστήριξη του Εργαστηρίου Λειτουργικών Συστημάτων. Το φεστιβάλ ανοιχτού κώδικα και ελεύθερου λογισμικού του ΤΕΙ Πειραιά δεν απευθύνεται μόνο σε όσους ασχολούνται με το Ελεύθερο Λογισμικό (όπως εγώ καλή ώρα) αλλά σε οποιοδήποτε θέλει να το γνωρίσει. Στο πρόγραμμα (όπως θα δείτε παρακάτω) υπάρχουν ομιλίες και workshops ακόμη και για όσους κάνουν τα πρώτα τους βήματα στο Ελεύθερο Λογισμικό.

Αν και προσωπικά θα σας πρότεινα να πάτε σε όλες σχεδόν της ομιλίες αλλά αυτό δεν γίνεται γιατί θα υπάρχουν δύο ομιλίες ταυτόχρονα  και workshops (μπράβο ποικιλία!) συνεπώς ρίξτε μια ματιά στο πρόγραμμα (στο οποίο έχω προσθέσει links με τις προσωπικές ιστοσελίδες των ομιλητών που γνώριζα ή μπορούσα να θυμηθώ και λίγα σχετικά link):

Σάββατο 9 Απριλίου Αμφιθέατρο Χατζηνικολάου
10:00 – 10:30: Προσέλευση
10:30 – 11:00: Άνοιγμα της διοργάνωσης – Χαιρετισμοί

11:00 – 11:30: Κουδάρας Κων/νος – “Παρουσίαση της ελληνικής κοινότητας OpenSuse
11:30 – 12:00: Ιωσηφίδης Ευστάθιος – “OpenSuse: Παρουσίαση διανομής 11.4
12:00 – 12:30: Λάτσας Τάσος – “Παρουσίαση της διανομής Archlinux
12:30 – 13:00: Παπαδέας Πιέρρος: “Παρουσίαση της διανομής Fedora

13:00 – 13.30: Διάλειμμα

13:30 – 14:00: Ρουσινόπουλος Αθανάσιος-Ηλίας – “Τι είναι το EyeOS;”
14:00 – 14:45: Χρυσοχέρης Ηλίας | FreeBSD Project – “Παρουσίαση του λειτουργικού συστήματος FreeBSD και η εκδοχή του ως εναλλακτική λύση έναντι του openSolaris”
14:45 – 15:15: Γραμμένος Αλέξης – “And now what ?”

15:15 – 16:00: Μεγάλο Διάλειμμα
16:00 – 16:30: Σπύρος Γαστεράτος | Κοινότητα ΕΛΛΑΚ Πανεπιστημιου Αθηνών – “Customizing linux for academic purposes”
16:30 – 17:00: Κουδάρας Κωνσταντίνος – “Παρουσίαση της εφαρμογής SUSE Studio
17:00 – 17:30: Ευστάθιος Αγραπίδης – “Εισαγωγή στο OBS
17:30 – 18:00: Δημήτρης Παπαπούλιος | Slot it || die – Ελληνική Κοινότητα Gentoo Linux
18:00 – 18:30: Δημήτριος Ντούλας | Λέσχη Φίλων Ανοικτού Λογισμικού Κοζάνης – “Παρουσίαση προγράμματος οπτικής αναγνώρισης χαρακτήρων με υποστήριξη ελληνικών και άλλων μη λατινικών χαρακτήρων”

Αμφιθέατρο Α011
11:10 – 12:00: Πολυχρόνης Κωνσταντίνος – ” Life as an android developer”
12:00 – 12:30: Ιωάννης Τσίγκος (που είναι και γειτονάκι μου αν δεν κάνω λάθος) & Σωτήρης Χατζηαναγνώστου – “Παρουσίαση της εφαρμογής : Android n Andretta :The balcony scene”
12:30 – 13:00: Νασιώτη Μαρία & Μαρούλης Νίκος – “Παρουσίαση της εφαρμογής: Love Secret”

13:00 – 13.30: Διάλειμμα

13:30 – 14:00: Κώστας Αντονάκογλου & Κωνσταντίνος Παπαδημητρίου – “Τι είναι το arduino

14:00 – 14:50: Χατζόπουλος Μάκης | Τει Πειραιά Τμήμα Αυτοματισμού – “Πολυ-χρηστικό Αυτόνομο Όχημα Μήχατρον”

Πρόγραμμα Workshop
11:30 – 12:20: Drupal (βασική εγκατάσταση / ρυθμίσεις Drupal) part 1
12:30 – 13:20: Drupal (βασική εγκατάσταση / ρυθμίσεις Drupal) part 2
13:30 – 14:20: Drupal (βασική εγκατάσταση / ρυθμίσεις Drupal) part 314:30 – 15:20: Arduino Developing Team
15:30 – 16:30: Λυριτζής Βασίλης – Design with Open Source Softcore Processor using FPGA

Κυριακή 10 Απριλίου

11:00 – 11:30: Δρ. Βασίλειος Βλάχος & Δρ. Αλέξανδρος Παπανικολάου – “Μαθαίνοντας ασφάλεια web εφαρμογών με ΕΛ/ΛΑΚ”
11:30 – 12:00: Κωνσταντίνος Παπαπαναγιώτου (OWASP) – “Ασφάλεια στις Web εφαρμογές: Μας αφορά όλους!”
12:00 – 12:30: Θοδωρής Λιβάνης & Παναγιώτης Παπαντωνίου – “Ultimate Web Firewall – PHP Open Source Application”
12:30 – 13:00: Βικάτος Παντελής | Taspython – No more spam

13:00 – 13:30: Διάλειμμα

13:30 – 14:20: Κοινότητα drupal – “Τι είναι το drupal & social networking σε μορφή drupal – building communities.”
14:20 – 14:50: Κωνσταντίνος Παπαδημητρίου – “Η γλώσσα προγραμματισμού PHP”
14:50 – 15:35: Παναγιώτης Παπαδόπουλος – “In Ruby’s arms”
15:35 – 16:00: Jim Myhrberg – “Ruby Metaprogramming”

16:00 – 16:30: Μαρούλης Νίκος – “Live TV Streaming”

16:30 – 17:00: Διάλειμμα

17:00 – 17:50: Διονύσης Ζήνδρος & Πέτρος Αγγελάτος – “HTML5: WebGL”
17:50 – 18:20: Ιωάννης Βλαχογιάννης (GTUG) – “How to become a Googler – The OpenSource way”
18:20 – …: Απολογισμός, λήξη διημερίδας

Αμφιθέατρο Α011

11:00 – 11:30: Δημήτρης Κυριακός Αντιπρόεδρος Ένωσης Πληροφορικών Ελλάδας (Ε.Π.Ε.) – “Πληροφορική Παιδεία”
11:30 – 12:00: Γιάννης Σιάχος / Ιάσονας Παπαναγιώτου – “Εφαρμογή ΕΛΛΑΚ στην εκπαίδευση – Τομέας Εκπαιδευτικής Τεχνολογίας / ΕΑΙΤΥ, ΥΠΔΒΜΘ

12:00 – 12:20: Γιάννης Γιανναράκης – “Wikipedia: Το μεγαλύτερο ανοικτό συνεργατικό έργο στον πλανήτη και στην Ελλάδα ”
12:20 – 12.50: Hellug

12:50 – 13:30: Διάλειμμα

13:30- 14:00: Εμμανουήλ Νίνος & Ανδρέας Παπακλεοβούλου – “Ανέβασμα βάσης δεδομένων σχολικής βιβλιοθήκης υπό μορφήν καταλόγου ανοικτής πρόσβασης OPAC σε Joomla! ιστοσελίδα, με χρήση αποκλειστικά ΕΛ/ΛΑΚ”

14:00 – 14:40: Αναστάσιος Οικονομίδης – “JavaScript και SVG για τη δημιουργία διαδικτυακών διαδραστικών εργαστηρίων”
14:40 – 15:10: Μανιατοπούλου Αγγελική – “Εργαστηριακη Υποστήριξη στο Μάθημα Πληροφορικά Συστήματα Διοίκησης με Ελεύθερο Λογισμικό”

Πρόγραμμα Workshop
12:00 – 13:00: Fedora
13:00 – 14:00: Ανδρέας Βενιέρης & Αναστάσιος Στασινόπουλος | Owasp – “Hackademic Challenges”
14:00 – 15:00: Opensuse – Πως να δημιουργήσετε πακέτα για οποιαδήποτε διανομή με την χρήση του OBS
15:00 – 18:00: Εργαστηριακη Υποστήριξη στο Μάθημα Πληροφορικά Συστήματα Διοίκησης με Ελεύθερο Λογισμικό

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

Ωραίο και πλούσιο το πρόγραμμα και προσωπικά βλέπω αρκετούς αναγνώστες και φίλους του elkos.gr που θα κάνουν παρουσιάσεις (κάποιους τους γνωρίζω ήδη από κοντά κάποιοι μου έχουν ξεφύγει) όπως και αρκετά ενδιαφέρουσες παρουσιάσεις και ομιλίες από άτομα που δεν τα γνωρίζω αλλά βλέπω ότι έχουν πολύ ενδιαφέροντα πράγματα να μας δείξουν.

Πως θα πάμε εκεί; Λοιπόν αν δεν ξέρετε πως πάει κανείς στο ATEI ρίξτε μια ματιά στη σχετική σελίδα του openfest. Γενικά αν έχετε πάει στα Jumbo στην Θηβών ή στο Village Park στου Ρέντη μια χαρά θα το βρείτε ΑΤΕΙ Πειραιά.

Ελπίζω όλα να εξελιχθούν καλά μέχρι τότε και να μπορέσω και εγώ να παραβρεθώ εκεί. Μέχρι τότε ακολουθεί και σχετικό banner-άκι για όσους διατηρούν website και θέλουν να το διαδώσουν. Επίσης όσοι χρησιμοποιείτε social networks αν θέλετε μπορείτε να ρίξτε μια ματιά στο Twitter και το Facebook του OpenFest.

Όσοι το βρίσκετε ενδιαφέρων διαδώστε σε φίλους και γνωστούς.

Παρακάτω ακολουθεί ο κώδικας για το bannerάκι αν θέλετε να το βάλετε στο δικό σας website είναι στα 2oo επί 239 pixel.

<a href=”http://openfest.teipir.gr”> <img title=”OpenFest2011″ src=”http://elkos.gr/wp-content/uploads/2011/03/opefest.gif” alt=”OpenFest 2011″ />

Κλείνοντας να ευχαριστήσω τον Α. Ναυπλιώτη για την επικοινωνία εκ μέρους των διοργανωτών του OpenFest 2011 και για την δημιουργία του banner.


Βιβλίο για το parallel programming στο Linux (και όχι μόνο) 6

Σε μια συζήτηση που είχα με ένα φίλο μου κάπου μεταξύ καφέ και μπύρας είχαμε παρατηρήσει ότι αν και η πλειοψηφία τον επεξεργαστών που μπορεί να βρει κανείς στην αγορά έχει τουλάχιστον δύο πυρήνες (ίσως και περισσότερους) ελάχιστα προγράμματα εκμεταλλεύονται την παρουσία δύο πυρήνων. Αν και είμαστε και οι δύο χρήστες Linux γνωρίζουμε ότι το φαινόμενο δεν περιορίζεται στο Linux αλλά στα περισσότερα λειτουργικά συστήματα.

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

Πριν από λίγες μέρες (στις 2 του Γενάρη συγκεκριμένα) ο Paul E. McKenney υπάλληλος της ΙΒΜ στο Linux Technology Center της εταιρεία στο Beaverton και ενεργός στην ανάπτυξη του πυρήνα του Linux άρχισε ένα νέο project που μου κίνησε το ενδιαφέρον, ένα βιβλίο (e-book σε pdf για την ακρίβεια) με τίτλο “Is Parallel Programming Hard, And, If So, What Can You DoAbout It?”. Το βιβλίο είναι “ανοιχτού κώδικα” αδειοδοτημένο σύμφωνα με την άδεια Creative Commons Attribution-Share Alike 3.0 US ενώ ο κώδικας που περιγράφει το βιβλίο σε διάφορα παραδείγματα είναι GPL (v2 ή v2 ή νεότερη εξαρτάται). Μάλιστα για να μπορέσει να οργανωθεί καλύτερα το project είναι διαθέσιμο σε git (στο git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/perfbook.git), η πλέον πρόσφατη έκδοση σε pdf του βιβλίου (την ώρα που γραφόταν το άρθρο) είναι εδώ. Περισσότερα στοιχεία θα βρείτε στο blog του κύριου McKenney και στην “Σπαρτιατική” οφείλω να ομολογήσω σελίδα του project.

Στόχος του βιβλίου είναι να δώσει στους προγραμματιστές μια βασική ιδέα για το πως μπορούν να ασχοληθούν με το parallel programming χωρίς να σπάσουν τα νεύρα τους και να ξεδιαλύνει μύθους και πραγματικότητες σχετικά με το πόσο δύσκολο είναι να προγραμματίσει κανείς παράλληλα. Κάποιοι που γνωρίζουν καλύτερα τις γνώσεις μου στο προγραμματισμό που είναι τουλάχιστον ανεπαρκείς (για να μην πω ανύπαρκτες καθώς υπάρχουν βασικές έννοιες που δεν έχω κατανοήσει) ή έχουν ανάλογες αν όχι λιγότερες γνώσεις επί του θέματος ίσως αναρωτηθούν για την σκοπιμότητα της ανάρτησης αυτής. Πιστεύω, ότι η χρήση όλο και περισσότερο παράλληλου προγραμματισμού σε μια εποχή που ακόμα και ένας μέσος (για να μην πω φθηνός) επεξεργαστής έχει τουλάχιστον δύο πυρήνες (και αυτή η τάση μέρα με την μέρα διευρύνεται) μπορεί να έχει σημαντικά οφέλη και στην απόδοση και στην ποιότητα του λογισμικού που χρησιμοποιούμε στους υπολογιστές μας.


Το Direct3D 10 και 11 στο Linux; …και γιατί μας νοιάζει; 3

But It Is, Like, Right ThereΟ φίλος Σέργιος από την Θεσσαλονίκη, (aka Linuxman) από το GreekLUG με ενημέρωσε για ένα εξαιρετικό νέο. Την υλοποίηση με native κώδικα του Direct3D στις εκδώσεις 10 και 11 μέσω του Gallium3D στο Linux.

Κατ’αρχάς το Gallium3D είναι μια ανοιχτού κώδικα (άδεια MIT) βιβλιοθήκη που λειτουργεί ουσιαστικά ως διαμεσολαβητής μεταξύ του Application Programming Interface των γραφικών  και του λειτουργικού συστήματος. Πρόσφατα, μεταξύ διάφορων προσθηκών κώδικα που έγιναν στο Gallium 3D προστέθηκε η υποστήριξη Direct3D 10 και 11.

Πρώτος στόχος είναι να η υποστήριξη από το Gallium3D πολλαπλών API, και από την άλλη να παρέχεται ένα API που μπορεί να υλοποιείται απλά από το Gallium3D χωρίς τις περιπλοκότητες που χρειάζονται στην περίπτωση του OpenGL.Ο δεύτερος στόχος είναι να μπορέσουν παιχνίδια φτιαγμένα για να τρέχουν με το Direct3D 10 και 11 να τρέχουν πιο εύκολα στο Linux μέσω Wine. Τρίτος στόχος είναι η διάθεση ενός σύγχρονου API όπως το Direct3D 10 και μετά καθώς το OpenGL έχει αρχίσει και δείχνει τα χρόνια του.

Να τονίσω εδώ ότι το καλοκαίρι του 2008 η έκδοση του OpenGL 3.0 (που αναμενόταν από καιρό το Σεπτέμβριο του 2007 και με την Khronos Group που αναπτύσσει το OpenGL να μην κάνει ανακοινώσεις) έφερε κύματα απογοήτευσης σε πολλούς προγραμματιστές 3D εφαρμογών και παιχνιδιών με αποτέλεσμα πολλοί προγραμματιστές (μερικά,παραδείγματα) καθώς πολλά στοιχεία που θα δοκιμαζόταν στην περίφημη έκδοση Longs Peak (όπως ονομαζόταν κατά την φάση της ανάπτυξης του το OpenGL 3.0).

Υλοποιήσεις βασισμένες στο Gallium και στο Direct3D 10 και 11 πλέον θα είναι σε θέση να υποστηριχτούν σε λειτουργικά συστήματα όπως το Linux, το πιο αστείο είναι ότι η Microsoft δεν υποστηρίζει το Direct3D 10 και 11 στα Windows XP αλλά μόνο στα Vista και τα Windows 7.

Θα αλλάξει αυτό το τρόπο που προσεγγίζουμε το 3D στο Linux; Αυτό θα εξαρτηθεί από πολλούς παράγοντες, σημαντικό ρολό θα παίξουν οι developers του Wine αλλά και από άλλους developers ανοιχτού κώδικα. Από την άλλη πρέπει να τονιστεί ότι το project είναι πρακτικά μια ανοιχτού κώδικα υλοποίηση του API του Direct3D μέσω του Gallium3D αυτό έχει σαν αποτέλεσμα να μην πρόκειται για κλειστού κώδικα λογισμικό ωστόσο υπάρχει ένα κομμάτι του που κατεβάζει το Microsoft HLSL compiler στο σύστημα σας.

Εσείς τί λέτε; Είναι το Direct3D κάτι που θα φέρει στο Linux ακόμη περισσότερες δυνατότητες και χρήστες ή είναι μπορεί να λειτουργήσει αρνητικά στην ανάπτυξη του ελεύθερου λογισμικού;


OpenFest 2010, φεστιβάλ ανοιχτού κώδικα και ελεύθερου λογισμικού στο ΤΕΙ Πειραιά 2

Τί είναι το OpenFest 2010;
Το Σαββατοκύριακο 13 και 14 Μαρτίου θα διοργανωθεί στο ΤΕΙ Πειραιά το OpenFest 2010, πρόκειται για ένα φεστιβάλ για τον ανοιχτό κώδικα και το ελεύθερο λογισμικό. Το OpenFest 2010 διοργανώνεται από τους σπουδαστές του τμήματος Ηλεκτρονικών Υπολογιστών και Συστημάτων του ΤΕΙ Πειραιά και ο χαρακτήρας του είναι τελείως αφιλοκερδής χωρίς χορηγίες αλλά με ελεύθερη είσοδο και με την συμμετοχή πολλών ανεξάρτητων κοινοτήτων ελεύθερου λογισμικού.

Πως πάμε εκεί;
Το φεστιβάλ θα λάβει τόπο στο Αμφιθέατρο Χατζηνικολάου στις εγκαταστάσεις του ΤΕΙ Πειραιά Πέτρου Ράλλη και Θηβών 220 στο Αιγάλεω. Αν θέλετε δείτε το χάρτη που ακολουθεί ή επισκεφθείτε την αντίστοιχη σελίδα του επίσημου site του OpenFest 2010 όπου θα βρείτε και οδηγίες για το πως μπορείτε να πάτε και με τα μέσα μαζικής μεταφοράς.

Δείτε το χάρτη

Τι θα κάνουμε εκεί;
Το πρόγραμμα του φεστιβάλ:
Σάββατο 13 Μαρτίου
10:00 – 10:30: Προσέλευση
10:30 – 11:00: Άνοιγμα της διοργάνωσης – Χαιρετισμοί

1η Θεματική Ενότητα: Πνευματικά Δικαιώματα
11:00 – 11:30: Ευάγγελος Κανίδης – “Ποιόν προστατεύει η προστασία των πνευματικών δικαιωμάτων;”
11:30 – 12:00: Αντώνης Χριστοφίδης – “Κίνδυνοι από τις πατέντες λογισμικού στην Ευρώπη”
12:00 – 12:30: Κώστας Τσακάλογλου – “Ελευθερη και ανοιχτή μουσική”
12:30 – 13:00: Διάλειμμα

2η Θεματική Ενότητα: OS / Open Source
13:00 – 13:30: Linux Team ΤΕΙ Λάρισσας (Γιώργος Πορτοκάλογλου) – “The future is open”
13:30 – 14:00: Μιχάλης Ιορδανάκης – “Windows – Linux: Γεφυρώνοντας το χάσμα και περνώντας στην άλλη πλευρά”
14:00 – 14:30: Μίνος Παναγιώτης – Emi, ένα λειτουργικό σύστημα για εκπαιδευτικούς σκοπούς.
14:30 – 15:00: Σιλβέστρος Νίκος – Παπαπαναγιώτου Θεόφιλος – “Open source and free software in business”
15:00 – 16:30: Μεγάλο Διάλειμμα
16:30 – 17:00: Linux Team ΤΕΙ Λάρισσας
17:00 – 17:30: Νίκος Ευθυμίου – “Παρουσίαση της κοινότητας Ubuntu”
17:30 – 18:00: “Mandriva – διανομή και κοινότητα Mandriva ως παράδειγμα στο χώρο”
18:00 – 18:30: “Fedora – Παρουσίαση της κοινότητας”
Λήξη των ομιλιών

Κυριακή 14 Μαρτίου
3η Θεματική Ενότητα: Web / Networks / Programming
11:00 – 11:30: Κωνσταντίνος Αραβανής, Λεβεντέας Δημήτρης – “Python: Ψήνει ακόμα και καφέ!”
11:30 – 12:00: Λεβεντέας Δημήτρης, Κωνσταντίνος Αραβανής – “Πώς από καφέ παράγεις κώδικα!”
12:00 – 12:30: Διάλειμμα
12:30 – 13:00: “Web2Py – Next Generation Python Web frameworks”
13:00 – 13:30: Γαλιατσής Σωκράτης – AWMN & OpenSource
13:30 – 14:00: Παπαπαναγιώτου Θεόφιλος – Σιλβέστρος Νίκος – “LTSP: ο παλιός εξοπλισμός δεν είναι για πέταμα!”
14:00 – 15:30: Μεγάλο Διάλειμμα
15:30 – 16:00: Γιάννης Βλαχογιάννης – “OpenShare – Hybrid Ad Network for Opensource projects running in Google”
16:00 – 16:30: Rails Team – “Rubly On Rails – diving into Rails”
16:30 – 17:00: Κωνσταντίνος Αραβανής – “Mercurial”
17:00 – 17:30: Μάρκος Γώγουλος – “A complete web radio system powed by open source”
17:30 – … : Απολογισμός, λήξη διημερίδας, εορταστικές εκδηλώσεις και πάρτυ

Παράλληλες Εκδηλώσεις
Σάββατο 13/03:
11:00 – 12:00: Δημήτρης Μαρίνος – Νίκος Βλησίδης – “In Cabin health monitoring application”(Παράλληλη ομιλία, στην αίθουσα Ε24)
Κυριακή 14/03:
11:00 – 11:30: Οικονομίδης Αναστάσιος (Αυτοματιστές ΤΕΙ Πειραιά) – “Η χρήση της τεχνολογίας SVG για τη δημιουργία διαδραστικών εφαρμογών”

Ειδικά εάν τύχει και παρευρεθείτε ελπίζω να καταφέρουμε να τα πούμε και από κοντά!


μάθετε προγραμματισμό γράφωντας τα δικά σας παιχνίδια στην Python 1

Αν έχετε αρκετό ελεύθερο χρόνο και πάνω από όλα όρεξη να μάθετε προγραμματισμό  σε Python μην διστάστε να διαβάστε το Invent Your Own Computer Games with Python, πρόκειται για ένα εξαιρετικο βιβλίο των εκδόσεων Ο’Reilly για που καθοδηγεί τον απλό χρήστη βήμα-βήμα σε όλες τις διαδικασίες από την εγκατάσταση της Python 3 μέχρι την δημιουργία ενός ολοκληρωμένου παιχνιδιού με γραφικό περιβάλλον κτλ. Το βιβλίο πλέον είναι διαθέσιμο ολόκληρο σε μορφή PDF και HTML κάτω από την άδεια Creative Commons -Non Commercial – Share Alike

Φυσικά το παιχνίδι σας δεν πρόκειται να είναι το καινούριο Word of Warcraft αλλά από την άλλη σίγουρα θα είναι μια αρκετά καλή ευκαιρία να εξοικοιωθείτε λίγο με την Python αλλά και με το προγραμματισμό παιχνιδιών.

Παρακάτω ακολουθεί βίντεο με το παιχνίδι Reversi που είναι ένα από τα παιχνίδια που υπάρχουν ως παραδείγματα στο Βιβλίο:


η γλώσσα προγραμματισμού Go

το λογότυπο της Go

το λογότυπο της Go

Εδώ και λίγες ημέρες έχει κάνει την εμφάνιση της μια νέα γλώσσα προγραμματισμού με το όνομα Go. Πίσω από αυτή την πρωτοβουλία είναι το πανταχού παρών πλέον Google, όπως πολλές από τις υπηρεσίες του Google που χρησιμοποιούμε έτσι και αυτή άρχισε στα πλαίσια του ελεύθερου χρόνου κάποιον μηχανικών (το 20% του χρόνου εργασίας των υπαλλήλων της Google διατίθεται για να φτιάξουν ελεύθερα ότι project θέλουν) και μάλιστα διατίθεται κάτω από άδεια BSD.

Όπως και με πολλές σύγχρονες γλώσσες προγραμματισμού έτσι και με τη Go το αποτέλεσμα είναι μια γλώσσα προγραμματισμού που μοιάζει πολύ με την C και έχει στοιχεία αντικειμενοστραφούς προγραμματισμού. Υπάρχουν δύο native compilers o 6g και ο 8g (για αρχιτεκτονικές 64-bit και x86) επίσης εναλλακτικά υπάρχει ο Gccgo που είναι βασισμένος στο GCC. Που αν και δεν είναι τόσο γρήγορος στο compiling θεωρείται ότι βγάζει πιο αποδοτικό κώδικα.

Επιγραμματικά η Go φαίνεται ότι αρχικά προσπαθεί να επιταχύνει την διαδικασία του compiling, ειδικά σε ορισμένα προγράμματα μια τέτοια διαδικασία μπορεί να πάρει πάρα πολύ χρόνο, επίσης από ότι φαίνεται η νέα γλώσσα θα garbage collector που αν και για εμάς τους απλούς χρήστες δεν φαίνεται πολύ σημαντική ως δυνατότητα όμως αποτελεί βασικό εργαλείο για να γλυτώσουμε από διάφορα memory leaks και σχετικά bugs στο λογισμικό μας. Επίσης η Go έχει κύριο στόχο να είναι μια γλώσσα που θα χρησιμοποιείται για την δημιουργία συστημάτων όπως πχ servers (είναι χαρακτηριστικό ότι ο Web Server πάνω στον όποιο είναι στημένο το επίσημο site της Go είναι γραμμένο με την νέα γλώσσα) όμως επιχειρεί να λειτουργήσει και ως μια general programming γλώσσα όπως η C ή C++.

Κλείνοντας θα ήθελα να παραθέσω ένα PDF με την παρουσίαση που έκανε ο Rob Pike στο Google καθώς και ένα βιντεάκι παρακάτω με την εν λόγω παρουσίαση με διάρκεια περίπου μια ώρα.

(more…)