26

Ubuntistas issue 11 january february march 2011

  • Upload
    iasptk

  • View
    218

  • Download
    4

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Ubuntistas issue 11 january february march 2011
Page 2: Ubuntistas issue 11 january february march 2011

Τεύχος 11 - Ιανουάριος Φεβρουάριος Μάρτιος 2011

Ομάδα Περιοδικού:• Κωστάρας Γιάννης (hawk):Συντάκτης - [email protected]

• Παπαδόπουλος ∆ημήτρης (Dimitris):Συντάκτης, σελιδοποίηση - [email protected]

• Πετούμενου Τζένη (jennie):Επιμελήτρια κειμένων - [email protected]

• Στεφανίδης Φώτης (atermon):Συντάκτης - [email protected]

• Χατζηπαντελής Παντελής (kalakouentin):Σελιδοποίηση - [email protected]

• Δήμος Πούπος (Qdata):Επιμελητής κειμένων - [email protected]

Σημείωμα από τη σύνταξη...

Μόλις πήρατε στα χέρια σαςτο πρώτο τεύχος του ubuntistasγια το 2011. Είμαι σίγουρος ότιανυπομονείτε να το διαβάσετε. Πρινόμως συνεχίσετε με την ανάγνωσητων άρθρων, ας κάνουμε μια σύντομηιστορική αναδρομή. Το πρώτο τεύχοςτου ubuntistas κυκλοφόρησε τονΟκτώβριο--Νοέμβριο του 2008.Έχουμεσυμπληρώσει δηλαδή 2 χρόνιακυκλοφορίας! Όχι κι άσχημα για έναπεριοδικό που βασίζεται αποκλειστικάκαι μόνο σε εθελοντές. Παρόλ'αυτάγια να συνεχίσει να λειτουργείαδιάκοπα χρειάζεται και τη συνεισφοράτων αναγνωστών, εσάς δηλαδή.Έχετε κάποιο άρθρο που θέλετε ναδημοσιεύσετε ή να μοιραστείτε μαζίμας την εμπειρία σας με το ubuntu;Επικοινωνήστε μαζί μας και το άρθροσας θα δημοσιευτεί στο επόμενοτεύχος του ubuntistas.

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

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

Σ'αυτό το τεύχος θα βρείτε άρθραγια το android και για τεχνικέςαναζήτησης στο google. Η σειράτων άρθρων για κρυπτογραφία μεjava συνεχίζεται με το 3ο μέρος ενώυπάρχει εισαγωγή στα γεωγραφικάσυστήματα πληροφοριών (GIS). Μιασύντομη περιγραφή της scheme μαςδίνει μια πρώτη γεύση από έναδιαφορετικό τρόπο προγραμματισμού,ενώ το άρθρο για sympy μας δείχνειπώς μπορούμε να κάνουμε συμβολικάμαθηματικά με την python. Τέλος, μιαεισαγωγή σε parallel computing μεopenmp.

Καλή ανάγνωση!

Page 3: Ubuntistas issue 11 january february march 2011

Περιεχόμενα To ubuntu

Το ubuntu linux είναι ένα λειτουργικό σύστημα. Μεπεριβάλλον εργασίας gnome το φωνάζουμε ubuntu,με kde το φωνάζουμε kubuntu. Είναι πλήρες(!), τεχνο-λογικά προηγμένο(!), και εύκολο στην χρήση από οποι-ονδήποτε(!). Στα αποθετήρια του ubuntu υπάρχουνδιαθέσιμες κυριολεκτικά χιλιάδες εφαρμογές σχεδόν γιαοτιδήποτε(!) … για επαγγελματική, επιστημονική, εκ-παιδευτική, και οικιακή χρήση. Τόσο το ubuntu όσο καιοι εφαρμογές του είναι Ελεύθερο Λογισμικό / ΛογισμικόΑνοιχτού Κώδικα (ΕΛ/ΛΑΚ), δηλαδή διατίθενται ελεύ-θερα, και στην Ελλάδα υποστηρίζονται από την άτυπηαλλά πολύ δραστήρια κοινότητα ubuntu-gr. Περισσό-τερα στο http://www.ubuntu-gr.org.

Η κοινότητα ubuntu-gr

Η κοινότητα ubuntu-gr ανήκει στα μέλη της και είναιανοιχτή σε όλους! Eίναι το μέρος όπου έμπειροι και ά-πειροι(!) χρήστες συζητάνε ό,τι τους απασχολεί, ιδέες,ερωτήματα, πρακτικά ζητήματα, οργανωτικά θέματα,και κυρίως τεχνικά προβλήματα. Αποτελείται από αν-θρώπους με εμπειρία στην πληροφορική αλλά κυρίωςαπό απλούς χρήστες, οι οποίοι εθελοντικά συμμετέ-χουν i) στην δημιουργία-ανάπτυξη του λογισμικού, ii)στην μετάφρασή του στην ελληνική γλώσσα, iii) στηνπροώθηση-διάδοση του στην Ελλάδα, και κυρίως iv)στην παροχή αμεσότατης(!) και υψηλής ποιότητας(!)τεχνικής υποστήριξης σε άλλους ελληνόφωνους χρή-στες. Λειτουργεί με αυτό-οργάνωση και προσπαθούμεοι αποφάσεις να λαμβάνονται όσο το δυνατόν πιο δημο-κρατικά από εκείνους πουπροσφέρουν-δραστηριοποι-ούνται συστηματικά. Η ελληνική κοινότητα του Ubuntuδιαθέτει μέχρι στιγμής φόρουμ, λίστα ηλ. ταχυδρομείου,κανάλι συζητήσεων τύπου IRC, καθώς και το περιοδικόUbuntistas. Για όλα αυτά υπάρχουν οδηγίες και linksστο http://www.ubuntu-gr.org.

Το περιοδικό ubuntistas

Το Ubuntistas, το ηλεκτρονικό περιοδικό της ελληνικήςκοινότητας του ubuntu (ubuntu-gr), κυκλοφορεί ελεύ-θερα κάθε δίμηνο, με πρώτο τεύχος του Νοεμβρίου -Δεκεμβρίου 2008. Περιέχει νέα, πληροφορίες, συνεντεύ-ξεις, παρουσιάσεις, οδηγούς, και άρθρα σχετικά με τοubuntu. Το περιοδικό είναι ανοιχτό σε όλους, όπωςκαι το GNU/Linux! Ο καθένας μπορεί να συμμετέχειενεργά στην δημιουργία του, να αρθρογραφήσει, ναπροτείνει ιδέες και να κάνει τις επισημάνσεις / παρατη-ρήσεις του.

Η άδεια διάθεσης του περιεχομένου του ubuntistasΤα άρθρα που περιλαμβάνονται στο περιοδικό διατίθενται υπό τη άδεια της Creative Commons Attribution-By-Share Alike 3.0 Unported license. Αυτό σημαίνει ότι μπορείτε να προσαρμόσετε, να αντιγράψετε, να διανείμετεκαι να διαβιβάσετε τα άρθρα, αλλά μόνο υπό τους ακόλουθους όρους: πρέπει να αποδώσετε την εργασία στοναρχικό συντάκτη (π.χ. με αναφορά ονόματος, email, url) αλλά και στο περιοδικό, αναφέροντας την ονομασίατου (Ubuntistas). Δεν επιτρέπεται να αποδίδετε το άρθρο/α με τρόπο που να το/α επικυρώνετε ως δική σαςεργασία. Και εάν κάνετε αλλαγές, μεταβολές, ή δημιουργίες πάνω σε αυτήν την εργασία, πρέπει να διανείμετε τηνπροκύπτουσα εργασία με την ίδια άδεια, παρόμοια ή συμβατή.Περίληψη άδειας: http://tinyurl.com/5nv7kn - Πλήρης άδεια: http://tinyurl.com/yqontc

ΑΠΟΨΕΙΣAndroid

GIS

ΑΠΟΨΕΙΣ

Εισαγωγή στην Κρυπτογραφία μετη γλώσσα Java --- Μέρος 3

OpenMP

REVIEWScheme

Sympy

HINTS & TIPSGoogle Search Tips

48

15

18

2021

22

Page 4: Ubuntistas issue 11 january february march 2011

ΑΠΟΨΕΙΣ

του Στεφανίδη Φώτη

Ένα έξυπνο ανδροειδές στην τσέπη σας!Android

Στα μέσα του 2005 η Google εξαγόρασετην Android Inc., μια μικρή και άγνωστηstartup εταιρεία με έδρα το Palo Alto τηςΚαλιφόρνια. Το αντικείμενό της ήταν τότε ηανάπτυξη λογισμικού για κινητά τηλέφωνα.Μέσα σε δύο χρόνια -περίοδο δοκιμών καιεπαφών με κατασκευαστές- άρχισαν ήδη νακυκλοφορούν οι φήμες για τη δημιουργία"έξυπνου κινητού" από τη google. Στατέλη του 2007 συστήνεται κοινοπραξίαεταιρειών της συγκεκριμένης αγοράς με τηνονομασία Open Handset Alliance και σκοπότη δημιουργία ανοιχτών προτύπων (openstandards) για κινητές συσκευές (smart-phones). Σύντομα ξεκινά και η ιστορία τουολοκληρωμένου λειτουργικού συστήματοςAndroid, του οποίου η πρώτη έκδοσηκυκλοφορεί το Σεπτέμβριο του 2008. Ηάδεια διάθεσης του είναι η Apache Li-cense, που χαρακτηρίζεται ως ιδιαίτεραπροοδευτική συγκρινόμενη με τις υπόλοιπεςάδειες ΕΛΛΑΚ. Υπάρχουν βέβαια καιτμήματα κώδικα υπό την GNU/GPLv2.

Η χρήση του Android δεν περιορίζεταιμόνο σε κινητά τηλέφωνα, αλλά επεκτείνεταικαι σε μια ευρεία γκάμα οικιακών συσκευώνόπως netbooks, tablets, τηλεοράσεις,φούρνους μικροκυμάτων, ψυγεία. Οκάθε κατασκευαστής μπορεί δηλαδή να

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

Ας δούμε λίγο το γραφικό περιβάλλονμιας τέτοιας συσκευής. Καταρχάς,υποστηρίζονται πολλαπλές επιφάνειεςοθόνης για την τοποθέτηση εικονιδίων -συνδέσμων προς τις εφαρμογές. Σέρνονταςτο δάχτυλό μας από τη μια άκρη της οθόνηςως την άλλη μεταφερόμαστε στην επόμενηεπιφάνεια, σύμφωνα με την κατεύθυνση τηςκίνησης. Η γραμμή ειδοποιήσεων πάνω σταδεξιά μας δείχνει την ώρα, την κατάστασητης μπαταρίας και το είδος της τρέχουσαςσύνδεσης (GSM, 3G/HSDPA, WiFi). Στααριστερά εμφανίζονται οι ειδοποιήσεις τουσυστήματος και κάποιες από τις εφαρμογέςπου εκτελούνται. Κάτω και στη μέσηυπάρχει το κουμπί για άμεση πρόσβασησε όλες τις εγκατεστημένες εφαρμογές καιλειτουργίες, ενώ τα κουμπιά "Τηλέφωνο" και"Διαδίκτυο" () βρίσκονται είτε ακριβώς απόπάνω, είτε αριστερά και δεξιά του κουμπιούπρόσβασης. Στην επιφάνεια εργασίαςμπορούμε να προσθέσουμε όχι μόνοεικονίδια συντομεύσεων για εφαρμογές,αλλά και μικροεφαρμογές/widgets, όπωςρολόι, καιρό, email, facebook, twitter,

youtube, ημερολόγιο, αναζήτηση. Συνήθως,η προσθαφαίρεση συντομεύσεων και wid-get γίνεται με παρατεταμένο κράτημα τωνεικονιδίων. Οι περισσότερες συσκευές τηςαγοράς έχουν και τρία κουμπιά - σύμβολαεκτός επιφάνειας εργασίας (επιστροφή,αρχική, μενού).

Ο browser του Android βασίζεται στημηχανή webkit, ενώ η πρόσβαση στοΔιαδίκτυο γίνεται είτε μέσω δικτύου κινητήςτηλεφωνίας είτε μέσω ασύρματης σύνδεσηςWiFi. Πολλοί πάροχοι κινητής τηλεφωνίαςδιαθέτουν προσφορές για πρόσβαση στοΔιαδίκτυο μέσω των δικτύων τους. Στη δικιάμου συσκευή είναι μονίμως ενεργοποιημένοτο WiFi και όπου υπάρχει διαθέσιμοδίκτυο συνδέομαι αυτόματα, ειδάλλωςχρησιμοποιείται η πρόσβαση μέσω τουπαρόχου, που έχει όριο τα 250 ΜΒ το μήνα,τα οποία δεν έτυχε να ξεπεράσω ακόμη --μεπροσεκτική χρήση βέβαια. Επειδή όμως τοWiFi ξεζουμίζει τη μπαταρία, ο διακαής μουπόθος είναι να άντεχε η ρημάδα η μπαταρίαένα μήνα τουλάχιστον, για να την γέμιζαμαζί με τις άλλες μηνιαίες εκκρεμότητες(λυπητερές συνήθως).

Η προσθαφαίρεση εφαρμογών είναιεφικτή μέσω της προεγκατεστημένηςεφαρμογής Android Market της Google

4

Page 5: Ubuntistas issue 11 january february march 2011

ΑΠΟΨΕΙΣ

(κλειστού κώδικα). 200.000 εφαρμογέςτουλάχιστον είναι διαθέσιμες στο διαδίκτυογια προσθαφαίρεση με ένα κλικ στην οθόνηαφής (που υποστηρίζει παρεμπιπτόντωςκαι τη λειτουργία multi-touch). Προς τοπαρόν, το τοπίο είναι κάπως άναρχο μεάδειες ελεύθερες και μη, επί πληρωμή ήδωρεάν, όπου το δωρεάν να περιλαμβάνεικαι "λάιτ" δοκιμαστικές εκδόσεις (free lite),συνοδευτικές διαφημίσεις (adware), ή απλέςπαρακλήσεις για χορηγίες (donationware).Προσωπικά πάντως, χρησιμοποιώ και μεκαλύπτουν 20 έως 30 εφαρμογές, με τιςπερισσότερες εξ' αυτών να υπόκεινται σεάδειες ανοιχτού λογισμικού. Επίσης, πολλοίκατασκευαστές διαθέτουν τις δικές τουςλύσεις τόσο για εφαρμογές όσο και γιαβελτιώσεις/τροποποιήσεις της γραφικήςδιεπαφής των συσκευών τους. Φυσικά, θαβρείτε και εφαρμογές τρίτων εκτός Market.

Η γκάμα των διαθέσιμων εφαρμογώνκαλύπτει σχεδόν κάθε ανθρώπινηδραστηριότητα. Έχετε την ελευθερία ναπροσαρμόσετε το κινητό σας στις δικέςσας ανάγκες. Μπορείτε να παρακολουθείτεκαι να ενημερώνετε τα κοινωνικά σαςδίκτυα από παντού, ακόμη και με φρέσκοπολυμεσικό περιεχόμενο. Αν χαθείτεστο δρόμο, ενεργοποιήστε το GPSκαι βρείτε το στίγμα σας στο χάρτη.Ενημερωθείτε για τις τρέχουσες εξελίξειςτης υπόθεσης WikiLeaks και του ιδρυτήτης άμεσα μέσω ροών RSS. Δείτε ταεπαγγελματικά σας ραντεβού για αύριομέσω κοινόχρηστων ημερολογίων. Πόσεςθερμίδες καταναλώσατε σήμερα; Πρέπει ναπερπατήσετε μισή ωρίτσα ακόμη για να'χετε

την υγειά σας. Υπάρχει διαθέσιμο πρατήριοβενζίνης εδώ στην ερημιά και πόσο πάειτο λίτρο αμόλυβδης; Πού βρίσκεται οαστερισμός της Ανδρομέδας στον ουρανό;Αυτό το ψηφιακά υπογεγραμμένο PDF σταεισερχόμενά μου να το εκτυπώσω στογραφείο ώστε να προλάβει να το στείλειταχυδρομικώς και συστημένο η γραμματέαςμου (λέμε τώρα); Δεν θα προλάβω ναπεράσω από εκεί σήμερα. Για να σκανάρωτο QR Code του νέου συνεργάτη γιατίβαριέμαι να πληκτρολογώ όλα τα στοιχείατου. Θολώνει η φαντασία μου με όλα αυτάτα απίθανα πράγματα που συμβαίνουν στοκινητό μου και την χρεωκοπημένη χώραμου. Και βουλιάζουμε και αλλάζουμε, αλλάτώρα μάλλον ήρθε η ώρα για απότομηπροσγείωση, γιατί πρέπει να τελειώνουμεμε το άρθρο. Α, και μην λησμονείτε ποτέότι πλέον ο εντοπισμός της θέσης σαςείναι παιχνιδάκι σε αυτές τις (παν)έξυπνεςσυσκευές, οπότε το νου σας.

Για να καταπιαστούμε, εν κατακλείδι,και με τα τεχνολογικά χαρακτηριστικάτου λειτουργικού. Η διαχείριση τηςπεριορισμένης επεξεργαστικής ισχύος καιη μικρή φυσική μνήμη των συσκευώνAndroid σαφώς παίζει καθοριστικό ρόλογια το λειτουργικό σύστημα. Το An-droid λοιπόν βασίζεται σε τροποποιημένηέκδοση του πυρήνα Linux 2.6 για τηνυποστήριξη του κατάλληλου υλικού και σεένα υποσύνολο κλάσεων και βιβλιοθηκών,επίσης τροποποιημένο, της γλώσσαςπρογραμματισμού Java, που κάνει χρήσητης εικονικής μηχανής Dalvik. Αυτή ακριβώςη ανεξάρτητη υλοποίηση προκάλεσε

πρόσφατα τη δικαστική διαμάχη μεταξύτης Oracle και της Google. Συνοπτικά, οιγλώσσες προγραμματισμού που αποτελούντο σύστημα είναι η C (πυρήνας), ή C++(βιβλιοθήκες) και η Java - XML (γραφικόπεριβάλλον). Τέλος, ας αναφέρουμεεδώ και την υποστήριξη δικτύωσης IPv6του Android, που επιτρέπει την πλήρηαυτοματοποίηση και τον απομακρυσμένοέλεγχο των συσκευών.

Το ιστορικό εκδόσεων του Android, με τιςαντίστοιχες κωδικές ονομασίες επιδορπίων,περιγράφεται στον παρακάτω πίνακα:

Platform API LevelAndroid 2.3(Gingerbread) 9

Android 2.2(Froyo) 8Android 2.1(Eclair) 7Android 1.6(Donut) 4

Android 1.5(Cupcake) 3Αν θέλετε να ασχοληθείτε με την

ανάπτυξη εφαρμογών για το συγκεκριμένολειτουργικό σύστημα, καλό είναι ναπρομηθευτείτε πρώτα ένα σχετικό βιβλίο.Για τα γραφικά περιβάλλοντα ανάπτυξης,τις ιδιαιτερότητες εγκατάστασης και γιατην πρώτη σας εφαρμογή HelloAndroid θαμιλήσουμε ενδελεχώς στο επόμενο άρθρο.Μείνετε συντονισμένοι λοιπόν στο αξιόλογοκοινοτικό περιοδικό μας!

Βιβλιογραφία

1. http://developer.android.com/guide/basics/what-is-android.html

2. http://www.google.com/mobile/android/

5

Page 6: Ubuntistas issue 11 january february march 2011

ΑΠΟΨΕΙΣ

του Κωστάρα Γιάννη

Γεωγραφικά Συστήματα ΠληροφοριώνGIS

Γεωγραφικά Συστήματα Πληροφοριών

Ο όρος Γεωγραφικά ΣυστήματαΠληροφοριών (Geographic InformationSystems – GIS) αναφέρεται σε κάθεσύστημα Η/Υ που έχει τη δυνατότητα ναχειρίζεται γεωγραφικά δεδομένα [1]. Δενπεριλαμβάνει μόνο λογισμικό και υλικό,αλλά και ειδικές συσκευές για εισαγωγήκαι δημιουργία χαρτών, καθώς και τασυστήματα επικοινωνιών που απαιτούνταιγια να συνδέσουν τα διάφορα συστατικάμεταξύ τους.

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

μας! Επιπλέον, ένα σύστημα GIS έχειόλα εκείνα τα πλεονεκτήματα της χρήσηςΗ/Υ, όπως διαχείριση μεγάλων ποσοτήτωνδεδομένων εύκολα και γρήγορα κλπ. Όλατα δεδομένα σε ένα σύστημα GIS είναιγεωκαταχωρημένα, δηλαδή συνδεδεμέναμε μια συγκεκριμένη γεωγραφική τοποθεσίατης επιφάνειας της γης μέσω ενόςσυστήματος συντεταγμένων. Ένα από ταπιο συνηθισμένα συστήματα γεωγραφικώνσυντεταγμένων είναι αυτό του γεωγραφικούμήκους και γεωγραφικού πλάτους. Σ' αυτότο σύστημα συντεταγμένων κάθε τοποθεσίαπροσδιορίζεται σχετικά με τον ισημερινό καιτη γραμμή μηδενικού γεωγραφικού μήκουςπου περνά από το αστεροσκοπείο Green-wich της Αγγλίας. Υπάρχουν πολλά άλλαγεωγραφικά συστήματα συντεταγμένων, καικάθε GIS σύστημα θα πρέπει να μπορεί ναμετατρέπει τις συντεταγμένες από το ένασύστημα στο άλλο. H χωρική πληροφορίααναπαρίσταται με δυο τρόπους:

• Ως διανυσματικά δεδομένα με τημορφή σημείων, γραμμών καιπολυγώνων, ή

• Ως δικτυωτά (raster) δεδομένα,οργανωμένα συστηματικά σε κελιά(όπως π.χ. μια ψηφιακή εικόνα).

Ιστορία των γεωγραφικών συστημάτωνπληροφοριών

Τα γεωγραφικά συστήματα πληροφοριώναναπτύχθηκαν και εξελίχθηκαν στη διάρκειατων αιώνων, μέσω δημιουργίας χαρτώνκαι συλλογής γεωγραφικών πληροφοριώνκαι αποθήκευσής τους σε καταχωρητές.Οι πρώτοι γνωστοί χάρτες σχεδιάστηκανπάνω σε περγαμηνές για να δείξουν ταχρυσωρυχεία του Κοπτές κατά τη διάρκειατης βασιλείας του Ραμσή ΙΙ της Αιγύπτου(1292-1225 π.Χ.) [1]. Ίσως νωρίτερα,οι Βαβυλώνιοι περιέγραφαν τον τότεγνωστό κόσμο με επιγραφές σφηνοειδούςγραφής. Αργότερα, οι Αρχαίοι Έλληνεςσυνέταξαν τους πρώτους πραγματικούςχάρτες. Χρησιμοποίησαν ένα ορθογώνιοσύστημα συντεταγμένων γύρω στο 300 π.Χ.Περίπου 100 χρόνια αργότερα, ο Έλληναςμαθηματικός, αστρολόγος και γεωγράφοςΕρατοσθένης (276-194 π.Χ.) έβαλε ταθεμέλια της επιστημονικής χαρτογραφίας.Ένας από τους πιο γνωστούς παγκόσμιουςχάρτες δημιουργήθηκε από τον ΚλαύδιοΠτολεμαίο στην Αλεξάνδρεια (90-168 μ.Χ.).

Οι Ρωμαίοι έριξαν μεγαλύτερο βάροςστην καταγραφή και την καταχώρησηγεωγραφικών δεδομένων. Οι όροι cadastre(ένας επίσημος καταχωρητής ιδιοκτησίας)

6

Page 7: Ubuntistas issue 11 january february march 2011

ΑΠΟΨΕΙΣ

και cadastral (ένας χάρτης ή έρευνα πουδείχνει τα σύνορα ιδιοκτησίας) προέρχονταιαπό το ελληνικό «κατά στίχον» πουσημαίνει «κατά γραμμή, γραμμικός». ΟιΡωμαίοι ήταν οι πρώτοι που εισήγαγαν τηνέννοια της καταγραφής των ιδιοκτησιών,στο capitum registra (τον καταχωρητήγης). Καθώς οι κοινωνίες οργανώνονταν,π.χ. με την εισαγωγή συστημάτωνφορολογίας, η καταχώρηση των ιδιοκτησιώνσυστηματοποιήθηκε εξ αρχής για ναδιασφαλίσει το ετήσιο κρατικό εισόδημα.Αργότερα, χάρτες σχεδιάστηκαν για ναδιευκολύνουν τα εμπορικά ακτοπλοϊκάταξίδια. Οι Άραβες ήταν οι πρωτοπόροιχαρτογράφοι του Μεσαίωνα. Η Ευρωπαϊκήχαρτογραφία αναγεννήθηκε με την πτώσητης Βυζαντινής αυτοκρατορίας και τημετάφραση τον 15ο αιώνα του έργου Ge-ographia του Κλαύδιου Πτολεμαίου σταΛατινικά, που έγινε η κυρίαρχη εικόνατου τότε γνωστού κόσμου. Παρόλοπου η χαρτογραφία παραμελήθηκε, σεπολλές χώρες η καταχώρηση ιδιοκτησιώνευδοκίμησε. Το γνωστότερο παράδειγμαείναι αυτό του Μεγάλου Κτηματολογίου τωνπεριοχών της Αγγλίας που συντάχθηκε το1086 από τον πρώτο Νορμανδό βασιλιά,τον Γουλιέλμο τον Κατακτητή.

Οι εξερευνήσεις του Μάρκο Πόλο,του Χριστόφορου Κολόμβου, του ΒάσκοΝτα Γκάμα κ.ά. είχαν ως αποτέλεσμα,πέραν της ανάπτυξης του εμπορίου, καιτη δημιουργία νέων χαρτών. Οι επιτελικοί

χάρτες αποτέλεσαν τις βάσεις τόσο γιατοπογραφικούς χάρτες ξηράς όσο και γιαχάρτες πλοήγησης.

Μέχρι το 19ο αιώνα, η γεωγραφικήπληροφορία χρησιμοποιούνταν κυρίως στοεμπόριο, στις εξερευνήσεις, για συλλογήφόρων και από το στρατό. Καθώςοι κοινωνίες έγιναν πολυπλοκότερες,νέες εφαρμογές αναπτύχθηκαν για τιςεπερχόμενες υποδομές (τηλεφωνικέςγραμμές, σιδηροδρόμους κλπ.). Οιαεροφωτογραφίες επιτάχυναν τηνπρόοδο της χαρτογράφησης. Ηφωτογραμμική, η τεχνική της μέτρησηςτων αεροφωτογραφιών, αναπτύχθηκεταχύτητα στις δεκαετίες του 1920 και του1930 και κατά το 2ο Παγκόσμιο πόλεμο.Χρησιμοποιείται κυρίως για χάρτες μεκλίμακες 1:1500 και 1:50000.

Σήμερα, με τις δυνατότητες πουπαρέχουν οι Η/Υ, η χαρτογράφηση διατρέχειμια νέα εποχή. Τα δίκτυα Η/Υ, οι εξομοιωτές,η εικονική πραγματικότητα αποτελούντη τελευταία μόδα στην εξέλιξη τωνγεωγραφικών συστημάτων.

Περιγραφή Συστήματος GIS

Σε γενικές γραμμές, ένα σύστημα GISπεριλαμβάνει:

• Τεχνικές για εισαγωγή γεωγραφικήςπληροφορίας σε ηλεκτρονική μορφή,δηλ. μετατροπή της σε ψηφιακήμορφή,

• Tεχνικές για αποθήκευση αυτής της(μεγάλης σε όγκο) πληροφορίας σεσυμπιεσμένη μορφή σε ψηφιακάαποθηκευτικά μέσα,

• Μεθόδους αυτοματοποιημένηςανάλυσης των γεωγραφικώνδεδομένων, αναζήτηση προτύπων,συνδυασμό διαφορετικών ειδώνδεδομένων, δυνατότητα μετρήσεων,εύρεση των συντομότερων διαδρομώνκαι πολλά άλλα,

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

• Τεχνικές αναπαράστασης τωνδεδομένων σε μορφή χαρτών, εικόνωνκλπ.

• Δυνατότητες για έξοδο τωναποτελεσμάτων σε μορφή αριθμώνκαι πινάκων.

Ένα σύστημα GIS επιτρέπει πράξειςπάνω σε χωρικά δεδομένα, δηλαδήχρησιμοποιώντας γεωγραφικά μήκη καιπλάτη [2]. Παράδειγμα μιας τέτοιαςπράξης είναι: «Ποιες πόλεις βρίσκονταιλιγότερο από 1000 χλμ. η μία απότην άλλη;». Επιτρέπει δηλαδή τονπροσδιορισμό των χωρικών σχέσεωνανάμεσα στα χαρακτηριστικά 1 (features)του χάρτη. Επιπλέον, συνδέει χωρικά

1Ένα χαρακτηριστικό (feature) είναι π.χ. ένας δρόμος, μια λίμνη, τα σύνορα μιας χώρας, κλπ.

7

Page 8: Ubuntistas issue 11 january february march 2011

ΑΠΟΨΕΙΣ

δεδομένα με γεωγραφική πληροφορίαγια ένα συγκεκριμένο χαρακτηριστικό τουχάρτη. Η πληροφορία αποθηκεύεται ωςιδιότητες footnote Οι ιδιότητες (attributes)είναι δεδομένα που περιγράφουν ένασημείο, μια γραμμή, ή ένα πολύγωνο [3].Οι ιδιότητες αναφέρονται επομένως σταδιάφορα χαρακτηριστικά (features) τα οποίααναπαριστώνται στους ψηφιακούς χάρτεςως σημεία, γραμμές και πολύγωνα. Π.χ.,οι ιδιότητες ενός ποταμού είναι το όνομάτου, το μήκος του, το μέσο βάθος του, ορυθμός ροής του, η ποιότητα του ύδατος,πόσα φράγματα ή/και γέφυρες υπάρχουνσ' αυτό, κλπ. [4] (attributes) του γραφικάπαρουσιαζόμενου χαρακτηριστικού σε μιαΒάση Δεδομένων. Για κάθε χαρακτηριστικόαποθηκεύονται τρεις βασικές πληροφορίεςστη ΒΔ: η γεωγραφική πληροφορία, ηπροβολή (projection) πάνω στην οποίαεκφράζεται η γεωγραφική πληροφορία,και οι ιδιότητες του χαρακτηριστικού.Επίσης, για κάθε χαρακτηριστικό του χάρτηαποθηκεύονται στη ΒΔ του GIS οι εξήςπληροφορίες: τι χαρακτηριστικό είναι,πού βρίσκεται και πώς σχετίζεται με άλλαχαρακτηριστικά.

Πέραν της δυνατότητας σχεδίασης/χειρισμούχαρτών, ένα σύστημα GIS μπορεί νασυνδέει εξωτερικές ΒΔ με αντικείμενα πουανήκουν στο χάρτη [4]. Αυτή η σύνδεσημας επιτρέπει να βλέπουμε αμέσως στοχάρτη όποιες αλλαγές γίνονται στις ΒΔ,καθώς και να κάνουμε ερωτήσεις στη ΒΔαπευθείας από το χάρτη. Επίσης, διαθέτειένα σύνολο από εργαλεία που μπορούν

να διαχωρίσουν τα διάφορα δεδομένα πουείναι αποθηκευμένα στις εξωτερικές ΒΔ,εμφανίζοντας π.χ. αντικείμενα ή περιοχέςπου ικανοποιούν συγκεκριμένα κριτήρια μεδιαφορετικά χρώματα ή σχήματα.

Ένα σύνολο από χαρακτηριστικά (π.χ.όλο το οδικό δίκτυο) θεωρούνται ως έναστρώμα (layer) [2, 5]. Στην πραγματικότητα,οι ψηφιακοί χάρτες δεν είναι τίποτε άλλοαπό μια συλλογή στρωμάτων. Φανταστείτεαυτά τα στρώματαως διαφάνειες, όπου κάθεστρώμα περιέχει ένα διαφορετικό μέρος τουχάρτη. Τα στρώματα τοποθετούνται το έναπάνωστο άλλο και μας επιτρέπουν να δούμεόλες τις όψεις του χάρτη την ίδια χρονικήστιγμή. Π.χ. ένα στρώμα θα μπορούσε ναπεριέχει τα σύνορα των χωρών της γης,ένα άλλο στρώμα να περιέχει σύμβολαπου να αναπαριστούν τις πρωτεύουσες,ένα τρίτο στρώμα μπορεί να περιέχει τιςεθνικές οδούς, κλπ. Τοποθετώντας αυτέςτις διαφάνειες τη μια πάνω στην άλληδημιουργούμε έναν πλήρη χάρτη. Το GISσύστημα συνδυάζει διάφορα στρώματαγια να απαντήσει σε συγκεκριμένεςχωρικές ερωτήσεις. Χαρακτηριστικά πουσχετίζονται μεταξύ τους, όπως ποτάμια καικανάλια, μπορούν να εμφανίζονται σε έναστρώμα, ενώ όλες οι υποδομές, όπως οιδρόμοι, μπορούν να εμφανίζονται σε άλλοστρώμα. Όταν κάποια χαρακτηριστικάδεν ενδιαφέρουν το χρήστη σε κάποιαχρονική στιγμή, μπορεί να τα αποκρύπτειεμφανίζοντας μόνο την πληροφορία πουτον ενδιαφέρει [3].

Όπως είπαμε, οι χάρτες σ' ένα GIS

σύστημα αποθηκεύονται σε ψηφιακή μορφήσε μια βάση δεδομένων. Σ' αυτή τη ΒΔαποθηκεύονται δυο είδη πληροφορίας (ήαλλιώς, η πληροφορία που αποθηκεύεταισ' ένα GIS έχει δυο ιδιότητες, χωρικές καιπεριγραφικές): [2,3]

• Χωρική πληροφορία που περιγράφειτην τοποθεσία και το σχήμα τωνγεωγραφικών χαρακτηριστικών,καθώς και τις χωρικές σχέσεις τουςμε άλλα χαρακτηριστικά, και

• Περιγραφική πληροφορία που αφοράτα χαρακτηριστικά.

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

Συνοψίζοντας έως εδώ, έναχαρακτηριστικό (feature) του χάρτηαποτελείται από ιδιότητες (attributes). ΈναGIS αποθηκεύει τα χαρακτηριστικά σεπίνακες [4], έτσι ώστε κάθε γραμμή τουπίνακα να αποτελεί ένα χαρακτηριστικό τουχάρτη, και κάθε στήλη μια ιδιότητα αυτού τουχαρακτηριστικού. Τα χαρακτηριστικά αυτάέχουν τις ίδιες ιδιότητες και επομένως οπίνακας αποτελεί ένα στρώμα (layer) καθώςείναι ένα σύνολο από ίδια χαρακτηριστικά.Το σύνολο όλων αυτών των πινάκων

8

Page 9: Ubuntistas issue 11 january february march 2011

ΑΠΟΨΕΙΣ

(στρωμάτων), από τα οποία αποτελείταιο χάρτης, αποθηκεύεται στην GIS ΒάσηΔεδομένων.

Σχήμα 1: GIS ΒΔ.

Όποιος έχει δουλέψει με ΒΔ θα είναιοικείος με την ιδέα της εγγραφής. Μιαεγγραφή είναι ένα σύνολο από στήλες πουπεριέχουν σχετική πληροφορία. π.χ., μιαΒΔ πελατών περιέχει μια εγγραφή για κάθεπελάτη και επίσης περιέχει στήλες για τοόνομα, τη διεύθυνση κλπ. του πελάτη. Έναχαρακτηριστικό είναι απλά μια εγγραφή πουσυνδυάζει δεδομένα σε μορφή πίνακα καιγεωγραφική πληροφορία. Κάθε εγγραφήπεριλαμβάνει αρκετές στήλες με δεδομένακαθώς και μια αναφορά σε γεωμετρικήπληροφορία που περιγράφει το σχήμα καιτην τοποθεσία κάθε χαρακτηριστικού. Ταδεδομένα σε μορφή πίνακα ονομάζονταιιδιότητες και τα γεωμετρικά δεδομέναγεωμετρία. Αυτοί οι δυο τύποι δεδομένωναποτελούν το χαρακτηριστικό.

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

Τα θέματα (themes) μας επιτρέπουν νααλλάξουμε προγραμματιστικά την εμφάνισηορισμένων ή όλων των χαρακτηριστικώνενός στρώματος βασιζόμενοι σεσυγκεκριμένα κριτήρια. Πρότυπα και τάσειςπου είναι σχεδόν αδύνατο να ανιχνευθούνσε λίστες δεδομένων αποκαλύπτονταιξεκάθαρα όταν χρησιμοποιείται θεματικήσκίαση για αναπαράστασή τους στοχάρτη. Ένας χάρτης σκιάζεται θεματικάχρησιμοποιώντας δεδομένα από έναστρώμα. Το πιο κοινό παράδειγμαθεματικού χάρτη είναι ο χάρτης καιρού. Οικόκκινες περιοχές δηλώνουν ζέστη, οι μπλεκρύο. Οι θεματικοί χάρτες αναπαριστούντα δεδομένα με χρωματικές αποχρώσεις,πρότυπα, σύμβολα ή γεμίσματα και μπορείκάποιος να δημιουργήσει διαφορετικούςθεματικούς χάρτες με αυτά τα αντικείμενα,βασιζόμενος στα δεδομένα του.

Η αναζήτηση, τέλος, είναι μια από τιςπιο σημαντικές δυνατότητες ενός GIS.Επιτρέπει την ανάκτηση συγκεκριμένωνδεδομένων με βάση τη γεωγραφικήπληροφορία.

Ένα GIS σύστημα μπορεί να απαντήσειστους παρακάτω τύπους ερωτήσεων: [2]

• Τοποθεσίας, π.χ.: Τι βρίσκεται σε μιασυγκεκριμένη τοποθεσία;

• Συνθηκών, π.χ.: Ποια τοποθεσίαικανοποιεί συγκεκριμένα κριτήρια;

• Τάσεων, π.χ.; Τι θα αλλάξει μετά απόκάποιο χρονικό διάστημα;

• Μοτίβων (patterns), π.χ.: Ποια θαείναι η χρονική καθυστέρηση ανκυριαρχούν συγκεκριμένες εδαφικέςσυνθήκες;

• Μοντελοποίησης, π.χ. ερωτήσεις τουτύπου: Τι θα συνέβαινε εάν ... ;

Συστήματα Συντεταγμένων καιΓεωαναφορές

Προτού ανόμοια γεωγραφικά δεδομέναχρησιμοποιηθούν σε ένα GIS, θα πρέπει νααναχθούν σε ένα κοινό σύστημα. Υπάρχουνπολλά συστήματα γεωαναφορών πουπεριγράφουν τον πραγματικό κόσμο μεδιαφορετικούς τρόπους και με διαφορετικήακρίβεια. Ως γεωαναφορά (georegistration)ορίζεται η τοποθέτηση των αντικειμένωνστον δισδιάστατο ή τρισδιάστατο χώρο [1].Όπως φαίνεται και στο σχήμα 2, υπάρχουνδυο βασικές μέθοδοι γεωαναφοράς:

• Τα συνεχή συστήματα γεωαναφοράςκαι

• Τα διακριτά συστήματα γεωαναφοράς.

Στα συνεχή συστήματα γεωαναφοράςγίνεται συνεχής μέτρηση της θέσης τωναντικειμένων σε σχέση με ένα σημείοαναφοράς χωρίς απότομες αλλαγές ήδιακοπές. Τα δεδομένα χαρακτηρίζονταιαπό την ανάλυσή τους (resolution) καιτην ακρίβειά τους (precision). Τα συνεχήσυστήματα γεωαναφοράς χωρίζονται με τησειρά τους σε άμεσα και σχετικά. Τα άμεσαπεριλαμβάνουν:

9

Page 10: Ubuntistas issue 11 january february march 2011

ΑΠΟΨΕΙΣ

• Τα συστήματα συντεταγμένων στηνκαμπύλη επιφάνεια της γης

• Τις γεωκεντρικές συντεταγμένες και

• Τις ορθογώνιες συντεταγμένες

Τα σχετικά περιλαμβάνουν:

• Πολικές συντεταγμένες,

• Οριζόντιες αποστάσεις, και

• Μετρήσεις κατά μήκος οδικών δικτύων

Βασικές έννοιες των άμεσωνσυστημάτων γεωαναφοράς είναι:

• Το χωροσταθμικό σημείο (da-tum). Όπως γνωρίζουμε, η γη δενείναι σφαιρική αλλά περισσότεροελλειψοειδής. Διάφορα ελλειψοειδήσυστήματα έχουν προταθεί, μεδιαφορετική ακρίβεια περιγραφήςτου μεγέθους της γης. Έναχωροσταθμικό σημείο είναι έναμοντέλο (ελλειψοειδές) της γης πουχρησιμοποιείται για γεωδαιτικούςυπολογισμούς. Το πιο ευρέωςχρησιμοποιούμενο χωροσταθμικόσημείο σήμερα είναι το WGS84 (WorldGeodetic System1984).

• H προβολή χάρτη (projection). Ταδιάφορα γεωαναφορικά δεδομέναμπορούν να αποτυπωθούν πάνωστο χάρτη μόνο όταν αναφέρονταιστο επίπεδο και όχι στην καμπύλη

επιφάνεια της γης. Διάφορεςπροβολές της σφαιρικής επιφάνειαςτης γης στο επίπεδο έχουν προταθεί,και χωρίζονται σε τρεις κατηγορίες:κυλινδρικές (π.χ Mercator, UTM κ.ά.),κωνικές και αζιμουθιακές προβολές.Κάθε προβολικό σύστημα εισάγειλάθη στις αποστάσεις, το σχήμα τωνπεριοχών κλπ.

• Το σύστημα συντεταγμένων. Οιγεωγραφικές συντεταγμένες τηςεπιφάνειας της γης είναι τογεωγραφικό μήκος και το γεωγραφικόπλάτος. Σ' αυτό το σύστημασυντεταγμένων οι αποστάσειςυπολογίζονται χρησιμοποιώνταςσφαιρική γεωμετρία και την ακτίνατης γης. Πολλές χώρες έχουνεθνικά συστήματα συντεταγμένωνπου τους επιτρέπουν να περιγράφουντις περιοχές με μονάδες μήκους σεσχέση με ένα σημείο αναφοράς.Τα συνηθέστερα χρησιμοποιούνορθογώνιες συντεταγμένες μεμειονέκτημα την αναπόφευκτηεισαγωγή λάθους. Για ναπεριοριστεί το λάθος τα συστήματααυτά περιορίζονται σε μικρέςπεριοχές. Για μεγαλύτερες περιοχέςχρησιμοποιούνται πολλά τέτοιασυστήματα μετατοπισμένα το ένα σεσχέση με τα άλλα. Πολλά συστήματαGIS προσφέρουν δυνατότητεςμετατροπής από ένα σύστημασυντεταγμένων σε άλλο, με βάση

κοινά σημεία στα δυο συστήματα. Τοπιο γνωστό σύστημα συντεταγμένωνείναι το UTM (Universal TransverseMercator Grid).

• Τέλος, το γεωειδές, η επιφάνεια πουπερνά από τα σημεία της γης μεμηδενικό υψόμετρο (το μέσο επίπεδοθαλάσσης). Το γεωειδές επηρεάζεταιαπό τη μάζα της γης και επομένωςακολουθεί τις υψομετρικές καμπύλες.

Σχήμα 1: GIS ΒΔ.

GPS (Global Positioning System) καιECDIS

Το GPS είναι ένα στρατιωτικόδορυφορικό σύστημα πλοήγησης που

10

Page 11: Ubuntistas issue 11 january february march 2011

ΑΠΟΨΕΙΣ

αναπτύχθηκε από το υπουργείο άμυναςτων Η.Π.Α. Το GPS ελέγχει 24 δορυφόρουςμεγάλης ακριβείας που μπορούν ναεκπέμπουν ραδιοσήματα με μεγάληακρίβεια. Η θέση στην επιφάνεια της γηςπροσδιορίζεται με λήψη και σύγκριση τωνσημάτων τριών τέτοιων δορυφόρων, ηοποία μεταφράζεται στον υπολογισμό τηςμοναδικής τομής τριών κώνων, των οποίωνοι κορυφές είναι οι τρεις δορυφόροι. Ητυπική ακρίβεια μέτρησης του GPS είναι±100m και μπορεί να φθάσει τα ±10m με τηβοήθεια διαφορικού GPS. To GPS επιτρέπειτον προσδιορισμό της θέσης σημείων σ' όλοτον κόσμο 24 ώρες το εικοσιτετράωρο κάτωαπό οποιεσδήποτε καιρικές συνθήκες.

Το GPS μπορεί να συνδυαστεί άμεσαμε συστήματα GIS καθώς και με συστήματαηλεκτρονικών χαρτών και πληροφοριακώνσυστημάτων ECDIS (Electronic Chart Dis-play and Information System). Η ακρίβειαπου παρέχεται από το GPS είναι καλύτερηαπό αυτή των ναυτικών χαρτών και άραχρησιμότερη και ακριβέστερη για εισαγωγήσε ένα ECDIS. Ένα ECDIS αποτελείται απότρία πληροφοριακά υποσυστήματα:

• Έναν ηλεκτρονικό χάρτη πλοήγησης(ENC – Electronic NavigationChart) που συνδυάζει ναυτικήμε υδρογραφική πληροφορία γιααπεικόνιση στον ψηφιακό χάρτη.

• Πληροφορία τοποθεσίας από τοραντάρ του πλοίου και το GPS.

• Πληροφορία κατεύθυνσης από τοσύστημα κατεύθυνσης του πλοίου.

Το ECDIS παρέχει ένα πλήρες σύστημαπλοήγησης και προειδοποίησης πουαπεικονίζει τη θέση του πλοίου και άλληπληροφορία απαραίτητη για την ασφαλήπλοήγησή του. Το σύστημα παρέχειακόμα ακουστικά και οπτικά σήματαπροειδοποίησης στην περίπτωση που τοπλοίο ξεφεύγει της πορείας του, περνά απόαβαθή νερά, κινδυνεύει να συγκρουστεί,κλπ. Αν εισαχθούν και εικόνες από τοραντάρ, το σύστημα μπορεί να απεικονίσεικαι άλλα πλοία και τις κινήσεις τους στηνπεριοχή. Το ECDIS μπορεί να ακολουθήσειτην πορεία του αυτόματου πιλότου. Τέλος,όπως και στο GIS, ο χρήστης του ECDISμπορεί να χτίσει μια Βάση Δεδομένων με ταχαρακτηριστικά όλων των αντικειμένων πουφαίνονται στους ψηφιακούς χάρτες.

Άλλη εφαρμογή του GPS είναι στιςεπίγειες μεταφορές. Τα συστήματαπλοήγησης αυτοκινήτων, που ήδηχρησιμοποιούνται σε αρκετές Ευρωπαϊκέςχώρες, χρησιμοποιούν απλές GISλειτουργίες με ψηφιακούς χάρτες καιπαρεμφερή πληροφορία. Σε περιοχέςμε αυξημένο κυκλοφοριακό πρόβλημα,τέτοια συστήματα παρέχουν στους οδηγούςτις απαραίτητες πληροφορίες για νααποφύγουν τα μποτιλιαρίσματα και ναοδηγούν με ασφάλεια. Αποτελούν ένασύνολο από ερευνητικά προγράμματα σεΕυρώπη και Η.Π.Α., γνωστά ως ΈξυπναΣυστήματα Μεταφοράς (Intelligent Informa-tion Systems - ITSs).

Συμπερασματικά

Τα συστήματα GIS έχουν μια ευρεία περιοχήεφαρμογών. Τυπικές εφαρμογές τουςείναι στη διαχείριση του περιβάλλοντοςκαι των πόρων του, στο σχεδιασμό καιανάπτυξη νέων υποδομών των πόλεων(π.χ. δρόμων), στις θαλάσσιες και επίγειεςμεταφορές, στην ασφάλεια στη θάλασσα,στις βιομηχανίες τηλεπικοινωνιών, ύδατοςκαι ηλεκτρισμού, όπου η έμφαση ρίχνεταιστη συντήρηση και λειτουργία των δικτύωντους, ακόμα και σε στρατιωτικές εφαρμογές.Τα συστήματα GIS είναι μια ενεργή περιοχήτης ψηφιακής τεχνολογίας με ετήσιαανάπτυξη 20% και πωλήσεις της τάξηςτων $500 εκατομμυρίων. Η ικανότητατων συστημάτων αυτών να αποθηκεύουνσχέσεις ανάμεσα στα χαρακτηριστικά,πέρα από τα ίδια τα χαρακτηριστικά καιτις ιδιότητές τους, είναι ένα από τα πιοσημαντικά χαρακτηριστικά ισχύος καιευελιξίας αυτής της τεχνολογίας. Τέλος,υπάρχει μια πολύ δραστήρια κοινότητα στηνΕλλάδα, που μπορείτε να επισκεφθείτε στοhttp://www.gistech.gr.

Πηγές:

1. Bernhardsen T., Geographic Informa-tion Systems - An Introduction, 2ndEdition, John Wiley: 1999.

2. ESRI, Understanding GIS - The AR-C/INFO Method, Environmental Sys-tems Research Institut Inc.: 1990.

(συνεχίζεται στη σελίδα 25)

11

Page 12: Ubuntistas issue 11 january february march 2011

HOW-TO

του Κωστάρα Γιάννη

Εισαγωγή στην Κρυπτογραφία με τη γλώσσα Java – Μέρος 3οΑυθεντικοποίηση

Στο τρίτο και τελευταίο μέρος τηςσειράς άρθρων για την Κρυπτογραφίαθα μιλήσουμε για την αυθεντικοποίηση,τις ψηφιακές υπογραφές, τις ΑρχέςΠιστοποίησης, και φυσικά θα δούμευλοποιήσεις σε Java, χρησιμοποιώντας τιςβιβλιοθήκες Java Cryptography Extension(JCE).

Αυθεντικοποίηση

Κάθε φορά που πηγαίνετε σε ένααυτόματο τραπεζικό μηχάνημα (ATM) γιανα πραγματοποιήσετε μια συναλλαγή,απαιτείται ν' αποδείξετε ότι είστε όντωςεσείς για να σας δοθεί πρόσβαση στολογαριασμό σας. Με την τραπεζική κάρτασας γίνεται η ταυτοποίησή σας (identi-fication) από την τράπεζα, ενώ με τονπροσωπικό αριθμό αναγνώρισης (PIN)γίνεται η αυθεντικοποίησή σας (authenti-cation), δηλαδή διαπιστώνεται ότι η κάρταείναι όντως δική σας. Το PIN είναι ένα κοινόμυστικό που γνωρίζετε μόνο εσείς και ητράπεζά σας.

Άλλο παράδειγμα αυθεντικοποίησηςείναι η σύνδεση σ' ένα σύστημαπελάτη/διακομιστή (client/server). Οδιακομιστής ζητά ένα όνομα χρήστη κι ένανκωδικό από τον πελάτη για να μπορέσει

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

Ωστόσο, η παραπάνω μέθοδοςεξακολουθεί να μην είναι ασφαλής, καθώςείναι ευάλωτη στις επιθέσεις επανεκτέλεσης(replay attacks) ή ενδιαμέσου (man-in-the-middle attacks). Ο ενδιάμεσος που“κρυφακούει” χρησιμοποιεί ο ίδιος τοκρυπτογραφημένο ψηφιακό αποτύπωμαγια να συνδεθεί στο διακομιστή ως οπελάτης. Για να αποφευχθεί κι αυτό τοπρόβλημα, απαιτείται να προστεθεί στοαποτύπωμα κάποια πληροφορία που είναιμοναδική για τη διάρκεια της συνεδρίας,π.χ. ένα χρονικό αποτύπωμα κι έναςμοναδικός (τυχαίος) αριθμός, όπως κάνουνοι τράπεζες που μας δίνουν μια συσκευήγια ηλεκτρονικές τραπεζικές συναλλαγές.Κάθε φορά που ο πελάτης στέλνει τοψηφιακό αποτύπωμα του συνθηματικού του,

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

• Ψηφιακά αποτυπώματα μηνυμάτων(message digest)

• Ψηφιακές υπογραφές ως αποδεικτικάτης εγκυρότητας των δεδομένων

• Πιστοποιητικά (certificates) ωςθησαυροφυλάκια δημοσίων κλειδιών

Ψηφιακά αποτυπώματα

Οι πιο γνωστοί αλγόριθμοι παραγωγήςψηφιακών αποτυπωμάτων είναι οι εξής:

• MD5

• SHA

Το Java Security API διαθέτει την κλάσηjava.security.MessageDigest για τη

12

Page 13: Ubuntistas issue 11 january february march 2011

HOW-TO

δημιουργία ψηφιακών αποτυπωμάτων.Μπορείτε να κατεβάσετε τον κώδικα απόεδώ./∗ ∗∗ Returns the digest of<code>message</code>.∗ @param message a string to generateits digest∗ @param algorithm algorithm to use,e.g. SHA or MD5∗ @return digest of the message∗ @throws NoSuchAlgorithmException ifan unrecognized algorithm string ispassed∗/ String messageDigest(final Stringmessage, final String algorithm)throwsNoSuchAlgorithmException {MessageDigest md =MessageDigest.getInstance(algorithm);byte[] digest =md.digest(message.getBytes());Base64 encoder = new Base64();return encoder.encodeToString(digest);}

Η έξοδος της παραπάνω μεθόδου:

Plain text input: This is a longmessage!Message digest:neWNgutfQkbyB/5Hlfk1TEii6w0= }

MAC

Ίδια δουλειά με το ψηφιακό αποτύπωμακάνει και ο Κώδικας ΑυθεντικοποίησηςΜηνύματος ή Message AuthenticationCode (MAC). Ο MAC παράγεται όπως καιτο ψηφιακό αποτύπωμα, με τη διαφοράότι χρησιμοποιείται κι ένα κλειδί για τηνπαραγωγή του αποτυπώματος, ώστενα προστατεύεται η ακεραιότητα τωνδεδομένων. Το Java Security API διαθέτειτην κλάση java.security.Mac για τηδημιουργία MAC./∗ ∗∗ Generates a random secret key.∗ @param algorithm to use,e.g. HmacSHA1, SHA etc.∗ @throws NoSuchAlgorithmExceptionif the algorithm string passed as aparameter is not recognized ∗/private SecretKey generateKey(finalString algorithm) throwsNoSuchAlgorithmException {KeyGenerator keygen =KeyGenerator.getInstance(algorithm);keygen.init(new SecureRandom());return keygen.generateKey();}/∗ ∗∗ Returns the MAC of<code>message</code>.∗ @param message a string to generateits MAC∗ @param algorithm algorithm to use,e.g. HmacSHA1∗ @return MAC of the message

∗ @throws NoSuchAlgorithmException ifan unrecognized algorithm string ispassed∗ @throws InvalidKeyException if aninvalid key is used∗/String Mac(final String message,final String algorithm) throwsNoSuchAlgorithmException,InvalidKeyException {SecretKey key =generateKey(algorithm);Mac mac =Mac.getInstance(algorithm);mac.init(key);byte[] digest =mac.doFinal(message.getBytes());Base64 encoder = new Base64();returnencoder.encodeToString(digest);} }

Θα πάρετε κάτι παρόμοιο με τοπαρακάτω:Plain text input: This is a longmessage!MAC: xvyCTHc4IIdxng6z72TQEKpJBL0=

Ένας άλλος τρόπος παραγωγής τουκλειδιού φαίνεται παρακάτω:SecureRandom sr = newSecureRandom();byte[] keyBytes = new byte[20];sr.nextBytes(keyBytes);SecretKey key = newSecretKeySpec(keyBytes, algorithm);

13

Page 14: Ubuntistas issue 11 january february march 2011

HOW-TO

Εδώ χρησιμοποιείται η SecretKeySpecαντί της KeyGenerator. Η SecureRandomγεμίζει έναν πίνακα με τυχαία bytes καιαυτός περνιέται στην SecretKeySpec για τηνπαραγωγή του κλειδιού.

Ψηφιακές υπογραφές

Ας υποθέσουμε ότι θέλετε να στείλετε μιαεπιστολή στην τράπεζά σας στην Ελβετία,ζητώντας τους να κάνουν μια μεταφοράχρημάτων για την αγορά του νέου κότερουπου αγοράσατε. Πώς μπορεί η τράπεζανα επιβεβαιώσει ότι όντως είστε εσείςαυτός που έστειλε την επιστολή κι όχικάποιος επιτήδειος που θέλει να τραβήξειχρήματα απ' το λογαριασμό σας; Με τη'χάρτινη' επιστολή, ο τραπεζίτης συγκρίνειτην υπογραφή που βρίσκει στην επιστολή μεμια γνήσια υπογραφή που έχει στη διάθεσήτου από τότε που ανοίξατε το λογαριασμό.

Πώς μπορούμε να προσομοιώσουμε τηνπαραπάνω λειτουργία ηλεκτρονικά, με τοηλεκτρονικό ταχυδρομείο; Μα με τη χρήσηψηφιακών υπογραφών. 'Υπογράφοντας'ψηφιακά ένα κείμενο, επιβεβαιώνουμεότι είμαστε εμείς αυτός που έστειλε τηνεπιστολή κι όχι κάποιος τρίτος. Επίσης,απ' τη στιγμή που στείλαμε μια ψηφιακάυπογεγραμένη επιστολή, δεν μπορούμεμετά ν' αρνηθούμε την αποστολή της, καθώςέχει τη δική μας ψηφιακή υπογραφή.

Πώς δουλεύουν οι ψηφιακές υπογραφές;Πολύ εύκολα. Είναι το ακριβώς ανάποδοτης κρυπτογραφίας δημοσίου κλειδιού πουπεριγράψαμε στο προηγούμενο τεύχος.Αντί να κρυπτογραφήσουμε το μήνυμα με

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

Μια ψηφιακή υπογραφή παρέχει δυουπηρεσίες ασφαλείας: αυθεντικοποίησηκαι ακεραιότητα (integrity). Έτσι, όχιμόνο επιβεβαιώνει ότι ένα μήνυμα δενέχει αλλάξει, αλλά και ότι ο αποστολέαςείναι αυτός που λέει ότι είναι. Μιαψηφιακή υπογραφή δεν είναι τίποτ'άλλο από ένα ψηφιακό αποτύπωμα τοοποίο κρυπτογραφείται με το ιδιωτικόκλειδί του αποστολέα. Μόνο όποιοςδιαθέτει το δημόσιο κλειδί του αποστολέαμπορεί να αποκρυπτογραφήσει τηνψηφιακή υπογραφή (αυθεντικοποίησητου αποστολέα). Αν το ψηφιακόαποτύπωμα του μηνύματος είναι το ίδιομε την αποκρυπτογραφημένη ψηφιακήυπογραφή τότε έχουμε και ακεραιότηταδεδομένων. Οι ψηφιακές υπογραφές δενπαράγουν όμως εμπιστευτικότητα (confi-dentiality) – ο οποιοσδήποτε μπορεί ναδιαβάσει το μήνυμα που συνοδεύει τηνψηφιακή υπογραφή, αν αυτό δεν είναικρυπτογραφημένο.

Το Java Security API διαθέτει την κλάσηjava.security.Signature για τη δημιουργίακαι την επαλήθευση ψηφιακών υπογραφών.Μπορείτε να κατεβάσετε το πρόγραμμα Dig-italSignatureExample από εδώ. Μια έξοδοςτου προγράμματος φαίνεται παρακάτω:Plain text input: This is a longmessage!

Signature:MCwCFHA49354heCfHhDmRINN2MR49UjIAhRsFuQOX53Eb0ajlPuJtASWEHWrCQ==

Verified: true Το πρόγραμμα διαθέτειδυο βασικές μεθόδους, την createSigna-ture(message, privateKey, algorithm) και τηverifySignature(message, signature, pub-licKey, algorithm). Η πρώτη δημιουργεί τηνψηφιακή υπογραφή, χρησιμοποιώντας τοιδιωτικό κλειδί που παράχθηκε από την gen-eratePKI(algorithm), ενώ η δεύτερη ελέγχειτη γνησιότητα της ψηφιακής υπογραφής,χρησιμοποιώντας το δημόσιο κλειδί.Η λειτουργία του αλγορίθμου φαίνεται στοακόλουθο σχήμα:

Σχήμα 1: Λειτουργία του αλγορίθμου

14

Page 15: Ubuntistas issue 11 january february march 2011

HOW-TO

δημοσίου κλειδιού

Οι πιο γνωστοί αλγόριθμοι ψηφιακήςυπογραφής, οι οποίοι βασίζονται στον RSA,είναι οι:

• DSA – Digital Signature Algorithm

• SHA with RSA

• PSS

Χάρις στις βιβλιοθήκες JCE, οι αλλαγέςπου χρειάζεται να κάνετε στο παραπάνωπρόγραμμα είναι ελάχιστες. Κάντε τις εξήςαλλαγές:final String algorithm ="SHA1withRSA"; /* OR SHA224withRSA ORSHA256withRSA OR SHA1withRSAandMGF1OR SHA256withRSAandMGF1 /*KeyPair keypair =digitalSignature.generatePKI("RSA");και προσθέστε τον πάροχο BouncyCas-

tle όπως περιγράψαμε στο προηγούμενοτεύχος (αφήνεται ως άσκηση για τοναναγνώστη), για να δείτε τη χρήση τωνυπόλοιπων αλγορίθμων.

Πώς μπορούμε όμως να είμαστεσίγουροι ότι το δημόσιο και το ιδιωτικόκλειδί είναι όντως από το πρόσωπο πουισχυρίζονται ότι είναι κι όχι από κάποιονεπιτήδειο; Ας δούμε την περίπτωση πουφαίνεται στο παρακάτω σχήμα. Η Αλίκηυπογράφει τα δεδομένα της με το ιδιωτικόκλειδί της και τα στέλνει στο Βασίλη.Ο Βασίλης χρειάζεται το δημόσιο κλειδίτης Αλίκης για να ελέγξει τη γνησιότητατης υπογραφής της Αλίκης. Η κακιά

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

Σχήμα 2 Man-in-the-middle (ενδιάμεσος)

Άλλο παράδειγμα ενδιάμεσου φαίνεταιστο ακόλουθο σχήμα. Η χώρα Α επιτίθεταιστη χώρα Β. Η χώρα Β διαθέτει ένασύγχρονο αντιαεροπορικό σύστημα τοοποίο στέλνει μια ερώτηση-πρόκληση rσε κάθε αεροσκάφος που στοχεύει. Αντο IFF του αεροσκάφους απαντήσει σεεύλογο χρονικό διάστημα με τη σωστήαπάντηση F(K, r) τότε το αντιαεροπορικόαντιλαμβάνεται ότι πρόκειται για φίλιοαεροσκάφος και δεν το καταρρίπτει,διαφορετικά βάλλει κατ' αυτού. Χωρίςόμως η χώρα Β να το γνωρίζει, η χώραΑ έχει εξοπλιστεί κι αυτή με το ίδιοσύστημα ανταπόκρισης στις προκλήσειςr. Ένα αεροσκάφος της χώρας Α, παρόλο

που δεν γνωρίζει τι ν' απαντήσει στιςπροκλήσεις της χώρας Β, στέλνει τηνερώτηση πρόκληση σ' ένα αεροσκάφοςτης χώρας Β, το οποίο, νομίζοντας ότιείναι ερώτηση του αντιαεροπορικού, στέλνειευχαρίστως τη σωστή απάντηση την οποίατο αεροσκάφος της χώρας Α αναμεταδίδειστο αντιαεροπορικό κι έτσι αποφεύγει τηνκατάρριψη. Έτσι, στην ουσία αχρηστεύεταιτο αντιαεροπορικό σύστημα της χώρας Β.

Σχήμα 3 Man-in-the-middle

Πιστοποιητικά και Αρχές Πιστοποίησης

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

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

15

Page 16: Ubuntistas issue 11 january february march 2011

HOW-TO

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

Στην κρυπτογραφία, ένα πιστοποιητικόσυσχετίζει μια οντότητα ή αλλιώς, έναυποκείμενο μ' ένα δημόσιο κλειδί. Ηοντότητα που υπογράφει το πιστοποιητικόείναι ο υπογράφων. Το πιστοποιητικόπεριέχει πληροφορίες για τον υπογράφοντα,το υποκείμενο και το δημόσιο κλειδί τουυποκειμένου. Υπογράφεται κρυπτογραφικάκαι η υπογραφή αυτή συμπεριλαμβάνεταιεπίσης στο πιστοποιητικό. Με άλλα λόγια,σ' ένα πιστοποιητικό περιλαμβάνονται:

• πληροφορίες για το υποκείμενο (τοπρόσωπο)

• το δημόσιο κλειδί του υποκειμένου

• πληροφορίες για τον εκδότη

• η ψηφιακή υπογραφή του εκδότη

Αυτό επιτυγχάνεται με τη χρήση των ΑρχώνΠιστοποίησης ή Certification Authorities(CA). Πρόκειται για έμπιστους οργανισμούςπου αναλαμβάνουν τη διαχείριση τωνδημόσιων κλειδιών. Η πιο γνωστή τέτοιααρχή είναι η Verisign. Η Αρχή Πιστοποίησηςεκδίδει ένα πιστοποιητικό για το δημόσιοκλειδί κάθε πιστοποιημένου χρήστη της.Πώς ακριβώς δουλεύει αυτό; Κάθε χρήστης

που θέλει να πιστοποιηθεί, στέλνει τοδημόσιο κλειδί του στην CA μαζί μειδιωτικές πληροφορίες, όπως π.χ. τοόνομά του, την ημερομηνία λήξης τουπιστοποιητικού κλπ. Η CA χρησιμοποιείόλες αυτές τις πληροφορίες για να εκδώσειτο πιστοποιητικό, το οποίο και στέλνει στοχρήστη. Παλιότερα η υπηρεσία αυτή ήτανδωρεάν, σήμερα, νομίζω ότι δεν υπάρχειοργανισμός πιστοποίησης που να παράγειπιστοποιητικά χωρίς κάποια χρέωση. Ανλοιπόν θέλετε να μάθετε αν το δημόσιοκλειδί του χρήστη Χ είναι γνήσιο, αρκεί ναλάβετε το δημόσιο κλειδί της CA η οποίαέχει παράγει το πιστοποιητικό του δημόσιουαυτού κλειδιού, και ,να επιβεβαιώσετε ότιτο δημόσιο κλειδί του χρήστη Χ ανήκειόντως σ' αυτόν. Η όλη φιλοσοφία δουλεύειως εξής: αν εμπιστεύεστε το κλειδί τηςCA, τότε εμπιστεύεστε κι όλα τα κλειδιάπου έχουν εκδοθεί από τη CA. Βέβαια οπροσεκτικός αναγνώστης θα διερωτηθεί,τι ελέγχους κάνει η CA για να ελέγξει ότιόντως είναι ο χρήστης Χ αυτός που ζητάειτο πιστοποιητικό του δημόσιου κλειδιούτου χρήστη Χ κι όχι κάποιος επιτήδειος;Απ' όσο γνωρίζω, για μεγάλες εταιρίες καιοργανισμούς, γίνεται όντως έλεγχος κι άρατο παραγόμενο πιστοποιητικό έχει αξία.Για ιδιώτες όμως, όπως εγώ κι εσείς, δενγίνεται κάποιος έλεγχος. Οπότε, εν τέλει,ούτε αυτό το δίκτυο αρχώνς πιστοποίησηςείναι εντελώς ασφαλές. Π.χ., η Verisignδιαθέτει πιστοποιητικά κλάσεων 1, 2 και3, όπου μόνο στο 3 γίνεται εξονυχιστικόςέλεγχος του αιτούντος του πιστοποιητικού.Οι περιηγητές διαθέτουν πιστοποιητικά από

πολλές αρχές πιστοποίησης. Π.χ., στονFirefox πηγαίνετε στο μενού Επεξεργασία> Προτιμήσεις > Για προχωρημένους >καρτέλα Κρυπτογράφηση και πατήστε τοκουμπί Προβολή πιστοποιητικών για ναδείτε μια λίστα από CA. Τελευταία, έχειδημιουργηθεί μια ανεξάρτητη αρχή, ηCACert, η οποία παράγει πιστοποιητικάγια ιδιώτες. Βασίζεται σ' ένα δίκτυοεμπιστοσύνης που χτίζετε γύρω σας.Η Java, από το JDK 1.2 και μετά,υποστηρίζει την εισαγωγή και πιστοποίησηπιστοποιητικών X.509v3 αλλά όχι τηδημιουργία τους. Ήδη μιλήσαμε για τιςαρχές πιστοποίησης που σκοπός τουςείναι η διαχείριση των πιστοποιητικώντων χρηστών. Άλλοι τρόποι παραγωγήςπιστοποιητικών είναι οι παρακάτω:

• SSL – Secure Socket Layer

• PGP – Pretty Good Privacy

• SPKI – Simple Public Key Infrastruc-ture

• IBC – Identity Based Cryptography

Eπίλογος

Στο τρίτο και τελευταίο μιας σειράς άρθρωνγια την κρυπτογραφία, μιλήσαμε για τουςτρόπους αυθεντικοποίησης, τις ψηφιακέςυπογραφές και τις Αρχές Πιστοποίησης.

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

(συνεχίζεται στη σελίδα 25)

16

Page 17: Ubuntistas issue 11 january february march 2011

HOW-TO

του Παπαδόπουλου Δημήτρη

Parallel computingOpenMP.

Όλο και πιο συχνά ακούγεται στιςμέρες μας ο όρος parallel comput-ing, ή «παράλληλοι υπολογισμοί», καιέχει γίνει πλέον πραγματικότητα καιστους προσωπικούς υπολογιστές, μεεπεξεργαστές διπλών και τρίδιπλων(όπως το λαϊκό) πυρήνων. Αλλά ποιοςο λόγος, και υπάρχει πράγματι κέρδοςαπό τους επεξεργαστές με δύο πυρήνεςή είναι απλώς ένα εμπορικό παιχνίδιτων εταιριών για να αυξήσουν τα κέρδητους; Σε αυτήν την ερώτηση δυστυχώςαδυνατώ να απαντήσω, αλλά θα σας δώσωμια απλή γεύση του πώς μπορούμε ναεκμεταλλευτούμε τις δυνατότητες αυτών τωνεπεξεργαστών. Με τον όρο παράλληλοιυπολογισμοί εννοούμε ότι ένας μεγάλοςόγκος υπολογισμών χωρίζεται σε επιμέρουςυπολογισμούς οι οποίοι πραγματοποιούνταιπαράλληλα, δηλαδή ταυτόχρονα [1].Υπάρχουν πολλές διαφορετικές μορφέςπαράλληλων υπολογισμών, ανάλογα μετο επίπεδο στο οποίο πραγματοποιείταιη παραλληλοποίηση, πχ. σε επίπεδοδεδομένων, διεργασιών, κ.α.

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

συνειδητοποιήσει, συνεχώς βγαίνουνκαλύτεροι επεξεργαστές. Μάλιστα, ηβελτίωση αυτή έχει ποσοτικοποιηθεί. Ονόμος του Amdahl [2], προς τιμή τουαρχιτέκτονα υπολογιστών Gene Amdahl,περιγράφει ακριβώς αυτή τη βελτίωση στηνταχύτητα των επεξεργαστών, βλ. Εικόνα 1.

20.00

18.00

16.00

14.00

12.00

10.00

8.00

6.00

4.00

2.00

0.00

Speedup

1 2 4 8

16

32

64

128

25

6

51

2

10

24

20

48

40

96

8192

16

38

4

327

68

65

536

Number of Processors

Amdahl’s Law

Parallel Portion

50%

75%

90%

95%

Εικόνα 1: Ο νόμος του Amdahl.

Πριν εμφανιστούν οι πρώτοι πολυπύρηνοι(multi-core) επεξεργαστές ο νόμοςπροέβλεπε αύξηση στην ταχύτητα, αλλάη φυσική απέκλειε περαιτέρω μειώσεις στομέγεθος των επεξεργαστών. Κι όμως ηανθρώπινη δημιουργικότητα βρήκε τρόπονα εξελιχθεί κι έτσι εμφανίστηκαν οι πρώτοιπολυπύρηνοι επεξεργαστές.

Όπως είπαμε στην αρχή, υπάρχουνδιάφορα είδη παραλληλοποίησης. Ταδύο βασικά αφορούν δεδομένα (data) και

οδηγίες (instructions). Σύμφωνα με αυτήτην κατηγοριοποίηση υπάρχουν 4 δυνατοίσυνδυασμοί [3], όπως φαίνεται και στηνΕικόνα 2.

MulticoreCore i7

GPGPUGeforce

Single corePentium

Μονή (SI) Πολλαπλή (MI)

Μο

νά

(S

D)

Πολλα

πλά

(M

D)

Εικόνα 2: Κατηγοριοποίηση τωνσύγχρονων επεξεργαστών.

Ο απλός Pentium πραγματοποιεί μία οδηγίασε ένα μόνο δεδομένο, αντίθετα η κάρταγραφικών GeForce πραγματοποιεί μίαοδηγία σε πολλά δεδομένα, τα οποίααντιστοιχούν, χοντρικά, στα pixel τηςοθόνης. Ο δε επεξεργαστής Core i7μπορεί να πραγματοποιεί πολλαπλέςοδηγίες σε πολλαπλά δεδομένα. Τέλος,ακόμη δεν υπάρχει καμία εφαρμογή γιαεπεξεργαστές που εφαρμόζουν πολλαπλές

17

Page 18: Ubuntistas issue 11 january february march 2011

HOW-TO

οδηγίες σε ένα μόνο δεδομένο. Ίσως στοόχι και τόσο μακρινό μέλλον. Κάποιοςθα μπορούσε εδώ να πει «Ωραία, τότεγιατί δε φτιάχνουμε μόνο core i7 ακόμηκαι για κάρτες γραφικών;» Η απάντησηείναι απλή: το πλήθος των δεδομένωνδιαφέρει. Υπάρχει βέβαια και το αντίστροφοερώτημα, «Γιατί δε χρησιμοποιούμε κάρτεςγραφικών όπως η NVIDIA Tesla για νακάνουμε τους υπολογισμούς μας αφούείναι τόσο καλές;» Η αλήθεια είναι ότι οικάρτες γραφικών νέας γενιάς έχουν τηδυνατότητα να εφαρμόζουν μία οδηγίασε ένα μεγάλο πλήθος δεδομένων. Ονέος υπερυπολογιστής που βρίσκεταιπρώτος στη λίστα των 500 γρηγορότερωνυπολογιστών παγκοσμίως [4] χρησιμοποιείκάρτες γραφικών NVIDIA. O λόγος πουδεν τις χρησιμοποιούμε κι εμείς στουςπροσωπικούς υπολογιστές, εκτός απότο κόστος, είναι ότι χρειάζονται ειδικόπρογραμματισμό σύμφωνα με το API CUDA[5] ή OpenCL.

Αφήνοντας τις κάρτες γραφικών προςτο παρόν, οι παράλληλοι υπολογιστέςχωρίζονται σε δύο βασικές κατηγορίες:shared και distributed μνήμης υπολογιστές.Οι πρώτοι, με shared memory, είναιαυτοί που έχουμε στους υπολογιστές μας,όπου ο κάθε επεξεργαστής (στο σημείοαυτό δε θα τους ξεχωρίσω από τουςπυρήνες) μοιράζεται την ίδια μνήμη μεόλους τους υπόλοιπους. Οι distributedmemory υπολογιστές έχουν ο καθέναςδική του μνήμη και επικοινωνούν μέσωδικτύου [6]. Προφανώς, αν έχουμε 100

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

Ας συνεχίσουμε λοιπόν με sharedmemory υπολογιστές, δηλαδή τουςπολυπύρηνους επεξεργαστές που έχουμεστους υπολογιστές μας. Για τα παρακάτωθα χρειαστεί να εγκαταστήσουμε τα πακέτα:

sudo apt-get install build-essentialsudo apt-get install libgomp

Το build-essential περιέχει όλα τααπαραίτητα πακέτα για προγραμματισμό καιανάπτυξη κώδικα, ενώ το libgomp περιέχειτη βιβλιοθήκη για shared memory parallelprogramming. Αναλυτικές οδηγίες για τηνgnu openMP μπορούν να βρεθούν στηνιστοσελίδα της [7].

Θα ξεκινήσω με ένα απλό hello worldπρόγραμμα σε C. Δημιοργούμε καταρχάςένα φάκελο mkdir /testgomp cd /testgompΑνοίγουμε μέσα στο φάκελο testgomp μετο gedit το αρχείο hello.c και εισάγουμε ταπαρακάτω:

#include <stdio.h>int main(){printf("Hello world\n");}

To μεταγλωττίζουμε και δημιουργούμε τοεκτελέσιμο με:

gcc -c hello.cgcc -o serialtest hello.o

Eκτελούμε το πρόγραμμα πουδημιουργήθηκε με ./serialtest και βλέπουμεότι εκτυπώνεται στην οθόνη Hello worldμόνο μία φορά.

Tώρα προσθέτουμε τη γραμμή #pragmaomp parallel. Δηλαδή, το αρχείο γίνεται:

#include <omp.h>#include <stdio.h>int main(){#pragma omp parallelprintf("Hello world\n");}

To μεταγλωττίζουμε (τώρα χρειάζεται επίσηςνα συνδέσουμε την αντίστοιχη βιβλιοθήκη)και δημιουργούμε το εκτελέσιμο με:

gcc -c -fopenmp hello.cgcc -o paralleltest hello.o

Εκτελούμε τώρα το παράλληλο πρόγραμμαμε ./paralleltest και βλέπουμε να τυπώνεταιδύο φορές ενώ υπάρχει μόνο μία φορά στονκώδικά μας, και φυσικά δεν υπάρχει κανέναςβρόχος. (Βέβαια, αν έχουμε επεξεργαστή μεένα μόνο πυρήνα δε θα δούμε διαφορά)Η γραμμή #pragma omp parallel γίνεταιαντιληπτή από το μεταγλωττιστή gcc σανσχόλιο αν δεν υπάρχει η επιλογή -fopenmpκατά τη μεταγλώττιση, πράμα που καθιστάαρκετά portable τα προγράμματα πουγράφουμε.

Προφανώς, αυτό το πρόγραμμα δενείναι και πολύ χρήσιμο γιατί επαναλαμβάνει

18

Page 19: Ubuntistas issue 11 january february march 2011

HOW-TO

την ίδια δουλειά δύο φορές. Εμείςχρειαζόμαστε κάτι που να μοιράζει το φόρτοεργασίας στους δύο επεξεργαστές. Aςδημιουργήσουμε λοιπόν ένα άλλο αρχείοhello2.c που θα περιέχει τα εξής:

#include <omp.h>#include <stdio.h>

#define N 100000int main(){int i, a[N];#pragma omp parallel forfor (i=0;i<N;i++)

a[i]= 2*i;return 0;

}

Η μεταγλώττιση γίνεται όπως πάντα με:

gcc -c -fopenmp hello2.cgcc -o paralleltest2 hello2.o

Το συγκεκριμένο παράδειγμα μοιράζειαυτόματα το array a[N] στα δύο threadsπου δημιουργούνται. Τα αποτελέσματα είναισωστά γιατί το δεξί μέλος της ισότητας δενεξαρτάται από το αριστερό.

Έστω όμως ότι είχαμε αυτήν τηνπερίπτωση:

#include <omp.h>#include <stdio.h>

#define N 100000int main(){int i, a[N];

a[0]=0;#pragma omp parallel forfor (i=1;i<N;i++)

a[i]= a[i-1]+1;return 0;

}Εδώ ο κώδικας δεν θα λειτουργούσε γιατίκάθε επόμενο στοιχείο του a εξαρτάται απότο προηγούμενο. Άρα για να υπολογιστείτο στοιχείο 50000 στο δεύτερο threadαπαιτείται το 49999 από το πρώτο thread,το οποίο δεν έχει υπολογιστεί ακόμη.

Φυσικά, μπορούμε να ορίσουμεμεταβλητές οι οποίες φαίνονται μόνο μέσασε κάθε thread, σε αντίθεση με το a στοπροηγούμενο παράδειγμα. Στο παρακάτωπαράδειγμα η μεταβλητή th_id είναι ιδιωτική,δηλαδή σε κάθε thread έχει διαφορετικήτιμή. Επίσης, εδώ έχουμε μια barrier,δηλαδή κάθε thread περιμένει μέχρι όλατα υπόλοιπα threads να φτάσουν στο ίδιοσημείο και μετά συνεχίζει την εκτέλεση. Κάτιτέτοιο μπορεί να χρειάζεται όταν δεδομένααπό τα υπόλοιπα threads είναι απαραίτηταγια τη συνέχιση του προγράμματος.#include <omp.h>#include <stdio.h>#include <stdlib.h>

int main (int argc, char *argv[]) {int th_id, nthreads;#pragma omp parallel private(th_id){th_id = omp_get_thread_num();printf("Hello World from thread %d\n",

th_id);

#pragma omp barrierif ( th_id == 0 ) {nthreads = omp_get_num_threads();printf("There are %d threads\n",

nthreads);}

}return EXIT_SUCCESS;

}

Περισσότερες πληροφορίες σχετικάμε προγραμματισμό για shared memoryμπορούν να βρεθούν στους συνδέσμους[7,8,9].

Βιβλιογραφία

1. http://en.wikipedia.org/wiki/Parallel_computing

2. http://en.wikipedia.org/wiki/Amdahl's_law

3. Linux Magazin, Τεύχος 07/10.

4. http://www.top500.org/

5. http://en.wikipedia.org/wiki/CUDA

6. http://en.wikipedia.org/wiki/Distributed_computing

7. http://openmp.org/wp/

8. http://gcc.gnu.org/onlinedocs/libgomp/

9. http://en.wikipedia.org/wiki/OpenMP

19

Page 20: Ubuntistas issue 11 january february march 2011

REVIEW

του Παπαδόπουλου Δημήτρη

SchemeΜια πολύ σύντομη εισαγωγή στο συναρτησιακό προγραμματισμό.

Στον προγραμματισμό υπάρχουνδιάφορες τεχνικές (paradigms στα Αγγλικά),όπως π.χ. δομικός προγραμματισμός,αντικειμενοστραφής προγραμματισμός καισυναρτησιακός προγραμματισμός. Στοσυναρτησιακό προγραμματισμό το βασικόστοιχείο είναι η συνάρτηση. Η ιδέατου συναρτησιακού λογισμού βασίζεταιστην λάμδα ανάλυση, ένα μαθηματικόεργαλείο που αναπτύχθηκε για τη μελέτησυναρτήσεων και αναδρομικών ορισμών.Η πρώτη γλώσσα προγραμματισμούπου βασίστηκε στο συναρτησιακόπρογραμματισμό ήταν η lisp, η οποίαείναι και η δεύτερη αρχαιότερη γλώσσαπρογραμματισμού. Άλλες γλώσσεςσυναρτησιακού προγραμματισμού είναιη scheme (μια από τις διαλέκτους τηςlisp), η haskell, η erlang, η OCaml, καθώςκαι κάποιες οι οποίες περιέχουν στοιχείασυναρτησιακού προγραμματισμού.

Ένα από τα βασικά χαρακτηριστικά τηςlisp και της scheme είναι το prefix nota-tion (προθεματική σημειογραφία). Ενώστις συνήθεις γλώσσες προγραμματισμού οτελεστής είναι μεταξύ των δύο αντικειμένων,για παράδειγμα 1 + 2, σύμφωνα μετο prefix notation αυτό γράφεται + 12. Για να αποφεύγονται παρανοήσειςχρησιμοποιούνται παρενθέσεις (+ 1 2).Επίσης, η scheme είναι interpreted γλώσσα,

οπότε μπορούμε να ανοίξουμε (αφούφυσικά τον εγκαταστήσουμε) τον schemeinterpreter, scsh, και να γράψουμε:

> (+ 1 2)3

O τελεστής εφαρμόζεται σε όλα τα στοιχείαμέσα στην παρένθεση διαδοχικά, δηλαδή:

> (+ 1 2 3)6

H χρήση παρενθέσεων οδηγεί σε μια ωραίαγενίκευση του prefix notation, όπως στοπαράδειγμα:

> (+ (* 3 5) (- 10 6))19

O ορισμός των μεταβλητών στη schemeγίνεται με χρήση του τελεστή define. Π.χ.:

(define size 2)

Αυτή η έκφραση δίνει στη μεταβλητή size τηντιμή 2. Την τιμή της μεταβλητής μπορούμενα την ελέγξουμε πληκτρολογώντας size.

Mε τη χρήση του define μπορούμε ναορίσουμε και συναρτήσεις. Π.χ.:

> (define (square x) (* x x))

Έτσι ορίζεται μια συνάρτηση η οποίαεπιστρέφει το τετράγωνο ενός αριθμού.

> (square 2)4

Για να υπολογίσουμε τον τύπο x2 + y2 θαγράφαμε:

> (define (sum-of-squares x y)(+ (square x) (square y)))

> (sum-of-squares 3 4)25

Απλό και ωραίο, σωστά;Ας υποθέσουμε τώρα ότι θέλουμε να

τυπώσουμε κάτι στην οθόνη. Ας δούμε τοπολυσυζητημένο πρόγραμμα «hello world»:

> (define (hello) (display "hello world")(newline))

> (hello)hello world

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

Βιβλιογραφία

1. http://en.wikipedia.org/wiki/Functional_programming

2. http://en.wikipedia.org/wiki/Scheme_(programming_language)

20

Page 21: Ubuntistas issue 11 january february march 2011

REVIEW

του Παπαδόπουλου Δημήτρη

SympyΣυμβολικά μαθηματικά με την python.

Ποιος είπε ότι η python δεν ενδείκνυταιγια συμβολικά μαθηματικά; Σίγουραυπάρχουν πολλά πακέτα για συμβολικάμαθηματικά, αλλά αν μπορεί κανείςνα συνδυάσει μια σύγχρονη γλώσσαπρογραμματισμού, τις αριθμητικέςδυνατότητες που προσφέρουν τα πακέταnumpy και scipy, και τα συμβολικάμαθηματικά, τότε δε λέει όχι.

Το πακέτο sympy, αφού εγκατασταθεί,μπορεί να χρησιμοποιηθεί μέσα από τηνpython πολύ απλά:

>>>from sympy import *

Tο πρώτο που πρέπει να κάνουμεείναι να ορίσουμε τα σύμβολα που θαχρησιμοποιήσουμε, για παράδειγμα:

>>>x = Symbol('x')

Έπειτα μπορούμε να υπολογίσουμεαναλυτικά όρια συναρτήσεων, π.χ:

>>>limit(sin(pi*x)/x, x, 0)pi

Ακόμη, μπορούμε να ολοκληρώσουμεσυναρτήσεις:

>>>integrate(x + sinh(x), x)(1/2*x**2 + cosh(x)

Ή και να τις παραγωγίσουμε:

>>>diff(_, x)x + sinh(x)Το _ αναφέρεται στο αποτέλεσμα τηςπροηγούμενης πράξης.

Επίσης, μπορούμε να ορίσουμεπίνακες με σύμβολα ως στοιχεία και ναυπολογίσουμε τις ιδιοτιμές του πίνακα. Γιαπαράδειγμα:>>>var('mu')mu>>>M = Matrix(4, 4, lambda i,j: i*j + mu)>>>M[mu mu mu mu ][ ][mu 1+mu 2+mu 3+mu][ ][mu 2+mu 4+mu 6+mu][ ][mu 3+mu 6+mu 9+mu]>>>M.eigenvalues(){7+2*mu+(-80*mu+(14+4*mu)**2)**(1/2)/2: 1,7+2*mu-(-80*mu+(14+4*mu)**2)**(1/2)/2: 1,0: 2}Αλγεβρικές εξισώσεις μπορούν να

επιλυθούν εξίσου απλά. Η 4ου βαθμούεξίσωση x4 − 1 = 0 μπορεί να λυθεί:>>>solve(x**4-1,x)[i, 1, -1, -i]

Όπως βλέπετε, η παραπάνω εξίσωση έχει 2πραγματικές και 2 φανταστικές λύσεις.

Εάν θέλουμε να μεταβούμε από τασυμβολικά μαθηματικά σε αριθμητικάαποτελέσματα, δεν έχουμε παρά νατα υπολογίσουμε. Για παράδειγμα, τοάθροισμα

∑∞1 1/n ∗ ∗n υπολογίζεται

αριθμητικά:

>>>Sum(1/n**n, (n, 1, oo)).evalf()1.29128599706266

Οι δυνατότητες του sympy δενπεριορίζονται σε απλές συναρτήσειςκαι πράξεις, αλλά επεκτείνονται και σεσυναρτήσεις θεωρίας αριθμών, στηνάλγεβρα πολυωνύμων, τον υπολογισμόσειρών, την επίλυση αλγεβρικώνεξισώσεων, τις κατανομές πιθανότητας, τιςδιαφορικές εξισώσεις, κ.α. Παράλληλα με τοsympy έχουν αναπτυχθεί και άλλα πακέταπου βασίζονται στο sympy, π.χ. για χρήσητανυστών. Τέλος, να μη ξεχνάμε ότι τααποτελέσματα μπορούν να αποθηκευτούνκατευθείαν και ως τύποι latex.

Βιβλιογραφία

1. http://code.google.com/p/sympy/

21

Page 22: Ubuntistas issue 11 january february march 2011

TIPS & TRICKS

του Κωστάρα Γιάννη

Χρήσιμα «κόλπα» αναζήτησης που δεν ξέρατεGoogle Search Tips

Πριν από λίγο καιρό έλαβα ένα emailμε «κόλπα» αναζήτησης της μηχανήςGoogle. Ο συγγραφέας του emailδυστυχώς άγνωστος. Το παρακάτω άρθροβασίζεται σ' εκείνο το email, του άγνωστουσυγγραφέα, εμπλουτισμένο με μερικά ακόμα«κόλπα», στον οποίο αφιερώνεται και τονευχαριστούμε.

Η μηχανή αναζήτησης της Google είναιίσως η ισχυρότερη και πιο διαδεδομένηστο διαδίκτυο. Έχει γίνει μάλιστα μέροςτης καθημερινότητάς μας, αφού ακόμακαι για σχετικά απλές απορίες, ερωτήσειςκαι αναζητήσεις στο Google καταφεύγουμεπλέον.

Δεν είναι τυχαίο άλλωστε που η έκφραση«Google it» έχει περάσει ακόμα και σταλεξικά της αμερικανικής και αγγλικήςγλώσσας.

Δείτε λοιπόν μερικά χρήσιμα «κόλπα»που μπορείτε να χρησιμοποιήσετε στηνβασική μηχανή αναζήτησης της Google γιανα έχετε καλύτερα αποτελέσματα.

1. Το πεδίο αναζήτησης είναικαι αριθμομηχανή. Πληκτρολογήστεοποιαδήποτε πράξη με τον ίδιο τρόπο πουθα το κάνατε και στον υπολογιστή σας καιθα δείτε απευθείας το αποτέλεσμα.

Αριθμομηχανή

2.Δοκιμάστε να μετατρέψετε μονάδεςμέτρησης από το ένα σύστημα στο άλλο,πληκτρολογώντας ολογράφως αυτό πουψάχνετε.

Μετατροπή μονάδων μέτρησης

3.Εκτός από μετατροπές μονάδωνμέτρησης, το πεδίο αναζήτησης τουGoogle μπορεί να χρησιμοποιηθεί και γιαμετατροπές νομισμάτων.

Μετατροπή ισοτιμιών νομισμάτων

4.Χρησιμοποιήστε το πεδίο αναζήτησηςως διαδικτυακό λεξικό. Για να βρείτε τονορισμό μιας λέξης, πληκτρολογήστε «de-fine:» και τη λέξη που θέλετε.

Λεξικό

5.Μπορείτε, αν επιθυμείτε, ναπεριορίσετε τα αποτελέσματα τηςαναζήτησής σας σε εκείνα που προκύπτουναπό ένα και μόνο site. Πληκτρολογήστε τηλέξη/φράση που ψάχνετε, αφήστε ένα κενό

22

Page 23: Ubuntistas issue 11 january february march 2011

TIPS & TRICKS

και μετά γράψτε «site:» και το όνομα τουsite.

Περιορισμός αναζήτησης σ' ένα μόνο site

6.Για να δείτε αποτελέσματα αναζήτησηςγια συγκεκριμένη χρονική περίοδο,πληκτρολογήστε το κάτω (Χ) και άνωόριο (Υ) αυτής της χρονικής περιόδουμετά την λέξη/φράση, ως εξής: «Χ..Υ» (ή«numrange:X-Y»).

Αποτελέσματα χρονικής περιόδου

7.Για να βρείτε αποτελέσματα ενόςσυγκεκριμένου τύπου αρχείου (όπως αρχείατύπου PowerPoint, Excel, Word κλπ.)πληκτρολογήστε μετά τη βασική λέξη/φράσηαναζήτησης, «filetype:» ή «ext:» και τοντύπο αρχείου που επιθυμείτε.

Συγκεκριμένος τύπος αρχείου

8.Εάν επιθυμείτε στα αποτελέσματαμιας αναζήτησής σας να μην εμφανίζονταιεκείνα που περιέχουν μια συγκεκριμένηπαράμετρο, τότε μετά τη λέξη/φράση πουαναζητάτε, πληκτρολογήστε το σύμβολοτης αφαίρεσης (-) και την παράμετροπου επιθυμείτε να μην περιληφθείστα αποτελέσματα. Στο παρακάτωπαράδειγμα, βλέπετε μια σύνθετηαναζήτηση για «διαρροή πετρελαίου» χωρίςνα συμπεριλαμβάνονται στα αποτελέσματαόσα αφορούν την εταιρεία ΒΡ.

Αφαίρεση παραμέτρου

9.Αντίστοιχα το σύμβολο της πρόσθεσης

(+) μαζί με την παράμετρο που επιθυμείτενα περιληφθεί στα αποτελέσματα ταξινομείτα αποτελέσματα ανάλογα με τη συχνότηταεμφάνισης της παραμέτρου. Π.χ. στοπαρακάτω παράδειγμα τα αποτελέσματαταξινομούνται ανάλογα με τη συχνότηταεμφάνισης της παραμέτρου ΒΡ στα κείμεναπου επιστρέφονται σε αύξουσα σειρά.

Ταξινόμηση ανάλογα με τη συχνότηταεμφάνισης της παραμέτρου

10.Πληκτρολογώντας το σύμβολο " "πριν από τη λέξη/φράση που αναζητάτε, θαδείτε αποτελέσματα σχετικού περιεχομένουεκτός από τα βασικά αποτελέσματα πουθα έδινε η αναζήτηση. Στο παράδειγμαβλέπετε τα σχετικά αποτελέσματα για τηλέξη "space" (διάστημα), που περιέχοουνσχετικές παραμέτρους όπως "satellite"(δορυφόρος) και "NASA".

23

Page 24: Ubuntistas issue 11 january february march 2011

TIPS & TRICKS

Αποτελέσματα σχετικού περιεχομένου

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

Αποτελέσματα αναζήτησης φράσης

12.Η μηχανή αναζήτησης υποστηρίζειακόμα και χαρακτήρες μπαλαντέρ, όπωςτην τελεία (.) για αντικατάσταση ενόςμόνο χαρακτήρα και το αστεράκι (*) γιααντικατάσταση περισσότερων χαρακτήρων.Επίσης, ο χαρακτήρας | δηλώνει το λογικόΉ.

Χαρακτήρες μπαλαντέρ

13.Αν ψάχνετε κάποια λέξη ή λέξεις στοντίτλο των ιστοσελίδων των αποτελεσμάτωναναζήτησης, τότε χρησιμοποιήστε είτε«intitle:» ακολουθούμενη από μια μόνοπαράμετρο είτε «allintitle:» αν θέλετεπερισσότερες από μια παραμέτρους. Στοπαράδειγμα γίνεται αναζήτηση για τη λέξηJava στον τίτλο των ιστοσελίδων πουεπιστρέφονται ως αποτέλεσμα.

Αναζήτηση στον τίτλο των ιστοσελίδων

14.Αντίστοιχα, υπάρχουν και οι εντολές«inurl:» και «allinurl:» που ψάχνουν τη λέξηή τις λέξεις στο URL των αποτελεσμάτων.

Αναζήτηση στη διεύθυνση των ιστοσελίδων

15.Επίσης υπάρχουν και οι εντολές«inanchor:» και «allintext:» που αναζητούντην παράμετρο στο κείμενο του URL καιστο καθαυτό κείμενο των ιστοσελίδωναποτελεσμάτων.

Αναζήτηση στο κείμενο των ιστοσελίδων

16.Αν θέλετε να δείτε πόσες ιστοσελίδεςαναφέρουν με τη μορφή υπερσυνδέσμουτην ιστοσελίδα σας, χρησιμοποιήστε τηνεντολή «link:».

24

Page 25: Ubuntistas issue 11 january february march 2011

TIPS & TRICKS

Iστοσελίδες που «δείχνουν» σε μιαιστοσελίδα

17.Αν δε θυμάστε όλα τα παραπάνωκόλπα, τότε η Σύνθετη Αναζήτηση τουGoogle σας παρέχει μια σύνθεση φόρμα γιασύνθετες αναζητήσεις.

Σύνθετη αναζήτηση

Στο ακόλουθο σχήμα επιχειρείται μιαεπεξήγηση των παραπάνω.

Επεξήγηση των «κόλπων» αναζήτησης

Καλή αναζήτηση!

Aναφορές:

1. http://www.google.com/intl/el/help/features.html

2. Piotrowski M. (2005), «DangerousGoogle – Searching for Secrets»,hakin9, τεύχος 4/2005.

3. Grala P. (2006), Google™ Search andTools in a Snap, Sams.

4. 100+ Google Tricks That WillSave You Time in School,http://www.onlinecolleges.net

5. Clever Google Tricks Worth Knowing,http://www.marcandangel.com

6. http://programmerworld.net/articles/tips/google.php

(συνέχεια από σελ. 11)

• Gillings M. et al., GIS Guide to GoodPractice, http://ahds.ac.uk:1998.

• Babcock H., Geographic InformationSystems - A Resource Guide For Us-ing GIS as a Tool For Your Data,Tahoe Center for a Sustainable Fu-ture, http://ceres.ca.gov/tcsf/gis.html.

• MapInfo Corporation, MapXtremeGuide, http://www.mapxtreme.com,MapInfo Corporation: 1999.

(συνέχεια από σελ. 16)

Πηγές:

1. Menezes A., van Oorschot P., Van-stone S. (1997), Handbook of AppliedCryptography, CRC Press.

2. Schneier B. (1996), Applied Cryptog-raphy, John Wiley & Sons.

3. Anderson R. (2001), Security Engi-neering, John Wiley & Sons.

4. Stallings W. (2005), Cryptography andNetwork Security, Prentice Hall.

5. Hook D. (2005), Beginning Cryptogra-phy with Java, Wrox.

6. Knudsen J. (1998), Java Cryptogra-phy, O' Reilly.

7. http://el.wikipedia.org/wiki/������������

25

Page 26: Ubuntistas issue 11 january february march 2011

Το ubuntistas σε χρειάζεται*

* στείλε μας το άρθρο σου για το ελεύθερο λογισμικό για να εμφανιστεί στο επόμενο τεύχος του ubuntistas

Ας είναι το ελεύθερο λογισμικό μαζί σου

Αλλά δεν έχω το χρόνο να ασχοληθώ...

Όποιος έχει θέληση, λύση βρίσκει

Και πώς μπορώ να συνεισφέρω;

Άρθρα γράφοντας,εξώφυλλα σχεδιάζοντας,στη σελιδοποίηση βοηθώντας