14 Aug 2016

Proprio ieri pomeriggio, con la musica nelle orecchie, ero in cerca di un valido motivo per non studiare. Sono incappato per “caso” nel sito dedicato a Ferragosto di nois3, ovvero chefacciamoaferragosto.it, e con un po’ di curiosità ho cominciato a smanettarci su. Ficcanasando nel codice ho scoperto l’endpoint al quale la UI chiede le frasi, e ho deciso di mettermi a costruire un tool da riga di comando per farmi dare dei consigli su cosa fare a Ferragosto :-)
In capo a qualche ora ho messo in piedi il tutto, ed è possibile installare ferragosto
tramite npm (il codice, ovviamente, è su GitHub):
$ npm install -g ferragosto
Dopodiché, per provarlo basta invocarlo come un qualsiasi altro comando. Ovviamente richiede Node.js.
Le cose interessanti
Grazie a Carlo che mi ha segnalato la sua ultima creatura, e grazie alla mia curiosità nel costruire questo programmino molto semplice ho potuto provare nopt, ovvero l’option parser per i programmi da CLI scritto dai ragazzi di NPM. È davvero ben fatto, anche se avrei apprezzato la possibilità di gestire un default sugli argomenti (come Trollop in Ruby, che uso in Burst).
Creare eseguibili in Node da pubblicare su NPM è un affare abbastanza semplice, sono rimasto abbastanza colpito sia dalla dimensione piccolina dal programma (che fa due cose in croce eh), sia da come con un debito tecnico abbastanza consistente io sia comunque stato in grado in un paio di ore di mettere insieme tutto in una forma non esattamente vicina alla sciatteria.
Queste diavolerie da giovani, altro che Node.js, ai miei tempi c’era il C
È vero! Devo tornare a studiare. ;-)
Dato che ultimamente ho scritto spesso del codice C mi sono appassionato ai sistemi di build, ai Makefile, e a tutto quello che ci gira intorno. Stavo anche scrivendo la guida per i niubbi, ma l’ho lasciata nell’hard disk del fisso a casa mentre in vacanza ho portato il laptop (il quale ho scoperto essere poco utile per le notti in aeroporto: ho cestinato tutti i film che avevo…).
Tentando di giustificare il mio essere poco prolifico con queste frasi, passiamo oltre e andiamo a guardare che diamine ha fatto Julian Andres portando APT a CMake. È un sacco di roba, e penso che il passaggio più importante – almeno per me che sono a zero su C e building/bundling – sia questo:
Talking about CMake: I don’t really love it. As you might know, CMake differentiates between targets and files. Targets can in some cases depend on files (generated by a command in the same directory), but overall files are not really targets. You also cannot have a target with the same name as a file you are generating in a custom command, you have to rename your target (make is OK with the generated stuff, but ninja complains about cycles because your custom target and your custom command have the same name).
Alla fine della fiera è un lavoro secondo me molto, molto carino. E io vorrei saper mettere le mani a questo modo al sorgente di un tool così importante :-)
03 Aug 2016

Stamattina ho letto in rapida successione il post di Nicola su Apple che a quanto pare è percepita come disinteressata verso la sua linea di prodotti “per fare cose serie” (ovvero i Mac), rispetto ai soliti iCosi tipo iPhone, iPad, eccetera, e gli articoli di OS News e di Architosh in proposito.
If Apple doesn’t care about its PC business, why should anyone else?
Questo mi ha fatto venire in mente che un paio di weekend fa, con il fisso sotto le mani, un po’ di tempo da perdere e una licenza Microsoft fresca fresca, ho installato a tempo perso Windows 10 affianco alla mia Arch Linux di fiducia giusto per fare qualche test e provare a convivere con quello che a conti fatti per me è qualcosa di nuovo.
La cosa che mi ha stupito è che a livello di esperienza utente non sono affatto deluso, anzi: chiaramente mi manca la personalizzabilità di Linux, e l’avere a disposizione out-of-the-box oppure installabili con un colpo di package manager tutti quei tool che sono abituato ad avere senza muovere un dito. Però, con un po’ di pazienza, qualche .exe piazzato per l’occasione e una shell un po’ meglio di quella di default che nemmeno so usare troppo bene (per il momento la Bash integrata in Sourcetree debitamente “shortcuttata”, non ho ancora avuto tempo di provare il runtime Unix dedicato), mi sono trovato a non soffrire più così tanto, anzi: comunque a fronte di un ambiente desktop gradevole a vedersi e da usarsi almeno per i miei gusti, i problemi sono pochi e sinceramente mi sento in potere di equiparare il lavoro che riesco a fare con questa configurazione a quello che riesco a fare con il mio Macbook.
E questo solo parlando di software: per quanto riguarda l’hardware, se il progetto che ho è quello di costruirmi un PC desktop nuovo più che carrozzato (e quindi non fare della mobilità il mio problema su cui ragionare), sicuramente anche sul lato degli ultrabook un Macbook Pro, Air o anche quell’altro nuovo aborto da 12 pollici dovrebbero sentirsi intimoriti da quello che può fare Dell con l’XPS 13 di nuova generazione, ed è solo il primo esempio che mi viene in mente dato che gli altri brand sono perfettamente in grado di stare dietro a questo trend, pur se con materiali tendenti al risparmio e componenti leggermente meno prestanti.
Quello che voglio dire, in ogni caso, è che sui PC “consumer”, anche i più scarsi, comincia ad approdare quell’esperienza utente curata tipica di un sistema come macOS, o Android, con un design finalmente “non brutto”. E se quelli potevano essere i cavalli di battaglia di Apple, adesso è tempo di muovere un ennesimo passo oltre, perché se avessi pensato di prendere un iMac, l’esperienza che ho avuto con Windows in queste settimane basterebbe da sola a farmi desistere dall’intento.
Nel frattempo comincio a riempire il carrello di Amazon.
P.S.: La cosa più fastidiosa, per la verità, sono i keybinding di Markdown Editor per Atom, fortemente legati a macOS. Credo che siano da rimappare.
Photo courtesy of Larry Qian
Chi ha visto un po’ del mio GitHub (almeno) sa che tendo a dotare dei miei software la licenza MIT, perché credo che sia quella che più si confà ai miei bisogni; sono sempre stato anche un grande fan delle licenze permissive in generale, sia per questioni pratiche che di puro idealismo.
Gli autori di Perfect, anche loro, si sono chiesti abbastanza di recente se la licenza GPL non fosse un peso per chi contribuiva al loro framework. La risposta corta è che lo era (quindi adesso la licenza è Apache), ma in particolare mi piace molto questo stralcio tra le loro motivazioni:
The eureka moment, however, came when I was sitting in a small office with Bob Young, the founder of Red Hat, discussing how we could explain the importance of the GPL in our context. His advice was simple and powerful. To paraphrase: “make sure the license isn’t a roadblock. If developers are confused by it in the slightest, it’s getting in the way.”
The simplicity of GitHub’s pull request has killed the GPL. We want people to play with Perfect, screw with it, and recommend improvements so we can strengthen and enhance it. Plus, Swift is licensed under Apache, and Perfect is Swift. It’s a no-brainer.
Ho sempre pensato che la GPL fosse leggermente fastidiosa da un punto di vista di contributi non strutturati. Ho sempre pensato che GitHub, per via del suo modello, avesse promosso un tipo di scambio (se vogliamo culturale, anche) molto più libero.
Quello che non mi era mai saltato in mente (abbastanza lampante, tuttavia) era di mettere in correlazione le due cose: pensavo che semplicemente la gente si fosse rotta le scatole di un ecosistema basato fortemente sull’economia dei vincoli.
Era un sacco che non registravo nulla a livello di podcasting, e i ragazzi di Geek Cookies, manco a farlo apposta, mi hanno proposto di unirmi a loro per questa puntata a tema open data del loro show. Devo dire che mi sono divertito molto, ho imparato cose nuove, e come sempre sono veramente contento di aver messo a disposizione quello che ho imparato in molti “posti dell’Internet” riguardo queste tematiche.
Presso il link nel titolo del post potete ascoltare l’episodio oppure scaricarne il file audio per ascoltarlo altrove e/o in un altro momento. Io, dal canto mio, ringrazio i ragazzi per avermi invitato, stimolato e, ehm, sopportato durante tutta la registrazione :-)