Πέμπτη 25 Νοεμβρίου 2010

Τι πραγματικά κάνει το Disk defragmentation

Πέρασε αρκετός καιρός απο τότε που έκανα τελευταία φορά τον υπολογιστή μου format, με αποτέλεσμα να σέρνεται λόγο υπερφόρτωσης στον σκληρό δίσκο. Έτσι αποφάσισα να χρησιμοποιήσω το Disk Defragmenter το οποίο γενικά κάνει μια αναδιοργάνωση των αρχείων που βρίσκονται σε αυτόν.
Πιο συγκεκριμένα, έστω ότι έχουμε την μνήμη του σκληρού δίσκου χωρισμένη σε bloks στην οποία έχουμε αποθηκευμένα δεδομένα και προγράμματα. Για να χρησιμοποιήσουμε ένα παράδειγμα, ας εξετάσουμε την πιο κάτω εικόνα.


Στην αρχική περίπτωση (1) έχουμε τα δεδομένα A,B,C,D,E και τον υπόλοιπο χώρο στην μνήμη μας ο οποίος είναι άδειος. Εάν το αρχείο Β διαγραφεί (2) , τότε ο χώρος τον οποίο κατείχε τώρα έχει σημειωθεί ώς άδειος. Μία ιδέα θα ήταν όλα τα αρχεία μετά το Β, να μετακινηθούν προς τα αριστερά ώστε να συμπληρωθεί ο καινός χώρος. Αυτό όμως θα ήταν πολύ επίπονο για τον υπολογιστή ο οποίος έχει να χειριστεί χιλιάδες αρχεία. Έτσι, αυτό που γίνεται είναι ο χώρος αυτός να συμπληρωθεί αργότερα με δεδομένα όπως το F και G (3)(4). Τι συμβαίνει όμως όταν το G δεν χωράει ολόκληρο αρχικά στον ελεύθερο χώρο ανάμεσα σε F και C; Ή ακόμα και αν χωράει, τι θα γίνει αν το G πρέπει να επεκταθεί; Λύση υπάρχει! (5) Ένα μέρος του θα τοποθετηθεί στον άδειο χώρο μετα το E το οποίο θα δεικτοδοτείται απο το πρώτο μέρος του G που βρίσκεται ανάμεσα σε F και C.

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

                                                                 (Before Defragment) 
                                           
                                                                    (After Defragment)





Αρκετοί απο εμάς γνωρίζουν εντελώς επιφανειακά οτι συγκεκριμένα εργαλεία μας περέχουν ένα αποτέλεσμα, χωρίς να έχουν συνειδητοποιήσει τον τρόπο ή καλύτερα τη λογική στην οποία στηρίζεται το εργαλείο αυτό για να δώσει τη λύση. Δηλάδη, για να αναφερθώ στο συγκεκριμένο παράδειγμα, ίσως κάποιοι να γνωρίζουν ότι κάνει τον υπολογιστή να λειτουργεί γρηγορότερα αλλά να μην γνωρίζουν γιατί συμβαίνει αυτό μετά το Disk Defragmentation. Είναι καλό, για εργαλεία τα οποία χρησιμοποιούμε να γνωρίζουμε σε ένα βαθμό την λογική στην οποία στηρίζονται, γιατί έτσι αντιλαμβανόμαστε τουλάχιστο σε επιφανειακό επίπεδο πώς αξιοποιούνται τα hardware parts του υπολογιστή μας.

Κυριακή 21 Νοεμβρίου 2010

Microsoft Word : Κείμενο σε μορφή εξισώσεων

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

 10                      Ν 
  Ι(χ^5)dx           Σ(χ^5)
-10                     χ=0

Όταν έχεις να γράψεις μεγάλη εξίσωση αυτό είναι πολύ βαρετό! Τυχαία σήμερα καθόμουν στο σπίτι ενός φίλου ο οποίος έπρεπε να παραδόσει ενα Word αρχείο με κείμενο της μορφής 10*x^5 και με ρώτησε εαν γνώριζα πως να το κάνω σε κανονική μορφή εξίσωσης. Εγώ φυσικά δεν ήξερα αλλά είπα να αφιερώσω 2-3 λεπτά για να βοηθήσω. Η πρώτη μου σκέψη ήταν να πάω στο menu Insert όπου και το μάτι μου πήρε στα δεξιά τα συμβολικά γράμματα π και Ω. Κάτω απο το π υπήρχε η  λέξη Equation και λέω εδώ είμαστε. Πάτησα πάνω και είδα πως υπήρχαν αρχικά κάποιες γνωστές εξισώσεις και κάτω κάτω Instert new equation . Κάπου εκεί λύσαμε και το πρόβλημα.
Πραγματικά είναι κάτι πολύ χρήσιμο όταν ασχολείσαι με κείμενο τύπου εξισώσεων. Θα ήθελα να υπήρχε τέτοια εφαρμογή και στο MSN ή σε άλλη εφαρμογή Chat αλλά μέχρι στιγμής δεν έχω βρεί κάτι. Το καλό είναι πως είμαστε προγραμματιστές!

Ένα σχετικό video με ένα απλό παράδειγμα:
http://www.youtube.com/watch?v=5y8o8ewScK8

Εδώ και πολλά χρόνια, ενώ είχα αυτό το πρόβλημα ποτέ δεν μπήκα στον κόπο να ψάξω κάποια λύση, γιατί έστω και βασανιστικά έκανα τη περιγραφή που ήθελα. Για δική μου τύχη προσφέρθηκα να βοηθήσω ένα φίλο σε ένα πολύ απλό πρόβλημα. Απλό γιατί, ήμουν 100% σίγουρος πως υπάρχει σχετική εμαφρογή στο Word, αλλά πάντοτε το αγνοούσα και "αρνιόμουν" να το μάθω. Ηθικό δίδαγμα?
Βοηθάτε αλλήλους :) Κάτι έχουμε να μάθουμε όλοι μας.

Πέμπτη 18 Νοεμβρίου 2010

Uniform Server : Απλή και χρήσιμη εφαρμογή για local host server

Στα πλαίσια του μαθήματος Ανάπτυξη και Σχεδίαση Λογισμικού, ήρθα για πρώτη φορά αντιμέτωπος με το θέμα σχεδιασμού ιστοσελίδας. Για να μπορέσω να πάρω μια ιδέα για το πώς σχεδιάζεται μια ιστοσελίδα, βρήκα ένα βιβλίο σχετικό με την PhP γλώσσα, το οποίο ξεκίνησα να διαβάζω. Το πρώτο πράγμα που πρέπει να κάνεις για να ξεκινήσεις την διαδικασία δημιουργίας ιστοσελίδας, είναι η εγκατάσταση μιας εφαρμογής, η οποία βασικά δημιουργεί ένα εικονικό Server(Local Host), όπου θα είναι αποθηκευμένα τα .php αρχεία που αποτελούν τη συνολική εφαρμογή της ιστοσελίδας. Προσπάθησα να ακολουθήσω κατα βήμα τις οδηγίες για το πώς να εγκαταστήσω τα δύο απαιτούμενα προγράμματα, τον Apache Server και MySQL server. Για κακή μου τύχη, παρουσιάστηκαν κάποια προβλήματα τα οποία δεν σχολιάζονταν στις οδηγίες και δεν μπόρεσα να συνεχίσω. Αν και υπήρχε εναλλακτική εφαρμογή, επι μέρες προσπαθούσα να βρώ λύση στο πρόβλημα, αλλά τίποτα. Έτσι αναγκαστικά έπρεπε να ακολουθήσω την εναλλακτική επιλογή, η οποία αναφερόταν σε μια εφαρμογή, Uniform Server,η οποία παρείχε τόσο τον Apache όσο και τον MySQL server μαζί.
Είναι μια πολύ απλή εφαρμογή, η οποία εκτός των άλλων είναι και portable (δηλαδή δεν απαιτεί εγκατάσταση). Πιο κάτω παρουσιάζεται πως λειτουργεί και πώς πρέπει να χρησιμοποιηθεί ο Uniform Server ώστε ένας "πρωτάρης" να ξεκινήσει να προγραματίζει την δική του ιστοσελίδα.

1. Επιλέξτε το UniController.exe 


2. Όπως βλέπετε, μπορείτε να επιλέξετε Start Apache,Start MySQL. Εναλλακτικά μπορείτε να επιλέξετε Start All ώστε να ενεργοποιηθούν και τα δύο. O Z Drive είναι ένας εικονικός δίσκος ο οποίος αναπαριστά το χώρο δεδομένων του εικονικού Server. Αφού επιλέξετε Start All ο Apache και MySQL Server θα ενεργοποιηθούν (τα κόκκινα τετραγωνάκια θα γίνουν πράσινα)


3. Στο My Computer θα διαπιστώσετε πως έχει δημιουργηθεί ο εικονικός Δισκος Ζ:/ .


4. Επιλέξτε τον Δίσκο Ζ και όπως θα δείτε μέσα υπάρχουν διάφορα αρχεία. Στο φάκελο " www "
μπορείτε να δημιουργήσετε ένα φάκελο με το όνομα του project σας (στην περίπτωση αυτή eCommerceProject) και να τοποθετήσετε μέσα σε αυτόν τα αρχεία .php που απαρτίζουν την ιστοσελίδα σας.



5. Στον browser που χρησιμοποιείτε(πχ Firefox)  δώστε την διεύθυνση http://localhost/project_name
όπου project_name είναι το όνομα φακέλου που περιέχει τα .php αρχεία. Στα Windows7, αντί localhost χρησιμοποιήστε το ip 127.0.0.1 . Δηλαδή, στην συγκεκριμένη περίπτωση
http://127.0.0.1/eCommerceProject/ . Αυτό, θα κατεβάσει απο τον Server το αρχείο
Z:/www/eCommerceProject/index.php και θα το εμφανίσει στον browser.



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

Δευτέρα 15 Νοεμβρίου 2010

Μέθοδος για αναγνώριση θύρας(port) που χρησιμοποιείται απο κάθε διεργασία

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


Σε τέτοιες περιπτώσεις, υπάρχουν δύο εναλλακτικές λύσεις. Η μία απο αυτές είναι να αλλάξουμε το Port Number που χρησιμοποιείται απο το δεύτερο πρόγραμμα ώστε να διαφέρει απο αυτό του άλλου που ήδη τρέχει (πχ. Εδώ ο MySQL server προσπαθεί να τρέξει στο Port 3306 το οποίο χρησιμοποιείται απο άλλη διεργασία). Αυτό, σε μερικά προγραμματα όπως είναι το Skype είναι εύκολο να γίνει, πηγαίνοντας στα Options του προγράματος και στο πεδίο Use Port βάζουμε ένα διαφορετικό αριθμό.
Σε πιο πολύπλοκα προγράμματα όπως είναι ο MySQL server, πολλές φορές δεν είναι και τόσο απλό να αλλάξουμε το Port Number που χρησιμοποιούν. Έτσι μπορούμε να ακολουθήσουμε μια εναλλακτική διαδικασία για να επιλύσουμε το πρόβλημα.
Αν και εδώ στο Error Message λέει πως το Port 3306 χρησιμοποιείται, δεν διευκρινίζει ποιά διεργασία το χρησιμοποιεί. Αυτό που παρουσιάζεται στο πιο κάτω video  είναι πως μπορούμε να βρούμε, ποια διεργασία χρησιμοποιεί το συγκεκριμένο Port 3306 ώστε να την τερματίσουμε και να μπορέσουμε να τρέξουμε τον MySQL server.
video link :   http://www.youtube.com/watch?v=w2DFbI2sJ-E

Αυτό είναι ένα απο τα πολλά προβλήματα για τα οποία ο πιο εύκολος τρόπος να βρείς άμεση λύση είναι χρησιμοποιώντας το google. Εναλλακτική θα ήταν να βρείς το manual του προγράμματος και να ανακαλύψεις απο μόνος σου την λύση. Εδώ μπαίνει στο θέμα μας ο τρόπος με τον οποίο αντιμετωπίζουμε το πρόβλημα. Αρχικά έψαξα για "how to change port number of MySQL server". Μόλις είδα πως η λύση αυτή ήταν πολύπλοκη, είπα να δοκιμάσω εναλλακτική λύση. Αφού ήξερα ποιο Port ήταν σε χρήση, το μόνο που έμενε ήταν να βρώ ποια διεργασία το χρησιμοποιεί. Επομένως έψαξα για  "How to determine which program is using a given port" το οποίο μου επέστρεψε μια λύση την οποία θεωρούσα ευκολότερη να εφαρμόσω. Αυτό έπραξα και έδωσα λύση στο πρόβλημα.
Φυσικά, αργότερα, απο περιέργεια και μόνο δοκίμασα και την άλλη λύση η οποία δούλευε, αλλά μου πήρε αρκετό χρόνο.
Το μάθημα που πήρα ήταν, όταν παρουσιάζεται ένα πρόβλημα, εάν μια λύση που βρίσκεται αρχικά θεωρείται πολύπλοκη, να ψάχνουμε για κάποια εναλλακτική(πιο γενική). Εάν βρεθεί και είναι ευκολότερη, καλό είναι να ακολουθούμε αυτή. Δηλαδή, είναι ευκολότερο να τερματίσεις μια εφαρμογή που χρησιμοποιεί το ίδιο Port Number με μια άλλη, παρά να ψάχνεις κάθε φορά πώς να αλλάξεις το Port Number συγκεκριμένης εφαρμογής.
 

Κυριακή 14 Νοεμβρίου 2010

Xcas: Μια απο τις ιδιαιτερότητες του

Πάνε μέρες που έχω υλοποιήσει ένα αλγόριθμο στο Xcas (μαθηματικό εργαλείο με το οποίο ασχολούμαστε στο μάθημα Υπολογιστικής Άλγεβρας) αλλά δεν μπόρεσα να βρώ το πρόβλημα (bug) που είχε, μέχρι απόψε. Ενώ ο αλγόριθμος έτρεχε κανονικά για μικρό αριθμό επαναλήψεων (πχ 500 ), για μεγαλύτερο αριθμό το πρόγραμμα έμπαινε σε Not Responding mode και τερμάτιζε αυτόματα. Έψαχνα για αρκετή ώρα  στον κώδικα για να βρώ που μπορεί να είναι το λάθος, κάνοντας print τα ενδιάμεσα αποτελέσματα, return(Lists) κλπ. Όλα δούλευαν όπως έπρεπε, εκτός απο την συνάρτηση nuage_points(List) η οποία παίρνει σαν όρισμα μια List και εκτυπώνει σε γραφική τα σημεία (x,y) που εμπεριέχει η λίστα αυτή. Λέω εδώ είναι το πρόβλημα! Δεν μπορούσα όμως να κάνω κάτι σχετικά με αυτό ,έτσι σκέφτηκα να χρησιμοποιήσω μια εναλλακτική συνάρτηση, η οποία ενεργοποιεί τα pixels της οθόνης στη γραφική παράσταση,δίνοντας σαν όρισμα το σημείο pixel (pixon(x,y) ). Τρέχοντας το πρόγραμμα μου προέκυψε ένα κατεβατό απο warnings τα οποία, όλα αναφέρονταν σε μια ανάθεση η οποία αφορούσε μια πράξη με την σταθερά pi. Εκεί, χωρίς δεύτερη σκέψη κατάλαβα ότι έψαχνα σε λάθος σημείο. Πήγα και αντικατέστησα όπου pi =3.14159265359 και προσπάθησα να τρέξω ξανά το πρόγραμμα. Το αποτέλεσμα; Το πρόβλημα είχε λυθεί!
Δεν έχω καταλάβει ακριβώς ποιο ήταν το πρόβλημα, αλλά αυτό που μπορώ να σκεφτώ είναι πως το Xcas αντιμετώπιζε δυσκολία στο να κάνει πράξεις με την σταθερά pi ενώ με την προσεγγιστική τιμή του δεν υπήρχε κανένα απολύτως πρόβλημα.
Χρησιμοποιώντας διάφορα εργαλεία προγραμματισμού μπορούμε να διαπιστώσουμε τις ιδιαιτερότητες του καθενός. Συγκρίνοντας με την C, τέτοιες σταθερές δηλώνονται ως #define pi 3.1415
και έτσι χρησιμοποιείται το pi σαν ο αριθμός 3.1415. Αντιθέτως, στο Xcas to pi είναι δεσμευμένη λέξη και αντιστοιχίζεται σε αυτή κατευθείαν η τιμή της(συμβολική ή πραγματική). Το παράδοξο έιναι πως, επειδή το Xcas χρησιμοποιεί διαφορετικούς τρόπους επίλυσης πράξεων, μπορεί να προκύψουν "προβλήματα" όπως το πιο πάνω.

(στην εικόνα πιο κάτω φαίνονται οι δύο διαφορετικές μορφές που αναπαριστάται το pi )


Μετά απο αρκετή ώρα σπαζοκεφαλίας, κατάλαβα πως ειδικά στον προγραμματισμό, ένα "λάθος" μπορεί να είναι πολύ καλά κρυμμένο. Ενώ αλλού φαινόταν αρχικά να υπάρχει το πρόβλημα, αλλού βρέθηκε. Η ανακάλυψη του βέβαια έγινε με λίγη δόση τύχης αλλά και επιμονής. Αν δεν χρησιμοποιούσα την εναλλακτική επιλογή ( pixon() ), το πιο πιθανό είναι πως ακόμα θα έψαχνα. Χρησιμοποιώντας εναλλακτικές επιλόγές για debugging είναι πολύ ευκολότερο να καταλήξουμε στο σφάλμα (το λογικό και όχι το συντακτικό) γιατί κάθε μέθοδος αποκαλύπτει το "πρόβλημα",εάν υπάρχει, απο διαφορετική οπτική γωνία.

Πέμπτη 11 Νοεμβρίου 2010

Προβολή αρχείου .docx χωρίς την χρήση Microsoft Office 2007

Ένα πρόβλημα που έχω ξανα παρατηρήσει αλλά δεν μπήκα ποτέ στο κόπο να ασχολήθω γιατί δεν με αφορούσε άμεσα εκείνη τη στιγμή, είναι η αδυναμία προβολής .docx αρχείων με εκδόσεις Microsoft Office πριν απο το 2007.
Χθές έπρεπε να στείλω ένα .docx αρχείο σε ένα φίλο ο οποίος δεν διαθέτει τα Office 2007. Σαφώς θα μπορούσα προηγουμένως να το αποθηκεύσω ως .doc και να μην υπάρχει τέτοιο πρόβλημα. Για δική μου τύχη, το αρχείο το είχα στείλει στο gmail.  Το αρχείο αφού κατέβηκε, δεν μπορούσε να γίνει open . Κατα λάθος, το παιδί πρόσεξε πως μέσω του gmail , μπορείς να κάνεις προβολή .docx αρχείων χωρίς να έχεις εγκατεστημένο το Office2007. Έτσι έμαθα και εγώ πως υπάρχει αυτή η δυνατότητα.
Το έψαξα λίγο αργότερα περισσότερο και βρήκα πως υπάρχει και το google docs όπου μπορείς να ανεβάσεις αρχεία, έστω .docx τα οποία μπορείς να τα διαβάσεις απο εκεί.

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

Δευτέρα 8 Νοεμβρίου 2010

Windows can speak!

Έτυχε μια μέρα καθώς καθόμασταν παρέα στο σπίτι να ακούσω τον υπολογιστή να μιλά! Λέω κάποιος θα πειραματίζεται και πηγαίνω προς τον υπολογιστή. Καθόταν ένα παιδί απο την παρέα και ό,τι έδινε σαν input σε μία ιστοσελίδα, ακουγόταν απο το ηχεία. Έβαζε κατι biiib biiib και το μόνο που κάναμε ήταν να γελάμε. Κανείς δεν είχε δώσει σημασία σε πιο site πειραματιζόταν.
Τυχαία διάβαζα ψες για διάφορες λειτουργείες που παρέχουν τα windows, που ως συνήθως δεν γνωρίζουμε.( Προσωπικά δεν ασχολούμε περισσότερο  απο ο,τι χρειαζομαι για να φέρω εις πέρας αυτό που θέλω να κάνω την συγκεκριμένη στιγμή). Ούτως παραδόξως, έπεσε στο μάτι μου "make your pc to speak" και λόγω του γεγονότως που είχε συμβεί, πήγα κατευθείαν να το διαβάσω.

Είναι υπερβολικά εύκολο να γίνει ακολουθώντας τα πιο κάτω βήματα
1. Δημιουργήστε ένα νεό αρχείο .txt και copy-paste μέσα σε αυτό το πιο κάτω κείμενο

Dim message, sapi
message=InputBox("What do you want me to say?","Speak to Me")
Set sapi=CreateObject("sapi.spvoice")
sapi.Speak message




2.Κάντε save as.. το αρχείο αυτό με το όνομα speak.vbs



3. Ανοίξτε το αρχείο speak.vbs που μόλις δημιουργήσατε και γράψτε το κείμενο που θέλετε να ακούσετε. Επιλέξτε  ΟΚ.


Όσο και αν φαίνεται παράξενο κάποια πράγματα που ξεκινούν απο αστείο μπορεί να καταλήξουν σε γεγονότα μάθησης.Αν δεν τύγχαινε το γεγονός εκείνο το βράδυ,δηλαδή να καθήσουμε και να γελάσουμε με τον υπολογιστή που μιλούσε,το "make your pc to speak" είμαι σίγουρος πως θα το προσπερνούσα. Αν και εδώ το γεγονός μάθησης δεν είναι απο μόνο του σημαντικό μπορεί και μή ενδιαφέρον,έχω καταλάβει πώς και τα καθημερινά αστεία μπορεί να μας οδηγήσουν στην γνώση.