Alessio Biancalana Grab The Blaster di Alessio Biancalana

Developing an application for GNOME in Rust - il video di openSUSE Asia 2024

Non so nemmeno come iniziare questo post - come in realtà grandissima parte dei miei post, soprattutto recenti - ma, sulla strada per il FOSDEM 2025, sono contentissimo di riportare qui che finalmente è stato pubblicato sul canale YouTube di openSUSE il talk che ho tenuto durante openSUSE Asia 2024.

Dato che sinora è comparso solo il mio ho modo di pensare che quelle che io pensavo fossero gentilissime richieste da parte mia siano state interpretate come intimidazioni da parte degli organizzatori, spero di non aver fatto figuracce. In caso, però, voi comunque potete gustarvi questi venti e passa minuti di me che blatero in inglese, con finalino in giapponese. :-D

Una nuova tastiera: ovvero come ho costruito la mia tastiera finale

Sono sempre stato appassionato di hardware strani. In particolar modo, una tunnel in cui ho deciso di infilarmi alcuni anni fa è quello delle tastiere meccaniche1. Al che, come primo acquisto ho deciso di buttarmi su qualcosa di precostruito che mi ha servito, devo dire, molto bene sino ad oggi.

A Natale però ho deciso di farmi un piccolo regalo extra, grazie anche allo stimolo di Agnese che mi ha regalato dei keycap nuovi (che avevo già deciso di destinare a questo piccolo progetto): costruirmi una tastiera da zero, con pezzi completamente selezionati da me, puntando ad avere un sound in stile “THOCK” quando vengono premuti i tasti. Facendomi un giro su vari siti e soprattutto ascoltando fino alla noia sound test su YouTube, sfruttando anche vari appunti in passato ho deciso di procedere con questo setup:

  • Case: Tofu60 Redux, meteorite gray, in alluminio anodizzato;
  • PCB: in realtà ho preso un kit, quindi il PCB è arrivato incluso con il case Tofu60. Un generico 60% ANSI hotswap2, con layout WK;
  • Foam mod3: per forza. Il kit della Tofu60 arriva con due strati di foam, uno da mettere tra il PCB e la switch board, l’altro da infilare direttamente a contatto con il case per farlo suonare meglio
  • Weight bar: presente. Ovvero, una barra di ottone da inserire all’interno del case per farlo pesare un po’ di più e avere una sensazione di solidità maggiore;
  • Switch: Gazzew Boba Linear Thock, prelubrificati;
  • Keycap: SOLIDEE 135 bianchi, con l’alfabeto hiragana riportato a lato, regalo di Agnese.

L’arrivo

La sfida maggiore è stata reperire tutti i pezzi: il case/kit Tofu60 si trova abbastanza facilmente, i keycap sono stati ordinati su un noto sito di ecommerce, mentre per gli switch ho dovuto impegnarmi un po’ di più: oltre a venire oggettivamente un rene rispetto a degli switch per delle tasche più contenute, ho scoperto che i Boba Linear sono rari come il santo Graal, motivo per cui ho dovuto prenderli da un sito terribile, che non nominerò, ma che ha affidato la sua logistica a UPS.

Close-up della confezione dei Boba Linear

Non lo sapevo, ma UPS ha il peggior servizio di notifica esistente al mondo: una volta lasciato il suono americano, non ho più avuto notizie del mio pacco finché non mi sono trovato un bellissimo avviso di giacenza una volta tornato dal mio viaggetto a Londra con gli amici, scoprendo contestualmente che:

  • Il tentativo di consegna era avvenuto in un giorno assolutamente a caso senza che io ne sapessi niente, mentre non c’ero, senza una telefonatina né niente
  • Mi spettava anche di pagare più di un paio di kebab alla dogana di Stato

Siccome so che ve lo state chiedendo: oggettivamente sono gli switch migliori che abbia mai sentito e su cui abbia digitato. Nonostante questo ho intenzione di pagare a peso d’oro, la prossima volta, chiunque mi possa risparmiare la quasi-mezza-giornata che ho speso all’ufficio postale tentando di ritirare il mio pacco in giacenza, godendomi una assolutamente innecessaria dose di interazione col mondo circostante e con la fauna locale.

La weight bar infilata dentro il case

Il montaggio

A posteriori, devo dire che il montaggio non mi ha preso troppo tempo, e pensavo molto peggio. Lì per lì, tuttavia, ci sono stati dei momenti in cui ho detto “adesso appendo tutto e vado a farmi un giro” da quanto ero frustrato. Il motivo di questa frustrazione è che il kit di suo arriva senza un vero set di istruzioni. Alla seconda build guide che guardavo su YouTube ho anche capito un po’ come funzionava tutto il giro, e sono andato a riguardare la pagina del kit stesso su KBDFans, dove c’è in realtà un breakdown abbastanza preciso delle parti e di come si combinano tra di loro.

PCB, foam e plate

Tra una build guide e l’altra sono più o meno riuscito a capire per conto mio cosa fare e cosa non fare, con somma soddisfazione mia che con le cose “fisiche e meccaniche” sono sempre stato una grandissima frana, e di mio padre a cui mandavo le foto in realtime per provargli che suo figlio non è un imbranato del cazzo quando si tratta di tenere un cacciavite in mano4.

Sua maestà il PCB

Il momento peggiore per quanto riguarda il quantitativo di frustrazione è stato il montaggio degli stabilizzatori: senza nessun tipo di guida ho dovuto imparare a montare uno stabilizzatore screw-in per poi agganciarlo al PCB in maniera sicura e avvitarlo successivamente. Non è sicuramente scienza missilistica (anzi) ma devo dire che prima di capire dove infilare cosa ci ho messo svariati minuti se non decine di minuti. Se è una cosa che non hai mai fatto in vita tua, sicuramente avere in mano uno stabilizzatore smontato intimidisce un po’, almeno per me. L’unico metodo che ha funzionato nel farmi capire, infine, come muovermi, è stato questo post di (santi subito) Keyboard University.

Fortunatamente una volta scollinata la fase degli stabilizzatori il resto è stato abbastanza tranquillo: montare il PCB completo di stabilizzanti dentro il case, applicare la foam mod, applicare la piastra per gli switch sopra, agganciare gli switch e completare l’opera con i keycap. Prima che me ne fossi accorto, avevo montato la mia tastiera!

La tastiera mezza montata, con qualche switch e qualche keycap

Ovviamente con qualche sbavatura però: ho scoperto infatti a mie spese che conviene fare un test degli switch, altrimenti si rischia di doverli rimpiazzare; personalmente non ho trovato nessun modo di distinguere tra uno switch i cui piedini sono infilati a regola d’arte e uno switch dove semplicemente montando il pezzo nel suo alloggiamento e spingendo, uno dei piedini è andato a farsi benedire piegandosi come un panetto di burro al sole.

Tastiera completamente montata, senza RGB, a cavo scollegato

È stato per questo motivo che ho dovuto rimpiazzare, se non sbaglio, sei switch. Meno male che la tastiera ha un layout 60% e avevo ordinato il pacco da 90.

La tastiera completamente montata e in funzione

Sono ormai un paio di giorni che la sto usando, e ovviamente rispetto a una precostruita c’è un abisso, non tanto per quanto riguarda la qualità, ma per quanto riguarda la cura che ho messo nel selezionare ogni componente (PCB a parte: la prossima sfida è quella di saldarmelo da me). Devo dire che una bella porzione di soddisfazione deriva anche dall’aver visto realizzare e crescere sotto i miei occhi questo progettino che era in pigra gestazione da circa quattro anni, e dall’aver visto realizzarsi come esatta ogni mia supposizione.

O forse dovrei dire… “quasi ogni”: la build originale che avevo in mente era con i Boba U4T, ma alla fine sono andato all-in sulla nuova serie Linear, che quando ho ideato questa build (nella notte dei tempi) non era ancora sul mercato.

Il problema più grande ora è che non riesco a smettere di pensare a che altro tipo di build potrei mettere in piedi, una volta superata la paura del mio primo montaggio da zero… quindi che dire, alla prossima build :-D

  1. Devo dire che comunque è uno dei tunnel meno strani riguardo l’hardware. Per esempio potrei parlarvi per ore della mia fissa per il Flipper Zero. 

  2. Ovvero un PCB dove gli switch si possono scambiare. Non ne ho mai visto uno che non fosse hotswap, sembra che abbiano conquistato il mercato negli ultimi anni. 

  3. Un foglio di polietilene messo di solito tra il PCB e la board dove si infilano gli switch. Serve ad ottimizzare l’acustica della tastiera. 

  4. Tema che ho già ampiamente sviscerato in terapia, quindi nonostante tutto penso di averlo fatto in maniera assolutamente sana e senza urlare “I’M THE ELDEST BOY!” (cit.5

  5. Occhio se aprite il video che è uno spoiler del finale di una delle mie serie preferite di sempre. 

2025: si dia inizio al nuovo anno

È stato sicuramente un anno lungo, pieno di sfide, complicato, ma anche meraviglioso. In questo 31 dicembre ancora una volta mi accingo a concludere l’anno con il rituale post conclusivo e, dato che la retrospettiva è sempre d’obbligo, mi guardo indietro. Sono soddisfatto? Sono soddisfatto. Forse, quest’anno più di altri.

I motivi sono semplici, e molteplici.

La casa si ingrandisce

Questo in teoria è qualcosa che appartiene alla coda del 2023, ma secondo me è talmente grande come traguardo che sia come orgoglio che come spesa si prende anche l’inizio del 2024: casa nostra si è ingrandita un pochino, intendo in termini puramente di metratura. Sono felice perché come i nostri amici sanno benissimo lo spazio per le katane e le action figure è sempre troppo poco, quindi insomma… un po’ di larghezza di banda in più non fa male :-)

Due volte Giappone

Non contento di aver visitato il Giappone per ben tre settimane, ci sono andato di nuovo, grazie a un colpo di fortuna e una buona dose di olio di gomito: openSUSE Asia 2024 è stata un’esperienza clamorosa, che nonostante sia stata per me troppo breve ha comunque segnato un “prima” e un “dopo” rispetto alla mia vita lavorativa e la mia attività all’interno dell’ecosistema open source. Ho persino messo alla prova il mio giapponese, che vorrei che migliorasse di giorno in giorno invece di essere così lento, ma alla fine va anche bene così.

Un’istanza Mastodon

Un progetto che avevo in mente per il 2022/2023 era mettere su un’istanza mastodon su invito, italofona. Marco ha avuto lo stesso pensiero tempo dopo: mi sono quindi volentieri accodato al suo tentativo, per ora devo dire dal mio punto di vista molto riuscito, di mettere su una piccola istanza Mastodon (che ha un nome molto divertente) dagli obiettivi leggermente diversi da quelli che mi ero prefissato, e secondo me migliori.

Una proposta di matrimonio

Infine - e lascio per ultimo questo aspetto solo perché è il più importante (non vedo l’ora oltretutto di prendermi un’amorevole cucchiarata proprio da lei) - Agnese è stata così ingenua da accettare la mia proposta di continuare a farle vedere i sorci verdi fino alla fine della nostra vita. Abbiamo quindi un sacco di cose da organizzare per questo e altri motivi, giusto per darvi un assaggio di quello che abbiamo già messo in traiettoria per l’anno prossimo.

Penso di aver fatto abbastanza cose quest’anno da poter entrare a gamba testa nel 2025 senza alcun proposito, con la serenità di affrontarlo solamente armato di entusiasmo, sapendo che qualsiasi cosa mi porterà, sarà sicuramente meravigliosa. O quantomeno, sicuramente alla fine avrò un anello al dito.

Me e Agnese davanti al nostro albero di Natale

Farewell, SUSE Trento

A volte la vita prende delle pieghe inaspettate. Cose a cui hai lavorato sparsamente per tantissimo tempo si uniscono per formare una bella visione d’insieme. È così che per un intricato sistema di specchi e di leve, quando sono stato a Tokyo per openSUSE Asia sono stato contattato per un ruolo che si stava aprendo in SUSE e che sarebbe stato un’ottima opportunità.

Dall’altro lato, domani marcheranno esattamente tre anni e quattro mesi dal mio ingresso su Trento, il progetto di monitoraggio e observability per panorami SAP che SUSE mantiene (e vende) da parecchio tempo. Nonostante sia stato sicuramente in grado di dare la mia impronta al progetto, sicuramente ci sono stati dei punti della mia agenda che non sono stato in grado di portare fino in fondo o sponsorizzare adeguatamente: un marketplace per i check di compliance di terze parti, per esempio, o l’adozione di tecnologie come eBPF per permettere un monitoraggio a un livello più profondo dei workload sul singolo host.

Nonostante la frustrazione per questi piccoli non finiti michelangioleschi non ho comunque rimpianti: è stato un bellissimo progetto, e ho avuto dei compagni di viaggio fenomenali.

Dal primo giorno (anzi, dal secondo) dell’anno nuovo comincerò a lavorare direttamente su SUSE Observability. Ovviamente all’inizio la mia agenda avrà solo due punti: spalare un sacco di rumenta in modo da rendermi conto di dove risiedono le maggiori necessità, e soprattutto ascoltare. Ascoltare un team di ingegneri che mangia pane e observability da parecchi anni, perché sono sicuro che per me sarà una fonte di crescita incredibile.

Mi è uscito un post con quel tono farlocco un po’ da Linkedin, motivo per cui chiedo scusa a chi legge. Non so se traspare l’eccitazione, quindi in caso lo rinnovo: me la sto facendo addosso, un po’ dal terrore di dimostrarmi inadeguato, un po’ dall’entusiasmo.

Forse è meglio che vada a prendere già pala e ramazza.

openSUSE.Asia 2024: quando Linux e il ramen si fondono

L’ultima settimana è stata allucinante: di ritorno dalla retreat del mio team a Norimberga, ci siamo imbarcati (io e il buon Jan) per openSUSE.Asia 2024, diretti a Tokyo.

Ho già parlato quest’anno di quanto sia affezionato alla terra nipponica, e tornarci tutto sommato dopo così poco tempo è stato veramente qualcosa di magico: ho percepito la sensazione di essere un habitué, ricordato posti, visitato per la seconda volta angoli di Tokyo che ormai conoscevo come le mie tasche. Questo non mi ha impedito di perdermi a Nakano Broadway e dentro la stazione di Shinjuku, ma penso che la prossima volta avrò ancora meno problemi di orientamento.

Appena arrivati, giusto il tempo di un ramen e di un sonno ristoratore per poi precipitarci negli uffici di SHIFT Inc. dove si è tenuta la conferenza. I nuovi uffici di SHIFT nella Mori JP Tower incarnano davvero il concetto di “office with a view”, devo dire. Se di giorno il panorama era mozzafiato, in questa stagione dove Tokyo sa mostrare il suo lato più nebbioso e autunnale:

Tokyo Day

La sera si arrivava a delle visioni uscite direttamente da un romanzo di Gibson:

Tokyo Night

Durante le due giornate di conferenza, i talk sono stati veramente interessanti. Dato l’intreccio con il Cross Distro Developers Camp (XDCC) si andava da verticali su openSUSE a cose più di ampio respiro come il mio talk su Rust e GTK4 per GNOME (ma non solo). Che, tra parentesi, spero sia piaciuto: le domande sono state parecchie e ha dato il via a una bella discussione post-talk, che date le tempistiche non è stata nemmeno ripresa per intero.

Ovviamente gran parte della conferenza è stata presa da talk su Micro OS e su come Micro OS sia un’eccellente piattaforma per workload containerizzati: il mio collega Jan Fooken ha anche parlato di come sia possibile ottenere il “proprio” Micro OS con pattern custom e così via usando solamente le feature messe a disposizione da OBS, da systemd e da mkosi.

Oltre ad esserci fatti una cultura su come funziona transactional-update (il tool per la gestione degli aggiornamenti di Micro OS) e su tutti i concetti implementati da un sistema operativo immutabile, abbiamo avuto chiaramente gli evergreen, ovvero la panoramica sullo stato dell’arte di openSUSE e gli aggiornamenti dalla Geeko Foundation sullo sviluppo di una struttura che permetta al progetto di prosperare. Il talk che ho apprezzato di più dal punto di vista tecnico sicuramente è stato quello di Giovanni Gherdovich su sched-ext, il nuovo meccanismo che permette agli sviluppatori di creare scheduler pluggabili nel kernel ottimizzati per casi d’uso specifici.

Il secondo giorno oltre al talk di Jan è stato il mio turno: come ho scritto sopra ho parlato di come sviluppare un’applicazione per GNOME (ma non solo) usando Rust, GTK, libadwaita e Relm4, una libreria che implementa i pattern reattivi per il rendering della UI che si ispira molto a Elm e React. Dato che più persone hanno allungato il collo in maniera telescopica quando ho mostrato gli esempi basati sia sul codice di esempio che sul codice di Cauldron (e non penso fosse per la dimensione dei font), penso di aver fatto un buon lavoro. Avrei voluto avere più tempo, ma quando ho scritto l’abstract pensavo che il materiale fosse pochino: solo in seguito ho capito che in realtà mi stavo impelagando in qualcosa che somigliava quasi più a un workshop che a un talk vero e proprio.

Onestamente non pensavo che avrei respirato un clima così vibrante di amicizia e community: molto spesso siamo portati a pensare che la community di openSUSE sia tutto sommato molto ristretta e non così viva, invece questa conferenza mi ha dimostrato il contrario. Ho viaggiato attraverso un oceano per scoprire che la distribuzione alla quale nel tempo libero metto qualche pezza qui e là è usata da un bel po’ di gente, nel mio posto preferito del mondo: persone in carne ed ossa a cui spero anche, nel mio piccolo, di aver fatto scoprire qualcosa in più. Un ecosistema che non avevo idea di quanto fosse immenso, a cui spero di aver dato il mio piccolissimo contributo.

どうもありがとうございます!

Una foto di gruppo, Thinkpad aperto e si esce a comandare

Member of

Previous Random Next