skip to main | skip to sidebar

Sax Appeal

Musica e altro. (Musings about music and stuff.)


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

Friday, October 4, 2019

Frasario romanesco inglese

  • BREAD TO BREAD, WINE TO WINE - pane al pane, vino al vino
     
  • WE ARE AT THE SHORT IRONS - semo a li ferri corti
     
  • I TELL YOU POPELY POPELY - te 'o dico papale papale
     
  • ARE YOU LOOKING THE HAIR- stai a guardà er capello
     
  • WHEN IT WANTS, IT WANTS - quanno ce vo' ce vo'
     
  • BUT MAKE ME THE PLEASURE - ma famme 'r piacere
     
  • DON'T EXTEND YOURSELF - nun t'allargà
     
  • NOT EVEN TO THE DOGS! - manco a li cani!
     
  • BUT WHO MAKES ME MAKES IT - ma chi m'o fa fa'
     
  • HOW DOES IT THROW? - come te butta?
     
  • WHO WIRES YOU! - chi te se fila!
     
  • WHO HAS BEEN SEEN, HAS BEEN SEEN - chi s'è visto s'è visto
     
  • TODAY IT'S NOT AIR - oggi nun è aria
     
  • BY FEAR! - da paura!
     
  • GIVE IT TODAY AND GIVE IT TOMORROW - daje oggi e daje domani
     
  • PLEASE RE-TAKE YOURSELF - aripijate!
     
  • STAND IN THE BELL, LITTLE BROWN (DARK) - sta 'n campana, moro
     
  • STAY BEEF - stai manzo
     
  • I DON'T CARE OF LESS - nun me ne po fregà de meno
     
  • WE ARE AT HORSE - semo a cavallo
     
  • THERE ISN'T TRIPE FOR CATS - nun c'è trippa pe' gatti
     
  • I'M SO HUNGRY THAT I DON'T SEE - c'ho 'na fame che nun ce vedo
     
  • GO TO DIE KILLED - vammori ammazzato
     
  • YOU ARE BASTARD INSIDE - sei bastardo dentro
     
  • IT DOESN'T MAKE A FOLD - nun fa 'na piega
     
  • I OPEN YOU IN TWO LIKE A MUSSEL -  t'apro 'n due come 'na cozza
     
  • SPEAK LIKE YOU EAT - parla come magni
     
  • I'VE MY LEGS THAT ARE DOING JAMES JAMES - c'ho le gambe che me fanno giacomo giacomo
     
  • GIVE TO THE HEEL, GIVE TO THE TIP - daje de tacco, daje de punta
     
  • YOU ARE OUT LIKE A BALCONY - stai fori come 'n barcone
     
  • I LIVE IN HUNDRED CELLS - sto a Centocelle
Posted by Sax Appeal at 3:43 PM No comments:
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest

Thursday, June 13, 2019

Zero, though

This is a shower thought I will have to research - not a chance in the universe that was I the first to think about this.

Consider natural numbers as a counting device (and not as, say as an assiomatic system, or as points on line). As such, they are naturally attached units of measure - one pear, six aircraft carriers, two days. And, in set theory you can then take the set of sets having two of something as a definition of the number 2 (well, not quite, but almost).

Zero, though. Of course, one can use zero as a counting device: "I have one apple. I will eat it at lunch, and I will then have zero apples"

The notion of attaching measure units to "zero" (quite natural as you go form one apple to none) becomes rather strange as one considers the process of telling apart sets of equal numbered things.

Distinguishing between one elephant and one saxophone player is easy enough (assuming empty the set of saxophone playing elephants). What about telling apart zero apples from zero oranges?

Given an orange, and questioned about apples, I will count to zero, obviously. But, given the same orange, I will count to zero also if questioned about wine bottles, pencils, cars...

And of course,  the notion of "no things" is a gaping void (arh, arh).

So it looks that zero should be dimensionless -  a fact that set theory implicitly acknowledging the empty set as a member and subset of any set, while being unique.


Posted by Sax Appeal at 9:55 AM No comments:
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Labels: integers, mathematics

Friday, August 31, 2018

A history of the word "Fuck"

Announcer:

Perhaps one of the most interesting words in the English language today is the word "fuck".

Of all the English words beginning with f, "fuck" is the single one referred to as the "f-word". It's the one magical word: just by its sound it can describe pain, pleasure, hate and love.

"Fuck", as most of the other words in English, has arrived from Germany. "Fuck" from German's "fliechen" which means "to strike". In the English language, "fuck" folds into many grammatical categories.

As a transitive verb, for instance:

"John fucked Shirley."

As an intransitive verb:

"Shirley fucks."

Its meaning isn't always sexual: it can be used as an adjective, as in:

"John's doing all the fucking work."

As a part of an adverb:

"Shirley talks too fucking much."

As an adverb enhancing an adjective:

"Shirley is fucking beautiful."

As a noun:

"I don't give a fuck!"

As a part of a word:

"Abso-fucking-lutely"

or:

"In-fucking-credible"

Or as almost every word in a sentence:

"Fuck the fucking fuckers!"

As you must realize, there aren't many words with the versatility of  the word fuck.

These examples show it used as a synonym the following words;

  • fraud: "I got fucked."
  • trouble: "I guess I'm really fucked now."
  • dismay: "Oh, fuck it!"
  • aggression: "Don't fuck with me, buddy!"
  • difficulty: "I don't understand this fucking question"
  • inquiry: "Who the fuck was that?"
  • dissatisfaction: "I don't like what the fuck is going on here"
  • incompetence: "He's a fuck-off!"
  • dismissal: "Why don't you go outside and fuck yourself?"

I'm sure you can think of many more examples.

With all these multipurpose applications, how can anyone be offended when you use the word?

Use this unique, flexible word more often in your daily speech. It will identify the quality of your character immediately. Say it loudly and proudly:

"FUCK YOU!"


- The Monty Python
Posted by Sax Appeal at 10:24 AM No comments:
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest

Monday, May 14, 2018

Kit antitroll: cartellino giallo.

Istruzioni: questo modulo serve a rendere più comodo sbarazzarsi dai troll. Si può usare  nei forum, sui social, e in tutti i casi in cui s'incontra il buon vecchio Dick Internet. Basta copiare, incollare e personalizzare il testo, e farlo ogni volta che si individuano i segni del trollaggio (è il caso di familiarizzarsi con le sottogliezze di quest'arte oscura). Immediatamente dopo l'uso del form, bisogna scollegarsi dalla discussione (il che è il senso principale di tutta l'operazione), e ci si gode la pace portata dal silenzio. Evitate di usare il modulo troppo spesso, e tenete solo le violazioni commesse (se volete, potete citare la fonte).riducete alle  gli eccessi,  Il modo in cui lo uso io: 
  1. Alla  prima violazione, invio questo modulo e cesso ogni interazione diretta.
  2. Alla seconda violazione reinvio la notifica seguita da un avviso di killfile  seguito dal ban (una classica sequenza cartellino giallo/rosso, tanto non imparano mai)
Soprattutto, non fate come Dick, e seguite le regole della casa.

Licenza: CC-BY-NC-ND



Salve, devo purtroppo avvisarti che hai violato le regole della casa.

In particolare le tue infrazioni sono: (spuntare tutte le infrazioni rilevanti)

 1.1 Ti sei comportato da troll
 1.2 Ti sei comportato in maniera arrogante
 1.3 Ti sei comportato in maniera stupida
 2.1 
Ti sei comportato in maniera fastidiosa
 2.2 Hai fatto osservazioni personali
 2.3 Hai insultato altri utenti
 2.4 Ti sei comportato da adolescente senza esserlo (Se hai meno di 15 anni, fallo presente e questa infrazione non sarà presa in considerazione)
 3.1 Sei stato irrazionale
 3.2 Sei stato maleducato


    Inoltre, hai agravato la tua posizione con le seguenti azioni: (spuntare tutte le aggravanti applicabili)

     doxxing
     net-stalking
     aver tenuto comportamenti incredibilmente asinini
     aver messo per iscritto frasi che richiederebbero un esposto al tribunale
     aver dimostrato di possedere una bassissima padronanza della lingua e di essere incapace di comprendere un testo scritto
     aver tenuto un comportamento normalmente associato a gravi disordini neurologici/psichiatrici
     aver provato, al di là di ogni ragionevole dubbio, di essere incapace di intrattenere penseri coerenti (e lasciamo stare il pensiero razionale)
     aver messo in mostra ignoranza ed inadeguatezza intellettuale in quantità stupefacente perfino per internet (e ce ne vuole)
     Altro:................................................................

    Questo utente osserva le regole della casa, e perciò  terminerà ora la conversazione. Inoltre disabiliterà le notifiche, per darti agio di reagire con una delle elaborate e leggeremente patetiche risposte tipiche di queste situazioni, senza con ciò esserne ulteriormente disturbato. In caso di ulteriori infrazioni, l'utente si riserva il diritto di inserirti nella sua ban list (Wikipedia search: plonk), un luogo tranquillo dove potrai continuare a comportarti male senza essere sentito.

    Cordialmente,

    Nota Bene: questo è un modulo prestampato, l'originale aggiornato si trova a questo indirizzo.
    Posted by Sax Appeal at 2:27 PM No comments:
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Labels: internet, trolls

    Sunday, January 28, 2018

    Guardate che neanche uno su mille ce la fa. E in fondo neanche se lo merita.

    Un paio di giorni fa è capitato in uno dei miei stream il sottotitolo
    di uno dei Ted Talks (non mi ricordo quale, so solo che l'oratore è
    una donna di colore). Una cosa motivazionale del tipo "Come possiamo
    insegnare ai giovani ad essere pensatori indipendenti, mettere in
    dubbio l'autorità, perseguire il proprio sogno". L'ossatura di un
    Bildungsroman Hollywoodiano o Disneyano. Il signor Smith che va a
    Washington, Erin Brokovitch che sconfigge la corporation e via
    dicendo. Lo sappiamo tutti che il piccolo uomo e la piccola donna,
    armati della propria vis sognatoria e della loro capacità di pensiero
    indipendente che li porta inesorabilmente a dubitare della realtà
    stabilita e delle parole dell'autorità, dopo peripezie appasionanti e
    drammatiche, coronano il racconto prevalendo orgogliosamente. Nei film.

    Poco dopo, sempre nel (dannato) stream che marcia incessantemente in
    uno dei tab del mio browser è passata una di quelle benintenzionate,
    ma ormai stantie, tirate sulla crisi della fiducia nelle competenze,
    dove "democrazia non significa che la tua ignoranza equivale alla mia
    incompetenza", "fake news" e via dicendo.

    Questo casuale accostamento mi ha fatto pensare (strano, dirà qualcuno). Prendiamo lo
    sciachimista medio. È senz'altro possibile sostenere che costui pensi
    indipendentemente e metta in questione l'autorità, che insiste a
    dirgli che nessuna potenza oscura sta seminando sostanze chimiche
    utilizzando gli scarichi degli aerei e che le scie di condensazione
    sono infatti vapore acqueo. Ted talk da manuale. Purtroppo la sua vis
    sognatoria e la sua capacità di pensiero indipendente etc. etc. sono
    al servizio di una solenne idiozia. Il che ci porta alla crisi di
    fiducia nella competenza, e via dicendo.

    Forse scopro l'acqua calda, ma mi pare singolare che non abbia
    mai sentito sottolineare da nessuno che questi due miti della società
    contemporanea: "devi pensare indipendentemente, mettere in discussione
    l'autorità, realizzare il tuo sogno" e "devi sapere riconoscere e
    rispettare la competenza degli esperti"; sono in diretta
    contraddizione tra loro.

    La popolarizzazione/democratizzazione della figura dell 'eroe'
    romantico ottocentesco ha moltiplicato i racconti di esemplari di
    persone della strada che, quasi con una mano legata dietro la schiena,
    svelano l'ipocrita ingiustizia dello status quo, additando a tutti la
    verità negata che era lì, sotto i loro occhi, bastava un po' di
    pensiero indipendente.

    Capisco che le storie in cui l'autorità in fondo aveva ragione, l'uomo
    della strada viene schiacciato dalla stupidità delle sue persuasioni o
    dalla preponderanza delle istituzioni, la verità accettata risulta
    vera e il sogno non si realizza, al botteghino vadano così così. Sono
    racconti che non comunicano grandi aspirazioni, essenzialmente perché
    riflettono il normale stato delle cose. In altre parole, la
    democratizzazione del mito eroico lascia fuori dalla porta uno degli
    ingredienti essenziali: l'eroe è un personaggio eccezionale che agisce
    in circostanze uniche.

    Galileo e Copernico hanno messo il Sole al centro dell'universo (si fa
    per dire), ma l'esercito di quadratori del cerchio ed inventori di
    macchine del moto perpetuo erano semplicemente una folla di ridicoli
    eccentrici, che avrebbe fatto meglio ad accettare la verità ricevuta e
    il cui sogno la storia si è incaricata di seppellire sotto una
    risata. Le cose sono quasi sempre come sembrano. "Uno su mille ce la
    fa" è una frase gravemente sbagliata per eccesso. E così via.

    Io non credo che questo voglia necessariamente dire che il pensiero
    critico sia una cosa da non esercitare o che quello che viene da una
    qualche autorità debba sempre e in ogni caso essere preso per buono a
    ragione della sua provenienza. Mi sembra però che la ripetizione e
    l'universalizzazione di questo messaggio abbia alla fine logorato la
    sua esagerata semplicità, e che continuare a riproporlo senza pesanti
    qualificazioni serva solo a peggiorare le cose. Bisognerebbe forse
    proporre qualcosa come:

    "Devi pensare con la tua testa, ma solo se 
    sei effettivamente capace di farlo, e, francamente, le probabilità sono 
    gravemente a tuo sfavore. Ah, e per il tuo sogno vale lo stesso."

     Certo, come messaggio motivazionale ha una forza abbastanza limitata.

    Capita quello che, ad opera di internet, è accaduto alle frasi belle e
    alle citazioni semplici del pensiero dei "grandi uomini". Quando non
    sono false (e lo sono piuttosto spesso) la loro ripetizione incessante
    da una parte ne espone i limiti, la paradossalità, non di rado la
    falsità. Dall'altro le rende, per molti, verità autoevidenti, parte
    dello sfondo accettato di come le cose stanno, o dovrebbero stare.
    E così, finiscono per essere dannose, oltre che ormai inutili.

    Ad esempio la mia città è stata tappezzata (forse lo è ancora) di una
    enfatica frase ad effetto attribuita ad Enzo Ferrari:

    "Se lo puoi sognare, lo puoi fare" 

    Ora, questa frase è semplicemente falsa, sia nel suo
    significato letterale (posso sognare un mondo fatto ad anello popolato
    di unicorni, farlo è un altro paio di maniche), sia nel suo contenuto
    esortativo: poter sognare cose, poterle fare e farle effettivamente
    sono cose completamente slegate. Solo il fatto che Enzo Ferrari
    (praticamente unico) avesse sognato di avere una scuderia di successo
    e che abbia poi in effetti realizzato questo sogno presta alla sua
    frase un'aura totalmente immeritata.

    E quindi, dopo decenni di esaltazione Ted-iana e Hollywoodiana degli
    eroi che vengono dal basso, è al tempo stesso percepito come
     banalmente ovvio - ma  totalmente falso - il fatto che il pensiero deviante
    costituisca un valore in sè e sia alla portata di tutti.

    La morale non la so. Forse è che i messaggi semplici, in un'epoca in
    cui non abbiamo il tempo per meditarci sopra e interpretarli come
    semplificazioni di realtà complesse e tendiamo invece a prenderli alla
    lettera, hanno fatto il loro tempo, e che i messaggeri dovrebbero
    prendersi un po' di tempo per contestualizzarli e renderli, se non
    veri, almeno utili. Ma può darsi che mi sbagli.

    Posted by Sax Appeal at 7:57 PM No comments:
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Labels: riflessioni

    Thursday, December 15, 2016

    Plus ça change

    What those proposals really mean

      
        From a218@mindlink.UUCP Thu Sep 21 11:21:53 1989
        From: a218@mindlink.UUCP (Charlie Gibbs)
        Subject: What those proposals really mean
    
        I came across this while cleaning out some old files...
      
      
    
    PROPOSAL PHRASE MEANING
    You are fortunate indeed to have   
    contacted a manufacturer who can   
    deliver the equipment within the    
    six-month delivery period, which   
    we estimate you require.   
    
    
     If we don't get some revenue
     from you this year we won't
     make our budget.
    
    
    We have carried out an exhaustive  
    and comprehensive survey of your   
    problems.   
    
    
     Look at the number of times
     we've taken you to lunch.
    
    
    Furthermore, in a multiprogramming 
    environment,two machines would offer
    an element of parallel processing  
    which would not otherwise be possible
    on any computer equipment you are  
    likely to consider.   
    
    
     We can't do it on one machine.
    
    
    We cannot overemphasize the        
    importance of this decimal         
    arithmetic capability.   
    
    
     We have no floating-point
     hardware.
    
    
    Our third-generation equipment     
    provides the highest standard of   
    reliability.   
    
    
     There will be no local backup.
    
    
    While we have not been shown detail
    flow charts and description of your
    production control systems, we     
    estimate that the computer time   
    required each week should not exceed
    four hours.   
    
    
     We can't understand your
     specification, but the last
     one we did took four hours.
    
    
    No detailed knowledge of the       
    interface to the communications    
    network is required by the user's  
    programming staff.   
    
    
     You will have to hire
     a specialist who can
     understand it.
    
    
    Using our high-level COBOL compiler
    programs can now be written in the 
    English language.   
    
    
     02 NICTRB REDEFINES SLSGTB
                    PIC X(30).
    
    
    This particular peripheral is      
    available on a purchase-only basis.
    
    
     We don't make it, and never
     want to see it again once
     you have bought it.
    
    
    Local backup with comparable       
    installations will be provided.    
    
    
     We are hoping to sell a
     similar configuration to
     another company 350 miles
     away.
    
    
    The software we have recommended is
    in the advanced development stage. 
    
    
     We will start writing it as
     soon as you sign the order.
    
    
    The equipment can be delivered to  
    suit your requirements, but we     
    estimate that you will not be ready
    to take delivery until considerable
    systems work has been carried out. 
    
    
     We cannot deliver a machine
     for two years.
    
    
    Independent assessment has rated   
    our data preparation equipment     
    among the best available.   
    
    
     If you don't want our computer
     please buy our keypunches.
    
    
    In accordance with our policy of   
    progressive improvement, the right 
    is reserved to alter any detail of 
    price, specification, or terms     
    without notice.                    
    
    
     We hereby divest ourselves of
     any responsibility for what we
     have said, written, or are
     about to say or write.
     
    
    
    (Taken from the October 1968 issue of Datamation)
    Posted by Sax Appeal at 10:22 AM No comments:
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Labels: Information Technology

    Tuesday, October 25, 2016

    Some basic IT types

    A short, non-exhaustive list of basic types I met while working in IT.

    The jobber, a.k.a "The reliable". Does what needs to be done, nothing more, nothing less. Seldom takes initiatives, and when he does, they're on the excruciatingly safe side. For instance, she may change a comment o clarify it. Because he does not care endless repetition of the same task, and is apparently impervious to boredom, he is often assigned to reporting, the printing subsystem, backups, and fixing the bugs nobody else has ever been able to reproduce. Infinitely useful in production. Gets scared if talked to abruptly, or too loudly.

    "The visionary", a.k.a. "whizkid", "The maniac". Always getting up to speed on the latest technologies, harbors a deep disdain for anything that's been developed before than N years ago (N>0.5). Seldom seen installing software at the RC level, favors pre-alphas or nightly builds. For this reason, the machines he's been using for more than three days need to be reinstalled from scratche before they can be passed on. His projects, usually a wreck of failed dependencies from abandonware, do sometime evolve in the prototype of the next great product. Anyway, nobody can ever tell what the visionary's current project is about, because he  describes it in obscure utterances that Mr. Wolf (QV) himself takes a day to parse:

    "My paradigm shifting, game changing idea is a Cordova project built with Bower and Grunt, of course I threw in Moustache for templating and Angular - Ionic, really - as a framework. It is nearly at the deploy stage, which will be in a microservices matrix on Digital Ocean created using Terraform and based on Kubernetes clustering technology". 

    Should never be given checkin permission on official repositories.

    Mr. Wolf a.k.a "I solve problems". An omnivorous reader, he is constantly reading up on everything, never really becoming a specialist of something. He solves problems that baffle most anyone, but he gets quickly bored and he's back on reddit or hacker news after delivering a three day "proof of concept solution" ("I'm sure the guys will figure out the details by themselves, better than I can"). Usually distant, aloof and detached, has a hard time switching contexts, and may dreamily remark "Oh, you talking to me? Would you remind repeating?" after ten minutes of being spoken to. Depending on his/her level of attention, he may answer in maddening monosyllables ("Do you know a solution for quantum gravity?" "Yes") or keep on talking for the balance of the afternoon. His code must be closely reviewed by The Jobber or by Auntie (QV) to tie up the hundreds of loose ends and missing details. On the other hand, one can converse with him about quantum physics or XV century Flemish waterpainters because "Good you mentioned it, I just read a few interesting things about this".

    The Anal Retentive, a.k.a "Auntie". Fastidious in the extreme, the anal retentive is the universal source of overengineering. If a project has the dreaded "Are you sure that you are sure that you want to do this?" popup/feature, Auntie is invariably the author. Spends his/her free time dreaming up unforeseen actions users may engage in, and inventing ways to block them. His projects are the wet dream of bondage practitioners and the screaming nightmare of user support, flooded by phone calls of users unable to proceed past the welcome screen because "You do not have permission". When given a data model, Auntie releases a database in 13th normal form that nobody would be able to use, except it comes accompanied with 10,000 documented use cases. This way, when asked about the product, Auntie can roll up his eyes, sigh despiritedly, and say "It's all described in the use cases. Have'nt you read them?". A tireless worker, Auntie  is a useful, sometimes necessary presence. But he will drive you insane.

    Elliott a.k.a. "The socially challenged". Has exchanged no more than four sentences with the co-workers since the day he arrived. His desk is cluttered with stacks of objects - manuals, electronic equipment, pizza cartons, cheese bagels in various stages of decay - which hide him from view. His hours are unpredictable, as proved by the fact that he answers email (if ever) at 3 AM. "I stopped using Tor long before the NSA thing, the level of privacy it offers is nothing less than laughable". His checkins are impeccable and his code brilliant, but everyone expects to see him hauled away by the Police any day.

    The Ballast, a.k.a "The fish", "The idiot". Started dabbling in PHP at school, mixing html and code. Still does. If told "framework", The Ballast exhibits the blank stare of a mackerel confronted with a photo of the Large Hadron Collider. Persuaded that SQL injection is an intractable problem, was puzzled by the "Bobby Tables" cartoon and did not even smile at it. "I'd really like to read up and study, but what with all my day to day workload". This type is a catastrophe, but - being extremely cheap - it's always very well represented.

    Mozart, a.k.a "The genius". Has deep knowledge of 14 programming languages and has written popular projects in all of them, as well as designing one of his own (due in the next ACM conference on languages). Mozart's github has 397 forks and 12000 yearly downloads. "Oh, no, I finished this weeks tests and checkins early Tuesday. This one is my weekend project." His resume lists stints at all the major industry outlets, and he sometimes drops lines like "...I know, this is something I must have tried to explain to Linus 100 times. At a minimum." , "Larry (Wall) and Guido (van Rossum) also chimed in, so yes,  all the old gang was there.". Never around for long.

    "Been there, done that" a.k.a. "The veteran". "Yes, it is the same exact thing we used to do on the CDC Cyber 7600. Of course, today we have a different DCL and much more resources". Usually spotted among the sysadmins.

    "The peripheral" a.k.a "Stressed out". Disillusioned by the core job (often because of a close cooperation with Auntie) has applied to QA or User Support, realizing too late of having fallen from the frying pan into the fire. Constantly confronted with the trivial ("Of course you have to turn the PC on") or the absurd ("I can assure you long term weather predictions were never a part of our inventory management software") he has developed brilliant evasive  tactics ("Did you upgrade the graphic card and mouse drivers, and applied all the OS updates? Get back to us when you are done" - "NOTABUG - WONTFIX"). Nevertheless, the job is taking its toll. Seen by the colleagues as a harbinger of bad news and as somebody out of the loop, is treated by them with condescending lines: "Of course a basic understanding of the technology is needed...". Usually resigns in two years.

    "Bastard Operator From Hell", a.k.a "Herod". A school buddy of the founding partners, his authority is unassailable. Manages network security, resources and - often - telephony and has elected Argus Filch (the Hogswarth warden) as a role model.

    "I cannot understand what use can you possibly have of print privileges."
    "We were running low on space and, since you where not using it fully, I had your new 1TB disk replaced with a 500MB one. It's more reliable, and you can still use some space on the server."
    "Of course we removed the network card and blocked all USB ports. The licensing machine has to be secure."
    "WI-FI??????? You outta your mind kid??"

    The Old Fart, a.k.a "The retiree".
        "You know, I never really got along with this OO fad."
    CHAR(17) SURNAME
        GOTO LABEL019
        $ ed README
        "Was it on usenet?"
        "Mine is a lightweight site. It shines on lynx"
        "UTF?"
        "Zzzzzzzzzz...."

    Posted by Sax Appeal at 5:22 PM No comments:
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Labels: programming

    Monday, October 24, 2016

    Alcuni tipi base in IT

    Una lista, non esauriente, di alcuni tipi base di personalità che ho incontrato lavorando n campo informatico.

    Lo sgobbone, ovvero "L'affidabile"": Fa quello che è necessario fare. Niente di più, niente di meno. Raramente prende iniziative, e quando lo fa, sono prudentissime, tipo rendere più chiaro un commento. Si aggiorna solo per quello che è necessario ai compiti che deve svolgere al momento. Poichè non gli pesa ripetere la stessa attività un numero arbitrario di volte ed è apparentemente incapace di annoiarsi, in genere gli vengono affibbiati i report, i sottosistemi di stampa, i backup e i bachi che nessun altro riesce a riprodurre. Utilissimo in produzione, basta non rivolgergli la parola troppo bruscamente o a voce troppo alta, che si spaventa.

    Il visionario, ovvero "Il Ciappinaro": insegue costantemente l'ultima tecnologia, sdegna tutto quello che è stato fatto N anni fa (N>0.5). Di rado installa qualcosa che è allo stadio RC, preferisce le alpha release o i nightly build. Di conseguenza, le macchine che ha usato per più di tre giorni vanno reinstallate da zero prima di passarle ad altri. I suoi progetti naufragano miseramente in una jungla di dipendenze da abandonware oppure diventano il prototipo del prossimo prodotto di successo. Nessuno è in grado di dire esattamente su cosa stia lavorando, anche perchè descrive i suoi progetti con frasi criptiche che anche Mr. Wolf ci mette una giornata a decodificare.

    "Si tratta di un progetto Phonegap che usa Bower e Grunt per il build, Moustache come sistema di template e Angular - Ionic, in realtà - per l'MVC. Presto farò un deploy di test in una matrice di microservizi su Digital Ocean usando Terraform, con una tecnolgia di clustering basata su Kubernetes.".

    Da tenere alla catena, lontano dai repository ufficiali.

    Mr.Wolf, ovvero "Risolvo problemi": Onnivoro, legge qualunque cosa e si aggiorna costantemente su tutto senza mai diventare specialista di quasi niente. "Risolve problemi" che lasciano perplessi tutti gli altri, ma dopo tre giorni si annoia, molla tutto e torna su redddit o hacker news.
    Normalmente distratto, quando è assorto ha grandi difficoltà a cambiare contesto: capita di parlargli per dieci minuti prima che dica, con tono sognante "Ah, ma parlavi con me? Ti dispiace ripetere?". A seconda del livello di attenzione in cui si trova, può dare risposte monosillabiche alla Clouseau ("Sai se sia possibile quantizzare la gravità?" "Sì") o parlare per un pomeriggio intero.
    Il codice che sviluppa dev'essere ripassato da uno sgobbone o da Zietta per mettere a posto i diecimila dettagli che mancano. In compenso ci si può parlare anche di meccanica quantistica e degli acquarellisti fiamminghi del '400, perchè "ha letto alcune cose al proposito".

    anal retentive, ovvero "Zietta": Ossessivamente pignolo, è quello che introduce l'overengineering nei progetti. Se in un progetto esiste il popup "Sei sicuro di essere sicuro di voler fare X?", l'ha fatto lui. Passa il tempo libero a immaginare azioni impreviste che gli utenti potrebbero intraprendere e ad almanaccare modi per vietarle. I suoi progetti sono il sogno di un appassionato di bondage, e l'incubo dello user support che è bombardato di telefonate di utenti impastoiati nella schermata iniziale perchè "non hanno i permessi adeguati". Se gli si dà un data model, svilupperà un database in 13a forma normale, che nessuno sarebbe in grado di usare, se non fosse che ha anche simultaneamente prodotto 13,000 pagine di use cases, in modo che tutte le volte che qualcuno gli chiede qualcosa sul suo prodotto può rispondere (sospirando) "E' tutto negli use cases. Non li hai letti?". Lavoratore instancabile, è una presenza utile e perfino necessaria. Ma ti tira scemo.

    Elliot, ovvero "L'asociale": da quando è stato assunto non ha scambiato più di otto parole con nessuno. La sua scrivania è costantemente coperta da alte pile di oggetti di varia natura (manuali, schede elettroniche, cartoni di pizza, panini dimenticati in vari stadi di decomposizione) che lo nascondono alla vista. Fa orari imprevedibili e risponde alle email (se risponde) alle tre di notte. Dice cose del tipo "Ho smesso di usare Tor, perchè le garanzie di privacy che offre sono risibili.". I suoi checkin sono impeccabili, il suo codice brillante, ma tutti si aspettano che prima o poi i carabinieri arrivino e lo portino via.

    Il peso morto, ovvero "Il programmatroto": ha imparato a scrivere un po' di php quando studiava, mischiando html e codice. Continua a farlo. Se gli dici "framework" nei suoi occhi compare l'espressione perplessa che ha uno sgombro davanti alla fotografia del Large Hadron Collider di Ginevra. E' convinto che la SQL injection sia un problema insormontabile: quando ha visto il cartoon di Bobby Tables, non ha neanche sorriso. "Eh, mi piacerebbe aggiornarmi, ma il lavoro è sempre troppo". E' una sciagura, ma siccome è molto economico, è numericamente dominante.

    Mozart, ovvero "Il genio": conosce in profondità 14 linguaggi di programmazione, e ha fatto progetti importanti e popolari con quasi tutti. Il suo github ha 12000 download e 345 fork. "Ah, no, i test e i checkin della settimana li ho finiti Martedì. Questo è il mio progetto del weekend". Ogni tanto dice cose come "...avrò cercato di spiegarlo a Linus 100 volte". Non si riesce mai a tenerlo per molto.

    Been there, done that, ovvero "Il veterano": "Sì, è esattamente la stessa cosa che facevamo sempre sui Cyber CDC 7600, ma naturalmente oggi abbiamo un altro DCL e molte più risorse." Spesso avvistato tra i sysadmin.

    Il periferico, ovvero "Lo stressato": deluso dallo sviluppo (spesso per il burnout derivato dalla collaborazione con Zietta) si è fatto assegnare al QA o allo User Support senza capire di essere caduto dalla padella nella brace.
    Bombardato da richieste banali ("Certo che deve accendere la macchina") o assurde ("Ne sono sicuro, le previsioni meteorologiche di medio periodo non fanno parte del nostro software di magazzino"), ha sviluppato brillanti strategie evasive ("Ma prima che cominciamo, ha aggiornato il firmware, il driver della scheda grafica e quello del mouse? Ritelefoni quando l'ha fatto" - "NOTABUG. WONTFIX"). Però, lo stress si vede.
    I colleghi lo considerano un messaggero di sventure e uno fuori dal giro e gli dicono cose del tipo "Certo, se non sei aggiornato o non capisci la tecnologia di base...". In genere si licenzia dopo un paio d'anni.


    Bastard Operator From Hell, ovvero "Erode": Inamovibile per essere andato a scuola coi soci fondatori, è responsabile della sicurezza di rete, delle risorse e (spesso) della telefonia. Ha eletto a suo modello caratteriale Argus Filch, il guardiano di Hogswarth.

    "Non capisco a cosa possono servirti i privilegi di stampa."
    "Eravamo a corto di spazio e, visto che non lo usavi tutto, ho fatto sostituire il disco da 1TB della tua macchina con uno da 500MB. Fra l'altro è più affidabile, e puoi sempre usare i dischi del server."
    "Certo che abbiamo tolto le schede di rete e disabilitato le porte usb. La macchina del licensing deve essere sicura, o no?"
    "WI-FI????????????? Sei impazzito?"


    The old fart, ovvero "Il pensionato":

        "Mah, io 'sta moda dell'Object Oriented..."
        CHAR(23) COGNOME
        GOTO LABEL019
        $ ed README
        "L' hai letto su usenet?"
        "Il mio è un sito web leggerissimo, che si vede bene anche su lynx"
        "UTF?"
        "Zzzzzzzzzz...."

    Posted by Sax Appeal at 3:20 PM No comments:
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Labels: programming

    Thursday, September 22, 2016

    Building emacs 25.1 on Fedora Core 22

    I am not (no longer) a big fan of OS updates (and the grueling work of picking up the pieces of broken stuff the usually comes after that. So it is not unusual, for me, to be lagging 2-3 major releases behind my distro of choice. I am currently at Fedora Core 22, while the world runs at FC24 speed.

    Now, however, emacs 25.1 is out, and a birdy is telling me it won't be built for FC22. Few choices but to build it myself (I'd already done it back in FC15 days): it turns out that it is pretty staightforward on my main box:

        #  wget http://mirror2.hs-esslingen.de/fedora/linux/updates/24/SRPMS/e/emacs-25.1-0.3.rc2.fc24.src.rpm
        #  dnf builldep emacs
        #  dnf builddep emacs
        #  sudo dnf builddep emacs
        #  rpm --install emacs-25.1-0.3.rc2.fc24.src.rpm 
        #  cd ~/rpmbuild/RPMS/SPECS/
        #  dnf install webkitgtk3-devel
        #  rpmbuild -bb emacs.spec 
        #  cd ../RPMS/
        #  dnf update */*.rpm


    Posted by Sax Appeal at 5:28 PM No comments:
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Labels: emacs, fedora

    Friday, September 16, 2016

    Una strana corsa ad ostacoli.

    Installazione di Ai Wei Wei a Palazzo Strozzi

    Nell'arte, per un lungo tempo, ci sono state la materia - la tela, la pietra, il suono, il tamburo - e la forma - la Madonna in trono con santi, la scena mitologica, la fuga, il blues. La materia andava vinta. La forma era un avversario e una camicia di forza, ma anche il  punto d'incontro tra l'espressione e le aspettative dello spettatore.

    I migliori, quelli che chiamiamo Artisti, utilizzavano la loro maestri tecnica per dominare la materia e per piegare la forma a fini espressivi: talvolta portavano l'espressione di una forma al suo massimo culmine (Bach, la fuga), talvolta addiritura la trasfiguravano (Beethoven, la sonata, la sinfonia). C'era poi chi si limitava ad appoggiarsi alla forma: gli artigiani, i virtuosi.

    "Fontana" Marcel Duchamp
    A un certo punto (che fisso arbitrariamente al 1945) quello che fino ad allora era considerato un evento traumatico - la creazione di una nuova grammatica formale - è diventata una pratica non solo concessa, ma perfino richiesta agli artisti che volessero essere "contemporanei". Il patrimonio tecnico-artigianale della pratica artistica poteva essere subordinato all'apparato concettuale che si voleva rappresentare. Così l'opera d'arte a volte sfumava nella trovata e diventava un capolinea. L'immagine della madonna ha avuto migliaia d'interpretazioni, ma un pisciatoio rovesciato si può esporre una volta sola, e dopo 4' 33" di Cage nessuno (tranne Cage, ma è morto) puo' comporre "1 minuto e 43 secondi e mezzo" .

    Attraversando l'esposizione permanente del Centre Pompidou in senso cronologico si passa da opere di contenuto magari provocatorio, ma con cui la relazione è immediata (il quadro, la scultura) ad oggetti ambigui, multiformi e arbtrari, le proverbiali installazioni sempre a rischio di essere buttate dalla signora delle pulizie. Ai Wei Wei può, da artista, esporre gommoni arancioni sulla facciata di palazzo Strozzi a Firenze (una installazione che personalmente non trovo sgradevole, ma che ha sollevato un discreto clamore).

    Cosa resta al non specialista che vuole orientarsi? Studiare la grammatica espressiva di ogni artista, o della particolare microscuola a cui aderisce è un'impresa al di fuori della portata dei  più. Si deve forse dare ragione a Morton Feldman, quando scrisse che il musicista è diventato come lo scienziato, depositario di una conoscenza specialistica esclusiva di cui il non iniziato non può chiedere più di tanto ragione? A me questa sembra una sconfitta dell'espressione artistica in generale. L' arte sarebbe quella del pittore preferito dai pittori, del poeta preferito dai poeti, più un modo di soddisfare i bisogni (o di grattare i pruriti) di un circolo privato che uno sguardo sull'esistenza umana.

    A volte guardare la scena artistica contemporanea è come assistere ad un gara di 400 ostacoli dove sono spariti ostacoli, linea della partenza, traguardo, corsie e pista. C'è chi corre da campione, chi da dilettante, chi c'è entrato per caso. Forse qualcuno vince. Ma distinguerli è quasi impossibile.

    Posted by Sax Appeal at 10:08 AM No comments:
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Labels: ai wei wei, arte, arte contemporanea

    Tuesday, June 21, 2016

    Extreme(ly stupid) programming

    I recently hired (that's rented, for many) a car on my trip to Ireland, and the company (Sixt) withdrew a huge cautionary deposit from my credit card. That's because I purchased "basic insurance" without reading the fine print (Note to self: never again).

    Because of this I have a keen interest in the final bill  which - it is claimed - I can retrieve from the company web site, where a form to that effect is provided. The bill itself can be searched by surname of the renter (yours truly)  and  reservation number: mine looks like IE123456789.

    Power of the NET. After dinner, I fire up my device, go to the site, fill in the required numbers, and WHAM-BAM-ALAKAZAM I am greeted by a pink box, containing a twelve line SQL error enchantement. Not being at the office, I cannot be bothered, think "Oh, well, system maintenance or sump'in" and go back to my book.




    Two days and four ALAKAZAMs later, however, I am nervous and annoyed enough to make the form's problem my own. The above mentioned statement includes the code ORA-01722 error (which, for the uninitiated, is an error code of the underlying ORACLE DBMS) As it happens, its textual description is "invalid number" (I had to look it up). Being the adroit IT professional I am, I fired up the form again, entering 123456789 as the reservation number (rather the IE123456789 that is present on all the documents I have been given) and ALAKAZORK! "No document found". 

    Now that is still a problem (for me) but not an error, and therefore, not the topic I'm after in this post.

    Here are some things I am fairly sure of


    1. There is no chance in hell that anybody, except the useless author of this useless form (who should be metaphorically taken to the backyard and shot, but I digress) have ever been able of making it work at the first attempt (and very few people even after the 100th).
    2. All the system has been built with a test-driven approach, as the extreme programming best practices dictate;
    3.  But the reservation number is actually made up by the two letter country code (IE) and a number and these, in the database, are split between two columns (countrycode, textual, resnum, integer)
    4. and the aforementioned useless git has successfully run its tests against the contents of the resnum column, never - in his/her useleness - checking what the customer documents actually contain, because that would require  the capability of thinking sensibly.
    5. form field validation code is for sissies
    All of which bring us to the proof of these interesting corollaries of software testing:

    Corollary 1 (extreme GIGO)

    "If your tests suck, your code will suck, for any number of  successful tests Nt > M, Nt and M  being positive arbitrary integers and for any input I to the tests"

    This, coupled with the following :

    Empiric finding 1


    "A stupid programmer will conceive stupid tests"
    (I.e. for a nuclear power generator control software he will test for correct string justification but not for correct temperature reading of the core; in case he does, he will mix up fahrenheit and centigrades).


    Gives us:

    Empiric corollary 2 

    "A stupid programmer will conceive thoroughly tested sucky code"

    A more useful way of stating this is, do not let anybody write tests for their own software (we all go through bouts of stupidity, after all, especially when our own children are involved), or, in other words, separate development and QA.

    Advice of the day: "Don't be stupid"

    Posted by Sax Appeal at 10:04 AM No comments:
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Labels: quality assurance, software, software quality

    Friday, May 13, 2016

    Support Ticket #131313

    Ticket #131313

    Ciao Arturo,

    invio in allegato alla presente la segnalazione del collega.
    Ti prego di verificare e tenermi aggiornato riguardo alla risoluzione 
    del problema.

    Saluti e grazie
    Paolo

    --[Visualizza allegati email.pdf]

    (Nota Bene: email con allegato PDF contenente messaggio email. Almeno non è word, Ndr)

    Ogetto: Sito Web
    Mittente: Troto Programma

    Ciao,
    Ho notato questo fine settimana, ma non so da quanto tempo c'è il problema (WAY TO GO! Ndr), che il sito non visualizza correttamente la parte destra della home.

    Puntando su un problema di compatibiltà/contenuti inseriti,ho colto l'occasione di aggiornare (naturalmente sul sito di produzione, Ndr) 22 plugin e tutto l'ambiente di Wordpress (Già che c'eri potevi aggiornare anche il firmware ed il cabinet, Ndr).

    Purtroppo il problema non si è risolto (Mission Accomplished, Ndr), ma nel frattempo ne è apparso un altro (Cioè: "ho creato un altro problema, più grave, e ora il sito è completamente rotto". Strano. Ndr) Sarebbe necessario comunicare a $DittaCheCollaboraConVoi la seguente esigenza:

    "Occorre aggiornare la versione di PHP dall'attuale a 5.6.x"

    Grazie,
    Troto

    P.S. Se a $DittaCheCollaboraConVoi servono maggiori dettagli sono a disposizione. (No grazie, se stai fermo è già un aiuto prezioso. Ndr)

    -----

    Heavy drinking intensifies.

    Posted by Sax Appeal at 10:59 AM No comments:
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Labels: programming, user support

    Friday, April 8, 2016

    Simpler? No, just dumber. On language.

    So Morten Just wrote a text editor/word processor that requires its owner to use words taken from the 1000 most commonly used English words, based on the Einstein-attributed quote

    "If you can’t explain it to a six-year-old, you don’t understand it yourself"

    (By the way, do you spot the misunderstanding of the quote? It states that you must be able to explain it to a six year old, not that you should always express yourself that way)

    And Morten was surprised by the negative reactions of some of the public, as he explains in this post.

    I just had to take exception, and did it in the reply that follows.

    No, sorry, I cannot agree. I do concur that one should express his ideas in the simplest possible way —  but not any simpler, lest the ideas get distorted.

    Besides, I think simplicity is a feat one should achieve because he thinks about it — not because it’s been given a crippled tool that forces its owner to do strange stuff. In a way, that (leaving stuff out of a tool because you don’t believe in, or know about, it) is a typical approach of some brand of software design — the email application that assumes that your username will always be equal to your email address, last sighted on windows, is an example.

    Not to mention the many fields of endeavour where the original Einstein’s quote is, quite simply, bullshit. Art prose. Poetry. “Serendipity”. Formulating  the sentence “Swift is a Multi-paradigm (Protocol-oriented, object-oriented, functional, imperative, block structured) programming language” without bizarrely contorted and extended paraphrases (which I should be probably expressing as “weirdly restating its meaning using other words in much longer sentences” — see?). This happens because unusual words (especially when domain specific) synthesize required prior knowledge that would make expression unbearably long winded without making it any simpler, or clearer. Einstein himself wrote “covariant bidimensional tensor” when needed — how does that come out under the 1000 words rule?

    Also, I find the idea that simple words enable clear expression incredibly naive — germane to the idea that good coding style is a feature of the programming language, rather than the programmer’s. Confused thought breeds confused and confusing expression, vocabulary breadth notwithstanding. (See Gargantua and Pantagruel for amusing examples)

    Does all this amount to make your editor a tool apt to “dumbing down” (rather than simplifyng) communication? Yes, I am afraid it does.

    And one last point. English (my second language) has accepted into its fold words that come from many other tongues: latin, french, german, indian, native american. The subset of english words that are familiar to— and therefore immediatley usable by — an Italian is widely different from the one a German — or a Jamaican —  would recognise. I have the idea that this alluring diversity within linguistic unity fares rather poorly under 1,000 words rule.

    And I really loved what Brian Luff said (same thread):

    "... although Orwell may have said

    Never use a long word when a short one will do

    he clearly did not mean
    Never use a long word.
    As far as I know, he never said
    Why use a long word when you can use a lot of short ones instead?
    How many short words would I need in order to suggest that your premise is an absurd extrapolation?"
    Posted by Sax Appeal at 10:10 AM 2 comments:
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Labels: language, programming

    Monday, February 22, 2016

    I giornali e l'effetto amnesia Gell-Mann

    La fiducia che accordiamo  ai media è totalmente immeritata. Tutti noi abbiamo sperimentato quell'effetto che io chiamo "effetto amnesia di Gell-Mann". (Lo chiamo così perchè una volta ne ho parlato con Murray Gell-Mann, e questo mi permette di citare un  nome famoso che conferisce più importanza all'effetto)

    In breve si tratta di questo: aprite il giornale e leggete un articolo su qualcosa che conoscete bene; che so,  per Murray potrebbe essere  la Fisica, per me, lo spettacolo. Vi rendete conto che il giornalista non sa nulla nè di quello che è successo, nè di quello che è coinvolto, fino al punto, spesso, di capovolgere cause ed effetti. (Il mio nome per queste storie è "L'allagamento della strada provoca un forte acquazzone") I giornali ne sono pieni. Comunque, leggete divertiti - o esasperati - l'articolo con tutti gli assurdi errori che contiene. Poi girate pagina, ad esempio alla sezione Esteri, e riprendete interessati la lettura come se per qualche motivo il giornale possa essere più preciso sulla Palestina che sui fatti dell'articolo che avete appena finito di leggere. Voltate la pagina e dimenticate quello che avete appena imparato.

    Questo è l'effetto amnesia di Gell-Mann.

    Una cosa notevole è che questo effetto non compare in altre aree della nostra esperienza: nella vita di tutti i giorni, quando sappiamo che qualcuno ci mente regolarmente o che distorce i fatti in altri modi, impariamo presto a non dargli retta. In tribunali, si applica normalmente il principio falsus in uno, falsus in omnibus  - se  una parte è falsa, è falso tutto il resto. E tuttavia nel caso del giornale (e degli altri media)  continuiamo a credere, irragionevolemente, che valga la pena prendersi il tempo di leggere gli altri articoli, benché sia quasi certo che si tratti uno spreco di tempo. L'unica spiegazione per questo tipo di comportamento è l'amnesia.

    - Michael Chricton “Why Speculate?”, 2002




    "Media carries with it a credibility that is totally undeserved. You have all experienced this, in what I call the Murray Gell-Mann Amnesia effect. (I call it by this name because I once discussed it with Murray Gell-Mann, and by dropping a famous name I imply greater importance to myself, and to the effect, than it would otherwise have.)

    Briefly stated, the Gell-Mann Amnesia effect works as follows. You open the newspaper to an article on some subject you know well. In Murray’s case, physics. In mine, show business. You read the article and see the journalist has absolutely no understanding of either the facts or the issues. Often, the article is so wrong it actually presents the story backward-reversing cause and effect. I call these the “wet streets cause rain” stories. Paper’s full of them. In any case, you read with exasperation or amusement the multiple errors in a story-and then turn the page to national or international affairs, and read with renewed interest as if the rest of the newspaper was somehow more accurate about far-off Palestine than it was about the story you just read. You turn the page, and forget what you know.

    That is the Gell-Mann Amnesia effect.

    I’d point out it does not operate in other arenas of life. In ordinary life, if somebody consistently exaggerates or lies to you, you soon discount everything they say. In court, there is the legal doctrine of falsus in uno, falsus in omnibus, which means untruthful in one part, untruthful in all. But when it comes to the media, we believe against evidence that it is probably worth our time to read other parts of the paper. When, in fact, it almost certainly isn’t. The only possible explanation for our behavior is amnesia."

    - Michael Chricton “Why Speculate?”, 2002

    Posted by Sax Appeal at 12:02 PM No comments:
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Labels: media, Michael Chricton

    Wednesday, December 23, 2015

    Using Linux LVM snapshots to run "experiments" on VMs


    I am going to show how to create a LVM (Logical Volume Manager) snapshot and use it to return its base to a previous state.

    This is useful for experiments, e.g on a LVM-based virtual machine (VM):
    • take a partition snapshot of the FS where the VM lives.
    • experiment with the VM (make config changes etc.)
    • if your tests are successful, lvremove the snapshot and keep the experiment's results
    • if you want to discard the tests, stop the VM then lvconvert –merge -v <snapshot> will restore the partition to its snapshot state.

    Check required capabilities

    # dmsetup targets
    zero             v1.1.0
    mirror           v1.13.2
    snapshot-merge   v1.3.0
    snapshot-origin  v1.9.0
    snapshot         v1.13.0
    striped          v1.5.1
    linear           v1.2.1
    error            v1.3.0
    

    For the rest of the tutorial to work, we need the snapshot-merge target to exist.
    If (as it happened to me) you run this on a machine with no kernel support for merging, you will be stumped in the last passage (lvcreate –merge). You can get out of this pickle by either:
    1. Grabbing a Live DVD of a distribution that has merge support
    2. run the last step from the live environment
    or:
    1. Boot rescue from a distribution that has merge support
    2. Do not mount the LV partitions involved when/if asked
    3. run the last step from the rescue environment
    While the first course of action worked perfectly in my case, it is the second one that redhat reccommends. When I tried it, however, the rescue environment was missing the required device files /dev/SataGroup and I could not proceed.

    Create volume, make a filesystem, mount it.

    # lvcreate --size 100m -n test SataGroup01
    # mkfs.ext2 /dev/SataGroup01/test
    # mkdir /tmp/test
    #  mount /dev/SataGroup01/test /tmp/test
    # cd /tmp/test
    # ls
    # mkdir a{0..2}
    # ls
    a0  a1  a2   lost+found
    # for i in {0..2}; do touch a$i/b$i ; done
    # ls a0
    b0

    Create a snapshot on the base volume, then mount it.

    When the snapshot is created, care must be taken to make a large enough snapshot to avoid filling it. If the snapshot fills up, you will end up with a stuck snapshot and you'll have to go to hell and back to get rid of it (I may show how in a followup post).

    # lvcreate --snapshot --size 100m -n test-snap /dev/SataGroup01/test
    # mkdir /tmp/test-snap
    # mount /dev/SataGroup01/test-snap /tmp/test-snap
    The contents of the volumes are identical:
    # ls /tmp/test
    a0  a1  a2 lost+found
    [root@cane test]# ls /tmp/test-snap/
    a0  a1  a2 lost+found
    Change them in different ways:
    # mkdir /tmp/test/b0
    # rm -rf  /tmp/test/a1
    # mkdir /tmp/test-snap/c0
    # ls /tmp/test*
    /tmp/test:
    a0  a2  b0  lost+found
    
    /tmp/test-snap:
    a0  a1  a2 c0  lost+found
    
    
    Now unmount them:
    
    
    
    # umount /tmp/test
    # umount /tmp/test-test snap

    End the experiment

    If we now throw away test-snap, we'd be left with the changes done in test. If we want to back up our changes, and keep what was done in snap instead, do:

    # lvconvert --merge -v /dev/SataGroup01/test-snap 
        Using logical volume(s) on command line.
        Archiving volume group "SataGroup01" metadata (seqno 41).
        Loading SataGroup01-test-real table (253:14)
        Suppressed SataGroup01-test-real (253:14) identical table reload.
        Loading SataGroup01-test--snap-cow table (253:15)
        Suppressed SataGroup01-test--snap-cow (253:15) identical table reload.
        Loading SataGroup01-test table (253:16)
        Loading SataGroup01-test--snap table (253:17)
        Not monitoring SataGroup01/snapshot0
        Suspending SataGroup01-test (253:16) with filesystem sync with device flush
        Suspending SataGroup01-test--snap (253:17) with filesystem sync with device flush
        Suspending SataGroup01-test-real (253:14) with filesystem sync with device flush
        Suspending SataGroup01-test--snap-cow (253:15) with filesystem sync with device flush
        Loading SataGroup01-test-real table (253:14)
        Suppressed SataGroup01-test-real (253:14) identical table reload.
        Loading SataGroup01-test--snap-cow table (253:15)
        Suppressed SataGroup01-test--snap-cow (253:15) identical table reload.
        Resuming SataGroup01-test-real (253:14)
        Resuming SataGroup01-test--snap-cow (253:15)
        Resuming SataGroup01-test (253:16)
        Resuming SataGroup01-test--snap (253:17)
        Creating volume group backup "/etc/lvm/backup/SataGroup01" (seqno 42).
      Merging of volume test-snap started.
        Checking progress before waiting every 15 seconds
      test: Merged: 100.0%
      Merge of snapshot into logical volume test has finished.
        Archiving volume group "SataGroup01" metadata (seqno 42).
        Removing snapshot test-snap
        Loading SataGroup01-test table (253:16)
        Loading SataGroup01-test--snap table (253:17)
        Suspending SataGroup01-test (253:16) with device flush
        Suspending SataGroup01-test--snap (253:17) with device flush
        Suspending SataGroup01-test--snap-cow (253:15) with device flush
        Suspending SataGroup01-test-real (253:14) with device flush
        Resuming SataGroup01-test--snap-cow (253:15)
        Resuming SataGroup01-test-real (253:14)
        Resuming SataGroup01-test (253:16)
        Removing SataGroup01-test-real (253:14)
        Removing SataGroup01-test--snap (253:17)
        Removing SataGroup01-test--snap-cow (253:15)
        Releasing logical volume "test-snap"
        Creating volume group backup "/etc/lvm/backup/SataGroup01" (seqno 44).
      Logical volume "test-snap" successfully removed

    We have kept the changes originally in the snapshot volume (which as been removed by lvconvert); a1 has come back, b0 is gone, c0 - from test-snap - is now in place:
    
    
    # ls  /tmp/test/ /tmp/test/a1
    /tmp/test/:
    a0  a1  a2 c0  lost+found
    
    /tmp/test/a1:
    b1
    Posted by Sax Appeal at 10:05 AM No comments:
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Labels: linux, LVM

    Thursday, November 26, 2015

    Mojibake and the horrors of database encoding.

    I gave several sound and wise advices  (If I say so myself) in the past when writing about character encodings, whle stopping on the threshold of DBMS encodings with some smartass comment like "God helps you if you must".

    So it was just appropriate that I should go into that same task and that it bit me in the arse in revenge. (Background: my company hosts several legacy LAMP sites which had originally been set up with very little thought given to character encodings and all that).

    And so it was that - having read a few StackOverflow posts on the subject - I started handling a multilingual, latin1 encoded, MySql database with what turned out to be a very hazy understanding of the subject, took a several misguided turns and  ended with a character soup. In truth, the character soup was probably there to begin with, and I just made it worse, although the changes I made in the (panicked) attempts to fix it just concurred to make it quite hard to sort out.

    Of course, all this happened before I ran across two (1 and 2) wise posts on the subject by Joni Salonen. He knows his stuff, and, had I known it in advance, I would have toiled less. So most of what follows was learned the hard way (trial and error). I am presenting it here compounded with what I learned from Joni's posts.

    Mojibake (a japanese word, and not by chance: asians I guess have a lot of encoding fun) was for me entirely out of the equation - I know better now. For europeans, this is a common form of mojibake (courtesy of Richard Tobin's useful tool:


    
    Character:                        è
    Character name:     LATIN SMALL LETTER E WITH GRAVE
    Hex code point:     00E8
    Decimal code point:    232
    Hex UTF-8 bytes:    C3 A8
    Octal UTF-8 bytes:    303 250
    UTF-8 bytes as Latin-1 characters bytes: Ã ¨
    


    Mojibake (in one of its simplest forms) is when you start with a UTF8 encoded character top row which is (at one point of its life) mistaken as two latin1 chars (bottom row). This is usually compounded by something (someone) taking the two not-quite-latin1 characters and encoding them back to UTF8 (for european alphabets this normally means you now have four bytes).

    Oh, and let's not forget about Windows-1252, helpfully using bytes 128-159 for characters the are UTF8-encoded in three byte sequences (most sighted as single/double quotes, often a result of copy-paste from word). Eg:


    
    Character                  „
    Character name         DOUBLE LOW-9 QUOTATION MARK
    Hex code point         201E
    Decimal code point        8222
    Hex UTF-8 bytes         E2 80 9E
    Octal UTF-8 bytes        342 200 236
    UTF-8 bytes as Latin-1 characters bytes      â [80] [9E]
    


    This is just the beginning of the story, though. When trying to understand just what is going on with your DBMS (mysql, in this case) you should bear in mind that each link of the chain has its own idea of what encoding is being used and may (or may not) decide to make it "easier" for you by converting, from the encoding it thinks are your strings in, to the one it is using. It may get it wrong: if it does not, you will - if you believe to the characters you see - and will end up with egg on your face (mojibake, scrambled).

    The links you should be aware of are:
    • the server (holds the truth, but won't tell)
    • the client (it lies: it has a default encoding that won't tell)
    • the terminal (may be lying: check your $LANG)
    • the operating system (probably an innnocent bystander)
    • your editor (It lies. Maybe. See later.)

    The server. Mysql has what it calls 'default encodings': they exist for the database, for the table, for the single column of the database. If you tell it nothing, mysql defaults to latin1 (there are good reasons for this: holding a multilingual catalog, however is not one). The clients, meanwhile, have their own idea of the encodings that the incoming/outgoing characters are in. The most typical SNAFUs: UTF8 characters stored as couples of latin1 chars in a latin1 table. It will display as character soup, and if now you ALTER TABLE to change the encoding (mysql doing automatic conversions for you), you will end up with the double encoded mojibake I mentioned above.

    You can have even more fun if you have the (not) brilliant idea (advocated by several posts on the 'net) to do the DB conversion by dumping the databas to a file (mysqldump), edit it to change the default latin1 encodings to utf8, and then run a conversion tool the like of iconv/uconv to modify the (supposedly) latin1 characters to utf8, and then feed the result to mysql. Don't. What you are not realising here is that - when dumping - the characters are being output in the encoding that the client is using - which these days is most often utf8, if the client is the command line mysql tool and your terminal is using a .utf8 locale. Running iconv on the dump, then, accomplishes the "fine" result of doubly encoding all the characters which are already utf8.

    What to do then? There is a good a case, and a host of bad cases.

    Regardless of the situation you are in, you should try your best to know what you are exactly looking at - when in doubt reach for an hex editor/viewer (bvi, emacs' hexl, hexdump, xxd). This seems silly but consider that, when you see the sequence 'è', your instinct will be telling you that you are looking at a UTF8 char displayed on a latin1 device. But throw mojibake in, and you may well have two UTF8 characters as displayed by a UTF8 device. Looking at the actual bytes will give you certainty.

    Also locking every chain of your environment in utf8 will help, and will also prevent future mixups. This is how I do it. For mysql, I put this in my.cnf:


    
    [mysqld]
    ; this inhibits start on v5.5 (a bug)
    ; default-character-set=utf8
    character-set-server=utf8
    collation-server = utf8_unicode_ci
    init-connect='SET NAMES utf8'
    skip-character-set-client-handshake
    ... 
    [client]
    default-character-set=utf8


    This alone should be enough. However you always want to be explicit so be sure that (wher you are in charge of this things) the db connection strings specify the encoding eg. (php,PDO):


    
    "mysql:host=localhost;dbname=test;charset=utf8"
    


    In your terminal, be sure that locale-related variables are utf8 aware (e.g: LANG=en_US.UTF-8). Your editor should be modern, UTF8 aware, and prefer the UTF8 encoding when in doubt (e.g., for emacs, run versione greater than 21.3, and ‘M-x prefer-coding-system utf-8' or have (prefer-coding-system 'utf-8) in your .emacs)

    With this, you will be sure that every link of your chain is thinking UTF8 - for CLI mysql, you can confirm it with:


    
    mysql> SHOW VARIABLES LIKE 'character_set%'; SHOW VARIABLES LIKE 'collation%';
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | utf8                       |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8                       |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.00 sec)
    
    +----------------------+-----------------+
    | Variable_name        | Value           |
    +----------------------+-----------------+
    | collation_connection | utf8_unicode_ci |
    | collation_database   | utf8_unicode_ci |
    | collation_server     | utf8_unicode_ci |
    +----------------------+-----------------+
    3 rows in set (0.00 sec)
    


    I also put


    
    AddDefaultCharset UTF-8
     ...
    AddCharset utf-8 .html .css .php .txt .js 
    


    In Apache's config for the involved web sites.

    And note, here I am talking about small DBs, therefore giving little, if any, consideration to performance, conversion times, and somesuch. If you have multiGB DBs with full text indexes that take days to rebuild or somesuch, you should research the topic for your specific requirements.

    In the good case, you have a coherent latin1 encoding environment. If so, just issuing


    
    ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;
    


    should do the deed. Watch out that


    
    ALTER TABLE tbl CHARACTER SET utf8
    


    (notice the missing "convert to"?) will change the default encoding, but will do no conversion, leave the encoding of the existing columns as it is and confuse the hell out of you.

    And, if you already are in this unfortunate situation, this may sort of help you (assuming your column is CHAR(50)):


    
    ALTER TABLE t MODIFY col1 CHAR(50) CHARACTER SET utf8;
    


    This snippet - http://stackoverflow.com/questions/8906813/how-to-change-the-default-charset-of-a-mysql-table - will cobble the queries for your entire table set:


    
    SELECT concat('alter table ', table_name, ' 
         CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') 
         FROM information_schema.tables WHERE table_schema='your_database_name' 
               AND table_collation != 'utf8_general_ci' GROUP BY table_name;
    


    As an alternative, you may mysqldump your (smallish) database, edit the resulting file, change all latin1 occurrences to utf8 and reload into a fresh database (defaulting to utf8, of course).

    Bad cases are plentiful, but from my experience, have mostly to do with double-encodings (see above) or mixed encodings. Because I do not think my personal struggles with them are of great interest, I will refer you again to the excellent posts of Joni on the subject. Print them. Study them. And may mojibake never cme close to your DBs.

    Appendix:

    The following bash script reports on the encodings in effect on a particular (or all) database, table.


    
    #!/bin/bash
    ver=0.1
    author="Alessandro Forghieri "
    name=`basename $0`
    sa_usage () {  echo "usage: $0 [-l] [-t] [-c] [db [table [column]" ; }
    usage () {
     echo "$name $ver $author"
     echo
     echo $(sa_usage)
     echo
     echo "        -l   like dbname "
     echo "        -t   like tablename"
     echo "        -c   like columnname"
     echo "report on database encodings"
     echo
    }
    
     # getopts optstring name [args]
    while getopts dvltc opt ; do
     case "$opt" in
      d) set -v ;;
             v) opt_v=1 ;;
             l) opt_l=1 ;;
             t) opt_t=1 ;;
             c) opt_c=1 ;;
      ?) usage; exit ;;
     esac
    done
    
    shift `expr $OPTIND - 1`
    
    #http://stackoverflow.com/questions/1049728/how-do-i-see-what-character-set-a-mysql-database-table-column-is
    
    echo "======================"
    
    echo "SHOW VARIABLES LIKE 'character_set%'; SHOW VARIABLES LIKE 'collation%';" | mysql
    
    echo "======================"
    
    
    CSET_DB="SCHEMA_NAME AS name,DEFAULT_CHARACTER_SET_NAME AS encoding,DEFAULT_COLLATION_NAME AS collation"
    
    
    if [[ x$1 == x ]]; then
        CLAUSE_DB=""
    else
        if [[ x$opt_l == x ]]; then
     CLAUSE_DB="WHERE schema_name = '$1'"
        else
     CLAUSE_DB="WHERE schema_name like '$1'"
        fi
    fi
    echo "SELECT $CSET_DB  FROM information_schema.schemata $CLAUSE_DB" | mysql
    
    [[ x$1 == x ]] && exit 0;
    [[ x$opt_l  != x ]] && exit 0;
    
    echo "======================"
    
    if [[ x$opt_l == x ]]; then
        CLAUSE_DB=" AND  T.table_schema='$1' "
    else
        CLAUSE_DB=" WHERE T.table_schema like '$1' "
    fi
    
    if [[ x$2 != x ]] ; then
        if [[ x$opt_t == x ]]; then
     CLAUSE_TABLE=" AND T.table_name = '$2' "
        else
     CLAUSE_TABLE=" AND T.table_name like '$2' "
        fi
    fi
    
    CSET2="T.TABLE_SCHEMA, T.TABLE_NAME, CCSA.character_set_name"
    
    echo "SELECT $CSET2 FROM information_schema.TABLES T,information_schema.COLLATION_CHARACTER_SET_APPLICABILITY CCSA WHERE CCSA.collation_name = T.table_collation  $CLAUSE_DB $CLAUSE_TABLE" | mysql
    
    echo "======================"
    
    if [[ x$opt_l == x ]]; then
        CLAUSE_DB=" WHERE table_schema='$1' "
    else
        CLAUSE_DB=" WHERE table_schema like '$1' "
    fi
    
    
    if [[ x$2 != x ]] ; then
        if [[ x$opt_t == x ]]; then
     CLAUSE_TABLE=" AND table_name = '$2' "
        else
     CLAUSE_TABLE=" AND table_name like '$2' "
        fi
    fi
    
    if [[ x$3 != x ]] ; then
        if [[ x$opt_c == x ]]; then
     CLAUSE_COLUMN=" AND column_name = '$3' "
        else
     CLAUSE_COLUMN=" AND column_name like '$3' "
        fi
    fi
    
    CSET3="TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME , CHARACTER_SET_NAME"
    
    echo "SELECT $CSET3 FROM information_schema.COLUMNS $CLAUSE_DB $CLAUSE_TABLE $CLAUSE_COLUMN" | mysql
    
    
    Posted by Sax Appeal at 12:30 PM No comments:
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Labels: encoding, mysql, utf8

    Monday, October 12, 2015

    Di un libro quasi comperato (grazie al cane). Quasi una recensione, quindi.

    Ritratto di Marie salvatrice
    In una delle mie puntate in libreria del Sabato mattina, ho preso in  mano il libro di Yanis Varoufakis, "E' l'economia che cambia il mondo". Mi dirigevo verso la cassa, deciso ad acquistarlo, quando Marie (il mio cane di 5 anni, e compagna delle mie passeggaite di Sababto mattina. Illustrata a sinistra), ha deciso, come fanno quelli della sua specie che non avrebbe mai e poi mai potuto abbandonare il negozio senza avere prima placato la sua sete di conoscenza annusando un odore - quasi certamente  rivoltante - che proveniva dall'angolo opposto a quello dove si trova la cassa. Ve beh, è Sabato per me e anche per il cane - mi sono detto assecondandola. Mentre lasciavo che annusasse a sazietà, ho adocchiato una poltroncina modello IKEA che la provvidenza libraia aveva messo proprio a portata delle mie terga, e mi ci sono accomodato iniziando  a sfogliare il libro, mentre Marie si posizionava strategicamente nel punto di massimo ingombro, in modo da far inciampare tutti quelli che passassero nel raggio di una ventina di metri dalla mia postazione.

    Questo contrattempo in forma di cane ha fatto sì che mi rendessi conto che Yanis:

    • Scrive con l'abusato e ormai quasi insopportabile artificio retorico di "X spiegato a mia figlia";
    • Ritiene che l'agricoltura sia stata inventata dagli europei perché avevano depauperato l'ambiente...
    • ...ma non dagli australiani che "vivevano in armonia con la natura" creando miti e opere d'arte "di rilevantissimo valore culturale"...
    • ...mentre gli africani (che  avevano anch'essi l'agricoltura: perché, Yanis non lo spiega) non sono riusciti a dominare l'Europa perchè per motivi cliematici non potevano trapiantare le loro colture da Sud a Nord;
    • Ritiene che la rivoluzione industriale britannica sia stata causata dai proprietari feudali per riciclare il surplus di manodopera nelle industrie, e che questo abbia disgraziatamente distrutto la millenarie tradizioni agricole feudali. Questo viene scritto con una vena di rimpianto - I kid you not - mentre il fatto che in altre regioni d'Europa il permanere di quelle millenarie tradizioni risultasse oin crisi alimentari e (orribili) carestie periodiche pare non turbare più di tanto il Nostro.
    • Ritiene che tutta la storia umana sia una di sopraffazione in perpetuo inseguimento del surplus, che solo pochi saggi gruppi umani evitano. Gli aborigeni australiani sono l'unico esempio in cui mi sono imbattuto.
    • Generalmente pensa che il modo migliore di risolvere ogni problema economico sia attraverso una legge impositiva creata dal "Governo" la cui (del Governo) bontà è sempre data per certa.
    A queso punto Marie ha visto un beagle uscire dalla libreria e ha dato chiari segni di volerlo seguire, strappandomi dalla marea di insulsaggini in cui Varoufakis mi stava avviluppando. Ho riposto il libro nello scaffale, e, decidendo che stava molto meglio lì, sono uscito dal negozio. Grazie al cane.

    Posted by Sax Appeal at 4:00 PM No comments:
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Labels: books, economia, economics, Libri, Varoufakis

    Wednesday, October 7, 2015

    La biblioteca, incarnata

    Un programmatore umanista di genio - e mio fratello spirituale - ha realizzato in concreto il vasto edificio intellettuale che fino ad ora si poteva solo contemplare nel racconto "La biblioteca di Babele", contenuto nella raccolta "Finzioni"  dell'immenso autore argentino Jorge Luis Borges.

    Si tratta di un sito che mi tocca particolarmente da vicino, perché ricordo ancora come(*) scoprii questo capolavoro, e lo stupore e la meraviglia di cui mi riempì.

    Come previsto da Borges la Biblioteca contiene anche la propria descrizione espressa con le stesse parole usate dall'autore nel racconto omonimo.

    Gli attuali limiti dell'algoritmo usato fanno sì che la descrizione che si può trovare oggi sia spezzettata in sei parti (i link del paragrafo precedente) e la mia pigrizia che la traslitterazione dallo spagnolo sia imperfetta specie nelle accentate. Ma è certo che una traslitterazione impeccabile, in unico brano continuo e conforme all'originale, vi è contenuta, così come la sua traduzione in Italiano, ed in ogni altra lingua concepibile.

    Il sito permette di cercare qualsiasi combinazione di 3200 caratteri  di ricordarne la collocazione, che è immutabile.

    Questo testo, naturalmente, è superfluo - la biblioteca lo contiene già.

    (*) Il racconto era in appendice alla bellissima antologia, curata da Fruttero e Lucentini "Il secondo libro della fantascienza", che, a 11 anni,  avevo divorato dopo avere scoperto la non meno bella antologia di cui quella era il seguito, "Le meraviglie del possibile", Einaudi, 1959.

    LA BIBLIOTECA DI BABELE (J. L. BORGES)

    L'universo (che altri chiama la Biblioteca) si compone d'un numero indefinito, e forse infinito, di gallerie esagonali, con vasti pozzi di ventilazione nel mezzo, bordati di basse ringhiere. Da qualsiasi esagono si vedono i piani superiori e inferiori, interminabilmente. La distribuzione degli oggetti nelle gallerie è invariabile. Venticinque vasti scaffali, in ragione di cinque per lato, coprono tutti i lati meno uno; la loro altezza, che è quella stessa di ciascun piano, non supera di molto quella d'una biblioteca normale. Il lato libero dà su un angusto corridoio che porta a un'altra galleria, identica alla prima e a tutte. A destra e a sinistra del corridoio vi sono due gabinetti minuscoli. Uno permette di dormire in piedi; l'altro di soddisfare le necessità fecali. Di qui passa la scala spirale, che si inabissa e s'innalza nel remoto. Nel corridoio è uno specchio, che fedelmente duplica le apparenze. Gli uomini sogliono inferire da questo specchio che la Biblioteca non è infinita (se realmente fosse tale, perché questa duplicazione illusoria?), io preferisco sognare che queste superfici argentate figurino e promettano l'infinito... La luce procede da frutti sferici che hanno il nome di lampade. Ve ne sono due per esagono, su una traversa. La luce che emettono è insufficiente, incessante.

    Come tutti gli uomini della Biblioteca, in gioventù io ho viaggiato; ho peregrinato in cerca di un libro, forse del catalogo dei cataloghi; ora che i miei occhi quasi non possono decifrare ciò che scrivo, mi preparo a morire a poche leghe dall'esagono in cui nacqui. Morto, non mancheranno mani pietose che mi gettino fuori della ringhiera; mia sepoltura sarà l'aria insondabile; il mio corpo affonderà lungamente e si corromperà e dissolverà nel vento generato dalla caduta, che è infinita. Io affermo che la Biblioteca è interminabile. Gli idealisti argomentano che le sale esagonali sono una forma necessaria dello spazio assoluto, per lo meno, della nostra intuizione dello spazio.

    Ragionano che è inconcepibile una sala triangolare o pentagonale. (I mistici pretendono di avere, nell'estasi, la rivelazione d'una camera circolare con un gran libro circolare dalla costola continua, che fa il giro completo delle pareti; ma la loro testimonianza è sospetta; le loro parole, oscure. Questo libro ciclico è Dio). Mi basti, per ora, ripetere la sentenza classica: «La Biblioteca è una sfera il cui centro esatto è qualsiasi esagono, e la cui circonferenza è inaccessibile».

    A ciascuna parete di ciascun esagono corrispondono cinque scaffali; ciascuno scaffale contiene trentadue libri di formato uniforme; ciascun libro è di quattrocentodieci pagine; ciascuna pagina, di quaranta righe; ciascuna riga, di quaranta lettere di colore nero. Vi sono anche delle lettere sulla costola di ciascun libro; non, però, che indichino o prefigurino ciò che diranno le pagine. So che questa incoerenza, un tempo, parve misteriosa. Prima d'accennare alla soluzione (la cui scoperta, a prescindere dalle sue tragiche proiezioni, è forse il fatto capitale della storia) voglio rammentare alcuni assiomi.

    Primo: La Biblioteca esiste ab aeterno. Di questa verità, il cui corollario immediato è l'eternità futura del mondo, nessuna mente ragionevole può dubitare. L'uomo, questo imperfetto bibliotecario, può essere opera del caso o di demiurghi malevoli; l'universo, con la sua elegante dotazione di scaffali, di tomi enigmatici, di infaticabili scale per il viaggiatore e di latrine per il bibliotecario seduto, non può essere che l'opera di un dio. Per avvertire la distanza che c'è tra il divino e l'umano, basta paragonare questi rozzi, tremuli simboli che la mia fallibile mano sgorbia sulla copertina d'un libro, con le lettere organiche dell'interno: puntuali, delicate, nerissime, inimitabilmente simmetriche.

    Secondo: Il numero dei simboli ortografici è di venticinque. Questa constatazione permise, or sono tre secoli, di formulare una teoria generale della Biblioteca e di risolvere soddisfacentemente il problema che nessuna congettura aveva permesso di decifrare: la natura informe e caotica di quasi tutti i libri. Uno di questi, che mio padre vide in un esagono del circuito quindici novantaquattro, constava delle lettere M C V, perversamente ripetute dalla prima all'ultima riga. Un altro (molto consultato in questa zona) è un mero labirinto di lettere, ma l'ultima pagina dice Oh tempo le tue piramidi. È ormai risaputo: per una riga ragionevole, per una notizia corretta, vi sono leghe di insensate cacofonie, di farragini verbali e di incoerenze. (So d'una regione barbarica i cui bibliotecari ripudiano la superstiziosa e vana abitudine di cercare un senso nei libri, e la paragonano a quella di cercare un senso nei sogni o nelle linee caotiche della mano... Ammettono che gli inventori della scrittura imitarono i venticinque simboli naturali, ma sostengono che questa applicazione è casuale, e che i libri non significano nulla di per sé. Questa affermazione, lo vedremo, non è del tutto erronea). Per molto tempo si credette che questi libri impenetrabili corrispondessero a lingue preterite o remote. Ora, è vero che gli uomini più antichi, i primi bibliotecari, parlavano una lingua molto diversa da quella che noi parliamo oggi; è vero che poche miglia a destra la lingua è già dialettale, e novanta piani più sopra è incomprensibile. Tutto questo, lo ripeto, è vero, ma quattrocentodieci pagine di inalterabili M C V non possono corrispondere ad alcun idioma, per dialettale o rudimentale che sia. Altri insinuarono che ogni lettera poteva influire sulla seguente, e che il valore di M C V nella terza riga della pagina 71 non era lo stesso di quello che la medesima serie poteva avere in altra riga di altra pagina; ma questa vaga tesi non prosperò. Altri pensarono a una crittografia; questa ipotesi è stata universalmente accettata, ma non nel senso in cui la formularono i suoi inventori.

    Cinquecento anni fa, il capo d'un esagono superiore trovò un libro tanto confuso come gli altri, ma in cui v'erano quasi due pagine di scrittura omogenea, verosimilmente leggibile.

    Mostrò la sua scoperta a un decifratore ambulante, e questo gli disse che erano scritte in portoghese; altri gli dissero che erano scritte in yiddish. Poté infine stabilirsi, dopo ricerche che durarono quasi un secolo, che si trattava d'un dialetto samoiedo-lituano del guaraní, con inflessioni di arabo classico. Si decifrò anche il contenuto: nozioni di analisi combinatoria, illustrate con esempi di permutazioni a ripetizione illimitata. Questi esempi permisero a un bibliotecario di genio di scoprire la legge fondamentale della Biblioteca. Questo pensatore osservò che tutti i libri, per diversi che fossero, constavano di elementi eguali: lo spazio, il punto, la virgola, le ventidue lettere dell'alfabeto.

    Stabilí, inoltre, un fatto che tutti i viaggiatori hanno confermato: non vi sono, nella vasta Biblioteca, due soli libri identici. Da queste premesse incontrovertibili dedusse che la Biblioteca è totale, e che i suoi scaffali registrano tutte le possibili combinazioni dei venticinque simboli ortografici (numero, anche se vastissimo, non infinito) cioè tutto ciò ch'è dato di esprimere, in tutte le lingue. Tutto: la storia minuziosa dell'avvenire, le autobiografie degli arcangeli, il catalogo fedele della Biblioteca, migliaia e migliaia di cataloghi falsi, la dimostrazione della falsità di questi cataloghi, la dimostrazione della falsità del catalogo autentico, l'evangelo gnostico di Basilide , il commento di questo evangelo, il commento del commento di questo evangelo, il resoconto veridico della tua morte, la traduzione di ogni libro in tutte le lingue, le interpolazioni di ogni libro in tutti i libri.

    Quando si proclamò che la Biblioteca comprendeva tutti i libri, la prima impressione fu di straordinaria felicità. Tutti gli uomini si sentirono padroni di un tesoro intatto e segreto.

    Non v'era problema personale o mondiale la cui eloquente soluzione non esistesse: in un qualche esagono. L'universo era giustificato, l'universo attingeva bruscamente le dimensioni illimitate della speranza. A quel tempo si parlò molto delle Vendicazioni: libri di apologia e di profezia che giustificavano per sempre gli atti di ciascun uomo dell'universo e serbavano arcani prodigiosi per il suo futuro.

    Migliaia di ambiziosi abbandonarono il dolce esagono natale e si lanciarono su per le scale, spinti dal vano proposito di trovare la propria Vendicazione. Questi pellegrini s'accapigliavano negli stretti corridoi, profferivano oscure minacce, si strangolavano per le scale divine, scagliavano i libri ingannevoli nei pozzi senza fondo, vi morivano essi stessi, precipitativi dagli uomini di regioni remote. Molti impazzirono... Le Vendicazioni esistono (io ne ho viste due, che si riferiscono a persone da venire, e forse non immaginarie), ma quei ricercatori dimenticavano che la possibilità che un uomo trovi la sua, o qualche perfida variante della sua, è sostanzialmente zero.

    Anche si sperò, a quel tempo, nella spiegazione dei misteri fondamentali dell'umanità: l'origine della Biblioteca e del tempo. È verosimile che di questi gravi misteri possa darsi una spiegazione in parole: se il linguaggio dei filosofi non basta, la multiforme Biblioteca avrà prodotto essa stessa l'inaudito idioma necessario, e i vocabolari e la grammatica di questa lingua. Già da quattro secoli gli uomini affaticano gli esagoni... Vi sono cercatori ufficiali, inquisitori. Li ho visti nell'esercizio della loro funzione: arrivano sempre scoraggiati; parlano di scale senza un gradino, dove per poco non s'ammazzarono; parlano di scale e di gallerie con il bibliotecario; ogni tanto, prendono il libro più vicino e lo sfogliano, in cerca di parole infami. Nessuno, visibilmente, s'aspetta di trovare nulla.

    Alla speranza smodata, com'è naturale, successe una eccessiva depressione. La certezza che un qualche scaffale d'un qualche esagono celava libri preziosi e che questi libri preziosi erano inaccessibili, parve quasi intollerabile. Una setta blasfema suggerí che s'interrompessero le ricerche e che tutti gli uomini si dessero a mescolare lettere e simboli, fino a costruire, per un improbabile dono del caso, questi libri canonici. Le autorità si videro obbligate a promulgare ordinanze severe. La setta sparì, ma nella mia fanciullezza ho visto vecchi uomini che lungamente s'occultavano nelle latrine, con dischetti di metallo in un bossolo proibito, e debolmente rimediavano al divino disordine.

    Altri, per contro, credettero che l'importante fosse di sbarazzarsi delle opere inutili. Invadevano gli esagoni, esibivano credenziali non sempre false, sfogliavano stizzosamente un volume e condannavano scaffali interi: al loro furore igienico, ascetico, si deve l'insensata distruzione di milioni di libri. Il loro nome è esecrato, ma chi si dispera per i «tesori» che la frenesia di coloro distrusse, trascura due fatti evidenti. Primo: la Biblioteca è cosí enorme che ogni riduzione d'origine umana risulta infinitesima. Secondo: ogni esemplare è unico, insostituibile, ma (poiché la Biblioteca è totale) restano sempre varie centinaia di migliaia di facsimili imperfetti, cioè di opere che non differiscono che per una lettera o per una virgola.

    Contrariamente all'opinione generale, credo dunque che le conseguenze delle depredazioni commesse dai Purificatori siano state esagerate a causa dell'orrore che quei fanatici ispirarono. Li sospingeva l'idea delirante di conquistare i libri dell'Esagono Cremisi: libri di formato minore dei normali; onnipotenti, illustrati e magici. Sappiamo anche d'un'altra superstizione di quel tempo: quella dell'Uomo del Libro. In un certo scaffale d'un certo esagono (ragionarono gli uomini) deve esistere un libro che sia la chiave e il compendio perfetto di tutti gli altri: un bibliotecario l'ha letto, ed è simile a un dio. Nel linguaggio di questa zona si conservano tracce del culto di quel funzionario remoto.

    Molti peregrinarono in cerca di Lui, si spinsero invano nelle più lontane gallerie. Come localizzare il venerando esagono segreto che l'ospitava? Qualcuno propose un metodo regressivo: per localizzare il libro A, consultare previamente il libro B; per localizzare il libro B, consultare previamente il libro C; e cosi all'infInito... In avventure come queste ho prodigato e consumato i miei anni.

    Non mi sembra inverosimile che in un certo scaffale dell'universo esista un libro totale; prego gli dèi ignoti che un uomo - uno solo, e sia pure da migliaia d'anni!, - l'abbia trovato e l'abbia letto. Se l'onore e la sapienza e la felicità non sono per me, che siano per altri. Che il cielo esista, anche se il mio posto è all'inferno. Ch'io sia oltraggiato e annientato. ma che per un istante, in un essere, la Tua enorme Biblioteca si giustifichi.

    Affermano gli empi che il nonsenso è normale nella Biblioteca, e che il ragionevole (come anche l'umile e semplice coerenza) è una quasi miracolosa eccezione.

    Parlano (lo so) della “Biblioteca febbrile, i cui casuali volumi corrono il rischio incessante di mutarsi in altri, e tutto affermano, negano e confondono come una divinità in delirio”. Queste parole, che non solo denunciano il disordine, ma lo illustrano. testimoniano generalmente del pessimo gusto e della disperata ignoranza di chi le pronuncia. In realtà, la Biblioteca include tutte le strutture verbali, tutte le variazioni permesse dai venticinque simboli ortografici, ma non un solo nonsenso assoluto. Inutile osservarmi che il miglior volume dei molti esagoni che amministro s'intitola Tuono pettinato, un altro Il crampo di gesso e un altro Axaxaxas mlo.

    Queste proposizioni, a prima vista incoerenti. sono indubbiamente suscettibili d'una giustificazione crittografica o allegorica; questa giustificazione è verbale, e però, ex hypothesi, già figura nella Biblioteca. Non posso immaginare alcuna combinazione di caratteri

    dhcmrlchtdlj

    che la divina Biblioteca non abbia previsto, e che in alcuna delle sue lingue segrete non racchiuda un terribile significato. Nessuno può articolare una sillaba che non sia piena di tenerezze e di terrori; che non sia, in alcuno di quei linguaggi, il nome poderoso di un dio. Parlare è incorrere in tautologie. Questa epistola inutile e verbosa già esiste in uno dei trenta volumi dei cinque scaffali di uno degli innumerabili esagoni - e cosi pure la sua confutazione. (Un numero n di lingue possibili usa lo stesso vocabolario, in alcune, il simbolo biblioteca ammette la definizione corretta di sistema duraturo e ubiquitario di gallerie esagonali, ma biblioteca sta qui per pane, o per piramide, o per qualsiasi altra cosa, e per altre cose stanno le sette parole che la definiscono. Tu che mi leggi, sei sicuro d'intendere la mia lingua?) Lo scrivere metodico mi distrae dalla presente condizione degli uomini, cui la certezza di ciò, che tutto sta scritto, annienta o istupidisce. So di distretti in cui i giovani si prosternano dinanzi ai libri e ne baciano con barbarie le pagine, ma non sanno decifrare una sola lettera. Le epidemie, le discordie eretiche, le peregrinazioni che inevitabilmente degenerano in banditismo, hanno decimato la popolazione.

    Credo di aver già accennato ai suicidi, ogni anno più frequenti. M'inganneranno, forse, la vecchiezza e il timore, ma sospetto che la specie umana - l'unica - stia per estinguersi, e che la Biblioteca perdurerà: illuminata, solitaria, infinita, perfettamente immobile, armata di volumi preziosi, inutile, incorruttibile, segreta.

    Aggiungo: infinita. Non introduco quest'aggettivo per un'abitudine retorica; dico che non è illogico pensare che il mondo sia infinito. Chi lo giudica limitato, suppone che in qualche luogo remoto i corridoi e le scale e gli esagoni possano inconcepibilmente cessare; ciò che è assurdo. Chi lo immagina senza limiti, dimentica che è limitato il numero possibile dei libri. Io m'arrischio a insinuare questa soluzione: La Biblioteca è illimitata e periodica. Se un eterno viaggiatore la traversasse in una direzione qualsiasi, constaterebbe alla fine dei secoli che gli stessi volumi si ripetono nello stesso disordine (che, ripetuto, sarebbe un ordine: l'Ordine). Questa elegante speranza rallegra la mia solitudine.

    Posted by Sax Appeal at 10:08 AM No comments:
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Labels: Borges, internet, Libri
    Newer Posts Older Posts Home
    Subscribe to: Posts (Atom)

    Search This Blog

    Info about this blog - Legal stuff

    • Privacy e uso dei cookies
    • Disclaimer, cookies and all that jazz
    • Home

    About Me

    Sax Appeal
    View my complete profile

    My Blog List

    • Sean Carroll:Discover Blogs
      A Young Person’s 200,000-Year-Old Skull Fragment Suggests Diverse Human Populations in Ancient Spain
      15 hours ago
    • JAZZIT
      Il Fara Music Festival festeggia la sua ventesima edizione
      1 day ago
    • ruminazioni
      l'immarcescibile lista_libri, fumetti, film del 2019
      6 years ago
    • Casa Valdez Studios
      David Valdez Sextet live at the Blue Room
      6 years ago
    • BREW LITE's JAZZ TALES
      R.I.P. Roy Hargrove (1969 – 2018)
      7 years ago
    • Jazz: The Music of Unemployment
      What We've Become
      8 years ago
    • Tracce di jazz - Blog
      Who should headline the 50th Jazz Fest: Beyonce, Paul McCartney, ABBA, the Stones?
      8 years ago
    • note dissonanti
      Sul perchè dischi e musica improvvisata possono non andare d'accordo. Elogio dell'ascolto estemporaneo.
      10 years ago
    • flageolette
      Felish Cream: Perawatan Kecantikan dan Cream Pemutih Wajah
      11 years ago
    • all that jazz
      Welcome
      11 years ago
    • AccuJazz AccuBlog
      Charlie Haden Tribute on Bass Channel
      12 years ago
    • Mule Walk & Jazz Talk
      Mule Walk by James P. Johnson (1)
      13 years ago
    • Intelligent Life
      A Happy Birthday to a Most Wonderful Grandfather
      13 years ago
    • vitacongusto
      Happy 2013!
      13 years ago
    • MASSIMO MALTESE L'ARTE dell' IMPROVVISAZIONE JAZZ-
      LA SCALA BIZANTINA
      14 years ago
    • Jazz Beyond Jazz
      House Appropriations Committee to NEA: Keep Jazz Masters
      15 years ago
    • Aleaxity
      ubuntu.stackexchange.com now public!
      15 years ago
    • NPR Blogs: A Blog Supreme
      Native To NOLA: Kitchen Sink Klezmer, Young Brass Bands
      16 years ago
    • Hot House
    • Jazz from Italy

    Blog Archive

    • ▼  2019 (2)
      • ▼  October (1)
        • Frasario romanesco inglese
      • ►  June (1)
    • ►  2018 (3)
      • ►  August (1)
      • ►  May (1)
      • ►  January (1)
    • ►  2016 (9)
      • ►  December (1)
      • ►  October (2)
      • ►  September (2)
      • ►  June (1)
      • ►  May (1)
      • ►  April (1)
      • ►  February (1)
    • ►  2015 (25)
      • ►  December (1)
      • ►  November (1)
      • ►  October (2)
      • ►  September (1)
      • ►  July (2)
      • ►  June (1)
      • ►  May (2)
      • ►  April (3)
      • ►  March (5)
      • ►  February (4)
      • ►  January (3)
    • ►  2014 (39)
      • ►  December (3)
      • ►  November (1)
      • ►  October (3)
      • ►  September (2)
      • ►  August (4)
      • ►  July (2)
      • ►  June (6)
      • ►  May (5)
      • ►  April (7)
      • ►  March (2)
      • ►  February (4)
    • ►  2013 (24)
      • ►  December (4)
      • ►  October (2)
      • ►  September (4)
      • ►  July (1)
      • ►  June (2)
      • ►  May (2)
      • ►  April (2)
      • ►  March (4)
      • ►  February (2)
      • ►  January (1)
    • ►  2012 (23)
      • ►  October (3)
      • ►  September (2)
      • ►  August (1)
      • ►  July (1)
      • ►  June (2)
      • ►  May (2)
      • ►  April (4)
      • ►  March (4)
      • ►  February (2)
      • ►  January (2)
    • ►  2011 (22)
      • ►  November (1)
      • ►  October (3)
      • ►  September (4)
      • ►  August (1)
      • ►  July (4)
      • ►  June (1)
      • ►  May (1)
      • ►  April (1)
      • ►  March (5)
      • ►  February (1)
    • ►  2010 (31)
      • ►  December (5)
      • ►  November (2)
      • ►  October (5)
      • ►  September (1)
      • ►  August (1)
      • ►  June (1)
      • ►  May (2)
      • ►  April (5)
      • ►  February (6)
      • ►  January (3)
    • ►  2009 (28)
      • ►  December (4)
      • ►  November (3)
      • ►  September (3)
      • ►  May (3)
      • ►  April (5)
      • ►  March (6)
      • ►  February (1)
      • ►  January (3)
    • ►  2008 (18)
      • ►  December (3)
      • ►  November (3)
      • ►  October (2)
      • ►  September (4)
      • ►  August (5)
      • ►  July (1)