mercoledì 30 dicembre 2009

Rythmbox e il doppio doppio click

La versione di Rhythmbox installata su Karmic (0.2.15) e' pigra, spesso cliccando su una canzone il programma indica l'inizio della riproduzione, pero' in effetti non inizia nulla. Cliccando un'altra volta la canzone viene riprodotta correttamente.

Questo impedisce di usare decentemente Rhythmbox come applicazione predefinita per ascoltare file mp3 da nautilus.

E' un bug conosciuto e risolto nella versione 0.2.16 che sara' fornita con Lucid Lynx.
Per fortuna di questa versione e' disponibile anche un pacchetto per Karmic nei repository di GetDeb. Lo potete installare da qui:

martedì 29 dicembre 2009

Asus K50IJ / X5DIJ audio (english)

(Versione italiana disponibile su

13 Feb 2010: Remember to manually install linux-backports-modules-alsa-`uname -r` package at every new kernel installation.
12 Feb 2010: New simpler procedure to upgrade alsa drivers. Just install linux-backports-modules-alsa-`uname -r` package.
30 Dec 2009: Updated link to alsa-driver from 1.0.22 to

After some partial success we have some good configuration for audio system in Asus k50 series (k50ij, x5dij, etc....) laptops with Ubuntu Karmic Koala 9.10.

Please let's read the whole post before trying to follow its advices: you have to choose among some alternatives.
Uninstall pulseaudio

sudo apt-get remove --purge pulseaudio

Install alsa 1.0.22

Thanks to Stéphane Gaudreault and his post at

We must begin by determining our version of alsa as follows :

cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.20.

To avoid problems during the upgrade of Alsa-utils, we need to stop it with the following command :
sudo /etc/init.d/alsa-utils stop

We must then install the necessary tools to compile along with the kernel headers :
sudo apt-get -y install build-essential ncurses-dev gettext xmlto
sudo apt-get -y install linux-headers-`uname -r` libncursesw5-dev

Then, we go in our personal folder and download alsa-driver, alsa-lib and alsa-utils :
cd ~
rm -rf ~/alsa* ~/.pulse*

After that, we create a new folder for the compilation and installation of the 3 files. Then, we move the 3 tar files that we just downloaded in this folder :
sudo rm -rf /usr/src/alsa
sudo mkdir -p /usr/src/alsa
cd /usr/src/alsa
sudo cp ~/alsa* .

Unpack the 3 tar files :
sudo tar xjf alsa-driver*
sudo tar xjf alsa-lib*
sudo tar xjf alsa-utils*

We compile and install alsa-driver :
cd alsa-driver*
sudo ./configure
sudo make
sudo make install

We compile and install alsa-lib :
cd ../alsa-lib*
sudo ./configure
sudo make
sudo make install

We compile and install alsa-utils :
cd ../alsa-utils*
sudo ./configure
sudo make
sudo make install

If like me, you got this error during the last “sudo ./configure” :
checking form.h presence... yes
checking for form.h... yes
checking for new_panel in -lpanelw... no
configure: error: panelw library not found

You will need to add those symbolics links (only if you got the error) and restart the installation from the last “sudo ./configure” :
sudo ln -s /usr/lib/
sudo ln -s /usr/lib/
sudo ln -s /usr/lib/
sudo ln -s /lib/

Then, we remove the 3 tar files in our personal folder that are not anymore necessary :
rm -f ~/alsa-driver*
rm -f ~/alsa-lib*
rm -f ~/alsa-utils*

Then, just restart your computer and your alsa version should be 1.0.22!

You can verify that you have now indeed have this version of alsa :
cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.22.
Compiled on Dec 17 2009 for kernel 2.6.31-16-generic (SMP).

Just to be sure everything is well configured, execute this command :
sudo alsaconf

and reboot again!
Install backport-alsa

Previous procedure sometimes ends with audio not working.
aplay -l

It shows only
**** List of PLAYBACK Hardware Devices ****

instead of the list of available sound cards (but these are correctly listed by cat /proc/asound/cards command). Meawhile, executing:

we can see this in the middle of alsamixer window:
This sound device does not have any controls.

It seems you can correct this wrong behaviour by installing backports alsa driver:
sudo apt-get install linux-backports-modules-alsa-2.6.31-17-generic

Install: audio tray icon and sound control center (without pulesaudio)

We previously removed pulseaudio from our system, unfortunately doing so we loose sound control tray icon and System-Preferences-Sound application.

Thanks to Josh Green and his post at

Josh Green created gnome-applets .deb packages which include the mixer applet. To get back the old mixer, and other gstreamer based gnome Media tools, just install the gnome-media package from Ubuntu Jaunty. This will make the "Volume Control" button work with the mixer applet.

i386 gnome-applets binary packages:

Links to Ubuntu Jaunty 9.04 gnome-media packages, download the appropriate ones for your CPU architecture:


In case you want to build your own gnome-applets packages, for other non i386 architectures or to incorporate newer changes, here are the sources and a patch of changes that I made. Note that this is not required if you are simply using the i386 binary package above. Extract the gnome-applets archive somewhere and then apply the gnome-applets Ubuntu patch followed by the mixer revival patch. Build as you would any debian package.

gnome-applets_mixer_revival_patch1.diff (MIRROR)

There's another solution to this problem withi no need to compile sources for 64bit architecture:

Install: audio tray icon hotkeys configuration for mute, volume up, volume down

Thanks to richie2.0 and his post at

You have to download THIS ARCHIVE.

It has two dependencies to manually install on your system: python-alsaaudio and python-gnome2-extras.

To control volume with dedicated hardware keys on my laptop I made a script myself. A simpler solution would be to call amixer directly, but I really want libnotify OSD.

I have put the files in the attachment into /usr/local/bin (need to sudo or become root)

Add and in "system - settings - startup programs".

Open "system - settings - keyboard shortcuts" and add a custom shortcut key named "alsa mute" and command "/usr/local/bin/alsa_master_mute".
Now assign the mute key to this command.

Repeat for "down" and "up".

There may be prettier solutions, but this one works. This is an ugly hack, and it's my first pythonscript, which I didn't put more effort in than necessary for it to work.

Sidenote: Totem seems to be patched to not function with alsa. Audio is muted and grayed out. Other than that the pulse-free experience is pleasant.

Install: sound control center (without pulesaudio)

If you followed second way to activate audio tray icon, you also have to re-activate the sound control center (because the Karmic one can work only with pulseaudio):

Extract his contents to any directory.
Copy the right application for your architecture (32 or 64 bit) in /usr/local/bin directory.
Copy file in /usr/share/gnome-control-center/glade directory.
Launch /usr/local/bin/gnome-sound-properties file to configure audio settings.
Here's my actual configuration:

Alsamixer settings: playback without headphones

Alsamixer settings: playback with headphones
("Front" line is automagically muted)

Alsamixer settings: capture
("Capture" line is headphone mic, "Capture 1" something else :)

Alsamixer settings: all


[Karmic] Get back Alsa Mixer Applet
Mixer applet for karmic that doesn't depend on pulse
Upgrade Alsa (1.0.22) on Ubuntu Karmic Koala 9.10
ALSA Gnome panel applet in Ubuntu 9.10 Karmic

Asus K50IJ / X5DIJ led wifi

Sugli Asus di serie K50 la sequenza Fn+F2 spegne/accende correttamente l'interfaccia wifi del computer. Il led che indica lo stato del wifi resta sempre acceso. Ecco come sistemare questo bug.

Aprire il file che contiene le definizioni di alcune funzioni relative ai cambiamenti di stato nelle periferiche gestite da acpi:
sudo vi /usr/share/acpi-support/state-funcs

Modificare in linea 9 da:
if [ -d $DEVICE/wireless ]; then

if [ -d $DEVICE/wireless ] || [ -d $DEVICE/phy80211 ]; then

e in linea 107 da:
test -w /sys/devices/platform/asus-laptop/wlan && echo -n "$action" > /sys/devices/platform/asus-laptop/wlan

test -w /sys/devices/platform/asus_laptop/wlan && echo -n "$action" > /sys/devices/platform/asus_laptop/wlan

Salvare il file e riavviare la macchina.

ATTENZIONE!!!: il file modificato fa parte del pacchetto acpi-support, potrebbe essere necessario riapplicare le modifiche in caso di upgrade o di reinstallazione dello stesso.

ATTENZIONE 2!!!: pare che lo script venga lanciato senza permessi di scrittura sul file /sys/devices/platform/asus_laptop/wlan quindi il led non viene spento/acceso correttamente alla pressione di Fn+F2 ... bisognera' trovare una soluzione....

sabato 26 dicembre 2009

Asus K50IJ / X5DIJ audio

(English version available at

13 Feb 2010: Il pacchetto linux-backports-modules-alsa-`uname -r` deve essere installato manualmente ad ogni installazione di nuovi kernel.
12 Feb 2010: Ora e' possibile aggiornare alsa installando il pacchetto linux-backports-modules-alsa-`uname -r`
30 Dic 2009: Aggiornato link alsa-driver da 1.0.22 a

Pare che dopo qualche successino parziale siamo arrivati a configurare in maniera decente l'audio dei notebook Asus serie K50 (k50ij, x5dij, etc...) con Ubuntu Karmic Koala 9.10.

Vi consiglio di leggere bene il post prima di procedere con l'installazione in quanto sono possibili alcune alternative.

Disinstallazione pulseaudio

sudo apt-get remove --purge pulseaudio

Installazione alsa 1.0.22

Traduzione e adattamento da

Prima di aggiornare ALSA, vediamo la versione attualmente installata sul nostro sistema:
cat /proc/asound/version

dovremmo ottenere qualcosa di simile:
Advanced Linux Sound Architecture Driver Version 1.0.20.

Per evitare problemi durante l'aggiornamento di Alsa-utils, dobbiamo fermarlo con il comando seguente:
sudo /etc/init.d/alsa-utils stop

Dobbiamo installare i tool necessari alla compilazione e i kernel headers:
sudo apt-get -y install build-essential ncurses-dev gettext xmlto
sudo apt-get -y install linux-headers-`uname -r` libncursesw5-dev

Andiamo nella nostra home e scarichiamo l'ultima versione di alsa-driver, alsa-lib and alsa-utils :
cd ~
rm -rf ~/alsa* ~/.pulse*

Creiamo una nuova directory per la compilazione e installazione. Copiamo in questa directory i 3 file scaricati:
sudo rm -rf /usr/src/alsa
sudo mkdir -p /usr/src/alsa
cd /usr/src/alsa
sudo cp ~/alsa* .

Estraiamo il contenuto dei 3 tar file:
sudo tar xjf alsa-driver*
sudo tar xjf alsa-lib*
sudo tar xjf alsa-utils*

Compiliamo e installiamo alsa-driver:
cd alsa-driver*
sudo ./configure
sudo make
sudo make install

Compiliamo e installiamo alsa-lib :
cd ../alsa-lib*
sudo ./configure
sudo make
sudo make install

Compiliamo e installiamo alsa-utils :
cd ../alsa-utils*
sudo ./configure
sudo make
sudo make install

Se come me ottenete il seguente errore durante l'esecuzione dell'ultimo “sudo ./configure” :
checking form.h presence... yes
checking for form.h... yes
checking for new_panel in -lpanelw... no
configure: error: panelw library not found

Dovete aggiugere i seguenti link simbolici (solo in presenza dell'errore) e rilanciare il comando “sudo ./configure” :
sudo ln -s /usr/lib/
sudo ln -s /usr/lib/
sudo ln -s /usr/lib/
sudo ln -s /lib/

Rimuoviamo i 3 tar file dalla home in quanto non piu' necessari (a meno che non li vogliate conservare per installazioni successive):
rm -f ~/alsa-driver*
rm -f ~/alsa-lib*
rm -f ~/alsa-utils*

Riavviamo il computer. la versione di ALSA installata dovrebbe essere la 1.0.22. Verifichiamolo con il comando:
cat /proc/asound/version

dovremmo ottenere qualcosa di simile:
Advanced Linux Sound Architecture Driver Version 1.0.22.
Compiled on Dec 17 2009 for kernel 2.6.31-16-generic (SMP).

Giusto per essere sicuri che tutto sia ben configurato, eseguiamo il comando:
sudo alsaconf

e facciamo ripartire il computer un'altra volta.

Installazione backport-alsa

La procedura precedente in certi casi terminava con l'audio non funzionante. Lanciando il comando
aplay -l

viene visualizzato solo
**** List of PLAYBACK Hardware Devices ****

invece di elencare le schede audio disponibili (mentre questo vengono elencate correttamente dal comando cat /proc/asound/cards). Allo stesso tempo, lanciano il comando

viene visualizzata la segnalazione seguente:
This sound device does not have any controls.

In questi casi tutto e' tornato a posto installando i moduli alsa da backport:
sudo apt-get install linux-backports-modules-alsa-2.6.31-17-generic

Installazione vecchia configurazione audio (pre pulseaudio) e installazione icona audio in tray

All'inizio di questo post abbiamo rimosso pulseaudio, purtroppo questo e' talmente integrato in Karmic Koala che cosi' facendo perdiamo il controllo del volume nel pannello di Gnome e la possibilita' di configurare l'audio del nostro computer dal menu System-Preferences-Sound.

Traduzione e adattamento da

Josh Green ha ha creato i pacchetti che includono un applet mixer. Per riavere il vecchio mixer e i tool di Gnome basati su gstreamer, installiamo il pacchetto gnome-media da Ubuntu Jaunty. Questo consentira' al pulsante "Controllo Volume" di funzionare con l'applet del mixer.

Pacchetti binari i386 gnome-applets:

gnome-applets_2.28.0-0unofficial1_i386.deb (MIRROR)
gnome-applets-data_2.28.0-0unofficial1_all.deb (MIRROR)

Link ai pacchetti gnome-media di Ubuntu Jaunty 9.04, scarichiamo quelli appropriati per la nostra architettura di CPU:


In caso si voglia compilare i pacchetti gnome-applets, per altre architeture diverse da i386 o per incorporare nuove modifiche, ecco i sorgenti e una patch preparata da Josh. Questo non e' necessario se pensate di usare i pacchetti binari i386 linkati precedentemente.
Estraete il pacchetto gnome-applets da qualche parte, applicate la patch di Ubuntu, seguita dalla petch "mixer_revival".
Compilate come fareste con qualsiasi pacchetto debian.

gnome-applets_mixer_revival_patch1.diff (MIRROR)

Questa soluzione e' molto pulita ma al momento e' funzionante solo su sistemi i386 (32 bit), non avendo nessuna voglia di ricompilare il tutto per il mio amd64 (64 bit) ho preferito usare la soluzione seguente.

Installazione icona audio in tray e configurazione hotkeys per mute, volume up, volume down

Per il controllo volume e' possibile in alternativa utilizzare gli script che potete scaricare QUI.

Requisito fondamentale e' aver installato i pacchetti python-alsaaudio e python-gnome2-extras.

Per controllare il volume con i tasti dedicati presenti sulla tastiera del computer viene utilizzato uno script presente nel pacchetto appena scaricato. Sarebbe stato piu' semplice eseguire delle chiamate direttamente al comando amixer, pero' in questo modo e' stato possibile gestire le notifiche in OSD.

Estraete i file nella directory /usr/local/bin (dovete usare sudo o diventare root)

N.B.: per poter utilizzare questi script sul mio asus ho dovuto modificare tutte le occorrenze della stringa "Master" in "Master Front"

Aggiungete e in "System - Settings - Startup programs".

Aprite "System - Settings - Keyboard shortcuts" e aggiungete uno shortcut personalizzato con nome "alsa mute" e comando "/usr/local/bin/alsa_master_mute". Ora assegnate il tasto "Mute" a questo shortcut"

Aprite "System - Settings - Keyboard shortcuts" e aggiungete uno shortcut personalizzato con nome "alsa down" e comando "/usr/local/bin/alsa_master_down". Ora assegnate il tasto "Volume Down" a questo shortcut"

Aprite "System - Settings - Keyboard shortcuts" e aggiungete uno shortcut personalizzato con nome "alsa up" e comando "/usr/local/bin/alsa_master_up". Ora assegnate il tasto "Volume Up" a questo shortcut"

Probabilmente ci sono soluzioni piu' eleganti, questa comunque funziona.

Nota: Sembra che Totem sia stato patchato per non funzionare con ALSA. I suoi controlli dell'audio sono settati su "muto" e disabilitati (grigi). A parte questo si vive benissimo anche senza pulseaudio :)

Installazione vecchia configurazione audio (pre pulseaudio)

Per ovviare al mancato funzionamento dei settaggi audio in mancanza di Pulseaudio (nel caso abbiate seguito come me il secondo metodo per sistemare l'icona di controllo audio nel pannello) occorre:

Estrarne il contenuto in una directory qualsiasi.
Copiare l'eseguibile adatto al vostro sistema (32 o 64 bit) nella directory /usr/local/bin.
Copiare il file nella directory /usr/share/gnome-control-center/glade (crearla in caso non esista gia')

Eseguire il file /usr/local/bin/gnome-sound-properties per configurare l'audio del vostro sistema; ecco i settaggi impostati al momento sul mio computer:

Settaggi alsamixer: playback senza cuffie inserite

Settaggi alsamixer: playback con cuffie inserite

(notare che "Front" viene automaticamente messo in stato di muto (MM))

Settaggi alsamixer: capture
(la linea "Capture" corrisponde al microfono della cuffia, "Capture 1" non so)

Settaggi alsamixer: visione di insieme

Linkografia / Approfondimenti

[Karmic] Get back Alsa Mixer Applet
Mixer applet for karmic that doesn't depend on pulse
Upgrade Alsa (1.0.22) on Ubuntu Karmic Koala 9.10
ALSA Gnome panel applet in Ubuntu 9.10 Karmic

giovedì 24 dicembre 2009

Buone feste da MoosEsooM

Auguro a tutti i lettori di MoosEsooM un meraviglioso Natale e uno spettacolare Anno Nuovo pieno di opensource!!!

Approfitto dell'occasione per fare gli auguri anche alla meravigliosa alciotta che divide con me i miei giorni belli e brutti (ci potete vedere nella foto qui sopra): Auguri Ralu!!!!

mercoledì 23 dicembre 2009

Avahi e mt-daap: ultimo atto...forse....

Nei post precedenti (potete recuperarli inserendo "avahi" nel box di ricerca) avevamo affrontato in maniera forse un po' radicale i problemi causati dal demone AVAHI in varie applicazioni di rete di Linux.

Per riassumere questi i problemi causati dalla presenza di avahi nella nostra rete:
  • Timeout e malfunzionamenti nella risoluzione di nomi DNS
  • Impossibilita' di eseguire mt-daapd, il demone FireFly per la condivisione di musica in rete
  • Impossibilita' da parte di Rhythmbox e di altri client di rilevare automaticamente i server mt-daapd presenti in rete

Timeout e malfunzionamenti nella risoluzione di nomi DNS

Nei post precedenti avevamo eliminato alla radice il problema eliminando il demone-avahi (didinstallandolo o disabilitandone la partenza al boot).

In realta' il problema era dato dalla incompatibilita' del sistema avahi con la presenza di un server DNS e soprattutto di un qualsiasi dominio .local

Si deve pertanto modificare il dominio locale in modo che non termini con .local:
dominio.local e' sbagliato
dominio.locale e' giusto
dominio.lan e' giusto
dominio.mylan e' giusto
dominio.nostro e' giusto
dominio.pincopallino e' giusto

Impossibilita' di eseguire mt-daapd, il demone FireFly per la condivisione di musica in rete

Seguite le istruzioni di questo post per impostare il parametro -m ad ogni esecuzione di mt-daapd.

Impossibilita' da parte di Rhythmbox e di altri client di rilevare automaticamente i server mt-daapd presenti in rete

Create il file /etc/avahi/services/daap.service con il contenuto seguente:
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<!-- $Id: ssh.service 1391 2007-02-07 11:54:54Z lennart $ -->
<!-- See avahi.service(5) for more information about this configuration file -->

<name replace-wildcards="yes">%h</name>




Poi fate ripartire mt-daapd, chiudete e riaprite Rhythmbox e il vostro server mt-daap dovrebbe apparire automaticamente nel pannello di sinistra.

lunedì 21 dicembre 2009

Ci facciamo un giro?

giovedì 17 dicembre 2009

Parnassus e Garibaldi

Ieri sera ho visto il mirabolante film, di quel meraviglioso folle visionario di Terry Gilliam, "Parnassus - L'uomo che voleva ingannare il diavolo".

Non e' certamente ai livelli di Brazil, ma e' riuscito ugualmente ad entusiasmarmi.

Sapevo che Gilliam aveva tratto ispirazione dalla morte di Calvi impiccato sotto il Black Friars Bridge di Londra per la figura del protagonista impiccato in simili circostanze. Ignoravo pero' che la storia italiana potesse aver messo ulteriormente lo zampino in questo film.

E invece eccomi qui a pubblicare il frutto di una mia (allucinazione? intuizione? scoperta?...scegliete voi il vocabolo piu' adatto):

Che dite? Sono piu' pazzo di Terry Gilliam oppure ho scoperto un suo piccolo segreto? :)

lunedì 7 dicembre 2009

Exchange server 2007: Client was not authenticated

Se dopo aver installato Microsoft Exchange Server 2007 non ricevete posta dall'esterno e il mittente riceve l'errore:
Client was not authenticated

Il problema e' causato dal fatto che Exchange per default non puo' ricevere mail da client non autenticati.
Per risolvere il problema dovete accedere alla console di gestione di Exchange su:
Server configuration-Hub Transport-Default NOME_SERVER
Click destro-properties-Permission Groups
Selezionare Anonymous users
Cliccare su OK

domenica 6 dicembre 2009

Karmic Koala: impossibile cliccare su bottoni flash

Karmic Koala 64bit, le applicazioni flash partono correttamente ma non consentono di cliccare sugli eventuali bottoni che ne modificano/attivano il funzionamento.

Mi e' capitato con l'applicazione di per la valutazione della velocita' del collegamento ad internet e con gli slideshow didattici di VMware.

Nel primo caso e' impossibile eseguire il test, nel secondo e' impossibile controllare l'avanzamento o l'eventuale pausa della lezione corrente.

Il problema e' stato analizzato nel bug 410407 e al momento vengono dati alcuni workaround, applicate quello che preferite/funziona sul vostro sistema:

WORKAROUND 1: disabilitare compiz (Menu System/Preferences/Appearance/Visual Effects/None)

WORKAROUND 2: Rimuovere i pacchetti flashplugin-nonfree / flashplugin-installer e installare direttamente dal sito Adobe

WORKAROUND 3: Aprire un terminale e digitare:

sudo gedit /usr/lib/nspluginwrapper/i386/linux/npviewer

poi aggiungere la riga seguente prima dell'ultima riga di testo presente nel file:

ATTENZIONE!!!: Chrome e Chromium ora funzionano senza bisogno di alcun workaround

Per Firefox, io ho usato con successo il workaround 3/

Gimp: sostituire un colore

  1. Select-> by Color (set threshold to 0)
  2. Cliccare su un pixel del colore da sostituire
  3. trascinare con il mouse il nuovo colore sull'immagine.

sabato 5 dicembre 2009

Far rinascere un negozio zencart

Appunti per ricostruire un negozio online basato su zencart. Sono appunti personali ma potrebbero essere utili anche ad altri. Declino comunque qualsiasi responsabilita': se seguendo le istruzioni indicate il vostro negozio si spappola vi rimane solo una possibilita': IL BACKUP (perche' voi fate il backup vero?????)

N.B.: Questo post e' PERENNEMENTE in stato di WORK IN PROGRESS!!!!

Installare zencart
aggiornare /includes/configure.php e /admin/includes/configure.php con dati db
eseguire il file fix_cache_key.php da browser
Cercare nel db tramite phpmyadmin eventuali riferimenti a vecchia installazione
(per esempio posizione cache sulla tabella CONFIGURATION, ma si consiglia una ricerca su tutte le tabelle
Togliere i permessi di scrittura sui file /includes/configure.php e /admin/includes/configure.php
Rimuovere cartella zc_install
Copiare le cartelle images e admin/images

Attivare il sistema override

cp -av ./includes/languages/classic ./includes/languages/corimtec01
cp -av ./includes/languages/english/classic ./includes/languages/english/corimtec01
cp -av ./includes/languages/english/extra_definitions/classic ./includes/languages/english/extra_definitions/corimtec01
cp -av ./includes/languages/italian/html_includes/classic ./includes/languages/italian/html_includes/corimtec01
cp -av ./includes/languages/english/modules/order_total/classic ./includes/languages/english/modules/order_total/corimtec01
cp -av ./includes/languages/english/modules/shipping/classic ./includes/languages/english/modules/shipping/corimtec01
cp -av ./includes/languages/english/modules/payment/classic ./includes/languages/english/modules/payment/corimtec01
cp -av ./includes/languages/italian/classic ./includes/languages/italian/corimtec01
cp -av ./includes/languages/italian/extra_definitions/classic ./includes/languages/italian/extra_definitions/corimtec01
cp -av ./includes/languages/english/html_includes/classic ./includes/languages/english/html_includes/corimtec01
cp -av ./includes/languages/italian/modules/order_total/classic ./includes/languages/italian/modules/order_total/corimtec01
cp -av ./includes/languages/italian/modules/shipping/classic ./includes/languages/italian/modules/shipping/corimtec01
cp -av ./includes/languages/italian/modules/payment/classic ./includes/languages/italian/modules/payment/corimtec01
cp -av ./includes/modules/classic ./includes/modules/corimtec01
cp -av ./includes/modules/sideboxes/classic ./includes/modules/sideboxes/corimtec01
cp -av ./includes/templates/classic ./includes/templates/corimtec01
cp -av ./includes/templates/classic/css ./includes/templates/corimtec01/css
cp -av ./includes/templates/classic/images ./includes/templates/corimtec01/images
cp -av ./includes/templates/classic/templates ./includes/templates/corimtec01/templates
cp -av ./includes/templates/classic/common ./includes/templates/corimtec01/common

selezionare il nuovo template da admin-strumenti-scegli template-modifica

Se ricaricando il sito non appaiono i box laterali andare su admin-strumenti-gestione box laterali e clicca su RESETTA in fondo alla pagina.

Allargare il template a tutto schermo:

Per attuare la modifica, aprire il includes/templates/YOUR_TEMPLATE/css/stylesheet.css e sostituire il valore presente di 770px con quanto desiderato. (auto=pieno schermo)

Cercare la riga:
/*wrappers - page or section containers - controllo dimensione dello schermo */
#mainWrapper {background-color: #ffffff; text-align: left; width: 770px; vertical-align: top; border: 1px solid #aeaeae;}

Attenzione che allargando al 100% andrà necessariamente adattata l'immagine di fondo nell'intestazione. Il relativo codice è poche righe più sotto:
#logoWrapper{background-image: url(../images/header_bg.jpg); background-repeat: repeat-x;background-color: #ffffff;height:75px;}


I seguenti addons sono copiati e scompattati per backup nella cartella ADDON della home del negozio

Installare addon ultimate_seo_urls_2-107


1. Copy files from `_zen_cart_folder` to your Zen Cart install
2. Copy (or MERGE if you have made changes) files from v138-specific-files to your Zen Cart install
3. A sample .htaccess file is included. Simply rename to .htaccess and edit the word /shop/ to match your site
4. Config the module in CONFIGURATION - SEO URLS

No additional steps. Automatic Update. Contrib config will be reset.

If your site is new go to the config and change the option Enable automatic redirects to false.


Se per caso non viene eseguito il rewrite attuato da ultimate seo, bisogna attivare il modulo mod_rewrite di apache, vediamo le istruzioni per sistemi debian:


now use locate to find if the is availble on your server


it will found in “/usr/lib/apache2/modules”

new apache follow some folders to enable and desuable mods.
so now do this:

cd /etc/apache2/mods-enabled
touch rewrite.load
gedit rewrite.load (you may use any editor to edit this file)

now paste this following line

LoadModule rewrite_module /usr/lib/apache2/modules/

Then edit /etc/apache2/sites-available/000-default

Find the following

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

and change it to

Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all

and finally restart Apache

/etc/init.d/apache2 restart


Installare addon per categorie "abbellite"
Installazione addon BetterCategoriesEZInfo per abbellire il menu delle categorie:

Installare addon per menu orizzontale

Installare addon per il menu orizzontale

Probabilmente mancheranno i titolo del menu orizzontale, andate nella root del negozio ed eseguite il comando seguente:

cp ./includes/languages/english/extra_definitions/corimtec01/headermenu.php ./includes/languages/italian/extra_definitions/corimtec01/headermenu.php

editate e traducete i valori nel file
Personalizzare il logo

copiare il logo prescelto in includes/templates/corimtec01/images/logo.gif
rimuovere "QUI IL TUO SLOGAN" da

Centrare il background del logo:

editare /includes/templates/corimtec01/css/stylesheet.css


#logoWrapper{ background-image: url(../images/header_bg.jpg); background-repeat: no-repeat; background-color: #ffffff; height:64px; background-position : right; }

e cambiarlo in:

#logoWrapper{ background-image: url(../images/header_bg.jpg); background-repeat: no-repeat; background-color: #ffffff; height:64px; background-position : center; }

Modificare altezza del
background del logo:

Nel codice precedente cambiare il 64px nell'altezza desiderata

Forzare le dimensioni del logo:

in /var/www/shop/includes/languages/italian/corimtec01/header.php
modificare le seguenti assegnazioni:
define('HEADER_LOGO_WIDTH', '200px');
define('HEADER_LOGO_HEIGHT', '70px');

Modificare lo sfondo del logo:

sostituire l'immagine
/includes/templates/corimtec01/images/header_bg.jpg oppure inserire nella cartella il nuovo sfondo e aggiornare il file precedente (stylesheet.css)

Centrare il logo:

Aggiungere in fondo al file
le seguenti linee:

#logo {
width: 100%;
text-align: center;

Trovare le immagini assenti:

esportare da phpmyadmin le immagini dei prodotti con la query presente:
SELECT products_image
FROM `products`

Esportarla su file ODT, aprirlo con open office e salvarlo come .txt, cancellare le prime righe relative alla struttura della tabella.

ordinare il file con il comando seguente:
sort -u products.txt > immaginiProdotti.txt

Spostarsi nella cartella /includes/images

eseguire il comando seguente per avere la lista delle immagini non presenti nel filesystem ma presenti nel db:

while read line; do if [ -f "${line}" ]; then echo "${line} OK"; else echo "${line} NO"; fi; done <> lista.txt

spostare il file lista.txt nel computer su cui potrebbero esserci le immagini mancanti e lanciare il comando seguente:

updatedb;while read line; do echo "${line}"; locate "${line}" ; done <> locate_immagini.txt

i file elencati nel risultante file locate_immagini.txt possono essere inserite nella directory /images dello shop

Modificare immagine background "finestre" e top dell'header:

Copia del tile_back.gif personalizzato in includes/templates/corimtec01/images

Eliminare il menu categorie (orizzontale su header):

settare a 0 la voce config-gestione layout-Menù Categorie Tabellare - ON/OFF

Eliminare la scritta
Zen Cart, E-commerce su misura
per tutte le esigenze e tutti i budget!:

Modificare l'assegnazione seguente nel file /includes/languages/italian/corimtec01/index.php

define('HEADING_TITLE', 'Zen Cart, E-commerce su misura
per tutte le esigenze e tutti i budget!');

<meta equiv="CONTENT-TYPE" content="text/html; charset=utf-8"> <meta name="GENERATOR" content=" 3.0 (Linux)">

Se i mesi sono indicati in inglese:

Setti in: /includes/languages/italian.php

correttamente a riga 22 circa:

// look in your $PATH_LOCALE/locale directory for available locales..
// on RedHat try 'it_IT'
// on FreeBSD try 'it_IT.ISO_8859-1'
// on Windows try 'it', or 'Italian'
@setlocale(LC_TIME, 'it_IT');

e se ancora non vedi l' italiano è un problema del server ( mancanza del supporto alla lingua italiana )

I link 'registrarti' e 'tua identita' sono invertiti?:

modificare nel file /includes/functions/functions_customers.php

$greeting_string = sprintf(TEXT_GREETING_GUEST, zen_href_link(FILENAME_LOGIN, '', 'SSL'), zen_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'));


$greeting_string = sprintf(TEXT_GREETING_GUEST, zen_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'), zen_href_link(FILENAME_LOGIN, '', 'SSL'));

Forum phpBB accessibile da zencart:

Installare phpBB prima di zencart (possibilmente)
durante install di zencart rispondere a domande su phpBB
il path di phpBB deve essere assoluto (es.: /var/www/miosito/forum)

all'atto dell'iscrizione di un utente nel negozio zencart viene chiesto anche il nick per il forum
Se questo campo non viene visualizzato verificare su admin che il supporto phpBB sia attivo (true) e che il path del forum sia completo e terminato da uno (e controllare sia uno solo) slash

se all'atto dell'iscrizione dell'utente su zencart si ottiene l'errore

1054 Unknown column 'group_description' in 'field list'

allora bisogna andare nel file /includes/classes/class.phpbb.php e sostituire la funzione phpbb_create_account con il sorgente che trovate qui sotto

function phpbb_create_account($nick, $password, $email_address) {
if ($this-
>phpBB['installed'] != true || !zen_not_null($password) || !zen_not_null($email_address) || !zen_not_null($nick)) return false;
if ($this-
>phpbb_check_for_duplicate_email($email_address) == 'already_exists') {
// $this-
>phpbb_change_email($old_email, $email_address);
} else {
$sql = "select max(user_id) as total from " . $this-
$phpbb_users = $this-
$user_id = ($phpbb_users-
>fields['total'] + 1);
$sql = "insert into " . $this-
>phpBB['users_table'] . "
(user_id, group_id, username, username_clean, user_password, user_email, user_regdate)
('" . (int)$user_id . "',2, '" . $nick . "', '" . $nick . "', '" . md5($password) . "', '" . $email_address . "', '" . time() ."')";
$sql = " update " . $this-
>phpBB['config_table'] . " SET config_value = '{$user_id}' WHERE config_name = 'newest_user_id'";
$sql = " update " . $this-
>phpBB['config_table'] . " SET config_value = '{$nick}' WHERE config_name = 'newest_username'";
$sql = " update " . $this-
>phpBB['config_table'] . " SET config_value = config_value + 1 WHERE config_name = 'num_users'";

$sql = "INSERT INTO " . $this-
>phpBB['user_group_table'] . " (user_id, group_id, user_pending)
VALUES ($user_id, 2, 0)";

Se ricevete l'errore:

064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= '54' WHERE config_name = 'newest_user_id'' at line 1
[ update phpbb_configSET config_value = '54' WHERE config_name = 'newest_user_id']

Allora nella funzione descritta al punto precedente dovete inserire uno spazio tra gli apici e la parola SET nelle linee indicate qui:

$sql = " update " . $this-
>phpBB['config_table'] . "SET config_value = '{$user_id}' WHERE config_name = 'newest_user_id'";
$sql = " update " . $this-
>phpBB['config_table'] . "SET config_value = '{$nick}' WHERE config_name = 'newest_username'";
$sql = " update " . $this-
>phpBB['config_table'] . "SET config_value = config_value + 1 WHERE config_name = 'num_users'";

Fatto questo l'integrazione tra zencart e phpBB sara' funzionante e tra le pagine extra di zencart apparira' il link al Forum.



settare il numero desiderato in Admin-Valori massimi-Più Venduti per Box


settare a zero i relativi campi in Admin-configurazione-indice listino


settare il numero desiderato in Admin-Valori massimi-Prodotti in Offerta visualizzati nella pagina Principale - Numero massimo

Default 9 - nostro 3



settare il numero desiderato in Admin-Valori massimi-????

non e' Elenco Nuovi Prodotti - Numero per Pagina



modificare il file tpl_header.php nella cartella includes/templates/MIO_TEMPLATE/common:

spostare il blocco
<!--bof-navigation display-->
<!--eof-navigation display-->

Subito dopo alla linea
<!--eof-branding display-->


admin-configurazione-valori massimi-Prodotti Novità visualizzati - Limitati a ...
Seguire le istruzioni a video relative al campo da modificare



Nel file /includes/languages/italian.php correggere la linea seguente:

Line #123 : define('BOX_MANUFACTURER_INFO_HOMEPAGE', 'La HP di %s ');



Procurarsi nuovi pulsanti (ci sono diversi generatori online)
Mettere i file generati nella cartella include/templates/MIO_TEMPLATE/buttons/italian
(o nella cartella della lingua corrispondente)


Prendere i file /include/templates/template_default/sideboxes/tpl_search.php e

Copiarli in /include/templates/MIO TEMPLATE/sideboxes/

Nel file tpl_search.php sostituire la linea che comincia con (subito dopo l'else):

$content .= zen_draw_input_field('keyword', '', 'size="18" ......

con la linea

$content .= zen_draw_input_field('keyword', '', 'size="18" maxlength="100" style="width: ' . ($column_width-30) . 'px"') . '

(la trovate gia' pronta prima dell'else)

Nel file tpl_search_header.php sostituire la linea che comincia con (subito dopo l'else):

$content .= zen_draw_input_field('keyword', '', 'size="6" maxlength="30".....

con la linea

$content .= zen_draw_input_field('keyword', '', 'size="6" maxlength="30" style="width: 100px" value="' . HEADER_SEARCH_DEFAULT_TEXT . '" onfocus="if (this.value == \'' . HEADER_SEARCH_DEFAULT_TEXT . '\') this.value = \'\';" onblur="if (this.value == \'\') this.value = \'' . HEADER_SEARCH_DEFAULT_TEXT . '\';"') . ' ' . zen_image_submit (BUTTON_IMAGE_SEARCH,HEADER_SEARCH_BUTTON);

(la trovate gia' pronta prima dell'else)

Per la SEARCH nell'header ci possono essere problemi di allineamento verticale, sistemiamoli:
nel file includes/templates/corimtec01/css/stylesheet.css aggiungere le seguenti linee:

form, select, input {
font-size: 1em;
padding: 0.1em;



Inserire queste linee in /include/templates/MIO_TEMPLATE/css/stylesheet.css:

.productListing-data {padding-top: 12px; padding-bottom: 12px; padding-right: 12px; margin-right:1.0em; border-bottom: 1px solid #cc0000; }
.listingDescription {text-align: left; }

Viene inserita una linea sottile azzurra tra i prodotti e viene allineato il testo di descrizione a sinistra.


cambiare l'attributo color di #navMain


scaricare l'addon Search in Categories Header (

estrarre il file tpl_search_header.php

Editarlo e cambiare la stringa "All Categories" in "Tutto il negozio"
Copiare il file nella cartella /includes/templates/MIO_TEMPLATE/sideboxes (fare un backup dell'originale prima di eseguire la copia)

editare il file

/includes/languages/italian.php e modificare il valore della costante BOX_HEADING_SEARCH da "Trova" a "Trova in"



definire in stylesheet.css:

#logo {
width: 497px;
float: left;

#logoSearch {
color: #ffffff;
vertical-align: middle;
float: right;

Editare il file /include/templates/MIO_TEMPLATE/common/tpl_header.php e spostare la linea contenente "sideboxes/search_header.php" subito dopo la linea contenente la div id="logo"

Modificare la linea appena spostata racchiudendola tra i tag div id="logoSearch" e /div




#2C5AA0 (blu)



Nel file /include/templates/MIO_TEMPLATE/css/stylesheet_header_menu.css

modificare la definizione dell'attributo "background" per div#dropMenu ul.level1 impostando il colore prescelto.


Copiare il file /includes/templates/template_default/common/html_header.php sulla cartella /includes/templates/corimtec01/common

Inserire nel file /includes/templates/corimtec01/common/html_header.php

< ?php if ((defined('ROBOTS_PAGES_TO_SKIP') && in_array($current_page_base,explode(",",constant('ROBOTS_PAGES_TO_SKIP')))) || $current_page_base=='down_for_maintenance' || isset($_GET['sort']) || isset($_GET['language']) || isset($_GET['currency']) || isset($_GET['alpha_filter_id']) || isset($_GET['alpha_filter_id']) { ? >

N.B.: togliere lo spazio tra i simboli di minore e maggiore e i punti esclamativi (ho dovuto aggiungerlo per evitare che Blogger lo distruggesse)



cercare .leftBoxContainer, .rightBoxContainer in stylesheet.css



pannello admin

menu configurazione > info negozio

2 righe:
mostra prezzi tasse incluse
mostra prezzi tasse incluse in admin

li metti in "true" (vero) e vedrai prezzi ivati sia nel pannello che sul sito.


Cambiare lo sfondo ai bordi esterni del sito

Per impostare un colore:

body {
margin: 0;
font-family: verdana, arial, helvetica, sans-serif;
font-size: 62.5%;
color: #000000;
background-color: #fff; /* this is white */
/* background-color:#ccc; this is gray */

per impostare un'immagine di background:

body {
margin: 0;
font-family: verdana, arial, helvetica, sans-serif;
font-size: 62.5%;
background-image: url(../images/body_bg.jpg);
color: #000000;
background-color: #eeeeee;



- rinominare folder da /admin a /NUOVO_NOME_ADMIN

- sostituire tutte le ricorrenze di /admin con /NUOVO_NOME_ADMIN nel file /NUOVO_NOME_ADMIN/includes/configure.php



Non e' stata inserito il nome nella lingua corrente.


Chmod ricorsivo selettivo: file o directory

Capita di dover sistemare i permessi di un albero di directory, i piu' faciloni vi diranno di lanciare un bel:
chmod -R 777 *

che sistema tutto.
Sarebbe meglio fare un uso piu' attento dei permessi e correggere separatamente quelli delle directory:
find . -type d -exec chmod 755 {} \;

e quelli dei file
find . -type f -exec chmod 644 {} \;

  • La correzione verra' fatta a partira dalla directory da cui lanciate il comando.
  • Aggiustate le permissions (755 e 644 sono solo un esempio) secondo il vostro bisogno.

venerdì 4 dicembre 2009

fetchmailconf: /usr/bin/python: can't open file '/usr/lib/python2.6/site-packages/': [Errno 2] No such file or directory

Lanciando il comando fetchmailconf subito dopo averlo installato con Synaptic si ottiene l'errore del titolo.

Non c'e' nessuna directory con nome 'site-packages' in '/usr/lib/python2.6', ma c'e' un file '/usr/lib/python2.6/dist-packages/'.

Dopo aver aggiornato lo script '/usr/bin/fetchmailconf' per usare il path corretto, fetchmailconf viene eseguito correttamente.

Wordpress: errore 500 dopo upgrade automatico su piattaforma Aruba

Dopo aver eseguito l'aggiornamento automatico alla piu' recente wodrpress ogni tentativo di collegarsi all'interfaccia di amministrazione termina con errore 500.

Entrare con le proprie credenziali su:

Spostatevi in “Pannello gestione Hosting Linux
Entrate nella scheda “Strumenti e Impostazioni
Cliccate sulla voce “Riparazione Permissions
Confermate cliccando su OK
Attendete qualche minuto e ricaricate la pagina.
Il vostro blog dovrebbe ripartire senza problemi.

(appunti tratti dal post di Alessandro su )

giovedì 3 dicembre 2009

Virtualmin: errore 403 su host virtuale

Se appena creato un host virtuale con Virtualmin ci troviamo (navigando all'indirizzo dell'host) un errore 403 dobbiamo verificare i suoi log (si trovano nella directory logs della home directory dell'utente associato al virtual host).

Se trovate qualcosa del tipo:
Directory index forbidden by Options directive: /home//public_html/

il problema "potrebbe" essere di semplice soluzione. Provate a creare un file index.html nella directory indicata nell'errore.
Mettete nel file una semplice frase (va benissimo il classico IT WORKS! di default) e riprovate a collegarvi all'host con il vostro broswer di fiducia.

Se l'errore persiste bisogna ricontrollare i log del virtual host e forse quelli generali di apache (in /var/log/apache2) per verificare cos'altro possa essere andato storto in fase di creazione.

martedì 1 dicembre 2009

Openoffice: selezionare le unita' di misura

Potete selezionare diverse unita' di misura per i documenti di Writer, Writer/Web, Calc, Impress e Draw.

  1. Aprite un documento del tipo per cui volete cambiare le unita' di misura.

  2. Menu Strumenti - Opzioni.

  3. Sul pannello di sinistra, doppio click sull'applicazione per quale volete selezionare l'unita' di misura.

    Ad esempio doppio click su Writer se volete selezionare le unita' di misura per i documenti di testo.

  4. Click su Generale.

  5. Sulla pagina relativa al tab Generale, selezionare l'unita' di misura e chiudere la finestra con OK.

Lexmark x2500 su LInux: non esiste sporco...ehm...stampante impossibile....

Ho questa multifunzione ferma a prendere polevere da 2 anni, l'avevo comprata a un prezzo ridicolo un giorno che mi serviva con urgenza uno scanner (gli scannero costavano tutti almeno 3 volte tanto) in attesa che la mia fida Epson RX500 resuscitasse.

La terribile scoperta avvenne 5 minuti dopo che l'avevo estratta dalla scatola....non e' ASSOLUTAMENTE gestita o gestibile da Linux.

E' cominciato cosi' il periodo spento e polveroso della mia stampante.

Ieri sera girovagando nella blogosfera ho trovato qualche voce confortante e cosi' mi sono detto: perche' non provare?

Inizialmente ho dovuto lottare con un grosso problema: l'alimentatore non funziona piu' (e dire che non ha lavorato molto). sostituire un alimentatore non sarebbe un problema se utilzzasse un attacco piu' o meno standard, invece questa stampante utilizza un alimentatore interno-estraibile. Da un lato accetta un comune cavo elettrico da radio, dall'altro ha due piastrine che al momento dell'inserimento nella stampante vengono a contatto con due mollette.


trovato un altro alimentatore di pari potenza (ecco che ho fatto bene a portarmi dalla romania quell'alimentatore di una stampante che veniva gettata), ho aperto l'alimentatore della Lexmark, ho tolto un po' di componenti a caso per farmi spazio, ho praticato un foro nella carcassa per poter farci passare i cavetti provenienti dall'altro alimentatore e li ho saldati al retro delle piastrine.
Piccolo giro di tester giusto per escludere esplosioni al primo collegamento e via che la stampante si e' accesa correttamente...non garantisco sulla durata dell'accrocchio, ma al momento funziona.

(il momento dell'accrocchio vi e' stato gentilmente offerto dalla Grappa Tacchino Sigillo Vero)

Secondo problema..trovare i driver:
i driver linux per Lexmark 2500 non esistono, e bisogna cercarli nelle pagine dedicate alla sorella maggiore x2600. Ho detto cercarli e intendevo dire quello che ho andate nella pagina del supporto di e richiedete i driver per la x2600 vi vengono proposte solo le versioni per Windows e Mac. Per trovare l'oggetto del nostro desiderio dovete utilizzare il box di ricerca e cercare "linux driver download" o qualcosa del genere.

Siete fortunati e vi dico subito che possono essere scaricati qui:




1. Per Eee PC o altre distribuzioni basate su Debian scegliete l'opzione Debian 4 e scaricate il file:

2. Non collegate la stampante. Estraete il contenuto del file.

3. Vi troverete quindi un lo stesso file decompresso (l'estensione non sara' piu' ma .sh
Se non riuscite ad eseguirlo cliccandoci sopra dovete aprire un terminale e lanciare i comandi seguenti:
chmod 744

4. Ora seguite le istruzioni sullo schermo. Quando vi sara' chiesto di collegare la stampante, fatelo. Non verra' riconosciuta (perche' non e' una 2600, ma non c'e' problema), uscite cliccando su CLOSE e cliccando YES.

Su Ubuntu 9.04 e successive la procedura di installazione potrebbe fallire (viene segnalata una errata versione di cups) con l'errore:
The installer has detected the operating system does not meet CUPS minimum version requirements. Please install CUPS version 1.2 or higher and run the installer again.
Il problema si risolve rilanciando la procedura con la sintassi seguente:
./ --noexec --target lexmark_install

Poi seguite le istruzioni che trovate nella prima risposta di questo thread:

5. Ora bisogna editare tre file di testo per cambiare il product id (PID) da 011d (o 0x011d), che e' il PID per la serie X2600, a 010b (o 0x010b) che e' il PID per la Lexmark X2000. I comandi seguenti aprono i 3 file per la modifica.
sudo gedit /usr/lexinkjet/lxk08/etc/lxdn.conf
sudo gedit /usr/lexinkjet/lxk08/etc/99-lexmark-2600-series.rules
sudo gedit /usr/lexinkjet/lxk08/etc/Lexmarklxdn.conf
Sostituite tutte le ricorrenze di 011d in 010b (o 011D in 010B se fosse scritto in maiuscolo), salvate e uscite.

6. Ora aggiungete la stampante usando l'interfaccia di CUPS.
Nella prima casella nella pagina Nome/Descrizione non si possono usare spazi, quindi digitate lexmarkX2550 come unica parola. Nella pagina successiva, nella lista di selezione selezionate: "Lexmark USB Backend #1 (Lexmark X2500 series)". Come Modello/Driver selezionate "Lexmark 2600 series, 1.0 (en)".

7. Per finire cliccate su "Stampa pagina di prova" e incrociate le dita. ..
Anche lo scanner dovrebbe funzionare, suppur solo da computer e non utilizzando il bottone di scansione sulla stampante.
C'e' anche un programma di Lexmark per monitorare il livello degli inchiostri e per allineare le testine. Per eseguirlo lanciate da terminale il comando:

Purtroppo non sembra funzionare, probabilmente perche' non riconosce le cartucce della x2500.

Per allineare le testine su una stampante x2500 e' sufficiente premere per 3 secondi il bottone di scansione, inserire il foglio stampato sul vetro dello scanner e premere di nuovo il bottone di scansione.

giovedì 26 novembre 2009

Trovare i file che contengono due parole.

Metodi scaturiti da un thread su Erlug.

grep -l stringa1 * | xargs grep -l stringa2

o meglio
grep -lZ stringa1 * | xargs -0 grep -l stringa2 )

comm -1 -2 <(grep -wl stringa1 * | sort) < (grep -wl stringa2 * | sort)

Il parametro -l del comando grep nasconde il normale output e visualizza solo il nome dei che contengono il pattern ricercato.

Il parametro -Z del comando grep inserisce un carattere NULL come carattere conclusivo di ogni nome file da visualizzare: viene usato in caso l'output di grep debba essere passato a qualche altro comando (nell'esempio xargs)

Il comando comm confronta due file ordinati linea per linea.

Il parametro -1 del comando comm esclude dall'output le linee uniche del primo file

Il parametro -2 del comando comm esclude dall'output le linee uniche del secondo file

perl -n0e 'if(/stringa1/&&/stringa2/){print "$ARGV\n"}' *


awk 'FNR==1{stringa1=0;stringa2=0}
stringa1 && stringa2 {print FILENAME; nextfile}' *

giovedì 19 novembre 2009

Streaming senza Silverlight / Moonlight

Script che ci consente di visualizzare i canali RAI in streaming senza usare Firefox e le sue pesanti (e a volte malfunzionanti) estensioni:

Per chi preferisse un applet gnome per gestire gli streaming RAI potete installare UbuntuwinTV:

martedì 17 novembre 2009

Reimpostare la password di desktop remoto su Ubuntu/Debian

Per poterlo fare e' ovviamente necessario l'accesso fisico al server o tramite ssh.
Disabilitiamo l'accesso remoto:
gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled false

Generiamo una password criptata (Base 64) utilizzando il sito:

oppure mediante il comando:
echo -n PASSWORD | base64 -

Dove al posto di PASSWORD dovete inserire la password che volete impostare.
Impostiamo la password con il comando:
gconftool-2 -s -t string /desktop/gnome/remote_access/vnc_password PASSWORD_CRIPTATA

Dove al posto di PASSWORD_CRIPTATA dovete inserire la password generata.
Riabilitiamo l'accesso remoto:
gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled true

sabato 14 novembre 2009

Inkscape: disegnare una linea retta (segmento se siete pignoli)

Usate lo strumento Penna (Shift+F6). Cliccate sul punto iniziale, poi doppio click sul punto finale.

Potete disegnare molte linee connesse tra loro inserendo un singolo click in corrispondenza di ogni nuovo spigolo, completando la serie con il doppio click sul punto finale.

Per un pinguino piu'....verde....

Ma non cosi'.....
Sito molto interessante per rendere il nostro pinguino meno esoso in termini energetici:

Ubuntu: personalizzare il kernel

Verifichiamo la release correntemente installata con il comando
uname -r

sul mio sistema l'output del comando e'

ma ovviamente puo' variare su ogni sistema, continueremo ad usare questo come esempio per questo post.
Installiamo ora i sorgenti del kernel (ricordatevi di cambiare numero di versione se necessario)
sudo apt-get install linux-source-2.6.31 kernel-package libncurses5-dev fakeroot

I sorgenti vengono installati (come file tar compresso) nella directory /usr/src
D'ora in poi lavoreremo con credenziali di amministratore, lanciamo quindi il comando
sudo -s

Ora ci spostiamo nella directory contenente il kernel e lo scompattiamo (e' necessaria l'utility bunzip2 contenuta nel pacchetto bzip2):
cd /usr/src
bunzip2 linux-source-2.6.31.tar.bz2
tar xvf linux-source-2.6.31.tar
ln -s linux-source-2.6.31 linux

Facciamo una copia della configurazione del kernel in esecuzione per velocizzare il processo di configurazione del nuovo kernel (attenzione al carattere ` , non e' un apice singolo, bensi' un apice inverso che sulla tastiera italiana si ottiene con AltGr+' e corrisponde al codice ASCII 96):
cp /boot/config-`uname -r` /usr/src/linux/.config

Lanciamo l'utility che ci consente di personalizzare (o customizzare) il vostro kernel:
cd /usr/src/linux
make menuconfig

Prima di tutto scendete in fondo al menu e selezionate la voce
Load an Alternate Configuration File

seguite le istruzioni per caricare il file .config (basta premere INVIO)
Potete quindi cominciare a configurare il vostro kernel abilitando o disabilitando funzioni o moduli. Quando avete finito selezionate la voce

e salvate la configurazione quando richiesto.
Eseguiamo un make clean per verificare che tutto sia a posto:
make-kpkg clean

Lanciamo finalmente la compilazione:
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

ATTENZIONE!!! Se avete un dual core, un quad core o un sistema multiprocessore, potete ottimizzare la compilazione utilizzando la variabile di ambiente CONCURRENCY_LEVEL settata al doppio del numero dei processori o dei core.
Per sapere quanti processori/core ci sono sul nostro sistema possiamo lanciare il comando:
grep -c '^processor' /proc/cpuinfo

nel mio caso (dual core) ottengo un 2 quindi devo settare la variabile CONCURRENCY_LEVEL a 4.
Rivediamo il comando di compilazione del kernel alla luce di quanto appena detto:
CONCURRENCY_LEVEL=4 fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

Questo processo genera due file .deb nella directory /usr/src (al posto degli asterischi troverete il numero di versione del kernel compilato):

potete installare entrambi i pacchetti con il comando (torno al mio esempio):
dpkg -i linux-image-
dpkg -i linux-headers-


Quello appena installato viene configurato dal sistema come il kernel di default, se con questo la macchina non partisse dovete riavviare e premere ESC all'apparire di GRUB per poter selezionare il kernel precedente.

venerdì 13 novembre 2009

Horror stories

Non sono di norma superstizioso (ho anche un bellissimo gatto nero) ma oggi non ho parole (e purtroppo l'ho imparato sulla mia pelle):

Se vi dovesse capitare di rimuovere Microsoft Exchange 2007 da un server, ricordate che la procedura di rimozione non si limitera' a rimuovere dall'active directory tutte le informazioni relative ad Exchange: infatti vedrete sparire (e non subito, magari dopo che avete controllato) tutti gli utenti che prima erano associati a una mailbox di Exchange.

Ovvero, detto con le parole di exchange stesso: "hai degli utenti con delle caselle di posta, EVIDENTEMENTE questi utenti non hanno alcuna funzione oltre a quella di leggere e inviare posta, quindi visto che mi stai disinstallando preovvedero' a eliminarli per sempre e senza dirtelo."

Il tutto e' sfociato in una telefonata questa mattina alle 8:30: "Francesco, nessun utente riesce ad entrare nella rete" ... e sono tornato ora a casa senza aver fatto ne' colazione, ne' pranzo: fortuna che avevano solo 12 utenti....

martedì 10 novembre 2009

Gnome Sticky Notes: backup

Salvare il file ~/.gnome2/stickynotes_applet

lunedì 9 novembre 2009

Postfix: ipv4? ipv6? entrambi?

Le seguenti righe devono essere presenti nel file /etc/postfix/


inet_interfaces =
smtp_bind_address =

ipv4 + ipv6

inet_interfaces =, [::1]
smtp_bind_address =
smtp_bind_address6 = ::
inet_protocols = all

Se modificate il file ricordatevi di attivare le modifiche lanciando il comando:
/etc/init.d/postfix restart

Disabiltare ipv6 a partire da Ubuntu 9.10

Editare il file /etc/default/grub, cercare la variabile GRUB_CMDLINE_LINUX e valorizzarla come segue:

Se usate GRUB 2 eseguite
sudo update-grub2

altrimenti eseguite:
sudo update-grub
Dopo il riavvio del sistema il protocollo ipv6 sara' disabilitato.
Possiamo anche cancellare dal file /etc/hosts le righe relative a tale protocollo, ad esempio:
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Mettiti i pulsanti dove....preferisci....

Ovviamente si parla dei pulsanti presenti nella barra del titolo delle finestre di Gnome (chiudi,massimizza,minimizza,menu).

Lanciare il comando

modificare il valore

come segue.
Se volete i tasti a sinistra:

Se volete i tasti a destra: