È incredibile e pazzesco quanto in questi giorni sto migliorando infinitamente il mio Pignio, anziché marcire spiritualmente (…per quanto continuando a farlo fisicamente perché, se pur posso programmare in giro, è chiaramente più comodo e produttivo farlo a casina). Soprattutto, penso di aver risolto diversi problemi in un colpo solo stavolta, quindi miao!!! Poi oh, certamente Pignio non mi libererà in maniera magicamente definitiva dalla brama profonda che avrei per il ficcarmi un coltello in gola, però finché dura è la distrazione migliore che ho; mi salvo le mie immaginette perverse, e da stamattina pure i video, e faccio finta che vada tutto bene. 👻
Per prima cosa… cercavo, già da quando la settimana scorsa ho iniziato a sviluppare, un metodo per rendere l’esperienza di navigazione del sito più simile ad una SPA, cioè quelle webapp moderne tutte lato client che da anni vanno tanto di moda e non funzionano su nessun cazzo di browser se non le ultime 3 versioni major dei 3 browser esistenti… ma, ovviamente, tenendo il cuore della app sempre lato server. Ecco, la conseguenza di ciò è già in produzione, ma io ancora non riesco a credere che, alla base, sia stato così semplice: ho trovato questo coso chiamato Unpoly (cioè, Copilot me lo ha detto, ops), ed è bastato aggiungere il suo bundle JavaScript al mio HTML, + 3 righe di setup, per avere la navigazione senza refresh della pagina… sia i link che i form vengono gestiti infinitamente più velocemente, perché il browser non deve distruggere e ricreare tutto il DOM e gli affarini connessi ogni volta. 😳
Dovrò sistemarlo meglio nei giorni a venire, soprattutto perché di default non ha animazioni, ma è fantastico che alla base funzioni già completamente da solo… senza né cambi alla marcatura HTML, né l’aggiunta di codice sul server; cosa che quindi lo rende completamente plug and play, a differenza di (se ho capito bene) HTMX, un’altra libreria per fare questo tipo di fancy (e mi sa che, se le cose stanno così, implementerò questa libreria anche sui miei siti statici). L’unica cosa per cui dovrò aggiungere degli attributi HTML specifici (e solo quelli, nient’altro!) è per il caricamento progressivo nelle pagine degli elementi… che comunque è qualcosa che, se avessi fatto con codice custom, avrebbe richiesto ben più dell’aggiunta di 2 attributi HTML, quindi non c’è proprio niente di cui lamentarsi. Per ora l’ho fatto solo sulla home, che era la sezione più urgente su cui implementare una qualche paginazione, e così ho modo di testare se ho fatto le cose per bene, prima di passare alla ricerca e alle collezioni. (Spoiler: NON le ho fatte per bene; c’è un bug lieve che, ovviamente, ho scoperto solo in produzione…) 🐌
E, nel frattempo… sto provando anche ad usare la funzione di gestione dei progetti di GitHub, per evitare di perdermi le cose da fare per strada (cosa che, ahimè, succede spesso)… e per evitare di perdere il mio spirito per strada, perché credo che la lavagna kanban, con le cose che si accumulano da una parte per poi spostarsi via via dall’altra man mano che si completano, sia segretamente soddisfacente. Forse è anche un’arma a doppio taglio, perché, casomai finirò con task arretrate di mesi (e, statisticamente, succederà), queste staranno lì belline, e la gente potrà rinfacciarmelo… ma pazienza, la tabella resta comunque pubblica per chi vuole spoilerarsi le prossime schifezze (o, non sia mai, contribuire con codice o documentazione a quello che è un progetto open-source, non sia mai!!!): https://github.com/octospacc/Pignio/projects. 🦿
Boh, comunque sia, per chi ancora non ha goduto e sente l’impellente bisogno di farlo (adesso ben più di prima) ricordo che l’applicazione è su pignio.octt.eu.org… Con anche il manifest PWA e tutto, tra l’altro, con cui si aggiunge per bene come webapp su Chromium… ma non su Firefox, perché ancora non ho un’icona pronta… e pure questa è una questione da risolvere velocemente, perché altrimenti ho difficoltà a trovare la app sulla mia stessa schermata home del telefono. (“Se tornate ancora indietro vi do un pignio!”) 😤