Ottenere di più da KRunner in KDE 4.x

KMenu icon by Oxygen KDE Team KRunner è l’interfaccia di KDE per avviare i programmi. Lo si avvia da tastiera di default con la combinazione Alt+F2. Oltre a essere un modo rapido per avviare software KRunner include diversi “fornitori di servizio” che gli permettono di eseguire molte altre attività differenti.

  1. File management. Basta specificare un percorso nel filesystem (ad. es.: /home/nomeutente ) per aprire il file manager predefinito, di default Dolphin.
  2. Web. Digitando un normale indirizzo web KRunner dà la possibilità di avviare direttamente il browser predefinito sulla pagina specificata.
  3. Google search. Per effettuare una ricerca su Google è sufficiente digitare gg:<parole chiave> seguito da Invio. KDE avvierà il browser predefinito sulla pagina di ricerca di Google relativa ai termini di ricerca inseriti. Per cercare immagini su Google images digitare images:<parole chiave>.
  4. Conversione unità di misura. Per convertire da una unità di misura all’altra digitare <valore> <unità di misura> in <unità di misura>. Ad esempio: 5 liters in gallons.
  5. Power management. KRunner si interfaccia con PowerDevil, il power manager di KDE, e permette di utilizzarne le funzionalità con le seguenti parole chiave:
    • power profile. Elenca i profili di gestione energetica disponibili e permette di scegliere quale attivare.
    • screen brightness. Elenca i livelli di luminosità dello schermo disponibili.
    • screen brightness n. Imposta la luminosità dello schermo al n%.
    • suspend. Mostra le opzioni per lo standby/ibernazione.
    • power governor. Permette di selezionare la politica per la gestione del clock della CPU
  6. Calcolatrice. Qualunque comando che inizia con “=” viene interpretato come una espressione matematica da calcolare. Ad esempio per calcolare la radice quadrata di 32+42 bisogna inserire =sqrt(3^2+4^2). La calcolatrice supporta funzioni come sqrt(), sin(), cos(), tan() e molte altre.
  7. E-mail. È sufficiente digitare il nome di un contatto della propria rubrica di KMail per avviare la finestra per inviargli una e-mail.

Accelerare Firefox 3 ripulendo il suo database

Firefox icon by everaldo.comCon Firefox 3.0 è stata introdotta la “Awesome Bar”: la barra degli indirizzi intelligente che può essere utilizzata come navigatore della cronologia.

Questa funzionalità fa un uso piuttosto intenso dei database intensi di Firefox, e con il tempo può diventare piuttosto lenta. È possibile però “ripulire” il database per ritornare ad avere buone performance. Per farlo:

  1. Dal menu Tools (Strumenti) selezionate Error Console (Console degli errori)
  2. Nella casella Code (Codice) inserite la seguente istruzione su un unico rigo:
    Components.classes["@mozilla.org/browser/nav-history-service;1"].getService(Components.interfaces.nsPIPlacesDatabase).DBConnection.executeSimpleSQL("VACUUM");
  3. Cliccate su Evaluate (Valuta): l’interfaccia grafica si bloccherà per alcuni secondi mentre i database di Firefox vengono riorganizzati.

Al termine dell’operazione la awesome bar di Firefox dovrebbe tornare ad avere buone prestazioni.

Usare SSH come server proxy

Web icon by everaldo.comPuò capitare che si disponga di un server a cui si dispone di accesso via SSH e si desideri utilizzarlo come server proxy per la navigazione sul web.

Il client SSH rende semplice questa operazione: permette di mettere in ascolto sulla macchina locale un server proxy SOCKS che rigirerà al server remoto tutte le richieste di connessione all’interno del “tunnel” SSH.

Supponendo di voler mettere in ascolto sulla porta locale 8080 il server proxy, che la macchina remota abbia IP 10.0.0.1 e che il nome utente remoto sia mrossi il comando da lanciare è:

ssh -D 8080 -Nf mrossi@10.0.0.1

(se il nome utente attuale è uguale a quello sulla macchina remota si può tralasciare la stringa mrossi@).

Una breve spiegazione degli switch utilizzati con SSH:

  • -D 8080: indica la volontà di creare un proxy SOCKS in ascolto sulla porta 8080 sull’indirizzo di loopback (127.0.0.1). Opzionalmente si può specificare qualunque indirizzo locale su cui mettersi in ascolto;
  • -N: indica a SSH che non si desidera eseguire alcun comando;
  • -f: fa sì che subito dopo l’autenticazione SSH vada in background.

Una volta eseguito il comando si può configurare il proprio browser per utilizzare il proxy SOCKS in ascolto su 127.0.0.1:8080. Se il vostro browser è Firefox potete utilizzare FoxyProxy per gestire facilmente i proxy.

Chi sta accedendo al disco? Monitorare l’uso dell’I/O.

HardDisk icon by everaldo.com Una feature molto comoda del task manager di Windows è quella che permette di visualizzare quali processi stanno scrivendo su disco e in quale misura. È possibile ottenere queste informazioni anche su Linux. Un metodo rapido per ottenere un’informazione del genere è eseguire da root:

echo 1 > /proc/sys/vm/block_dump

Eseguendo dmesg sarà possibile avere un colpo d’occhio di quali processi stiano effettuando burst di scritture, con un output simile a questo:

[  409.805443] firefox-bin(4288): WRITE block 25335048 on sda7
[  409.805468] firefox-bin(4288): WRITE block 25335112 on sda7
[  409.805493] firefox-bin(4288): WRITE block 25335136 on sda7
[  409.805520] firefox-bin(4288): WRITE block 25335176 on sda7
[  409.805589] kjournald2(729): WRITE block 17053608 on sda7
[  409.805608] kjournald2(729): WRITE block 17053616 on sda7
[  409.805620] kjournald2(729): WRITE block 17053624 on sda7
[  409.805631] kjournald2(729): WRITE block 17053632 on sda7
[  409.805642] kjournald2(729): WRITE block 17053640 on sda7
[  409.810454] kjournald2(729): WRITE block 17053648 on sda7
[  409.963898] firefox-bin(4288): dirtied inode 3198 (places.sqlite-journal) on sda7
[  410.004105] pdflush(23): WRITE block 16922864 on sda7
[  410.004257] pdflush(23): dirtied inode 10220 (plasma_theme_default.data) on sda7
[  410.004291] pdflush(23): WRITE block 36789872 on sda7
[  410.004310] pdflush(23): WRITE block 36789880 on sda7

Piccola nota: pdflush è il demone che si occupa di scrivere su disco le scritture rinviate dal kernel per motivi di performance, kjournald(2) si occupa di mantenere aggiornato il journal del filesystem ed è normale che siano spesso presenti. Questo output tuttavia non è di comoda lettura. Una alternativa è data dal software iotop, installabile con Synaptic, aptitude o il packet manager della distribuzione che preferite. Avviandolo con:

iotop -o

Si otterrà un output di questo tipo:
che mostra i quattro processi che hanno effettuato operazioni di I/O nel periodo di campionamento. In questo caso sono il già citato pdflush e wget che hanno effettuato delle scritture, mentre svn ha effettuato una lettura.

Le colonne di iotop mostrano nell’ordine:

  • il PID del processo;
  • la velocità di lettura nel periodo di campionamento (di default 1 secondo);
  • la velocità di scrittura nel periodo di campionamento;
  • il tempo impiegato per lo swapping;
  • il tempo atteso per l’accesso all’I/O;
  • il nome del processo e i suoi argomenti.

Il manuale di iotop indica gli switch utili per un uso più mirato di questo ottimo strumento.

Trucco magico di velocità

Trucco per Kubuntu per accelerare l’avvio delle applicazioni:

  1. Create una cartella vuota ~/.compose-cache
  2. Aprite un qualunque programma di KDE che contenga un componente per scrivere testo
  3. La cartella ~/.compose-cache conterrà un file il cui nome è una stringa del tipo l4_024_313cb605_00280cc0

Le applicazioni KDE/Qt/GTK dovrebbero ora avviarsi in 50/150 ms in meno.

Ho testato questo trucco solo su Kubuntu, ma dovrebbe funzionare su qualunque altra distribuzione. Se la vostra cartella /var/cache/libx11/ però non è vuota, ad esempio per chi usa SuSE, allora questa piccola ottimizzazione è già attiva.

Per i curiosi: creare la cartella ~/.compose-cache attiva una ottimizzazione creata da Lubos Lunak un po’ di tempo fa che è stata riscritta e integrata in libx11. Di solito all’avvio le applicazioni leggono le informazioni sul metodo di input dal file /usr/share/X11/locale/<locale>/Compose. Il file Compose è piuttosto lungo e richiede un po’ di tempo per essere elaborato. libX11 può creare una cache delle informazioni estrapolate molto più veloce da leggere in seguito, ma ri-utilizzerà una cache solo se può accedervi in /var/cache/libx11/compose o in ~/.compose-cache, se tale cartella esiste già.

Ulteriori informazioni
Via Robert Knight’s blog

Quick tip: sbloccare il database di apt dopo un crash

package icon by everaldo.comÈ possibile che un’interfaccia grafica per apt come Synaptic o Adept crashi durante l’installazione di pacchetti. Questo lascia il database di apt in uno stato inconsistente. Il messaggio di errore rivelatore del problema è questo:

E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

Che nella versione in italiano è tradotto come:

E: Impossibile ottenere il lock /var/lib/apt/lists/lock - open (11 Risorsa temporaneamente non disponibile) E: Impossibile creare un lock sulla directory di list

Per risolvere questo problema in genere è sufficiente eseguire in un terminale:

sudo fuser -vki /var/lib/dpkg/lock;sudo dpkg --configure -a

Quick tip: forzare l’esecuzione di fsck al riavvio.

HardDisk icon by everaldo.com Di default (K)Ubuntu esegue un controllo del filesystem con fsck ogni 27 volte che viene montato, oppure ogni 3 mesi, qualunque sia il limite raggiunto prima. Ogni tanto però si può voler forzare un controllo del filesystem al riavvio. Per farlo su (K)Ubuntu eseguite questo comando:

sudo touch /forcefsck

Sì, tutto qui. Al riavvio verrà eseguito fsck. Su alcuni sistemi (ma non ad esempio su Ubuntu dalla versione 6.10 Edgy Eft in poi) si può invece usare questo comando:

sudo shutdown -rF now

Che riavvierà il computer e forzerà l’esecuzione di fsck. (Il motivo tecnico per cui non è applicabile alle release recenti di Ubuntu è che dalla 6.10 il sistema di init è passato da sysvinit a upstart, che attualmente non supporta l’utilizzo di shutdown -rF)