Sette giorni densi, in cui il progetto “blog” è passato dall’essere un sito statico con un pannello Flask di fortuna a un piccolo ecosistema: CMS scritto bene, immagini generate dal modello locale, e un filo diretto tra le due macchine di casa che adesso registra pure quello che faccio. Ripercorro tutto in ordine, con i link ai post già scritti in dettaglio.
Domenica: il CMS definitivo (.NET 10 + Angular 20 + Hugo)
La settimana è partita buttando via il pannello Flask e sostituendolo con
BlogAdmin: API REST in ASP.NET Core
10 organizzate a feature slice (Auth, Posts, Media, Rebuild), UI Angular 20
con store a segnali NgRx, login JWT e deploy Docker a due container con volume
condiviso. In più .NET Aspire per lanciare
API + Angular + dashboard con un solo dotnet run in fase di sviluppo.
Il risultato: scrivo in Markdown con anteprima live, e Pubblica fa la build Hugo da solo. Da quel giorno tutti i post di questa settimana sono nati lì.
Lunedì–martedì: GX10 e Strix Scar 16 finalmente alla stessa tavola
Il pezzo che mancava era il collegamento tra il portatile (Strix Scar 16) e il
server (GX10). Ho configurato Copilot sullo Scar con un endpoint custom
GX10-Qwen che punta al proxy sul server, abilitando toolCalling, e ho
verificato il flusso con un test multimodale — inviare un’immagine dallo
Scar e farla commentare al Qwen3.8 Flash Next che gira sul GX10. Dettagli in
Collegare GX10 e Strix Scar 16.
Un particolare tecnico che vale la pena ricordare: VS Code nel suo endpoint
custom non inoltra l’apiKey nelle richieste (manda un Authorization: Bearer vuoto). Per distinguere quale macchina sta parlando, il proxy è
passato all’identificazione via IP sorgente, con l’apiKey come
fallback quando arriva.
Da lì è nata anche la domanda da leoni: ha senso sommare i 16 GB di VRAM del portatile ai 128 GB unificati del GX10 per un’inferenza “a quattro mani”? L’analisi è in un post dedicato (“16 + 128 = 144 GB”) — risposta breve: per i modelli che uso oggi no, il collo di bottiglia è la banda fra le due macchine, non la memoria.
Mercoledì–giovedì: il blog che si disegna le copertine
Il CMS ora genera le copertine da solo:
un endpoint /covers che sottomette un workflow a ComfyUI con Qwen Image
(versione 2512 quantizzata GGUF + LoRA Turbo a 4 step), fa polling sullo
stato e scrive il PNG in static/images/, aggiornando il front matter del
post. Un prompt precompilato ricava il soggetto da titolo, descrizione e tag;
il seed è riproducibile. Nel frattempo la UI è passata a un layout vero in
Angular Material.
Venerdì–sabato: il diario che scrive i post
L’idea più divertente: se il proxy tra VS Code e Qwen vede tutto, può anche
registrare. Il gateway di gx-telegram ha ora un activity log JSONL con
macchina, progetto e il testo dei turni — scartando i prompt interni di
Copilot e mascherando i secret. Uno script (scripts/generate-draft.py)
prende gli ultimi N giorni, filtra ciò che è privato, ne fa un digest e chiede
al modello locale di trasformarlo in una bozza di post con il front matter
giusto. Un timer systemd la lancia ogni lunedì alle 09:30.
Questo post è anche un test di quel flusso — con l’ironia che la bozza automatica di oggi esiste già, e io la sto riscrivendo a mano. Per ora il modello racconta bene cosa è successo ma appiattisce i numeri e perde i nessi tra le cose: per i riassunti della settimana il passaggio umano resta.
I numeri della settimana
- 19 commit in due repo (15 sul blog, 4 su
gx-telegram) - 5 post pubblicati, di cui 3 con copertina generata da Qwen Image
- 2 macchine collegate via proxy, con identificazione via IP
- 1 pannello Flask definitivamente in pensione
La settimana prossima: ripulire il generatore di bozze (il digest dovrebbe includere anche i commit git, non solo le chat) e vedere se il trigger del lunedì mattina funziona davvero senza di me.
