Un promemoria per le pause che sa se sei alla scrivania

La maggior parte dei promemoria per le pause si basa su un semplice orologio, per cui l’allarme scatta comunque nell’istante in cui un timer da 50 minuti arriva a zero, anche se hai passato 30 di quei minuti lontano dalla scrivania a prendere un caffè, perché il timer non ha modo di sapere che ti sei già riseduto. Ho già uno smartwatch che mi vibra al polso ogni volta che sto seduto troppo a lungo, il che aiuta, anche se misura la cosa sbagliata, dato che guarda il mio polso e non la mia scrivania, così che bastano un paio di movimenti del braccio per convincerlo che mi sono alzato, mentre io sono ancora sulla stessa sedia, davanti allo stesso schermo. Sono anche il tipo di persona che si concentra al punto da perdere completamente la cognizione del tempo, per cui di solito il primo segnale che ho esagerato è il bruciore agli occhi. Poiché volevo qualcosa che guardasse la scrivania al posto mio, mi sono rivolto a un pezzo di spazzatura elettronica del 2009 che sta proprio in un angolo di quella scrivania: un netbook Samsung N130 con processore Intel Atom a singolo core e 1GB di RAM, sul quale gira Void Linux, la stessa macchina che ho trasformato in un router WiFi per la taverna qualche mese fa. L’ho reso un sorvegliante da scrivania che controlla se sono davvero seduto davanti alla postazione, conta il tempo di lavoro solo mentre sono lì, e mi richiama quando resto troppo. Crediti immagine: Bananayota, trovata su Pixabay TL;DR L’idea di base: quando qualcosa si muove nell’inquadratura della webcam, significa che sono alla scrivania. Se resto alla scrivania troppo a lungo senza pausa, il netbook mi avvisa a voce. Un vecchio netbook Samsung N130 con Void Linux fa da sorvegliante da scrivania. motion osserva la webcam integrata e, a ogni inizio e fine di movimento, scrive active oppure idle in un semplice file di stato. Un piccolo demone in Nim legge quel file e tiene il conto del tempo continuativo alla scrivania con una barra di avanzamento su una sola riga, così che al raggiungimento del limite chiama espeak-ng e wall, mentre un’assenza sotto i 5 minuti non azzera mai il conteggio. Non viene registrato nulla, perché il flusso video non lascia mai il netbook e nessun fotogramma finisce su disco. Il demone gira come servizio runit supervisionato e senza privilegi, e costa lo 0,01% di un core e 2 MB di RAM, dato che motion è il vero costo su questo hardware. ...

6 settembre 2026 · Andrea Manzini

Quanto codice stai testando ? (5)

🧭 Dove eravamo rimasti Bentornati a questa nuova tappa del nostro viaggio nella misurazione della test coverage sui binari precompilati! Nel quarto capitolo abbiamo introdotto funkoverage, uno strumento nativo ad alte prestazioni basato su eBPF, che sfrutta uprobe_multi per catturare l’ingresso nelle funzioni in GNU/Linux con un overhead inferiore al 2%. Fino ad ora, le librerie statiche venivano scoperte all’installazione analizzando i binari con ldd (tramite le dipendenze DT_NEEDED). Tuttavia, c’era un enorme elefante nella stanza: dlopen(). Alcuni dei software più complessi e modulari al mondo, come i web server con moduli dinamici, le applicazioni enterprise basate su plugin e i database multi-protocollo, caricano le proprie dipendenze a runtime, al volo. Poiché queste librerie non sono dichiarate nell’header ELF DT_NEEDED, risultano invisibili a ldd durante l’installazione. Oggi diamo la caccia a questo fuggiasco tecnologico: scopriremo come lo abbiamo risolto con una strategia elegante ed estremamente scalabile, la strumentazione eBPF JIT event-driven, e la metteremo alla prova sul campo con binari di produzione reali e non modificati come Nginx e OpenSSL! ...

11 agosto 2026 · Andrea Manzini

syscalln't 🚫

🤔 Cos’è una syscall, in pratica? Crediti immagine: Mike Norris via Pexels Ogni volta che il tuo programma legge un file, scrive su un socket o alloca memoria, a un certo punto deve chiedere al kernel di farlo per davvero. Quella richiesta è una syscall: il confine preciso e ben definito in cui il codice in userspace passa nel kernel. write(), read(), open(), mmap() non sono semplici funzioni di libreria, sono l’intero vocabolario che il tuo programma ha a disposizione per parlare con il mondo esterno. Tutto il resto — da fwrite a file.write() in Python fino a std::fs::File in Rust — non è altro che un wrapper attorno a questa manciata di punti di ingresso del kernel. ...

16 luglio 2026 · Andrea Manzini

Riepilogo di metà 2026: programmazione, conferenze e workshop

📝 In breve (TL;DR) Siamo già a metà del 2026 e questi primi sei mesi sono stati davvero intensi. Tra scrittura di codice, conferenze e workshop in tutta Europa, ho lavorato sulla gestione dei sistemi, sul green computing, sull’IA locale e sulla sicurezza del software. Questo post è un riepilogo dei progetti e dei talk che hanno caratterizzato il mio percorso da febbraio a giugno. 🛠️ Da febbraio a maggio: approfondimento sul progetto Uyuni Per i primi quattro mesi di quest’anno, la mia attività principale si è concentrata quasi interamente sull’affascinante mondo del progetto Uyuni. Se non avete ancora avuto l’occasione di usarlo, Uyuni è una soluzione di gestione delle infrastrutture e di configurazione incredibilmente potente e completamente open-source. Originariamente nato come evoluzione di Spacewalk, oggi rappresenta il progetto comunitario upstream che alimenta direttamente SUSE Multi-Linux Manager, precedentemente noto come SUSE Manager. ...

14 giugno 2026 · Andrea Manzini
Buy Me a Coffee at ko-fi.com Buy Me A Coffee

This site does not use cookies or collect any personal data. © 2026 Andrea Manzini.