sabato 27 febbraio 2010

Pitivi vs OpenShot.

Pitivi, editor video non lineare, prende il posto di Gimp, nell'installazione di Ubuntu.
Questa notizia ha dato vita a diversi flame su vari forum, in cui le discussioni erano incentrate sulla scelta di togliere un mostro sacro (GIMP) al posto di un'editor video non all'altezza.
Lo scenario degli editor video su Linux, e' in continua evoluzione, senza pero' (purtroppo) arrivare a livelli soddisfacenti.
In particolare in ambiente Gnome, si distinguono due programmi:
Pitivi, editor di vecchia data, dallo sviluppo altalenante, riscritto e arrivato ora in versione usabile;
OpenShot, editor giovane e dallo sviluppo veloce e costante (almeno sino ad ora).
In particolare quest'ultimo ha ricevuto sempre piu' credito, dal fatto che e' gia' in grado (al contrario di Pitivi), di gestire le transizioni e gli effetti.
Li ho provati entrambi e devo dire che il vincitore e'..........Pitivi.

Pitivi e' in grado di gestire qualsiasi formato visualizzabile con Totem (dato che si appoggia a Gstreamer), e' stabile, e ha una gestione modulare dei plugin (anche se ancora non ne esistono).
E' in grado di visualizzare le waveform, (eventualmente escludibili) e gestisce i keyframe (per ora soltanto per la parte audio).
Al momento sono supportate solo semplici operazioni di editing come il trimming e la gestione delle clip (move, ripple, shift).
Non sono supportate le transizioni e gli effetti, che saranno disponibili solo a partire dalla prossima versione.
Nel menu' Progetto e' presente la voce Cattura screencast, che pero' non ho potuto provare perche' a quanto pare deve essere installato anche Istanbul (programma di recording desktop).
Tutto sommato sono rimasto favorevolmente impressionato, e compilando la versione in sviluppo ci sono gia' diverse novita'.

La versione presente nei repository ufficiali e' la 0.13.3 e la si puo' installare da Synaptic o da terminale:
sudo apt-get install pitivi



http://www.pitivi.org/

giovedì 25 febbraio 2010

Decibel, audio player.

Decibel, e' un player audio minimale, perfettamente integrato con l'ambiente Gnome. Il pregio di tale player e' di ottimizzare poche ma basilari funzioni senza appesantire l'intero sistema.
La finestra principale si divide in due aree: a sinistra il file system da cui scegliere le tracce audio (eventualmente escudibile), a destra la playlist che supporta anche il drag&drop.



Nel menu edit->preferences sono presenti diversi plug-in che possono essere attivati o disattivati:
  • la gestione e il download delle cover
  • la visualizzazione al cambio di traccia attraverso le notifiche desktop
  • l'aggiunta del programma nella tray-icon
  • la gestione dei CD
  • La gestione di una library.
http://decibel.silent-blade.org

lunedì 22 febbraio 2010

Creare pacchetti .deb da sorgente

Creare un pacchetto .deb dai sorgenti, e' un'operazione d'obbligo se vogliamo avere un'installazione tracciabile dei nostri programmi.
Problema: Seguiamo un progetto e suoi sviluppi, e dobbiamo compilare i sorgenti per ottenere gli eseguibili. In questo caso compilando i sorgenti non possiamo tenere d'occhio tutti i file installati nel sistema dal file di configurazione in fase di compilazione. E siamo costretti a tenere la directory di compilazione per un'eventuale disinstallazione.
La soluzione e' la creazione di un pacchetto. Ogni distribuzione ha un suo formato di cui i piu' diffusi sono sicuramente i .deb (Debian e derivati, quindi anche Ubuntu), e .rpm (OpenSuse e derivate). Per una conversione tra i due formati si puo' utilizzare alien, di cui abbiamo gia' parlato, ma qui discuteremo la creazione ex-novo di un pacchetto avendo solamente i sorgenti. Lo so, in giro per la rete si trovano migliaia di guide su come creare pacchetti, ma qui voglio approfondire l'argomento, dato che l'operazione di impacchettamento non e' univoca, e ci possono essere svariati problemi, dipendenti dal linguaggio utilizzato, e dal toolkit di compilazione.
Per aver un maggior controllo sulla creazione del pacchetto, vediamo innanzittutto la sua struttura.
All'interno di un file .deb, sono contenuti un file "debian-binary" (che specifica la versione del formato Deb), e due tarball:
control.tar.gz
data.tar.gz
L'archivio control.tar.gz contiene informazioni riguardanti il pacchetto, le sue dipendenze e gli script che vengono lanciati per l'installazione o la rimozione. In particolare il file "control" contiene informazioni come il nome del pacchetto, la sua versione, la priorita', l'architettura, le dipendenze, ecc.

L'archivio data.tar.gz, contiene tutti i file che effettivamente verranno installati nel sistema. Quindi, per prima cosa, si devono compilare i sorgenti e nel caso in cui il programma sia scritto in Python, si puo' procedere subito alla creazione del pacchetto.
A questo punto possiamo utilizzare due strade.

  • La prima e' creare la struttura richiesta da un file .deb, manualmente, creando il file control e le directory necessarie:
dirPacchetto/DEBIAN/control
La directory DEBIAN, va creata all'interno del directory dirPacchetto, al cui interno verra' creato il file "control", editato seguendo le specifiche spiegate sopra.

dirPacchetto/usr/bin
All'interno di questa directory, ci deve trovare posto l'eseguibile principale, contenente la classe main.py
dirPacchetto/usr/share
All'interno vi possono essere create 3 directory opzionali: "application", "doc", "nomeProgramma"
Se presenti, in "doc", ovviamente ci saranno tutti i file di documentazione, nonche' le licenze d'uso e d'installazione.
In "Application", ci sara' il file nomeProgramma.desktop che specifica dove mettere il collegamento al programma nel menu di sistema.
E la directory "nomeProgramma", conterra' ovviamente tutti i file componenti il programma, in questo caso, si deve modificare la directory dirPacchetto/usr/bin, inserendo un file testo "nomeProgramma", contenente 3 righe, e che va reso eseguibile:
#!/bin/bash
cd /usr/share/nomeProgramma #prova è il nome del programma
env python Main.py #Main.py è la classe main del programma nomeProgramma.

  • La seconda opzione per creare la struttura necessaria alla creazione del pacchetto, e' utilizzare un comando (dh_make), che creera' per noi tutto quello che e' necessario, e che si potra' poi modificare in base alle nostre esigenze.
Innanzitutto ci servono dei tool di sviluppo, che installeremo con il seguente comando:

sudo apt-get install dpkg-dev dh-make

Creiamo una directory con il nome del programma seguito dal numero di versione (per fare un'esempio, "mypaint-0.80") e vi copiamo all'interno il file tar.gz contenente i sorgenti. Scompattiamo il file tar.gz all'interno della directory creata.
A questo punto tramite il comando "cd", ci portiamo all'interno della directory e diamo un comando del tipo:

dh_make -e lomdav@tin.it -c GPL -f NomeDelFile.tar.gz

Le opzioni che abbiamo usato del comando dh_make sono:
-e specifica l'indirizzo email del maintainer (colui che ha creato il pacchetto)
-c specifica la licenza di distribuzione (in questo caso la licenza GPL, e' pienamente libera, e intende la ridistribuzione dei sorgenti per future modifiche).
-f specifica la tarball contente i sorgenti.

Il comando dh_make ci chiedera' il tipo di pacchetto se non specificato tramite opzioni sulla riga di comando (per esempio -s per binario singolo), che puo' essere di diversi tipi:
singolo, multiplo, libreria, modulo kernel o cdbs.
Il caso piu' comune e' che il programma sia un singolo binario.
Per creare il pacchetto si utilizzera' il comando:
dpkg-deb -b directoryProgramma nomeProgramma_versione_architettura.deb
Il formato del nome del pacchetto include oltre al numero di versione, anche l'architettura del sistema per cui e' stato compilato il sorgente, tipo i386, i686, amd64, oppure all (se e' indipendente dal processore utilizzato).

Nota bene: come mi ha fatto notare Sandro, se si vuole appronfondire l'argomento e' bene che si legga il Debian Policy Manual, disponibile anche in Italiano.

sabato 20 febbraio 2010

Blender Game Engine 2.50: 03 - sensori, controller, attuatori.

L'editing dei Logic Bricks, si riduce alla monipolazione di questi 3 gruppi di stati-pulsanti.

In ogni gruppo si deve specificare l'oggetto sul quale si vuole agiscano i Logic Bricks. L'oggetto puo' essere qualsiasi cosa presente nella scena, quindi anche l'oggetto Camera o l'oggeto Light.

Una volta premuto il tasto "Add", si puo' scegliere da un menu a discesa, il tipo di sensore da utilizzare. Il caso piu' classico e' il sensore "Keyboard", che aspetta un input da tastiera, per poter muovere l'oggetto specificato.
In questo caso si dovra' indicare il tasto da impostare come sensore.
Analizzeremo gli altri sensori piu' avanti.








I controller, possono essere immaginate come dei filtri, in realta' non sono altro che operatori logici.
Di default, e' impostato su "And".
"And" e' un operatore logico che ritorna in uscita un risultato positivo solo se in entrata si ha un valore positivo.





In altre parole, se il sensore da' una risposta positiva (in questo caso se il tasto specificato e' stato premuto), allora l'attuatore puo' essere eseguito.

L'attuatore, e' l'esecutore di un'azione. Di default e' impostato su "Motion". Quindi modificando il valori delle 3 caselle numeriche "Loc", si specifica un'incremento direzionale sui tre assi cartesiani, mentre modificando i valori delle caselle "Rot", si specifica un'incremento rotazionale intorno ai tre assi.
Per esempio, se mettiamo nella prima casella "Loc", il valore 0.20, lasciando il resto a 0.00, quello che otteniamo e' lo spostamento dell'oggetto specificato, di 0.20 unita' sull'asse X, quandoo premiamo il tasto specificato nel sensore.







Blender Game Engine - 01: Le Basi.
BGE 2.50: 02 - I Logic Bricks 

mercoledì 17 febbraio 2010

NDs ROM manager su linux.

Il panorama di gestori di liste ROM (in particolare quelle del NintendoDS), su Linux e' desolato.
Certo si possono utilizzare prodotti sviluppati per Window (ovviamente in accoppiata con Wine), quali:
OfflineList
Rominator

In particolare quest'ultimo, inizialmente veniva sviluppato anche in versione Linux, con (peccato) licenza freeware, quindi niente sorgenti. Poi l'autore ha deciso di continuare lo sviluppo solo per Win-Mac. Tuttavia, la versione Linux e' ancora rintracciabile al seguente indirizzo:
http://filetrip.net/f1112-Rominator-v5-3-2-%28Linux%29.html
Sul mio sistema Karmico, non sono riuscito ancora a farlo partire, comunque...

E cosi' sembra che l'unico progetto (smentitemi se ne siete a conoscenza), nativo su Linux e' Gromlist.
Sviluppato in Python, e' arrivato alla versione 0.36, di cui e' disponibile anche il file .deb, e poi si arenato nel lontano Agosto del 2007.
Gromlist, ha solo le funzioni minimali; comunque, e' in grado di visualizzare (per ogni ROM), copertine, screenshot, e informazioni varie, scaricandole autonomamente da internet. Dato che il sorgente e' scritto in modo abbastanza chiaro, quotato e molto leggibile, si puo' pensare di portare avanti il progetto. Io ci sto dando un'occhiata........vi faro' sapere!

Aggiornamento:
DsRomManager è una versione in continuo aggiornamento, ha un PPA dedicato e molte funzioni in più rispetto a Gromlist, che purtroppo non è più supportato.

lunedì 15 febbraio 2010

Tutto sulle anteprime dei file (thumbnails)

Le anteprime dei file vengono generate da Nautilus, ogniqualvolta entriamo in un cartella, e ci sono dei file con un'estensione supportata dal generatore di anteprime.
Nelle preferenze di Nautilus, si trovano le impostazioni per creare le anteprime sempre, solo localmente, o non crearle affatto.
Esistono poi dei thumbnailer di terze parti, tipo cover-thumbnailer e imdb-thumbnailer, che estendono le potenzialita' offerte di default con un sistema di ricerca delle immagini da internet.
Le thumbnails vengono salvate nella directory nascosta nella propria home:

~/.thumbnails

al cui interno si trovano due o tre directory:


~/.thumbnails/fail
~/.thumbnails/normal
~/.thumbnails/large


La directory normal e' quella dove vengono salvate normalmente le thumbnails.
Queste sono in formato .png e la loro dimensione e' di 128x128 pixel.

Nella directory large vengono salvate le thumbnails di 256x256 pixel, mentre nella fail vengono salvate quelle thumbnails che per qualche motivo non possono essere state generate.

La dimensione della directory ~/.thumbnails e' destinata a crescere costantemente, dato che per ogni nuovo file incontrato, Nautilus creera' una nuova anteprima. Per questo, se si dispone di hard-disk poco capienti, e' bene tenerla sotto controllo, magari cancellandola (Nautilus la ricreera' automaticamente).
Per limitare le dimensioni di tale cartella, tramite gconf-editor si puo' trovare la chiave: desktop -> gnome -> thumbnail_cache e modificare il parametro maximum_size che di default e' settato a 512 MB.

I nomi dei file di queste thumbnails sono delle stringhe alfanumeriche di 32 caratteri ottenute tramite cifratura a 128bit data da un hash MD5 sulla URI del file di origine.

Locandine dei film e copertine dei cd come anteprima dei file.

domenica 14 febbraio 2010

byzanz, desktop recorder.

Byzanz e' un programma che permette di registrare la totalita' dello schermo del proprio computer oppure una porzione o una finestra. Si differenzia da altri programmi del genere perche' in output si otterra' un file in formato gif (una gif animata), quadagnando in leggerezza.
Il file.gif generato non sara' visibile dal visualizzatore di default (EOG), perche' rendera' visibile solo il primo frame; Per vedere il video, si dovra' aprirlo utilizzando il browser.

Si puo' utilizzare da shell, ho sottoforma di applet nella barra di gnome; in quest'ultimo caso basta premere sull'icona di Byzanz (che si trasformera' in un cerchio rosso), per iniziare la registrazione di tutto quello che accadra' sullo schermo. Ad una seconda pressione dell'icona si aprira' una finestra di selezione dove andra' indicato il nome del file che verra' salvato.
La freccetta di fianco all'icona nella barra di gnome permette di selezionare le tre modalita' di registrazione (schermo intero, singola finestra o porzione di schermo).

Byzanz funziona perfettamente, ma ho incotrato problemi di refresh cercando di registrare l'output di blender2.5 (ma questo e' forse piu' imputabile a blender stesso che ancora non e' in versione stabile).

Quale puo' essere il vantaggio di avere un animGif come output? Bhe! le animGif vengono riconosciute in modo nativo da qualsiasi browser, quindi inserendole come semplici immagini si potra' vedere l'animazione cliccandoci sopra, senza dover per forza uploadare file .avi (o altri formati) su servizi di hosting vari.

E' presente nei repo ufficciali, quindi per installarlo, o da Synaptic o da terminale:

sudo apt-get install byzanz

Ecco un esempio:

Cliccando sull'immagine a fianco (un'animGif), si aprira' la pagina con la gif a schermo intero, in cui e' contenuto un semplice screencast, dell'help da terminal di Byzanz. Di default Byzanz ha l'opzione loop attivata, quindi finito lo screenscat, questo ricomincera'.

Nota: se si vogliono produrre screencast con questo metodo si devono utilizzare alcuni accorgimenti, dato che il preview sembra una semplice immagine; quindi o si specifica nel testo del blog, che l'immagine e' in realta' un'animGif dove si deve cliccare per vedere, oppure si crea un'immagine ad hoc, da inserire come primo frame, con il simbolo di riproduzione (come avviene per i video di megavideo e similari).

Blender Game Engine 2.50: 02 - Logic Bricks

Il fulcro dello sviluppo in BGE (Blender Game Engine) sono i "Logic Bricks" (Mattoncini logici). L'obbiettivo dei Logic Bricks e' offrire all'utente un modo semplice e visuale per progettare applicazioni interattive senza aver conoscenza di linguaggi di programmazione. Ci sono tre tipi differenti di Logic Bricks:
  • I Sensori
  • I Controller
  • Gli attuatori
Prima di vedere nel dettaglio le caratteristiche e le potenzialita' di ogni mattoncino, vediamo un esempio pratico, che permettera' di interagire con l'uso della tastiera sulla scena 3D.




Nello screen cast qui sopra, abbiamo utilizzato uno sensore "Keyboard", a cui abbiamo assegnato il tasto "D", e lo abbiamo collegato ad un controller "and" (di default), collegato a sua volta ad un attuatore "motion" con un incremento di 0.2 unita' sull'asse X. In pratica l'attuatore determina l'azione da eseguire se viene soddisfatta la richiesta del sensore (in questo caso il tasto "D").
Ovviamente per poter provare questo semplice script BGE, si deve cliccare la zona centrale (la scena 3D), e premere il tasto "P" per far partire il Game Engine; a questo punto se premiamo il tasto "D", vedremmo il nostro cubo muoversi sull'asse X.

Blender Game Engine - 01: Le Basi.
BGE 2.50: 02 - I Logic Bricks 

venerdì 12 febbraio 2010

CD virtuali: ISO, BIN, IMG, NRG tutte le soluzioni.

Un'immagine di un cd/dvd, e' un file contenente l'intero contenuto del supporto, generato da un programma di masterizzazione. I principali formati sono .iso, .nrg., .bin
Queste immagini possono essere viste dal sistema come dei lettori cd/dvd virtuali, montando semplicemente l'immagine con le specifiche del filesytem ISO 9660 o convertendo l'immagine in formato .iso, nella pratica e' come se aprissimo un'archivio .zip o .rar; si puo' accedere all'immagine direttamente da terminale o servendosi di programmi dotati di interfaccia grafica. Vediamo prima come fare da terminale:

.ISO mount -t iso9660 -o loop file.iso mountpoint
.NRG mount -t iso9660 -o loop,offset=307200 file.nrg mountpoint

BIN/CUE
Nel caso di immagini bin/cue, le si devono prima convertire in immagini .iso, utilizzando il programma bchunk:
sudo apt-get install bchunk per installare il tool di conversione
bchunk file.bin file.cue file.iso per convertire il file.bin in file.iso

MDF, MDS:
sudo apt-get install mdf2iso
mdf2iso file.mdf file.iso

IMG:
sudo apt-get install ccd2iso
ccd2iso file.img file.iso

Per quanto riguarda le interfacce grafiche:
gmountiso
furiusisomount
fuseiso
AcetoneISO
cdemu https://launchpad.net/~cdemu/+archive/ppa

giovedì 11 febbraio 2010

Locandine dei film e copertine dei cd come anteprima dei file.

imdb-thumbnailer e' un generatore di anteprime di file video (video-thumbnailer), che cerca la locandine del film dal database imdb, in base al nome del file; se non viene trovato alcun riscrontro, verra' utilizzata l'anteprima convenzionale.

Richiede l'installazione delle gtk+2.10 e imagemagick, quindi:

sudo apt-get install imagemagick

La versione attuale e' la 0.7.5, disponibile per il download al seguente indirizzo:
imbd-thumbnailer 0.7.5.deb

Una volta installato, lo si deve configurare. Innanzitutto si deve scegliere il filemanager nautilus o thunar (xfce).

imdb-thumbnailer --nautilus
poi si deve editare il file:

~/.imdb-thumbnailer/config
in cui vanno specificati i percorsi dove trovare i video.
Per esempio:
films_path[1]='home/user/Films' films_path[2]='home/user/Trailers'
...etc.etc.


cover-thumbnailer e' un generatore di anteprime di file musicali, in grado di cercare la copertina del cd, e sostituirla all'immagine di default della cartella contenente i file musicali.

Una volta installato, si deve riavviare la sessione corrente, per poter utilizzare le nuove funzionalita'.



sabato 6 febbraio 2010

Estrarre pagine da un documento PDF

Se si vogliono estrarre solo determinate pagine da un documento PDF, ci sono varie possibilita':

- utilizzare pdfshuffler; un programma scritto in python, che permette di estrarre, unire, ruotare e riorganizzare, le pagine di un documento PDF. Presenta un buon potenziale, ma ancora e' un po acerbo.
- Utilizzare il toolkit pdftk; Un tool da riga di comando, molto versatile, ma che ci costringe comunque ad utilizzare un pdf-viewer (EVince), per vedere quali pagine siano da estrarre.
- Esistono anche altri programmi piu' o meno completi, ma la soluzione piu' semplice e' a portata di mano, potendo utilizzare la stampante virtuale.

Aprendo il documento PDF, con EVince, non si hanno strumenti di selezione ed editing delle pagine, pero' premendo Ctrl+P (File->print), selezionare "Print to File".
Output format: PDF
A questo per "stampare" un certo intervallo di pagine, selzionare "Pages" e inserire gli estremi dell'intervallo separati dal segno meno.
Nell'esempio (45-47), verra' creato un file PDF, di tre pagine (45,46,47).



Se si volesse ottenere lo stesso risultato utilizzando pdftk, si dovrebbe utilizzare un comando del tipo: pdftk file.pdf cat 45-47 output output.pdf

Se si vogliono convertire, invece, una o più pagine in immagini, oppure convertire un file PDF in formato CBR o CBZ, ti potrebbe interessare:
Convertire un file PDF in immagini (CBR, CBZ)
 

martedì 2 febbraio 2010

Florence 0.46

Nuova versione per Florence.
In questa versione (0.46):

- e' stato corretto il bug del mancato refresh della finestra utilizzando il tasto zoom.
- l'icona e' stata modificata, ed ora perlomeno e' presentabile.
- nuova feature: latch to lock. Premendo un tasto modificatore (colore verde) questo si deseleziona premendo un'altro tasto (come per il tasto shift), premendolo una seconda volta (colore rosso) si potranno ottenere delle combinazioni di tasti (come per il tasto caps lock).
- E' stata rimossa una dipendenza.

Valgono le stesse regole di compilazione della versione precedente.

Florence 0.46
Florence 0.51

Convertire pagine web in PDF

Se si vuole convertire una pagina web, in un documento PDF consultabile offline, ci sono diversi servizi online:

html2pdf.co.uk e' solo uno tra i tanti servizi online che permette la conversione di intere pagine web o di porzioni di codici.

Ma il metodo piu' semplice (su Ubuntu), e' sicuramente l'utilizzo della stampante virtuale, direttamente da Firefox:

File->stampa.
Print to file
Output format: PDF

Oppure con Chrome:
Print
Destination->print to PDF
Related Posts Plugin for WordPress, Blogger...