PDI^2

spigolature da budapest: final countdown

erasmus January 29, 2007 9:28 am (Save post)

Meno due settimane, the end is near, cantava frank sinatra.
O sid vicious se volete, in quella che imo è una delle cover più divertenti di sempre, anche se ammetto che take on me rifatta dai real big fish ha un posto speciale nel mio cuore.
E tanto per dirlo, ho visto un gruppo cover dei real big fish in concerto. Il mondo è piccolissimo, strano e connesso in modo molto fitto.

Il che spiega Norbert, un inglese effeminato di due metri che parla italiano e mi chiede di dove sono. Roma dico io, ma in realtà di un paese vicino. Quale, dice lui, e io glielo dico.
Cerveteri, tre millenni di storia, la nostra necropoli etrusca è patrimonio dell’umanità, abbiamo dato i natali ad uno dei sette re di roma e una volta la nostra squadra di calcio militò in C2. E nel complesso è solo un paesino con un sacco di problemi. Lo so, risponde lui, ci ho lavorato per sei mesi. Dissolvenza.

Sei mesi, sette re, sette colli. Sapete qual’è la città dei sette colli? Roma, ovvio, se siete italiani, per i portoghesi è chiaro che la città dei sette colli è lisbona.
Magari tutte le capitali hanno sette colli, chi lo sa. Per certo lisbona ha un ponte lungo 13 chilometri, o così dicono i portoghesi.
Pensate quanti cavolo sono 13 chilometri, significa che da metà non si vede ne’ una sponda ne’ l’altra. Pronto, no non mi disturbi, sono sul ponte nel mezzo del nulla, so e credo e spero che ci sia la terra di fronte e dietro di me, ma non so niente delle sponde ormai, seguo solo questa strada nella nebbia.

Deve essere una specie di fissazione portoghese, quella di perdersi sopra l’acqua.
Vasco de gama circumnavigando l’africa arrivò a 500 chilometri dal sudamerica. E poveraccio, non ci arrivò. E secondo alcune fonti fu anche il primo ad arrivare in australia, e lo hanno dimenticato. E secondo altri cristoforo colombo era portoghese.
Il coinquilino C. mi spiega anche il motivo per cui il brasile parla portoghese ed il resto del sudamerica spagnolo: i re dei rispettivi paesi si accordarono per una spartizione verticale del mondo, la parte di qua era portoghese, quella di là spagnola. Il re del portogallo però aveva una mezza idea che ci fosse qualcosa, di là, e quindi fece spostare il confine due chilometri più a ovest, beccando la punta del brasile. Astuto come una lince.
Mi spiegano anche che il portogallo è stato il primo stato europeo a definire i propri confini, e si lamentano di non aver conquistato la spagna. Sono costretto a sfuggire prima che mi dicano che “da Vinci” è un espressione in portoghese antico o che galileo era originario di coimbra.

Altro che europeismo, l’erasmus rende ipernazionalisti, ed ha particolarmente effetto sulle nazioni sfigate, come italia e portogallo. Ci attacchiamo a tutto: i portoghesi ricordano di essere stati sempre fortissimi a Giochi Senza Frontiere, noi ci bulliamo che persino uno dei vigneti tradizionali ungheresi si chiama “rizling italiano”, e che non è mai esistito un matematico o un fisico proveniente della penisola iberica, il gallese mi deride perché becchiamo sempre il cucchiaio di legno al 6 nazioni e io lo sbeffeggio dicendo che a) non è vero, b) in galles si gioca solo a rugby, se vuole lo distruggo a biliardino.

E, finalmente, ho capito perché questo cavolo di programma si chiama così. Niente a che vedere con erasmo da rotterdam, niente elogio della follia, semplicemente un acronimo “fico”, european qualcosa student mobility qualcosa.
Questo è il ventesimo anno del programma, che ora si chiama SOCRATES II, e magari sarebbe tempo di riflessioni. Io posso fare le mie: sei mesi non sono abbastanza, ed una sola volta non è abbastanza.
Ma forse il sapere che è una volta sola, e che dura poco, è qualcosa in più. Lo so che dall’altra parte c’è di nuovo lisbona, ma al momento lasciatemi pensare al ponte.

Parlavo con D. capitato qui in vacanza e che fece la sua esperienza in inghilterra. Parliamo di quanto sia diverso stare nello studentato rispetto al vivere da soli, stare sempre con gli altri studenti o mischiarci con i locali, il costo delle sigarette e le difficoltà linguistiche, mangiare poco e bere troppo.

Concludiamo che ogni erasmus è diverso, ma il tuo è sempre il più bello.

(Oppure puoi viverlo male, e in quel caso è sicuramente il più brutto.)

spigolature da budapest: gennaio, genova

personale, erasmus January 18, 2007 3:25 pm (Save post)

(l’ispirazione del titolo è gentilmente concessa da “aceto, arcobaleno” di erri de luca)

‘T was very hard to be french in new year’s day mi dice l’amico parigino quando siamo per strada, e riesco benissimo a capire il perché: portoghesi e tedeschi sembrano prediligere melodia e parole di “la mamma di zidane..”.
E tutti gioiamo nel notare come sia semplice capire l’italiano per un persona di qualsiasi nazione, se la insulti. Tra l’altro, ho appena scoperto che l’equivalente del nostro “cornuto” in portoghese è “corno” o “cornudo”, con lo stesso significato, mente in francese è “cocu”, credo ancora con significato simile. Ah, che bello essere parte della grande famiglia latina.
O volendo, che bello non fare parte della grande famiglia ugro-finnica, visto che _tutte_ le ungheresi che conosco (tranne una) mettono le corna al fidanzato.

Ora, questo non è necessariamente troppo rilevante, per una serie di motivi. Anzitutto le persone che conosco io sono quelle che orbitano nello stile di vita da rock star degli studenti di scambio. Secondariamente, non tutte le ungheresi che conosco sono fidanzate. Terzo, magari dicono che sono fidanzate ma non è vero, (la teoria prevalente al momento è che dicendo a un ragazzo “sei il mio amante” lui non rompa le scatole riguardo all’altro, e lo stesso vale per l’altro, per cui la ragazza fa quello che gli pare). Quarto, un campione di nemmeno cento persone non è rilevante su una popolazione di 10 milioni.

Ad ogni modo, l’Autore si prende la libertà di generalizzare, forte del fatto che le persone che dicono “non mi piacciono le generalizzazioni” generalmente sono stupide, e non sanno cambiare idea.
Tra l’altro l’italiano è oggetto di una serie sterminata di pregiudizi, spesso riassumibili in sintagmi semplici come “bastardo”, ma questo non vieta al resto del mondo di voler bene a noi che veniamo dal bel paese.

Io, personalmente, continuo ad odiare l’intera popolazione francese, pur continuando ad amare tutti i cugini d’oltralpe che conosco. Peraltro, _tutti_ bisticciano con i propri vicini. I finlandesi prendono in giro gli svedesi dicendo che sono finocchi (con battute pessime del genere “come finge un orgasmo uno svedese?”). i portoghesi fanno battute sugli spagnoli. I catalani fanno battute sugli spagnoli. I brasiliani prendono per il culo i portoghesi dicendo che le donne hanno i baffi e puzzano di baccalà.

Gli ungheresi odiano tutte le nazioni confinanti, per il semplice fatto che nella maggior parte dei casi, erano pezzi di ungheria. La transilvania, ad esempio era tutta in ungheria. La slovacchia era in parte ungheria. Ia polonia era in parte ungheria etc etc. I poveri discendenti di attila si sentono defraudati dei loro eroi (tutti ritengono che liszt venga dalla propria nazione), della loro storia e di un bel pezzo di geografia.
Gli unici con cui intrattengono buoni rapporti sono gli austriaci, che chiamano “cognati”.

A proposito di vicini, i miei sono per lo più anziane placide signore che parlano solo ungherese. ciononostante riusciamo ad intrattenere rapporti di vicinato cordiale, gli chiediamo zucchero e sale e un giorno ci han regalato dei bicchieri.
Ci dicono che dobbiamo metterci il cappello, che fa freddo e sennò ci ammaliamo. E appena tornato qui ne ho incontrata una sulle scale, e mi ha detto “*§ò#çç$è***\/^ùçç italia” che ho interpretato come “ah sei tornato? sei stato in italia?”. Si ci sono stato, e sono tornato il 5 gennaio, ma non lo so come si dice gennaio, provo con january. “Ah, genova?” risponde lei, e io mi interrogo sul cavolo di motivo che abbia portato questa persona a conoscere genova. Voglio dire, è una persona di un’altra generazione, nata e cresciuta dall’altra parte della cortina di ferro, e genova non è firenze o venezia.

No, le dico, roma, “Ah, roma jol jol”. Ah, roma, bene bene. Fra un mese ci torno, e sinceramente no, non va bene bene.

odio il mac (1/??)

personale, software, fastidio January 5, 2007 10:42 am (Save post)

Un giorno scriverò un post sugli scazzi che ho verso il mio mecbuc, che sono già parecchi nonostante lo possegga da meno di un anno.
In particolare oggi mi da ai nervi che thunderbird non invii messaggi ai newsgroup, ma non dia neanche errore.
Sistema non deterministico del cavolo.

Groovy 1.0, D 1.0, Perl 6, Java 7 e Ruby 1.8

java, perl6, pugs January 4, 2007 8:56 am (Save post)

Pare che questa sia stata una settimana intensa sul fronte dei linguaggi di programmazione, ed è una cosa buona.

In particolare è una cosa buona per me, visto che oggi ho tempo di scrivere questo post mentre domani me ne torno nella terra degli unni, il che significherà un probabile /away di un mese dal mondo tecnologico. Siccome voglio chiudere in bellezza vi lascio qualcosa di corposo da leggere.

Pugs & teoria dei numeri
Ma dicevo, settimana intensa sul fronte programmatorio. Anzitutto l’Autore è diventato committer di pugs, dimostrando che effettivamente il commit bit viene dato via con estrema facilità.
In particolare il suo ultimo contributo è stato il problema numero 32, implementare l’algoritmo di euclide per il minimo comune multiplo:

# Perl6 impone l'ottimizzazione delle tail call, per cui
# non abbiamo bisogno di scrivere la routine in forma iterativa.
# Ale' !
	
multi sub gcd(Int $a, Int $b){
    return $a if $b == 0;
    return gcd($b,$a % $b);
}
	
is gcd(36,63), 9, \"We should be able to find the gcd of 36 and 63\";
is gcd(63,36), 9, \".. and viceversa\";
is gcd(0,5)  , 5, '.. and that gcd(0,$x) is $x';
is gcd(0,0)  , 0, '.. even when $x is 0';


Notate la finezza per cui gcd è definito come un multimetodo, perché in teoria è possibile definire la funzione in qualsiasi anello commutativo, non solo per gli interi.

Ovviamente io so che esiste una cosa chiamata anello commutativo, ma non mi ricordo cosa sia veramente e questa nota è un semplice plagio da wikipedia.

Il che tra l’altro mi da l’occasione di far notare che la definizione di numero primo su en.wikipedia è sbagliata.
Uno (1) non è un numero primo, per definizione un numero primo è un numero positivo divisibile solo per se stesso e per 1 ma diverso da uno (o -1).
Questo perché, se usiamo questa definizione poi ci viene fuori il fantastico teorema fondamentale dell’aritmetica che è:

Ogni numero naturale diverso da 1 o è un numero primo o si può esprimere come prodotto di numeri primi. Tale rappresentazione è unica a meno dell’ordine in cui compaiono i fattori.

Il motivo di questo delirio era ovviamente la soluzione del problema 31.

Tornando a Perl6, forse l’Autore potrà raccontare ai suoi nipotini che se una subroutine dichiarata come Bool converte automaticamente un valore di ritorno undef in False è merito suo. Larry sembrava ponderoso sull’argomento, ma ci sono speranze.

Groovy 1.0
E a proposito di linguaggi con dichiarazioni di tipo opzionali, Groovy ha finalmente raggiunto la versione 1.0.
Per parte mia, ritengo che Groovy sia un linguaggino carino, mi piace un sacco che abbiano la variabile implicita “it” nei blocchi, ad esempio, che permette di scrivere

[1,2,3].each { print it}

Ma in fondo è solo un poco interessante dialetto di ruby per la JVM.
Il Lettore arguto potrebbe obiettare che ruby è solo un poco interessante dialetto del lisp o di smalltalk per unix, ma ho fiducia che i Lettori arguti non siano dei rompipalle.

D 1.0
Più interessante è invece il linguaggio D, che raggiunge la 1.0 , e mi han fatto notare che adesso c’è anche un pacchetto debian di gdc.

L’Autore invita a notare che gdc è un anagramma di gcd, e questo ovviamente non è un caso.

IMHO D è un’ottimo esempio di linguaggio di sistema moderno. Design By Contract, libreria ricca (regexp, socket, thread), strutture dati come array dinamici ed hash integrate, OOP fatta in modo sensato, supporto unicode etc..

Ma perché D prenda piede ha bisogno di un progettone open source che lo traini (server ftp/http/whatever, nuova implementazione di X11, linguaggio usato per nuke’em forever…) , e questo non verrà fuori a brevissimo tempo, temo.
Python e Ruby ci hanno messo una decina d’anni a sfondare.
E nel frattempo la concorrenza non se ne sta ferma, con il nuovo C++ in arrivo, il nuovo C# e i futuri Java, quindi imo il futuro di D non è particolarmente brillante.
Ma speriamo che mi sbagli.

Java 7
Guardiamoci in faccia, la comunità Java si è data una svegliata, hanno corretto, o provato a correggere, il linguaggio dove aveva delle falle troppo grosse (generic, autoboxing etc), hanno esteso la libreria dove ce n’era bisogno (java.util.concurrent etc), hanno cercato di abbracciare le richieste della comunità (JVM open source, invokedynamic).
E in java 7 ci saranno anche le closure, cosa che già sapeva , ma quello che non sapevo è il modo con cui esse si integreranno con le api precedenti.

In pratica, la closure viene utilizzata per costruire un’oggetto anonimo che viene poi infilato dentro l’interfaccia che già esisteva per i metodi. Ok, non si è capito, intendo dire che ad esempio una funzione startComputation(Runnable r) può essere richiamata con una closure come argomento, che verrà poi convertita automaticamente nel metodo run di un oggetto Runnable creato al volo.
Ovviamente, affinché il compilatore sia in grado di gestire correttamente la cosa è necessario che riesca a capire in che metodo mettere il blocco, quindi perché la cosa funzioni l’interfaccia deve fornire un solo metodo, come fa Runnable con run.

Per il resto è bello vedere come queste closure siano identiche ai blocchi in ruby, ad esempio non vengono segnalate nell’eccezioni come funzioni aggiuntive, il return da una closure esce dal blocco esterno ad essa invece che dalla closure, se si mettono come argomenti speciali si può usare una sintassi più carina etc..
Vabè, ma è inutile che ve ne parli io, andatevi a leggere l’intervista a neal gafter

Conclusione
Siamo al 4 gennaio, e già c’è un sacco di roba a cui pensare.
In più lawrence ha scelto erlang come LoTY, il che suggerisce che si potrebbe seguirlo.
E poi mi sono impegnato a rendermi utile con sette gruppi di persone differenti.
Ed avrei due o tre progettini da portare avanti.
E devo prendere una cavolo di laurea (”oh no, di nuovo!” [cit]) .

Ma se ne parla da febbraio, da febbraio.

feedburner site statistics

web January 3, 2007 6:04 pm (Save post)

fico, feedburner ha finalmente integrato il sistema di statistiche che aveva acquisito quest’estate, ovvero il fu’ blogbeat.
Appena attivate, sembrano ben fatte, semplici ma efficaci.

Come tradizione, la mia statistichina personale dice che il 60% dei visitatori usa firefox/mozilla, un 25% IE 6/7 ed il resto browser assortiti.
Lettori geek che non siete altro.

UPDATE:
ci sono più info su rss-world, quindi andate e leggete di là, ci son pure gli scrinsciòt :)

Blogosfere ma che combini?

web, italia, fastidio 1:31 pm (Save post)

C’è una cosa che mi da un sacco fastidio, del web italiano, ed è che di tanto in tanto saltano fuori dei comportamenti gretti e infelici che non ti aspetteresti.
Tanto più che vengono da quei settori che più dovrebbero aprirsi al moderno, a modelli nuovi di interazione con l’utente e tutta quella fuffa lì.

In questo senso, uno dei peggiori esempi credo rimanga programmazione.it, il cui form di registrazione pretende di sapere il mio indirizzo, oltre a nome, cognome, sesso, email ed oltre a richiedere, ovviamente, che acconsenta al trattamento dei miei dati personali. Bah.

Ma ancora ancora, quantomeno queste sono politiche interne, vuoi collaborare? Stai alle regole. Non concordo con le regole ma sono le loro.

Poi vai a leggere quello che capita tra phastidio e blogosfere, e ti viene da chiederti che cosa c’è di insensato in questo paese.

Non sono un giurista (per ora, sai mai che da grande.. è il 2007 un bel cambio di prospettive.. mh..) , e non mi importa se effettivamente ci sono gli estremi per procedere in un’azione legale, ma vorei attirare l’attenzione sul comportamento generale.

IMVHO, se fossi nei panni del network, la reazione a questa situazione sarebbe un “mh.. ma forse effettivamente stiamo sbagliando? valutiamo” e poi li si aprono due strade:

  • si trova (e si ammette) un problema e si cerca di affrontarlo
  • non si trova (o non si ammette) un problema e si scrive un bel post del tipo “ci dispiace perdere un collaboratore, ma evidentemente abbiamo punti di vista differenti”

In entrambi i casi, non si mette di mezzo un legale.
Per la semplice ragione che non ha alcun senso farlo, non è utile.
Per quanto i blog in questione potessero essere interessanti di certo non muovono masse economiche rilevanti, non stiamo parlando di slashdot, engadget o joystiq.

Quindi si crea un casino, si rovina il karma della nazione su web e non si ottiene nessun vantaggio.
Mi da fastidio la stupidità, porca miseria.

test feedburner

personale, web January 2, 2007 11:14 am (Save post)

se vedete strane cose in questo feed è perché sto provando il bottone monetize di feedburner, alias “sbatti della pubblicità nel feed”.
Dovrei toglierlo a breve non preoccupatevi.

YARV.gsub(/YA/): habemus nuova VM per ruby

ruby January 1, 2007 8:15 pm (Save post)

Si, l’anno comincia bene (in realtà finisce, perché il commit c’è stato ieri). Il trunk ufficiale di ruby adesso contiene il branch di koichi sasada, ovvero l’integrazione della nuova virtual machine che avremo in ruby 1.9.

Il rilascio della versione 1.9 è atteso per dicembre 2007, quindi c’è ancora un sacco di spazio per rifinire l’interprete, nel frattempo potete dare un’occhiata a dei benchmark inutili ma interessanti.

Sia chiaro, la piattaforma è ancora lontana dalla velocità del buon vecchio C, ma l’importante è che si allarghi l’ambito di quelle cose per cui è “abbastanza veloce”, e d’altronde per i compiti dove servono alte prestazioni in genere ci sono già librerie specializzate (crittografia->openssl, calcolo numerico->narray, xml->libxml etc).

E ci sono comunque alcune cose da considerare: primo, ora che yarv non è più “yet another” ma è la VM per ruby la comunità di sviluppatori si concentrerà su quella, e quindi le prospettive di miglioramenti in stabilità, prestazioni etc.. sono molto interessanti, basta pensare al nuovo sistema di GC che matz dovrebbe ri-sperimentare quest’anno.
Secondo, AFAIR yarv trae molto vantaggio dalle cpu con parecchi registri, ricordo che ai vecchi tempi un incremento prestazionale di 4 volte rispetto a ruby 1.8 su pentium corrispondeva ad uno di 20 volte su x86-64, e il mondo va in quella direzione, forse.

Terzo, ruby è diventato un linguaggio, più che un interprete, con diverse implementazioni, alcune della quali usabili (jruby) ed altre delle quali potenzialmente molto interessanti (rubinius, smalltalk.rb, cardinal). Chissà che ne verrà fuori da qui a qualche anno :)

Get free blog up and running in minutes with Blogsome
Theme designed by Janis Joseph