application programming interface


Δικαστής 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 αλλά ας είμασ


PhoneGap: γράψτε εφαρμογές για σχεδόν όλα τα smartphone/tablets με τεχνολογίες web 3

Σύμφωνα με πολλούς αναλυτές το άμεσο μέλλον της πληροφορικής είναι στις τεχνολογίες του web με τον συνδυασμό  της HTML 5, της JavaScript και των CSS. Από την άλλη σίγουρα υπάρχει η τάση στην αγορά για χρήση συσκευών smartphones και tablets. Άλλωστε δεν είναι τυχαία η απόφαση του Mozilla για την ανάπτυξη του Boot 2 Gecko ή B2G  που ουσιαστικά πρόκειται για μια βασική εγκατάσταση Android που θα γίνεται λειτουργική χρησιμοποιώντας εφαρμογές γραμμένες με τεχνολογίες του web και κακά τα ψέματα το Mozilla έχει παίξει καταλυτικό ρόλο στο πως βλέπουμε το internet σήμερα.

Το PhoneGap λοιπόν έρχεται να δώσει την δυνατότητα στους developers να φτιάξουν εφαρμογές για κινητά τηλέφωνα και tablets χωρίς να μπουν στην διαδικασία να γράφουν κώδικα κάθε φορά από την αρχή αλλά μια και έξω και μάλιστα με HTML 5, JavaScript και CSS. Φυσικά για να μπορέσουν οι εφαρμογές να είναι χρηστικές και να εκμεταλλεύονται όλες τις δυνατότητες της συσκευής στην οποία δουλεύετε. Οι developers του PhoneGap έχουν φροντίσει να μπορεί να έχει πρόσβαση σε δυνατότητες της συσκευής. Φυσικά λόγω της ανοιχτής φύσης του (το project είναι ανοιχτού κώδικα κάτω από διπλή άδεια τύπου MIT και “νέα” BSD) πολύ έχουν χτίσει πάνω σε αυτό και σαν συνέπεια έχουν αναπτυχθεί πολλά ενδιαφέροντα εργαλεία για developers βασισμένα στο PhoneGap.

στο cloud…

Μια πολύ ενδιαφέρουσα δυνατότητα του PhoneGap είναι το PhoneGap build service. Στόχος του είναι να προσφέρει την δυνατότητα δημιουργίας στο cloud (o Stallman -όχι και τελείως άδικα- γενικά έχει τις επιφυλάξεις του για το Cloud) έτοιμων για τα εκάστοτε markets εφαρμογών χωρίς να χρειάζεται να χρησιμοποιείτε τίποτε άλλο παρά το PhoneGap, και web τεχνολογίες. Από την άλλη αν θέλετε να φτιάξτε μόνοι σας

…ή εκτός cloud

Από την άλλη αν θέλετε οπωσδήποτε να φτιάξτε εφαρμογές εκτός του build service του PhoneGap κανένα πρόβλημα, απλά ακολουθήστε τις οδηγίες για την πλατφόρμα που σας ενδιαφέρει:

Για περισσότερες πληροφορίες ρίξτε μια ματιά στο wiki του project και ελπίζω να δούμε χρήσιμα και ενδιαφέροντα πράγματα.

Δείτε και το ενημερωτικό βιντεάκι που ακολουθεί παρακάτω για πάρετε μια ιδέα για το PhoneGap.

(more…)


Creepy: τσεκάρετε το Twitter και το Flickr για να δείτε που ήταν οι χρήστες τους 14

Ένα μήνα πριν (ίσως και περισσότερο) είχα μια συζήτηση με το κολλητό μου σχετικά με τις πληροφορίες που ο κόσμος μοιράζεται στο διαδίκτυο.  Μια τις τεχνολογίες που μου είχε κάνει περισσότερο εντύπωση είναι η χρήση των δεδομένων EXIF που προσθέτουν οι περισσότερες ψηφιακές φωτογραφικές μηχανές (ειδικά αυτές στα κινητά τηλέφωνα) και δίνουν στοιχεία ακόμη και για τις συντεταγμένες που έχει ληφθεί μια φωτογραφία. Μια αρκετά ενδιαφέρουσα σχετική μελέτη είχε δημοσιευθεί τα μέσα του Φεβρουαρίου του 2010 από το Internet Storm Center. Στην προκειμένη περίπτωση χρησιμοποιώντας ένα ειδικό script οι προγραμματιστές κατάφεραν να εξάγουν δεδομένα από περισσότερες από 15.οοο φωτογραφίες που είχαν ανέβει στο Twitpic.

Αν από την άλλη νομίζετε ότι αυτή η τεχνολογία δεν σας πολύ απασχολεί γιατί δεν σας αρέσει να βγάζετε φωτογραφίες και να τις ανεβάζετε στο διαδίκτυο ξανασκεφτείτε το. Γιατί; Βλέπετε πολλά από τα “κοινωνικά δίκτυα” που χρησιμοποιούν πολλοί από τους χρήστες του διαδικτύου (και εγώ δεν έχω ξεφύγει μην νομίζετε) μέσα στις πληροφορίες που μοιράζεται ο χρήστης πολύ συχνά υπάρχουν και στοιχεία της τοποθεσίας του. Είτε αυτό γίνεται μέσω εξειδικευμένων υπηρεσιών όπως το Foursquare είτε μέσω του ίδιου του API (Application Programming Interface) διάφορων υπηρεσιών όπως το Twitter.

Πριν λίγες ώρες είδα ένα άρθρο στο Lifehacker για το Creepy που χρησιμοποιώντας τα δεδομένα αυτά μπορεί να σας δείξει τις πληροφορίες που μοιράζεται ένας χρήστης του διαδικτύου σχετικά με την θέση του χωρίς να το γνωρίζει. Κοιτώντας λίγο αναλυτικότερα την ιστοσελίδα του στο Github πρόσεξα μια πολύ σημαντική λεπτομέρεια ο δημιουργός του ο Έλληνας προγραμματιστής που ζει στο εξωτερικό Γιάννης Κακαβάς.

Κατ’αρχάς να πούμε δύο λογάκια για το Creepy όπως λέει και ο τίτλος του άρθρου πρόκειται για ένα πρόγραμμα που βρίσκει τα σημεία που βρισκόταν ένας χρήστης του διαδικτύου και μοιράστηκε αυτές τις πληροφορίες στο διαδίκτυο. Αυτά τα σημεία τα απεικονίζει σε χάρτες από διάφορες υπηρεσίες διαδικτύου όπως το Google Maps, το Open Street Map, και το Virtual Maps. Φυσικά το Creepy είναι ελεύθερο λογισμικό…συγκεκριμένα κυκλοφορεί κάτω από την άδεια GPLv3.

Το Creepy (στην παρούσα μορφή του) μπορεί να πάρει στοιχεία τοποθεσίας από διάφορες πηγές. Πιο συγκεκριμένα:

Από το Twitter,

  • συντεταγμένες όταν κάποιος χρησιμοποιεί το Twitter από κινητό τηλέφωνο
  • από την IP του χρήστη όταν υπάρχουν δεδομένα από το Geonames.com όταν χρησιμοποιεί το Twitter μέσω web
  • από την IP του χρήστη στο περίπου όταν δεν υπάρχουν δεδομένα από εκεί (η λιγότερο ακριβής πηγή)

Πληροφορίες τοποθεσίας από το API διάφορων υπηρεσιών hosting φωτογραφιών

  • flickr – από το API
  • twitpic.com -από το API και τις πληροφορίες exif
  • yfrog.com – -από το API και τις πληροφορίες exif
  • img.ly -από τις πληροφορίες exif
  • plixi.com – από τις πληροφορίες exif
  • twitrpix.com – από τις πληροφορίες exif
  • foleext.com – από τις πληροφορίες exif
  • shozu.com – από τις πληροφορίες exif
  • pickhur.com – από τις πληροφορίες exif
  • moby.to – από το API και τις πληροφορίες exif
  • twitsnaps.com -από τις πληροφορίες exif
  • twitgoo.com -από τις πληροφορίες exif

Μερικές άλλες δυνατότητες είναι η δυνατότητα αποθήκευσης των τοποθεσιών ως kmz (ότι πρέπει για το Google Earth ή το Marble) ή csv να τις επεξεργαστείτε

Πως το εγκαθιστούμε:

Στο Ubuntu 10.10

$ sudo add-apt-repository ppa:jkakavas/creepy
$ sudo apt-get update
$ sudo apt-get install creepy

Θα το βρείτε στο μενού με τις διαδικτυακές σας εφαρμογές

Backtrack 4

Προσθέστε την γραμμή αυτή

deb http://people.dsv.su.se/~kakavas/creepy/ binary/

Στο αρχείο με τα repositories σας (βρίσκεται εδώ) /etc/apt/sources.list
Δώστε

# apt-get update
# apt-get install creepy

Έτοιμοι

(μάλιστα ο Γιάννης με ενημέρωσε ότι θα είναι στην default εγκατάσταση του Backtrack 5)

Στα Linux Mint Debian Edition που χρησιμοποιώ εγώ το εγκατέστησα από το .deb που θα βρείτε εδώ

Στα Windows μπορείτε να εγκαταστήσετε το creepy (και όλα τα αρχεία από τα οποία εξαρτάται από το .exe που θα βρείτε εδώ)

Με το που ανοίξτε το Creepy θα δείτε μια εικόνα σαν αυτή.

Ωραία πάμε στο Edit και μετά setting για να στήσουμε το Twitter μας ώστε να “μιλάει” με το Creepy εδώ θα πρέπει να κάνετε allow την πρόσβαση της εφαρμογής και θα πάρετε ένα αριθμητικό κλειδί που θα κάνετε copy paste στην κατάλληλη φόρμα. Ωραία τώρα είμαστε έτοιμοι να ψάξουμε το “στόχο” μας. Για τις ανάγκες της παρουσίασης του Creepy θα ψάξω για εμένα για να μάθω να μην ανεβάζω τις πληροφορίες μου δεξιά και αριστερά:

Στο παράδειγμα μας έδωσα το όνομα του στόχου μου (δηλαδή το δικό μου) και βρήκα αυτούς τους πιθανούς λογαριασμούς, κάνοντας διπλό κλικ στους λογαριασμούς που νομίζω ότι ταιριάζουν με αυτό που ψάχνω τα στοιχεία τους πάνε στο κατάλληλο πεδίο αυτόματα. Τώρα το μόνο που έχω να κάνω είναι να πατήσω στο κουμπί “Geolocate Target” και να περιμένω να κάνει τα μαγικά του το Creepy. Στο μεταξύ πατάω στην καρτέλα (tab επί το Ελληνικότερο) “Map View” για να δω κάτι σαν αυτό.

Στην περίπτωση του στόχου μου αν και είχε κάποια πράγματα να ψάξει δεν έχει και πάρα πάρα πολλά αντίθετα σε κάποιους χρήστες που έχουν πολλές φωτογραφίες και έχουν και πολλά Tweets, μοιράζονται τα πάντα στο Twitter όλα τους τα Tweets γίνονται μέσω κινητού τηλεφώνου κτλ κτλ καλό είναι να πάτε να φτιάξτε ένα καφεδάκι, μην σας πω να πάτε για καφέ με την παρέα σας. Τσεκάροντας τις δυνατότητες του Creepy μπήκα στην διαδικασία να τσεκάρω ένα αρκετά δημοφιλή Έλληνα χρήστη του Twitter με αποτέλεσμα το Creepy να δουλεύει για αρκετή ώρα… όταν τελείωσε όμως πραγματικά έμεινα άναυδος από τις πληροφορίες που μοίραζε το παλικάρι (σχεδόν ώρα προς ώρα και ακόμη πιο συχνά ενημέρωση για το που βρίσκοταν!!!)

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

WWIII Propaganda: Loose Tweets Sink Fleets
 

Έχει κάποια πρακτική αξία το Creepy; Ναι αν και υπάρχει η πιθανότητα να παρουσιάζει ένα χρήστη ότι βρίσκεται σε κάποιο μέρος του κόσμου που δεν είναι (πχ ένα φίλο μου που το είδαμε και μαζί τον παρουσίαζε εχθές το απόγευμα στις ΗΠΑ ενώ ήταν εντός Αττικής-και από ότι είδα αυτό οφείλεται κατά κύριο λόγω σε λάθος στοιχεία του Geonames.com, τουλάχιστον στα σενάρια που το δοκίμασα εγώ) κατά συνέπεια μπορεί να χρησιμοποιηθεί σε συνθήκες ενός σεναρίου penetration testing που επιτρέπει και διενέργεια “κοινωνικής μηχανικής” αν δεν είναι ο μοναδικός παράγοντας επιβεβαίωσης των στοιχείων σας.

 


Το 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 ακόμη περισσότερες δυνατότητες και χρήστες ή είναι μπορεί να λειτουργήσει αρνητικά στην ανάπτυξη του ελεύθερου λογισμικού;