Lug 23

Da quando in azienda abbiamo progettato e sviluppato il nostro primo CMS (circa otto anni fa), mi sono interrogato se i database relazionali fossero lo strumento ideale su cui appoggiarsi.

Gli RDBMS nascono nei primi anni 70 e riflettono le tecnologie, le esigenze di quell’epoca dell’informatica e di quanto avvenuto immediatamente dopo. All’emergere di Internet penso sia stato un passo naturale appoggiarsi a software ben conosciuti, maturi e solidi per sviluppare le web application.

Con il progredire della comunicazione, i database relazionali a mio avviso stanno mostrando i loro limiti e si trovano modi poco aggraziati per superarli. I limiti consistono nel fatto che la tecnologia su web tende a piegarsi alla comunicazione che esprime esigenze di costante flessibilità ed evoluzione: il dato strutturato perde progressivamente di senso, mentre ne acquisisce il dato destrutturato ma relazionato, collegato, affine.

Gli esperimenti più radicali sono andati nelle direzioni di database di nuova concezione: database ad oggetti e database xml. In entrambi i casi, ad oggi, non esistono progretti open mainstream dalle caratteristiche di un MySQL, PostgreSQL o anche solo SQLite. Sono database particolari che si sono ricamati una nicchia, una piccola nicchia.

I più si sono buttati sul creare livelli di astrazione per manipolare i database relazionali in modo comodo. Così nascono gli object relational bridge, in vari linguaggi e con diversi stili di implementazioni. Di fatto però lo strumento di base è pur sempre quello relazionale: forse si fa meno fatica ad utilizzarlo senza dover scrivere chilometri di sql, ma comunque i limiti strutturali permangono.

Parallelamente i database relazionali hanno cercato di dotarsi della flessibilità che viene richiesta. Attualmente la maggiorparte dei database maturi, open o meno, hanno la possibilità di utilizzare internamente xml, sono dotati di capacità di indicizzazione e ricerca fulltext, etc. Di nuovo però ci troviamo di fronte alla nascita di un ibrido senza vocazione.

Sotto il coperchio del pentolone del web in realtà il nuovo bolle da una decina d’anni ed è l’architettura su cui si basa Google. Non entro nel dettaglio perché si rischia di trovarsi con molti meno capelli in testa, ma il concetto di base è che i dati vengono archivati in semplici copie chiave-valore (una mappa o array associativo) e poi liberamente collegati ed espressi attraverso funzioni che li modellano. Il meccanismo è noto come MapReduce.

La testimonianza della flessibilità del sistema sta nella stessa essenza di Google e nella quantità di servizi per il web che riesce ad esprimere utilizzando questa architettura: la sua possibilità di collegare dati, incrociarli e creare nuovi dati da quelli preesistenti é strabiliante.

Fortuna vuole che la grande G voglia passare per “buono” e ogni tanto ci renda partecipe degli scampoli della sua essenza. Parte della tecnologia è stata rilasciata open source, quindi è stata digerita dalla community degli sviluppatori e cominciano a sentirsi i primi vagiti di una tendenza seria. Tra i progetti open si possono segnalare:

  • HBase,
  • Hypertable,
  • CouchDB, progetto che seguo con estrema attenzione perché unisce i concetti di MapReduce e dei web service moderni (parlo di REST, non di quel manicomio di XML-RPC o SOAP).

HBase e Hyertable sono veramente tosti, ma CouchDB forse ha le caratteristiche per essere il MySQL della nuova generazione di database.

Con questo non voglio assolutamente dire che i database relazionali sono destinati a scomparire (con tutta probabilità saranno nostri compagni ancora per moltissimi anni), ma che sono maggiormente adatti ad ambiti maggiormente strutturati: in casi di web-application continuano ad essere la soluzione migliore… per ora.

Il punto è che in questo momento esiste un soggetto fortemente ispiratore che è in grado di trainare verso l’adolescenza e poi alla maturità un nuovo modello di database che meglio si adatta al web. La mia speranza è che, o i progetti già esistenti o i nuovi che nasceranno sull’onda dell’esempio, nei prossimi cinque/dieci anni questo nuovo modello di database emerga e maturi.

Set 15

Negli ultimi mesi sono stato molto concentrato sulla realizzazione della nuova interfaccia di gestione del nostro CMS t.nes. Spero di poter fare una panoramica al più presto.

L’ultima fatica é stata realizzare un widget per la composizione di questionari. I requisiti, beno o male i soliti: facile e veloce da utilizzare. Ogni risposta può essere vera o falsa.

Tutto il front-end di amministrazione é stato scritto basandomi sulle ottime YUI ed estendendone le funzionalità . Il widget per la composizione dei questionari ha seguito la stessa linea di sviluppo con una particolare attenzione all’editing in-line.

Il risultato é stato soddisfacente, riuscendo ad ottenere un widget che lavora in modo totalmente asincrono per le sue funzionalità  (creazione, modifica, cancellazione) sia sulle domande che sulle risposte. Mancano ancora un paio di dettagli da implementare:

  • segnalazione dello stato di caricamente durante le chiamate XMLHttpRequest,
  • drag & drop per poter riordinare domande e risposte,
  • debugging.

Di seguito un breve screencast che mostra il funzionamento del nuovo widget.

Set 14

Le stampanti in grado di creare modelli tridimensionali esistono da parecchio tempo, ma a costi assolutamente proibitivi. Penso di aver visto la prima recensione su MC Microcomputer in tempi ormai antichissimi e di esserne rimasto affascinato.

Ora Desktop Factory annuncia la prima stampante 3D economica: 4.995 dollari, circa 3.700 euro. E’ ancora molto, ma non male… veramente non male. Può creare oggetti la cui dimensione massima é di 13 cm nelle tre dimensioni. La “risoluzione” é di circa 2,5 millimetri (la tridimensionalità  é ottenuta dalla sovrapposizione di strati appunto di 2,5 millimentri).

Mi viene già  in mente almeno un amico che ci farebbe un pensierino.

Giu 18

L’idea é ottima:

  • utilizzare un iPod,
  • costruirgli intorno un accessorio che aggiunga una funzione come lo schermo eInk,
  • abbaterne il prezzo,
  • sfruttare un canale di distribuzione già  esistente come iTunes.

[flash http://www.youtube.com/watch?v=xkEhOEx6rKc]

Via Melablog.

Giu 18

La sensazione che Microsoft da qualche anno a questa parte sia un po’ a corto di creatività , diventa sempre più forte: Mediaroom é la risposta a AppleTV.

Vorrei ricordare che:

  • Zune era la risposta ad iPod,
  • con MSN e relativo motore di ricerca hanno cercato di controbattere a Google e ai servizi web 2.0,
  • con Xbox sono entrati nel mondo delle console dominato Sony e Nintendo.

Non voglio alimentare polemiche dicendo che Vista ha copiato a piene mani da Mac Os X, non é vero.

Tutti sappiamo che Microsoft tenta da anni di ridimensionare il fenomeno Linux attraverso gli attacchi su eventuali brevetti violati o con campagne a discredito del sistema operativo open source.

Delle iniziative commerciali di cui sopra nessuna ha avuto grande successo, se non XBox. Il successo di XBox penso sia principalmente dovuto alla immediata disponibilità  di moltissimi titoli grazie all’incredibile somiglianza ad un normale personal computer Windows.

Anche il fenomeno XBox é stato ultimamente ridimensionato da Wii di Nintendo, che ha portato nel mondo delle console innovazioni concrete (in questo momento la console della Nintendo vende quasi tre volte più di quella di MS).

Microsoft non ha mai avuto nel proprio dna innovazione e qualità : fin dai primordi quando vendette ad IBM l’MS-DOS, il QDOS (quick and dirty operating system) acquistato a Tim Patterson per 50.000 dollari (prima del colpaccio MS era agonizzante).

Onore al merito commerciale di Bill Gates, che intuì anche le potenzialità  dell’accordo su licenza non esclusiva e che costituì la fondazione del successo universale della software house.

Ma anche questo slancio sembra perso. Ho la sensazione che Microsoft entri in competizione con altri player in ritardo, senza avere delle idee concrete o una strategia compatta (o é una strategia che proprio non riesco a capire): continua ad essere un’azienda orientata al prodotto piuttosto che dare una svolta e verso servizi di cui hardware e software sono quasi sempre solo veicoli.

Mi spiego con due esempi.

Google ha fatto crescere miriadi di servizi a favore dell’utente intorno al motore di ricerca, tutti estremamente interconnessi: dall’advertising, alla gestione e analisi dei siti e della navigazione, alle mail, la geolocalizzazione. Tutti servizi che prendono forza dal motore di ricerca e hanno feedback positivi importantissimi sul motore di ricerca stesso.

Apple sta diventando sempre più una media company legata al life style, orientata sempre più alla distribuzione di cui punta a completare al filiera. Per farla facile, i contenuti audio/video di iTunes vengono distribuiti attraverso gli iPod, i Mac, AppleTV, a breve iPhone. I settori chiave (produttività , mobilità  ed tempo libero) sono presidiati in modo concreto, omogeneo e riconoscibile.

Non vedo fare altrettando da Microsoft, che mi sembra invece perdere costantemente possibilità  e non essere riuscita ad adattarsi ai sostanziali cambiamenti di mercato degli ultimi anni.

Giu 15

Google Logo A volte mi viene la curiosità  irrefrenabile di capire e studiare da dove arrivano certi successi. Conoscevo la storia di Google per sommi capi, l’ho visto nascere sul web e sbaragliare la concorrenza, sto assistendo ad un successo a 360 gradi della più famosa azienda del Web.

Ma nel 1998 Sergey Brin e Lawrence Page erano due studenti dell’Università  di Stanford, dipartimento di Computer Science.

Quell’anno pubblicarono una relazione sul loro progetto di motore di ricerca. Nel paper c’é un’attenta analisi del perché era necessario un nuovo approccio ai motori di ricerca su web, perché era necessario trovare nuovi paradigmi, le aspettative degli utenti, le esigenze e le soluzioni tecnologiche. Una lettura interessante: “The Anatomy of a Large-Scale Hypertextual Web Search Engine“.

Poco dopo Page e Brin fondarono Google Inc. ed é storia.

Cosa poco nota é che PageRank (l’algoritmo di assegnazione di importanza delle pagine alla base della tecnologia di Google) essendo stato sviluppato all’interno di una università  é un brevetto di Stanford, che Google Inc utilizzerà  in licenza fino al 2011, anno in cui entrà  in possesso della tecnologia inventata dai due fondatori.

Non sono note le cifre delle royalties pagate da Google a Stanford, ma é risaputo che il campus californiano ha budget quasi illimitati per la ricerca.

Giu 14

Sono rimasto assolutamente colpito da un’applicazione scoperta per caso: Soulver. E’ una calcolatrice molto particolare, il concetto di base é tanto semplice quanto innovativo.

SoulverTopScreenshot.png

Giu 12

Ho seguito con attenzione il keynote di Steve Jobs al WWDC di San Francisco.

Sto seguendo i commenti degli utenti, che come al solito mettono in piazza una guerra. Su cosa? Sul dock in prospettiva tridimensionale (che ricorda il fallito esperimento di Java Desktop di Sun Looking Glass), su cover flow, sul desktop verdino e la trasparenza della menu bar.

Ma siamo scemi o cosa?

Io vorrei che ci si rendesse conto che Mac OS X non é nato in tre anni dopo il ritorno di Jobs in Apple, ma é il frutto di uno sviluppo continuo dal 1986 quando era ancora NeXT Step: 21 anni per arrivare al sistema operativo odierno. E solo grazie a molti, moltissimi contributi dal mondo BSD lo sviluppo é potuto essere così veloce, perché proprio dal mondo BSD Unix deriva molta della sua stabilità .

Quando la comunità  ha urlato all’innovazione alla presentazione di Mac OS X nel 2001, ci si rendeva conto che alle spalle c’erano 15 anni di sviluppo? , diventati visibili praticamente in un colpo solo?? (NeXT e NeXT Step penso la conoscessimo in 10 ai tempi e sicuramente non erano utenti Mac).

Dalla release di Tiger sono passati 21 mesi. Mesi! Non anni.

Ci si aspettava un sistema operativo nuovo? Ma in che mondo? Come era fattibile? Aspettativa un po’ miope. Ci si poteva solo aspettare un update del sistema operativo, così come lo sono state le precendenti.

Inoltre Leopard le maggiori innovazioni le porta a basso livello:

  • 64 bit pieni,
  • ottimizzazione della gestione multicore a livello di sistema (tutte le applicazioni ne traggono vantaggio),
  • nuove librerie (core animation) per gli sviluppatori.

Anche solo queste tre feature “invisibili” fanno fare un salto generazionale al sistema operativo in termini di performance ed efficienza. A tutto vantaggio sia di chi sviluppa applicazioni sia di chi usa ad alto livello un Mac: editing video, fotografico, ambienti server, etc.

E queste tre feature sviluppate in 21 mesi sono un miracolo, da decine di migliaia di ore uomo di lavoro, frutto anche della collaborazione Apple e Intel.

Al WWDC Apple ha portato 1.250 ingegneri per assistere e introdurre alle nuove tecnologie 5.000 sviluppatori accorsi all’evento. I WWDC non si ferma al keynote di Steve Jobs: si faccia una veloce ricerca su YuoTube. Decine di video sui vari approfondimenti tecnici seguiti (e sempre applauditissimi) dagli sviluppatori.

Risultato: le software house tornano a sviluppare su Mac (entertainment in testa con EA e ID) e la comunità  degli sviluppatori aumenta di 200.000 persone. Conseguenza: più software, più possibilità  di scelta, più qualità  per noi utenti finali Mac.

Apple ha ottimizzato le basi del sistema operativo, per adattarlo al massimo al nuovo modo di fare hardware (multi-core e concorrenzialità  dei processi, altrimenti anche gli 8 core del Mac Pro sono poco o niente sfruttati) e per prepararsi alle applicazioni e all’interattività  del futuro.

Questo é il messaggio tra le righe del WWDC: potenzialità .

I fuochi d’artificio? Sono da cercare al MacWorld Expo, non ad una conferenza di sviluppatori.

Apr 25

Su una bella base acida, cosa si può far fare ad una Ubuntu configurata da maniaci?

[flash http://www.youtube.com/watch?v=uxMv8O5Jkx8]

Apr 18

Sono un forte sostenitore del fatto che per sapere dove si vuole andare, le strade che si vogliono seguire in futuro, bisogna prima capire cosa ci ha portato ad oggi: le maggiori GUI, da Xerox Alto a oggi.

« Previous Entries