Linux visto dopo 6 mesi di Mac

Ebbene sì, sono passati quasi 6 mesi dal mio passaggio a Mac, mesi durante i quali ho usato poco o niente Linux come desktop.

Devo dire di essermi ormai abituato alla filosofia Apple, nel bene e nel male. Come se non bastasse il MacBook Pro, ho preso anche un iPhone 4, quindi anche in campo mobile ho abbracciato quello che Steve ha offerto.

Nelle ultime settimane, però, è tornata la voglia di smanettare con il pinguino.

Continue reading

ext3 e i blocchi riservati

A volte capita, riempiendo una partizione formattata in ext3, di trovarsi con spazio teoricamente libero, ma con Linux che ci indica la partizione come piena. Generalmente quando si ha ancora il 5% di spazio libero. Questo perché per impostazione predefinita, mkfs.ext3, quando formatta la partizione, riserva il 5% dei blocchi per root.

Hard DiskQuesta situazione è ben visibile utilizzando il comando df -h:

File system            Dim. Usati Disp. Uso% Montato su
/dev/sdc1              75G   71G     0 100% /media

Come potete vedere, ci sono ancora 4 Gb disponibili, ma la partizione risulta usata al 100%.

È possibile ridurre la percentuale di blocchi riservati senza formattare la partizione, ma semplicemente usando il comando tune2fs, ecco come:

sudo tune2fs -m 1 /dev/sdc1

Con questo comando riservo l’1% della partizione a root, che è molto più ragionevole del 5%, specialmente considerando che su grandi partizioni il 5% è molto, ad esempio su 1 Tb sono ben 50 giga!
df -h ci mostra la situazione dopo il comando tune2fs:

File system            Dim. Usati Disp. Uso% Montato su
/dev/sdc1              75G   71G  3,0G  96% /media

Di come un bug in uno script PHP possa mettere in ginocchio un sito

Il sito in questione è il mio, tuttoeniente.net, che ha un sistema creato da me per visualizzare le ultime notizie in ogni pagina. Per ovvie ragioni di spazio non posso visualizzare la notizia completa, quindi la tronco a 70 caratteri.

Tagliare brutalmente porterebbe ad avere 9 volte su 10 parole a metà, quindi avevo scritto uno stupidissimo script che taglia allo spazio successivo. Eccolo:

function ultime_news($notizie = 2, $forumid = 10, $cut = 70){
    $news = '';
    $q_news = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT $notizie");
    while($notizia = mysql_fetch_array($q_news)){
       $lenght = strlen($notizia['testo']);
       if($lenght > $cut){
            while(substr($notizia['testo'], $cut, 1) != ' '){
                $cut++;
            }
            $testo = substr($notizia['testo'], 0, $cut).' [...]';
        }else{
            $testo = substr($notizia['testo'], 0, $cut);
        }
        $data = strftime("%d/%m/%Y", $notizia['data']);
        $news .= "<p><a href=\"/news/$notizia[id]-".encode_for_url($notizia['titolo']).
                 ".html\"><span class=\"news-title\">$notizia[titolo]</span></a> ".
                 "<span class=\"news-date\">($data)</span><br />".
                 "<span class=\"news-text\">$testo</span></p>";
    }
    return $news;
}

Tutto bene, se non fosse che l’ultima notizia che ho inserito è “Si aggiungono nuove barzellette alla nostra collezione, corri a leggerle!”, 74 caratteri. A 70 caratteri siamo giusto a metà della parola “leggerle”, quindi avanziamo alla ricerca di uno spazio. Lettera, lettera, lettera, punto esclamativo. Fine. Nessuno spazio. Risultato? Loop infinito e sito KO. Peccato che quando ho inserito la notizia non ci ho fatto caso, e oggi ho dovuto smadonnare non poco prima di trovare la ragione del sito fuori uso…
La solulzione? Una banalissima limitazione dello spostamento del taglio fino alla lunghezza totale della notizia.
In pratica while(substr($notizia['testo'], $cut, 1) != ' '){ diventa while(substr($notizia['testo'], $cut, 1) != ' ' && $cut <= $lenght){

Convertire DTS in AC3 con Linux

Oggi ho avuto bisogno di convertire una traccia audio DTS (6 canali, o per meglio dire 5.1) in AC3, necessità abbastanza insolita per la verità.

Cercando in rete incappavo praticamente solo in guide per Windows, ma scavando bene ho trovato la soluzione anche per Linux, con un singolo comando da lanciare tramite shell:

dcadec -o wavall mio-file.dts | aften -v 0 - mio-file.ac3

Il processo potrebbe richiedere parecchio tempo, dipende dalla CPU, ma ci porterà a convertire mio-file.dts in mio-file.ac3 senza problemi e con un bitrate di 448 kbps, ~75 kbps per canale, sufficienti per un audio di buona qualità.

Requisiti per la conversione: dcadec e aften, installabili su Ubuntu tramite i pacchetti libdca-utils e aften

Confrontare le prestazioni di due server DNS

Con l’uscita dei Google Open DNS ho sentito la necessità di confrontare in modo oggettivo le loro prestazioni con gli OpenDNS che usavo  in precedenza, così ho recuperato le mie vecchie e scarse conoscenze di BASH e ho creato un piccolo script.

CompareDNS-mini

Lo script, che trovate qui, sfrutta il comando dig per risolvere per 5 volte gli IP collegati a 3 domini (google.com, ubuntu.com e kernel.org) con ciascuno dei 2 DNS passati come argomenti allo script, e facendo poi la media dei risultati.

Mi rendo conto che lo script è molto inelegante ed efficiente, ma fa il suo lavoro. Sono accettati consigli su come migliorarlo.

L’importanza del backup

Da un po’ di tempo sono diventato abbastanza paranoico sui backup: voglio che siano frequenti e ridondanti. Così ho impostato sia fisso che portatile per eseguire un backup giornaliero delle home sul mio NSLU tramite rsync. L’NSLU, a sua volta, esegue la mattina seguente una copia dei backup su un altro disco fisso: in totale ho 2 backup per ogni postazione: per fortuna.

backup

Questa politica semi-paranoica mi ha appena salvato il sederino: stavo ristrutturando il fisso, riorganizzando le partizioni nei dischi fissi ed era in corso lo spostamento della partizione /home, tramite Gparted sul CD live di Ubuntu Jaunty: freeze completo del PC a metà operazione. Imprecazioni. Altre imprecazioni, più pesanti. Niente da fare, i dati erano ben disintegrati, per fortuna che ho potuto copiare dall’NSLU tutti i dati fino a ieri alle 15.00, l’unica cosa mancante era un file .svg che avevo creato nel pomeriggio con Inkscape (gran programma, per altro), un invito per una festa che sto organizzando insieme alla compagnia. Per fortuna che avevo avuto l’accortezza di metterlo su Dropbox, altro gran servizio.

Per i curiosi, ecco come risulta quel file una volta renderizzato:midsummerparty

Per la cronaca, elleDj sono io 😀

La stampante HP si blocca stampando con Ubuntu: la soluzione

Ero tormentato da diversi mesi da un fastidiosissimo problema: mandando in stampa qualcosa, sia dal computer cui è connessa la mia vecchia ma ancora valida HP Photosmart 7760, sia da un altro computer tramite la rete, la stampante 9 volte su 10 si bloccava, costringendomi a staccare e riattaccare la corrente n volte prima di riuscire a stampare.

hpDopo qualche indagine mi sono reso conto che il driver Open Souce HPLIP era presente sui 2 computer in 2 versioni diverse, e nessuna versione era l’ultima disponibile. È stato quindi sufficiente scaricare la versione più aggiornata dal sito della HP (fornita in un abbastanza pratico file eseguibile .bin), installarla su entrambi i computer lasciando all’installer il compito di recuperare le dipendenze mancanti e la rimozione delle versioni precedenti del driver. Ora fila tutto liscio come l’olio. Grazie HP!

Sicuramente la differente versione dei driver era dovuta alle varie release di Ubuntu che si sono impilate una sull’altra: sul fisso l’ultima clean install è stata Hardy, mentre sul portatile risale addirittura a Feisty… Forse dovrei dare una pulita. 🙂

Tornare ad Amarok 1.4 in (K)ubuntu Jaunty

Dopo l’aggiornamento a Jaunty (eseguito senza il minimo problema sia sul fisso che sul portatile) mi sono trovato con Amarok 2, che a mio avviso non è assolutamente pronto per l’utilizzo quotidiano. Almeno non per il mio utilizzo quotidiano.

Amarok

Trovo la versione 1.4 quasi perfetta, non ha nessun problema a fare quello che mi serve: gestione della mia libreria (~30 GB), gestione del mio iPod Nano, gestione dei podcast con relativa sincronizzazione con l’iPod, ascolto delle radio online.

Al di là delle considerazioni personali su Amarok 2, ecco le istruzioni pratiche per rimuovere la versione 2 e reinstallare la 1.4 da un comodo PPA:

sudo apt-get remove amarok-common
echo 'deb http://ppa.launchpad.net/bogdanb/ppa/ubuntu jaunty main' | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install amarok14

Tutto qui!

Two Finger Scrolling su Ubuntu Intrepid

Mi ha incuriosito scoprire che la funzione Two Finger Scrolling dei portatili Apple è attivabile anche su Linux, così mi sono informato. Normalmente è sufficiente una piccola modifica a xorg.conf, nella sezione relativa al touchpad, ma in Ubuntu Intrepid questa è assente, perché tutto viene gestito da HAL. La modifica, quindi, si sposta ai file di configurazione di quest’ultimo, ben nascosti in /etc/hal/fdi/policy/.
Questa guida si riferisce ai touchpad Synaptics, che sono i più diffusi. Bisogna modifcare il file /etc/hal/fdi/policy/shmconfig.fdi ed inserire quanto segue (creare il file se non esiste):

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
 <device>
  <match key="input.x11_driver" string="synaptics">
   <merge key="input.x11_options.SHMConfig" type="string">True</merge>
   <merge key="input.x11_options.VertTwoFingerScroll" type="string">true</merge>
   <merge key="input.x11_options.HorizTwoFingerScroll" type="string">true</merge>
  </match>
 </device>
</deviceinfo>

La parte che attiva il Two Finger Scrolling è

   <merge key="input.x11_options.VertTwoFingerScroll" type="string">true</merge>
   <merge key="input.x11_options.HorizTwoFingerScroll" type="string">true</merge>

Ecco il risultato: