mercoledì 31 dicembre 2014

Clear per Python [Brevi Esercizi]

Salve!

Oggi parliamo del comando clear, della sua funzione, ma non in Bash, in Python.

La funzione di clear è quella di pulire la finestra del terminale. In Python non esiste, ecco.

Bisogna importare un modulo, os, per poterla avere. Il problema si pone soprattutto all'interno degli script, sopratutto in presenza di cicli iterativi infiniti, chissà se si può dire così.. ma a me piace questa definizione, perciò non la cambio.

Dicevo che il problema si pone soprattutto all'interno di uno script, se invece lanciamo comandi in una shell python e vogliamo pulire la finestra del terminale, basta la combinazione di tasti Ctrl+L, che funziona anche in bash. Pare non funzioni su Windows, ma il problema non mi tange mica, uso solo linux, e da svariati anni.

Facciamo un esempio concreto. Costruiamo un semplice script che ci aggiorni dell'ora ogni secondo.
#!/usr/bin/python
# -*- coding: utf-8 -*-

import time
while True:
   print time.strftime("%H:%M:%S", time.localtime(time.time()));
   time.sleep(1);
Capirete subito, una volta eseguito lo script, che il comando clear diventa necessario.


Per aggiungerlo, basta importare il modulo os e costruire una funzione. Almeno io faccio così.

Fatte le dovute aggiunte, avremo il seguente codice:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import time, os

def clearScreen():
 os.system("clear")

while True:
   print time.strftime("%H:%M:%S", time.localtime(time.time()));
   time.sleep(1);
   clearScreen()
In questo modo non vedremo più l'elenco interminabile delle ore, dei minuti e dei secondi.


Alla prossima e buon anno!

martedì 30 dicembre 2014

Decodifichiamo codici QR con Python [Brevi Esercizi]

Salve!

In un precedente post, abbiamo visto come creare un codice QR con Python, oggi vediamo come decodificarlo.

Anzitutto installiamo il seguente pacchetto

$ sudo apt-get install python-qrtools

Create un documento di testo nella cartella Documenti, chiamatelo DecQR.py e incollateci il codice di cui sotto; nella stessa cartella salvate anche il codice QR da decodificare.

Poi dal terminale spostatevi nella directory Documenti

$ cd Documenti

rendete eseguibile lo script

$ chmod +x DecQR.py

e lanciatelo

$ ./DecQR.py

Lo script è interettivo, infatti vi chiederà il nome esatto del codice QR da decodificare. L'output sarà stampato nella stessa finestra del terminale.

#!/usr/bin/python
# -*- coding: utf-8 -*-

from qrtools import QR
print
#Digitiamo il nome del codice QR da decodificare
Nome_Codice_QR = raw_input("Digita il nome del codice QR da decodificare? ")
#Viene impostato il nome
myCode = QR(filename = Nome_Codice_QR)
#decodifica
if myCode.decode():
  print
  print "Output:"
  print myCode.data
  print

L'indice della rubrica "Brevi Esercizi" lo trovate qui

Alla prossima! ;)

venerdì 26 dicembre 2014

La tombola parlante

Nella tombola, un giocatore con ruolo di croupier ha a disposizione un tabellone sul quale sono riportati tutti i numeri da 1 a 90, e un sacchetto riempito con pezzi numerati. Il suo compito consiste nell'estrarre i pezzi in modo casuale, e annunciare agli altri giocatori il numero uscito.

Bene, lo script, appena abbozzato, non fa altro che estrarre i numeri in modo casuale e annunciarli. Per continuare con l'estrazione bisogna premere Invio, per uscire dallo script, Ctrl+C.

Installiamo alcune dipendenze:

$ sudo apt-get install toilet espeak sox

Create un documento di testo nella cartella Documenti, chiamatelo croupier.sh e incollateci il codice di cui sotto.

Poi dal terminale spostatevi nella directory Documenti

$ cd Documenti

rendete eseguibile lo script

$ chmod +x croupier.sh

e lanciatelo

$ ./croupier.sh

#!/bin/bash
#Bit3Lux
#tombola.sh

function numero(){
espeak -p 50 -s 180 --stdout -v it+f5 | play -t wav - \
overdrive 10 
}
a=`for i in {1..90}; do echo $i; done | shuf`
clear
for i in $a 
do
     toilet -f smmono12 $i  && echo $i | numero 
    echo -e "\v" "Premere invio per continuare, Ctrl+C per uscire dallo script"
    read
    echo ""
    clear
done
exit 0

Alla prossima!

mercoledì 24 dicembre 2014

Pillole di OpenSource #1

  • Il LubitProject, da non molto tempo, si avvale anche di uno spazio su Google+, dove si possono postare dubbi, richiesta di aiuto, suggerimenti, intorno a lubit e ad alcuni linguaggi di programmazione: Bash, Python, Awk, C++. Gruppo di discussione del progetto Lubit Linux

  • Da un po' di tempo, Michele Adduci sta curando sul blog il corso di Modern C++. Alcune raccomandazioni: Anzitutto vi invito a seguire il corso, il cui indice lo trovate qui; vi invito inoltre a rispondere al questionario che trovate alla fine di ogni lezione. Il questionario è di estrema importanza perchè permette a Michele di "tarare" il corso secondo le vostre esigenze, per quello che è possibile, ovvio. 



  • Stanco di sentire parlare i giornalisti, quasi tutti, male degli hackers, l'altro giorno, su facebook, ho cercato di darne una definizione: "L'hacker è colui che vuole vedere dentro alle cose, ma anche dentro se stesso.
    L'hacker è colui che sa di sapere poco nonostante la sua preparazione eccellente, perchè il sapere, quello vero, non ti veste, ma ti toglie i vestiti.
    L'hacker, quello vero, ha perennemente freddo. E i suoi spazi sono alternativamente ampi. Anzi, l'hacker ha una visione alternativa della vita, non per scelta, ma per vocazione.
    L'hacker nasce con una missione, e ci vuole tempo perchè sintonizzi la sua vita a queste aspirazioni che lo trascendono.
    L'hacker sovente fissa il vuoto, perchè, proprio nel vuoto, vede proiettato il suo progetto.
    L'hacker non è un criminale e, spesso, non è neanche un informatico. E siccome i suoi spazi sono diversamente ampi, tutti i suoi sforzi sono tesi ad aggirare o superare creativamente le limitazioni che gli vengono imposte nel suo campo." Voi che ne pensate?

  • Vi segnalo un interessante articolo di Fiorentino Sarro dell'HLCS. Di Fiorentino apprezzo la grinta, lo stile e i contenuti dei suoi articoli. In sintesi, di lui apprezzo tutto. :) Hacklab X – Anno 1, Numero 9

  •  Per il 9 gennaio 2015 è prevista l'uscita di Lubit 4 - 64 bit
 


Auguri di Buon Natale a tutti! ;)


venerdì 12 dicembre 2014

Emulare i suoni di una macchina da scrivere su lubit

Salve!

Vabbè, stamattina sono un po' nostalgico. Stanotte mi sono ricordato quando nel 1987 feci un corso di dattilografia. Allora usavo una Olivetti come macchina da scrivere, questa...
Ora vi dico come fare per emularne i suoni su lubit.

Anzitutto installiamo il pacchetto python-xlib

$ sudo apt-get install python-xlib

Scarichiamo lo script in python da github

$ wget -O keypress.tar.gz https://github.com/chrelad/keypress/tarball/master

decoprimpiamo l'archivio .tar.gz ed estraiamone i file.

$ tar -xfz keypress.tar.gz

Spostiamoci nella cartella contenente lo script in python

$ cd chrelad*

rendiamo eseguibile lo script

$ chmod +x keypress.py

Eseguiamo lo script

$ ./keypress.py

Ora possiamo ridurre ad icona la finestra del terminale e iniziare a scrivere qualcosa ;)

Per uscire dallo script, massimizzate la finestra del terminale e premete la combinazione di tasti Ctrl+C

Ah, una cosa, una volta eseguito lo script, ovunque scriviate, writer, browser, editor, etc, avrete i suoni della vecchia olivetti. ;)

Alla prossima!

lunedì 8 dicembre 2014

Come trovare i file senza estensione con il comando Find [Brevi Esercizi]

Salve!

L'esercizio di oggi è il seguente: In una sottocartella, già contenente immagini e scripts, creiamo 7 file di testo senza estensione. Poi, attraverso il comando find, cerchiamoli e, infine, aggiungiamo ad essi l'estensione .txt.

In Documenti ho creato la cartella Test. Entriamoci dentro.

$ cd Documenti/Test

Creiamo i sette file di testo senza estensione

$ touch {a..g}
$ ls

Ora cerchiamo questi file

$ find  -type f ! -name "*.*"

Per aggiungere l'estensione utilizziamo anche rename.

$ find  -type f ! -name "*.*" | rename 's/$/\.txt/'



Importante. C'è da fare una piccola precisazione: Non lanciare mai il comando di cui sopra direttamente nella home dell'utente, ma solo nelle sottocartelle. Questo perchè nella home ci possono essere file di configurazioni che devono essere senza estensione.

Verifichiamo il risultato

$ ls


Alla prossima!

L'indice della rubrica "Brevi Esercizi" lo trovate qui.

domenica 7 dicembre 2014

Mettiamo alla prova le nostre password.

Salve!

Poniamo il caso che mi stia scervellando per creare una password sicura, o che voglia testare una password che sto già usando, in questi casi, o altri analoghi, mi può tornare utile un tool semplice semplice, cracklib-check.

Anzitutto installiamolo

$ sudo apt-get install cracklib-runtime

Ora facciamo un po' di prove.

Supponiamo che voglia impostare come password la classica sequenza "1234567"

$ echo "1234567" | cracklib-check


Altri esempi:





Un altro modo di usare cracklib-check è quello di scrivere il suo nome nel terminale e premere invio, a questo punto bisogna digitare la password, che si vuole provare, e aspettare il responso. Questo secondo metodo evita di digitare, ogni volta, la riga di comando con la nuova password da testare.

cracklib-check


Ad essere proprio sincero, l'utilità di questo tool non è proprio eccezionale. Serve, tuttavia, ad escludere alcune possibilità che potrebbero rivelarsi "dannose" per i nostri account.

Alla prossima.

mercoledì 3 dicembre 2014

Creiamo codici QR con Python

Salve!

L'esercizio di oggi consiste in un semplice script in Python che crea codici QR.

Lo script ci chiede il testo da inserire nel codice QR e il nome dello stesso.

Anzitutto dobbiamo scaricare un pacchetto:

$ sudo apt-get install python-pygooglechart

Di seguito il corpo dello script

#!/usr/bin/python
# -*- coding: utf-8 -*-

# importiamo QRChart
from pygooglechart import QRChart

# Dimensioni codice QR
Codice = QRChart(140, 140)

#Creiamo una variabile che contenga il testo del nostro codice QR
Contenuto_Codice_QR = raw_input ("Scrivi il contenuto del codice QR: ")

# Aggiungi il testo
Codice.add_data(Contenuto_Codice_QR)

# correzione degli errori con un margine di 0 pixel
Codice.set_ec('H', 0)

#Diamo un nome al nostro codice QR
Nome_Codice_QR = raw_input("Che nome vuoi dare al codice QR? ")

# Il codice viene salvato nella dir in cui si trova lo script
Codice.download(Nome_Codice_QR)

Salviamo lo script in un file di testo e nominiamolo creacodQR.py

Posto che lo avete salvato nella cartella Documenti

$ cd Documenti

Rendiamolo eseguibile

$ chmod +x creacodQR.py

infine eseguiamolo

$ ./creacodQR.py


Il codice che "sforna" è il seguente:


Per leggerlo ho scaricato un app sul mio Nexus, che si chiama QR Code Reader.

Alla prossima!

lunedì 1 dicembre 2014

Come "falsare" la data di modifica di un file di testo [Brevi Esercizi]

L'esercizio di oggi risponde a questa esigenza, non voglio far sapere al mio coinquilino (che tra l'altro non esiste) quando ho modificato un file di testo.

Poniamo che nella mia cartella Documenti abbia un file di testo modificato il primo dicembre 2014, voglio indurre il mio coinquilino (lo so, non è giusto, ma è pur sempre un esercizio) a credere che il file non sia stato modificato da molto tempo.


Esageriamo, lo induciamo a credere che il file non sia stato modificato dal lontano 9 novembre 1989 (data ufficiale della caduta del muro di Berlino)


L'operazione è semplicissima, basta usare il comando touch con qualche sua opzione:

Il file in questione si chiama, nel mio caso, programma_novembre.txt e si trova nella directory Documenti.

$ cd Documenti

$ touch -m -t 198911091525.30 programma_novembre.txt

In pratica, dopo l'opzione -t, ho scritto prima l'anno (1989), poi il mese (11), poi il giorno (09), infine l'ora con minuti e secondi (15.25:30), tutto attaccato.

Alla prossima ;)

Ah, dimenticavo, l'indice della rubrica "Brevi Esercizi" lo trovate qui.

Niente è come appare.... non dimentichiamocelo mai!

domenica 30 novembre 2014

Migliorare l'usabilità di Synaptic su Lubit


 Salve!

Per rendere più veloce la ricerca dei pacchetti da installare, aggiungiamo il search (filtro rapido). 

$ sudo apt-get install apt-xapian-index

$ sudo update-apt-xapian-index -f -v


Per rendere più veloce il download dei pacchetti, scegliamo il server migliore.
  • Apriamo synaptic
  • Da synaptic andiamo nel menu impostazioni e scegliamo repository.
  • Da software per ubuntu apriamo il menu a tendina (scaricare da) e scegliamo Altro;
  • Clicchiamo su "Seleziona server migliore".  Attendiamo un pò (verrà effettuato il test dei server da cui scaricare). Finito il test, verrà evidenziato il server più veloce (tenendo conto della nostra ubicazione)
  • Non ci resta che fare clic su scegli server.
Adesso il nostro synaptic sarà più veloce nello scaricare i pacchetti.

A presto!

domenica 23 novembre 2014

Se usi il mio pc, a me arriva una e-mail [Brevi Esercizi]

Salve!

Dopo molto tempo riprendiamo con la rubrica "Brevi Esercizi".  L'esempio di oggi è un classico: Voglio sapere, in tempo reale, se il mio coinquilino è così onesto da non usare il mio pc durante la mia assenza. Infatti può succedere che abbia salvato le password dei miei account nel browser, la prima cosa che mi viene in mente. Vabbè... chiaro, la password non si condivide, si potrebbe creare un altro utente...e via dicendo.

Comunque... le precauzioni sono sempre poche.

L'esperimento è stato eseguito su Lubit 4, non poteva essere diversamente.

L'idea è quella di essere avvisato in tempo reale mediante una e-mail, qualora qualcuno entri a mia insaputa nel mio pc.

Ho usato, per l'esercizio, l'account di gmail e il programma testuale mutt.

Installiamo mutt

sudo apt-get install mutt

Settiamo il file di configurazione di mutt

nano ~/.muttrc

Incolliamo in nano il seguente testo, magari in sostituzione a quello che troviamo, qualora ci fosse.

# SMTP SETTINGS
set smtp_url = "smtp://NomeEmail@smtp.gmail.com:587/"
set smtp_pass = "password-account-gmail"


Salviamo e chiudiamo il documento. Nell'ordine:

ctrl + o

Invio

ctrl + x

Importante: 
  • Inserire nel file di configurazione il proprio indirizzo email, lasciando inalterata la voce smtp.
  • inserire la password del proprio account gmail

Creiamo un piccolo script nella directory /usr/local/bin/Script

$ sudo su

# nano /usr/local/bin/Script/Avviso

Incolliamoci dentro

#!/bin/bash
avviso="$USER, qualcuno sta usando il tuo pc"
echo $avviso | mutt -s "AVVISO" tuaemail@gmail.com
exit 0


Salviamo e chiudiamo il documento:

ctrl + o

Invio

ctrl + x

Importante: nello script aggiungere l'indirizzo presso cui vuole essere recapitato il messaggio.

Rendiamo lo script eseguibile

# chmod +x /usr/local/bin/Script/Avviso

Non resta che aggiornare il file autostart.sh

# nano /usr/local/bin/autostart.sh

E, prima di "exit 0", aggiungiamo

sleep 20 && /usr/local/bin/Script/Avviso

Salviamo e chiudiamo il documento

ctrl + o

Invio

ctrl + x

# exit

Ora, per fare una prova, usciamo da openbox

$ openbox --exit

Una volta loggatoci, aspettiamo 20 secondi, e dovrebbe arrivare l'email al nostro indirizzo di posta elettronica.

Onde evitare che ad ogni avvio ci arrivi una e-mail, disabilitiamo lo script

$ sudo su
# nano /usr/local/bin/autostart.sh

Non resta che aggiungere un cancelletto davanti alla riga precedentemente aggiunta:

# sleep 20 && /usr/local/bin/Script/Avviso

Salviamo e chiudiamo il file

 ctrl + o

Invio

ctrl + x

# exit

Alla prossima! 

mercoledì 5 novembre 2014

Archiviazione e compressione. Prima Parte

 Salve!

Tar fa una cosa e gzip e bzip2 ne fanno un'altra. Con tar creiamo archivi e con gli altri due li comprimiamo o decomprimiamo. Faccio questa precisazione perchè vedo un sacco di confusione in giro. L'archivio creato da tar non ha la benchè minima compressione. Il suo peso è pari alla somma del peso degli elementi archiviati (più o meno). Tar fa una sola cosa, crea archivi. Punto.

Uso tar, ad esempio, quando devo spostare 2000 file da una directory della mia home all'hd esterno.

Tar è l'acronimo di tape archive. E spesso viene usato insieme a gzip e bzip2, dal momento che, da solo, non ha la capacità di comprimere i file.

Gzip è la contrazione di GNU zip, ed esiste dal 1992. Il suo compito è quello di comprimere dati.

bzip2 esiste dal 1996 e il grado di compressione è più elevato rispetto a Gzip.

Per quanto mi riguarda ha poco senso far lavorare tar, gzip o bzip da soli.

Le accoppiate vincenti sono due

tar + gzip
tar + bzip2

Partiamo dalla prima coppia, tar + gzip

Sebbene sia possibile archiviare e comprimere con due operazioni differenti (prima usando tar, da solo, e poi gzip), preferisco usare tar con l'opzione -z

E forse è l'uso di questa sola riga di comando ad indurre a pensare che archivio e compressione siano la stessa cosa. In realtà -z va a richiamare un altro programma, gzip appunto, la cui unica funzione è quella di comprimere/decomprimere, mentre tar continua ad assolvere alla funzione di creare archivi.

$ tar -czf nome_archivio.tar.gz file1 file2 file3 file4 file5

-c sta per crea archivi
-z sta per comprimi in formato gzip
-f sta per utilizza file di archivio (es. nome_archivio.tar.gz)

Facciamo un esempio.

Creiamo una directory nella nostra home

$ mkdir Test

Entriamo nella directory creata

$ cd Test

Creiamo 4 file di testo

$ touch lubit1 lubit2 lubit3 lubit4

Per vederli, digitiamo ls

Ora creiamo un archivio e comprimiamolo

$ tar -czf lubit_archivio.tar.gz lubit1 lubit2 lubit3 lubit4


Per decomprimere l'archivio ed estrarre i file si fa così:

$ tar -xzf lubit_archivio.tar.gz

-x sta per estrai i file dall'archivio

Passiamo alla seconda coppia, tar + bzip2

Per creare l'archivio e comprimerlo:

$ tar -cjf lubit_archivio.tar.bz2 lubit1 lubit2 lubit3 lubit4

-j sta per comprimi in formato bzip2

Per decomprimere l'archivio ed estrarre i file si fa così

$ tar -xjf lubit_archivio.tar.bz2

Presto ritornerò sull'argomento, mi restano da dire ancora una trentina di cose. ;)

A presto.

lunedì 3 novembre 2014

Notifiche di Gmail nel conky

Salve!

Dalla versione 3 di Lubit, è stata aggiunta nel conky la notifica di gmail. Si tratta di una semplice funzionalità che ci permette di sapere il numero delle nuove e-mail arrivate.

Lo script, in python,  è stato collocato in /usr/local/bin/Script, ed è stato interfacciato col conky. 

Certo, come qualcuno mi ha fatto notare, avrei potuto pure fare in modo che le mail fossero notificate tramite ScreenTip o tooltip...o non so come definirlo, ma ci siamo capiti. Tuttavia ho preferito fare così, all'insegna della sobrietà, che caratterizza Lubit.

Nel nuovo menù di Lubit 4 ho aggiunto una voce che permette di settare lo script, aggiungendo username e password, necessarie per loggarsi su gmail.

Basta andare sul menu e poi spostarsi in Configurazioni avanzate/editare notifiche gmail.

La parte del codice che a noi interessa è proprio all'inizio dello script, precisamente questa:

Una volta aggiunti password e username e salvato il documento, non resta che "sloggarsi"

$ openbox --exit


Alla prossima!

P.S. Vi ricordo che il caro Massimo Testa, aka squittymouse, sta creando i nuovi sfondi per lubit 4!! ;)

domenica 2 novembre 2014

Tint2 a scomparsa automatica e in basso.

Buongiorno!

Cerco di rispondere all'amico che stamattina mi ha mandato un messaggio più o meno lungo. ;)

"....Dato che la distro l'ho messa su un computer da 10" e lo schermo come saprà è piccolo avrei preferito che il pannello fosse in basso con la possibilità di farlo nascondere...."

Tint2 a scomparsa automatica


$ leafpad ~/.config/tint2/tint2rc


Trovate la seguente sezione di codice: 

# Panel Autohide
autohide = 0
autohide_show_timeout = 0.3
autohide_hide_timeout = 1.5
autohide_height = 6
strut_policy = follow_size


E modificate il valore di autohide da 0 a 1.

da autohide = 0

a autohide = 1

Tint2 in basso 

Trovate la seguente sezione di codice:

 # Panel
panel_monitor = all
panel_position = top center horizontal
panel_items = TSBC
panel_size = 100% 30
panel_margin = 0 -1
panel_padding = 0 0
panel_dock = 0
wm_menu = 1
panel_layer = bottom
panel_background_id = 1


e modificatelo in questo modo: 

da  panel_position =top center horizontal

panel_position = bottom center


Salvate le modifiche e digitate nel terminale


$ openbox --exit

Dopo che vi sarete nuovamente "loggati" vi troverete il pennello a scomparsa automatica e in basso. 

A presto.

sabato 1 novembre 2014

Lubit Linux 4, Eagle!

Salve!

Vi annunciamo che è appena uscita Lubit Linux 4, nome in codice Eagle!

La presentazione la trovate sul sito ufficiale.

Le novità sono veramente tante, ad iniziare dal menù che si autogenera.

La base è rimasta Ubuntu 14.04 LTS.

Lubit è stata rivisitata tutta, dal grub  allo spegnimento. Sono stati risolti alcuni bug, che affliggevano le precedente versioni, ed è stata resa ancora più scattante e fluida. Sono cambiati sfondi, colori, conky e... insomma, bisogna provarla, no? :)

 
 
Per il download, clicca qui.  

In questi giorni scriveremo una serie di guide per spiegarvi nei dettagli le novità!

Un buon primo novembre a tutti!

domenica 12 ottobre 2014

Catalogare libri e collezioni: GCstar e Tellico

Questo post inaugura una rubrica dedicata alla presentazione di software e programmi specifici utilizzabili su Lubit. Di tali applicazioni saranno illustrate modalità di installazione, possibili utilizzi, schermate significative delle stesse. Tranne che per le applicazioni prodotte dal nostro team, non sarà fornita alcuna assistenza, per la quale si rimanda alle pagine ufficiali dei relativi progetti. Il software e i programmi presentati saranno recensiti in base all'esperienza derivante da installazioni reali.

L'esigenza era di reperire un software specifico utilizzabile per la gestione di una piccola/media biblioteca, in grado di interagire con la rete al fine di rendere quanto più possibile automatica l'acquisizione delle informazioni associate al codice ISBN del libro.

Condizioni di test:
Distro Lubit3 Scorpion su Dell Latitude D610, 1 Gb di RAM, Kernel 3.13.0-37 generic.

  • GCstar
GCstar è una applicazione open source per la gestione di piccole collezioni personali. Raccoglie dettagliate informazioni ricercandole automaticamente sulla rete, consente filtraggi personalizzati dei dati. GCstar è scritto in Perl e utilizza le librerie GTK+.
Presente sui repository Ubuntu, è installabile da Synaptic o da terminale con APT:

$ sudo apt-get install gcstar

Lanciato da terminale con il comando gcstar, il consumo in RAM della Lubit3 appare questo:

 
Ed ecco come si presenta in avvio


Selezionando la collezione libri, si apre la maschera di inserimento

decisamente scarna e graficamente povera. Il menù preferenze consente di impostare la grafica KDE, ovviamente in presenza delle relative librerie

certamente, più accattivante.

Alla prova dei fatti GCstar si rivela però incapace di acquisire correttamente informazioni dai nodi rete. Tra i tanti proposti, l'unico funzionante è Amazon.


dal quale è possibile quasi sempre recuperare le informazioni sul titolo cercato, benchè le edizioni cui fa riferimento siano quelle del mercato anglosassone e non corrispondano quasi mai a quello italiano.
Oltre a ciò, GCstar si impalla nel caso in cui non trovi le informazioni sul titolo richiesto. Cliccando il tasto "annulla" viene resettata la maschera di ricerca, ma qualcosa rimane in loop, e il solo modo di portare a termine una nuova ricerca è quello di chiudere il programma e rilanciarlo nuovamente.
L'acquisizione manuale funziona perfettamente, ma nel complesso, l'applicazione non si è mostrata all'altezza, almeno in questo caso, delle proprie premesse.

  • Tellico
Tellico è un software per la catalogazione di piccole collezioni di oggetti per il desktop KDE. Fornisce dei modelli pronti per libri, bibliografie, video, musica, giochi, monete, francobolli, carte, fumetti e vini. Tellico è software libero rilasciato con licenza GNU.
(Wikipedia). Richiede KDE4, Qt4, libxml2, libxslt1.

Anche lui disponibile sui repository Ubuntu, può essere installato da Synaptic o da terminale con APT:

$ sudo apt-get install tellico

Non essendo disponibile la GUI GTK+, l'installazione sulla Lubit comporta la necessità di scaricare le librerie mancanti. Ma niente paura, Synaptic o APT si occuperanno di risolvere le dipendenze nel corso dell'installazione.

Lanciato da terminale con il comando tellico, il consumo in RAM della Lubit3 appare questo:

leggermente inferiore a quello mostrato da GCstar

La grafica di KDE è decisamente più accattivante, la schermata compatta.
Il TAB "nuovo" consente la creazione di una nuova collezione scegliendo uno dei modelli predisposti oppure di crearne uno personalizzato


Proseguiamo rapidamente impostando il modello biblioteca, ed apprezziamo l'immediatezza e la piena funzionalità del link da cui trae informazioni

Il nodo IBS Italia, come pure quello di Google Book Search, è perfettamente funzionante, e recupera velocemente le informazioni legate al titolo, consentendo al programma la produzione della relativa scheda.
In pochi minuti, nel corso della prova, è stato possibile acquisire le informazioni complete su una decina di titoli, e il database si è rapidamente popolato.





Tellico consente altresì la registrazione manuale, la personalizzazione completa dei campi, l'acquisizione di immagini da scanner, la conversione in bibliografia e la gestione dei prestiti, oltre a mille altre funzioni che si scopriranno solo usandolo.

Tellico, nel proprio campo, è simile a un coltellino svizzero: mette a disposizione un concentrato di possibilità il cui utilizzo è legato solo alle necessità e alla fantasia dell'utilizzatore.

Promosso decisamente a pieni voti relativamente al test odierno.

domenica 28 settembre 2014

Lubit alla Notte Dei Ricercatori

Lo stand di Lubit con Antonio sullo sfondo
Eccomi qui a scrivere il mio primo articolo su questo mitico blog, sono Pasquale De Rose, aka J-Lemon.
E si, Lubit ha fatto molta audience alla Notte dei Ricercatori, qui in Unical, e anche se è passato qualche giorno ho ancora la voce rauca.
Mettiamola così, è stata veramente impegnativa ma sopratutto interessante.
Vi farò una breve sintesi della serata.
Fin dal primo pomeriggio ci siamo impegnati al massimo per allestire i tavoli tematici sui vari progetti sviluppati in HLCS. Abbiamo riservato spazio anche a Lubit, progetto portato avanti dal team Lubit Project, di cui io faccio parte, e nonostante le iniziali difficoltà siamo riusciti a cavarcela egregiamente.
Subito dopo, io ed Antonio, ci siamo messi alle nostre postazioni pronti a far conoscere Lubit.
Abbiamo aperto le porte al pubblico alle 18:00, e dopo nemmeno dieci minuti ci siamo ritrovati ad ospitare moltissime persone nella sede.
Qui abbiamo passato ore e ore di intrattenimento e sopratutto di confronto.
Le persone che sono venute operavano in diversi ambienti, e non parlo solo di studenti, ma anche di persone che fanno parte di numerose realtà lavorative.
Un'altra cosa che mi ha fatto veramente piacere è stata l'esperienza multiculturale.
La cosa bella dell'università è questa, si viene in contatto con altre realtà e culture, e questo non fa che aiutarci a migliorare.
Inoltre devo dire che ci sono stati molti iscritti alla nostra newsletter, che partirà a breve.
Devo dire la verità, sono molto felice di come sia andato l'evento.
Una bellissima esperienza, forse un po' improvvisata, ma nonostante tutto ci ha resi fieri del nostro operato.
In ultimo credo sia doveroso ringraziare i ragazzi dell'HLCS, sempre pronti ad ospitarci e a darci una mano.
Se non siete riusciti a venire alla Notte dei Ricercatori vi invito a venire il 25 Ottobre al Linux Day, qui a San Marco Argentano, così da poter conoscere l'associazione Gli Amici di Lubit e il team di sviluppo di Lubit Linux. 

Quasi tutta la squadra che ha operato agli stand.

Per il resto vi saluto e Happy Lubit Experience!

domenica 21 settembre 2014

Il Linux Day a San Marco Argentano!!!

Sabato 25 ottobre 2014, dalle ore 15.30: Linux Day 2014 a San Marco Argentano!! La manifestazione si svolgerà nella Sala Consiliare, in via Roma. Si tratta di un evento nazionale, articolato in eventi locali, che ha lo scopo di promuovere Linux e il software libero.

E' la prima volta che a San Marco Argentano, il mio paese, si tiene un Linux Day; perciò accorrete numerosi, non lasciatevi sfuggire questa opportunità unica. ;)

Il Linux Day a San Marco è organizzato dall'Associazione Gli Amici di Lubit. Associazione costituitasi nel mese di maggio e che ha come scopo sociale quello di promuovere il software libero, con un occhio di riguardo per Lubit Linux, un sistema operativo libero, leggero e artigianale.

Informiamo che l'accesso alla manifestazione è libero e gratuito, in ogni sua parte e momento. La manifestazione non è, in alcun modo, legata ad attività di gruppi politici, religiosi o di qualunque altro tipo, che non perseguano le finalità della manifestazione stessa, ossia la diffusione del software libero.

Programma 

15.30: Presentazione e Saluti - Iannoccaro Antonella
15.40: Linux nella pubblica amministrazione - Testa Massimo
16.00: Lubit Linux - Iannoccaro Luigi
16.20: Le libertà digitali e le tecnologie DRM - Luigi Lembo
16.40: Break coffee
17.00: Le licenze Creative Commons - Avolio Andrea
17.20: L'associazione Gli Amici di Lubit e la promozione del software libero - Iannoccaro Eugenio
17.40: La storia di Linux - Pasquale De Rose
18.00: Proiezione Video sul software libero. Filmato realizzato dagli Amici di Lubit 
18.20: Linux Installation Party


Tutti a San Marco Argentano, provincia di Cosenza, per il Linux Day!!! Vi aspettiamo numerosi.

Per altre informazioni sull'evento, vi rimando al sito linuxday.it

venerdì 8 agosto 2014

Lubit sale sulla jeep

L'altro giorno c'è stata l'escursione in mountain bike, un percorso di 35 km, lungo la via dei mulini; i paesi coinvolti sono stati: Fagnano Castello, Malvito, Mottafollone e San Sosti. L'evento è stato organizzato dall'Associazione Paeseggiando, di cui la mia amica Marisa Callisto ne è presidente. In questa splendida occasione Lubit ha avuto l'onore di salire sulla Jeep! :))


La splendida cascata del fiume Rosa (San Sosti)


Per finire, la torta :)


Ciao! :)

venerdì 1 agosto 2014

La funzione split() [AWK]

Salve!

Oggi vediamo la funzione split(), che è veramente semplice semplice.

La funzione split() ci dà la possibilità di convertire automaticamente una stringa in un array. Come?

Attraverso la seguente sintassi: 

split(stringa, array, separatore)

il primo parametro è la stringa da suddividere; il secondo è l'array da creare, il terzo è il separatore.

Facciamo qualche esempio:

awk 'BEGIN{split("luigi", array, ""); print array[1]}'

Per farla breve, è come se scrivessi

a[1] = l
a[2] = u
a[3] = i
a[4] = g
a[5] = i

(Il separatore di campo in questo caso è "", cioè nessuno spazio tra i campi.)

Infatti


echo luigi | awk '{split($0,a,"");for (i=1;i<=5;i++) print a[i]}'


Altro esempio. In questo caso il separatore di campo è "-".

echo l-u-i-g-i | awk '{split($0,a,"-");print a[2] a[5]}'


Ancora

echo 12345 | awk '{split($0,a,"");print a[2]+a[3]}'

echo 12345 | awk '{split($0,a,""); for (i in a) sum += a[i]; print sum}'

echo 12345 | awk '{split($0,a,""); for (i=1; i<=5; i++) print a[i]}'


 Semplice, no? ;) In caso di dubbi, non esitate a lasciare un commento.

Vi ricordo che l'indice della rubrica "Un po' di awk" lo trovate qui.

Alla prossima! 

giovedì 31 luglio 2014

Contiamo le vocali [Brevi Esercizi]

Salve!

L'esercizio di oggi consiste in questo: Dato un file di testo, dobbiamo creare uno script che calcoli il numero di ciascuna vocale. Ho provato con bash, awk e Python.

Partiamo da questo file di testo (file.txt)


Python

#!/usr/bin/python
# -*- coding: utf-8 -*-

var = open("file.txt").read().lower()
vocali="aeiou"
for v in vocali:
        print  v, ": ", var.count(v)


Awk

#!/usr/bin/awk -f

BEGIN{
      c=split("aeiou",v,"")
      } 
      
{
  testo=tolower($0); 
  for (i=1;i<=c;i++) 
       print v[i] ": " gsub(v[i],"",testo)
}


Bash

cat file.txt |  fold -w1 | tr '[A-Z]' '[a-z]' | grep '[aeiou]' | sort | uniq -c | rev


Oppure, come propone il mio amico Lightuono,

grep -oi '[aeiou]' file.txt | sort | uniq -ic



Indice della rubrica "Brevi Esercizi" qui