July 28, 2009

Usare i file compressi senza decomprimerli

Ci sono diverse ragioni per voler usare i file compressi senza decomprimerli (poco spazio su disco, etc).

Per esempio se si vuole riprodurre un video in diretta:

Per file rar

unrar -inul p video.rar | mplayer -

Per file zip

unzip -p video.zip | mplayer -

Per file 7z (funziona anche con i file rar e zip se si ha il pacchetto p7zip-full)

7z e -so video.7z | mplayer -

July 24, 2009

Esecuzione automatica in base alla rete

Dato che io uso lo stesso portatile a casa e a lavoro, mi fa comodo avviare programmi (sotto X) in base a dove mi trovo.

Per fare questo ho fatto un semplice script di shell da mettere in esecuzione automatica del proprio desktop manager (nel caso di KDE basta copiarlo in ~/.kde/Autostart e dargli i permessi di esecuzione):

#!/bin/sh

test_peer() {
  [ $(arping -w 1 -f "$1" 2>/dev/null | sed -n 's/.*\[\([[:xdigit:]:]*\)\].*/\1/p') = "$2" ]
}

if test_peer "10.0.0.1" "00:11:22:33:44:55"; then
  kontact &
  kopete &
fi

Lo script necessita di arping presente in iputils (sotto debian/ubuntu si trova nel pacchetto iputils-arping).

Al posto di 10.0.0.1 va messo un ip di cui si è certi che sarà sempre presente e uguale (il gateway?).
Al posto di 00:11:22:33:44:55 il suo mac address (basta lanciare arping IP per trovarlo).
Al posto di kontact e kopete mettete la lista degli applicativi che si vuole lanciare (terminanti da & se non vanno in background da soli).

Se si hanno più reti, basta mettere più blocchi if, ognuno con la propria coppia IP/MAC e con la lista di applicativi da lanciare.

July 22, 2009

Gestire directory musicali come fa iTunes in linux

Avete mai avuto voglia di organizzare le miriadi di MP3 (o un altro formato audio compatibile) che sono sparsi per tutto il computer?

Sotto Windows/OSX iTunes lo permette agilmente, ma sotto linux?

In vostro aiuto arriva EasyTAG. EasyTAG è un programma per gestire i TAG dei file musicali ( principalmente i tag ID3 degli MP3) e permette anche di rinominare un file mediante questi tag.

Quest’ultima feature è quella che interessa a noi, con qualche accorgimento si può dire di rinominare (spostare) tutti file musicale in una sottodirectory seguendo un albero specifico (ad esempio ~/Musica/Artista/Album/…).

Basta aprire easytag, entrare in una directory, selezionare i file che si vogliono catalogare (tutti? ctrl+a),
premere l’icona Processa i file (a sinistra dell’icona che sembra una scopettone),
selezionare Rinomina File e Cartella e scrivere nell’area di testo ad esempio:

~/Musica/%a/%b/%n %t

In questo modo lui sposta i file nella directory ~/Musica/Artista/Album rinominandoli in NumeroTraccia Titolo (ad esempio 01 La terra dei cachi)

July 21, 2009

Launchpad è finalmente opensource

Launchpad, la nota applicazione web per sviluppatori è finalmente open source.

È stata rilasciata sotto licenza AGPLv3.

Per ulteriori informazioni vi rimando al sito ufficiale (in inglese).

Sapere se un binario è strippato (in linux)

Ci sono (almeno) due modi per sapere se un binario è strippato (senza simboli di debug) oppure no.

Il migliore, a mio avviso, è mediante l’utilizzo di scanelf:

Per verificare uno o più file:

drizzt@janeway ~ % scanelf --quiet --symlink --section ".symtab" --format "#k%F" /lib/*
/lib/libpthread-2.9.so

Oppure in maniera ricorsiva:

drizzt@janeway ~ % scanelf --quiet --symlink --recursive --section ".symtab" --format "#k%F" /lib
/lib/libpthread-2.9.so
...

Vedere quali file non sono strippati (l’opposto di prima):

drizzt@janeway ~ % scanelf --quiet --symlink --section "\!.symtab" --format "#k%F" /lib/*
/lib/libthread_db-1.0.so
...

L’unica pecca di questo modo è che bisogna installare pax-utils, disponibile in ogni distribuzione mediante il proprio package manager.

July 20, 2009

Chromium: aggiunto supporto plugins

Nella versione odierna di chromium è stato aggiunto il supporto ai plugin (chi ha detto flash?).

Se usate una ubuntu a 32 bit dovrebbe vedere in automatico il plugin (segui guida di taison).
Se usate una ubuntu a 64 bit dovete installare prima flash a 32 bit:

drizzt@janeway:~$ wget http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.tar.gz
drizzt@janeway:~$ tar xzf install_flash_player_10_linux.tar.gz
drizzt@janeway:~$ sudo cp install_flash_player_10_linux/libflashplayer.so /usr/lib/chromium-browser/plugins/
drizzt@janeway:~$ rm -rf install_flash_player_10_linux/

Per avere chromium dovete usare il ppa appropriato (come spiegato da pollycoke).

Mi aspetto grandi cose da chromium, non per niente su Windows, Chrome, ha rimpiazzato firefox appena uscito.

Demonizzare l’alcool è sbagliato

Non è possibile che ultimamente il male più grosso per la società sia l’alcool? Che i politici non abbiano altro a cui pensare? Non hanno ancora capito che la repressione è sbagliata? O bisogna ricordagli l’america degli anni 20 (il proibizionismo)?

Perché il moige piuttosto che lamentarsi sempre per robe inutili (tipo la pubblicità di Rocco delle patatine) non fa qualcosa di solcialmente utile (tipo insegnare a fare i genitori)?

Sono convinto che sia totalmente inutile vietare l’alcool ai minorenni, anche perché così facendo incentivi i baracchini abusivi e incentivi il consumo di alcool (lo sanno tutti che vietare le cose agli adolescenti ha esattamente l’effetto opposto e se è lo stato a vietarlo, infrangere le regole diventa ancora più eccitante).

Serve la prevenzione, ma per i nostri politici e per i nuovi genitori è un concetto sconosciuto ed astratto. Si preferisce usare il bastone della carota, ma spesso il bastone non è la soluzione migliore.

Sicuramente è la più comoda, ma non la migliore.

Voi che ne pensate?

July 18, 2009

Compilare script di shell

Avete fatto un bellissimo script di shell e volete darlo in giro, senza però distribuire i sorgenti?

Nessun problema!

Basta usare shc. shc è un compilatore di shell, che codifica (con una versione personalizzata di rc4) il codice sh creando prima un file C e poi un eseguibile.

Ma come fare?

Scaricare i sorgenti, scompattarlo e compilarlo (con make). A quel punto potete compilare i sorgenti sh con shc -r -f file.sh ottenendo file.sh.x e file.sh.c.

Il file da ridistribuire è file.sh.x, mentre file.sh.c è un file temporaneo che può bellamente essere rimosso.

July 17, 2009

Configurazione di mplayer suggerita

Se hai una scheda grafica nVidia e usi ubuntu puo usare la versione di mplayer ricompilata da me sul mio ppa che supporta VDPAU (accelerazione hardware H.264 e VC-1).

Qui trovate le mie configurazioni di mplayer:

drizzt@janeway ~ % cat ~/.mplayer/config
subfont-autoscale=1
ao=alsa
vo=vdpau
vc=ffmpeg12vdpau,ffh264vdpau,ffwmv3vdpau,ffvc1vdpau,
af=volnorm
  • subfont-autoscale=1 è utile se vedete i sottotitoli troppo piccoli
  • ao=alsa potete usare mplayer -ao help per avere la lista degli output audio supportati (usate pure esd se avete gnome)
  • vo=vdpau è necessario per avere l’accelerazione hardware (se non avete il mio mplayer oppure non avete una scheda video compatibile usate xv)
  • vc=ffmpeg12vdpau,ffh264vdpau,ffwmv3vdpau,ffvc1vdpau, è necessario per avere l’accelerazione hardware (solo se avete messo vo=vdpau) ATTENZIONE: dovete mettere la virgola in fondo

Beppe Grillo è sempre il solito buffone

Premettendo che io non leggo mai il suo blog, ma dal polverone che è uscito su tutta la blogosfera non ho potuto non leggere che si vuole candidare al PD.

Io che ho molta memoria storica ricordo che nel 2005 il buffone aveva scritto che non sarebbe mai entrato il politica.

E ora che fa? Si candida? E se viene eletto e propone la legge anti-condannati al parlamento che succede? Lui è condannato non può mica starci in parlamento.

Beppe, lo sappiamo tutti che sei un buffone. Ma almeno un po’ di coerenza nella vita ci vuole, o no?

Italia.it accessibile? Ma quando mai!

Da poco è stato riaperto italia.it, il “motore del turismo” italiano.
C’è una bellissima pagina che dice che è pure accessibile. Sarà vero?

Ovviamente no! Andando su Contattaci cosa si vede in fondo?
Un bellissimo captcha!

E qual è il problema? Il problema è che se uno è ipovedente non può utilizzare il captcha e quindi non può fruire del servizio.
La soluzione c’è ed è molto semplice, basta mettere una alternativa audio al captcha oppure usare un sistema un po’ più moderno di gestione dello spam (akismet, ajax, etc).

Secondo voi dovremmo fargli causa? :)

Nuova locazione per drizzt-exheres

Ho spostato il repository di drizzt-exheres su gitorious.

Ho scelto gitorius perché è open source e non ha la orribile politica di fork di github

July 16, 2009

Posso maneggiare file binari mediante script di shell?

L’unica shell di cui sia a conoscenza che permetta di gestire bene file binari, ovvero contenenti il carattere NULL (’\0′) è zsh.

Ecco una breve dimostrazione fra le shell più comuni (dash, busybox ash e bash):

drizzt@janeway ~ % busybox sh -c 'a=$(printf "\001\002\000\003\004") ; echo -n "$a"' | hexdump -v -e '1/1 "%.2x "'
01 02 03 04

E che fine ha fatto lo 0? Si è perso!

drizzt@janeway ~ % dash -c 'a=$(printf "\001\002\000\003\004") ; echo -n "$a"' | hexdump -v -e '1/1 "%.2x "'
01 02 03 04

Esattamente come sopra

drizzt@janeway ~ % bash -c 'a=$(printf "\001\002\000\003\004") ; echo -n "$a"' | hexdump -v -e '1/1 "%.2x "'
01 02 03 04

Pure qui :)

Invece usando zsh, tutto cambia:

drizzt@janeway ~ % zsh -c 'a=$(printf "\001\002\000\003\004") ; echo -n "$a"' | hexdump -v -e '1/1 "%.2x "'
01 02 00 03 04

Ecco il carattere ‘\0′!

Anche le operazioni a stringa si possono effettuare pure avendo il NULL, per esempio contare il numero di caratteri nella stringa:

drizzt@janeway ~ % dash -c 'a=$(printf "\001\002\000\003\004") ; echo "${#a}"'
4

Con dash, bash e busybox sh conta 4 caratteri, mentre zsh ne conta, giustamente, 5:

drizzt@janeway ~ % zsh -c 'a=$(printf "\001\002\000\003\004") ; echo "${#a}"'
5

La stessa cosa con operazioni più complesse, come il reverse della stringa:

drizzt@janeway ~ % zsh -c 'a=$(printf "\001\002\000\003\004") ; echo -n "${(j::)${(@Oa)${(s::):-$a}}}"' | hexdump -v -e '1/1 "%.2x "'
04 03 00 02 01

Aggiornamento blog completato

Ho migrato il mio blog a wordpress, dopo un consiglio spassionato di Napolux.
Ho migrato principalmente per il numero di plugin in circolazione e perché è il più noto (almeno posso fare plugin che la gente userebbe :P )

Stay sync :)

July 10, 2009

Addio Pes

Pierpaolo Pes

Stamattina intorno alle 9 un mio ex collega di Alcatel, Pierpaolo Pes, ha avuto un incidente mortale in moto.

Addio Pes, ci mancherai.