Ho creato un insieme di applicazioni il cui obbiettivo è rendere l'hosting (mo' non ho voglia di pensare a una traduzione; fatelo voi poi mi dite) più semplice e abbordabile.
Ora come ora se si vuole fornire un servizio attraverso l'Internet (che sia un sito personale o qualcosa di più complicato non importa), dopo aver ottenuto la macchina (o le macchine) che eseguono i programmi necessari, occorre per forza avere un indirizzo ben specifico che non cambia mai se non in situazioni speciali.
Il problema sta nel fatto che non è semplice ottenere questo indirizzo: i fornitori che te lo danno aggratisse si contano sulle dita (a livello globale) mentre i più lo danno solo sotto particolari condizioni, che spesso la persona comune non può soddisfare.
Per via di questo, sono nate delle aziende che si fanno carico di alcuni di questi indirizzi statici e li rendono disponibili ai propri clienti.
Come sappiamo, questo ha i suoi problemi in quanto il futuro del servizio dipende unicamente dalle scelte amministrative e politico-sociali dell'azienda che offre l'inidirizzo.
Le applicazioni che ho scritto utilizzano, per la comunicazione attraverso la rete, una piattaforma che si propone di risolvere il problema degli indirizzi: invece che utilizzare l'indirizzo stesso, identifica la macchina con una coppia di chiavi crittografiche; la chiave privata ovviamente rimane nascosta, mentre quella pubblica è utilizzata al posto dell'indirizzo IP.
Quando la macchina si connette alla rete, la piattaforma associa l'indirizzo dinamico attuale alla chiave pubblica, "pubblicizza" questa coppia al resto della rete (in realtà solo in parte, ma ora i dettagli non sono importanti) e a quel punto la macchina è raggiungibile attraverso la chiave pubblica. Chiaramente questo procedimento avviene ogni volta che l'indirizzo dinamico cambia, quindi se la macchina è connessa ma ci sono cambiamenti, la chiave viene associata al nuovo indirizzo e la nuova coppia resa nota.
Sfruttando questo meccanismo (e un un altro paio, ma non stiamo parlando di quello) le applicazioni provvedono a fornire un sistema di comunicazioni stile HTTP, quindi un utente si connette a una macchina remota, richiede una certa risorsa e la macchina remota invia i dati relativi, magari generandoli sul momento in base a dati presenti nella richiesta.
Poi già che c'ero, ho implementato una cosa tipo HTML, ma senza usare HTML. L'ho fatto perché, visto che stavo già sostituendo gran parte delle tecnologie Web, tanto valeva fare 31 e sostituire pure quello.
Purtroppo nonostante il tutto sia ad un livello teoricamente utilizzabile per cose mediamente semplici, non è stato testato in condizioni reali quindi anche se lo rendessi pubblico non è detto che funzioni come previsto.
In ogni caso, il lato negativo(?) della cosa è che non è possibile interfacciarsi con il Web già esistente, per cui una volta disponibile sarebbe letteralmente privo di contenuti.