Αναζήτηση σε χωροχρονικά δεδομένα με χρήση κινητών συστημάτων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Αναζήτηση σε χωροχρονικά δεδομένα με χρήση κινητών συστημάτων"

Transcript

1 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αναζήτηση σε χωροχρονικά δεδομένα με χρήση κινητών συστημάτων Ευστάθιος Ε. Μαρούλης Επιβλέποντες: Δημήτριος Γουνόπουλος, Καθηγητής ΑΘΗΝΑ Σεπτέμβρης 2013

2 ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αναζήτηση σε χωροχρονικά δεδομένα με κινητά συστήματα Ευστάθιος Ε. Μαρούλης Α.Μ.: ΕΠΙΒΛΕΠΟΝΤΕΣ: Δημήτριος Γουνόπουλος, Καθηγητής

3 ΠΕΡΙΛΗΨΗ Στις μέρες μας τα κινητά συστήματα έχουν εξαπλωθεί σε πολύ μεγάλο βαθμό και ο καθένας μας μπορεί να έχει πρόσβαση σε αυτά. Ο σκοπός της εργασίας είναι να εκμεταλλευτούμε την πληροφορία που αυτά μπορούν να μας παρέχουν, προκειμένου να εξάγουμε κάποια συμπεράσματα σχετικά με το πόσοι χρήστες πέρασαν από διάφορα σημεία ενδιαφέροντος. Συγκεκριμένα αυτό που κάναμε είναι να χρησιμοποιήσουμε τη δυνατότητα καταγραφής γεωγραφικής θέσης που αυτά μας παρέχουν, έτσι ώστε να μπορέσουμε να καταλάβουμε με ποια σειρά πέρασαν οι χρήστες και σε ποιες χρονικές στιγμές από διάφορα σημεία ενδιαφέροντος. Για να γίνει αυτό αναπτύχτηκε μια εφαρμογή για κινητές συσκευές Android η οποία είχε ως σκοπό να καταγράψει τις διαδρομές των χρηστών, δηλαδή να μαζέψει το δείγμα, και δεύτερον μας δώσει τη δυνατότητα να δημιουργήσουμε το ερώτημα και αφού αυτό σταλεί και επεξεργαστεί από τον αντίστοιχο server, να εμφανίσει τα αποτελέσματα στην οθόνη του κινητού. Το δεύτερο βήμα ήταν η ανάπτυξη και υλοποίηση του παραπάνω server ο οποίος θα αναλάμβανε να αποθηκεύσει το δείγμα, να εκτελέσει τον αλγόριθμο που αναπτύχτηκε και τέλος να στείλει τα αποτελέσματα πίσω στον client(εφαρμογή Android). ΘΕΜΑΤΙΚΗ ΠΕΡΙΟΧΗ: Εξόρυξη δεδομένων ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ: Αναζήτηση με βάσει το εύρος, επεξεργασία Τοp-K ερωτημάτων

4 ΕΥΧΑΡΙΣΤΙΕΣ Για την διεκπεραίωση την παρούσας Πτυχιακής Εργασίας θα ήθελα να ευχαριστήσω τον καθηγητή και επιβλέποντα μου Κ. Δημήτριο Γουνόπουλο, για την καθοδήγηση του. Επίσης ευχαριστώ όποιον συνέβαλε στην δοκιμή του προγραμματιστικού μέρους αυτής της εργασίας.

5 ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ ΕΙΣΑΓΩΓΗ Εισαγωγή Σχετικές εργασίες O ΑΛΓΟΡΙΘΜΟΣ ΠΕΡΙΓΡΑΦΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ Ο Server Η γλώσσα προγραμματισμού Java H JSP και τα Java servlets Η MySQL Οι πίνακες MySQL που χρησιμοποιήθηκαν Το JSON H Ιστοσελίδα εισαγωγής σημείου ενδιαφέροντος Οι βασικές λειτουργίες του Server O Android Client To Android Τι χρησιμοποιήθηκε Activity καταγραφής και αποστολής Activity δημιουργίας και αποστολής ενός ερωτήματος Activity εμφάνισης αποτελεσμάτων Activity Ρυθμίσεων Επίδειξη εφαρμογής Android- Ενδεικτικές εκτελέσεις Τα περιεχόμενα του πίνακα των σημείων ενδιαφέροντος Ενδεικτική εκτέλεση του Activity καταγραφής ΕΝΔΕΙΚΤΙΚΟΣ ΚΩΔΙΚΑΣ To activity δημιουργίας ερωτήματος Ο κώδικας του Main Servlet... 60

6 ΣΥΜΠΕΡΑΣΜΑΤΑ ΠΙΝΑΚΑΣ ΟΡΟΛΟΓΙΑΣ ΣΥΝΤΜΗΣΕΙΣ ΑΡΚΤΙΚΟΛΕΞΑ ΑΚΡΩΝΥΜΙΑ ΑΝΑΦΟΡΕΣ... 68

7

8 ΚΑΤΑΛΟΓΟΣ ΕΙΚΟΝΩΝ Εικόνα 1:Τα ποσοστά χρήσης των Mobile λειτουργικών συστημάτων τα τελευταία χρόνια Εικόνα 2: Η αρχική οθόνη του προγράμματος Εικόνα 3: Alert για την ειδοποίηση για το κλειστό GPS Εικόνα 4: Η διαδρομή που μόλις καταγράφηκε και σαν Markers βλέπουμε όλα τα σημεία από τα οποία αυτή πέρασε Εικόνα Εικόνα 6: Η οθόνη δημιουργίας του ερωτήματος, βλέπουμε τους Markers(τα κόκκινα σημάδια πάνω στα οποία μπορούμε να κάνουμε κλικ) Εικόνα 7: Το alert box επιλογής την επιθυμητής χρονικής στιγμή.στην περίπτωση που κάνουμε αναζήτηση χωρίς συγκεκριμένα χρονικά δεδομένα μας ενδιαφέρει μόνο ο χρόνος κάθε επιλογής να είναι μεγαλύτερο από αυτόν την προηγούμενης Εικόνα 8: Η εικόνα που βλέπει ο χρήστης αν επιλέξει χρονική στιγμή μικρότερη από την προηγούμενή του επιλογή Εικόνα 9:Το μήνυμα που βλέπει ο χρήστης αν επιλέξει δύο συνεχόμενες φορές το ίδιο σημείο Εικόνα 10:Το activity παρουσίασης αποτελεσμάτων Εικόνα 11: Η οθόνη ρυθμίσεων Εικόνα 12: Τα περιεχόμενα του πίνακα των σημείων ενδιαφέροντος Εικόνα 13: Κεντρική εικόνα του Activity Εικόνα 14: Το πρόγραμμα καταγράφει τη διαδρομή. Εδώ βρίσκεται μερικά δευτερόλεπτα μετά από την έναρξη Εικόνα 15: Ο χρήστης περνάει από το επόμενο σημείο ενδιαφέροντος Εικόνα Εικόνα Εικόνα Εικόνα

9 Εικόνα 20:Τα σημεία τα οποία εστάλησαν στον Server εμφανίζονται σαν Markers πάνω στο χάρτη Εικόνα 21: Τα περιεχόμενα του πίνακα καταχώρισης δείγματος Εικόνα 22:Τα περιεχόμενα του πίνακα που αποθηκεύουμε τα Prepared points μας Εικόνα 23:Το Activity εμφάνισης αποτελεσμάτων. Το μήνυμα Done Εμφανίζεται για μερικά δευτερόλεπτα και δηλώνει την επιτυχή απάντηση από τον Server Εικόνα Εικόνα Εικόνα 26: Η οθόνη ρυθμίσεων. Εδώ έχουμε θέσει το όριο της απόστασης στα 200 μέτρα Εικόνα Εικόνα Εικόνα Εικόνα Εικόνα Εικόνα Εικόνα Εικόνα

10

11 ΠΡΟΛΟΓΟΣ Η παρούσα εργασία εκπονήθηκε στο τμήμα Πληροφορικής και Τηλεπικοινωνιών του Εθνικού και Καποδιστριακού Πανεπιστημίου Αθηνών ως Πτυχιακή εργασία. Η διάρκειά της μέχρι και την ολοκλήρωση ήταν ένας χρόνος.

12 1. ΕΙΣΑΓΩΓΗ 1.1 Εισαγωγή Στις μέρες μας σε αντίθεση με μόλις μερικά χρόνια πριν, τα κινητά τηλέφωνα είναι σε θέση να μας παρέχουν πολύ περισσότερες λειτουργίες πέρα από την πραγματοποίηση κλήσεων. Ένα κινητό πλέον, μπορούμε με ασφάλεια να πούμε ό,τι είναι περισσότερο ένας υπολογιστής τσέπης παρά ένα απλό μέσο επικοινωνίας. Για την ακρίβεια όμως σε αντίθεση με τους κλασσικούς υπολογιστές τα κινητά είναι εξοπλισμένα με ένα πλήθος αισθητήρων. Ένας από τους αυτός τους αισθητήρες που πλέον βρίσκεται σε όλα τα κινητά τηλέφωνα είναι και το GPS, όπου όμως πλέον η χρήση του έχει ξεφύγει από την γνωστή στους περισσότερους πλοήγηση και μπορεί να μας προσφέρει ένα πλήθος νέων δυνατοτήτων και πεδίων εφαρμογής [1]. Τα πλέον ευρέως χρησιμοποιούμενα κινητά λειτουργικά συστήματα(mobile operating systems.) που χρησιμοποιούνται από τα smartphones είναι το Android της Google, το ios της Apple και τέλος το Windows Mobile της Microsoft. Αν δούμε τα ποσοστά χρήσης του κάθε λειτουργικού ξεχωριστά, μπορούμε να παρατηρήσουμε ότι το λειτουργικό της Google από την εμφάνιση του μέσα σε πολύ λίγα χρόνια έχει κυριαρχήσει στο χώρο των κινητών λειτουργικών συστημάτων. Αυτό συμβαίνει λόγω της ανοιχτής φύσης του(χρησιμοποιεί τον πυρήνα του Linux), λόγω του της γλώσσας προγραμματισμού που χρησιμοποιεί(java) και η οποία είναι ήδη γνωστή στους περισσότερους προγραμματιστές, αλλά και του γεγονότος ότι ο μέσος χρήστης μπορεί πλέον να προμηθευτεί μια συσκευή με Android με πολύ χαμηλό κόστος(πιο αναλυτική περιγραφή του Android υπάρχει στην παράγραφο 3.2.1). Τα ποσοστά χρήσης των λειτουργικών συστημάτων σύμφωνα με τη Wikipedia φαίνονται στην παρακάτω εικόνα. Ε. Μαρούλης 12

13 Εικόνα 1:Τα ποσοστά χρήσης των Mobile λειτουργικών συστημάτων τα τελευταία χρόνια [2] Πλέον με ένα οποιοδήποτε έξυπνο κινητό(smartphone) μπορούμε ανά πάσα στιγμή να γνωρίζουμε που ακριβώς βρίσκεται ο χρήστης και το πιο βασικό είναι ότι αυτή την πληροφορία ο χρήστης μπορεί να την αποθηκεύσει τοπικά στη συσκευή του(ή και online σε κάποια Cloud υπηρεσία 1 ). Έτσι βλέπουμε ότι έχουμε πια στη διάθεση μας ένα τεράστιο πλήθος πληροφορίας το οποίο μπορούμε να χρησιμοποιήσουμε και το οποίο μέχρι πρόσφατα έμενε εντελώς ανεκμετάλλευτο. Επιπλέον με την έλευση των ανοιχτών λειτουργικών στα smartphones και των APIs που αυτά προσφέρουν( πχ Google Maps API) μπορούμε πλέον πολύ πιο εύκολα να εκμεταλλευτούμε αυτή την πληροφορία για την εξαγωγή διάφορων συμπερασμάτων. Μια τέτοια προσέγγιση είναι και η παρούσα εργασία. Με μια γρήγορη ματιά στα διάφορα App Stores 2 θα δει κάνεις ότι υπάρχουν δεκάδες εφαρμογές με τις οποίες ο χρήστης δηλώνει που έχει βρεθεί με σκοπό την κοινωνική δικτύωσή,πέρα όμως από αυτή την προσέγγιση θα μπορούσαμε να χρησιμοποιήσουμε τις παραπάνω δυνατότητες προκειμένου να βγάλουμε συμπεράσματα για το σε ποια σημεία βρέθηκαν οι περισσότεροι χρήστες σε μια συγκεκριμένη στιγμή αλλά ακόμα καλύτερα να απαντήσουμε σε ερωτήματα όπως Πόσοι χρήστες ξεκίνησαν/πέρασαν από Ε. Μαρούλης 13

14 το σημείο Α στην συνέχεια πέρασαν από το Β και κατέληξαν στο Γ, στο συγκεκριμένο ερώτημα για το φιλτράρισμα των αποτελεσμάτων θα χρησιμοποιήσουμε 2 διαφορετικές εκδοχές. Η πρώτη, όπου είναι και η κύρια, είναι να εξετάσουμε το ερώτημα απλά κοιτώντας πόσοι τήρησαν την παραπάνω σειρά και βρέθηκαν και πιο κοντά στα σημεία Α,Β,Γ χωρίς να μας νοιάζει η ακριβείς ώρα που αυτό έγινε και τη δεύτερη εκδοχή είναι έχοντας θέσει ένα άνω όριο στην απόσταση προκειμένου να μπορούμε να θεωρήσουμε ότι κάποιος όντως πέρασε από ένα σημείο, να ελέγξουμε τη σειρά σε συγκεκριμένες ώρες της ημέρας στην συνέχεια να κοιτάξουμε ποιοι είχαν τη μικρότερη απόκλιση από το συγκεκριμένο ερώτημα. 1.2 Σχετικές εργασίες Η παραπάνω ιδέα προήλθε έπειτα από τη μελέτη των δημοσιεύσεων Distributed spatio-temporal similarity search [3], της οποίας το αντικείμενο ήταν δοθέντας μιας τροχιάς Q να μπορέσουμε να βρούμε τις τροχιές οι οποίες να είναι όσο το δυνατό πιο όμοιες και κοντινές στην αρχική, όταν όλες οι τροχιές είναι κατανεμημένες σε τμήματα. Μια άλλη σημαντική εργασία από την οποία προέκυψε η γενική δομή της εργασίας ήταν η Crowdsourced Trace Similarity with Smartphones [4] της οποία εισήγαγε τη λογική του να μειώσουμε όσο το δυνατό τους τα δεδομένα που στέλνει και λαμβάνει ο client, αλλά και να μειώσουμε όσο το δυνατό περισσότερο τις πράξεις αρά και την κατανάλωση πόρων του κινητού συστήματος. Η εργασία που συνέβαλε περισσότερο όμως και στην ανάπτυξη του αλγόριθμου αλλά και της τελική ιδέα της εργασίας ήταν η Complex Spatio-Temporal Pattern Queries [5],από την οποία προέκυψε η ιδέα του να κρατήσουμε τα δεδομένα μόνο γύρω από το σημείο που μας ενδιαφέρει. Ποιο συγκεκριμένα ο αλγόριθμος του κεφάλαιου 3.1 (STP Queries With Time) της δημοσίευσης βοήθησε ιδιαίτερα τον καθορισμό του αλγορίθμου και στην οριοθέτηση του προβλήματος καθώς και στην οριστικοποίηση της χρήσης ενός range predicted αλγόριθμου. Ε. Μαρούλης 14

15 2. O ΑΛΓΟΡΙΘΜΟΣ Η ιδέα της εργασίας είναι να απαντήσουμε σε ερωτήματα όπως Βρες πόσοι πέρασαν πιο κοντά από το σημείο Α στη συνέχεια από το Β και τέλος από το Γ. Για να γίνει το παραπάνω αυτό που χρειαζόμαστε πρώτα απ όλα είναι το δείγμα πάνω στο οποίο θα δουλέψουμε. Η λογική του αλγορίθμου είναι η παρακάτω. Στη βάση δεδομένων μας έχουμε καταχωρήσει τις συντεταγμένες αλλά και τους χρόνους από όλους τους χρήστες που μας έχουν στείλει δείγμα. Εμάς όμως δε μας ενδιαφέρει κάθε φορά να ελέγξουμε το σύνολο των καταχωρήσεων μας αλλά μόνο τα σημεία τα οποία βρίσκονται γύρο από τα σημεία ενδιαφέροντος μας (στο παραπάνω παράδειγμα είναι τα σημεία Α,Β,Γ), αυτό φαίνεται και στο παρακάτω σχήμα. Σχήμα 1 Όπως βλέπουμε μέσα παραπάνω μέσα στους κόκκινους κύκλους υπάρχει το σύνολο των σημείων που θα κρατήσουμε και θα εξετάσουμε. Όλο το υπόλοιπο κομμάτι μπορούμε πολύ απλά να το παραλείψουμε και να μην ασχοληθούμε με αυτό (εκτός εάν αργότερα προσθέσουμε ένα νέο σημείο ενδιαφέροντος και έτσι χρειαστεί να κάνουμε εκ νέου Ε. Μαρούλης 15

16 αναζήτηση στις πλήρης τροχιές έτσι ώστε να βρούμε αν οι υπάρχουσες τροχιές περνάνε από αυτά τα σημεία). Έτσι με αυτό τον τρόπο μπορούμε να φιλτράρουμε το πεδίο πάνω στο οποίο θα δουλέψουμε και να γλυτώσουμε πλήθος περιττών υπολογισμών. Στη συνέχεια έχουμε το κύριο μέρος του αλγόριθμου. Σε αυτό το σημείο ξεκινώντας από κάθε μια διαθέσιμη τροχιά που είναι αποθηκεμένη,κοιτάμε για κάθε σημείο Α,Β,Γ κ.ο.κ. μέχρι να βρούμε το κοντινότερο δυνατό σημείο που πέρασε η τροχιά. Αυτό γίνεται μετρώντας την ευκλείδεια απόσταση μεταξύ του σημείου ενδιαφέροντος και του σημείου της αποθηκεμένης τροχιάς και παίρνοντας το αποτέλεσμα σε χιλιόμετρα. Αν αυτό δεν υπάρχει ή υπάρχει αλλά είναι μεγαλύτερο από το άνω όριο που έχουμε θέσει, τότε αποκλείουμε την συγκεκριμένη τροχιά καθώς αυτή θεωρούμε ότι δεν έχει περάσει από το συγκεκριμένο σημείο. Επίσης λόγω του ότι για κάθε σημείο έχουμε αποθηκεμένο και το χρόνο, ελέγχουμε αν ο χρόνος του σημείου που εξετάζουμε να είναι μεγαλύτερος από αυτόν που είχαμε βρει στο προηγούμενο σημείο ενδιαφέροντος, εκτός αν το σημείο ενδιαφέροντος αυτό είναι το πρώτο που εξετάζουμε, άρα και δε θα χρειαστεί αυτός ο έλεγχος. Για κάθε τροχιά κρατάμε ένα score το οποίο ουσιαστικά είναι η μέση απόσταση που αυτή έχει από το κάθε σημείο ενδιαφέροντος. Δηλαδή αν η τροχιά του χρήστη A έχει περάσει από τα σημεία Α,Β,Γ με απόσταση 0.1 km από τον A, 0.2 km από τον Β, και 0.15 km από τον Γ τότε το score του χρήστη θα είναι 0.15 km που είναι ο M.O. των Α, Β, Γ. Στη συνέχεια κάθε χρήστη(τροχιά) τα αποτελέσματα που προκύπτουν σύμφωνα με τα παραπάνω κριτήρια την εισάγουμε σε ένα πίνακα. Όταν τελικά συμπληρωθεί αυτός ο πίνακας τότε αυτό που απομένει είναι η ταξινόμηση του πίνακα με βάση το score του κάθε χρήστη. Μετά τη ολοκλήρωση ο πίνακας είναι έτοιμος ταξινομημένος με τα αποτελέσματα έτοιμα για αποστολή. Για την εκπόνηση του παραπάνω αλγορίθμου χρησιμοποιήθηκε,όπως φαίνεται, ένας range predicate evaluation αλγόριθμος. Αυτός προτιμήθηκε λόγω της φύσης του προβλήματος καθώς εμείς θέλουμε να ψάξουμε γύρω από το κάθε σημείο σε μια ακτίνα. Μια διαφορετική προσέγγιση θα μπορούσε να είναι η χρήση ενός αλγόριθμου ο οποίος κάνει χρήση του Κοντινότερου γείτονα. Περισσότερες λεπτομερές για την ανάπτυξη ενός τέτοιου αλγορίθμου μπορούν να βρεθούν στο paper με τίτλο Complex Spatio-Temporal Pattern Queries 3 3 Complex Spatio-Temporal Pattern Queries, Ε. Μαρούλης 16

17 Η δεύτερη εκδοχή της εκτέλεσης είναι όταν μας ενδιαφέρει ο χρόνος στον οποίο πέρασε ο κάθε χρήστης από κάθε σημείο. Δηλαδή όταν θέλουμε να απαντήσουμε σε ερωτήματα όπως Βρες μου πόσοι πέρασαν στις 12:30 από το σημείο Α, στις 13:15 από το Β και τερμάτισαν στις 13:30 στο Γ με μέγιστη απόκλιση 10 λεπτών. Σε αυτή την περίπτωση όσον αφορά το χώρο το μόνο όριο που θέτουμε είναι ένα μέγιστο όριο προκειμένου να μπορέσουμε να θεωρήσουμε ότι κάποιος έχει περάσει από κάποιο σημείο. To πρώτο βήμα που πρέπει να κάνουμε είναι κάθε ώρα της μορφής ΗH:ΜΜ να την μετατρέψουμε σε δευτερόλεπτα από τις 00:00 προκειμένου να διευκολύνουμε τις πράξεις μας. Ο αλγόριθμος αυτή τη φορά έχει ως εξής Όπως και πριν ξεκινάμε από τον πρώτο χρήστη, για κάθε χρήστη αρχίζουμε από το πρώτο σημείο ενδιαφέροντος ελέγχουμε την απόλυτη τιμή της διαφοράς της τιμής του χρόνου που θέλουμε εμείς να έχει περάσει από το συγκεκριμένο σημείο ενδιαφέροντος μείον το χρόνο του στιγμιότυπου. Αν αυτή η διαφορά είναι εντός το χρόνου που μας ενδιαφέρει τότε γίνεται δεκτή η συγκεκριμένη τιμή. Συνεχίζουμε έτσι για όλα τα σημεία ενδιαφέροντος. Αν κάποιος χρήστης δε βρεθεί μέσα στα όρια του χρόνου που έχουμε θέσει για κάποιο σημείο τότε ταυτόχρονα αυτός αποκλείεται από τα αποτελέσματα. Τα score σε αυτή την περίπτωση για τον κάθε χρήστη προκύπτουν από το μέσο όρο όλων των παραπάνω τιμών που βρήκαμε για τα σημεία ενδιαφέροντος που υπήρχαν στο ερώτημα. Ένα παράδειγμα είναι το παρακάτω. Αν το ένας χρήστης πέρασε από το σημείο Α με απόκλιση 2 λεπτών από το Β με απόκλιση 4 και από το Γ με απόκλιση 6, τότε το score αυτού του χρήστη είναι (2*60+4*60+6*60)/3=240 (γιατί όπως είπαμε πριν τους υπολογισμούς μας τους κάνουμε με δευτερόλεπτα). Ε. Μαρούλης 17

18 3. Περιγραφή του Συστήματος Η υλοποίηση του αλγορίθμου που περιγράψαμε παραπάνω αποτελείται από 2 μέρη. Το μέρος που υλοποιεί το παραπάνω αλγόριθμο αποτελεί τον Server της εφαρμογής. Το δεύτερο κομμάτι της εφαρμογής είναι μια εφαρμογή Αndroid, η οποία αποτελεί και τον Client. Στόχος μας είναι ο Client να κάνει όσο το δυνατό λιγότερους υπολογισμούς και να καταναλώνει όσο το δυνατό λιγότερα δεδομένα. Επίσης σημαντικός στόχος της εφαρμογής είναι να μην παραβιαστεί η ιδιωτικότητα(privacy) του χρήστη. Aυτό επιτεύχθηκε δίνοντας τη δυνατότητα στο χρήστη να επιλέξει αν θέλει να δώσει το όνομά του, αν θέλει να στείλει τη διαδρομή που τελικά καταγράφηκε ή ακόμα να στείλει τη διαδρομή του αργότερα. 3.1 Ο Server Για την δημιουργία του server χρησιμοποιήθηκαν Java servlets και για τη προβολή της ιστοσελίδας του server χρησιμοποιήθηκε JSP. Για την αποθήκευση δεδομένων(τα δείγματα που λάβαμε από τους clients, τα prepared δείγματα, καθώς και τα σημεία ενδιαφέροντος χρησιμοποιήθηκε MySQL. Η γλώσσα προγραμματισμού Java O Server αναπτύχτηκε με χρήση της γλώσσας Java. Οι βασικοί λόγοι για τους οποίους προτιμήθηκε η συγκεκριμένη γλώσσα μπορούν να βρεθούν στην ιστοσελίδα της Wikipedia και αναφέρονται παρακάτω: «Ένα από τα βασικά πλεονεκτήματα της Java έναντι των περισσότερων άλλων γλωσσών είναι η ανεξαρτησία του λειτουργικού συστήματος και πλατφόρμας. Τα προγράμματα που είναι γραμμένα σε Java τρέχουνε ακριβώς το ίδιο σε Windows, Linux, Unix και Macintosh Ε. Μαρούλης 18

19 (σύντομα θα τρέχουν και σε Playstation καθώς και σε άλλες κονσόλες παιχνιδιών) χωρίς να χρειαστεί να ξαναγίνει μεταγλώττιση (compiling) ή να αλλάξει ο πηγαίος κώδικας για κάθε διαφορετικό λειτουργικό σύστημα. Για να επιτευχθεί όμως αυτό χρειαζόταν κάποιος τρόπος έτσι ώστε τα προγράμματα γραμμένα σε Java να μπορούν να είναι «κατανοητά» από κάθε υπολογιστή ανεξάρτητα του είδους επεξεργαστή (Intel x86, IBM, Sun SPARC, Motorola) αλλά και λειτουργικού συστήματος (Windows, Unix, Linux, BSD, MacOS). Ο λόγος είναι ότι κάθε κεντρική μονάδα επεξεργασίας κατανοεί διαφορετικό κώδικα μηχανής. Ο συμβολικός κώδικας (assembly) που μεταφράζεται και εκτελείται σε Windows είναι διαφορετικός από αυτόν που μεταφράζεται και εκτελείται σε έναν υπολογιστή Macintosh. Η λύση δόθηκε με την ανάπτυξη της Εικονικής Mηχανής (Virtual Machine ή VM ή ΕΜ στα ελληνικά)» [6] H JSP και τα Java servlets H JSP είναι μια τεχνολογία που σκοπό έχει να βοηθήσει τους προγραμματιστές να δημιουργήσουν δυναμικά παραγόμενες ιστοσελίδες βασισμένες στην HTML 4, XML 5 ή και σε άλλους τύπους. Εκδόθηκε το 1999 από την Sun Microsystems, και μοιάζει πολύ με την PHP,αλλά χρησιμοποιεί την γλώσσα προγραμματισμού Java. [7] Για να σηκώσουμε και τρέξουμε τις JSP σελίδες μας χρησιμοποιήσαμε τον Apache Tomcat. Μέσα στις σελίδες JSP κάναμε χρήση των Java servlets. H τεχνολογία Java Servlet παρέχει στους προγραμματιστές Web ένα απλό και συνεπή μηχανισμό για την επέκταση των δυνατοτήτων ενός Web Server και για την πρόσβαση σε ήδη υπάρχοντα επιχειρησιακά συστήματα. Ένα servlet μπορεί να θεωρηθεί σας μια βοηθητική εφαρμογή που τρέχει στον Server. Έτσι τα Java servlets κάνουν δυνατή την ταυτόχρονη εκτέλεση πολλών Web εφαρμογών. [8] Ε. Μαρούλης 19

20 Η MySQL Η MySQL είναι ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων που μετρά περισσότερες από 11 εκατομμύρια εγκαταστάσεις. Έλαβε το όνομά της από την κόρη του Μόντυ Βιντένιους, τη Μάι (αγγλ. My). Το πρόγραμμα τρέχει έναν εξυπηρετητή (server) παρέχοντας πρόσβαση πολλών χρηστών σε ένα σύνολο βάσεων δεδομένων. Ο κωδικός του εγχειρήματος είναι διαθέσιμος μέσω της GNU General Public License, καθώς και μέσω ορισμένων ιδιόκτητων συμφωνιών. Ανήκει και χρηματοδοτείται από μία και μοναδική κερδοσκοπική εταιρία, τη σουηδική MySQL AB, η οποία σήμερα ανήκει στην Oracle [9]. H MySQL προτιμήθηκε κατά κύριο λόγο, λόγω του ότι αποτελεί μια ανοιχτή και σταθερή υλοποίηση. Επίσης είναι διαθέσιμη για όλες τις πλατφόρμες και η λειτουργία και εγκατάσταση της είναι πολύ απλή και πολύ καλά τεκμηριωμένη. Οι πίνακες MySQL που χρησιμοποιήθηκαν Ξεκινώντας, το πρώτο πράγμα που πρέπει να διευκρινίσουμε είναι να δείξουμε τα tables τα οποία θα χρησιμοποιήσουμε. To πρώτο table[αργότερα θα αναφέρεται πως πίνακας 1] που χρησιμοποιούμε είναι αυτό στο οποίο αποθηκεύουμε τα σημεία ενδιαφέροντος. Αυτό έχει την παρακάτω μορφή Πίνακας 1 ID Name Latitude Longtitude Το πεδίο ID περιλαμβάνει απλά έναν αύξων αριθμό για το κάθε σημείο. Ε. Μαρούλης 20

21 Στο πεδίο name έχουμε το όνομα του σημείου ενδιαφέροντος και τέλος στα πεδία latitude και longtitude αποθηκεύουμε τις γεωγραφικές συντεταγμένες του σημείου. Το δεύτερο table[αργότερα θα αναφέρεται πως πίνακας 2] που χρησιμοποιούμε είναι αυτό στο οποίο αποθηκεύουμε τα σημεία ενδιαφέροντος. Στον πίνακα από κάτω φαίνεται η μορφή του. Πίνακας 2 ID Name Latitude Longtitude Time Route ID Όπως και πριν το ID είναι απλά ο αύξων αριθμός της εγγραφής. Στο πεδίο Name έχουμε το Username του κάθε χρήστη (αυτό δεν είναι ανάγκη να είναι μοναδικό καθώς η εισαγωγή του από τον χρήστη-δείγμα είναι προαιρετική).τα Latitude-Longtitude είναι οι γεωγραφικές συντεταγμένες του στιγμιότυπου. Στο πεδίο Time έχουμε τη χρονική στιγμή του στιγμιότυπου σε δευτερόλεπτα.(δηλαδή την χρονική απόσταση από τις 00:00 σε δευτερόλεπτα). Τέλος το Route ID αποτελεί το ID της κάθε διαδρομής που είναι αποθηκεμένη μέσα στο σύστημα μας. Η πρώτη σειρά σημείων έχει Route ID 1, η δεύτερη έχει Route ID 2 κ.ο.κ. ΤΟ Route ID είναι απαραίτητο καθώς είναι ο μόνος τρόπος να διαχωρίσουμε τα δείγματα μεταξύ τους. Μια άλλη προσέγγιση θα έλεγε ότι ο κάθε χρήστης θα έπρεπε να έχει διαφορετικό-μοναδικό Username, όμως μέσα στους στόχους της εργασίας είναι να μην παραβιάζεται καθόλου η ιδιοτηκότητα του χρήστη έτσι η εισαγωγή του Username είναι προαιρετική(με προκαθορισμένη επιλογή το Default User,η εισαγωγή ενός username εξάλλου δε θα προσέδιδε τίποτα παραπάνω στις μετρήσεις μας. Το τελευταίο table[αργότερα θα αναφέρεται πως πίνακας 3] που θα χρησιμοποιήσουμε ονομάζεται Prepared Points, του οποίο τα στοιχεία φαίνονται στην πίνακα από κάτω. Ε. Μαρούλης 21

22 Πίνακας 3 ID Name Place Distance Time Route ID Όπως και πριν το ID είναι απλά το ένας αύξων αριθμός της εγγραφής. Το Name είναι το Username του στιγμιότυπου. Στο Place υπάρχει το όνομα του μέρους μέσα στην εμβέλεια του οποίου βρίσκεται το συγκεκριμένο στιγμιότυπο. Αυτό φαίνεται γραφικά στην παρακάτω εικόνα. Σχήμα 2 Το κομμάτι που βρίσκεται μέσα στον μπλε κύκλο είναι τα σημεία που υπάρχουν αποθηκεμένα στον πίνακα για το συγκεκριμένο σημείο ενδιαφέροντος με όνομα Place. To distance είναι η ευκλείδεια απόσταση του σημείου από το κέντρο του κύκλου. Ο αλγόριθμος με τον βρίσκουμε την απόσταση αυτή μέσω των συντεταγμένων θα αναλυθεί αργότερα. Στο πεδίο time είναι υποθηκευμένη η χρονική στιγμή του στιγμιότυπου. Τέλος το route ID είναι ένα ξένο κλειδί το οποίο προέρχεται από τον πίνακα που περιγράψαμε προηγουμένως και υπάρχει για τον ίδιο ακριβώς σκοπό. Σε αυτόν τον πίνακα κάποιες από τις εγγραφές του πίνακα 2 είναι πολύ πιθανό να μην είναι καταχωρημένη καθώς μπορεί το δείγμα να μην έχει βρεθεί κοντά σε κανένα σημείο ενδιαφέροντος. Μπορεί όμως να προστεθεί μελλοντικά αν προσθέσουμε ένα νέο σημείο ενδιαφέροντος στον πρώτο πίνακα. Η διαδικασία αυτή θα περιγραφεί παρακάτω. Ε. Μαρούλης 22

23 Το JSON Το JSON ή JavaScript Object Notation είναι ένα text-based ανοιχτό πρότυπο έτσι ώστε να είναι εύκολα αναγνώσιμο από τον χρήστη, με σκοπό την ανταλλαγή δεδομένων. Βασισμένο στη γλώσσα σεναρίων Javascript,το JSON είναι μια γλώσσα για να αναπαραστήσουμε απλές δομές δεδομένων και associative arrays,τα οποία ονομάζουμε αντικείμενα. Σε αντίθεση με τη JavaScript,το JSON λειτουργεί ανεξαρτήτως γλώσσας και διαθέτει parsers για πάρα πολλές γλώσσες. [10]. Σε σχέση με το XML προτιμήθηκε γιατί λόγω του ότι απαιτεί πολύ λιγότερα σημεία σύνταξης( παρενθέσεις, άγκιστρα κτλ.) γλυτώνουμε έτσι την αποστολή περιττών δεδομένων. Επίσης η χρήση μιας βιβλιοθήκης gzip έτσι ώστε να μειώσουμε το μέγεθος και να το φτάσουμε στα επίπεδα του JSON δεν θα ήταν η καλύτερη επιλογή στην περίπτωση μας, καθώς θα αναγκάζαμε τη συσκευή μας σε περιττούς υπολογισμούς και σπατάλη της CPU άρα και της μπαταρίας χωρίς κάποιο σημαντικό λόγο και απλά για να πετύχουμε το ίδιο αποτέλεσμα. H Ιστοσελίδα εισαγωγής σημείου ενδιαφέροντος Το πρώτο πράγμα που βλέπει κανείς εκκινώντας το server είναι η οθόνη εισαγωγής ενός POI. Αυτή φαίνεται στην παρακάτω εικόνα. Ε. Μαρούλης 23

24 Εικόνα 2 :Η διεπαφή την ιστοσελίδας μέσω της οποίας εισάγουμε σημεία ενδιαφέροντος. Με το που, ο διαχειριστής εισάγει τα δεδομένα που θέλει και πατήσει το κουμπί Ok τότε αυτό ο server θα καλέσει μια συνάρτηση η οποία 1. Θα εισάγει το όνομα του σημείου καθώς και τις συντεταγμένες στον πίνακα στο οποίο καταχωρούμε τα σημεία ενδιαφέροντος μας(πίνακας 1). 2. Για κάθε τροχιά από τον πίνακα στο οποίο αποθηκεύουμε τα δείγματα μας,θα κάνει έλεγχο προκειμένου να βρεθούν τα prepared σημεία(εφόσον υπάρχουν). Στη συνέχεια αυτά εισάγονται στον πίνακα στον οποίο αποθηκεύουμε αυτά τα σημεία(πίνακας 3). Ο τρόπος με τον οποίο βρίσκουμε τα prepared σημεία είναι ο εξής. Χρησιμοποιώντας τις συντεταγμένες του στοιχείου που μόλις εισήγαμε ελέγχουμε κάθε τροχιά του πίνακα 2 μετρώντας την ευκλείδεια απόσταση μεταξύ των συντεταγμένων των δύο γεωγραφικών αυτών σημείων. Συνεχίζουμε μέχρι να εξαντλήσουμε όλα τα σημεία του πίνακα 2. Με το που τελειώσουμε με αυτή τη διαδικασία τότε στον πίνακα 3 έχουμε πλέον και τα prepared σημεία κάθε τροχιάς του όλου δείγματος του πίνακα 2 για το νέο σημείο ενδιαφέροντος. 3. Έτσι τελικά ο server μας ειδοποιεί για την επιτυχή εισαγωγή και μας κάνει redirect στην αρχική σελίδα. Ε. Μαρούλης 24

25 Οι βασικές λειτουργίες του Server. Η βασική λειτουργία του server είναι η να δέχεται ερωτήματα από τον client (δηλαδή την εφαρμογή android). Τα Http requests που δέχεται πάντα περιλαμβάνουν ένα Json 6 string(περισσότερα για την επιλογή του Json βρίσκονται στην ενότητα 3.1.5). Το Json strings που λαμβάνει ο server έχουν πάντα μέσα ένα πεδίο που ονομάζεται type. Το type υπάρχει προκειμένου το server να μπορεί να καταλάβει τι είδους μήνυμα περιλαμβάνει το json string. Αν το type είναι ίσο με Points τότε αυτό σημαίνει ότι το μήνυμα περιέχει το μια νέα τροχιά. Σε αυτήν την περίπτωση το Json string έχει την παρακάτω μορφή. Πίνακας 4 Type Username NofPoints Latitude0 Longtude0 Time0 Points username (String) X (int) x0 (Double) y0 (Double) t0 (int) 6 Ε. Μαρούλης 25

26 Latitude(X-1) x(x-1) Longtitude(X -1) Time(X-1) y(x-1) t(x-1) Εν ολίγοις το πρώτο πράγμα που υπάρχει είναι το Username που έστειλε ο χρήστης. Το επόμενο στοιχείο που υπάρχει είναι το NofPoints. To NofPoints υπάρχει για να μας βοηθήσει να μάθουμε το πλήθος των σημείων που υπάρχουν μέσα στο Json. Τα σημεία έχουν τη μορφή [latitude,longtitude,time]. Έτσι για NofPoints 100 έχουμε 100 τριάδες σημείων με id[0,99].έτσι πλέον είναι πολύ εύκολο να μπορέσουμε να με μια απλή for να διαβάσουμε το περιεχόμενο του Json. Ένα παράδειγμα για να φανεί πως ακριβώς γίνεται αυτό είναι το παρακάτω. Έστω ότι root λέγεται το αντικείμενο Json που έχουμε. Για να το διαβάσουμε και να περάσουμε τα δεδομένα στην ΜySQL βάση μας κάνουμε το παρακάτω mysql.writedataroute(name, root.getdouble("long" + i), root.getdouble("lat" + i), root.getint("time" + i), id);. Στη συνέχεια αυτό που κάνουμε είναι να εισάγουμε τα στοιχεία στην βάση δεδομένων. Για να γίνει αυτό απλά διαβάζουμε τα στοιχεία από το json string ένα-ένα και τα περνάμε στη βάση χρησιμοποιώντας την συνάρτηση στο πλαίσιο παραπάνω. Το πεδίο id βάζουμε το ακριβώς μεγαλύτερο από αυτό το τελευταίο route_id που υπήρχε στη βάση. Στη συνέχεια ελέγχουμε την τροχιά αυτή για τυχών prepared points. Αυτό που κάνουμε εδώ ουσιαστικά είναι ακριβώς το ίδιο με αυτό της παραγράφου 1.2. Με τη διαφορά ότι επαναλαμβάνουμε τη διαδικασία για όλα τα σημεία ενδιαφέροντος και όχι μόνο για ένα. Ε. Μαρούλης 26

27 Αυτό γίνεται κάνοντας το κατάλληλο ερώτημα στη βάση δεδομένων και ελέγχοντας κάθε σημείο της βάσης μας με κάθε σημείο που υπάρχει στο Json. H αμέσως επόμενη λειτουργία του Server είναι να στέλνει τα τις συντεταγμένες και τα ονόματα των σημείων ενδιαφέροντος, σε περίπτωση που τα ζητήσει ο client. Όταν γίνει αυτό τότε o server διαβάζει όλες της εγγραφές του πίνακα 1 της ενότητας και την περνάει σε ένα json object με την παρακάτω μορφή. Πίνακας 5 ΝofPoints Place0 Latitude0 Longtitude0 X String x0 y Η λογική στον παραπάνω πίνακα είναι ακριβώς η ίδια με αυτή που περιγράψαμε νωρίτερα. Το τι γίνεται στη μεριά του client θα τι δούμε αργότερα σε επόμενη ενότητα. Τέλος αν το Json έχει την κεφαλίδα query τότε το περιεχόμενο του είναι ερώτημα Json και το Json String στο εσωτερικό του έχει την παρακάτω δομή. Πίνακας 6 NofPoints Option Distance threshold Time threshold placex Timex X True/false Y Z String Int Ε. Μαρούλης 27

28 Το πεδίο option έχει να κάνει με το αν η αναζήτηση μας θέλουμε να γίνει με βάση το χρόνο ή ο χώρο...τα distance/time threshold έχουν να κάνουν με τα όρια που έχουμε θέσει για τη αναζήτηση και στη συνέχεια ακολουθούν τα σημεία που ο χρήστης επέλεξε, με τη σειρά που τα επέλεξε, καθώς και οι χρόνοι που διάλεξε για το καθένα. Όταν λοιπόν το server λάβει αυτό το json, τότε έρχεται και η εκτέλεση του αλγόριθμου. Ο αλγόριθμος είναι αυτός που περιεγράφηκε στο κεφάλαιο 2. Σε αυτό το σημείο θα ασχοληθούμε με το πως υλοποιήθηκε η παραπάνω ιδέα. Αρχικά το πρώτο βήμα είναι να διαβαστεί το πεδίο NofPoints. Στη συνέχεια αυτό που κάνουμε είναι για κάθε δείγμα που έχουμε (στον πίνακα με τα prepared points) να φτιάξουμε μια λίστα με χρήση της βιβλιοθήκης Lists της Java. Η λίστα αυτή για κάθε χρήστη έχει την παρακάτω μορφή. Πίνακας 7 String int int Double int boolean username id time distance score disqualified Στα 2 πρώτα πεδία αναγράφονται τα προφανή, τρίτο αναγράφεται η μέση απόκλιση στο χρόνο, στο τέταρτο η μέση απόκλιση στον χώρο, στο επόμενο πεδίο αποθηκεύουμε το score του κάθε χρήστη. Τέλος υπάρχει το πεδίο idsqualified, όπου εκεί αποθηκεύουμε το αν ο χρήστης έχει αποκλειστεί από τα αποτελέσματα μας( σε περίπτωση που δεν καλύπτει κάποιο κριτήριο κάποια στιγμή). Ουσιαστικά όταν έρθει η στιγμή των ελέγχων το πρώτο πράγμα που ελέγχουμε είναι αν το συγκεκριμένο flag είναι false. Αν είναι συνεχίζουμε και ελέγχουμε για τον επόμενο χρήστη. Μετά το πέρας των βημάτων του αλγόριθμου μέσα στη λίστα θα υπάρχουν τα score όλων των χρηστών αλλά και αυτών που δεν είναι qualified, επίσης η λίστα αυτή δεν είναι ταξινομημένη. Άρα το επόμενο βήμα είναι να ταξινομήσουμε τη λίστα. Ε. Μαρούλης 28

29 Αυτό γίνεται με χρήση της Collections.sort 7 της Java την οποία έχουμε κάνει override προκειμένου να κάνει της συγκρίσεις με βάση το distance(compare_by_distance) ή το time(compare_by_time). Με το που τελειώσει αυτή η διαδικασία τότε το επόμενο βήμα είναι να περάσουμε τα ταξινομημένα στοιχεία της λίστας σε ένα Json string και να στείλουμε τα αποτελέσματα πίσω στον client σαν απάντηση. Το json έχει την παρακάτω μορφή, Πίνακας 2.8 ID(x) Username(x) Distance(x) Time(x) Int String Double int Το τι γίνεται στην πλευρά του client όταν λάβει τα δεδομένα θα το δούμε παρακάτω όταν όπου και θα ασχοληθούμε με το τι γίνεται στην μεριά του. 7 Ε. Μαρούλης 29

30 3.2 O Android Client To Android Το Αndroid είναι ένα λειτουργικό σύστημα βασισμένο στο Linux 8 το οποίο έχει σχεδιαστεί με κύριο στόχο της συσκευές με touchscreen όπως Smartphones και Tablets. Αρχικά ξεκίνησε να αναπτύσσεται από την Android, Inc. η οποία τελικά εξαγοράστηκε από την Google 9 το Το Android είναι ένα λειτουργικό σύστημα ανοιχτού κώδικα, του οποίου τον κώδικα η Google εκδίδει υπό την Apache License 10. Όπως φαίνεται και στο διάγραμμα της Εικόνας 1 το Android κατέχει αυτή τη στιγμή το 71% του συνολικού αριθμού smartphones και το νούμερο αυτό συνεχώς αυξάνεται. Το Android χρησιμοποιεί μια τροποποιημένη έκδοση της Java κάτι το οποίο το έκανε πολύ δημοφιλές όσον αφορά τους developers. Όλα τα παραπάνω δείχνουν ότι το Αndroid είναι πλέον το πιο επιτυχημένο λειτουργικό σύστημα όσον αφορά τα smartphones αλλά πλέον έχει καταφέρει να επεκταθεί σε συσκευές όπως τηλεοράσεις, κονσόλες βιντεοπαιχνιδιών καθώς και κάμερες. [11] Εικόνα 3: Η κεντρική οθόνη του Android Ε. Μαρούλης 30

31 Τι χρησιμοποιήθηκε Για την εκπόνηση αυτού του κομματιού της εργασίας χρησιμοποιήθηκε η πλατφόρμα του Android.Αυτό προτιμήθηκε για τους λόγους που μόλις αναφέραμε, λόγω του ότι ο καθένας μπορεί να έχει πρόσβαση εύκολα σε αυτό, αλλά και στο ότι λόγω της ευρείας χρήσης του πλέον μπορεί να βρεθεί πολύ καλό και ποιοτικό documentation στο Internet. Για την εκτέλεση της εφαρμογής το κινητό σύστημα είναι απαραίτητο να έχει σύστημα εντοπισμού θέσης GPS καθώς και πρόσβαση Internet για την αποστολή και τη λήψη των μηνυμάτων καθώς και έκδοση Android Για την υλοποίηση της συγκεκριμένης εφαρμογής το πιο βασικό κομμάτι ήταν αυτό της χρήσης των χαρτών. Γι αυτό χρησιμοποιήθηκε το Google Maps API V2 11. Επίσης για την τοπική αποθήκευση των δεδομένων χρησιμοποιήθηκε η SQLite 12 που υπάρχει στο Android, και για την αποθήκευση των ρυθμίσεων χρησιμοποιήθηκε η Shared Preferences 13 βιβλιοθήκη του Android η οποία παρέχει ένα πολύ εύκολο τρόπο για αποθήκευση ρυθμίσεων τις οποίες ο προγραμματιστής θέλει. Τέλος όπως και πριν ο για την αποστολή και τη λήψη μηνυμάτων χρησιμοποιήθηκαν τα JSON Strings, τα οποία λόγω των ελάχιστων περιορισμών που έχουν μας επέτρεψαν να στείλουμε τα μηνύματα που θέλαμε με μια δομή που εκπονήθηκε για τις ανάγκες της εργασίας. H Εφαρμογή αποτελείται από 4 βασικά Activities. 1. To Activity καταγραφής και αποστολής της διαδρομής του χρήστη. 2. Το Activity δημιουργίας και αποστολής ενός ερωτήματος 3. Το Activity του μενού ρυθμίσεων. 4. Το Activity Εμφάνισης των αποτελεσμάτων 11 https://developers.google.com/maps/documentation/android/ Ε. Μαρούλης 31

32 Παρακάτω θα αναλυθεί κάθε ένα από τα παραπάνω Activities ξεχωριστά. Activity καταγραφής και αποστολής Ξεκινώντας στην παρακάτω εικόνα φαίνεται το activity καταγραφής. Εικόνα 4: Η αρχική οθόνη του προγράμματος Στο activity αυτό υπάρχει κεντρικό το Fragment που είναι το αυτό που μας προσφέρει το Maps API V2 (αυτό υπάρχει και στο Activity δημιουργίας ερωτήματος). Εδώ θα γίνει και ο έλεγχος για το αν η συσκευή έχει ενεργοποιημένο το GPS. Αυτό φαίνεται στην παρακάτω εικόνα Ε. Μαρούλης 32

33 Εικόνα 5: Alert για την ειδοποίηση για το κλειστό GPS Με το που πατήσει ο χρήστης στο κουμπί Start, στο παρασκήνιο γίνονται τα εξής: Η εφαρμογή Android πρώτον ανοίγει σύνδεση με την SQLite βάση δεδομένων και ταυτόχρονα ζητάει το στίγμα του GPS κάθε 6 δεύτερα καθώς και την χρονική στιγμή που έγινε αυτό. Κάθε φορά που γράφεται ένα σημείο στη βάση δεδομένων ταυτόχρονα ζωγραφίζεται πάνω στο χάρτη και ενώνεται με το προηγούμενο από αυτό. Αυτό γίνεται με μια βιβλιοθήκη του Google Μaps API, την Polyline, που μας επιτρέπει να ζωγραφίσουμε πάνω στο χάρτη. Με το που ο χρήστης πατήσει το κουμπί Stop, τότε μπορεί να κάνει τα παρακάτω. 1. Να δει και ταυτόχρονα να διαγράψει την διαδρομή του. Αυτό θα εμφανιστεί όπως στην παρακάτω εικόνα Ε. Μαρούλης 33

34 Εικόνα 6: Η διαδρομή που μόλις καταγράφηκε και σαν Markers βλέπουμε όλα τα σημεία από τα οποία αυτή πέρασε 2. Πατώντας το κουμπί εμφάνισης του μενού στη συσκευή του μπορεί να επιλέξει την επιλογή Send όπως φαίνεται παρακάτω. Αυτό που θα γίνει είναι να δημιουργηθεί το JSON String που περιεγράφηκε στο προηγούμενο κεφάλαιο που θα συμπληρωθεί διαβάζοντας όλες τις συντεταγμένες και τους χρόνους τους που αποθηκεύτηκαν στη βάση δεδομένων με τη χρήση του κατάλληλου helper που δημιουργήσαμε. Εικόνα 7 Ε. Μαρούλης 34

35 4.Με το που λάβει ο server τις συντεταγμένες θα απαντήσει στον client και αυτό θα φανεί στην οθόνη του δεύτερου. Activity δημιουργίας και αποστολής ενός ερωτήματος Η οθόνη δημιουργίας και αποστολής ενός ερωτήματος φαίνεται παρακάτω. Εικόνα 8: Η οθόνη δημιουργίας του ερωτήματος, βλέπουμε τους Markers(τα κόκκινα σημάδια πάνω στα οποία μπορούμε να κάνουμε κλικ) Η λειτουργία της έχει ως εξής. Ο Client με το που ξεκινήσει τη λειτουργία του το πρώτο πράγμα που κάνει είναι να στείλει ένα ρώτημα στον server, ό,τι χρειάζεται τη λίστα με τα Ε. Μαρούλης 35

36 διαθέσιμα σημεία ενδιαφέροντος. Αυτό θα γίνει με τη χρήση asynchronous tasks 14. Εδώ είχαμε δύο επιλογές. Η πρώτη ήταν να κάνουμε τη διαδικασία αυτή με σειριακό τρόπο. Αυτό θα είχε το εξής πρόβλημα. Από τη στιγμή που έστελνε το ερώτημα ο client μέχρι που να λάβει την απάντηση από τον server(όπου αυτό ανάλογα τη σύνδεση και το σήμα θα μπορούσε να διαρκέσει από ελάχιστα ms μέχρι και μερικά δευτερόλεπτα) το User Interface του κινητού θα φαινόταν παγωμένο και η μόνη λύση θα ήταν η εισαγωγή ενός κινούμενου δαχτυλιδιού μέχρι να ολοκληρωθεί η διαδικασία. Η αμέσως επόμενη λύση είναι η χρήση των asynchronous tasks. Σε αυτή την περίπτωση γίνεται το εξής. Παράλληλα με το Main Thread( UI thread) εκκινούμε ένα παράλληλο thread το οποίο στέλνει το ερώτημα και διαβάζει την απάντηση που είναι σε μορφή Json String και μέσω του Json serializer του Android την μετατρέπει σε Json Οbject. Έτσι όταν ολοκληρωθεί αυτή η διαδικασία, τότε καλείται η συνάρτηση PostExecute() μέσα στην οποία διαβάζουμε το Json και τοποθετούμε τους Markers πάνω στην οθόνη. Ουσιαστικά το πλεονέκτημα που μας παρέχει η χρήση των asynchronous tasks είναι ότι μπορούμε να κάνουμε παράλληλα μια διαδικασία χωρίς να ενοχλήσουμε/επιβαρύνουμε καθόλου το UI Thread. Έτσι τώρα με το που ολοκληρωθεί αυτή η διαδικασία και οι Μarkers έχουν ζωγραφιστεί πάνω στο χάρτη μπορούμε να συνεχίσουμε στο επόμενο βήμα που είναι η δημιουργία του ερωτήματος. Αυτό θα γίνει ως εξής. Ακουμπώντας ο χρήστης πάνω στον κάθε Marker τότε εμφανίζεται το παρακάτω AlertDialog Ε. Μαρούλης 36

37 Εικόνα 9: Το alert box επιλογής την επιθυμητής χρονικής στιγμής. Στην περίπτωση που κάνουμε αναζήτηση χωρίς συγκεκριμένα χρονικά δεδομένα μας ενδιαφέρει μόνο ο χρόνος κάθε επιλογής να είναι μεγαλύτερο από αυτόν την προηγούμενης Η δομή αυτή προτιμήθηκε καθώς έτσι μπορούμε αποφεύγουμε τη δημιουργία επιπλέον activities και παρέχουμε στο χρήστη τον πλέον απλό τρόπο προκειμένου να αλληλοεπιδράσει με το πρόγραμμα. Εδώ θα πρέπει να μπορούμε ανά πάσα στιγμή να εμποδίσουμε το χρήστη από το να κάνει λάθος και είτε να επιλέξει δύο φορές το ίδιο σημείο είτε να επιλέξει μια χρονική στιγμή μικρότερη από την προηγούμενη αυτό φαίνεται τις παρακάτω δύο εικόνες. Ε. Μαρούλης 37

38 Εικόνα 10: Η εικόνα που βλέπει ο χρήστης αν επιλέξει χρονική στιγμή μικρότερη από την προηγούμενή του επιλογή. Εικόνα 11:Το μήνυμα που βλέπει ο χρήστης αν επιλέξει δύο συνεχόμενες φορές το ίδιο σημείο. Αυτό γίνεται με χρήση ενός πολύ απλού ελέγχου, όπου φυλάμε κάθε φορά το προηγούμενο σημείο το οποίο χρησιμοποιήσαμε καθώς και την αντίστοιχη χρονική Ε. Μαρούλης 38

39 στιγμή κάθε φορά που ο χρήστης επιλέγει ένα συγκεκριμένο σημείο το οποίο είχε μόλις επιλέξει ξανά, Έτσι αν το νέο σημείο συγκρίνεται με το προηγούμενο και αν δεν πληροί τις προϋποθέσεις απορρίπτεται και τα παραπάνω μηνύματα εμφανίζονται στον χρήστη. Πιέζοντας το παραπάνω κουμπί ο χρήστης στέλνει το Query στον server και ταυτόχρονα γίνεται redirect στο activity εμφάνισης αποτελεσμάτων Activity εμφάνισης αποτελεσμάτων Το Activity αυτό έχει την παρακάτω μορφή. Εικόνα 12:Το activity παρουσίασης αποτελεσμάτων Σε αυτό το actity προωθείται το Json string που ελήφθη ως απάντηση από το Request Activity. Αυτό που γίνεται εδώ είναι για κάθε στοιχείο της απάντησης να προσθέσουμε ένα στοιχείο στο Scrollable TextView. Αυτό που δείχνουν τα παραπάνω στιγμιότυπα είναι στο πρώτο το αποτέλεσμα ενός ερωτήματος σε περίπτωση που κάνουμε αναζήτηση με βάση το χώρο και το αποτέλεσμα ενός ερωτήματος σε περίπτωση που κάναμε αναζήτηση με βάση το χρόνο. Ε. Μαρούλης 39

40 Activity Ρυθμίσεων Για τη χρήση του Activity Ρυθμίσεων όπως είπαμε και πιο πριν έγινε χρήση των Shared Preferences. Αυτά προτιμήθηκαν καθώς μας επιτρέπουν την πολύ εύκολη αποθήκευση των ρυθμίσεων χωρίς την εισαγωγή περιττού κώδικα, το να έχουμε μια προεπιλεγμένη επιλογή για κάθε ρύθμιση,αλλά το βασικότερο πολύ εύκολη πρόσβαση από κάθε Activity της εφαρμογής ανά πάσα στιγμή με μια μόνο γραμμή κώδικα. Το Activity Ρυθμίσεων έχει την παρακάτω μορφή. Εικόνα 13: Η οθόνη ρυθμίσεων Όπως φαίνεται στο πρώτο TextView βλέπουμε ότι το πεδίο Username είναι ήδη συμπληρωμένο. Αυτό όπως προ είπαμε έγινε χάρη στη δυνατότητα που μας παρέχει η Ε. Μαρούλης 40

41 συγκεκριμένη βιβλιοθήκη να έχουμε μια προεπιλεγμένη τιμή για κάθε γνώρισμα.το ίδιο έχει γίνει και με όλα τα υπόλοιπα πεδία (τα πεδία επιλογής των ορίων, το Checkbox παραπάνω). 3.3 Επίδειξη εφαρμογής Android- Ενδεικτικές εκτελέσεις. Τα περιεχόμενα του πίνακα των σημείων ενδιαφέροντος Για την εκτέλεση των παρακάτω πειραμάτων, ο πίνακας στον οποίο αποθηκεύουμε τα σημεία ενδιαφέροντος μας είναι ο παρακάτω. Εικόνα 14: Τα περιεχόμενα του πίνακα των σημείων ενδιαφέροντος Ε. Μαρούλης 41

42 Ενδεικτική εκτέλεση του Activity καταγραφής Έστω ότι θέλουμε να εισάγουμε νέο δείγμα στον server, για τον προφανή λόγο του ότι είναι πρακτικά αδύνατο να κάνουμε διαδρομές στους δρόμους θα χρησιμοποιήσουμε μια εφαρμογή εξομοίωσης του GPS της συσκευής 16. Με το που ξεκινήσουμε την εφαρμογή θα δούμε το παρακάτω. Εικόνα 15: Κεντρική εικόνα του Activity Ρυθμίσουμε το πρόγραμμα εξομοίωσης GPS έτσι ώστε να κάνει τη διαδρομή από Ν.Φιλαδέλφεια μέχρι Πλατεία Συντάγματος. Έτσι η διαδρομή θα περάσει από 5 σημεία ενδιαφέροντος. Έτσι με το που πατήσουμε το κουμπί Start θα δούμε το παρακάτω. 16 Ε. Μαρούλης 42

43 Εικόνα 16: Το πρόγραμμα καταγράφει τη διαδρομή. Εδώ βρίσκεται μερικά δευτερόλεπτα μετά από την έναρξη. Παρακολουθώντας τη διαδρομή θα δούμε τα παρακάτω. Εικόνα 17: Ο χρήστης περνάει από το επόμενο σημείο ενδιαφέροντος. Ε. Μαρούλης 43

44 Παραπάνω βλέπουμε το χρήστη να περνάει από ένα ακόμα σημείο ενδιαφέροντος, και στα επόμενα στιγμιότυπα φαίνεται η πορεία της διαδρομής του μέχρι τον τερματισμό. Εικόνα 18 Εικόνα 19 Και τέλος έχουμε βλέπουμε το χρήστη να τερματίζει στο Σύνταγμα Ε. Μαρούλης 44

45 Εικόνα 20 Εδώ Πατάμε το κουμπί Finnish. Στη συνέχεια πατώντας το (hardware) κουμπί εμφάνισης μενού της συσκευής εμφανίζεται το παρακάτω μενού. Εικόνα 21 Ε. Μαρούλης 45

46 με το που πατήσουμε την επιλογή Send τότε η διαδρομή θα γίνει κόκκινη και όλα τα σημεία τα οποία καταγράφηκαν θα εμφανιστούν πάνω στο χάρτη. Αυτό φαίνεται στην παρακάτω εικόνα Εικόνα 22:Τα σημεία τα οποία εστάλησαν στον Server εμφανίζονται σαν Markers πάνω στο χάρτη. Από τη μεριά του server κοιτώντας παρακάτω βλέπουμε ένα κομμάτι του πίνακα στον οποίο καταχωρούμε τις πλήρεις τροχίες. Εικόνα 23: Τα περιεχόμενα του πίνακα καταχώρισης δείγματος Ε. Μαρούλης 46

47 Αν δούμε τα περιεχόμενα που πίνακα prepared points θα δούμε τα παρακάτω Εικόνα 24:Τα περιεχόμενα του πίνακα που αποθηκεύουμε τα Prepared points μας. Τώρα λοιπόν αν κάνουμε το ερώτημα πόσοι ξεκίνησαν από τη Νέα Φιλαδέλφεια, στην συνέχεια πέρασαν από τα Άνω Πατησιά και μετά από το Πολυτεχνείο σε ακτίνα μέχρι 100 μέτρα όπως θα δούμε το παρακάτω αποτέλεσμα. Ε. Μαρούλης 47

48 Εικόνα 25:Το Activity εμφάνισης αποτελεσμάτων. Το μήνυμα Done Εμφανίζεται για μερικά δευτερόλεπτα και δηλώνει την επιτυχή απάντηση από τον Server. Όπως ήταν αναμενόμενο το μόνο αποτέλεσμα που εμφανίστηκε ήταν η διαδρομή που μόλις καταγράψαμε πριν και η μέση απόκλιση από τα παραπάνω σημεία ήταν 22 μέτρα. Αντίστοιχα γνωρίζοντας ότι το δείγμα πέρασε από τη Νέα Φιλαδέλφεια γύρω στις 22:43 και κατέληξε στο Σύνταγμα στις 22:51 τότε κάνοντας το ερώτημα Πόσοι ξεκίνησαν από τη Νέα Φιλαδέλφεια στις 22:43 και κατέληξαν στο Σύνταγμα στις 22:51 τότε θα πάρουμε την παρακάτω απάντηση. Ε. Μαρούλης 48

49 Εικόνα 26 Τα παραπάνω αποτελούν δύο πολύ απλά σενάρια χρήσης του προγράμματος. Στη συνέχεια θα ακολουθήσουν κάποια πιο πολύπλοκα σενάρια προκειμένου να φανεί καλύτερα η λειτουργία του προγράμματος. Για αν γίνει αυτό θα πρέπει να εισάγουμε στη βάση δεδομένων πολύ μεγάλο αριθμό δείγματος. Προφανώς και αυτό δεν εφικτό άρα αυτό που μπορούμε να κάνουμε είναι να εισάγουμε στη βάση δεδομένων μας χειροκίνητα δείγμα, προκειμένου να μπορέσουμε να τρέξουμε διάφορα παραδείγματα αλλά και να επαληθεύσουμε ότι τα αποτελέσματα που προέκυψαν είναι σωστά. Στη συνέχεια αυτό που θα κάνουμε είναι να εισάγουμε τρεις δοκιμαστικούς χρήστες. Αυτό φαίνεται στην παρακάτω εικόνα Εικόνα 27 Ουσιαστικά μόνο στον πίνακα με τα prepared points εισήγαμε τους παραπάνω χρήστες. Σε αυτό το σενάριο οι τρεις καταχωρίσεις έχουν περάσει από τα ίδια σημεία. Η τέταρτη είναι αυτή που εισήγαμε πιο πριν με τη χρήστη του εξομοιωτή. Τώρα λοιπόν θα τρέξουμε το ερώτημα Ποιοι πέρασαν από την Ομόνοια και στη συνέχεια από το Σύνταγμα σε ακτίνα 200 μέτρων. Ε. Μαρούλης 49

50 Εικόνα 28: Η οθόνη ρυθμίσεων. Εδώ έχουμε θέσει το όριο της απόστασης στα 200 μέτρα. Στην συνέχεια διαλέγουμε τα σημεία που θέλουμε(δεν έχει σημασία η ώρα, απλά η σειρά) Εικόνα 29 Ε. Μαρούλης 50

51 Εικόνα 30 Αφού διαλέξουμε τα σημεία στέλνουμε το ερώτημα στον server. H απάντηση φαίνεται στην παρακάτω εικόνα. Εικόνα 31 Όπως βλέπουμε οι χρήστες έχουν ταξινομηθεί με βάση το ποιος πέρασε κοντά από τα παραπάνω σημεία και ο χρήστης Stathis έχει απορριφθεί από τα αποτελέσματα καθώς είχε περάσει πρώτα από το Ομόνοια και ύστερα από το Σύνταγμα. Στη συνέχεια κάνουμε το ίδιο ερώτημα όπως πριν, αλλά με τη διαφορά ότι τώρα θέτουμε το όριο στα 100 μέτρα. Όπως είναι λογικό ο χρήστης Τest User 3 θα απορριφθεί. Ε. Μαρούλης 51

52 Εικόνα 32 Τέλος θα δοκιμάσουμε το παρακάτω σενάριο αλλά με χρήση του ακριβές χρόνου αυτή τη φορά. Οι χρήστες είναι αυτοί του παρακάτω Table τώρα. Εικόνα 33 Αυτό που έχουμε στον παραπάνω πίνακα είναι ο χρήστης Test User 4 ο οποίος πέρασε από το σύνταγμα στις 11:30 και στη συνέχεια από το Μετρό της Ηλιούπολης στις 12:00, τον Test User 5 ο οποίος πέρασε 5 λεπτά αργότερα και τέλος τον Test User 6 o οποίος πέρασε 10 λεπτά αργότερα. Αν κάνουμε αναζήτηση Ποιοι πέρασαν από το Σύνταγμα στις 11:30 και από το Μετρό της Ηλιούπολης στις 12:00 με μέγιστη απόκλιση 10 λεπτά Τότε θα δούμε τα παρακάτω Ε. Μαρούλης 52

53 Εικόνα 34 Αν μειώσουμε τη μέγιστη απόκλιση στα 5 λεπτά τότε ο Test User 5 θα αποκλειστεί από τα αποτελέσματα και τέλος αν θέσουμε μέγιστη απόκλιση 3 λεπτά και το Test User 6 θα αποκλειστεί. Εικόνα 35 Ε. Μαρούλης 53

54 Εικόνα 36 Ε. Μαρούλης 54

55 4. Ενδεικτικός Κώδικας 4.1 To activity δημιουργίας ερωτήματος package com.stathis.maps; public class RequestActivity extends Activity { public static final String PREFS_NAME = "PrefencesFile"; private GoogleMap map; JSONObject json = null; JSONObject request = new JSONObject(); boolean wait = true; int mintime = 0; String previouspoint = ""; int q = protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); if (isgoogleplay()) { setcontentview(r.layout.activity_request); setupmap(); setupsendbutton(); setupclearbutton(); JsonTask jt = new JsonTask(); jt.execute(); map.setonmarkerclicklistener(new OnMarkerClickListener() public boolean onmarkerclick(final Marker arg0) { in a row", if (arg0.gettitle().equals(previouspoint)) { Toast.makeText( RequestActivity.this, "You cannot select the same Place two times Toast.LENGTH_SHORT).show(); return false; LayoutInflater li = LayoutInflater.from(RequestActivity.this); final View v = li.inflate(r.layout.alert2layout, null); AlertDialog.Builder builter = new AlertDialog.Builder( RequestActivity.this); builter.settitle("please give time"); builter.setcancelable(true); builter.setview(v); final TextView tv = (TextView) v.findviewbyid(r.id.textview2); tv.settext(arg0.gettitle()); final TimePicker picker = (TimePicker) v.findviewbyid(r.id.timepicker1); picker.setis24hourview(true); Ε. Μαρούλης 55

56 builter.setpositivebutton("ok", new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int whichbutton) { * 3600) * 60); bigger than the previous one", int temptime = (picker.getcurrenthour() + (picker.getcurrentminute() if (temptime <= mintime) { Toast.makeText( RequestActivity.this, "Please select a time Toast.LENGTH_SHORT).show(); getsharedpreferences( temptime); block else { SharedPreferences settings = PREFS_NAME, 0); previouspoint = arg0.gettitle(); mintime = temptime; try { request.put("place" + q, arg0.gettitle()); request.put("time" + q, q++; catch (JSONException e) { // TODO Auto-generated catch e.printstacktrace(); System.out.println(picker.getCurrentHour()); ); ); AlertDialog alert = builter.create(); alert.show(); return true; private boolean isgoogleplay() { int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); if (status == ConnectionResult.SUCCESS) { return (true); else { ((Dialog) GooglePlayServicesUtil.getErrorDialog(status, this, 10)).show(); Toast.makeText(this, "Google Play is not available", Toast.LENGTH_SHORT).show(); return (false); private void setupmap() { Ε. Μαρούλης 56

57 if (map == null) { map = ((MapFragment) getfragmentmanager().findfragmentbyid( R.id.map1)).getMap(); if (map!= null) { // map.setmylocationenabled(true); map.setmaptype(map.map_type_normal); public void getpois() { try { for (int i = 0; i < json.getint("nofpois"); i++) { System.out.println(json.getDouble("lat" + i) + " " + json.getdouble("long" + i) + " " + json.getstring("place" + i)); LatLng lat = new LatLng(json.getDouble("lat" + i), json.getdouble("long" + i)); map.addmarker(new MarkerOptions().title(json.getString("place" + i)).snippet("tap to select this place").position(lat)); catch (JSONException e) { // TODO Auto-generated catch block e.printstacktrace(); private void setupsendbutton() { Button button = (Button) findviewbyid(r.id.button3); button.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { sentrequest(); private void setupclearbutton() { Button button = (Button) findviewbyid(r.id.button_clear); button.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { request = new JSONObject(); mintime = 0; previouspoint = ""; q = 0; public void sentrequest() { Thread t = new Thread() { public void run() { Looper.prepare(); // For Preparing Message Pool for the child // Thread HttpClient client = new DefaultHttpClient(); Ε. Μαρούλης 57

58 HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); // Timeout Limit HttpResponse response; try { Toast.makeText(getApplicationContext(), "ok", Toast.LENGTH_SHORT).show(); String result; HttpPost post = new HttpPost( "http://stathis.chickenkiller.com:8084/webserver/newservlet"); SharedPreferences settings = getsharedpreferences( PREFS_NAME, 0); request.put("type", "Route"); request.put("nofpoints", q); request.put("option", settings.getboolean("option", false)); request.put("distance_threshold", settings.getint("distance_threshold", 500)); request.put("time_threshold", settings.getint("time_threshold", 600)); StringEntity se = new StringEntity(request.toString()); se.setcontenttype(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); post.setentity(se); response = client.execute(post); /* Checking response */ if (response!= null) { Toast.makeText(getApplicationContext(), "Done!", Toast.LENGTH_SHORT).show(); Get InputStream in = response.getentity().getcontent(); // // the // data // in // the // entity BufferedReader reader = new BufferedReader( new InputStreamReader(in, "UTF-8"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readline())!= null) { sb.append(line + "\n"); result = sb.tostring(); System.out.println(result); request = new JSONObject(); mintime = 0; previouspoint = ""; q = 0; Intent i = new Intent(getApplicationContext(), ResultsActivity.class); i.putextra("results", result); startactivity(i); else { request = new JSONObject(); mintime = 0; previouspoint = ""; q = 0; Toast.makeText(getApplicationContext(), Ε. Μαρούλης 58

ANDROID Προγραμματισμός Εφαρμογών

ANDROID Προγραμματισμός Εφαρμογών ANDROID Προγραμματισμός Εφαρμογών Παναγιώτης Κρητιώτης ΑΜ 1607 Περιεχόμενα Εισαγωγή Βασικά Στοιχεία Χαρακτηριστικά Αρχιτεκτονική Εργαλεία Προγραμματισμού Eclipse IDE Android SDK - ADT Plugin Προσομοιωτής

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER Η εφαρμογή LiveTripTraveller διατίθεται για κινητά τηλέφωνα με λειτουργικό σύστημα Android. Στο υπο-ιστοσελίδα www.livetrips.com/sources μπορείτε να κατεβάσετε την εφαρμογή

Διαβάστε περισσότερα

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

Διαβάστε περισσότερα

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. Οδηγός Διαχειριστή Το m-learning Toolkit είναι μια ολοκληρωμένη πλατφόρμα εξ αποστάσεως εκπαίδευσης που έχει σχεδιαστεί για να υπάρχει η δυνατότητα της πρόσβασης

Διαβάστε περισσότερα

hel-col@otenet.gr Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης kparask@hellenic-college.

hel-col@otenet.gr Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης kparask@hellenic-college. Χρήση της Διεπαφής Προγραμματισμού Εφαρμογής Google Maps για τη δημιουργία διαδραστικού χάρτη με τα Μνημεία Παγκόσμιας Πολιτιστικής Κληρονομιάς της ΟΥΝΕΣΚΟ στη Θεσσαλονίκη Εμμανουήλ Τσάμης 1, Κωνσταντίνος

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

Διαβάστε περισσότερα

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Μάθημα: Ενότητα: Πληροφορική Α' Γυμν. Το του Υπολογιστή 1. Τι ονομάζεται Πρόγραμμα; Είναι οι οδηγίες που δίνονται στον υπολογιστή για να εξηγήσουμε πώς γίνεται μια εργασία (δηλαδή η

Διαβάστε περισσότερα

Οδηγίες Χρήσης της MySQL

Οδηγίες Χρήσης της MySQL ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΣΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Οδηγίες Χρήσης της MySQL Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Νοέμβριος 2007 1 Περιεχόμενα Εισαγωγή...2

Διαβάστε περισσότερα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα Λιόλιου Γεωργία ΕπιβλέπουσαΚαθηγήτρια: ΣατρατζέµηΜάγια, καθηγήτρια, τµ. ΕφαρµοσµένηςΠληροφορικής, ΠΑΜΑΚ Εισαγωγή Γενικά στοιχεία εφαρµογή

Διαβάστε περισσότερα

Οδηγίες Σύνδεσης Ασύρματου Δικτύου ΤΜΗΥ&Π. Οδηγίες Σύνδεσης για λοιπά Linux/Unix Συστήματα

Οδηγίες Σύνδεσης Ασύρματου Δικτύου ΤΜΗΥ&Π. Οδηγίες Σύνδεσης για λοιπά Linux/Unix Συστήματα Οδηγίες Σύνδεσης Ασύρματου Δικτύου ΤΜΗΥ&Π Περιεχόμενα: 1. 1. Εισαγωγικές Πληροφορίες 2. Οδηγίες Σύνδεσης για Windows XP/Vista 3. Οδηγίες Σύνδεσης για Windows 7 4. Οδηγίες Σύνδεσης για MAC OS 5. Οδηγίες

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

Διαβάστε περισσότερα

Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network).

Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network). ΙΔΡΥΜΑ ΝΕΟΛΑΙΑΣ ΚΑΙ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΥΟΥ Καλαμάτα, 2015 Το Διαδίκτυο Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network). Πρόκειται

Διαβάστε περισσότερα

1. Εισαγωγή στο ΟΠΣ - ΠΔΕ

1. Εισαγωγή στο ΟΠΣ - ΠΔΕ 1. Εισαγωγή στο ΟΠΣ - ΠΔΕ 1.1 Εισαγωγή 1.1.1 Σύντομη περιγραφή και σκοπός ΟΠΣ Το Ολοκληρωμένο Πληροφοριακό Σύστημα (Ο.Π.Σ.) αποτελεί ένα σύστημα πληροφόρησης και διαχείρισης, η χρήση του οποίου επιβάλλεται

Διαβάστε περισσότερα

GPS Tracker ΤRΑΚΚΥ Personal

GPS Tracker ΤRΑΚΚΥ Personal GPS Tracker ΤRΑΚΚΥ Personal Σας ευχαριστούμε που προτιμήσατε το σύστημα εντοπισμού / παρακολούθησης πορείας Trakky Personal. Ενσωματώνει τις τελευταίες τεχνολογίες στον τομέα του επιτρέποντάς σας να εντοπίσετε

Διαβάστε περισσότερα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ΓΙΑ ΤΗΝ ΕΞΥΠΗΡΕΤΗΣΗ ΑΣΘΕΝΩΝ ΣΥΜΒΕΒΛΗΜΕΝΟΥΣ ΜΕ ΤΟΝ Ε.Ο.Π.Υ.

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ΓΙΑ ΤΗΝ ΕΞΥΠΗΡΕΤΗΣΗ ΑΣΘΕΝΩΝ ΣΥΜΒΕΒΛΗΜΕΝΟΥΣ ΜΕ ΤΟΝ Ε.Ο.Π.Υ. Τ.Ε.Ι ΚΑΒΑΛΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ΓΙΑ ΤΗΝ ΕΞΥΠΗΡΕΤΗΣΗ ΑΣΘΕΝΩΝ» ΟΝΟΜΑΤΕΠΩΝΥΜΑ ΣΠΟΥΔΑΣΤΩΝ : ~ΔΕΛΗΓΙΑΝΝΗ ΚΥΡΙΑΚΗ, 1925~

Διαβάστε περισσότερα

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48 ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή 6 Δημιουργία λογαριασμού 13 Εγκατάσταση και λειτουργία του Skype 28 Βασικές λειτουργίες 32 Επιλογές συνομιλίας 48 Γενικές ρυθμίσεις Skype 64 Το Skype σε φορητές συσκευές 78 Εγγραφή

Διαβάστε περισσότερα

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης Σελίδα 1από ΤΕΙ ΚΑΒΑΛΑΣ Πτυχιακή εργασία Δικτυακή Εφαρμογή διαχείρισης ηλεκτρονικών εγγράφων υπηρεσίας. ΕΙΣΑΓΩΓΗ Μιλτιάδης Κακλαμάνης Σελίδα 2από Κατάλογος περιεχομένων ΕΙΣΑΓΩΓΗ...1 Σχετιζόμενα πρόσωπα...3

Διαβάστε περισσότερα

Σελίδα.1/1 www.1999.gr

Σελίδα.1/1 www.1999.gr Σελίδα.1/1 LXT-4 WATCH GPS GSM TRACKER ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ Κεφάλαιο 1 γενική εισαγωγή 1.1 Εμφάνιση 1.2 Λειτουργίες Ο κάθε επιλεγμένος αριθμός μπορεί να πάρει τις πληροφορίες θέσης άμεσα μέσω της ερώτησης SMS,

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

Θεσσαλονίκη Alert - Αναλυτική παρουσίαση εφαρμογής

Θεσσαλονίκη Alert - Αναλυτική παρουσίαση εφαρμογής Θεσσαλονίκη Alert - Αναλυτική παρουσίαση εφαρμογής Δεληγιαννίδης Θεόδωρος Περίληψη Η "Θεσσαλονίκη Alert" είναι μια εφαρμογή του τύπου crowdsourcing που αφορά το Δήμο Θεσσαλονίκης και τους πολίτες του.

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΗ JustAlert SPOTIT. Οδηγίες για την εγκατάσταση της εφαρμογής στο κινητό σας

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΗ JustAlert SPOTIT. Οδηγίες για την εγκατάσταση της εφαρμογής στο κινητό σας ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΗ JustAlert SPOTIT Συγχαρητήρια για την επιλογή σας να προμηθευτείτε την υπηρεσία JustAlert SPOTIT Μετά την ενεργοποίηση της υπηρεσίας, θα έχετε δωρεάν πρόσβαση στην προσωπική σας σελίδα

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΟΒΟΛΗΣ ΙΣΟΖΥΓΙΩΝ ΚΡΕΑΤΟΣ

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΟΒΟΛΗΣ ΙΣΟΖΥΓΙΩΝ ΚΡΕΑΤΟΣ 1. Γενικά ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΟΒΟΛΗΣ ΙΣΟΖΥΓΙΩΝ ΚΡΕΑΤΟΣ Η ηλεκτρονική υποβολή των ισοζυγίων κρέατος πραγματοποιείται μέσα από το λογισμικό Άρτεμις του Ελληνικού Γεωργικού Οργανισμού

Διαβάστε περισσότερα

Διαχείριση Δικτύων (ΕΠ 17) Εαρινό Εξάµηνο 2014-2015. Εργασία Εξαµήνου, Ηµεροµηνία Παράδοσης: Ηµέρα Εξέτασης Μαθήµατος (25/6/2015)

Διαχείριση Δικτύων (ΕΠ 17) Εαρινό Εξάµηνο 2014-2015. Εργασία Εξαµήνου, Ηµεροµηνία Παράδοσης: Ηµέρα Εξέτασης Μαθήµατος (25/6/2015) Διαχείριση Δικτύων (ΕΠ 17) Εαρινό Εξάµηνο 2014-2015 Εργασία Εξαµήνου, Ηµεροµηνία Παράδοσης: Ηµέρα Εξέτασης Μαθήµατος (25/6/2015) Οµαδική εργασία (2 ατόµων) Σε αυτή την εργασία καλείστε να υλοποιήσετε ένα

Διαβάστε περισσότερα

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ. ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ Ηλεκτρονική Υποβολή Α.Π.Δ. ΠΕΡΙΕΧΟΜΕΝΑ 1) Είσοδος στην εφαρμογή 2) Δημιουργία Περιόδου Υποβολής 2.α) Ακύρωση Περιόδου Υποβολής 3) Μέθοδος Υποβολής: Συμπλήρωση Φόρμας 3.α) Συμπλήρωση

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ DVR KTEC

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ DVR KTEC ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ DVR KTEC 1) Πατάμε δεξί κλικ Μενού 2) Όνομα Χρήστη βάζουμε «admin» 3) Κωδικός Πρόσβασης το αφήνουμε «κενό» 4) Πατάμε OK και μπαίνουμε στο Μενού Είσοδος στο μενού Στην πρώτη εκκίνηση μετά

Διαβάστε περισσότερα

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014 Εισαγωγικές έννοιες Ιωάννης Γ. Τσούλος 2014 Διάγραμμα παρουσιάσεως 1. Κατηγορίες κινητών τηλεφώνων 2. Κατηγορίες έξυπνων κινητών τηλεφώνων 3. Προγραμματισμός κινητών συσκευών 4. Ξεκίνημα με το Eclipse

Διαβάστε περισσότερα

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub Σύνοψη Σ αυτό το κεφάλαιο θα περιγράψουμε τη δημιουργία φορμών, προκειμένου να εισάγουμε δεδομένα και να εμφανίζουμε στοιχεία από τους πίνακες

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

PRISMA Win POS Sync Merge Replication

PRISMA Win POS Sync Merge Replication ΤΜΗΜΑ ΥΠΟΣΤΗΡΙΞΗΣ Οδηγός Ρυθμίσεων Συγχρονισμού PRISMA Win POS Sync Merge Replication Η διαδικασία του συγχρονισμού γίνεται από τον Η/Υ που έχει το Back Office. Βασική προϋπόθεση για να ενεργοποιηθεί ο

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 12 η Αναζήτηση/Ταξινόμηση Πίνακα Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση

Διαβάστε περισσότερα

Περιεχόµενα 1. Εγκατάσταση 2. Εισαγωγή 3. Σύνδεση 4. Ρυθµίσεις 2.1 Περιοχή εργασιών και πλοήγησης 2.2 Περιοχή απεικόνισης "Λεπτοµέρειες" 2.3 Περιοχή απεικόνισης "Στατιστικά" 4.1 Προφίλ 4.2 ίκτυο 4.2.1

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΓΙΑ ΛΟΓΙΣΜΙΚΟ CISCO JABBER ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΠΣ-ΕΔ/76

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΓΙΑ ΛΟΓΙΣΜΙΚΟ CISCO JABBER ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΠΣ-ΕΔ/76 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΓΙΑ ΛΟΓΙΣΜΙΚΟ CISCO JABBER ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΠΣ-ΕΔ/76 31/07/2014 ΠΕΡΙΕΧΟΜΕΝΑ ΕΓΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ... 3 ΛΕΙΤΟΥΡΓΙΑ

Διαβάστε περισσότερα

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425 Cloud Computing with Google and Microsoft Despoina Trikomitou Andreas Diavastos Class: EPL425 Σχεδιάγραμμα Εισαγωγή Τεχνολογίες Cloud Computing Περιγραφή Εργασίας Επιτεύγματα Εργασίας Συμπεράσματα Cloud

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

Διαβάστε περισσότερα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

Διαβάστε περισσότερα

Εγχειρίδιο Χρήσης της «Αριάδνης»

Εγχειρίδιο Χρήσης της «Αριάδνης» Εργαστήριο Εκπαιδευτικής Τεχνολογίας Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Φιλοσοφική Σχολή Τμήμα Φ.Π.Ψ., Τομέας Παιδαγωγικής Διευθυντής: Καθ. Χ. Κυνηγός Εγχειρίδιο Χρήσης της «Αριάδνης» Περιεχόμενα

Διαβάστε περισσότερα

ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr. Εγχειρίδιο Χρήσης Μελών ΔΕΠ

ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr. Εγχειρίδιο Χρήσης Μελών ΔΕΠ ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr Εγχειρίδιο Χρήσης Μελών ΔΕΠ Αναζήτηση Δημόσιου Περιεχομένου Η διεύθυνση ιστού της νεάς πλατφόρμας διαχείρισης βιντεοδιαλέξεων Δήλος είναι: http://delos.uoa.gr

Διαβάστε περισσότερα

GET SDI PORTAL v1. Οδηγός Βοήθειας

GET SDI PORTAL v1. Οδηγός Βοήθειας GET SDI PORTAL v1 Οδηγός Βοήθειας Μεταδεδομένα εγγράφου Στοιχείο/Element Τιμή/value Ημερομηνία/Date 2011-06-16 Τίτλος/Title GETSDIPortal_v1_Help_v1.0 Θέμα/Subject Οδηγός Βοήθειας Έκδοση/Version 1.0 Σελίδα

Διαβάστε περισσότερα

Εφαρμογή Διαχείρισης Ψηφιακής Πληροφορίας ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

Εφαρμογή Διαχείρισης Ψηφιακής Πληροφορίας ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε σχετικά με τον έλεγχο της καπνιστικής συνήθειας 1 25 Λογισμικές εφαρμογές καταγραφής και αξιοποίησης πληροφοριών σχετικά με τον έλεγχο της καπνιστικής συνήθειας Λογισμική Εφαρμογή Διαχείρισης Ψηφιακής

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ CLASSWEB Εισαγωγή βαθμολογιών από διδάσκοντες μέσω Διαδικτύου

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ CLASSWEB Εισαγωγή βαθμολογιών από διδάσκοντες μέσω Διαδικτύου ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΔΙΕΥΘΥΝΣΗ ΜΗΧΑΝΟΡΓΑΝΩΣΗΣ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ CLASSWEB Εισαγωγή βαθμολογιών από διδάσκοντες μέσω Διαδικτύου Συντάκτες: Παναγιώτα Μπούγια Θεοδώρα Νάνου Ιανουάριος 2015 Περιεχόμενα 1. Εισαγωγή...

Διαβάστε περισσότερα

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

Διαβάστε περισσότερα

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Τετάρτη, 30 Οκτωβρίου 2013 Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Λύστε στο Visual Basic Express 2010 τις παρακάτω ασκήσεις: 1. Να δημιουργήσετε ένα νέο Project του είδους Console

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0 ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0 20130510 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εγκατάσταση προγράμματος DCAD 2 2. Ενεργοποίηση Registration 2 3. DCAD 3 3.1 Εισαγωγή σημείων 3 3.2 Εξαγωγή σημείων 5 3.3 Στοιχεία ιδιοκτησίας

Διαβάστε περισσότερα

Τετράδια Κιθάρας. Χρήση του PowerTab

Τετράδια Κιθάρας. Χρήση του PowerTab Τετράδια Κιθάρας Extra ενότητα Χρήση του PowerTab Ευγένιος Αστέρις 1 Περιεχόμενα Πρόλογος... 3 Εγκατάσταση του Power Tab... 4 Εισαγωγή ενός αρχείου midi στο Power Tab... 5 Μελέτη με το Power Tab... 9 Εξήγηση

Διαβάστε περισσότερα

Π ΑΝΕΠΙΣΤΗΜΙΟ Π ΑΤΡΩΝ Π ΟΛΥΤΕΧΝΙΚΗ Σ ΧΟΛΗ Τ ΜΗΜΑ Μ ΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ Π ΛΗΡΟΦΟΡΙΚΗΣ Κ ΑΤΑΝΕΜΗΜΕΝΑ Σ ΥΣΤΗΜΑΤΑ ΙΙ

Π ΑΝΕΠΙΣΤΗΜΙΟ Π ΑΤΡΩΝ Π ΟΛΥΤΕΧΝΙΚΗ Σ ΧΟΛΗ Τ ΜΗΜΑ Μ ΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ Π ΛΗΡΟΦΟΡΙΚΗΣ Κ ΑΤΑΝΕΜΗΜΕΝΑ Σ ΥΣΤΗΜΑΤΑ ΙΙ Π ΑΝΕΠΙΣΤΗΜΙΟ Π ΑΤΡΩΝ Π ΟΛΥΤΕΧΝΙΚΗ Σ ΧΟΛΗ Τ ΜΗΜΑ Μ ΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ Π ΛΗΡΟΦΟΡΙΚΗΣ Κ ΑΤΑΝΕΜΗΜΕΝΑ Σ ΥΣΤΗΜΑΤΑ ΙΙ Αδάμ Γιώργος Γκορτσίλας Δημήτρης Οικονομίδης Γιάννης 2009 TARIFA Project 1. Περιγραφή προβλήματος-αρχιτεκτονική

Διαβάστε περισσότερα

Οδηγίες χρήσης για την εφαρµογή Spot4U

Οδηγίες χρήσης για την εφαρµογή Spot4U Οδηγίες χρήσης για την εφαρµογή Spot4U 1 Βασικές οδηγίες Λήψη Κατηγοριών Μετά την εγκατάσταση του Spot4U το πρώτο βήµα που θα πρέπει να κάνει ο χρήστης είναι να επιλέξει το Λήψη Κατηγοριών ώστε να ενηµερωθεί

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΠΛΑΤΦΟΡΜΑΣ OPENSMS WWW.OPENSMS.GR

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΠΛΑΤΦΟΡΜΑΣ OPENSMS WWW.OPENSMS.GR ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΠΛΑΤΦΟΡΜΑΣ OPENSMS WWW.OPENSMS.GR Τηλέφωνο: 2810-211111 Διαδικασία εισόδου στο opensms Η πρόσβαση στην πλατφόρμα του opensms πραγματοποιείται με την εισαγωγή του Ονόματος χρήστη και του

Διαβάστε περισσότερα

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Πως θα κατασκευάσω το πρώτο πρόγραμμα; Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να γίνει εξοικείωση το μαθητών με τον ΗΥ και το λειτουργικό σύστημα. - Επίδειξη του My Computer

Διαβάστε περισσότερα

Βάσεις δεδομένων (Access)

Βάσεις δεδομένων (Access) Βάσεις δεδομένων (Access) Όταν εκκινούμε την Access εμφανίζεται το παρακάτω παράθυρο: Για να φτιάξουμε μια νέα ΒΔ κάνουμε κλικ στην επιλογή «Κενή βάση δεδομένων» στο Παράθυρο Εργασιών. Θα εμφανιστεί το

Διαβάστε περισσότερα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

Διαβάστε περισσότερα

Πως να εισάγετε λίστες αναπαραγωγής διαφημίσεων

Πως να εισάγετε λίστες αναπαραγωγής διαφημίσεων JAZLER RADIOSTAR ΕΓΧΕΙΡΙΔΙΟ Πως να εισάγετε λίστες αναπαραγωγής διαφημίσεων - Ο οδηγός αυτός απευθύνεται σε έκδοση 2.8.10 ή μεγαλύτερη του Jazler RadioStar - Ο οδηγός αυτός προϋποθέτει βασικές γνώσεις

Διαβάστε περισσότερα

Ημερομηνία Παράδοσης: 4/4/2013

Ημερομηνία Παράδοσης: 4/4/2013 Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας

Διαβάστε περισσότερα

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Σ ε λ ί δ α 1 Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Περιεχόμενα 1. Download Arebas Easy... 2 2. Εγκατάσταση Arebas Easy... 3 3. Εγγραφή στον Arebas Server... 7 4. Παραμετροποίηση Arebas Easy...

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗ «ΟΔΗΓΩ ΛΙΓΟ - ΠΛΗΡΩΝΩ ΛΙΓΟ»

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗ «ΟΔΗΓΩ ΛΙΓΟ - ΠΛΗΡΩΝΩ ΛΙΓΟ» ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗ «ΟΔΗΓΩ ΛΙΓΟ - ΠΛΗΡΩΝΩ ΛΙΓΟ» Ιούλιος 2015 Εφαρμογή για κινητά: «Οδηγώ λίγο Πληρώνω λίγο» Διαθεσιμότητα εφαρμογής Η εφαρμογή είναι διαθέσιμη δωρεάν στο App Store (έκδοση ios 7.1 και

Διαβάστε περισσότερα

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω.

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω. Τι είναι το debug μαμα? Με απλά λόγια, debug (αποσφαλμάτωση αλλά που να κάθεσαι να το πεις), είναι η διαδικασία εντοπισμού και διόρθωσης σφαλμάτων που υπάρχουν σε κώδικα (ασχέτως γλώσσας προγραμματισμού).

Διαβάστε περισσότερα

Εργαστήριο #10 (Ε10) 1

Εργαστήριο #10 (Ε10) 1 Εργαστήριο #10 Από τα προηγούμενα εργαστήρια......θα χρειαστείτε ορισμένες από τις οδηγίες μορφοποίησης CSS (ανατρέξτε στις εκφωνήσεις του 8 ου και 9 ου εργαστηρίου).! Οδηγίες Στη δυναμική δημιουργία ιστοσελίδων

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ GRS-1

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ GRS-1 ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ GRS-1 Σελίδα 1 ΓΕΝΙΚΑ - ΕΙΣΑΓΩΓΗ Το GRS-1 της TOPCON διαθέτει λειτουργικό σύστημα Windows CE NET 6.1 παρέχοντας την δυνατότητα εγκατάστασης οποιασδήποτε εφαρμογής και λογισμικού έκδοσης

Διαβάστε περισσότερα

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών ΤΗΜΜΥ Α.Π.Θ 2015-2016 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ.

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών ΤΗΜΜΥ Α.Π.Θ 2015-2016 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών 5 Εξάμηνο ΤΗΜΜΥ Α.Π.Θ 2015-2016 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ DS Prximity Το παιχνίδι Το Prximity είναι ένα παιχνίδι στρατηγικής,

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95 ΚΕΦΑΛΑΙΟ 4 Τεχνική Ανίχνευσης του ICMP Echo Spoofing Πτυχιακή Εργασία Σελίδα 95 Περιεχόμενα ΕΙΣΑΓΩΓΗ 98 ΜΕΡΟΣ Α: Έλεγχος του Icmp Echo Reply Πακέτου 103 A.1. Ανίχνευση του spoofed Icmp Echo Request Πακέτου.

Διαβάστε περισσότερα

Οδηγίες Χρήσης του Jitsi 2.0

Οδηγίες Χρήσης του Jitsi 2.0 Οδηγίες Χρήσης του Jitsi 2.0 (Για όλα τα Λειτουργικά Συστήματα) Το Jitsi (πρώην SIP Communicator) είναι ένα πρόγραμμα επικοινωνίας με ήχο/εικόνα και chat που υποστηρίζει πρωτόκολλα επικοινωνίας SIP, XMPP/Jabber,

Διαβάστε περισσότερα

Επίλυση προβλήματος με Access

Επίλυση προβλήματος με Access Δ.1. Το προς επίλυση πρόβλημα Ζητείται να κατασκευάσετε τα αρχεία και τα προγράμματα μιας εφαρμογής καταχώρησης Δαπανών μελών ΔΕΠ (Διδακτικό και Ερευνητικό Προσωπικό) για την παρακολούθηση του απολογισμού

Διαβάστε περισσότερα

Υπηρεσία Απομακρυσμένης Πρόσβασης VPN Οδηγός Εγκατάστασης και Διαμόρφωσης για χρήστες λειτουργικών συστημάτων MAC OS X

Υπηρεσία Απομακρυσμένης Πρόσβασης VPN Οδηγός Εγκατάστασης και Διαμόρφωσης για χρήστες λειτουργικών συστημάτων MAC OS X ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΔΙΚΤΥΩΝ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Υπηρεσία Απομακρυσμένης Πρόσβασης VPN Οδηγός Εγκατάστασης και Διαμόρφωσης για χρήστες λειτουργικών συστημάτων MAC OS X ΥΠΣ ΕΔ/49 12 Αυγούστου

Διαβάστε περισσότερα

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης Κατάλογος Περιεχομένων 1 ΑΣΎΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΊΑ ΚΑΙ PGP...- 3-1.1 ΕΙΣΑΓΩΓΉ...- 3-1.2 ΤΙ ΕΊΝΑΙ ΤΟ PGP;...- 4-1.3 ΤΟ PGP ΒΉΜΑ ΒΉΜΑ......-

Διαβάστε περισσότερα

Οδηγός Χρήσης της Υπηρεσίας Τηλεομοιότυπου (RightFax Fax Service) Web Utility. (διαδικτυακή εφαρμογή)

Οδηγός Χρήσης της Υπηρεσίας Τηλεομοιότυπου (RightFax Fax Service) Web Utility. (διαδικτυακή εφαρμογή) ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΔΙΚΤΥΩΝ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Οδηγός Χρήσης της Υπηρεσίας Τηλεομοιότυπου (RightFax Fax Service) Web Utility (διαδικτυακή εφαρμογή) Αύγουστος 2011 ΠΕΡΙΕΧΟΜΕΝΑ 1. Πρόσβαση

Διαβάστε περισσότερα

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

Διαβάστε περισσότερα

website guide B2B e-shop

website guide B2B e-shop website guide B2B e-shop Η ιστοσελίδα της Sun Electronics κατασκευάστηκε για να παρέχει χρήσιμες πληροφορίες τόσο στους συνεργάτες της όσο και στους τελικούς καταναλωτές. Σχεδιάστηκε έτσι ώστε η τιμολογιακή

Διαβάστε περισσότερα

YourSMS User s Manual

YourSMS User s Manual YourSMS User s Manual Contents Πίνακας περιεχομένων Κεντρική οθόνη... 2 Αποστολές... 3 Αποστολή μοναδικού μηνύματος... 3 Αποστολή μαζικού μηνύματος σε ομάδα παραληπτών... 4 Αποστολή μαζικού προγραμματισμένου

Διαβάστε περισσότερα

Survey 123 User Manual

Survey 123 User Manual Survey 123 User Manual 1. Γενικά για το πρόγραμμα 2. Έναρξη προγράμματος 3. Ορισμός χρηστών εφαρμογής 4. Επιλογή - Άνοιγμα έρευνας 5. Δημιουργία νέας έρευνας 6. Δημιουργία έρευνας με βάση το ερωτηματολόγιο

Διαβάστε περισσότερα

Social Network : Programming on FACEBOOK

Social Network : Programming on FACEBOOK Social Network : Programming on FACEBOOK Συντελεστές: Παύλος Τούλουπος Ευθυμία Παπαδοπούλου Ξάνθη Μάρκου Κοινωνικά Δίκτυα Κοινωνικό δίκτυο προέρχεται από την ψυχολογία αφορά μια κοινωνική δομή ατόμων τα

Διαβάστε περισσότερα

Βασικές Οδηγίες Χρήσης της Εφαρμογής

Βασικές Οδηγίες Χρήσης της Εφαρμογής Βασικές Οδηγίες Χρήσης της Εφαρμογής Σύνδεση στην Εφαρμογή Πριν ξεκινήσετε την εργασία σας με το Σύστημα Διαχείρισης Εφαρμογών του ΚΕΠΕΑ πρέπει να συνδεθείτε δίνοντας το username και το password που σας

Διαβάστε περισσότερα

Αξιολόγηση της επίσημης Moodle Mobile εφαρμογής

Αξιολόγηση της επίσημης Moodle Mobile εφαρμογής Αξιολόγηση της επίσημης Moodle Mobile εφαρμογής ΣΕΜΙΝΑΡΙΟ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΛΟΓΙΣΜΙΚΟΥ ΑΛΕΞΑΝΔΡΟΣ ΚΑΝΤΑΣ ΠΡΩΤΟ ΣΕΜΙΝΑΡΙΟ ΔΕΥΤΕΡΟΥ ΚΥΚΛΟΥ ΕΚΠΑΙΔΕΥΣΗΣΗΣ ΜΟΝΑΔΕΣ ΑΡΙΣΤΕΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΚΡΗΤΗΣ Αυτή η εργασία

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τµήµα Πληροφορικής ΕΠΛ 646 Προχωρηµένα Θέµατα Βάσεων Δεδοµένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τµήµα Πληροφορικής ΕΠΛ 646 Προχωρηµένα Θέµατα Βάσεων Δεδοµένων ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τµήµα Πληροφορικής ΕΠΛ 646 Προχωρηµένα Θέµατα Βάσεων Δεδοµένων ΑΣΚΗΣΗ 3 ΝοSQL Βάσεις Δεδοµένων (Δηµιουργία Εφαρµογής για Επερωτήσεις σε Web 2.0 APIs) Ι. Στόχος Άσκησης Ηµεροµηνία Ανάθεσης:

Διαβάστε περισσότερα

Ανάπτυξη Plugins για το AgentSheets

Ανάπτυξη Plugins για το AgentSheets Ανάπτυξη Plugins για το AgentSheets Thought Amplifier AgentSheets Ανάπτυξη Plugins AgentSheets 2.5 Συγγραφείς Τεκµηρίωσης: Alexander Repenning και Ronald Sudomo Εξελληνισµός Τεκµηρίωσης: Λίνος Βίγκλας,

Διαβάστε περισσότερα

Using Google Maps Engine Connector for QGIS

Using Google Maps Engine Connector for QGIS Using Google Maps Engine Connector for QGIS QGIS Tutorials and Tips Author Ujaval Gandhi http://google.com/+ujavalgandhi Translations by Christina Dimitriadou Paliogiannis Konstantinos Tom Karagkounis

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

Διαβάστε περισσότερα

Εγχειρίδιο Συντονιστή Τηλεδιασκέψεων Υπηρεσίας e:presence

Εγχειρίδιο Συντονιστή Τηλεδιασκέψεων Υπηρεσίας e:presence Εγχειρίδιο Συντονιστή Τηλεδιασκέψεων Υπηρεσίας e:presence Έκδοση 1.3 Ιούνιος 2014 Περιεχόμενα Εφαρμογή Διαχείρισης Τηλεδιασκέψεων... 2 Προβολή τηλεδιασκέψεων... 3 Προσθήκη τηλεδιάσκεψης... 4 Τροποποίηση

Διαβάστε περισσότερα

QEMS TUTORIAL CRM. Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS.

QEMS TUTORIAL CRM. Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS. QEMS TUTORIAL CRM Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS. ΕΚΔΟΣΗ 1.0.1 + 26/6/2014 ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ... 2 LOGIN... 3 δικαιωματα ΕΦΑΡΜΟΓΗς... 4 ΙΔΙΟΚΤΗΤΗΣ... 4 ADMIN / MANAGER... 4 ΥΠΑΛΗΛΟΣ...

Διαβάστε περισσότερα

Οδηγός γρήγορης εγκατάστασης. (Για Windows και MAC) Ασύρματη κάμερα IP HD περιστροφής / κλισης για εσωτερικούς χώρους v3.14

Οδηγός γρήγορης εγκατάστασης. (Για Windows και MAC) Ασύρματη κάμερα IP HD περιστροφής / κλισης για εσωτερικούς χώρους v3.14 Οδηγός γρήγορης εγκατάστασης (Για Windows και MAC) Ασύρματη κάμερα IP HD περιστροφής / κλισης για εσωτερικούς χώρους v3.14 Περιεχόμενα συσκευασίας 1 Εισαγωγή στο υλικό Εξωτερική περιγραφή ΔΙΑΦΟΡΕΣ Μοντέλο

Διαβάστε περισσότερα

ΑΡΧΕΙΟ ΕΚΘΕΣΕΩΝ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 8 ΝΟΕΜΒΡΙΟΥ 2014

ΑΡΧΕΙΟ ΕΚΘΕΣΕΩΝ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 8 ΝΟΕΜΒΡΙΟΥ 2014 8 ΝΟΕΜΒΡΙΟΥ 2014 ΑΡΧΕΙΟ ΕΚΘΕΣΕΩΝ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΝΙΚΟΛΑΟΣ ΜΙΧΑΛΟΔΗΜΗΤΡΑΚΗΣ ΝΙΚΟΛΑΟΣ ΜΙΧΑΛΟΔΗΜΗΤΡΑΚΗΣ - ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ ΥΠΗΡΕΣΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Σολωμού 41, 71306, Ηράκλειο Κρήτης τηλ/φαξ:

Διαβάστε περισσότερα

Ενημέρωση σε Windows 8.1 από τα Windows 8

Ενημέρωση σε Windows 8.1 από τα Windows 8 Ενημέρωση σε Windows 8.1 από τα Windows 8 Τα Windows 8.1 και τα Windows RT 8.1 είναι βασισμένα στα Windows 8 και στα Windows RT, για να σας προσφέρουν βελτιώσεις στην εξατομίκευση, την αναζήτηση, τις εφαρμογές,

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

Open eclass 2.2 - Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

Open eclass 2.2 - Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Open eclass 2.2 - Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Οδηγίες Αναβάθμισης (Upgrade) Ομάδα Εργασίας: Τσιμπάνης Κωνσταντίνος, Εξηνταρίδης Γιάννης Αθήνα, 30 Σεπτεμβρίου 2009 Εισαγωγή Η πλατφόρμα Open eclass

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ GPRS 1. ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ GOOGLE EARTH

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ GPRS 1. ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ GOOGLE EARTH Αχαρναί 20.7.09 ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ GPRS 1. ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ GOOGLE EARTH Για τη σωστή λειτουργία του προγράμματος πρέπει να έχετε εγκαταστήσει στον υπολογιστή σας το λογισμικό χαρτογράφησης

Διαβάστε περισσότερα

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

Διαβάστε περισσότερα

Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Έκδοση 0.1.

Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Έκδοση 0.1. Κομβικό Σημείο Επαφής Υπουργείου Εσωτερικών Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ Έκδοση 0.1. Νοέμβρης 2014 Περιεχόμενα 1. ΕΙΣΑΓΩΓΗ... 2 2.

Διαβάστε περισσότερα

Lexicon Software Pachutzu

Lexicon Software Pachutzu Pachutzu Περιεχόμενα Ε Γ Κ Α Τ Α Σ Τ Α Σ Η... 2 Κύρια Οθόνη εφαρμογής... 3 Τρόπος Αποστολής... 7 Fax... 8 Δίνοντας την δυνατότητα διαγραφής από την λίστα... 9 Απορριφθέντα... 10 Ε Γ Κ Α Τ Α Σ Τ Α Σ Η Τοποθετήστε

Διαβάστε περισσότερα

ΘΕΜΑ ΠΤΥΧΙΑΚΗΣ : ΜΗΧΑΝΙΣΜΟΙ ΣΥΛΛΟΓΗΣ ΣΤΟΙΧΕΙΩΝ ΣΤΟ ΔΙΑΔΥΚΤΙΟ (COOKIES)

ΘΕΜΑ ΠΤΥΧΙΑΚΗΣ : ΜΗΧΑΝΙΣΜΟΙ ΣΥΛΛΟΓΗΣ ΣΤΟΙΧΕΙΩΝ ΣΤΟ ΔΙΑΔΥΚΤΙΟ (COOKIES) ΘΕΜΑ ΠΤΥΧΙΑΚΗΣ : ΜΗΧΑΝΙΣΜΟΙ ΣΥΛΛΟΓΗΣ ΣΤΟΙΧΕΙΩΝ ΣΤΟ ΔΙΑΔΥΚΤΙΟ (COOKIES) ΣΕΡΕΣΙΩΤΗ ΜΑΡΙΑ ΕΞΑΜΗΝΟ : ΠΤΥΧΙΟ Α.Μ 1999 ΥΠΕΥΘΥΝΟΣ ΚΑΘΗΓΗΤΗΣ κος ΛΕΩΝΙΔΑΣ ΤΣΙΑΝΤΗΣ ΔΩΡΟ -ΕΚΠΛΗΞΗ COOKIES ΤΙ ΕΙΝΑΙ ΤΑ COOKIES ΕΙΝΑΙ

Διαβάστε περισσότερα

Κατασκευή Πληροφοριακού Συστήματος Διαχείρισης Στόλου Οχημάτων

Κατασκευή Πληροφοριακού Συστήματος Διαχείρισης Στόλου Οχημάτων Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Κατασκευή Πληροφοριακού Συστήματος Διαχείρισης Στόλου Οχημάτων ΚΕΧΑΓΙΑΣ ΑΠΟΣΤΟΛΟΣ ΕΠΙΒΛΕΠΩΝ: ΔΑΣΥΓΕΝΗΣ ΜΗΝΑΣ Περίγραμμα 1.

Διαβάστε περισσότερα

Μοντελοποίηση Συστημάτων

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

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ ΟΔΗΓΟΣ ΣΥΝΔΕΣΗΣ ΣΤO ΔΙΚΤΥΟ ΤΟΥ ΤΠΚ ΜΕΣΩ ΤΗΣ ΥΠΗΡΕΣΙΑΣ ΑΠΟΜΑΚΡΥΣΜΕΝΗΣ ΠΡΟΣΒΑΣΗΣ VPN ΥΣΠΤ Η υπηρεσία πρόσβασης στο δίκτυο δεδομένων του ΤΠΚ μέσω εικονικού ιδιωτικού δικτύου

Διαβάστε περισσότερα

Ιδρυματικό Αποθετήριο ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

Ιδρυματικό Αποθετήριο ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Ιδρυματικό Αποθετήριο ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Οδηγίες κατάθεσης εργασίας στο σύστημα διαχείρισης αποθετηρίου DSpace 2 Κατάθεση εργασίας στο σύστημα Ιδρυματικού Αποθετηρίου 1. Είσοδος στο σύστημα 1. Ανοίγουμε

Διαβάστε περισσότερα

Εγχειρίδιο Χρήσης Φορέα Πιστοποίησης

Εγχειρίδιο Χρήσης Φορέα Πιστοποίησης Εγχειρίδιο Χρήσης Φορέα Πιστοποίησης ΕΙΣΟΔΟΣ ΣΤΗΝ ΕΦΑΡΜΟΓΗ Για την είσοδο στην εφαρμογή απαιτείται, 1. Πλοηγός ιστοσελίδων (Internet Explorer, Mozilla Firefox, Google Chrome, Netscape Navigator), 2. Όνομα

Διαβάστε περισσότερα

Διαβάστε στο Παράρτημα Α.1 πώς θα γράψετε ένα πρόγραμμα PHP για την παροχή δεδομένων σε μορφή διαφορετική από την HTML.

Διαβάστε στο Παράρτημα Α.1 πώς θα γράψετε ένα πρόγραμμα PHP για την παροχή δεδομένων σε μορφή διαφορετική από την HTML. Εργαστήριο #13 Από τα προηγούμενα εργαστήρια: Θα πρέπει να έχετε ολοκληρώσει το 11 ο (προσπέλαση βάσης δεδομένων μέσω PHP και 12 ο εργαστήριο (βασικές τεχνικές JavaScript στον browser). Οδηγίες Στο τελευταίο

Διαβάστε περισσότερα

GobiExport: Millennium Orders Γ Ρ Α Φ Ε Ι Ο Δ Ι Α Χ Ε Ι Ρ Ι Σ Η Σ Υ Λ Ι Κ Ο Υ - Τ Μ Η Μ Α Π Α Ρ Α Γ Γ Ε Λ Ι Ω Ν Ε Ν Τ Υ Π Ο Υ Υ Λ Ι Κ Ο Υ

GobiExport: Millennium Orders Γ Ρ Α Φ Ε Ι Ο Δ Ι Α Χ Ε Ι Ρ Ι Σ Η Σ Υ Λ Ι Κ Ο Υ - Τ Μ Η Μ Α Π Α Ρ Α Γ Γ Ε Λ Ι Ω Ν Ε Ν Τ Υ Π Ο Υ Υ Λ Ι Κ Ο Υ GobiExport: Millennium Orders 1 Τι είναι το GOBI3; Το GOBI3 (Global Online Bibliographic Information) είναι ένα διαδικτυακό εργαλείο του YBP (Baker & Taylor) που χρησιμοποιείται από ακαδημαϊκούς, ερευνητές

Διαβάστε περισσότερα

XAMPP Apache MySQL PHP javascript xampp

XAMPP Apache MySQL PHP javascript xampp XAMPP Το xampp είναι ένα δωρεάν πρόγραμμα με το οποίο μπορούμε να κάνουμε εγκατάσταση τον Apache, τη MySQL και την PHP. Apache. Ο Apache είναι ένας Web Server. Είναι δηλαδή πρόγραμμα το οποίο τρέχει μόνιμα

Διαβάστε περισσότερα

K9 Γονικός έλεγχος. Εισαγωγή

K9 Γονικός έλεγχος. Εισαγωγή Εισαγωγή Το Κ9 αποτελεί ένα εύχρηστο πρόγραμμα γονικού ελέγχου με το οποίο μπορούμε να φιλτράρουμε τις δραστηριότητες του παιδιού μας στο Διαδίκτυο. Το παρόν αποτελεί ένα συνοπτικό οδηγό για την εγκατάσταση

Διαβάστε περισσότερα

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 INTERNET PHONE

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 INTERNET PHONE INTERNET PHONE A.S. DRIGAS Applied Technologies Department NCSR DEMOKRITOS Ag. Paraskevi GREECE dr@imm.demokritos.gr http://imm.demokritos.gr Το Internet Phone θέτει καινούργια δεδοµένα για την επικοινωνία

Διαβάστε περισσότερα