pill

Imagemagick, convertire jpg in pdf compressi

Dopo aver installato il pacchetto "imagemagick" avrete a disposizione l'utile comando "convert" che permette di convertire velocemente immagini tra formati diversi. In particolare è possibile velocemente generare un file PDF unico a partire dalle scansioni delle singole pagine.

Questo il comando e alcuni esempi:

convert [elenco immagini] [output.pdf]
convert pag_*.jpg output.pdf
convert -compress jpeg -density 100 *.jpg output.pdf

In particolare l'ultimo comando permette di generare un file PDF compresso, con notevole risparmio di spazio.

jDoubleSelect: Convertire una select box con OPTGROUP in una doppia select box

javascript

Avete una select box che usa degli OPTGROUP al suo interno (quindi delle opzioni innestate) e volete convertirla, in maniera trasparente tramite javascript, in una select box doppia? Le due select box saranno collegate: la prima permetterà di scegliere il primo livello, la seconda il secondo.

In rete non si trova praticamente nulla, ed è davver strano! Non mi pare una richiesta così astrusa... comunque, rovistando su google si trova questa libreria:

jDoubleSelect ( http://www.senamion.com/blog/jDoubleSelect.html )

La licenza è doppia: MIT e GPL.

Editare le informazioni EXIF via command line

command line

La vostra macchina fotografica ha l'orario sballato e ve ne siete accorti tardi? Nessun problema: basta spostare l'orario EXIF di tutte le foto ormai fatte avanti o indietro di quanto serve con un semplice comando via command line: jhead .

jhead -ta-8:15 *.jpg

Questo comando toglie 8 ore e 15 minuti a tutte le foto.

Altra situazione che mi è capitata sistemando le foto dell'ultimo viaggio: volete trasferire tutti i tag EXIF da una foto a un altra? (nel mio caso perchè avevo fatto un panorama unendo varie foto, e volevo riprendere i dati EXIF da una di queste). Semplice:

jhead -te sorgente.jpg destinazione.jpg

Spotify su Linux e radio che non funziona

Se la radio non funziona bene in Spotify per Linux (versione testata: 0.9.1.55), non permettendo di premere i pulsanti di avanzamento e rimanendo spesso "bloccata", la soluzione è avviare spotify così:

env LC_NUMERIC=en_US.utf8 spotify

Oppure modificare il file /usr/share/applications/spotify.desktop, sostituendo la linea "Exec" con:

Exec=env LC_NUMERIC=en_US.utf8 spotify %U

Soluzione a "Test WP failed, assume Write Enabled"

linux

In uno dei miei pc, guardando i messaggi di sistema tramite "journalctl -f" o "dmesg", ogni tanto mi accorgevo di questi errori ciclici:

lug 25 00:01:02 golconda kernel: sd 6:0:0:0: [sda] Test WP failed, assume Write Enabled
lug 25 00:01:02 golconda kernel: sd 6:0:0:0: [sda] Asking for cache data failed
lug 25 00:01:02 golconda kernel: sd 6:0:0:0: [sda] Assuming drive cache: write through

Non c'erano sempre, ma quando c'erano iniziavano ad apparire ogni 30 secondi circa. L'ultima volta sono partiti dopo aver usato il lettore SD.

Comunque, la soluzione per me è stata questa:

[bash]

sudo sh -c 'echo "options ums_realtek ss_en=0" > /etc/modprobe.d/ums-realtek.conf'

sudo rmmod ums_realtek

Eseguire un comando in inglese

shell
Tags: pillshell

A volte, pur avendo impostato il sistema in italiano, può essere utile eseguire un comando forzando i messaggi in inglese (in genere mi serve quando devo cercare un errore su google, o devo segnalarlo su qualche forum inglese).

Semplicissimo, da shell:

LANG=en_US <comando>

Per programmi che si eseguono in finestra grafica potrebbe non bastare, nel caso bisogna usare la variabile adatta per il proprio DE. Nel mio caso, su KDE, è sufficiente:

KDE_LANG=en_US <comando>

Drupal: Visualizzare come viene costruita in SQL una query dinamica

drupal

Se stiamo costruendo una query con il nuovo formato "dinamico", e vogliamo tradurre ciò che stiamo facendo nel caro e vecchio SQL per vedere se stiamo effettivamente ottenendo ciò che vogliamo, possiamo fare in 2 modi.

Stampare semplicemente la query come stringa: in questo modo otteniamo la query non parametrizzata. Possiamo ottenere i valori dei parametri con il methodo arguments().

$query = db_select('node', 'n') ...
print((string) $query);
print_r($query->arguments());

Oppure, se abbiamo il devel.module attivo, usare la funzione dpq, che mostra direttamente la query già parametrizzata:

dpq($query);

Configurazione grub: differenza tra GRUB_CMDLINE_LINUX_DEFAULT e GRUB_CMDLINE_LINUX

linux

Sto modificando /etc/default/grub e mi viene un dubbio... che differenza c'è tra le voci GRUB_CMDLINE_LINUX_DEFAULT e GRUB_CMDLINE_LINUX?

Dopo aver fatto una verifica, solo questa: i modificatori in GRUB_CMDLINE_LINUX vengono applicati a tutte le voci, mentre quelli in GRUB_CMDLINE_LINUX_DEFAULT solo alle voci che non sono recovery.

In pratica: l'opzione "quiet" meglio metterla in default (così in modalità recovery vediamo tutti i log), così come tutte le opzioni "facoltative" per il boot. Le opzioni fondamentali per il corretto funzionalmento del kernel invece meglio metterle in GRUB_CMDLINE_LINUX, così vanno anche in recovery.

Problema al gestore stampanti "cupsd: Child exited on signal 6"

printer

Se avviando il gestore delle stampanti "cupsd" vi viene segnalato l'errore "cupsd: Child exited on signal 6", la cosa più probabile è che si sia corrotto il file di configurazione. La cosa è tutt'altro che improbabile: attualmente sul mio sistema avviando il gestore delle stampanti di KDE e impostando una delle voci di condivisione delle opzioni principali il risultato è proprio questo!

La cosa migliore è reimpostare la configurazione di default:

sudo cp /etc/cups/cupsd.conf.default /etc/cups/cupsd.conf