quando un’immagine vale piu’ di 1000 parolechi sono • riccardo govoni - [email protected]...

33
Quando un’immagine vale piu’ di 1000 parole Riccardo Govoni Linux day - 27/10/2007 - Imola

Upload: others

Post on 23-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Quando un’immaginevale piu’ di 1000 parole

Riccardo GovoniLinux day - 27/10/2007 - Imola

Page 2: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Chi sono

• Riccardo Govoni - [email protected]

• 5+ anni di esperienza su Java e Linux

• autore per OnJava.com , Javaworld.com , DevX.com

• certificato SCJP

• Google Software Engineer (quasi)

• http://www.battlehorse.net

Page 3: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Obiettivo

• risparmiare tempo!

• aka:

• dato un problema o dominio da analizzare, ottenere il piu’ in fretta possibile il maggior numero di informazioni

• quindi:

• perche’ non usare un’immagine?

• Il cervello interpreta le immagini molto piu’ facilmente del testo.

Page 4: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Obiettivo (2)

Page 5: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Considerazioni

• Parleremo principalmente di situazioni collegate allo sviluppo software

• ... ma l’approccio e’ generale

• costruire rappresentazioni grafiche complete upfront e’ costoso

• e’ piu’ conveniente usare soluzioni quick-and-dirty adattate ad una specifica porzione del problema

Page 6: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Agenda

• Ruby

• GraphViz Dot

• Esempi & Demos

• Extras ( JUNG , DSM e altre sigle )

Page 7: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Ruby

• Linguaggio di programmazione:

• Intepretato

• Dinamico

• Orientato agli Oggetti

• Yukihiro “Matz” Matsumoto , 1995

• Va di moda (aka potete usare Perl, Python etc... con gli stessi risultati )

Page 8: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Ruby (istantaneo)puts “Fruit Salad!”

ingredients = [] << “orange” << “apple” << “strawberry” << “blueberry” << “banana”

your_salad = ingredients.sort_by { |a| rand }[0..2]

puts your_salad

[“banana”,”strawberry”,”apple”]

my_salad = ingredients.sort_by { |a| rand }[0..2]

puts my_salad

[“apple”, “blueberry”,”orange”]

Page 9: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

GraphViz

• Tool automatizzato per la generazione di grafi

• Utilizza input testuali e produce vari formati grafici ( png , svg ... )

• Sviluppato da AT&T , Common Public License

• http://www.graphviz.org

Page 10: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

GraphViz (istantaneo)digraph G {

a -> b

a -> c

c -> d

c [shape=box,fillcolor=red,style=filled]

}

Page 11: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Esempi

• Sistemi di servizi distribuiti e asincroni

• Sistemi di dipendenze

• Social Networks

• Relazioni causa-effetto

• e molti altri ...

Page 12: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Servizi distribuiti e async

• SOA , Queue Networks , WebServices, Message Routing ... e che roba e’ ?

• Demo: Starbucks !

Page 13: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Starbucks

Page 14: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Starbucks: l’idea

• L’idea creativa e’ stata quella di:

• ottenere una pagina animata “gratis” sfruttando i tag di refresh di una pagina Html e rigenerando continuamente il grafo

Page 15: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Sistemi di dipendenze

• Dipendenze statiche in sorgenti

• C : #include <linux/socket.h>

• Java: import java.util.Map ;

Page 16: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Sistemi di dipendenze

• Makefiles & Builders :

• Makefile

• Ant

<target name="deploy"

depends="compile, test, package" />

Page 17: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Sistemi di dipendenze

• Ubuntu & Debian package repository

Page 18: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Ubuntu Rails deps.

Page 19: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Openoffice deps

Page 20: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Tomboy?

Page 21: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Ubuntu deps: l’idea

• L’idea creativa e’ stata quella di:

• usare un tool di “screen-scraping” (Hpricot) per estrarre informazioni dal web, in assenza di una rappresentazione completa del dominio di analisi in locale

Page 22: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

socket.h deps

• Grafo delle dipendenze da socket.h in Linux Kernel 2.6.23

Page 23: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Social Networks

• ENRON

• scandalo finanziario nel 2001

• corpus di mail pubblico per effetto delle indagini giudiziarie

• http://www.cs.cmu.edu/~enron/

• 200.000 e-mails , 160 utenti

• buon dataset per studiare relazioni sociali

Page 24: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Enron Network

• Approccio all’analisi :

• Estrarre i campi From: e To: delle mail

• Assegnare peso maggiore ai destinatari piu’ gettonati

• Assegnare legami piu’ forti alle coppie di persone che si scambiano piu’ mail

• Demo!

Page 25: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Enron Network

Page 26: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Enron network• Una rappresentazione visuale puo’ fornire

nuovi strumenti di indagine

• Es. : algoritmi di clustering visuale

Page 27: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Enron: l’idea

• l’idea creativa e’ stata quella di :

• utilizzare informazioni visive (colore, spessore,vicinanza) per rappresentare in modo intuitivo diverse dimensioni del problema in analisi

Page 28: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Social Networks

• Altre idee:

• LinkedIn

• FaceBook

Page 29: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Altre idee• Relazioni causa-effetto:

• parsing dei log di webserver associando URL richiesti con i rispettivi REFERER

• Si ottiene il grafo dei clickstream sul proprio sito: quali sono i path piu’ frequenti?

Page 30: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Altre idee

• Esistono tante e diverse forme di visualizzazione di uno stesso dominio

• Spesso l’idea nasce da problemi diversi da quello in analisi.

• Es. : Dependency Structure Matrix (DSM).

• Nasce da considerazioni algebriche, ma si applica anche al software

Page 31: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

DSM

Page 32: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Quindi?

• Di solito, anche un piccolo software ricopre un dominio troppo ampio per tenerlo a mente

• Oppure si opera in campo distribuito e/o con visione parziale dei dati

• Un buon linguaggio di scripting e gli strumenti adatti possono venirci incontro, se usati in modo creativo!

Page 33: Quando un’immagine vale piu’ di 1000 paroleChi sono • Riccardo Govoni - battlehorse@gmail.com • 5+ anni di esperienza su Java e Linux • autore per OnJava.com , Javaworld.com

Domande?

“Beware of bugs in the previous code; I have only proved it correct, not tried it.”

-- Don Knuth (creatore di TeX)