tutorials
May 24, 2013
WebHelpers, tanti piccoli aiuti per un web migliore
A volte si devono utilizzare finezze per avere un prodotto più gradevole o facilitarne lo sviluppo. Gli strumenti giusti per fare velocemente il lavoro sono fondamentali
Lavorando a un progetto Pyramid mi sono imbattuto in un pacchetto decisamente interessante: webhelpers.
Document Actions
May 07, 2013
Analisi (e modifica) di come Plone genera link ai File - seconda parte
Continua il viaggio e l'analisi dei prodotti per rendere Plone compatibile con software di statistiche
Nella prima parte dell'articolo abbiamo risolto solo una parte del problema per rendere gli URL di Plone più "parlanti".
Vediamo ora come affrontare i problemi restanti.
Fase 2: come trattare il pregresso
Infatti è solo ora che le cose si fanno interessanti...
Ci siamo trovati di fronte a un grosso problema: come "bonificare" la situazione creatasi negli anni precedenti alle modifiche sopra descritte?
Sarebbe stato possibile scrivere una procedura automatica che sistemasse automaticamente tutti i link generati tramite TinyMCE dalla forma canonica alla forma di download modificata?
La risposta per noi è stata "forse... ma meglio di no". Si parlava di centinaia (migliaia) di link, per decine di siti Plone.
L'eventualità di eseguire qualcosa senza un intervento umano era a dir poco terrificante, col rischio di trovare contenuti rovinati dall'operazione dopo mesi.
Molto meglio aiutare l'utente a sistemare il problema, cercando per lui i potenziali link da sistemare ma chiedendo conferma dell'operazione: un lavoro di certo più lungo ma che dà la sicurezza del risultato.
Document Actions
May 03, 2013
Analisi (e modifica) di come Plone genera link ai File: una storia vera (parte 1)
L'esigenza: rendere i link ai file generati in Plone compatibili con software di statistiche e come una serie di prodotti riutilizzabili abbiamo risolto il problema
C'era una volta il File in Plone
Questa Storia parte da un Cliente non molto contento del modo in cui Plone gestisce i file.
Nel caso non lo sappiate, c'è una certa confusione a riguardo.
Se nel vostro sito Plone vi collegate all'indirizzo diretto a un file, nella forma...
http://vostro-host.com/percorso/al/file.pdf
...il file in questione viene "aperto direttamente": gli header inviati da Plone scatenano l'apertura del file "inline", quindi sfruttando eventuali plugin del browser, se presenti.
Questo tipo di comportamento ha problemi di usabilità: utenti che non capiscono di essere ancora "dentro al browser" potrebbero chiudere il browser pensando che si tratti di un programma esterno. Se l'utente poi vuole scaricare il file dal plugin, deve trovarne la funzione all'interno dello stesso.
Eppure se arrivate allo stesso file dall'interfaccia Plone (dal navigatore del sito, da una delle viste, ...) vi troverete a un URL diverso:
http://vostro-host.com/percorso/al/file.pdf/view
Questo è l'indirizzo della vista del contenuto file (file_view) da cui potete vedere alcune informazioni sul file e da dove viene mostrato il link per scaricarlo, che assume invece questa forma:
http://vostro-host.com/percorso/al/file.pdf/at_download/file
Document Actions
Apr 12, 2013
How to automatically refresh your database in "silent mode"
Break away from dependence on the Lotus Notes client to update your database: an easy tutorial to get applications with the latest update every morning
Scenario: a development server, a release server and many production customers' servers: nothing more classic.
Every time a change is deployed on the release server, the best thing would be to "push" it automatically on production server, or as soon as possible (at least).
Document Actions
Apr 03, 2013
PuDB, ovvero: come ho imparato a velocizzare il mio debug
Quando si fa debug di codice poco "docile" è importante avere gli strumenti giusti per non impazzire sprecando tempo prezioso nel trovare il problema

Nella vita di ogni sviluppatore arriva il giorno in cui si incrocia la propria tastiera con codice incomprensibile, dai risultati inspiegabili e che, ovviamente, bisogna correggere. Avere gli strumenti adatti per il debugging è fondamentale.
Come programmatore python ho avuto modo di utilizzare diversi tipi di debugger, dal semplice pdb a una versione più completa: pdb++. Esistono debugger integrati nei vari IDE di sviluppo, di cui però non ho mai approfondito troppo l'uso dal momento che li ho sempre trovato ambienti un po' pesanti. Da amante della shell, divido il mio tempo di sviluppo fra vim e un editor di testo molto semplice come sublime.