30 dicembre 2006

Opensolaris


I Boot OpenSolaris
Alcune indiscrezioni sull'uscita del filesystem ZFS nella prossima versione di Mac OS X mi hanno spinto a interessarmi, ancora una volta, a Opensolaris, aiutato anche da qualche suggerimento di tuning di Oracle dell'ultimo esame sostenuto.
Solaris ha una caratteristica unica, ovvero la ISM (Intimate Shared Memory), che permette ai processi di condividere l'area di memoria che contiene la mappatura da indirizzi di memoria virtuali a indirizzi reali. Beh Solaris ha anche ZFS! Supporta inoltre le CPU Intel a 32 e 64 bit, oltre ai RISC di casa Sun.
Bene, ora trovo un server adeguato e poi sotto con le installazioni. Mi sembrerà di ritornare ai laboratori dell'università, ma allora utilizzavo software di calcolo per astrofisica sulle Sparcstation 4 :-)

Rails, ORM e RDMBS

Lo studio di Rails prosegue, e finalmente sono arrivato ai punti focali per l'importanza ai fini di un utilizzo con un database relazionale. È presente la possibilità di personalizzare l'accesso alle tabelle, ma tutto avviene a livello di namespace, concettualmente non cambia nulla: Rails ha bisogno di uno schema in cui le tabelle sono correlate da chiavi primarie surrogate autoincrementanti, l'unica cosa che si può cambiare è il nome delle colonne. Le relazioni tra tabelle 1:1, 1:n, n:n devono essere ripetute nella definizione degli oggetti/modelli ActiveRecord, ovvero la parte ORM (Object Relational Mapping) di Rails, che permette di utilizzare gli oggetti del linguaggio (Ruby) come se fossero dei record di una tabella nel database. Questa ripetizione non va a vantaggio della semplicità e mantenibilità del codice, in quanto costringe a ripetere nel codice Ruby le affermazioni che sono già state fatte nel database.
Devo dire che l'architettura di Rails e l'eleganza di Ruby sono affascinanti: tutto è stato pensato per uno sviluppo di applicazioni web e nulla è stato lasciato al caso.
Vedremo più avanti se ci saranno altre sorprese.

18 dicembre 2006

Certificato OCP 9i

Proprio stamattina ho passato l'ultimo esame per la certificazione Oracle OCP 9i! Sono troppo contento! Ora spero che mi mandino almeno una maglietta :-)
Stavolta c'era un po' di gente: eravamo i 4, ma la cosa sorprendente è che 2 non hanno passato l'esame, uno dei quali faceva il mio stesso test (1Z0-033).
In futuro potrebbe esserci - chissà - un upgrade alla 10g oppure qualche strana "specializzazione" (tipo Linux).
Ora mi godo un po' di ferie, ma il blog rimane attivo come sempre.

14 dicembre 2006

Le basi di tutto

Seguo da molto tempo il newsgroup it.comp.software.database. Con periodicità regolare vengono postate domande la cui risposta dovrebbe essere già chiara da tempo, specie sul design del proprio modello dei dati.
Puntualmente mi ricordo di avere letto da qualche parte esempi in merito di una tesi o un'altra, ma la maggior parte delle volte dovrei fare riferimento a uno dei capitoli più straordinari che abbia mai letto: il capitolo 1 di "Effective Oracle By Design" di Thomas Kyte.
Scaricatelo, stampatelo, leggetelo, fotocopiate ingrandite le frasi migliori e appendetele al muro.

07 dicembre 2006

Ruby on Rails e Oracle

Oracle Application Express (XE) è la piattaforma di diffusione di Oracle presso il grande pubblico di sviluppatori web interessati al framework XE, una volta chiamato "HTMLDB".
Un ottimo effetto collaterale del progetto è che è possibile utilizzare Oracle XE come database solamente, senza tanti problemi di installazione né di licenze.
Un approccio abbastanza naturale potrebbe essere l'utilizzo di Ruby on Rails come linguaggio e framework per lo sviluppo di applicazioni web basate su Oracle.
Oracle stessa non si fa attendere e pubblica un interessante articolo per iniziare a sviluppare e a portare le proprie applicazioni sulla propria piattaforma. Instant client permette una rapida e facile installazione.

Personalmente mi sto studiando il manuale ufficiale di Ruby on Rails. Il framework è molto elegante e semplice da utilizzare, anche se richiede una certa confidenza con le successioni di eventi tipiche di un'applicazione web. Il problema più grande, a mio avviso, è l'utilizzo estensivo di chiavi primarie con id autoincrementanti per le relazioni fra tabelle, di facile amministrazione per il framwork, ma di difficile e illogica manutenzione per gli esseri umani. Mi riservo ulteriori giudizi quando arriverò alla fine del libro; spero di trovare il modo (semplice) di superare l'impossibilità apparente di usare chiavi primarie reali anche composite.