L'uso di questo sito
autorizza anche l'uso dei cookie
necessari al suo funzionamento.
(Altre informazioni)

Tuesday, December 17, 2013

Is this what humor impairment looks like?

Dave Barry has writtten extensively on the subject of Humour Impairment, but it does not appear the illness has been cured.

This was posted on reddit.com/r/Linux:



OP:"Please do not post support questions here!
This is not the subreddit for them.
/r/LinuxQuestions and /r/Linux4noobs are both great and correct places to ask for support using Linux, either as a newbie or an advanced user.
"


Me:"Please do not post module announcements here. They should go to comp.lang.perl.modules. If they are moderated they should go to comp.lang.perl.modules.moderated. If your question is on core it should go to comp.lang.perl.core, however, if it is on operators, post it to comp.lang.perl.operators. Language questions go to comp.lang.perl.language, all others should go to comp.lang.perl.programming. Also, will those of you who are playing in the match this afternoon move your clothes down onto the lower peg immediately after lunch, before you write your letter home, if you're not getting your hair cut, unless you've got a younger brother who is going out this weekend as the guest of another boy, in which case, collect his note before lunch, put it in your letter after you've had your hair cut, and make sure he moves your clothes down onto the lower peg for you."


Redditor:"I've read it multiple times and I still don't understand what this means. I think you meant to post this to /r/perl ?"


Me: "It's perfectly simple. If you're not getting your hair cut, you don't have to move your brother's clothes down to the lower peg. You simply collect his note before lunch, after you've done your scripture prep, when you've written your letter home, before rest, move your own clothes onto the lower peg, greet the visitors, and report to Mr. Viney that you've had your chit signed. Now, sex. Sex, sex, sex. Where were we? Well, had I got as far as the penis entering the vagina?"

Friday, December 13, 2013

Lo hobbit: la sfortuna di essere orco, l'imbarazzo di essere un drago

Insomma sono andato tra i primi a vedere la seconda parte di lo Hobbit, diretto da Peter Jackson, e mi dispiace dire che mi è piaciuto piuttosto meno del primo.

Diamo subito a Cesare quel che è di Cesare: grandi ambientazioni e grande spettacolo visivo, passo sostenuto (anche troppo), effetti speciali,  CGI e trucco di prim'ordine: la noia non fa parte dei problemi di questo film.

Nemmeno i cambiamenti di trama rispetto al libro  nè l'introduzione di personaggi nuovi, mi hanno disturbato più di tanto - li avevo già digeriti nel primo film  (ma altri la pensano diversamente, e molto in negativo).

La recitazione è più o meno quella del primo film. Continuo a preferire i personaggi secondari (Balin fra tutti): Thorin diventa più sinistro ad ogni minuto (dovrebbe essere soprattutto triste e assorto) e Bilbo sembra costantemente fuori posto (un po' era così anche nel libro, in fondo).

Passiamo alle cose che mi sono veramente piaciute poco o per nulla, in ordine inverso di sgradimento (Attenzione: qualche spoiler).

Intanto il ritmo narrativo. I viaggi nel "Signore degli Anelli" e ne "Lo Hobbit" sono lunghi - durano settimane, mesi. INfatti a volte sono tanto lunghi da essere fastidiosi (l'attraversamento di Mordor di Frodo e Sam l'ho sempre trovato esageratamente lungo). Mentre nel primo film PJ faceva qualche sforzo per comunicare questa dimensione temporale (scene serali nell'accampamento), in questo - forse punto sul vivo dalle critiche di lentezza rivolto al primo - non ci ha nemmeno provato.

Nonostante la considerevole durata del film (2 ore e 40 minuti) molte situazioni hanno il ritmo frenetico di comiche di Ridolini: la scena che ha decisamente la peggio è l'attraversamento di Bosco Atro, che pare durare cinque minuti in tutto: per compensare e spiegare lo spaesamento dei personaggi, ci fanno sospettare che il luogo sia psichedelico ("L'aria è strana") forse per un eccesso di canapa nel sottobosco. Anche l'episodio dei ragni viene trattato con la stessa fretta.

Beorn ha la palma del personaggio più maltrattato. Assoggettato al trattamento Ridolini di cui sopra, viene ridotto ad una specie di bruto caratteriale (nel libro è un personaggio nobile e strano).  Tutta la scena della presentazione  a coppie della compagnia sparisce, così come il senso globale dell'episodio.

 Gli orchi. Sono centinaia e sono ovunque, anche dove non te li aspetti (nel regno degli elfi silvani ad esempio). Sono più grandi, (apparentemente) forti e mostruosi che mai. E totalmente, irrimediabilmente sfigati.  Dopo un po' uno comincia a provare la stessa simpatia che si prova per Wile E. Coyote. I terribili orchi si battono continuamente il petto, minacciano sfracelli, corrono come pazzi - sui Warg e  a piedi - e non fanno che prendere micidiali tranvate, da chiunque, senza riuscire a infliggere danni che non siano risibili. Bisogna aspettare fino a tre quarti del film prima che Legolas prenda due (lievi) pappine da un orco e l'unico risultato che hanno è farlo imbufalire ancora di più. Poco lontano, dieci orchi non riescono ad avere ragione di due bambine, che li bersagliano con piatti di legno. Così imbelli sono i poveri Uruk Hai che dopo un po', forse per rendere le cose più interessanti, i protagonisti cominciano ad ucciderli in maniera comica, o addirittura spregevole ("Se parli ti lascerò libero" ... "Ecco gli ho liberato le spalle dalla sua mostruosa testa"). Dice Legolas: "Tauriel, non puoi dare la caccia da sola ad una banda di 30 orchi", ma è chiaro che per questi qui bastava anche l'orso Yoghi.

Il drago Smaug. A parte che doveva essere rosso (è verde) doveva anche essere tremendo. E' vero che, nel libro, l'interazione del drago con gli gnomi lascia un po' a desiderare (e tutto sommato anche il modo in cui viene fatto sparire è abbastanza sbrigativo). Bisogna ricordare che nel libro Bilbo parla a Smaug mentre è invisibile e nascosto nell'imboccatura di un tunnel angusto e ciononostante, quando Smaug si stanca - dopo 10 minuti  - delle chiacchiere di Bilbo, manca poco che arrostisca tutti quanti, si sfoga demolendo mezza montagna solitaria. e poi se ne va a distruggere Ponte Lagolungo. Per cui si può capire che Jackson volesse incrementare la presenza in scena di Smaug. Ma il prezzo che ha pagato per farlo è altissimo. Per 20 minuti Smaug si esibisce in evoluzioni (impressionanti) in uno spazio grande, illuminato e sgombro come lo stadio di San Siro senza riuscire ad arrivare nenache vicino ad uno dei 13 nani più un hobbit che per tutto il tempo corrono in piena vista e lo prendono per i fondelli. Il cartone animato di riferimento diventa (ahimè) Tom e Jerry. Il comportamento di Bilbo è demenziale, continua a mettersi e a togliersi l' anello dell'invisibilità per motivi inspiegabili: quando se lo toglie, cerca subito di nascondersi (!!!)   Attorno a lui  abbondano le situazioni risibili:Thorin naviga un fiume di oro fuso su uno scudo senza farsi nemmeno una vescica ad un mignolo. E, nella migliore tradizone dei cattivi di Bond, tutta la scena è accompagnata da incessanti, logorroici proclami ("Come sono terribile! Ora vi prenderò!") di Smaug , che evidentemente non si accorge dell'imbarazzante pochezza dei risultati. Forse il padre e il nonno di Thorin li ammazzò annoiandoli a morte.

Insomma si assiste ad un sacrificio massiccio della logica a vantaggio dello spettacolo, e mi sembra che, anche per un film di cappa e spada, si esageri. Come disse un mio amico - parlando de "La Mummia "- "E' vero che al cinema bisogna sospendere l'incredulità, ma dirci che al Cairo, nel 1917, si verificarono le 10 piaghe d'Egitto e nessuno lo ha mai saputo mi pare troppo". Appunto.

P.S: Non è colpa di P.J. ma tra le cose spiacevoli devo aggiungere la traduzione del parlato, sciatta e piena di anglicismi o di allocuzioni contorte evidentemente derivate dalla forma dell'originale Inglese. Ma non è certo questo l'unico caso, o il peggiore.

Friday, December 6, 2013

Local editing of remote file, from the CLI, with emacs.

What I do all day long involves hopping, mostly with ssh, on various machines and editing files over there.

Over the years I have settled on emacs as my sole editor. I have even tried to plug it in various IDEs (such as Eclipse: without much luck, so I backed off). So the initial approach requires having it installed everywhere I log in. Cool, but it deprives me of the graphical environment because...

  1. X over the network is pitiably slow
  2. FreeNX is better, but not enough, and sometimes screws up on fonts, keyboard type, etc. Also you end up with a mess of emacsen frames, and copypasting is still not ideal.
As an old time emacs hand I would not be (much) bothered by having to use the tty version, if it were not for the clunkyness of cutting and pasting between windows on different servers (which I often do). For a while I relied on mounting the remote machine's file systems locally with sshfs, under a hierarchy such as
as
/remote/server1/... 
/remote/server2/... 
I could then use my local emacs to edit remote files as if they were local. Not bad - and I still use this technique now and then, for different purposes - except:

  • It's overkill
  • You now have to remember to unmount
  • You now have this wonderful opportunity of wiping out an entire server (or part thereof) by mistyping a command on your local machine (I know. It happened - shudder)
After that, I began using an emacs extension called TRAMP. It gives emacs the ability to edit remote files whose path is of the form:

//server:/my/nifty/file.txt

TRAMP does its thing by using a variety of transports, mostly ssh based. It also gives you access to countless emacs goodies, like diff'ing (via ediff) two buffers sitting on different machines, editing remote directories, remote VC (careful of C-c C-Q, though) and more. But I digress. So this TRAMPish solution is much better except for the (not huge, really, but still) snag of having to remember to:
  1. Look up the path of the file (in the terminal)
  2. Restrain the habit of editing in the terminal window itself
  3.  Move to my emacs window (maybe on a different desktop, hidden under a pile of junk; also, makes me pick up the mouse even if not strictly needed)
  4. Type again (or maybe paste) the file path, in tramp digestible format.
Because of this, and to my chagrin, I sometime ended up in - unwillingly - editing within the terminal. Would it not be supercool if I could type on the server:

server1:/# hed /my/nifty/file.txt

and have the file pop up in my local emacs window? Which brings us to my latest, greatest solution to this monumental problem of computer science.

Update: Andrew McGlashan alerted me to vim's capability of opening remote files from the CLI much like emacs does. Which means that suitably combining that and gvim's client-server capabilities, you can pull the same trick if you are a vi head. Which is good, because, as soon as I posted this, a number of dudes felt obliged to point out that vi is the editor. Which may well be the case, for them and for all I (want to) know. I will leave the development of the idea to vi users more gifted than I (not a hard feat to achieve). 

(Caveat: I tried what follows with emacs 24.2.1, tramp 2.2.24-1 (which ships with emacs) on a Fedora Core 18 Linux. I suppose it may work with other combinations of versions, operating systems... even with windows, putty and some sort of ssh server on top of that. But I did not even venture to try.)


  1. Be sure to have the following in your local .emacs:

      (server-start)

    This make emacs listen to a local socket so you later on, can type 


    localhost:/# emacsclient file.txt

    and have the (local) file pop up inside emacs. Man emacsclient explains this.
  2. Have shared ssh keys between your desktop and your servers, and an operating ssh-agent so you don't have to type your password every time (if you don't know what I am talking about, man ssh, man ssh-agent, man ssh-add are your friends)
  3. Have a .ssh/config file containing stanzas like the following:
    
    Host server1
     HostName server1.foo.bar
     RemoteForward 8222  127.0.0.1:22 
     User luser
    
    
    So you can type
    
    
    localhost:/ #ssh server1 
    
    
    and be connected to server1 as luser, passwordless, and tunneling the port 8222 (arbitrary number) on the local interface of server1 back to your sshd port on your local machine (this is quite a mouthful).
  4. Now install the following thingy on all your servers, say in /usr/local/bin, and call it hed (don't forget to chmod 755 /usr/local/bin/hed):
    
    #!/bin/bash
    
    PORT=8222
    HOST=localhost
    LHOST=${HOSTNAME:-$(hostname -f) }
    RU=${HUSERNAME:-$USER}
    
    ver=0.1
    author="Alessandro Forghieri "
    usage () {
     name=`basename $0`
     echo "$name $ver $author"
     echo
     echo "Usage: $name [-p port] [-h host ] [-l lname] [-u user]  [-v] file1 file2 ..."
     echo
     echo "        -p   port number (defaults to $PORT)"
     echo "        -h   host remote host (defaults to $HOST)"
     echo "        -l   lname name of this host "
     echo "             (defaults to content of HOSTNAME or output or hostname -f command, currrently: $LHOST)"
     echo "        -u   user remote user "
     echo "             (defaults to the contents of the HUSERNAME or USER environment variable, "
     echo "             currently: $RU)"
     echo "        file1 file2 localfiles to edit with remote editor"
     echo
     echo "See also: man boilerplate"
     echo
    }
    
    #http://stackoverflow.com/questions/3915040/bash-fish-command-to-print-absolute-path-to-a-file
    abspath() {
        curdir=$(pwd)
        if [[ -d "$1" ]]; then
     retval=$( cd "$1" ; pwd )
        else 
     retval=$( cd $( dirname "$1" ); pwd )/$(basename "$1")
        fi
        cd $curdir
        echo $retval
    }
    
    while getopts p:h:u:l:v opt ; do
        case "$opt" in
     p) PORT=$OPTARG    ;;
     h) HOST="$OPTARG"  ;;
     i) usage ;  exit   ;;
     v) set -x          ;;
     ?) usage ;  exit   ;;
        esac
    done
    
    shift `expr $OPTIND - 1`
    
    while [[ x$1 != x ]]; do
        target=$(abspath $1)
        ssh -f -p $PORT ${RU}@${HOST} "emacsclient -n \"/${LHOST}:/${target}\""
        shift
        # or some funky race condition screws everything up 
        sleep 2
    done
  5. Explanation: the script above formats a file path in a form digestible to tramp - that is/hostname:/blah/blah (I need two leading slashes within emacs, only one from a shell, I wonder why). It then sends the command emacsclient -n , via ssh, to my local desktop, using the tunnel I just created - my machine, like 99.9% of modern enduser machines is behind a firewall with NAT o top - that explains the need of the firewall. Now emacs opens the file(s) via the regular forward ssh channel
And there you have it: local editing of remote files, from the CLI, with emacs.

Wednesday, December 4, 2013

Assistenza Clienti (della serie il fumo è buono)

Un cliente si lamenta con forza che la sua copia di  Autocad a 64 bit è incompatibile con un PC a 32 bit (che ha da alcuni anni) e chiede di sapere perché gli abbiamo venduto un prodotto incompatibile e inferiore.

Ad un controllo in contabilità risulta che:
  1. il PC non gliel'avevamo venduto noi
  2. neanche il sistema operativo
  3. neanche autocad.
  4. WTF?????
Una cliente  vuole sapere perchè le mail che scrive e invia attraverso il nostro server  vanno a finire nello spam dei destinatari (messaggi senza oggetto, senza body, 4 allegati binari: chissà come mai).

Dopo un po' che le spiegavo, con voce suadente, l'ABC dei filtri antispam, mi fa:

 "E allora come mai se spedisco con l'iPhone non ci vanno, nello spam? Eh?" 
Io: "Ma spedisce lo stesso messaggio?"
"No, uno diverso."
Io: *facepalm*

Evidentemente vanno tutti dallo stesso pusher.