Archive for giugno 2008

h1

Livelock

giugno 21, 2008

Luca completely got the point. The problem is livelock.

You KNOW you have something to do, so you are stuck with your laptop hoping that, somehow, the work will be accomplished. Then you try to cherry-pick the highest priority task, but no one has priority high enough to trigger your will to start working on it, no matter how many they are. Then you wait for something, you don’t know what, it could be an email, a chat, telling “you do this NOW!”; almost all your co-workers are nine timezones far away from you so you know it is not going to happen; but you keep switching the windows, you read the RSSs, click on “Get Mail”, read the online newspapers, click on “Get Mail”, and so on and so on.

With a Mac it’s even worse: at your fingertips you have its whole expose-spaces-dashboard-genie-shininess, with active corners and keybindings that make you faster than a pianist playing Bach. So waiting for a deus ex machina you play with your windows, make them turn around, become small small small and then big big big, open and close them, hide them in the Dock, go faster and faster and faster until motion sickness mandates you to stop.

And then you do the only thing left: you write something of zero entropy in the blog. This will be the biggest accomplishment of the day.

Annunci
h1

Caffeine

giugno 20, 2008

\vdash Too much caffeine \rightarrow Can’t sleep \rightarrow Wake up sleepy \rightarrow More caffeine to stay awake \rightarrow Can’t sleep \rightarrow \cdots

h1

Ok, blog personale, ma quanto?

giugno 20, 2008

[…] di quelle cose che le ragazze scrivevano nel diario segreto, quello col lucchetto, prima che inventassero i blog…

Maurizio

Poco alla volta mi tornano in mente tutte le domande sui blog che mi sono posto negli ultimi anni, e che erano finite nel dimenticatoio. Mi riferisco ai blog personali.

Il dubbio fondamentale è: potrò pentirmi in futuro di qualcosa che ho pubblicato sul web?

A WSDM 2008, Hector Garcia-Molina (per intenderci, il PhD advisor dei fondatori di Google) nel suo keynote speech ha parlato della storia di Internet. Dopo aver gelato il pubblico mostrando l’immagine di un torero incornato da un toro (e se la sua intenzione era di fare una battuta non l’ha capita nessuno) ha raccontato un aneddoto che ha riportato l’umore della sala a livelli accettabili: trova suo figlio su Facebook, e incuriosito aggiunge il suo profilo. Nel leggerlo, scopre con grande sorpresa che ha due hobby: “smoking” e “drinking” (risata del pubblico).

Anche se immagino che la storia fosse volutamente colorita, è piuttosto emblematica. Quando scriviamo abbiamo di fronte uno schermo, non il lettore. Informazioni che può essere divertente esternare ad un lettore (ad esempio, un amico) possono essere compromettenti/imbarazzanti quando è qualcun altro a leggerle (ad esempio, il padre). E nel momento di scrivere se pensiamo all’interlocutore pensiamo all’amico (chi, idealmente, vorremmo fosse raggiunto dal messaggio).

E riprendendo la citazione in apertura (di un mio amico e collega), la situazione può essere persino peggiore per chi ha scoperto il web come qualcosa di preconfezionato, con i vari Spaces, MySpace, WordPress, senza rendersi conto di cosa c’è intorno, come ad esempio i motori di ricerca, e di come è nato e si è evoluto. Me ne sono accorto leggendo blog di ragazzi/ragazze sparsi per la rete. Probabilmente hanno interpretato il mezzo come una comunicazione esclusiva con un gruppo selezionato di persone, i detentori dell’URL. E quindi ne hanno fatto il loro diario segreto, scrivendo cose così private che probabilmente si vergognerebbero a dire a voce; e parlando di persone dando per scontato che queste non leggeranno.

A voler essere neo-positivisti, dobbiamo ringraziare queste persone: stanno insegnando alla macchina che “xke” vuol dire “perché”.

E io, che vengo classificato come geek e uso internet da prima che esistesse il PHP, sono ben a conoscenza di questi problemi e quindi non mi tangono? Sembra proprio di no…

Ci può consolare il fatto che tanto i post e le pagine si possono editare/cancellare? No. Il web non dimentica. Due leggi famose ci sono contro: legge di Murphy e legge di Moore.

Legge di Murphy (corollario): Più compromettente è una pagina, più crawler la scaricheranno.
Legge di Moore (versione storage): la crescita della capacità di memorizzazione (orizzontale) è esponenziale. Il che vuol dire che assumendo che la generazione di contenuto sia anch’essa esponenziale, ma con base più piccola, ogni tot anni possiamo backuppare tutta la storia passata e ci resta ancora metà dello spazio. Inoltre lo storage è distribuito. Niente più biblioteche di Alessandria. Potrebbe casomai succedere che i programmi di domani non riescano più a leggere i formati di oggi? (vi è mai capitato di dover aprire un file scritto con WordPerfect su un floppy da 5″ 1/4?) Non vi preoccupate, si stanno diffondendo i formati aperti.

Se quanto sto scrivendo qui è praticamente eterno, mi capiterà di rileggerlo tra 30-40 anni? Di tanto in tanto ritrovo i messaggi che scrivevo quando avevo 13-14 anni nei newsgroup, e pur ricordandoli non mi riconosco (e sorprendentemente il mio inglese era migliore di adesso…). Spero che WordPress funzioni ancora nel 2040, potrò rispondermi in un commento.

Ci sono dei futuri lettori così lontani nello spazio e nel tempo che ancora non riesco ad immaginarli? Se scrivo che non mi va di studiare, e racconto di quando copiavo i compiti, con che coerenza potrò rimproverare un mio eventuale figlio che sia riuscito a trovare il “vecchio blog del babbo”?

Immagino che filosofi e sociologi stiano studiando anche questi interrogativi (altrimenti che ci stanno a fare?). Dear lazyweb, qualche riferimento?

h1

Just discovered a “useful” WordPress feature…

giugno 20, 2008

… when you write a post, the pingback is automatically sent to all the links. This can lead to quite unexpected consequences… 

h1

Aggiornamento sulla tesi

giugno 19, 2008

Passata la prima settimana qui a Berkeley, aggiornamento sulla situazione.

Non ho ancora avuto occasione di uscire una sera, ed apprezzare la vita notturna di Berlekey (suppongo piuttosto povera in questo periodo, visto che molti studenti sono tornati a casa). La mattina alla sede di Oakland di Ask.com (bell’ufficio, non c’è che dire), e il pomeriggio in dipartimento (no, qui non c’è l’aula studenti, spiacente). Insomma, non molto diverso da Pisa, se escludiamo i 15 minuti di treno per Oakland.

Mi rimane il tardo pomeriggio, in cui vagabondo per campus e dintorni, cercando un posto nuovo dove cenare. Berkeley è un posto piacevole per passeggiare.

Finalmente la tesi ha preso una direzione positiva. O per lo meno, ha preso una direzione. Dopo le chiacchierate preliminari, e un po’ di sbattimento per preparazione iniziale su pseudocasualità, combinatoria additiva, teoremi di densità, lemmi di Szemeredi, il mio co-relatore se ne esce con un nuovo argomento che, ovviamente, non c’entra niente con quanto si era detto prima.

L’altro argomento era certamente di più ampio respiro, e probabilmente sarebbe anche piaciuto di più ai matematici puri che dovranno giudicarmi in commissione di laurea. Però non era chiaro cosa dovessi fare, e sicuramente non avrei cavato un ragno dal buco, o comunque non in tempi ragionevoli. Qui la direzione invece è stata precisa dall’inizio: implementare l’algoritmo, fare esperimenti, vedere se c’è qualcosa da dire sull’analisi teorica. Implementare? Non me lo sono fatto chiedere due volte 🙂 Ora chi lo dice a mia madre che non tratto più il teorema di Green-Tao? 

Risultato, un’implementazione è pronta (insieme a quelle di un altro paio di algoritmi, di cui uno è lo stato dell’arte) e i risultati preliminari sono promettenti. Non è la prima volta che il Python mi salva la vita. Mentre sono nella Bay Area considererò un pellegrinaggio da Guido Van Rossum.

Nel cercare librerie per risparmiarmi lavoro nell’implementazione sono rimasto esterrefatto dall’ecosistema di librerie scientifiche/matematiche che si è formato attorno a Python. Sembra che abbia catturato l’entusiasmo dei ricercatori (e come biasimarli?), e grazie alla semplicità di modularizzazione e interoperabilità ne sia uscito un ambiente completo. Come Matlab, ma su un vero linguaggio di programmazione. Librerie che meritano di essere menzionate:

  • SciPy: Semplicemente impressionante. Algebra lineare numerica, funzioni statistiche, e milioni di altre cose che non ho ancora avuto il tempo di guardare. Il tutto con una interfaccia pythonica. Insieme a MatPlotLib per i grafici rende Matlab solo un brutto ricordo.
  • NetworkX: Libreria di grafi che implementa qualsiasi algoritmo vi venga in mente, e qualsiasi costruzione (grafi particolari, casuali, prodotti…). Si interfaccia con SciPy (per esempio per la costruzione del laplaciano). Programmativamente non è un granchè (il modulo principale è un blobbone di funzioni, il grafo è un dizionario di dizionari), ma fa onestamente il suo lavoro.
  • CVXOPT: Ottimizzazione convessa, l’ho usato per risolvere il primale-duale di Semidefinite Programming per l’algoritmo di Goemans-Williamson. Non ci ho guardato a fondo, ma funziona ed è abbastanza veloce, considerando che gli algoritmi sono implementati in Python (ma usando le primitive BLAS. Si può interfacciare alla libreria DSDP ma devo impostare l’SDP in un modo diverso, ci sto lavorando). Secondo l’articolo del ’95 ci volevano intorno ai 4000 secondi per risolvere un grafo di 200 nodi. Con la mia pessima implementazione ci mette intorno ai 5 secondi sul mio MacBook Pro. Sembra che sia hardware che algoritmi siano migliorati… 🙂

Tornando alla tesi, qui ho conosciuto un paio di dottorandi che lavorano su problemi simili e si sono anche loro interessati al nuovo algoritmo. Chiacchierando con loro per un paio d’ore alla lavagna ho imparato di più che negli ultimi mesi (ma lo sapevate che gli autovettori del grafo di Cayley sono i caratteri della rappresentazione, e quindi nel caso abeliano la base di Fourier? La teoria delle rappresentazioni SERVE A QUALCOSA!)

Se fossi rimasto a Pisa probabilmente in questo momento sarei ancora a scambiare email (con round-trip medio di un giorno, visto il fuso orario) per capire l’argomento della tesi…

h1

MMDS 2008

giugno 19, 2008

I just discovered that on 25-28 June Stanford University will host MMDS 2008 (Workshop on Algorithms for Modern Massive Data Sets), and I’ll still be in California around these dates! Besides, I am still in time for registration.

The schedule looks very promising, some of the speakers are the maximum authorities of their respective fields, and I’ve read many of their papers. Hope this is a good chance to ask them some questions, which probably will rule me out from a possible career in their universities 🙂

Looking forward to be there!

h1

Language problem: workarounded

giugno 15, 2008

I found out that some posts I want to write are so trivial tht I can write them in english. This way both italians and non-italians can read them, and they will look more witty and profound to italians. Posts in italian will be categorized as “italian”, english ones as “english”, so that italian-impaired readers can filter out the garbage. Clever trick, isn’t it?

Important: My written english is awful (not as awful as my spoken english…), please feel free to comment about any possible stylistic/syntactic/grammatical error, above all if they are “italianisms”. Thanks.