Alessio Biancalana Grab The Blaster di Alessio Biancalana

openSUSE Hack Week 25: Distrobox in Go, ma anche moltissime altre cosette

Come di consueto, anche quest’anno nella comunità di openSUSE si è tenuta la openSUSE Hack Week. Sono ormai un po’ di anni che partecipo, ma in particolare quest’anno le cose con cui ci siamo (e in particolare mi sono, lol) sporcato le mani sono succose e fichissime, quindi volevo scriverne un pochettino a mo’ di appunti sparsi.

Distrobox in Go

Il progetto principale in cui mi sono cimentato insieme a un gruppo di amici (Emanuele De Cupis, Fabrizio Sestito, e Luca Di Maio stesso) è stato quello di tentare di riscrivere Distrobox in Go. Non proprio la cosa più banale del mondo, ma soprattutto devo dire che in una settimana abbiamo raggiunto uno stato di cui siamo soddisfatti e che penso condivideremo pubblicamente a breve. Allo stato attuale la prossima incarnazione di Distrobox consente di:

  • Creare delle distrobox esattamente come la vecchia versione;
  • Entrare nei container che sono stati creati;
  • Rimuovere le distrobox;
  • Più o meno tutto quello che faceva il comando assemble.

Mancano ancora un po’ di cose, tra cui lo stop dei container e la creazione di container effimeri (aka distrobox-ephemeral), ma allo stato attuale possiamo quantomeno usare la nuova versione per fare un po’ di dogfooding, il che alla fine di una settimana di lavori piuttosto intensi e pull request agli orari più assurdi è sicuramente un risultato incoraggiante (a dir poco).

La riscrittura ci ha permesso di portare (o quantomeno cominciare a portare) Distrobox un passo avanti, ottenendo dei benefit che con la vecchia implementazione erano assolutamente impossibili anche solo da pensare:

  • Un sacco di leggibilità in più per quanto riguarda il codice, il che significa anche si spera una manutenzione più agevole;
  • Un’architettura migliore che divide l’implementazione della CLI dall’implementazione sottostante dei comandi, il che permetterà in futuro di usare Distrobox anche come libreria all’interno di altri programmi (sbizzarritevi!);
  • Moltissimo testing in più, sia unitario che di integrazione.

La cosa che mi ha lasciato stupefatto, durante l’Hack Week, è che addirittura questo non sia stato l’unico output.

Packaging di Lima per openSUSE

Tempo fa mi ero messo a impacchettare Lima per openSUSE. In caso non sapeste cos’è Lima, è progetto CNCF che si occupa di creare un manager di macchine virtuali che sia, per dirla in breve, un po’ più moderno del classico VirtualBox. Ha funzionato sui miei sistemi, ma non mi sono mai preso la briga di portare il pacchetto dentro di repository ufficiali di openSUSE perché pensavo che in fin dei conti non sarebbe stato utile a nessuno.

Visto che Flavio con il suo progetto aveva bisogno di un ambiente di test e ha trovato il mio pacchetto che girava per OBS (smentendomi, di fatto), e visto che si è messo anche lui di buzzo buono ad aggiornare il mio packaging iniziale, ho pensato che uno sforzo del genere non dovesse andare buttato. Il tempo di affrontare la burocrazia necessaria (ovvero un paio di submission request) e lima dovrebbe comparire all’interno dei repository di openSUSE Tumbleweed.

Lychee 0.22.0 in openSUSE Tumbleweed

In coda alla hackweek, è anche uscita la nuova versione di Lychee, di cui mantengo il pacchetto. Mi sono quindi occupato abbastanza velocemente di aggiornarlo, patcharlo (con un paio di colorite, ehm, osservazioni), e fare la mia bella submission request.

È stata una Hack Week particolarmente movimentata, quest’anno. Spero che i risultati siano utili a quante più persone possibile, e spero che questo sia solo un finale d’anno che faccia da firestarter per il 2026 :-)

Le cose che faccio

Sono stato tirato in ballo da Marco durante uno dei suoi ultimi scritti perché mi ha fatto fare (con mio sommo piacere) da beta reader, e durante la lettura gli ho attaccato una pippa così possente che ha deciso di taggarmi direttamente.

Vado quindi con questa mia (lol) a rispondere a un paio di punti che mi hanno davvero stuzzicato, specialmente riguardo il perché facciamo quello che facciamo, anche perché mi ha particolarmente colpito l’atteggiamente a tratti simile a tratti profondamente diverso con cui ci approcciamo a determinate gesta, soprattutto tecnologiche.

Un punto riguarda i side project. Quello che mi è sempre capitato di pensare soprattutto dopo un certo punto è che è vero che i side project sono qualcosa che nella maggior parte dei casi va a morire, ma soprattutto quando vengono integrati in una prospettiva e in un ecosistema più ampi è molto più difficile che diventino solo un rinnovo automatico sulla carta di credito. Per questo motivo dopo parecchi progetti condotti in questo modo ho deciso in realtà di sfruttare il mio tempo libero in un modo che almeno a me fa divertire di più: progetti relativamente grandi, open source, possibilmente con una bella prospettiva di adozione futura o con una grossissima storia che ne possa assicurare quantomeno la sopravvivenza “nell’etere” (ovvero nell’Internet, in qualche modo1).

Questo perché spero che dopo la mia morte, al posto di un’impronta effimera, il mio nome possa sopravvivere almeno in una manciata di commit di git sparsi in giro, oltre che in una serie di git blame per cui io possa venire maledetto oltre che ricordato. Ovviamente, più è grosso il progetto e meglio è. Addirittura l’anno prossimo vorrei mandare un paio di patch al kernel di Linux, ovviamente per aggiustare un paio di cose storte ma soprattutto per “personal heritage”.

Lo so, è un motivo piuttosto stupido, ma a me piace. C’è chi scolpisce le statue, chi coltiva un orto, io faccio i git commit.

L’altro punto riguarda proprio l’approccio al lavoro, che nel caso di Marco è più sano, nel mio caso invece conduce al burnout più totale :-D

Nello specifico, a me piace molto quello che faccio e ancora più nello specifico il fatto che una parte del mio lavoro vada a impattare su (appunto) dei progetti open source (ancora). Sicuramente capiterà che io debba lavorare in maniera diversa proprio perché nulla è eterno, e quel giorno probabilmente mi approccerò al mestiere in una maniera meno appassionata. Mi è già successo e sono sicuro che risuccederà. Ad oggi però vale quanto sopra.

Queste cose mi fanno andare avanti nonostante l’industria ormai sia il nonsense più totale. Nonostante il nostro sia ormai un white collar job fatto e finito, sapere di contribuire giorno dopo giorno a qualcosa che uso e che in minimissima parte non è utile solo a ingrassare qualche fondo d’investimento mi risolleva il morale almeno un po’.

“E questo spesso basta.” [cit.]

  1. Di solito il mezzo di sopravvivenza di progetti simili è un ente come Apache Foundation. 

Helix for Debian

Qualche giorno fa Gianguido stava cercando di convincermi a comprare un MNT Reform, e nello specifico stavamo parlando della distribuzione Debian-based che gli sviluppatori fanno girare su questo dispositivo. Siamo finiti a parlare del suo workflow, del fatto che a lui piace molto Helix; sta cercando di portare anche me in questa setta, ma (finora) con scarsi risultati1.

Parla che ti riparla è venuto fuori che Helix non è nei repository di Debian, e il mio amichetto ha detto quasi tra sé e sé: “Probabilmente basterebbe scaricare il sorgente e lanciare cargo deb”. Per quanto questo sia vero, ho ovviamente pensato subito a un’altra cosa che potevamo fare.

Quello che ho pensato io è stato infatti, so per certo che OBS (Open Build Service) può costruire pacchetti per qualsiasi distribuzione, vuoi vedere che non riusciamo a tirare fuori qualcosa per avere un repository Debian “in full effect” da cui installare Helix?

Così mi sono messo a smacchinare e da oggi è possibile avere Helix su Debian senza grossi sforzi usando il nostro repository che ho prontamente chiamato Helix for Debian. Usarlo su Debian 13, che è uscita qualche giorno fa e che era il mio target primario, è molto semplice:

echo "deb [signed-by=/etc/apt/keyrings/alessio.biancalana-obs.gpg] https://download.opensuse.org/repositories/home:/alessio.biancalana:/helix-debian/Debian_13/ ./" | sudo tee -a /etc/apt/sources.list.d/helix-debian.list
wget -O alessio.biancalana-obs.gpg https://build.opensuse.org/projects/home:alessio.biancalana/signing_keys/download\?kind\=gpg
sudo cp alessio.biancalana-obs.gpg /etc/apt/keyrings/alessio.biancalana-obs.gpg

Con queste tre righe di shell dovreste aver aggiunto il repository e configurato la verifica dei pacchetti tramite GPG.

A questo punto basta usarlo normalmente:

sudo apt update
sudo apt install helix

In teoria dovrei aver abilitato la compilazione dei pacchetti anche per Testing e Sid, quindi di fatto al posto di Debian_13 è possibile utilizzare Debian_Testing o Debian_Unstable a seconda dei casi e tutto dovrebbe comunque funzionare.

Ci ho messo un po’ più del dovuto semplicemente perché in vita mia non avevo mai fatto un pacchetto per Debian o derivate, quindi ho dovuto imparare una tonnellata di roba nuova, ma a parte qualche colorita bestemmia principalmente dovuta all’approccio che ha Debian verso i programmi scritti in Rust è stato molto divertente.

E buon divertimento con l’ultima versione di Helix sulla vostra Debian2 :-)

Helix su Debian

  1. Sono molto affezionato al mio flow con vim/neovim, quindi è molto difficile farmi fare onboarding di una cosa nuova. Quello che riconosco però è che i default di Helix sono veramente sensati, e il fatto di avere un setup tutto sommato produttivo da subito senza dover smadonnare tra plugin e voci di configurazione incomprensibili ha il suo fascino. 

  2. Ovviamente non ho installato davvero Debian su nessuna delle mie macchine, semplicemente per fare tutto questo lavoro nonché altre cose fichissime è sufficiente essere abbastanza versati con distrobox

Sono tre anni che uso un laptop incredibile: ode al mio Thinkpad x270

È parecchio che non scrivo del mio setup, che negli anni è cambiato molto poco: sul mio computer fisso ho voluto passare ad Hyprland perché è l’unica “cosa tiling” che funziona relativamente bene su GPU Nvidia, e sul portatile aziendale sto semplicemente usando Aeon da parecchio tempo cercando di non farmi prendere troppe fisime.

Sul laptop invece la rice è identica a quella che mostrai parecchio tempo fa, con qualche minuscola variazione semplicemente perché nel frattempo GDM è diventato capace di lanciare una sessione Wayland senza sbroccare.

openSUSE Tumbleweed con Sway su Thinkpad x270

openSUSE Tumbleweed con vim aperto, con Sway, su Thinkpad x270

Ma non è di questo che voglio parlare, quanto del laptop, che non è più un X1 Extreme: alla fine qualche anno fa io che amo i form factor un po’ strani mi sono lasciato sedurre dal Thinkpad x270 di Carmine, e gli ho chiesto dove lo avesse preso. In realtà la conversazione è stata ben più lunga e articolata, durante la quale Carmine mi ha anche introdotto a un sito che all’epoca li vendeva come il pane, già modifcati e massimizzati con 16 GB di RAM e 512 GB di disco SSD, una goduria per le mie orecchie in quel momento. L’X1 Extreme infatti oltre ad essere un po’ pesante non aveva quel feeling di una macchina “pocket”: credevo che passare a un 15 pollici e spicci non mi avrebbe fatto quell’effetto, e invece…

Thinkpad x270 in foto

… e invece ordine fatto d’impulso, e una settimanella dopo mi è arrivato questo gioiellino, che da tre anni è il mio unico portatile personale. 300 euro e è passata la paura. Ora inizia a mostrare un po’ i segni del tempo, ma devo dire che per essere una macchina ricondizionata che ho pagato pochissimo è stato veramente un grande affare. Ho avuto un paio di cosette da sistemare ma devo dire che anche per me che sono super pigro è bastato smontarlo e sapere dove guardare.

Il feeling è veramente quello di un “cyberdeck”, di una macchinina piccola non eccessivamente potente che però tutto sommato fa il suo: alla fine riesco a farci girare progetti anche di lavoro con relativa facilità, e sono tre anni che questo computer mi accompagna in tutte le occasioni importanti (namely: openSUSE Conference, openSUSE Asia Summit, FOSDEM). A parte la durata della batteria un po’ risicata, specie quando è sotto sforzo, non ho mai avuto da ridire, anzi: sinceramente dato che il tempo passa inesorabile e iniziano anche i primi segni di cedimento (d’altronde tre anni sono sempre tre anni per un laptop che era già “di mezza età” quando l’ho comprato) sto cominciando a guardare delle alternative e con mio sommo disappunto a meno di non spendere un rene per non avere comunque tutte le cose che ha questo laptop (schermo IPS, 12 pollici, tastiera con una corsa stupenda, una CPU che non fa cagare, un sacco di RAM, un sacco di disco), non ne sto trovando affatto. Ero convinto di voler cambiare laptop qualche mese fa, e invece dopo una veloce ricerca di mercato ho capito che mi sa che il mio x270 continuerà a rimanere il mio laptop principale per ancora un bel po’ di tempo.

Da cui, appunto, il motivo di questo post.

Non me l’aspettavo quando l’ho comprato e infatti lo sto scrivendo tre anni dopo, ma l’x270 ha veramente scavato una nicchia incredibile nel mio cuore e nelle mie abitudini.

20 anni (quasi) fa

Ho provato a cercare una mia foto di 20 anni fa e fortunatamente sono tutte sparite, a meno di non andare a ripescare qualche imbarazzante album di famiglia. Tra le copie online, la cosa più vecchia che ho potuto pescare è questa vecchia foto che mi scattò Antonio Doldo (che ringrazio tantissimo) al Linux Day del 2008 a Roma. Un po’ come Mattia, faccio quello che posso con quello che ho.

Io, 20 anni fa

Io, oggi

Per Marco, che ha iniziato questo treno, è cambiato parecchio: anche per me devo dire che di acqua sotto i ponti ne è passata un po’. Nello specifico:

  • Molti lavori dopo
  • Un “college dropout” dopo
  • Svariati traslochi dopo, anch’io
  • Anche svariati lavori dopo, per la precisione tutti i lavori della mia vita
  • Una casa di proprietà dopo
  • Due terapie dopo
  • Quasi due matrimoni (!) dopo

Nonostante tutto questo, di queste due foto e dei momenti in cui sono state scattate mi colpiscono le costanti.

  • Sono state scattate entrambe a una conferenza (piccola o grande che sia) su Linux
  • L’anno dopo avevo un talk su Arch Linux, adesso ho commit quasi settimanali su openSUSE
  • Sono quindi rimasto un nerdone delle distro Linux
  • Ero un overthinker, sono un overthinker: ero pieno di paure, e oggi (complici le due terapie dopo) so solo che è normale
  • Mi rende felice fare cose che per la maggior parte della gente sono considerate inutili
  • Mi rende stranamente felice parlare delle mie cose
  • Mi sembra sempre strano quando qualcuno si interessa a una cosa che ho fatto
  • Scrivo ancora, meno spesso, su questo blog
  • Sono sempre un metallaro di merda
  • Perdura il mio amore per gli elenchi puntati

A quel ragazzo vorrei dire di imparare che è inutile avere paura.

All’adulto vorrei dire di ricordarselo.

Member of

Previous Random Next