Personal tools

Luca Fabbri, blog, plonegov

Jun 30, 2015

Usare Header HTTP per debug di server in produzione

pdb.set_trace()

Usare Header HTTP per debug di server in produzione

Non sarà corretto, eppure in qualche sfortunato caso può capitare di dover inserire un breakpoint in produzione. Come farlo senza ostacolare l'esperienza degli utenti?

La situazione

Un'installazione di produzione di un'applicazione Web sta facendo qualcosa che non va, c'è di sicuro un bug che si presenta solo nella configurazione di produzione e per quanto ci si sforzi non si riesce a riprodurre il problema su ambiente di test. Anche tecniche primitive come l'aggiunta di messaggi di log aggiuntivi in produzione non sono servite ad individuare il problema.

E' uno di quei casi in cui verrebbe da dire "ci vorrebbe un bel breakpoint", fermare l'esecuzione del codice per eseguire analisi... ma per ovvi motivi un breakpoint in produzione è qualcosa di delicato e non facilmente fattibile.

read more

Dec 18, 2014

CodeJam: Cutting edge web application development

On The Edge Of The Edge!

CodeJam: Cutting edge web application development

Il 2 e il 3 dicembre ho avuto la fortuna e il piacere di partecipare al CodeJam, un workshop dedicato alle tecnologie più moderne e promettenti in circolazione

Il CodeJam è un workshop organizzato da Avanscoperta a cui sono stato particolarmente contento di prendere parte.

Sappiate che ero parzialmente prevenuto verso alcune delle tecnologie descritte nel programma: alcune di queste non era qualcosa mi sarei aspettato di usare a breve termine ma penso sia sempre importante guardarsi attorno e respirare cose nuove.
Come vedrete a breve molti, se non tutti, i miei dubbi sono stati velocemente crocifissi facendomi tornare in ufficio letteralmente con la bava alla bocca e la voglia di sperimentare quanto visto.

... ma andiamo con ordine.

Il (nostro) team

Tre spauriti programmatori Python:

Location

Campus Living BononiaL'evento si è svolto al Camplus Living Bononia a Bologna, una location eccellente.
La connessione wireless non ha dato nessun tipo di problema, è presente una mensa interna, vari salottini sparsi qui e là per la struttura e la piccola sala conferenze accogliente, il tutto immerso in un ambiente prettamente universitario.
Ottima scelta!

Il Cast

L'evento è stato brillantemente portato avanti dalla coppia Sandro Paganotti (AKA: l'Uomo del Front-End) e Gabriele Lana (AKA: l'Uomo del Back-End).

Le competenze dei due e la sinergia con cui hanno organizzato ed integrato gli argomenti del corso ha reso l'esperienza estremamente piacevole e fruttuosa. Ho assistito ad una ben orchestrata staffetta alla tastiera, per comporre passo dopo passo una piccola applicazione piena di interessanti funzionalità.

Infine: nell'Ombra si muoveva discreto Fabio Fabbrucci, qui in veste di organizzatore ma che avevo già avuto il piacere di vedere in azione al Codemotion 2013 (per quelli che c'erano: sarete felici di sapere che il suo odio per i designer sembra essere parzialmente rientrato).

read more

Oct 29, 2014

7 interessanti prodotti Plone che potresti voler usare

Questo sì che è inaspettato!

7 interessanti prodotti Plone che potresti voler usare

Filed Under:

Ci sono alcuni prodotti Plone che non diventeranno mai noti al pubblico perché non offrono funzionalità visibili all'utente. Rendiamo loro giustizia!

Sapete tutti che cos'è paragon.plone.org?

Se non lo sapete ve lo dico in due parole: è la nuova idea per rivoluzionare la pagina dei prodotti di plone.org che è in via di dismissione.

Il problema di questa sezione del sito (non è la prima volta che affronto la cosa) è che non tutti gli sviluppatori di add-on la tenevano aggiornata con le release recenti dei loro prodotti.
Morale della storia: prodotti eccellenti, qui, non sono sempre disponibili.

L'idea di Plone Paragon è di sostituire questa pagina con una nuova versione dove i contenuti saranno revisionati da umani senzienti, una "commissione d'inchiesta" che si metterà a valutare i prodotti esistenti per trovare "i migliori 50" (Se vi chiedete "perché 50?" la risposta è: "e perché no?!").

Ci sono alcune regole di massima: chiunque può sottomettere il prodotto che preferisce ma la giuria considererà vari fattori, tra cui la documentazione, la compatibilità con Plone 5, l'uso di Dexterity e non ultimo, che sia un prodotto che porti gloria a Plone.

Se non avete ancora nominato il vostro add-on preferito e le nomination sono ancora aperte, vi invito a farlo! Io ne ho sottomessi almeno 5... ma non vi dirò quali (siamo già in par condicio). Sappiate che nessuno di questi è stato fatto da RedTurtle (forse anche con una punta di scaramanzia)!

Visti i criteri, da questa lista saranno quindi probabilmente assenti (o comunque non dovrebbero far parte dei vincitori) i prodotti:

  • instabili
  • con poca/assente documentazione
  • utili solo agli sviluppatori
  • non tradotti e non traducibili.

In pratica Plone Paragon vuole trovare i prodotti "cool", che rendono grande Plone... ma è altrettanto sicuro che altri prodotti "un-po'-meno-cool" non otterranno quindi la giusta visibilità!
Ci sono vari prodotti per sviluppatori o prodotti di nicchia che non ho nominato (e nessun altro lo ha fatto) ma che, a mio parere, vanno tenuti d'occhio e utilizzati.

Ecco la mia lista... chiamatela pure "Plone Anti Paragon"!

read more

Aug 26, 2014

Autenticazione tramite social network con Plone? E' facile!

Facebook? Linkedin? Google+? Twitter? E perchè non tutti?!

Autenticazione tramite social network con Plone? E' facile!

L'autenticazione social aggiunge valore ai nostri siti, ma la sua realizzazione può essere uno sforzo non trascurabile. Vediamo come affrontarla con Plone!

In questo articolo introdurrò un prodotto Plone che ci ha reso possibile l'autenticazione e la profilazione di utenti usando il proprio social network preferito: pas.plugins.velruse.

Vedremo i motivi per cui il plugin è stato sviluppato e le alternative possibili.

Tanto Tempo Fa, In Un Web Lontano Lontano

Lo sapere cos'è questo?

Join form Plone

Se avete risposto "un form di iscrizione ad un sito" avete sbagliato. Oggigiorno la risposta migliore è "il metodo più veloce per far allontanare il visitatore dal vostro sito".

Non è certo una novità che gli utenti del Web:

  • Abbiano fretta. Devono veramente essere interessati al vostro servizio per voler investire tempo nell'attivare nuove credenziali. Chiedete ad un utente di iscriversi al vostro sito solo se strettamente necessario.
  • Siano allergici alla creazione di nuovi account. Tutti noi custodiamo gelosamente un numero minimo di credenziali (posta elettronica, social network, la propria banca, ...) ma diventa estremamente complesso gestire un numero sempre crescente di servizi che richiedono autenticazione e profilazione utenti.

I gestori di credenziali, quasi sempre integrati nei maggiori browser, possono aiutare ma sono tutto sommato dei palliativi. La cruda realtà è che molti utenti in presenza della richiesta di iscrizione passano oltre.

 

read more

Jun 24, 2014

Plone e risorse JavaScript/CSS: alcuni consigli per buone prestazioni

Quando le prestazioni sono tutto...

Plone e risorse JavaScript/CSS: alcuni consigli per buone prestazioni

L'analisi di un sito relativamente alle prestazioni di front-end ci ha portato ad alcune considerazioni interessanti su come registrare risorse aggiuntive

Di recente siamo stati incaricati di occuparci dell'ottimizzazione di front-end di un sito Plone. Il lavoro è stato svolto sotto molti aspetti, ma nel seguito di questo articolo mi occuperò solo di uno dei recenti mantra che sta imperversando nel web relativamente all'ottimizzazione del front-end: limitare il numero di connessioni HTTP della pagina.

Perché? In poche parole: per quanto la risorsa sia piccola o grande, il problema è la connessione alla risorsa e i tempi di latenza che questa introduce.

Stato del sito

Il sito in questione ha una storia piuttosto lunga, è in produzione da anni; questo si traduce spesso in una lunga lista di prodotti aggiuntivi installati e modifiche varie effettuate al tema grafico o ai prodotti aggiuntivi stessi.

Altra caratteristica importante: è un Plone 4.2, ma la sua storia è iniziata con la versione 3.3. Si è passati attraverso un processo di migrazione della versione di Plone.

Infine: il tema grafico, anche se migrato a Plone 4, è fondamentalmente fedele al vecchio stile della realizzazione Plone 3 (in due parole: no Diazo).

read more