Τρίτη, Μαΐου 02, 2006

MathML in Blogger

Hi.
As you can probably see, my newly born blog is mainly in Greek. Despite this fact, I intend to keep a HOWTOs category in English, where I will publish information that I guess would be useful to a broader audience. This is the first such post, and it is pertinent to the ability to publish mathematical formulas in a Blogger powered blog.
This was a feature that I missed immediately as my blog will gradually evolve to a reference around anything computational finance. Therefore, inevitably some notation was needed. As I work with Firefox on a Mac, I noticed that MathML code would not be properly rendered. This is due to the fact, at least AFAIK, that Mozilla renders MathML in *.xhtml pages, while Blogger publishes *.html. As we do not have a way to change this, I came upon a solution which is unexpectdly elegant and efficient, ASCIIMathML.
I invite you to visit the site of this project. The interesting thing is that the dynamic nature of the javascript provided, "tricks" Mozilla into properly rendering MathML, even if our page is html. Furthermore, it provides the scientific blogger with an easy and delicate way to type the formulas. I have not looked into the matter further, but I guess that an equivalent script could be written to publish LaTEX formulas.
Oh! and I should not forget to tell you how to install this script. Well you go to the aforementioned site and download ASCIIMathML.js . You should put it online somewhere, I used my pages.google.com account but a nice solution I have recently found is Orbitfiles. Then,
just add the following between your <head> </head> in your template:

<script type="text/javascript" src="/path to your/ASCIIMathML.js"></script>

That is about it. This solution will work under IE with MathPlayer and under Firefox. Ooops, I forgot. In the case of Firefox you also have to download the appropriate fonts.

Ολόκληρο το άρθρο...

Παρασκευή, Απριλίου 28, 2006

teeeest

γεια και πάλι,
για να δούμε αν λειτουργεί:

`x^2+sum_(i=1)^(2x)y(x)=1`

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



Πρώτον, για να λειτουργήσει η λύση στην οποία καταλήξαμε. δηλαδή για να μπορείτε να βλέπετε τους μαθηματικούς τύπους, θα πρέπει να πληρούνται ορισμένες προϋποθέσεις. Ας τις δούμε αυτές.

Στην περίπτωση του Internet Explorer (ποιος τον χρησιμοποιέι ακόμη;), αρκεί αυτό το plugin.
Στην περίπτωση του Firefox , θα πρέπει να κατεβάσετε την τελευταία έκδοση (που παρέχει εγγενή υποστήριξη MathML), αλλά και κάποιες επιπλέον γραμματοσειρές.
Αυτά κατά πάσα περίπτωση αρκούν, αν και δεν τα έχω δοκιμάσει σε πολλές πλατφόρμες.


Από εκεί και πέρα είναι πολύ σημαντικό να αναφερθούμε και στη διαδικασία που ακολουθήσαμε για να καταφέρουμε να προβάλλουμε μαθηματικά στον blogger. Πρέπει να σημειωθεί ότι η δυσκολία του εγχειρήματος δεν έγκειται σε κάποιο θεμελιώδες εμπόδιο, πέρα από το ότι το blogger δεν προσφέρει τρόπο να καθορίσουμε τον MIME τύπο του αρχείου. Συνεπώς, ο Firefox που μπορεί να ανγνωρίσει MathML μόνο σε αρχεία τύπου *.xhtml δε θα παρουσιάσει τα μαθηματικά, ακόμη κι αν βρούμε έναν τρόπο να βάλουμε άμεσα MathML στον επεξεργαστή (editor) html που προσφέρεται.
Κάθε εμπόδιο για καλό. Έτσι καταλήξαμε στο ASCIIMathML. Αυτό το τρομερό πρόγραμμα μας έλυσε το πρόβλημα απροσδόκητα, προσφέροντας παράλληλα έναν πολύ ελκυστικό τρόπο εισαγωγής των τύπων. Για την ακρίβεια τον πιο ελκυστικό που έχω δεί μέχρι τώρα.
Σας προσκαλλώ να διαβάσετε λίγο το site του προγράμματος. Δίνει οδηγίες χρήσης και είναι πολύ κατατοπιστικό. Αν το διαβάσετε, θα δείτε ότι αρκεί να κατεβάσετε τον javascript κώδικα που προσφέρει. Στη συνέχεια, αποθηκεύστε το σε κάποιο σημείο όπου θα μπορείτε να έχετε πρόσβαση στο αρχείο με ένα URL. Μπορείτε ας πούμε να ρίξετε μια ματιά στο Orbitfiles για ένα μέρος να αποθηκεύετε αρχεία online, ή αν έχετε πρόσβαση στη λύση του google για δημοσίευση ιστοσελίδων (αυτή είναι η λύση που προτίμησα).
Στη συνέχεια, πηγαίνετε στη σελίδα επεξεργασίας του template και προσθέστε την παρακάτω γραμμή ανάμεσα στο <head> </head>.

<script type="text/javascript" src="ASCIIMathML.js"></script>

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


Ολόκληρο το άρθρο...

μαθηματικά

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

Ολόκληρο το άρθρο...

Πέμπτη, Απριλίου 20, 2006

εγκαθιστώντας τον πύθωνα

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

Τα εργαλεία αυτά είναι δύο:
  1. Numpy (numerical python), το οποίο είναι ο πηρύνας του
  2. SciPy (Scientific Tools for Python)
Συνήθως οι οδηγίες εγκατάστασης είναι επαρκείς. Δυστυχώς, δε μπορώ να δοκιμάζω την εγκατάσταση σε διαφορετικές συνθέσεις συστημάτων. Η δική μου σύνθεση είναι η εξής:

Apple iBook G4 1Ghz
Mac OS X 10.4.6

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

Ολόκληρο το άρθρο...

Τετάρτη, Απριλίου 19, 2006

Τα πρωτοβρόχια

Άρχισα να γράφω ένα κεφάλαιο και θυμήθηκα ένα θεμελειώδες πρόβλημα που είχα αντιμετωπίσει και παλιότερα. Πιο συγκεκριμένα, το internet δεν είναι ιδιαίτερα φιλικό με τους μαθηματικούς τύπους. Έχω μια υποψία για μια πιθανή λύση ( MathML για όσους θέλουν να το ψάξουν). Μέχρι όμως να γίνει κάτι τέτοιο θα πρέπει να συμβιβαστούμε κάπως. Κατέληξα, μετά από δύο τσαντισμένους καφέδες και κάμποσα τσιγάρα, στην εξής απόφαση.
Κάθε δημοσίευση θα έχει διττή φύση. Έτσι στο διαδίκτυο θα δημοσιεύονται οι τύποι με ASCII χαρακτήρες κι όσο το δυνατόν πιο κοντά στη de facto παρουσίαση από τις γλώσσες προγραμματισμού. Παράλληλα, θα έχω και μια δημοσίευση σε *.pdf ώστε να είναι πιο ευκολοδιάβαστο. Έτσι θα είναι πιο εύκολο και το βασικό μας αντικείμενο, να δείξουμε δηλαδή την “προγραμματιστική” προσέγγιση αντιμετώπισης των προβλημάτων.
Παρεμπιπτόντως, και μια που αγγίξαμε αυτό το θέμα, με προβλημάτισε επίσης η επιλογή γλώσσας προγραμματισμού στην οποία θα δίνονται τα παραδείγματα. Εδώ είχα το εξής δίλλημα. Από τη μία η C++ έχει καθεστώς standard στην πρακτική των χρηματοοικονομικών σχεδόν παντού. Από την άλλη δεν είναι η ιδανικότερη γλώσσα για να μάθει κάποιος προγραμματισμό. Επίσης, η αγαπημένη μου γλώσσα, η Lisp μπορεί να “κακομάθει” τον αρχάριο, αλλά και να τον απογοητεύσει εκεί που δεν υπάρχουν προχωρημένες βιβλιοθήκες. Είναι σίγουρο ότι μελλοντικά η Lisp θα είναι η γλώσσα επιλογής στην διαδικασία του να ξαναγράψουμε τα πάντα πιο καθαρά. Προς το παρόν, ωστόσο, τείνω σε μια γλώσσα που δε γνωρίζω τόσο καλά. Κι αυτή είναι η Python.
Δεν είμαστε όμως καθόλου απόλυτοι. Ο σωστός προγραμματιστής επιλέγει τα εργαλεία του ανάλογα με τη δουλειά που έχει να κάνει. Έτσι, όπου χρειάζεται ένα λογιστικό φύλλο, θα το χρησιμοποιήσουμε. Επίσης, όταν προχωρήσουμε τόσο ώστε να μας ενδιαφέρει η επίδοση του κώδικα θα στραφούμε και στη C++. Μπορεί όλα αυτά να περιπλέξουν την κατάσταση για κάποιον αρχάριο. Εντούτοις, θα κάνουμε ότι μπορούμε για να συνδυάσουμε όλα τα εργαλεία με τρόπο που να δείχνει σε κάθε περίπτωση το συγκριτικό τους πλεονέκτημα και τον τρόπο με τον οποίο η γνώση του ενός βοηθά στην κατανόηση του άλλου.

Ολόκληρο το άρθρο...

Χρηματοοικονομικοί υπολογισμοί : μια εισαγωγή

Υπάρχουν πολλοί λόγοι για τους οποίους θα μπορούσε κάποιος να ξεκινήσει αυτό το εγχείρημα. Δεν ξέρω αν θα υπάρξουν αντίστοιχα πολλοί για να το συνεχίσω, όμως η αρχή είναι το ήμισυ του παντός, οπότε ας ξεκινήσουμε...
Πρώτον, τί είναι αυτό το εγχείρημα;

Η απάντηση δεν είναι τόσο απλή, αλλά άς δούμε λίγο τον τίτλο του. Βαρετός, άρα υποδηλώνει μια επιστημονικότητα. Θα μπορούσε να είναι πιο χαλαρός, αλλά μάλλον δεν είχα όρεξη την ώρα που τον αποφάσισα. Πάντως δεν είναι σκοπός μου να γράψω με επιστημονικό ή σοβαρό τρόπο. Εντούτοις το θέμα είναι επιστημονικό. Απασχολεί πολλά από τα σημαντικότερα ερευνητικά κέντρα στον τομέα της χρηματοοικονομικής. Είναι επίσης πολύ πρακτικό, καθώς πραγματεύεται την εφαρμογή των θεωρητικών αποτελεσμάτων σε πραγματικά δεδομένα. Όχι ότι δε μπορεί η εφαρμογή να γίνει χωρίς τη χρήση υπολογιστών, απλά αυτό θα ήταν ασύμφορο από άποψης χρόνου και εν μέρει χαζό, αφού θα χάναμε χρόνο σε κάτι που οι υπολογιστές είναι πολύ καλύτεροι από εμάς. Εδώ θα μπορούσα να κάνω τη διάκριση ανάμεσα σε θεωρία πληροφορικής και υπολογιστές. Αλλά ας το αφήσω για ένα μελλοντικό άρθρο, όπου δεν θα έχω όρεξη για κάτι δυσκολότερο.
Δεύτερον, σε ποιον απευθύνεται;
Αυτή είναι μια de facto εισαγωγή σε κάθε σοβαρό βιβλίο, αλλά στη δική μας περίπτωση και καθώς η μορφή του εγχειρήματος είναι ηλεκτρονική ας αφήσουμε τον καθένα να δεί κατα πόσο κάποιο άρθρο του χρησιμεύει. Φαντάζομαι πάντως ότι κάτα κύριο λόγο το βασικό κοινό θα είναι φοιτητές χρηματοοικονομικής ή οικονομικών. Οποιοσδήποτε άλλος, στο χώρο θα έπρεπε να ξέρει τα πιο πολλά από όσα γράφουμε.
Τρίτον, γιατί το γράφω;
Σε σύνδεση με το τελευταίο, θα πρέπει να θυμηθώ κι εγώ τα πιο πολλά από όσα γράφω. Οπότε επ'ευκαιρίας γιατί να μη μοιραστώ τη διαδικασία της επανάληψης μου; Άλλωστε, ο καλύτερος τρόπος να καταλάβεις κάτι είναι να προσπαθήσεις να το εξηγήσεις σε κάποιον άλλο. Αντίστοιχα, περιμένω ερωτήσεις που θα με βοηθήσουν να αντιληφθώ καλύτερα λεπτομέρειες στις οποίες δεν έχω αναφερθεί.
Αυτά για εισαγωγή. Δε γράφω παραπάνω, γιατί συνήθως την πατάω έτσι. Το θέμα είναι στο περιεχόμενο. Υπόσχομαι να γράψω μια καλύτερη εισαγωγή αν φτάσει το περιεχόμενο να είναι τέτοιο που να τη χρειάζεται.

Ξεκινάμε;

Ολόκληρο το άρθρο...