Piero V.

Firefox 100

A long time has passed since the last time I have written about a software version update. And I published the last one about Firefox almost 10 years ago.

But this is a special occasion: last Tuesday, Mozilla published Firefox 100. So, congrats, Mozilla! 🥳️🎉️

Now that I think of it, Firefox is the first open source software I have ever used and probably the program that introduced this concept to me. It also “saved” me from Internet Explorer 6 and taught me that the web must be developed following standards.

The first version of Firefox I used was either 1.5.0.x or 1.0.x. Many, many years have passed since then.

Now I have a job tightly connected to Firefox and to Mozilla. This allowed me to contribute back, at least in a tiny way, and it was acknowledged in Firefox 97 release notes, which makes me super happy! (Even though, to be completely honest, that effort was not only mine but also of other Tor community users).

We need Firefox because only alternative and independent browser implementations can guarantee freedom and openness to all web users.

So, thanks, Mozilla, and long live Firefox!

Mirror su OneDrive

Il problema

Una persona, già da diverso tempo, mi ha chiesto di aiutarla a mantenere un mirror delle cartelle importanti di un suo file server Linux sull’account OneDrive, siccome, con Office, lì ha 1TB di spazio.

Stiamo parlando di meno di 500000 file per una dimensione di circa 250GB, quindi non qualcosa di assurdamente grande, ma neanche qualcosa di proprio semplice da gestire.

Finora ho provato sia con rclone, un tool per eseguire operazioni su diversi provider cloud, in particolare di copia e sincronizzazione, sia con quello che è uno dei più diffusi client OneDrive nativi Linux, ma nessuno dei due è riuscito a gestire la cosa.

rclone deve essere uno strumento molto utile per molte situazioni, ma non per questa, perché penso che faccia costantemente richieste per verificare la struttura dei dati in OneDrive, anziché tenersi delle informazioni in locale, ma per questo motivo Microsoft lo rallenta costantemente. Invece il client OneDrive ha un database locale, ma magari a volte ci sono delle inconsistenze e si ferma, con delle eccezioni; in particolare mi sembra non gestisca bene l’essere case insensitive di OneDrive. … [Leggi il resto]

Firejail

Una delle grandissime caratteristiche del software libero è che i rischi per sicurezza e privacy sono esposti agli occhi di tutti.

Quindi personalmente mi fido molto del software proveniente dal repo main di Debian, invece non mi fido di software proprietari di terze parti, per esempio di Spotify.

Avevo già cercato di mettergli una sandbox attraverso i container, però non è una soluzione pratica per questo genere di problema: si perde l’integrazione con l’ambiente desktop (notifiche, tasti multimediali…) e la soluzione è parecchio pesante, infatti serve che ci siano comunque tutte le dipendenze in un piccolo sistema operativo.

Recentemente invece ho sentito parlare di firejail, un programma che permette di isolare dei programmi mediante alcune funzionalità del kernel Linux, come i namespace.

Per ogni applicazione che si vuol far girare ha bisogno di un profilo, in cui si fa una whitelist e una blacklist di file e altre risorse cui essa può o non può accedere. È addirittura capace di bloccare le richieste a programmi come su e sudo.

È veramente rassicurante vedere che di default blocca subito l’accesso completo a file critici per la sicurezza come la cartella .ssh o ai file che permettono l’esecuzione arbitraria di codice, come lo .xinitrc o i profili delle shell. … [Leggi il resto]

Python SSH Tunnel Server

SSH tunnels are great!

They allow to bypass firewalls and NAT problems, and you can use as unprivileged user, since you don’t have to install virtual network devices such as TUN or TAP.

Another good reason to chose SSH is that it is a standard protocol, so there are many implementations: OpenSSH on most Unices, PuTTY on Windows and cross platform libraries (Java, Python…).

However there is a great disadvantage: the SSH server. If you have a server you probably already use SSH, therefore you don’t want to share your custom port and grant access to your server, or create accounts to allow it.

A solution could be creating a chroot or something like that, but I wasn’t really confident in it, therefore I looked for an alternative SSH server, and I’ve come up with this library: TunnelServer.

Python already has a brilliant SSH library: Paramiko. It’s very transparent: it manages the packages for you, but you are the one who should manage the rest (login check, shell comunication, PTY allocation…, socket-ssh channel synchronization). That’s great, but sometimes unhandy, so I’ve written this class, which is a middleware: the class user still has to check login, but you don’t have to create threads to listen on forwards etc… … [Leggi il resto]

Django

Ultimamente sto valutando i problemi di PHP, il linguaggio che ho usato più di tutti assolutamente negli ultimi 7 anni (o più).

PHP è un linguaggio in continua evoluzione: ho cominciato con PHP 4.4, da allora ci sono stati parecchi cambiamenti, per farlo diventare un linguaggio più orientato agli oggetti, tuttavia rimangono certi misteri come molti overhead aggiunti, sembra per niente, certe modalità di interpretazione tutte sue (vedasi operatore ternario).

Un altro buonissimo linguaggio è Python: è sempre libero e molto potente. Inoltre negli ultimi anni il suo uso per il web si è esteso parecchio.

Un nome associato a Python per il web è proprio Django, un framework molto interessante e utilizzato anche da Instagram.

L’ho sperimentato un po’, seguendo anche il tutorial sulla prima applicazione (un sondaggio) e ne sono rimasto davvero impressionato: è molto semplice e veloce da utilizzare. Bastano pochi secondi per poter creare un progetto e cominciare subito a lavorare.

Avevo utilizzato ancora un framework in PHP (CakePHP, se non sbaglio), ma non mi ero trovato benissimo.

La caratteristica da cui sono rimasto più impressionato è la gestione dei dati: non serve conoscere SQL, il framework crea automaticamente le tabelle e le query in base alle classi e ai metodi.

Ciò rende più facile anche l’utilizzo di una shell Python, che il framework prepara con tutte le impostazioni pronte e l’amministrazione.

Inoltre il Python mi ispira una grande versatilità: potrebbe essermi utile un processo diverso dal server web per elaborare dei dati, nonché l’integrazione con altri software, e con Django tutto ciò sembra parecchio semplice, in quanto fortemente modulare.

Non escludo di portare questo sito su Django, anzi, sarebbe parecchio interessante. Tra l’altro il VPS Classic 1 e l’hosting base di OVH hanno lo stesso prezzo, per cui sono ancora più allettato 😉 .