JavaScript


Πως να φτιάξτε ένα απλό add-on για Firefox και Chrome

Πριν λίγο καιρό έφτιαξα ένα απλό add-on για Firefox και Chrome/Chromium ώστε να μπορεί να τσεκάρει κανείς από τον desktop browser του αν είναι ανοιχτό το hackerspace της Αθήνας. Παρακάτω θα γράψω επιγραμματικά πως το έφτιαξα. Φυσικά, ο κώδικας του add-on είναι διαθέσιμος κάτω από άδεια ελεύθερου λογισμικού.

Πρώτα πριν μπούμε στην διαδικασία να εξετάσουμε την ίδια την λειτουργικότητα του add-on.

Έχουμε ένα φυσικό χώρο, το hackerspace της Αθήνας (yeaheee!). Αυτός ο χώρος ουσιαστικά ανοίγει όποτε έχουμε κάποιο event ή είναι κάποιος από τους διαχειριστές του εκεί. Πως θα μπορούσαμε να γνωρίζουμε πότε είναι ανοιχτός εκτός event;

 

To hackerspace στην αρχική του σελίδα στο web έχει ένα “counter” που δείχνει αν και κατά πόσο ο χώρος αυτός είχε ανοίξει για επισκέπτες. Πως όμως το κάνει αυτό;  Το hackerspace όπως τα περισσότερα hackerspace του κόσμου ακολουθεί ένα πρωτόκολλο που λέγεται SpaceAPI αυτό μας δίνει τις απαραίτητες πληροφορίες για το αν είναι ανοιχτό. Το SpaceAPI είναι ένα output τύπου JSON (Javascript Object Notation), ένα από τα ωραία χαρακτηριστικά του είναι ότι είναι εύκολο για τους ανθρώπους να το διαβάσουν και εύκολο για τις μηχανές να το παράγουν και να το καταλάβουν.

Ωραία αν πάμε λοιπόν στο SpaceAPI του hackerspace θα δούμε κάτι σαν αυτό.

    "state": {
        "open": false,
        "lastchange": 1483908306,
	"message": "0 hacker(s) in space"
    },

Από εκεί έχουμε τις ακόλουθες πληροφορίες σύμφωνα με το documentation του SpaceAPI, πρώτον αν είναι όντως ανοιχτό το hackerspace και δεύτερον ένα μήνυμα που στην περίπτωση του hackerspace της Αθήνας μας λέει πόσα άτομα είναι μέσα. Πολύ ωραία… φαίνεται λοιπόν ότι μπορούμε να έχουμε αρκετές πληροφορίες για να φτιάξουμε το add-on μας σχετικά εύκολα. Για να δούμε όμως πως θα το κάνουμε.

Ο αρχικός μου σκοπός ήταν να δημιουργήσω ένα add-on για τον Firefox καθώς εδώ και αρκετά χρόνια είναι ο browser που προτιμώ. Μια εξαιρετική πηγή πληροφορίας για τις web τεχνολογίες είναι το Mozilla Developer Network ή MDN το οποίο έχει ένα σωρό πληροφορίες. Σύμφωνα με το σχετικό άρθρο, στον Firefox έχουμε διάφορα εργαλεία και τρόπους για να φτιάξουμε ένα add-on.

Στην περίπτωση μας ποιο είναι το βέλτιστο εργαλείο για την δημιουργία ενός add-on; Διαβάζοντας στην συνέχεια διαπιστώνουμε ότι από το τέλος του 2017 και μετά τα WebExtensions θα είναι το στάνταρ εργαλείο για την δημιουργία add-on, επίσης ένα από τα θετικά τους είναι ότι είναι φτιαγμένα για να δουλεύουν με το ίδιο πρακτικά κώδικα στους περισσότερους σύγχρονους browser όπως o FIrefox, ο Chrome, ο Edge και ο Opera.

Πρακτικό ακούγεται για να δούμε πόσο εύκολο είναι. Ουσιαστικά πρόκειται για μια συλλογή από αρχεία που περιγράφονται από ένα manifest.json και αυτά ουσιαστικά μπορεί να είναι html ή js που κάνουν χρήση κάποιον API του browser. Από ότι φαίνεται, έχουμε και τα απαραίτητα εργαλεία για να φτιάξουμε το αρχείο μας και να το δοκιμάσουμε. Ένα text-editor και ένα browser. Καλό είναι να τα έχουμε όλα μαζεμένα σε ένα directory ξεχωριστό στο οποίο θα τα δουλέψουμε.

Για να τα βάλουμε σε μια σειρά, θέλουμε να φτιάξουμε ένα add-on που θα έχει ένα εικονίδιο, στο background θα τρέχει ένα loop ελέγχου που θα τσεκάρει το JSON του hackerspace και θα μας λέει αν είναι ανοιχτό, και μιας και οι φανταστικοί sys-admin του hackerspace μας λένε πόσο κόσμο έχει μέσα θα δείχνουμε και αυτό, επίσης θα προσθέσουμε λειτουργικότητα ώστε όταν κάνουμε κλικ πάνω στο εικονίδιο να μας δείχνει το κεντρικό site του hackerspace.

Διαβάζοντας λοιπόν το εκτενές documentation που έχουμε θα πρέπει το manifest.json μας να μοιάζει κάπως έτσι.

{
    "description": "Adds a browser icon that shows if hackerspace.gr is open, it displays a counter of people inside.",
    "manifest_version": 2,
    "name": "hsgr-status-checker",
    "version": "0.1.6",
    "homepage_url": "https://hackerspace.gr",
    "icons": {
        "32": "icons/hsgr-32.png"
    },
    "applications": {
        "gecko": {
            "id": "elkos@hackerspace.gr",
            "strict_min_version": "45.0"
        }
    },
    "background": {
        "scripts": ["jquery.js", "background.js"]
    },
    "browser_action": {
        "default_icon": "icons/hsgr-32.png",
        "default_title": "hsgr status",
        "default_popup": "popups/popup.html"
    }
}

Δηλαδή περιγράφουμε το add-on στο “description”, η έκδοση του manifest (υπάρχουν και παλαιότερες στο Chrome), το όνομα του add-on στο “name”, η ιστοσελίδα του στο “homepage_url” (έβαλα το αρχικό website), ένα εικονίδιο για το UI (μπορείτε να βάλτε περισσότερα αν θέλετε), το “applications” ορίζει σε πια έκδοση του gecko (της μηχανής του Firefox θα παίζει έβαλα πάνω από 45 για να μην έχουμε θέμα με παλαιότερες εκδώσεις που δεν υποστηρίζουν όλα τα API), και δύο αρχεία στο “background” το ένα είναι η βιβλιοθήκη jquery.js για να μπορώ να δουλέψω άνετα με το JSON API, και το background.js που θα είναι ο κώδικας που τρέχει στο background. Επίσης λέω ότι θέλω να βάλω ένα εικονίδιο στο browser που θα το βρούμε εκεί, και θα έχει αυτό το τίτλο και όταν πατάς το εικονίδιο βγάζει ένα popup που το βρίσκει στο /popups/popup.html αρχείο.

Τί θα βάλω όμως στο background.js μου;  Πρώτα θα ορίσω το doorAPI που θα το βρώ;

var doorURL = 'https://www.hackerspace.gr/spaceapi';

Ωραία, τώρα θα φτιάξουμε ένα function που θα τσεκάρει η jquery με ένα απλό GET το σημείο που είναι το SpaceAPI.

function checker() {
    $.ajax({
         type: 'GET',
         url: doorURL,
         dataType: 'json',

Στην περίπτωση που αυτό δουλεύει λοιπόν τσεκάρουμε αν το hackerspace είναι ανοιχτό:

success: function(data) {
    if (data.state.open) {

Τώρα λοιπόν θα αλλάξουμε τον τίτλο του εικονιδίου ώστε να δείχνει ότι είναι ανοιχτό και πόσο κόσμο έχει μέσα, μετά αλλάζουμε το εικονίδιο (το αντικαθιστούμε με ένα πράσινο) και προσθέτουμε και ένα badge που τον αριθμό των hacker που μας δίνεται από το “state.message”. Ο αριθμός προκύπτει ουσιαστικά χρησιμοποιώντας regular expressions ώστε να μας βγάζει μόνο τα νούμερα το output, με αποτέλεσμα να έχουμε κάτι που μοιάζει με αυτό. Επίσης ορίζω το χρώμα του background του badge ως #808080 ή γκρι σκούρο για να μην βγάζει μάτι.

                 chrome.browserAction.setTitle({title: 'HSGR is open with ' + (data.state.message).replace(/\D/g, '') + ' hackers'});
                 chrome.browserAction.setIcon({path: 'icons/openhsgr-32.png'});
                 chrome.browserAction.setBadgeText({text: (data.state.message).replace(/\D/g, '')});
chrome.browserAction.setBadgeBackgroundColor({color: '#808080'});

Στην περίπτωση που το hackerspace δεν είναι ανοιχτό τότε θα αλλάξουμε το τίτλο, θα αλλάξουμε το icon στο μαύρο, και δεν θα έχουμε badge κείμενο.

             } else {
                 chrome.browserAction.setTitle({title: 'HSGR is closed'});
                 chrome.browserAction.setIcon({path: 'icons/hsgr-32.png'});
                 chrome.browserAction.setBadgeText({text: ''});

Αν τώρα το αφήσουμε έτσι θα παίξει μια φορά και αυτό ήταν, εγώ θέλω να λειτουργεί σχετικά τακτικά. Θα βάλουμε λοιπόν ένα interval για να παίζει μια φορά κάθε 15 λεπτά.

checker();
setInterval(checker, 15 * 60 * 1000);

Ωραία με το background θα πρέπει να είμαστε OK. Όσο αφορά το popup τώρα, είπα να ακολουθήσω την πλέον εύκολη και άσχημη λύση του iframe.

<html>
<head>
  <style type="text/css">
	  body {width:500px; height:500px;}
  </style>
</head>
<body>
  <iframe src="https://www.hackerspace.gr" width="100%" height="100%" frameborder="0"></iframe>
</body>
</html>

Μέχρι εδώ καλά, πως θα το δοκιμάσω όμως; Πάμε στο about:debugging του Firefox πατάμε εκεί που λέει “Load Temporary Add-on” και ανοίγουμε οποιοδήποτε αρχείο μέσα στο directory του add-on που φτιάξαμε πχ το manifest.json. Φαίνεται να δουλεύει.

Τώρα, πως το δίνουμε στο κόσμο; Πρώτα πρέπει να ετοιμάσουμε το αρχείο μας. Δημιουργούμε ένα αρχείο .zip. Στο Linux σε γραμμή εντολών αυτό το κάνουμε ως εξής:

Πρώτα “πάμε” στο κατάλογο που έχουμε τα αρχεία του add-on μας όπου φυσικά path/to/my-addon/ το directory με τα διάφορα αρχεία του προγράμματος.

cd path/to/my-addon/

Και μετά δίνουμε την εντολή

zip -r ../my-addon.zip *

Θα δημιουργηθεί ένα νέο αρχείο zip το my-addon.zip.

Για το add-on gallery του Mozilla πάμε στο addons.mozilla.org και ανεβάζουμε το αρχείο μας, αφού γίνει ένα βασικό check από διάφορα scripts ελέγχου τότε ανεβαίνει για review. Αυτό ουσιαστικά σημαίνει ότι ο κώδικας μας τσεκάρεται από κάποιο εθελοντή του Mozilla, επιβεβαιώνεται η ορθή λειτουργία του και συνιστούνται καλές πρακτικές, στο σημείο αυτό ελέγχεται και η πιθανή παρουσία κακόβουλου κώδικα. Αυτό στην περίπτωση μου σήμαινε 3-4 μέρες αναμονής.

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

Θα μου πείτε, και τί έγινε; Στην περίπτωση του Chrome ανεβαίνει ποιο γρήγορα χωρίς γραφειοκρατεία. Σωστά; Όχι ακριβώς. Μπορεί ένας “κακόβουλος” developer να βάλει κώδικα που ελέγχει η παρουσία του χρήστη online ή ακόμη και να εκμεταλλευτεί πολλές από τις δυνατότητες του browser.

Θεωρώ, ότι ως πρακτική η επιλογή του Mozilla να ελέγχει το κώδικα που τρέχουν τα add-on αν και πιο χρονοβόρα είναι τουλάχιστον για εμάς τους χρήστες η πλέον ορθή πρακτική.

Όλα αυτά δεν θα τα κατάφερνα χωρίς την βοήθεια, και την καθοδήγηση μελών και επισκεπτών του hackerspace που με βοήθησαν. Κλείνοντας να υπενθυμίσω πως δεν είμαι επαγγελματίας του χώρου της πληροφορικής, ως εκ τούτου ο οδηγός αυτός πιθανότατα περιέχει σφάλματα και ανακρίβειες.


intrael ανοιχτού κώδικα computer vision για το web

Πριν λίγα χρόνια (περίπου 2.5 χρόνια πριν) είχα παρουσιάσει το infrael. Ένα project του Γιάννη Γραβέζα που είχε σαν στόχο την να μετατρέπει οποιαδήποτε οθόνη σε οθόνη αφής. Πριν λίγες ημέρες βρέθηκα με το Γιάννη στο hackerspace.gr που μας παρουσίασε το νέο του project το intrael.

Στο infrael ο Γιάννης χρησιμοποιούσε το Wiimote και μια πηγή υπέρυθρων για να μετατρέψει σε οθόνη αφής οποιαδήποτε επιφάνεια. Στο  intrael χρησιμοποιεί το Kinect της Microsoft και τον ανοιχτό drivers του Open Kinect (και μερικά παραδείγματα του τι έχει φτιαχτεί με αυτόν)  για να φτιάξει ένα μικρό server που έχει σαν στόχο να επεξεργάζεται το stream βάθους που δίνει το Kinect, να εντοπίζει αντικείμενα, και να μετρά κάποιες από τις ιδιότητες του. Τα δεδομένα αυτά για κάθε καρέ μεταδίδονται μέσω HTTP επίσης παρέχει δεδομένα από την κάμερα του Kinect ως στατικές JPEG εικόνες είτε ως κινούμενο MJPEG. Στόχος του project είναι να δώσει σε web developers την δυνατότητα να αναπτύσσουν εφαρμογές computer vision χρησιμοποιώντας Javascript και HTML. Επειδή το intrael χρησιμοποιεί για επικοινωνία το πρωτόκολλο HTTP μπορούν να γραφτούν εφαρμογές για αυτό σε οποιαδήποτε γλώσσα (πχ PHP). To intrael μπορεί έχει δοκιμαστεί σε Linux και Windows και μπορεί να τρέξει και σε Mac αν και δεν έχει δοκιμαστεί.

Οι πρώτες εφαρμογές που μπορώ να σκεφτώ είναι διαδραστικά setup από καλλιτέχνες, διαδραστικές διαφημίσεις, διαδραστικοί πίνακες σε σχολεία και μάλιστα συνδεδεμένοι μεταξύ τους κτλ. Αν θέλετε ρίξτε μια ματιά στην γρήγορη παρουσίαση που έκανε ο Γιάννης στο hackerspace.gr. Συγχωρέστε με για την ποιότητα του video αλλά εκείνη την ώρα ήταν η μόνη διαθέσιμη κάμερα 😀

Περισσότερα video με το instrael σε δράση μπορείτε να βρείτε εδώ.

Ελπίζω να βρείτε το project ενδιαφέρον και αν μαζευτούμε ίσως μπορέσουμε να κανονίσουμε ένα workshop στο hackerspace.gr ώστε να κάνουμε hands on δοκιμές και γιατί όχι να γράψουμε κώδικα που θα το εκμεταλλεύεται.


WebODF: διαχειριστείτε αρχεία ODF στις web εφαρμογές σας 3

Σίγουρα πολλοί χρήστες του διαδικτύου γνωρίζουν ότι υπάρχουν online εφαρμογές γραφείου όπως το Google Docs, το Zoho Writer και το Microsoft Office Web Apps είναι μερικά παραδείγματα.

Τι θα λέγατε όμως αν και η δικές σας εφαρμογές μπορούσαν να υποστηρίξουν αρχεία ODF που αποτελούν διεθνή βιομηχανικά standard και χρησιμοποιείται ταυτόχρονα από πολλές εφαρμογές όπως το OpenOffice.org και το LibreOffice;

Η WebODF είναι μια ανοιχτού κώδικα (κάτω από άδεια AGPL) βιβλιοθήκη γραμμένη σε Javascript και το κάνει αυτό χρησιμοποιώντας HTML και CSS. Στην παρούσα φάση η WebODF μπορεί να χρησιμοποιηθεί με τέτοιο τρόπο ώστε ένα αρχείο ODF να φαίνεται (σχεδόν) όπως θα εκτυπωθεί χωρίς να χρειάζεται η χρήση μιας σουίτας γραφείου. Παράλληλα δίνεται η δυνατότητα να κάνετε παρουσιάσεις μέσα από την ίδια την web εφαρμογή σας χωρίς να χρειάζεται η εγκατάσταση λογισμικού. Επίσης ανάλογη υποστήριξη υπάρχει και για υπολογιστικά φύλλα (spreadsheets κατά το κοινός λεγόμενο ή Excelώφυλλα (!!!!!)).

Φυσικά δεν θέλει πολύ σκέψη να σκεφτεί κανείς ότι την βιβλιοθήκη WebODF μπορεί κανείς σχετικά εύκολα να την χρησιμοποιήσει και στις περισσότερες πλατφόρμες κινητής τηλεφωνίας (πχ με εργαλεία όπως το PhoneGap που επιτρέπει την ανάπτυξη εφαρμογών για smartphone/tablets με HTML,Javascript και CSS). Μάλιστα ήδη υπάρχει μια εφαρμογή ανάγνωσης αρχείων ODF βασισμένη στο WebODF στο Android Market.

Η WebODF ακριβώς επειδή χρησιμοποιεί καθαρή Javascript χωρίς εξωτερικές εξαρτήσεις μπορεί να λειτουργήσει άνετα στην πλειοψηφία των σύγχρονων browser, αλλά και μπορεί να δουλέψει με όλα τα frameworks ανάπτυξης web εφαρμογών (και όχι μόνο).

Αν θέλετε μπορείτε να ρίξτε μια ματιά και στο video που ακολουθεί. (more…)


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…)


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.


Φωνητική αναζήτηση στο Chrome… σε Windows, Mac και Linux!

Ένα θεαματικό εργαλείο πρόσθετο για τον Chrome και μάλιστα κάτω από την MIT License μου έκανε πολύ εντύπωση είναι το Voice Search, ψαχουλεύοντας λίγο στο web store όταν πρωτοείδα το συγκεκριμένο add-on να πω την αλήθεια σκέφτηκα… “χμμφ ακόμη κάτι που δεν θα έχουμε στο Linux για αρκετό καιρό”… και άλλες τέτοιες ανοησίες.

Βιάστηκα να μιλήσω γιατί καθώς διάβαζα την περιγραφή του plugin είδα ότι το plugin δούλευε σε πολλές πλατφόρμες λογισμικού και πως είχε και σελίδα στο GitHub (ναι πάλι το Github πολύ trendy έγινε και αυτό). Λέω και εγώ “ας ρίξω μια ματιά λοιπόν στο κώδικα”, και τότε είδα ότι είναι γραμμένο κάτω από την MIT License. Επίσης επειδή στην σελίδα του add-on στο web store λέει ότι η εφαρμογή ζητά πρόσβαση σε δεδομένα από τα site που μπαίνετε, έριξα μια ματιά στο κώδικα του (γραμμένο κυρίως σε javascript) και από ότι είδα οφείλεται στο ότι προσπαθεί να εντοπίσει ιστοσελίδες με το HTML5 tag input type=search. Από όσο είδα εγώ δεν “τραβάει” δεδομένα σας σε κάποιον σέρβερ.

E, τότε λέω που θα πάει θα το δοκιμάσω αν όπως λέει στην παρούσα φάση οι δυνατότητες του είναι πολύ περιορισμένες.

Η εγκατάσταση, όπως στις περισσότερες  εφαρμογές του Chrome και του Chromium, ήταν αρκετά γρήγορη, και δίπλα από το εικονίδιο των ρυθμίσεων του Chrome είδα ένα ωραίο εικονίδιο μικροφώνου. Λέω μέσα μου… “δεν μπορεί τρέχω Debian Linux στο laptopάκι μου θα μπορέσει αυτό το μικρό πρόσθετο να “δει” το μικροφωνάκι του laptop και να λειτουργήσει;

Χμμ… και όμως λειτούργησε λίγο περίεργα αλλά λειτούργησε αρκετά καλά. Στις πρώτες δύο, τρεις δοκιμές υπήρχε αρκετός θόρυβος στο χώρο και η αλήθεια είναι ότι άλλα έλεγα και άλλα “καταλάβαινε” το voice search με κλειστό θόρυβο και εμένα να μην μιλάω μέσα από τα δόντια μου το plugin δούλευε πολύ καλύτερα. Ok 2-3 φορές μπέρδεψε το Linux με το Linksys… αλλά anyway το “google images cats μια χαρά μου δούλεψε.

Πριν κλείσω να τονίσω ότι το δοκίμασα στο Chromium 6.0.472.63 χωρίς επιτυχία και στο Chrome 8.0.552.224 στο δεύτερο με εξαιρετική επιτυχία.

Αν είστε συχνοί αναγνώστες του elkos.gr και χρησιμοποιείτε το Chrome μπορείτε να ρίξτε μια ματιά και στην δική του πολύ μα πολύ απλούστερη “εφαρμογή”


Προγραμματισμός σε Android με την Qt 4

Νομίζω ότι είναι σε όλους προφανές ότι το Android (το λειτουργικό σύστημα για κινητά τηλέφωνα που είναι βασισμένο στο Linux) είναι ένα από τα πλέον διαδεδομένα λειτουργικά συστήματα για κινητά τηλέφωνα, από την άλλη η Qt και ειδικά ο Qt creator είναι από τα πλέον ολοκληρωμένα προγράμματα δημιουργίας προγραμμάτων για όλες τις πλατφόρμες λογισμικού. Τι θα γινόταν όμως αν μπορούσαμε να συνδυάσουμε αυτά τα δύο εργαλεία το λειτουργικό Android και την ευχρηστία του QtCreator.

Αυτό ακριβώς προσπαθεί να κάνει το Android Lighthouse, χρησιμοποιεί μια τροποποιημένη έκδοση του Android NDK (για την ακρίβεια χρησιμοποιεί την προηγούμενη έκδοση του την r4 με πολλές τροποποιήσεις, η χρήση της r5 της πλέον πρόσφατης έκδοσης του Android NDK θα μπορούσε να δώσει ακόμη περισσότερες δυνατότητες ειδικά στους αισθητήρες του κινητού τηλεφώνου). Ουσιαστικά ο χρήστης γράφει εφαρμογές όπως θα έκανε με το QtCreator. Οι πολύ σημαντικές δυνατότητες του Android NDK (χαρακτηριστικό παράδειγμα τέτοιων δυνατοτήτων νομίζω ότι θα είναι το η Android έκδοση του VLC)  σε συνδυασμό με την ευχρηστία που προσφέρει το QtCreator πραγματικά πιστεύω θα δώσουν σημαντικότατη ώθηση σε όσους επιθυμούν να αναπτύξουν προγράμματα για το Android. Δεδομένης μάλιστα της λογικής της Qt για την δημιουργία κώδικα που μπορεί πολύ εύκολα να γίνει port από την μια πλατφόρμα στην άλλη νομίζω ότι θα δούμε αρκετά ενδιαφέροντα πράγματα στο μέλλον. Ειδικά με τις ευκολίες που προσφέρει η Qt από την έκδοση 4.7.0 που επιτρέπει την δημιουργία εφαρμογών ακόμη και από ανθρώπους που μέχρι πριν λίγο καιρό έγραφα το πολύ ένα απλό σκριπτάκι σε javascript και πολύ ήταν.

Να τονίσω ότι το εν λόγω project είναι ακόμη σε πολύ αρχικό στάδιο αλλά η δουλειά που γίνεται φαίνεται να είναι αρκετά καλή και φιλότιμη. Είμαι της άποψης ότι το project δεν είναι πολύ μακριά από το να φτάσει σε αρκετά ώριμο επίπεδο και μακάρι στο μέλλον να δούμε τις δυνατότητες αυτές ενσωματωμένες στις μελλοντικές εκδόσεις του QtCreator

Παρακάτω ακολουθεί ένα βίντεο που ο δημιουργός δείχνει της δυνατότητες του χρήσης της Qt για την δημιουργία εφαρμογών στον Android.

(more…)


Qt 4.7.0 με Qt Quick

Εδώ και λίγες ημέρες βγήκε η έκδοση 4.7.0 της Qt. Η νέα έκδοση της Qt φέρνει αρκετές νέες δυνατότητες στους προγραμματιστές. Επιγραμματικά λοιπόν:
Πρώτον έχουμε υλοποίηση της Qt Quick, η Qt Quick είναι μια σειρά από τεχνολογίες που έχουν σκοπό να δώσουν την δυνατότητα στους developers να αναπτύξουν σύγχρονες εφαρμογές με μοντέρνα γραφικά περιβάλλοντα που μπορούν να χρησιμοποιηθούν όχι μόνο στο desktop αλλά και στην ανάπτυξη εφαρμογών για κινητά τηλέφωνα, για media-player και διαδραστικές τηλεοπτικές εφαρμογές (ακόμη και για αυτοκίνητα).

Τα στοιχεία του γραφικού περιβάλλοντος στην Qt Quick σχεδιάζονται και περιγράφονται μέσω της QML που είναι μια επέκταση την πατροπαράδοτης JavaScript. Ουσιαστικά βασίζεται πάνω στις δυνατότητες της Qt (πχ διαπλαφορμικότητα) και μπορεί να χρησιμοποιηθεί όχι μόνο για τη δημιουργία νέων εφαρμογών αλλά και για την προσθήκη νέων δυνατοτήτων σε παλαιότερες.

Η προσθήκη της Qt Quick στην Qt νομίζω δίνει την δυνατότητα σε ακόμη περισσότερους developers να γράψουν κώδικα χρησιμοποιώντας την Qt χωρίς να χρειάζεται να μπλέξουν πολύ με την C++. Ένα από τα πλέον “δυνατά” χαρακτηριστικά της Qt κατά την γνώμη μου είναι η υποστήριξη διαπλατφορμικότητας που εξασφαλίζει το εν λόγω περιβάλλων προγραμματισμού καθώς οι προγραμματιστές μπορούν να γράψουν μια φορά ένα πρόγραμμα και το πρόγραμμα τους να τρέχει σε Windows, Mac OS X, Linux ακόμη και Symbian χωρίς αλλαγές.

Νομίζω ότι η προσθήκη της Qt Quick είναι ένα από τα πρώτα σημάδια εξέλιξης των σύγχρονων προγραμματιστικών εφαρμογών που με τον ένα ή τον άλλο τρόπο θα δίνουν όλο και περισσότερα εργαλεία ανάπτυξης στους developers κάνοντας σταδιακά ευκολότερη την δημιουργία εφαρμογών με απίστευτες δυνατότητες από όχι και τόσο έμπειρους προγραμματιστές.


δύο banner-άκια για την επερχόμενη έκδοση του Ubuntu 10.10

Μιας και το Ubuntu 10.10 έρχεται σε περίπου ένα μήνα παραθέτω δύο JavaScript banner για τους φίλους του Ubuntu.

Όσοι θέλετε μπορείτε να τα βάλετε στο site σας για να δείξτε την υποστήριξη σας στην πλέον διαδεδομένη διανομή Linux

Για το πορτοκαλί ο κώδικας είναι:

<script src=”http://www.kyleabaker.com/fun/ubuntu1010banner/orange.js” type=”text/javascript”></script>

Για το μωβ ο κώδικας είναι:

<script src=”http://www.kyleabaker.com/fun/ubuntu1010banner/purple.js” type=”text/javascript”></script>

Το banner είναι σχέδιο του kyleabaker.