Piero V.

Un tuffo nel passato

Devo ammettere di essere un po’ un accumulatore.

In tanti anni, non ho mai buttato via i miei computer vecchi, pur sapendo che realisticamente non li riaccenderò mai. Soprattutto quelli degli anni ‘90, che sono potenziali bombe a causa della piaga dei condensatori. Ma alla fine ho deciso di buttare via quelli che un tempo erano stati protagonisti della categoria muletto di questo sito.

Prima, però, ho deciso di creare un’immagine dei loro dischi. E, dato che c’ero, ho deciso di avviarle con Qemu per vedere cosa avevo lasciato dentro.

Il primo computer era dotato di un Pentium MMX. Probabilmente risaliva a circa il 1996, ma non sono troppo sicuro perché mi è stato donato da una conoscente di famiglia, che altrimenti lo avrebbe buttato. Se ben ricordo, aveva 64MB di RAM, che io avevo portato a 128MB (di più non supportava). Mi sembra che proprio per comprarla fossi andato per la prima volta alla fiera dell’elettronica di Pordenone. E quella volta avevo comprato anche la scheda wireless Edimax EW-7128g, che mi aveva fatto tribolare non poco. … [Leggi il resto]

IMAP downloader

Two weeks ago, I needed to mass-download a few IMAP mailboxes before migrating them to another provider.

Gist contains many scripts to do so, and I tried one of them, but it did not work as I wanted. I wanted to download all the IMAP folders, not only Inbox.

Therefore, I wrote my version of that script 😄️.

I used imapclient instead of the built-in imaplib because it is more Pythonic and handles all the tedious conversions between bytes, strings, and other types.

The center of the script is the process function. It connects to an IMAP server, queries the list of folders, and downloads all the messages from each one but trash and spam (but notice that the comparison is case-sensitive!).

client.fetch downloads all the messages you provide to it, which caused an OOM in my case. Therefore, I split the list with the message IDs into chunks. I had to write the batches function because I was running on Python 3.11. From Python 3.12, you can use itertools.batched instead. … [Leggi il resto]