Mar 30, 2006

Ελληνικός Διορθωτής στο Linux


Όλα τα κείμενα που παρουσιάζονται σε αυτήν την σελίδα έχουν παραχθεί από τον editor του Mozilla 1.7.10 που διατίθεται ενσωματωμένος στο RedHat ES3 Update 6. Μια εύλογη απορία είναι το πως γίνεται η ορθογραφική τους διόρθωση πριν τη δημοσίευσή τους σε αυτή τη σελίδα.
Γι αυτό το λόγο γίνεται χρήση του εργαλείου aspell, το οποίο μπορείτε να κατεβάσετε, μαζί με πληθώρα λεξικών (ανάμεσα τους κ το ελληνικό) από τον δικτυακό τόπο: ftp://ftp.gnu.org/gnu/aspell. Σε αυτό το σημείο αξίζει να αναφερθεί πως το RedHat ES3 U6, έρχεται με την έκδοση aspell-033. Η αναβάθμιση στο aspell-050 είναι αναγκαία για την ορθή χρήση των λεξικών.
Αφότου έχει εγκατασταθεί το aspell καθώς και το ελληνικό λεξικό μπορούμε να ξεκινήσουμε την διόρθωση κειμένου. Για παράδειγμα, τις σελίδες HTML που παράγω τις διορθώνω ως εξής:

aspell --lang=el -H -c input.html


Το aspell είναι ένα παντοδύναμο εργαλείο που σας επιτρέπει να διορθώνετε αρχεία κειμένου, HTML και TeX, με πολλές πλούσιες δυνατότητες. Είναι φανταστικό!

Mar 27, 2006

Πρώτες εντυπώσεις από τον SQL Developer

Την προηγούμενη εβδομάδα παρουσιάστηκε στο ΟΤΝ η production release του SQL Developer (SQLDev από εδώ κ στο εξής) Πρόκειται για το άρτι αφιχθέν πρόγραμμα που σκοπό έχει να διευκολύνει τον SQL προγραμματισμό στη Βάση Δεδομένων της Oracle, τοποθετώντας ανταγωνιστικά τον ευάτο του σε σχέση με άλλα δημοφιλή προγράμματα τρίτων κατασκευαστών, όπως TOAD (της Quest) PL/SQL Developer (της Allround Automations)
Ίσως κάποιος να θυμάται την εκκίνηση αυτής της προσπάθειας κάπου στον Σεπτέμβριο ή Οκτώβριο με το όνομα Raptor. H αλήθεια είναι πως εκείνη η έκδοση ήταν αρκετά πτωχή σε λειτουργίες, αποτελώντας στην ουσία εξαγωγή των Database δυνατοτήτων του JDeveloper, σε μια αυτόνομη εφαρμογή. Τα καλά νέα είναι πως φαίνεται πως έχει κυλίσει πολύ νερό στο αυλάκι και πιά o SQLDev έχει εμπλουτιστεί με πολλές ενδιαφέρουσες λειτουργίες, πολλές περισσότερες από το περιβάλλον του JDeveloper, γεγονός που πια τον διακρίνει.

Μια πρώτη γνωριμία
Το περιβάλλον εργασίας του SQL Developer είναι βασισμένο στο User Interface του JDeveloper. Αυτό σημαίνει πως είναι διαιρεμένο σε κάποιες βασικές περιοχές:
Στα αριστερά υπάρχει μια μπάρα πλοήγησης στα στοιχεία της βάσης δεδομένωνΤο κεντρικό παράθυρο μας επιτρέπει να βλέπουμε τα περιεχόμενα των στοιχείων της βάσης δεδομένων που έχουμε διαλέξει από την μπάρα πλοήγησηςΣτο κάτω μέρος υπάρχει το πλαίσιο εμφάνισης μηνυμάτωνΤέλος στα αριστερά είναι διαθέσιμη μια παλέτα εντολών για την επεξεργασία των στοιχείων του κεντρικού παραθύρου.


Η μόνη απαίτηση που έχει η εγκατάσταση είναι η ύπαρξη ενός JRE 1.5, καθότι ο SQLDev είναι μια Java εφαρμογή. Προκειμένου να ξεκινήσουμε να εργαζόμαστε, μπορούμε να δημιουργήσουμε μια καινούργια σύνδεση με μια βάση δεδομένων, χρησιμοποιώντας είτε ένα TNS name, είτε καταθέτωντας απευθείας τα στοιχεία του JDBC.

Μέσα από την κονσόλα μπορούμε να αντλήσουμε πληροφορία σχετικά με τα στοιχεία που περιλαμβάνει η σύνδεση που έχουμε δημιουργήσει όπως tables, views, indexes, packages, synonyms κοκ. Παράλληλα κάνοντας δεξί click πάνω στη σύνδεσή μας και επιλέγοντας Open SQL Worksheet μπορούμε να καταθέσουμε τις SQL εντολές μας. Μερικά από τα πιο ενδιαφέροντα στοιχεία σε αυτό το σημείο είναι:

  • Υπάρχει η δυνατότητα auto-completion για τα αντικείμενα της Βάσης
  • Η δυνατότητα να έχουμε ανοικτά πολλαπλά παράθυρα (editors) για τις SQL εντολές μας. Αντίθετα, μέχρι και την έκδοση JDeveloper 10.1.3 μπορούμε να έχουμε μόνο ένα ανοικτό SQL Worksheet.

  • Στο αριστερό πλαίσιο έχουμε στη διάθεσή μας μια παλέτα με διαθέσιμες SQL functions που μπορούμε να ενσωματώσουμε στα προγράμματα μας

  • Τα αποτελέσματα ενός query είναι δυνατόν να εξαχθούν σε διάφορα formats (CSV, XML, INSERTS, LOADER, TEXT)

  • Είναι δυνατόν να κάνουμε ταυτόχρονα το browsing πολλαπλών χρηστών

  • Φυσικά και μπορούμε να κάνουμε compile και debug οποιοδήποτε κώδικα

Συμπεράσματα
O SQL Developer μου άφησε πολύ καλές εντυπώσεις, επεκτείνοντας τις δυνατότητες του JDeveloper. Σίγουρα προς το παρόν δεν είναι αρκετός για να αντικαταστήσει state-of-the-art εργαλεία όπως για παράδειγμα ο TOAD. Ωστόσο, είναι δηλωτικός της σημασίας που δίνει η Oracle για την κάλυψη του κενού στα εργαλεία ανάπτυξης για SQL. Αποτελεί πια για εμένα κομμάτι του περιβάλλοντος ανάπτυξης που έχω δημιουργήσει στο Linux.

Mar 22, 2006

ADF JSF - Διαχείριση Παραμετροποιημένων Όψεων (Parameterized Views)

Η έκδοση 10.1.3 του JDeveloper προσφέρει προηγμένες δυνατότητες διαχείρισης παραμετροποιημένων όψεων (parameterized views) των ADF BC. Το θέμα που θα μας απασχολήσει σε αυτό το άρθρο είναι η εμφάνιση παραμετροποιημένων όψεων σε μια σελίδα JSF, χωρίς να είναι απαραίτητη η κατάθεση από το User Interface των παραμέτρων της, αλλά με τρόπο δηλωτικό κατά την σχεδίαση της ίδιας της σελίδας.

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



Η δημιουργία της παραμέτρου ακολουθεί.

Η ενσωμάτωση της παραμετροποιημένης όψης σε μια σελίδα JSF είναι εύκολη υπόθεση με drag-and-drop διαδικασία. Ωστόσο εκτελώντας την σελίδα δεν θα προκύψουν στοιχεία, καθότι δεν έχουν δοθεί τιμές στις παραμέτρους της όψης. Προκειμένου να αρχικοποιήσουμε τις παραμέτρους αυτόματα στη σελίδα μας (χωρίς να φτιάξουμε κάποια input text boxes για τη λήψη τιμών - κάτι που θα αποτελέσει το θέμα ενός επόμενου άρθρου) χρειαζόνται να γίνουν κάποιες επιπλέον ενέργειες.Πρώτα από όλα, διαλέξτε από την παλέτα Data Control το στοιχείο ExecuteWithParams για την όψη που σας ενδιαφέρει και μεταφέρτε το στην σελίδα σας ως ADF Command Button.

Το αποτέλεσμα φαίνεται στην επόμενη εικόνα.

Για να αρχικοποιήσουμε τις παραμέτρους μεταφερόμαστε στα ADF-bindings της σελίδας κάνοντας δεξί click--> Goto Page Definition. Ανατρέχοντας στον Structure Editor και συγκεκριμένα executables-->variables, θα βρούμε τις παραμέτρους της όψης που μας ενδιαφέρει. Αυτό που απομένει είναι να ορίσουμε τιμές σε αυτές, από τον Property Inspector, χρησιμοποιώντας για παράδειγμα τα αντικείμενα που έχουν αποθηκευτεί στο request ή το session scope της εφαρμογής.

Αφότου έχουμε ορίσει τιμές για την παραμετροποιημένη όψη μας, στο τέλος πρέπει να δηλώσουμε το πότε θα εκτελεστεί η απόδοση τιμών. Στην ίδια οθόνη που βρισκόμαστε, πηγαίνουμε executables-->δεξί click-->insert inside executables-->invoke action. Σε αυτό το σημείο θα οριστεί μια ενέργεια που θα εκτελείται στην φόρτωση της σελίδας και κατ' ουσίαν θα αναθέτει τιμές στην παραμετροποιημένη όψη των δεδομένων. Είναι σημαντικό θα διαλέξουμε το όνομα του DataBinding event (ExecuteWithParams) κ τον χρόνο εκτέλεσης του (Refresh, τιμή prepareModel)


Αυτό ήταν όλο! Επιστρέφοντας στην σελίδα μας, μπορούμε να ορίσουμε ότι το ADF Command Button δεν θα είναι ορατό (property Rendered=false) και να δοκιμάσουμε την εφαρμογή μας.

Στην επόμενη σελίδα εμφανίζονται παραμετροποιημένα τα αποτελέσματα σύμφωνα με την ταυτότητα του χρήστη.

Αφετηρία

Σε αυτήν τη σελίδα πρόκειται να καταγραφούν μερικές συμβουλές σχετικά με την εμπειρία μου με τον JDeveloper. Ελπίζω να σας φανούν χρήσιμες ;-)

JDeveloper tips

Well...

I am back! As you already should know, in this blog site you will find out regular postings about our main hobby: programming. It is indeed my decision to address developers in Greece, therefore from now on any information in this site will be delivered in greek.