Coder.gr

Coder.gr

 Στείλτε αυτό το άρ8ρο με ηλεκτρονικό ταχυδρομείο Δείτε το κείμενο προς εκτύπωση 

Μετατροπή Greeklish σε Ελληνικά

CODER.gr ToolsΤον τελευταίο καιρό μια υπηρεσία μετατροπής Greeklish σε Ελληνικά βρίσκεται σε ανάπτυξη. Η διαφορά της με τις άλλες παρόμοιες υπηρεσίες είναι οτι διατίθεται σαν API. Το οποίο μπορεί ο καθένας να χρησιμοποιήσει σε διάφορες εφαρμογές του ή/και ιστοσελίδες-Φόρουμ.

Μπορείτε να πάτε εδώ: http://www.qoolsoft.gr όπου αφού κάνετε εγγραφή μπορείτε να προσθέσετε λέξεις στο ήδη υπάρχον λεξικό ώστε να το εμπλουτίσετε. Η χρήση της υπηρεσίας απο την άλλη είναι εντελώς free και δεν απαιτείται εγγραφή. Το μόνο που ζητάμε είναι ενα backlink προς την σελίδα της QoolSoft.gr

 Στείλτε αυτό το άρ8ρο με ηλεκτρονικό ταχυδρομείο Δείτε το κείμενο προς εκτύπωση 

SPIM: A MIPS SIMULATOR - Μέρος 4

CODER.gr Tools[Το παρόν άρθρο γράφτηκε από τον χρήστη ^^^elf^^^]

Τελειώνοντας

Προχωρημένα Θέματα με τον MIPS

Περιφερειακά:

* Πώς «βλέπει» ο επεξεργαστής τους καταχωρητές των περιφερειακών συσκευών;

- Χρησιμοποιεί ξεχωριστό δίαυλο επικοινωνίας (I/O bus) για τα περιφερειακά από αυτόν που έχει για την μνήμη.
- Το κάθε περιφερειακό έχει την δική του διεύθυνση στον εξειδικευμένο δίαυλο αυτό.
- Ειδικές εντολές μεταφέρουν δεδομένα μεταξύ καταχωρητών του επεξεργαστή και των περιφερειακών.

* Επιπλέον κόστος για καλώδια, εντολές, κλπ.

- Χρησιμοποιεί το δίαυλο (bus) επικοινωνίας και τις διευθύνσεις που έχει για την μνήμη (Memory Μaped I/O)

Memory Maped I/O

* Κάποιες από τις διευθύνσεις της μνήμης χρησιμοποιούνται για τις περιφερειακές συσκευές:

- Ο χώρος διευθύνσεων του MIPS είναι 232 . Ένα μικρό κομμάτι αυτού του χώρου διατίθεται για να «βλέπει» ο επεξεργαστής τους καταχωρητές των περιφερειακών συσκευών.
- Η ανάγνωση και εγγραφή από/προς τους καταχωρητές των συσκευών και του επεξεργαστή γίνεται με απλές εντολές lw/sw.
- Απλούστερο, και πιο συνηθισμένο.
 Στείλτε αυτό το άρ8ρο με ηλεκτρονικό ταχυδρομείο Δείτε το κείμενο προς εκτύπωση 

SPIM: A MIPS SIMULATOR - Μέρος 3

CODER.gr Tools[Το παρόν άρθρο γράφτηκε από τον χρήστη ^^^elf^^^]

Περιοχές εντολών και δεδομένων

Ο συμβολομεταφραστής διακρίνει δύο περιοχές μνήμης, την περιοχή του προγράμματος (που ονομάζεται text), και την περιοχή δεδομένων (που ονομάζεται data). Όταν μεταφράζει ένα πρόγραμμα, ο συμβολομεταφραστής τοποθετεί δεδομένα στην περιοχή δεδομένων, και εντολές στην περιοχή προγράμματος. Γιατί όμως να διαχωρίζουμε τις εντολές από τα δεδομένα; Είναι λογικό να περιμένουμε οτι κατά την εκτέλεση ενός προγράμματος τα δεδομένα αλλάζουν, ενώ το πρόγραμμα παραμένει σταθερό. Επειδή όμως ένα λανθασμένο πρόγραμμα μπορεί να γράψει σε λανθασμένες διευθύνσεις, είναι πιθανό να «πανωγράψει» θέσεις μνήμης που αποθηκεύουν εντολές, με αποτέλεσμα η συμπεριφορά του προγράμματος να είναι απρόβλεπτη!

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

SPIM: A MIPS SIMULATOR - Μέρος 2

CODER.gr Tools[Το παρόν άρθρο γράφτηκε από τον χρήστη ^^^elf^^^]

Παρουσίαση των εντολών και των ψευδοεντολων του SPIM.

Ψευδοεντολές Assembly MIPS

Ψευδοεντολές είναι εντολές που μπορούν να συνθεθούν εύκολα με λίγες (1-2 συνήθως) πραγματικές εντολές. Οι ψευδοεντολές απλοποιούν την ζωή του προγραμματιστή ή κάνουν το πρόγραμμα πιό εκφραστικό και ευκολονόητο.

Παραδείγματα

* Ψευδοεντολή move: αντιγράφει τον ένα καταχωρητή σε έναν άλλο. Υλοποιείται από τον συμβολομεταφραστή με μια addu rd, rs, 0.

* Ψευδοεντολή li (load immediate): φόρτώνει ένα καταχωρητή με μια σταθερή μέχρι 32 bits: li $2, Immediate. Εάν η σταθερή χωράει σε 16 bits, η li μεταφράζεται από τον συμβολομεταφραστή σε ori. Εάν η σταθερή χρειάζεται πάνω από 16 bits, η li μεταφράζεται σε δύο εντολές: μια lui για τα περισσότερο σημαντικά 16 bits και μια ori για τα λιγότερο σημαντικά 16 bits.

Όταν ο συμβολομεταφραστής χρειάζεται ένα προσωρινό καταχωρητή για να κρατήσει ενδιάμεσες τιμές για μιά ψευδοεντολή, χρησιμοποιεί τον καταχωρητή $1 ($at = Assembler Temporary)
 Στείλτε αυτό το άρ8ρο με ηλεκτρονικό ταχυδρομείο Δείτε το κείμενο προς εκτύπωση 

SPIM: A MIPS SIMULATOR - Μέρος 1

CODER.gr Tools[Το παρόν άρθρο γράφτηκε από τον χρήστη ^^^elf^^^]

Επεξήγηση της εφαρμογής

Εγκατάσταση

WINDOWS

Η εγκατάσταση στο περιβάλλον των Windows είναι ιδιαίτερα εύκολη. Αφού ο χρήστης κατεβάσει το zip αρχείο που περιέχει μέσα την έκδοση του SPIM για Windows, από την ηλεκτρονική διεύθυνση http://www.cs.wisc.edu/~larus/SPIM/pcspim.zip ή την προμηθευτεί από οπουδήποτε αλλού, απλά πρέπει να αποσυμπιέσει όλα τα περιεχόμενα του αρχείου zip σε έναν φάκελο και να εκτελέσει το αρχείο setup.exe. Στην συνέχεια μέσω των πλαισίων διαλόγων των Windows καθοδηγείται για την ολοκλήρωση της εγκατάστασης.

UNIX και LINUX

Όπως αναφέρθηκε προηγουμένως η έκδοση του SPIM για UNIX/LINUX υπάρχει μόνο σε μορφή πηγαίου κώδικα έτσι η εγκατάσταση δεν είναι τόσο απλή όπως στην έκδοση των Windows.
 Στείλτε αυτό το άρ8ρο με ηλεκτρονικό ταχυδρομείο Δείτε το κείμενο προς εκτύπωση 

SPIM: A MIPS SIMULATOR - Η αρχή...

CODER.gr Tools[Το παρόν άρθρο γράφτηκε από τον χρήστη ^^^elf^^^]

(Θα ακολουθήσει μια πλήρη σειρά 4 μερών για όλα όσα πρέπει κάποιος να ξέρει σχετικά, ενώ το πρώτο μέρος θα εμφανιστεί άμεσα).

Εισαγωγή στον SPIM, τον προσομοιωτή του επεξεργαστή MIPS R2000/R3000

Το πρόγραμμα SPIM κατασκευάστηκε στο Πανεπιστήμιο Wisconsin-Madison από τον τότε καθηγητή James Larus ο οποίος σήμερα έχει την θέση του Senior Researcher στο τμήμα ερευνών της Microsoft (σύμφωνα με το άρθρο).

Το πρόγραμμα SPIM είναι ένας προσομοιωτής ο οποίος τρέχει προγράμματα τα οποία έχουν γραφτεί σε συμβολική γλώσσα για τον επεξεργαστή MIPS R2000/R3000. Έχει έναν απλό debugger και ένα μικρό σύνολο από τις παροχές ενός λειτουργικού συστήματος. Τέλος ο SPIM εκτελεί εντολές μόνο πηγαίου κώδικα (source code) και όχι δυαδικά μεταφρασμένα προγράμματα.

Ο SPIM εκτελεί σχεδόν όλο το σύνολο των εντολών του επεξεργαστή MIPS R2000/R3000 (παραλείπονται μόνο μερικές πολύπλοκες εντολές σύγκρισης τιμών κινητής υποδιαστολής και εντολές που αναφέρονται στην διαχείριση του συστήματος διαχείρισης πινάκων μνήμης). Επίσης λόγω της εξέλιξης του επεξεργαστή MIPS (πλέον είναι 64bit επεξεργαστής και όχι 32bit που ήταν όταν ξεκίνησε ο σχεδιασμός του SPIM) δεν μπορεί να τρέξει προγράμματα που έχουν γραφτεί για τα σημερινά μοντέλα του επεξεργαστή MIPS ή του SGI ούτε δέχεται μερικές ντιρεκτίβες που χρησιμοποιούν σύγχρονοι συμβολομεταφραστές για αυτούς τους επεξεργαστές. Αυτές όμως μπορούμε να τις διαγράψουμε από τον κώδικα.

Τον προσομοιωτή SPIM, στην έκδοση 6.5 όπου βρίσκεται σήμερα, μπορεί να προμηθευτεί οποιοσδήποτε ενδιαφέρεται εντελώς δωρεάν είτε σε εκτελέσιμη μορφή είτε σε μορφή κώδικα γραμμένο φυσικά σε γλώσσα προγραμματισμού C από την ηλεκτρονική διεύθυνση http://www.cs.wisc.edu/~larus/spim.html για τα λειτουργικά συστήματα DOS WINDOWS και LINUX/UNIX (υπάρχει μόνο ο πηγαίος κώδικας). Για το λειτουργικό σύστημα MACINTOSH δεν υπάρχει κάποια έκδοση αλλά μπορεί να γίνει compile η έκδοση του XSPIM (η έκδοση με γραφικό περιβάλλον για το LINUX ) και να τρέξει στο MAC OS X.

 Στείλτε αυτό το άρ8ρο με ηλεκτρονικό ταχυδρομείο Δείτε το κείμενο προς εκτύπωση 

Έναρξη του Coghead (Οπτική δημιουργία εφαρμογών)

CODER.gr Tools(Πρωτότυπο άρθρο στα αγγλικά: "Coghead Goes Live: Build Applications Visually" από Nik Cubrilovic, TechCrunch - http://www.techcrunch.com/2006/10/11/coghead-goes-live-build-applications-visually/ - μεταφέρεται τμήμα του με τους σχετικούς όρους στα αγγλικά ενώ το πλήρες άρθρο παραμένει στην σύνδεση που δίνεται)

Ο τομέας του online application building είναι ένας αυξανόμενου ενδιαφέροντος χώρος. Έχοντας προηγουμένως ερευνήσει (TechCrunch) έναν αριθμό εφαρμογών σε αυτό τον χώρο (μερικές φορές αναφέρονται σαν 'Online access' space, σαν αναφορά στην Microsoft Access) περιλαμβάνοντας σε αυτές τις Dabble DB, Zoho Creator και WyaWorks, το ενδιαφέρον σε αυτές τις εφαρμογές είναι ότι επιτρέπουν σε μη προγραμματιστές να δημιουργήσουν εύκολα record-driven web-based εφαρμογές.

(Σήμερα) μια νέα είσοδος στον χώρο είναι το Coghead το οποίο ανακοίνωσε την διαθεσιμοτητά του visual app building service. To Coghead υπόσχεται πολλά όπως και οι άλλες εφαρμογές - την δυνατότητα εύκολης δημιουργίας, πρόσβασης και διαθεσης εφαρμογών. Η πρωταρχική χρήση τέτοιων προιόντων είναι η δημιουργία εμπορικών εφαρμογών που δραστηριοποιούνται από τον εντοπισμό εργασιών μέχρι αγορές και παραγγελίες. To CogHead έρχεται με ένα σετ από 'εφαρμογές εκκίνησης' όπως ένα απλό CRM, έναν καταγραφέα εργασιών και διαχείριση προσλήψεων. Αυτά τα αρχικά πρότυπα μπορούν να τροποποιηθούν επιπλέον από τον χρήστη ώστε να καλυφθούν οι συγκεκριμένες ανάγκες του.
 Στείλτε αυτό το άρ8ρο με ηλεκτρονικό ταχυδρομείο Δείτε το κείμενο προς εκτύπωση 

Τα νέα downloads

CODER.gr ToolsΤρία αρκετά καλά εργαλεία μπορείτε να βρείτε διαθέσιμα στη περιοχή των downloads, αρχικά λοιπόν από τον XRTC έχουμε ένα πολύ ωραίο πακετάκι με πληροφορίες για τα αρχεία τύπου Excel. Ειδικότερα διαβάζουμε στη περιγραφή "Class File για VB6. Δημιουργεί αρχείο Excel. Πρόσθεσα και ένα pdf από το Open Office που αναλύει το format. Βρέθηκε κάπου στο δίκτυο πριν καιρό... αλλά ευτυχώς αναγράφεται μέσα το site προέλευσης!".
 Στείλτε αυτό το άρ8ρο με ηλεκτρονικό ταχυδρομείο Δείτε το κείμενο προς εκτύπωση 

Θέλω να κάνω browse ανώνυμα μπορώ;

CODER.gr ToolsΌσοι απο εμάς δουλεύουμε σε εταιρείες έχουμε βρεθεί να βρισκόμαστε πίσω απο κάποιο proxy ο οποίος δεν μας επιτρέπει να μπούμε σε ιστοχώρους που μας ενδιαφέρουν (πχ gamasutra.com, slashdot κτλπ). Αναζητώντας στο διαδίκτυο τρόπους ώστε να μπορείτε να βρείτε CGI proxies για να κάνετε τη δουλειά σας κάπου διάβασα τι πρέπει να βάλετε στα κριτήρια αναζήτησης ωστε να σας επιστραφούν τέτοια διαθέσιμα proxy.
 Στείλτε αυτό το άρ8ρο με ηλεκτρονικό ταχυδρομείο Δείτε το κείμενο προς εκτύπωση 

Hot Spot

CODER.gr ToolsΜπορεί οι μυημένοι σε βάσεις δεδομένων και οι τεχνικοί να γνωρίζουν αυτόν τον όρο αλλά για όλους τους υπολοίπους είναι άγνωστος. Το Hot Spot είναι ένα 'μέρος' στο σκληρό μας δίσκο που με την πάροδο του χρόνου παθαίνει 'φυσική φθορά' λόγω υπερβολικής χρήσης του. Τώρα θα μου πείτε πως γίνεται αυτό; Μπορώ να σας το εξηγήσω με ένα πολύ απλό παράδειγμα.