white noise | tag/tools /blog//tag/tools.html white noise configure logging in bind /blog//post/configure_logging_in_bind.html /blog//post/configure_logging_in_bind.html networking sysadmin tools Sat, 25 Oct 2008 01:26:43 +0200 sysadmin If you like to change the way bind logs it's information, proceed as follows. We just like to add, beside what's logged through syslog, some information about queries. We also like to keep a bind specific log.

First create the directory for storing logs:

# mkdir /var/log/bind
# chown bind.bind /var/log/bind

The add the following statements in named.conf:

logging {
channel b_log {
    file "/var/log/bind/bind.log" versions 9 size 1m;
    print-time yes;
    print-category yes;
    print-severity yes;
    severity info;
};
channel b_query {
    file "/var/log/bind/query.log" versions 4 size 1m;
    print-time yes;
    severity info;
};
category default { default_syslog; default_debug; b_log; };
category queries { b_query; };
};

All parameters are well explained in the Bind ARM, so I'll just add a quick note about version and size. version tells bind to keep a fixed numbers of backups of the log file (it acts like a rotation mechanism similar to logrotate), while size specifies the maximum size of the log file (once the size exceed, logs are rotated).

]]>
multiple identities with mutt /blog//post/multiple_identities_with_mutt.html /blog//post/multiple_identities_with_mutt.html geek tools Tue, 21 Oct 2008 23:58:36 +0200 geek It happens that you have to manage different email addresses, and have the need to use one or another to send an email. If you manage them from the same email client, multiple identities are really handy.

Since mutt is my favorite email client, I manage to configure it to let me use multiple identities at need. This means that my configuration must take care of setting the correct sender address (the From: header) and the correct signature whenever I need to compose a new message or reply to one I received.

Setting the sender address

There are few changes you have to do to let mutt configure the sender address correctly. First ensure that you have the $alternates set in your .mutt.rc configuration file:

alternates = "(you@domain.tld)|(you@otherdomain.tld)"

then set the following variables:

# Allow editing of headers when composing a message
#
set edit_headers

# Set the From: header to the original's To: when
# replying to a message
#
set reverse_name

# Use the $from variable for the sender address
#
set use_from

This configuration takes care of setting the correct sender address when replying to a message. Now you only need to teach mutt how to choose different identities when composing a new email. The trick is done by these two macros:

macro generic "<esc>1" ":set from='You <you@domain.tld>'"
macro generic "<esc>2" ":set from='You <you@otherdomain.tld>'"

Simply press <esc>1 and then m to compose a new email using the first address, or press <esc>2 and then m to use the second one.

Setting the signature

To set the correct signature, send-hooks are needed. Add the following lines to your configuration:

send-hook "~f you@domain.tld" "set signature="~/.domain.sig""
send-hook "~f you@otherdomain.tld" "set signature="~/.otherdomain.sig""

Mutt decides which signature to use by looking at the sender address of the message.

]]>
reading rss feeds with mutt /blog//post/reading_rss_feeds_with_mutt.html /blog//post/reading_rss_feeds_with_mutt.html geek tools Sun, 29 Jun 2008 17:31:35 +0200 geek Q: how to improve my RSS feeds reading experience?

A: using my mail reader as a feed aggregator.

Over time I tried many different RSS feeds aggragators, both web based and stand alone applications. There are many which are really nice, but every one I tried was lacking one feature or another. I saw that the Thunderbird mail reader has the option to handle RSS news as emails, so I decided to look for something that enabled me to the same with mutt, my mail reader of choice.

I found a really nice tool called feed2imap, which perfectly addresses my needs. It is really easy to setup and configure - the configuration file is well commented - and does it's job smoothly. Now I have all my news in dedicated mailboxes.

]]>
a better keyboard experience /blog//post/a_better_keyboard_experience.html /blog//post/a_better_keyboard_experience.html geek tools Thu, 12 Jun 2008 19:44:19 +0200 geek I've been really busy at work last week; we attended at a fair, and a huge amount of time was devoted to the preparation of the event and the physical presence at it. With near no spare time, I took the chance to focus on side things, and most of all to think about how to improve my virtual working environment.

I am a great fan of tiled window managers, and been a long time user of dwm. I also love to work with my keyboard most of the time, and except for graphic and web surfing, I hardly need a pointing device (I use a trackball, by the way).

What I was looking for was a tiled window manager with a more flexible approach to layouts, and some kind of keyboard driven web browsing interface with the same rendering capabilities that firefox provides. For the window manager I gave awesome a try, and after some configuration I am pretty satisfied with it. For the web browsing interface I decided to install the vimperator firefox extension; it seems to be very powerful once you get used to key mappings (which in the end are the same that vim uses).

I'm going to post more impressions on both tools as soon as possible.

]]>
files batch remane /blog//post/files_batch_remane.html /blog//post/files_batch_remane.html sysadmin tools Sun, 01 Jun 2008 21:38:11 +0200 sysadmin Today I had the need to uppercase the name of all files in a directory, and I came across rename, a really nice tool the quickly perform this task.

From the man page:

NAME
    rename - renames multiple files

SYNOPSIS
    rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

DESCRIPTION
    "rename" renames the filenames supplied according to the
    rule specified as the first argument.  The perlexpr argument
    is a Perl expression which is expected to modify the $_ string
    in Perl for at least some of the filenames specified.
    If a given filename is not modified by the expression, it will
    not be renamed. If no filenames are given on the command line,
    filenames will be read via standard input.
]]>
merging pdf documents /blog//post/merging_pdf_documents.html /blog//post/merging_pdf_documents.html geek tools Thu, 08 May 2008 23:47:48 +0200 geek The command to merge pdf files - something I always forget:

gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=Document.pdf -dBATCH \
     1.pdf 2.pdf 3.pdf

Next time I'm going to need it, I won't have to do the usual Google search.

]]>
tt2 and markdown /blog//post/tt2_and_markdown.html /blog//post/tt2_and_markdown.html devel perl tools web Fri, 21 Mar 2008 22:44:17 +0100 web I definitely love Markdown; it just makes web pages editing painless, quick and funny. I was aware of a markdown plugin for Template Toolkit, so i decided to dig a little deeper.

All I needed was the Template::Plugin::Markdown perl module. After installing it I was able to use markdown syntax in my TT driven web pages:

[% USE Makdown %]
[% FILTER markdown %]
.
.
. (markdown formatted page content)
.
.
[% END %]
]]>
back to tt2 /blog//post/back_to_tt2.html /blog//post/back_to_tt2.html devel perl tools web Sun, 16 Mar 2008 22:38:48 +0100 web I am pretty excited. Soon I will be back on web design and development, so I took the occasion to tidy a bit some stuff about Template Toolkit.

From the TT2 website:

The Template Toolkit is a fast, flexible and highly extensible template processing
system. It is free (in both senses: beer and speech) open source software and runs
on virtually every modern operating system known to man. It is written in the Perl
programming language with certain key elements coded in C for maximum speed.
However you don't need to know any Perl (or C) to be able to use it.

It is ideally suited, but not limited to, the creation of static and dynamic web
content and incorporates various modules and tools to simplify this process. It is
mature, robust, reliable and well documented.

I haven't use it for quite a bit, so It will be very funny to explore all the features added since then.

]]>
lsmbox and watch /blog//post/lsmbox_and_watch.html /blog//post/lsmbox_and_watch.html geek tools unix Fri, 29 Feb 2008 17:26:40 +0100 geek All of a sudden, my lsmbox installation decided to stop working in curses mode. I hadn't had time to investigate the problem and find a clean solution, but this was a good opportunity to discover watch.

Basically, watch does what the curses mode of lsmbox did: run a command every n seconds. So i just added the following alias in my .bashrc file:

alias mymail='watch -t -n 300 lsmbox -n -s -S -t /home/adotti/Mail/'

and I got the handy list of mailboxes with unread messages back.

]]>
embedding a flash video in a web page /blog//post/embedding_a_flash_video_in_a_web_page.html /blog//post/embedding_a_flash_video_in_a_web_page.html devel tools web Thu, 08 Nov 2007 21:54:47 +0100 Tools

Today I've been asked to embed a video in the home page of a website I maintain. They were looking for the usual nice looking flash player to perform playback, just like YouTube and other similar web sites.

I decided to look for something flexible and - more important - open source. I found flowplayer, a really nice, really flexible and incredibly easy to set up flash-based video player.

The documentation on the project web site is complete, and you can simply cut-and-paste to have something working out of the box. Tweaking is also easy and fun.

Great stuff.

]]>
track the price of your items on amazon /blog//post/track_the_price_of_your_items_on_amazon.html /blog//post/track_the_price_of_your_items_on_amazon.html techworld tools web Sun, 04 Nov 2007 13:53:17 +0100 Tools

I am a Firefox user, but I am not an add-ons freak; my Firefox installation is quite standard. Some days ago, browsing the Internet, I found the Pricedrop extension, which helps me tracking the price of the items on Amazon I'd like to buy.

It quickly jumped in my must-have list. Saving money is a wonderful thing!

]]>
instant messaging /blog//post/instant_messaging.html /blog//post/instant_messaging.html geek tools Tue, 22 May 2007 12:31:57 +0200 Geek I recently switched from Psi to mcabber. You know, the power of the shell, the cult of the console and stuff like that. The real reason is that mcabber interacts better with my favorite window manager, dwm, and has exactly the same functionalities I'm used to use.

After the switch, I needed to find a way to be notified of incoming messages; something simple, like a visual indicator or the like. mcabber can handle incoming events and execute an external script, so the only thing to do was finding a suitable tool for notification. Browsing around I found dzen, a general purpose notification utility. It is like a post-it you can put anywhere on the screen and it is very flexible.

So this is how I put things together:

$ vi .mcabber/jabber.org-rc

[...]
set events_command = /home/adotti/bin/notify.sh
[...]

and this is the notification script:

#! /bin/sh
#
# Simple event notifier for mcabber. Uses dzen2 to display messages.

event=$1
msg=$2

if [ $event = "MSG" ]; then
        case "$msg" in
        IN)
        ;;
        MUC)
        ;;
        OUT)
                exit 0
        ;;
        esac
        killall dzen2 > /dev/null 2>&1
        (echo "IM") | \
        dzen2 -p -x 1100 -w 30 -fn "-artwiz-snap-*-*-*-*-10-100-75-75-p-*-iso8859-1" &
fi

Note that I kept things really simple and there is a huge room for improvements. Anyway, every time an incoming message arrives, a little red square appears near the top right corner of the screen.

]]>
phpmyadmin authentication timeout /blog//post/phpmyadmin_authentication_timeout.html /blog//post/phpmyadmin_authentication_timeout.html sysadmin tools Mon, 30 Apr 2007 19:35:58 +0200 Tools

I'm just an occasional user of phpmyadmin, but some colleagues who heavily works on databases told me that they were really annoyed by the fact that after a quite short amount of time they needed to authenticate again.

The problem is that the cookie authentication set the lifetime of the cookie itself to 1800 seconds (30 minutes); after 30 minutes you need to login again.

If you like to change this behavior, edit the file /etc/phpmyadmin/config.inc.php and add the following line:

$cfg['LoginCookieValidity'] = 18000;

this will set the lifetime of the cookie to 5 hours (18000 seconds).

]]>
ikiwiki numbacklinks /blog//post/ikiwiki_numbacklinks.html /blog//post/ikiwiki_numbacklinks.html tools Fri, 13 Apr 2007 20:15:37 +0200 Tools

Piccolo suggerimento per chi decide di aggiornare la propria installazione di ikiwiki alla versione 1.49, appena rilasciata.

Nella nuova release, oltre ad un paio di cose che sono state aggiunte e non sono abilitate di default - poichè al momento non mi servono, non mi ci soffermo - si trova una funzionalità che controlla il numero massimo di backlink inseriti in una pagina. Il senso della cosa è abbastanza chiaro: in tutti quei casi dove si ha una pagina indice, vengono riportati solo i primi n backlink ed i rimanenti vengono visualizzati a richiesta.

La funzionalità è abilitata, e vengono visualizzati di base i primi dieci backlink.

Per chi volesse mantenere il vecchio comportamento o controllare il numero di backlink visualizzati, l'opzione a cui fare riferimento è --numbacklinks seguita dal numero di backlink da visualizzare (0 per disabilitare la funzionalità).

Per chi usa un file di configurazione, basta inserire la seguente riga:

numbacklinks => <n>,

dove n ha un ovvio significato.

]]>
lsmbox /blog//post/lsmbox.html /blog//post/lsmbox.html tools unix Sun, 01 Apr 2007 16:38:47 +0200 Tools

Grazie ad un estemporaneo suggerimento di Zack, ho scoperto lsmbox, simpatica utility che consente di rilevare il numero di nuovi messaggi in una o più mailbox. Molto utile l'interfaccia testuale che consente di avere un elenco sempre aggiornato della situazione.

Non ho avuto dubbi a pensionare il bradipale script shell che tempo fa avevo creato allo scopo.

]]>
ikiwiki 1.48 /blog//post/ikiwiki_1.48.html /blog//post/ikiwiki_1.48.html tools web Fri, 30 Mar 2007 20:20:54 +0200 Tools

Ennesimo aggiornamento ad Ikiwiki, che questa volta ha richiesto un po' di elaborazione in più.

Sono cambiati un po' di dettagli nell'implementazione e, come conseguenza, le clausole pagespec che si usano normalmente per blogging ed archivi si comportano in maniera leggermente diversa. Intendiamoci, la cosa è ampiamente annunciata nelle release notes, e non è nemmeno traumatico fare le modifiche del caso, ma penso che un piccolo esempio possa tornare utile.

Per realizzare gli indici delle singole categorie del mio blog, uso una pagina (es: /tag/cinema.mdwn) contenente la seguente pagespec:

link(tag/cinema)

Questa fa si che nella pagina compaia un elenco di tutti i post taggati con cinema. Ho anche una pagina chiamata tag.mdwn con un elenco di tutti i tag usati nel blog che, ovviamente, rimanda a tutti gli indici categoria per categoria.

Dopo l'aggiornamento alla nuova versione, l'indice dei post sul cinema visualizzava anche un link alla suddetta pagina tag.

Per correggere ho modificato la clausola pagespec come segue:

link(tag/cinema) and !tag

Modifica minimale ma sufficiente... la parte divertente è stata replicarla per tutti gli indici :)

]]>
ikiwiki 1.45 /blog//post/ikiwiki_1.45.html /blog//post/ikiwiki_1.45.html tools web Mon, 12 Mar 2007 23:01:16 +0100 Tools

E` passato un po' di tempo dall'ultima volta che ho postato di ikiwiki; onestamente è passato un po' di tempo anche dall'ultima volta che l'ho aggiornato.

La nuova versione include i soliti miglioramenti strutturali e bugfix, il che non può che fare piacere, oltre ad una nutrita schiera di nuovi template - alcuni dei quali non ho proprio capito a cosa possano servire. In ogni caso, considerato anche che il mio setup è abbastanza semplice, ho deciso di modificare il meno possibile.

L'aggiornamento è stato abbastanza indolore; vengono segnalati alcuni curiosi warning alla creazione del makefile ma, a parte questo, niente di particolarmente problematico.

Ricordate di copiare nella vostra directory di template il nuovo archivepage.tmpl altrimenti, se usate della pagine stile archivio, le troverete desolantemente vuote.

]]>
dwm 3.7 /blog//post/dwm_3.7.html /blog//post/dwm_3.7.html geek tools unix Sun, 25 Feb 2007 13:00:05 +0100 geek

Dirò una cosa ovvia, ma se si vuole utilizzare sempre l'ultimissima versione di un'applicazione, è caldamente consigliato aggiornare senza saltare versioni in mezzo. Questo, ovviamente, in un mondo perfetto dove la disponibilità di tempo è praticamente totale. Nella realtà, il tempo non sempre c'è, e gli upgrade non sono sempre indolori; il dolore provato dipende dalla complessità dell'applicazione che si usa.

Nel mio caso, mi sono trovato ad aggiornare dwm dalla versione 3.3 alla neonata 3.7... e nel frattempo il codice dell'applicazione è stato ampiamente ripulito, lasciandomi con un file di configurazione praticamente inutilizzabile. Considerate che il mio C è particolarmente arrugginito, quindi la gestione dei pittoreschi errori che mi sono presentati in fase di compilazione non è stata proprio banale.

In trenta minuti di sevizie alla tastiera mi sono guadagnato un posto privilegiato in uno dei gironi danteschi, ma almeno il mio window manager preferito viaggia liscio come l'olio, e, a quanto mi pare di percepire, più veloce di prima.

Morale della favola: il feticismo può anche essere doloroso, e la macchie di sangue sulla tastiera potrebbero finire per essere le tue. Talvolta ne vale la pena.

]]>
ikiwiki 1.40 /blog//post/ikiwiki_1.40.html /blog//post/ikiwiki_1.40.html tools web Wed, 17 Jan 2007 22:49:41 +0100 Era da un po' che non parlavo di ikiwiki. Sebbene le release si siano susseguite regolarmente, non ho avuto molto tempo per aggiornare ed esplorare. La release 1.40 è stata una buona occasione per fermarsi un attimo a dare un'occhiata più approfondita.

Comincio con le rogne, che istintivamente imputo al fatto che uso una Debian Sarge e quindi è possibile che abbia qualche libreria perl non aggiornata. Appena fatto l'aggiornamento mi sono trovato a gestire un errore relativo a gettext, che non sono riuscito a decifrare dato che normalmente ignoro le localizzazioni.

Dato che l'errore andava comunque sistemato od aggirato, ho scelto la seconda strada, modificando la funzione gettext contenuta nel modulo Ikiwiki.pm come segue:

sub gettext {
    return shift;
}

Fatto ciò, tutto liscio...

Passiamo ora alle nuove funzionalità. Segnalo intanto il supporto per l'autenticazione basato su OpenID, qualcosa che ancora non uso ma che mi piacerebbe approfondire.

Dal versante plugin invece, ci sono tre nuovi mattoncini:

  • navbar: consente di inserire all'interno di una pagina una barra di navigazione
  • textile: aggiunge il supporto per il linguaggio di markup omonimo (in alternativa al solito markdown)
  • rawhtml: permette di copiare pari pari pagine html fatte e finite presenti nell'albero dei sorgenti del sito

I primi due li cito per completezza, dato che al momento non mi servono; il terzo invece è abbastanza utile, dato che aumenta la flessibilità dello strumento (ma occhio alle problematiche di sicurezza!) e soprattutto consente di evitare l'orrendo workaround di cui vi avevo parlato qualche post fà.

]]>
dwm 3.1 /blog//post/dwm_3.1.html /blog//post/dwm_3.1.html tools unix Tue, 16 Jan 2007 22:53:28 +0100 A nemmeno quattro giorni dal rilascio della versione 3.0, ecco la versione 3.1. Questa release risulta particolarmente controversa, dato che l'autore ha preso alcune decisioni che non sono state accolte benissimo dalla comunità degli utilizzatori. In particolare, sono stati rimossi i piccoli rettangoli che visualizzavano i titoli delle finestre prive di fuoco.

Ho aggiornato oggi, e devo dire che la mia impressione rispetto a questa modifica è favorevole; non è che mi servissero molto. Inoltre, apprezzo molto la nuova combinazione di colori, che rende l'insieme, visivamente, molto più pulito.

Vi rimando alla home page del progetto per il download e per gli screenshot di rito (al momento non ancora aggiornati).

]]>
dwm 3.0 /blog//post/dwm_3.0.html /blog//post/dwm_3.0.html tools unix Fri, 12 Jan 2007 23:02:10 +0100 Appena uscita la nuova release di dwm, non ho resistito a fare l'aggiornamento. E non me ne sono (ovviamente) pentito.

Questa nuova release ha in particolare una singola nuova funzionalità, che personalmente trovo estremamente utile: è possibile definire - e cambiare a runtime - il numero di client che vengono collocati nella master column. Questo consente di ottenere facilmente sia layout orizzontali (non credo di essere l'unico che fa monitoraggio di log), sia layout complessi con un arbitrario numero di finestre di egual importanza. Vi consiglio di provare... il livello di flessibilità che si ottiene è veramente altissimo.

Altra cosa che ho fatto contestualmente all'aggiornamento del window manager, è stata l'installazione di dmenu. Comando molto versatile che non ho ancora esplorato completamente, ma che trovo sin d'ora molto utile per lanciare comandi al volo (dwm non implementa nativamente alcun tipo di menu).

Resto in attesa di qualche altra minimale mirabilia, ed intanto mi godo il mio nuovo desktop :)

]]>
ikiwiki e copia di file html /blog//post/ikiwiki_e_copia_di_file_html.html /blog//post/ikiwiki_e_copia_di_file_html.html geek tools web Tue, 02 Jan 2007 13:13:58 +0100 Piccolo hack di inizio anno, a beneficio di tutti coloro che usano ikiwiki e si trovano nella necessità di avere file html presenti nell'albero dei sorgenti del wiki, all'atto del rendering delle pagine. copiati nella destinazione prescelta.

Di default ikiwiki non copia tutto ciò che ha estensione html o xhtml (più diversi altri tipi di file che è sano ed inutile copiare). Questa è una precisa scelta - dettata da ragioni di sicurezza - ma, nel caso, è possibile configurare le cose affinchè il comportamento sia diverso.

Esiste la variabile wiki_file_prune_regexps che si occupa proprio di questo, istruire ikiwiki sul tipo di pagine da ignorare. Il valore di default - scritto direttamente nel codice - è il seguente:

wiki_file_prune_regexps => [qr/\.\./, qr/^\./, qr/\/\./, qr/\.x?html?$/,
            qr/(^|\/).svn\//, qr/.arch-ids\//, qr/{arch}\//],

Questa variabile può essere aggiunta al file di configurazione di ikiwiki e modificata secondo necessità, includendo ed escludendo ciò che più vi aggrada. Il nuovo valore sovrascriverà il default.

Notate che la cosa non mi sembra documentata, per cui potrebbero esserci modi più intelligenti di agire. Questo di certo funziona.

]]>
dwm 2.4 /blog//post/dwm_2.4.html /blog//post/dwm_2.4.html tools unix Sat, 02 Dec 2006 20:14:37 +0100 Ho appena aggiornato dwm alla versione 2.4. Negli ultimi tempi lo sviluppo è proseguito senza troppi clamori; a parte qualche piccolo ritocco alla minimale interfaccia, gli sforzi si sono soprattutto concentrati su bugfix e altre modifiche sotto la superficie.

Questa release a qualcosa di interessante in più su cui forse vale la pena spendere due parole. Per chi è abituato ad usare il tiled mode, è possibile sganciare una o più finestre e renderle fluttuanti al di sopra delle altre (che prontamente si riadatteranno al maggior spazio disponibile).

Al momento non ho nessun esempio concreto di utilizzo, ma questo piccolo incremento di flessibilità mi dà buone sensazioni...

]]>
ikiwiki 1.32 /blog//post/ikiwiki_1.32.html /blog//post/ikiwiki_1.32.html tools web Fri, 17 Nov 2006 16:30:07 +0100 Era da un po' che non postavo qualcosa su ikiwiki; non tanto perchè lo sviluppo si fosse arenato, tutt'altro, quanto perchè, vuoi per ragioni di tempo, vuoi perchè non uso tutte le feature che mette a disposizione, non avevo niente di interessante da dire.

Ho appena aggiornato alla versione 1.32 (prestissimo sarà disponibile la 1.33, già annunciata) e, oltre alla solita piacevole assenza di problemi nel processo di upgrade, ho potuto toccare con mano l'incremento di prestazioni che Joey Hess aveva indicato come maggiore improvement in questa versione.

La rigenerazione di tutte le pagine del mio sito e di questo blog ha richiesto una frazione del tempo che richiedeva prima. Veramente notevole.

]]>
dwm 1.9 e patch /blog//post/dwm_1.9_e_patch.html /blog//post/dwm_1.9_e_patch.html geek tools unix Fri, 13 Oct 2006 18:47:10 +0200 dwm è ormai arrivato alla versione 1.9. Ultimamente sono stati fatti un po' di esperimenti da parte dell'autore per decidere se, e cosa, inserire nella mainline del codice contribuito dagli utenti di questo minimalistico windows manager. Qualcosa è stato inserito, alcune feature sono state tolte ed il codice in generale ripulito. Il risultato è una release che dovrebbe essere quanto più possibile completa e definitiva (ma non si può mai sapere...).

Delle patch contribuite dai diversi partecipanti alla mailing list del progetto è stata fatta una raccolta pubblicata sul sito ufficiale. Di mio, ve ne segnalo una che trovo molto utile:

bottom stack patch

Consente di modificare l'orientamento delle colonne in cui viene diviso lo schermo da verticale ad orizzontale. Una manna se dovete analizzare dei log o modificare dei file con righe molto lunghe e non volete ricorrere a finestre massimizzate.

Basta patchare i sorgenti, modificare il file di configurazione e ricompilare... come al solito :)

]]>
munin /blog//post/munin.html /blog//post/munin.html sysadmin tools unix Wed, 04 Oct 2006 22:34:47 +0200 Dopo aver letto un paio di articoli sui feed che seguo di solito, ho deciso di provare ad installare munin ed utilizzarlo nella mia rete di test. Ho usato la versione 1.2.3 pacchettizzata per Debian/Sarge.

Installazione

Non mi dilungherò sulla procedura di installazione; in Debian si riduce ad un:

apt-get install munin munin-node

Terminato il download e l'installazione dei pacchetti, munin è già pronto per essere utilizzato. Vengono infatti rilevati tutti i servizi presenti sulla macchina ed installati tutti i plugin necessari (se disponibili).

Puntate il vostro browser all'indirizzo http://localhost/munin/ e potrete redervi conto di persona di cosa si tratta.

Nota: vi consiglio di verificare anche i pacchetti che vengono indicati come "raccomandati" e "suggeriti"; qualche plugin potrebbe averne bisogno.

Plugin

La quantità disponibile di plugin è notevole. Non tutto viene attivato in automatico, ma attivare plugin supplementari è molto semplice, basta creare dei link simbolici nella cartella contente i file di configurazione di munin. Unica eccezione, fra le cose che ho provato, riguarda apache. Per poterlo monitorare occorre agire sulla sua configurazione (niente di complicato).

Altre cose

Un paio di altre cose che giudico interessanti ma che non ho avuto ancora il tempo di testare riguardano l'impostazione di allarmi al verificarsi di condizioni critiche o comunque di attenzione - a quanto pare gli allarmi possono essere inviati per e-mail o integrati con nagios - e la creazione di grafici personalizzati.

Per chi fosse interessato ad approfondire, rimando al sito ufficiale. Troverete tutta la documentazione che desiderate.

]]>
mutt e pgp /blog//post/mutt_e_pgp.html /blog//post/mutt_e_pgp.html geek security tools unix Sun, 17 Sep 2006 11:55:16 +0200 Mutt è, con ogni probabilità, lo strumento per leggere la posta più versatile ed efficiente che ci sia. Superato l'impatto con un'interfaccia a terminale che riporta alla mente tempi antichi, ci si abitua quasi immediatemente alle comodità che offre, specie se la mole di posta elettronica che si gestisce giornalmente è grossa.

Recentemente ho cercato di migliorare la mia gestione dell'uso di gpg per firmare le e-mail quando ne ho necessità. Non ne faccio un sistematico, ma ci sono diverse situazioni in cui mi è utile apporre la mia firma digitale ai messaggi in uscita.

La versatilità di Mutt offre un discreta quantità di parametri di configurazione, e bisogna dire che i default impostati sono saggi e consentono un'uso di gpg praticamente immediato. Ho comunque limato qualche piccolo spigolo. Questo è il pezzo di configurazione personalizzato che ho aggiunto al mio muttrc:

# non firmare automaticamente tutti i messaggi in uscita
#
unset crypt_autosign

# non cifrare automaticamente tutti i messaggi in uscita
#
unset crypt_autoencrypt

# cifra automaticamente le risposte a messaggi cifrati
#
set crypt_replyencrypt

# firma automaticamente le risposte a messaggi firmati
#
set crypt_replysign
]]>
dwm 1.5 /blog//post/dwm_1.5.html /blog//post/dwm_1.5.html geek tools unix Sat, 09 Sep 2006 12:36:18 +0200 Era da un po' che non parlavo di dwm, non tanto perchè lo sviluppo si fosse arrestato (tuttaltro), quanto perchè le ultime release di sono concentrate sopratutto nel sistemare bug e piccole altre cose.

La versione 1.5 è appena stata rilasciata, e contiene una feature aggiuntiva che personalmente trovo molto comoda. E' possibile allargare/restringere la dimensione della master column al volo; gli incrementi sono configurabili, al solito, nel file config.h. Niente più compilazioni supplementari nel caso vi accorgeste che per fare una particolare operazione avete bisogno di finestre tiled più grandi.

Altra funzionalità aggiunta, che però io non uso, è quella di visualizzare contemporaneamente tutti i client associati a tutti i tag.

Il file di configurazione differisce di sole tre righe dalle versioni precedenti (almeno dalla versione 1.2, da cui ho fatto l'aggiornamento), per cui l'upgrade è più veloce del solito.

Infine, una cosa che non ho potuto verificare, ma che è stata riportata nella mailing list degli sviluppatori, è che dwm gira anche sotto MacOSX. Se l'interfaccia standard di casa Apple vi sembra troppo carica...

Buona compilazione.

]]>
ikiwiki 1.21 /blog//post/ikiwiki_1.21.html /blog//post/ikiwiki_1.21.html tools web Wed, 23 Aug 2006 22:14:17 +0200 Ultima release di ikiwiki appena rilasciata. Viste le nuove feature incluse, l'aggiornamento è quasi d'obbligo.

Ci sono tre nuovi plugin disponibili:

sidebar

consente di aggiungere una sidebar a tutte le pagine processate da ikiwiki. Basta creare una pagina chiamata sidebar.mdwn ed il contenuto verrà interpretato ed incluso. Il plugin è molto flessibile; non ho sperimentato più di tanto, ma è possibile avere anche più sidebar differenti all'interno dello stesso wiki.

map

genera la classica sitemap. Si può generare una mappa completa oppure generarne una a partire da un pezzo a scelta del wiki, dato che il plugin supporta le PageSpecs di ikiwiki.

otl

permette di generare automaticamente delle pagine html a partire da un outline generato da vimoutliner.

Oltre a tutto questo, la solita quantità di miglioramenti e colpetti di lima.

Non avete ancora aggiornato?

]]>
conversioni in utf-8 /blog//post/conversioni_in_utf-8.html /blog//post/conversioni_in_utf-8.html geek perl tools web Sun, 20 Aug 2006 13:36:20 +0200 L'altro giorno mi sono trovato nella situazione di inserire del vecchio materiale che avevo scritto nel mio sito web. Nel far il rendering delle pagine, ikiwiki mi ha segnalato numerosi errori relativi alla codifica utf-8. Al termine del processo le pagine generate erano orrendamente prive di contenuto.

Indagando un po', mi sono reso conto che il problema era originato dalla presenza dei lettere accentate italiane; andavano rimosse e sostituite con le relative codifiche html.

Ho buttato giù due righe in perl per automatizzare il lavoro:

#!/usr/bin/perl
#
# Replace italian accents with html alternates

open STDIN, '-';

while (<STDIN>) {
        s/&agrave;/\&agrave\;/g;
        s/&egrave;/\&egrave\;/g;
        s/&igrave;/\&igrave\;/g;
        s/&ograve;/\&ograve\;/g;
        s/&ugrave;/\&ugrave\;/g;
        print;
}

Notate che non sono presenti accenti acuti... so di essere un barbaro ma per semplicità non li uso.

Con il seguente comando:

for i in *.mdwn; do cat $i | htmlize.pl > $1; done

sono riuscito a sistemare il contenuto dei file in meno di un minuto (htmlize.pl è il nome che ho dato allo script di cui sopra).

Per chi invece avesse necessità di fare conversioni da diverse codifiche in utf-8 - ma non solo - suggerisco l'utility tcs. Semplice quanto comoda... (attenzione che non supporta la codifica iso-8859-15; ovvero niente simbolo dell'euro).

]]>
timer /blog//post/timer.html /blog//post/timer.html geek gtd tools Wed, 16 Aug 2006 14:10:31 +0200 Sono ormai da molto tempo un felice iscritto al club del "distraiti e rimanda", vuoi per una naturale incapacità a concentrarmi sulle piccole cose, vuoi perchè le mie attività sono spesso interrotte da telefonate di vario genere. Considerando poi che la maggior parte delle mie attività professionali e personali si svolge usando un pc, anche il numero di altre distrazioni è elevatissimo (ah... il multitasking).

Mentre la cosa non ha praticamente impatto quando devo gestire compiti lunghi o complessi, ogni volta che mi trovo a gestire cose che si fanno in meno di cinque minuti la cosa più frequente che finisco per fare è rimandarle. Evidentemente la mia capacità di concentrazione nel brevissimo periodo fa schifo.

Per cercare di ovviare a questa situazione, e per cercare di riportare le mie todo list ad una lunghezza umana, ho deciso di dotarmi di un timer. Impostare slot temporali definiti sta dando ottimi risultati.

Ho cercato abbastanza a lungo un software che fosse semplice e fosse adeguato alle mie esigenze. osdclock è apparso la scelta migliore. Si tratta di un orologio che si piazza in uno degli angoli del desktop e rimane sempre in primo piano. Inoltre ha la simpatica funzione di accettare un ritardo prima di visualizzarsi. Posso lavorare tranquillo e senza distrazioni su di una cosa fino al momento in cui l'ora mi compare, in caratteri cubitali rossi, nell'angolo inferiore destro del mio monitor.

Ho costruito anche un piccolo wrapper che mi consente di lanciare osdclock con tutte le opzioni necessarie, specificando anche il ritardo che desidero.

Eccolo qui:

#!/bin/bash
if [ "$#" != '1' ]
then
        echo "usage: $0 <delay>"
        exit 1;
fi
TIME=$1
/usr/bin/killall osd_clock
/usr/bin/osd_clock -s 0 -f -*-courier-bold-r-normal-*-18-180-75-75-*-110-iso8859-1 -r -w $TIME &
exit 0;

Nota bene: se non usate Linux ma altre varianti di Unix, potreste dover sostituire killall con il comando equivalente appropriato per il vostro sistema.

]]>
dwm 0.9 /blog//post/dwm_0.9.html /blog//post/dwm_0.9.html geek tools unix Tue, 15 Aug 2006 20:39:17 +0200 Quasi ci siamo... con questa ultima release dwm è stato dichiarato quasi completo. Le ultime feature sono state implementate e sembra che per le prossime versioni si avranno esclusivamente eventuali fix.

Questa nuova uscita presenta una succosa novità, ovvero la possibilità di fare merge di più tag, in modo raggruppare nella vista corrente tutti i client appartenenti ai tag coinvolti nell'operazione. Un pizzico di flessibilità abbastanza utile, specie se siete un po' disordinati nel disporre le cose (o se cambiate spesso idea).

Segnalo anche l'eliminazione della navigazione sequenziale fra i tag, oltre al cambiamento di qualche keybinding nella configurazione di default. Considerando che dovrete mettere mano al file di configurazione prima di compilare il tutto, la cosa non dovrebbe essere un problema: potete facilmente ripristinare la cose secondo gusto.

Buon upgrade.

]]>
dwm 0.7 /blog//post/dwm_0.7.html /blog//post/dwm_0.7.html geek tools unix Wed, 09 Aug 2006 00:38:55 +0200 Prosegue questa estate calda, e rapidi si susseguono i rilasci di questo minimalissimo window manager.

La nuova release è appena uscita, e dovremmo ormai esserci per avere una versione che includa tutte le feature previste e sia stabile nella configurazione; le note per l'aggiornamento segnalano infatti alcune modifiche non appariscenti e alcuni bugfix, oltre ad un (ennesimo) cambiamento nel formato del file di configurazione (più compatto e, purtroppo, un po' più complicato).

Intanto, parallelamente allo sviluppo di dwm, prosegue anche lo sviluppo di dmenu, applicazione concepita come gestore di menu autonomo che può essere usato con qualsiasi window manager. Ricorda molto il menù di wmii.

Sempre dal fronte del programmare entro le diecimila linee di codice, pare sia in lavorazione un emulatore di terminale... aspettiamoci un'altra mirabolante creatura minimale con cui divertirci questo autunno.

]]>
grafi con perl /blog//post/grafi_con_perl.html /blog//post/grafi_con_perl.html devel perl tools Sat, 05 Aug 2006 15:57:43 +0200 Ho dedicato un po' di tempo a giocare con graphviz, oggetto alquanto simpatico per la realizzazione di grafi di vario genere. Ho anche scoperto che esiste un modulo perl che permette di utilizzare graphviz direttamente da script, in modo assolutamente facile.

graphdir.pl è una minuscola demo che ho realizzato per provare le funzionalità di suddetto modulo; genera un grafo a partire da una directory specificata come parametro.

Ecco il risultato:

graph

]]>
ikiwiki 1.15 workaround /blog//post/ikiwiki_1.15_workaround.html /blog//post/ikiwiki_1.15_workaround.html tools web Sat, 05 Aug 2006 15:43:49 +0200 Cortesemente, quanto rapidamente, fornito da Joey Hess, ecco un semplice workaround che sistema, almeno nel mio caso, i problemi relativi a perl ad al taint mode.

Nel file Ikiwiki.pm va sostituita la linea 571 con la seguente:

return eval possibly_foolish_untaint(pagespec_translate($spec));

Funziona perfettamente... riesco nuovamente ad utilizzare l'opzione --refresh per rigenearare solo le pagine effettivamente modificate. Sono anche spariti i problemi di compilazione e quelli relativi ai test :)

Per chi non ha particolare fretta o dimestichezza con l'editing dei sorgenti, la release 1.16 è stata appena annunciata (e sarà a breve disponibile).

]]>
ikiwiki 1.15 /blog//post/ikiwiki_1.15.html /blog//post/ikiwiki_1.15.html tools web Fri, 04 Aug 2006 18:00:02 +0200 Quando si dice che un software è attivamente sviluppato... sono uscite tre versioni di ikiwiki nel giro di una settimana. Sono passato dalla versione 1.12 alla versione 1.15, in modo meno fluido rispetto agli upgrade precedenti.

Premetto che l'oggetto gira su una debian stable, quindi la compilazione da sorgenti è praticamente d'obbligo (nel caso in cui non vogliate avventurarvi in backport e altro pittoreschi ritocchi alla vostra distribuzione). Altra doverosa premessa è che non uso nè le funzionalità legate ai cgi, nè il supporto per il versioning (quest'ultimo lo gestisco esternamente). Tutte le pagine di questo blog sono generate offline e caricate successivamente nel mio spazio web personale.

Detto questo, passo in rassegna un paio di problemini che ho incontrato nel fare l'upgrade.

Per un qualche oscuro motivo, il processo di make fallisce in quanto c'è qualcosa nelle pagine di documentazione (generate durante il make, appunto), che non è gradito dalla modalità taint del perl. La causa, mi pare di capire, sia abbastanza subdola... è possibile che si tratti di un bug della versione 5.8.4 di perl. Ho provato a giocare un po' con il codice di ikiwiki, ma l'unica soluzione funzionante sembra essere rimuovere la sezione extra_build dal file Makefile.PL. Attenzione che lo stesso problema si presenta quando generate le pagine... in questo caso usando l'opzione --rebuild tutto ok, mentre l'opzione --refresh non ne vuole sapere di dare risultati.

Un'altra cosa che non ha funzionato come dovuto sono i test; Eseguendo make test, alcuni dei test presenti in html.t e in syntax.t falliscono. Possibile che vi sia una qualche relazione con il problema descritto precedentemente. Niente di fondamentale nel mio caso, ma se avete un'installazione con più feature, vi consiglio di perdere qualche minuto a cercare di capire.

Ultima cosa: alcuni template sono stati aggiornati ed altri aggiunti. Consegue che alcune variabili nei template sono state modificate... se usate dei template personalizzati premuratevi di adattarli a questi cambiamenti altrimenti ogni tentativo di ricostruire le vostre pagine produrrà lamenti ed errori a profusione.

Finita la lista delle sfighe, passo a segnalare quella che secondo me è la feature più interessante di questa nuova release: l'estensione delle vecchie GlobList nelle nuove PageSpec. Ora è possibile generare pagine inline usando un set più flessibile di condizioni (sono supportati gli operatori logici e il raggruppamento delle condizioni con parentesi), oltre che impostare filtri sulla data di creazione delle pagine stesse.

Ovviamente c'è anche altro. Rimando i curiosi alla pagina delle news sul sito ufficiale.

Buon aggiornamento.

]]>
dwm 0.6 /blog//post/dwm_0.6.html /blog//post/dwm_0.6.html geek tools unix Wed, 02 Aug 2006 20:38:35 +0200 Quale migliore occasione di una inaspettata giornata di pioggia per trastullarsi con un nuovo giocattolo? Probabilmente nessuna, dato che questo è quello che ho fatto finita la mia giornata lavorativa. Il nuovo giocattolo in questione è l'ultima release di dwm, prontamente scaricata e compilata.

Trattandosi di un window manager minimale, il numero delle feature aggiunte tende a zero; sono state sistemate alcune cosette e, per facilitare l'approccio elitario alla configurazione, tutte le opzioni sono state raggruppate nel file config.h. Niente più editing dei file .c sparsi nell'albero dei sorgenti :) Un'altra cosa che ho apprezzato è la possibilità di spostamento sequenziale tra i workspace usando i tasti h e l. Fa molto vim e fa pure molto confortevole.

Un gioco breve, in ultima analisi, ma certo soddisfacente.

]]>
ikiwiki 1.12 /blog//post/ikiwiki_1.12.html /blog//post/ikiwiki_1.12.html tools web Tue, 01 Aug 2006 22:15:58 +0200 Ultima release di ikiwiki appena rilasciata, ho approfittato immediatamente per aggiornare la mia installazione. Lo sviluppo procede spedito; l'oggetto diventa ogni volta più stabile e più curato.

Oltre ad una buona quantità di aggiustamenti quà e là, segnalo le seguenti feature, a mio parere molto interessanti:

  • supporto per i tag nelle pagine (presente anche nella versione precedente ma migliorato in quest'ultima uscita)
  • plugin per generare statistiche e cloud map di tag stile del.icio.us
  • supporto per aggregazione di feed

C'è anche altra roba (diverse cose relative al miglioramento del supporto per UTF-8); date un'occhiata alle news sul sito del progetto per i dettagli.

Buon aggiornamento.

]]>
10kloc /blog//post/10kloc.html /blog//post/10kloc.html geek tools unix Sun, 23 Jul 2006 12:59:49 +0200 10kloc (ten thousand lines of code) è un repository di progetti che non eccedono le diecimila linee di codice. Già questo dovrebbe darvi un indizio del fatto che quello che vi troverete è più orientato ai programmatori che agli utenti finali. Se perderete un attimo a leggere il manifesto pubblicato nella home page, al di là della solita buona dose di sentenze, troverete comunque qualche spunto interessante.

Dei progetti ospitati, ho provato i due window manager, wmii e dwm

wmii

Sono da tempo un fan di window manager che abbiano una filosofia diversa rispetto ai soliti ambienti a finestre. Inoltre ho sempre cercato, per quanto possibile, di individuare quelli che, oltre ad essere leggeri, fossero anche comodi da gestire tramite tastiera.

wmii (che uso con soddisfazione da diversi mesi) ha alcune feature molto interesanti, oltre alle sopracitate caratteristiche. In primis, cerca di utilizzare i workspace in modo diverso dal solito; ai vari client (le applicazioni) possono essere applicati un numero arbitrario di tag, il che consente di raggrupparli in modo dinamico a seconda di cosa si stia facendo. Le finestre, inoltre, vengono gestite automaticamente in modo da occupare la maggior superficie disponibile sullo schermo (tiled mode), per quanto sia possibile attivare il consueto floating mode se le applicazioni che si stanno usando lo richiedono.

Altro punto a favore di wmii è quello di avere una configurazione abbastanza semplice, costituita da un unico shell script che viene eseguito in automatico all'avvio oppure manualmente ogni volta che serve riconfigurare al volo il window manager. Facile quindi intuirne la flessibilità e altrettanto facile intuire che la configurazione può non essere banale quado si portano le personalizzazioni all'estremo.

L'intero ambiente di lavoro può anche essere controllato dinamicamente modificando i valori presenti nel filesystem virtuale (stile /proc per intenderci) che il window manager esporta.

Per contro, il look è abbastanza spartano e la gestione delle applicazioni che usano molte finestre non massimizzate (come Gimp) è sicuramente perfettibile.

dwm

dwm (Dynamic Window Manager) è un altro window manager molto interessante, per quanto al momento ancora un po' immaturo (siamo alla versione 0.5).

Cito dal sito:

Because dwm is customized through editing its source code, it's pointless to make binary packages of it. This keeps its userbase small and elitist. No novices asking stupid questions.

Questo vi fa capire cosa avrete per le mani, se vorrete provarlo. Tutte le personalizzazioni si fanno modificando il file dwm.h, ed altri file sorgente (tag.c, event.c, main.c) presenti nell'albero del codice, prima della compilazione.

La filosofia è un'estremizzazione di quella di wmii (da cui dwm evidentemente deriva) e l'ambiente di lavoro nudo e crudo. Interessante, oltre alla gestione dinamica dei tag, anche la gestione dinamica delle finestre; si può passare dalla modalità tiled alla modalità floating al volo, cosa molto utile..

]]>
currports e ipnetinfo /blog//post/currports_e_ipnetinfo.html /blog//post/currports_e_ipnetinfo.html security tools windows Thu, 06 Jul 2006 19:19:27 +0200 Due piccole utility per sistemi Miscrosoft, utili per fare un po' di controlli, specialmente sul traffico di rete. Hanno entrambe il grosso pregio di non dover essere installate sul sistema, e possono essere utilizzate direttamente da una chiavetta USB. (Grazie a Lucia per la segnalazione).

CurrPorts

CurrPorts displays the list of all currently opened TCP/IP and UDP ports on your local computer. For each port in the list, information about the process that opened the port is also displayed, including the process name, full path of the process, version information of the process (product name, file description, and so on), the time that the process was created, and the user that created it. In addition, CurrPorts allows you to close unwanted TCP connections, kill the process that opened the ports, and save the TCP/UDP ports information to HTML file , XML file, or to tab-delimited text file. CurrPorts also automatically mark with pink color suspicious TCP/UDP ports owned by unidentified applications (Applications without version information and icons)

IPNetInfo

IPNetInfo is a small utility that allows you to easily find all available information about an IP address: The owner of the IP address, the country/state name, IP addresses range, contact information (address, phone, fax, and email), and more. This utility can be very useful for finding the origin of unsolicited mail. You can simply copy the message headers from your email software and paste them into IPNetInfo utility. IPNetInfo automatically extracts all IP addresses from the message headers, and displays the information about these IP addresses.

]]>