Music for everyone...

Friday 26 November 2010

For those about to flex...

Προσπαθώντας να λύσω ασκήσεις στους compilers χρειάστηκε όπως πολλοί άλλοι, να μάθω flex. Οι περισσότεροι λογικά θα έχουν ιδέα του περί τίνος πρόκειται αλλά είμαι σίγουρος ότι όσοι δεν είχαν την άσκηση 8, μάλλον δεν έμαθαν και πολλά για αυτό. Επειδή λοιπόν εγώ είμαι ένας από αυτούς που είχαν την 8, είπα να γράψω 2-3 γενικά πράγματα για να καταλάβουν όλοι τι είναι.
Πρώτα από όλα πρέπει να το κατεβάσουμε από εδώ για linux και από εδώ για windows(εκτελείται μέσω cygwin, γι αυτό καλύτερα είναι δουλέψουμε μέσω linux).
Αφού είμαστε σίγουροι οτι η εγκατάσταση του έγινε σωστά(μπορείτε να το βρείτε και μέσω του paskage manager στο ubuntu), τότε μπορούμε να αρχίσουμε να δουλεύουμε.
Το flex είναι ένα μεταεργαλείο στο οποίο περιγράφουμε με ένα εύκολο πακέτο εντολών τον λεκτικό αναλυτή μας και το αυτό αναλαμβάνει την ευθύνη να τον κατασκευάσει έτσι ώστε:
  1. Nα είναι σωστός στο compile(μιάς και είναι δύσκολο να συντάξουμε ΛΑ από μόνοι μας σε c#),
  2. Να είναι γρήγορος ο ΛΑ μας(το flex παράγει αρκετά γρήγορους ΛΑ από μόνο του) και
  3. Να είναι εύκολη η αποσφαλμάτωση του
Ξεκινάμε γράφοντας το αρχείο π.χ. test.l το οποίο περιέχει τους κανόνες που θα διαβάσει το flex για να δημιουργήσει τον ΛΑ(οδηγίες για τη σύνταξη μπορείτε να βρείτε στο site του μαθήματος όπως και στο site του flex.)



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




Ορίστε και ένα παράδειγμα!


Αφού συντάξουμε το κείμενο αυτό το τρέχουμε με το flex πηγαίνοντας στο φάκελο που βρίσκεται αυτό και πληκτρολογώντας "flex test.l". Άν δεν βγάλει κάτι πάει να πεί ότι όλα πήγαν καλά έως εδώ, διαφορετικά κάναμε κάποιο λάθος.
Στη συνέχεια το flex θα παράγει το αρχείο "lex.yy.c" το οποίο είναι και ο ΛΑ μας, έτσι τον κάνουμε compile με τον gcc ώς εξής: "gcc -lbf lex.yy.c" , για να δούμε αν έχει σφάλματα. Άν δέν έχει τότε είμαστε έτοιμοι να τον τρέξουμε και να δούμε τι αποτελέσματα δίνει για κάθε είσοδο, αλλιώς πρέπει να γυρίσουμε στον κώδικα του test.l που γράψαμε πρίν και να δούμε τι κάναμε λάθος. Είναι αρκετά δύσκολη διαδικασία γι αυτό και δεν ασχολούνται αρκετοί συνάδελφοι.
Άν αποφασίσετε να ασχοληθείτε να ξέρετε ότι μπορείτε να βρείτε σημαντικές πληροφορίες και μέσα στο βιβλίο, καλό διάβασμα!

Friday 19 November 2010

Διακοπή ρεύματος και το pc μου!

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

Στοιχεία:
1)Δέν ξεκινάει κάν, ούτε σκληρός ακούγεται, ούτε ανεμιστηράκια...
2)Ήχος από το speaker κανένας...

Υπόθεση: Ή κάηκε η μητρική ή το τροφοδοτικό
Για το 1ο έχουμε 60 ευρώ χαμένα και περίπου 5-6 ώρες χαμένες.
Για το 2ο έχουμε 50 ευρώ χαμένα και περίπου μισή ώρα χαμένη.

Υπόθεση2: Μας συμφέρει το 2ο!

Στοιχεία:
3)Το λαμπάκι στη μητρική ανάβει...

Υπόθεση: Άγιο είχαμε, δεν κάηκε...άρα πάμε για τροφοδοτικό.

Το παίρνω απόφαση, και αρχίζω να ψάχνω τροφοδοτικά στο ίντερνετ, και όπως είμαι έτοιμος να παραγγείλω ένα 600 watt και δε συμμαζεύεται...ξαφνικά σκέφτομαι, δεν κάνω και ένα clear CMOS να είμαι σίγουρος;

  • Το CMOS είναι το τσιπάκι που έχει πάνω η μητρική μας και είναι το πρώτο κύκλωμα που τρέχει το πισι μόλις ανοίξει, αυτό περιέχει το Bios, τρέχει το P.O.S.T. και έχει όλες τις απαραίτητες πληροφορίες και επιλογές σχετικά με τα boot κ.λ.π. οι οποίες είναι απαραίτητες για να φορτώσει το πισι το λειτουργικό. Όταν κάνουμε clear CMOS απλά φορτώνουμε σε αυτό το τσιπάκι τις default επιλογές της motherboard μέσω του hardware μιάς και ο υπολογιστής μας δεν ξεκινάει.

  • Μετακινώ το jumper του CMOS (που βρίσκεται δίπλά/κάτω/πάνω από τη μπαταρία) μία θέση δεξιά(ανατρέξτε στο manual της μητρικής σας πρίν το επιχειρήσετε), και ενεργοποιώ το pc (δεν ανοίγει το πισι όταν το έχουμε εκεί το jumper), μετά το ξαναβάζω στην αρχική του θέση και το ενεργοποιώ πάλι.
Ξαφνικά ο υπολογιστής αποκρίνεται, όλα δουλεύουν ρολόι και 50 ευρώ εμφανίζονται από το πουθενά στη τσέπη μου(3 σε 1, τι wash&go και μ$$$$$)!!!

Τι έμαθα:
1)Πάντα κάνε clear CMOS όταν δεν ανοίγει ο υπολογιστής, πριν κάνεις οτιδήποτε άλλο!
2)Πάρε ένα καλό UPS!

Tuesday 16 November 2010

Υπολογισμός συναρτήσεων με το Wolfram Alpha

Διαβάζοντας για τα Σήματα τον τελευταίο καιρό μου δημιουργήθηκε η ανάγκη εύρεσης ενός υπολογιστικού/μαθηματικού εργαλείου το οποίο θα υπολογίζει συναρτήσεις, μετασχηματισμούς και πολλά άλλα.
Η πρώτη μου σκέψη ήταν να τα κάνω στο Matlab ή στο Mathematica, αλλά διαπίστωσα πως δεν είχα τις κατάλληλες γνώσεις για να χρησιμοποιήσω όλα τα εργαλεία του Matlab(πόσο μάλλον του Mathematica) και επιπλέον το Μatlab είναι αρκετά "βαρύ" σαν πρόγραμμα με αποτέλεσμα το pc να χτυπάει υπερωρίες. Ψάχνοντας στον γούγλη για κάποιο online πρόγραμμα, βρήκα το Wolfram Alpha, το οποίο είναι μια μηχανή αναζήτησης (όπως το Google) αλλά ειδικεύεται στα μαθηματικά(μιάς και η Wolfram είναι η εταιρία που κάνει το Mathematica).

To site αυτό είναι κάτι παραπάνω από εύχρηστο μιάς και τα περισσότερα πράγματα που ήθελα να κάνω τα βρήκα μέσα σε λίγα λεπτά χωρίς να χρειάζεται να θυμάμαι συναρτήσεις και κώδικες. Για παράδειγμα ήθελα να βρώ τον μετασχηματισμό Fourier μίας συνάρτησης και έγραψα απλά "fourier transform f(x)" όπου f(x) η συνάρτηση που ήθελα, με έκπληξη είδα οτι η μηχανή κατάλαβε τι ήθελα και μου εμφάνισε τον μετασχηματισμό καθώς επίσης και τη γραφική του παράσταση!!!

Στη συνέχεια το χρησιμοποίησα για να δώ τις γραφικές συναρτήσεις κάποιον σημάτων(Σημείωση: η βηματική συνάρτηση είναι θ(t) και όχι u(t) και η δέλτα δ(t)) καθώς επίσης και για εύρεση θεωρημάτων(π.χ. το θεώρημα του Euler).



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

Sunday 14 November 2010

Remote connection με Ultra VNC


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

Ένας φίλος μου πρότεινε να χρησιμοποιήσω το Ultra Vnc το οποίο είναι ένα πρόγραμμα που επιτρέπει να συνδεθείς σε έναν απομακρυσμένο υπολογιστή μέσω internet. Έτσι πήρα τηλέφωνο στον αδερφό μου και του εξήγησα πως να κατεβάσει το Ultra Vnc από εδώ και να το εγκαταστήσει στον υπολογιστή στο σπίτι μου(να σημειώσω πως θα έπαιρνε περισσότερη ώρα να βρεί ο αδερφός μου την εργασία στον υπολογιστή μου μιάς και είναι αχούρι). Επιπλέον του εξήγησα πως πρέπει κατά την εγκατάσταση να επιλέξει εκεί που λέει server, μιάς και ο υπολογιστής στο σπίτι μου θα ήταν ο server και ο υπολογιστής στο σπίτι του φίλου μου ο viewer. Μετά θα έπρεπε να πάει στις επιλογές και να αλλάξει τον κωδικό επιβεβαίωσης του UVNC σε κάποιο κοινό γνωστό και τέλος να βρεί την ip του server (με ipconfig στο command prompt,ευτυχώς αυτό ήξερε να το κάνει...) και να μου την πεί για να κάνω την σύνδεση.

Όταν είχα όλες τις πληροφορίες που χρειαζόμουν, καθώς και το Ultra Vnc εγκατεστημένο και στα 2 pc(σαν viewer στου φίλου μου και σαν server στον δικό μου) άνοιξα το UltraVNC Viewer από τον υπολογιστή του φίλου μου, πληκτρολόγησα την ip διεύθυνση πάνω εκεί που λέει VNC Server και πάτησα Connect. Μετά μου ζήτησε τον κοινό κωδικό που άλλαξα παραπάνω και σε μισό λεπτό είχα ανοιγμένο το desktop του υπολογιστή μου μπροστά στην οθόνη του φίλου μου.

Το UVNC είναι ένα πολύ καλό εργαλείο που μπορεί να σε βγάλει από πολύ δύσκολη θέση, αλλά άν δεν ξεχνούσα το φλασάκι μάλλον θα αγνοούσα ακόμη την παρουσία του.
Ηθικό δίδαγμα: Οι ξεχασιάρηδες βρίσκουν περισσότερα μαθησιακά γεγονότα!!!



Σημειώσεις για το UVNC: Για να γίνει η εγκατάσταση του προγράμματος πρέπει να έχουν δικαιώματα administrator(για προφανής λόγους) και επιπλέον όταν το τρέξουμε θα πρέπει να το έχουμε προσθέσει στις εξαιρέσεις όλων των firewall μας(αρκετοί έχουν πάνω από ένα).

Tuesday 9 November 2010

Circuit Simulator για Ηλεκτρονική και Κυκλώματα!

Ψάχνοντας για εξομοιωτή κυκλωμάτων για τα μαθήματα της Ανάλυσης Κυκλωμάτων και την Ηλεκτρονική χρησιμοποίησα ουκ ω λίγα προγράμματα. Μέσα σε αυτά ήταν το Pspice, το οποίο είναι αρκετά περίπλοκο και χρειάζεται ενασχόληση για να το μάθει κάποιος αλλά και το Qucs που πρότεινε συμφοιτητής σε μαθησιακό γεγονός, το οποίο είναι πολύ καλό και εύκολο αρκετά. Μία εναλλακτική λύση είναι εξομοιωτής κυκλωμάτων στο web με java. Ένας αρκετά καλός που βρήκα είναι εδώ.



  1. Για να σβήσουμε το default κύκλωμα που βγάζει το applet απλά το επιλέγουμε όλο και κάνουμε δεξί κλίκ->cut.
  2. Στη συνέχεια προσθέτουμε components με δεξί κλίκ, π.χ. άν θέλω να προσθέσω μία αντίσταση πατάω δεξί κλίκ->add resistor και μετά με drug & drop τη σχηματίζω πάνω στο κύκλωμα.
  3. Άν θέλω να τροποποιήσω την αντίσταση που έβαλα ή άλλο component πατάω δεξί κλίκ πάνω της/του και επιλέγω edit.
  4. Με το add wire συνδέω τα components με καλώδιο και όταν έχω πλέον σχεδιάσει το κύκλωμά μου, πατάω stopped και μετά reset για να μηδενίσει το ρολόι.
  5. Το προγράμματα κάτω μας δίνει τις τιμές ρεύματος και τάσης στους κόμβους(με δεξί κλίκ->view in scope ή απλά περνώντας το κέρσορα πάνω από το component) αλλά και τη ροή του ρεύματος πάνω στο κύκλωμα με πολύ ωραίο τρόπο.
Το προτείνω σε όλους όσους ψάχνουν να βρούνε μία γρήγορη λύση σε κάποιο πρόβλημά τους στα παραπάνω μαθήματα, καθώς και σε όλους όσους ψάχνουν να λύσουν μία απορία τους, π.χ άν θέλω να δώ πώς συμπεριφέρεται ένας πυκνωτής με είσοδο πηγή σταθερής τάσης. Aκολουθεί και το screencast, άν δεν φαίνεται ο player ακολουθείστε το link από κάτω για να το δείτε στο youtube!

 
Ή στο youtube, εδώ!


Monday 8 November 2010

Μετάφραση κειμένων

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

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

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

Wednesday 3 November 2010

Hiren's Boot Cd

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


  1. Αρχικά πρέπει να το κατεβάσουμε από εδώ ,είναι free.
  2. Αφού το κατεβάσουμε, το κάνουμε extract και το γράφουμε σε ένα cd.
  3. Κάνουμε επανεκκίνηση στον υπολογιστή μας και φροντίζουμε να έχουμε το cd μέσα στο drive πρίν αυτός ξεκινήσει.
  4. Άν κάνει μόνο του boot, τότε είμαστε έτοιμοι να χρησιμοποιήσουμε όλα τα προγράμματα του boot cd. Άν όμως όχι, τότε κάνουμε πάλι επανεκκίνηση και πατάμε το DEL για να μπεί ο υπολογιστής μας στο bios. Όταν μπεί πάμε σε όποια καρτέλα λέει boot properties και στη σειρά που κάνουν boot τα μέσα του υπολογιστή μας επιλέγουμε 1ο το CD/DVD-Drive και 2ο το σκληρο δίσκο. Κάνουμε save και ξανά reboot. 
  5. Τώρα το Hirens boot cd θα ανοίξει και θα εμφανιστούν όλα τα διαθέσιμα εργαλεία του. Σιγουρευτείτε πως ξέρετε τι κάνετε και άν δεν γνωρίζετε ζητήστε βοήθεια από κάποιον ειδικό.
  6. Μία αναλυτική λίστα με τα εργαλεία του Hirens Boot CD βρίσκεται εδω!

Monday 1 November 2010

Ειδοποιήσεις για τα προγράμματά σας με το Grawl!

Είναι πολλά εκείνα τα προγράμματα που σας ενημερώνουν με ειδοποιήσεις για διάφορα γεγονότα που χρειάζονται την προσοχή σας. Το μειονέκτημα όμως είναι πως για να δούμε αυτές τις ειδοποιήσεις πρέπει να είναι ανοιχτά. Το Grawl εν ολίγοις φροντίζει να μας δείχνει όλα αυτά τα γεγονότα συγκεντρωμένα και χωρίς να ανοίξουμε το αντίστοιχο πρόγραμμα. Αυτό σημαίνει πως μπορούμε να είμαστε ενημερωμένοι για όλα μας τα προγράμματα αλλά και το facebook η RSS feeds.



  1. Κατεβάζουμε το Grawl από το http://www.growlforwindows.com  και το κάνουμε εγκατάσταση .

  2. Όταν τελειώσει η εγκατάσταση, το ανοίγουμε και φροντίζουμε να εκκινεί παράλληλα με τα Windows για να είναι αποτελεσματικό. Αυτό γίνεται πατόντας δεξί κλίκ κάτω αριστερά στην μπάρα εργασίας και open grawl, μετά στην καρτέλα general επιλέγουμε το κουτάκι που λέει "automaticaly start grawl at login". 

  3. To grawl συνεργάζεται με πολλές εφαρμογές, μία λίστα από τις οποίες βρίσκεται εδώ. Κάποιες εφαρμογές ήδη γνωρίζουν για το grawl ενώ για άλλες πρέπει να εγκαταστήσετε  κάποιες επεκτάσεις για να το αναγνωρίζουν και να του στέλνουν πληροφορίες. Έστω ότι θέλω να επικοινωνεί το grawl με το Windows Media Player, η διαδικασία που θα ακολουθήσω θα είναι η εξής: Στην παραπάνω σελίδα κάντε κλίκ στο Download Media Player Plugin και αποθηκεύστε το αρχείο κάπου. 

  4. Όταν κατεβεί το εγκαθιστούμε και μετά πάμε στο grawl, στη καρτέλα applications αφού ανοίξουμε τον WMP για να αναγνωρίσει το plugin από μόνος του. Το WMP-GNTP θα έχει εμφανιστεί εκεί και έτσι μπορούμε να διαλέξουμε πότε θέλουμε να ειδοποιούμαστε από το WMP και με ποιό τρόπο. Μπορούμε να κάνουμε το ίδιο για πολλές ακόμη εφαρμογές όπως το μtorrent ή το facebook ή RSS Feeds με τον ίδιο ακριβώς τρόπο όπως το WMP.

  5. Όταν τελειώσουμε με τις εφαρμογές που θα επικοινωνούν με το grawl, μπορούμε να κάνουμε το grawl να επικοινωνεί με το smartphone μας ή iphone, έτσι ώστε να μας τις στέλνει στο κινητό μας ανά πάσα στιγμή, λόγω της πολυπλοκότητας του ίσως γίνει σε κάποιο άλλο μαθησιακό γεγονός.

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