Blog

  • Sviluppare applicazioni web con Django: la mia recensione

    Spinto dalla curiosità, mi sono deciso ad imparare il framework Django, basato su Python, per sviluppare applicazioni web. In particolare, mi sono procurato il libro di Marco Beri “Sviluppare applicazioni web con Django”, edito da Apogeo. Comincio subito col dire che il prezzo è decisamente alto (32 Euro), nonostante il libro sia del 2009.

    Il libro svolge un ottimo ruolo introduttivo alle caratteristiche di Django, presentando i concetti fondamentali, tra cui:

    • ORM integrato
    • i modelli
    • i form
    • i template

    Il tutto viene presentato con semplici esempi con cui è possibile capire come il framework può essere sfruttato per sviluppare velocemente un’applicazione web.

    Seppure ben scritto, non rappresenta un sostitutivo alla documentazione ufficiale di Django: per sviluppare efficientemente un’applicazione web ho letto l’ampia ed estesa documentazione (in inglese) che mi ha aiutato a capire meglio come sviluppare meglio l’applicazione facendomi aiutare dal framework; ovviamente non è un demerito del libro, proprio perché il libro è del 2009, mentre la documentazione è aggiornata all’ultima release (attualmente la versione 1.3.1 è marcata come production-ready).

    In definitiva: se vi serve un’infarinatura su Django, comprate il libro. Altrimenti, consultate la documentazione online.

  • VMware Fusion 4: aggiornate la compatibilità delle virtual machines

    Dopo aver aggiornato VMware Fusion alla versione 4, ricordatevi di aggiornare la compatibilità di tutte le vostre virtual machines alla versione 4 (Settings -> Compatibility -> 4). Dovrete reinstallare i VMware tools, ma vista la notevole velocità d’esecuzione che si guadagna, è caldamente consigliato l’aggiornamento.

  • I negozi in centro: ma perché con le porte spalancate in inverno?

    Passeggiando per il centro città mi sono accorto di una diffusa abitudine tra i gestori di negozi dei marchi più famosi: mantenere le porte del negozio spalancate, anche in pieno inverno, con il risultato che tutta l’energia impiegata per riscaldare il negozio viene dispersa nell’ambiente. La domanda è: ma perché viene tenuta la porta aperta?

    A mio avviso le porte vengono mantenute spalancate dai gestori perché si ritiene che le porte chiuse rappresentino una barriera psicologica per le persone. Vedendo le porte chiuse, alcuni clienti “timidi” decidono di non rompere la barriera e non entrare nel negozio.

    E questo porta, ovviamente, ad uno spreco esagerato di energia (la stima è che per ogni negozio vengano sprecate 10 tonnellate di CO2, equivalenti a 3 voli A/R da Londra a Hong Kong) e ad un aumento dei prezzi della merce (il cliente paga lo spreco). Tuttavia, in Italia non esiste una legge a riguardo.

    Anche le Iene si sono occupate del problema, creando un servizio davvero interessante. Non siamo gli unici, comunque. In UK è in atto una campagna di sensibilizzazione chiamata “Close the door”. E intanto, è notizia di questi giorni che il fenomeno global warming si stia complicando sempre di più.

    D’ora in poi, prima di comprare in un negozio che inquina inutilmente credendo di eliminare una barriera psicologica che non mi pongo, ci penso due volte.

  • Framework, Library, Toolkit: facciamo chiarezza

    Nella terminologia informatica si sente spesso parlare di framework, library (libreria) e toolkit: erroneamente, i concetti vengono confusi tra loro, generando una notevole confusione tra gli addetti ai lavori.

    Facciamo un po’ di chiarezza:

    rubyonrails

    • un framework: è una collezione di librerie che fornisce le “fondamenta” per lo sviluppo di un’applicazione. È un componente più complesso e comprensivo dei toolkit e delle librerie. Fornisce, infatti, un’architettura standard e incoraggia il programmatore a seguire un paradigma di sviluppo per le applicazioni. Tutto il control flow è già inserito nel framework: rispetto ad una libreria o a un toolkit, un framework utilizza l’inversione del controllo (IOC): il programmatore si deve occupare di inserire la logica in parti ben definite indicate dal framework (via subclass o inserendo classi ad hoc).

      Il framework si occuperà poi di chiamare il codice custom quando si verificheranno determinati eventi (Hollywood Principle: “Don’t call us, we’ll call you”). Questo limita la flessibilità e forza il programmatore a seguire il design pattern definito dal framework.

      Lo scopo di usare un framework è quindi quello di permettere al programmatore di concentrarsi solamente sulla risoluzione del problema, ricercando la massima velocità di sviluppo dell’applicazione.In definitiva, un programmatore deve soltanto effettuare un override di alcuni metodi in un framework e fornire il proprio codice; sarà poi cura del framework chiamare il codice custom scirtto dal programmatore. Alcuni esempi di framework: Django, Ruby on Rails.

    • ajaxuna library (libreria): è un set di funzioni, organizzate in classi e package, che il programmatore può chiamare e riusare. Ogni chiamata esegue del codice e il controllo ritorna al programma chiamante. Le librerie non impongono alcun design o politiche di chiamate, nè standard di sviluppo da seguire. Il programmatore sceglie e chiama esplicitamente quali metodi della libreria uitlizzare, avendo piena flessibilità nella scelta di quali parti di libreria usare. Un esempio: le librerie Ajax.
    • gwt

    • un toolkit: un toolkit è un kit di strumenti adatti a risolvere un set di problemi di un dominio specifico, e quindi può essere composto da più librerie. La differenza tra toolkit e librerie è davvero sottile: un toolkit, come le librerie, non contiene design e logica dell’applicazione, ma offre al chiamante alcune funzionalità da poter sfruttare. Un esempio: Google Web Toolkit (GWT) (che permette di sviluppare applicazioni JavaScript scrivendo del codice Java), e il toolkit Dojo.
  • Steve Jobs, l’uomo che ha inventato il futuro: la mia recensione

    stevejobsluomofuturo

    Si è fatto un gran parlare, soprattutto ultimamente, di Steve Jobs; è stato definitivo in molti modi: un leader carismatico, un visionario, un tiranno. Il libro “Steve Jobs, l’uomo che ha inventato il futuro“, edito da Hoepli mi è stato prestato poco meno di un mese fa, e l’ho letto tutto d’un fiato, data l’attualità dell’argomento e della recente scomparsa del n.1 di Apple.

    Il libro è stato scritto da Jay Elliot (ex VP Apple, e amico di Steve come si potrà capire leggendo il libro) ed è davvero molto aggiornato: la versione italiana è stata stampata nel marzo 2011, e contiene la mail di Steve in cui si congeda per motivi di salute nel gennaio 2011.

    Il libro è ben scritto, suddiviso in capitoli di facile lettura, per un totale di 230 pagine. Nel libro si trovano molti elementi di riflessione, molte curiosità (non conoscevo il video promozionale ‘1984’ del primo Macintosh, che vedete qui sotto).

    Impressionante e rivoluzionario per quei tempi. E la regia è di Ridley Scott.

    Nel libro vengono snocciolate anche alcune perle di saggezza di Steve, i suoi comportamenti tirannici e visionari, e viene anche sfatata una leggenda che troppo spesso si legge per la rete: Steve non è stato licenziato da Apple nel 1985, bensì si è licenziato per una scelta non condivisa. In generale, quindi, un libro ricco di dettagli e molto rapido da leggere, intrigante e ben scritto. Se siete dei fanatici Apple, è sicuramente da avere.  Il prezzo è un tantino elevato per i miei gusti (probabilmente il costo lievita a causa dell’hardcover): 19.90 Euro.

    Infine, chiudo con un altro video, una presentazione di Steve che non avevo mai visto e che ho cercato, incuriosito dalla descrizione trovata nel libro. Ovviamente non parlo del video del commencement a Stanford, fin troppo famoso e citato. Ma parlo, ovviamente, del primo keynote tenuto da Steve: la presentazione del primissimo Macintosh.

  • Aprire il Finder nel path corrente (wd) dal Terminale

    Semplice ma utilissimo: se vi trovate nel terminale di OSX (o nella sua migliore alternativa), potete aprire un’istanza del Finder nella directory in cui vi trovate con il comando ‘open .’

    Questa funzionalità è molto utile specialmente su Lion, per quando dobbiamo avventurarci nelle directory Library/ e Application Support/

    osx open

    Della mia shell (zsh) e del relativo prompt (PS1) ne parleremo più avanti.

  • Il rinnovo della carta d’identità e il timbro: una questione tutta italiana!

    Nel luglio 2011 la mia carta d’identità è scaduta. Mi sono recato nel comune di residenza per il rinnovo, dove mi è stato detto che, in virtù del cambio di normativa, potevo prolungare la validità della mia carta d’identità, gratuitamente, con un semplice timbro sulla carta d’identità corrente.

    All’atto del rinnovo ho fatto LA domanda: “ma se mi reco in Svizzera con la carta d’identità con il timbro, mi fanno entrare?“. Infatti, dopo essermi documentato, ho scoperto che lo stato Svizzero (e altri stati quali l’Egitto) non permettono ai cittadini italiani di entrare in terra straniera con una carta d’identità italiana dotata di timbro. L’impiegata del comune conferma i miei dubbi, spiegandomi anche che questo rifiuto è dovuto ad accordi fra i governi esteri e quello italiano. Ma che tuttavia, posso rifare la carta d’identità alla modica cifra di 10 Euro, con la durata di 10 anni. Ma perché mai? Se avete un passaporto, non vi occorre la carta d’identità per espatriare. Ricordatevi però che alcuni “solerti” impiegati controllano che abbiate apposto la marca da bollo annuale sul passaporto, dalla modica cifra di 40 (quaranta!!!) Euro.

  • iftt (if-this-then-that): scatena un’azione al verificarsi di un evento, graficamente

    Ho scoperto un interessante servizio online: if-this-then-that (ifttt). Si tratta di un servizio che vi permette di definire una serie di regole basate su eventi (“se qualcuno tagga una mia foto su Facebook…“) che scatenano altre azioni (“… allora salva la foto su Dropbox“).

    Creare una regola è molto semplice: iftt vi guida graficamente selezionando le condizioni e gli eventi da scatenare. È importante autorizzare iftt ad accedere ai vari servizi (es. Google, Dropbox, Twitter, etc.): niente paura, iftt vi guiderà anche in questo!

    I servizi a disposizione sono molteplici (e vengono chiamati channels):

    Ifttt   Channels

    Inoltre è possibile definire una recipe, ovvero: quando create un task da eseguire, potete decidere di condividere la “ricetta” con gli altri utenti, partecipando alla classifica delle recipes più utilizzate.

    Ho creato 3 iftt recipes che ho condiviso con gli utenti del sito:

    Ifttt   mbologna s recipes

    Ecco invece i task (= recipes personalizzate con i vostri account) che ho abilitato:

    Ifttt   Tasks

    Infine: il servizio è in BETA, ma funziona molto bene. Non ho mai riscontrato errori durante l’utilizzo. La vera preoccupazione è che iftt ha potenzialmente accesso ad alcuni miei account; cosa succederebbe se qualcuno riuscisse ad ottenere un accesso a tutti gli account di iftt?

  • Apple Hardware Test con Mac OSX Lion

    Con l’uscita di Lion i supporti ottici sono diventati semi obsoleti su quasi tutti i Mac.

    Tuttavia, mi sono posto una domanda: come vengono eseguiti i diagnostics, ovvero quei tool metti a disposizione da Apple per il test del sistema se non abbiamo i DVD di installazione del sistema operativo?

    Detto, fatto: la Using Apple Hardware Test è stata aggiornata con:

    For some Apple computers that shipped with OS X Lion, if Apple Hardware Test cannot be found on the hard drive, an Internet-based version starts up instead.

    (nel mio caso, invece, ho inserito il DVD #2 di Snow Leopard e ho tenuto premuto ‘D’ al boot per lanciare i diagnostici).

  • Trenitalia: ho utilizzato il rimborso straordinario!

    Come vi avevo accennato ho richiesto il rimborso straordinario di Trenitalia, pari al 10% dell’abbonamento mensile del mese di dicembre 2010 (bei tempi, in cui per una fascia chilometrica di 10km ci venivano chiesti 25Euro; ora, invece, Trenitalia ne chiede 31).

    Il rimborso è arrivato nel mese di Settembre 2011 (intorno al 10) e riporta la dicitura: “da utilizzare entro settembre 2011“: fortunatamente non avevo ancora acquistato l’abbonamento per il mese successivo, altrimenti non avrei potuto beneficiare del bonus. Direi che la tempistica di arrivo del bonus e scadenza per l’utilizzo sono in linea con i modi e i tempi di Trenitalia!

    Ho acquistato l’abbonamento mensile di Ottobre 2011  presentando il buono sconto alla biglietteria e con mia grande sorpresa il buono è stato riconosciuto ed utilizzato (!), garantendomi uno sconto di 2,55Euro sul prezzo del biglietto. Ovviamente lo sconto è esiguo, ma sempre meglio che niente.