13 minuti per una poesia

Lo sanno tutti che sono un poeta e potrei anche farlo diventare un lavoro. Preferisco resti un hobby: mi basta già constatare che non riesco a farmi pagare dignitosamente nemmeno per il mio vero lavoro.

Oggi è il compleanno di un amico cliente. O forse di un cliente amico. Sono quelle situazioni strane in cui sai che di quella persona ti puoi fidare, ti rendi conto che lo stai trattando da amico e non da cliente, ma di fatto con quella persona non hai mai condiviso nulla se non il lavoro.

Chiariamo, ché non vorrei essere frainteso. Non ho intenzione di condividere moglie o altri assets fondamentali della mia e della sua vita, ma si era parlato alcuni mesi fa di andare a mangiare una pizza assieme. Se n’era solo parlato; poi, complici il lavoro prima e la pandemia dopo, siamo qui a farci gli auguri di compleanno, senza aver mai mangiato una pizza assieme. Ecco, questa è una cosa, una pizza, che mi sembra ragionevole condividere con chi definisco amico.

No, non la pizza in sé: se solo ci prova a prenderne una fetta dal mio piatto gli pugnalo la mano con il coltello e con la forchetta.

Il fatto però di uscire a mangiare assieme ricopre nella nostra cultura un’importanza non trascurabile. Gesù e gli apostoli si ritrovavano attorno ad un tavolo a socializzare ed a mangiare (e guarda come sono finiti). Certo non si può trascurare che Gesù fu come minimo incauto a far sapere che poteva moltiplicare pane e pesce: non oso immaginare come la presero i panettieri e pescatori dell’epoca. Ma bando alle ciance e blasfemie varie, torniamo al nocciolo della questione. Come gli ho fatto gli auguri?

Ecco a voi. Questo è il breve dialogo intercorso via Whatsapp oggi per fargli gli auguri. La poesia più veloce che sia mai stata scritta: 13 minuti da quando ho avuto l’idea di scriverla (ma non l’ispirazione, ho anche dovuto pensare a cosa scrivere) a quando gliel’ho inviata.

Certo, definirla arte sarebbe un tantino pretenzioso, ma in 13 minuti vorrei vedere voi…

Ed infine, per il bene di Google che mi indicizza, la riporto qui trascritta in tutto il suo splendore:

Déstati oggi a rimirar la stella
che, come ogni giorno, ti ricorda
che prima o poi cadrai dalla sella!

Di ciò che fu memoria tu non perda
se mai un malanno ti entrasse nella testa
come l’Alzheimer o qualche altra merda…

ma non crucciarti e pensa alla tua festa
e ricevi nel dì del compleanno
tanti auguri, anche da chi ti detesta!

			- L. C.

Immagine dell’articolo gentilmente fornita da unsplash-logoFree To Use Sounds

Bbasta!

Sì, con due B.

C’era un tempo in cui ero gentile al telefono anche con gli operatori di telemarketing. Pensavo che essere gentili ed educati fosse la cosa giusta, in fondo loro sono là a fare il loro mestiere come io sono qui a fare il mio. Rispondevo gentilmente che la cosa non mi interessava, tanto che fosse una nuova tariffa luce-gas, quanto che fosse un’imperdibile occasione di trading online.

Ho sempre pensato che la buona educazione non debba mai mancare, in nessun caso. Non per una questione di gentilezza in generale, ma proprio perché ritengo che con la diplomazia si ottenga di più che con lo scontro diretto.

Dal dire gentilmente che la cosa non mi interessa sono quindi passato al chiedere gentilmente di rimuovere i miei dati dal loro database, dato che di certo io non ho mai autorizzato il trattamento dei miei dati per scopi promozionali.

Anche questo non è servito, anzi, le chiamate aumentavano. Ho allora iniziato a bloccare i numeri e segnalarli come spammer sul cellulare e su alcuni siti specifici, sempre mantenendo un tono gentile ed educato alla risposta. L’unico aspetto un po’ meno educato è il fatto che, arrivato a questo punto, non lasciavo nemmeno che l’operatore di turno finisse la prima frase, ma gli dicevo subito che, dopo ripetute richieste inascoltate di rimuovere i miei dati, avrei messo giù il telefono e segnalato il numero come spammer senza sentire altre ragioni.

Naturalmente sono capitati anche operatori maleducati che mi hanno mandato a quel paese, ma va bene, ci sta. Quella che però mi ha dato più fastidio è stata un’operatrice che, urlando, mi ha detto: “e allora si iscriva al registro delle opposizioni!”. Peccato che all’epoca non fosse possibile iscrivere numeri di cellulare privati nel registro (e non lo è nemmeno oggi, Aprile 2020, al momento della scrittura del presente). Tale operatrice riuscì a zittirmi, semplicemente perché io non sapevo neppure che esistesse il Registro, quindi non potei fare altro che dire: “ok va bene lo farò” e metter giù. Per poi scoprire, andando a vedere cosa fosse tale registro, che non potevo farlo.

Questo evento mi fece capire che il tempo della buona educazione era finito. Anzi, nel caso specifico, non avrebbe mai dovuto iniziare. Da allora e negli anni a seguire ho messo in campo una serie di strategie, alcune imparate da amici, altre di mia invenzione, per prendermi una rivincita su questi fastidiosi insetti.

Tali strategie si basano su due idee:

  • Se voi fate perdere tempo a me, io lo faccio perdere a voi
  • Se è vero che tu operatore stai solo facendo il tuo lavoro, è anche vero che quel lavoro te lo sei scelto ed ognuno nel proprio lavoro deve sopportarne le incombenze ed i difetti. Io mi sono scelto il mio lavoro e ne sopporto i difetti. Non vedo perché dovrei preoccuparmi io di come gli operatori del call center vivono la loro esperienza professionale.

Muovendo dalle due idee precedenti, ecco a voi l’elenco delle strategie che ho elaborato.

  1. Il finto dipendente
    – Pronto?
    – Buongiorno, parlo con il signor Lucio?
    – No, un secondo, il mio capo al momento non è qui, cerco di passarglielo
    Metto la telefonata in attesa e ce la lascio fino a quando l’operatore del call center non mangia la foglia o non si stufa di attendere
  2. Il finto dipendente preso male
    – Pronto?
    – Buongiorno, parlo con il signor Lucio?
    – Ma che ne so, non lo vedo mai, quello è sempre in giro, qui i clienti chiamano, i fornitori chiedono di lui, uno ieri si è incazzato con me perché non paga una fattura da due anni, quello va a farsi i giri del mondo sul suo yacht e io sono qui da solo in ufficio, poi quando torna s’incazza con me se il lavoro non è come dice lui. Mi dica lei, anche da lei il capo fa così? Guardi io non so più cosa fare, se lo sente lei glielo dica che io non posso certo stare qui ad aspettare che [tuuuuut… a questo punto l’operatore del call center getta la spugna e chiude la chiamata]
  3. La finta linea caduta
    – Pronto?
    – Buongiorno, sono Piero Del Piero e le vorrei presentare [a questo punto appoggio delicatamente il telefono sul tavolo e lo lascio parlare senza vivavoce, tornando poi a vedere, non prima di 10 minuti, se si è stufato di parlare da solo]
  4. La finta linea caduta con elemento catalizzatore
    – Pronto?
    – Buongiorno, sono Piero Del Piero e le vorrei chiedere se è interessato alle opzioni binarie e forex
    – Hmm, ne ho sentito parlare, ma non so cosa siano
    – Non si preoccupi, le spiego io [e qui uso la stessa strategia del punto precedente]
  5. I finti disturbi radio
    Per questa strategia serve un minimo di preparazione. Scaricatevi da internet un qualsiasi MP3 con il tipico rumore della radio mal sintonizzata. Mettetevelo su un dispositivo comodo in base alla strumentazione a vostra disposizione, tipo su una microsd infilata nella cassa bluetooth, o su una chiavetta USB attaccata alla smart TV, sul PC o anche su un cellulare secondario. Durante la conversazione fate partire la riproduzione del file MP3 molteplici volte, a volume alto, in modo da coprire la vostra voce e/o la voce dell’operatore. Non preoccupatevi del fatto che capisca che lo state prendendo per i fondelli: lo scopo è proprio quello!

Avete altre strategie? Condividetele commentando qui sotto!

Compiling Courier-MTA from sources on Debian buster/sid

Updated on October 23, 2019, for the Debian GNU/Linux Buster release.

This aims to be a complete, but not necessarily friendly guide, at least as of today. It contains a list of commands and actions I used to compile Courier-MTA from sources on a very basic Debian stable/testing/sid instance (e.g. a mix of stable, testing and sid).

Why? Because current Courier-MTA packages in Debian are nearly unmantained. I’m sure Markus Wanner (current mantainer) is doing his best and I thank him for his work, but I need a way out, should Courier-MTA ever fall orphaned. I’d like to help him or anyone else if I could, but I understand nothing of Debian packaging tecniques, nor Debian packaging policies. I just happen to use Debian because I like it and Courier-MTA for the very same reason, so I better play it safe and learn how to compile Courier-MTA on Debian myself.

Enough words, now the guide:

I started from the Debian setup itself, using a KVM guest. Please adjust things to match your needs (volume group name, logical volume name, ram size, disk size, network bridge name). You can install Debian in many other ways, this is just one of them. I started from the latest stable release (buster) and added bullseye and sid afterwards.

root@kvmhost:~# virt-install \
  --name couriermta --ram 1500 \
  --disk vol=netuvg/vm-couriermta,bus=virtio \
  --vcpus 2 --os-type linux --os-variant generic \
  --network bridge=virbr20,model=virtio \
  --graphics none --console pty,target_type=serial --location \
http://mirror.switch.ch/ftp/mirror/debian/dists/buster/main/installer-amd64/ \
  --extra-args 'console=ttyS0,115200n8 serial'

When tasksel asked what packages to install, I selected only standard system utilities and SSH server. Then I added my favourite packages after the install:

root@couriermta:~# apt-get install vim vim-tiny- screen ntp

Let’s add testing and sid sources, because I like having recent packages available if needed:

root@couriermta:~# cd /etc/apt/sources.list.d
root@couriermta:/etc/apt/sources.list.d# cat > sid.list << EOF

deb http://ftp.de.debian.org/debian/ sid main contrib
deb-src http://ftp.de.debian.org/debian/ sid main contrib
EOF

root@couriermta:/etc/apt/sources.list.d# cat > bullseye.list << EOF deb http://ftp.de.debian.org/debian/ bullseye main contrib deb-src http://ftp.de.debian.org/debian/ bullseye main contrib EOF

But please note that I configure priorities so that my system will prefer stable, and it will install bullseye/sid packages only if I explicitly ask it to do so:

root@couriermta:/etc/apt/sources.list.d# cd /etc/apt/preferences.d/
root@couriermta:/etc/apt/preferences.d# cat > sid << EOF
Package: *
Pin: release a=stable
Pin-Priority: 990

Package: *
Pin: release a=testing
Pin-Priority: 700

Package: *
Pin: release a=unstable
Pin-Priority: 600
EOF

Next we need to install the gcc compiler and toolchain. While we are at it, we also install some libs that we’ll need later, when we’ll be compiling authlib and Courier-MTA itself. Some of these libraries might already be installed in your system, depending on how you installed Debian and what you choose to install in the tasksel step. If they are, no worries, apt will just skip their installation.

# apt-get update
[...]
# apt-get install build-essential libltdl-dev \
  libgdbm-dev libgdbm-compat4 \
  libpcre3-dev libidn11-dev libidn2-0-dev \
  libgnutls28-dev libgcrypt20-dev libperl-dev gnutls-bin
[...] Do you want to continue? [Y/n]

Time to add a non-root user I’ll use to compile Courier-MTA source code:

root@couriermta:~# adduser couriermta
Adding user `couriermta' ...
Adding new group `couriermta' (1001) ...
Adding new user `couriermta' (1001) with group `couriermta' ...
Creating home directory `/home/couriermta' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully 
Changing the user information for couriermta
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
root@couriermta:/etc/apt/preferences.d# mkdir \
  -p /opt/courier/sources
root@couriermta:/etc/apt/preferences.d# chown \
  -R couriermta.couriermta /opt/courier/
root@couriermta:/etc/apt/preferences.d# su - couriermta
couriermta@couriermta:~$ cd /opt/courier/sources/
couriermta@couriermta:/opt/courier/sources$

Let the party begin. We download the source code (unicode library, authlib and Courier-MTA itself):

couriermta@couriermta:/opt/courier/sources$ wget 'https://sourceforge.net/projects/courier/files/courier-unicode/2.1/courier-unicode-2.1.tar.bz2'
[...]
couriermta@couriermta:/opt/courier/sources$ wget 'https://sourceforge.net/projects/courier/files/authlib/0.69.1/courier-authlib-0.69.1.tar.bz2'
[...]
couriermta@couriermta:/opt/courier/sources$ wget 'https://sourceforge.net/projects/courier/files/courier/1.0.9/courier-1.0.9.tar.bz2'
[...]
couriermta@couriermta:/opt/courier/sources$ for i in *.bz2 ; do tar xjf $i ; done

We start compiling and installing the unicode library. Please note that I chose to install it in /opt/courier/unicode, but you can choose any other directory that suits your needs. All commands below, until the end of this giude, will assume you chose /opt/courier/unicode, so you might need to customize them too if you choose a different location:

couriermta@couriermta:/opt/courier/sources$ cd courier-unicode-2.1/
couriermta@couriermta:/opt/courier/sources/courier-unicode-2.1$ ./configure --prefix=/opt/courier/unicode
[...]
couriermta@couriermta:/opt/courier/sources/courier-unicode-2.1$ make
[...]
couriermta@couriermta:/opt/courier/sources/courier-unicode-2.1$ su
root@couriermta:/opt/courier/sources/courier-unicode-2.1# make install
[...]
root@couriermta:/opt/courier/sources/courier-unicode-2.1# exit

Now we compile the authentication library. Likewise, I chose /opt/courier/authlib, but it’s up to you.

$ cd /opt/courier/sources/courier-authlib-0.69.1
$ mkdir ../include
$ ln -s /opt/courier/sources/courier-unicode-2.1/ /opt/courier/sources/include/unicode
$ ./configure --prefix=/opt/courier/authlib CFLAGS='-I/opt/courier/sources/include/unicode' LDFLAGS='-L/opt/courier/unicode/lib'
[...]
$ make
[...]
$ su
root@couriermta:/opt/courier/sources/courier-authlib-0.69.1# make install
[...]
root@couriermta:/opt/courier/sources/courier-authlib-0.69.1# exit

We’re all set, we can now compile Courier-MTA itself:

$ cd ../courier-1.0.9/
$ ln -s /opt/courier/sources/courier-authlib-0.69.1/ /opt/courier/sources/include/authlib
$ export COURIERAUTHCONFIG=/opt/courier/authlib/bin/courierauthconfig 
$ export CPATH=/opt/courier/sources/include/authlib:/opt/courier/sources/include/unicode
$ ./configure --prefix=/opt/courier/courier --with-gnutls --with-notice=unicode CFLAGS="-I/opt/courier/sources/include/authlib -I/opt/courier/sources/include/unicode" LDFLAGS="-L/opt/courier/authlib/lib/courier-authlib -L/opt/courier/unicode/lib"
[...]
$ make
[...]
$ make check
[...]
$ su
root@couriermta:/opt/courier/sources/courier-1.0.9# make install
[...]
root@couriermta:/opt/courier/sources/courier-1.0.9# make install-configure
[...]

And that’s all about it, meaning Courier-MTA is compiled and installed, assuming you got no error messages with the commands above. However barely installing it, it’s of no use if we don’t actually run it,  and, before running it, we need a bit of configuration. Let’s add some essential paths to out PATH variable:

# echo 'export PATH=$PATH:/opt/courier/courier/bin:/opt/courier/courier/sbin:/opt/courier/scripts' >> $HOME/.bashrc

Then we need to create a /opt/courier/authlib/etc/authlib/authdaemonrc file: we can copy the preinstalled /opt/courier/authlib/etc/authlib/authdaemonrc.dist and edit it to suit our needs.

I won’t delve into further details of configuring and running Courier-MTA here, because you can find extensive documentation about it at the Courier-MTA website, and there’s nothing Debian specific in that procedure.  However I feel like giving a few final hints.

if you are running a KVM guest in a NAT-ted network of virtual servers, which happens to be my setup, don’t forget to limit the smtpaccess that comes by default with Courier-MTA:

# vi /opt/courier/courier/etc/smtpaccess/default

Comment out the following lines, that are line 13 and line 14 in the release of Courier-MTA I downloaded:

10 allow,RELAYCLIENT
192.168 allow,RELAYCLIENT

Those lines should look like this:

#10 allow,RELAYCLIENT
#192.168 allow,RELAYCLIENT

Then run, as root

# makesmtpaccess

That will avoid a open relay inside the virtual servers network (and also outsite it, if you ever map the public IP 25/tcp port to your Courier-MTA instance).

If you plan to use SSL/TLS enctypted connections (and you SHOULD!), you need to provide Courier with valid certificates. You can use LetsEncrypt to obtain valid certificates for your server for free, but, before that, you may need at least a test (hence not valid) certificate, just to check encrypted connections are actually working.

The mkimapdcert script can be used to create such test certificate. Just run it and you’re done. You can now test your IMAP server with any client: just make sure you tell it to accept your invalid certificate.

That’s all, you can now continue reading the official documentation from the “Installation” chapter on, which will work without modifications in Debian too.

After you have configured Courier basic settings, you may need a handy script to start, stop and gracefully restart Courier. Here’s mine /opt/courier/scripts/courier.sh:

#!/bin/bash

/opt/courier/authlib/sbin/authdaemond $1
/opt/courier/courier/sbin/courierfilter $1
/opt/courier/courier/sbin/courier $1
/opt/courier/courier/sbin/esmtpd $1
/opt/courier/courier/sbin/esmtpd-msa $1
/opt/courier/courier/sbin/imapd $1
/opt/courier/courier/sbin/pop3d $1
/opt/courier/courier/sbin/esmtpd-ssl $1
/opt/courier/courier/sbin/imapd-ssl $1
/opt/courier/courier/sbin/pop3d-ssl $1

Then I added a /etc/rc.local file containing

#!/bin/bash
/opt/courier/scripts/courier.sh start

So far so good. However if you reached this point, you’ll likely want to send emails too. Nowadays sending emails can be a tough job. Times when you could script telnet to forge a sender address and drop messages into random mailboxes are over. A default Courier setup is far better than that, but it does not include DKIM signatures. Please note, DKIM is not mandatory, but its adoption is rising and you might want to jump on that bandwagon too. So let’s install some packages required to compile and run zdkimfilter:

# apt-get install libopendkim-dev opendkim opendkim-tools libunistring-dev

Then we download and compile zdkimfilter. We need to tell configure where to find the courer-config binary and specify a fake courier version manually (the latter because of a bug in version 1.6 of zdkimfilter):

# su - couriermta
$ mkdir /opt/courier/sources/zdkimfilter/
$ cd /opt/courier/sources/zdkimfilter/
$ wget 'https://www.tana.it/sw/zdkimfilter/zdkimfilter-1.6.tar.gz'
$ tar xzf zdkimfilter-1.6.tar.gz
$ cd zdkimfilter-1.6/
$ ./configure --with-courier-version=60 --prefix=/opt/courier/zdkimfilter COURIER_CONFIG=/opt/courier/courier/bin/courier-config
$ make
$ su
# make install

All the rest is up to you and not documented here, e.g. adding SPF and DKIM DNS records, and DMARC policies as well. You can find extensive documentation about those out there on the internet. The same is true for zdkimfilter configuration too, but I like to share this last bit, which is a script I use to enable DKIM for a particular domain:

#!/bin/bash
#
# Simple script to create DKIM keys for Courier/zdkimfilter.
# Copyright © 2017 Lucio Crusca <lucio@sulweb.org>
# No warranty whatsoever. 
# This is PUBLIC DOMAIN code: you can use it for whatever you want, except for 
# holding me responsible for anything. If you choose to use this code, you agree
# to take full responsibility for your actions.
#
# End of legal nonsense

HEADEND=$(grep -n 'End of legal nonsense' "$0" | head -n 1 | cut -d':' -f1)
HEADEND=$(( ${HEADEND} - 1))
cat "$0" | head -n ${HEADEND} | tail -n $(( ${HEADEND} - 1 )) | sed -e 's/^#//'

DOMAIN="$1"
COURIERCONF=/opt/courier/courier/etc
KEYSDIR="${COURIERCONF}/filters/keys"

if [ "${DOMAIN}" == "" ] ; then
  echo "Please specify the domain for the new DKIM key, e.g.:"
  echo
  echo "$0 example.com"
  echo
  exit 1
fi

if ! [ -d "${KEYSDIR}" ] ; then
  echo "${KEYSDIR} is not a directory. Please edit $0 to match your Courier setup."
  exit 2
fi

NOW=$(date +%F+%T | sed -e 's/-//g' | sed -e 's/+//g' | sed -e 's/://g')
SELECTOR="${DOMAIN}${NOW}"

cd "${KEYSDIR}"
if [ -L ${DOMAIN} ] ; then
  echo "DKIM keys seem to already exist for ${DOMAIN}."
  echo "You may replace them if you want, further confirmation will be asked before actual replacement."
  echo -n "Do you want to proceed and create new keys (y/N)? "
  read REPLACE
  if [ "${REPLACE}" != "y" ] && [ "${REPLACE}" != 'Y' ] ; then
    echo "Nothing changed."
    exit 0
  fi
fi

opendkim-genkey -b 4096 -d "${DOMAIN}" -D "${KEYSDIR}" -s ${SELECTOR} -r nosubdomains -v
chmod 640 ${KEYSDIR}/${SELECTOR}.*
chown root.daemon ${KEYSDIR}/${SELECTOR}.*
echo "DKIM Keys created."
echo "Please add the following TXT record to ${DOMAIN} domain and let it propagate."
echo
cat ${SELECTOR}.txt | sed -e "s/^${DOMAIN}//" cat ${SELECTOR}.txt echo if [ "${REPLACE}" != "" ] ; then echo "Since you have choosen to replace the current DKIM keys, you need to decide when the new keys will be activated." echo "By now your system is still using the current keys to sign messages." while [ "${ACTIVATENOW}" != "NOW" ] ; do echo -n "Please type NOW (uppercase) followed by Return to replace the current keys with the new ones: " read ACTIVATENOW if [ "${ACTIVATENOW}" != "" ] && [ "${ACTIVATENOW}" != "NOW" ] ; then echo "You need to type NOW. You may also hit Ctrl+C to break the script and handle the activation manually." fi done rm -f "${DOMAIN}" fi ln -s "${SELECTOR}.private" "${DOMAIN}"

Vista sul paradiso

La luce ti richiama,
la vedi in fondo al tunnel
e sai che lei ti ama
a volte, in quel motel.

Decidi di partire,
ché questa è la tua ora.
“È semplice morire
e’l mondo non peggiora”.

Dall’alto vedi tutto
si fan gli affari loro.
Il chirurgo tiene un rutto
per semplice decoro.

“Alcun mi ha mai amato?”
Osservi i tuoi parenti.
Già san che sei andato,
ma pianti non ne senti.

“O forse la mia mamma
mi aspetta in paradiso”.
Guardi ancora il cardiogramma
tanto piatto che ti ha ucciso.

Un dubbio ti attanaglia
e non sei molto felice:
«Don Mauro qui si sbaglia
in tutto quel che dice!»

«Osanna alto in cielo
e pace in terra a loro…»
«…ma d’angeli in un velo
qui manca pure il coro!»

«Che sia il purgatorio?
Non son stato perfetto.»
Uno strillo perentorio
ti toglie ogni sospetto.

Tua madre sta a gridare
con urla fastidiose:
«Come hai fatto a combinare
cotante brutte cose?»

Il purgatorio no,
si trova troppo in alto.
«Più in basso finirò
per colpa dell’appalto».

Il crimine non paga
e l’onestà neppure,
ma disse un dì una maga
«Vivrai senza paure».

La vita dissoluta
fu la tua interpretazione
e tua moglie, compiaciuta,
non troncò la relazione.

«Ah mia cara, tu almeno
porterai il mio ricordo»
ma sospetti, nondimeno,
d’esser stato troppo ingordo.

«Forse è meglio se controllo
cosa fa la mia metà»
e così allunghi il collo
per guardar dall’aldilà.

Tua moglie pensa a tutto,
non riposa e non è stanca:
non veste ancora a lutto,
ma è già passata in banca!

Pillole di tolleranza

  • Un credente dice ad un ateo: «Uno di noi due ha ragione. L’altro finirà all’inferno.»
  • Un ateo dice ad un credente: «Uno di noi due ha ragione. Sono io.»
  • Un cattolico dice ad un protestante: «La chiesa cattolica è universale, devi capirlo per poterne far parte.»
  • Un protestante dice ad un ateo: «…ma vogliamo parlare dei cattolici?»
  • Un cattolico dice ad un altro cattolico: «Bisogna fare qualcosa perché la Chiesa si rinnovi». L’altro risponde: «Giusto, dobbiamo iniziare a frequentarla…»
  • Un protestante dice ad un altro protestante: «Pensa che la scuola pubblica in Italia esiste grazie a noi». L’altro risponde: «Sì, nessuno è perfetto…»
  • Un ateo dice ad un altro ateo: «Preghiamo Chuck Norris»

Gofri al gorgonzola

Durante la festa di fine anno catechistico di alcuni anni fa, ebbi un’ispirazione “artistica”. Il canto “Servo per amore” mi era rimasto in testa:

Intanto, la festa con i gofri faceva da sottofondo. Ho sempre avuto grande stima per Pierpaolo, per il suo impegno di catechista, e credo che lui lo sappia, quindi era l’obiettivo perfetto per un amichevole scherzo.

Scrissi il testo da sovrapporre alle note di “Servo per amore” praticamente di getto, ma ci volle un ulteriore anno prima di potergliela cantare alla festa dell’anno successivo.

Ecco quindi a voi, riproposta nel giorno della festa di fine anno catechistico, l’opera in tutto il suo splendore.

Gofri al gorgonzola

(sulle note di Servo per amore)

Una coda di due ore
all'oratorio per mangiare
dovresti fare ma manca già
il rosso nelle botti vuote.
Ed il gofri che ti chiama
un altro poco ti sazierà
e sulle rime di 'sta canzone
altri gofri chiederai

  Gofri, la vita tua,
  come Pierpaolo ai piedi del bancone
  chiederai gofri alla pancetta
  gofri alla nutella
  gofri e gorgo per l'eternità.

Aspettavi nel silenzio
il tuo turno per i gofri
e la cassetta davanti a te
serve a metterci l'offerta.
Ora il cuore tuo è in festa
perché il tuo gofri biondeggia ormai
l'hai ordinato al gorgonzola
ma è finito e non lo sai...

  Gofri, la vita tua,
  come Pierpaolo ai piedi del bancone
  chiederai gofri alla pancetta
  gofri alla nutella
  gofri e gorgo per l'eternità.

Poker face

Seduti al tavolo, in silenzio, in mezzo agli altri, c’erano due giocatori di poker, con le loro carte in mano. La posta era alta, gli altri quattro giocatori avevano già abbandonato la mano non potendo coprire i continui rilanci in apertura.

Il primo giocatore, un po’ più giovane, un po’ più inesperto, non era così bravo a nascondere i propri pensieri, ma, a suo vantaggio, questa volta c’erano le carte: dopo il cambio, in mano aveva una scala reale. Non la più alta possibile, ma poco ci mancava. L’altro giocatore, di poco più anziano, aveva tanta esperienza e capacità di nascondere le emozioni.

Toccava al giovane puntare per primo. Era praticamente certo che avrebbe vinto, perché la probabilità di due scale reali nella stessa mano è talmente bassa da potersi considerare trascurabile, ma non voleva farlo capire al suo avversario. Se avesse puntato subito una grossa cifra, avrebbe rischiato di suggerire il punteggio che teneva fra le dita. Se ne avesse puntata una piccola, rispetto al giro di rilanci in apertura, non sarebbe risultato credibile ed il suo avversario avrebbe potuto passare la mano fiutando l’inganno. Certo, in entrambi i casi sarebbe stata una vittoria, ma lui, il giovane, non voleva solo vincere, voleva far del male serio, in senso figurato ovviamente, a quella persona che aveva davanti e che lo fissava con sufficienza. Voleva proprio spennarlo, umiliarlo, ridurlo ad un povero ebete mezzo ubriaco, che brancola, in un vicolo buio, in cerca di una ragione di vita. Questa mano sarebbe stata l’ultima volta in cui avrebbe osato tenere quello sguardo saccente e poco rispettoso.

Decise quindi di far leva sulla propria inesperienza, di lasciar trapelare qualche emozione in più di quelle che veramente sentiva. Iniziò a guardare nervosamente le carte e le sue fish, quasi a voler stimare il valore delle une e delle altre. Lo faceva in modo subdolo, non troppo evidente, anzi, quasi impercettibile, ma quel tanto che bastava per far credere che stesse bluffando e che non riuscisse a nasconderlo. Evitava lo sguardo del suo avversario, ma ciò gli faceva piacere a priori. Dopo qualche secondo, senza metterci troppa sicurezza, sollevò un gruzzolo dalla sua cassa e lo appoggiò delicatamente al centro del tavolo, con rispetto ed attenzione, quasi a volergli dare l’estremo saluto. Proferì poche parole, solo la cifra della puntata. Una puntata media, non esagerata ma rispettabile. Una cifra che significava:«Ho qualcosa in mano, ma non abbastanza per rischiare la casa».  Mentre stava ancora ritraendo la mano, il suo avversario interruppe l’azione con una frase sprezzante: «Ragazzo, sei al tavolo sbagliato, dovevi ascoltare il mio consiglio. Copro la tua puntata e la raddoppio».

La sua messa in scena stava funzionando: Roger era convinto che lo avrebbe facilmente battuto. Era il momento di chiedere pietà. Daniel, ora impassibile, pareggiò il raddoppio ed aggiunse solo pochi spiccioli, come per centellinare le fish che ancora aveva, che non erano poche, ma che potevano servire tutte per coprire un bluff in realtà inesistente.

To be continued…

 

La sassaiola del giovedì pomeriggio

Acqua dentro la tazza, una cascata schiumosa
ed il silenzio non previsto di un cielo stellato,
portano il cane ad interrogarsi sull’efficacia
dell’antizecca.

Banale direte voi, che poi non è semplice
dimostrare quanto la fretta del cucchiaio
possa intingere il desiderio di uno stipendio
nella prima luce del mattino.

E se non fosse reale? Ecco, la vecchia testimonia.
Il suono soave della grattugia
sveglia l’uccello e la pianta di ipecacuanha
verso un destino che non gli appartiene.

E piove.

Crostone “Belle Epoque”

Tanto per cambiare questa volta pubblico una ricetta. L’ho inventata io, spero vi piaccia. È una torta dolce e fredda, senza cottura. Divido la ricetta in due parti, la base e la guarnitura. La base può essere utilizzata per altre torte simili.

Base “Lueba” per torte dolci fredde.

Ingredienti:

  • Zucchero 70
  • Cioccolato fondente 150g
  • Burro 100g
  • Gallette “Digestive” 350g
  • 2 o 3 arance
  • 1 busta di vanillina

Preparazione:
Fondere zucchero, burro e cioccolato, frullare il resto, mischiare tutto, cospargere una tortiera, schiacciare con cucchiaio formando i bordi, guarnire a piacere e mettere in freezer.

Varianti:
Quella che ho presentato qui è l’ultima versione della ricetta, dopo aver apportato alcune modifiche a seguito di suggerimenti di parenti ed amici. Inizialmente la base era fatta con amaretti secchi invece che digestive e mettevo due o tre banane schiacciate al posto delle arance e zucchero. Una volta ho anche fatto la base senza arance né banane e poi ho messo lo strato di banane sopra alla base e sotto alla guarnitura, in modo da tenere ben separati i sapori. Tutte le versioni precedenti hanno ricevuto giudizi positivi e critiche. L’ultima, ovvero quella qui riportata, sembra piacere proprio a tutti, ma i gusti sono soggettivi, quindi nulla vieta di provare anche le altre (a me personalmente quella con lo strato di banane piace molto).

Crostone “Belle Epoque”

Ingredienti:

  • Una base “Lueba”
  • Cioccolato bianco 300g
  • Panna montata dolce 300ml
  • Succo di 1 limone

Preparazione:
Fondere cioccolato bianco e succo limone a bagno maria. Lasciar raffreddare. Unire la panna montata ed amalgamare.
Cospargere sulla base “Lueba”. Mettere in freezer per almeno due ore e togliere dal freezer qualche minuto prima di servirla.

Windows 10, le novità. Beh, quasi.

Il 29 luglio Microsoft rilascerà la nuova versione di Windows. Su questo blog la cosa è probabile che interessi poco, ma ci tenevo ad elencare le novità giusto per non perdere d’occhio in che direzione sta andando il mondo desktop.

Commento le novità seguendole una per una alla pagina ufficiale MS.

  • Windows 10 avrà il menù start, del tutto simile a quello che c’era fino a Windows 7. Cioè, in pratica, lo hanno tolto da Windows 8 per poi poterlo presentare come novità di Windows 10.
  • Windows 10 manderà (finalmente) in pensione Internet Explorer e con lui i peggiori spettri del medioevo informatico come ActiveX e BHO. Internet Explorer sarà sostituito da Microsoft Edge, un browser nuovo di zecca basato sugli standards (speriamo). Per i nostalgici comunque Internet Explorer 11 potrà ancora funzionare su Windows 10 (o forse per tutti quelli a cui MS Edge non funzionerà…). Detta in breve, Windows 10 ti permetterà di navigare su internet (forse).
  • Windows 10 permetterà di avere fino a QUATTRO finestre aperte contemporaneamente. Se non ricordo male su Windows 8 erano solo due. E, sempre se non ricordo male, fino a Windows 7 erano illimitate quindi la cosa non veniva neppure pubblicizzata… non è importante cosa vendi, l’importante è saperlo vendere.
  • Windows 10 ha uno store fornitissimo di app, musica, giochi e quant’altro. C’era già su Windows 8. E, a dirla tutta, non è che se ne sentisse la necessità.
  • Windows 10 include Cortana, ovvero un desktop semantico che si fa gli affari tuoi convinto di sapere meglio di te cosa in effetti stai cercando. De gustibus. Gli altri sistemi operativi ce l’hanno da circa una decade e da circa nove anni e 364 giorni gli utenti hanno imparato a disabilitarlo.
  • Windows 10 ha il supporto per periferiche di input diverse dal mouse, come schermi touch con dito o penna apposita. Wow.
  • Windows 10 funziona con schermi di varie dimensioni e risoluzioni, ovvero non ti obbliga ad avere un monitor che supporti la risoluzione 800×600 come Windows 3.1, ricordate?
  • XBox sta per arrivare su Windows. Beh questa onestamente non la capisco… non era Windows che era arrivato su XBox, fin dal giorno in cui hanno inventato la Xbox?

Comunque, anche se non capisco l’ultima, mi sembra che l’elenco di novità sia già talmente lungo ed interessante da voler assolutamente aggiornare alla nuova versione di Windows appena possibile… ma non prima che qualcuno mi dica che fine ha fatto Windows 9.