Stamattina sul mio digest di Quora ho beccato una vecchia risposta di Marco Arment alla domanda su come lui stesso usasse Instapaper. La cosa che mi fa ridere è che lui non solo ha risposto, ma nella risposta parla di sé in terza persona come se dovesse tirare a indovinare:
And if I had to guess, I’d imagine that he doesn’t use Evernote or Facebook much, he auto-sends liked articles to App.net for testing, and he auto-sends all archived articles to Pinboard. He also has Twitter and Tumblr linked but doesn’t auto-post there, preferring instead to manually select when to post.
Mi ci sono fatto sopra una risata di cuore. È uno strano ragazzo.
30 May 2018
Anche quest’anno si è tenuto il solito appuntamento con la conferenza per sviluppatori di Microsoft, ovvero Microsoft Build, dove come sempre sono state concentrate le novità rilevanti del 2017 e di questa prima metà di 2018. Per quanto mi riguarda, piuttosto che concentrarmi sulla conferenza in generale, (a cui questa volta non ho potuto assistere di persona al contrario dell’anno scorso) per il mio commentario ho scelto tre cose che mi hanno colpito particolarmente. Sul resto glisserò sia perché sono parti di stack che al momento non mi interessano, sia perché voglio parlare prevalentemente di Unix.
Prima di Unix però parliamo di qualcosa che non c’entra molto, ovvero Windows 10: su Windows 10 arriverà una nuova feature chiamata Sets. Microsoft ha deciso che, bene, vi piacevano le tab del browser? Vi piace tenere sott’occhio un sacco di roba tutta insieme? E allora perché non rendere “tabbed”, a schede, la navigazione su tutti i programmi? Abbiamo un simbolo simile a quello della nuova tab del browser, sulla barra del titolo delle finestre, con cui possiamo aprire nella stessa finestra dove stiamo modificando un documento di Word, Excel, o ritoccando una foto, un’altra applicazione con degli altri contenuti. In questo modo le finestre stesse si trasformano in spazi di lavoro a sé stanti.
E devo dire, cara Microsoft, anche se penso che questa visione vada raffinata, che sia lo stesso un’ottima intuizione. Props.
Ma ora veniamo alle cose importanti (che sono le cose che piacciono a me e le cose più bizzarre): Microsoft ha annunciato in occasione di questo Build che Notepad introdurrà il supporto a LF, ovvero ai terminatori di riga Unix. È la fine di un’epoca, considerato che i terminatori di riga sono sempre stati il grande cruccio degli sviluppatori non-Unix, che git ha introdotto un’opzione apposta per correggerli in automatico, e che Microsoft ha sempre adottato un atteggiamento un po’ protettivo da una parte (per esempio Visual Studio li supporta e ci mancherebbe altro), mentre dall’altra prendi un developer, trattalo male, lascialo aspettare per ore - giorni - anni - prima di implementare una cosa del genere, mandandolo per le piste col suo amministratore di sistema e coi suoi colleghi. Ma appunto.
L’altra novità che mi ha colpito è stata la voce “Open Linux shell here” nel file manager. Di solito è molto difficile trovare roba di questo tipo integrata in Windows e disponibile in questo modo, spiattellata in faccia in questo modo. Questo perché esattamente come macOS Windows non privilegia molto i power user, anzi: le opzioni che possono compromettere la stabilità vengono ben nascoste. In questo caso non solo troviamo una bella voce di menu da veri nerdoni, ma la troviamo anche riguardante Linux e la sua shell inclusa dentro Windows. Onestamente lo trovo non solo utile, ma un altro passo di Microsoft nella direzione di una strategia inclusiva nei confronti di Linux e di tutta la community che lo “foraggia”.
Quanto è fico tutto il resto? È fico, è fico. Ma io rimango:
- Un nerdone
- Un power user
- Un linuxaro
E quindi i miei takeaway (insieme ai lavioli gambeli del cinese sotto casa) sono questi.
14 May 2018
Sto diventando monotematico, me ne rendo conto, ma allo stesso tempo l’ecosistema di Elixir mi affascina a un livello inconcepibile. Sono già un po’ di giorni che tengo d’occhio le Pull Request che mancano perché Phoenix Framework 1.4 venga rilasciato, e mi sono accorto che piano piano i lavori stanno giungendo a una conclusione. Quanto ci piace questo? Tantissimo, perché ci sono un paio di cosette veramente gustose.
La prima è che finalmente è stato sostituito Brunch con Webpack per quanto riguarda il bundling degli asset. Questo non interesserà tanto gli sviluppatori backend, viceversa facendo io il frontendista di lavoro ho avuto modo di vedere come Webpack sia ormai lo standard de facto per il packaging del proprio JavaScript, e mi fa piacere che Phoenix si sia adeguato a questo trend. I motivi che ci sono dietro sono essenzialmente due:
- Più aderenza appunto a un tool che la community conosce bene
- La necessità sempre minore di scrivere un file di configurazione (e quello di Webpack è complicato) per il proprio caso d’uso. Suppongo che Brunch fosse utilizzato per la struttura del file di configurazione più semplice, ma adesso, beh, no more excuses.
La seconda novità di rilievo è che mentre Phoenix fino alla versione 1.3 ha utilizzato Cowboy (il più famoso webserver Erlang) alla sua prima release stabile, Phoenix 1.4 si basa interamente su Cowboy 2. Il motivo per cui questo è una figata lo potete leggere direttamente nell’annuncio di rilascio di Cowboy 2, ma essenzialmente ai miei occhi risalta una cosa: HTTP/2!
Per il resto, ragazzi, c’è ancora un sacco di roba sotto il cofano che però a me interessa relativamente. Ci sono tantissimi cambiamenti soprattutto rispetto ai transport e a come i Socket di Phoenix interagiscono coi transport. Accanto a questo troviamo bugfix e deprecation a pioggia che però potete leggervi nel changelog ufficiale, il quale viene aggiornato man mano che vengono smarcate le voci della lista delle cose che mancano.
Che altro dire? Ricordatevi di usare sempre le forbici dalla punta arrotondata così non vi fate male.
Tra un trapizzino e una bistecca Francesco Malatesta ci spiega anche l’Actor Model, ovvero uno dei paradigmi fondamentali quando programmiamo in Elixir e in generale con la BEAM. Secondo me il suo post è un’ottima risorsa, perché ci mette in condizione di capire subito come pensare secondo questo schema e imparare a fregarcene di un sacco di casi limite ed eccezioni da gestire grazie al principio del Let It Crash.
Che aspettate? Iniziate a scrivere un po’ di attori da subito 😁
Npm è forse il package manager più odiato della storia, ma secondo me non solo funziona benissimo, ha anche una tonnellata di nuove funzionalità in questa nuova versione. Cioccàtevele tutte nel post di review del team di sviluppo.
Fa ridere che il gestore di dipendenze con più note di biasimo da parte di tutta la community di sviluppatori sia anche quello “ufficiale” della piattaforma/linguaggio più popolare al momento. Tra le novità notevoli:
npm ci
- Risoluzione automatica dei conflitti
- Offline package installation
- Hooks!