package main
venerdì 25 febbraio 2022
Grafica base in Go
martedì 22 febbraio 2022
Webassembly Golang Mandelbrot
Era da tempo che volevo provare WebAssembly (abbreviato wasm).. ho scoperto che sia GoLang che Qt permettono di compilare in Wasm e cosi' ho fatto una prova
Per eseguire applicazioni WAsm si deve configurare il webserver a riconoscere il Mime Type wasm . In Apache e' sufficiente aggiungere la linea in /etc/mime.types mentre in NGinx /etc/nginx/mime.types con application/wasm wasm;
Il file compilato deve avere l'estensione .wasm
Per compilare il file go.wasm si usa la linea di comando
GOOS=js GOARCH=wasm go build -o wasm.wasm
ATTENZIONE: i file wasm rimangono in cache del browser. In fase di sviluppo e' quindi necessario sincerarsi di pulire la cache con CTRL+SHIFT+R (od usare una sessione anonima)
Per creare il file wasm_exec.js e' sufficiente (attenzione al punto finale)
cp "$(go env GOROOT)/misc/wasm/wasm_exec.js" .
Il programma genera una immagine dell'insieme di Mandelbrot che viene codificata in PNG e successivamente in Base64 per divenire la src del tag img della pagina web
https://github.com/c1p81/gowasm_mand
wasm.go
Index.html
venerdì 11 febbraio 2022
Ser2Net Go
Premesso che questo non e' il sistema corretto di usare una goroutine in quanto non termina mai ho provato a fare questo programma che in una goroutine legge i valori da una porta seriale e tramite un channel manda i dati ad un'altra goroutine che invia sulla rete
non e' un codice da copiare
Rest Client in Python
Dopo la versione in Go la medesima funzione in Python
TicTacToe Go
Volevo provare a creare una macchina di apprendimento per il gioco TicTacToe (Tris)
Il passo e' stato quello di creare il gioco per umani...la cosa che mi ha dato piu' soddisfazione e' stata la funzione per determinare la condizione di vittoria dei giocatori
In pratica ogni casella del gioco e' associata ad una potenza di 2...si sommano i valori delle caselle e si fa un AND con la maschera di bit delle condizioni di vittoria
il prossimo passo e' salvare le varie partite con una Trie
---------------------------
Il nome delle caselle e' cosi' ordinato
______
3 | 4 | 5
______
6 | 7 | 8
Rest client in GO
Un semplice di client di servizio Restful con GO
JSon in Go
Leggere Json in Go non e' esattamente banale perche' il linguaggio e' fortemente tipizzato
Se il tracciato record del Json e' fissato e' conosciuto si puo' fare un Unmarshal del tracciato altrimenti con Json dinamici o non conosciuti la situazione diventa piu' complessa
Partiamo da un Json complesso
---------------------------------------------------------------------------
---------------------------------------------------------------------------
per fare l'Unmarshal del Json si deve definire tramite Struct il tracciato record con indicato anche il tipo di variabile associata ad ogni campo...in questo campo essendoci piu' livelli si devono creare delle Struct intermedie per i livelli piu' interni. Da notare che le variabilenelle Struct hanno la prima lettera maiuscola per l'esportazione ed il tag Json corrispondente
Interessa arriva a leggere la proprieta' idUserSession dell'utente (si tratta di gestire una authorization da un servizio Restful)
---------------------------------------------------------------------------
---------------------------------------------------------------------------
---------------------------------------------------------------------------
Debugger integrato ESP32S3
Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede nell'ID USB della porta Jtag. Nel modulo...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...