S.S.S.S.S.S.S.S.: Semplici Script Senza Senso Supportati Sonoramente dal Suonatore Silvestri

Quello che state leggendo non doveva essere l’incipit del post. Ero partito diversamente, con un titolo con molte meno “S” (tre, per la precisione). Poi i primi riferimenti ad alcune belle canzoni di Daniele Silvestri hanno cominciato a venire fuori, integrandosi sempre meglio nella trama del post. Script messi insieme in tempi differenti (da alcuni mesi a pochi giorni fa) si sono per puro caso combinati alla perfezione.

Ad un certo punto mi è stato chiaro che c’era un tema che si poteva seguire per creare un cocktail di musica e programmazione (seppure spicciola): una tentazione troppo grande a cui resistere dato che io vado matto per questi abbinamenti improbabili!

Quindi cari musicofili, potete fregarvene dei programmini e saltellare tra i link ai video sparsi nel post. Egregi pinguinisti, voi potreste invece volervi dedicare interamente agli scriptini proposti. Infine, stimata banda di gente strana, voi potreste ascoltare la musica mentre apprezzate le mie notevoli abilità informatiche (e qui parte la pernacchia…).

Due paroline due su Daniele Silvestri (Pagina ufficialeYouTube personaleYouTube VEVOWikipedia): uno dei pochi italiani che mi piacciono, Danielino è bravo, simpatico e versatile, sa scrivere canzoni divertenti, appassionate, tenere, profonde.

Le musiche non sono da meno ed i suoi album si ascoltano che è un piacere. Inutile dire che cellò tutti, acquistati in blocco in un raptus qualche anno fa. Bella voce, seppure non eccelsa, ed interpretazioni sempre espressive e coinvolgenti. Sentitevillo! ( trad.: “Ascoltatelo”).

Giudizio globale:  ★★★★★ ed una canzone ciccio-romanticosa tra le mie preferite in assoluto, Le cose in comune ♥♥♥♥♥.

Dai, sono stato più sintetico del Terital, di meglio davvero non potevo fare.

Passiamo agli script: questi piccoli mucchietti di codice si accumulano, si riproducono, crescono e si evolvono come una colonia di formichine. Gli S.S.S.S.S.S.S.S. (S8 / S.Otto in breve) nascono in pochi minuti dall’unione casuale di un’idea stupida e quelle quattro (o otto?) cose che sono riuscito ad imparare sullo scripting bash.


Il dado9 (v2.0)

(Quasi) Come quel bell’album del ’96 di Daniele Silvestri con dentro appunto Il dado e poi Cohiba, Strade Di Francia, Banalità e Pino (Fratello Di Paolo) fra le altre. Cominciate ad ascoltarle mentre leggete, così magari le insulsaggini che sto per scrivere passano inosservate.

Una v2.0 presuppone una v1.0, presentata nel post “Scriptini-ini-ini“. Questa release si differenzia dalla precedente per l’uso della “X” al posto dello spazio nelle stringhe che definiscono la mappa dei punti sulla “faccia” del dado per ciascun valore. Le stringhe risultano così più leggibili e non devono essere più racchiuse tra virgolette. Successivamente un tr si incarica di sostituire la X con uno spazio (che comunque serve per la corretta visualizzazione).

Niente di che (direi niente ebbasta), magari si poteva meno pomposamente chiamare questa versione 1.00001, data l’entità della modifica; però no, altrimenti mi si sconvolge il marketing. Quindi v2.0! Ora con il 100% in più di “X” e il 15% in meno di spazi! Magic new features! Improved performance! Best user experience! Ed altre simili balle da keynote

#!/bin/bash
#dado v2.0
# +-------+
# | 1 2 3 | -> | 1X2X3 |
# | 4 5 6 |
# | 7 8 9 |
# +-------+
comb9=(XXXXXXXOXXXXXXX OXXXXXXXXXXXXXO OXXXXXXOXXXXXXO
OXXXOXXXXXOXXXO OXXXOXXOXXOXXXO OXXXOOXXXOOXXXO)
dado=$(($RANDOM%6))
riga=+-------+
echo $riga
for i in 0 5 10; do
echo '| '${comb9[$dado]:$i:5}' |' | tr X ' '
done
echo $riga
exit 0

Una singolare proprietà collega i valori delle facce con la mappa dei corrispondenti punti da visualizzare: la somma degli indici di posizione dei punti è sempre un multiplo di 5 ed è proprio uguale a 5 × valore della faccia. Non è un tentativo di supercazzola: un esempio e la tabella sotto chiariscono il concetto. Prendiamo il valore 4: per visualizzarlo dovrò far “accendere” i punti 1, 3, 7 e 9 sulla faccia. La somma di questi indici è 20 ovvero 5 × 4. Ta-dah!

N | Punti attivi| Somma
--+-------------+------
1 | 5           |  5    
2 | 1 9         |  10
3 | 1 5 9       |  15
4 | 1 3 7 9     |  20
5 | 1 3 5 7 9   |  25
6 | 1 3 4 6 7 9 |  30

Sfortunatamente questa proprietà (io la chiamerei pure “coincidenza”) non ha un risvolto pratico per il codice. I valori della colonna “Somma” infatti possono essere ottenuti in diversi modi, addizionando tra loro gli indici: 20 può essere dato da 1+3+7+9 ma anche da 1+4+6+9 (e le possibilità non si esauriscono qui). Non se sia possibile, sicuramente non sarebbe né facile né conveniente, definire dei criteri per collegare univocamente il valore della faccia V alla somma corrispondente (5 × V) e quindi alla combinazione di indici che la determinano.

Vabbè, facciamo che vi ho spiegato ‘sta cosa perché mi era venuto o’ ‘ngripp’ (la fissa, per chi chiama da fuori Napoli) per questa misteriosa proprietà matematica celata nelle facce di ogni dado del mondo… Wow! Gomploddo!!1!1! Mistero! Voyager! Templari! (Sicuramente c’entrano qualcosa 😀 )


La monetina

testa_croce Monetine dall’omonimo album doppio del 2008 ci sta alla perfezione. I due CD sono ovviamente indicati come “Testa” e “Croce”.

L’idea (malsana) mi era venuta dopo un commento di Simone sempre su “Scriptini-ini-ini” e quindi detto fatto (tempo netto di scrittura e debugging di ‘sto capolavoro: 1’30” e c’ho messo pure troppo).

Toh, beccatevi pure lo scrinsciòt dello script all’opera. I disegnini ASCII art delle due facce sono tremendi, lo so, ma non potevo coniare una moneta apposta.

Con la scarsità di moneta “fisica” che c’è, hai visto mai che torni utile.

#!/bin/bash
toc=$(($RANDOM%2))
if [[ $toc -eq 0 ]]
then
echo "Testa"
echo "    *__*
 *  (__)  *
*  /\||/\  *
*  \=__=/  *
 *  _||_  *
    *  *"
else
echo "Croce"
echo "    *__*
 * //___  *
* / |___\  *
*_|_|____|_*
 *  2013  *
    *  *"
fi
exit 0

1, 2, 3, Stella!

Fonte: Wikimedia Commons

Lo script più cialtrone da quando l’uomo ha inventato gli script e la cialtronaggine, non c’è che dire. Qui l’abbinamento è con Unò-Duè dall’album omonimo del 2002.

La funzione dello script è esattamente quella che sembra e non ho il coraggio di dire altro in proposito. Giocare a “1, 2, 3, stella” da soli contro il pc è una scena di una tristezza talmente abnorme che farà piangere i gattini di tutto il vicinato.

Non lo fate, neanche se doveste riuscire ad integrare lo script con un sistema di riconoscimento del movimento collegato alla webcam. Beh, forse forse in quel caso…

#!/bin/bash
# 1, 2, 3, stella!
t=0.5
for i in {1..3}; do
echo -n "$i, "
sleep $t
done
echo 'STELLA!'
exit
No, no, no, non ci siamo… Aaah! Ma ti rendi conto?
Da solo contro il pc!
Io sono troppo piccolo e carino
per sentire queste brutte cose

Sul serio, non lo fate, ok? I gattini piangono. PIAN-GO-NO.


Targhe auto

Conosco la targa della vostra macchina, anche di quella dei vostri amici, anche quella della macchina che non avete ancora comprato. Sono un mago? Quasi 😎 . Prima gli abbinamenti: L’Y10 bordeaux (Prima di essere un uomo / 1995) e Gino e l’Alfetta (Il latitante / 2007) sono scelte facili. Anche Datemi un benzinaio (Daniele Silvestri / 1994) si presta bene, altrimenti il giro finisce presto.

Facendo il pendolare tra lavoro e mare ad inizio estate ho passato più di qualche ora a fissare le targhe delle macchine davanti a me. Da questa alienante attività e dalla curiosità di mettere in evidenza come si costruiscono cicli nidificati più volte (ne ho accennato in uno dei primi post sull’argomento, “Se sei felice e tu lo sai lancia uno script“) è nato questo scriptillo.

#!/bin/bash
# Generatore automatico di targhe automobilistiche
lettere=(A B C D E F G H J K L M N P R S T V W X Y Z)
for a in ${lettere[@]}; do
for b in ${lettere[@]}; do
for c in ${lettere[@]}; do
for d in ${lettere[@]}; do
for num in {000..999}; do
echo $a$b $num $c$d '|'
done #num
done #d
done #c
done #b
done | xargs -d\\n -n 5 #a + xargs pipe
exit

Prima ruotano i numeri ($num) e poi le lettere a partire da quella più a destra: quindi il ciclo più interno (e quello che si chiude per primo) sarà proprio legato a questa variabile. Più si sale nella “gerarchia” ($d$c$b$a) andando verso “l’esterno” del blocco di codice e minore è la frequenza di incremento della variabile collegata. Niente di straordinario, solo un promemoria.

Per inciso, queste poche istruzioni generano i 234,256,000 di combinazioni (22 lettere su 4 posizioni e 1000 numeri = 224 × 1000) di tutte le targhe automobilistiche possibili con l’attuale sistema. L’uso di xargs alla fine del gruppo di cicli permette di raggruppare 5 targhe per riga per avere una più semplice visualizzazione tabellare, così:

...
AE385WK | AE386WK | AE387WK | AE388WK | AE389WK |
AE390WK | AE391WK | AE392WK | AE393WK | AE394WK |
AE395WK | AE396WK | AE397WK | AE398WK | AE399WK |
...

Se indirizzate l’output in un file avrete, dopo un po’ di tempo, un bel malloppo di oltre 230 MB.

Una delle macchine più nuove che ho visto ad oggi aveva la targa ETxxxJF o qualcosa così: circa la numero 4,590,000 dall’inizio della sequenza. Mancano quindi poco meno di 23 milioni di targhe prima di esaurirle tutte. Sai che traffico!


Direi che va bene così: ho elargito la mia periodica dose di… non-so-cosa condita da un pizzico di trolling. Meno male che c’è la musica.

Chissà se avete letto qualcosa del post oltre ai titoli delle canzoni… Bah, fa lo stesso, cantiamo insieme:

“…uomini uomini c’è ancora una speranza…”

Informazioni su Man from Mars

https://extendedreality.wordpress.com/

  1. Giuro che ho letto tutto con la voce di Silvestri in sottofondo! Ma, arrivata alla fine, due domande mi sorgono spontanee: 1- a cosa cacchio servono ‘sti script? A niente come penso o sono troppo limitata per comprenderne il senso? 2- ma non hai proprio niente di meglio da fare nelle tue giornate? Che so, leggere un libro, ascoltarti un disco, guardarti un bel film! 😀

    Mi piace

    • Brava! Hai centrato uno degli spiriti del post. Due risposte mi sorgono spontanee:
      1) questi script in particolare servono a poco, dal punto di vista pratico. Hanno un valore ehm… metafisico… che… uhm… trascende la quotidianità dell’uso pratico, cioè ehr… Vabbè non servono ad un tubo se non a fare pratica (io) ed a giocare un po’.
      2) premesso che la scrittura di ciascuno ha richiesto al massimo una mezz’oretta, con tutti i video che ho postato cosa pensi che abbia fatto nel resto del tempo? “Salirò, salirò, tra le rose di questo giardino…”
      E poi ho cercato i gattini!

      Mi piace

  2. obo

    Bellissimo questo post 😀

    Mi piace

  3. Filiipide

    Lo script “1, 2, 3, Stella! ” è da neuro!

    Mi piace

Dimmi che ne pensi o fai "Ciao ciao!" con la manina // Share your thoughts or just say "Hello!"

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: