Categorie
Blog Informatica

Ci riprovo: CitySim

Gioco a SimCity da quando avevo 8 anni. È logico che da quando ho imparato a programmare mi sia venuto in mente varie volte di provare a ricreare in qualche modo questo gioco.

Da qualche giorno ho dato vita all’ultimo mio tentativo: un motore di simulazione economico/cittadino senza interfaccia grafica sviluppato in C.

Il progetto si trova su GitHub all’indirizzo https://github.com/axettone/citysim ed è attualmente (28 febbraio 2021) in fase embrionale. L’idea è quella di creare le strutture dati che mappino i dati economici, della popolazione, ecc. e poi avviare una serie di loop che facciano evolvere la situazione.

Come dicevo poco sopra non ho ambizioni grafiche, ma in linea di principio immagino che sia possibile creare un layer superiore (o laterale), magari basato su TCP/IP che metta in comunicazione questo “motore” con una GUI.

Categorie
Informatica Tips & Tricks

VLC non vede il server DLNA su macOS?

È capitato anche a me. Dal mio MacBook Air del 2017 con macOS Big Sur non riuscivo a vedere il mio server miniDLNA tramite VLC, cosa che invece dovrebbe capitare dalla voce Universal Plug’n’Play.

Fortunatamente la soluzione è semplice quanto misteriosa!

È sufficiente andare nelle Preferenze di Sistema, da qui andare sulla Rete, poi selezionare le opzioni Avanzate e nella tab TCP/IP abilitare IPv6 anche solo come link locale.

A questo punto VLC dovrebbe potersi collegare rapidamente.

Se ancora non vedi il server DLNA, può darsi che tu abbia altri problemi di rete, o magari il firewall sull’host che ospita il servizio DLNA non consente la connessione.

Categorie
Informatica

Una rivista dal basso

Stavo ripensando a Linux&C., la rivista edita da Piscopio con cui imparai ad usare Linux 20 anni fa. La ricordo con affetto e soprattutto con rispetto, perché era divertente ma allo stesso tempo scendeva in profondità nei temi.

Da quella rivista ho davvero imparato delle cose.

Oggi le riviste sono tutte messe in ginocchio da Internet, perché basta una ricerca su Google per trovare tutto quello che si vuole. In più le persone leggono meno (il tempo lo si spende su Facebook) e l’edicola trae sicuramente più profili dal lotto che dalle riviste specializzate (sigh!).

Eppure non credo che il paradigma “on-demand” sia autosufficiente. A volte avere degli spunti da persone più esperte è perfino più utile che trovare la soluzione ad un problema su Stack Overlflow: ci consente di scoprire che forse il nostro approccio era sbagliato, e il problema va affrontato in modo radicalmente diverso.

Sono convinto che leggendo qualcosa negli unici due numeri che ho ritrovato qui su Archive.org si possa imparare qualcosa ancora oggi.

L’idea è questa: ricreare qualcosa di simile sulla falsariga di Phrack dove gli autori inviano il loro materiale da pubblicare gratuitamente online e qualcuno si offre di coordinare e verificare la qualità degli articoli prima della pubblicazione.

Chi è interessato mi contatti!

Categorie
Informatica Tips & Tricks

Archiviare i video di YouTube con youtube-dl

DISCLAIMER!

Non so se sia sempre legale scaricare video da YouTube. Se trovo molto discutibili eventuali limitazioni in questo senso, dall’altro lato mi sento di raccomandarlo solo per fini di archiviazione personale. Molti youtuber, infatti, prodocono contenuti investendo tempo e denaro perché si aspettano di guadagnare (poco!) dalle nostre visualizzazioni. Ecco perché è bene guardare sempre e comunque i video su YouTube, anche se li abbiamo intelligentemente archiviati per un futuro in cui non si sa se li avremo ancora a disposizione.

Se come me adori i documentari, avrai scoperto che su YouTube è possibile trovarne di bellissimi, da guardare e riguardare tante volte. Oppure, perché no, da far vedere ai nostri figli tra qualche anno.

Ma che cosa potrebbe succedere se Google, proprietaria di YouTube, decidesse un domani di eliminare alcuni video? O sospendere YouTube? Oppure, ed è capitato, se qualcuno riuscisse ad hackerare il canale YouTube e cancellarne tutti i video, senza che l’autore ne abbia un backup?

Insomma, archiviare qualche video da YouTube potrebbe essere molto utile, ma farlo non è così facile. Certo, ci sono siti che lo fanno per noi, ma spesso offrono opzioni molto limitate, e sinceramente mi fido poco di chi non chiede mai soldi in cambio.

Ecco allora un progetto degno di nota: youtube-dl (vedi sito), che ci consente da linea di comando di scaricare in modo anche molto avanzato i video da YouTube, anche coi sottotitoli, per poterli archiviare magari su un disco fisso.

Per installare l’ultima versione (raccomandato!) di youtube-dl, è necessario eseguire questi comandi su una qualsiasi debian-derivata:

sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

Siccome questo tool consente di scaricare i formati migliori audio e video, è necessario però poi avere un software per riconciliare i due flussi. Personalmente, mi sono trovato sempre molto bene con ffmpeg. Per installarlo:

sudo apt install ffmpeg

A questo punto non ci resta che andare su YouTube, copiare l’URL del video che ci interessa e magari vedere quali lingue sono supportate dai sottotitoli. Supponiamo che ci interessi l’inglese (en), ci basterà digitare:

/usr/local/bin/youtube-dl -f bestvideo+bestaudio --merge-output-format=mp4 --write-sub --convert-subs srt --sub-lang en https://www.youtube.com/watch?v=codice_video

per ottenere un file mp4 leggibile da qualsiasi player con tanto di sottotitoli (convertiti in srt)!

Categorie
Informatica Tips & Tricks

Avviare IRSSI al boot con Systemd su RaspberryPi

In realtà il sistema che propongo vale per qualsiasi sistema Linux con systemd.

Questo tutorial è il seguito naturale di quello in cui ho spiegato come usare il client IRC su Raspberry via SSH e screen, in modo tale da rimanere sempre agganciati ai nostri canali preferiti.

Il problema è che questa sera per colpa di un sovraccarico (lavatrice, lavastoviglie, ecc. ecc.) è saltata la luce e mi sono reso conto che avrei dovuto riavviare a mano tutto quanto.

Per lanciare Irssi al boot come utente (pi) è necessario creare una Unit utente (sì, systemctl può essere usato anche dagli utenti semplici col flag --user) nella cartella ~/.config/systemd/user/.

Creiamo dunque un file chiamato irssi.service con questo contenuto:

[Unit]
Description=IRSSI on SCREEN

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/screen -dmS irc irssi -n axettone
ExecStop=/usr/bin/screen -S irc -X quit

[Install]
WantedBy=default.target

Dove -n axettone mi consente di usare il mio nome utente con cui sono registrato su Freenode.

A questo punto è necessario configurare Irssi affinché si colleghi di default ai nostri server preferiti ed effettui le join ai canali.

Infine, abilitiamo la Unit in modo tale che parta da sola:

systemctl --user enable irssi.service
systemctl --user start irssi.service
Categorie
Informatica Tips & Tricks

Restare sempre connessi ad IRC grazie ad SSH e Raspberry Pi

IRC è una figata e il bello è che lo usano in pochi, motivati e capaci utenti.

Sebbene le varie implementazioni del protocollo abbiano alcune debolezze, il vero problema secondo me è sempre stato dato dalla sua natura asincrona: se ti scolleghi da IRC, ti perdi per sempre la conversazione che seguirà.

Siccome le conversazioni su IRC spesso sono lente, e siccome su alcuni canali è interessante leggere le discussioni pubbliche fatte in nostra assenza, la soluzione migliore è quella di usare un client IRC remoto sempre connesso, e collegarci ad esso quando serve.

La soluzione ideale è usare un Raspberry Pi, che possiamo tenere sempre acceso in casa nostra e a cui possiamo collegarci da ovunque via SSH, anche usando OpenVPN dall’esterno delle mura domestiche.

Installare un client IRC

Se si vuole usare SSH (consigliato!), il top è Irssi. Colleghiamoci al Raspberry ed eseguiamo questi comandi.

sudo apt update
sudo apt install irssi

Irssi si lancia da linea di comando ed è già configurato per i server “classici”, tra i quali FreeNode. Se ci si vuole collegare ad azzurra è necessario aggiungere la rete e il server irc.azzurra.org.

Qui c’è tutta la documentazione di Irssi.

Installare screen

Qualora non fosse installato, installare screen

sudo apt install screen

Screen consente di creare una sessione di terminale sganciata dal terminale corrente. Questo significa che se la connessione viene chiusa (per errore o per scelta), la sessione in realtà continua ad essere attiva, e, ricollegandoci via ssh, possiamo ripristinarla.

Creiamo la sessione con screen e apriamo il irssi

screen
irssi

Una volta collegati al server ed effettuato le /join ai nostri canali, possiamo sganciarci dalla sessione in qualsiasi momento premendo Ctrl+A e subito dopo Ctrl+D.

Per rientrare nella sessione, basta lanciare il recovery con

screen -ar

Ed ecco che così abbiamo la nostra connessione permanente ad IRC!

Categorie
Informatica Tips & Tricks

Come creare ASCII ART in modo automatico

L’ASCII ART è quella disciplina artistica digitale di ricreare immagini usando solo caratteri di testo.

Per intenderci…


______ _   _ _____ _       _          _ _ _ 
| ___ \ \ | |  __ (_)     | |        | | (_)
| |_/ /  \| | |  \/_ _   _| |__   ___| | |_ 
|  __/| . ` | | __| | | | | '_ \ / _ \ | | |
| |   | |\  | |_\ \ | |_| | |_) |  __/ | | |
\_|   \_| \_/\____/_|\__,_|_.__/ \___|_|_|_|
                                            

Solitamente si usa(va)no nei terminali testuali per rappresentare loghi o scritte particolarmente evidenti. Si tratta di un retaggio degli anni d’oro dell’informatica, ma ancora oggi vantano una schiera di appassionati.

È possibile generare automaticamente ASCII ART con siti come questo a partire da scritte qualunque… basta digitarla e provare i vari stili!

Anche se la cosa funziona bene solo con loghi molto semplici, con pochi colori e senza troppi “ghirigori”, in siti come questo è possibile anche convertire una immagine in ASCII ART con un solo click del mouse.

Categorie
Informatica Sistemi Operativi Tips & Tricks

FreeBSD e supporto a UTF-8

Dopo aver installato FreeBSD su un server remoto, ho scoperto che una volta collegatomi via SSH non riuscivo a digitare correttamente le lettere accentate. Ho provato anche col simbolo dell’euro (€) ma niente da fare.

Ho scoperto allora che FreeBSD di default non supporta UTF-8, ma che è possibile risolvere il problema in vari modi.

Essenzialmente si può scegliere di abilitarlo a livello di sistema o per singolo utente. Opterò per questa seconda possibilità, perché finché il supporto non sarà presente di default, ritengo sia possibile che si presenti qualche problema. Se ritieni che io sia troppo prudente, segui questa mini guida usando però il file /etc/login.conf anziché quello specifico per l’utente ~/.login_conf, ma tutto il resto è uguale.

Per abilitare il supporto a UTF-8 di FreeBSD a livello di utente

  1. Aprire il file ~/.login_conf col proprio editor preferito

  2. Sostituire il contenuto con quello mostrato in figura

    me:\
    :charset=UTF-8:\
    :lang=en_US.UTF-8:
    (nella seconda e terza riga usare la tabulazione, ricopiare anche gli slash e i ‘:’)

  3. Compilare il file di configurazione

    Il file che abbiamo appena modificato va compilato col comando:
    cap_mkdb ~/.login_conf

  4. Effettuare il logout e di nuovo il login

    Le impostazioni vengono ricaricate al login successivo

Ho letto in giro che dalla versione 13 il supporto di FreeBSD per UTF-8 ci sarà di default, speriamo!

Categorie
Blog DevOps Informatica Tips & Tricks

FreeBSD e mysql: errore ripristino database

Stavo provando a divertirmi con FreeBSD, e mi è capitato di dover ripristinare un intero database di cui avevo fatto il backup con mysqldump.

Ho tentato il ripristino come ho sempre fatto su linux, col seguente comando:

mysql -u root -p < file_backup.sql
Enter password: 
Please use --connect-expired-password option or invoke mysql in interactive mode

L’errore che si vede nell’ultima riga è perché, ho poi scoperto, dopo aver configurato il database con mysql_secure_installation, evidentemente c’è bisogno di cambiare la password al primo utilizzo.

Per risolvere mi sono dunque collegato a mysql con la password scelta durante la fase di installazione e l’ho poi settata (ovviamente uguale a prima)

mysql -u root -p
set password = password('nontelodico');

Et voilà!

Categorie
Informatica Tips & Tricks

Big Sur: risolvere problemi audio con cuffie/auricolari Bluetooth

Dopo l’aggiornamento a macOS Big Sur, ho notato gravi problemi con le mie cuffie bluetooth: l’audio saltava, si sentiva a tratti ed era praticamente inutilizzabile.

Segnalo che la soluzione è piuttosto semplice: basta aprire l’applicazione Terminale, incollare questo comando e premere Invio:

sudo rm -rf /Library/Audio/Plug-ins/HAL/

A questo punto verrà richiesta la password dell’utente, che dovrà essere inserita per autorizzare il comando.

A questo punto Riavviare subito il Mac e godersi l’audio nelle proprie cuffie bluetooth preferite!