lunedì 31 agosto 2009

Rimuovere conferma per il termine sessione, riavvio e arresto del computer

Probabilmente dalla versione 9.04 di Ubuntu avrete notato che facendo clic sulle opzioni Termina sessione..., Sospendi, Iberna, Riavvia... e Arresta... dall'Applet Selettore rapido utente (l'applet che si trova in genere sull'estrema destra del pannello superiore in GNOME) viene chiesta una conferma.

Se si vuole modificare questo comportamento è sufficiente fare clic con il tasto destro sull'applet, scegliere Preferenze e togliere la spunta all'opzione Confermare il termine sessione, riavvio e arresto del computer.

domenica 30 agosto 2009

Aggiungere colonne con tag ID3 e informazioni Exif in Nautilus

Per sopperire alla mancanza in Nautilus (il file manager predefinito di GNOME) delle colonne con i tag ID3 (per i file musicali mp3) e le informazioni Exif (per le fotografie scattate dalle fotocamere digitali), è possibile utilizzare lo script scritto in python che potete trovare sul forum internazionale di Ubuntu all'indirizzo questo indirizzo. Per scaricare direttamente lo script potete fare clic qui.

Non so se esistano soluzioni migliori, comunque questo metodo è abbastanza efficiente. Come potete leggere dai primi commenti all'interno dello script, per utilizzarlo è necessario installare i pacchetti python-nautilus, python-mutagen e python-pyexiv2. Questi pacchetti possono essere facilmente installati da Synaptic, oppure da terminale con il comando
sudo apt-get install python-nautilus python-mutagen python-pyexiv2

Dopo di ciò bisogna spostare lo script all'interno della cartella ~/.nautilus/python-extensions (ricordo che la tilde ~ è un'abbreviazione del percorso della home dell'utente corrente e che le cartelle che hanno il nome che inizia con il punto sono cartelle nascoste, bisogna quindi premere [ CTRL ] + [ H ] per visualizzarle). Se la cartella non esiste bisogna ovviamente crearla (la cartella ~/.nautilus dovrebbe comunque esistere già, sarà al massimo necessario creare la sottocartella). Alternativamente, lo script potrebbe anche essere posto in /usr/lib/nautilus/extensions-2.0/python/, è necessario però agire da super utente per posizionare lo script in quella cartella.

Prima di poter utilizzare lo script bisogna renderlo eseguibile: fate clic con il tasto destro sull'icona dello script, fate clic su Proprietà e nella scheda Permessi della finestra che si aprirà mettete la spunta a Consentire l'esecuzione del file come programma.

Per concludere riavviate Nautilus (riavviando il computer oppure terminando la sessione corrente oppure digitando il comando killall nautilus (quest'ultima opzione personalmente la preferisco di meno)). Al successivo avvio di Nautilus, utilizzando la vista a elenco, potrete aggiungere le colonne contenti le informazioni che vi servono (VisualizzaColonne visibili). I nomi delle colonne sono in inglese, ma si capisce facilmente cosa c'è scritto (modificando un poco lo script si potrebbero tradurre i nomi delle colonne in italiano, ma non conoscendo il python non sono in grado di dire cosa va corretto).

giovedì 27 agosto 2009

Ottenere informazioni sull'hardware del sistema

Per ottenere informazioni abbastanza dettagliata sull'hardware presente sul proprio computer si può utilizzare il comando da terminale
sudo lshw
(è necessario lanciare il comando con i diritti da superutente altrimenti si otterrebbero delle informazioni parziali.) lshw dovrebbe essere già installato nel vostro sistema operativo Ubuntu, in caso contrario è sufficiente installare il pacchetto omonimo da Synaptic o da terminale con il comando
sudo apt-get install lshw
Questo programma attualmente supporta DMI (solo x86 e IA-64), OpenFirmware device tree (solo PowerPC), PCI/AGP, CPUID (x86), IDE/ATA/ATAPI, PCMCIA (testato solo su x86), SCSI e USB, non vengono però rilevati dispositivi Firewire(IEEE1394), non tutte le architetture supportate da GNU/Linux sono supportate da lshw e le interfacce "Virtual" SCSI usate per l'emulazione SCSI su IDE non sono ancora riportate correttamente (tutte queste informazioni riguardo a lshw che ho snocciolato capendoci più o meno qualcosa le potete ottenere semplicemente leggendo il manuale di lshw dando il comando man lshw nel terminale).

Oltre a questo comando è possibile utilizzare i comandi
lsusb
e
lspci
per ottenere informazioni sui dispositivi connessi rispettivamente a porte USB e PCI. L'ultimo comando in particolare può essere utilizzato, generalmente, per conoscere il modello della propria scheda video. Se l'output del comando risulta molto lungo si può restringere l'output alle sole stringhe contenenti la parola VGA in questo modo:
lspci | grep VGA
(è, per esempio, necessario conoscere il modello della propria scheda video per installare il driver).

Accanto ai programmi appena visti, che dispongono solo di un'interfaccia a linea di comando, esistono anche alcuni programmi con interfaccia grafica. Fra questi possiamo ricordare lshw-gtk e hardinfo, entrambi installabili nelle solite maniere dai repository ufficiali di Ubuntu.

Lshw-gtk non è altro un'interfaccia del precedentemente esposto lshw (anche in questo caso si dovrebbe avviare il comando da root per ottenere le informazioni complete, quindi lanciandolo da terminale con il comando sudo lshw-gtk).

Hardinfo è una semplice e utile applicazione per avere sotto controllo le informazioni “tecniche” del sistema e per effettuare qualche benchmark prestazionale. Per avviare il programma è sufficiente dare il comando hardinfo nel terminale. Le informazioni che si possono ottenere sul sistema attraverso hardinfo sono:
- Informazioni inerenti l’hardware del computer:
* Sistema operativo
* Moduli del kernel
* Avvii
* Localizzazione
* Filesystem
* Display
* Variabili d'ambiente
* Utenti
- Dispositivi:
* Processore
* Memoria
* Dispositivi PCI
* Dispositivi USB
* Stampanti
* Batteria
* Sensori (temperatura, voltaggi, velocità delle ventole ecc)
* Dispositivi di input
* Memorie di massa
* DMI
* Risorse
- Informazioni sulla rete:
* Interfacce
* Connessioni IP
* Tabella di routing
* Tabella ARP
* Server DNS
* Statistiche
* Cartelle condivise
- Benchmark:
* Blowfish
* CryptoHash
* Fibonacci
* N-Queens
* FPU Raytracing
* FFT
I risultati dei benchmark vengono confrontati con quelli ottenuti attraverso altre macchine.


Creative Commons License
Questo post è pubblicato sotto la Licenza Creative Commons Attribuzione-Non commerciale-Condividi allo stesso modo.

Alcune parti di questo post sono state riprese da http://netjack.wordpress.com/2006/12/12/hardinfo-informazioni-di-sistema-e-benchmark-a-potata-di-click/ e http://webupd8.blogspot.com/2009/05/2-open-source-alternatives-to-everest.html

lunedì 3 agosto 2009

Aggiungere pacchetti per LaTeX

Se vuoi subito scoprire come installare pacchetti per LaTeX vai direttamente al riepilogo, se invece vuoi leggere le mie (tutto sommato inutili) peripezie per aggiungere un pacchetto puoi leggere tutto il post.

Da un po' di tempo mi sto dilettando a scrivere testi con LaTeX. Qualche giorno fa avevo la necessità di installare un nuovo pacchetto LaTeX, per la precisione il pacchetto empheq. Ho dovuto navigare un po' su Internet prima di trovare la soluzione, mettendo insieme varie guide trovate in giro. Per altro, alla fine del mio peregrinare ho scoperto che avrei potuto molto più facilmente installare (per esempio da Synaptic) in Ubuntu il pacchetto texlive-latex-extra che fornisce poco meno di 500 pacchetti LaTeX (qui potete leggere l'elenco dei pacchetti forniti nella versione presente in Ubuntu Jaunty).

In attesa di vedere in un futuro non troppo lontano in Ubuntu la versione 2008 della distribuzione TeX Live, con cui pare sia molto semplice installare nuovi pacchetti LaTeX (anche quelli non presenti in texlive-latex-extra), spiegherò come ho fatto.

La guida che ho seguito inizialmente è stata http://www.guit.sssup.it/installazione/pacchetti.php. Per prima cosa, per installare un nuovo pacchetto, è necessario ovviamente scaricarlo. Nel mio caso, per ottenere il pacchetto empheq ho scaricato l'archivio http://theory.uwinnipeg.ca/scripts/CTAN/macros/latex/contrib/mh.zip. L'ho scompattato e ho compilato il file empheq.dtx in modo da ottenere il file empheq.sty. Il problema che sorgeva a questo punto era posizionare il pacchetto in una cartella in cui LaTeX sarebbe stato in grado di trovarlo. Infatti, compilando un sorgente LaTeX che includeva empheq ottenevo il seguente messaggio di errore:
! LaTeX Error: File `empheq.sty' not found.
In realtà, compilando il sorgente da terminale, quando compare questo messaggio di errore è possibile inserire il percorso del pacchetto, ma ovviamente questa non è una soluzione molto pratica. Una cartella in cui si potrebbero inserire i pacchetti affinché LaTeX sia in grado di utilizzarli è /usr/share/texmf/tex/latex/, ma personalmente preferisco per svariati motivi salvare queste cose all'interno della home (anche per evitare ogni volta di dover diventare root per aggiungere o modificare un pacchetto). Sul forum GUIT avevo letto che per sapere qual è la cartella in cui salvare il pacchetto bisogna dare nel terminale il seguente comando
kpsexpand '$TEXMFHOME'
che mi ha restituito come output
/home/luke/texmf
Ho quindi spostato il pacchetto nella cartella indicata (che ho creato perché non esisteva) e provato a ricompilare il sorgente però ricevendo sempre il precedente messaggio di errore. Con un po' di fortuna ho trovato un altro comando per trovare le cartelle in cui salvare i pacchetti:
kpsepath tex
che ha restituito questo output un po' illeggibile:
.:/home/luke/.texmf-config/tex/kpsewhich//:/home/luke/.texmf-var/tex/kpsewhich//:/home/luke/texmf/tex/kpsewhich//:/etc/texmf/tex/kpsewhich//:!!/var/lib/texmf/tex/kpsewhich//:!!/usr/local/share/texmf/tex/kpsewhich//:!!/usr/share/texmf/tex/kpsewhich//:!!/usr/share/texmf-texlive/tex/kpsewhich//:/home/luke/.texmf-config/tex/generic//:/home/luke/.texmf-var/tex/generic//:/home/luke/texmf/tex/generic//:/etc/texmf/tex/generic//:!!/var/lib/texmf/tex/generic//:!!/usr/local/share/texmf/tex/generic//:!!/usr/share/texmf/tex/generic//:!!/usr/share/texmf-texlive/tex/generic//:/home/luke/.texmf-config/tex///:/home/luke/.texmf-var/tex///:/home/luke/texmf/tex///:/etc/texmf/tex///:!!/var/lib/texmf/tex///:!!/usr/local/share/texmf/tex///:!!/usr/share/texmf/tex///:!!/usr/share/texmf-texlive/tex///
È un elenco che utilizza i due punti come separatore fra le cartelle (più qualche punto esclamativo messo con non so quale criterio). Per renderlo un po' più comprensibile ho utilizzato 3 pipe che restringessero inoltre il campo alle cartelle contenute nella home:
kpsepath tex | sed 's/:/\n/g' | tr -d '!' | grep home
con questo output:
/home/luke/.texmf-config/tex/kpsewhich//
/home/luke/.texmf-var/tex/kpsewhich//
/home/luke/texmf/tex/kpsewhich//
/home/luke/.texmf-config/tex/generic//
/home/luke/.texmf-var/tex/generic//
/home/luke/texmf/tex/generic//
/home/luke/.texmf-config/tex///
/home/luke/.texmf-var/tex///
/home/luke/texmf/tex///

In particolare ha attirato la mia attenzione l'ultima cartella, /home/luke/texmf/tex/ (lasciate stare gli slash in più alla fine dei percorsi). Ho quindi creato la cartella /home/luke/texmf/tex/ e spostato nuovamente il pacchetto empheq.sty in questa cartella. Provando a ricompilare il sorgente però continuavo a ricevere sempre lo stesso errore che segnala pacchetto non trovato. Nella guida http://wiki.ubuntu-it.org/Ufficio/Latex ho letto che per aggiornare l'elenco dei pacchetti era necessario dare il comando
sudo texhash
Leggendo però il manuale del comando (nel terminale: man texhash) ho scoperto che quel comando non aggiorna l'elenco dei pacchetti contenuti nella home. Per fare ciò bisogna dare quindi il comando
texhahs ~/texmf
(ricordo che la tilde ~ è un'abbreviazione del percorso della home dell'utente corrente) e finalmente sono riuscito a compilare il sorgente.


Riepilogo delle operazioni da fare: scaricare il pacchetto e posizionare il file .sty nella cartella ~/texmf/tex (ovviamente creandola se non esiste). Se nell'archivio che si è scaricato non è presente un file .sty ma un .ins o un .dtx bisogna compilare questi file per ottenere il .sty, come spiegato qui. Quindi bisogna aggiornare l'elenco dei pacchetti LaTeX presenti nella cartella con il comando
texhash ~/texmf
e si può finalmente compilare il sorgente che include il nuovo pacchetto.

In realtà sarebbe sufficiente anche inserire il pacchetto nella stessa cartella in cui si trova il sorgente senza dover usare ulteriori comandi, ma trovo questa soluzione poco pratica nel caso in cui si dovessero avere sorgenti LaTeX in numerose cartelle diverse.


Precisazione del 18/8/2009: rileggendo con più attenzione di quanto non avessi fatto inizialmente la guida http://www.guit.sssup.it/installazione/pacchetti.php mi sono accorto che c'era scritto:
copiare il relativo file .sty nella sotto-cartella /tex/latex/ di uno dei tre alberi (eventualmente creando tale sotto-cartella, se non ci fosse già);
Quindi senza perdere tutto il tempo che ho perso avrei potuto subito notare che era necessario mettere i pacchetti nella sottocartella tex/latex/ di ~/texmf (in realtà a me funziona anche solo con tex/, non ho avuto bisogno di creare anche la sottocartella latex/). Resta comunque valido il procedimento descritto nel riepilogo.