-+  Documenti
 |-  Bibliografia
 |-  Articoli
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Contatti
-+  Blog
-+  Link



 

Versione stampabile.


Stefano Rodighiero
Programmatore Perl per lavoro e per passione, non sempre in quest'ordine. Il suo blog.


La sezione articoli di Perl.it si rinnova, con nuovi strumenti e nuovi modi di lavorare. Lo scopo di questo articolo è descrivere come sia stato impiegato Movable Type - un software tipicamente usato per implementare blog - per svecchiare e migliorare la nostra sezione dedicata agli articoli.

Devo ringraziare SixApart, per aver concesso a Perl.it una licenza d'uso di Movable Type, e David Raynes, che ha messo a disposizione una licenza di Workflow (spiegherò il ruolo di Workflow nei paragrafi successivi).

perl.it

Come funziona Perl.it? Come forse è già noto a chi segue il sito, esso si basa su Template Toolkit 2 e su ttree: i sorgenti delle varie pagine del sito sono in un repository CVS, e i gestori, per implementare una variazione, devono modificare il o i template interessati, eseguirne un commit, lanciare la build del sito (si tratta di uno script di shell che aggiorna i file dal repository ed esegue ttree) e se tutto è ok, mettere in produzione (publish) la nuova versione. A questo scenario va aggiunta l'integrazione con gli altri software e script che gestiscono le parti non statiche del sito: il blog, la consultazione delle FAQ e di perlfunc, e così via.
Sull'uso di Template Toolkit e in particolare ttree per la gestione di siti web, vi rimando al capitolo di Perl Template Toolkit che è liberamente scaricabile dal sito O'Reilly: "Building a Complete Web Site Using the Template Toolkit".
Benchè tutto sommato soddisfacente, però, questo modo di lavorare sembra un ostacolo alla collaborazione degli utenti.

In particolare l'inserimento di un articolo, se esso non è sufficientemente "piccolo" per stare nel blog, non è un processo immediato: chi propone deve aspettare la revisione del suo pezzo, e la conversione di quest'ultimo nel formato interno usato dal sito, ovvero un formato basato su XML progettato da noi, per l'authoring del quale non esistono quindi tool specifici. La revisione stessa non è in alcun modo supportata da meccanismi software, e di fatto si svolge scambiando file tra autore e revisori. Forse, tutto questo ha scoraggiato la collaborazione. Per verificare questa tesi abbiamo pensato di provare Movable Type per qualcosa che i suoi autori - se non altro all'inizio - forse non avevano immaginato.

Movable Type

Movable Type, in realtà, era già installato sul server di perl.it, e lo usavamo per il nostro blog: piccoli articoli estemporanei, talvolta semplici segnalazioni di link interessanti, commentabili dagli utenti. In questo caso il processo di revisione ed "editing" degli articoli è assente o quasi: chi ritiene di avere qualcosa da dire chiede un account, e una volta ricevutolo è libero di pubblicare ciò che ritiene più opportuno. Molto comodo e rapido, ma non abbastanza sofisticato. Inoltre la convivenza con articoli "leggeri" forse dissuade chi vuole proporre articoli di più ampio respiro: il blog è percepito, editorialmente, come un luogo meno prestigioso.

Workflow

Riassumento, la situazione è questa: da una parte un blog di gestione rapida e agile, ma carente dal punto di vista dei meccanismi di revisione e con poco appeal per gli autori. Dall'altra una sezione articoli più autorevole (o come tale percepita) ma più lenta nella sua gestione, e anch'essa carente - per altri motivi - per quello che riguarda i processi di revisione.

In questi casi la cosa che viene più naturale da pensare è prendere il meglio dai due mondi: che cosa ne risulterebbe? Una sezione dedicata agli articoli separata dal blog ma, come un blog, facile da gestire. Per ovviare agli altri problemi manca ancora qualcosa che renda più rapido e sistematico il processo di revisione ed editing.

È qui che fa la sua comparsa il plugin Workflow: esso permette di separare, per un utente, la possibilità di inserire materiale dalla possibilità di pubblicarlo sul sito. Solo il revisore ha la facoltà di pubblicare il materiale proposto.

Il nome di questo plugin è azzeccato: grazie a Workflow si può gestire un flusso di informazioni, dal proponente dell'articolo al revisore (che può anche essere più di uno, basta creare un utente in più).

Un esempio concreto? Una persona decide di avere qualcosa di interessante su cui scrivere un articolo, e gli piacerebbe pubblicarlo su Perl.it. Richiede quindi allo staff la password dell'utente "proponente" (si tratta di un'utenza condivisa), inserisce il proprio articolo (comprese eventuali immagini, formattazioni particolari, e così via... tutto controllabile senza ausilii esterni) e infine segnala ad uno dei revisori la presenza di un nuovo pezzo, pronto per essere esaminato e poi pubblicato. Molto più facile di prima: e con molto meno lavoro per i gestori del sito. Lavorare per soddisfare la propria pigrizia è una massima già nota, vero?

Lasciatemi ripetere l'esempio più schematicamente

  1. Idea per un nuovo articolo
  2. Inserimento dell'articolo, usando l'interfaccia di Movable Type
  3. Segnalazione dell'articolo ad un revisore
  4. Ciclo di revisione e modifica
  5. Pubblicazione

La cosa bella (e nuova) è che fino al punto 3 il proponente è del tutto autonomo, e che i punti successivi sono rapidi e completamente supportati dal software.

Estendere Movable Type

Manca ancora qualcosa. Installando Movable Type (e magari Workflow) si ottiene di fatto un piccolo CMS, che ha però le fattezze tipiche di un blog. L'aspetto grafico si può modificare agevolmente intervenendo sui template, ma con la sezione articoli di Perl.it eravamo abituati molto bene. I titoli fatti con GD::Text e il font ttf, ad esempio, sembravano un miraggio.

E invece no. Una cosa che dal sito di Movable Type forse non si realizza subito è il fatto che MT è scritto in Perl, ed espone una API e un'architettura molto versatili: è piuttosto agevole scrivere componenti aggiuntivi per soddisfare esigenze particolari. Nel caso che sto usando come esempio ho preparato un plugin che incapsula le funzionalita` di GD::Text, e le mette a disposizione a chi si occupa di preparare i template.

Nel template usato per gli articoli basta scrivere:

<$MTMakeGraphicTitle$>

E altrove (ovvero nel codice che implementa il plugin, e tralasciando le parti meno interessanti):

MT::Template::Context->add_tag( 
    MakeGraphicTitle => \&make_graphic_title 
);

sub make_graphic_title
{
    my $context = shift;
    my $params  = shift;

    my $entry = $context->stash('entry');

    my $title = $entry->title();

    # ...

Qualcosa di analogo è stato fatto per implementare i tag che mostrano la biografia dell'autore.

Conclusioni

Dedico queste ultime righe a tre cose. Innanzitutto, a ringraziare ancora una volta SixApart e David Raynes per aver offerto gratuitamente a Perl.it i loro tool.

Vorrei poi ribadire la potenza di Movable Type come strumento di publishing: semplice sì, ma abbastanza avanzato. Da usare nei casi in cui soluzioni come Bricolage sono troppo sofisticate.

Infine - e se dovete ricordare una cosa sola di questo articolo, vorrei fosse questa - ripeto che Perl.it è a disposizione di chi vuole contribuire: non ci sono argomenti che non sono interessanti, e la collaborazione aumenta esponenzialmente i risultati raggiungibili da una singola persona.


Ti è piaciuto questo articolo? Iscriviti al feed!











Devo ricordare i dati personali?