lunedì 31 dicembre 2012

Menu - seconda parte

 Salve!

Quando vogliamo sapere se un'opzione è attiva o no e vogliamo gestirla con un menu possiamo usare i check menu, eccone un esempio (chm.py):

domenica 30 dicembre 2012

Un po' di AWK. Quindicesima parte

Salve!

Ora che conosciamo la differenza tra NR e FNR (l'abbiamo vista qui), possiamo procedere con qualche esempio.

Immaginiamo di avere due file di testo. Nel primo è presente una lista dei film di Totò che abbiamo nella nostra videoteca personale e, nel secondo, i film di Totò che abbiamo già visto. Bene.

sabato 29 dicembre 2012

Uno script per accordare la chitarra

Salve!

Ho messo mano a un mio vecchio script per accordare la chitarra. Penso di averlo migliorato un po'. Tuttavia, se doveste riscontrare delle imperfezioni, fatemelo sapere.

Ovviamente, se non lo avete già fatto, dovete installare sox

venerdì 28 dicembre 2012

Un po' di AWK. Quattordicesima parte

In questo post avrei dovuto continuare con gli arrays, solo che mi sono ricordato di non aver parlato della differenza tra NR e FNR. E siccome  devo fare qualche esempio usando queste due variabili predefinite di AWK, mi tocca fare qualche passo indietro.

giovedì 27 dicembre 2012

Menu - prima parte

OK, la nostra finestra continua a essere completamente vuota, dobbiamo farne qualcosa, no?
Allora mettiamoci un menu (m0.py)

domenica 23 dicembre 2012

Auguri!!!

Auguri di buone feste a tutti voi!!!!

Brevi Esercizi #11. Sommare i numeri in colonne e righe con AWK.

Salve!

Il quesito di oggi.
Ho una tabella di numeri. Voglio sommare i numeri di ciascuna colonna e ciascuna riga e ottenerne il totale per colonne e per righe. 

La tabella (tabella1.txt).

sabato 22 dicembre 2012

Brevi Esercizi #10. Gestire due tabelle con awk

Salve!

Quesito di oggi.
Ho due tabelle. Nella prima ho un elenco di alunni con le rispettive matricole; nella seconda ho lo stesso elenco di alunni ma con voti e materie. Voglio avere una sola tabella che comprende elenco di alunni, matricole, voti e materie.

giovedì 20 dicembre 2012

domenica 16 dicembre 2012

Facciamo una finestra

OK, adesso che abbiamo visto come si fa con Python siamo pronti per iniziare a provare con gli elementi grafici: finestre, pulsanti, e simili.
Ehi! c'è un problema qui: dobbiamo scegliere quale pacchetto usare, ce ne sono diversi. Propongo di provare wxPython per un paio di ragioni: 1) è quello che uso abitualmente; 2) non solo io, è il più usato; 3) è completo e facile; 4) c'è quasi pronta la versione per il 3.x (sarebbe anche ora!).
Però niente panico! Una volta capito come si fa cambiare è immediato.

Un po' di AWK. Tredicesima parte.

Oggi cercheremo di affrontare un argomento non proprio semplicissimo: Gli arrays in AWK.

Ecco, questo è un array:

ortolano["banana"] = 20

sabato 15 dicembre 2012

Etichettare foto o giù di lì

Salve!

Ho creato uno script in bash, semplice semplice, il cui compito è quello di scrivere una riga di testo in fondo a una foto. Non a una foto soltanto, ma a centinaia, migliaia in un colpo solo.

venerdì 14 dicembre 2012

Le tuple

Ed eccoci arrivati alle tuple.
La tupla è una collezione ordinata di valori separati da virgole e racchiusa tra parentesi tonde.

Vediamo come si possono presentare le tuple.

Brevi Esercizi #9: AWK e la cena dell'immacolata

Salve!

L'esercizio di oggi consiste in uno script in AWK. Tanto per cambiare.

Partiamo dal principio. La sera dell'immacolata ho avuto degli ospiti. La cena mi è venuta a costare 160 euro. Di questo passo non arriverò neanche a metà mese.

mercoledì 12 dicembre 2012

CrunchBang 11 e l'errore durante l'installazione. #Solved

Salve!

Durante l'installazione di CrunchBang 11 Testing, vi potrebbe tornare il seguente errore:
Avviso di debbtstrap
Attenzione: failure tryning to run: chroot /target mount -t proc proc /proc


martedì 11 dicembre 2012

CrunchBang 11. Testing o Sid?

Di recente, un paio di mesi fa, è uscita CrunchBang 11 "Waldorf". Ce ne sono due versioni, una stabile (con il mitico kernel 2.6.32) e l'altra testing. Io ho scaricato la seconda. Che poi non è proprio una testing. Ora vi spiego.

Il 30 giugno scorso è iniziato il periodo di freeze per Debian 7.0 Wheezy.
In pratica succede questo.  Quando il ramo Testing raggiunge una certa stabilità, avviene il passaggio da Testing a Stable, ma solo dopo un periodo di freeze.

Gestione delle eccezioni

Errare humanum est, si dice. Non so voi ma io sono molto umano. E gli utenti che conosco sono ancora più umani di me. Bisogna fare qualcosa, prevedere che qualcosa possa andare storto.
Prendi questo esempio, semplicissimo (radq0.py):

domenica 9 dicembre 2012

I dizionari

In questo post parliamo di dizionari. Cosa sono i dizionari? Sarebbe molto interessante saperlo, ma volutamente non rispondo! Facciamo una cosa. Creiamo una rubrica telefonica rudimentale.

mercoledì 5 dicembre 2012

Classi e oggetti

OK, devo confessarvi un segreto che riguarda il corso.
Tanto ormai siete grandi, svezzati, avete visto parecchie cose, anche gli oggetti. Sì non l'ho mai detto, per non spaventarvi ma li abbiamo usati. Magari senza saperlo.

Brevi Esercizi #8: Classifica campionato di calcio con AWK

Salve!

L'esercizio di oggi è quello di creare la classifica del campionato di calcio di serie A partendo dalle partite disputate. Ho usato AWK ma lo stesso esercizio può essere svolto utilizzando Bash, Python e altri linguaggi. Ehi, fatevi avanti!!! Ovviamente gli eventuali script nei commenti saranno pubblicati a nome dell'autore. :)
Certamente pure il mio script può essere migliorato....perciò fatevi avanti!!!

lunedì 3 dicembre 2012

Ancora su format()

Un bel gioco dura poco ma qui si continua con format(), discorso cominciato qua.
Forse non è un gioco tanto bello? Ma poi cambiamo, dai solo per oggi...

Come già detto c'è tutto a questo URL.

Vediamo qualche esempio.

giovedì 29 novembre 2012

Gestire l'output con format()

Salve!

Intanto la nostra "Mission Python" va avanti....Sono stato fuori tutta la giornata e al ritorno ho trovato una bella sorpresa...stava lì buona buona in gmail...Le sorprese si condividono, vero? Ecco a voi nuovo post del caro Juhan!! Vi avviso, è un po' tosto...Il post, ovvio...ma anche Juhan! Non per niente nel post si parla del pythonista tosto. :))

martedì 27 novembre 2012

Mission Python: Le liste 2 (senza vendetta)

Effettivamente l'argomento "liste" merita un altro post. Questo. Quello precedente lo trovate qui. Ci tenevo a questo nuovo articolo soprattutto per citare questa frase di cui disconosco l'autore: "Una lista può contenere oggetti di tipo arbitrario e si espande automaticamente quando vi si aggiungono nuovi elementi." Meravigliosa, una pennellata da artista che coglie l'essenza.

Brevi Esercizi #7 Il quadrato di un numero con AWK

Ormai vado a letto prestissimo. Ieri sera, ad esempio, sono andato a letto alle 9. Sono finiti i tempi in cui la sera ci si riuniva con gli amici per scolarsi un paio di bottiglie di vino...Si, anche se dopo cena c'era studiare, si beveva lo stesso...e non vi nascondo che si rendeva pure di più... Vabbè, tutto cambia nella vita... Solo che ora mi capita di svegliarmi verso le tre, o ancora prima...e a quell'ora è difficile trovare qualcosa da fare...Perciò tendo voli pindarici con Bash o Awk e qualche volta anche con Python.

lunedì 26 novembre 2012

Mission Python: I file, leggere e scrivere

Oggi proviamo una cosa nuova: leggere e scrivere file. Intanto, seguendo un'antica e ottima tradizione di Unix/Linux tratteremo solo file di testo, quelli visualizzabili con cat o less. Conoscete tutti cat e less, vero?

Per cominciare, visto che un file da leggere non ce l'abbiamo lo creiamo, così vediamo come si usa write (scrivi.py):

domenica 25 novembre 2012

Un po' di AWK. Dodicesima parte.

Salve!

E il sequel "Un po' di AWK" continua. Un po' a rilento, ma continua. Oggi parliamo del ciclo for e delle istruzioni break e continue. Ma anche di while. Insomma, parliamo di tante cose. Mi rendo conto che forse 'sti post su awk non sono il massimo della linearità, ma mi sforzo di fare del mio meglio. Partiamo sempre dalla nostra tabella(tabella.txt).

giovedì 22 novembre 2012

Mission Python: Moduli - 1

 Salve!
E' arrivato il momento di leggere (e studiare) un altro post del caro Juhan. Detto tra noi, ritengo che sia un articolo di rara bellezza...

Io ho spesso da calcolare l'area e il perimetro di figure, in particolare di cerchi e quadrati; allora (calcfig0.py):

mercoledì 21 novembre 2012

Brevi Esercizi #6 Countdown con Python ed AWK

Ciao!

Tempo fa avevo creato uno script in bash il cui compito era quello di fare il countdown nel terminale. Lo script in questione lo trovate qui.

Stamattina, invece, ho provato a fare la stessa cosa con Python ed AWK. Statene certi, per AWK è una cosa insolita. Diciamo che sono stato io ad usare questo linguaggio in un modo non consono allo scopo per cui è stato creato. Pazienza! I signori A., W. e K. mi perdoneranno...

Brevi esercizi #5 Capovolgere un elenco

Salve!

Il quesito di oggi è di facilissima soluzione. Dato un elenco di nomi in ordine alfabetico, dalla lettera a alla lettera n, lo dobbiamo capovolgere in modo che si inizi dalla lettera n e si finisca con la lettera a. Come al solito, prima darò la soluzione più semplice ed immediata, poi quella apparentemente più complicata usando (ovviamente) awk.

lunedì 19 novembre 2012

Mission Python. Funzioni. Parte quinta

Funzioni, stringhe e un esercizio.
Incominciamo con alcune funzioni di quelle built-in (immediatamente disponibili con il programma).
Naturalmente ci ricordiamo che possiamo trovarle e sapere tutto su di esse all'URL http://docs.python.org/genindex.html , vero?
Il nostro scopo di oggi è di costruire uno script per verificare l'operazione di Kaprekar.
Per chi, come me, non sapesse di cosa stiamo parlando e fosse curioso potrebbe fare un salto qui: Il 6174 e il 495 di Kaprekar

Brevi esercizi #4 Quante volte ricorre una determinata parola in un testo

Salve!

 Eccoci qui ad una nuova puntata di "Brevi esercizi". Il problema di oggi è quello di determinare quante volte ricorre una determinata parola in un testo.

 Partiamo da questa tabella (tabella.txt)

sabato 17 novembre 2012

Mission Python: Le funzioni. Parte quarta

Ebbene sì, ancora roba sulle funzioni. Ma diverso, cominciamo con un quiz.
John Baez (uno pheego assay) ci chiede di calcolare il valore dell'espressione in figura, tenendo presente che

Brevi esercizi #3 Da colonna a riga

Salve!

Oggi vi mostro una serie di alternative per poter trasporre dati da colonna a riga.  Ci sono svariati modi per fare una cosa del genere, graditissima perciò sarebbe la vostra partecipazione.

Ecco la nostra colonna (tabella.txt).

mercoledì 14 novembre 2012

Skype 4.1 su Crunchbang 11

E' uscita una nuova versione di Skype, la 4.1. L'ho voluto provare immediatamente. Attualmente sto usando come distro Crunchbang 11, quella basata su debian testing. Illustro brevemente il procedimento su come installarlo, qualora possa ritornare utile a qualcuno.

Mission Python: Liste e sostituzione di variabili

Iniziamo  dalle liste.

Le liste sono un tipo di variabile. La variabile, dicevamo qualche post fa, è come una scatola nella quale mettiamo dentro un contenuto. La lista invece è quel tipo di scatola che contiene più cose; infatti possiamo assegnargli più di un valore.

martedì 13 novembre 2012

Brevi esercizi #2 Edizione speciale

Ebbene sì, già alla seconda puntata di "Brevi esercizi". Questa però è un'edizione straordinaria. Il caro Robitex ha postato nei commenti del post "Brevi esercizi #1" (che trovate qui) due script, uno in Lua e l'altro in Go, che non  potevano affatto passare inosservati.

Cambiare password

Un piccolo post per dire come si cambia la password dell'utente corrente. Per intenderci, la password che ci viene chiesta nel terminale ogni qualvolta usiamo sudo, o quella che ci viene chiesta per accedere al sistema operativo. Insomma, ci siamo capiti. Può succedere infatti che la password scelta sia troppo corta oppure qualcuno l'abbia scoperta.

lunedì 12 novembre 2012

Brevi esercizi. #1 Touch e tee

Su un sistema linux ci sono tanti modi per fare una determinata operazione. Proprio alla luce di questo assunto, cerco di rompere il ghiaccio: Faccio delle cose con la speranza che voi mi diciate, "ehi, si può fare anche diversamente!" Posterete nei commenti le vostre proposte, vero? :))

Partiamo da cose semplici semplici....Chissà se l'idea di questi post diventi un sequel, proprio come è successo con "Un po' di AWK"... Intanto nel titolo ho messo #1...poi si vedrà!

domenica 11 novembre 2012

Mission Python: Le funzioni. Parte terza

Ancora funzioni?
Sì, ci sono ancora parecchie cose da dire, mi sa che neanche oggi finiamo. Ma in fondo siamo entrati nel cuore della programmazione. E poi vogliamo arrivare alla grafica (finestre, pulsanti, etc)? Ecco lì sarà tutto una funzione! E allora ecco...

Una funzione può essere ricorsiva, cioè chiamare se stessa. Di solito si illustra la ricorsività con la definizione di fattoriale. Proprio come faremo noi, subito-subito.

Un po' di AWK. Undicesima parte

Oggi parliamo del ciclo While.

La sintassi all'interno di uno script è (più o meno) così.
Tutto while deve essere racchiuso tra parentesi graffe.

{
while(condizione)
    azione
}

giovedì 8 novembre 2012

Mission Python: Le funzioni. Seconda parte

Nell'ultimo post abbiamo visto come utilizzare le funzioni, quelle già disponibili perché fatti da qualcun altro. Oggi vedremo come Farne di nostre.
È necessario saperle fare sia perché potremmo avere esisgenze particolari tutte nostre sia perché quando uno script diventa grosso conviene suddividerlo in blocchi tra loro indipendenti.

martedì 6 novembre 2012

Mission Python: Le funzioni. Parte prima

Nella programmazione si chiama funzione (function) una sequenza di istruzioni con un nome che eseguono un'operazione.
OK, vediamola come si faceva ai miei tempi: una funzione è come una scatola nera in cui inserisci dei dati e ottieni dei risultati. Se la funzione l'ha fatta qualcun'altro non ti devi preoccupare di quello che accade al suo interno (per questo si dice che è una scatola nera).

venerdì 2 novembre 2012

Un po' di AWK. Decima parte

Salve!

Eccoci alla decima puntata del sequel "Un po' di AWK". Oggi parleremo del costrutto condizionale if. Mettetevi comodi perchè la puntata di oggi è un po' impegnativa; infatti ho messo tanta verdura a cuocere (non dico carne perchè sono vegetariano).

mercoledì 31 ottobre 2012

Mission Python: L'istruzione if - esecuzione condizionale

Normalmente lo script viene eseguito sequenzialmente, dalla prima istruzione all'ultima. Questo non è sempre vero, tra breve vedremo le funzioni, ma siamo ancora agli script semplici.
Anche senza funzioni ci sono casi in cui l'esecuzione di un'istruzione o un blocco di esse può essere eseguita solo se si verificano certe condizioni. Un esempio semplicissimo: ricordate, vero, l'operatore % (modulo) cioè resto della divisione fra interi? Eccolo all'opera: (i0.py)

martedì 30 ottobre 2012

Quando Crunchbang non monta le partizioni

Salve!

Ho da poco installato Crunchbang 11, quella basata su debian testing. O meglio, basata su Debian Wheezy, che presto diventerà stabile  (anche se non si sa quando). Ovviamente mi sono affrettato a sostituire in /etc/apt/sources.list il nome di wheezy con testing...vabbè, queste cose non si fanno.

lunedì 29 ottobre 2012

Mission Python: I cicli - for e while

Che ne dite di costruire una tabella con i quadrati e i cubi dei primi 10 numeri interi positivi? Può sempre servire no?
Allora pronti, via!

Per fare questa tabella useremo un ciclo di cui sappiamo sia il termine iniziale (1) che quello finale (10). In questo caso l'istruzione che fa per noi è for . Ecco il codice, con millemila cose nuove (tab-qc.py).

sabato 27 ottobre 2012

Mission Python: Quando una virgola ti complica la vita!

Oggi parliamo della virgola nell'istruzione print e poi facciamo pure uno script (il secondo, che il primo lo abbiamo fatto qui).

La virgola nell'istruzione print permette di unire due variabili o un testo e una variabile etc.

venerdì 26 ottobre 2012

Mission Python: Oggi il nostro primo script

Finora ci siamo accontentati di usare Python interattivamente, scrivendo un'istruzione di una sola riga che l'interprete esegue quando premiamo Enter. Ma oggi facciamo un passo avanti, anzi un balzo, di quelli epici, da raccontare alla mamma, alla fidanzata, a tutti insomma.

Ci serve un editor di testi. Per chi usa Windows il Blocco note è un po' troppo rudimentale. Anche per gli altri vi conviene fare prima un salto alla puntata Operazioni con i numeri  dove ci sono consigli. Per chi usa Linux vanno bene anche quelli che vi trovate, io per esempio uso Gedit (però considerate Geany).

giovedì 25 ottobre 2012

Mission Python: input(), raw_input() e così sia

Oggi un post semplice semplice.

Parliamo di due funzioni, input() e raw_input()

Si tratta di due funzioni predifinite che permettono di inserire dati da tastiera!

Se il dato da inserire è una stringa useremo raw_input(), se invece è un intero useremo input().

mercoledì 24 ottobre 2012

Un po' di AWK. Nona parte.

Se l'altra volta abbiamo parlato di campi (qui), oggi ci tocca parlare di records!

Partiamo dal seguente testo:

Luigi, 39 anni; Ciro, 61 anni; Mio nonno, 82 anni;

Come potete vedere, è una singola linea di testo. Potremmo dire che è un singolo record!
Usare il condizionale è d'obbligo; infatti sta a noi, in un certo senso, stabilire il
numero dei records, cioè il numero di righe in cui dividere questa nostra unica linea.

martedì 23 ottobre 2012

Mission Python: Variabili (ancora?), operatori e ...

Dai, ci siamo quasi, prossimamente uno script intero ma prima dobbiamo ancora vedere qualcosa sui componenti.


lunedì 22 ottobre 2012

Un po' di AWK. Ottava parte

Eccoci all'ottava puntata del sequel "Un po' di AWK". Ma chi me lo doveva dire...
Dovete sapere che queste mie peripezie su AWK sono seguite anche da mio nonno e dal caro amico Ciro, che di mestiere fa il pastore.
 Mio nonno e Ciro sono persone molto esigenti nel senso che, se mi perdo in teorie, si incazzano come delle bestie feroci. Ma non è finita qui.
Ultimamente mio nonno vuole che, prima di pubblicare un post su awk, sia letto da lui; e solo se mi dà l'imprimatur lo posso pubblicare. Vabbè, lasciamo stare...

sabato 20 ottobre 2012

Mission Python: Ancora sulle variabili

Un altro passo avanti, oggi parliamo di operatori, funzioni e pian piano ci avviciniamo al nostro primo script.

Bit3Lux ha introdotto le variabili, qui  concetto che ci permette di proseguire. Intanto un paio di precisazioni:
Usate dei nomi mnemonici (mi ringrazierete). È vero che è comodo scrivere m per la variabile che indica la media dei voti di matematica ma scrivendo media_mate lo script risulterà molto più leggibile;

Svuotacache o qualcosa del genere.

Ciao!

Ho creato uno script semplice semplice per eliminare i file dei pacchetti contenuti nell'archivio locale di apt. In pratica lo script non fa altro che, come diciamo semplicisticamente, "svuotare la cache di apt dai file setup". A dire il vero quando sento nominare i file setup, tremo un po', non so perchè.

venerdì 19 ottobre 2012

Mission Python: Le variabili

Oggi parliamo di variabili!

Cos'è una variabile? Possiamo pensare la variabile come una scatola in cui  riporre delle cose. Possiamo mettere un libro, un paio di scarpe, uno stereo...e tante altre cose...la cosa importante è che alla scatola, quindi alla nostra variabile, non interessa cosa vi metto dentro, ma semplicemente conserverà l'oggetto che contiene. Il concetto di variabile è uno dei più importanti, ma anche il più semplice in assoluto.

martedì 16 ottobre 2012

Mission Python: Operazioni con i numeri

Oggi parleremo di matematica. Ferrrmi! Non è come sembra!! Davvero!!!
Ancora qui? OK, si parte ma prima un po' di comunicazioni per quello che ci tornerà utile in seguito.
Tra breve cominceremo a scrivere degli script (si chiamano così i programmi in Python) e ci serve un editor. Per Linux vanno bene quasi tutti (no, non servono vi o Emacs anche se...). Per Windows il Blocco note è un po' troppo rudimentale; consiglio caldamente di installare Notepad2, è free e lo trovate qui

Archivio compresso protetto da pw

Come creare un archivio compresso protetto da Password usando zip.

Comprimiamo i file.
Ho creato una cartella nella directory Documenti.
All'interno di questa cartella  ho messo alcuni file (immagini, documenti, etc).
Mi sono spostato col terminale nella nuova cartella che ho nominato Nuova (Oggi sono a corto di fantasia)

lunedì 15 ottobre 2012

Mission Python: L'istruzione print

Con l'istruzione print possiamo visualizzare sullo schermo numeri e stringhe.
La domanda nasce quasi spontanea: Perchè questa istruzione si chiama print? Che senso ha chiamare un'istruzione "stampa"?
Juhan, che è un esperto di storia dell'informatica, per sua passione, non certo per l'età...non mi permetterei mai di dire che Juhan ha una certa età, avrebbe sicuramente risposto che all'epoca in cui nacque la programmazione non esistevano ancora i monitor, perciò i risultati della stessa venivano stampati su carta. Ora i monitor ci sono, ma il nome della nostra istruzione rimane print. Mi verrebbe da dire che, nonostante l'informatica evolva a vista d'occhio, gli informatici restano un po' tradizionalisti.

Un po' di AWK. Settima parte

In modo molto approssimativo possiamo dire che i records coincidono con le righe di un testo. Presto spiegheremo il perchè del molto approssimativo. Mentre una cosa certa è che i records si dividono in campi. Meno certo è invece dire quali e quanti siano i campi all'interno del record. Detto così è un vero casino, me ne rendo conto. Cerchiamo di fare luce.

sabato 13 ottobre 2012

Mission Python: L'installazione.

Eccoci al mini-corso su Python! Vabbè, vi avevo promesso il corso, ma sapete, per ora usiamo la parola mini...poi è possibile che l'appetito venga mangiando...e da mini diventi major 'sto corso.

Prima di iniziare con la lezione 0, voglio spendere due parole su Juhan. Non vi dico che è un ingegnere e non vi dico tante altre cose che riguardano le sue qualità umane e professionali. Non vi dico neanche che amministra due blog che trovate qui e qui. Non vi dico che la nostra amicizia è nata sul blog del Picchio. Se non ricordo male, si parlava di vino. Il post sotto accusa lo trovate qui (siamo nei commenti). Correva l'anno 2010...

Un po' di AWK. Sesta parte.

Salve!

Immaginiamo di avere un file di testo, conservato nella cartella Documenti e il cui nome sia "nomi.txt", con il seguente contenuto,

Michele, Pasquale, Francesco, Marco, Luigi, Ennio, Nino.
Pecora, Toro, Asino, Cavallo, Leone, cane, gatto.
Arancia, Mandarino, Ciliegia, Fico, Uva, fragola.
Torino, Milano, Brescia, Modena, Bologna, Cosenza.
Acqua, Terra, Fuoco, Aria, Infinito, Spazio, Tempo.


martedì 9 ottobre 2012

L'abc di bc

Una delle cose più favolose di una distro Gnu/Linux è quella di poter fare qualsiasi operazione dal terminale. Anche i nostri conti!
 Certo, esistono tanti programmi grafici preposti allo scopo, tuttavia non posso esimermi, qualora non lo conosciate già, dal presentarvi il comando bc! Anche perchè, una volta scoperto, dubito riusciate a farne a meno. Cos'è bc? Bc è una calcolatrice testuale, a riga di comando! Anzi, qualcosa di più! Ma andiamo per gradi. E' già installato, perciò non dobbiamo fare altro che aprire una finestra del terminale e digitare:

sabato 29 settembre 2012

File con il nome in maiuscolo e senza underscore

Salve!

Può succedere di scaricare da internet file il cui nome è in maiuscolo e senza underscore.

Ad esempio:


mercoledì 26 settembre 2012

Da .MP3 a .mp3

Salve!

Ogni tanto ritorno. E ritorno per raccontarvi di un problema di poco conto. Forse.
Avevo alcuni  file MP3 con le estensioni in maiuscolo. Per convertirle in minuscolo in un solo colpo, ho creato un piccolo e semplice script.

domenica 12 agosto 2012

Da mp4 a mp3

Salve!

Avevo dei video in formato mp4 (oltre 60) nella cartella "Scaricati". Stamattina (verso le 5 circa), mi è venuto lo spasmodico desiderio di "estrarre", da ciascuno di esso, dei file in formato mp3. Forse si dovrebbe dire convertire i file mp4 in file mp3. Forse!

 A tal fine ho creato un piccolo script.

sabato 11 agosto 2012

Il tempo di bc!

Salve!

Mi sono trovato con 3240 secondi! Quanti minuti saranno?

Basta eseguire nel terminale questa semplice riga di comando:

$ echo 'obase=60; 3240' | bc

E se fossero stati 45547 secondi?

$ echo 'obase=60; 45547' | bc

Ciao! :)

giovedì 9 agosto 2012

Seq! Man escluso.

Salve!

Oggi parliamo di Seq! (print a sequence of numbers).

$ man seq

Andatevelo a leggere. :)

mercoledì 8 agosto 2012

Buongiorno col countdown

Ecco una piccola "follia" dovuta all'astinenza da blog per 4 mesi!

Avendo installato vlc, tutti i codec necessari e figlet,

lanciate questa riga di comando nel terminale:

a=$((10));while [ $a -gt 0 ]; do clear; figlet $a; a=$((a-=1)); sleep 1;done; vlc http://www.youtube.com/watch?v=MIlaacnpVj0

Un modo come un altro per dirsi buongiorno! :))

Ciao!

Finalmente la mia webcam, che non mi serve, torna a funzionare!

Un caro saluto a tutti!

Ne è passato di tempo dall'ultima volta che ho scritto qualcosa su questo povero blog.
Lo so, tanti progetti lasciati a metà. Mi riferisco al "Progetto Bash", alle sperimentazioni "catastrofiche" con AWK, alla rubrica "Botta e Risposta". A proposito di quest'ultima, vi svelo un retroscena. Quando dovevamo scegliere il logo, il caro Lightuono aveva optato per BR, ma dato che questa sigla evocava..avete capito, vero?..Abbiamo scelto di inserire tra la B e la R una "e" commerciale... Così, apparentemente, è tutto meno rivoluzionario :D

sabato 31 marzo 2012

Quando librsvg fa i capricci!

Piccolo post. Stamattina ho installato archlinux con gnome shell. Tutto è andato bene tranne una cosa: Sul pannello (l'unico che c'è) mancavano le icone.

Per intenderci, queste:




In verità c'erano, ma non si vedevano...ad esempio, per modificare il volume audio dovevo andare a tentativi...Ebbene, per risolvere il problema mi è bastato reinstallare una libreria

sudo pacman -S librsvg

Ora sono tre le distro su cui ho installato Gnome-shell: Debian testing, Archlinux e Lubuntu 12.04 (nei repo di quest'ultima è già presente gnome-shell 3.4).

Ciao :)

martedì 27 marzo 2012

Contare fino a 5

Salve!

Solo un piccolo post! 7 modi per contare fino a 5 nel terminale.

$ i=1;while [ $i -le 5 ]; do echo $i; sleep 1;i=$((i+1)) ;done

$ awk 'BEGIN { i=0; while (i++ <=4) print i }'

$ echo {1..5} | awk '{for (i=1;i<=NF;i++) print i}'

$ for i in {1..5}; do echo $i; sleep 1; done

$ i=1; until [ $i -gt 5 ]; do echo $i; i=$((i+1)); sleep 1; done

$ for ((i=1;i<=5;i++));do echo $i;sleep 1; done

$ awk 'BEGIN { for (i=1; i<=5; i++) print i }'

Ci sarebbe pure

$ seq 1 5

e tanti altri modi...Se volete partecipare, siete i benvenuti :))

Ciao!

venerdì 23 marzo 2012

Un po' di AWK. Quinta parte.

Salve!

Continuo con le mie esercitazioni pubbliche su AWK.

Poteva mancare che AWK non avesse le sue variabili Speciali? Certo che no! C'è chi preferisce chiamarle variabili Built-in...Alla fine si chiamano proprio così. Si tratta infatti di variabili il cui valore è predefinito. Ne abbiamo già parlato, ma l'argomento merita rispetto perciò continueremo a parlarne a lungo. :D

giovedì 22 marzo 2012

Tra Fromm e wc

Salve!

Come al solito chiudo la serata (o la nottata) leggendo un buon libro. Ieri sera mi è capitato tra le mani "L'arte di amare" di Erich Fromm. Ne avrò letto una trentina di pagine, ma poi mi sono dovuto fermare...Fromm mi fa questo effetto, non riesco mai ad andare fino in fondo...

venerdì 16 marzo 2012

Eliminare le linee vuote con sed

Salve!

Può succedere nella vita di voler eliminare le linee bianche in un file di testo.

Posto che il file si trovi nella directory "Prova"

$ cd Prova

do il seguente comando:

$ sed -i '/^$/d' file.txt

Però può succedere pure di pentirsi dell'azione commessa. Magari non è questo il caso, ma non si sa mai.

giovedì 15 marzo 2012

Un po' di AWK. Quarta parte.

Salve!

Col post di oggi continuiamo il sequel su AWK!
Partiamo sempre dalla solita tabella. Solo che oggi l'ho modificata un pò per ragioni pratiche.

Nino;22.2;=>;promosso
Luca;17.6;=>;respinto
Sara;25.6;=>;promosso
Gigi;24.2;=>;promosso
Toni;29.4;=>;promosso
Sasà;17.6;=>;respinto
Enzo;29.8;=>;promosso
Bice;25.6;=>;promosso
Rita;24.2;=>;promosso

martedì 13 marzo 2012

Il test del mio amico

Stamattina mi chiama un mio carissimo amico!
Lui: "Senti, sono nel bagno di una scuola. Ti volevo chiedere una cortesia. Sto facendo un test scritto molto importante. Ti prego, mi devi aiutare!"
Io: "Se posso...perchè no!"
Lui: "Devo creare una riga di comando che mi permetta, dati due file di testo, di crearne un terzo che abbia le prime 2 righe del primo e le ultime tre del secondo!"
Io: "Mi devi dare il tempo di pensarci, però! Mica sono una macchinetta."
Lui: "Cerca di fare presto! Bada, una sola riga di comando, non due, una sola."

Ma porca miseria, etc, etc (improperi assortiti consoni alla circostanza particolare).


martedì 6 marzo 2012

Un po' di AWK. Terza parte.

Salve!

Ed eccoci a quello che ormai, volendo o nolendo, è diventato un sequel: Un nuovo post su AWK. :)

Mi occupo di questo linguaggio, che ho scoperto da non molto tempo, perchè mi è molto utile nel lavoro. Mi capita, infatti, di avere a che fare spesso con tabelle di non semplice comprensione.

Come al solito, condivido con voi i miei esperimenti ( altrimenti detti "elucubrazioni notturne").

domenica 4 marzo 2012

Un po' di AWK. Seconda parte.

Salve!

Questa seconda parte, a dire il vero, c'entra poco con la prima (qui).

Spero di rifarmi con la terza parte. Tempo al tempo.

Oggi (cioè ieri) mi sono lasciato prendere un pò la mano.

Sarà perchè ho creato uno script AWK per il vicino, prossimo alla laurea, affinchè calcolasse la media dei suoi voti.

Ecco, condivido con voi una delle mie esercitazioni notturne con AWK.

venerdì 2 marzo 2012

Un po' di AWK. Prima parte

Salve!

Ho potuto constatare, girando tra i vari blog, anche stranieri, che, quando l'argomento del post è estremamente semplice, si suole usare la seguente dicitura:

"Attenzione, post per neofiti!"

Bene! Ora cerchiamo di fare qualche operazione con AWK.

Ometto del tutto la teoria (forse non è necessaria) e mi limito a fare qualche operazione semplice semplice.

giovedì 1 marzo 2012

Le quattro stagioni!

Salve!

 Ieri (qui), il caro Lightuono, in un suo commento, ha lanciato una sfida: Creare uno script che, impostata una data, "dica" in quale delle quattro stagioni essa  si colloca.
Es. Se scrivo 25-12-2012, lo script deve dare come output "inverno." Non solo. Lo script deve "dire" anche se l'anno è bisestile o meno.
A dire il vero, lo script l'ho creato nella serata di ieri ma, per una questione di tempo, non l'ho potuto controllare. Perciò lo pubblico solo adesso.
Nel frattempo è arrivato un altro script, creato da Stefano. Lo potete trovare qui. Lo ringrazio tanto per aver condiviso il suo lavoro!

mercoledì 29 febbraio 2012

Anno bisestile: Tra script e "cal"

Salve!

 L'anno tropico (dal greco tropos, rotazione) o anno solare altro non è che il ciclo delle stagioni ed è pari a 365 giorni, 5 ore, 48 minuti e 46 secondi.
L'anno civile, invece, è l'anno solare ma con un numero predeterminato di giorni: 365.
Dalla differenza tra anno tropico e anno civile ci avanzano 5 ore 48 minuti e 46 secondi.

Che fine farà 'sto tempo? Andrà a formare, ogni quattro anni, un anno bisestile. Così ho sintetizzato quelle pochissime  riminiscenze (non so se giuste o sbagliate :D) di geografia astronomica che mi restano ancora! :D

Il pc di un mio caro amico e la chiavetta internet Olicard100

Salve!

Come far riconoscere alla propria distro la chiavetta Olivetti Olicard100 della tim.

Anzitutto bisogna installare usb-modeswitch

martedì 28 febbraio 2012

Installati o rimossi?

Salve!

Per vedere quali pacchetti sono stati rimossi o installati (nell'ultimo periodo), basta leggere il file /var/log/dpkg.log

$ gedit /var/log/dpkg.log

Come potete constatare l'elenco è lunghissimo perchè comprende anche altre voci (upgrade, configure, etc.).

Per avere una panoramica dei soli pacchetti installati e/o rimossi, uso la seguente riga di comando:

$ awk '$3 ~ /install|remove/ {print $1 " "$3 ": "$4}' /var/log/dpkg.log > $HOME/Scrivania/elenco.txt

che creerà il file elenco.txt sulla Scrivania.

Chissà se si può fare di meglio....

Ciao! :)

giovedì 23 febbraio 2012

Mi sveglio con Sox

L'ultima cosa che riesco a fare verso le quattro del mattino è quella di impostare la sveglia.

Nella mia stanza da letto c'è: Il letto (ovvio), una sedia, dove ripongo i vestiti, e un comodino.

Una stanza abbastanza spoglia. Tutto ruota intorno al comodino.

mercoledì 22 febbraio 2012

Due anni!

Mi sono ricordato che questo blog compie due anni!

Così con il buon Gimp ho cercato di fare una torta un pò speciale!


"Nè del cielo nè della terra, nè mortale nè immortale ti abbiamo creato, sicchè potessi essere libero secondo la tua propria volontà e onore, per essere il tuo proprio creatore e costruttore. A te solo abbiamo dato crescita e sviluppo dipendenti dal tuo libero arbitrio. Tu porti in te i germi di una vita universale."

Pico della Mirandola
Oratio de Hominis Dignitate


Grazie a tutti!


martedì 21 febbraio 2012

Mi è sparito "the quick search"

Salve!

Da qualche mese a questa parte, se qualcuno mi chiede quale  sia la distro più semplice nel panorama Gnu/Linux, non posso non rispondere  Lubuntu.

Non solo è la distro più semplice in assoluto (secondo me), ma è quella che si lascia plasmare in toto.


giovedì 16 febbraio 2012

Eccoci alle funzioni!

 Salve!

Con questo post iniziamo a parlare delle funzioni. Lo so, è passato un pò di tempo dall'ultimo post, ma purtroppo non sto vivendo proprio dei bei momenti... Lasciamo stare, va. Che è meglio.

Come ormai saprete, il progetto bash non è un corso su bash, ma un invito a cimentarsi con il linguaggio bash.
Niente di più. Il nostro sforzo è tutto diretto ad esprimerci nel modo più semplice possibile. Ma la cosa bella è che sono stati in molti ad aver espresso il loro gradimento. Non può che farci tanto piacere. Veramente. :))

giovedì 12 gennaio 2012

Convertire secondi o minuti in ore, minuti e giù di lì

Salve!

Un semplice script che converte i secondi in ore e minuti e  i minuti in ore.

Mi spiego meglio.

Appena lanciato, lo script chiede se si vogliono convertire i secondi o i minuti. Nel primo caso scegliere "s" e premere invio, nel secondo, digitare "m" e premere invio.

Facciamo qualche esempio: