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.

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.