giovedì 28 agosto 2025

WINDOWS - Variabili d'ambiente

 Mi è appena capitato di entrare in un server, cercare di aprire il pannello per la gestione delle variabili d'ambiente e ricevere un errore rundll32.exe:

Il sistema, però, funziona... quindi si può aprire direttamente il pannello lanciando questo comando da un prompt con permessi di amministratore:

"C:\Windows\system32\rundll32.exe" sysdm.cpl,EditEnvironmentVariables

Questo aprirà il pannello e, da lì, è possibile gestire le variabili di ambiente (come il PATH).

mercoledì 27 agosto 2025

LOVE2D - Pubblicazione sul web

Ho iniziato lo sviluppo di un videogame in lua/love2d e volevo ospitarlo su itch.io, che offre anche il sistema per "giocarlo online" direttamente sul browser.

La procedura per ottenere un file giocabile (usa love.js come estensione di node.js) non è propriamente semplice e richiede (su windows) un po' di lavoro.

Utilizzeremo "makelove" (il repository si trova qui: https://github.com/idbrii/love-makelove ).


1. Installazione dei requisiti necessari

Procedura:

  • installare python
  • inserire il percorso di installazione e la directory "Scripts" nel PATH
  • aprire un prompt (cmd.exe) come amministratore (sennò il sistema installa le librerie in locale)
  • lanciare il seguente comando: pip3 install makelove
  • assicurarsi che il tutto sia aggiornato, lanciando: python3 -m pip install --upgrade setuptools (i setuptools servono per la gestione dei packages)

2. Configurazione del "packet maker"

Questa è la procedura:
  • spostarsi nella directory in cui è presente il sorgente del gioco
  • lanciare il comando: makelove --init e compilare i dati richiesti

A questo punto, abbiamo un file di configurazione per la produzione dei "pacchetti".
Lovejs non è previsto di base, quindi bisogna andare ad editare il file makelove.toml.

Procediamo a modificare il file di configurazione, aprendo il file makelove.toml con un qualsiasi editor (anche VS Code).

Un esempio potrebbe essere questo:

name = "TITOLO_GIOCO"
love_version = "11.5"
default_targets = ["win64","lovejs"]
build_directory = "PUBLISH"

love_files = [
    "+*",
    "-*/.*",
    "-./PUBLISH/*",
]

[lovejs]
title = "TITOLO GIOCO"  # used on the resulting web page
memory = "20000000" # starting memory of the webpage (default is 20 MB)

Nota: memory dev'essere grande abbastanza da contenere l'intero "pacchetto del gioco" prodotto. Arrotondate per eccesso.

L'importante è includere il target "lovejs".

Ora si salva e si chiude.


3. Pacchetti

Passiamo alla produzione dei pacchetti. La procedura è:

  • aprire un prompt cmd
  • lanciare il comando: makelove --version-name 1

Nota: ho aggiunto il sistema di gestione della versione, per facilitare le varie build.

Ora abbiamo, nella cartella indicata nel conf (io ho messo PUBLISH), una cartella con la versione e con dentro i pacchetti generati.

Il pacchetto potrebbe essere completo, ma prima di pubblicare i dati conviene modificare il codice della pagina che caricherà il gioco nel browser.

Bisogna entrare nella cartella lovejs e decomprimere il file .zip contenuto qui dentro.

All'interno del file bisogna modificare il file index.html ed il file theme\love.css

Queste le modifiche al file index.html:

eliminare il tag <h1> dentro al <center> in alto

modificare le dimensioni iniziali del canvas "loadingCanvas" con le dimensioni del gioco

eliminare il <footer> con i credits (presente un overlay che interferisce con il gioco)

modificare la funzione js function drawLoadingText(text) in questo modo:

var canvas = loadingContext.canvas;

loadingContext.fillStyle = "rgb(0, 0, 0)";
loadingContext.fillRect(0, 0, canvas.scrollWidth, canvas.scrollHeight);

loadingContext.font = '1em helvetica';
loadingContext.textAlign = 'center'
loadingContext.fillStyle = "rgb( 200, 200, 200 )";
loadingContext.fillText(text, canvas.scrollWidth / 2, canvas.scrollHeight / 2);

Queste invece le modifiche al file love.css:

  • eliminare l'immagine di sfondo dal tag "body" (background-image)
  • cambiare il colore di sfondo e del testo con uno "consono" al gioco (ad esempio... nero e bianco)
  • cambiare i colori delle ancore (link, visited, hover), anche se non dovrebbero essercene

A questo punto, si sostituiscono i due file nello zip e si carica su itch.io.

martedì 26 agosto 2025

WINDOWS 11 - Refresh nelle cartelle

Da quando ho iniziato ad usare Windows 11, mi sono imbattuto in un problema abbastanza noioso: quando copio un file / creo una nuova directory / rinomino qualcosa, la modifica non appare. Devo premere F5 per vedere la modifica.

Per risolvere il problema, si deve eseguire questa procedura:

  1. si apre una cartella qualsiasi
  2. si clicca sui tre pallini orizzontali nel menu in alto (si trovano alla fine del menu, non totalmente a destra)
  3. si clicca su "Opzioni"
  4. si clicca sulla linguetta "Visualizzazione"
  5. nelle "Impostazioni avanzate:" (sotto), si scende fino a "Riquadro di spostamento
  6. si mette la spunta su "Espandi fino a cartella aperta"

Dopo aver salvato, il sistema fare il refresh automatico nelle cartelle (e nel desktop).

Ormai non mi chiedo più che c'entri quest'impostazione con il problema riscontrato, ma... è Windows. Solo chi l'ha programmato lo sa.

giovedì 7 agosto 2025

LUA+LOVE2D - Creare un eseguibile del gioco

Lua (in combinazione con Love2d) è un linguaggio di programmazione che permette di creare "facilmente" dei videogame.

Essendo un linguaggio "scriptato", però, non è possibile compilare un eseguibile.

E' possibile, però, creare un eseguibile in pochi, semplici passaggi:

  1. zippare tutti i file del programma, assicurandosi che il file main.lua sia nella root dello zip
  2. aprire un prompt di CMD nella directory in cui è presente lo .zip (CMD, non PowerShell!)
  3. lanciare questo comando:
copy /b "C:\Program Files\lua\LOVE\love.exe"+AirFighters.zip AirFighters.exe

In questo modo, verrà creato un file .exe che permetterà di lanciare il gioco.

Per poter "distribuire" il gioco, però, non basta l'eseguibile. Dovrete copiare anche tutte le .dll contenute nella directory di love.exe .

Per la modifica dell'icona, è necessario invece utilizzare uno strumento esterno.

lunedì 4 agosto 2025

SQL SERVER - ricerca di % tramite LIKE

In SQL Server, il carattere '%' si utilizza come wildcard per le ricerche. E se volessi cercare proprio quel carattere?

La soluzione è metterlo "tra quadre":

...
WHERE campo LIKE '%testo [%]%'
In questo modo, il sistema lo riconoscerà come "carattere" e la ricerca funzionerà correttamente.