Home    About me    Publications    Blog    Photo gallery
Some other old good stuff

Fabio Ruini’s blog

Because Italians do it better! What the f**k? Ehm… the blogs, I mean… obviously! :-/

Archivio per Ottobre, 2009

Di nuovo a Plymouth

Settimana di pseudo-ferie letteralmente volata via. Dopo il solito lunghissimo viaggio, reso ancora piu’ pesante dall’aver dormito esattamente 0 minuti durante la notte (spento le luci alle 4:40 con sveglia alle 5:30, senza essere riuscito ad addormentarmi), ma anche un po’ piu’ piacevole dall’aver ronfato in macchina (chiedo venia agli accompagnatori) per tutta l’autostrada, nonche’ per tutto il volo esclusi decollo e atterraggio.

The man who came back (film poster)

I motivi che mi hanno portato ad una notte insonne li raccontero’ poi con calma nei prossimi giorni. Ora mi sparo un film, un po’ di Wii e mi metto a nanna. Decisamente non e’ serata per il casino. Lunedi’ si torna al lavoro. I’m back.

Ingroia e le intercettazioni

Serata diversa dal solito quella di ieri sera, passata al Circolo Arci Fuori Orario di Taneto di Gattatico ad ascoltare Antonio Ingroia, procuratore aggiunto a Palermo, presentare il suo recente libro C’era una volta l’intercettazione. Un volume che ho acquistato sul posto (ma ovviamente ancora devo leggere), curiosamente distribuito con una licenza Creative Commons. Come suggerisce il titolo, il libro tratta il tema delle intercettazioni, anche da un punto di vista “storico”. E racconta, almeno stando alle parole pronunciate ieri dal procuratore, come queste siano viste dall’esecutivo, da alcuni decenni a questa parte, come un qualcosa di pericoloso e da eradicare.

Ingroia non e’ un oratore particolarmente brillante, su questo non ci piove. Nondimeno mi e’ parsa una persona capace, per quanto in qualita’ di rappresentante della magistratura credo si sarebbe potuto risparmiare qualche frecciatina di troppo a Berlusconi & C. Ma pare che in Italia la giustizia abbia questa strana tendenza masochistica di proclamare la sua indipendenza, ma poi non comportarsi mai come un corpo realmente super-partes. Lungi da me mettere in dubbio l’onesta’ della magistratura, ma perche’, mi chiedo, fare costantemente il gioco di chi li attacca in continuazione?

Mi hanno lasciato un po’ perplesso soltanto i dieci minuti abbondanti che Ingroia (una persona che definire loquace sarebbe riduttivo) ha speso a ricordare la relazione che Alfano presento’ al Parlamento nel 2008, sostenendo che la stragrande maggioranza degli italiani fosse soggetta ad intercettazioni. Il procuratore palermitano racconta di aver fatto i conti e smentisce i dati mostrati dal ministro della giustizia. Il ragionamento non mi suona nuovo. E infatti e’ esattamente quello che Travaglio (il quale ha scritto la prefazione al libro di cui sopra) esponeva oltre un anno fa in un suo spettacolo, ironizzando sul termine “calcoli empirici” utilizzato da Alfano, per poi replicare anche all’interno della sua rubrica ospitata nel blog di Beppe Grillo. Gli smemorati possono riascoltare questo intervento nel filmato qui sotto.

Ad ogni modo si e’ trattato di una serata interessante. Devo dire anche di essere rimasto davvero basito dalla mole di eventi organizzati al Fuori Orario. I curiosi possono trovare il programma a a questo link. Solo a novembre, oltre simpatiche serate a tema (interessante quella “Sapori d’Irlanda”), saranno ospiti del circolo Flavio Oreglio, Gene Gnocchi, Daniele Luttazzi e Vauro, piu’ un misterioso ospite a sorpresa. C’e’ solo da sperare che non si tratti di Corona.

Mo’ ce passano du’ treni!

Mo’ ce passano du’ treni“. E’ cosi’ che, questa mattina, dopo due minuti abbondanti di operazione chirurgica via laser, il chirurgo ha dichiarato chiusa la questione. I miei turbinati, tecnicamente, non sono piu’ ipertrofizzati. Posso tornare a respirare e sentire odori. Torno a disporre di cinque sensi. Mi si spalanca all’orizzonte un mare di possibilita’. Quali? Beh, non lo so. Sicuramente l’olfatto e’ un senso dalle enormi potenzialita’. Devo solo mettere a fuoco qualche possibile applicazione pratica.

Turbinates (frontal view)

Detto cio’, comunque, a fine intervento e per circa un minuto ho respirato divinamente. Poi mi hanno subito ficcato un po’ di crema antibatterica su per il naso e la piacevole sensazione e’ svanita. A distanza di 9 ore dagli eventi, il naso ancora non si e’ sbloccato. Lo fara’ prima o poi, vero?

eSpeak

eSpeak e’ a compact open source software speech synthesizer for English and other languages, for Linux and Window (cit.). Ancora, eSpeak produces good quality English speech. It uses a different synthesis method from other open source TTS engines, and sounds quite different. It’s perhaps not as natural or “smooth”, but I find the articulation clearer and easier to listen to for long periods (sempre cit.).

Non funziona solo sotto Linux e Windows, pero’. Ho infatti appena scoperto che su Cucat.org e’ ospitato il progetto focalizzato sul porting di eSpeak su piattaforma MacOS. Dal sito in questione e’ possibile scaricare l’installer per il motore di text-to-speech, un pacchetto di linguaggi aggiuntivi (accenti compresi), nonche’ un’interfaccia grafica per utilizzare il software in maniera leggermente piu’ intuitiva che non da terminale. Gli utenti di Snow Leopard tengano presente che per far girare eSpeak e’ necessario Rosetta, non installato di default dal leopardo delle nevi.

Su YouTube e’ presente un video, realizzato dai ragazzi di BashScripts.info, dove si vede eSpeak azionato da riga di comando, impegnato a leggere l’ora corrente del sistema.

La performance, nel caso specifico, non e’ delle piu’ brillanti. Ma ho visto qualche altro test e non mi era sembrato per niente malaccio. Chi volesse provare questo software tenga presente che puo’ essere usato come alternativa all’engine gia’ integrato in Mac OS, ma non puo’ rimpiazzare quest’ultimo per annunciare gli eventi di sistema.

Ci stavamo chiedendo…

Direttamente dal film L’Onda, che mi sono guardato oggi pomeriggio incastrato in quale modo sul solito e scomodissimo RyanAir Bristol – Orio al Serio.

The Wave (Die Welle) - poster

Ci stavamo chiedendo quali condizioni sociali favoriscono la nascita di una dittatura?, chiede Rainer Venger (Jurgen Vogel) ai suoi studenti durante una delle prime scene del film.

Queste le risposte:

  • un alto tasso di disoccupazione ed ingiustizia sociale
  • l’inflazione
  • la disillusione politica
  • spirito nazionalistico estremo

Ora, come quando da bambini si giocava con le figurine, chi mi fa un bel “ce l’ho”, “non ce l’ho” con le voci di cui sopra ed avendo come riferimento il nostro adorato Paese?

Home robots and security

Dato che ieri ho reintrodotto il blog Artificial Intelligence and Robotics ed ora posso quindi glissare sulle presentazioni, approfitto della situazione per condividere con voi un’altra notizia individuata li’ dentro. Tamara Denning, studente di PhD alla Washington University, ha presentato ad Ubicomp 2009 (conferenza internazionale sull’Ubiquitous Computing tenutasi ad Orlando, Florida, nel periodo compreso tra lo scorso 30 settembre ed il 3 ottobre) un interessante paper scritto in collaborazione con altri quattro autori dal titolo A Spotlight on Security and Privacy Risks with Future Household Robots: Attacks and Lessons.

Household robot cleaning the floor

Il blog menzionato in apertura di post fa un ottimo riassunto dei punti chiave del lavoro. Qui di seguito potete leggere il tutto.

It is obvious to most people that a robot is to a large degree a digital computer on wheels (or legs more recently.) It has sensors and actuators that allow it to observe and manipulate its environment either autonomously or under remote control. Household robots such as the very popular Roomba have sold millions and it is predicted that this number will increase vastly in the coming years. Many if not all of these household robots also come with built-in functionality that allows them to be controlled remotely via an Internet connection; this implies both receiving motion commands and also transmitting sensor data to the remote user’s computer.

We all know that computer security is a major hassle for all computer owners. Literally seconds after a computer is connected to the Internet it comes under attack from hackers trying to gain illegal access and steal personal information or use the machine for other illegal activities. Since household robots today all have on board computers connected to the Internet, it makes sense that hackers might try to obtain control of them. In other words, a hacker could potentially take over your household robot and use it to take photos and video of its unsuspecting owners. If future robots are larger and more dexterous, then a hacker could potentially use it to cause property damage. Household robot security is a serious issue that robot manufacturers have to start thinking about; consumers should also demand that robots are designed to be secure.

Researchers at the University of Washington recently published a paper that presents the results of a study on the security of household robots currently available in the market. They focused on studying the 2008 versions of Robosapien V2, Rovio, and Spykee.

The researchers found a number of vulnerabilities that would allow any savvy hacker to take control of the robots or intercept sensor data transmitted over the Internet. In many cases, the data such as video and audio is transmitted unencrypted which means a man-in-the-middle attack would allow anyone to receive it. In addition, some of the robots allowed remote users to login without encrypting the username and password information allowing hackers to steal both with ease. For what it’s worth, Robosapien V2 was the most secure of robots simply because it does not connect to the Internet; however, it is still vulnerable to attacks by people using off-the-shelve infrared remote controls.

The vulnerabilities identified in this study are disturbing especially if one considers that at any moment someone could be spying on you and/or your children without your knowledge using a device that is to a large degree a harmless toy. The researchers suggest that household robot manufacturers should place more emphasis on security issues in order to protect consumer privacy. The message is clear that whether one considers the basic household robots available in the market today or the much anticipated and more capable future robots, security is a design parameter that should not be second thought for the robot designers.

Se voleste saperne di piu’, l’intero paper e’ scaricabile dalla pagina web della prima autrice, al link: http://www.cs.washington.edu/homes/tdenning/#publications.

MIT-MAV

Ho rispolverato dopo qualche tempo il simpatico Artificial Intelligence and Robotics, un blog il cui titolo e’ decisamente autoesplicativo. Tra le varie news, la piu’ recente parla di un progetto, denominato MIT-MAV, in corso d’opera presso il MIT di Boston, dove un gruppo di studenti guidati da Nicholas Roy hanno sviluppato (con la collaborazione dell’azienda tedesca Ascending Technologies per quanto riguarda la parte hardware) un elicottero quadrotor in grado di fare diverse cose simpatiche. Il software sviluppato per funzionare da controller, basato sul Carnegie Mellon Robot Navigation Toolkit (aka CARMEN), e’ costituito infatti dai seguenti moduli (cito dalla System Overview ufficiale):

  • mission planner – high-level task planning
  • navigator – motion planning and exploration
  • state estimator – sensor fusion and localization
  • laser scan-matching odometry – high-level position control/stabilization
  • mapping – online map-building of environment
  • servers for individual sensors

Il video qui sotto, tratto dall’ottima MIT TechTV, mostra l’elicottero in azione. Come si puo’ intuire, l’approccio utilizzato per lo sviluppo del controller e’ molto ingegneristico. Nondimeno, pero’, l’aeroplanino sembra funzionare bene. Lento, ma preciso. Sara’ interessante dare un’occhiata a qualcuna delle pubblicazioni del gruppo.

Chiusa la parentesi seria, chiudo anche il post con un reminder dedicato al sottoscritto. In serata c’e’ in programma una cena di gala al Copthorne Hotel di Plymouth, dedicata a tutti i post-grad dell’universita’. Non proprio tutti in realta’, visto che a disposizione c’erano soltanto 120 posti, con i biglietti gia’ andati esauriti da un paio di settimane a questa parte. Si prevede una serata dal tasso alcolico piuttosto elevato. Per fortuna l’albergo non e’ troppo lontano da dove abito e, anche barcollando un po’, dovrei brownianamente riuscire ad arrivare a casa al termine della cena e del dopocena. Spero. Unico obiettivo della serata e’ quello di non rovinarsi troppo la reputazione.

Passive walking

Il fatto che i robot umanoidi, quelle poche volte che sono in grado di farlo, camminino male quanto delle persone impalate e’ sotto gli occhi di tutti. Qualora qualcuno necessitasse di una conferma di questa premessa, basti pensare che ASIMO, ritratto nel video qui sotto (sembra Armstrong durante lo sbarco sulla luna, me ne rendo conto…), e’ sicuramente nel gruppetto dei migliori.

Per questo motivo, da diversi anni vi sono gruppi di ricerca sparsi per il globo che stanno studiando approcci alternativi per rendere questi assemblati di rame, plastica e metallo in grado di muoversi in una maniera maggiormente human-like. Una di queste metodologie di sviluppo, invero piuttosto interessante, e’ quella che si basa sul cosiddetto “passive walking“. In sostanza, una configurazione che non si appoggia a nessun servomotore e non richiede energia in quanto sfrutta il moto delle gambe lungo un piano inclinato come se si trattasse di una sorta di pendolo. Un modello interessante che riprende questo principio e’ quello che Steven H. Collins e colleghi hanno sviluppato qualche anno fa alla Cornell University e che potete vedere in azione nel video qui sotto, recuperato dal solito YouTube. Come potete vedere, all’originale design passivo sono state aggiunte in seguito delle componenti motorizzate. Che rendono il robot in grado di camminare anche in assenza di un paio inclinato, ma non per questo fanno diventare meno realistici i suoi movimenti.

Perche’ vi parlo di tutto cio’? Semplicemente perche’ oggi pomeriggio, grazie all’aiuto di alcuni undergraduates e del Robotics Club dell’universita’, io e gli altri ragazzi del laboratorio abbiamo dato il via ad un nuovo progettino per il tempo libero. L’idea di fondo e’ quella di ricreare un modello come quello mostrato nel video e possibilmente migliorarlo, rendendolo in grado di correre e saltare. Obiettivi ambiziosi. Ma chissa’ che non ne possa venire fuori davvero qualcosa di buono. Per il momento partiamo comunque in scioltezza. Obiettivo per la fine della settimana prossima e’ semplicemente quello di ricreare un sistemino esclusivamente passivo basato su Lego Technic come quello che si vede nell’ultimo video che allego a questo post.

Diciamo che come primo obiettivo abbiamo scelto qualcosa di utile per il morale…

27 pollici

Ventisette. 27 fottutissimi, maledettissimi pollici. Tanto e’ grande lo schermo installato sull’ultimo nato di casa Apple, l’iMac alluminium in versione (per l’ennesima volta) riveduta e corretta.

New Apple's iMac 27" (October 2009) (front and rear view)

Al di la’ di questo, le grandi attese per il rinnovo della gamma desktop della Mela non hanno trovato troppi riscontri. E’ stato introdotto il Magic Mouse, un prodotto che si preannuncia interessante (gia’ da tempo si vedevano su YouTube alcune demo di prodotti simili sviluppati come prototipi da Microsoft; in questo caso quelli di Cupertino hanno avuto l’abilita’ di essere i primi ad uscire sul mercato con un prodotto del genere gia’ pronto e collaudato), l’Apple Remote e’ stato ridisegnato ed ora funziona anche con iPod ed iPhone, il Mac Mini e’ stato sottoposto ad un generale incremento di performance (ed e’ ora anche disponibile in un’interessante versione server, seppur priva di unita’ ottica), Time Capsule ha fatto ulteriori passi avanti ed infine anche i MacBook sono passati alla batteria da 7 ore dei cugini maggiori Pro, unitamente al trackpad con supporto multi-touch.

Ok, le novita’ non sono poche. Personalmente speravo nell’introduzione di qualche periferica di input davvero innovativa. Alcuni dei rumors delle ultime ore davano per buona l’introduzione di una nuova tastiera con trackpad integrato. Un qualcosa che, viste le tecnologie su cui Apple puo’ contare, avrebbe potuto far scomparire una volta per tutte il mouse. Vorra’ dire che dovremo sorbircelo un altro po’.

Automi cellulari e credo politico: una strana relazione

Puntuale come una tassa da pagare, ecco affacciarsi all’orizzonte il centoventinovesimo appello del corso di Laboratorio II per l’anno accademico 2008/09. Riusciranno i nostri adorati studenti, con cosi’ pochi tentativi a loro disposizione, a passare l’esame? Vedremo. A corto di idee ho malamente riciclato un testo d’esame scritto a suo tempo da un mio professore, previo riadattamento ai miei scopi. Se siete curiosi o addirittura voleste cimentarvi nella prova, qui di seguito trovate il tutto.

Elezioni (vignetta di un uomo che infila la scheda elettorale nell'urna)

Specifiche del progetto da realizzare

Come tema d’esame, si richiede allo studente di scrivere un programma, in linguaggio C, in grado di implementare una versione semplificata dell’automa cellulare originariamente sviluppato da Alves e colleghi (Alves, S.G., Oliveira Neto, N.M. & Martins, M.L., Electoral surveys’ influence on the voting processes: a cellular automata model, Physica A, Vol. 316, pp. 601-614, 2002).

L’automa cellulare in questione si basa su una matrice quadrata (lattice), in cui ogni cella e’ occupata da un individuo. Ciascun individuo e’ caratterizzato da un proprio credo politico, espresso come 0 o 1. Il modello si sviluppa su scala temporale discreta per un certo numero di iterazioni. Ad ogni iterazione, per via dell’effetto della “pressione sociale”, ciascun individuo aggiorna il proprio credo politico sulla base di quello che e’ il credo delle persone che vivono attorno a lui. Le persone aventi influenza sul credo politico di un certo individuo sono quelle definite nel contesto del suo intorno. L’intorno di un individuo e’ costituito dai conspecifici che occupano le 8 celle attorno a lui. Se ad esempio un individuo e’ posizionato in una cella di coordinate (x, y), il suo intorno sara’ costituito dagli individui nelle celle {(x-1, y-1), (x, y-1), (x+1, y-1), (x-1, y), (x+1, y), (x-1, y+1), (x, y+1), (x+1, y+1)}. L’ambiente di riferimento e’ da intendersi toroidale, cosicche’ tutti gli individui possono contare su un intorno avente la stessa dimensione. Ad ogni iterazione, se tra i vicini di un certo individuo ve ne e’ un numero uguale o superiore ad un valore di soglia prefissato aventi credo 1, allora anche l’individuo in questione diventera’ (o rimarra’) un sostenitore dell’idea 1. In caso contrario, diventera’ (o rimarra’) sostenitore dell’idea 0.

All’avvio del programma, attraverso un menu a scelta rapida l’utente dovra’ scegliere una tra le seguenti opzioni:

1. Avvia una nuova simulazione
2. Scegli la directory nella quale salvare i risultati
3. Esci dal programma

L’utente dovra’ scegliere l’operazione da eseguire digitando il numero corrispondente e premendo il tasto INVIO. Si tenga presente che l’utente non dovra’ avere sempre accesso a tutte le funzionalita’ offerte dal programma. In particolare, la funzione 1 non sara’ attiva fino a quando l’utente non avra’ selezionato una directory valida (esistente e con privilegi di scrittura per l’utente corrente) attraverso la funzione 2.

Ulteriori note

  • Il progetto dovra’ essere realizzato individualmente. • Il programma dovrà essere scritto in codice ANSI C standard, al fine di garantirne il più ampio livello di portabilità possibile. Non e’ ammesso, a meno che tale possibilità non sia esplicitata nel testo d’esame o nelle FAQ pubblicate su Dolly, l’utilizzo di comandi propri del sistema operativo in uso. Il programma dovra’ essere in grado di “girare” allo stesso modo su qualsiasi piattaforma.
  • Il programma dovra’ essere adeguatamente commentato. Non abbiate paura di essere eccessivamente prolissi nei vostri commenti.
  • Il programma dovra’ rispettare in maniera assolutamente rigorosa le specifiche illustrare in questo documento. Qualsiasi modifica rispetto allo schema ivi delineato ed apportata in maniera arbitraria verra’ considerata un errore. Per qualsiasi dubbio o chiarimento si prega di utilizzare il forum.
  • L’ambiente di riferimento deve essere inteso come una matrice di valori interi. Ogni cella avra’ valore 0 o 1 a seconda del credo politico dell’individuo che la abita.
  • All’avvio del programma, ogni cella sara’ occupata con probabilita’ 0.5 da un individuo con credo politico 0. Con la medesima probabilita’ la cella sara’ occupata da un individuo con credo politico 1.
    Il programma dovra’ visualizzare a schermo lo stato corrente della matrice ad ogni iterazione, passando automaticamente dall’una alla successiva, ma lasciando all’utente tempo sufficiente per osservare i cambiamenti in atto.
  • Il programma dovra’ appoggiarsi ad un file esterno, chiamato parametri.dat (contenuto nella stessa directory nella quale sono memorizzati i sorgenti del software), nel quale saranno specificati tutti i dettagli della simulazione. Il file in questione (ovviamente creato come plain text, senza alcun tipo di formattazione) dovra’ essere composto da sei righe. Nelle righe del file verranno specificati rispettivamente: il numero di righe dell’ambiente/matrice di riferimento, il numero di colonne, il valore di soglia da utilizzare per definire le nuove credenze politiche degli individui, il tempo di attesa (in millisecondi) tra la visualizzazione di due stati successivi della matrice, il comportamento da adottare in caso di uguaglianza con il valore del soglia.
  • Al termine di ogni iterazione, il programma deve salvare alcune statistiche in appositi e separati file di testo (contenuti nella directory specificata attraverso la funzione 2 del menu principale). Queste statistiche sono: numero di sostenitori dell’idea 0, numero di sostenitori dell’idea 1, percentuale di sostenitore dell’idea 0 sul totale, percentuale di sostenitori dell’idea 1 sul totale. La struttura di questi files di testo deve essere estremamente semplice: si consiglia di scrivere semplicemente un valore per riga. Al termine del programma, in un file a parte dovra’ essere anche salvato lo stato finale dell’ambiente/matrice di riferimento.
  • Lo studente dovra’ provare diverse condizioni sperimentali ed allegare al proprio software i risultati ottenuti da ciascuna di esse. Tali condizioni sono:
    • matrice 50×50, 100 iterazioni, valore di soglia=4, l’individuo diventa/rimane sostenitore di 1 se il valore di soglia viene raggiunto;
    • matrice 50×50, 100 iterazioni, valore di soglia=4, l’individuo diventa/rimane sostenitore di 0 se il valore di soglia viene raggiunto;
    • matrice 50×50, 100 iterazioni, valore di soglia=3, l’individuo diventa/rimane sostenitore di 1 se il valore di soglia viene raggiunto;
    • matrice 100×100, 1000 iterazioni, valore di soglia=4, l’individuo diventa/rimane sostenitore di 1 se il valore di soglia viene raggiunto.

Pagina Successiva »