Alessio Biancalana Grab The Blaster di Alessio Biancalana

Visual Studio Code, gioie e dolori: CPU al 100% con la nuova versione

In questi ultimi – boh – due giorni, mi è capitato di riavviare il computer per dare una pulita e installare qualche aggiornamento di sistema rimasto lì a prendere un po’ di polvere (non sono più il ghepardo di una volta con gli aggiornamenti, devo dire); contestualmente ho riavviato Visual Studio Code e anche di quello ho automaticamente installato l’ultima versione.

Purtroppo ho immediatamente notato qualche problemino, nel senso che aprendo più di due o tre file JavaScript (e facendo frontend “for a living”, beh, mi capita spesso) la CPU andava al 100%, e non la smetteva mai se non occasionalmente. Non avendo tempo per indagare me lo sono tenuto così per qualche decina di ore, dopodiché appena ho avuto due minuti ho cominciato a scartabellare e greppare l’internet per capire cosa stava succedendo e come risolvere quello che ho scoperto essere un problema non solo mio, ma anzi di un sacco di altra gente.

tl;dr

Il comando in questione ha riportato ordine nel mio microcosmo, e penso che lo eseguirò anche sul resto delle mie workstation prima possibile:

$ rm -rf Library/Caches/typescript/*

In pratica, non lo sapevo ma l’installazione di TypeScript distribuita con Visual Studio Code crea una cache relativa a un sacco di oggetti che vengono costantemente smanacciati dal compilatore e dall’editor. Con questo la eliminiamo annullando eventuali stalli o incoerenze, come nella migliore delle tradizioni di ogni meccanismo di caching: se qualcosa può corrompersi e generare falsi hit positivi o negativi, lo farà.

Debuggare Visual Studio Code

Nel corso del mio grep dell’intera Internet, sono inciampato prima di tutto su un commento utile di uno sviluppatore di Visual Studio Code che consigliava di aprire l’inspector dei processi interni all’editor. Questo può essere fatto tramite il comando:

> Developer: Open Process Explorer

Possiamo impartire questo comando tramite il menu che appare premendo CTRL-Shift-P su Linux e Windows, o Cmd-Shift-P se siamo un Mac. Ci apparirà una finestra che mostra il consumo di risorse di ogni processo integrato, che nel system monitor tradizionale viene contrassegnato solo come Code Helper, il che non è un grande aiuto.

Visual Studio Code TS server 100% CPU

Viceversa questa simpatica finestra è veramente utile. Grazie a queste informazioni sono incappato in un sacco di maledizioni verso il TypeScript Language Server, che per la verità gestisce anche il normale JavaScript. Ho guardato queste tre issue:

Leggendo l’ultima, capendo l’antifona, ho deciso di mettere in pratica il consiglio che la maggior parte dei commenti caldeggiavano. Come scritto sopra:

$ rm -rf Library/Caches/typescript/*

Chiuso Visual Studio Code, riaperto, e il problema era svanito. Il sistema operativo ha giusto impiegato un po’ di tempo per ricostruire alcuni indici e la cache, dopodiché tutto è andato liscio come l’olio. Devo dire che non conoscevo l’inspector integrato per i processi di Code. Dovrei usarlo più spesso.

Fwd: Andrea Contino intervista Kari Geltemeyer

Riprendendo una delle mie rubriche preferite di sempre, #WhyIBlog, il mio amichetto Andrea ha intervistato Kari Geltemeyer. Devo ammettere di aver letto parecchi post di Kari trovando la sua scrittura molto bella.

Mi ha colpito:

Which future is waiting the blogosphere in your opinion?

I don’t know. I don’t expect there’s a big second wave or blogging renaissance around the corner, and maybe that’s okay. Most people seem to prefer the instant responses of social media and want that reinforcement, the faves and likes.

But I have a real soft spot for the bloggers who stick around, and a lot of favorites that I check every day. I think of the blogosphere now as a small neighborhood, and it’s populated by people who still want to just hold out a hand and say, come in and sit with me for a while. I just find personal blogs inherently interesting, and I appreciate the effort and the care that people put into them; they’re like an endless supply of short stories.

A dire e leggere queste cose mi sento un vecchio banfone, ma è vero: con i social abbiamo perso l’aspetto “manifatturiero” del web, il fatto che ogni pagina potesse avere la sua formattazione e ogni sito personale la sua veste grafica. La forte volontà di accentramento di ogni azienda dietro ciascun social network ha fatto scopa con la sempre minore voglia delle persone di fare uno sforzo, anche piccolissimo, per mettersi in gioco un po’ di più.

E chiaramente a chi ha ancora voglia di farlo, oltre l’applauso di Kari, va anche il mio.

Ok, panico

In questa nuova internet dove i blogroll non vanno più di moda, vi do un consiglio: se vi piacciono i linguaggi di programmazione, leggetevi Ok, panico. Prima ci scrivevano un po’ di persone, adesso l’autore principale del blog è rimasto principalmente juhan, che continua ad appuntare tutto quello che studia nei suoi post dal sapore (e dal sapere) scientificamente squisito.

Adesso sta studiando Maxima, mentre io approfondisco Elixir.

È un grande.

Leggetelo.

Elixir Roma ha un cuore che non smette mai di battere

Ormai è un bel po’ di tempo che principalmente io e Claudio ci occupiamo della community di Elixir Roma (in quanto a contenuti lui è decisamente più prolifico di me), così dato che negli ultimi tempi ci sono stati un po’ di eventi importanti per noi alchimisti romani, ho deciso con una PR di portare un po’ di gioia e rivoluzione nel nostro giardino.

Ho dato una spolverata al sito, abbiamo ricominciato a postare sul blog una piccola minuta degli incontri, e ci stiamo sforzando di fare meglio la pianificazione dei successivi. Questo perché:

  • Abbiamo ricevuto una visita in ufficio! Marco di Elixir Atlanta ci ha fatto sapere che in quanto a “risalto” siamo la prima community Elixir in Italia. Così abbiamo deciso di dare valore a questo sforzo;
  • Nel tempo, lentamente, con tantissima pazienza, stiamo aumentando;
  • Siamo stati insieme a Code Beam Lite, di cui spero di poter scrivere quanto prima perché è stata davvero una bella esperienza.

E insomma, senza nessuna occasione speciale si riparte. Mi rende particolarmente orgoglioso il risultato che abbiamo ottenuto nel tempo. È frutto di uno sforzo costante, e soprattutto raggiungere questi traguardi mi fa affrontare (e non solo a me chiaramente) quanto è difficile mettere in piedi una community su qualcosa di nicchia come Elixir a Roma.

Protocolli compromessi dal fattore umano

È già un po’ che questa mia riflessione va avanti, ma solo oggi, 12 marzo, il “compleanno del WWW”, ha trovato una forma degna di essere espressa.

Abbiamo fallito.

E dico abbiamo perché, per quanto uno zero virgola, ho sempre avuto in quanto sviluppatore, in quanto nerd, in quanto “ricercatore” (qualsiasi cosa significhi), in quanto scienziato – pazzo ma pur sempre tale – il piacere di considerarmi una parte di Internet, una parte dell’allargatissimo gruppo costituente di pazzi che ha dato vita al mondo come lo conosciamo adesso.

Per la verità in gran parte questo ecosistema l’ho subìto, ma ho commentato RFC, contribuito al software open source, scritto di Linux. E sono qui oggi a proclamare, secondo quello che è il mio poco elevato e utile punto di vista che “noi”, chiunque sia questo noi ipotetico, abbiamo fallito.

Pensavamo che Internet avrebbe dato il potere alle persone di comunicare, e che queste una volta appreso il potere che avevano in mano l’avrebbero gestito e controllato. Lo avrebbero usato per il bene. Non sarebbero più esistite barriere comunicative né di ceto sociale, reddito, altro. In una visione estremamente romantica, idealizzata, distorta di ciò che era possibile usando la Rete e rendendola pervasiva nelle nostre vite e negli ambienti che frequentiamo, abbiamo creduto che sarebbe successo il meglio del meglio.

Chiaramente è successo il peggio del peggio. Invece di prenderci ciò che è nostro di diritto, la libertà di parola assoluta, abbiamo permesso ad altri di imporre la loro volontà e usurparcelo. Le telco hanno preso il controllo, anzi forse è meglio dire/scrivere che lo hanno sempre avuto. Ci hanno resi schiavi e vacche da mungere, oggi tramite Facebook, domani tramite Instagram, dopodomani tramite la nuova moda del momento. Nonsense in quattro terzi su palmari in sedici noni.

E oggi, oggi che Google dedica l’ennesimo Doodle (e sarebbe ben ipocrita il contrario) al protocollo che le ha permesso di diventare un colosso da centodieci miliardi di fatturato e dodici miliardi di utile netto, parlando con Agnese lei mi ha detto:

È quello che avrebbe cambiato il mondo, se solo il mondo non fosse fatto di persone

Ho realizzato che ci sta. Abbiamo cercato di spingere una soluzione tecnica1 a risolvere un problema non tecnico. Un problema umano. Da questo mi è venuto in mente un post che ho letto un paio di settimane fa, che mi aveva fatto sorridere sul momento:

On the other hand Gopher is a text only protocol that is great to deliver text only documents where the stress is in what you write. But that would be fetichism, for me the silver bullet of Gopher is that it is UNCOOL. Uncool enough that it will be forever, AFAIK, an alternative reality where certain folks can decide to separate from the rest, to experience a different way to do things, more similar to the old times of BBSs or the first years of the internet. A place where most people will not want to go just to read nerdy stuff in an 80 columns fixed size font.

[…]

Well, have fun with Gopher! I hope this Gopher thing will go forward, I really believe there are a few of us that need to create a community outside the chaos of the modern Internet. No, it will not be possible to have no interactions. For instance I’ve no plans to stop blogging or using Internet. But certain slower higher quality communications need a place to prosper.

Antirez ha deciso per il decimo compleanno di Redis di implementare la comunicazione tramite Gopher, un protocollo alternativo ad HTTP largamente usato anche ai tempi della nascita del WWW. La sua frase è emblematica, perché con molta ironia riconduce ancora una volta il problema umano a una soluzione tecnica; questa volta però c’è quel sottotesto di proposta di eremitaggio di “contenuti di qualità” (trittico di parole che necessiterebbe di una definizione lunga svariate pagine) che fa ridere, e fa pensare.

Fa pensare perché Internet sarebbe un posto clamorosamente bello se fosse libero dalle persone. Libero dalle mammine pancine e da tutta una serie di soggetti categorizzati ed etichettati da altri soggetti che non fanno altro che urlare “io tifo asteroide” alimentando il circlejerk2 che porta all’estremo il teorema della bolla di filtraggio.

E dunque arriviamo al paradosso: l’adozione di un altro protocollo, perché HTTP è diventato troppo “pieno di schifezze”, quasi al punto da essere irrecuperabile. La soluzione tecnica ad un quesito umano, quello di Corrado Guzzanti, secondo il quale “aborigeno, ma io e te, che cazzo se dovemo dì?”.

Fa ridere eh? Certo che fa ridere. Lo sapete perché? Perché è vero.

Buon compleanno, piccolo esperimento incancrenito chiamato World Wide Web. Cento di questi giorni.

  1. Information Management: A Proposal, il paper originale di Tim Berners-Lee. 

  2. A group discussion or activity between like-minded individuals that validates mutual biases or goals in a non-confrontational environment. From Urbandictionary