lunedì 6 luglio 2026

GIT - Guida sintetica ai comandi

Questo è un elenco sintetico dei comandi "comuni" per l'utilizzo di GIT.

Nota: per una guida approfondita, visitare questo link.

giovedì 28 maggio 2026

SVN to GIT - Migrare un repository tra due version control

Tempo fa utilizzavo SVN per la gestione dei progetti. Comodo, veloce... ma per le mie capacità, avevo bisogno di un'interfaccia grafica. E usavo Tortoise.

Un mio amico mi ha convinto a provare GIT ed ora... sono passato quasi integralmente a GIT (con Github Desktop come interfaccia - che ho pure compilato sul laptop con linux).
Ok, mi sono ricreato un repository "self-hosted" così da evitare di usare GitHub, però il concetto è comunque lo stesso.

Il fatto è che non voglio perdermi i commit di ciò che ho fatto in SVN.

Ecco quindi una guida per migrare da SVN a GIT.

Nota: la guida funziona sia in ambiente linux che in ambiente windows.

Guida

Per prima cosa, va creata una directory di lavoro in cui operare.

Bisogna anche assicurarsi di avere GIT installato e configurato con l'utenza necessaria.

[step 1] creazione file authors.txt

La gestione delle utenze è leggermente differente, quindi bisogna indicare a GIT come associare la nuova utenza a quella che ha effettuato l'attività su SVN.

Bisogna specificare dentro un file ("authors.txt"), creato nella directory in cui si sta lavorando, la relazione tra l'username di SVN (a sinistra) e l'username GIT (a destra):

developer = Mario Rossi <m.rossi@example.com>

[step 2] clonazione progetto

A questo punto, bisogna clonare il progetto ricostruendo la struttura di GIT basata sui dati presenti in SVN.
Nota: al momento, la procedura funziona, ma questo tipo di attività sembra verrà dismessa in futuro (almeno, stando alla nota in giallo che appare richiamando il comando.

Bisogna aprire un prompt nella directory di lavoro.

Il comando per effettuare questa "migrazione" è:

$ git svn clone "https://svn.example.com/repos/project1/sourcecode/trunk/subdirectory" --authors-file=authors.txt --no-metadata --no-follow-parent ~/project1

Nota: questo è il comando per linux. Per eseguirlo su windows, basta modificare la directory di destinazione indicando il path relativo o assoluto.

Nota: è possibile specificare l'esatto percorso della directory da recuperare dentro SVN, senza infilare nel progetto tutte le altre directory superiori. Se non si inserisce il comando "--no-follow-parent", il sistema risalirà fino alla root e scaricherà (in modo versionato) tutto.

[step 3] creazione repository GIT

A questo punto, bisogna creare il repository in GIT.

E' fondamentale che il repository sia vuoto (niente README.md o .gitignore, quindi).

[step 4] accesso directory

A questo punto, si deve lanciare una sequenza di comandi per impostare correttamente il progetto e caricarlo su GIT.

Per prima cosa, accediamo da console alla directory appena creata:

$ cd project1

[step 5] aggiunta origin

A questo punto, è necessario aggiungere l'origin per fare il push:

$ git remote add origin http://git.example.com/username/project1

[step 6] cambiare da master a main

Quando si clona un repository in SVN, il branch utilizzato per default è "master". Se si vuole invece utilizzare main (ed anche per evitare problemi nel push), va usato questo comando:

$ git branch -m master main

[step 7] push su GIT

Ultimo passaggio da fare è quello di caricare il contenuto su GIT con questo comando:

$ git push -u origin main

A questo punto, si dovrebbe vedere il contenuto su GIT.

Ora è possibile aggiungere i file mancanti (README.md, .gitignore, etc) ed iniziare a lavorare al progetto.

domenica 17 maggio 2026

MySQL - Caratteri strani e doppio encoding

Ho iniziato ad aggiornare un mio progetto che usa un DB MySQL e, analizzando il contenuto, mi sono accorto che alcuni caratteri erano sballati: 

Fuga dalla cittÃ

... anziché...

Fuga dalla città

La tabella ha collation utf8_general_ci e la colonna, nello specifico, ha collation utf8mb4.

Quale poteva essere il problema?

Ecco, alla fine il problema era il sistema di collegamento al DB, che per una configurazione errata faceva un "doppio encoding" nella tabella.

In pratica, il software lo utilizzava come fosse latin1.

Per capire se è questo l'errore, basta fare una query di controllo:

SELECT CONVERT(CAST(CONVERT(nome_colonna USING latin1) AS BINARY) USING utf8mb4)
FROM nome_tabella
WHERE id = 1;

Se il risultato è quello voluto (e non quello con i caratteri strani), allora il problema è proprio quello.

La soluzione è semplice: modificare la tabella DUE VOLTE, la prima impostando il character set a latin1 e poi ri-modificarlo in utf8mb4:

-- prima conversione
ALTER TABLE nome_tabella
MODIFY nome_colonna TEXT
CHARACTER SET latin1
COLLATE latin1_swedish_ci;

-- seconda conversione
ALTER TABLE nome_tabella
MODIFY nome_colonna TEXT
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

Note:

  • la connessione deve utilizzare questo: SET NAMES utf8mb4;
  • sempre fare backup della tabella (o del database), prima!

giovedì 14 maggio 2026

WINDOWS - Eliminazione di un servizio

 Per eliminare un servizio presente su un PC o server Windows, si utilizza questo comando (da cmd):

sc delete NomeServizio

Il nome del servizio si trova accedendo a services.msc, trovando il servizio, click con il tasto destro e poi selezionando "properties" (è sotto Service Name).

mercoledì 6 maggio 2026

Font Awesome - lista delle icone

Spesso nella costruzione delle pagine web, utilizzo delle icone da affiancare ai tasti. E di solito sono le icone di "font awesome".

Il link corretto per cercare le icone è questo:

https://fontawesome.com/search?ic=free-collection

E il riferimento CSS da inserire (per la versione 7.2.0 - sperando sia quella con incluse le icone "free") è:

https://site-assets.fontawesome.com/releases/v7.2.0/css/fontawesome.css

Eventualmente, se ci si basa su una versione più vecchia (la 5.15.4), il link è il seguente:

https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css

venerdì 26 settembre 2025

GODOT - Elemento dietro e davanti ad un oggetto

In alcuni giochi è necessario che il personaggio passi davanti all'oggetto, oppure dietro. Ad esempio, davanti ad un albero o dietro ad esso.
E questo deve dipendere dal punto in cui l'oggetto è "attraversato".
Godot ha un sistema per generare questo effetto: l'ordinamento sull'asse Y.

In pratica, per gli oggetti che hanno lo stesso "Z index", il sistema disegna prima gli oggetti che hanno un valore di Y più "basso" (cioè verso il fondo dello schermo) e poi quelli con un valore più alto.

Per abilitare questo, si entra nel "nodo root" della scena -che dev'essere ereditato da CanvasItem (tipo Node2D), si apre il menu "ordering", si controlla che lo Z Index sia 0 e poi si abilita "Y Sort Enabled".

Facendo questo, quando l'elemento (ad esempio, il protagonista) ha un valore Y più "basso" del secondo oggetto (ad esempio, un ostacolo), il sistema lo rappresenterà davanti. Se invece è più alto, il sistema lo disegnerà prima, e quindi apparirà "dietro" all'ostacolo.
Questo "valore Y" viene considerato prendendo il centro della "croce" che appare sull'oggetto (cioè la posizione del suo "posizionamento").