giovedì 1 dicembre 2011

Ordinare la rubrica fax nelle stampanti multifunzioni HP

Possedete una multifunzione HP ( cm1312, cm2320, ecc.) e vorreste poter ordinare alfabeticamente i nominativi presenti nella vostra rubrica fax ... ma tale funzione non è disponibile né tramite il pannello della stampante né tramite il software in dotazione ... come fare!?

Sebbene, come appena detto, non sia possibile eseguire direttamente alcuna operazione di ordinamento, HP permette l'esportazione della rubrica fax sul nostro pc in formato csv (comma separeted values) , consentendoci quindi di editare il relativo file a nostro piacimento.

Nota dolente per gli utenti del pinguino è che tale funzione non è supportata sui sistemi GNU/Linux ( sarebbe interessante capirne il motivo ... ) indi per cui avrete bisogno di una macchina Windows e del software HP toolbox per svolgere questa operatività.
Al momento gli utenti Linux possono solo disporre dell'utilità hp-fab che permette di gestire una rubrica fax localmente, in maniera, purtroppo, del tutto indipendente da quella memorizzata all'interno della stampante (quindi utile solo nel caso in cui i fax vengano inviati direttamente da pc)

Il primo passo è quindi quello di scaricare dalla vostra multifunzione HP la rubrica fax: salviamola con il nome rubrica.csv

Ora, eseguendo un semplice script perl, ordineremo automaticamente e in pochi istanti la nostra rubrica; potere recuperare il file sort-hp-fab.pl dal mio account Dropbox all'indirizzo: http://dl.dropbox.com/u/7141888/sort-hp-fab.pl

lunedì 12 settembre 2011

Cattura audio con arecord

Arecord è un programma, fornito dal pacchetto alsa-utils, che in pratica funziona da registratore, ossia vi permette di catturare qualunque suono in riproduzione sul vostro pc GNU/Linux. L'apposita man page (man arecord) tuttavia non spiega affatto come selezionare il device sul quale arecord dovrà restare in ascolto. Ecco come fare:

Digitiamo in un terminale il comando:
$ amixer contents
seguiranno parecchie linee di output, quello che interessa a noi è l'interfaccia "Capture Source", per esempio sulla mia macchina ottengo:
numid=68,iface=MIXER,name='Capture Source'
  ; type=ENUMERATED,access=rw------,values=2,items=8
  ; Item #0 'Mic'
  ; Item #1 'CD'
  ; Item #2 'Video'
  ; Item #3 'Aux'
  ; Item #4 'Line'
  ; Item #5 'Mix'
  ; Item #6 'Mix Mono'
  ; Item #7 'Phone'
  : values=4,4
Values=4,4 indica che arecord utilizza come periferica di cattura 'Line', cioè un qualunque dispositivo collegato all'ingresso audio della sound card (per esempio un microfono).
Se invece volessimo catturare,ad esempio, l'audio di un gioco o di una radio in streaming dobbiamo spostare la cattura su 'Mix' con il comando:
$ amixer cset numid=68,iface=MIXER,name='Capture Source' 5
(attenzione al numid! Potrebbe essere diverso sulla vostra macchina). Per controllare che il comando abbia avuto successo potete eseguire nuovamente 'amixer contents' e verificare che values riporti '5,5' ovvero la periferica 'Mix'.

Per registrare, ad esempio, in formato wav - qualità CD (audio 16 bit - 44100 Hz) diamo:
$ arecord -f cd -t wav miofileaudio.wav
La combinzione Ctrl+C interrompe la registrazione e salva il file 'miofileaudio.wav'

martedì 30 agosto 2011

Ricerca durante la digitazione con Chrome/Chromium

Per molti utenti Firefox una 'pecca' del browser di Google è sicuramente l'assenza dell'opzione Cerca nel testo quando si digita qualcosa ( Preferenze -> Avanzate -> Generale -> Accessibilità )
Ma per fortuna c'è un' ottima estensione per rimediare a questa mancanza da parte dei developer di Mountain View: Type-ahead-find
Basta installare l'add-on tramite il Chrome Web Store per aver subito disponibile quella che personalmente ritengo una funzionalità utilissima che non dovrebbe mancare in nessun browser moderno :-)

sabato 18 giugno 2011

Aggiornare i pacchetti di Fedora senza connessione internet

Scenario: supponiamo - ed è il mio caso :-) - di aver Fedora installata sue due diverse macchine, ma solo una dispone di una connessione ad internet, mentre l'altra non è neppure collegata alla vostra lan, domestica o aziendale che sia. Come aggiornare i pacchetti installati sulla macchina "offline" ? In questa guida vi mostrerò come fare questa attività in maniera molto semplice, tutto ciò che occorre è una chiavetta usb di buona capacità e qualche comando da inserire in un terminale.

Convenzioni utilizzata in questo how-to:
macchina online: pc fedora con connettività internet
macchina offline: pc fedora senza alcuna connettività

/media/CD77-C2D3: punto di mount della mia chiavetta usb, ovviamente da sostituire con il vostro

Iniziamo con l'inserire la chiavetta nella macchina offline e spostiamoci nel corrispondente mout point:
$ cd /media/CD77-C2D3
creiamo l'elenco dei pacchetti installati
$ rpm -qa --queryformat '%{NAME}\n' > lista
spostiamoci ora nella cartella /etc/yum.repos.d e creiamo un nuove file che chiameremo fedora-local.repo. Il file dovrà contenere il seguente testo:
[localrepo]
name=Fedora Core $releasever - My Local Repo
baseurl=file:///media/CD77-C2D3
enabled=1
gpgcheck=0
(Ricordatevi di modificare il valore di 'baseurl' in base al mount point del vostro dispositivo usb!)
Smontiamo la chiavetta e spostiamoci ora sulla macchina online.
Verifichiamo la presenza dei tool che andremo ad utilizzare (yumdownloader e createrepo):
# yum install yum-utils createrepo
inseriamo quindi la chiavetta e avviamo il download dei pacchetti elencati nel file 'lista':
$ cd /media/CD77-C2D3
$  yumdownloader $(cat lista)
ora pazientiamo per un po', questa attività potrebbe richiedere parecchi minuti, soprattutto la prima volta che viene eseguita :-)
Completato il download andiamo ad impostare la nostra chiave usb come un repository locale con:
$ createrepo /media/CD77-C2D3 
Importante! Il comando createrepo va sempre obbligatoriamente eseguito dopo ogni download, in caso contrario i nuovi pacchetti non verranno indicizzati! Per aggiornare in maniera rapida un repo già esistente utilizzate l'opzione --update.

Ritorniamo a questo punto sulla macchina offline, reinseriamo la nostra "chiave usb-repository locale" e diamo:
# yum update
per aggiornare la macchina con i pacchetti precedentemente installati.
Può accadere però che la nuova versione di un dato software introduca delle nuove dipendenze; in questo caso l'aggiornamento con 'yum update' fallirà, lamentando l'impossibilità di trovare uno o più file.
Anche in questo caso yumdownloader ci viene in soccorso, basta spostarsi nuovamente sulla macchina online e digitare
$ yumdownloader <file-mancante>
Supponiamo ci sia stata segnalata l'impossibilità di soddisfare la dipendenza 'libopenal.so.1'; ebbene, dando 'yumdownloader libopenal.so.1' andremo a scaricare il pacchetto openal-soft-1.12.854-2.fc15.i686, contenente il file di cui abbiamo bisogno per completare con successo l'upgrade della nostra macchina Fedora offline.



venerdì 17 giugno 2011

Disabilitare il pannello di xfce4 (xfce4-panel)

Se siete utenti XFCE ma preferite utilizzare una barra dock-like tipo awn, cairo-dock o altre, probabilmente vorrete rimuovere il pannello presente di default. Ecco come fare:

-  Aprite con un editor di testo il file /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml (in Archlinux é fornito dal pacchetto xfce4-session)

- Identificate e rimuovete la seguente porzione di testo:

<value type="string" value="xfce4-panel"/>

- Può essere utile anche cancellare le sessioni di XFCE salvate in precedenza:

rm -rf ~/.cache/sessions/

-Riavviate XFCE per verificare che xfce4-panel non venga effettivamente più caricato! :-)

lunedì 16 maggio 2011

Autenticarsi su un server ssh senza immettere password

Questo breve post è un estratto di un ampio articolo presente sull'ottimo e indispensabile Wiki di Archlinux, a cui vi rimando per approfondimenti.
Qui tratterò essenzialmente come accedere ad un serve ssh utilizzando una chiave precedentemente creata, anziché una password, e di come "passare" automaticamente questa chiave senza doverla digitare ogni volta. (utile se utilizzate sshfs e per eseguire script in remoto)

- creiamo sulla macchina client  le due chiavi di autenticazione (privata e pubblica) avendo l'accortezza di non cambiare il percorso di default proposto e di impostare, quando richiesto, una passphrase non banale:

$ ssh-keygen -b 521 -t ecdsa

nella cartella .ssh troveremo ora due nuovi file:  id_ecdsa  e id_ecdsa.pub.

- copiamo la chiave pubblica sulla macchina server:

$ scp .ssh/id_ecdsa.pub server:

- accediamo al server ssh, immettendo come di consueto la password di login:

$ ssh server

- aggiungiamo la nostra chiave al file authorized_keys (creandolo se non presente):

$ cat id_ecdsa.pub >> .ssh/authorized_keys

- impostiamo i permessi corretti:

$ chmod 600 .ssh/authorized_keys

- e rimuoviamo la chiave originaria, non più necessaria

$ rm id_ecdsa.pub

- abbiamo completato la configurazione lato server, torniamo quindi sul client per installare keychain, un tool che si occuperà di gestire le nostre chiavi private, risparmiandoci il compito di inserire la passphrase ad ogni nuovo accesso; sotto Archlinux date:

# sudo pacman -S keychain

- per avviare automaticamente keychain ogniqualvolta apriamo la nostra shell preferita, aggiungiamo la seguente stringa a .bashrc:

eval `keychain --eval --agents ssh id_ecdsa`

- Chiudiamo e riapriamo la nostra shell; keychain verrà avviato e ci chiederà, solo per questa prima volta, la passphrase che abbiamo scelto in fase di generazione delle nostri chiavi di autenticazione e la memorizzerà per noi fino al prossimo shutdown della macchina. Dopodiché proviamo a connetterci nuovamente al nostro server:

$ ssh server

Se tutto è stato fatto correttamente, eseguendo questo comando accederete direttamente al terminale del server remoto senza aver immesso nessun password o passphrase e, al tempo stesso,  in tutta sicurezza!
Importante:
Se avete configurato la vostra macchina per avviare automaticamente Xorg al boot, modificate la riga precedentemente aggiunta a .bashrc in questo modo:

[ $TERM = 'xterm' ] && eval `keychain --eval --agents ssh id_ecdsa`

In caso contrario, il caricamento del vostro desktop resterà bloccato, probabilmente mostrandovi una schermata nera, in attesa della passphrase, senza però mostrarvi alcun prompt :-)

sabato 30 aprile 2011

Mini how-to per utilizzare Festival in italiano con Archlinux

In AUR ( l'Arch User Repository) è già presente il pacchetto festival-italian che contiene una serie di voci italiane utilizzabili con il celebre software di sintetizzazione vocale. Procediamo quindi all'installazione con:

$ yaourt -S festival-italian

Meno ovvia è invece la procedura di configurazione :-)
Lanciamo festival in modalità interattiva digitando in un terminale semplicemente:

$ festival

Visualizziamo le voci disponibili inserendo il comando (voice.list); le voci installate dal pacchetto italian-festival sono: pc_mbrola, lp_ogi_diphone, pc_ogi_diphone, lp_mbrola, lp_diphone, pc_diphone

$ festival> (voice.list)
(pc_mbrola
 lp_ogi_diphone
 pc_ogi_diphone
 lp_mbrola
 lp_diphone
 pc_diphone)

In realtà, seppur elencate, alcune voci potrebbero risultare inutilizzabili, perché il loro funzionamento dipende dall'installazione di programmi aggiuntivi (per esempio pc_mbrola e lp_mbrola richiedono mbrola e festival-italian-voice-mbrola anch'essi presenti in AUR)
Per testare una voce occorre inserire il comando "voice_" seguito dal nome della voce stessa senza spazi, ad esempio:

$ festival> (voice_pc_diphone)                       
pc_diphone

Dopodiché utilizziamo SayText per riprodurre un messaggio di prova, per verificare che la voce selezionata funzioni a dovere:

$ festival> (SayText '"Odi la mia stupenda voce")

Una volta terminate le nostre prove, usciamo dal prompt di festival con quit:

$ festival> (quit)

e andiamo ad impostare la voce che preferiamo come default per festival; per fare questo occorre aprire con un editor di testo (vim, gedit, ecc) da root il file  /usr/share/festival/voices.scm e modificare l'impostazione "voice_default", ad esempio:

(defvar voice_default voice_pc_diphone
 "voice_default
A variable whose value is a function name that is called on start up to
the default voice. [see Site initialization]")

Salviamo e chiudiamo il file. Verifichiamo di aver fatto tutto correttamente riproducendo un messaggio di prova:

echo "Odi la mia stupenda voce" | festival --tts

Se festival non produce alcun suono, restituendo l'errore "Linux: can't open /dev/dsp" caricate il modulo snd_pcm_oss:

# modprobe snd_pcm_oss

 Per caricare automaticamente il modulo al boot, aggiungetelo all'elenco "MODULES" in /etc/rc.conf.

E' tutto!! Potete reperire ulteriori utili informazioni dal Wiki di Archlinux .

lunedì 4 aprile 2011

Un semplice script per liberare ram sulla vostra macchina Linux

Utile nel caso di macchine con poca memoria fisica installata. Può essere anche utile eseguirlo, tra le altre cose, prima di fare test sul filesystem, per aver risultati più accurati:
#!/bin/sh
## freemem.sh
if [ $UID != 0 ]; then
    echo "You have to be root to do that!";
    exit 1;
fi
echo "flushing file system buffers..."
/bin/sync
echo "dropping pagecache, dentries and inodes..."
echo 3 > /proc/sys/vm/drop_caches
## possible values
## 1: free pagecache
## 2: free dentries and inodes
## 3: free pagecache, dentries and inodes
Lo script richiede un versione di kernel uguale o successiva alla 2.6.16, poichè il meccanismo di "drop caches" è stato appunto aggiunto a partire da tale versione

domenica 27 marzo 2011

Archlinux: condividere i pacchetti di pacman nella lan con webfs

Ecco un sistema veramente semplice quanto efficace e funzionale per condividere i pacchetti scaricati e disponibili su un pc Archlinux ( che funzionerà da server ) con le altre macchine presenti nella vostra lan.

Lato server:
Installiamo webfs, un semplice  demone http che utilizzeremo per creare il nostro piccolo mirror locale:   

# pacman -S webfs

editiamo il file di configurazione "/etc/conf.d/webfsd", andando a sostituire questa riga:

WEBFSD_ARGS="-p 8080 -u nobody -R /var/www/htdocs -f index.html"

con quest'altra:

WEBFSD_ARGS="-p 8080 -u nobody -R /var/cache/pacman/pkg"

in questo modo webfs utilizzerà come "document root" la directory predefinita dove pacman salva i pacchetti tar.xz.
Avviamo webfs:

# /etc/rc.d/webfsd start

ed andiamo ad aggiungere "webfsd"  alla lista "DAEMONS" in /etc/rc.conf per fare in modo che il servizio venga avviato automaticamente al boot.
Controlliamo che tutto funzioni a dovere digitando nel nostro browser preferito "http://localhost:8080". In caso positivo verrà visualizzato l'elenco completo dei pacchetti presenti nella cache di pacman. Non ci resta che configurare i client.

Lato client:
La configurazione sui pc client sta tutta nell'aggiungere questa riga in /etc/pacman.d/mirrorlist:

Server = http://[ip-del-server]:8080

E' fondamentale che questa riga preceda ogni altra definizione di "Server" all'interno del file!
Così facendo ogni qualvolta utilizzerete pacman per aggiornare o installare dei nuovi pacchetti, questi verranno prelevati (ovviamente se presenti ) dal vostro server locale.
Dal momento che il nostro server condivide solo i pacchetti ma non il database dei pacchetti stessi, verranno generati degli errori di questo tipo, utilizzando pacman con l'opzione "-Sy": 

errore: impossibile scaricare il pacchetto 'core.db' da linuxbox : Not Found

Questi errori possono essere tranquillamente ignorati e al tempo stesso non c'è nessun modo per evitare che si presentino, con questa configurazione :-)
Accertatevi solo di aver dei server esterni funzionanti nel vostro mirrorlist e godetevi i benefici in termini di velocità e di risparmio di banda!!


Aggiornamento del 28/08/12

Ad oggi purtroppo webfs non è ancora compatibile con systemd: se cercate un servizio alternativo funzionante con il nuovo init di Lennart Poettering, potete puntare su thttp; installiamolo (da AUR) con:

$ yaourt -S thttpd

editiamo il file di configurazione  /etc/thttpd.conf in questo modo:

dir=/var/cache/pacman/pkg
chroot
user=http
port=8080
charset=utf-8


per avviare immediatamente il servizio:

# systemctl start thttpd.service

per abilitare l'avvio automatico al boot:

# systemctl enable thttpd.service

La configurazione lato client resta invariata, cioè esattamente identica a quella illustrata relativamente a webfs

domenica 27 febbraio 2011

Qualche trucco per le tastiere "multimediali"

Vi sarà sicuramente capitato di avere a che fare con le cosiddette 'tastiere multimediali' che si differenziano dalle classiche keyboard per avere in più tutta una serie di pulsanti dedicati ad eseguire particolari operazioni, come, ad esempio, avviare il browser web predefinito o il nostro client di posta...
Inutile dire che tali tasti essendo pensati per gli utilizzatori dei sistemi Microsoft, richiedono all'utente GNU/Linux un'attività extra di configurazione manuale.
Fortunatamente gli ambienti desktop più evoluti (come KDE, Gnome, Xfce, ecc.)  ci offrono delle comodissime utilità di configurazione delle scorciatoie di tastiera per semplificarci il lavoro.

Mentre è banale, per esempio, associare l'eseguibile '/usr/bin/firefox/' al pulsante per l'apertura del nostro browser predefinito, può essere meno intuitivo per l'utente meno esperto capire che comandi associare agli eventuali pulsanti  '+' e '-'  per la regolazione del volume audio. Ecco come fare :-)
Quello di cui abbiamo bisogno è il programma 'amixer', contenuto nel pacchetto 'alsa-utils', una utility veramente completa per gestire il mixer della nostra scheda audio da linea di comando.
Ecco come amixer ci può aiutare per configurare i tasti multimediali:

# alzare il volume (1.5dB alla volta) 
/usr/bin/amixer set Master 1.5dB+
# abbassare il volume (1.5dB alla volta) 
/usr/bin/amixer set Master 1.5 dB-
# disattivazione/attivazione dell'audio (mute/unmute) 
/usr/bin/amixer set Master,0 toggle

Invece dei dB è possibile esprimere l'incremento/decremento del volume con un valore percentuale, ad esempio:

/usr/bin/amixer set Master 5%+

Se utilizzate pulseaudio come sound server aggiungete l'opzione "-D pulse" ai precedenti comandi:

/usr/bin/amixer -D pulse set Master 5%+
 
Qui sotto un esempio di come ho applicato questi comandi sul mio Hp dv9000, utilizzando xfce4-keyboard-settings:

giovedì 17 febbraio 2011

Rendere il quoting di Thunderbird compatibile con Outlook

Se, come nel mio caso, utilizzate come client di posta principale Thunderbird (versione corrente 3.1.7) e avete a che fare con utenti di Outlook, vi sarete forse accorti (o vi avranno fatto notare) che la "barra blu" utilizzata di default dal client di Mozilla per quotare il messaggio a cui state rispondendo non viene mostrata dalle versioni di Outlook 2007 e successive.

Un sistema veramente semplice per ripristinare questa compatibilità con i personali "standard" di Microsoft è quello di installare l'ottimo plug-in QuoteAndComposeManager .

Una volta completata l'installazione (si da per scontato che tutti qui sappiano come installare un componente aggiuntivo di TB!) attraverso le preferenze del plugin selezionate:

Inserisci i bordi nel codice delle mail
e
Usa un formato compatibile con Outlook

Così facendo finalmente Outlook riprenderà a visualizzare correttamente la barra verticale del quoting di TB.
Potete a questo punto divertirvi ad esplorare le altre funzioni messe a disposizione dal plug-in QuoteAndComposeManager!

sabato 1 gennaio 2011

Correggere problemi di risoluzione su HP Pavillion dv9000

Sono recentemente entrato in possesso del notebook in oggetto, una macchina leggermente datata ma ancora ottima. Ho approfittato del Windows XP preinstallato per aggiornare il bios, operazione non sempre facile con GNU/Linux.
Poi, non essendo XP più di nessuna ulteriore utilità per il sottoscritto, ho formattato i due hd presenti e ho installato Arch. Completato il setup della macchina installando i driver proprietari nVidia (il portatile monta una GeForce Go 7600) noto questo "curioso" problema:
In pratica solo le risoluzioni di 1440x900 (massima) e 1024x768 vengono gestite correttamente, mentre switchando a 800x600 o 640x480 (richieste da qualche gioco) la visualizzazione risulta completamente sbagliata, con il desktop che va oltre l'area visibile...
Ho risolto questo fastidioso comportamento, aggiungendo l'opzione "metamodes" alla sezione "Screen" del mio xorg.conf, in questo modo:

 Section "Screen"
    Identifier     "Screen0"
    Device         "Videocard0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option     "metamodes" "1440x900 +0+0; 800x600_60 +0+0; 640x480_60 +0+0"

    SubSection "Display"
        Depth       24
    EndSubSection
EndSection