Come funziona questo sito

Monday, 20 May 2013

Nel primo post di questo neonato blog e rinnovato sito, vi avevo promesso un breve escursus sulla sua «semplificata» struttura, per cui onoro ora la promessa. Detto brevemente, il nuovo poluz.net si basa su mynt che è un generatore di siti statici in python.

Ovvero?

Semplificando molto, i siti «dinamici» classici che popolano il web (da Facebook al blog del vicino di casa), utilizzano un qualche linguaggio di programmazione che genera dinamicamente la pagina che vi verrà mostrata, nel momento esatto in cui voi la richiedete. Questo permette di farvi avere siti che si adattano a voi, sempre aggiornati e con tante funzionalità. Ma per un piccolo sito con annesso ancor più piccolo blog, tutto questo è da un lato limitatamente utile, e dall’altro fastidiosamente costoso da mantenere in termini di tempo. I linguaggi di programmazione cambiano, i software di gestione dei contenuti (i cosiddetti cms) vanno aggiornati, si scoprono vulnerabilità di sicurezza che vanno gestite, ecc…

Un generatore di siti statici come mynt, al contrario, permette di generare e rigenerare siti e blog producendo pagine già pronte per essere inviate agli utenti che desiderassero visualizzarle, senza bisogno di eseguire del codice di un programma per generarle. Questo ha alcuni vantaggi: il caricamento delle pagine è più veloce, perché non è necessario elaborare informazioni e la «pappina è già pronta» per essere inviata al browser del visitatore, ed inoltre viene esposta «un’area» molto minore per possibili attacchi di sicurezza. In pratica il sito è formato da tante pagine html e dal server web che serve le pagine, invece che dal classico database + linguaggio di programmazione (php, python, …) + server web.

Scrivere un post

Con mynt l’operazione di scrivere un post per poluz.net si riduce essenzialmente a due passaggi, che avvengono direttamente sul mio computer di casa. Per prima cosa devo scrivere il testo in un semplice file di testo, che dovrò mettere in una specifica directory del sito. Poi lancio un comando che genera il sito aggiornato con il post che ho appena scritto ed eventuali altre modifiche, e quindi lo carica sul server web in modo che tutti possano leggere i miei capolavori.

image

Un po’ più precisamente, il post lo scrivo con un misto di sintassi yaml e Markdown (vedete ad esempio l’immagine qui sopra), mentre i comandi di generazione ed upload li ho riuniti in un comodo script bash di ben due righe (escludendo le «decorazioni»):

#!/bin/bash

mynt gen -f poluznet/ poluznet-gen/
rsync -avz -e ssh poluznet-gen/ user@server:/path/sul/server

La chiamata a mynt genera il sito, rsync invece carica tutto sul server usando la connessione sicura ssh.

Come mi sono trovato con mynt

Bene. Benché lo sviluppo del software non sia completo (e quando mai lo è?), mynt offre già un bell’insieme di funzioni (ed io manco le uso tutte, che pigro). Ho apprezzato molto la sintassi dei template simile a django, e la comodità nel creare un sito principale con struttura classica a pagine ed un sito secondario a blog, invece che il contrario come fanno alcuni software simili. Il tutto è molto lineare e veloce, e python, il linguaggio su cui si basa mynt lo trovate installato di default più o meno su tutte le distribuzioni Linux e MacOS X. Certo, è un sistema molto nerd di creare un sito e non è adatto a persone che non fanno dell’informatica ed adiacenze la loro carriera, ma quando è comodo perché no?

Aggiornamento del luglio 2014

A partire dalla fine di luglio 2014 questo sito non è più gestito con mynt. Questo non perché mi sia trovato male con il sistema, tuttavia la sua estrema semplicità e limitatezza di funzioni non mi permetteva di ottenere alcune cose che mi interessavano. È stata comunque una esperienza interessante.