martedì 29 dicembre 2009

Linus definisce Linux "grasso e grosso"

Tradotto da Linus calls Linux 'bloated and huge'

Linus definisce Linux "grasso e grosso"
Nessuna dieta in vista

LinuxCon 2009

Il createore di Linux Linus Torvalds afferma che il kernel open source è diventato "grasso e grosso", e nessuna "dieta bikini" è in vista.

Durante una tavola rotonda alla LinuxCon di Portland (Oregon) questo pomeriggio, il moderatore James Bottomley, insigne ingegnere presso Novell, ha chiesto a Torvalds se le funzionalità del kernel siano introdotte troppo velocemente, prima della sua stabilizzazione.

Citando uno studio interno di Intel che ha seguito le release del kernel, Bottomley ha affermato che le performance di Linux sono diminuite di circa due punti percentuali ad ogni release, accumulando così circa il 12% nelle ultime dieci release. "Ritieni questo un problema ?" ha chiesto.

"Stiamo diventando grassi e grossi. Sì, è un problema" ha detto Torvalds.

Alla domanda su cosa stia facendo la comunità per risolvere la questione, Torvalds ha replicato scoraggiato "Mi piacerebbe poter dire che abbiamo un piano", tra le risatine e gli applausi del pubblico. "Voglio dire che a volte è un po' triste constatare che non siamo per nulla il kernel piccolo, efficiente e razionale che ho immaginato 15 anni fa... Il kernel è grasso e grosso e e la nostra impronta icache è terrificante. Su questo non c'è dubbio. E può solo peggiorare man mano che aggiungiamo nuove funzionalità."

Torvalds sostiene, tuttavia, che la stabilità non è un problema. "Penso che siamo stati abbastanza stabili. Troviamo i bug alla stessa velocità con cui li introduciamo, nonostante aggiungiamo nuovo codice."

L'interpretazione di Bottomley è stata che a queste condizioni Trovalds ritiene accettabile l'attuale livello di integrazione. Ma Mr. Linux lo ha corretto. "No, non sto dicendo questo. Accettabile ed inevitabile sono due cose differenti. E' inaccettabile, ma è anche probabilmente inevitabile."

Tra i tecnofili, di solito è Windows ad essere tacciato di "obesità", ma Linux, nell'espandere la sua portata, inglobando un numero così grande di funzionalità e dispositivi, non può che essere vittima dello stessso destino.

"Okay, quindi in sintesi ritieni che quel 12 percento potrà rientrare il prossimo anno, e ti aspetti che salterà fuori qualcun altro con un piano per realizzare questa previsione", ha scherzato Bottomley. "Questo è l'open source."

venerdì 13 novembre 2009

Unire file pdf senza Adobe Acrobat

Si può utilizzare Ghostscript, in questo modo:


gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=finished.pdf file1.pdf file2.pdf


finished.pdf è il nome del file che verrà prodotto.

file1.pdf, file2.pdf sono i file che si vogliono concatenare. Ovviamente è possibile specificarne un numero arbitrario.

Credits: Linux.com

mercoledì 11 novembre 2009

Squid: rimuovere commenti e linee vuote da squid.conf

Nel file di configurazione di Squid ogni direttiva è preceduta da ampi commenti, molto utili come riferimento o come base di partenza per lo studio di nuove funzioni.

In alcuni casi però il file può risultare maggiormente leggibile quando vengono eliminati tutti i commenti (che includono anche le direttive non esplicitamente configurate) e le linee vuote.

Per produrre un file di configurazione "pulito" partendo dalla versione commentata si può utilizzare il potente comando grep:

Innanzitutto copiamo la versione attuale del file:

cp /etc/squid/squid.conf /etc/squid/squid.conf.bak


Partendo dalla copia di backup appena effettuata, eliminiamo tutte le righe che iniziano con il carattere # (commenti), oppure che sono vuote, e redirigiamo il risultato sul nuovo file di configurazione:


cat /etc/squid/squid.conf.bak | grep -v -E '(^#|^$)' > /etc/squid/squid.conf


Ora possiamo modificare agevolmente il file di configurazione, magari tenendo sott'occhio la copia di backup come riferimento.

lunedì 26 ottobre 2009

Monitor Samsung SyncMaster 720N e Ubuntu 9.04

Dopo aver installato Ubuntu 9.04 su un PC con monitor SyncMaster 720N, mi sono accorto che la risoluzione massima dello schermo era impostata su 1152x864, mentre quella nativa del monitor è 1280x1024.
Il motivo sembra risiedere nella non corretta rilevazione della frequenza orizzontale.
E' necessario quindi "dare una mano" al sistema inserendo alcune direttive nel file di configurazione di X.

1) Aprire una finestra di terminale (Applicazioni --> Accessori --> Terminale)

2) Digitare: sudo gedit
In questo modo si apre l'editor di testo in modalità "superutente", che dà la possibilità di modificare i file di sistema.

3) Aprire /etc/X11/xorg.conf











4) Aggiungere nella sezione "Monitor" le due righe seguenti:


HorizSync 30-81
VertRefresh 56-75






5) Aggiungere nella sezione "Screen" le righe seguenti:


DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1280x1024"
EndSubSection






6) Salvare il file, chiudere le applicazioni aperte e terminare la sessione di lavoro. Al rientro il desktop avrà la risoluzione di 1280x1024.
Può essere necessario premere il tasto "AUTO" sul monitor per ottimizzare la qualità dell'immagine.

mercoledì 1 aprile 2009

Come aprire i file PWI con Microsoft Word

Innanzitutto occorre copiare il file .pwi dal palmare al PC. Fatto questo lanciare MS Word ed aprire il file .pwi tramite la voce di menu File --> Apri.

Nota bene: se si utilizza la funzione "Apri con..." direttamente sul file .pwi, MS Word mostrerà una schermata bianca invece del contenuto del file.

Questo comportamento, che a mio modo di vedere è sintomo di un baco nel codice di Word, è segnalato in vari forum anche con Word 2003.

Dopo lunghe ricerche, mi sembra inoltre che non esista un programma di visualizzazione dei file .pwi per PC, in modo che sia possibile leggerli anche senza dover acquistare una licenza di MS Word. Né ho trovato una versione di InkWriter / NoteTaker per PC (o un programma equivalente).

Nota polemica: naturalmente queste "note" sono qualcosa di talmente innovativo e complesso che era necessario introdurre un nuovo formato di file... un'altra occasione sprecata per fare qualcosa di buono...

lunedì 9 marzo 2009

Windows XP: ordinare le voci del menu Programmi

Per ordinare alfabeticamente la lista dei programmi nel menu Start di Windows XP, seguire questa procedura:

Start --> Tutti i programmi --> Spostare il mouse su una voce di menu --> Tasto destro --> Ordina per nome

Se premendo il tasto destro del mouse non succede nulla, assicurarsi di avere selezionato la seguente opzione:

Tasto destro su Start --> Proprietà --> Personalizza --> Avanzate --> Attiva trascinamento della selezione

mercoledì 21 gennaio 2009

Monitorare la velocità di trasferimento delle interfacce con iptables

Questo semplice script in Perl rileva ogni 2 secondi i byte trasferiti dalle interfacce di rete (ad esempio eth0 ed eth1) e il valore dei contatori delle regole di iptables, e ne calcola la velocità di trasferimento in byte al secondo.

Impostando opportunamente iptables si può monitorare in questo modo il traffico web, mail, ftp, ecc.

Ecco il codice:



use strict;
use warnings;

# quanti secondi attendo tra un campionamento e l'altro
my $sleep_interval = 2;

# quali interfacce di rete monitorare
my @net_interfaces = qw( eth0 eth1 );

my @bytes;
my @bytes_prev;

my %net_bytes;
my %net_bytes_prev;

while (1) {
my @lines;

# puliamo lo schermo
system('clear');

# otteniamo la data e l'ora dal sistema
my $cur_timestamp = `date`;
chomp $cur_timestamp;

# visualizziamo alcune informazioni di servizio
print "Sampling delay: $sleep_interval s Current time: $cur_timestamp\n";

# leggiamo i contatori delle regole di iptables
@lines = `iptables -v -n -x -L`;

# per ogni regola calcoliamo la differenza del valore del contatore in bytes tra l'invocazione attuale e quella precedente di iptables
# ogni regola viene stampata con il valore della differenza
my $i = 0;
foreach my $line(@lines) {
chomp $line;
if ($line =~ / \A Chain /xms) {
print "\n$line\n";
}
elsif ($line =~ / (\d+) \s+ (\d+) /xms) {
$bytes[$i] = $2;
if (!$bytes_prev[$i]) {
$bytes_prev[$i] = $bytes[$i];
}
my $delta = ($bytes[$i] - $bytes_prev[$i]) / $sleep_interval;
print "[$i] $line - [$delta bytes/s]\n";
$bytes_prev[$i] = $bytes[$i];
}
$i++;
}

print "\n";

foreach my $net_if(@net_interfaces) {
@lines = `ifconfig $net_if`;
foreach my $line(@lines) {
chomp $line;
if ($line =~ / RX \s+ bytes:(\d+) .* TX \s+ bytes:(\d+) /xms) {
my $rx = $1;
my $tx = $2;

$net_bytes{$net_if}{'rx'} = $rx;
$net_bytes{$net_if}{'tx'} = $tx;
if (!exists $net_bytes_prev{$net_if}) {
$net_bytes_prev{$net_if}{'rx'} = $rx;
$net_bytes_prev{$net_if}{'tx'} = $tx;
}

my $delta_rx = ($net_bytes{$net_if}{'rx'} - $net_bytes_prev{$net_if}{'rx'}) / $sleep_interval;
my $delta_tx = ($net_bytes{$net_if}{'tx'} - $net_bytes_prev{$net_if}{'tx'}) / $sleep_interval;

printf "$net_if: RX %10.1f bytes/s TX: %10.1f bytes/s\n", $delta_rx, $delta_tx;

$net_bytes_prev{$net_if}{'rx'} = $net_bytes{$net_if}{'rx'};
$net_bytes_prev{$net_if}{'tx'} = $net_bytes{$net_if}{'tx'};
}
}
}


sleep($sleep_interval);
}

martedì 20 gennaio 2009

Tutto sul proprio PC: dmidecode

Cercando in rete informazioni su come controllare la luminosità del display del mio computer portatile, un Toshiba Satellite A100 (per la precisione il modello PSAANE-02R02MIT), ho trovato un forum in cui veniva menzionato il programma dmidecode.

Questo strumento fornisce una quantità notevole di informazioni sulla macchina. Tra le altre, l'esatto modello del computer (incluso il numero di serie), la presenza di eventuali porte seriali altrimenti nascoste (assenza del connettore DB9), ecc.

giovedì 15 gennaio 2009

smartctl e chipset nVidia

Tentando di eseguire un controllo su un disco maxtor collegato ad una scheda madre con processore AMD e chipset nVidia ho incontrato un problema:


smartctl -a /dev/sda

Device does not support SMART


La scheda madre adotta un chipset nVidia MCP51.

Dopo una breve ricerca ecco la soluzione:


smartctl -d ata -a /dev/sdsa