martedì 24 giugno 2014

Script con password

Salve!

È da mesi ormai che lavoro ad un programma. Presto ve ne parlerò. Promesso.

Stanotte, come diversivo, ho voluto abbozzare l'idea di come si potrebbe inserire la password all'interno di uno script. Mi spiego meglio.

Supponete di creare uno script che accede ad un database per manipolarlo, l'ideale sarebbe che lo stesso script vi chieda anche una password prima di potervi accedere.

Lo script che vi sto per presentare vi chiede, per una sola volta, di creare una password, che viene salvata in un file di testo. Certo, poi questo file andrebbe criptato, lo capisco bene.

Poi vi chiede di ridigitare la password, che viene confrontata con quella salvata nel file di testo. Solo se le due password corrispondono, l'accesso all'ipotetico database sarà consentito. La seconda volta che sarà avviato lo script, a meno che non sia stato cancellato il file con la password, vi sarà chiesto di digitare la password una sola volta.

Salvate lo script, pass.sh, nella cartella Documenti e rendetelo eseguibile.

#!/bin/bash
#Luigi Iannoccaro (Bit3Lux)
#Pass.sh

passkr=~/Documenti/pass.txt

if [ ! -f $passkr ]; then
     
     #read -p "crea la tua password: " tua_password
     tua_password=$(zenity --title="Crea la password" --password)
     echo $tua_password > $passkr 

fi

tua_pass=$(cat $passkr)
pass=0

while [ "$tua_pass" != "$pass" ]; do
     clear
     
     #read -p "Digita la tua password: " pass
     pass=$(zenity --title="Digita la password" --password)

     if [ $? -eq 1 ]; then

          exit 1 

     elif [ "$tua_pass" != "$pass" ]; then 
          #echo "Accesso al programma negato, digita la password in modo corretto."

            zenity --info \
                   --width=300 \
                   --height=130 \
                   --title="Informazione" \
                   --text="Accesso Negato! Digita la password in modo corretto."

     elif [ "$tua_pass" == "$pass" ]; then
           #echo "Accesso consentito." 

            zenity --info \
                   --width=300 \
                   --height=130 \
                   --title="Informazione" \
                   --text="Accesso Consentito"    

     fi
done

exit 0


Alla prossima! ;)

lunedì 23 giugno 2014

Cose di Sed

Dopo una giornata trascorsa al mare, sono stato colto da un dubbio esistenziale. Cosa che, forse, neanche Juhan.... No, no, lui lo saprà di sicuro!!

In questi giorni sto lavorando ad uno script in bash, presto vi dirò ogni cosa, ma oggi no. Oggi solo il dubbio esistenziale, poi fugato.

Ha a che fare con sed. Una cosa alla volta, però.

$ testo="ciao salve ciao ciao salve ciao ciao salve"

Ecco. Una variabile. Solo per velocizzare le cose. Avrei potuto usare anche un file di testo.

Se a sed chiedo di sostituire ciao con CIAO, mi cambia tutti i "ciao" della frase. Ecco il dubbio, io voglio che sostituisca solo il terzo ciao. Capite?

Perchè cambi solo il primo ciao, è facile. Basta omettere la /g, che sta per global replacement.

$ echo $testo | sed 's/ciao/CIAO/g'

CIAO salve CIAO CIAO salve CIAO CIAO salve

ma se tolgo la g...

$ echo $testo | sed 's/ciao/CIAO/'

CIAO salve ciao ciao salve ciao ciao salve

Vedete? Viene sostituita solo la prima occorrenza, ma non ci siamo ancora!

Eppure la soluzione era semplicissima, ma si sa, ciò che è semplice non è mai un prima, è sempre un dopo. In realtà bastava fare così:

$ echo $testo | sed 's/ciao/CIAO/3'

ciao salve ciao CIAO salve ciao ciao salve

Ora è semplice, infatti...

$ echo $testo | sed 's/ciao/CIAO/4'

ciao salve ciao ciao salve CIAO ciao salve

Ma non è finita! Potrei dire a Sed, ad esempio, di sostituire le occorrenze da un certo punto in poi...

$ echo $testo | sed 's/ciao/CIAO/3g'

ciao salve ciao CIAO salve CIAO CIAO salve

Dalla terza occorrenza in poi, solo "CIAO".

Poi c'è pure chi fa così:

$ echo $testo | sed 's/ciao/CIAO/2' | sed 's/ciao/CIAO/3'

ciao salve CIAO ciao salve CIAO ciao salve


Vabbè, alla prossima. ;)

P.S. Non so come dirvelo, ma questa dovrebbe essere la prima lezione del corso di sed, ecco.


mercoledì 11 giugno 2014

sort - sort lines of text files (e non solo)

Salve!

Sono in programma nuovi progetti. Un corso di SED, che dovrebbe iniziare tra un paio di settimane. Sono previsti 35 tutoriali. E  il "Man illustrato", che inizia oggi.  Nel "man illustrato" saranno passati in rassegna i comandi più importanti. Speriamo bene :)

Oggi mettiamo alla prova il comando sort, che ordina le righe in un file secondo il criterio specificato. Questo è ciò che si dice. Ma sort fa di più! E ora lo vediamo insieme.

Sort, senza parametri, ordina alfabeticamente.

$ sort file.txt


Con il parametro -r, sort, inverte il senso di ordinamento (alfabetico o numerico)

$ sort -r file.txt


Con il parametro -n ordina numericamente (e in modo progressivo) invece che alfabeticamente.

$ sort -n file.txt


Con i parametri -n e -r, sort, inverte l'ordinamento dei valori numerici.

$ sort -nr file.txt


Con il parametro -f, sort, non distingue tra caratteri maiuscoli e minuscoli. (case insensitive)

$ sort -f file.txt


Con il parametro -M ordina i mesi.

$ sort -M file.txt


Con il parametro -h, sort, ordina in base alle grandezze (kilobyte, megabyte, gigabyte, etc)

$ sort -h file.txt


Ora prendiamo in cosiderazione due parametri: -t e -k.

-t specifica il carattere da usare come separatore di campo (invece del valore predefinito), in caso di definizione di chiavi di ordinamento, -k.

-k è, appunto, la chiave di ordinamento. Vabbè, facciamo qualche esempio.

Partiamo da un file di testo, test_5, il cui contenuto è il seguente:


In questo esempio il separatore di campo è "|", quindi si avrà -t"|". Ora, nei tre esempi che seguono, userò i parametri -k2, -k3, -k1. Ciò sta a significare che, nel caso di -k2, la tabella sarà ordinata in base al secondo campo. Nel caso di k3, in base al terzo campo, nel caso di k1, in base al primo campo.

$ sort -n -t"|" -k2 test_5 #(primo esempio)
$ sort -t"|" -k3 test_5  #(secondo esempio)
$ sort -t"|" -k1 test_5  #(terzo esempio

Da notare che il parametro -n è stato usato solo nel primo esempio. Ora dovreste sapere il perchè.

Ora prendiamo due file, test_6 e test_7, in ognuno di essi mettiamo una colonna di numeri, e li diamo poi in pasto a sort perchè li ordini e ne restituisca il risultato a schermo.

$ sort -n file_1 file_2


Ovviamente è possibile creare anche un terzo file che contenga la tabella ordinata, in tal caso

$ sort -n file_1 file_2 -o file_3

Il parametro - o sta, ovviamente, per output.

Chiudiamo con il parametro -u. Il parametro -u elimina le linee duplicate.

$ sort -u file.txt

Non vi perdete la prossima puntata di "Man Illustrato". Ciao ;)

venerdì 6 giugno 2014

Il Manifesto di Lubit

Martedì 3 giugno si è tenuta, presso l'Unical, la presentazione di Lubit3. Pubblico, con immenso piacere, la relazione del mio amico Massimo, cofondatore del Progetto Lubit.

E' trascorso poco più di un anno dal primo rilascio di Lubit.
Sono passati 8 mesi dal rilascio di Lubit 2, nome in codice Bat.
Sono passati 5 mesi o poco più dal talk di presentazione del Progetto Lubit avvenuto qui, al Cubo 13 dell'Università della Calabria, Hacklab di Cosenza
Tanta acqua è passata sotto i ponti...

Quale è stata la sua evoluzione? Cosa è accaduto nel frattempo?
Quello che era iniziato come uno scherzo, quel sogno folle di Luigi, che aveva contagiato anche me, è cresciuto a dismisura, e si è allargato al mondo e ad altre realtà. Una distro artigianale si è trasformata in un progetto, una comunità ha iniziato a gravitare attorno ad esso. La comunità è andata velocemente fidelizzando. Aspettative, richieste, impressioni. Molti apprezzamenti, e come era logico attendersi, alcune critiche si sono riversate sul progetto. E in breve abbiamo dovuto imparare a gestire tutto questo. Abbiamo sempre cercato di rispondere a tutti, ovviamente anche a chi criticava determinate scelte di progetto. Nel rispetto e nella educazione, perché se è lecito dissentire, non è legittimo offendere, o assumere toni di arroganza e di presunzione. A tutti abbiamo risposto, abbiamo ignorato e continueremo ad ignorare quanti si approcciano dimenticando il rispetto. Perché tutto ciò che fino a questo momento è stato fatto, e gran parte di quelli che saranno gli sviluppi futuri del nostro progetto, costa tempo, costa dedizione, costa energie, costa disponibilità.. E ogni ora dedicata allo sviluppo della Lubit è tempo che viene tolto ad altre attività, o sottratto a coloro che ci vivono accanto.

Noi miriamo in alto, senza presunzione, senza arroganza, e siamo convinti che dal nostro lavoro possa derivare un ritorno, anche economico, per quanti ci hanno creduto e ci crederanno. Ma non solo, noi crediamo che attorno a Lubit possa crescere una comunità reale che possa apportare un cambiamento, in meglio, nella realtà che ci circonda. Perché se il mondo dell'Open Source deve restare libero da vincoli e da condizionamenti economici, nel rispetto degli ideali che ne sono alla base, al medesimo tempo occorre che in qualche maniera sia in grado di riempire la pancia di coloro che all'Open Source, e ai suoi ideali, dedicano una parte della propria esistenza. E nella rappresentazione di questo concetto, l'affratellamento, la condivisione di risorse e di ideali che si è avviata tra noi e l'Hacklab di Cosenza, ne sono l'emblema e l'esempio più calzante.
Perché non è necessario sovrapporre le proprie orme lungo un percorso comune, l'importante è restare affiancati lungo la strada. E camminare... Le proprie identità, le proprie peculiarità, non possono e non devono diventare oggetto di separazione. E nell'affratellamento, nella condivisione, ognuno deve poter conservare le proprie peculiarità e le proprie propensioni.
   
A volte, mi è stato chiesto perché. Perché una nuova distro?
Tante le risposte.. Alcune sicuramente troppo intime per poter essere raccontate ad altri...
Sono sensazioni, bisogni che non è possibile tradurre in frasi. L'entusiasmo, il fervore, non si trasmettono a parole, si trasmettono con i gesti, con il tono della propria voce, con il linguaggio del corpo che riempie di significato il messaggio che si sta trasmettendo. 
A un perché, a volte ho risposto facendo seguire al perché un semplice no. Perché no?
Lavorare ad una nuova distro permette di accrescere il proprio sapere, permette di plasmare una propria realtà, permette di lavorare ad un progetto partendo dalle basi della conoscenza e del sapere. Permette di aggregare persone, individui che all'inizio non sono altro che entità, mere professionalità che lentamente si trasformano in amici, che si affratellano, partecipano ad eventi comuni, condividono emozioni.

La conoscenza è potere, anche quello di arrivare a proporre, quando ne sarà giunto il tempo, un proprio Sistema Operativo flessibile e modellabile in base alle richieste di una utenza e di un target mirato. Avere creata la propria distro significa conoscerla, dalle basi. Perché solo in questo modo si sarà in grado di adattarla alle necessità di un committente, e si potrà corrispondere velocemente a quelle richieste che perverranno in corso d'opera. E si sarà in grado di risolvere ogni problema che dovesse presentarsi, con competenza e professionalità.
Ma oggi, nel mio intervento, non tratterò, oltre quanto non abbia già fatto, questi argomenti. Avremo tempo e modo di farlo in altre occasioni.
E passerò a parlarvi dell'estetica di Lubit, vi narrerò la sua storia affinché la possiate conoscere. Perché ciò che non ha una storia, ciò che non ha un passato, non esiste nel presente.

Nel mondo di Lubit io non sono Massimo, io sono Squittymouse, e la mia immagine è quella di Gruviera, il topolino amico degli Aristogatti. E lei (perchè Lubit è femmina), mi conosce così. I miei computer hanno un nome. C'è Romeo, il mio desktop, un paio di portatili, Giulietta e Topomobile, un EEPC che è Minitopo. E un 64 bit che servirà ad effettuare i test preliminari al rilascio della 64 bit della Lubit. Un PC che non ha per ora un nome, perchè non ha un passato, nè un futuro, che attende ancora di essere disegnato.
Perché vi racconto questo? Perché io, per lavorare sulla Lubit, ho necessità di essere ispirato, e di dare corpo alla mia immaginazione. Perché la razionalità non è in grado di guidarmi nella realizzazione di uno sfondo o nella composizione di un tema grafico e di un logo. E per poter dare corpo a una emozione, ho necessità di vivere il tempo ed il momento.

E' maggio 2013, nasce Lubit 1, ed il suo primo sfondo è Dark. Catrame è nero, granuloso, scuro come la notte, spezzato orizzontalmente nel mezzo dal nome della distro, che compare in un rosso pastoso. Era stato preceduto da sfondi privi di personalità, che conservo gelosamente assieme alle immagini ISO che hanno preceduto il rilascio ufficiale della distro, e che sono parte della storia.
Il tema è Numix, e sarà quello che fin da subito caratterizzerà, salve le dovute varianti, ogni successivo rilascio.
Obmenù, non presenta alcuna icona tranne quelle del menù principale. Le chiamate dei sottomenù ne sono prive.

A ottobre 2013 rilasciamo lubit 2, che acquisisce un nome in codice, BAT. Nella due tutto ciò che è dark trova la sua massima espressione, ad iniziare da quel pipistrello stilizzato che appare immediatamente dopo il boot. Minaccioso, ma al tempo stesso fantastico, avendo perso nella elaborazione grafica ogni connotazione del mondo reale.
Lubit 2 urla al mondo la propria esistenza in cerca della sua affermazione. Il tema è nero, verde e rosso. Sono colori forti, dissonanti tra loro. Sono colori di rottura, di impatto, di forte emotività.
Lubit sta affermando se stessa, ma nel mentre si apre al mondo, nel mentre cerca di imporre la propria identità in sviluppo, si trova improvvisamente, e forse inaspettatamente, a radicare in un territorio. In quel territorio che l'ha vista nascere.
Lubit 2 nasce nel momento culminante del sorgere di un legame di profonda amicizia tra me e Luigi, che fino a quel momento non avevo mai incontrato se non nella virtualità del web.
E il tema, i colori, lo sfondo di default della 2 parlano di questo. E parlano di rabbia, di quella rabbia cieca per le tante opportunità perdute in una terra martoriata, sfruttata, e da sempre costretta a subire.
Il nome in codice nasce contestualmente allo sfondo, lo sfondo nasce contestualmente all'incontro, la distro si radica al territorio, e affonda le proprie radici nella terra e nella espressione di una creatività locale. Nell'immagine di un murales che colpisce Squittymouse nel corso di un girovagare tra i monti di Fagnano.

Ma il dark non si lega ai globi che fuoriescono dalla bocca, Lubit dovrà essere dark ma i globi non trasmettono emozioni. Così, in una sera di fine estate, davanti al monitor di Romeo, a 700 chilometri dalla terra di Calabria, i colori si rincorrono, danno corpo a incubi infantili, a fumetti di un tempo passato, a immagini apparentemente dimenticate... E un tatuaggio che Squittymouse nasconde sulla propria spalla gli parla... E improvvisamente quei globi si trasformano in tanti pipistrelli che volano via da quella bocca che si spalanca in un grido muto, il murales si ribalta e va ad integrarsi al conky, mentre anche Numix si modifica, si scurisce, e si fa tenebroso.
Ed esplodono i tappi ...
Nella affermazione di sé, nella sua esternalizzazione, lubit urla la propria esistenza e getta in faccia al mondo il proprio logo. Il tappo compare nel login, nel tema grafico del conky, immutato rispetto alla versione 1, e nel logout.

Maggio 2014
, ed è la 3. Il suo nome in codice, Scorpion, stavolta non nasce contestualmente alla distro, la precede. Il primo sviluppo grafico risponde all'esigenza di un nome in codice diverso: Canis Major... Cane maggiore, e avrebbe rappresentato l'infinito, un cielo stellato, cupo e al tempo stesso luminoso. Rosso come sangue vivo, nero come può essere l'inferno. Avrebbe dovuto, con il suo nome, rendere omaggio a un cucciolo di cane morto ammazzato... Ma quanto sarebbe stato giusto legare Lubit 3 ad un ricordo doloroso e cupo? Ne abbiamo parlato a lungo, io e Luigi, e abbiamo deciso che la tre avrebbe rappresentato altro, avrebbe lanciato un messaggio ben diverso. Avrebbe parlato di condivisione, di pace, e di tranquilla consapevolezza.
Così, da una costellazione a un'altra, da un cielo stellato a un altro, Canis Major si trasforma in Scorpion, una costellazione dell'emisfero australe che alle nostre latitudini è osservabile per intero solo dalle coste mediterranee. Ed in quella mediterraneità, così cara a noi e agli amici di Paesaggiando, presenti questa sera con l'intero loro direttivo, Lubit 3 parla del sud, del suo cielo e del suo mare.

La tre è la maturazione di una Lubit che si accende di luce e di colori. Che si apre al mondo, e lo abbraccia con la sua tranquilla solarità. Che non grida, perché non ha più bisogno di farlo, perché oramai ha raggiunto il mondo. Perché parla alla sua comunità, alla propria gente, e parla loro con i colori dell'alba e della serenità.
Assume i due colori basici che da ora in poi, in variazione di rapporto, caratterizzeranno ogni successivo rilascio di Lubit: Light blu, e Grey 60.
Si ripulisce nelle linee e nei colori, ammorbidisce i toni. Elimina ogni icona dalle sottovoci di menù, perché ogni sbavatura di colore si tradurrebbe in dissonanza, e un colore slegato toglierebbe senso alla rappresentazione.
Nessuna icona, nessuna dock a turbare l'armonia delle masse cromatiche.
Il tema di login e di logout vengono modificati allo scopo di garantire continuità nella rappresentazione. E anche il conky muta, si fa oltremodo armonico; elimina i separatori lineari che fino ad allora lo avevano caratterizzato, si muove verticalmente come un motivo musicale, in una armonica sinusoide. Lo scorpione stilizzato viene eliminato dalla sequenza di boot, poi dalla schermata di login. I tappi spariscono dal conky e dalla sequenza di logout. E da ultimo, viene eliminata ogni rappresentazione grafica che si rifaccia al cielo o allo scorpione, perché la sintesi è raggiunta, e ogni immagine oramai è superflua, perché è la distro stessa, che si è trasformata in Scorpion.

La caratterizzazione è completata:
Una ISO che non vada oltre i 700 Mb
Una occupazione in RAM stabilizzata attorno ai 100 Mb
Openbox, il suo windows manager
Un conky, armoniosamente integrato agli sfondi di default
Due colori basici, light blu e grey 60
per una distro elegante e raffinata, apparentemente semplice, calabrese, ma soprattutto italiana.

Come aggiungere una nuova categoria di menu in Lubit

Salve!

Per aggiungere una nuova categoria di menu (ad esempio, la categoria "Grafica") in Lubit, non è affatto difficile, ma, mi rendo conto, neanche estremamente intuitivo.

Iniziamo con la procedura.
  •  Anzitutto lanciamo il tool "obmenu" (Menu=>Sistema=>Configurazioni=>obmenu)
  • Scegliamo la posizione dove si vuole collocare la nuova categoria, ad es. tra OFFICE e MULTIMEDIA, e creiamola cliccando su “New menu”;
  • Nella sezione in basso, in label, digitiamo il nome che si è scelto, ad es. Grafica  e, in id, apps-grafica-menu
  •  Ora andiamo in menu => Sistema => Configurazioni e lanciamo la voce edit menu.xml.
  •  Una volta aperto il file, bisogna spostarsi verso la fine dello stesso...fate riferimento all'immagine sotto.

  • Trovata questa parte di codice, dovete aggiungere la riga che contiene la stringa id="apps-grafica-menu", nella giusta posizione, come mostrata nell'immagine
  • Vi riporto la stringa da aggiungere. 


<menu icon="/usr/share/icons/lubit/applications/applications-graphics.png" id="apps-grafica-menu"/>

  • Non ci resta che aprire il terminale e dare un bel  openbox --reconfigure

Alla prossima. Ciao!

lunedì 2 giugno 2014

Lubit Fest

Il 31 Maggio 2014 è nata l'associazione "Gli amici di Lubit"!

Vi voglio raccontare la festa attraverso alcune immagini.

Gli amici di Lubit al completo. ;)

Ospiti graditissimi della festa: I nostri cari amici dell'Hacklab di Cosenza
Da sinistra, Io, Luigi Lembo, Vincenzo Bruno, Elio Iannoccaro, Ettore e Massimo Testa
Da sinistra, Fiorentino Sarro, io, Marisa Callisto, Eugenio Iannoccaro e Massimiliano Tripicchio

La torta Lubit :)