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

Tuesday, October 7, 2014

La Cipolla

La cipolla è un' altra cosa.
Interiora non ne ha.
Completamente cipolla
fino alla cipollità.
Cipolluta di fuori,
cipollosa fino al cuore,
potrebbe guardarsi dentro
senza provare timore
.
In noi ignoto e selve
di pelle appena coperti,
interni d' inferno,
violenta autonomia,
ma nella cipolla - cipolla,
non visceri ritorti.
Lei più e più volte nuda,
fin nel fondo e così via.

Coerente è la cipolla,
riuscita è la cipolla.
Nell' una ecco sta l' altra,
nella maggiore la minore,
nella seguente la successiva,
cioé la terza e la quarta.
Una centripeta fuga.
Un' eco in coro composta.

La cipolla, d' accordo:
il più bel ventre del mondo.
A propria lode di aureole
da sé si avvolge in tondo.
In noi - grasso, nervi, vene,
muchi e secrezione.
E a noi resta negata
l' idiozia della perfezione.

Wislawa Szymborska Cebula - La cipolla

Monday, September 15, 2014

Le regole del gioco


Regole del gioco denominato: "Ho visto un cane ed ora gli metterò il guinzaglio".


Ruoli e dotazioni:


  • Il padrone. Deve essere dotato di guinzaglio.
  • Il cane. Deve indossare un indumento (collare, pettorina) col quale si possa assicurare il guinzaglio.


Campo di gioco:

Un prato dall'estensione maggiore possibile

Fasi del gioco:


  1. Il cane corre velocemente nel prato e giace, su un fianco, nell'erba (meglio se alta);
  2. Il padrone, localizzato il cane, gli si avvicina lentamente, e, quando è a portata d'orecchio, pronuncia le parole "Ho visto un cane ed ora gli metterò il guinzaglio";
  3. Il cane freme ma resta altrimenti immobile;
  4. Il padrone si avvicina ulteriormente e, chinandosi sul cane, gli mostra il moschettone del guinzaglio e cerca di agganciarlo all'indumento;
  5. Il cane inizia a rotolarsi violentemente sulla schiena, mordicchiando le braccia e le mani del padrone per impedirgli di agganciarlo. Poi schizza velocemente in piedi e corre come un disperato verso un'altra zona del prato, dove si riprende il gioco dalla prima fase.


Conclusione del gioco:

Il gioco termina quando il padrone riesce ad agganciare il cane al guinzaglio, oppure quando perde visibilmente la calma e pronuncia le parole "Se non vieni qui immediatamente non ti sciolgo mai più".

Monday, September 1, 2014

E non appena...

...e non appena uno si rilassa, e sarebbe anche disposto a prendere sul serio quello che gli si dice, dagli altoparlanti della radio (sintonizzata sul canale culturale nazionale) escono queste parole:

"...tutto questo, nel cuore del Molise, è accompagnato dalla musica degli Xxxxx Yyyyyy. Si tratta di una musica di frontiera: loro sono emiliani, ma si ispirano ad un certo panorama musicale Tex-Mex."

Ma vamo bein a cagher.

Friday, August 29, 2014

Chiuso è chi il chiuso fa (kindle, amazon e le piattaforme chiuse)

Continuo a leggere, in cielo, in terra e in ogni luogo, che il kindle (l'e-reader di amazon) è una piattaforma chiusa. (Opinione spesso sostenuta da chi vede Amazon come un pugno in un occhio) Siccome ho passato buona parte della mia vita a combattere le piattaforme chiuse, dovrei essere in grado di (ri)conoscerne una  quando la vedo, e il kindle (di adesso) non è chiusa come si dice. Certo non è open nel senso della FSF, ma lo è (o potrebbe esserlo) quasi quanto quanto lo è android e certo di più di quanto non sia   IOS.

Forse qui vale la pena di spiegare i termini della questione, per chi non sia informato. Sto parlando di tutte le piattaforme di lettura su dispositivo mobile o fisso, sia quelle dedicate (dette e-reader: ad esempio kindle, kobo, nook), sia quelle software (programmi o app di lettura che possono essere installati su dispositivi generali, come smartphone, tablet o PC).

La totalità di queste piattaforme è in grado di leggere ebook in (almeno) due formati diversi. Uno dei due è quasi sempre il Portable Document Format o PDF . L'altro è molto spesso il formato ePub tranne che per il Kindle che utilizza il formato mobiPocket (in breve, mobi).
Il supporto per PDF è quasi obbligatorio, visto che questo è l'unico formato in grado di presentare decentemente libri in cui l'aspetto tipografico è importante (ad esempio, i libri illustrati). Non è qui che si gioca però la partita degli e-book ,visto che i PDF (normalmente progettati per dimensioni di pagina dell'ordine di un foglio A4) su schermi  di dimensioni inferiori ai 10 pollici sono poco o per niente leggibili  - e i reader/dispostivi più comuni hanno schermi di dimensioni attorno ai 6 pollici.

E' sul secondo formato (ePub o mobi) che si gioca la partita aperto/chiuso. Alcuni degli argomenti sull'apertura/chiusura dei formati degli ebook vertono sulla proprietà (intellettuale: nel senso di chi possiede i brevetti, delle licenze d'uso e così via). Da questo punto di vista, l'uico formato effettivamente aperto sarebbe epub. Ma è una distinzione poco interessante, perché è possibiissimo e legalissimo anche produrre documenti in formato mobi o PDF, senza dare un centesimo ai proprietari dei formati (Amazon e Adobe, rispettivamente).

La chiusura (o apertura) della piattaforma ebook, in pratica, è determinata da cosa accade quando ai libri si applicano procedimenti di DRM (Digital Rights Management). Senza entrare nei dettagli, si può pensare che il DRM sia una forma di protezione dalla copia che consiste nel cifrare un libro in modo che esso sia acessibile solo dal detentore di una certa password/numero seriale (spesso memorizzata nel,  o comunque associata al, dispositivo usato per fare l'acquisto). Il DRM rende difficile far copie di un e-book, apparentemente con questo proteggendo il reddito di editore e autore, ma rende anche molto difficile prestare un e-book, o cambiare modello di reader. La scelta di applicare o no la protezione DRM ad un libro dipende esclusivamente da una scelta del produttore stesso. Gli ebook non protetti da DRM sono copiabili ,prestabili, e possono passare da un lettore ad un altro (a volte rendendosi necessaria una traduzione da un formato ad un altro, cosa resa più semplice da programmi come Calibre). E' questo il caso ad esempio dei classici della letteratura liberamente distribuiti dal Progetto  Gutenberg (mi piacerebbe dire lo stesso anche dal progetto LiberLiber, che però ha scelto scelto di  pubblicare in ePub, rtf, txt, ma non in mobi)

La maggior parte dei reader aderisce ad una piattaforma di DRM detta ADEPT (Adobe Digital Experience Protection Technology, o, per brevità, Adobe DRM ). La maggior parte, dicevo, con le notevoli eccezioni di kobo (che usa un proprio DRM per il formato kepub) e Kindle, che usa il DRM proprietario Amazon. Qui è necessario un momento di attenzione: ADEPT e kepub non sono più "aperti" di Kindle, in senso tecnico: ADEPT è opaco quanto il DRM di Amazon, e lo stesso dicasi di kepub. La sensazione di maggior apertura è dovuta al fatto che la maggior parte dei produttori di e-reader ha deciso di pagare le royalty di Adobe, anche perchè non è possibile (almeno-credo) prendere in licenza il DRM di Amazon.

La conseguenza è che, sul kindle, gli unici e-book protetti da DRM disponibili sono quelli comprati sul sito di Amazon; inoltre gli ebook in formato mobi e protetti dallo schem DRM di Amazon sono leggibili sul solo Kindle. Gli ebook che utilizzano ADEPT, invece, sono  fruibili su tutti i lettori che aderiscono allo schema DRM di Adobe.  Ed è questo che fa scrivere tanto spesso che il kindle è una piattaforma chiusa: se hai un kindle puoi leggere solo i libri che compri da Amazon o i libri che non sono protetti da DRM.

L'ultima parte della frase è cruciale. Infatti produrre e distribuire (anche vendendoli) documenti in formato .mobi è perfettamente possibile e legale, e questi documeti si leggono perfettamente sul kindle, che sarebbe quindi una piattaforma aperta...

...al momento, invece, è chiusa a causa di  una scelta degli editori, o meglio, di due scelte:

  1. sposare la pratica del DRM; 
  2. non pubblicare in .mobi
Per contro, chi scegliesse di pubblicare senza DRM potrebbe uscira anche in .mobi senza usare la piattaforma Amazon  e:

  • raggiungere tutti i clienti Kindle
  • distribuire appoggiandosi a @free.kindle.net (questo non sono certo sia legale- IANAL)
  • dare noia ad amazon che sull'hardware kindle non fa soldi (spesso ne perde). 

Tutte cose che amazon potrebbe, volendo, togliere al prossimo upgrade  - Amzon giveth, Amazon taketh away.  Ma solo con un considerevole danno alla sua piattaforma.

"And so, as my mom used to say, 'Closed is as closed does'".

Wednesday, August 20, 2014

They Met

"They met in the center of the bridge, the dry moat beneath them. Moonlight silvered the cruel edges of the spikes that lined its bed."
G.R.R. Martin

Tuesday, August 19, 2014

Top Ten

In nessun ordine particolare, i miei dieci libri preferiti di sempre (per quel che ne penso oggi :-) ).
  1. Il Maestro e Margherita - Michail Bulgakov
  2. Huckleberry Finn - Mark Twain
  3. Le Città Invisibili - Italo Calvino
  4. Finzioni - Jorge Louis Borges
  5. A Christmas Carol - Charles Dickens
  6. Neanche gli Dei - Isaac Asimov
  7. Lord of the Rings - John Ronald Reuel Tolkien
  8. Quer pasticciaccio brutto de Via Merulana - Carlo Emilio Gadda
  9. Alice nel Paese delle Meraviglie/Attraverso lo Specchio - Lewis Carroll
  10. It - Stephen King

Friday, August 8, 2014

A simple command line remainder, for the linux GUI

One of the first exercises of the Unix (then: Linux) books of yore was using the "at" command to create reminders (or, alarms). If memory serves, it went like this:

$ echo "echo \"Go home!\" > /dev/tty " | at 17:00

Because this is way too much typing, you were then taught how to plop it in a /usr/local/bin script:

alarm.sh:

       #!/bin/sh
       echo "echo \"$1\" > /dev/tty" |  at $2

Those were the tty days. Enter the GUI (or, even, multiple terminals) and your nifty alarm utility does not cut it any more, essentially because you're not usually looking at the right window when the alarm is echoed. Using xdialog or knotify in place of echo does not cut it either, as both rely on being able to connect to the X display (which they cannot do, because they are activated by atd outside the current desktop session).

Of course there must be thousands of fancy reminder/alarm apps from the desktop to the web-based, but none (that I could find) that'd allow me to set a simple reminder by typing it in the terminal I happen to have my focus on.

Enter libnotify and its command line minion notify-send:

alarm.sh:

#!/bin/bash

TITLE=$3
[[ x$TITLE == x ]] && TITLE="Sveglia!!!!"
echo /usr/bin/notify-send  -u critical  \"$TITLE\" \"$2\"\
 |at -m "$1"

And then:

$ alarm.sh 13:00 "Aren't you hungry?" "Lunch time" 

The -m switch tells at to send you mail when it fires  - Fedora pre 20 users may want to take notice of this bug report and compensate accordingly. Of course, the atd service must be running for this to work.

Friday, July 25, 2014

Colpa del pensiero associativo

"E' colpa del pensiero associativo, se io non riesco a stare adesso qui"
Franco Battiato - "Segnali di vita"

Questa è una storia melensa su una cosa che fa un cane e su quanto pare carina al suo padrone. Ignoratela.

La mia cagnolina, Marie, dorme con noi - su un cuscino, appoggiato per terra, dalla mia parte del letto.

Premetto Marie è sempre stata un cane particolarmente guardingo: ad esempio, ha paura delle chiavi perché, appena venuta a stare con noi, si metteva sotto alla serratura quando aprivo le porte, e, più di una, volta, le chiavi mi sono sfuggite di mano e le sono cadute addosso. Perciò per molto tempo (anche dopo che avevo imparato a stare molto più attento) ogni volta che aprivo la porta Marie si allontanava, prudentemente, salendo almeno una rampa di scale e aspettando sull'altro pianerottolo che le pericolose chiavi fossero rientrate nel loro antro.

Ultimamente, Marie non si sdraia più sul suo cuscino, ma, per un certo tempo, resta sdraiata sul pavimento in fondo al letto. Con mia moglie abbiamo formulato diverse ipotesi sul perché - tutte insufficienti.

Poi qualche sera fa mi sono fermato ad osservare il comportamento di Marie che:

  • giaceva sul cuscino fintanto che io non ero nella stanza;
  • si spostava ai piedi del letto quando io aprivo il letto, mi ci sdraiavo e cominciavo a leggere;
  • tornava a sdraiarsi sul cuscino dopo che io avevo riposto il libro e spento la luce;

e a questo punto ho avuto la rivelazione.

Il fatto è che negli ultimi giorni sono sato particolarmente stanco e mi è diverse volte capitato di assopirmi con il libro il mano. Il libro è caduto e, sotto, c'era Marie. Che ha correttamente dedotto che, nel tempo che passa tra il momento in cui io prendo in mano un libro e quello in cui la luce si spegne, è elevato il rischio di
"caduta oggetti dall'alto". E si regola di conseguenza. Ogni proprietario di cani converrà con me che questo è un ragionamento meraviglioso.

Friday, July 18, 2014

Twitter, o dell'orrore

Ho un indirizzo email dal 1986, e il mio primo accesso a internet è datato 1992 (data di nascita del web: 6 Agosto 1991). All'epoca, su alt.hypertext c'era forse una trentina di iscritti e si scambiavano opinioni con Tim Berners-Lee (non ancora "Sir"). Ho partecipato in prima persona all'evoluzione della rete, e ho assistito alla crescente inanità degli atti di comunicazione che vi vanno in scena - dalle mailing list, a usenet, a IRC, a Twitter e ai social media in genere.

Dubito (forse a torto, ma ehi) che il mezzo abbia una responsabilità primaria - penso piuttosto che sia una probabile conseguenza dell'allargamento della comunicazione bidirezionale a grandi numeri di persone, con lo stesso meccanismo per cui dal dibattito televisivo si passa alla bagarre dei talk-show stile "A Bocca aperta" o Oprah, solo molto più in grande e, inevitabilmente, in peggio.

Mi piacciono corrispondentemente poco i social media di oggi - ho account su tutti quanti, per lavoro e per autolesionismo. Forse il migliore è reddit. Twitter è sicuramente il più atroce, per il suo astronomico fattore di circlejerk e la ripetitività  che lo fa assomigliare a una sirena antinebbia. In questo caso, credo sia proprio il format (demenziale) del media la radice del male. Non ho ancora capito come mai sia tanto piaciuta, questa indomiabile sorgente di rumore bianco mentale.

Dopo una recente orgia di unfollow, tesa ad eliminare almeno parte dei peggiori inquinatori, mi sono reso conto di aver potato la totalità degli editori italiani. I quali non fanno che twittare, ripetendolo anche 10/15 volte al giorno, quanto irrinunciabile, bello poetico, etc. sia l'ultimo titolo da loro pubblicato. Il più twitter-savy, e quindi il più nocivo, non si dice, ma comincia per 'E'. Non avendo editori stranieri in follow, non posso fare paragoni diretti, ma avendo invece in follow molti musicisti (generalmente americani) , noto che questi in genere si limitano a twittare il loro concerto una volta e basta. Sarà che sono jazzisti e quindi poco capaci di autopromozione?

Tuesday, June 17, 2014

Running Django scripts from the CLI (Command Line Interface)

Like many frameworks embedding an ORM, Django offers an attractive SQL-less interface to your DBMS, whose worth transcends its usefulness in the traditional web interface.

Which one do you like better:

SELECT n.name m.type FROM nodes n, model m WHERE n.mid=m.id AND m.make='Qfwfq';


or

them=Node.objects.filter(model__name='Qfwfq')
for q in them:
 ...

Yes, I thought so.

However, python's inclusion rules combine with Django's deployment rules to make writing general scripts of this sort a little awkward. The problem is that, for the above goodies to work, all of the django instrumentation surrounding your app has to be available to the python interpreter, a job that is usually taken up by manage.py when invoked from the deployment folder.  That is the effect we want to achieve within our own scripts.

After some mulling, this is what i came up with:


#!/usr/bin/python
#File: prologue.py
import os
import sys
#assumes we are in DJANGO_DIR/sbin
#find our own location
_pdir=os.path.dirname(os.path.abspath(os.path.realpath(__file__)))
#find DJANGO_DIR
_cdir=os.path.dirname(_pdir)
#prepend to include path
sys.path.insert(0,_cdir)
#tell django where settings.py is
os.environ['DJANGO_SETTINGS_MODULE']='settings'


I keep all the django related scripts in a sbin/ subdirectory of the directory where manage.py is located and they all start with:

#!/usr/bin/python
import prologue


Obviously, prologue.py must live in the same folder. I then symlink them to somewhere in system's $PATH (that's usually /usr/local/bin).

This way, every script will get the correct sys.path and the right DJANGO_SETTINGS_MODULE from prologue.py; prologue.py is always found because it's in the same path as the script. The abspath(realpath()) incantation does away with finding the actual path of the prologue.py file under symlinks and other surprises.

Some folks may prefer inserting at the end of, rather then in front of, sys.path. They should use sys.path.append(_cdir).

Et voilà.


Edit:
Discussions on reddit on this this topic prompted me to clarify the purpose a bit.

The whole gist of all this is the toolification  of Django. This does not (solely) mean being able to type django commands from the (Linux) command line (though that is nice, too). It  rather means creating scripts that can then be used by other tools, without needing to know where the particular Django app lives, not even within the script code. (Picture wanting to relocate your django app to some other folder.)

This is why the execfile('myfile.py') feature of manage.py is not relevant in this context, nor is the possibility of adding commands to manage.py via the management commands feature of Django: in both instances, one has to run the correct manage.py, which lives in the app dir hierarchy. The django-extensions package, which allows to run jobs from manage.py, succumbs to the same objection here (at least, I suppose: I haven't reaaly looked extensively into django-extensions, though I will as it looks pretty cool in its own right).