<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2684916635128969082</id><updated>2011-11-12T14:06:41.331+01:00</updated><category term='dizionario'/><category term='xml'/><category term='flash'/><category term='gtd'/><category term='ifpug'/><category term='xsl'/><category term='charts'/><category term='feed'/><category term='javascript'/><category term='air'/><category term='java'/><category term='function-points'/><category term='web'/><category term='stumbleupon'/><category term='ajax'/><category term='as3'/><category term='development'/><category term='ubiquity'/><category term='robot'/><category term='adobe'/><category term='roma'/><category term='air1.5'/><category term='grammatica'/><category term='lingue'/><category term='pdf'/><category term='firefox'/><category term='jquery'/><category term='fop'/><category term='fo'/><category term='metrics'/><category term='FP'/><category term='software'/><category term='rss'/><category term='atac'/><category term='internet'/><category term='email'/><category term='productivity'/><category term='bookmarking'/><category term='actionscript'/><category term='wave'/><category term='loc'/><category term='metriche'/><category term='google'/><category term='giapponese'/><title type='text'>Using My Pc</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://usingmypc.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://usingmypc.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Daniele Mazzoni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--WKyMC40P-g/AAAAAAAAAAI/AAAAAAAALzk/r-1J-ZA1W_s/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2684916635128969082.post-1367444298166233681</id><published>2011-09-12T15:51:00.001+02:00</published><updated>2011-09-13T07:22:59.116+02:00</updated><title type='text'>A che servono i certificati Java</title><content type='html'>&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-lgF2XJVjc2g/Tm3_A_WTVrI/AAAAAAAAKfw/H4gzX3qxlgQ/s1600/Wave.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-lgF2XJVjc2g/Tm3_A_WTVrI/AAAAAAAAKfw/H4gzX3qxlgQ/s200/Wave.jpg" width="110" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Duke - la Mascotte Java&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Finora ho lavorato molto piú spesso con &lt;b&gt;Java &lt;/b&gt;che con altri linguaggi di programmazione.&lt;br /&gt;Ho iniziato l'università nel 1998 a Roma Tre quando un giovane &lt;a href="http://cabibbo.dia.uniroma3.it/"&gt;Prof. Cabibbo&lt;/a&gt; ha insegnato per la prima volta agli studenti del primo anno della facoltà di Ingegneria Informatica &lt;a href="http://cabibbo.dia.uniroma3.it/fie/"&gt;i fondamenti di Programmazione Object-Oriented&lt;/a&gt; attraverso lo studio delle basi di Java.&lt;br /&gt;Era quasi un gioco. Semplice, intuitivo e divertente, il linguaggio mi ha subito preso. E mi ha accompagnato in seguito anche nella vita lavorativa.&lt;br /&gt;Nonostante sia un buon programmatore, forse mi manca un po' di quel perfezionismo e la pulizia che ad alcuni viene quasi spontaneamente, ma cerco nel tempo di migliorarmi.&lt;br /&gt;Anche per questo e per voler dimostrare di aver raggiunto un certo livello, mentre lavoravo a Dublino nel 2007-2008 per il supporto di WebSphere Portal ho deciso di studiare per l'esame SCJP che in quel momento era alla versione Java 6 SE (solo da pochissimo è arrivata la 7, d'altra parte).&lt;br /&gt;Dopo aver sostenuto e superato l'esame con Prometric (&lt;a href="http://bit.ly/kOlHRE"&gt;da giugno Oracle usa invece La Pearson VUE&lt;/a&gt;) ho ricevuto con orgoglio la tessera e il certificato timbrato ufficiale del livello raggiunto. Un paio d'anni piú tardi ho anche conseguito il certificato Java per applicazioni web SCWCD e ho aggiunto quel certificato al mio curriculum.&lt;br /&gt;&lt;br /&gt;&lt;div style="color: #444444;"&gt;Quello che ho ottenuto con questi esami:&lt;/div&gt;&lt;b&gt;Ho tenuto viva la passione per Java.&lt;/b&gt; Lo studio deve continuare anche durante la vita lavorativa e per quanto ci siano persone che hanno una propensione per lo studio, impostare un obiettivo come quello di un esame mi ha certamenete aiutato a studiare di piú attraverso strumenti come Java Black Belt (ora &lt;a href="http://knowledgeblackbelt.com/"&gt;http://knowledgeblackbelt.com&lt;/a&gt; ) o i fantastici libri della serie &lt;a href="http://www.headfirstlabs.com/readme.php"&gt;Head First&lt;/a&gt;.&lt;br /&gt;&lt;b&gt;Ho aggiunto degli argomenti di discussione per i miei colloqui lavorativi.&lt;/b&gt; Per quanto col passare degli anni, gli argomenti di conversazione abbondino grazie alle esperienze lavorative pregresse, è fondamentale dimostrare di essere capaci di qualcosa di piú che il semplice lavoro impiegatizio. Un certificato simile voluto e ottenuto privatamente durante il tempo libero è un buon esempio.&lt;br /&gt;&lt;b&gt;Ho superato i momenti difficili trovando l'orgoglio. &lt;/b&gt;Non tutti i periodi a lavoro possono essere interessanti e come li vogliamo. Durante quelle fasi, un progetto personale di studio può dare soddisfazioni che momentaneamente a lavoro non si trovano e magari aprire anche orizzonti per un prossimo futuro.&lt;br /&gt;&lt;br /&gt;&lt;div style="color: #444444;"&gt;Quello che &lt;b&gt;non &lt;/b&gt;ho ottenuto con gli esami:&lt;/div&gt;&lt;b&gt;Non sono diventato un programmatore migliore &lt;/b&gt;per questo. Lo studio per un esame a risposta multipla non insegna a essere un programmatore migliore. E' piuttosto con la pratica che si possono avere quei risultati applicando lo studio ad esempio del codice prodotto da programmatori piú esperti e piú portati di noi.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2684916635128969082-1367444298166233681?l=usingmypc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usingmypc.blogspot.com/feeds/1367444298166233681/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://usingmypc.blogspot.com/2011/09/che-servono-i-certificati-java.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/1367444298166233681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/1367444298166233681'/><link rel='alternate' type='text/html' href='http://usingmypc.blogspot.com/2011/09/che-servono-i-certificati-java.html' title='A che servono i certificati Java'/><author><name>Daniele Mazzoni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--WKyMC40P-g/AAAAAAAAAAI/AAAAAAAALzk/r-1J-ZA1W_s/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-lgF2XJVjc2g/Tm3_A_WTVrI/AAAAAAAAKfw/H4gzX3qxlgQ/s72-c/Wave.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2684916635128969082.post-6444581368724685895</id><published>2011-09-06T12:35:00.000+02:00</published><updated>2011-09-06T12:35:39.067+02:00</updated><title type='text'>Safari Books Online</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-u-N3N-5nYqU/TmX2J-m0_-I/AAAAAAAAKfI/ac1N1iFDiW4/s1600/logo_sbo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-u-N3N-5nYqU/TmX2J-m0_-I/AAAAAAAAKfI/ac1N1iFDiW4/s1600/logo_sbo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;Oggi, dopo un anno di silenzio, volevo parlare di &lt;a href=""&gt;&lt;/a&gt;&lt;a href="http://my.safaribooksonline.com/"&gt;Safari Books Online&lt;/a&gt; &lt;br /&gt;Proprio pochi giorni fa &lt;a href="http://blog.safaribooksonline.com/2011/08/31/september-2011-safari-books-online-turns-10-years-old/%20"&gt;questo servizio ha compiuto 10 anni&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;L'idea è semplice: sono eBook disponibili online. Si paga circa 30 dollari al mese per il pacchetto intermedio che comprende l'accesso completo a tutte le anteprime dei libri e un limite di 10 libri al mese da tenere nel proprio scaffale virtuale.&lt;br /&gt;10 libri al mese sono tanti. Soprattutto considerando che si tratta di tomi di volume (virtuale) non indifferente e di contenuto che necessita di tempo e possiblmente di pratica per essere assimilato.&lt;br /&gt;Se non fosse abbastanza comunque è disponibile un pacchetto con un prezzo maggiore ed accesso illimitato.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;I vantaggi:&lt;/u&gt;&lt;br /&gt;1) &lt;b&gt;La libreria che si ha a disposizione è immensa&lt;/b&gt;. 16000 libri di ogni genere legati al mondo professionale dell'IT.&lt;br /&gt;2)&lt;b&gt; La libreria è a portata di internet&lt;/b&gt;. Se hai internet, hai anche il tuo libro. Quindi a lavoro sul pc, ma anche sul tuo tablet preferito e perfino sul tuo smartphone (se hai occhi buoni). Pare che anche il kindle sia abilitato a leggere - data una connessione - il contenuto ma io alla data di oggi non sono ancora in grado di effettuare l'accesso.&lt;br /&gt;3) &lt;b&gt;La libreria è ricercabile&lt;/b&gt;. Questo viene col formato elettronico ma se i libri sono 16000 di roba da cercare ce n'è parecchia ed è difficile rimanere senza documentazione su un qualunque argomento.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Gli svantaggi:&lt;/u&gt;&lt;br /&gt;1) &lt;b&gt;Ogni mese si paga, anche se non ogni mese magari si legge&lt;/b&gt;. Se siete persone che non fanno affidamento a manuali per documentarsi, se non avete tempo regolarmente di continuare la formazione, questo pacchetto probabilmente non fa per voi ed è meglio comprare PDF quando necessario.&lt;br /&gt;2) &lt;b&gt;La libreria è a portata di internet&lt;/b&gt;. Se non si è in possesso di una connessione 3G e quantomeno di uno smartphone per usarla, il 50% del valore del pacchetto si perde per strada. Se a lavoro l'accesso a internet è molto ristretto, il valore potrebbe perdersi del tutto.&lt;br /&gt;3) &lt;b&gt;La documentazione è in inglese&lt;/b&gt;. Ancora non sai l'inglese? Allora prima spendi i soldi per un corso serio di lingua e poi torna a leggere questo post. :)&lt;br /&gt;&lt;br /&gt;Detto questo, la mia esperienza è positiva e al momento sto leggendo (e provando a mettere in pratica)&lt;a href="http://my.safaribooksonline.com/book/-/9780981531649"&gt; le basi di Scala&lt;/a&gt;, dopo aver finito di leggere un bel&lt;a href="http://my.safaribooksonline.com/book/programming/9780596809515"&gt; libro pieno di consigli per programmatori&lt;/a&gt; e sfogliandone &lt;a href="http://my.safaribooksonline.com/book/networking/9780596804398"&gt;altri&lt;/a&gt; &lt;a href="http://my.safaribooksonline.com/book/software-engineering-and-development/software-requirements/0735618798"&gt;2&lt;/a&gt; o &lt;a href="http://my.safaribooksonline.com/book/software-engineering-and-development/project-management/9781933890517"&gt;3&lt;/a&gt; di temi non vicini al mio lavoro di tutti i giorni.&lt;br /&gt;&lt;br /&gt;Il servizio offre anche pacchetti per gruppi di lavoro o aziende, che possono risultare interessanti per la vostra azienda. &lt;br /&gt;L'idea è che bisogna continuare a incuriosirsi di ciò che fa parte del nostro mondo lavorativo, fratelli informatici!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2684916635128969082-6444581368724685895?l=usingmypc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usingmypc.blogspot.com/feeds/6444581368724685895/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://usingmypc.blogspot.com/2011/09/safari-books-online.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/6444581368724685895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/6444581368724685895'/><link rel='alternate' type='text/html' href='http://usingmypc.blogspot.com/2011/09/safari-books-online.html' title='Safari Books Online'/><author><name>Daniele Mazzoni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--WKyMC40P-g/AAAAAAAAAAI/AAAAAAAALzk/r-1J-ZA1W_s/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-u-N3N-5nYqU/TmX2J-m0_-I/AAAAAAAAKfI/ac1N1iFDiW4/s72-c/logo_sbo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2684916635128969082.post-5828832255297695867</id><published>2010-08-17T16:17:00.011+02:00</published><updated>2010-08-17T16:58:40.974+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='gtd'/><title type='text'>Gmail Zero-eMail-Zen</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0AfM86qXG-U/TGqjL7a-gYI/AAAAAAAAED8/64or3_1NAZk/s1600/gmail.jpg"&gt;&lt;img style="cursor: pointer; width: 595px; height: 232px;" src="http://2.bp.blogspot.com/_0AfM86qXG-U/TGqjL7a-gYI/AAAAAAAAED8/64or3_1NAZk/s400/gmail.jpg" alt="" id="BLOGGER_PHOTO_ID_5506392919738581378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Per lavorare in modo efficiente cerco di configurare la mia casella di posta in modo efficace tramite l'applicazione di pochi piccoli accorgimenti che il client web di Gmail rende semplici ma che si possono usare anche tramite altri client di posta.&lt;br /&gt;&lt;br /&gt;L'accorgimento più importante per tenere una casella di email il più  possibile pulita (almeno per ora) è cercare di non lasciare le email ad  attendere nell'inbox.&lt;br /&gt;Seguendo anche i consigli di Merlin Mann, ad esempio di &lt;a href="http://video.google.com/videoplay?docid=973149761529535925#"&gt;questo video&lt;/a&gt; (e seguendo i consigli di &lt;a href="http://en.wikipedia.org/wiki/Getting_Things_Done"&gt;GTD&lt;/a&gt;),&lt;br /&gt;&lt;br /&gt;Ogni email deve finire il prima possibile (subito!) in uno dei seguenti modi:&lt;br /&gt;1) essere cancellata / archiviata&lt;br /&gt;2) ottenere una risposta&lt;br /&gt;3) essere inoltrata / delegata a qualcuno&lt;br /&gt;4) essere rimandata a più tardi senza rimanere nell'inbox&lt;br /&gt;5) causare un tuo lavoro - ogni tanto purtroppo bisogna lavorare - ed eventualmente una risposta a riguardo&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Alcune di queste azioni hanno bisogno di una persona attiva - non ho ancora capito se lo sono davvero - ma altre per fortuna possono essere almeno in parte automatizzate.&lt;br /&gt;Fra le cose che ho configurato nel mio ambiente Gmail, le più importanti sono (fra parentesi segnalo l'obiettivo che aiutano a raggiungere):&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;a) &lt;/span&gt;Le email che arrivano da indirizzi di lavoro vengono etichettate come tali in modo che si possano più facilmente ritrovare, archiviare all'occorrenza per nasconderle anche come non lette e poi essere facilmente recuperate la mattina successiva. &lt;span style="font-style: italic;"&gt;(1, 4)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;b)&lt;/span&gt; Le email per le quali aspetto una risposta, le etichetto con una label "waiting" e le mando in copia nascosta anche a me, in modo che tramite un filtro possa archiviarle e tenerne traccia nella vista "waiting". &lt;span style="font-style: italic;"&gt;(3)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;c)&lt;/span&gt; Gli appunti che scovo in giro per il web cerco di salvarli tramite l'ottimo strumento gratuito &lt;a href="http://www.springpadit.com/"&gt;springpadit.com&lt;/a&gt; ma se mi trovo ad avere accesso solo alla posta, mi mando una email con subject "memo" e filtro tale email archiviandola ed etichettandola pronta per essere letta più tardi.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;d)&lt;/span&gt; Sto anche usando un prodotto in beta che aiuta molto, si chiama &lt;a href="http://www.baydin.com/boomerang4gmail/"&gt;boomerang4gmail&lt;/a&gt;, e anche se non è fondamentale avere un tool del genere, aiuta molto poter rimandare o delegare stando attenti a verificare se si è ricevuto una risposta. Vale la pena farci un giro. &lt;span style="font-style: italic;"&gt;(3, 4)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;e) &lt;/span&gt;Uso un gran bel gruppo filtri per cancellare / archiviare molte newsletter et similia non richieste che non voglio nemmeno mettermi a controllare o su notifiche da social web che voglio controllare solo quando decido io&lt;span style="font-style: italic;"&gt;. (1)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tutto questo dovrebbe servire a passare meno tempo sulla posta e più tempo sul proprio lavoro e sulle cose che più interessano, senza però lasciare in uno stato disastroso la propria inbox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2684916635128969082-5828832255297695867?l=usingmypc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usingmypc.blogspot.com/feeds/5828832255297695867/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://usingmypc.blogspot.com/2010/08/gmail-zero-email-zen.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/5828832255297695867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/5828832255297695867'/><link rel='alternate' type='text/html' href='http://usingmypc.blogspot.com/2010/08/gmail-zero-email-zen.html' title='Gmail Zero-eMail-Zen'/><author><name>Daniele Mazzoni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--WKyMC40P-g/AAAAAAAAAAI/AAAAAAAALzk/r-1J-ZA1W_s/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0AfM86qXG-U/TGqjL7a-gYI/AAAAAAAAED8/64or3_1NAZk/s72-c/gmail.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2684916635128969082.post-6261304733735255401</id><published>2010-01-29T12:53:00.003+01:00</published><updated>2010-01-29T12:58:21.523+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='metriche'/><category scheme='http://www.blogger.com/atom/ns#' term='function-points'/><category scheme='http://www.blogger.com/atom/ns#' term='metrics'/><category scheme='http://www.blogger.com/atom/ns#' term='loc'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='ifpug'/><category scheme='http://www.blogger.com/atom/ns#' term='FP'/><title type='text'>Metriche del software</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; "&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Obiettivi possibili delle metriche:&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;1) Provare a predirre la quantità di nuovi moduli o modifiche da sviluppare&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;2) Valutare lo sforzo impiegato per svilupparlo&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;E' da valutare prima di tutto quanto tempo si può impiegare nella misura delle metriche per non generare un overhead nella generazione di queste statistiche.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;hr class="pb" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; page-break-after: always; height: 1px !important; width: 1252px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; text-align: center; "&gt;&lt;b&gt;&lt;span style="font-size:180%;"&gt;Predirre la quantità di nuovi moduli o modifiche da sviluppare&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;span style="font-size:130%;"&gt;Predirre in base ai requisiti&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Per il primo caso ci si può basare sui Punti Funzione. &lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Questo metodo è difficile da usare e può portare a valutazioni disparate a seconda delle interpretazioni dei requisiti, della variabilità dei requisiti stessi [4][5].&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;A parte il peso, comunque, la valutazione delle interfacce da costruire e la valutazione di tutti gli input e output da implementare può avere un valore ma deve essere considerata la volatilità dei requisiti che si vanno a implementare, per cui gli Unadjusted Function Points (UFP) possono risultare differenti a seconda della variabilità dei requisiti esposti.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Calcolo dei punti:&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;I punti vengono calcolati in base a &lt;b&gt;interfacce interne&lt;/b&gt; (come tabelle di un proprio database), &lt;b&gt;interfacce esterne&lt;/b&gt; (web services o interfacce gestite dal di fuori dei confini dell'applicazione - più comuni nelle nostre applicazioni) e tre tipi di processi che elenco di seguito:&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;EI - &lt;b&gt;External Input&lt;/b&gt;: processo elementare di input di dati dall'esterno, ad esempio tramite un form o tramite un file xml esterno (come quelli di alfresco)&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;EO - &lt;b&gt;External Output:&lt;/b&gt; processo elementare di output verso l'esterno (in genere verso l'utente) che necessitano di una logica più o meno complessa per la generazione dei dati&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;EQ - &lt;b&gt;External Inquiry&lt;/b&gt;: come EO ma non necessita di logica nell'applicazione per il calcolo dei dati da mostrare. Questi vengono solo recuperati e dati all'esterno.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Gli UFP possono poi essere pesati in base a un indice VAF che ripende da varie considerazioni sul software che si sviluppa. Questo indice può variare considerevolmente il risultato dei punti funzione e spesso è criticato per la sua soggettività. I pesi da valutare sono fondamentali per la giusta pesatura e dipendono anche molto dalla esperienza del valutatore.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Più una metrica dipende dall'esperienza del valutatore, più non si può considerare una metrica ma una stima. [7]&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Purtroppo la fonte principale [A] è una fonte chiusa, a pagamento, probabilmente anche per i corsi e certificazioni che propone.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; text-align: center; "&gt;&lt;b&gt;Alcune considerazioni a prima vista&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Le nostre &lt;b&gt;interfacce interne sono poche&lt;/b&gt;. La maggior parte dei processi prendono dati da fonti esterni alle nostre applicazioni e non abbiamo nostri database.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;In generale i punti funzione non valutano gli &lt;b&gt;interventi non funzionali &lt;/b&gt;e il lavoro di alcuni può essere meno facilmente valutato tramite questo strumento (interventi sulla performance, sullo stile di visualizzazione, etc.)&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Il processo è &lt;b&gt;molto incentrato sugli output e gli input &lt;/b&gt;e la valutazione di processi Machine to Machine, processi schedulati e altri processi non funzionali devono essere valutati in modo speciale (ad esempio come output non verso l'utente).&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Gli interventi di &lt;b&gt;manutenzione &lt;/b&gt;(evolutiva o correttiva) possono essere valutati ma hanno un valore molto relativo. Per la misura di questo tipo di interventi si può valutare una funzione più ragionata come [9] ma risulta poi quantomeno difficile il confronto con i punti calcolati per nuove funzioni.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;u&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;hr class="pb" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; page-break-after: always; height: 1px !important; width: 1252px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; text-align: center; "&gt;&lt;b&gt;&lt;span style="font-size:180%;"&gt;Valutare lo sforzo, le ore impiegate per sviluppare software&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Per valutare il codice sviluppato si possono usare varie metriche.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Avendo la fortuna di lavorare con Eclipse ci si può avvalere di plugin come quello a [2] per calcolarle senza troppi sforzi.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Probabilmente la cosa migliore e più utile sarebbe pesare vari criteri per il calcolo dello sforzo totale (S):&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;1) Il numero di classi create e modificate ha un peso (CC)&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;2) La complessità del codice sviluppato (tramite ad esempio la complessità ciclomatica di McCabe) ha un peso (McC)&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;3) Le linee di codice vanno pesate in una valutazione (LOC)&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;4) Si deve quindi pesare in base al numero di  punti funzione valutati (UFP)&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;es di funzione per un intervento:&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; text-align: center; "&gt;&lt;img src="https://www.google.com/chart?cht=tx&amp;amp;chf=bg,s,FFFFFF00&amp;amp;chco=000000&amp;amp;chl=S%20%3D%20UFP%20%20%5Ctimes%20%5Calpha%20CC%20%20%5Ctimes%20%5Cbeta%20LOC%20%20%5Ctimes%20%5Cgamma%20McC" alt="S = UFP  \times \alpha CC  \times \beta LOC  \times \gamma McC" class="ee_img tr_noresize" eeimg="1" style="vertical-align: middle; " /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Il risultato può essere pesato in base a dei feedback dovuti a parametri quali quelli che seguono.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;A) Le ore dichiarate dalla persona come lavorate su un certo task possono essere valutate eventualmente per un confronto nel tempo col risultato ottenuto dalle metriche.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;B) Allo stesso modo, il numero delle ore previste per la lavorazione di una certa funzione possono essere confrontate eventualmente nel tempo con i risultati delle metriche per la correzione delle previsioni stesse e per la valutazione delle metriche ottenute.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Nota: per una valutazione più giusta, bisognerebbe prendere in considerazione nel lavoro svolto, la mantenibilità del codice prodotto, in modo da favorire la tendenza verso un codice più mantenibile che garantisce meno lavoro la volta successiva. [3] Purtroppo gli strumenti che ho trovato per eclipse che calcolano l'indice di mantenibilità sono a pagamento.&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;Sarebbe auspicabile avere un modulo software che calcola quanto sopra in modo da non dover impiegare tempo nella valutazione ma il calcolo dei punti funzione probabilmente implica per forza una valutazione della persona in base ai requisiti e si può arrivare solo all'uso di un form da riempire online [6].&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;hr class="pb" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; page-break-after: always; height: 1px !important; width: 1252px; "&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;span class="Apple-style-span"   style="font-family:arial, sans-serif;color:#228822;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;span style="font-family: arial, sans-serif; color: rgb(34, 136, 34); "&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;span style="font-family: arial, sans-serif; color: rgb(34, 136, 34); "&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;Riferimenti:&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;[A] - &lt;a href="http://docs.google.com/viewer?url=http://www.ifpug.org/publications/CPM%25204.3%2520-%2520Table%2520of%2520Contents%2520Excerpts.pdf"&gt;http://www.ifpug.org&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;[1] - &lt;a href="http://docs.google.com/viewer?url=http://www.dcs.qmul.ac.uk/~martin/index_files/Software%2520metrics%2520future%2520directions.pdf"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;http://www.dcs.qmul.ac.uk/~martin/index_files/Software%20metrics%20future%20directions.pdf&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;a href="http://docs.google.com/viewer?url=http://www.dcs.qmul.ac.uk/~martin/index_files/Software%2520metrics%2520future%2520directions.pdf"&gt;&lt;/a&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;[2] - &lt;a href="http://metrics2.sourceforge.net/"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;http://metrics2.sourceforge.net/&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;[3] - &lt;a href="http://www.stsc.hill.af.mil/Crosstalk/2001/08/welker.html"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;http://www.stsc.hill.af.mil/Crosstalk/2001/08/welker.html&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;[4] - &lt;span style="font-size:85%;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;a id="s6tn" href="http://docs.google.com/viewer?url=http://www.dmi.unict.it/~nicolosi/LezioniPS200809/Lezione8.pdf" title="www.dmi.unict.it/~nicolosi/LezioniPS200809/Lezione8.pdf"&gt;www.dmi.unict.it/~nicolosi/LezioniPS200809/Lezione8.pdf&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;&lt;span style="font-size:85%;"&gt;[5] - &lt;a href="http://www.codeproject.com/KB/architecture/Calculate_Function_Point.aspx"&gt;&lt;span style="font-size:85%;"&gt;http://www.codeproject.com/KB/architecture/Calculate_Function_Point.aspx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;[6] - &lt;a href="http://www.engin.umd.umich.edu/CIS/course.des/cis525/js/f00/harvey/FP_Calc.html"&gt;http://www.engin.umd.umich.edu/CIS/course.des/cis525/js/f00/harvey/FP_Calc.html&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;[7] - &lt;a href="http://devdaily.com/FunctionPoints/node29.shtml"&gt;http://www.devdaily.com/FunctionPoints/node29.shtml&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;[8] - &lt;a href="http://www.devdaily.com/FunctionPoints/"&gt;http://www.devdaily.com/FunctionPoints/&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; direction: inherit; "&gt;[9] - &lt;span style="font-family: arial, sans-serif; "&gt;&lt;a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.41.4490&amp;amp;rep=rep1&amp;amp;type=pdf" style="color: rgb(0, 0, 204); "&gt;&lt;u&gt;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.41.4490&amp;amp;rep=rep1&amp;amp;type=pdf&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2684916635128969082-6261304733735255401?l=usingmypc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usingmypc.blogspot.com/feeds/6261304733735255401/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://usingmypc.blogspot.com/2010/01/metriche-del-software.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/6261304733735255401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/6261304733735255401'/><link rel='alternate' type='text/html' href='http://usingmypc.blogspot.com/2010/01/metriche-del-software.html' title='Metriche del software'/><author><name>Daniele Mazzoni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--WKyMC40P-g/AAAAAAAAAAI/AAAAAAAALzk/r-1J-ZA1W_s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2684916635128969082.post-5937756032637529589</id><published>2009-11-24T10:22:00.002+01:00</published><updated>2009-11-24T10:48:32.319+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='robot'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><title type='text'>Un semplice robot per Google Wave</title><content type='html'>Ho ricevuto ieri un invito per Google Wave e mi sono divertito a verificare come si possa estendere il suo funzionamento. Molte estensioni sono già state sviluppate e &lt;a href="http://googlewavebots.info/wiki/index.php?title=Main_Page"&gt;si possono trovare ad esempio qui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Quel che ho sviluppato io è un semplice robot di test che trasforma una shortcut del tipo&lt;br /&gt;&lt;i&gt;g::simple+query&lt;/i&gt;&lt;br /&gt;in un link a google per la ricerca "&lt;span style="font-style: italic;"&gt;simple+query&lt;/span&gt;".&lt;br /&gt;Il robot si può usare aggiungendolo come partecipante a qualunque wave (tramite l'indirizzo &lt;span style="color: rgb(51, 204, 0);"&gt;automaticlinks@appspot.com&lt;/span&gt;) e qui sotto mostro in un breve video il suo funzionamento semplicissimo.&lt;br /&gt;&lt;br /&gt;A chi volesse provare a creare un robot per google wave, consiglio di andare sul sito&lt;br /&gt;&lt;a href="http://code.google.com/apis/wave/extensions/robots/java-tutorial.html"&gt;http://code.google.com/apis/wave/extensions/robots/java-tutorial.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object id="stV0xTQkdIR1xWQFhZWV1QVFRQ" type="application/x-shockwave-flash" data="http://www.screentoaster.com/swf/STPlayer.swf" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0" height="344" width="425"&gt;&lt;param name="movie" value="http://www.screentoaster.com/swf/STPlayer.swf"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;param name="flashvars" value="video=stV0xTQkdIR1xWQFhZWV1QVFRQ"&gt;&lt;/object&gt;&lt;div style="width: 425px; text-align: right;"&gt;&lt;a href="http://www.screentoaster.com/"&gt;Capture your screen in seconds&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2684916635128969082-5937756032637529589?l=usingmypc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usingmypc.blogspot.com/feeds/5937756032637529589/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://usingmypc.blogspot.com/2009/11/un-semplice-robot-per-google-wave.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/5937756032637529589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/5937756032637529589'/><link rel='alternate' type='text/html' href='http://usingmypc.blogspot.com/2009/11/un-semplice-robot-per-google-wave.html' title='Un semplice robot per Google Wave'/><author><name>Daniele Mazzoni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--WKyMC40P-g/AAAAAAAAAAI/AAAAAAAALzk/r-1J-ZA1W_s/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2684916635128969082.post-7087037064119281931</id><published>2009-10-25T11:08:00.003+01:00</published><updated>2009-10-25T11:15:37.978+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='atac'/><category scheme='http://www.blogger.com/atom/ns#' term='roma'/><category scheme='http://www.blogger.com/atom/ns#' term='ubiquity'/><title type='text'>Atac Roma - un comando per Ubiquity Firefox</title><content type='html'>Fra ieri e oggi mi sono divertito con Ubiquity e la sua estendibilità a nuovi comandi.&lt;br /&gt;Per chi non conosce Firefox Ubiquity, può farsi una idea a questo link:&lt;br /&gt;&lt;a href="http://labs.mozilla.com/ubiquity/"&gt;http://labs.mozilla.com/ubiquity/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Qui sotto metto la presentazione che ho preparato con screentoaster, per spiegare cosa fanno i comandi. &lt;a href="https://wiki.mozilla.org/Labs/Ubiquity/Ubiquity_0.5_Author_Tutorial"&gt;Crearli è abbastanza immediato&lt;/a&gt;, conoscendo un po' di javascript e avendo un minimo di esperienza con le callback di ajax. Si possono raggiungere veramente dei risultati interessanti.&lt;br /&gt;&lt;br /&gt;&lt;object id='stV0xTQkdIR1xZRFtYXVlRV1RX' width='425' height='344' type='application/x-shockwave-flash' data='http://www.screentoaster.com/swf/STPlayer.swf'  codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0'&gt;&lt;param name='movie' value='http://www.screentoaster.com/swf/STPlayer.swf'/&gt;&lt;param name='allowFullScreen' value='true'/&gt;&lt;param name='allowScriptAccess' value='always'/&gt;&lt;param name='flashvars' value='video=stV0xTQkdIR1xZRFtYXVlRV1RX'/&gt;&lt;/object&gt;&lt;div style='width: 425px; text-align: right;'&gt;&lt;a href='http://www.screentoaster.com/'&gt;Screencasts and videos online&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2684916635128969082-7087037064119281931?l=usingmypc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usingmypc.blogspot.com/feeds/7087037064119281931/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://usingmypc.blogspot.com/2009/10/atac-roma-un-comando-per-ubiquity.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/7087037064119281931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/7087037064119281931'/><link rel='alternate' type='text/html' href='http://usingmypc.blogspot.com/2009/10/atac-roma-un-comando-per-ubiquity.html' title='Atac Roma - un comando per Ubiquity Firefox'/><author><name>Daniele Mazzoni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--WKyMC40P-g/AAAAAAAAAAI/AAAAAAAALzk/r-1J-ZA1W_s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2684916635128969082.post-7253104609240752784</id><published>2009-10-06T09:43:00.005+02:00</published><updated>2009-10-06T13:49:13.233+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bookmarking'/><category scheme='http://www.blogger.com/atom/ns#' term='stumbleupon'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='feed'/><category scheme='http://www.blogger.com/atom/ns#' term='rss'/><title type='text'>Feed reader e Social bookmaring</title><content type='html'>&lt;a href="http://www.google.com/reader"&gt;Google reader&lt;/a&gt; e &lt;a href="http://www.stumbleupon.com/"&gt;StumbleUpon&lt;/a&gt; sono i due strumenti con i quali cerco di tenermi aggiornato sulle notizie di vario genere che mi possono interessare.&lt;br /&gt;Mentre il feed reader di Google mi permette di tenere organizzate le notizie da fonti che conosco, Stumbleupon mi sorprende un 10-20% delle volte con contenuti interessanti che non conoscevo.&lt;br /&gt;E' difficile arrivare a tutto quanto c'è di interessante sul web ma è possibile cercare di essere più informati.&lt;br /&gt;Google reader non ha bisogno di spiegazioni. Si possono aggiungere tutti i feed rss dei siti web che si desidera monitorare: quotidiani online, blog, e-magazines di ogni genere.&lt;br /&gt;Stumbleupon invece permette di configurare gli argomenti che ci interessano, variando dalla cucina alla programmazione web, e ci porta su siti votati dagli altri utenti che cadono in quelle categorie, e che vengono quindi considerati interessanti e degni di nota.&lt;br /&gt;Così ad esempio io che sono interessato all'informatica ho trovato &lt;a href="http://jontangerine.com/log/2007/09/the-incredible-em-and-elastic-layouts-with-css"&gt;un bell'articolo&lt;/a&gt; sulle unità di misura em, &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://www.ixedit.com/"&gt;un editor wysiwyg&lt;/a&gt; per la modifica dinamica del dom tramite javascript e l'attesa demo del &lt;a href="http://cg.cs.tsinghua.edu.cn/montage/main.htm"&gt;Photosketch&lt;/a&gt; (ancora non online mentre scrivo).&lt;br /&gt;&lt;br /&gt;A Google reader e Stumbleupon aggiungo a volte &lt;a href="http://www.similarweb.com/"&gt;similarweb&lt;/a&gt; e &lt;a href="http://www.google.com/sidewiki/intl/en/index.html"&gt;google sidewiki&lt;/a&gt;, che al lato della pagina caricata mostrano rispettivamente siti simili e commenti alla pagina che si sta visualizzando, fornendo spunti per ulteriori balzi nella rete.&lt;br /&gt;Ovviamente esistono tanti altri modi per navigare nella rete alla ricerca di contenuti, io uso questi, chissà che non cambi abitudini prossimamente.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2684916635128969082-7253104609240752784?l=usingmypc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usingmypc.blogspot.com/feeds/7253104609240752784/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://usingmypc.blogspot.com/2009/10/feed-reader-e-social-bookmaring.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/7253104609240752784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/7253104609240752784'/><link rel='alternate' type='text/html' href='http://usingmypc.blogspot.com/2009/10/feed-reader-e-social-bookmaring.html' title='Feed reader e Social bookmaring'/><author><name>Daniele Mazzoni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--WKyMC40P-g/AAAAAAAAAAI/AAAAAAAALzk/r-1J-ZA1W_s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2684916635128969082.post-5510748437296699934</id><published>2009-08-30T16:59:00.005+02:00</published><updated>2009-08-30T17:41:57.335+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='fop'/><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><category scheme='http://www.blogger.com/atom/ns#' term='pdf'/><category scheme='http://www.blogger.com/atom/ns#' term='xsl'/><category scheme='http://www.blogger.com/atom/ns#' term='fo'/><title type='text'>Applicare XSL:FO lato server per generare documenti</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://javaboutique.internet.com/tutorials/FOP/blackbox.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 385px; height: 147px;" src="http://javaboutique.internet.com/tutorials/FOP/blackbox.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Molte applicazioni web hanno una fase di produzione di documenti, di reportistica.&lt;br /&gt;Uno degli strumenti usati lato Java per ottenere ciò è l'applicazione dello standard XSL:FO ad esempio tramite la libreria gratuita &lt;a href="http://xmlgraphics.apache.org/fop/"&gt;Apache FOP&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Uno schema  spiega bene come avviene la trasformazione in un caso abbastanza generico.&lt;br /&gt;&lt;br /&gt;Il filtro XSL viene applicato a un XML (statico o generato dinamicamente, non importa) generando eventualmente un documento PDF sotto la supervisione della libreria Apache FOP.&lt;br /&gt;&lt;br /&gt;Quando avrai capito un po' le basi, un tutorial più avanzato come &lt;a style="font-weight: bold;" href="https://www6.software.ibm.com/developerworks/education/x-xslfo2/index.html"&gt;questo&lt;/a&gt; (è necessaria una IBM id gratuita) ti servirà per i dettagli sui vari elementi. Generare liste, tabelle link, indici e complessi layout del documento sono alcuni degli argomenti di questo corso gratuito e molto interessante per chi voglia applicare XSL:FO.&lt;br /&gt;Altri link utili possono sempre essere la "reference" fatta per esempi da &lt;a href="https://www6.software.ibm.com/developerworks/education/x-xslfo2/index.html"&gt;zvon.org&lt;/a&gt; che fornisce uno o più modi di utilizzo quando si ha un dubbio su un tag.&lt;br /&gt;Un altro tutorial interessante è &lt;a href="http://javaboutique.internet.com/tutorials/FOP/"&gt;quello di javaboutique&lt;/a&gt;, che propone 3 sezioni (13 pagine in tutto), la più interessante delle quali è probabilmente la terza riguardo all'inserimento di immagini statiche o dinamicamente generate.&lt;br /&gt;Infine, trovo un po' dispersivo (ma immagino sia completo!) &lt;a href="http://www.cafeconleche.org/books/bible2/chapters/ch18.html"&gt;questo capitolo su XSL:FO&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;Dopo queste segnalazioni,&lt;br /&gt;aggiungo soltanto che i documenti XML sono molto puliti se li si tiene puliti.&lt;br /&gt;Non dimenticarsi mai di indentazione, commenti, separazione delle sezioni renderà il tuo lavoro più semplice e più comprensibile a chi debba prenderlo in carico dopo di te.&lt;br /&gt;Sono passato più di una volta per l'incubo di dover mettere mano a un documento XSL confuso per cambiare una tabella o una intestazione... non auguro a nessuno di passarci. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2684916635128969082-5510748437296699934?l=usingmypc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usingmypc.blogspot.com/feeds/5510748437296699934/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://usingmypc.blogspot.com/2009/08/applicare-xslfo-lato-server-per.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/5510748437296699934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/5510748437296699934'/><link rel='alternate' type='text/html' href='http://usingmypc.blogspot.com/2009/08/applicare-xslfo-lato-server-per.html' title='Applicare XSL:FO lato server per generare documenti'/><author><name>Daniele Mazzoni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--WKyMC40P-g/AAAAAAAAAAI/AAAAAAAALzk/r-1J-ZA1W_s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2684916635128969082.post-1442451291353655419</id><published>2009-08-09T21:33:00.003+02:00</published><updated>2009-08-09T22:27:25.236+02:00</updated><title type='text'>ancora XSLT sul client?</title><content type='html'>Un punto di partenza per XSLT, oltre al &lt;a href="http://www.w3.org/TR/xslt"&gt;documento ufficiale&lt;/a&gt;, può essere questa semplice pagina di esempi:&lt;br /&gt;&lt;a href="http://www.w3schools.com/xsl/xsl_w3celementref.asp"&gt;http://www.w3schools.com/xsl/xsl_w3celementref.asp&lt;/a&gt;&lt;br /&gt;L'idea che c'è alla base è semplice e già consolidata: trasformare un documento xml in un altro documento (XML, HTML...), applicando un filtro.&lt;br /&gt;Il filtro è un documento XML anche lui, che contiene un template con il quale seleziona elementi del documento sorgente e li trasforma, per poi eventualmente mostrarli nel documento risultante.&lt;br /&gt;Il linguaggio per la selezione degli elementi si chiama XPath (alcuni esempi &lt;a href="http://www.w3schools.com/xpath/xpath_examples.asp"&gt;qui&lt;/a&gt;).&lt;br /&gt;Supponendo che il documento XML d'origine contenga i dati, il "foglio di stile" XSLT dà la disposizione della struttura in una separazione contenuto/stile che è sempre tanto ricercata.&lt;br /&gt;Tuttavia se la separazione HTML CSS funziona tanto bene... quella XML XSLT non sembra altrettanto adatta ai browser.&lt;br /&gt;&lt;br /&gt;Nel lontano 2005 ero molto incuriosito dalle trasformazioni xml sul client e ho creato &lt;a href="http://dado21780.altervista.org/imparaparole.xml"&gt;questo sito&lt;/a&gt;, che nel tempo poi ho trasformato varie volte, aggiungendo la libreria prototype e rendendolo molto più dipendente da ajax e controllo del DOM tramite javascript, che dalla vera trasformazione XSLT.&lt;br /&gt;Il linguaggio infatti è ancora valido ma soprattutto per i suoi usi server-side. Il browser è più veloce a gestire le trasformazioni javascript, che sono anche supportate in maggior modo dai diversi browser sebben con tutti le piccole differenze delle varie versioni.&lt;br /&gt;Si suppone che quello che arriva al browser sia già un documento da mostrare e non uno scheletro da trasformare, con pochissime eccezioni.&lt;br /&gt;Quindi pur essendo divertente (e fattibile) l'idea di prendere un feed rss e trasformarlo on the fly sul proprio browser con un foglio di stile XSLT, questo rimane solo un esercizio di bravura, più che una applicazione reale. Sarà meglio affilare le unghie sul server e servire un documento già pronto per un browser. E se proprio ci si vuole sbizzarrire a cambiare qualche cosa nella visualizzazione CSS3 e Javascript possono fare miracoli.&lt;br /&gt;&lt;br /&gt;Altre fonti:&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/841238/client-side-xslt"&gt;Questo articolo&lt;/a&gt; di stackoverflow.com descrive bene in breve i problemi della trasformazione xslt sul client.&lt;br /&gt;Una vera applicazione del XSLT sul client la potete comunque trovare &lt;a href="http://dado21780.altervista.org/daniele.xml"&gt;qui&lt;/a&gt; (il foglio xslt se non lo trovate è &lt;a href="http://dado21780.altervista.org/content.xsl"&gt;questo&lt;/a&gt;)&lt;br /&gt;Un bell'articolo per iniziare a mettere le mani su XSL (&lt;a href="http://24ways.org/2006/beautiful-xml-with-xsl"&gt;link&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Rimando il discorso alle trasformazioni xslt e xslfo sul server eventualmente a un'altra volta. Un buon punto di partenza per gli appassionati di Java cmq può essere &lt;a href="http://www.oreillynet.com/pub/a/oreilly/java/news/javaxslt_0801.html"&gt;questo articolo di o'Reilly&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.oreillynet.com/pub/a/oreilly/java/news/javaxslt_0801.html"&gt; &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2684916635128969082-1442451291353655419?l=usingmypc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usingmypc.blogspot.com/feeds/1442451291353655419/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://usingmypc.blogspot.com/2009/08/ancora-xslt-sul-client.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/1442451291353655419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/1442451291353655419'/><link rel='alternate' type='text/html' href='http://usingmypc.blogspot.com/2009/08/ancora-xslt-sul-client.html' title='ancora XSLT sul client?'/><author><name>Daniele Mazzoni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--WKyMC40P-g/AAAAAAAAAAI/AAAAAAAALzk/r-1J-ZA1W_s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2684916635128969082.post-4244353368622422343</id><published>2009-08-09T09:39:00.005+02:00</published><updated>2009-08-09T09:49:04.747+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lingue'/><category scheme='http://www.blogger.com/atom/ns#' term='grammatica'/><category scheme='http://www.blogger.com/atom/ns#' term='giapponese'/><category scheme='http://www.blogger.com/atom/ns#' term='dizionario'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Imparare il giapponese sul web</title><content type='html'>Sono un grande appassionato di lingue e per ogni lingua il pc è un ottimo strumento di apprendimento. Seguono i siti che più aiutano nello studio del giapponese.&lt;br /&gt;Fatemi sapere se conoscete qualche altro valido strumento a disposizione sulla rete.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.guidetojapanese.org/"&gt;http://www.guidetojapanese.org/&lt;/a&gt;&lt;br /&gt;E' una grammatica e un corso con parecchio materiale. Non andate sulla versione in italiano che è molto più striminzita. La versione originale affronta tutti i temi fondamentali della lingua e ha esercizi per le varie sezioni.&lt;br /&gt;C'è anche qualche capitolo sull'introduzione alla scrittura.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.csse.monash.edu.au/%7Ejwb/cgi-bin/wwwjdic.cgi?1C"&gt;http://www.csse.monash.edu.au/~jwb/cgi-bin/wwwjdic.cgi?1C&lt;/a&gt;&lt;br /&gt;Questo dizionario è fondamentale. Permette di cercare dall'inglese o dal giapponese, anche usando i romaji (ovvero la traslitterazione in caratteri occidentali delle parole giapponesi)&lt;br /&gt;&lt;br /&gt;Per l'ascolto sicuramente c'è moltissimo materiale in giro. Io mi sono trovato molto bene con&lt;br /&gt;&lt;a href="http://www.japanesepod101.com"&gt;http://www.japanesepod101.com&lt;/a&gt;&lt;br /&gt;Ora il sito è a pagamento dopo la prima settimana per quasi tutti i contenuti. Il mio consiglio è di scaricare tutti gli mp3 presenti delle lezioni nella prima settimana di iscrizione. Ogni dialogo è seguito da una versione rallentata e da una versione con la traduzione in inglese di ogni frase. Dopo il dialogo vengono spiegati i vocaboli nuovi e un paio di regole di grammatica affrontate. Un podcast eccezionale.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tatoeba.fr/"&gt;http://tatoeba.fr/&lt;/a&gt;&lt;br /&gt;Questo sito permette, quando si è imparata una parola nuova, di trovare frasi di esempio con quella parola. Può essere sempre utile sapere quando e come utilizzare un termine.&lt;br /&gt;&lt;br /&gt;Per rivisitare le parole tramite dei quiz io uso la mia pagina web, dove mi sono costruito una sezione per imparare i vocaboli.&lt;br /&gt;&lt;a href="http://dado21780.altervista.org/imparaparole.xml"&gt;http://dado21780.altervista.org/imparaparole.xml&lt;/a&gt;&lt;br /&gt;Ma la cosa più semplice è andare su un sito come&lt;br /&gt;&lt;a href="http://www.renshuu.org/"&gt;http://www.renshuu.org/&lt;/a&gt;&lt;br /&gt;dove la gente crea quiz per vocaboli di ogni livello di difficoltà. Ci sono quanti quiz volete qui.&lt;br /&gt;&lt;br /&gt;Per chi ha l'ipod touch o l'iphone, applicazioni gratuite come "&lt;span style="font-weight: bold;"&gt;kotoba&lt;/span&gt;", "&lt;span style="font-weight: bold;"&gt;wwwjdic&lt;/span&gt;" e le flashcards "&lt;span style="font-weight: bold;"&gt;kanji&lt;/span&gt;" (quest'ultima ora costa 79 centesimi) sono ottimi strumenti.&lt;br /&gt;&lt;br /&gt;Due note:&lt;br /&gt;1) i film sottotitolati sono sempre un ottimo mezzo per imparare. Se riuscite a trovare una buona fonte sul web bene, altrimenti il buon youtube funziona sempre&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=05FSfZRSEHs"&gt;http://www.youtube.com/watch?v=05FSfZRSEHs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2) Non basta apprendere. &lt;span style="font-weight: bold;"&gt;Bisogna anche fare pratica&lt;/span&gt;. Leggere, ascoltare e vedere è importante. Ma se non si scrive e non si parla... sarete costretti ad ascoltare le conversazioni senza intervenire mai. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2684916635128969082-4244353368622422343?l=usingmypc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usingmypc.blogspot.com/feeds/4244353368622422343/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://usingmypc.blogspot.com/2009/08/imparare-il-giapponese-sul-web.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/4244353368622422343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/4244353368622422343'/><link rel='alternate' type='text/html' href='http://usingmypc.blogspot.com/2009/08/imparare-il-giapponese-sul-web.html' title='Imparare il giapponese sul web'/><author><name>Daniele Mazzoni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--WKyMC40P-g/AAAAAAAAAAI/AAAAAAAALzk/r-1J-ZA1W_s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2684916635128969082.post-4138446077378501684</id><published>2009-08-05T15:18:00.000+02:00</published><updated>2009-08-05T15:28:13.419+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='as3'/><category scheme='http://www.blogger.com/atom/ns#' term='air1.5'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><category scheme='http://www.blogger.com/atom/ns#' term='adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='air'/><title type='text'>Primo esempio Widget AIR 1.5</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style=""&gt;------------&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style=""&gt; Introduzione&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style=""&gt; ------------&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style=""&gt;&lt;br /&gt;Partendo da una serie di demo statiche sviluppate in Flash, si voleva indagare sulla fattibilità e la eventuale semplcità di realizzazione di alcune funzioni in ActionScript3, da poter poi rilasciare in formato Widget AIR.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style=""&gt;Ogni sezione comprende L'&lt;b&gt;&lt;span style=""&gt;ARGOMENTO&lt;/span&gt;&lt;/b&gt;, LE &lt;b&gt;&lt;span style=""&gt;CLASSI &lt;/span&gt;&lt;/b&gt;trovate per affrontarlo ed eventualmente qualche &lt;b&gt;&lt;span style=""&gt;LINK &lt;/span&gt;&lt;/b&gt;di riferimento.&lt;br /&gt;Ovviamente questa non è una copertura esaustiva degli argomenti.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=""&gt;------------------------&lt;br /&gt;LINK UTILI (in generale)&lt;br /&gt;------------------------&lt;br /&gt;Documentazione &lt;/span&gt;&lt;/b&gt;di classi Flash e AIR:&lt;br /&gt;&lt;a href="http://help.adobe.com/it_IT/AS3LCR/Flash_10.0/class-summary.html"&gt;http://help.adobe.com/it_IT/AS3LCR/Flash_10.0/class-summary.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Adobe AIR &lt;b&gt;&lt;span style=""&gt;Labs&lt;/span&gt;&lt;/b&gt;:&lt;br /&gt;&lt;a href="http://labs.adobe.com/technologies/air/"&gt; http://labs.adobe.com/technologies/air/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=""&gt;Guida ufficiale&lt;/span&gt;&lt;/b&gt; di Adobe AIR:&lt;br /&gt;&lt;a href="http://help.adobe.com/it_IT/AIR/1.5/devappsflash/"&gt; http://help.adobe.com/it_IT/AIR/1.5/devappsflash/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ottime &lt;b&gt;&lt;span style=""&gt;risorse video&lt;/span&gt;&lt;/b&gt; per tutorial vari su AS3:&lt;br /&gt;&lt;a href="http://www.gotoandlearn.com"&gt; http://www.gotoandlearn.com&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style=""&gt;Una in particolare per MonsterDebugger, un ottimo strumento di debug:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.gotoandlearn.com/play?id=109" target="_blank"&gt;&lt;/a&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=""&gt;&lt;a href="http://www.gotoandlearn.com/play?id=109"&gt;http://www.gotoandlearn.com/play?id=109&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="" align="center"&gt;&lt;span style="font-family:Courier New;font-size:100%;color:#3333ff;"&gt;&lt;span style=""&gt;---------&lt;br /&gt;Argomento&lt;br /&gt;---------&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=""&gt; Caricamento &lt;b&gt;&lt;span style=""&gt;RSS &lt;/span&gt;&lt;/b&gt;Feed Remoto.&lt;br /&gt;&lt;br /&gt;Classi:&lt;br /&gt;&lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;URLRequest &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;e &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;URLLoader &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;per caricare un file remoto o in locale a seconda del path passato nel costruttore dell'URLRequest&lt;br /&gt;Ascoltare l'evento COMPLETE per capire quando il file è stato caricato.&lt;br /&gt;        urlLdr.addEventListener(Event.COMPLETE, nomeFunzioneDaUsare);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="" align="center"&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&lt;span style=""&gt;---------&lt;br /&gt;Argomento&lt;br /&gt;---------&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=""&gt;Mostrare in pagina parti feed XML&lt;/span&gt;&lt;/b&gt; caricato&lt;br /&gt;&lt;br /&gt;Classi&lt;br /&gt;1 - &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;XML &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;contenitore di un documento o di un nodo XML. &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;XMLList &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;come wrapper di un array di nodi.&lt;br /&gt;        var rssTest:XML = new XML(data);&lt;br /&gt;        var listTest:XMLList = rssTest.channel.item.children();&lt;br /&gt;&lt;br /&gt;2 - &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;TextField&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;TextArea &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;da usare ad esempio per &lt;b&gt;&lt;span style=""&gt;mostrare i testi&lt;/span&gt;&lt;/b&gt; ricavati. Aggiungere un eventListener per i &lt;b&gt;&lt;span style=""&gt;link&lt;/span&gt;&lt;/b&gt;.&lt;br /&gt;                     txt5.addEventListener(MouseEvent.CLICK, gotoLink);&lt;br /&gt;                    function gotoLink(...){  navigateToUrl(new URLRequest(...)); }&lt;br /&gt;&lt;br /&gt;3 - &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;URLRequest &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;e &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;Loader &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;per caricare e aggiungere un'&lt;b&gt;&lt;span style=""&gt;immagine&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;    var imgTip:Loader = new Loader();&lt;br /&gt;    imgTip.load(new URLRequest(imgTip_src));&lt;br /&gt;    addChild(imgTip);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=""&gt;Nota su RSS: &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=""&gt;Il formato RSS è standard e tutti i feed hanno gli stessi elementi ma alcuni siti, ad esempio il NYT, utilizzano anche dei namespace aggiuntivi per dei tag loro specifici.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=""&gt;Il file XML di cui eseguire il parse quindi va controllato nel suo formato per sapere quali elementi contengono i contenuti desiderati.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="" align="center"&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&lt;span style=""&gt;---------&lt;br /&gt;Argomento&lt;br /&gt;---------&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=""&gt; Caricare &lt;b&gt;&lt;span style=""&gt;audio remoto&lt;/span&gt;&lt;/b&gt; e riprodurlo. Stream proprietari come realAudio e quickTime non sono facilmente riproducibili tramite Flash. Quanto c'è qui di seguito riguarda file &lt;b&gt;&lt;span style=""&gt;mp3&lt;/span&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Classi:&lt;br /&gt;- &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;SoundLoaderContext &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;(x il buffering), &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;Sound&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;SoundChannel&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;SoundTransform&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;        soundChannel = sound.play(0,0,soundTransform);&lt;br /&gt;&lt;br /&gt;Link:&lt;br /&gt;3 - esempio di discussione riguardo a RealPlayer in AIR -  &lt;a href="http://forums.adobe.com/thread/97714"&gt;http://forums.adobe.com/thread/97714&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="" align="center"&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&lt;span style=""&gt;---------&lt;br /&gt;Argomento&lt;br /&gt;---------&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=""&gt;&lt;br /&gt;Caricare &lt;b&gt;&lt;span style=""&gt;video remoto&lt;/span&gt;&lt;/b&gt; e riprodurlo. Gli esempi qui sotto si riferiscono allo standard Flash .&lt;b&gt;&lt;span style=""&gt;FLV&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Classi:&lt;br /&gt;- &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;Video&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;NetConnection&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;NetStream&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;        video.attachNetStream(new NetStream(new NetConnection()));&lt;br /&gt;- Caricare un video di Youtube equivale a importare un file swf esterno con Loader e URLRequest.&lt;br /&gt;        loader.load(new URLRequest("http://www.youtube.com/v/3DLF-yypNH4&amp;amp;hl=it&amp;amp;fs=1&amp;amp;"))&lt;br /&gt;&lt;br /&gt;Link:&lt;br /&gt;1 - Flash Media Server per soluzioni più complesse di gestione video - http://www.adobe.com/products/flashmediaserver/&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="" align="center"&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&lt;span style=""&gt;---------&lt;br /&gt;Argomento&lt;br /&gt;---------&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=""&gt;&lt;br /&gt;Inserire &lt;b&gt;&lt;span style=""&gt;contenuti di siti internet esterni&lt;/span&gt;&lt;/b&gt; internamente al progetto in Flash.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="" lang="EN-GB"&gt;Classi:&lt;br /&gt;- &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;HTMLLoader&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;URLRequest&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;.&lt;br /&gt;        hloader.load(new URLRequest("https://www.poste.it/bancoposta/prestiti/prestito_online.shtml"));&lt;br /&gt;        hloader.width... &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style=""&gt;height...&lt;br /&gt;        addChild(hloader);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="" align="center"&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&lt;span style=""&gt;---------&lt;br /&gt;Argomento&lt;br /&gt;---------&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;b&gt;&lt;span style="font-family:Courier New;font-size:100%;"&gt;&lt;span style=""&gt;Gestire l'HD&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style=""&gt;, soprattutto per un'applicazione AIR.&lt;br /&gt;&lt;br /&gt;Classi:&lt;br /&gt;- &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;File&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;URLRequest &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;- Per il download consapevole dell'utente che sceglie una destinazione&lt;br /&gt;    testFile.download(urlReq)&lt;br /&gt;- &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;File&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;URLStream&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;URLRequest&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;ByteArray&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;&lt;span style="color:red;"&gt;&lt;span style=""&gt;FileStream &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;- Per la gestione, un minimo più complessa del download dello stream in modo trasparente all'utente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nota:&lt;br /&gt;Ho un esempio semplice per ognuna di queste funzioni se qualcuno è interessato.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.gotoandlearn.com/play?id=109" target="_blank"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2684916635128969082-4138446077378501684?l=usingmypc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usingmypc.blogspot.com/feeds/4138446077378501684/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://usingmypc.blogspot.com/2009/08/primo-esempio-widget-air-15.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/4138446077378501684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/4138446077378501684'/><link rel='alternate' type='text/html' href='http://usingmypc.blogspot.com/2009/08/primo-esempio-widget-air-15.html' title='Primo esempio Widget AIR 1.5'/><author><name>Daniele Mazzoni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--WKyMC40P-g/AAAAAAAAAAI/AAAAAAAALzk/r-1J-ZA1W_s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2684916635128969082.post-6150297117768980224</id><published>2009-08-05T14:56:00.001+02:00</published><updated>2009-08-05T16:12:25.523+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='charts'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Charts - Test per una web application.</title><content type='html'>&lt;div class="Section1"&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="color: rgb(255, 0, 0);font-family:'Times New Roman';" &gt;&lt;b&gt;&lt;span style="font-size:130%;"&gt;SERVER SIDE&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Ho messo su un esempio per ognuna di queste librerie citate tranne che per ILog, per la quale non è possibile al momento (23 luglio) nemmeno scaricare una versione shareware.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Qui sotto faccio un paio di commenti a ogni libreria.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="color: rgb(255, 0, 0);font-family:'Times New Roman';" &gt;&lt;b&gt;&lt;span style="font-size:130%;"&gt;JFreeChart + cewolf (&lt;a href="http://cewolf.sourceforge.net/new/index.html"&gt;link&lt;/a&gt;)&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Ho provato JFreeChart + cewolf, con licenza LGPL&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;L'esempio che ho messo su con un tutorial crea un grafico casuale con dei dati generati in una servlet.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Permette una &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;configurazione dei dati semplice&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; e anche pulita in pagine JSP grazie alle librerie di tag già pronti.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;non è ajax&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; enabled. La pagina creata deve essere ricaricata interamente dal server. Questo &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;i&gt;&lt;span style="font-size:100%;"&gt;può essere aggirato&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; implementando una minima funzionalità ajax o come nell'esempio dove ho posto il grafico in un iframe che viene ricaricato per non causare il reload di tutta la pagina.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;funzioni come &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;zoom/pan non sono supportate&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; dalla libreria.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Questa libreria sembra molto seguita e creare un line chart richiede molto poca configurazione e sforzo. Tuttavia i punti critici potrebbero renderla insufficiente.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="color: rgb(255, 0, 0);font-family:'Times New Roman';" &gt;&lt;b&gt;&lt;span style="font-size:130%;"&gt;C&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:'Times New Roman';" &gt;&lt;b&gt;&lt;span style="font-size:130%;"&gt;hart director (&lt;a href="http://www.advsofteng.com/gallery_line.html"&gt;link&lt;/a&gt;) &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;costa 499 per la redistribuzione&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Viene &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;creata un’immagine sul server&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; che periodicamente viene scaricata.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Per testare l’esempio che allego lanciare la applicazione e andare su&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;/ChartDirectorTest/realtimedemo.jsp (o l'ultimo link in basso a sinistra se si parte dalla index dell'applicazione)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Per provarla ho &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;modificato la demo del realtime&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; in modo da permettere la scelta del valore 0.1 secondi nel menu a tendina della real time chart demo.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Sul mio pc sembra un po' lenta ma potrebbe darsi che è questo pc che si blocca un po' come in molte operazioni javascript&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Permette anche la creazione dei grafici più disparati e &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;permette zoom&amp;amp;pan&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Tuttavia la creazione è un (poco) più complessa che nel caso di JFreeChart perché non ci sono tag già pronti (vedi il file realtimechart.jsp dell'esempio). &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:'Times New Roman';" &gt;&lt;b&gt;&lt;span style="font-size:130%;"&gt;ILog&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; (IBM) (&lt;a href="http://www.ilog.com/products/jviews/charts/"&gt;link&lt;/a&gt;):&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;real-time ajax-enabled server charts &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;http://svdemo01.ilog.com/real-time-81/&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Questa libreria commerciale permetterebbe aggiornamenti realtime.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;La versione&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt; demo non è al momento disponibile&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; e i prezzi non sono visualizzati. Il loro sito consiglia di richiedere informazioni e così ho fatto.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Le prime librerie che ho visto server side aggiornano il grafico caricando ogni volta una nuova immagine dal server. Per refresh frequenti allora forse è più utile una libreria javascript.&lt;/span&gt;&lt;/span&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(255, 0, 0);font-family:'Times New Roman';" &gt;&lt;b&gt;&lt;span style="font-size:130%;"&gt;CLIENT SIDE&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Tutte le librerie fondate su &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;Jquery&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; sono sotto licenza &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;MIT &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;O GPL.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Da quel che ho capito &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;la GPL&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; è quella "virale", però se &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;la MIT&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; va bene per uso commerciale possiamo usarle. Mi sembra che &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;la MIT&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; permetta l'uso commerciale purché si citi la licenza stessa della libreria usata (in modo che la licenza della libreria sia nota anche nel software nuovo).&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Ho provato &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:'Times New Roman';" &gt;&lt;b&gt;&lt;span style="font-size:130%;"&gt;JQuery FLOT&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;, le cui API sono a:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;(&lt;a href="http://people.iola.dk/olau/flot/API.txt"&gt;link&lt;/a&gt;)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Modificando uno degli esempi statici nel loro pacchetto, ho ottenuto un grafico che si aggiorna ogni intervallo desiderato (nell'esempio mezzo secondo).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;La creazione è con javascript a oggetti &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;un po' più complesso del js-charts&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; ma molto più pieno di opzioni. La grafica è più accattivante, consente lo &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;zoom e il pan&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;, ha dei &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;tooltip&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; cliccabili e offre funzioni per riprendere i valori dei dati inseriti nel grafico.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Un bell'articolo a riguardo:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;http://www.michelem.org/2008/01/07/ajax-plotting-drawing-charts-using-jquery-and-flot/&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="color: rgb(255, 0, 0);font-family:'Times New Roman';" &gt;&lt;b&gt;&lt;span style="font-size:130%;"&gt;Jquery Sparkline&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; ha una licenza BSD ("roughly equivalent to MIT one")&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;(&lt;a href="http://omnipotent.net/jquery.sparkline/"&gt;link&lt;/a&gt;)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Sparkline mi sembra decisamente &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;più veloce&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; nell'aggiornamento, tant'è che nell'esempio ho messo un refresh di 10 millesimi e l'animazione sembra fluida.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Ha &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;meno funzioni di Flot&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; soprattutto per gestire punti all'interno del grafico con label e click del mouse su di essi, però è più veloce.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="color: rgb(255, 0, 0);font-family:'Times New Roman';" &gt;&lt;b&gt;&lt;span style="font-size:130%;"&gt;jquery visualize&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;(&lt;a href="http://www.filamentgroup.com/lab/jquery_visualize_plugin_accessible_charts_graphs_from_tables_html5_canvas/"&gt;link&lt;/a&gt;)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;JQuery Visualize offre una &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;semplice struttura tabellare di background&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; al grafico che si crea. Mi sembra un po' &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;più lento nell'attivare il refresh del grafico&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; tramite&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;myChart.trigger('visualizeRefresh');&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;L'esempio che ho creato aggiorna il dom del documento con una nuova colonna (in teoria) ogni 100ms e aziona il refresh.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;I tasti display e hide li ho messi per la tabella che eventualmente così può essere nascosta.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="color: rgb(255, 0, 0);font-family:'Times New Roman';" &gt;&lt;b&gt;&lt;span style="font-size:130%;"&gt;GWT Chronoscope&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;(&lt;a href="http://timepedia.org/chronoscope/demo/advanced/"&gt;link&lt;/a&gt;)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Ho mandato già un email a timepedia (sviluppatori di questa libreria) richiedendo informazioni sul tipo di licenza e su quanto costi la loro libreria per uso commerciale ma non ho avuto ancora risposta.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;E' un progetto molto grande e pesante e a difficoltà il grafico si carica nel mio browser. Può gestire quantità massive di dati a quanto dicono loro, e sembra sicuramente la libreria più piena di funzioni. Ma se non si ha bisogno di tutte queste funzioni, eviterei di imparare una libreria così grande e pesante.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;Una ottima lista a prima vista sembra quella a&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family:'Times New Roman';"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.datavisualization.ch/tools/13-javascript-libraries-for-visualizations/comment-page-1#comment-948"&gt;http://www.datavisualization.ch/tools/13-javascript-libraries-for-visualizations/comment-page-1#comment-948&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2684916635128969082-6150297117768980224?l=usingmypc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usingmypc.blogspot.com/feeds/6150297117768980224/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://usingmypc.blogspot.com/2009/08/charts-test-per-una-web-application.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/6150297117768980224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2684916635128969082/posts/default/6150297117768980224'/><link rel='alternate' type='text/html' href='http://usingmypc.blogspot.com/2009/08/charts-test-per-una-web-application.html' title='Charts - Test per una web application.'/><author><name>Daniele Mazzoni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/--WKyMC40P-g/AAAAAAAAAAI/AAAAAAAALzk/r-1J-ZA1W_s/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
