Δημιουργία συστήματος κατάταξης και φιλτραρίσματος tweets

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

Download "Δημιουργία συστήματος κατάταξης και φιλτραρίσματος tweets"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Τομέας Ηλεκτρονικής και Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών (ΕΠΥ) Δημιουργία συστήματος κατάταξης και φιλτραρίσματος tweets Διπλωματική εργασία του Αλέξανδρου Πουρνάρα ΑΕΜ 6736 Μάρτιος 2013 Υπό την επίβλεψη του καθηγητή κ. Περικλή Α. Μήτκα

2 Πουρνάρας Αλέξανδρος Τελειόφοιτος Διπλωματούχος Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών Α.Π.Θ. Απαγορεύεται η αντιγραφή, αποθήκευση και διανομή της παρούσας εργασίας, εξ ολοκλήρου ή τμήματος αυτής, για εμπορικό σκοπό χωρίς την έγκριση του συγγραφέα. Επιτρέπεται η ανατύπωση, αποθήκευση και διανομή για σκοπό μη κερδοσκοπικό, εκπαιδευτικής ή ερευνητικής φύσης, υπό την προϋπόθεση να αναφέρεται η πηγή προέλευσης και να διατηρείται το παρόν μήνυμα. Οι απόψεις και τα συμπεράσματα που περιέχονται σε αυτό το έγγραφο εκφράζουν τον συγγραφέα και δεν πρέπει να ερμηνευθεί ότι αντιπροσωπεύουν τις επίσημες θέσεις του Τμήματος Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Α.Π.Θ. 2

3 ΕΥΧΑΡΙΣΤΙΕΣ Η παρούσα εργασία αποτελεί τη Διπλωματική μου Εργασία στα πλαίσια των σπουδών μου στο Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστώντου Α.Π.Θ. υπό την επίβλεψη του Καθηγητή του Τομέα Ηλεκτρονικής και ΥπολογιστώνΠερικλή Μήτκα, στον οποίο οφείλω ιδιαίτερες ευχαριστίες για την ανάθεση της εργασίας. Θα ήθελα επίσης να ευχαριστήσω θερμά τον Κυριάκο Χατζηδημητρίου και τον Κωνσταντίνο Βαβλιάκη, για τη βοήθεια, τις πολύτιμες συμβουλές, την υποστήριξη και την καθοδήγηση που μου παρείχαν καθ όλη τη διάρκεια εκπόνησης της εργασίας. Τέλος, θα ήθελα να ευχαριστήσω τους γονείς μου, τα αδέλφια μου και τους φίλους μου, που με στήριζαν και με συμβούλευαν σε κάθε βήμα της φοιτητικής μου ζωής. Θεσσαλονίκη, Μάρτιος

4 ΣΥΝΟΨΗ Διανύουμε την εποχή της πληροφορίας. Το internet και τα κοινωνικά δίκτυα παίζουν σπουδαίο ρόλο σε πολλές πτυχές της καθημερινότητας. Μέσα σε αυτόν τον κυκεώνα της πληροφόρησης, είναι ζωτικής σημασίας να παίρνουμε την πληροφορία που χρειαζόμαστε. Το twitter έχει εξελιχθεί σε μια από τις σημαντικότερες υπηρεσίες κοινωνικής δικτύωσης και χρησιμοποιείται από εκατομμύρια χρήστες καθημερινά. Στο twitter, όπως και γενικότερα στο internet, υπάρχει κατακλυσμός πληροφορίας. Στόχος της παρούσας διπλωματικής είναι η δημιουργία μιας web εφαρμογής η οποία θα εμφανίζει στο χρήστη τις σημαντικότερες πληροφορίες για αυτόν από το twitter. Για τη δημιουργία της χρησιμοποιήθηκε η γλώσσα python και το framework webpy, φυσικά το twitter API αλλά και το klout, μια υπηρεσία μέτρησης της επιρροήςπου έχουν οι χρήστες στα κοινωνικά δίκτυα. Η βαθμολόγηση των tweets γίνεται βάσει των retweets και του kloutscore.... Ο ΑλέξανδροςΠουρνάρας είναι προπτυχιακός φοιτητής του τμήματος Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών της Πολυτεχνικής Σχολής του Α.Π.Θ.. Έχει επιλέξει τον τομέα Ηλεκτρονικής και Υπολογιστών. ΑΕΜ

5 TITLE Diploma Thesis Development of a system that ranks and filters tweets ABSTRACT We live in the information age. The internet and social media play a huge role in everyday life. Given the huge amount of available information, it is vital to have mechanisms that will help us filter and receive the information we need. Twitter has involved to one of the most important social media services and it is used by millions of people worldwide on a daily basis. On twitter, as well as on the internet, the amount of information is vast and comes from a variety of reliable or unreliable sources. The objective of this Diploma Thesis is the development of a web application that will select and present to the user the most important information on his or her twitter account. The python programming language, the webpy web framework, the twitter API and the Klout API were used for the development of the application TweetForMe.The number of retweets and the user s klout score are used to compute a score and rank the tweets.... Alexandros Pournaras is an undergraduate student of the Department of Electrical and Computer Engineering of the Polytechnic School of the Aristotle University of Thessaloniki, in Greece. He has chosen the specialization on Electronics and Computers. alex7tsi@msn.com 5

6 ΣΤΟΙΧΕΙΑ ΣΥΓΓΡΑΦΕΑ Ο Πουρνάρας Αλέξανδρος είναι προπτυχιακός φοιτητής του τμήματος Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών της Πολυτεχνικής Σχολής του Α.Π.Θ. και έχει επιλέξει τον τομέα Ηλεκτρονικής και Υπολογιστών. Είναι γεννημένος στη Θεσσαλονίκη το 1990 και εισήχθηκε στη Πολυτεχνική σχολή το ΑΕΜ

7 ΠΕΡΙΕΧΟΜΕΝΑ Contents ΕΥΧΑΡΙΣΤΙΕΣ... 3 ΣΥΝΟΨΗ... 4 ABSTRACT... 5 ΣΤΟΙΧΕΙΑ ΣΥΓΓΡΑΦΕΑ... 6 ΠΕΡΙΕΧΟΜΕΝΑ... 7 ΣΧΗΜΑΤΑ / ΕΙΚΟΝΕΣ ΛΕΞΙΚΟ ΟΡΩΝ Εισαγωγή Το twitter Περιγραφή του προβλήματος Στόχος διπλωματικής Μεθοδολογία διπλωματικής Οργάνωση Διπλωματικής Υπόβαθρο και Έρευνα Twitter Certified Products Program Παραδείγματα Εφαρμογών Τεχνολογίες που χρησιμοποιήθηκαν Twitter REST API OAuth Klout Python webpy MySQL HTML CSS JavaScript, jquery Ajax

8 3.11 Ubuntu linux Firefox dev tools Firebug SSH/SCP Cron Komodo Edit tweepy Απαιτήσεις Εφαρμογής Λειτουργικές απαιτήσεις συστήματος Μη λειτουργικές απαιτήσεις συστήματος Usecase διάγραμμα Σενάριο χρήσης Login Σχεδιασμός Συστήματος Αρχιτεκτονική συστήματος Κώδικας code.py process.py loaddata.py home-script.js Βασικά αρχεία εφαρμογής Διάγραμμα ακολουθιών Σχήμα βάσης δεδομένων Screenshots από σελίδες Πειραματικό Μέρος Μέγεθος Βάσης Χρόνοι απόκρισης συστήματος Αποτελέσματα στατιστικής έρευνας και συμπεράσματα ΜελλοντικέςΠροεκτάσεις ΠΑΡΑΡΤΗΜΑ Άλλα αξιοσημείωτα pythonwebframeworks Εξωτερικά πακέτα που χρησιμοποιήθηκαν

9 Σημαντικά APIs στο web ΒΙΒΛΙΟΓΡΑΦΙΑ

10 ΣΧΗΜΑΤΑ / ΕΙΚΟΝΕΣ Εικόνα 1 - Κώδικας HelloWorld Εικόνα 2- Περιβάλλον MySQL Workbench Εικόνα 3 - Διαφορά XMLκαι JSON Εικόνα 4- Web console όπως εμφανίζεται στο κάτω μέρος του browser Εικόνα 5- Inspect Εικόνα 6- firebug Εικόνα 7- Κώδικας ενεργοποίησης scheduler από την εφαρμογή Εικόνα 8- Δείγμα κώδικα στο code.py Εικόνα 9- Δείγμα κώδικα από το process.py Εικόνα 10- Τμήμα μεθόδου load_new Εικόνα 11- Μέθοδος find_title Εικόνα 12- Συνάρτηση user_info Εικόνα 13- Τμήμα κώδικα CSS Εικόνα 14- Τμήμα κώδικα HTML από home.html Εικόνα 15- Δημιουργία URLtable (κώδικας SQL) Εικόνα 16 - Αρχική σελίδα Εικόνα 17- Καθυστέρηση φόρτωσης εικόνας Σχήμα 1 - Η διαδικασία OAuth στην εφαρμογή Σχήμα 2 - Διάγραμμα usecase Σχήμα 3 - Διάγραμμα δραστηριοτήτων Σχήμα 4 - Highlevelπεριγραφή του συστήματος Σχήμα 5 - Η αρχιτεκτονική της εφαρμογής Σχήμα 6 - Διάγραμμα ακολουθιών Σχήμα 7 - Σχήμα βάσης δεδομένων Σχήμα 8 - Αποτελέσματα για toptweetsκαι topstories Σχήμα 9 - Αποτελέσματα για tophashtagsκαι conversations Σχήμα 10 - Αποτελέσματα για UserInterface Πίνακας 1 - Μέθοδοι process.py Πίνακας 2 - Βασικές μέθοδοι loaddata.py Πίνακας 3 - Μέθοδοι conversation loaddata.py Πίνακας 4 - Βοηθητικές μέθοδοι loaddata.py Πίνακας 5 - Μέγεθος βάσης Πίνακας 6 - Καθυστέρηση στηνuser_info Πίνακας 7 - Καθυστέρηση σε φόρτωση 'more' Πίνακας 8 - Καθυστέρηση στην αρχική σελίδα Πίνακας 9 - Καθυστέρηση στην κεντρική σελίδα

11 11

12 ΛΕΞΙΚΟ ΟΡΩΝ Όρος API authentication Backend Browser Client debugger desktop documentation features feed flash framework frontend handling influence markup mobile modules open source real-time relational database server scheduler screenshot script shell social network style table template text editor timeline tweet Μετάφραση/Σύντομη περιγραφή προγραμματιστική βιβλιοθήκη διασύνδεσης αυθεντικοποίηση ο κώδικας μιας web εφαρμογής στον server φυλλομετρητής πελάτης πρόγραμμα ανίχνευσης λαθών σε κώδικα υπολογιστής οικιακής χρήσης τεκμηρίωση, εγχειρίδιο χαρακτηριστικά τροφοδότηση εφαρμογή αναπαραγωγής πολυμέσων που χρησιμοποιείται κυρίως στο internet πλατφόρμα σχεδίασης ο κώδικας μιας web εφαρμογής στον client χειρισμός επίδραση είδος γλωσσών παράστασης δεδομένων φορητός (εδώ αναφέρεται για φορητές συσκευές πχ smartphonesκαι tablets) ενότητες συναρτήσεων (τμήματα κώδικα python) ανοιχτού κώδικα σε πραγματικό χρόνο σχεσιακή βάση δεδομένων διακομιστής χρονοπρογραμματιστής στιγμιαία εικόνα οθόνης υπολογιστή είδος γλώσσας προγραμματισμού που η εκτέλεσή της πυροδοτείται από κάποιο γεγονός. γραμμή εντολών λειτουργικού συστήματος κοινωνικό δίκτυο στυλ πίνακας σε βάση δεδομένων πρότυπο κειμενογράφος χρονολόγιο τιτίβισμα, μήνυμα στο twitter 12

13 url user user interface web application website διεύθυνση στο internet χρήστης (εδώ συνήθως αναφέρεται σε χρήστη του twitter) γραφικό περιβάλλον χρήστη web εφαρμογή, δηλαδή εφαρμογή που χρησιμοποιείται από χρήστες απομακρυσμένα μέσω δικτύου (internet) δικτυακός τόπος 13

14 1 Εισαγωγή Το Twitter, το Facebook, το LinkedIn και γενικώς τα κοινωνικά δίκτυα παράγουν μια τεράστια ποσότητα δεδομένων. Το Facebook, για παράδειγμα, έχει πάνω από 800 εκατομμύρια ενεργούς χρήστες. Οι χρήστες του Twitter ξεπερνούν τα 500 εκατομμύρια και γράφουν καθημερινά πάνω από 400 εκατομμύρια tweets. Όταν πρέπει να διαχειριστούμε τέτοια μεγέθη, ερχόμαστε αντιμέτωποι με αυτό που ονομάζεται φαινόμενο της υπερπληροφόρησης (information overload). Επιπρόσθετα, η εξάπλωση των smartphones και η ευκολία πρόσβασης στο internetαπό παντού αυξάνουν ακόμη περισσότερο το φαινόμενο αυτό. Ιδιαίτερα το twitter είναι μια εφαρμογή πιό δημοφιλής στις mobile συσκευές από ότι στα desktop. Αυτομάτως καταλαβαίνει κανείς ότι τα κοινωνικά δίκτυα αποτελούν μια πρόκληση για ερευνητές και αναλυτές, που θέλουν να φιλτράρουν με διάφορες μεθόδους τα αμέτρητα κομμάτια πληροφορίας που βρίσκονται σε αυτά, προσπαθώντας να αντιμετωπίσουν την υπερπληροφόρηση. Αυτό γιατί δεν μας είναι χρήσιμη όλη αυτή η πληροφορία. Μελέτες έχουν δείξει ότι λιγότερο από το 10% του συνόλου των tweets έχουν κάποιο χρήσιμο περιεχόμενο. Ένας τρόπος να φιλτράρουμε τη πληροφορία είναι να την εξατομικεύσουμε στον χρήστη, δηλαδή κάθε χρήστης να βλέπει την πληροφορία που έχει δείξει στο παρελθόν ότι τον ενδιαφέρει. Ένας άλλος είναι να βλέπουμε πληροφορίες που έχουν κινήσει το ενδιαφέρον πολλών χρηστών ή προέρχονται από πηγές που παράγουν πληροφορία με μεγάλη επιρροή (influence) και που έχουν κατακτήσει την εμπιστοσύνη των χρηστών. 14

15 1.1 Το twitter Το Twitter είναι σύμφωνα με τους εμπνευστές του μια κοινωνική micro-blogging υπηρεσία και όχι ένα κοινωνικό δίκτυο (socialnetwork). Ονομάζεται κοινωνική, επειδή επιτρέπει στους χρήστες να έρθουν σε επαφή και να αλληλεπιδράσουν μεταξύ τους. Ονομάζεται microblogging, διότι κανείς μπορεί να γράψει την κατάστασή του μέσα σε 140 χαρακτήρες και χωρίς εικόνες ή άλλα μέσα (βίντεο, ήχος κτλ). Έτσι γίνεται πολύ πιο εύκολο να γράψει κάτι, από το να ετοιμάσει ένα blogpost. Το Twitter επιτρέπει στους χρήστες να δημοσιεύουν διάφορα μηνύματα, που ονομάζονται tweets (τιτιβίσματα) και να ακολουθούν αυτά που δημοσιεύουν άλλοι χρήστες. Ξεκίνησε ως πείραμα το 2006 και ιδρύθηκε το Ο αριθμός των χρηστών στο Twitter αυξάνεται συνεχώς από τότε και κορυφώθηκε το Μάρτιο 2009 όταν έφτασε ρυθμό αύξησης νέων χρηστών της τάξης του 13% ανά μήνα. Όπως ήδη αναφέρθηκε στην εισαγωγή, ο συνολικός αριθμός των χρηστών του αυτή τη στιγμή ξεπερνάει τα 500 εκατομμύρια.τα 140 εκατομμύρια προέρχονται από τις ΗΠΑ, καθιστώντας την χώρα αυτή την χώρα με τους περισσότερους χρήστες μακράν. Αν το twitter θεωρηθεί κοινωνικό δίκτυο, είναι το δεύτερο μεγαλύτερο πίσω μόνο από το facebook. Το πιο δημοφιλές tweet στην ιστορία του twitter είναι το 4 moreyears του BarrackObama μετά τη νίκη του στις Αμερικανικές εκλογές του Νοεμβρίου καθώς έχει πάνω από 800 χιλιάδες retweets. Τα πρωτεία όσον αφορά τους followers έχει η εκκεντρική Αμερικανίδα τραγουδίστρια Lady Gaga. Αυτή τη στιγμή υπάρχουν περίπου Έλληνες χρήστες του twitter. Κάποια βασικά στοιχεία που πρέπει κανείς να γνωρίζει: Tweet ονομάζεται το κείμενο που ανεβάζει κάποιος στο Twitter. Twitterers είναι όλοι όσοι χρησιμοποιούν το Twitter. Followers είναι όσοι μας ακολουθούν (διαβάζουν τα μηνύματα που γράφουμε) Following είναι όσοι ακολουθούμε εμείς (διαβάζουμε στην κεντρική μας σελίδα αυτά που γράφουν) Για να απαντήσουμε σε κάποιον βάζουμε μπροστά από το username του (mention). 15

16 Βάζουμε #θέμα όταν θέλουμε να πούμε κάτι για ένα συγκεκριμένο θέμα. (hashtag). Όταν θέλουμε να προωθήσουμε κάποιο tweet που μας φαίνεται ενδιαφέρον και πιστεύουμε ότι θα φανεί χρήσιμο στους άλλους κάνουμε ReTweet βάζοντας 1.2 Περιγραφή του προβλήματος Ο χρήστης του twitter καλείται να αποφασίσει ποιους άλλους χρήστες προτιμά να ακολουθεί. Ακολουθώντας κάποιον χρήστη, επιλέγει ουσιαστικά να του προβάλλονται όλα τα tweets που ποστάρει ο συγκεκριμένος χρήστης. Τα tweets αυτά από όλους τους χρήστες που ακολουθεί κάποιος εμφανίζονται στη home-timeline του ταξινομημένα χρονικά από το πιο πρόσφατο προς το παλαιότερο. Όπως εύκολα μπορεί να φανταστεί κανείς, η home-timeline ενός χρήστη μπορεί να αυξάνεται με αρκετά μεγάλους ρυθμούς. Μπορεί να αυξάνεται ημερησίως από μερικές δεκάδες έως αρκετές εκατοντάδες tweets. Ο ρυθμός αύξησης αυτών των tweets εξαρτάται κυρίως από τον αριθμό των χρηστών που ακολουθεί κάποιος, αλλά εξαρτάται επίσης και από το μέσο ρυθμό με τον οποίο γράφουν tweets οι χρήστες αυτοί. Το πρόβλημα έγκειται στο γεγονός ότι, παρόλο που κάποιος έχει επιλέξει ποιους θέλει να ακολουθεί (άρα ενδιαφέρεται για αυτά που γράφουν σε πρωταρχικό επίπεδο), δεν μπορεί να τον ενδιαφέρουν εξίσου όλα όσα οι συγκεκριμένοι χρήστες ποστάρουν. Όταν ο ρυθμός με τον οποίο αυξάνεται η home-timeline ενός χρήστη είναι μικρός ή αν ο χρήστης έχει την πολυτέλεια χρόνου να ελέγχει τα νέα tweets τακτικά, τότε το πρόβλημα είναι υπό έλεγχο. Ας πάρουμε υποθετικά το παράδειγμα ενός χρήστη ο οποίος ακολουθεί 500 ανθρώπους. Κάποιοι από αυτούς ποστάρουν tweets σπάνια, κάποιοι καθόλου, κάποιοι αρκετά. Ας θεωρήσουμε ένα μέσο όρο γύρω στα 5-10tweets/ημέρα. Αυτό σημαίνει ότι ο χρήστης μας θα έχει να διαβάσει περίπου tweets την ημέρα, πράγμα αδύνατο. Αυτό που θέλουμε είναι ένα σύστημα που θα προβάλει τα πιο σημαντικά από αυτά, ώστε ο χρήστης να μπορεί να τα διαβάσει με σειρά προτεραιότητας στον περιορισμένο χρόνο που διαθέτει. 16

17 Σημαντικό κομμάτι του twitter είναι τα replies, δηλαδή οι απαντήσεις σε tweets χρηστών τα οποία είναι επίσης tweets. Αυτά πολλές φορές οδηγούν σε διαλόγους (conversations) μεταξύ των χρηστών. Όταν όμως ένα tweet αποτελεί reply, δεν εμφανίζεται στην hometimelineτων χρηστών που τον κάνουν follow και μόνος τρόπος να το δεις είναι είτε μέσω κάποιου retweet είτε να δεις τη user timeline του χρήστη, κάτι που κανένας δε θα έκανε. Επομένως θα ήταν χρήσιμος ένας μηχανισμός που θα έδειχνε στον χρήστη σημαντικούς διαλόγους που συμμετέχουν χρήστες που ακολουθεί. Το twitter εμφανίζει τα πιο σημαντικά hashtags, εκείνη τη στιγμή και σύμφωνα με τη γεωγραφική περιοχή και τις προτιμήσεις του χρήστη. Θα ήταν χρήσιμος ένας μηχανισμός που θα εμφάνιζε τα πιο σημαντικά hashtags από τους χρήστες που ακολουθεί. Το ίδιο συμβαίνει και για τα urls, ενώ εμφανίζονται στο #Discover θέματα στις προτιμήσεις του χρήστη δεν υπάρχει κάποιος τρόπος να δεις urls (stories) από χρήστες που ακολουθείς. 1.3 Στόχος διπλωματικής Η εφαρμογή έχει σαν στόχο την επίλυση του προβλήματος του καταιγισμού της πληροφορίας στο twitter. Δηλαδή πρέπει να διαθέτει μηχανισμούς εμφάνισης των πιο σημαντικών tweets των τελευταίων ημερών με σειρά προτεραιότητας, όπως επίσης και των πιο σημαντικών url, hashtags και conversationsαπό τους users που ακολουθεί ο χρήστης. Όλα αυτά σε ένα περιβάλλον (user interface) φιλικό προς το χρήστη και απλό στη χρήση. Όταν λέμε πιο σημαντικά tweets εννοούμε τα πιο δημοφιλή και αυτά που γράφτηκαν από δημοφιλείς χρήστες. Αυτό που θέλουμε στην ουσία είναι ένα φιλτράρισμα του timeline των τελευταίων ωρών. 1.4 Μεθοδολογία διπλωματικής Το πρόβλημα που κλήθηκε να επιλύσει η παρούσα διπλωματική, απασχόλησε και τη διπλωματική του συμφοιτητή Γεώργιου Αντωνίου με παρόμοιο θέμα (Δημιουργία συστήματος υπόδειξης tweet με βάση τις προτιμήσεις του χρήστη) που παρουσιάστηκε το Τότε η προσέγγιση ήταν διαφορετική. Εκείνη η εφαρμογή χρησιμοποίησε αλγορίθμους μηχανικής μάθησης για να καταλάβει τα ενδιαφέροντα του χρήστη, ο οποίος έδειχνε τις προτιμήσεις του κάνοντας like τα tweets που τον ενδιέφεραν, και να του εμφανίσει τα πιο ενδιαφέροντα για τον ίδιο tweets από τους χρήστες που ακολουθεί. Στη παρούσα διπλωματική το θέμα προσεγγίστηκε διαφορετικά. Θεωρήθηκε ότι μιας και κάθε χρήστης του twitter δηλώνει τα ενδιαφέροντά του μέσω των χρηστών που κάνει follow, δεν 17

18 ήταν ανάγκη να τα ανιχνεύουμε εμείς, αλλά αρκεί να επιλέγουμε και να του παρουσιάζουμε τα πιο σημαντικά tweets. Έτσι, αντί να χρησιμοποιήσουμε πολύπλοκους αλγόριθμους μηχανικής μάθησης, επιλέχθηκε να ταξινομούμε τα tweets με βάση τα retweets και το klout score και να εμφανίζουμε τα σημαντικότερα των τελευταίων δύο ημερών. Συνεπώς, η παρούσα διπλωματική είναι πιο πολύ επικεντρωμένη στο software engineering παρά στους αλγορίθμους, ώστε το τελικό αποτέλεσμα να είναιμια πιοφιλική εφαρμογή και οι αλγόριθμοι κατάταξης να τρέχουν αυτόματα και να είναι αόρατοι στο χρήστη. 1.5 Οργάνωση Διπλωματικής Το υπόλοιπο της διπλωματικής οργανώνεται ως εξής: Στο Κεφάλαιο 2 παρουσιάζονται παρόμοιες διαθέσιμες εφαρμογές, όπως και άλλα σημαντικά web APIs πέρα από αυτό του twitter. Στο Κεφάλαιο 3. περιγράφονται αναλυτικά οι διάφορες τεχνολογίες που χρησιμοποιήθηκαν στα πλαίσια της διπλωματικής αλλά και τα κάποια εργαλεία που βοήθησαν.στο Κεφάλαιο 4 περιγράφονται οι απαιτήσεις της εφαρμογής (λειτουργικές, μη λειτουργικές) καθώς και διάφορα διαγράμματα και screenshots. Σε αυτό το κεφάλαιο αναφέρεται αναλυτικά το τι πρέπει να κάνει η εφαρμογή. Στο Κεφάλαιο 5 περιγράφεται το πώς αναπτύχθηκε η εφαρμογή. Παρουσιάζεται η αρχιτεκτονική του συστήματος, τα τμήματα του κώδικα, διαγράμματα ακολουθιών και το σχήμα της βάσης δεδομένων.το Κεφάλαιο 6 συνοψίζει το πειραματικό μέρος της διπλωματικής, όπου υπολογίζουμε το μέγεθος της βάσης, μετράμε χρόνους απόκρισης της εφαρμογής και βλέπουμε στατιστικά αποτελέσματα αυτής. Τέλος, στο Κεφάλαιο 7 συνοψίζουμε και παραθέτουμε ιδέες για μελλοντικές επεκτάσεις. Στο Παράρτημα της διπλωματικήςγίνεται αναφορά στα πιο σημαντικά webframeworksτης python όπως και στα εξωτερικά πακέτα που χρησιμοποιήθηκαν. 18

19 2 Υπόβαθρο και Έρευνα Χωρίς αμφιβολία το twitter είναι από τις πιο επιτυχημένες web εφαρμογές στην ιστορία και το κλειδί για την επιτυχία είναι η απλότητά του. Ωστόσο με τον καιρό, οι χρήστες του επιθυμούν νέα χαρακτηριστικά και μια σειρά από εφαρμογές φτιαγμένες από τρίτους προγραμματιστές έρχονται να τα προσφέρουν. Επίσης, επιχειρήσεις σπεύδουν να εκμεταλλευτούν τον αναδυόμενο χώρο των social media ψάχνοντας ολοκληρωμένα συστήματα διαχείρισης. Αναφέρουμε επιγραμματικά κάποιες από τις πιο σημαντικές εφαρμογές. Αρχικά όμως θα αναφερθούμε στα Twitter Certified Products. 2.1 Twitter Certified Products Program Το πρόγραμμα Twitter Certified Products βοηθάει τις επιχειρήσεις που χρησιμοποιούν το twitterapiνα απολαμβάνουν πλεονεκτήματα σε 3 τομείς: Engagement, Analytics, DataResellers. Μια επιχείρηση partnerτου twitter μπορεί να ανήκει σε μία ή και περισσότερες κατηγορίες. Η κάθε κατηγορία έχει διαφορετικά πλεονεκτήματα. Το πρόγραμμα Twitter Certified Products ανακοινώθηκε μαζί με τις αλλαγές στο twitter API και το νέο version 1.1. Engagement Στη κατηγορία αυτή ανήκουν προϊόντα που στοχεύουν στο να φέρουν τις επιχειρήσεις πιο κοντά στους καταναλωτές με τη βοήθεια του twitter. Αυτό επιτυγχάνεται δίνοντας δυνατότητα στους publishers των tweet να απαντούν realtime στο κοινό τους. Παραδείγματα: massrelevance, sales force marketing cloud Analytics 19

20 Στη κατηγορία Analytics ανήκουν προϊόντα που σκοπός τους είναι η ανίχνευση του τι λέγεται για μια εταιρία/οργανισμό στο twitter. Στο twitter παράγεται μεγάλη ποσότητα δεδομένων και πολλά από αυτά είναι χρήσιμα στις επιχειρήσεις που ζητούν feedback από τους καταναλωτές για να βελτιώσουν τις υπηρεσίες τους. Παραδείγματα: dataminr, simplymeasured DataResellers Τα προϊόντα και οι υπηρεσίες στη κατηγορία Data Resellers έχουν ανάγκη από πολύ μεγάλη ποσότητα δεδομένων από το twitter. Παραδείγματα: gnip Όπως γίνεται αντιληπτό για έναν twitter partner δεν ισχύουν τα στενά όρια του rate limit που ισχύουν για τις απλές εφαρμογές όπως το tweet for me. Αναλυτικές πληροφορίες για το πρόγραμμα Twitter Certified Products υπάρχουν εδώ. 2.2 Παραδείγματα Εφαρμογών Hootsuite Είναι μια εφαρμογή που προσφέρει εργαλεία για σύνδεση πολλών λογαριασμών πχ facebook, twitter, Lindedin και τη διαχείρισή τους. Επίσης μετράει στατιστικά και γενικά δίνει την απόλυτη εποπτεία του τι γίνεται στα social media. Χρησιμοποιείται συχνά από επιχειρήσεις που θέλουν να εκμεταλλευτούν τον χώρο των social media για να σφυγμομετρήσουν την ικανοποίηση του κοινού αλλά και τα δημογραφικά τους χαρακτηριστικά στοχεύοντας σε καλύτερες υπηρεσίες. Κάποιες από τις δυνατότητες που δίνει είναι ο προγραμματισμός μηνυμάτων και tweet, ο εντοπισμός mentionτου ονόματος της εταιρίας/οργανισμού αλλά και πολλά άλλα εργαλεία για την ανάλυση του τι συμβαίνει στα social media. Το Hootsuite αποτελεί twitter certified product. Για τη χρήση του υπάρχει χρέωση, αν και κάποιες απλά features είναι δωρεάν. Επίσης υπάρχει δωρεάν δοκιμαστική περίοδος 30 ημερών. 20

21 Υπάρχει μια σειρά παρόμοιων εφαρμογών με το Hootsuite, μεταξύ άλλων το SocialOomph, το ExactTarget, το Sprinklrκαι το Datasift. url: Tweellow Το tweellow είναι μια εφαρμογή αναζήτησης χρηστών του twitter ανάλογα με τα ενδιαφέροντά τους. Υπάρχουν πάρα πολλές κατηγορίες όπως news, entertainment, sports κλπ και υποκατηγορίες για τις οποίες μπορεί κανείς να αναζητήσει τους πιο σημαντικούς χρήστες για θέματα που τον ενδιαφέρουν. Πάνω από 6 εκατομμύρια χρήστες μπορούν να βρεθούν μέσω του twellow. Παρόμοιες εφαρμογές με το tweelow είναι και τα Tweepz, wefollow, justtweetit. Επίσης μέσα από το απλό twitter μπορεί κανείς να αναζητήσει χρήστες για διάφορες κατηγορίες θεμάτων. url: Trending Το trending είναι μια εφαρμογή για το Ελληνικό twitter. Αναλύει καθημερινά tweets των Ελλήνων χρηστών και καταγράφει ενδιαφέροντα στατιστικά όπως trendingtopics, πιο retweeted tweets, topusers, topvideos και toplinks. Μέσα από το trending μπορεί κανείς να δει τι συμβαίνει στο Ελληνικό twitter. url: 21

22 3 Τεχνολογίες που χρησιμοποιήθηκαν Σε αυτή την ενότητα αναλύουμε διάφορες τεχνολογίες που βοήθησαν στην ανάπτυξη της εφαρμογής. Σε αυτά συγκαταλέγονται βιβλιοθήκες, web APIs, γλώσσες προγραμματισμού, πλατφόρμες, text editors καθώς και εργαλεία για debugging και απομακρυσμένη πρόσβαση. 3.1 Twitter REST API Στον ιστότοπο υπάρχουν οδηγίες πως μπορούν προγραμματιστές να χρησιμοποιήσουν το twitter, αντλώντας δεδομένα ή βάζοντας λειτουργικότητα από το twitter στην ιστοσελίδα τους όπως web intents και twitter buttons. Εκτός από αυτά, το twitter διαθέτει και 2 APIs (Application Programming Interface), το REST και το Streaming. Στα πλαίσια της διπλωματικής εργασίας χρησιμοποιήθηκε το REST API. To REST (Representational State Transfer) αποτελεί ένα πρότυπο web service. Τα web services είναι υπηρεσίες που δίνουν τη δυνατότητα στους προγραμματιστές να αντλούν δεδομένα μέσω internet. Το πρότυπο REST ήρθε να αντικαταστήσει το SOAP που ήταν κυρίαρχο τα προηγούμενα χρόνια. Βασίζεται στην απλότητα της υλοποίησης κάτι στο οποίο υστερούσε το SOAP. Δεν θα αναλυθεί περισσότερο το REST καθώς δεν χρησιμοποιήθηκε άμεσα μιας και υπάρχουν έτοιμες 3 rd party βιβλιοθήκες που το κάνουν αυτό σε διάφορες γλώσσες προγραμματισμού, μία εξ αυτών σε python χρησιμοποιήθηκε και θα αναλυθεί αργότερα. Στη version 1 του API που χρησιμοποιήθηκε επιτρέπονται έως 350 OAuth κλήσεις ανά ώρα (το OAuth θα αναλυθεί αργότερα) κάτι που 22

23 δημιούργησε προβλήματα στην υλοποίηση καθώς βάζει ένα bottleneck στην ποσότητα τον δεδομένων που μπορείς να αντλήσεις. Εδώ να πούμε ότι το Σεπτέμβριο του 2012 το twitter ανακοίνωσε ένα σημαντικό update στο API του (version 1.1) με σημαντικές αλλαγές όπως διαφορετικά rate limits, υποχρεωτική χρήση OAuth. Οι αλλαγές αυτές ωστόσο δεν έγιναν δεκτές με ιδιαίτερο ενθουσιασμό από την κοινότητα των προγραμματιστών που χρησιμοποιούσαν το twitter API. 3.2 OAuth Το REST API προσφέρει 7 διαφορετικούς τρόπους ελέγχου της ταυτότητας και εξουσιοδότησης σε μια εφαρμογή να αλληλεπιδράσει με το Twitter. Εμείς χρησιμοποιήσαμε τον τρόπο που προορίζεται για χρήση από web applications. Η αυθεντικοποίηση και εξουσιοδότηση σε αυτή τη περίπτωση γίνεται μέσω του πρωτοκόλλου OAuth. Το OAuth είναι ένα ανοιχτό πρότυπο για εξουσιοδότηση. Επιτρέπει στους χρήστες να μοιράζονται προσωπικά τους δεδομένα (φωτογραφίες, βίντεο, tweets, λίστες επαφών κ.α.) που είναι αποθηκευμένα σε ένα site (π.χ. Twitter) με ένα άλλο site (π.χ. η εφαρμογή μας) χωρίς να χρειάζεται να δώσουν στο δεύτερο site τους κωδικούς τους. Αντί για το password δίνουν κάποια tokens (=κουπόνια, μάρκες). Τα tokens αυτά μπορεί να παρέχουν συγκεκριμένα δικαιώματα πρόσβασης και για περιορισμένη χρονική διάρκεια. Η διαδικασία γίνεται όχι απευθείας μέσω του REST API αλλά μέσω στης βιβλιοθήκης της python tweepy και περιγράφεται λεπτομερώς στο παρακάτω σχήμα. 23

24 Σχήμα 1 - Η διαδικασία OAuth στην εφαρμογή Στην αρχή του κώδικα δημιουργούμε ένα αντικείμενο τύπου OauthHandler περνώντας σαν ορίσματα τα consumer_key, consumer_secret και callback_url. Τα consumer_key και 24

25 consumer_secret, τα παίρνουμε από το twitter developer αφού κάνουμε register στην εφαρμογή. Είναι ίδια κάθε φορά και χαρακτηρίζουν την εφαρμογή tweet for me. Το callback_url είναι η διεύθυνση που θα κάνει redirect το twitter το χρήστη αφού κάνει το signin με επιτυχία (θα το εξηγήσουμε αργότερα). Στη συνέχεια μέσω του αντικειμένου OauthHandler παίρνουμε το authorization_url στο οποίο στέλνουμε τον χρήστη. Το authorization_url είναι μια σελίδα του twitter για να κάνει ο χρήστης το signin. Αφού βάλει επιτυχώς το username και το password του και πατήσει authorize app το twitter τον κατευθύνει στο callback_url, δηλαδή στην εφαρμογή μας, στέλνοντας μαζί τα access tokens για τον χρήστη. Στον κώδικα της εφαρμογής παίρνουμε τα access tokens και έτσι αυθεντικοποιούμε τον χρήστη μέσω OAuth. 3.3 Klout Το Klout είναι μια web εφαρμογή που μετράει στατιστικά χρηστών σε διάφορα κοινωνικά δίκτυα καιανάλογα με τη δραστηριότητα του χρήστη και την επίδραση (influence) που έχει αυτή στο δίκτυό του, ο κάθε χρήστης έχει μια βαθμολόγηση (kloutscore) από 0 έως 100. Για να υπολογιστεί το klout score συνυπολογίζονται σήματα από 7 διαφορετικά δίκτυα (facebook, twitter, Google+, LinkedIn, Klout, foursquare, Wikipedia). Όταν λέμε σήματα εννοούμε την αλληλεπίδραση στο κοινωνικό δίκτυο. Για παράδειγμα 100 retweets που παράγονται από 10 tweetsσυνεισφέρουν πολύ περισσότερο στο klout score από οτι αν παράγονταν από Επίσης παίζει πόλο και το πόσο συχνά εκφράζεται κάποιος σε ένα κοινωνικό δίκτυο. Ένα άτομο που κάνει συνεχώς likeστο facebookσυνεισφέρει με το like του λιγότερο στο klout score του χρήστη που έκανε το postαπό ότι θα συνεισέφερε ένα άτομο που κάνει like σπάνια. Έτσι αναδεικνύεται πιο σωστά η αξία του post. Γενικά, όσο πιο ευρύ είναι το κοινό που του αρέσει η δραστηριότητα κάποιου σε ένα κοινωνικό δίκτυο, τόσο το καλύτερο για το klout score του. Δηλαδή 100 retweets από 100 διαφορετικά άτομα μετράνε πολύ περισσότερο από ότι 100 retweets από το ίδιο άτομο. Επίσης η σύνδεση όλο και περισσότερων δικτύων, μόνο θετικά μπορεί να λειτουργήσει στο klout score ενός χρήστη. Το klout διαθέτει ένα API για προγραμματιστές και υπάρχουν 3 rd party βιβλιοθήκες σε πολλές γλώσσες προγραμματισμού που κάνουν τη χρήση του πολύ απλή. Δίνει τη δυνατότητα για authentication μέσω OAuth αλλά στα πλαίσια της εφαρμογής το απλό authentication ήταν αρκετό. 25

26 3.4 Python Η γλώσσα προγραμματισμού που επιλέχθηκε για την εφαρμογή (για το backend μιας και μιλάμε για web εφαρμογή) είναι η python. Πρόκειται για μία interpreted αντικειμενοστρεφή γλώσσα υψηλού επιπέδου, η οποία δημιουργήθηκε το 1990, αλλά άρχισε να χρησιμοποιείται ευρύτατα την τελευταία δεκαετία. Μοιάζει σε πολλά χαρακτηριστικά με γλώσσες όπως η Ruby και η Perl και χαρακτηρίζεται για την καλή αναγνωσιμότητα του κώδικά της καθώς και την ευκολία στη χρήση και στην εκμάθηση της. Χαρακτηριστικό της επίσης αποτελούν οι πολλές έτοιμες βιβλιοθήκες που διευκολύνουν ιδιαίτερα αρκετές συνηθισμένες εργασίες. Η διαχείριση της καθώς και η διανομή του κώδικα γίνονται από τον μη κερδοσκοπικό οργανισμό Python Software Foundation. Στα πλαίσια της εργασίας χρησιμοποιήθηκε η έκδοση 2.7. Ένα σημαντικό χαρακτηριστικό της γλώσσας είναι η χρήση κενών διαστημάτων (whitespace) για τον διαχωρισμό των συντακτικών δομών που προγράμματος, σε αντίθεση με την πρακτική άλλων γλωσσών όπου για τον ίδιο σκοπό χρησιμοποιούνται ειδικά σύμβολα (πχ αγκύλες). Αυτό, σε συνδυασμό με το ότι χρησιμοποιεί πλήρεις αγγλικές λέξεις στη θέση συμβόλων, καθιστούν τον κώδικα της ευανάγνωστο από όσους έχουν βασική γνώση των αγγλικών. Αν και μπορεί να μην είναι τόσο γρήγορη, όσο παραδείγματος χάριν η C ή η C++, o προγραμματιστικός χρόνος που εξοικονομείται την έκανε τη βέλτιστη επιλογή, δεδομένου ότι οι απαιτήσεις της εφαρμογής μας σε ταχύτητα δεν ήταν τόσο υψηλές. Να αναφερθεί ότι χρησιμοποιείται από τη NASA ως η κύρια γλώσσα προγραμματισμού για το ολοκληρωμένο σύστημα διαχείρισής της καθώς και για αρκετά από τα συστήματα λογισμικού της. Χρησιμοποιείται από τη Yahoo! (μεταξύ άλλων) για τη διαχείριση των discussion groups και από τη Google στην υλοποίηση πολλών συστατικών του Webcrawler της και της μηχανής αναζήτησής της. Χρησιμοποιείται επίσης ευρύτατα σε χώρους, όπως αυτός της Βιοϊατρικής ή των Computer Games. Η python είναι μια από τις πιο δημοφιλείς γλώσσες στο web και ένας από τους λόγους είναι ο πολύ μεγάλος αριθμός από webframeworks που υπάρχουν, όπως το πολύ δημοφιλές django αλλά και τα turbogears, zope, pylons κ.α. 26

27 3.5 webpy Towebpy ή web.py είναι το framework που χρησιμοποιήθηκε για την εφαρμογή. Είναι ένα opensourcewebframework ισχυρό αλλά και απλό. Αναπτύχθηκε από τον Aaron Swartz και η πιο γνωστή web εφαρμογή που το χρησιμοποιεί είναι το reddit. Το πλεονέκτημά του σε σχέση με άλλα μεγαλύτερα frameworks όπως το django και το turbogears είναι η ευκολία εκμάθησης. Ο προγραμματιστής μπορεί σχεδόν άμεσα να ξεκινήσει να γράφει τον κώδικά του χωρίς να δαπανήσει μεγάλο χρονικό διάστημα για να μάθει το framework. Μία χαρακτηριστική δήλωση είναι η εξής: "Django lets you write web apps in Django. TurboGears lets you write web apps in TurboGears. Web.py lets you write web apps in Python.". Μετά την εγκατάσταση αρκεί ένα import web στον κώδικα για να χρησιμοποιήσουμε το framework. Όπως φαίνεται από το πολύ απλό helloworld παράδειγμα το web.py χρησιμοποιεί κλάσεις για το url handling. Επίσης διαθέτει το δικό του development server για το testing. import web urls = ( '/(.*)', 'hello' ) app = web.application(urls, globals()) class hello: def GET(self, name): if not name: name = 'World' return 'Hello, ' + name + '!' if name == " main ": app.run() Εικόνα 1 - Κώδικας HelloWorld Το web.py έχει τη δικιά του templateengine, η οποία επιτρέπει τη συγγραφή κώδικα python μέσα στην html. Ωστόσο αν στον προγραμματιστή δεν αρέσει η συγκεκριμένη templateengine, μπορεί να χρησιμοποιήσει κάποια άλλη όπως οι Mako, Cheetah ή η Jinja2. Για τη σύνδεση σε βάση δεδομένων το webpy διαθέτει εργαλεία που τη διευκολύνουν και επιτρέπουν τη 27

28 σύνδεση σε μια σειρά από βάσεις δεδομένων όπως mysql, sqlite, postgres, mssql και oracle. Εδώ να πούμε ότι η πολύ δημοφιλής πλατφόρμα ανάπτυξης web εφαρμογών της Google, AppEngine, επιτρέπει τη χρήση του framework. Μάλιστα το framework που default χρησιμοποιείται για την python έχει εμπνευστεί από το webpy. Τέλος όσον αφορά το deployment, αυτό μπορεί να γίνει είτε μέσω WSGI είτε μέσω FastCGI σε μια σειρά από webservers όπως ο Apache. Ένα από τα αρνητικά είναι το μέτριο documentation, ωστόσο το αρκετά ζωντανό mailing list της βοηθάει όπου το documentation δεν επαρκεί. 3.6 MySQL Η MySQL είναι το πιο διαδεδομένο open source RDBMS (Relational DataBase Management System) στον κόσμο. Είναι πολύ δημοφιλής βάση δεδομένων για web εφαρμογές και βασικό τμήμα αυτού που αποκαλείται LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Είναι δωρεάν και τρέχει σε πολλά λειτουργικά συστήματα εκτός του Linux, όπως Windows, MacOSX, FreeBSD κ.α. Επίσης, χρησιμοποιήθηκε το MySQLWorkbench που είναι ένα δωρεάν γραφικό περιβάλλον της MySQL, και προσφέρει ένα κάπως καλύτερο interface από αυτό που έχει ο προγραμματιστής στο τερματικό του. Ο λόγος που επιλέχθηκε έναντι της SQLite, η οποία είναι εξ αρχής εγκατεστημένη με τη python, είναι ότι αποδίδει καλύτερα όταν τα δεδομένα αυξάνουν, μπορεί να ικανοποιεί ταυτόχρονα πολλά ερωτήματα (queries) και γενικά είναι καλύτερη επιλογή για μεγάλες εφαρμογές έχοντας ασφαλέστερο authentication και δυνατότητα υποστήριξης πολλών χρηστών. 28

29 Εικόνα 2- Περιβάλλον MySQL Workbench 3.7 HTML H HTML (Hypertext Markup Language) είναι η markup γλώσσα για προβολή ιστοσελίδων στον browser. H μορφή της HTML, παρόμοια με αυτή της XML, αποτελείται από tags όπως <html> ή <p> που καθορίζουν το είδος και τη διάταξη του περιεχομένου που θέλουμε να προβάλουμε. Μέσω της HTML μπορούμε να προβάλουμε κείμενο, εικόνες αλλά και video. Πατέρας της HTML θεωρείται ο Tim Berners-Lee ο οποίος την εισήγαγε το Η HTML ήταν εξ αρχής η markup γλώσσα του web και θα συνεχίσει να είναι όπως όλα δείχνουν. Η τελευταία έκδοση είναι η HTML5 που δίνει πολλές νέες δυνατότητες όπως δυνατότητα δημιουργίας γραφικών αλλά και νέα html tags. Στα πλαίσια της εφαρμογής μας αρκεστήκαμε στην έκδοση

30 3.8 CSS Το CSS (Cascading Style Sheets) είναι μια γλώσσα που χρησιμοποιείται για να δηλώσει το πώς θα φαίνεται ένα έγγραφο html. Αν η HTML δηλώνει το τι θα δείχνει ένα έγγραφο, το CSS δηλώνει το πώς αυτό θα εμφανίζεται στην οθόνη του χρήστη. Η HTML είχε εξ αρχής το πρόβλημα ότι δεν διέθετε πολλές δυνατότητες για το style του εγγράφου. Έτσι, δημιουργήθηκε το CSS για να κάνει αυτή τη δουλειά, πρώτη φορά με την HTML 4. Κάθε HTML έγγραφο έχει πια το δικό του CSS για να δηλώνει πώς θα φαίνεται και αυτό είναι και σχεδιαστικά ορθό καθώς διαχωρίζεται το περιεχόμενο από το style. Στα πλαίσια της διπλωματικής χρησιμοποιήθηκε η έκδοση 2.1 του CSS, αν και υπάρχει και το CSS3, το οποίο σε συνδυασμό με την HTML5 προσφέρει πάρα πολλές δυνατότητες για γραφικά και animation που προηγουμένως γινόταν συνήθως μέσω flash. 3.9 JavaScript, jquery Η javascript είναι μια γλώσσα προγραμματισμού που πρώτη φορά χρησιμοποιήθηκε το 1994, και από τότε έχει γίνει η πιο δημοφιλής για το frontend (clientside) των web εφαρμογών. Αυτό σημαίνει ότι η javascript εκτελείται στον browser. Όλοι οι σύγχρονοι browsers υποστηρίζουν τη javascript. Η javascript δεν έχει καμία σχέση με τη java, αν και μοιάζουν σε σύνταξη τόσο με αυτή όσο και με τη C. Είναι scipting, αντικειμενοστρεφής γλώσσα υψηλού επιπέδου και χρησιμοποιείται κυρίως για να βελτιώσει τη λειτουργικότητα μιας σελίδας κάνοντάς την πιο δυναμική. Ο κώδικας της javascript μπορεί να μπει εντός της html μέσα στο tag<script>, ή σε ξεχωριστό αρχείο το οποίο γίνεται referenced στη html. Η δεύτερη επιλογή είναι προτιμότερη όταν ο κώδικας είναι μεγάλος και αυτή ακολουθήθηκε σε αυτή την εφαρμογή. Η jquery είναι μια βιβλιοθήκη της javascript, σχεδιασμένη με σκοπό την απλοποίηση του κώδικα στην πλευρά του client. Από το 2006 που ξεκίνησε να χρησιμοποιείται έως σήμερα έχει γίνει η πιο δημοφιλής βιβλιοθήκη της javascript καθώς χρησιμοποιείται σε πάνω από τις μισές σελίδες με έντονη επισκεψιμότητα. Με τη jquery γίνεται πιο εύκολη η επιλογή των elements, 30

31 η δημιουργία απλών animation, ο χειρισμός events και κυρίως η δημιουργία Ajax εφαρμογών (το Ajax θα αναλυθεί στην επόμενη ενότητα). Είναι ανοιχτό λογισμικό,παρέχεται δωρεάν και διαθέτει καλήτεκμηρίωση και υποστήριξη Ajax To Ajax (Asynchronous Javascript and XML) είναι ένα σετ από τεχνικές στην ανάπτυξη web εφαρμογών οι οποίες επιτρέπουν την ασύγχρονη επικοινωνία client server. Δηλαδή με χρήση Ajax μπορούμε να αποθηκεύσουμε ή να φορτώσουμε πληροφορίες από τον server χωρίς να κάνουμε reload τη σελίδα. Αυτό γίνεται μέσα από μεθόδους και αντικείμενα της javascript. Το Ajax έγινε πολύ δημοφιλές καθώς κάνει τις εφαρμογές πιο διαδραστικές και να μοιάζουν πιο πολύ με το σύνηθες interface του υπολογιστή. Όπως αναφέρθηκε στην προηγούμενη ενότητα, η jquery διαθέτει εργαλεία που κάνουν το Ajax πιο εύκολο. Το x του Ajax αναφέρεται στην XML. Τα δεδομένα που μεταφέρονται όμως δεν είναι υποχρεωτικό να είναι σε μορφή XML. Μπορεί να είναι σε μορφή JSON ή ακόμα και απλό κείμενο. Πλέον το JSON είναι πιο δημοφιλές στο Ajax από το XML μιας και η μορφή του είναι παρόμοια με τα αντικείμενα της javascript έτσι το parsing είναι πολύ απλό. Παρακάτω βλέπουμε ένα παράδειγμα με τα ίδια δεδομένα αποθηκευμένα με τις δύο αυτές μορφές. 31

32 Εικόνα 3 - Διαφορά XMLκαι JSON 3.11 Ubuntu linux Το λειτουργικό σύστημα που χρησιμοποιήθηκε για την ανάπτυξη της εφαρμογής είναι το Ubuntu LTS. Το Ubuntuείναι ένα ανοικτού κώδικα, ελεύθερο και δωρεάν λειτουργικό σύστημα βασισμένο στον πυρήνα Linux. Το όνομά του προέρχεται από την έννοια ubuntu των Ζουλού και Κόσα (Xhosa), που σημαίνει Είμαι ότι είμαι λόγω όσων όλοι είμαστε. Το Ubuntu ξεκίνησε το 2004, βασισμένο στη διανομή Debian. Ο στόχος του Ubuntu είναι η παροχή ενός διαρκώς ενημερωμένου, σταθερού λειτουργικού συστήματος για τον μέσο χρήστη, με ενισχυμένη έμφαση στην ευκολία χρήσης και εγκατάστασης. 32

33 Το Ubuntuείναι αυτή τη στιγμή η δεύτερη πιο δημοφιλής διανομή Linux για επιτραπέζιους υπολογιστές, πίσω μόνο από το linux Mint. Το Ubuntu, ως ελεύθερο και ανοικτού κώδικα λειτουργικό, διανέμεται χωρίς χρέωση και μπορεί να βελτιωθεί από κάθε προγραμματιστή που θέλει να συμμετάσχει στην ομάδα ανάπτυξης. Χρηματοδοτείται από την Canonical Ltd., μία ιδιωτική επιχείρηση και θεωρείται ιδανικό για ανάπτυξη εφαρμογών σε python μιας και τη διαθέτει εγκατεστημένη από την αρχή Firefox dev tools Ο browser Mozilla Firefox διαθέτει μια σειρά από πολύ χρήσιμα εργαλεία για τους web developers. Webconsole Με το web console μπορούμε να δούμε σφάλματα και πληροφορίες κατά τη φόρτωση της σελίδας, των scriptκαι του css. Είναι ένας απλός τρόπος να γίνει debugging, βλέποντας αν δεν έχει φορτώσει κάποιο script. Επίσης βλέπουμε πόσο χρόνο κάνει η σελίδα να φορτώσει αλλά και τα ajax calls. Εικόνα 4- Web console όπως εμφανίζεται στο κάτω μέρος του browser Inspect Το Inspect είναι ένα εργαλείο με το οποίο μπορούμε να ελέγξουμε τα html elements, με έναν πολύ φιλικό προς τον προγραμματιστή τρόπο. Βάζοντας το ποντίκι πάνω από κάποιο element 33

34 μπορούμε να δούμε ποιο είναι αλλά και άλλες πληροφορίες όπως το css του όπως χαρακτηριστικά φαίνεται στην εικόνα. ResponsiveDesignView Εικόνα 5- Inspect Με αυτό το εργαλείο μπορούμε να δούμε πώς εμφανίζεται η σελίδα σε διαφορετικά μεγέθη οθόνης. Πολλές φορές τα elements αναδιπλώνονται όταν η οθόνη είναι μικρότερη και αυτό συχνά δεν είναι επιθυμητό. Styleeditor Ο Style editor είναι στην ουσία ένας editorγια το css. Βοηθάει πολύ στη μορφοποίηση της σελίδας καθώς μπορούμε να δούμε άμεσα τις αλλαγές που κάνουμε. 34

35 3.13 Firebug Το firebug είναι ένα web development tool που μπορεί να εγκατασταθεί σαν plugin στον firefox. Έχει εργαλεία για το debuggingκαι το monitoringτης HTML, του CSS και της javascriptτης σελίδας. Είναι πολύ δημοφιλές και αποτελεσματικό και χρησιμοποιείται από χιλιάδες web developers στον κόσμο. Για την εφαρμογή μας χρησιμοποιήθηκε κυρίως για το debugging της javascript. Εικόνα 6- firebug 3.14 SSH/SCP Το SSH ή SecureShell είναι ένα δικτυακό πρωτόκολλο επικοινωνίας μεταξύ δύο υπολογιστών και χρησιμοποιείται κυρίως σε συστήματα Unix και Linux. Είναι ένας ασφαλής τρόπος, μιας και χρησιμοποιεί κρυπτογράφηση, για απομακρυσμένη πρόσβαση σε κάποιο υπολογιστή, συνήθως σε κάποιο server. Αφού γίνει η σύνδεση, μετά μπορούμε να εκτελούμε εντολές τερματικού σαν να λειτουργούσαμε στον ίδιο τον υπολογιστή. Απαραίτητη προϋπόθεση είναι να έχουμε εγκατεστημένο το SSH server στον υπολογιστή που θέλουμε πρόσβαση, και το SSH client στον υπολογιστή που χρησιμοποιούμε και φυσικά ένα username και password χρήστη του server. 35

36 Το SCP (SecureCopy) είναι ένα εργαλείο για μεταφορά αρχείων μεταξύ δύο υπολογιστών. Βασίζεται στο πρωτόκολλο SSH. Τόσο το SSH όσο και το SCP χρησιμοποιήθηκαν κατά την ανάπτυξη της εφαρμογής για τη πρόσβαση στο serverκαι το synchronize του κώδικα Cron Ο Cronείναι ένα job scheduler σε συστήματα unix και linux. Αυτό που κάνει με απλά λόγια είναι να εκτελεί κάποια προγράμματα σε καθορισμένες χρονικές στιγμές της μέρας. Στα πλαίσια της εφαρμογής δε χρησιμοποιήθηκε ο cronαλλά ένα job scheduler της python, o ΑPScheduler. O ΑPScheduler δίνει τη δυνατότητα για 3 ήδη scheduling: Simple date-based scheduling Interval-based scheduling Cron-style scheduling Έγινε χρήση του cron-style scheduling που εκτελείτε με τον ίδιο σχεδόν τρόπο όπως το cronτου unix, για τη διαδικασία άντλησης δεδομένων από το twitter σε συγκεκριμένες χρονικές στιγμές της μέρας. Εικόνα 7- Κώδικας ενεργοποίησης scheduler από την εφαρμογή Με τον παραπάνω κώδικα ενεργοποιούμε τον scheduler σε λειτουργία cron να εκτελεί τη μέθοδο mainκάθε μέρα στις 4 το πρωί. 36

37 3.16 Komodo Edit Το Komodo Edit είναι ένας text editor για προγραμματιστές. Είναι διαθέσιμος τόσο για Windows, για Linuxκαι για MacOSX. Είναι ιδανικός για web development καθώς έχει πολλές δυνατότητες όπως autocomplete για HTML, CSS αλλά και για μια σειρά από γλώσσες προγραμματισμού όπως PHP, Python, Perl, Ruby αλλά και SQL tweepy Το tweepy είναι ένας python wrapper, πιο απλά μια βιβλιοθήκη, για τη χρήση του twitter API. Διαθέτει μεθόδους που με τη σειρά τους καλούν urlsτου REST API του twitter και εκτελούν τις ενέργειες διευκολύνοντας τον προγραμματιστή. Επίσης διαθέτει και τις μεθόδους για αυθεντικοποίηση μέσω OAuth. Κάποιες από τις πιο συχνά χρησιμοποιούμενες μεθόδους στην εφαρμογή είναι οι home_timeline(), user_timeline(), get_status(), get_user(). 37

38 4 Απαιτήσεις Εφαρμογής Σκοπός είναι η δημιουργία μιας web εφαρμογής, στην οποία ο χρήστης θα μπορεί να συνδεθεί με τον λογαριασμό του από το twitter και να δει τα σημαντικότερα tweets, ιστορίες, hashtags και διαλόγους. Έτσι αφού συνδεθεί μέσω του twitter πρέπει να μπορεί να δει σε ξεχωριστές στήλες: το timeline του τα σημαντικότερα tweets βάση των retweets που πήραν και του klout score του user που το έκανε τις πιο σημαντικές ιστορίες. Οι ιστορίες είναι τα links που υπάρχουν στα tweets και κατατάσσονται με παρόμοιο τρόπο όπως τα top tweets τα πιο σημαντικά hashtags τις ποιο σημαντικές συζητήσεις Η εφαρμογή πρέπει να τραβάει καθημερινά δεδομένα από twitter και klout και να διαγράφει τα παλιά tweets και conversations. Το user interface πρέπει να είναι φιλικό προς το χρήστη και άμεσο χωρίς να απαιτεί reload της σελίδας. Πρέπει ο χρήστης να μπορεί εύκολα να φορτώνει περισσότερα στις στήλες και να μπορεί να ανοίγει τα inks εύκολα με ένα κλικ. Επίσης πρέπει κάνοντας κλικ σε κάποιον user να εμφανίζονται πληροφορίες για αυτόν. 4.1 Λειτουργικές απαιτήσεις συστήματος ΛΑ-1 Να προβάλλεται στην κεντρική σελίδα το timeline. ΛΑ-2 38

39 Να προβάλλονται στην κεντρική σελίδα τα top tweets. ΛΑ-3 Να προβάλλονται στην κεντρική σελίδα τα top stories. ΛΑ-4 Να προβάλλονται στην κεντρική σελίδα τα top hashtags. ΛΑ-5 Να προβάλλονται στην κεντρική σελίδα τα conversations. ΛΑ-6 Να δίνεται στο χρήστη η δυνατότητα «more» σε κάθε στήλη. ΛΑ-7 Να δίνεται η δυνατότητα στο χρήστη να ανοίξει τα links με ένα κλικ σε διαφορετικό tab του browser. ΛΑ-8 Να δίνεται η δυνατότητα στο χρήστη να βλέπει πληροφορίες για κάθε user που έχει κάνει κάποιο tweet που εμφανίζεται στην οθόνη του. ΛΑ-9 Το σύστημα πρέπει να συλλέγει δεδομένα από το twitter σε προγραμματισμένες ώρες και να τα αποθηκεύει σε μια βάση δεδομένων. ΛΑ-10 Το σύστημα πρέπει να μπορεί να αυθεντικοποιεί τους χρήστες που έχουν κάνει authorise την εφαρμογή. ΛΑ-11 Το σύστημα πρέπει να κάνει update και διαγράφει παλιό περιεχόμενο από τη βάση δεδομένων όπου χρειάζεται. ΛΑ-12 Το σύστημα πρέπει να αποθηκεύει σε αρχεία log πληροφορίες από την εκτέλεση του κώδικα. 39

40 4.2 Μη λειτουργικές απαιτήσεις συστήματος ΜΛΑ-1 Το σύστημα πρέπει να αποκρίνεται σε μικρό χρονικό διάστημα, κάτω του 1 sec. ΜΛΑ-2 Το User Interface πρέπει να είναι απλό και εύχρηστο. 4.5 Use case διάγραμμα Στο παρακάτω σχήμα παρατηρούμε το use case διάγραμμα της εφαρμογής. Σε ένα τέτοιο διάγραμμα βλέπουμε τις ενέργειες που μπορούν να κάνουν οι χρήστες της εφαρμογής. Στη συγκεκριμένη εφαρμογή έχουμε μόνο ένα είδος χρήστη. Οι ενέργειες που μπορεί να κάνει εκτός από signin και logoutείναι εμφάνιση πληροφοριών χρήστη, άνοιγμα περισσότερων πληροφοριών στις στήλες και άνοιγμα url και hashtag. 40

41 Σχήμα 2 - Διάγραμμα usecase 4.6 Σενάριο χρήσης Login Ο χρήστης πληκτρολογεί τη διεύθυνση της εφαρμογής(/). Ανοίγει η κεντρική σελίδα όπου ξεχωρίζει το logo της εφαρμογής και το κουμπί signin with twitter. Ο χρήστης κάνει κλικ στο κουμπί signin with twitter και κατευθύνεται σε μια σελίδα του twitter. Σε αυτή τη σελίδα εμφανίζεται το όνομα της εφαρμογής και το twitter ρωτάει τον χρήστη αν δίνει την άδεια στην εφαρμογή να χρησιμοποιήσει το λογαριασμό του. Εκεί αν είναι ήδη συνδεδεμένος πατάει απλά authorize app. Αλλιώς πρέπει πρώτα να πληκτρολογήσει το username και το password του και στη συνέχεια να δώσει την άδεια. 41

42 Μόλις δώσει την άδεια το twitterτον ανακατευθύνει αυτόματα στην κεντρική σελίδα της εφαρμογής (/home). Αν ο χρήστης κλείσει το παράθυρο (tab) και επιλέξει να το ξανανοίξει θα οδηγηθεί αυτόματα στην κεντική σελίδα κατευθείαν. Αν όμως κλείσει τον browser θα πρέπει να επαναλάβει τη διαδικασία καθώς σβήνεται το session. Η παραπάνω διαδικασία φαίνεται σχηματικά στο διάγραμμα δραστηριοτήτων. Σχήμα 3 - Διάγραμμα δραστηριοτήτων 42

43 5 Σχεδιασμός Συστήματος 5.1 Αρχιτεκτονική συστήματος To framework webpy δεν χρησιμοποιεί κάποιο συγκεκριμένο μοντέλο αρχιτεκτονικής αλλά αφήνει στον προγραμματιστή την ελευθερία να οργανώσει όπως αυτός θέλει τον κώδικά του. Για την εφαρμογή, χρησιμοποιήθηκε το MVT (Model View Template) όχι όμως στην αυστηρή του δομή. Σχήμα 4 - Highlevelπεριγραφή του συστήματος Στο Σχήμα 4 φαίνεται μια high level περιγραφή του συστήματος. Όπως σε όλες τις web εφαρμογές έχουμε τον client καιτον server (στον οποίο βρίσκεται και η βάση δεδομένων). Ο client και ο server επικοινωνούν μέσωτου διαδικτύου. Επίσης ο server επικοινωνεί και με το twitter μέσω internet για να παίρνει τα δεδομένα που χρειάζεται. 43

44 Στο Σχήμα 5 βλέπουμε πιο αναλυτικά την αρχιτεκτονική της εφαρμογής, η οποία, όπως είπαμε,ακολουθεί το πρότυπο MVT (Model-View-Template). Το Viewείναι το module code.py. Αυτό το moduleείναι το κεντρικότης εφαρμογής. Εδώ γίνεται το url handling, δηλαδή υπάρχει ο κώδικας που τρέχει ανάλογα με ποιο urlέχει ζητηθεί. Επίσης, εδώ αρχικοποιούνται τα sessions. Το modulecode.py δεν επικοινωνεί άμεσα με τη βάση δεδομένων, αλλά επικοινωνεί με το twitter API για το authentication. Το Modelείναι το module process.py. Όπως είπαμε το code.py δεν επικοινωνεί απευθείας με τη βάση δεδομένων. Αυτό γίνεται μέσω του process.py. Στις μεθόδους του process.py γίνοντια τα queries προς τη βάση για να παίρνει η εφαρμογή τα δεδομένα που θέλει. Αυτό το module έχει και μεθόδους που επικοινωνούν με το twitter api αν και τον κύριο φόρτο της επικοινωνίας με αυτό τον έχει το module loaddata.py που θα αναλυθεί στη συνέχεια. Τέλος έχουμε το Template που είναι τα html μας. Είναι αυτό που βλέπει ο χρήστης στον browser του. Υπάρχουν δύο html αρχεία, το signin και το home. To πρώτο είναι η αρχική σελίδα που έχει το κουμπί signin with twitter και η δεύτερη η κεντρική σελίδα της εφαρμογής. Εκτός από αυτά υπάρχει το αρχείο home-script.js, η javascript της εφαρμογής μας. Εδώ υπάρχουν συναρτήσεις, κυρίως click handlers, όπως για την εμφάνιση περισσότερων tweet. Εδώ βρίσκουμε και τα ajax calls που όπως αναφέρθηκε και προηγουμένως γίνονται με τη βοήθεια της jquery. Τέλος έχουμε το loaddata.py, ένα python module υπεύθυνο για την ενημέρωση της βάσης δεδομένων. Αυτό το module είναι το πιο πολύπλοκο προγραμματιστικά και έχει τις περισσότερες σειρές κώδικα. Το module αυτό είναι σχεδόν ανεξάρτητο από την υπόλοιπη εφαρμογή. Τρέχει με έναν pythoncronschedulerσε συγκεκριμένες ώρες της ημέρας. Η άντληση των tweets, η δημιουργία των conversations και το update των δεδομένων γίνονται όλα εδώ. Επομένως έχει τον κύριο φόρτο της επικοινωνίας με το twitter. Επίσης επικοινωνεί και με το klout αντλώντας βαθμολογίες χρηστών. 44

45 Σχήμα 5 - Η αρχιτεκτονική της εφαρμογής 5.2 Κώδικας code.py Το module αυτό όπως είπαμε παίζει το ρόλο του view στο MVT (Model View Template) μοντέλο της εφαρμογής μας. Από εδώ ξεκινάει να τρέχει η εφαρμογή και γίνεται το url haldling. Για κάθε url υπάρχει μια κλάση που τα διαχειρίζεται. Μέσα στη κλάση οι μέθοδοι GET, POST κλπ διαχειρίζονται τα αντίστοιχα HTTP αιτήματα. Υπάρχουν τα ακόλουθα url: / : Αυτό το url επιστρέφει την αρχική σελίδα με το κουμπί signin with twitter. Δημιουργείται ένας OAuthhandler (αντικείμενο που επιστέφει η βιβλιοθήκη tweepy) με το consumerkey και secret της εφαρμογής και μέσω αυτού παίρνουμε το url που θα ανοίξει πατώντας το signin with twitter. Επίσης σώζεται το requert token που παίρνουμε στο session. Επίσης αν ο χρήστης έχει αυθεντικοποιηθεί, κάνει αυτόματα redirect στην κεντρική σελίδα. 45

46 /verify : Αυτό το url δεν επιστρέφει κανένα html. Είναι το url στο οποίο το twitter κάνει redirect τον χρήστη και στέλνει το verifier. H εφαρμογή συλλέγει το verifier, κάνει το signin τον χρήστη στη βάση, σώζει το userid του σε session και κάνει redirect στη κεντρική σελίδα. /home : Αυτό το url επιστρέφει τη κεντρική σελίδα. Παίρνει πρώτα τα δεδομένα που θα εμφανίσει στις 5 στήλες μέσω του module process.py και τα κάνει render στο home.html που επιστρέφει. Εικόνα 8- Δείγμα κώδικα στο code.py /ajax : Σε αυτό το url γίνονται όλες οι κλήσεις ajax της εφαρμογής. Αφού αναγνωριστεί τι είδους δεδομένα ζητούνται, τα παίρνει μέσω του process.py και τα επιστρέφει. Να πούμε πως δενεπιστρέφεται κάποιο html. Τα δεδομένα που επιστρέφονται είναι απλό text ή JSON και από εκεί και πέρα η javascript είναι αυτή που τα διαχειρίζεται και τα εμφανίζει στο html. 46

47 /logout : Η κλήση σε αυτό το url γίνεται όταν ο χρήστης κάνει κλικ στο logout. Το μόνο που κάνει είναι να διαγράψει το session του χρήστη και να κάνει redirect στην αρχική σελίδα. Σε αυτό το module αρχικοποιούνται και επεξεργάζονται τα sessions. Υπάρχει μία μεταβλητή session για το userid και άλλες 5 μία για κάθε στήλη δηλώνοντας μέχρι ποια σελίδα δεδομένων να εμφανίζει. Παραδείγματος χάριν, για το timeline και page=1 εμφανίζονται 10 tweets, για page=2 εμφανίζονται 20 κλπ process.py Tomodule αυτό παίζει το ρόλο του model και επικοινωνεί με τη βάση. Είναι ένα σύνολο από μεθόδους που χρησιμοποιεί κυρίως το code.py. Θα δούμε τι κάνει η κάθε μία: Πίνακας 1 - Μέθοδοι process.py Όνομα μεθόδου Connect sign_in sign_up get_user_info identify_urls Timeline top_tweets Conversations top_stories top_hashtags Λειτουργία Συνδέεται στη βάση δεδομένων Αυτή η μέθοδος επιστρέφει το userid του χρήστη που μόλις αυθεντικοποιήθηκε μέσω OAuth. Αν δεν υπάρχει στη βάση (δηλαδή αν είναι η πρώτη φορά που χρησιμοποιεί το σύστημα) τον εισάγει μέσω της sign_up Εισάγει ένα χρήστη της εφαρμογής στη βάση δεδομένων Επιστρέφει εκτενής πληροφορίες για ένα user, μέσω twitter Αναγνωρίζει τα urls μέσα σε ένα κείμενο (tweet συνήθως) και ενσωματώνει δομή html ώστε αυτά να είναι clickable Επιστρέφει το home timeline του χρήστη ανάλογα το page (όπως εξηγήθηκε πιο πάνω), από το twitter Επιστρέφει τα καλύτερα tweets για τον χρήστη ταξινομημένα με βάση το grade τους Επιστρέφει τα topconversations για τον χρήστη ταξινομημένα ομοίως βάσει του grade τους Επιστρέφει τα πιο σημαντικά urls για τον χρήστη. Αυτό γίνεται βάσει της βαθμολογίας που έχει το tweet που περιέχει το url Ομοίως επιστρέφει τα πιο σημαντικά hashtags 47

48 Εικόνα 9- Δείγμα κώδικα από το process.py loaddata.py Αυτό το module όπως έχουμε πει είναι υπεύθυνο για την άντληση των tweets και γενικά όλων των δεδομένων από το twitter και το klout και τη φόρτωσή τους στη βάση αλλά και τον καθαρισμό των παλαιών δεδομένων. Στο loaddata.py ορίζεται μία βασική κλάση η LoadData και μια βοηθητική η TitleParser. Η LoadData διαθέτει όλες τις μεθόδους για την ενημέρωση της βάσης. Ξεκινάμε αναφέροντας τις βασικές μεθόδους της. Πίνακας 2 - Βασικές μέθοδοι loaddata.py Όνομα μεθόδου load_new Λειτουργία Η μέθοδος αυτή εισάγει για κάθε χρήστη της εφαρμογής, τα tweets του timeline του στη βάση. Κάθε φορά αποθηκεύουμε στη βάση ποιο ήταν το τελευταίο tweet που φορτώσαμε για τον χρήστη ώστε την επόμενη φορά να συνεχίσει η φόρτωση από εκείνο το σημείο. Κάθε tweet βαθμολογείται. Αρχικά παίρνουμε το kloutscore του user που έκανε το tweet και το βάζουμε σαν είσοδο μαζί με τα retweets στη μέθοδο της LoadData tweet_grade η οποία μας επιστρέφει το βαθμό του tweet (float). Πριν την εισαγωγή του tweet, ελέγχεται αν ο 48

49 userσυντάκτης του tweet υπάρχει στη βάση, αν όχι εισάγεται. Εδώ να τονίσουμε τη διαφορά ανάμεσα στους χρήστες της εφαρμογής και τους users του twitter καθώς αποθηκεύονται σε διαφορετικά tables της βάσης, μιας και μας ενδιαφέρουν διαφορετικά στοιχεία για τον καθένα (πιο πολλές λεπτομέρειες στην σχετική ενότητα για το σχήμα της βάσης). Τέλος, μαζί με την αποθήκευση ενός tweet στη βάση αποθηκεύονται και τυχών hashtags ή urls που αυτό διαθέτει. update Η μέθοδος update έχει διπλό ρόλο. Ο πρώτος είναι να διαγράφει τα παλιά tweets, δηλαδή όσα δημιουργήθηκαν πριν από περισσότερες από 2 μέρες. Ο δεύτερος είναι ενημερώνει τη βάση όσον αφορά τους users. Ελέγχει ποιοι twitter users ακολουθούνται από ποιους χρήστες της εφαρμογής, εισάγει όσους είναι νέοι και διαγράφει τους παλιούς. Επίσης ενημερώνει για αλλαγές στο όνομα του user ή στο avatar του. Εικόνα 10- Τμήμα μεθόδου load_new 49

50 Στη συνέχεια ακολουθούν 6 μέθοδοι που σχετίζονται με τα conversations. Είναι περισσότερες από αυτές για τα απλά tweets λόγω της αυξημένης πολυπλοκότητας. Πίνακας 3 - Μέθοδοι conversation loaddata.py Όνομα μεθόδου Λειτουργία new_conversations Αυτή η μέθοδος ελέγχοντας το usertimeline των users (usertimeline είναι τα tweets που έχει κάνει ένας user) ανιχνεύει ποια tweets ανήκουν σε conversation και τα φορτώνει στη βάση μέσω της μεθόδου insert_conv_tweet. Λόγω της φύσης της μεθόδου αυτής, χρησιμοποιεί πολύ το twitterapi έτσι για να μην έχουμε μεγάλα προβλήματα με το ratelimit η μέθοδος εκτελείται για περιορισμένο αριθμό users κάθε φορά insert_conv_tweet Αυτή η μέθοδος, όπως αναφέρθηκε, εισάγει στη βάση δεδομένων ένα tweet που ανήκει σε κάποιο conversation set_conv_ids Αυτή η μέθοδος ελέγχει ποιαconversationtweets ανήκουν σε ποιοconversation και αναλόγως τους βάζει το id του συγκεκριμένου conversation update_conv_tweets Διαγράφει τα conversations που έχουν tweets παλαιότερα των 2 ημερών auth_user_conv_update Αυτή η μέθοδος αποθηκεύει στη βάση ποιαconversations ανήκουν σε ποιους χρήστες της εφαρμογής update_conv_grade Υπολογίζει τη βαθμολόγηση του κάθε conversation, προσθέτοντας τις βαθμολογίες των tweet από τα οποία αποτελείται, και την αποθηκεύει στη βάση Οι υπόλοιπες μέθοδοι είναι υποστηρικτικές και καλούνται από τις παραπάνω βασικές μεθόδους. Πίνακας 4 - Βοηθητικές μέθοδοι loaddata.py Όνομα μεθόδου check_klout tweet_grade output Λειτουργία Μέθοδος για την τήρηση του rate limit στο klout Δέχεται σαν ορίσματα το klout score και τα retweets και υπολογίζει βάσει ενός αλγορίθμου το βαθμό του tweet Επειδή δεν είναι εφικτό να γίνεται monitoring κατά την εκτέλεση του αλγορίθμου, όλα τα μηνύματα κατά την εκτέλεση τυπώνονται σε 50

51 handle_exception debug_exception extract_urls extract_hashtags find_title ένα αρχείο, το output.txt, το οποίο μπορούμε στη συνέχεια να ελέγξουμε. Είναι δηλαδή ένα είδος tracing. Αυτή η μέθοδος καλείται όταν έχουμε κάποιο exception και αποθηκεύει πληροφορίες για το exception στο αρχείο exceptions.txt Χρησιμοποιήθηκε για debugging μέσω της κονσόλας Δέχεται σαν είσοδο ένα κείμενο (tweet) και επιστρέφει μια λίστα με τα urls που έχει Ομοίως με πάνω, επιστρέφει μια λίστα με hashtags που έχει το tweet Δέχεται ως όρισμα ένα url και επιστρέφει τον τίτλο του url. Αυτό γίνεται αφού το ανοίξει, πάρει την html και αναζητήσει τον τίτλο της σελίδας (<title>). Εδώ χρησιμοποιείται η κλάση TitleParser που είδαμε προηγουμένως Εικόνα 11- Μέθοδος find_title home-script.js Αυτή είναι η javascript της εφαρμογής μας. Έχει πέντε jquery click handlersγια τα κουμπιά more των στηλών που κάνουν ajax calls, όπως και έναν click handler για να κλείνει το παράθυρο με τα user info. Επίσης υπάρχουν άλλες τρεις συναρτήσεις click hanlders. Η logout, 51

52 για το κουμπί logout, η url linkγια το χειρισμό των κλικ σε κάποιο urlκαι η user_info που εμφανίζει το παράθυρο με τις πληροφορίες του χρήστη. Εικόνα 12- Συνάρτηση user_info 5.3 Βασικά αρχεία εφαρμογής Αναλυτικά τα βασικά αρχεία της εφαρμογής είναι: code.py process.py loaddata.py templates/ home.html signin.html static/ home-script.js home-style.css log/ output.txt exceptions.txt 52

53 Εικόνα 13- Τμήμα κώδικα CSS Εικόνα 14- Τμήμα κώδικα HTML από home.html 5.4 Διάγραμμα ακολουθιών Στο παρακάτω σχήμα φαίνεται ένα διάγραμμα ακολουθιών. Αυτό το διάγραμμα δείχνει την ακολουθία εκτέλεσης μιας εντολής του χρήστη στα διάφορα components του συστήματός μας. 53

54 Σχήμα 6 - Διάγραμμα ακολουθιών Η ενέργεια που κάνει ο χρήστης στο συγκεκριμένο παράδειγμα είναι να κάνει κλικ πάνω στο όνομα ενός χρήστη, στην κεντρική σελίδα της εφαρμογής. Αυτή η ενέργεια θα πρέπει να του εμφανίσει ένα μικρό παράθυρο με τις πληροφορίες του χρήστη. Ο χρήστης της εφαρμογής κάνοντας κλικ πάνω στον χρήστη του twitter πάνω στην κεντρική σελίδα, home.html, ενεργοποιεί τη μέθοδο user_info της javascript (home-script.js). Αυτή μέσω της jquery κάνει ajax call στον server ζητώντας τις πληροφορίες του συγκεκριμένου χρήστη. Εδώ παρατηρούμε στο σχήμα διαχωρίζεται μέσω μιας γαλάζιας γραμμής ο κώδικας που εκτελείτε στον client (frontend) και ο κώδικας που εκτελείτε στον server (backend). Στη συνέχεια αυτή η αίτηση παραλαμβάνεται από το module code.py, που όπως είπαμε και πριν παίζει το ρόλο του view, και αφού ελεγχθεί τι δεδομένα ζητούνται κάνει κλήση στην μέθοδο get_user_info του module process.py για να τα πάρει. Το process.py (model στο MVT) πρέπει να επιστρέψει τώρα τα στοιχεία του χρήστη. Η συγκεκριμένη μέθοδος δεν παίρνει τα δεδομένα από τη βάση αλλά από το twitter real-time. Αρχικά όμως παίρνει από τη βάση τα 2 user tokens του χρήστη (keyκαι secret) και στη συνέχεια ζητάει πληροφορίες για τον χρήστη μέσω του twitter API. Όταν το API επιστρέψει τα δεδομένα, τα επιστρέφει και η get_user_infoτου process.py σε μορφή αντικειμένου της python. Έτσι, τα παραλαμβάνει το 54

55 code.py και αφού τα μετασχηματίσει σε μορφή JSON τα επιστρέφει με αυτή τη μορφή. Τέλος, τα παραλαμβάνει η javascript στον client και τα εμφανίζει σε ένα παράθυρο στον χρήστη. Κατά την εκτέλεση της παραπάνω ενέργειας, δεν έχουμε επαναφόρτωση (reload) της σελίδας καθώς όλη η επικοινωνία με το serverγίνεται μέσω της javascriptκαι αυτό είναι το προτέρημα της χρήσης ajax. 5.5 Σχήμα βάσης δεδομένων Όπως αναφέραμε και προηγουμένως χρησιμοποιήσαμε τη MySQL σαν βάση δεδομένων. Στο σχήμα 3 φαίνεται το σχήμα της βάσης δεδομένων μας. Σχήμα 7 - Σχήμα βάσης δεδομένων 55

56 Στη συνέχεια αναλύονται οι σχέσεις (relations - tables) και οι συσχετίσεις (relationships) μεταξύ τους. User id_user name screen_name klout_score dt_retrieved image last_update INT NOT NULL VARCHAR(45) NOT NULL VARCHAR(45) NOT NULL FLOAT NULL FLOAT NULL VARCHAR(200) NULL BIGINT NOT NULL Σε αυτόν τον πίνακα αποθηκεύονται οι users του twitter που έχουν συντάξει tweet που υπάρχει στη βάση. Το id_user είναι primary key και είναι το twitterid που έχει ο συγκεκριμένος χρήστης (όλοι οι χρήστες του twitter έχουν ένα μοναδικό id). Το name είναι το όνομα του user ενώ screen_name είναι το όνομα που απευθυνόμαστε όταν κάνουμε mention. Επίσης αποθηκεύουμε το kloutscoreτου χρήστη και το urlτης εικόνας που χρησιμοποιεί για avatar. Στη στήλη dt_retrieved αποθηκεύεται πότε ο χρήστης μπήκε στη βάση, ενώ το last_update χρησιμοποιείται από τα conversationsώστε να γνωρίζει ποιο ήταν το τελευταίο status (tweet) που πήραμε. Ο πίνακας αυτός χρησιμοποιεί κωδικοποίηση utf-8 επειδή η στήλη name μπορεί να περιέχει μη-ascii χαρακτήρες. Tweet id_tweet text user retweets dt_created dt_retrieved grade BIGINT NOT NULL VARCHAR(250) NOT NULL INT NOT NULL INT NOT NULL DATETIME NOT NULL DATETIME NOT NULL FLOAT NULL Σε αυτόν τον πίνακα αποθηκεύονται τα tweets (όχι αυτά που ανήκουν σε conversation). Το id_tweet είναι ένας μοναδικός αριθμός που προσδιορίζει το tweetστο twitter και είναι το primarykey. Χρησιμοποιούμε τύπο BIGINT για την αποθήκευσή του γιατί ο INT δεν αρκεί. Το text είναι το tweet. Η στήλη userείναι foreign key στον πίνακα User και δηλώνει τον συντάκτη 56

57 του tweet. Τα δυό πεδία dt_created και dt_retrieved αποθηκεύουν το πότε δημιουργήθηκε και πότε φορτώθηκε στη βάση το tweet. Τέλος έχουμε τα retweetsκαι τον βαθμότου tweet, grade. Ο πίνακας αυτός έχει επίσης κωδικοποίηση utf-8. URL url tweet title VARCHAR(30) NOT NULL BIGINT NOT NULL VARCHAR(200) NULL Εδώ αποθηκεύονται τα urls, και συγκεκριμένα στη στήλη url. Η στήλη tweet είναι foreign key στο tweet που ανήκει το συγκεκριμένο url, ενώ έχουμε και τον τίτλο του url στο πεδίο title. Η στήλη url μαζί με το tweet αποτελούν pimary key. Hashtag hashtag tweet VARCHAR(140) NOT NULL BIGINT NOT NULL Εδώ αποθηκεύονται τα hashtags των tweets. Οι 2 στήλες μαζί αποτελούν primary key. Εικόνα 15- Δημιουργία URLtable (κώδικας SQL) 57

58 Authenticated_user id_user token_key token_secret last_update dt_retrieved INT NOT NULL VARCHAR(120) NOT NULL VARCHAR(120) NOT NULL BIGINT NOT NULL DATETIME NULL Σε αυτό τον πίνακα αποθηκεύουμε τους χρήστες της εφαρμογής μας. Το id_user είναι το primarykey, τα token_key και token_secret είναι απαραίτητα για να την αυθεντικοποίηση του χρήστη. Το last_update δηλώνει το τελευταίο tweet που τραβήξαμε από το home timeline του χρήστη και το dt_retrieved το από πότε ο χρήστης υπάρχει στη βάση. Followers app_user follows INT NOT NULL INT NOT NULL Αυτός ο πίνακας δείχνει ποιους twitter users ακολουθούν οι χρήστες της εφαρμογής μας. Οι δύο στήλες μαζί αποτελούν primary key. Hστήλη app_user κάνει reference στον πίνακα Authenticated_user ενώ η follows στον πίνακα User. Conversation_tweet id_tweet text user name image retweets grade dt_created in_reply_to_tweet in_reply_to_username id_conversation BIGINT NOT NULL VARCHAR(250) NOT NULL INT NOT NULL VARCHAR(45) NOT NULL VARCHAR(200) NULL INT NOT NULL FLOAT NULL DATETIME NOT NULL BIGINT NULL VARCHAR(45) NULL INT NULL 58

59 Σε αυτό τον πίνακα αποθηκεύονται τα tweets που ανήκουν σε conversation. Toid_tweet είναι primary key. Το text είναι το κείμενο του tweet και τα user, name, image αναφέρονται στον συντάκτη του tweet. Επίσης έχουμε τα retweet, το gradeκαι το date_created. Το in_reply_to_tweet είναι το id του tweet στο οποίο απαντάει το συγκεκριμένο και το in_reply_to_username το όνομα του χρήστη στον οποίο απαντάει. Τέλος το id_conversation δηλώνει σε ποιο conversation ανήκει το συγκεκριμένο tweet. Auth_user_conversations app_user id_conversation grade INT NOT NULL INT NOT NULL FLOAT NULL Αυτός ο πίνακας χρειάζεται για δύο λόγους. Πρώτον για να ξέρουμε ποια conversation ανήκουν σε κάθε χρήστη και τη βαθμολογία τους. To app_user μαζί με το id_conversation είναι primary key. sessions session_id atime data CHAR(128) NOT NULL TIMESTAMP NOT NULL DEFAULT current_timestamp TEXT NULL O πίνακας sessions χρησιμοποιείται από το framework για την αποθήκευση των μεταβλητών των sessions. 59

60 5.7 Screenshots από σελίδες Εικόνα 16 - Αρχική σελίδα 60

61 Εικόνα 17- Σελίδα αυθεντικοποίησης μέσω twitter 61

62 Περιγραφή κεντρικής σελίδας. Εικόνα 18- Κεντρική σελίδα Στην κορυφή υπάρχει μια μπάρα που χαιρετάει τον χρήστη, ενώ δεξιά υπάρχει η επιλογή logout. Ακριβώς πιο κάτω υπάρχουν στη σειρά 5 στήλες. Η πρώτη είναι το timeline. Για κάθε tweet που εμφανίζεται, φαίνεται ο χρήστης, το avatarτου χρήστη και ο αριθμός των retweet που έχει το συγκεκριμένο tweet. Αρχικά εμφανίζονται 10 tweets. Κάτω κάτω υπάρχει η επιλογή more, όπως σε κάθε στήλη, και πατώντας την εμφανίζονται άλλα 10 tweets. Η δεύτερη στήλη είναι τα top tweets ταξινομημένα σύμφωνα με ένα αλγόριθμο της εφαρμογής. Εμφανίζονται με τον ίδιο τρόπο όπως και τα tweets του timeline. Τρίτη στήλη είναι τα top stories. Εδώ εμφανίζεται ο τίτλος που έχει το κάθε link και ο χρήστης πατώντας πάνω του μπορεί να το ανοίξει. Στη συνέχεια τα top hashtags εμφανίζονται επίσης σύμφωνα με τη κατάταξη του αλγόριθμου. Πατώντας πάνω σε ένα hashtag ανοίγει το search του twitterμε το συγκεκριμένο hashtag. Τελευταία στήλη είναι τα conversations. Σε κάθε tweet εδώ φαίνεται σε ποιον user απαντάει. 62

63 Εικόνα 19- Πληροφορίες χρήστη στη κεντρική σελίδα 63

64 6 Πειραματικό Μέρος 6.1 Μέγεθος Βάσης Σε αυτή την ενότητα θα υπολογίσουμε το μέγεθος της βάσης δεδομένων. Αρχικά υπολογίζουμε πόσα byte είναι η κάθε γραμμή (εγγραφή - entry) στο κάθε πίνακα. Στη συνέχεια κάνοντας ορισμένες παραδοχές για τον αριθμό των χρηστών αλλά και άλλες παραμέτρους υπολογίζουμε προσεγγιστικά το μέγεθος. User ΙΝΤ -> 4 bytes VARCHAR utf-8 (μέσου μήκους 10) -> 10 x 3 = 30 bytes VARCHAR utf-8 (μέσου μήκους 10) -> 10 x 3 = 30 bytes FLOAT -> 4 bytes DATETIME -> 8 bytes VARCHAR utf-8 (μέσου μήκους60) -> 60 x 3 = 180 bytes BIGINT -> 8 bytes Σύνολο -> 264 bytes ανά γραμμή Με παρόμοιο τρόπο υπολογίζουμε και για τους άλλους πίνακες. Τweet : Σύνολο -> 276 bytes ανά γραμμή URL : Σύνολο -> 248 bytes ανά γραμμή Hashtag : Σύνολο ->18 bytes ανά γραμμή Authenticated_user : Σύνολο ->110 bytes ανά γραμμή 64

65 Followers : Σύνολο ->8 bytes ανά γραμμή Conversation_tweet : Σύνολο ->52 0bytes ανά γραμμή Auth_user_conversations : Σύνολο ->12 bytes ανά γραμμή Στη συνέχεια, βάσει ενός αριθμού χρηστών, υπολογίζουμε προσεγγιστικά το συνολικό μέγεθος της βάσης δεδομένων της εφαρμογής. Θεωρούμε ότι την εφαρμογή χρησιμοποιούν 1000 χρήστες. Έστω ότι ο καθένας ακολουθεί 150 χρήστες, ο καθένας από τους οποίους κατά μέσο όρο κάνει 10 tweets την ημέρα. Επίσης, βάσει των δεδομένων υπολογίζουμε περίπου 30 διαλόγους (conversations) ανά χρήστη της εφαρμογής, και κάθε διάλογος κατά μέσο όρο 3 tweets χρήστες της εφαρμογής σημαίνει 1000 γραμμές στον πίνακα Authenticated_user. 150 x 1000 = γραμμές στον πίνακα Userαν θεωρήσουμε ότι δεν υπάρχουν κοινοί usersfollowed μεταξύ των χρηστών της εφαρμογής (πράγμα αδύνατο αλλά εξετάζουμε το χειρότερο σενάριο).επομένωςέχουμε γραμμές και στον πίνακα Followers. Η εφαρμογή κρατάει tweets 3 ημερών επομένως υπολογίζουμε x 10 x 3 = γραμμές στον πίνακα Tweet. Υπολογίζουμε επίσης το 1/10 των tweet να περιέχει κάποιο url και το 1/20 κάποιο hashtag. Επομένως θα έχουμε γραμμές στον πίνακα URL και στον πίνακα hashtag. Mε 30 conversationsανά χρήστη έχουμε 30 x 1000 = γραμμές στον πίνακα Auth_user_conversationsκαι x 3 = γραμμές στον Conversation_tweet. Πίνακας 5 - Μέγεθος βάσης table Μέγεθος γραμμής Αριθμός γραμμών Μέγεθος Authenticated_user 110 bytes KB User 264 bytes KB Followers 8 bytes KB Tweet 276 bytes MB URL 248 bytes MB Hashtag 18 bytes KB Auth_user_conversations 12 bytes KB Conversation_tweet 520 bytes KB Σύνολο 1,45 GB 65

66 6.2 Χρόνοι απόκρισης συστήματος Εξετάζουμε τους χρόνους απόκρισης του συστήματος σε συνθήκες χαμηλού φόρτου. Η πρώτη περίπτωση είναι η εμφάνιση των πληροφοριών του χρήστη. Είναι ένα ajax call που παίρνει τις πληροφορίες του χρήστη από το twitter real-time. Βλέπουμε στην εικόνα τη καθυστέρηση που υπάρχει μέσω του εργαλείου για web developers που διαθέτει ο Chrome. Εικόνα 20- Καθυστέρηση στην user_info σε Chrome Πίνακας 6 - Καθυστέρηση στηνuser_info Καθυστερήσεις Παρατηρούμε ότι η καθυστέρηση είναι κοντά στο μισό δευτερόλεπτο. Η διαδικασία άντλησης πληροφοριών από το twitter ευθύνεται σε μεγάλο βαθμό για αυτή τη καθυστέρηση. Ομοίως και για τη φόρτωση περισσότερων tweet στο timeline, έχουμε επίσης μια αισθητή καθυστέρηση όπως φαίνεται στο σχήμα 5. Αυτό γιατί είναι μια διαδικασία που γίνεται real timeαπό το twitter. Εδώ η καθυστέρηση ξεπερνάει το 1 δευτερόλεπτο. Αντιθέτως, στη φόρτωση περισσότερων top-tweets, stories και conversations η καθυστέρηση είναι πολύ μικρότερη καθώς γίνεται από τη βάση δεδομένων. Οι χρόνοι φαίνονται στον παρακάτω πίνακα. 66

67 Πίνακας 7 - Καθυστέρηση σε φόρτωση 'more' url data size delay /ajax?todo=more_timeline KB 1.28 s /ajax?todo=more_tweets KB 158 ms /ajax?todo=more_stories 2.42 KB 116 ms /ajax?todo=more_conv KB 261 ms Η φόρτωση της κεντρικής σελίδας παίρνει περίπου μισό δευτερόλεπτο. Ο χρόνος απόκρισης εξαρτάται από πολλούς παράγοντες όπως ο φόρτος στο server και το routing που θα γίνει (δηλαδή η διαδρομή που θα ακολουθηθεί για να φτάσει το μήνυμα). Βέβαια ο server όντας στο πανεπιστήμιο, όλα τα requests από υπολογιστές στη Θεσσαλονίκη ακολουθούν σχεδόν πάντα την ίδια διαδρομή οπότε το routing δεν επηρεάζει τόσο όσο ο φόρτος στον server. Στο σχήμα και τον πίνακα βλέπουμε επίσης τους χρόνους και τη σειρά που γίνεται η φόρτωση. Εικόνα 21 Φόρτωση αρχικής σελίδας στον Chrome Πίνακας 8 - Καθυστέρηση στην αρχική σελίδα Name (Path) data size delay / 569 B 506 ms /static/signin-style.css 360 B 34 ms /static/home-script.js 2.50 KB 41 ms /static/tweet-for-me-logo.png 75 KB 47 ms /static/sign-in-with-twitter-d.png 3.23 KB 56 ms Για το signin στην εφαρμογή, όπως είπαμε, απαιτούνται δύο βήματα. Ένα είναι κάνοντας κλικ στο signin with twitter να οδηγηθούμε στη σελίδα του twitter και στη συνέχεια να κάνουμε authorize app για να οδηγηθούμε στην κεντρική σελίδα της εφαρμογής. 67

68 Η σελίδα του twitter κάνει περίπου 1.5 sec να φορτώσει ενώ στη συνέχεια η φόρτωση της κεντρικής σελίδας της εφαρμογής για πρώτη φορά κάνει κοντά στα 3 sec. Αρχικά, όπως φαίνεται και στο παρακάτω σχήμα, φορτώνει το /verify, εκεί γίνεται το signin του χρήστη, και στη συνέχεια γίνεται redirect στη /home που είναι στη κεντρική σελίδα. Εικόνα 22 Φόρτωση κεντρικής σελίδας στον Chrome Πίνακας 9 - Καθυστέρηση στην κεντρική σελίδα Name (Path) /verify /home /static/home-style.css /static/jquery.js /static/home-script.js delay 1.78 s 1.36 s 61 ms 143 ms 34 ms Στο σχήμα φαίνεται ένα παράδειγμα πως μπορεί να καθυστερήσει η φόρτωση της σελίδας εξ αιτίας τις καθυστέρησης του twitter να δώσει μία εικόνα. Στο συγκεκριμένο παράδειγμα βλέπουμε πως μια εικόνα προφίλ καθυστερεί να έρθει σε σχέση με τις άλλες. Αυτό καθυστερεί τη φόρτωση ολόκληρης της σελίδας περίπου μισό δευτερόλεπτο. 68

69 Εικόνα 17- Καθυστέρηση φόρτωσης εικόνας 6.3 Αποτελέσματα στατιστικής έρευνας και συμπεράσματα Για να φανούν τα αποτελέσματα της εφαρμογής διεξήχθη μικρή στατιστική έρευνα. Δηλαδή ζητήθηκε από άτομα που χρησιμοποίησαν την εφαρμογή να συμπληρώσουν ένα ερωτηματολόγιο, λέγοντας τη γνώμη τους. Η εφαρμογή και το ερωτηματολόγιο γνωστοποιήθηκε κυρίως μέσω του φόρουμ thmmy.gr και συνολικά συμμετείχαν 24 άτομα-οι περισσότεροι φοιτητές Ηλεκτρολόγοι Μηχανικοί- ανώνυμα από τις 15 έως τις 28 Φεβρουαρίου Χρησιμοποιήθηκε η υπηρεσία forms από το googledrive, η οποία δίνει τη δυνατότητα δημιουργίας ερωτηματολογίων εύκολα από οποιονδήποτε χωρίς να χρειάζονται γνώσεις html. Στη συνέχεια τα αποτελέσματα συλλέγονται σε ένα έγγραφο μορφής excelτο οποίο μπορούμε να επεξεργαστούμε με διάφορους τρόπους. Στη περίπτωση του δικού μας ερωτηματολογίου αυτό ήταν πολύ εύκολο γιατί το δείγμα ήταν μικρό. Επιλέχθηκε αυτός ο τρόπος μέτρησης των αποτελεσμάτων καθώς το πόσο ενδιαφέρον είναι το περιεχόμενο που εμφανίζει η εφαρμογή (toptweets, conversationsκλπ) αλλά και το user interface δεν είναι αντικειμενικά μετρήσιμο. Αυτό που ζητήθηκε από τους χρήστες να απαντήσουν είναι πόσο τους άρεσαν συγκεκριμένα κομμάτια της εφαρμογής. Οι ερωτήσεις ακριβώς φαίνονται παρακάτω: Πόσο ενδιαφέροντα σας φάνηκαν τα tweets που εμφανίζονται; (top tweets) Πόσο ενδιαφέροντα σας φάνηκαν τα stories που εμφανίζονται; (top stories) Πόσο ενδιαφέροντα σας φάνηκαν τα hashtags που εμφανίζονται; (top hashtags) Πόσο ενδιαφέροντα σας φάνηκαν τα conversations που εμφανίζονται; Πόσο σας άρεσε το UI (userinterface) και η λειτουργικότητα της εφαρμογής; Παρατηρήσατε bugs στην εφαρμογή; (σφάλματα) Γενικά σχόλια Οι πρώτες 5 ερωτήσεις είχαν 5 δυνατές επιλογές (πολύ, αρκετά, μέτρια, λίγο, καθόλου). Οι τελευταίες 2 ήταν ελεύθερης ανάπτυξης. Τα αποτελέσματα φαίνονται στα παρακάτω σχήματα. 69

70 πολύ αρκετά μέτρια λίγο καθόλου 0 top tweets top stories Σχήμα 8 - Αποτελέσματα για toptweetsκαι topstories πολύ αρκετά μέτρια λίγο καθόλου 0 top hashtags conversations Σχήμα 9 - Αποτελέσματα για tophashtagsκαι conversations 70

71 πολύ αρκετά μέτρια λίγο καθόλου 0 user interface Σχήμα 10 - Αποτελέσματα για UserInterface Σε γενικές γραμμές τα αποτελέσματα κρίνονται θετικά. Στους χρήστες άρεσαν ιδιαιτέρως τα top tweets και τα conversations. Στο ερωτηματολόγιο, οι συμμετέχοντες μπορούσαν να σχολιάσουν γενικότερα την εφαρμογή. Σε κάποιες παρατηρήσεις αναφέρθηκε πως τα storiesχρειάζονταν μια μικρή περίληψη εκτός από τον τίτλο και ότι στα top tweets εμφανίζονται πολλά tweetsαπό τους ίδιους χρήστες. 71

72 7 ΜελλοντικέςΠροεκτάσεις Στόχος αυτής της διπλωματικής ήταν η δημιουργία μιας εφαρμογής που θα εμφανίζει τα σημαντικότερα tweets για τους χρήστες της σε ένα λειτουργικό και φιλικό περιβάλλον χρήσης. Όπως αναφέρθηκε στο προηγούμενοκεφάλαιο, τα σχόλια που απέσπασε η εφαρμογή από τα άτομα που τη χρησιμοποίησαν ήταν σε γενικές γραμμές θετικά. Ωστόσο υπάρχουν πολλά περιθώρια για βελτιώσεις στο μέλλον. Ήδη αναφέρθηκε ότι σε κάποια από τα σχόλια ζητήθηκε ο τίτλος των topstories να συνοδεύεται από μια μικρή περίληψη. Βέβαια αυτό δεν είναι εφικτό σε για όλα τα urls αλλά θα μπορούσε να γίνει για ορισμένα. Επίσης, στα toptweetsεμφανίζονται συχνά tweetsαπό τους ίδιους χρήστες. Αυτό συμβαίνει γιατί συγκεκριμένοι χρήστες με υψηλό klout score τείνουν να παίρνουν και περισσότερα retweets και πολλές φορές μονοπωλούν τη στήλη top tweets. Αυτό που θα μπορούσε να γίνει στη συγκεκριμένη περίπτωση είναι μια πιο περίπλοκη διαδικασία rankingπου δε βασίζεται μόνο στη βαθμολογία των tweets αλλά και στον αριθμό των tweets συγκεκριμένων χρηστών. Ένα άλλο πρόβλημα της εφαρμογής είναι ότι η φόρτωση δεδομένων έχει μεγάλες απαιτήσεις σε δεδομένα από το twitter με αποτέλεσμα να φτάνει το rate limit πολλές φορές τη μέρα. Με το νέο versionτου twitter API 1.1 το πρόβλημα αυτό έγινε μεγαλύτερο καθώς τα όρια του rate limit μειώθηκαν και άλλο και απαιτείται άλλη προσέγγιση. Μία λύση που θα βελτίωνε την κατάσταση θα ήταν το update των πληροφοριών των χρηστών στη βάση να γίνεται μια φορά τη βδομάδα και όχι κάθε μέρα, μιας και δεν αλλάζουν συχνά. Τέλος, για να μπορεί να υποστηρίζει η εφαρμογή πολύ μεγάλο αριθμό χρηστών αδιάλειπτα, θα ήταν απαίτηση να γίνει Twitter Certified Product. 72

73 ΠΑΡΑΡΤΗΜΑ Άλλα αξιοσημείωτα pythonwebframeworks Django url: Το Djangoείναι το πιο δημοφιλές webframeworkτης python. Είναι ένα framework υψηλού επιπέδου που βοηθάει τη γρήγορη ανάπτυξη κώδικα και την καθαρή και αντικειμενοστρεφή σχεδίαση.το Django αυτοματοποιεί πολλές διαδικασίες για τον προγραμματιστή και είναι πιστό στην αρχή DRY (Don t Repeat Yourself). Μέσα στις δυνατότητες του Django συγκαταλέγονται η δημιουργία datamodelsγια ευκολότερη επικοινωνία με τη βάση δεδομένων, χωρίς αυτό όμως να απαγορεύει τη χρήση SQL, αυτόματη δημιουργία admininterface, templatesystemκαι ένα ελκυστικό URL design. Turbogears url: To Turbogears είναι ένα πολύ ισχυρό web framework που βασίζεται στο Django και το Ruby on Rails παίρνοντας τα θετικά τους και καλύπτοντας τις αδυναμίες τους. Χρησιμοποιεί το πρότυπο 73

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία AtYourService CY : Create a REST API Δημήτρης Χριστοδούλου Λεμεσός 2016 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ

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

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

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

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

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

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

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

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification Speed-0 Web and Mobile Platform Speed-0 WMP: Web and Mobile Platform Software Requirements Specification Version Revision History Date Version Description People 5/4/2012 Αρχικές Προδιαγραφές

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

XAMPP Apache MySQL PHP javascript xampp

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

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

Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης

Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης Twitter Τμήμα Ψηφιακών Μέσων και Επικοινωνίας Δομή Εργαστηρίου Εισαγωγή Facebook (Χ2) Twitter Pinterest YouTube Instagram Wordpress Google + LinkedIn Hootsuite Επανάληψη

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

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

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

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

Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης

Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης Twitter Κουστουμπάρδη Ερατώ ΤΕΙ Ιονίων Νήσων Τμήμα Ψηφιακών Μέσων και Επικοινωνίας Twitter Το Twitter είναι μία micro-blogging υπηρεσία, η οποία επιτρέπει στους

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

Γκέγκα Ευρώπη Κωστοπούλου Ειρήνη

Γκέγκα Ευρώπη Κωστοπούλου Ειρήνη Γκέγκα Ευρώπη egkegka@it.teithe.gr Κωστοπούλου Ειρήνη eirkost@it.teithe.gr 2 ο σε επισκεψιμότητα των χρηστών στο web καθημερινά Κοινωνικό δίκτυο με τους περισσότερους χρήστες 1 ο σε προτίμηση των φοιτητών

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

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

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

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

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Μάθημα Πρώτο Εισαγωγή στις Υπηρεσίες Ιστού (Web Services) Μοντέλα WS JSON Χρήση (consume) WS μέσω python Πρόσβαση σε WS και άντληση δεδομένων Παραδείγματα

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

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη

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

Social Network : Programming on FACEBOOK

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ Κεφάλαιο 2. Το περιβάλλον του παγκόσμιου Ιστού Επιμέλεια: Καραγιάννης Σπύρος Καθηγητής ΠΕ19 Πλεονεκτήματα παγκόσμιου Ιστού Εξυπηρετητής Ιστού & Ιστοσελίδες Κύριες

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

Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android

Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android Πτυχιακή Εργασία Φοιτητής:

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

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

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

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη 01 Εισαγωγή Μια απλή και γρήγορη εισαγωγή Το Splunk > είναι ένα πρόγραμμα το οποίο πρωτοεμφανίστηκε στην αγορά το 2003 και αποτελεί ένα πρόγραμμα εξόρυξης

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

Μάθημα 4ο. Προγράμματα

Μάθημα 4ο. Προγράμματα Μάθημα 4ο Προγράμματα Σελίδα 47 από 106 4.1 Εγκατάσταση προγραμμάτων Όπως έχουμε πει στο πρώτο μάθημα (Σημειώσεις 1ου Μαθήματος 1.3.3.Β σελ. 12) τα προγράμματα ή αλλιώς εφαρμογές αποτελούν μέρος του λογισμικού

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

Twitter και Εφαρμογές

Twitter και Εφαρμογές Twitter και Εφαρμογές Konstantinos Semertzidis ksemer@cs.uoi.gr Γενικά για το Twitter Το Twitter είναι μια δωρεάν social network και microblogging υπηρεσία. Δημιουργήθηκε το Μάρτιο του 2006 και λειτούργησε

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

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

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

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

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ: http://www.greektuts.net/greek-in-joomla/

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ: http://www.greektuts.net/greek-in-joomla/ 1) Εμφάνιση ιστοσελίδας Ανοίγουμε το πρόγραμμα πλοήγησης (Firefox, Chrome, Internet Explorer κτλ) και στη γραμμή διευθύνσεων πληκτρολογούμε τη διεύθυνση http://localhost ή http://127.0.0.1. Αν δεν βλέπουμε

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

Edmodo Σύντομος οδηγός για εκπαιδευτικούς

Edmodo Σύντομος οδηγός για εκπαιδευτικούς Edmodo Σύντομος οδηγός για εκπαιδευτικούς Δημήτρης Συμεωνίδης (www.demsym.com) Τι είναι το Edmodo Το Edmodo είναι μια δωρεάν και ασφαλής πλατφόρμα κοινωνικής δικτύωσης και ηλεκτρονικής μάθησης ειδικά σχεδιασμένη

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

Tales & Trails. apps4thessaloniki 2016

Tales & Trails. apps4thessaloniki 2016 Tales & Trails apps4thessaloniki 2016 the digiwalkers team Πανισκάκη Κική, πτυχιούχος τμήματος Πληροφορικής ΑΠΘ, σχεδίαση & ανάπτυξη εφαρμογής Βακάλη Αθηνά, Kαθηγήτρια Πληροφορικής στο Αριστοτέλειο Πανεπιστήμιο

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

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών Φορολογική Βιβλιοθήκη Θανάσης Φώτης Προγραμματιστής Εφαρμογών Το έργο Η φορολογική βιβλιοθήκη πρόκειται για ένα έργο που φιλοδοξεί να αποτελέσει σημαντικό βοήθημα για τον επαγγελματία λογιστή και όχι μόνο.

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP Αντώνης Χρυσόπουλος Κατερίνα Κυπριώτη Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP Για να γίνουμε όλοι καλύτεροι άνθρωποι Τι έχει το μενού σήμερα??? 1. Τι είναι η PHP??? Τι είναι

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

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ της Πλατφόρμας Τηλεκατάρτισης ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή...2 2. Αρχική σελίδα, Εισαγωγή & Περιβάλλον Συστήματος...3 2.1. Αρχική σελίδα εισαγωγής...3 2.2. Εισαγωγή στην Πλατφόρμα Τηλε-κατάρτισης...4

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

Internet Business Hellas

Internet Business Hellas Internet Business Hellas Περιεχόμενα Εισαγωγή email marketing IBNEWSLETTER Χαρακτηριστικά Πλεονεκτήματα Επικοινωνία Εισαγωγή email marketing «Το μάρκετινγκ μέσω ηλεκτρονικού ταχυδρομείου συνίσταται στην

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

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

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

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής Εργαλεία και τεχνικές από την πλευρά του πελάτη Java Applet

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

Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης

Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης Instagram Τμήμα Ψηφιακών Μέσων και Επικοινωνίας Δομή Εργαστηρίου Εισαγωγή Facebook (Χ2) Twitter Pinterest YouTube Instagram Wikipedia Wordpress Google + LinkedIn

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

Παρουσίαση Θερινού Σχολείου. Αριστεία ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

Παρουσίαση Θερινού Σχολείου. Αριστεία ΕΛ/ΛΑΚ ΤΕΙ Αθήνας Παρουσίαση Θερινού Σχολείου Αριστεία ΕΛ/ΛΑΚ ΤΕΙ Αθήνας 2 Στόχος Στόχος Θερινού Σχολείου 3 η εντατική, πρακτική εκπαίδευση των συμμετεχόντων με απώτερο σκοπό τη συμμετοχή τους στη συνεργατική ανάπτυξη Έργου

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

Σεμινάριο joomla! 3. Διοργάνωση: Άλφα Εκπαιδευτική Εισηγητής: Μοτσενίγος Ιωάννης Ηλεκτρονικός Μηχανικός-Σύμβουλος Internet Marketing- Web Designer

Σεμινάριο joomla! 3. Διοργάνωση: Άλφα Εκπαιδευτική Εισηγητής: Μοτσενίγος Ιωάννης Ηλεκτρονικός Μηχανικός-Σύμβουλος Internet Marketing- Web Designer Σεμινάριο joomla! 3 Διοργάνωση: Άλφα Εκπαιδευτική Εισηγητής: Μοτσενίγος Ιωάννης Ηλεκτρονικός Μηχανικός-Σύμβουλος Internet Marketing- Web Designer Ξεκινώντας:Τι είναι τα CMS Η Joomla είναι λογισμικό κατασκευής

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

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

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

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

ΟΛΟΚΛΗΡΩΜΕΝΟ ΣΥΣΤΗΜΑ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ E-AGIOGRAFIA

ΟΛΟΚΛΗΡΩΜΕΝΟ ΣΥΣΤΗΜΑ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ E-AGIOGRAFIA ΟΛΟΚΛΗΡΩΜΕΝΟ ΣΥΣΤΗΜΑ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ E-AGIOGRAFIA Καλωσορίσατε στην πλατφόρμα ηλεκτρονικής μάθησης E-Agiografia, Η Media Suite έχει αναπτύξει το Ολοκληρωμένο Σύστημα Τηλεκατάρτισης (e-learning) με την επωνυμία

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

Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης

Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης Pinterest Τμήμα Ψηφιακών Μέσων και Επικοινωνίας Δομή Εργαστηρίου Εισαγωγή Facebook (Χ2) Twitter Pinterest Instagram YouTube Wordpress Google + LinkedIn Hootsuite

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

6.2 Υπηρεσίες Διαδικτύου

6.2 Υπηρεσίες Διαδικτύου 6.2 Υπηρεσίες Διαδικτύου 1 / 34 Όλες οι υπηρεσίες στο Διαδίκτυο, όπως και πολλές εφαρμογές λογισμικού, στηρίζονται στο μοντέλο Πελάτη Εξυπηρετητή. 2 / 34 Σύμφωνα με αυτό το μοντέλο ο Εξυπηρετητής οργανώνει,

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

Σχεδίαση και ανάπτυξη ιστοχώρου του εργαστηρίου Μηχανικής Λογισμικού. Παληόπουλος Αποστόλης-Παπαναγιώτου Παναγιώτης

Σχεδίαση και ανάπτυξη ιστοχώρου του εργαστηρίου Μηχανικής Λογισμικού. Παληόπουλος Αποστόλης-Παπαναγιώτου Παναγιώτης Σχεδίαση και ανάπτυξη ιστοχώρου του εργαστηρίου Μηχανικής Λογισμικού Π λ ό λ Α όλ Π ώ Παληόπουλος Αποστόλης-Παπαναγιώτου Παναγιώτης Σκοπός και χρησιμότητα της δημιουργίας portal για το τομέα Μικροϋπολογιστών.

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

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

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

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

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ OPEN ECLASS

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ OPEN ECLASS ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ OPEN ECLASS Η διαδικασία μεταφοράς του υλικού ενός μαθήματος από την πλατφόρμα Blackboard Vista στην πλατφόρμα Open eclass σε βήματα είναι

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

5 ο ΚΕΦΑΛΑΙΟ: ΠΡΑΚΤΙΚΟ ΚΟΜΜΑΤΙ

5 ο ΚΕΦΑΛΑΙΟ: ΠΡΑΚΤΙΚΟ ΚΟΜΜΑΤΙ 5 ο ΚΕΦΑΛΑΙΟ: ΠΡΑΚΤΙΚΟ ΚΟΜΜΑΤΙ 5.1 Εισαγωγή Το πρακτικό κομμάτι της πτυχιακής μας εργασίας αφορά την δημιουργία μιας λειτουργικής ιστοσελίδας με την χρήση της πλατφόρμας του Weebly, που αποτελεί μια σύγχρονη

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

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Βασικές Έννοιες Διαδικτύου Wordpress & Κοινωνικά Δίκτυα (Part 1) Σταύρος Καουκάκης Ευτύχιος Βαβουράκης 1 Περιεχόμενα Γενικές Έννοιες Διαδικτύου Η αρχιτεκτονική του Web Συστήματα Διαχείρισης

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

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων .. Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Μάθημα Βασικές Έννοιες - . Ύλη Εργαστηρίου ΒΔ Ύλη - 4 Ενότητες.1 - Σχεδιασμός Βάσης Δεδομένων.2 Δημιουργία Βάσης Δεδομένων Δημιουργία Πινάκων Εισαγωγή/Ανανέωση/Διαγραφή

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

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : /www.wik id ot.com /

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : /www.wik id ot.com / ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : /www.wik id ot.com / 1. Τι είναι το wikidot Το wikidot είναι ένας δικτυακός τόπος στον οποίο κάθε χρήστης έχει το δικαίωμα να δημιουργήσει

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

ΚΕΦΑΛΑΙΟ 10. Υπηρεσίες και εφαρμογές Διαδικτύου. ΚΕΦΑΛΑΙΟ 10 Υπηρεσίες και εφαρμογές Διαδικτύου. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 10. Υπηρεσίες και εφαρμογές Διαδικτύου. ΚΕΦΑΛΑΙΟ 10 Υπηρεσίες και εφαρμογές Διαδικτύου. Α Γενικού Λυκείου Α Γενικού Λυκείου 87 Διδακτικές ενότητες 10.1 Υπηρεσίες Διαδικτύου 10.2 Ο παγκόσμιος ιστός, υπηρεσίες και εφαρμογές Διαδικτύου Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να μπορούν να διακρίνουν

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

Δραστηριότητα : Προστασία προσωπικών δεδομένων στο ΛΣ Windows 8

Δραστηριότητα : Προστασία προσωπικών δεδομένων στο ΛΣ Windows 8 Δραστηριότητα : Προστασία προσωπικών δεδομένων στο ΛΣ Windows 8 Επίπεδο: L1- Εύκολη Διάρκεια: 5 λεπτά Σύντομη Περιγραφή Όταν πλοηγούμαστε στον Ιστό, ο φυλλομετρητής (Browser) αποθηκεύει πληροφορίες για

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

Δυναμικές Ιστοσελίδες στο Πανελλήνιο Σχολικό Δίκτυο

Δυναμικές Ιστοσελίδες στο Πανελλήνιο Σχολικό Δίκτυο Δυναμικές Ιστοσελίδες στο Πανελλήνιο Σχολικό Δίκτυο Δρ. Χρήστος Όροβας Τεχνικός Υπεύθυνος 1 Διαδικασία «Φόρτωσης» μιας Ιστοσελίδας Internet Explorer, Mozilla, Chrome, κτλ HTTP Server ΠΣΔ Αίτημα για επικοινωνία

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

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) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)

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

ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ 1: ΥΠΗΡΕΣΙΕΣ - ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ

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

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

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7 Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 Μέρος 1 1 Βασικοί όροι... 11 2 Βασική δομή κώδικα HTML... 25 3 Μορφοποίηση κειμένου... 39 4 Μορφοποίηση παραγράφων... 51 5 Εισαγωγή εικόνας... 63 6 Λίστες με

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

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων ..?????? Εργαστήριο ΒΑΣΕΙΣ????????? ΔΕΔΟΜΕΝΩΝ Βάσεων Δεδομένων?? ΙΙ Εισαγωγικό Μάθημα Βασικές Έννοιες - . Γενικά Τρόπος Διεξαγωγής Ορισμός: Βάση Δεδομένων (ΒΔ) είναι μια συλλογή από σχετιζόμενα αντικείμενα

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

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

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

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

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

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

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

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

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

Περιεχόμενα. Τεχνικό εγχειρίδιο χρήσης IBNEWSLETTER

Περιεχόμενα. Τεχνικό εγχειρίδιο χρήσης IBNEWSLETTER Περιεχόμενα ΣΤΟΙΧΕΙΑ ΕΠΙΚΟΙΝΩΝΙΑΣ... 2 Τμήμα Υποστήριξης (Help Desk and Client Support)... 2 ΕΙΣΑΓΩΓΗ... 3 Εισαγωγή Email marketing... 3 Σχετικά με το IBNEWSLETTER... 3 Μεθοδολογία... 4 Χαρακτηριστικά...

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

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25 Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στην Access...9 Γνωριμία με την Access... 12 Δημιουργία βάσης δεδομένων... 18 Άνοιγμα και κλείσιμο βάσης δεδομένων... 21 Ερωτήσεις ανακεφαλαίωσης... 22 Πρακτική εξάσκηση...

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

Δημιουργία. Ιστολογίου (blog) 7/5/2015. Χρυσάνθη Γιομέλου ΚΔΒΜ ΝΙΚΑΙΑΣ

Δημιουργία. Ιστολογίου (blog)  7/5/2015. Χρυσάνθη Γιομέλου ΚΔΒΜ ΝΙΚΑΙΑΣ Δημιουργία 7/5/2015 Ιστολογίου (blog) www.blogger.com Χρυσάνθη Γιομέλου ΚΔΒΜ ΝΙΚΑΙΑΣ ΠΕΡΙΕΧΟΜΕΝΑ TI EINAI TO ΙΣΤΟΛΟΓΙΟ... 2 ΓΙΑΤΙ ΙΣΤΟΛΟΓΙΟ;... 2 ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΤΗΣ ΧΡΗΣΗΣ ΙΣΤΟΛΟΓΙΟΥ... 2 ΔΗΜΙΟΥΡΓΙΑ ΛΟΓΑΡΙΑΣΜΟΥ

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

Ρυθμίσεις εγκατάστασης ονόματος χώρου σε πίνακα ελέγχου plesk

Ρυθμίσεις εγκατάστασης ονόματος χώρου σε πίνακα ελέγχου plesk Ρυθμίσεις εγκατάστασης ονόματος χώρου σε πίνακα ελέγχου plesk Βήμα 1: Ρυθμίσεις πριν την εγκατάσταση ονόματος χώρου στο πακέτο φιλοξενίας Από το διαχειριστικό σύστημα ονομάτων χώρου αφού αναζητήσουμε το

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

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές Σκοπός του εργαστηρίου αυτού είναι η εξοικείωση με κάποιες εφαρμογές που θα μας φανούν πολύ χρήσιμες κατά τη διάρκεια του μαθήματος της Εισαγωγής στον Προγραμματισμό.

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

Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης

Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης Instagram Κουστουμπάρδη Ερατώ Ιόνιο Πανεπιστήμιο Τμήμα Ψηφιακών Μέσων και Επικοινωνίας Τι είναι το Instagram Η λέξη προέρχεται από ένωση των λέξεων «instant» και

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

Οδηγίες αρθρογράφησης στην ιστοσελίδα του 2ου ΓΕΛ Καματερού

Οδηγίες αρθρογράφησης στην ιστοσελίδα του 2ου ΓΕΛ Καματερού ΟΔΗΓΙΕΣ ΑΡΘΡΟΓΡΑΦΗΣΗΣ ΣΤΟ SITE «2 ο ΓΕΛ ΚΑΜΑΤΕΡΟΥ» Οι παρακάτω οδηγίες αφορούν στους αρθρογράφους για το Site «2 ου ΓΕΛ ΚΑΜΑΤΕΡΟΥ». Ειδικότερα, ας υποθέσουμε ότι ο χρήστης «user» με Συνθηματικό χρήστη

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

Οδηγός Χρήσης Microsoft Office365 & OneDrive for Business Πανεπιστημίου Κύπρου

Οδηγός Χρήσης Microsoft Office365 & OneDrive for Business Πανεπιστημίου Κύπρου Οδηγός Χρήσης Microsoft Office365 & OneDrive for Business Πανεπιστημίου Κύπρου Υπηρεσία Πληροφορικών Συστημάτων Τομέας Συστημάτων ΥΠΣ-ΕΔ93 22-10-2015 Περιεχόμενα 1. Office 365... 3 2. Τι περιλαμβάνει το

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

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων)

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων) Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων) Τι είναι το Wordpress: To Wordpress είναι ένα δωρεάν ανοικτού κώδικα (open source) λογισμικό (εφαρμογή), με το οποίο μπορεί κάποιος να δημιουργεί

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

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

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

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

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

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

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Τρόπος Διεξαγωγής #1 Ύλη (4 Ενότητες) 1. Ανάλυση Απαιτήσεων - Σχεδιασμός Βάσης Δεδομένων 2. Δημιουργία βάσης a)

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

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1 Διαχείριση Πληροφοριών στο Διαδίκτυο Εργαστήριο 1 Τεχνολογικό Εκπαιδευτικό Ίδρυμα Καβάλας Σχολή Διοίκησης & Οικονομίας Τμήμα Διαχείρισης Πληροφοριών Διδάσκων Μαρδύρης Βασίλειος, Διπλ. Ηλ. Μηχανικός & Μηχ.

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

Διαδίκτυο: Ιστορία, Δομή, Υπηρεσίες

Διαδίκτυο: Ιστορία, Δομή, Υπηρεσίες Διαδίκτυο: Ιστορία, Δομή, Υπηρεσίες 1 η Ερώτηση (Ορισμός): Τι είναι το Διαδίκτυο; Διαδίκτυο είναι το παγκόσμιο δίκτυο όλων των επιμέρους δικτύων που έχουν συμφωνήσει σε κοινούς κανόνες επικοινωνίας και

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

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Οδηγός Εργαστηρίου:

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής 4 φάσεις διαδικτυακών εφαρμογών 1.Εφαρμογές στατικής πληροφόρησης

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

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ MOODLE

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ MOODLE ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ MOODLE Η διαδικασία μεταφοράς του υλικού ενός μαθήματος από την πλατφόρμα Blackboard Vista στην πλατφόρμα Moodle σε βήματα είναι η ακόλουθη:

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 13 Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 1.1 Εισαγωγή... 16 1.2 Διαδίκτυο και Παγκόσμιος Ιστός Ιστορική αναδρομή... 17 1.3 Αρχές πληροφοριακών συστημάτων

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

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

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

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

Δημιουργία συστήματος υπόδειξης tweets με βάση τις προτιμήσεις του χρήστη

Δημιουργία συστήματος υπόδειξης tweets με βάση τις προτιμήσεις του χρήστη ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚH ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Τομέας Ηλεκτρονικής και Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών (ΕΠΥ)

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

Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης

Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης Pinterest Κουστουμπάρδη Ερατώ ΤΕΙ Ιονίων Νήσων Τμήμα Ψηφιακών Μέσων και Επικοινωνίας Pinterest Eίναι ένα Κοινωνικό Μέσο που δημιουργήθηκε το 2010 Αποτελεί μία πλατφόρμα

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

ΟΛΟΚΛΗΡΩΜΕΝΟ ΣΥΣΤΗΜΑ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ E-AGIOGRAFIA

ΟΛΟΚΛΗΡΩΜΕΝΟ ΣΥΣΤΗΜΑ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ E-AGIOGRAFIA ΟΛΟΚΛΗΡΩΜΕΝΟ ΣΥΣΤΗΜΑ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ E-AGIOGRAFIA Καλωσορίσατε στην πλατφόρμα ηλεκτρονικής μάθησης E-Agiografia, Η Media Suite έχει αναπτύξει το Ολοκληρωμένο Σύστημα Τηλεκατάρτισης (e-learning) με την επωνυμία

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

Περιεχόμενα. Πρόλογος... xiii

Περιεχόμενα. Πρόλογος... xiii Περιεχόμενα Πρόλογος... xiii Κεφάλαιο 1 ο Εισαγωγή στις τεχνολογίες Διαδικτύου... 1 1.1 Σύντομη ιστορία του Διαδικτύου... 3 1.2 Σύνδεση στο Διαδίκτυο μέσω Παρόχου (ISP)... 6 1.3 Μοντέλα Επικοινωνίας...

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

Editorial Guide (κυρίως Facebook)

Editorial Guide (κυρίως Facebook) Editorial Guide (κυρίως Facebook) 1. Mix up Media: links σε άλλα blogs και άρθρα, βίντεο, φωτογραφίες και απλά status updates (quotes, ερωτήσεις/polls, ενημερώσεις χωρίς συνδέσμους). 2. Text Updates: Ένα

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

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

Δυναμικές Ιστοσελίδες Προγραμματισμός στην πλευρά του client ΕΣΔ516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Προγραμματισμός στην πλευρά του client Περιεχόμενα Περιεχόμενα Η Διεπίπέδη αρχιτεκτονική (2-tier architecture) Η τριεπίπεδη αρχιτεκτονική (3-tier architecture)

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

Ο Οδηγός γρήγορης εκκίνησης

Ο Οδηγός γρήγορης εκκίνησης Ο Οδηγός γρήγορης εκκίνησης του Microsoft PowerPoint 2013 έχει διαφορετική εμφάνιση από προηγούμενες εκδόσεις. Γι αυτό το λόγο, δημιουργήσαμε αυτόν τον οδηγό για να ελαχιστοποιήσουμε την καμπύλη εκμάθησης.

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

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

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

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

Το διαδίκτυο είναι ένα δίκτυο που αποτελείτε από πολλά μικρότερα δίκτυα υπολογιστών.

Το διαδίκτυο είναι ένα δίκτυο που αποτελείτε από πολλά μικρότερα δίκτυα υπολογιστών. Κεφάλαιο 2 Με το διαδίκτυο μπορεί κάποιος: να κάνει έρευνα, να ψωνίσει για διάφορες υπηρεσίες και προϊόντα, να δει καιρικούς χάρτες, να πάρει φωτογραφίες, ταινίες, και διάφορες άλλες πληροφορίες που βρίσκονται

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

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Φτάσαμε σιγά σιγά στο τέλος του βιβλίου. Αντί για κάποιον επίλογο σκέφτηκα να συλλέξω κάποια πράγματα που θα ήθελα να πω σε κάποιον ο οποίος αρχίζει

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

Ηλεκτρονική Αίθουσα Επικοινωνίας «Big Blue Button»

Ηλεκτρονική Αίθουσα Επικοινωνίας «Big Blue Button» Ηλεκτρονική Αίθουσα Επικοινωνίας «Big Blue Button» μέσω ΙΕΠ Moodle Για να χρησιμοποιήσουμε την Ηλεκτρονική Αίθουσα Επικοινωνίας «Big Blue Button», θα πρέπει να συνδεθούμε μέσω της πλατφόρμας Moodle του

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

Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ

Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ -Για τους Φοιτητές- Έκδοση 1.2 Οκτώβριος 2015 Υπεύθυνος Σύνταξης: Χρήστος Λάζαρης (lazaris@aueb.gr) Πίνακας Περιεχομένων Εισαγωγή...

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

Τεχνικός Εφαρμογών Πληροφορικής

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

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

ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές

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

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

Περιγραφή του EcoTruck

Περιγραφή του EcoTruck ...... Πανεπιστήμιο Μακεδονίας 16 Μαΐου 2010 . Με λίγα λόγια Online εφαρμογή για τη διαχείριση ανακύκλωσης και επαναχρησιμοποίησης της χάρτινης ύλης Η ιδέα δημιουργήθηκε για τη συμμετοχή στον Πανελλήνιο

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

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

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

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

Εγχειρίδιο εγκατάστασης και χρήσης περιοδικών etwinning

Εγχειρίδιο εγκατάστασης και χρήσης περιοδικών etwinning Εγχειρίδιο εγκατάστασης και χρήσης περιοδικών etwinning Εισαγωγή Η εφαρμογή των περιοδικών etwinning δίνει τη δυνατότητα σε εκπαιδευτικούς που έχουν λογαριασμό στο Πανελλήνιο Σχολικό Δίκτυο και που έχουν

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

Social Media Marketing Presentation

Social Media Marketing Presentation ΚΑΠΑ ΣΙΓΜΑ ΔΕΛΤΑ Α.Ε Σητείας 8 & Μεσολογγίου, 14451 Μεταμόρφωση Αττικής Τηλέφωνο: 210 211 7676 E-mail: socialmedia@ksd.gr Social Media Marketing Presentation Σκοπός Το e-word-of-mouth είναι ο πιο αποδοτικός

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Τρόπος Διεξαγωγής #1 Ύλη (4 Ενότητες) 1. Ανάλυση Απαιτήσεων -Σχεδιασμός Βάσης Δεδομένων 2. Δημιουργία βάσης a) Create

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

Εγχειρίδιο Διαχειριστή. (Υπηρεσία Ενημέρωσης για Εκπαιδευτικές και Πολιτισμικές Δράσεις)

Εγχειρίδιο Διαχειριστή. (Υπηρεσία Ενημέρωσης για Εκπαιδευτικές και Πολιτισμικές Δράσεις) (Υπηρεσία Ενημέρωσης για Εκπαιδευτικές και Πολιτισμικές Δράσεις) Για το Έργο ΠΕΡΙΕΧΟΜΕΝΑ 1 Εισαγωγή... 4 2 Τεχνικά Χαρακτηριστικά... 5 3 Περιβάλλον Εργασίας... 6 4 Σύνδεση / Αποσύνδεση Διαχειριστή... 9

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

JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I)

JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I) JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I) Δημήτρης Μακρής Advanced Topics in Telecoms 1 Ο ΒΗΜΑ: ΞΕΚΙΝΩΝΤΑΣ ΤΟ JOOMLA 1 Ο ΒΗΜΑ: ΞΕΚΙΝΩΝΤΑΣ ΤΟ JOOMLA 1 Ο ΒΗΜΑ: ΞΕΚΙΝΩΝΤΑΣ ΤΟ JOOMLA 2 Ο ΒΗΜΑ: ΔΙΑΧΕΙΡΙΖΟΝΤΑΣ

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

Σύστημα διαχείρισης περιεχομένου (Content Management System)

Σύστημα διαχείρισης περιεχομένου (Content Management System) Τι είναι ένα CMS Σύστημα διαχείρισης περιεχομένου (Content Management System) Λογισμικό το οποίο χρησιμοποιείται για την οργάνωση, ταξινόμηση και αρχειοθέτηση πληροφορίας Χρησιμοποιούνται για τη δημιουργία

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