Perché statico?

stàtico [agg. Der. del gr. statikós “che riguarda l'equilibrio”, del tema sta- di ístemi “stare fermo”] Relativo all'equilbrio, alla quiete, in contrapp. a dinamico: equilibrio s., quello di un corpo in quiete e delle forze a esso applicate; pressione s., cioè di un fluido in quiete; sollecitazione s., quella che non turba la quiete del corpo cui è applicata; ecc.

Tratto da www.treccani.it

Nel precedente articolo del blog ho iniziato a raccontare che ho deciso di cambiare quello che c'è dietro a ProgettoDighe, quindi iniziamo dall'inizio con un po' di storia.

Quando nel 2005 ho impostato il sito era basato su poche e semplici pagine minimaliste basate su del semplice e puro html.

Le basi di questa scelta tecnologica sono semplici. L'unico admin/tecnico/editor/recensore/correttore di bozze ero io, il servizio di hosting era a basso costo, html è veloce, standard (all'epoca c'era comunque Internet Explorer che faceva casino) e se fatto bene consuma poco spazio e banda, e questo nell'epoca prima della fibra ottica dentro casa, queste erano cose molto, molto, molto importanti.

Un sito fatto in html puro modo non ha bisogno praticamente di niente per essere online, basta solo un computer con un qualsiasi editor di testo, e un server esposto su internet con un po' di spazio disco e un server http.

Un sito fatto in quel modo è detto “statico” non perché non cambia mai, ma perché non c'è la possibilità che interazioni estemporanee ne possano cambiare i contenuti. Per cambiare qualcosa bisogna aprire il file hmtl con un file di testo, modificarli e poi tornare a caricarli sul server.

Quando apri un sito, un blog o qualcosa all'inizio sei tutto felice ed eccitato perché con il tuo piccolo lavoro stai comunque creando dei contenuti che poi le persone che navigano sull'internet possono sfruttare per imparare nuove cose. Ma noi siamo animali sociali, è bello creare e condividere, ma ad un certo punto vorresti anche capire se quello che hai prodotto interessa a qualcuno, vuoi sapere cosa ne pensa, vuoi sapere se ci sono altri come te.

E per fare questo la cosa migliore è aggiungere un'elemento “dinamico” dove altri, esterni, sconosciuti, possano interagire con il tuo sito e aggiungere e creare i loro contenuti. Nel caso di ProgettoDighe questo elemento dinamico che ha affiancato il sito è stato prima il forum basato su phpBB e poi la gallery basata su Coppermine Gallery

Per gestire un sito dinamico bisogna aggiungere qualche cosa in più rispetto alla richieste iniziali, quindi dobbiamo avere un un server http, spazio disco, un qualcosa che possa interpretare il software e un database.

Niente di impossibile, tutti i fornitori di servizi offrono queste componenti, ma il lavoro aumenta. Il software quando lo installi è così com'è, quindi se vuoi che faccia qualcosa di diverso devi personalizzarlo, ma essendo software è soggetto a bug ed evolve quindi devi aggiornarlo e aggiornare le sue personalizzazioni che hai fatto.

Poi anche il server sottostante si deve aggiornare quindi devi stare attento che il tuo software possa girare con la nuova versione del motore oppure che possa girare con la versione vecchia perché se non gestisci tu il server non è detto che chi gestisce l'hosting sia così veloce ad aggiornare.

E del database vogliamo parlarne? Per interagire con un database non lo fai con un'editor di testo, ma devi usare un suo linguaggio di interrogazione che si chiama SQL. E se domani il mio servizio di hosting all'improvviso chiudesse come faccio ad essere sicuro di avere una copia di tutti i file e di tutto il database al sicuro? Oppure se un qualche malintenzionato riesce ad entrarti nel database e ti cambia tutti i contenuti?

E se il numero di utenti aumenta, lo spazio disco sul mio database mi basta? La cpu del server sarà sufficiente?

Se siete arrivati a leggere fino qui dovreste iniziare a capire come avere un sito dinamico, specialmente all'inizio di questo secolo, non fosse una cosa così banale.

Ma ad un certo punto anche quella parte statica stava iniziando a limitarci. Perché ad un certo punto ti accorgi che l'estetica del sito andrebbe svecchiata, ma questo vuol dire andare a modificare tutti i file html, a mano uno per uno. E se volessi consentire a degli utenti anche di scrivere in autonomia degli articolo e non solo dei singoli post del forum?

E via si parte con la conversione del sito statico anch'esso in dinamico. Si vaglia un po' di candidati ma sono tutti pesanti, macchinosi, non facili da personalizzare. E soprattutto sono praticamente tutti pensati per gestire dei blog e non dei siti strutturati. Alla fine seguo il suggerimento di un collega e approdo su Spip che diventa il CMS del sito.

Perché Spip? Perché anche se la documentazione era in francese era basato su una strutture semplice, funzionale e ha un sistema di templating che mi permetteva una elevata personalizzazione del codice html della pagina.

Quindi tutto bene, abbiamo un forum che va alla grande con centinaia di post ogni giorno, altri tre redattori che scrivono articoli ben strutturati, cosa può andare storto?

Facebook. Ecco come si chiama la cosa che può andare storta.

Attorno al 2010 si diffonde in italia il social che scardina tutti i paradigmi. Nessuno moderatore che ti chiede di tenere in ordine i tuoi post o si lamenta se vai fuori tema, nessun limite sulla dimensione e quantità di immagini che puoi caricare, una soddisfazione immediata di vedere apparire i like a qualsiasi cosa pubblichi, una platea più ampia. C'è molta più soddisfazione e immediatezza a pubblicare una cosa su un social piuttosto che su un vecchio ed obsoleto forum dove non puoi nemmeno mettere un'immagine.

E gli utenti si spostano, i redattori passano a fare altro, i contenuti nuovi arrancano, ma nel frattempo tu che sei amministratore e fondatore ti trovi con tutta la baracca di software vari da mantenere e gestire. Quindi spendi il tempo che ti resta non a fare le cose creative, ma a gestire, aggiornare e backuppare.

Ma dopo anni di CMS e sistemi per gestire siti dinamici nel mondo c'è un cambio di direzione, si sente la necessità di tornare ad avere siti semplici, veloci, che possano funzionare bene e con poca manutenzione, ma sorpassando i vincoli e la staticità dell'html puro.

Nascono quindi i generatori di siti statitici.

Un generatore di siti statici è un programma che legge il contenuto di un sito, che potrebbe stare dentro un database oppure se semplici file formattati in qualcosa di più leggero rispetto all'html puro e ci macinano sopra andando a generare dei file html.

Quindi sul server non ci servono più database, non ci servono più motori o linguaggi, non servono più aggiornamenti, non servono più backup. Non abbiamo più paura che a causa di un bug sul software del CMS qualcuno possa entrare e cambiarti il sito (mi è successo su WordPress). Posso decidere di cambiare fornitore di servizi da un giorno all'altro, tanto basta semplicemente copiare dei file.

Certo, c'è sempre un po' di lavoro da fare sul template delle pagine e bisogna imparare come funziona lo specifico motore di conversione, ma quando hai tutto il contenuto del sito su dei file oggi puoi usarli con un motore, domani con probabilmente zero modifiche puoi darlo in pasto ad un'altro.

In un colpo solo tutti i vantaggi dei due mondi, lo statico ed il dinamico.

E quindi oggi, mentre il forum e la gallery sono comunque dinamici e basati sempre sugli stessi software, il sito principale con le sue rubriche e i suoi articoli è interamente basato su Hugo. Quindi modifico il tema o i contenuti sul pc, lo verifico in locale che tutto vada bene, lo versiono su GitHub e, visto che sono comunque uno smanettone ho fatto in modo che quando modifico qualcosa una procedura automatica vada a ricompilare tutto e caricarlo sul server.

Visto che mi rendo conto di aver scritto un botto di cose, e se qualcuno che malauguratamente è finito in questo blog fosse incuriosito dal tema e volesse farmi domande, in fondo alla pagina può trovare il modo per contattarmi. Alla prossima.

Questo articolo ti è piaciuto e vuoi dire la tua? Puoi usare il canale Telegram, Mastodon, Matrix o perché no anche il forum