Dovete sapere che io avevo una radiosveglia da comodino, era una bella radiosveglia con la ricezione digitale, uno schermo persino troppo luminoso e un altoparlante dotato di buon volume. L'unico grosso problema era che la configurazione dell'allarme constava, per quanto riguarda la periodicità dello stesso, di tre opzioni:
- allarme che si attiva ogni giorno;
- allarme che si attiva solo i giorni feriali;
- allarme che si attiva solo i giorni festivi.
Purtroppo, però, io non lavoro il venerdì (preferisco vivere) e quindi l'allarme mi sveglia anche quando non dovrebbe.
A quel punto ho pensato di assemblarne una usando un arduino e un sintonizzatore FM per costruire qualcosa che mi permettesse di dormire il venerdì ma, inevitabilmente, mi sono scontrato con la mia incapacità a saldare e la mia ignoranza in elettronica. Due ostacoli insormontabili, almeno per il momento¹.
A quel punto ho pensato che mia madre possiede un Raspberry Pi² che non usa.
Ho riflettuto un poco e ho concluso che sarebbe stato semplice connettere uno schermo tattile al computer e organizzare tutta l'interfaccia via software.
Non sapevo che sarebbe stato l'inizio di una discesa nell'"inferno dell' iper-ingegnerizzazione".
Per prima cosa ho pensato di aggiungere (giacché avevo da poco finito un piccolo motore grafico 2D
con tanto di poligoni in texture mapping e shader programmabili)
un po' di brio, usando una bitmap come sfondo dietro l'orologio e, successivamente (perché no?), farlo scorrere. E magari usare uno di quei vecchi trucchi che si usavano una volta: il parallasse.
Ma a questo punto, mi son detto: "quando mi sveglio vorrei poter sapere se pioverà, per vestirmi adeguatamente e non bagnarmi — troppo — in bicicletta." E allora eccomi li a cercare un servizio di previsioni meteorologiche senza registrazione
Svariati giorni dopo avevo anche un sottopancia che scorrendo mi mostrava un pittogramma relativo al tempo (pioggia, temporali, neve eccetera) e la probabilità di pioggia nelle prossime 24 ore.
"Ma" (sempre io che parlo) "ho sempre desiderato un orologio da polso con il calcolo delle fasi lunari, che ci vorrà mai a portare l'algoritmo?"
Vi dovesse venire in mente di raggiungere questo obbiettivo, vi prego di fermarvi; copiate la mia libreria, scritta per l'occasione, invece:
e cercate di non farvi venire più certi pensieri in mente.
Ma, visto che le capacità di calcolo non mancano, perché non aggiungere almeno un riproduttore multimediale?
E, visto che leggo spesso a letto e il mio inglese è pessimo, perché non un permettere la ricerca su un dizionario online?
E spegnere lo schermo? Configurare la wifi? Riavviare o spegnere il computer?
Mi sono fermato, *per adesso* 😈, alla misurazione — tramite sensore — della temperatura e umidità relativa ambientale.
Ma a quel punto sentivo che mancava qualcosa.
Complice Emacs,
non riesco più a pensare a software che non siano estensibili e, in Common Lisp, è così facile scriverli!
In breve mi sono ritrovato con programma principale che, di suo, non fa proprio nulla ma, su di esso, è possibile installare dei pacchetti aggiuntivi che ne ampliano le funzionalità (quelli che ho menzionato più in alto). Neanche il gestore di pacchetti è sfuggito a questo destino: è un estensione del programma anche lui. 😅
Pensavo di aver esagerato, ma (me ingenuo!) non avevo pensato cosa sarebbe accaduto nel momento in cui avessi cominciato a discutere dell'hardware…
[continua]
¹ Ma, penso, anche per il prossimo futuro.
² Un piccolo computer delle dimensioni, all'incirca, di una carta di credito.
#lisp #sveglia #DIY #raspberrypi