zsh parte 2: autocompletamento lento

OK, ho iniziato a utilizzare zsh in maniera molto proficua da qualche giorno e scopro che l’autocompletamento diventa molto lento.

Dopo aver provato con i vari strace, lettura di log, ecc, scopro che zsh legge più e più volte il file /etc/hosts e che spesso fa anche delle richieste dns (o almeno così sembra, non ho indagato oltre) durante l’autocompletamento.

Quindi raffino le mie ricerche e che ti trovo: https://tlvince.com/fixing-slow-zsh-command-completion

E bravo tlvince. Primo: provo se limitando il numero di dati in /etc/hosts qualcosa si modifica… ebbene sì!

Quindi, utilizzo il trucchetto e aggiungo al mio file .zshrc la linea

e tutto ricomincia a funzionare velocemente.

E vai, primo problema della mattinata risolto.

Robe da nerd: Oh my zsh e grc. Come passare ad una shell interattiva e colorata… FINALMENTE!

Che bello Oh-my-zsh!E che bello grc (Great Colouriser)!

Era da tempo che volevo rimettermi a lavorare con zsh, giusto per vedere i miglioramenti fatti e che ti vado a trovare? OH-MY-ZSH. da lì, il salto a utilizzare grc e non avere più un triste schermo grigio su nero da leggere è stato breve.

Allora, inizio da zero. Questo è un diario e così mi ricordo anche il perché ho testato e installato il tutto.

Ho installato negli ultimi tempi svariati nuovi switch, router e firewall e, come tutti gli sfigati nerd compulsivo-ossessivi ho sempre utilizzato la mia fedele shell linux… triste, vero? Sono quindi partito da schermate simili a questa: Schermata da 2017-12-21 16-29-48

Immagine che rende tutto ancora più triste. Ma dove sono i colori???

Al che mi sono ricordato che vim, emacs, ecc, hanno un supporto neanche tanto base per i colori e che aiuti per il codice, per la lettura dell’output, ecc. Probabilmente, quello con cui ho lavorato di più è stato vim, con le sue regole vim colors, tutte come doveroso in formato testuale.

Quindi il tutto è partito da questo: come avere un output leggibile e comprensibile magari anche con qualche colore?

Ricerca Google -> “colour shell output” -> Risultati: [
“bash – How to change color of echo output in linux”;
“Shell Colors: colorizing shell scripts – Bash Shell Scripting by Examples”;
“bash:tip_colors_and_formatting – FLOZz’ MISC”
]

Tutto su bash e tutto inutile, fino ad ora. Altra ricerca cercando un comando semplice da colorare: “linux colour output of ping” -> Risultati: [
“Linux / Unix: Highlight / colour ping command output – nixCraft”;
“linux – Different Color for command and output – Super User”;
“GitHub – garabik/grc: generic colouriser”
]

OK, leggo i primi due, però si tratta di eseguire non un solo comando ma un comando seguito da una pipe verso un altro comando. Bene ma non benissimo. Se necessario, lo faccio ma andiamo avanti. GRC, che è sto GRC? Generic Colouriser. Oh ma che bello, sì, proprio quello che mi serve, proviamolo.
Ed ecco i miei colori sui vari comandi (ping in primis):

Schermata da 2017-12-21 16-49-12

Come direbbe una petalologa famosa: “Bello, vero? Sì!”

Però, vedo durante la configurazione che si parla anche di zsh e nelle varie ricerche, mi è saltato all’occhio un altro progetto: oh-my-zsh.Proviamolo.

Installo zsh, cambio shell di default, rilancio il terminale e installo oh-my-zsh:

Risultato 1: Autocompletamento zsh e non più bash.
la lista delle opzioni è direttamente selezionabile e non devo più andare a scrivere pezzo per pezzo ciò che mi serve. Esempio con ssh che mi sembra uno tra i più azzeccati:

Schermata da 2017-12-21 17-08-59

Per avere questo output ho solo scritto “ssh -o ” e premuto due volte TAB.

Altro esempio, questo soprattutto grazie a oh-my-zsh è nmap:

Schermata da 2017-12-21 17-26-28

Anche questo, fatto con “nmap -” e una volta il tasto TAB. E tra le due liste, bello, sempre più bello, posso anche muovermi con le freccie e con un invio, scegliere l’opzione.

Appunto personale: nei prossimi giorni voglio anche mettere qualcosa sul supporto git di oh-my-zsh, che ho visto di sfuggita.

Ciao, Omar

Oggi è morto Omar Ronda.
Tutto quello che è stato, tutto quello che ha fatto, tutta la sua ironia, tutta la sua allegria, tutte le storie che raccontava quando era in compagnia restano e resteranno alle persone che ha incontrato.
Grazie, Omar.

PS: prendi una vespa per quest’ultimo viaggio e continua a divertirti come sempre.

BGInfo e il desktop sovrapposto

Adoro BGInfo. A costo di ripetere cose dette milioni di volte su altri siti, trovo che sia un programma semplice, leggero, facile da usare che fa quello che gli si chiede.

Certo, ci sono alternative che spesso fanno molte più cose, a volte anche in tempo reale. Oggi ho trovato su un sito un utente che consigliava RainMeter come alternativa a BGInfo. Beh, con tutto il rispetto, è come consigliare un bilico in sostituzione a una carriola. Ripeto: BGInfo fa quel poco (tanto) che dice di fare e lo fa con un metodo che a me piace (scrive un immagine, la imposta come desktop e tanti saluti…).

Piccolo problema che ritengo nasca dalla complessità intrinseca di Windows: spesso sovrappone due o più immagini temporanee una all’altra. Dopo essermi “leggermente stufato”, parafrasando il ragionier Ugo, ho buttato giù un piccolo script che fa questo:

  1. cerca se c’è un immagine già impostata sul desktop
  2. se c’è, salva il percorso dell’immagine in una variabile di registro (LastWallpaperSource)
  3. controlla se BGInfo è già stato eseguito (uso un’altra variabile di registro per la valutazione)
  4. se sì, sostituisce l’immagine del desktop con l’immagine di partenza recuperata al punto 2
  5. se no, esegue BGInfo.

Dubbi? Io sì, tant’è che sono passato da VBS a Powershell per una serie di motivi (non ultimo l’esecuzione come Operazione Pianificata del comando). Copio-incollo il listato qui sotto per chi volesse utilizzarlo e darmi consigli.

A voi…

 

jPlaybook: applicazione opensource per creare gli schemi

Ho pubblicato la primissima versione testata di jPlaybook, che è un’applicazione online per creare schemi di pallacanestro e salvare le immagini create.

La trovate qui: http://www.jacopogiudici.com/jPlaybook

Non vi sto a massacrare con tutti i linguaggi e le librerie usati, sappiate solo che l’idea è far diventare il tutto un’applicazione Free Software. Già adesso, tutto il codice che ho aggiunto è scaricabile non offuscato né criptato né altro. Con un po’ più di tempo e magari di aiuto, vorrei mettere a tutto il codice la giusta licenza.

Per ora, è possibile creare uno schema e scaricarne una versione in PNG.

I prossimi passi che ho in mente sono:

  • creare un servizio online che permetta di preparare e salvare allenamenti, playbook, ecc
  • migliorare il supporto per tablet e cellulari (dovrebbe funzionare già sui tablet ma  a volte si pianta)
  • mettere le varie licenze agli script javascript
  • postare il tutto su github (lo farò non appena avrò le licenze a posto)
  • (NB: cosa un po’ tecnica): creare un protocollo per salvare i movimenti. Al momento, il programma registra quello che è stato disegnato in JSON. Vorrei stabilire come questo venga codificato e poter quindi salvare in database la lista dei movimenti

Se qualcuno vuole procedere con qualcuno di questi punti, faccia pure: in modo autonomo oppure potete anche lasciare un commento qui sotto se avete bisogno di aiuto.

Sì ma a 13 anni, devono imparare a palleggiare di sinistro…

Leggo di pallacanestro. Molto ma non troppo. D’altronde faccio un altro lavoro ma tento di allenare una squadra Under 16 regionale al meglio delle mie possibilità.

Al che, come tutti gli allenatori dell’universo, tento di imparare tutto il possibile e l’impossibile da libri, PAO, corsi, seguendo partite (anche se qualcuna l’ho già vista nella mia vita), ecc.

E dopo un po’, come mi succede sempre (ma perché non posso solo dire che va beeee…ne?) inizio a farmi delle domande e a tentare di capire come chi mi sta davanti, chi scrive o chi parla sia arrivato a certe conclusioni.

Il mantra, in particolare, che mi fa interrogare di questi tempi è:

  • i ragazzi non devono essere troppo presto specializzati nel gioco;
  • bisogna far crescere i giocatori e non pensare solo a vincere;
  • si devono insegnare i fondamentali e far crescere la squadra seguendo le giuste tappe di apprendimento.

Poi, come molti colleghi allenatori sanno, queste diventano parole al vento. Leggete anche il bellissimo articolo La dura durissima vita degli allenatori delle giovanili per farvi un idea.

Spesso genitori, accompagnatori (che molte volte sono i genitori stessi), assistenti e chiunque abbia allenato la squadra prima di voi ha detto ai giocatori cosa fare per vincere. E l’ha fatto proprio facendoli specializzare in un certo tipo di gioco e facendo saltare loro intere tappe di apprendimento.

– Se sei più alto del tuo avversario, tiragli sulla testa! Giusto insegnarlo? Forse sì, ma…

– Tutti devono giocare anche se sono scarsi! è un’altra frase che si sente spesso. Poi, però, anche a livello UnderTutto, nelle partite che contano, chi non ha raggiunto un buon livello, non vede il campo.

– Poi la mia preferita: una splendida truffa al suono di: “Sì, però se perdono sempre, poi i ragazzi si stufano e smettono di venire in palestra!“.

SIGH!

E allora, tra le varie domande che mi faccio, una in particolare, mi gira in testa costantemente:

cosa insegno io ai ragazzi?

E generalmente, quando faccio questa domanda, arriva una voce tonante fuori campo: Ma come! Non lo sai? E dire che hai fatto il corso da allenatore di base! Ai ragazzi devi insegnare:

  • a 13 anni, a palleggiare di sinistro e a battere l’uomo
  • a 14 anni, a passare la palla
  • a 15 anni, …
  • a 16 anni, blocchi, bla bla bla, rimbalzi, bla bla bla, palla al lungo, bla bla bla
  • a 18 anni pesi, lavoro individuale, inserimento nelle prime squadre, bla bla bla

Senza barare, alzi la mano chi non ha mai sentito una delle frasi qui sopra! (…fermi che vi conto!…)

E siamo così attenti a queste competenze che si trovano ovunque articoli, libri, post dal titolo: “Obiettivi Under 13“, “Obiettivi Under 16“, “se non hai fatto minibasket, non sai dove andare“, “doti da supereroe se giochi con le palline da tennis“, ecc.

E chi non segue i dettami, è invogliato ad uniformarsi, perché “la nazionale deve avere giocatori che parlino tutti la stessa lingua”, che sappiano tutti cosa sono un blocco in allontanamento (anzi, un “flare”), un pick and roll, uno sky-hook (beato sia l’uncino di Ottorino Flaborea) e un Martini Dry.

Ci si dimentica però, sempre, di una cosa: i giocatori sono persone!

E nel mio caso ragazzi. Che fremono dalla voglia di migliorare, che cercano di essere i più bravi in qualche cosa e che vogliono affermarsi. Quindi mi rifaccio la domanda e tento di rispondermi da solo. Cosa insegno ai ragazzi?

Nessuno lo sa: si può solo scoprirlo col tempo.

Di nuovo? Come nessuno lo sa? Eh, allora smetto di leggere. Se nessuno lo può spiegare e mettere in un libro, non mi serve. E poi non è vero. Io ho un “Mental Fundamental Senior VIP Chuck Norris trainer” che di queste cose sa tutto. E mi ha detto che per vincere, la Nazionale Italiana ha bisogno di lunghi e di gente che sappia fare i movimenti in post basso e che sappia prendere i rimbalzi, perché noi italiani siamo corti e tozzi. Non vedi, d’altronde Alvaro Vitali? Mica puoi pensare di farlo giocare contro Sean Connery e pensare che vinca?

Al tempo! Io sono sicuro di sapere riconoscere quale sia la strada migliore per un ragazzo che ha un terzo della mia età (SIC), però non so a priori quale sia questa strada, così come non lo sa suo padre, non lo sa sua madre, sua nonna, i suoi insegnanti e neanche lui.

C’è però un modo per scoprire questa strada: fare in modo che il ragazzo si faccia delle domande!

Attenzione ai naviganti distratti: ripeto!

FARE IN MODO CHE IL RAGAZZO SI FACCIA DELLE DOMANDE

E allora, un giorno potrebbe chiederci una cosa su cui neanche noi abbiamo mai riflettuto, oppure potrebbe iniziare a chiedersi qualcosa al di fuori degli schemi, della pallacanestro integrata, della triade Tecnica, Tattica, Strategia (AMEN!).

Ad esempio, posso dire che non mi dispiacerebbe se un mio giocatore (hanno 15 anni, ricordo), si facesse almeno una queste domande:

  • come riconosco se sto facendo le cose bene?
  • come faccio a spingere gli altri a fare le cose bene?
  • dipende davvero tutto dal risultato (+2/-2)?
  • perché sto giocando a pallacanestro?

I giocatori che arrivano a farsi queste domande sono poi quelli che si allenano da soli. Sono quelli che arrivano in palestra e tirano 500 tiri perché sanno che, anche se non c’è l’allenatore, loro hanno capito qual è un tiro buono e uno cattivo (e come, spero, molti avranno capito, non sto parlando di “la palla è entrata” o “la palla è uscita”).

Dai, Grande! Quindi, adesso che so il trucco, mi stampo questa pagina, vado dai miei giocatori e perdo mezz’ora di allenamento per far scrivere a loro una risposta a queste domande. Poi, mi segno le loro risposte, le metto nella cartellina per il  prossimo anno in modo da dare già dei suggerimenti a quelli che allenerò. E così il prossimo anno, invece di perdere mezz’ora, faccio fare le crocette e ci metto solo dieci minuti e poi posso far fare quel bell’esercizio con tre guardie e tre ali che mi piace tanto.

…farsi domande. Non rispondere alle tue!

Si, va bene, ma dai, è la stessa cosa!

Ehm… non so, fatti una domanda e datti una risposta.