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

Μέγεθος: 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) Ε. Μαρούλης 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 Εμφάνισης των αποτελεσμάτων Ε. Μαρούλης 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( " 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

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...

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

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

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

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

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

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

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

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

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

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

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 1 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΑΝΑΛΥΣΗ ΜΕΝΟΥ ΕΦΑΡΜΟΓΗΣ... 4 2. ΕΠΕΞΗΓΗΣΗ ΚΕΝΤΡΙΚΟΥ ΜΕΝΟΥ ΚΑΡΤΕΛΑΣ... 5 3. ΔΗΜΙΟΥΡΓΙΑ ΠΕΛΑΤΗ... 6 4. ΑΝΑΖΗΤΗΣΗ ΠΕΛΑΤΗ... 6 5. ΕΠΕΞΕΡΓΑΣΙΑ/ΔΙΑΓΡΑΦΗ

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο 2016-2017 Υποχρεωτική εργασία Τα τελευταία χρόνια, λόγω της τεράστιας αύξησης της ποσότητας της πληροφορίας που έχουμε

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

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

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

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

άσκηση Hide UI Elements 7.2 Try and Catch

άσκηση Hide UI Elements 7.2 Try and Catch 7.1 Hide UI Elements Στο Android Studio όταν θέλουμε να κρύψουμε οτιδήποτε (κάποιο Button, ένα TextView, ένα ImageView κλπ) μπορούμε να χρησιμοποιήσουμε την παρακάτω εντολή: setvisibility(view.invisible)

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

WiFi V-Timer ΕΚΔΟΣΗ 2Η

WiFi V-Timer ΕΚΔΟΣΗ 2Η ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ WiFi V-Timer ΕΚΔΟΣΗ 2Η 1 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΓΝΩΡΙΜΙΑ ΜΕ ΤΟ WiFi V-Timer... 3 2. ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΤΟΥ WiFi V-Timer... 4 3. ΤΟΠΙΚΟΣ ΧΕΙΡΙΣΜΟΣ ΤΟΥ WiFi V-Timer... 5 4. ΕΓΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ

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

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

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

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

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

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

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

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

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

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

ΕΦΑΡΜΟΓΗ ΣΕ ΚΙΝΗΤΟ ΤΗΛΕΦΩΝΟ Ή ΤΑΜΠΛΕΤ ΓΙΑ ΤΗΝ ΚΑΤΑΓΡΑΦΗ ΤΗΣ ΘΕΣΗΣ ΚΑΙ ΤΩΝ ΟΡΙΩΝ ΤΩΝ ΙΔΙΟΚΤΗΣΙΩΝ:myktimapoints

ΕΦΑΡΜΟΓΗ ΣΕ ΚΙΝΗΤΟ ΤΗΛΕΦΩΝΟ Ή ΤΑΜΠΛΕΤ ΓΙΑ ΤΗΝ ΚΑΤΑΓΡΑΦΗ ΤΗΣ ΘΕΣΗΣ ΚΑΙ ΤΩΝ ΟΡΙΩΝ ΤΩΝ ΙΔΙΟΚΤΗΣΙΩΝ:myktimapoints ΕΛΛΗΝΙΚΟ ΚΤΗΜΑΤΟΛΟΓΙΟ ΓΡΑΦΕΙΑ ΚΤΗΜΑΤΟΓΡΑΦΗΣΗΣ, ΕΝΗΜΕΡΩΣΗΣ ΚΑΙ ΣΥΛΛΟΓΗΣ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΕΘΝΙΚΟ ΚΤΗΜΑΤΟΛΟΓΙΟ ΠΕ ΛΑΣΙΘΙΟΥ (Άγιος Νικόλαος, Ιεράπετρα, Νεάπολη, Σητεία, Τζερμιάδο). ΕΦΑΡΜΟΓΗ ΣΕ ΚΙΝΗΤΟ ΤΗΛΕΦΩΝΟ

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

APP INVENTOR ΟΔΗΓΟΣ 8 Οκτωβρίου 2018

APP INVENTOR ΟΔΗΓΟΣ 8 Οκτωβρίου 2018 Πώς φτιάχνω Εφαρμογές για Android με το App Inventor Έχετε μια ιδέα για μια mobile εφαρμογή, αλλά δεν ξέρετε πώς να την υλοποιήσετε; Το App Inventor είναι ένα χρήσιμο εργαλείο για κάθε αρχάριο προγραμματιστή

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

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

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

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 ELab Π Τ Υ Χ Ι Α

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

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

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

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

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

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

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

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

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

8 Maps. 8.1 Δημουργία Activity με χάρτη

8 Maps. 8.1 Δημουργία Activity με χάρτη 8 Maps Ένα πολύ σημαντικό κομμάτι πολλών εφαρμογών για κινητά, χρησιμοποιούν χάρτες και τη θέση του χρήστη για να πραγματοποιήσουν κάποιες λειτουργίες που δεν είναι δυνατόν να συμβούν με έναν απλό υπολογιστή.

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

Βασικές Έννοιες Web Εφαρμογών

Βασικές Έννοιες Web Εφαρμογών ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Τεχνολογίες και Εφαρμογές Διαδικτύου Βασικές Έννοιες Web Εφαρμογών Κατερίνα Πραματάρη Τεχνολογίες και Εφαρμογές Διαδικτύου Περιεχόμενα

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

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites Σκοπός της 10ης άσκησης είναι να μάθουμε να χρησιμοποιούμε sprites και να φτιάξουμε ένα παιχνίδι που χρησιμοποιεί συγκρούσεις. Θα δούμε επίσης μερικά

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

Υπηρεσία διαμοιρασμού αρχείων

Υπηρεσία διαμοιρασμού αρχείων 7 Ιουνίου 2013 Υπηρεσία διαμοιρασμού αρχείων Πανεπιστήμιο Κύπρου, Τμήμα Πληροφορικής Ομάδα Τεχνικής Υποστήριξης v0.4 Πίνακας περιεχομένων Γενικά... 2 Διαθεσιμότητα... 2 Πρόσβαση... 2 Φυλλομετρητή ιστού...

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

10 Νέα χαρακτηριστικά του Facebook που (πιθανόν) δεν γνωρίζεις

10 Νέα χαρακτηριστικά του Facebook που (πιθανόν) δεν γνωρίζεις 10 Νέα χαρακτηριστικά του Facebook που (πιθανόν) δεν γνωρίζεις 6 Μαρτίου 2016 Παναγιώτης Σακαλάκης Αν υπάρχει κάτι που γνωρίζει ο περισσότερος κόσμος για το Facebook, αυτό είναι πως κατέχει την πρώτη θέση

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

HTTP API v1.6 SMSBOX.GR HTTP API v

HTTP API v1.6 SMSBOX.GR HTTP API v SMSBOX.GR HTTP API v 1.6 23.6.17 Αποστολή SMS Η χρήση του HTTP Api της smsbox.gr σας επιτρέπει να συνδεθείτε με το σύστημά μας και να στείλετε εύκολα sms από την δικιά σας ιστοσελίδα ή εφαρμογή. Μπορεί

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ»

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ» ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ» ΗΜΕΡ.ΑΝΑΘΕΣΗΣ: Δευτέρα 21 Δεκεμβρίου 2015 ΗΜΕΡ.ΠΑΡΑΔΟΣΗΣ: Δευτέρα 25 Ιανουαρίου 2016 Διδάσκοντες:

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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

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

Vodafone Business Connect

Vodafone Business Connect Vodafone Business Connect Vodafone Business WebHosting Αναλυτικός Οδηγός Χρήσης MSSQL Manager Αναλυτικός οδηγός χρήσης: MS SQL Manager Vodafone Business Connect - Υπηρεσίες φιλοξενίας εταιρικού e-mail

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

Management School School Profile Save

Management School School Profile Save School School Profile Ο School Manager μπορεί να δει και να επεξεργαστεί γενικές πληροφορίες για το σχολείο που ανήκει και διαχειρίζεται. Από το κεντρικό μενού Management School School Profile. Η σελίδα

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

Τύποι δεδομένων, τελεστές, μεταβλητές

Τύποι δεδομένων, τελεστές, μεταβλητές Τύποι δεδομένων, τελεστές, μεταβλητές Βασικά στοιχεία της γλώσσας Η Java χαρακτηρίζεται από ένα αρκετά καλά οργανωμένο σύνολο εντολών κι ένα μέρος της επιτυχίας της οφείλεται στα διάφορα APIs (βιβλιοθήκες)

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

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

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

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

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

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

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

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

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

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

Οδηγίες Σύνδεσης Ασύρματου Δικτύου ΤΜΗΥ&Π. Οδηγίες Σύνδεσης για λοιπά 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 προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος

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

Υπολογισμός και αποστολή Αναλυτικής Περιοδικής Δήλωσης

Υπολογισμός και αποστολή Αναλυτικής Περιοδικής Δήλωσης Υπολογισμός και αποστολή Αναλυτικής Περιοδικής Δήλωσης Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της Διαδικασίας υπολογισμού και αυτόματης υποβολής της Αναλυτικής Περιοδικής

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

Management Classes Create Class Create Class Management Classes List of Classes

Management Classes Create Class Create Class Management Classes List of Classes Class Create Class Ο Teacher μπορεί να δημιουργήσει τάξεις για το σχολείο του από το κεντρικό μενού Management Classes Create Class. Αυτή η λειτουργία είναι διαθέσιμη και για τους καθηγητές εφόσον το επιτρέψει

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

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

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

Με την αλλαγή των μεταβλητών σελιδοποίησης αυτόματα ρυθμίζετε το νέο όριο για τα άρθρα και τα αποτελέσματα αναζήτησης. Γενικές Ρυθμίσεις Στην ενότητα αυτή θα περιγράψουμε τις λειτουργίες των Γενικών Ρυθμίσεων. Εκεί αποθηκεύονται όλες οι ρυθμίσεις του Guru CMS. Εάν κάνετε κλικ στο σύνδεσμο "Γενικές Ρυθμίσεις" από την κύρια

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

Συνοπτικό εγχειρίδιο χρήσης του 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. Βασική προϋπόθεση για να ενεργοποιηθεί ο

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

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου ΕΣΔ 516 Τεχνολογίες Διαδικτύου Εισαγωγή στην PHP Περιεχόμενα Περιεχόμενα PHP και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις Παράδειγματα 1 Βιβλιογραφία Ενότητας Βιβλιογραφία [Lane 2004]: Chapter

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

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

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

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

Κινητή εφαρμογή για την αυθόρμητη αναφορά προβλημάτων σε μία πόλη

Κινητή εφαρμογή για την αυθόρμητη αναφορά προβλημάτων σε μία πόλη Κινητή εφαρμογή για την αυθόρμητη αναφορά προβλημάτων σε μία πόλη Mobile application for the spontaneous reporting of problems in a city DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING UNIVERSITY OF

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ:

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ: ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ: ΘΕΟΔΟΣΙΟΥ ΝΙΚΗ Α.Μ. 103/04 ΠΑΠΑΠΕΤΡΟΥ ΦΩΤΕΙΝΗ Α.Μ. 134/04 Εξεταστική Επιτροπή Επιβλέπουσα Καθηγήτρια : Σατρατζέμη Μαρία, Καθηγήτρια Μέλη : Ευαγγελίδης

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

Document Revisions... Error! Bookmark not defined. Introduction Σχεδιασμός Πληροφοριακού Συστήματος Αυθεντικοποίηση Χρηστών...

Document Revisions... Error! Bookmark not defined. Introduction Σχεδιασμός Πληροφοριακού Συστήματος Αυθεντικοποίηση Χρηστών... Οικονομική Προσφορά Έργο: Υλοποίηση δυναμικού Web Site για τη δράση: «Πρόσβαση των μόνιμων κατοίκων των περιοχών εκτός τηλεοπτικής κάλυψης στους ελληνικούς τηλεοπτικούς σταθμούς ελεύθερης λήψης εθνικής

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

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

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

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...

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

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

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

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

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

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

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

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

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 Εισαγωγή

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

Περιεχόμενα. Αντί προλόγου Πώς να χρησιμοποιήσετε το βιβλίο Κεφάλαιο 1: Πώς δημιουργώ το Προφίλ μου στο Facebook;...

Περιεχόμενα. Αντί προλόγου Πώς να χρησιμοποιήσετε το βιβλίο Κεφάλαιο 1: Πώς δημιουργώ το Προφίλ μου στο Facebook;... Περιεχόμενα Αντί προλόγου... 7 Πώς να χρησιμοποιήσετε το βιβλίο... 13 Κεφάλαιο 1: Πώς δημιουργώ το Προφίλ μου στο Facebook;...15 Κεφάλαιο 2: Τι βλέπω στην οθόνη μου όταν ολοκληρώσω τη δημιουργία του Προφίλ

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

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

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

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

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΘΕΣΣΑΛΟΝΙΚΗ, 2016 ΕΙΣΑΓΩΓΗ Μια διαδικτυακή υπηρεσία μπορεί να περιγραφεί απλά σαν μια οποιαδήποτε

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

Βασικές λειτουργίες διαδανεισμού μέσα από το σύστημα SmILLe

Βασικές λειτουργίες διαδανεισμού μέσα από το σύστημα SmILLe Βασικές λειτουργίες διαδανεισμού μέσα από το σύστημα SmILLe Κεντρικό σύστημα διαδανεισμού smille περιβάλλον διαχειριστή. Για την είσοδό σας στο σύστημα επισκέπτεστε την σελίδα http://ill.lib.ntua.gr/smille/admin/login.php

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

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

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

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

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΛΟΓΑΡΙΑΣΜΩΝ ΗΛΕΚΤΡΟΝΙΚΗΣ ΑΛΛΗΛΟΓΡΑΦΙΑΣ ( accounts)

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΛΟΓΑΡΙΑΣΜΩΝ ΗΛΕΚΤΡΟΝΙΚΗΣ ΑΛΛΗΛΟΓΡΑΦΙΑΣ ( accounts) ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΛΟΓΑΡΙΑΣΜΩΝ ΗΛΕΚΤΡΟΝΙΚΗΣ ΑΛΛΗΛΟΓΡΑΦΙΑΣ (email accounts) (v. 0.7 : 14/05/2015) Εισαγωγή Σας ευχαριστούμε που προτιμήσατε την Simple S&A Solutions για την παροχή υπηρεσιών Internet.

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ FORUM SITE

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ FORUM SITE 15 Πρόλογος Οι οδηγίες που ακολουθούν αναφέρονται στα παρακάτω sites. Site Διεύθυνση Site Συντονιστικής Επιτροπής (ΣΕ) http://se-forum.cperi.certh.gr Site Επιστημονικού Γνωμοδοτικού http://egs-forum.cperi.certh.gr

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

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

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

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

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

Ο χρήστης συμπληρώνει όνομα χρήστη και κωδικό και επιλέγει Είσοδος. Εάν δεν έχει κάνει εγγραφή στο σύστημα θα πρέπει να επιλέξει πρώτα Εγγραφή. Περιεχόμενα Γενικές Λειτουργίες... 3 Σύνδεση χρήστη... 3 Εγγραφή χρήστη... 3 Εφαρμογές... 4 Ρυθμίσεις... 5 Φόρμα Εισαγωγής Συνόλων Πολιτικών Δικαστηρίων... 6 Φόρμα Εισαγωγής Συνόλων Δεδομένων Υποθέσεων

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

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

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

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

Παραδείγματα μεταβλητών

Παραδείγματα μεταβλητών Παραδείγματα μεταβλητών Παράδειγμα Bouncing Balls: Στη σκηνή υπάρχουν τρείς μπάλες και κάθε μία έχει διαφορετικό μέγεθος από τις άλλες. Όλες οι μπάλες χοροπηδούν ταυτόχρονα προς όλες τις κατευθύν-σεις.

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

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

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

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

A J A X AJAX Γιάννης Αρβανιτάκης

A J A X AJAX Γιάννης Αρβανιτάκης A J A X AJAX Γιάννης Αρβανιτάκης 04/07/08 AJAX Στην πράξη 2 Autocomplete AJAX Στην πράξη 3 Webmail (google, yahoo) AJAX Στην πράξη 4 Flickr AJAX Στην πράξη 5 Google Docs AJAX Στην πράξη 6 Google maps http://maps.google.com/

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

ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021

ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021 ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021 18 Οκτωβρίου 2006 Η εργασία είχε σαν στόχο να δημιουργηθεί ένα κατανεμημένο σύστημα ελέγχου συσκευών μιας κουζίνας.συγκεκριμένα

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

φροντιστήρια Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής

φροντιστήρια   Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής Θέμα Α Α1. Να γράψετε στο τετράδιο σας το γράμμα της κάθε πρότασης και δίπλα τη λέξη

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

Διατίθεται εφαρμογή για κινητά τηλέφωνα android και ios. Γενική Αρχιτεκτονική Συστήματος

Διατίθεται εφαρμογή για κινητά τηλέφωνα android και ios. Γενική Αρχιτεκτονική Συστήματος Exandas-gis Η εφαρμογή Exandas-Gis είναι μια διαδικτυακή εφαρμογή Τηλεματικής Παρακολούθησης και Διαχείρισης Στόλου Οχημάτων σε πραγματικό χρόνο.η εφαρμογή είναι προσβάσιμη από οποιοδήποτε σημείο με την

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

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access... 9 Κεφάλαιο 2: Microsoft Access 2002... 20 Κεφάλαιο 3: Το σύστημα Βοήθειας του Microsoft Office ΧΡ... 36

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

(1) Επιλέξτε την εντολή QUERIES για να μπείτε στο περιβάλλον δημιουργίας

(1) Επιλέξτε την εντολή QUERIES για να μπείτε στο περιβάλλον δημιουργίας QUERIES Δημιουργία Ερωτήσεων στην ACCESS Ένα από τα πλεονεκτήματα που προσφέρουν τα ΣΔΒΔ (Συστήματα Διαχείρισης Βάσεων Δεδομένων) είναι η δυνατότητα στον χειριστή να δημιουργεί ερωτήσεις βασισμένος στα

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

Με την ολοκλήρωση της διαδικασίας μπορούμε αν θέλουμε να επιλέξουμε να ανοίξει ή όχι η εφαρμογή που έχει εγκατασταθεί.

Με την ολοκλήρωση της διαδικασίας μπορούμε αν θέλουμε να επιλέξουμε να ανοίξει ή όχι η εφαρμογή που έχει εγκατασταθεί. Πώς φτιάχνω Εφαρμογές για Android με το App Inventor Τι χρειάζεται για να ξεκινήσουμε; Η λειτουργία του App Inventor είναι κυρίως διαδικτυακή. Για να ξεκινήσει κανείς δηλαδή δεν απαιτείται ούτε κάποιο

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

GPS Tracker ΤRΑΚΚΥ Personal

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

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. «Υλοποίηση εφαρμογής λογιστικών και στατιστικών δεδομένων μιας επιχείρησης Δ.Ε.Υ.Α.» Αρ. Μητρώου:

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. «Υλοποίηση εφαρμογής λογιστικών και στατιστικών δεδομένων μιας επιχείρησης Δ.Ε.Υ.Α.» Αρ. Μητρώου: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «Υλοποίηση εφαρμογής λογιστικών και στατιστικών δεδομένων μιας επιχείρησης Δ.Ε.Υ.Α.» Της φοιτήτριας Νεστοροπούλου Μαρίας Επιβλέπων καθηγητής Γιακουστίδης Κωνσταντίνος Αρ. Μητρώου: 052922

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012 ΘΕΜΑ Α Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: 1. Κάθε βρόγχος που υλοποιείται με την εντολή Για μπορεί να

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

PayByBank RESTful API GUIDE

PayByBank RESTful API GUIDE PayByBank RESTful API GUIDE Α. PayByBank API Documentation Για να χρησιμοποιήσετε το PayByBank API περιβάλλον (Documentation/PLAYGROUND), χρειάζεται να δημιουργήσετε ένα λογαριασμό, καταχωρώντας ένα έγκυρο

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

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

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

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

Η εφαρμογή είναι βελτιστοποιημένη για όλες τις συσκευές ios και Android, με ios 9.x ή νεότερη έκδοση και Android 4.4 ή νεότερη έκδοση.

Η εφαρμογή είναι βελτιστοποιημένη για όλες τις συσκευές ios και Android, με ios 9.x ή νεότερη έκδοση και Android 4.4 ή νεότερη έκδοση. Οδηγίες βήμα προς βήμα για την εφαρμογή Με την εφαρμογή αυτή μπορείτε να χρησιμοποιήσετε ψηφιακά βιβλία (e-books) σε μορφή «Adobe Digital Editions epub» και «Adobe Digital Editions PDF», αρχεία ήχου (e-audios),

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

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

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου 49 Διδακτικές ενότητες 6.1 Γλώσσες και εργαλεία προγραμματισμού 6.2 Σύγχρονα προγραμματιστικά περιβάλλοντα Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν την ανάγκη ύπαρξης τόσο

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

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

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

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

Περιεχόμενα Πώς να χρησιμοποιήσετε το βιβλίο... 7 Αντί προλόγου... 9 Κεφάλαιο 1: Κεφάλαιο 2: Κεφάλαιο 3: Κεφάλαιο 4: Κεφάλαιο 5: Πώς να δημιουργήσω το Προφίλ μου και να γίνω μέλος στο Facebook;... 15 Τι

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

Εγχειρίδιο Χρήσης. Σημαντικό!

Εγχειρίδιο Χρήσης. Σημαντικό! Εγχειρίδιο Χρήσης Σημαντικό! Η διαδικτυακή πύλη της υπηρεσίας www.vidatrack.com είναι συμβατή με τους πιο κάτω περιηγητές: Internet Explorer 12 ή πιο πρόσφατο Google Chrome 38 ή πιο πρόσφατο Mozilla Firefox

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

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013

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

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol HTTP Protocol Web and HTTP Βασικά Συστατικά: Web Server Web Browser HTTP Protocol Web Servers (1/2) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)

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

Οδηγός γρήγορης εγκατάστασης. Ασύρματη κάμερα. IP MJPEGγια εξωτερικούς χώρους V3.14

Οδηγός γρήγορης εγκατάστασης. Ασύρματη κάμερα. IP MJPEGγια εξωτερικούς χώρους V3.14 Οδηγός γρήγορης εγκατάστασης Ασύρματη κάμερα IP MJPEGγια εξωτερικούς χώρους V3.14 Περιεχόμενα συσκευασίας 1 Εισαγωγή στο υλικό Εξωτερική περιγραφή ΔΙΑΦΟΡΕΣ Μοντέλο Pan/Tilt Κεραία POE FI8904W FI8905W FI8905E

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

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

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

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

databases linux - terminal (linux / windows terminal)

databases linux - terminal (linux / windows terminal) databases linux - terminal (linux / windows terminal) 1) ανοίγουμε την mysql -> $ mysql -u root -p (enter) password (enter) TIP: αν κατά την εντολή αυτή μας γράψει, ERROR 2002 (HY000): Can't connect to

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

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

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

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

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

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

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