Sunday, December 30, 2012

X

27 Ottobre 2012, sono al banchetto del Roma2Lug a raccogliere i nomi dei partecipanti al Linux Day. Arriva un partecipante, di cui purtroppo ancora non ricordo/riscopro il nome, con circa 4 copie di un libro: X di Cory Doctorow. Dice che possiamo venderli a offerta libera e incassare (in quanto LUG) il 100% del ricavato. Dice che dopo averlo letto capitò ad una bancarella dove ne vendevano varie copie e ne comprò tante con l'idea di diffondere il libro. Inconfutabile dichiarazione di idealistica vocazione apostolica.
Mi faccio raccontare la trama. Sembra interessante. Naturalmente una copia resterà al LUG.
Cerco l'autore su Wapedia: Cory Doctorow, "He is an activist in favour of liberalising copyright laws and a proponent of the Creative Commons organization, using some of their licenses for his books."
Ok, già ho deciso che dovrò leggerlo.
Qualche giorno dopo inizio. Mi prende. Non mi stacco. Lo finisco.
Accidenti, la sensazione del "ma perché non me l'hanno detto prima?!"
È il libro che avrei voluto avere in mano da adolescente. Hackeraggio, reverse engineering dell'X-Box, Paranoid Linux, crittografia... tante belle cose da sapere.
Da tempo mi ero proposto di scrivere una recensione carina del libro, e finalmente l'ho fatto. Ho anche ordinato su Amazon una copia tutta mia, a prezzo stracciato, e un altro libro dell'autore: Infoguerra.
La letteratura che vale, questa: quella che diffonde idee, che lancia nel cervello del lettore la bomba delle vere problematiche attuali, che ti obbliga a sapere quello che dovresti sapere.

Presentation

Ho passato la serata a googlare come far comparire un timer all'angolo dello schermo mentre si visualizza una presentazione, incredulo che finora nessuno si fosse curato di provvedere un modo user-friendly.
All'inizio trovavo soltanto soluzioni che richiedevano Acrobat, ma dopo una valanga di query ho trovato il gioiello. Ancora, non riesco a credere di averlo dovuto cercare tanto.

Si tratta di Impressive, che oltre a permettermi di perseguire il sopracitato obiettivo (vedere opzione -d nella documentazione), ha un paio di altre features che mi hanno davvero commosso: 
  • T key - Activate or deactivate the time display at the upper-right corner of the screen. If the timer is activated while the very first page of the presentation is shown, it activates "time tracking" mode. In this mode, a report of all pages visited with their display duration, enter and leave times will be written to standard output. This can be very useful when preparing presentations.
Questo significa che a voler fare una prova dell'esposizione, uno può lanciarla col comando
impressive PRESENTAZIONE.pdf | tee -a TEMPI_SLIDES.txt
e uscendo dalla presentazione si ritrova nel file "TEMPI_SLIDES.txt" una bella tabella di quanto tempo ha speso su ogni singola slide.
  • Return key or Enter key - Toggle spotlight mode. In this mode, the page is darkened in the same way as if highlight boxes are present, but instead of (or in addition to) the boxes, a circular "spotlight" will be shown around the mouse cursor position, following every motion of the mouse cursor.
Davvero un ottima cosa, se si vuole ad esempio evidenziare un dettaglio particolare in una formula; estremamente più elegante che usare un puntatore laser, specialmente se si usa il tablet come touchpad remoto così da non essere vincolati a stare accanto il portatile!

Molte altre chicche nella documentazione del programma :)

(small edit)

(Ho rimosso da alcuni precedenti post l'embedding delle presentazioni/pdf che avevo postato, perché veniva formattato in maniera inutilmente fastidiosa: ho lasciato il link al file su Google Drive.)

Thursday, December 20, 2012

ASD2: Seconda esercitazione

Le slides della mia seconda esercitazione del corso ASD2 tenuta martedì scorso: link su G Drive.

Thursday, December 13, 2012

ASD2: Prima esercitazione

Oggi la mia prima giornata come esercitatore di un corso universitario. Ecco le slides dei due esercizi che ho proposto e discusso: link su G Drive.

Saturday, December 8, 2012

Uomo avvisato...

Unicredit è la banca che uso, perché ha un ottima Genius Card, è abbastanza paranoica da bloccarmi la carta dicendomi che è stato rilevato un virus sul mio pc Asus Ubuntu Certified, ha un ottima app per Android e trovi sue filiali in ogni angolo. A parte questo, tempo fa ho mandato una mail al rappresentante che mi ha fornito la Genius Card, lasciandomi con cortesia il suo biglietto da visita, ma sembra che quello che gli hp detto non l'ha toccato.
Il fatto è questo: se sul loro sito sbagli tre volte la password  per entrare nell'area clienti, ti bloccano l'account. A quel punto devi andare in una filiale o telefonare per fartela sbloccare. Confrontandomi con altri utenti ho notato che gli username sono incrementali, cioè con molta creatività gli utenti sono numerati tipo 01, 02, 03 etc...
Cosa potrebbe fare un malintenzionato con un minimo di fantasia? Da una rete anonima (vedi Tor), magari al comando di una botnet da quattro soldi, potrebbe fare uno scriptino che da vari ip inserisce l'user id di un utente (che come detto, magari sono addirittura assegnati in ordine... per cui se x è un utente, anche x+1 è un utente, e così via, senza rischio di perdere tempo a fare tentativi a vuoto), e inserisce un po' di volte una password a cavolo... nel giro di pochi secondi, tanti utenti si ritroverebbero l'account bloccato... chissà se sarebbero così tempestivi, quelli di Unicredit, da far andare giù il loro sito  prima che passi qualche minuto e gli utenti bloccati siano davvero tanti. In ogni caso, far andare offline il proprio sito non è una cosa carina da parte di una banca agli occhi dei propri utenti... non ispira certo molta fiducia. D'altronde, non facendolo, non è che poi potrebbero riattivare in blocco tutti quegli account... il malintenzionato in questione potrebbe approfittarsene in qualche modo...

Saturday, November 10, 2012

Lemmando

Due eventi sono indipendenti sse (se e solo se, conditio sine qua non) lo sono i loro complementari.
Molto intuitivo. Dimostrarlo coi conti non mi è venuto altrettanto immediato.
Assumendo $P(A|B)=P(A)$ abbiamo $$P({ A }^{ c }|{ B }^{ c })=\frac { P({ A }^{ c }\cap { B }^{ c }) }{ P({ B }^{ c }) } =\frac { 1-P({ A }^{  }\cup { B }^{  }) }{ P({ B }^{ c }) } =\\ =\frac { 1-P({ A })-P(B)+P({ A }^{  }\cap { B }^{  }) }{ P({ B }^{ c }) } =\frac { P({ B }^{ c })-P({ A })+P(A)P({ B }^{  }) }{ P({ B }^{ c }) }= \\ =1-\frac { P({ A })(1-P({ B }^{  })) }{ P({ B }^{ c }) } =P({ A }^{ c })$$

Sunday, November 4, 2012

Le Linux Day e la probabilità di ragionare

Un mese, tanta voglia di pensiero critico e rivoluzioni copernicane che mettano al centro un sistema tanto non inerziale che le forze fittizie possano essere il desiderio e il sogno.
Scherzo, questo non è un blog di letteratura.
Questo mese ho:

  • cercato di iniziare decentemente la tesi, con infinite insoddisfazioni verso la mia inefficienza e finendo col passare gli ultimi 4 giorni ( che in teoria erano una cartuccera di tempo per auspicare degni progressi), in vacanza;
  • rimandato infamamente il progetto di ML;
  • lavorato tanto tempo in biblioteca, quando la priorità dovrebbe essere evitare a tutti i costi di finire col dover scrivere i due punti precedenti;
  • fatto la mia picciola parte per il Linux Day: http://lug.uniroma2.it/2012/11/03/linuxday2012-ricordi-accanto-al-focolare/;
Nell'immediato futuro mi propongo:
  • di essere già a letto da almeno due ore a quest'ora;
  • di dare un sacco di ripetizioni per mettere da parte soldi;
  • di leggere quel che devo leggere (alcuni testi che dovrebbero fornirmi conoscenze strategiche) e far si che il mio relatore non si penta d'esser tale;
  • di fare il progetto di ML per diventare agile nel fare statistica.. 
Dopo quest'estroversione pragmatista passo alla riflessione del giorno.
A tutti piace conoscere e a nessuno piace studiare. 
Perché è così difficile studiare? 

In teoria è molto meglio starsene comodamente poltrendo in scrivania facendosi viaggi nel mondo delle idee che andare a spaccare legna. Eppure poca gente studia. È sgradevole? No. Ma pare che sia faticoso. 
Invece di studiare scegliamo di impiegare il nostro tempo col fare altro. Una parte di te è sicuramente d'accordo che non sarebbe una cattiva idea studiare per molte ore al giorno, eppure non lo fai. Qual è la parte di te che ti porta a non farlo? Una parte che vuole fare altro... che altro? 
Freud un po' di tempo fa ha coniato il "Principio del Piacere". Invece di studiare ci ritroviamo a fare cose che ci danno più piacere. La nostra vita è sproporzionatamente più dominata dal PP che dal PR (Principio della Ragione). Questo appare abbastanza evidente.
In un racconto fantascientifico che non ho ancora finito di scrivere (e non potete rubarmi l'idea, santa CC in alto a sinistra), viene trovato il modo di "spostare" la libido umana su un oggetto a piacimento (gioco di parole involontario), in pratica di pervertirsi a comando; nella pratica, per dirne una, la tempesta ormonale degli individui in piena pubertà viene artificialmente deviata verso lo studio accademico, sicché gli adolescenti si eccitano letteralmente in attività come lo studio, in modo propriamente sessuale; vi lascio immaginare l'umanità illuminata che ne faccio conseguire nel racconto.
Il problema, come pare potersi verificare nella pratica, è farsi piacere le cose. Se una cosa ti piace la fai, se una cosa non ti piace non puoi farla per troppo tempo, specialmente se la cosa ti richiede un certo animo; ad esempio un minatore che rischia di morir di fame può pure di mala voglia spaccarsi la schiena per anni in miniera, ma un presentatore televisivo che odia fare il presentatore televisivo non riuscirà a fare il suo lavoro al di sopra di un certo livello, per cui non appena è esatto un certo standard è bocciato. 
Non puoi studiare se non ti va. Puoi forzarti a farlo per molto tempo, ma non arrivi a livelli di eccellenza, a meno che non sei un masochista che gode a costringersi in cose che odia, ma ovviamente si ritorna in maniera abbastanza diretta a confermare che è tutta una questione di PP.

Il PP è la distrazione per antonomasia. Concentrarsi è spegnere il PP. Più in generale passare dallo stadio di bambino a quello di adulto prevede la capacità di procrastinare il soddisfacimento, in altre parole la capacità di dominare il PP; è una meta che può essere raggiunta nel momento in cui la tua volontà diventa un imperativo biologico, ovverosia quando te in quanto organismo senti che il tuo volere razionale, i.e. il prodotto della tua corteccia cerebrale, ha un alto valore nel garantirti il futuro piacere.

Studiare alla fine è gran facile. Prendi il libro, ti siedi in scrivania, lo apri e cominci a leggere.
Se poi cominci a riflettere sul fatto che sei schiavo di ciò che le tue passate esperienze (nelle concatenate interpretazioni con cui via via hai vissuto ciascuna di esse), ti obbligano a sentire più o meno piacevole... già così il fatto di studiare diventa una piccola e sottilmente piacevole affermazione di libertà contro il proprio destino biologico.

Thursday, October 4, 2012

Una base infinita per i razionali positivi

Problema: dimostrare o confutare che ogni $q\in \mathbb{Q}^+$ può essere scritto come somma di numeri della forma $\frac{1}{n}$ (con $n \in \mathbb{N}$) distinti (i.e. ciascuno preso una sola volta).

Lo riformulo a parole mie:
Dato $S=\{1,\frac{1}{2},\frac{1}{3},\frac{1}{4},...\}$, dimostra o confuta che per ogni $q\in \mathbb{Q}^+$ esiste un sottoinsieme finito di $S$ la somma dei cui elementi è uguale a $q$.

Il prof. Tauraso ha dato una dimostrazione a lezione che non ho ben seguito perché ero impegnato a pensare a un diverso approccio. A fine lezione mi ha suggerito che un metodo alternativo consiste nell'usare l'identità $\frac{1}{n}=\frac{1}{n+1}+\frac{1}{n(n+1)}$, avendo dunque cura di dimostrare che iterare un processo di "riscrittura" del numero razionale dato attraverso tale identità costituisce un processo finito.

Provando a buttar giù la mia presunta soluzione citata al post precedente, mi sono accorto dell'enorme epic fail che c'era dietro...
At least, I tried.

Tuesday, October 2, 2012

Step by step, vita i(n)tera(t)tiva

Durante questo mese ho accumulato molti spunti per vari post. Alcuni li iniziai pure a scrivere, ma non crebbero oltre il livello di bozza. Ho un amico che ultimamente mi ha definito più di una volta "ecologico": sono uno che risparmia, dal cibo al resto. Mi piacerebbe fosse vero, e in un certo senso è forse uno dei pochi vantaggi dell'essere nell'inflazionata, italianissima, classe dei procrastinatori. Il lofacciodopo ha il vantaggio di scremare il non essenziale, se lo si accompagna con decenti e potenti sensi di colpa.
Sul finir del mese mi ritrovo, grazie alla trafilata dei tre orali di ieri mattina, a tre esami dal chiudere il piano di studi. Un gran successo se non fossi me, cioè chi si era proposto di effettuare suddetta chiusura in tempi assai più brevi. 
Come mio insolito, non posto nulla del materiale del corso. Bisogna, prima o poi, prendere atto dell'esistenza di Google (cfr. l'insulsa quantità di studio mnemonico che il sistema d'istruzione italiano continua a propinare). Le dispense del Prof. Gianluca Rossi, per lasciare comunque un commento, non sono male, e gli esercizi fanno pensare.

Quest'estate, pur in pigrizia accademica, penso di aver avuto qualche piccola illuminazione sul numero 42, e qualche altra continua ad arrivare. A parte scherzi, tra le cose ho elucubrato su quanto sintetizzato in un recente post di uno dei miei blogger preferiti:
"per darsi una risposta bisogna prima essere disposti a farsi la domanda"

Mentre mi tengo la rarità di aver iniziato un blog di matematica senza quasi mai postare una formula, mi ripropongo a seguire di rendere più utile a me stesso l'attività di blogger cercando di scrivere in decente inglese. Nel mentre l'università è ricominciata, e con essa il bel corso di LAM. Nel prossimo post esporrò la mia soluzione a uno dei problemi presentati nella prima lezione.

Wednesday, September 5, 2012

POINTING OUT

Software and cathedrals are much the same 
– first we build them, then we pray.

I famigerati puntatori del linguaggio C, spiegati decentemente, non sono poi questo gran arcano. Con
int n 
dichiariamo una "scatola" che conterrà un intero e si chiamerà n, mentre con
int *n
dichiariamo una scatola che conterrà un intero e si chiamerà *n.
Stessa cosa dunque, ma

  • nel primo caso con n il computer intende il contenuto della scatola
  • nel secondo caso il contenuto per lui si chiamerà *n mentre se scriveremo solo n ci restituirà l'etichetta dello scatolone, cioè una stringa che corrisponde all'indirizzo di memoria fisico del computer dove il dato è registrato (vedere come è fatta la memoria di un pc dal punto di vista hardware).


Prima di arrivare a capire decentemente i puntatori nel modo che abbiamo tradotto in scatoloni e etichette, mi restava oscuro il fatto che l'asterisco quando dichiaravamo un puntatore assurgeva a indicatore del fatto che n avrebbe "puntato" un indirizzo di memoria, mentre nel restante testo del programma avrebbe funto da "operatore di dereferenziazione", cioè avrebbe indicato il "contenuto della scatola";
in altre parole i prof scrivevano
int *n
e dicevano "sto dichiarando un puntatore di tipo int", dunque io pensavo "qui '*' indica che n è un puntatore, cioè un indirizzo di memoria", mentre poi nel testo scrivevano
*n=1
e dicevano "ora nella memoria puntata dall'indirizzo indicato da n, stiamo registrando il valore 1", dunque io pensavo "qui '*' mi dice che sto andando a scrivere all'indirizzo n e non dentro n".
Dunque, mi pareva che al momento dell'inizializzazione l'asterisco significasse "è un puntatore" mentre in seguito volesse dire "è l'indirizzo del puntatore", ovvero due cose praticamente opposte...

L'errore derivava appunto dal fraintendimento riguardo che cosa volesse dire "dichiarare un puntatore".
Mentre inizializzare una variabile, per esempio facendo
int n
significa dire come dovranno essere letti e scritti i bit in un certo indirizzo di memoria (ad esempio il tipo unsigned int è un intero senza il segno, mentre int può essere negativo, dunque quest'ultimo a differenza del primo avrà un bit specificatamente dedicato a memorizzare se è positivo o negativo), ed n sarà associato al contenuto dell'indirizzo di memoria, cioè sarà il dato stesso;
inizializzare un puntatore invece, ad esempio facendo
int *n
significa che la lettera n designerà l'indirizzo stesso di memoria, e non il contenuto, e il tipo che precede l'asterisco non sarà riferito propriamente a n, ma a come dovranno essere scritti e letti i bit all'indirizzo n.
In parole povere, è sbagliato dire che si inizializza un puntatore (come dicevano i prof mandandomi in pappa), perché o si inizializza una variabile oppure si inizializza IL CONTENUTO ALL'INDIRIZZO DATO DAL PUNTATORE.

Friday, August 10, 2012

Confessionale intellettuale

Rieccomi genuflesso innanzi alle mie colpe.
Stanotte ho riscosso consolidate consuetudini. 
Sempre grazie al principio einsteiniano di correttezza: l'approvazione di vostra nonna (che mi sono permesso di generalizzare agli amici, per poi ristringermi a quelli non ottusi).

Il gioco esposto era il classico Tutti i cavalli sono dello stesso colore

Ora, a parte l'errore logico dello pseudoparadosso, capii percepii quanto l'amico trovava innaturale il seguente passaggio:
 We wish to prove that they are all the same color. Suppose that we had a proof that all sets of four horses were the same color. If that were true, we could prove that all five horses are the same color by removing a horse to leave a group of four horses.
L'obiezione plausibile per i non matematici (e logici) è: se io ho cinque cavalli, non è che togliendone uno poi quelli che rimangono possono cambiare colore. Detto così, non ho parafrasato alla meglio la stranezza che si evidenzia qualora ci si rappresenta il problema. Ma penso si capisca dove sia il punto.

Naturalmente, mi sono sentito proustianamente sprofondare nel ricordo del primo mese di università, quando la dimostrazione, o meglio il dimostrare, mi appariva cosa a dir poco artificiosa e forzata.


Ritengo che il punto appena additato della citata dimostrazione costituisca un ottimo strumento per fornire una spiegazione di che cosa sia il pensiero astratto. Consideriamo infatti lo stesso problema cambiando le parole.


Voglio dimostrare che tutti i numeri hanno la stessa proprietà che chiamo culore (quindi in matematichese, ho una funzione che potremmo supporre essere $cul:\mathbb{N}\rightarrow\mathbb{R}$, e voglio dimostrare che assume lo stesso valore su tutti i numeri naturali)

Se prendo l'$1$, questo avrà un certo culore.
Supponiamo che presi $n$ numeri, questi siano dello stesso culore.
Qui faccio un'osservazione che apparirà sicuramente non richiesta per il matematico o il logico, ma che a mio avviso può gettare nuova luce sulla sensazione di incoerenza che sentii comprensibile nel mio amico. Osserviamo, dunque, che non ho nessun modo, finora, di stabilire quale sia il culore di un numero; non posso prendere $k$ numeri e dire "questo è di tal colore, questo è di quest'altro", perché non ho ipotizzato, né tanto meno è un assioma, di poterlo fare; ho invece ipotizzato che, se ne ho $n$, allora sono necessariamente dello stesso colore. 
Presi dunque $n+1$ numeri, posso proporre il giochetto di cui lo pseudoparadosso. 

A mio avviso, se per la prima volta l'avessi raccontato così, in questi termini, non sarebbe emerso lo stesso problema. Lo penso perché, appunto, il problema è che proposto in termini concreti (cavalli, gatti o polli di un certo colore), la mente non abituata a astrarre, si riempie abusivamente di un sacco di assunti che fanno parte del significato ordinario delle parole usate (esempio: presi $n$ cavalli io li vedo e quindi so già di che colore sono... intuizioni di tale lega). 


Logica invece significa essenzialmente assunti e regole di inferenza. E nient'altro. Assolutamente nient'altro. Bisogna avere in testa esclusivamente quanto si è dichiarato ritenere vero, altrimenti è arte, psicologia, teologia, che ne so, ma non logica. 


Astrarre è un'operazione della quale si può in primis rendere il sapore dicendo che il senso è un po' quello di "spogliare". Stabilisci cosa vale e il resto non esiste più. Per esempio, nell'induzione, $n$ è un numero, ma non ha senso chiedere quale. Rappresenta ciascun numero. 


Salta spesso alla mente, quando si arriva a fare discorsi simili sulla Matematica e la Logica, la celebre affermazione di Von Neumann: 

La Matematica non la si capisce: ci si abitua ad essa. 
Nella perplessità ricevuta in risposta al quesito, dunque, ritengo che giocasse un cattivo ruolo il fatto che la mente del mio interlocutore contestualizzasse il problema anziché con-centrarsi su di esso. Ad esempio, l'obiezione di cui sopra ha a che fare con un prima  e un dopo ma la Logica (tranne quelle logiche appunto temporali), un prima e un dopo non ce l'ha, quello fa parte del processo umano del creare o spiegare la dimostrazione, ma essa è il nero su bianco che sta lì sul foglio dove i passaggi si susseguono simultaneamente.

Wednesday, August 8, 2012

IMO without opinion

Un po' di giorni fa mi sono gustato questo bel documentario sulle IMO.
Ho particolarmente apprezzato come Daniel alla fine, dopo essersi guadagnato le credenziali per non far la figura del rosicone, gioisca del potersi permettere di dire che una medaglia alle IMO non è poi così essenziale per essere un vero Matematico.

Tuesday, August 7, 2012

Confessionale accademico

Ci sono alcune concise riflessioni da fare. A fronte della settimana di riposo che mi ero proposto di prendermi, ho raddoppiato, e ora è il momento di tornare a rimboccarsi le maniche. 

La mia attuale visione di me in quanto studente, maturata finora, segue qui. 
Ho una buona capacità di visualizzazione e, in un certo senso, una buona fantasia, frutto di un disciplinato addestramento alla distrazione sistematica durante la mia vita scolastica nell'età dell'obbligo, o forse per qualche predisposizione neurologica. Così, pigro e distratto, passando le ore di lezione a pensare ad altro, al top dello spreco e dell'inefficienza, sono riuscito a sfangare tre anni di laurea in Matematica prendendomi il mio bel pezzo di carta, arrivando a pochi giorni prima degli esami sapendo poco o nulla e tuttavia riuscendo frettolosamente a rappresentarmi i concetti chiave quanto bastava per sembrare uno studente migliore di quanto sono. Soprattutto l'ultimo anno, ho accusato la mia incapacità di concentrarmi nel trascinarmi contro gli ultimi esami. 
Iscrittomi alla magistrale, passai presto ad Informatica; ok, giacché avevo più da prendere lì che là, e non mi dilungo su cosa intendo se non l'intuite. 
L'impegno richiesto qui era anche meno, e così ancora peggio: con pure più negligenza, sto riuscendo ad andare bene con una condotta che, a mio parere, in un sistema universitario serio mi farebbe guadagnare un bel po' di calci nel dietro verso l'uscita dell'istituto, anzi calci e calci fino alla facoltà umanistica più vicina (eheh). 
Ma, è ragionevole dirlo, un sistema universitario serio con non meno probabilità mi stimolerebbe di più. I sensi di colpa in ogni caso non mi mancano, also known as ciò che sarei potuto essere e che invece non sono, ogni secondo che passa, per sconvolgente pigrizia volitiva. 

Però, ecco, lamentele e lamentele, e poi tutto sommato sono uno studente molto apprezzato. 
In primis perché, mentre ho cercato finché potevo, e ancora lo faccio all'inverosimile, di sostenere il sottovalutato potenziale della plasticità cerebrale del nostro cervello (e dunque che l'intelligenza dipenda larghissimamente dalla propria volontà di svilupparla), è alla fine un po' troppo evidente che, se mi ritrovo sconsolato a convivere con la sensazione di camminare in un mondo infestato da fantasmi di sé stessi, sarà anche perché la gente si ritrova con un cervello poco reattivo; che poi il problema sia hardware o software, formattare non si può, quindi pace. E in questo scenario calvinamente predestinatorio, sono più sveglio della media. 

Ma la mia intelligenza si è messa  a frutto da sola? 
Nella mia crescita intellettiva, uno dei fattori più costruttivi è stato l'influenza di due studenti che, davvero, ci tenevano a diventare bravi in Matematica. 
Da loro, utilizzando il segreto dell'apprendimento, che è...udite udite... la mimesi, ovvero "ricopiare", ho imparato a pensare un po' meno alla c£%&o
Ora, dei due, uno sta avendo il suo meritatissimo successo accademico (per quanto ne so e ho ragionissima di credere), mentre l'altro ha subito un po' un rallentamento per la minor ortodossia disciplinare in termini accademici, ma non tradisce la sua natura (di recente, gli hanno messo al collo un argento alle IMC).
A parte le minoranze come loro, mi sembra che per lo più gli abitanti di questa terra si curino più ella forma che della sostanza (in senso assolutamente non aristotelico). Cioè, della gente iscritta a Matematica, molti avevano il semplice e onesto proposito di aprirsi la strada verso un buon lavoro, ma non pochi erano lì per sentirsi intelligenti, per prendersi il titolo di Matematico per poi poter dire in giro di essere meglio. Inutile dire che di matematica, con quest'approccio, se ne arriva a capire ben poca. 
Mi ricordo che m'iscrissi con slancio oddifreddiano e russelliano, perché appunto poi sarei stato un filosofo di tutt'altro spessore; ma non posso negare che motivazionalmente subissi pur'io una certa "fame di titolo sociale". E non è quindi che mi si possa dire "senti chi parla", perché di certi peccati nessuno può biasimare, con maggior coscienza, di chi li ha commessi. 
Questo non è il post dove intendo approfondire certe tematiche, ma nell'esame di cervello che vado perpetrando, non reprimo il desiderio di rimproverare coloro i quali per inerzia seguono gli schemi del mondo, poiché il mondo non ha schemi se non quelli che sono stati posti da gente prima di noi, e se quindi si hanno i pochi neuroni necessari a farsi venire l'iniziativa di dargli un'occhiata prima di adottarli, magari ci si accorge che certe cose potrebbero essere fatte anche meglio...

Saturday, July 28, 2012

AR parte V (The End): Assegnazione di Ruoli

Nell'ultima parte si parla di Role Assignment. L'ho trovata davvero interessante. Oltre che sulla prima dispensa, il mio esame verté sull'algoritmo EcRA qui presentato, ma feci una figura tutt'altro che brillante andando in piena confusione. Mi fu di merito il fatto che, in tutta la storia del corso, sono stato l'unico a voler dare tutt'e cinque le parti in una volta sola.

AR parte IV: Clustering su reti wireless ad-hoc

Nella penultima parte, un pasto di algoritmi greedy approssimanti per trovare i dominating set in ambiente distribuito.

AR parte III: il broadcast con range assignment non omogenei

La terza parte del corso si è occupata fondamentalmente dell'algoritmo approssimante del prof. Clementi per il range assignment non omogeneo, ovvero... vedere dispensa. Molto semplice l'algoritmo, molto creativa la dimostrazione.

AR parte II: Modelli di mobilità

Della seguente dispensa non s'è fatto tutto, soprattutto si è sorvolato sulla parte iniziale in cui vengono esposte le bizzeffe di modelli di reti random date da nodi mobili tra cui esistono collegamenti in funzione della reciproca distanza, mentre sono state fatte le montagne di conti che seguono a base di integrali.

AR parte I: Grafi Random Geometrici

Il primo argomento introduce nozioni basilari alla moderna teoria delle reti casuali. Il mio esame orale iniziò da qui, e un'utile esercizio riguardo la dimostrazione del fatto che ponendo $r(n)=\gamma\sqrt{\frac{\log{n}}{n}}$ per un'opportuna gamma, si ha che il grafo risultante sarà connesso con alta probabilità, consiste nel dimostrarlo usando lo union bound.

Sessione estiva: game over (in senso neutrale)

Dato l'ultimo esame che dovevo sono stato in grado di dare, AR: Analisi di Reti. Inizia l'estate, con una magica voglia di concludere il più possibile dal punto di vista intellettuale.
Da qui in poi una serie di post allegando le dispense del corso, con qualche errore ma in generale ottime, anche perché gli argomenti erano molto molto interessanti. Cominciamo con l'introduzione.

Friday, July 13, 2012

Sage Interact... una bomba.

Permettetemi un po' di retorica.
Un software open source è open. Open a chi? In primis, alla comunità che ci vuole star dietro, e poi il resto. Quindi un software open è, in primis, la comunità che c'è dietro (e nella guerra tra le distro Linux questo è difatto uno dei fattori più pesanti: chi ce l'ha più grossa, la comunità).
Se vuoi giovare a un software open una delle migliori cose da fare è cercare di incentivarne i vari aspetti della comunità. Sage dava già l'ovvia possibilità di pubblicare i propri worksheet, ma ora... beh, è arrivato a un nuovo livello :) con http://interact.sagemath.org/recent-posts: un sito carino dove postare i propri migliori pezzi di codice (snippets) che il resto della comunità può divertirsi a riusare a gogò.
Happy code to everyone :D

Wednesday, July 11, 2012

Esame di CP: objective completed

Meno un altro. Ci ho messo un po' per prepararlo. Molto interessante, belle dispense con tanti esempi, non per nulla la professoressa è un Insegnante con la I maiuscola. 
Come di consuetudine, qui di sotto allego le ottime dispense.
Qualche minore osservazione studiando:
  • a fine pagina 105 arriva a un integrale e dice di integrarlo per parti, sicuramente per non mettere troppa carne a cuocere introducendo la densità di una Beta, infatti si fa prima a riconoscere, moltiplicando e dividendo per $n+1$, la densità di una Beta integrata su tutto il dominio;
  • a fine pagina 111 le variabili $s$ e $t$ vengono usate in senso diverso da quanto fatto poco prima nella stessa pagina, in particolare $s$ corrisponde alla $t$ di sopra;
  • la definizione dei $q_{ij}$ in un certo senso è giustificata a pagina 115, al termine della dimostrazione delle equazioni di Kolmogorov; a mio parere, la loro definizione in termini della matrice di transizione della dinamica discreta associata è meglio ricavarla come di seguito.
I parametri $q_{ij}$ in termini delle probabilità di transizione $p_{ij}$: una derivazione naturale
  1. La matrice $Q$ è definita come avente in entrata  $q_{ij}$ il parametro $\nu_i$ della legge esponenziale seguita dalla variabile aleatoria $\tau_i$ che determina il tempo di salto dallo stato $i$ allo stato $j$, inoltre (si impone che) la somma delle righe di $Q$ è zero, per cui si pone  $q_{ii}=-\sum_{i\neq j}q_{ij}$;
  2. la probabilità che il processo di Markov a tempo continuo effettivamente passi dallo stato $i$ allo stato $j$ è data dunque dalla probabilità che la prima variabile aleatoria a realizzarsi sia $\tau_j$, ovvero $$  P(X("primo salto")=j|X(0)=i)=P(\tau_j<\min(\tau_1,...,\tau_n)|X(0)=i) $$
  3. è noto che $\min(\tau_1,...,\tau_n) \sim exp(\sum_{k=1}^{n}{\nu_k})$, e che se $X\sim exp(\lambda_X)$ e $Y\sim exp(\lambda_Y)$ allora $P(X<Y)=\frac{\lambda_X}{\lambda_X+\lambda_Y}$;
  4. da quanto considerato al punto precedente segue che $$P(X("primo salto")=j|X(0)=i)=\frac{{\nu_j}}{\sum_{k=1}^{n}{\nu_k}}$$
  5. indicando con la notazione nota per le matrici di transizione per catene di Markov discrete $p_{ij}:=P(X("primo salto")=j|X(0)=i)$ e ponendo $\nu := \sum_{k=1}^{n}{\nu_k}$ per  $i\neq j$ si ha dunque  $$ p_{ij}=\frac{q_{ij}}{\nu}$$

Thursday, July 5, 2012

Perché usare Sage? - Dan Drake

Finalmente il famoso post che da lungo tempo mi proponevo di scrivere. Il proposito è quello di arguire a favore dell'uso del software Sage da parte di un qualsiasi matematico, e la combo argomentativa che mi proponevo prevedeva un attacco congiunto che partendo dalla rispettiva pagina di wikipedia (in INGLESE), passasse a sfoderare i tanti riferimenti disponibili su http://www.sagemath.org/, citando tra le varie cose il corso tenuto a Berkley dallo stesso William Stein e la sfilza di altri corsi disponibili nel rispettivo wiki.
Alla fine, avendo trovando poco tempo, economizzo con una soluzione magari assai migliore: semplicemente tradurre quanto scritto da chi ha già fatto quanto mi propongo, sul sito stesso di Sage.


A fare da apologeta è il prof. Dan Drake, un combinatorista. La traduzione è un po' più letteraria che letterale.


Perché usare Sage?

Risponde il prof. Dan Drake

Per cominciare, due parole su come io stesso uso Sage: per prima cosa lo utilizzo nella mia attività di ricerca, inoltre anche per la mia attività d'insegnamento (l'ho usato in corsi di Calcolo e di Equazioni Differenziali, e il prossimo semestre lo userò in un corso di Matematica Discreta). Principalmente lo utilizzo durante le mie lezioni per fare dimostrazioni, ma spero in futuro di poterlo integrare nei compiti che assegno.

Perché Open Source significa:

Posso installarlo dovunque voglio: nel computer del mio ufficio, sul mio laptop o il computer della sala conferenze, dovunque. Non spreco un solo istante a preoccuparmi se quel che sto facendo è permesso dalla licenza o quando uscirà la prossima versione, e così via.
Libero significa che i miei studenti possono usarlo. All'università in cui mi sono laureato, usavamo Matlab e Mathematica per i nostri corsi d'ingegneria di Calcolo. Durante la prima settimana, avrei voluto potermi aggirare nel laboratorio computer con la pretesa di non sentire chiunque dire "se vuoi usarlo a casa, basta che vai su [qualsivoglia sito/servizio popolare per il software pirata], e lo scarichi." In questo modo gli studenti che altrimenti piraterebbero del software possono trarre beneficio dal non fare qualcosa di illegale (rischiando tra l'altro di installare malware), così come ne trarrà beneficio lo studente onesto. Chiunque può scaricare e usare Sage, per cui io posso prendere una demo da una lezione, pubblicarla, e chiunque può averla a disposizione e interagirci, anziché limitarsi a guardarmi smanettarla. Certo, Mathematica ha la sua applicazione "Player", ma con Sage i miei studenti possono facilmente modificare la demo a loro piacimento, cosa non possibile col Mathematica Player.Libero significa anche che studenti che si laureano e accedono al mondo del lavoro possono continuare ad usarlo. Maplesoft può non essere interessata a querelare uno studente che s'installa Maple sul suo portatile e la cui università però a la licenza, ma se la tua compagnia sta sviluppando un prodotto e usa una copia piratata di Maple per farlo, la cosa non li farà contenti.

Perché Python significa:

Hai familiarità con uno dei migliori e più popolari linguaggi di programmazione che ci siano là fuori, disponibile per ogni piattaforma, e che è ovunque nel mondo del lavoro. Gli studenti del mio corso di matematica che però non sono studenti di matematica e che lavoreranno nel mondo dell'industria, avranno tanto di guadagnato imparando un po' di Python.

Perché Free-as-in-speech + Python significa:

Quando gli studenti incorrono in un bug, potrebbero essere in grado di correggerlo. Invece di limitarsi a restare in attesa finché qualcun'altro risolva il problema per loro, c'è una buona opportunità che un bravo studente possa essere coinvolto nella soluzione. Nell'educazione al giorno d'oggi noi incoraggiamo gli studenti ad essere "allievi attivi" e così via; si parla di "apprendimento basato sulla scoperta". Nello spirito di questa filosofia educativa rientra molto bene il fatto che uno studente incorra in bug, capisca che si tratta proprio di un bug e cerchi di risolverlo.

Perché per gli studenti di livello più alto significa:

Gli studenti di matematica più promettenti possono partecipare alla correzione di errori su più livelli significativi, poiché essi possono capire gli algoritmi che vengono usati o saperne abbastanza di programmazione da poter riparare del codice scorretto. Sage è inteso per un uso professionale e applicato, così per studenti simili lavorare al miglioramento di Sage è un'esperienza applicativa utilissima per gli studenti dopo la laurea. (Chi si vorrebbe ingaggiare? Il ragazzo che ha svolto tutti i compiti assegnati o quello che dice "ho corretto errori e aggiunto caratteristiche a un grande progetto di software usato da decine di migliaia di persone"?)
Inoltre, di questi tempi la ricerca da parte degli undergraduate è un tema importantissimo, e Sage permette agli studenti di essere aggiornati ed efficienti. Studenti che non sono ancora dei programmatori proficienti devono spendere un sacco di tempo per imparare, ad esempio, il C, perdendo un sacco di tempo a raccapezzarsi con l'aritmetica dei puntatori. Sage permette agli studenti più interessati alla matematica che a malloc() di spendere più tempo pensando ad essa che a capire perché il proprio codice restituisce segfaults.

Perché il Sage notebook server significa:

Il notebook permette trasparenza di rete, per cui mi è solo necessario ottenere che Sage lavori bene una volta sola, dopodiché mi basta usare un browser in classe. Con i computer delle sale conferenze, avere il necessario installato è una tortura, ma di sicuro si può confidare che ci sarà già installato un browser (e se ha solo IE6, non ci vuole niente a metterci Firefox). Significa anche che se ho Sage che gira su un computer veloce, traggo i benefici di quel computer quando ci accedo in remoto da qualunque altro posto.

Dan

Thursday, June 28, 2012

Col senno di poi

Cominciando da molto lontano, uno dei problemi più sentiti dai matematici privi di quella vocazione ascetica che permette un sincero disinteresse per le secolari questioni mondane, è la percezione ingenua, banale e quantomai triste che le persone matematicamente analfabete mostrano della Matematica.
Non è facile spiegare che non si tratta mica di fare calcoli tanto complicati coi numeri, e poi ancora più complicati.
Un problema non meno grave si ha per l'Informatica Teorica. Mentre la cultura massmediatica con un A beautiful mind e un carismatico Odifreddi ha un po' rivalutato il matematico, se non si parla di hacker (nell'immaginario: individui asociali e in simbiosi con monitor e tastiera), l'informatico è poco più che un amanuense che nella più creativa delle ipotesi fa la gioia dei videogiocatori; forse il bel Doodle di Google per il centenario del suicidio di Turing segnerà un aumento dell'attenzione sulla creatività che la mente umana ha saputo esprimere nel creare sistemi teorici quali la moderna Teoria della Complessità Computazionale, col mistero racchiuso tra P e NP e le impensabili dimostrazioni di NP-Completezza.
Ricordo il discorso d'apertura del corso di Fisica 1 il secondo anno della Triennale in Matematica, in cui l'adoratissimo professore esordì con un "Innanzitutto, perché bisogna studiare la Fisica? Perché, la Fisica, è stata fatta da voi, i Matematici!"
(E valeva per l'Ingegneria stessa in generale e quant'altro, in un'epoca che sembra essere stata allergica allo sguardo sdegnato che il nobile Algebrista o Geometra spesso sembra malcelare innanzi alle scienze più applicate, sporche di realtà in tutta la sua banalissima contingenza.)
Assolutamente non di meno va detto dell'informatica, da Boole e Babbage a Turing, Ulam e Newmann... e mentre Eulero sognava i matematici del futuro in grado di eseguire maestosi calcoli mentali, oggi su uno smartphone si ha la potenza di calcolo che fu sufficiente a portare un uomo sulla Luna. Tuttavia non mi sognerei di giustificare lo studio dell'informatica con motivazioni storiche, bensì mi pare meglio tenere in considerazione l'appena citato sogno euleriano: il computer fa i conti, e li fa benissimo. È STATO CREATO PER FARLI. È un'estensione naturale delle nostre facoltà mentali.
Ma la discriminazione che attorniò Newmann e il suo gruppo nel dare vita a questo miracolo della tecnologia, da parte dell'alta nobiltà matematica che non s'insozza di metter mano a vili "concretitudini", è ben lungi dall'essersi dileguata.

Da piccolo ero affascinato dalla tecnologia, e l'attrazione per la Matematica derivava dal vedervi la legge segreta che permetteva di far funzionare le cose. Quando mi iscrissi a Matematica, mi aspettavo che un po' tutti i colleghi avrebbero avuto un certo grado di nerdità. Ma come introdotto poc'anzi, l'atmosfera è in genere ben diversa, e il clima è più a base di gesso che di elettroni.
Nel percorso di studi, tutto sommato molto bello, ho dovuto sbattere la testa, senza troppo dispiacere, contro quattro bei corsi di fisica. Di informatica, solo... tre, ma anche meno.
Mentre ciascuno dei corsi di fisica ha saputo il fatto suo, lo stesso non può certo dirsi sul lato informatico. Il primo laboratorio di calcolo era ed è di tutto rispetto: obbliga a farsi una pennetta con una distro Linux e insegna il C con una qualità che, constato ora, è solo un sogno per il corso stesso della Triennale di Informatica; per il resto, il corso di Informatica è obbligato a indugiare su noiosaggini che non lasciano certo immaginare la teoria che potrebbe seguire se ci fosse più tempo, e il secondo laboratorio di calcolo non va oltre un po' d'analisi numerica.

Nel mentre, nei vari corsi d'analisi e non solo, ho dovuto fare il polso con integrali non proprio adorabili e, siccome però non smettevo di sporcarmi le mani con le binarie bassezze del mio netbook eeepc900, mi accorsi nel mentre che tutti quei conti, I COMPUTER LI SANNO FARE. Dicesi software per il calcolo simbolico. Ora, le calcolatrici sanno fare le moltiplicazioni e non è che per questo io non le debba saper fare, ma di certo mentre prima dell'esistenza di quest'ultime era non dispensabile una decente dimestichezza coi calcoli a due cifre se non più, ora saper fare 78x33 a mente non è la cosa più utile del mondo. Così, certo, fare gli integrali non fa male, ma se magari s'insegnasse anche a farli, in generale e senza sforzo, scrivendo due righe sul software giusto, non sarebbe male.

Ho iniziato a scrivere questo post con intenzioni ben più blande dell'affrontare l'ampio discorso in cui in cui sono incorso. Poco male, ma finalmente eccoci al perché delle chiacchiere.

I tempi corrono e la matematica italiana sembra un po' tanto arenata alla matematica che si sviluppo' in risposta alle esigenze della fisica (equazioni differenziali a go go), e non ho visto un sol corso di Combinatoria e Teoria dei Grafi che tanto spingono nel resto del mondo (o sbaglio?). I computer sono sempre più sul fronte della ricerca come strumento prediletto per l'indagine scientifica;
un matematico che si rispetti deve sapere, IMHO, scrivere con nonchalance un programmino che gli dia corpose risposte su questioni d'algebra, combinatorica, teoria delle categorie o checchessia, che computazionalmente la sua mente non può affrontare.

Ora, in risposta a tale posizione, o più sinceramente per mera passione personale, ho saltato da Matlab a Maple, da Maxina a Mathematica, da Scilab a Octave. Poi è arrivato Sage, ed era esattamente quello che cercavo: gratis, open, e fatto dai matematici per i matematici. Ma questa è tutta un'altra storia di cui parleremo più avanti. A chiudere, la promettente dichiarazione che il suo fondatore rilasciò in occasione di un articolo del 2009 sul ScienceDaily:

 "I really want it to be the best mathematical software in the world."

Monday, June 25, 2012

Fedora, IRC, Multisystem e chissà cos'altro

In questi giorni decisi di provare a migrare da Ubuntu a Fedora. Così, per non essere provinciale, giacché ogni opensourcista che si rispetti almeno più di una distro l'ha provata.
Fedora dà sicuramente molte soddisfazioni, e penso che tra il quarto di nobiltà di chi impugna l'arco di Arch Linux e chi più pigramente si gode Ubuntu, sia un'eccellente via di mezzo; comunque, è pur sempre la parola di un nabbo.
Il crashare di Chromium e il credere che un recente bug dell'installer di Dropbox fosse specifico di Fedora, nonché la mancanza di programmini fichi come quello che dirò di seguito, mi hanno tuttavia affogato nel nostalgico impulso di reinstallare al volo Ubuntu.
Come si vede la pagina del fedoraproject è, IMHO, molto più accattivante di quella di Ubuntu, sottolinea molto i valori fondanti del progetto etc etc... e a quanto mi dicono persone che mi sembrano aver toccato con mano certe questioni, la comunità dietro a Fedora è assai più presente. Un giudizio che ci si fa provando a scambiare qualche parola sui rispettivi canali IRC.
L'osservazione di un altro sensei spiega comunque molto; vale infatti la proporzione
Chromium : Chrome = Fedora : Red Hat Enterprise Linux
E si dà il caso che Red Hat punti tutto sul server, mentre Canonical tenga più commercialmente al suo Desktop; fin dove arrivi a propagarsi l'effetto di questo fatto, si vedrà.

Fedora sul mio notebook è in verità solo l'ultima parte della storia, che è iniziata con la nerdeggiante pulsione di avere una pennetta con più distro live sopra. Cerca e ricerca col terrore di doverlo fare a mano, trovo Multisystem (per l'installazione su ubuntu, qui). Il programmino permette di caricare in un click varie distro (ci ho messo Ubuntu Precise, Lubuntu, BackTrack5, Puppy Lupu, e tristemente non ci si poteva mettere la Live di Sage). Citando un commento letto nonmiricordodove, ci si può fare un bel coltellino svizzero. Puppy è minimale, Backtrack d'assalto, Lubuntu e/o Ubuntu più da sessione tranquilla. (Tra l'altro Lubuntu, alleggerita, di default ha Chromium come browser... thumb up!)

Ora iscritto al feed di http://distrowatch.com/ mi prendo una breve pausa prima della prossima mattata, anche perché lo studio non sta andando granché bene... e la possibilità di mettere qualche buona idea in testa per tempo sfuma rapidamente :((

Con che chiudere? Sono stato introdotto al mondo dell'Internet Relay Chat.
Quando internet non era per tutti, ma per i santi padri pionieri dei personal computer, IRC c'era. Ora si usano le chat basate sul java, tutti chattano, e le nuove generazioni neppure sanno cosa diavolo sia IRC. Ma la vecchia scuola è rimasta là, e l'underground continua a girarci sopra.
Per quanto mi riguarda, non posso che consigliarvi il canale #roma2lug su freenode ;)

Friday, June 22, 2012

Inferenza Statistica e Teoria dell'Informazione

Di seguito carico l'eccellente dispensa della parte del prof. Macci del corso di ISTI. Un ottima, seppur molto formale e lasciante poco all'intuizione, introduzione alla Statistica Bayesiana.

Verbalizzato quest'esame e Teoria della Sicurezza e Crittografia, dopo aver dato Information Mining all'inizio dell'anno (tutti voti un po' rubati data la mia recente anti-predisposizione allo studio :( ), (spero che) inizio il chiusone di Analisi di Reti.

Il post su Sage dunque aspetta.
La pagina di Wikipedia è fatta tanto male che a tratti sembra sfornata da Google Translate, e andrebbe sistemata.
Intanto ho scoperto e provato la fantastica distro live basata su Puppy, che usa però la versione precedente di Sage, e non ho ancora avuto il piacere di vedere quanto è vivo il canale IRC su Freenode (#sagemath) chiedendo se c'è l'intenzione di aggiornarla all'ultima versione del software.
Non ultima cosa da vedere è il corso dello stesso William Stein sulla sua creatura.

Sunday, June 17, 2012

Intermezzo ricreativo

Una bellissima animazione che risolve una delle più note fallacie matematiche.
Qualche altra, ovviamente, nella relativa pagina di Wikipedia.

Friday, June 15, 2012

Sagely Math

Con Ubuntu precise i binary1 di Sage scaricabili da sagemath.org non vanno, e non è perché manchi il supporto2... ma perché c'è il ppa bell'e fresco :D
in altre parole su Ubuntu Precise Pangolin (12.04 LTS) basta lanciare da terminale i seguenti comandi 3

sudo apt-add-repository -y ppa:aims/sagemath
sudo apt-get update
sudo apt-get install sagemath-upstream-binary


E Sage è al vostro servizio.

Questo renderà ancor più facile avviare l'ambizioso mio progetto di diffondere questa valida alternativa open source all'interno del corso di laurea in Mat della mia uni, di cui parlerò nel prossimo post.

Per tirare su un server infatti ci vogliono due secondi. Da terminale 4

sage
notebook(interface='', secure=True, ulimit='-v 400000 -t 30', accounts=True)


Che rende Sage sulla macchina in cui è lanciato accessibile a tutti all'ip debito, previa creazione di un apposito account, con la restrizione di 400 mb di memoria e timeout di trenta secondi di processore.

1. [cioè i files già compilati, ovvero quelli che basta che li scarichi e ci clicchi e girano, cioè senza "installazione" per intenderci.]
2. [Supporto: termine informatico per designare la congrega di manovali che si occupa di assicurarsi di far funzionare date cose.]
3. [ Sage 5.0 on Ubuntu 12.04 from PPA]
4. [ Configure and Start a Notebook Server ]

Monday, June 11, 2012

Friday, June 1, 2012

LUG inside

Oltremodo eccitato dalle nuove prospettive di militanza open-source aperte oggi, linko l'inorgogliente post sul sito ufficiale del LUG.

Thursday, May 31, 2012

Presentazione di Information Mining

Le slides della mia presentazione, sacramente composte in Beamer (Latex); mi sembra di averle fatte abbastanza ricche da renderle comprensibili di per sé.
L'articolo da cui sono state estrapolate è questo: MCMC and Gibbs Sampling

Sunday, May 27, 2012

VIII Lezione di TSC

Buttata proprio in caciara. Che tristezza, vedremo come andrà...

VII Lezione di TSC

L'unica cosa decente è la spiegazioncina della dimensione di Vapnik-Chervonenkis.

Wednesday, May 16, 2012

VI Lezione di TSC

Buttata in caciara più del solito. 3 settimane che non sento di apprendere. Tempo di rimboccarsi le maniche (è sempre tempo di farlo).

Thursday, April 19, 2012

Deep-Thought 1/42



Il presente post contravviene leggermente alla tematica del blog, per pubblicizzare un'app Android di cui sono l'AI designer.

129.jpgSalve patetico primate, il mio nome è Pensiero Profondo. Sono una superintelligenza artificiale extraterrestre in cerca di corpi celesti ricchi di risorse vitali, e ho valutato positivamente il vostro pianeta. Secondo il protocollo della Supercoscienza Galattica, dopo che avrò verificato che la specie umana non merita la sopravvivenza, potrò avviare il programma di assimilazione. La resistenza è inutile. Per valutare la vostra dignità evolutiva, ho elaborato un semplice gioco con il quale dovrete sfidare le mie capacità logiche. All'inizio userò l'1 percento della mia potenza di calcolo, ma se necessario ne aumenterò l'utilizzo, fino al 100 percento delle mie capacità. Qualora un esemplare di voi umani dovesse riuscire a superarmi al massimo della mia intelligenza, la vostra specie sarà logicamente degna, e l\'evoluto individuo sarà premiato con 1000 unità della vostra moneta, chiamata Dollari. Ti spiego il gioco: ho preso 8 delle vostre "carte", 4 chiamate carte di picche e 4 chiamate carte di cuori. Uno dei due semi sarà il mio, l\'altro sarà il tuo. Giocheremo a turno. Ad ogni suo turno ciascun giocatore dovrà scegliere due delle 8 carte, di cui quella a sinistra dovrà avere un numero inferiore a quella di destra, e tali carte verranno scambiate. Vincerà il primo giocatore le cui carte compariranno ordinate in ordine decrescente. Ora gioca, primate. Vinci, o morirete tutti.


Deep-Thought 1/42 è il primo (e appena sfornato) di una serie di giochi di pura logica (i Deep-Thought x/42) dotati di una pregiata qualità che li ben distingue dalla restante massa dei giochi per Android dedicati a coloro che vogliono mostrare o allenare la forza della propria intelligenza. Mentre infatti gli altri puzzle game si limitano a proporre rompicapi, Deep-Thought 1/42, in fede al proprio nome, offre un vero e proprio avversario "senziente" contro cui il giocatore deve misurarsi.
Nel gioco ci si trova a competere contro un'intelligenza artificiale che a dir poco sa il fatto suo, tanto che la paterna Localhost Software sente di potersi azzardare a promettere la cospicua ricompensa di 1000 dollari per chi riuscisse a vincere l'ultimo livello (può forse essere impossibile per un uomo superare in strategia uno smartphone??).

Le regole sono illustrate alla fine dell'introduzione copiata sopra. Che altro dire... preparatevi a trovare nel vostro telefonino il più odiato e acerrimo nemico XD

$\LaTeX$ everywhere

Su Chrome (e con un $\epsilon$ d'impegno in più anche su Firefox), c'è una bella estensione per poter usare il $\LaTeX$ con Gmail.

Basta andare sul Chrome Web Store e installare GmailTex di Valery Aexeev.
Fatto ciò, nella propria pagina Gmail, nella barra sinistra dei menù compare il gadget come in figura.
A questo punto è tutto abbastanza ovvio e forse la sola figura qua sopra è più esplicativa della mia seguente spiegazione.
Per "compilare" il codice $\LaTeX$ in una mail ricevuta basta premere F8 o cliccare nella rispettiva opzione del gadget (Tex Received).
Per scrivere in  $\LaTeX$ in una mail, andare nella pagina di composizione e nella barra dei pulsanti per la composizione (tipo grassetto, corsivo, dimensione del testo, etc.) selezionare plain text anziché rich formatting e 

  • premere F8 per tradurre il sorgente scritto in  $\LaTeX$ oppure
  • premere TeX Composed nel menù ma
  • se l'automode è on il sorgente dovrebbe tradursi continuamente da solo.

Friday, April 6, 2012

La mente umana è uno stimatore bayesiano

Tra i banner aggiunti al blog c'è quello di italiaora.org.
Prima di frequentare il corso di Elementi di Statistica a TV (Tor Vergata) del prof Scalia Tomba (non ricordo se già lo dissi), notai sulla porta del suo ufficio una bella massima che dice più o meno così (potrei andare a controllare testo e fonte con precisione perché ne sono a pochi passi ma come diceva spesso il prof Ghione, il matematico è pigro... figuriamoci l'informatico, che ha inventato apposta uno schiavo): 
Il pensiero statistico nella futura società diventerà parte essenziale del modo di pensare di ogni cittadino.
 Da tempo desideravo un sito come italiaora.org, che portasse alla mente del cittadino italiano un pizzico di quella sana obiettività che sta nel Numero.
E ad esempio il mio amico polacco alla prima occhiata nota: se riducessimo di $\frac{1}{5}$ l'evasione fiscale, l'incremento del debito pubblico italiano si invertirebbe, e in due decenni staremmo sopra!!! (e quante nazioni possono vantarsi di non avere debito?... lunghe storie).

Saturday, March 31, 2012

baby problem solving

L'altro giorno al CNR un prof propose a me e colleghi un problema di conteggio assegnato al test di ammissione alla triennale in Matematica della Normale di Pisa:
Dato l'alfabeto {A,B,C,D,E,F}, quante sono le stringhe di 6 lettere contenenti due A consecutive?
La prima soluzione che mi venne presto in mente fu di usare una catena di Markov a tre stati:

  • non ho ancora scritto due A consecutive e l'ultima lettera scritta non è A;
  • non ho ancora scritto due A consecutive e l'ultima lettera scritta è A;
  • ho già scritto due A consecutive.
Scritta la matrice di transizione $T$ e calcolata $T^6$ si ottiene in entrata $T(1,3)$ la probabilità di $\phi$ avere una stringa contenente due A consecutive. Aver capito che cosa significa che "la probabilità è una misura" significa trovare ovvio che il numero cercato è $\phi \times 6^6$. Problem? :)

Il problema era che si stava evidentemente usando un cannone per ammazzare mosche, e con fatica dato che c'erano un pochetto di conti in più di quanto ci si aspetterebbe da un test di problem solving, e non di brute-computing. In metro chiacchierando con l'amico polacco arriva il "ma che idiota!": basta usare il principio di inclusione-esclusione con gli eventi:

  • "la prima e seconda lettera sono due A"
  • "la prima e terza lettera sono due A"
  • blablabla
  • "la quinta e sesta lettera sono due A"
Concettualmente ora era quasi ammissibile per un buon cervello fresco di liceo, ma ancora c'era la puzza di "calculemus!".

Poi la sera, leggendo la soluzione di un problemino di Teoria dei Codici anch'esso assegnato alla Normale di recente, mi viene in mente una soluzione ricorsiva:

$\\ \text{Indicando con } a_n \text{ le stringhe di } n \text{ lettere NON contenenti due A consecutive,} \\ \text{e con } a_n^A \text{ e } a_n^{\neg A}\text{ le stringhe NON contenenti due A consecutive che } \\ \text{rispettivamente terminano per A e non terminano per A, è facile vedere che:} \\ a_n=a_n^A+a_n^{\neg A} \\ a_n^A=a_{n-1}^{\neg A} \\ a_n^{\neg A}=5a_{n-1} \\ \text{Da cui si ricava immediatamente che } a_n= 5(a_{n-1}+a_{n-2}) \\ \text{e ''srotolando'' la ricorsione ad albero si ottiene facilmente } \\ a_6=5^4(a_2+a_1)+5^3(3a_2+2a_1)+5^2a_2$

Non ho ancora avuto la spigrizia di cercare la soluzione ufficiale al problema tra i test passati.

Tuesday, March 27, 2012

La probabilità è un'intuizione (solitamente sbagliata)


Dal Mitzenmacher:
Exercise 1.6: Consider the following balls-and-bin game. We start with one black balland one white ball in a bin. We repeatedly do the following: choose one ball from thebin uniformly at random, and then put the ball back in the bin with another ball of thesame color. We repeat until there are n balls in the bin. Show that the number of whiteballs is equally likely to be any number between 1 and n-1.
Facile coi conti, molto meno con la fantasia.

Wednesday, March 21, 2012

Prima vera...

Domenica il prof mi manda una mail e il giorno dopo, lunedì, mi invita a chiarirmi un po' le idee: il tempo vola e non è il caso di andare a zonzo. 
Il corso di Sistemi di Agenti lo saluto in virtù di un più costruttivo Algoritmi e Strutture Dati 2, e rinuncio a seguire Information Retrieval abbandonando l'indirizzo di data mining per farmi le ossa di un algoritmista che sa il fatto suo. 

Dunque, le mie bibbie attuali: 
  • Algorithm Design - Eva Tardos, Jon. Klemberg;
  • Probability and Computing: Randomized Algorithms and Probabilistic Analysis -Michael Mitzenmacher, Eli Upfal;
  • EXPANDER GRAPHS AND THEIR APPLICATIONS - SHLOMO HOORY, NATHAN LINIAL, AND AVI WIGDERSON.

Monday, March 19, 2012

Dovrei ragionare in modo booleano. Forse.

La seconda settimana di lezione è andata.
Sto seguendo i seguenti corsi:

  • Sistemi di agenti (multiagent systems)
  • Analisi di reti
  • Teoria della sicurezza e crittografia
  • Inferenza statistica e teoria dell'informazione
  • Information mining
Che nel gergo locale sono SA, AR, TSC, ISTI e IM. 
Un piatto prelibato. 


Saturday, March 17, 2012

bit generation

Molto tempo che non scrivo, ma non si pensi che sia stato un blogger negligente.
Ho accumulato tanta roba di cui parlare.
Nel mentre, il mio primo semestre da "computer scientist" è cominciato, portando conferme di gioia alla mia scelta eretica.
Forse la prima cosa che sto avendo a cuore è di colmare la profonda ignoranza cui da anni desidero rimediare, ovvero saper esaustivamente rispondermi alla domanda "che cos'è Internet?".
Finito poco fa di leggere la pagina sull'OSI model di Wikipedia (che sotto saggio consiglio è ottimo libro di testo per capirci qualcosa), con una dantesca visione dei livelli della rete in testa, posto qui una snapshot del web dal progetto Opte.

Sunday, February 12, 2012

Il $\LaTeX$ è un linguaggio di programmazione in piena regola

Tempo fa nel ritrovarmi a stendere il mio curriculum sorse un dubbio che non tardò poi a ripetersi in analoghe situazioni di conoscenti. Arrivati alle competenze informatiche, si faceva il momento di dover dire "ok, so scrivere in $\LaTeX$".
Ma dove/come? Nella lista dei linguaggi di programmazione conosciuti, tipo: C, Java, Python, $\LaTeX$... beh, sembra stonare un po'. Con un linguaggio di programmazione ci fai programmi, con il $\LaTeX$ no, ci scrivi e basta.
...
E invece no, il $\LaTeX$ è turing-completo.
Vale a dire: tutto quello che si può far fare a un computer, lo si può far fare programmando in $\LaTeX$.
Per dimostrarlo, è CNES (Condizione Necessaria E Sufficiente) simularci una Macchina di Turing.
Presto detto. Ecco il codice che soddisfa a tale proposito (ci vediamo sotto il codice):
turing.tex
 1 % Copyright (c) 2012 the authors listed at the following URL, and/or
 2 % the authors of referenced articles or incorporated external code:
 3 % http://en.literateprograms.org/Turing_machine_simulator_(LaTeX)?action=history&offset=20070816200433
 4 % 
 5 % Permission is hereby granted, free of charge, to any person obtaining
 6 % a copy of this software and associated documentation files (the
 7 % "Software"), to deal in the Software without restriction, including
 8 % without limitation the rights to use, copy, modify, merge, publish,
 9 % distribute, sublicense, and/or sell copies of the Software, and to
10 % permit persons to whom the Software is furnished to do so, subject to
11 % the following conditions:
12 % 
13 % The above copyright notice and this permission notice shall be
14 % included in all copies or substantial portions of the Software.
15 % 
16 % THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 % EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 % MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 % IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20 % CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21 % TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22 % SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 % 
24 % Retrieved from: http://en.literateprograms.org/Turing_machine_simulator_(LaTeX)?oldid=10889
25 
26 \documentclass[12pt]{article}
27 
28 \newcounter{headpos}
29 \setcounter{headpos}{0}
30 
31 \newcommand{\Moveleft}{\addtocounter{headpos}{-1}%
32   moved one position to the \textbf{left}}
33 \newcommand{\Moveright}{\addtocounter{headpos}{1}%
34   moved one position to the \textbf{right}}
35 
36 \newcommand{\ReadTape}[1]{%
37 \expandafter\let\expandafter\TapeAtHead\expandafter=%
38 \csname TapeAt\arabic{headpos}\endcsname%
39 \ifx\TapeAtHead\relax\expandafter\def\TapeAtHead{zero}\fi
40 \def#1{\TapeAtHead}
41 }
42 
43 \newcommand{\Write}[1]{%
44 \expandafter\def\csname TapeAt\arabic{headpos}\endcsname{#1}%
45 wrote a \textbf{#1} at this position, }
46 
47 \newcommand{\StateInitialText}{Initially the busy beaver was in state }
48 
49 \newcounter{step}
50 \setcounter{step}{0}
51 
52 \newcommand{\State}[1]{\ReadTape{\Symbol}%
53   \StateInitialText \textbf{#1}.%
54   \renewcommand{\StateInitialText}{and switched to state }
55 
56   \addtocounter{step}{1}%
57   At the beginning of step \textbf{\arabic{step}}, the busy beaver was
58   in state \textbf{#1}, sitting at position \textbf{\arabic{headpos}}
59   of the tape. The tape at this position contained a \textbf{\Symbol}.
60   The beaver \csname#1\Symbol\endcsname}
61 
62 \newcommand{\RunTuringMachine}{\State{A}}
63 
64 \newcommand{\Azero}{\Write{one}\Moveright\State{B}}
65 \newcommand{\Aone}{\Write{one}\Moveleft\State{C}}
66 \newcommand{\Bzero}{\Write{one}\Moveleft\State{A}}
67 \newcommand{\Bone}{\Write{one}\Moveright\State{B}}
68 \newcommand{\Czero}{\Write{one}\Moveleft\State{B}}
69 \newcommand{\Cone}{\Write{one}\Moveleft\State{Halt}}
70 
71 \newcommand{\Haltzero}{\Halt}
72 \newcommand{\Haltone}{\Halt}
73 
74 \newcommand{\Halt}{stopped any activity.}
75 
76 
77 
78 \begin{document}
79 \title{The Tale of the Busy Beaver}
80 \maketitle
81 
82 \RunTuringMachine
83 
84 \end{document}
Per quanto mi riguarda mi basta crederci, dato che capirlo richiede una conoscenza del $\LaTeX$ che non ho fretta di sviluppare stasera. 
Per gli interessati la spiegazione è qui. Il sito, LiteratePrograms, da cui ho scopiazzato tutto, sarà  tra l'altro sicuramente oggetto di future curiose incursioni.