Estrarre immagini da file PDF

5 06 2009

Recentemente ho avuto necessità di recuperare delle foto che avevo usato in passato per creare un PDF, ma non essendo più in possesso delle immagini originali, l’unica soluzione possibile è stata quella di estrarre tutte le foto dal file PDF stesso.
Fortunatamente Linux ha tutti gli strumenti necessari per svolgere tale compito e nello specifico andremo ad usare: pdfimages, una delle PDF utility fornite dal pacchetto: Poppler-utils, che di norma è già presente in molte distro, ma nel caso così non fosse, sarà sufficiente installarlo attraverso il vostro gestore di pacchetti; ad esempio in Debian e derivate il tutto si risolve con:

# apt-get install poppler-utils [invio]

La velocità e la semplicità d’uso di pdfimages rende l’estrazione di immagini da file PDF un’operazione banale, però prima di iniziare è doveroso ricordare che le immagini estratte verranno salvate nella stessa directory da cui si esegue il comando, per cui è sempre consigliabile creare una cartella di lavoro, dove mettere il file PDF da elaborare e successivamente spostasi nella stessa cartella per eseguire i comandi. Tutto ciò perché altrimenti, al momento dell’estrazione i file immagine creati andrebbero a distribuirsi in tutta la vostra home. A questo punto non ci resta che toccare con mano la potenza di questo tool; con il seguente comando andremo ad estrarre tutte le foto incorporate nel PDF e le salveremo in tutti file che avranno come prima parte del nome: “toonik” seguito da un trattino, da un numero incrementale di tre cifre, un punto ed infine il suffisso del formato.

$ pdfimages file.pdf toonik [invio]

di default pdfimages estrae e salva le immagini in formato PBM (se in scala di grigi) e PPM (se a colori), quindi se vogliamo utilizzare un formato di salvataggio più leggero come il JPEG, dovremo utilizzare lo switch -j in questo modo:

$ pdfimages -j file.pdf toonik [invio]

abbiamo già detto che pdfimages estrae tutte le immagini dal file PDF, ma se noi volessimo estrarre solamente quelle presenti in alcune pagine? Niente paura, possiamo fare anche questo utilizzando le opzioni -f (first) e -l (last) per indicare la prima e l’ultima pagina da processare; quindi, nel caso volessimo ad esempio limitare l’operazione alle pagine: 3, 4 e 5; il comando precedente diventerebbe questo:

$ pdfimages -f 3 -l 5 -j file.pdf toonik [invio]

Infine ricordiamo che con questo tool è possibile lavorare anche su file PDF protetti, basta utilizzare le opzioni -opw o -upw seguite dalla password di protezione.

Ciao e… buona estrazione :-)





Foto raw con Linux e Dcraw

14 08 2008

Ho ancora addosso il profumo del mare di Hvar e sono assorto nei ricordi della vacanza appena trascorsa, ma ecco che all’improvviso irrompe nel mio ufficio Carlos (un ragazzo argentino che tutti vorrebbero come amico perché è ricco… di neuroni), che mi dice: “su Linux Magazine c’è qualcosa che ti riguarda”. Carlos è felice quando mi vede (gli ho fatto conoscere Linux e lui me ne è grato) ed anch’io sono contento di rivederlo perché lui è sempre… allegro (l’unico problema è che non riesco a capire quando è incazzato). Io non so a cosa si riferisca Carlos, per cui corro a comprare Linux Magazine di agosto e cerco un indizio, ma niente, quindi dopo inutili e sterili ricerche mi decido a chiedere spiegazioni…  in effetti qualcosa c’era, ed a Carlos non era sfuggita, mentre a me si… e questo non è bene :(  Carlos non si è fermato allo strato superficiale – è riuscito a guardare oltre – in puro stile hacker. Io all’inizio pensavo si trattasse di qualche mio screenshot (come già accaduto in passato), invece questa volta era qualcosa di molto più subliminale… in pratica sia in copertina che all’interno appare per ben 3 volte il disegno di un omino dallo stile vacanziero con una bella macchina fotografica al collo, ebbene Carlos mi ha fatto notare che quella quasi impercettibile riga bianca sulla fotocamera è la scritta: “Toonik”… a questo punto ho scansionato la rivista ed ho potuto appurare che la scritta in realtà è Tonik e non Toonik, comunque il senso non cambia e considerando la mia passione per la fotografia, ne approfitto per scrivere un piccolo articolo su come gestire il formato raw delle fotocamere digitali con Linux.

Innanzitutto spieghiamo brevemente cos’è il formato raw, esso è un particolare metodo di memorizzazione dei dati descrittori di un’immagine che permette di non avere nessuna perdita di qualità rispetto ai segnali catturati dall’apparato. Quindi un file raw, contiene informazioni grezze provenienti direttamente dal sensore della fotocamera, senza subire nessuna elaborazione all’interno della stessa, ed è per questo che può essere equiparato al negativo delle classiche macchine fotografiche a pellicola. Inoltre in una foto raw i colori sono rappresentati da 12 o 14 bit invece che dagli 8 bit del formato jpg, quindi si avranno a disposizione ben 16.000 sfumature di Red, Green e Blue invece delle 256 del jpg. Tutto ciò consente ai fotografi professionisti di avere una più efficace gestione del colore ed un controllo totale sull’immagine, anche se bisogna tener conto del fatto che la maggior quantità di informazioni contenute in un file raw si traduce anche in una dimensione maggiore rispetto ad un jpg. Prima di iniziare è importante ricordare che i produttori di fotocamere (e non solo) identificano i propri file raw ognuno in modo diverso, dando origine ad un numero considerevole di estensioni. Ovviamente nell’eseguire gli script sottostanti ricordate di sostituire l’estensione raw con quella giusta… in caso di dubbi consultate questa tabella:

Formato

Produttore

a r w

S o n y

c r 2

C a n o n

c r w

C a n o n

d c r

K o d a k

d n g

A d o b e

e r f

E p s o n

k d c

K o d a k

m r w

M i n o l t a

n e f

N i k o n

o r f

O l y m p u s

p e f

P e n t a x

p t x

P e n t a x

r a f

F u j i

r a w

P a n a s o n i c

s r f

S o n y

x 3 f

S i g m a

Sotto Linux è possibile gestire questo tipo di file con dcraw, un potentissimo tool a riga di comando (ma che strano). Per pura combinazione… ehm ehm, nel post precedente “Modificare immagini dalla riga di comando” avevamo provveduto a dare questo comando:

# apt-get install imagemagick libjpeg-progs netpbm dcraw [invio]

quindi dovreste aver già installato tutto il necessario (se così non fosse il comando sopracitato è sempre valido). Il numero delle fotocamere supportate da questo software è considerevole, per cui se la vostra è tra queste, possiamo iniziare, tenendo bene in mente che l’utilizzo di base di dcraw è semplicissimo… mentre l’utilizzo avanzato è difficilissimo… noi seguiremo la prima via!

Di default dcraw produce un file ppm (Portable PixMap) lasciando inalterato il raw originale, per cui il comando seguente creerà il file foto.ppm nella stessa cartella contenente il file foto.raw

$ dcraw foto.raw [invio]

il comportamento di default può essere cambiato con l’opzione T che produrrà un file tiff con metadati

$ dcraw -T foto.raw [invio]

l’opzione -e estrae la miniatura (solitamente una jpg) generata dalla fotocamera… attenzione non elabora l’immagine grezza:

$ dcraw -e foto.raw [invio]

usando l’opzione -h generiamo un’immagine a colori con dimensioni dimezzate:

$ dcraw -h foto.raw [invio]

mentre -a calcola il bilanciamento del bianco dalla media dell’intera immagine:

$ dcraw -a foto.raw [invio]

l’opzione -c scrive sullo standard output le immagini decodificate:

$ dcraw -c foto.raw [invio]

quest’ultima opzione è necessaria nel caso volessimo usare una pipe per estrarre la foto e convertirla al volo in jpg con ppmtojpeg:

$ dcraw -c foto.raw | ppmtojpeg > foto.jpg [invio]

nel caso volessimo processare molte foto in batch possiamo eseguire questo scriptino:

$ for i in *.raw; do dcraw -c -a -h $i | ppmtojpeg > `basename $i raw`jpg; echo $i " Conversione riuscita"; done [invio]

Attenzione – il comando precedente dovete eseguirlo all’interno della cartella contenente le foto, o in alternativa aggiungete il $PATH completo in questo modo:

$ for i in ~/cartella_delle_foto/*.raw; do dcraw -c -a -h $i | ppmtojpeg > `basename $i raw`jpg; echo $i " Conversione riuscita"; done [invio]

considerando la lunghezza del comando, potrebbe essere conveniente inserirlo in uno script da tenere sempre a portata di… tastiera.

Un’altro esempio di script è il seguente:

if (for f in ~/cartella_delle_foto/*.raw
do
dcraw -c "$f" | pnmtojpeg > "${f/.raw/.jpg}"
done
)
then
echo "Conversione raw eseguita con successo"
else
echo "Errore... conversione non riuscita"
fi

dimenticavo… negli script bash inserite sempre lo shabang

Ovviamente con dcraw si possono fare molte più cose di quante viste in questo contesto e per chi volesse approfondire l’argomento segnalo questo manuale

Bene… visto che ci siamo divertiti abbastanza, vi confesso che per elaborare foto raw con linux esistono anche software interattivi e soprattutto… ad interfaccia grafica… ora direte qualche parolaccia, ma poi vi passa e sarete felici di aver appreso le basi di dcraw… comunque se proprio volete usare un programma grafico, eccovi una lista (non esaustiva) di quelli disponibili per GNU/Linux.





Modificare immagini dalla riga di comando

29 02 2008

Oggi vedremo come gestire le immagini dalla riga di comando, però prima devo parlare di cosa ha ispirato questo post…

L’Università Politecnica delle Marche, l’ISTAO, la Camera di Commercio di Ancona, la Regione Marche e Marche Capital hanno dato vita a eCapital (Business Plan Competition) – un concorso che premia i migliori progetti scaturiti dalle fervide menti degli studenti marchigiani – ed è finalizzato a mettere in contatto il mondo accademico con quello imprenditoriale, in particolare consente ai giovani di trovare capitalisti interessati a finanziare le idee più innovative… almeno in teoria ;-)

Potevo esimermi dal presentare un progetto basato su Linux? Ovviamente no, quindi insieme ai miei nipotini Massi e Mattia presento l’idea di un computer basato su una versione personalizzata di Linux, che ci consente di arrivare alla finalissima svoltasi il 9 ottobre 2007 al Teatro delle Muse di Ancona. In quell’occasione facemmo molte foto (soprattutto a Juliana Moreira e Ljdie Pages). Bene, non ci crederete ma da allora ho sempre tergiversato sino a qualche giorno fa, quando Massi e Mattia mi hanno dato l’ultimatum per pubblicare le foto della serata su Picasaweb. A questo punto però si presenta la necessità di sincronizzare e selezionare le nostre foto a distanza; per farla corta… devo ridimensionare tutte le foto della serata per poterle inviare agevolmente attraverso la rete, quindi approfitto della presenza nel mio ufficio di Marco – un amico passato da poco a Linux – e gli dico: Marco, per favore mi dimensioneresti tutte le foto contenute nella cartella Ecapital a 300×200 mentre vado a prendere un caffè con il mio cliente? Ok, risponde lui… ma quando ritorno ne aveva ridimensionate appena una decina, quindi mi rendo subito conto che Marco non conosce ImageMagick e… avreste dovuto vedere la faccia che ha fatto quando ho processato oltre 200 foto in una manciata di secondi con un semplice:

$ mogrify -geometry 300x200 *jpg [invio]

Ebbene si, ho approfittato dell’occasione per parlare di eCapital (come promesso ai nipotini), ma soprattutto per far conoscere ai nuovi entusiasti di Linux una serie di comandi per manipolare immagini di ogni genere.

Prima di procedere verifichiamo che nel nostro sistema sia installato ImageMagick, e se così non fosse… installatelo:

# apt-get install imagemagick libjpeg-progs netpbm dcraw [invio]

N.B. libjpeg-progs, netpbm e dcraw completano il set di strumenti per la manipolazione delle immagini da riga di comando.

Fatto questo sarete pronti per sperimentare la potenza dei comandi disponibili… buon divertimento.

mogrify è uno dei comandi messi a disposizione di ImageMagick ed accetta varie opzioni, iniziamo con lui:

per ridimensionare immagine.jpg a 800×600 px preservando le proporzioni originali:

$ mogrify -geometry 800x600 immagine.jpg [invio]

per ridimensionare immagine.jpg a 800×600 px forzando l’esatta dimensione senza mantenere le proporzioni originali:

$ mogrify -geometry 800x600! immagine.jpg [invio]

per ridurre le dimensioni di immagine.jpg del 50%:

$ mogrify -geometry 50%x50% immagine.jpg [invio]

per aumentare le dimensioni di immagine.jpg del 30%:

$ mogrify -geometry 130%x130% immagine.jpg [invio]

per aumentare la larghezza del 40% e diminuire l’altezza del 40% ad immagine.jpg:

$ mogrify -geometry 140%x40% immagine.jpg [invio]

per ruotare quadrato.jpg di 90 gradi:

$ mogrify -rotate 90 quadrato.jpg [invio]

per ruotare largo.jpg di 180 gradi:

$ mogrify -rotate '180>' largo.jpg [invio]

per ruotare alto.jpg di 180 gradi:

$ mogrify -rotate '180<' alto.jpg [invio]

mogrify con l’opzione flip ribalta verticalmente l’immagine verticale.jpg

$ mogrify -flip verticale.jpg [invio]

convert con l’opzione flip ribalta verticalmente sopra.jpg  creando sotto.jpg

$ convert -flip sopra.jpg sotto.jpg [invio]

mogrify con l’opzione flop ribalta orizzontalmente l’immagine orizzontale.jpg

$ mogrify -flop orizzontale.jpg [invio]

convert con l’opzione flop ribalta orizzontalmente destra.jpg  creando sinistra.jpg

$ convert -flop destra.jpg sinistra.jpg [invio]

per trasformare colore.jpg in un’immagine a 2 colori:

$ mogrify -colors 2 colore.jpg [invio]

per trasformare colore.jpg in un’immagine a 4 colori con il miglioramento dell’errore prodotto dall’algoritmo Floyd-Steinberg:

$ mogrify -colors 4 -dither colore.jpg [invio]

per applicare la mappa dei colori di colore.jpg ad immagine.jpg:

$ mogrify -map colore.jpg immagine.jpg [invio]

per trasformare colore.jpg in bianco e nero in scala di grigi (tipo foto) preservando l’originale:

$ convert -colorspace gray colore.jpg scaladigrigi.jpg [invio]

invece per trasformare colore.jpg in bianco e nero in scala di grigi (tipo foto) sostituendo l’originale:

$ mogrify -colorspace gray colore.jpg [invio]

per trasformare colore.jpg in bianco e nero monocromatico (tipo fax) preservando l’originale:

$ convert -monochrome colore.jpg monocromatico.jpg [invio]

invece per trasformare colore.jpg in bianco e nero monocromatico (tipo fax) sostituendo l’originale:

$ mogrify -monochrome colore.jpg [invio]

per aggiungere un bordo con 2 px di larghezza e 8px di altezza ad immagine.jpg:

$ mogrify -border 2x8 immagine.jpg [invio]

per aggiungere una cornice di 10 px ad immagine.jpg:

$ mogrify -frame 10x10 immagine.jpg [invio]

con l’aiuto di convert possiamo anche riuscire a creare il nostro logo dalla riga di comando:

$ convert -size 310x70 xc:transparent -font Bookman-DemiItalic -pointsize 72 -draw "text 25,60 'Toonik'" -channel RGBA -gaussian 0x6 -fill yellow -stroke black -draw "text 20,55 'Toonik'" marchioToonik.png [invio]

non male… vero?

Ovviamente, specificando un font diverso (es: Times-Bold o Helvetica-Bold) potremo cambiare carattere al nostro logo.

ora passiamo a montage che ci consente di aggiungere un’ombra su sfondo bianco ad una foto:

$ montage immagine.jpg -background white -geometry +10+10 -shadow biancoombra.jpg [invio]

se invece volessimo aggiungere un’ombra su sfondo trasparente ad una foto:

$ montage immagine.jpg -background none -geometry +10+10 -shadow trasparenteombra.png [invio]

bene, usiamo ancora montage, ma questa volta per effettuare il montaggio di molte immagini in una sola di nome collage.png:

$ montage img1.jpg img2.jpg img3.jpg img4.jpg img5.jpg img6.jpg img7.jpg img8.jpg collage.png [invio]

per fondere 2 immagini in una di nome fusione.jpg:

$ combine piccola.jpg grande.jpg fusione.jpg [invio]

puoi fondere 2 immagini in una di nome fusione.jpg assegnando la percentuale di fusione della 2° rispetto alla 1°:

$ combine -blend 70 prima.jpg seconda.jpg fusione.jpg [invio]

assegnando l’argomento difference all’opzione compose del comando combine si ottiene il morphing dell’immagine:

$ combine -compose difference prima.jpg seconda.jpg risultato.jpg [invio]

con l’opzione -comment possiamo aggiungere un commento ad immagine.jpg:

$ mogrify -comment "ciao mondo!" immagine.jpg [invio]

per aggiungere commenti possiamo utilizzare anche il comando wrjpgcom reso disponibile dal pacchetto libjpeg-progs:

$ wrjpgcom "vaffanculo al mondo!" immagine.jpg [invio]

possiamo subito verificare l’esito dei comandi precedenti con il comando rdjpgcom che è anch’esso contenuto in libjpeg-progs:

$ rdjpgcom immagine.jpg [invio]

Imagemagick supporta un numero impressionante di formati e la conversione avviene con una semplicità disarmante, il comando seguente trasforma il file immagine.png in un file jpg:

$ convert immagine.png immagine.jpg [invio]

lo stesso risultato si ottiene con:

$ mogrify -format jpg immagine.png [invio]

con quest’ultimo approccio è anche facile convertire in batch un’intera cartella di foto eseguendo:

$ mogrify -format jpg *.png [invio]

facile vero?

ritornando a convert, esso non si limita alla sola conversione dei formati, ma si rivela utile in molte occasioni, per esempio il prossimo comando convertirà una serie di immagini in una gif animata con un ritardo di 15 centesimi di secondo tra un frame e un altro:

$ convert -delay 15 toonik*.jpg toonik.gif [invio]

per creare un effetto di metamorfosi da viso1.jpg a viso2.jpg attraverso una transizione di 15 frame con ritardo di 10 millisecondi:

$ convert -morph 15 -delay 10 viso1.jpg viso2.jpg metamorfosi.gif [invio]

nel prossimo esempio convert prenderà l’immagine originale.jpg le aggiungerà un bordo 15×15 di colore bianco, poi scriverà in basso a destra la frase tra virgolette con il carattere courier, grandezza 12 e il colore rosso. La frase terminerà a 15 pixel dal bordo laterale destro e sarà distante 10 pixel dal bordo inferiore.

$ convert -border 15x15 -bordercolor white -gravity SouthEast -font courier -pointsize 12 -fill red -draw 'text 15,10 "saluti da toonik"' originale.jpg modificato.jpg [invio]

il comando display è essenzialmente un visualizzatore, ma attivando l’interfaccia grafica con un click si può accedere alle opzioni di ImageMagick… per visualizzare un’immagine digitiamo semplicemente:

$ display immagine.jpg [invio]

import consente di fotografare lo schermo, per fotografare una finestra digitare il comando seguente e quando il cursore prende la forma di una croce cliccare sulla finestra che si vuol fotografare:

$ import finestra.jpg [invio]

per catturare una schermata dell’intero desktop digitare:

$ import -window root schermo.jpg [invio]

l’ultimo comando che analizzeremo serve ad ottenere informazioni sul formato, dimensione e colori del file, quindi per conoscere le caratteristiche del file immagine.jpg digitiamo:

$ identify immagine.jpg [invio]

con l’opzione -verbose si accede a delle informazioni aggiuntive sul file, tra cui eventuali commenti:

$ identify -verbose immagine.jpg [invio]

dimenticavo… il bello della riga di comando è che si possono anche realizzare simpatici script come questo:

for i in *.jpg; do
convert -scale 50% $i toonik-$i
done

o ancora meglio…

come questo postatomi da Simotrone che in un sol colpo crea delle utilissime miniature delle nostre foto e le nomina con l’aggiunta del suffisso thumb in modo da distinguerle da quelle originali che comunque rimarranno inalterate:

for ARG in foto*; do
convert $ARG -thumbnail 300x `echo $ARG | sed s/jpg/thumb\.jpg/`
done

ovviamente il tutto può essere eseguito dal terminale, direttamente come comando:

$ for ARG in foto*; do convert $ARG -thumbnail 300x `echo $ARG | sed s/jpg/thumb\.jpg/`; done [invio]

a patto di posizionarsi preventivamente all’interno della cartella contenente le foto…

e sostituendo foto* con i caratteri iniziali usati dalla vostra camera digitale come prefisso alla numerazione.

Ovviamente le possibilità offerte da ImageMagick sono mooolte di più, ma lascio a voi il piacere della scoperta :-) per quanto mi riguarda spero di aver stimolato in chi legge questo blog (pochi amici e parenti) la giusta curiosità su un aspetto di Linux che ultimamente viene troppo spesso dimenticato… la potenza della shell.

Toonik





Total Linux – è nata una nuova rivista dedicata a Linux

23 12 2007

Una nuova pubblicazione nel panorama editoriale dedicato a Linux… ehmm… si si avete ragione… una rivista sembrerebbe OT in Linux Desktop, invece vi garantisco che c’è una certa attinenza e presto capirete il perché.

La settimana scorsa mi trovo a gironzolare all’interno del terminal – partenze – dell’aeroporto di Ancona, quindi penso bene di dare una sbirciatina all’edicola per verificare come fosse esposto Linux in confronto alle altre riviste del settore informatico e devo ammettere che sono rimasto positivamente colpito dal fatto che nel lineare centrale fosse presente un settore interamente dedicato a Linux ed oltretutto posizionato ad altezza occhi… meraviglioso!

Osservando l’espositore mi accorgo che c’è qualcosa di diverso tra le note pubblicazioni dedicate a Linux ( Linux MagazineLinux ProLinux & C. ), guardo meglio e noto con piacere una copertina mai vista prima – Total Linux – provo subito una certa gioia a vedere una nuova nata sotto il segno del pinguino e decido quindi di comprarla senza indugi.

Una volta rientrato a casa, mi “strabacco” sul divano a gustarmi la nuova scoperta… ed è a questo punto che mia figlia guardando la pagina dell’editoriale che stavo leggendo, dice: “papà guarda… guarda, una foto tua”. Io non capendo a cosa si riferisse gli chiedo: “come hai detto?” e lei indicando con un dito la schermata sotto all’editoriale mi ripete: “non vedi? questa è la foto del computer tuo, quella che sta in internet” – allora guardo con attenzione la schermata in questione e noto che c’è sul desktop un file che mi è familiare, il mio caro VECC_XORG:CONF ed a questo punto spinto dalla curiosità accendo il laptop, apro Iceweasel, vado sul mio blog alla sezione “Linux Desktop” e raggiungo il post “Linux desktop 3D” – ora non ci sono più dubbi, infatti scorrendo l’articolo sino in fondo è possibile vedere le varie schermate degli effetti 3D in Ubuntu Edgy, tra cui c’è anche quella in questione.

Cosa dire… innanzi tutto la memoria visiva di mia figlia che ha 6 anni è nettamente superiore alla mia, poi vorrei aggiungere con un certo orgoglio, che per quanto poco possa valere la mia schermata, comunque è stata scelta (dal consulente editoriale Fabio Valenza) come immagine rappresentativa di Linux, quindi questo mi gratifica “un bel pò”. Concludo invitando i miei amici ad acquistare (oltre alle pubblicazioni sopracitate) anche questa nuova rivista perché a parte l’immagine dell’editoriale, che appunto… è stupenda :-) , offre veramente molti spunti interessanti per l’uso di una Linux box, con articoli divisi per argomenti e supportati da esempi esaustivi e di facile comprensione… insomma… cosa aspettate? correte a comprarla!

p.s. Visto che alla fine il post non era proprio del tutto OT ;-)

Toonik





Linux e la musica

30 11 2007

Una sera torno a casa ed appena salutate la mia “regina” e la mia “principessa” accendo lo stereo, inserisco un cd musicale, ed improvvisamente si diffonde nell’aria un piacevole sound pop-rock – subito mia figlia apre le danze e mia moglie per non esser da meno… inizia a ballare pure lei – a quel punto non potevo tirarmi indietro e quindi, via alle danze… sembravamo una famiglia di matti ;-) . Dopo un pò di “casciara” l’appetito inizia a farsi sentire e ci mettiamo a tavola.

Mia moglie mi dice: proprio bello questo disco, non l’ho mai sentito prima, è nuovo? chi è che canta?

Ed io: ehmm è un mio amico, o meglio è la band di un mio amico… si chiamano i First e l’album On the road, è il loro primo lavoro pubblicato sotto una licenza libera chiamata “Creative Commons” che consente a chiunque di scaricare ed ascoltare il disco, il tutto nel rispetto della legalità e totalmente gratis.

A questo punto mia moglie incredula dice: “non è possibile che un disco così bello sia gratis”

Ed io ancora: “si che è possibile, non tutti mettono il denaro ed il profitto al primo posto nella vita… per fortuna”

Poi lei si sofferma a riflettere, mi guarda e dice: “si in effetti anche Linux è gratis, ed è meglio di …”

Io: appunto!

Insomma per farla breve questi ragazzi hanno donato il loro lavoro alla collettività ed io per ringraziarli di questo ho deciso di realizzare il sito istituzionale della band “a gratis” ( già fatto! ) , ma soprattutto ho promesso loro che li avrei aiutati nell’impresa di pubblicare il disco su Jamendo che è il più importante engine di musica libera che esista al mondo. Ed è qui che iniziano i grattacapi, in quanto le cose da fare sono diverse e non sempre si sa come farle… da qui l’idea di rendere pubbliche le informazioni necessarie a quanti vogliano seguire l’esempio dei First – e spero siano in tanti -

Come da (mia) consuetudine il lavoro è stato svolto con una distribuzione Debian-based, ma in questo caso, vedrete che è assolutamente indifferente.

Bene, prima di iniziare è necessario aver bene in mente cosa si vuol pubblicare, quindi dovreste già aver deciso la lista dei vostri brani, e tanto che ci siete cercate di decidere per tempo anche il tipo di licenza con cui registrare le vostre opere. Infatti dovete sapere che la licenza Cretive Commons è un copyright flessibile, quindi potete decidere liberamente quali diritti concedere ai vostri utenti e quali no. A questo scopo vi segnalo i seguenti link:

Cretive Commons
Cretive Commons Italia
Scegli la licenza

Una volta deciso il tipo di licenza, provvedete alla registrazione (ovviamente gratuita) su Jamendo

A questo punto siete pronti per il vostro primo upload, ma prima una premessa: su Jamendo è possibile trasferire i brani 1 alla volta, oppure un intero cd musicale in un sol colpo; detto questo io consiglio il sistema più complicato (ma và), cioè quello dell’invio dei file 1 ad 1. Questo perché vi consente libertà di azione, come per esempio la possibilità di verificare la correttezza dei metadati contenuti nel brano ed eventualmente di modificarli. A tale scopo potreste utilizzare Easytag che è installabile con un semplice:

# apt-get install easytag [invio]

Con Easytag potete aggiungere o modificare diversi tag, tra cui:
1)Titolo
2)Artista
3)Album
4)Anno
5)Traccia
6)Genere
7)Compositore
8)Diritti d’autore
9)certificato

Bene, una volta inseriti tutti i metadati correttamente, passiamo alla conversione dei brani in un formato adatto allo scopo; a questo proposito è bene ricordare che su Jamendo è possibile uploadare (questa la aggiungiamo allo Zingarelli) file audio nei seguenti formati:WAV, AIFF o FLAC – io ho usato FLAC, ed anche in questo caso, per raggiungere lo scopo possiamo fare affidamento su un programma dal facile utilizzo tipo soundconverter e per installarlo un altrettanto semplice:

# apt-get install soundconverter [invio]

N.B. fare attenzione al fatto che la conversione non abbia alterato i tag della traccia, nel qual caso effettuate le operazioni in ordine inverso.

Ok ci siamo quasi… è tutto pronto, manca solamente il programma adatto ad uploadare (a ridaglie) i brani su Jamendo, il quale a dire il vero consente anche upload da interfaccia web, ma onestamente dopo alcuni tentativi miseramente falliti ho optato per l’utilizzo del (consigliato) Iamloader e… boom, al primo tentativo obiettivo raggiunto! Quindi installiamolo:

Jamloader non necessita di una vera e propria installazione, in quanto trattandosi di uno script Python, è sufficiente lanciarlo da un terminale… l’unico problema potrebbe sorgere da qualche dipendenza mancante, ma questo lo vedremo dopo, per ora procediamo al download dell’archivio, ed alla sua decompressione con:

$ tar xzvf jamloader-3.0.3.tar.gz [invio]

poi entriamo nella cartella appena ottenuta dalla decompressione

$ cd jamloader-3.0.3 [invio]

ed infine lanciamo il programma con:

$ python jamloader3.py [invio]

se state usando una Ubuntu 7.10, ed invece di avviarsi l’interfaccia grafica di Jamloader, vi compare un messaggio di errore tipo questo:

[error] 2: You need PyQt4 to run jamloader! (No module named PyQt4)

non vi impressionate perché è semplicemente la dipendenza non soddisfatta a cui mi riferivo prima, e si risolve con:

# apt-get install pyqt4-dev-tools [invio]

Adesso lanciando da un terminale:

$ python jamloader3.py [invio],

otterrete una bella finestra di login come questa

Adesso caricare i vostri brani su Jamendo sarà veramente un gioco da ragazzi, ed alla fine sarete fieri di aver contribuito anche voi alla diffusione della musica su questo pianeta :-)

Toonik





Calendario dalla Shell

25 09 2007

Questa estate ho passato un periodo lavorativo molto intenso ed improvvisamente mi sono accorto di essere in ritardo per le vacanze, ma non tutto era perduto, già… non è mai troppo tardi, soprattutto se hai una moglie ed una figlia che desiderano spiaggia, sole e mare anche più di te, quindi ecco che alla fine siamo riusciti anche noi a goderci il mare del Gargano, dove tra l’altro abbiamo scattato delle foto degne di un wallpaper Linux. Cosa c’entra tutto ciò con l’informatica? direi poco o nulla… se non fosse per il fatto che appena tornati a casa abbiamo iniziato a pensare alle vacanze passate, ed anche a quelle future, cercando di correre con il pensiero avanti e indietro nel tempo in un turbine di ricordi ed aspirazioni… ed è qui che entra in gioco: cal, un simpatico comando della Shell pronto ad accompagnarci nelle nostre scorribande temporali.

Grazie a cal è possibile visualizzare giorni, settimane, mesi ed anni, potendo così vedere in che giorno capiterà il tuo compleanno nell’ anno 2097 ehm… ho esagerato?

Si, forse è meglio passare a descrivere la semplice sintassi di questo utile comando, bene partiamo:

senza opzioni visualizza il giorno ed il mese corrente

$ cal [invio]

nell’esempio seguente, il primo numero è il mese mentre il secondo rappresenta l’anno

$ cal 1 2008 [invio]

con questo comando otteniamo lo stesso risultato del precedente, ma bisogna tener presente che cal è sensibile alla localizzazione, quindi i nomi dei mesi e dei giorni saranno visualizzati nella lingua di sistema predefinita… per vedere la lingua impostata è sufficiente digitare: $ echo $LANG [invio]

$ cal gen 2008 [invio]

il prossimo comando visualizza un trimestre (mese precedente, corrente e successivo)

$ cal -3 [invio]

con l’opzione -y si ottiene l’intero anno corrente

$ cal -y [invio]

mentre indicando 1918, si stampa a video il calendario dell’anno 1918

$ cal -y 1918 [invio]

la riga di comando seguente mostra la data giuliana… in pratica numera i giorni partendo da: 1 il primo giorno dell’anno e via a salire… molto utile durante il periodo militare ;-)

$ cal -j [invio]

In Linux, esistono diversi programmi per la gestione dei calendari, e tra i più interessanti troviamo ccal, gcal, ncal e pcal, ma mentre cal è presente di default in tutte le distribuzioni, per gli altri il discorso potrebbe essere diverso, quindi se usiamo una Debian o derivate dovremo eseguire il solito:

$ sudo apt-get install ccal gcal ncal pcal [invio]

a questo punto non ci resta che provare anche i nuovi compagni di viaggio:

il comando seguente visualizza il calendario a colori

$ ccal [invio]

la prossima la dovete indovinare voi guardando l’output

$ ncal -e [invio]

per finire pcal che permette di realizzare delle cose stupende in un attimo

$ pcal > calendario.ps [invio]

Ovviamente questo è solo un piccolo stimolo a sperimentare le potenzialità di questi comandi, quindi armiamoci di curiosità,  digitiamo un bel:

$ man cal [invio]

e via a dominare il tempo… o quasi.

Toonik





Enlightenment E17 Desktop

10 06 2007

Certo che di acqua sotto i ponti ne è passata da quando Enlightenment era il window manager di Gnome, tanto che oggi sarebbe riduttivo definirlo tale e il termine più appropriato per riferirsi ad E17 è “Desktop Shell”.

In sintesi, E17 è un ambiente grafico talmente curato nell’aspetto, da essere considerato – a ragione – una forma d’arte (non a caso è facile imbattersi in opere realizzate da sviluppatori di E17 su Deviantart).

Come ovvio, in questi casi la cosa migliore per capire di cosa stiamo parlando, è quella di installare tutto il necessario e vedere di persona quanto sia curato ed attraente un desktop E17. Oggigiorno non è più un problema installare E17 in Linux ed ora vedremo come farlo con Debian.

Per raggiungere il nostro scopo, dobbiamo per prima cosa aggiungere i repository di E17 nel file /etc/apt/sources.list in questo modo…

diventiamo root con:

$ su [invio]

password: [invio]

poi apriamo il file dei repository:

# gedit /etc/apt/sources.list [invio]

ora aggiungiamo la seguente riga:

deb http://debian.alphagemini.org/ unstable main

deb http://debian.alphagemini.org/debian/ unstable main

deb http://edevelop.org/debian unstable main

deb http://edevelop.org/pkg-e/ubuntu edgy e17

salviamo e chiudiamo.

Adesso preleviamo la chiave necessaria ad autenticare il repository appena aggiunto:

$ wget http://xsm.alphagemini.org/files/archive_key.asc [invio]

$ wget http://www.alphagemini.org/files/archive_key.asc [invio]

$ wget http://lut1n.ifrance.com/repo_key.asc [invio]

e procediamo con la sua acquisizione:

# apt-key add archive_key.asc [invio]

# apt-key add repo_key.asc [invio]

Bene ora siamo pronti, quindi aggiorniamo la lista dei pacchetti disponibili con:

# apt-get update [invio]

ed infine procediamo con l’installazione vera e propria:

# apt-get install e17 e17-extras [invio]

Finito, al prossimo riavvio potrete selezionare dal login manager il fantastico E17… sarà un vero piacere per gli occhi !

Per i soliti impazienti è possibile vedere qui una delle mie schermate.

Toonik








Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.