<?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-36900557</id><updated>2012-02-01T05:00:12.182+01:00</updated><category term='arte'/><category term='teoria'/><category term='geometria'/><category term='poesia'/><category term='foto'/><category term='erboristeria'/><category term='news'/><category term='immagini'/><category term='elaborazione delle immagini'/><category term='cazzate'/><category term='programmazione'/><category term='Agraria'/><category term='Software engeneering'/><title type='text'>Fra arte e scienza</title><subtitle type='html'>Qualche parola artistica riguardo alle scienze e qualche digressione sulle scienze applicate all'arte. Un luogo dove chiacchierare di poesia, sentimenti e sensazioni; ma anche dove discutere di matematica, fisica, informatica e quant'altro possa stimolare una mente scientifica.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>74</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-36900557.post-1931660126017070896</id><published>2011-01-30T18:12:00.002+01:00</published><updated>2011-01-30T18:55:43.165+01:00</updated><title type='text'>Tutti pazzi per.. la roccia!</title><content type='html'>...ho visto cose che voi "normali" non potreste immaginarvi: amici "in fiamme" ai bastioni delle &lt;a href="http://panepera.altervista.org/Arrampicata/Oriana/Mappa_oriana.jpg"&gt;placche di Oriana&lt;/a&gt;, pile frontali balenare nel buio...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;Ma peeeeerché?&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" &gt; Perché chi si avvicina alla roccia impazzisce completamente? Questa è una bella domanda, notare che mentre ve la scrivo sono appeso allo stipite della porta dello studio.. sapete com'è.. bisogna tenersi in allenamento per "alzare il grado" (alcolico)!&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" &gt; Così, mentre pensavo ad una mia amica che invece gli stipiti delle porte li usa più "razionalmente".. per allenarsi con la progressione laterale, mi sono chiesto: "Cosa c'è di magico nell'arrampicata che fa impazzire tutti?".. saranno i posti splendidi, la sfida con sé stessi e la propria mente, voglia di &lt;b&gt;sfidare le proprie paure&lt;/b&gt; mantenendo i nervi saldi anche quando l'ultimo rinvio sta a 8m di distanza, sarà la voglia di migliorarsi, di mostrare "cosa si sa fare"... o forse sarà la &lt;b&gt;merenda valdostana&lt;/b&gt; ad attirarci tutti? (Non fatico a crederci.. ho già l'acquolina in bocca.. gnam gnam!!!)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" &gt; Siamo a metà via, sono già le 17 (come al solito torneremo con le frontali accese), fa freddo, rischiamo di sfracellarci contro qualche cengia accuminata lasciando tra gli alpinisti l'unico tipo di traccia che NON vorremmo lasciare, il corpo deve arrivare sempre al limite delle sue capacità (vogliamo migliorare o no?), non abbiamo pranzato, ci mettiamo in situazioni pericolose di nostra volontà.. MA PEEEEEEEEEEEERCHE'?&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" &gt; Insisto.. la "merenda valdostana" è la risposta: una giornata intensa.. tutti assieme, affrontando delle piccole sfide.. in compagnia, ridendo, scherzando, sclerando, soffrendo.. eppur vivendo fino all'ultimo respiro ogni attimo tra amici in un posto splendido. Si respira serenità, amicizia, correttezza, profonda fiducia reciproca.. affidiamo le nostre vite l'un l'altro con fiducia... &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" &gt;&lt;blockquote&gt;Tienimi tesooo.. tienimiii.. posso? Mi lascio? Sicurooo? Guarda che sto per calarmi! &lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" &gt;E dopo aver affrontato assieme mille e uno pericoli.. vinello rosso e fetta di salame alla rozza, all'alpina, perché non c'è nulla di meglio se non stare con degli amici, stanchi ma contenti, a condividere anche gli ultimi istanti (magari del tramonto) in mezzo ad una montagna, lontani da tutto...&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" &gt; ...nel nostro mondo!&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-1931660126017070896?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/1931660126017070896/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=1931660126017070896' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1931660126017070896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1931660126017070896'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2011/01/tutti-pazzi-per-la-roccia.html' title='Tutti pazzi per.. la roccia!'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-2565434251264476693</id><published>2009-05-03T17:09:00.010+02:00</published><updated>2009-05-03T17:19:46.800+02:00</updated><title type='text'>Disegno? Una questione di allenamento!</title><content type='html'>Saper disegnare sicuramente richiede capacità e talento.. io non penso di averli, però ho scoperto l'acqua calda: le capacità si costruiscono con l'allenamento, il talento può essere innato.. ma può anche essere costruito con l'esperienza.&lt;br /&gt;Non ci credete? Bé non sono mai stato bravo a disegnare, nonostante io scolpissi e dipingessi con l'areografo (e qualche volta sulle magliette)...&lt;br /&gt;&lt;br /&gt;E ADESSO???&lt;br /&gt;&lt;br /&gt;Non so disegnare nemmeno ora, però comincio a stendere la grafite sulla carta in maniera quasi accettabile per un principiante. Un esempio? Eccolo:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Tidqh9c0DiE/Sf217AqExLI/AAAAAAAAAuI/d2JOtoj_ejw/s1600-h/CIMG0527.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_Tidqh9c0DiE/Sf217AqExLI/AAAAAAAAAuI/d2JOtoj_ejw/s320/CIMG0527.JPG" alt="" id="BLOGGER_PHOTO_ID_5331617559269917874" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-2565434251264476693?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/2565434251264476693/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=2565434251264476693' title='5 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/2565434251264476693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/2565434251264476693'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2009/05/disegno-una-questione-di-allenamento.html' title='Disegno? Una questione di allenamento!'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Tidqh9c0DiE/Sf217AqExLI/AAAAAAAAAuI/d2JOtoj_ejw/s72-c/CIMG0527.JPG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-9179170330494083002</id><published>2009-03-04T01:11:00.004+01:00</published><updated>2009-03-04T01:44:51.110+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Software engeneering'/><title type='text'>E se dovessi programmare in C ANSI.. ma OO?</title><content type='html'>Oramai é sempre più raro trovarsi in questa situazione esistendo svariate soluzioni sia open che commerciali per lo sviluppo e la compilazione di codice C++ anche per architetture embedded. Ogni tanto però capita ancora di avere questa esigenza.. in quei casi?&lt;br /&gt;&lt;br /&gt;La risposta viene da molto lontano nel tempo, molti di voi avranno sentito parlare del documento &lt;a href="http://www.planetpdf.com/codecuts/pdfs/ooc.pdf"&gt;OOC&lt;/a&gt;, in cui si descrivono le tecniche per programmare in uno stile OO utilizzando l'ANSI C. Questo documento esiste da molti anni.. e quando lo scoprii (nel 2002 se non ricordo male) mi entusiasmò! In questi giorni però la stessa domanda mi é stata riproposta da un curioso molto in gamba.. e perché non fornirla a tutti sul blog? Ma di più.. dato che non ho mai nulla da fare (ironico ovviamente), perché non scrivere un esempio semplice semplice di tool costruito con le macro di preprocessore? E' un giocattolino senza esplicito supporto per l'ereditarietà, il polimorfismo e quant'altro.. però é simpatico e chi vuole può usarlo/estenderlo per gioco. &lt;a href="http://homes.dsi.unimi.it/%7Elombardi/download/mySw/toys/OOPTools.zip"&gt;Eccovelo&lt;/a&gt; in sole 50 righe di macro con un esempio semplice semplice.&lt;br /&gt;&lt;br /&gt;Vediamo un esempio di dichiarazione di classe:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// La classe:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;CLASS_BEGIN&lt;/span&gt;(CheckedInt)&lt;br /&gt;    &lt;span style="color: rgb(204, 0, 0);"&gt;ATTRIBUTE&lt;/span&gt;(CheckedInt,int,version);&lt;br /&gt;    &lt;span style="color: rgb(204, 0, 0);"&gt;METHOD&lt;/span&gt;(CheckedInt,void,setValue,unsigned long val);&lt;br /&gt;    &lt;span style="color: rgb(204, 0, 0);"&gt;METHOD&lt;/span&gt;(CheckedInt,unsigned long,getValue);&lt;br /&gt;    &lt;span style="color: rgb(204, 0, 0);"&gt;STATIC_METHOD&lt;/span&gt;(CheckedInt,unsigned long,max_val);&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;CLASS_END&lt;/span&gt;(CheckedInt)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// La struttura rappresentante un'istanza:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;CLASS_INSTANCE_BEGIN&lt;/span&gt;(CheckedInt)&lt;br /&gt;    &lt;span style="color: rgb(204, 0, 0);"&gt;ATTRIBUTE&lt;/span&gt;(CheckedInt,unsigned long,value);&lt;br /&gt;    &lt;span style="color: rgb(204, 0, 0);"&gt;ATTRIBUTE&lt;/span&gt;(CheckedInt,unsigned long,not_value);&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;CLASS_INSTANCE_END&lt;/span&gt;(CheckedInt)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// Definizione di costruttore e distruttore:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;CLASS_ALLOCATORS&lt;/span&gt;(CheckedInt,unsigned long val);&lt;/blockquote&gt;Lineare no? E l'implementazione? Eccola:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// Metodo d'istanza:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;METHOD_IMPL_BEGIN&lt;/span&gt;(CheckedInt,void,setValue,unsigned long val)&lt;br /&gt;    this-&gt;value = val;&lt;br /&gt;    this-&gt;not_value = ~val;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;METHOD_IMPL_END&lt;/span&gt;(CheckedInt)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// Caso statico:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;STATIC_METHOD_IMPL_BEGIN&lt;/span&gt;(CheckedInt,unsigned long,max_val)&lt;br /&gt;    return 0xFFFFFFFE;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;STATIC_METHOD_IMPL_END&lt;/span&gt;(CheckedInt)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;//...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// Inizializzazione della struttura statica:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;CLASS_INIT&lt;/span&gt;( CheckedInt,1,&lt;br /&gt;            CheckedInt_setValue,&lt;br /&gt;            CheckedInt_getValue,&lt;br /&gt;            CheckedInt_max_val);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// Costruttore:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;CONSTRUCTOR_BEGIN&lt;/span&gt;(CheckedInt,unsigned long val)&lt;br /&gt;    this-&gt;value = val;&lt;br /&gt;    this-&gt;not_value = ~val;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;CONSTRUCTOR_END&lt;/span&gt;(CheckedInt)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// Distruttore:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;DESTRUCTOR_BEGIN&lt;/span&gt;(CheckedInt)&lt;br /&gt;    &lt;span style="color: rgb(51, 204, 0);"&gt;// Rilascio risorse.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;DESTRUCTOR_END&lt;/span&gt;(CheckedInt)&lt;/blockquote&gt;Usiamo la nostra classe ora!&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// Istanzio:&lt;/span&gt;&lt;br /&gt;CheckedInt *ckdInt = CheckedInt_new(10);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// Chiamo un po:&lt;/span&gt;&lt;br /&gt;printf("A checked value: %d\n", &lt;span style="color: rgb(204, 0, 0);"&gt;CALL&lt;/span&gt;(ckdInt,getValue));&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;CALL&lt;/span&gt;(ckdInt,setValue,42);&lt;br /&gt;printf("A checked value: %d\n", &lt;span style="color: rgb(204, 0, 0);"&gt;CALL&lt;/span&gt;(ckdInt,getValue));&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// Accedo agli attributi direttamente:&lt;/span&gt;&lt;br /&gt;printf("I'm a bad boy! ;)\n");&lt;br /&gt;ckdInt-&gt;not_value = 0;&lt;br /&gt;printf("A checked value: %d\n", &lt;span style="color: rgb(204, 0, 0);"&gt;CALL&lt;/span&gt;(ckdInt,getValue));&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// Uso il distruttore:&lt;/span&gt;&lt;br /&gt;CheckedInt_free(ckdInt);&lt;/blockquote&gt;Ok, probabilmente molti di voi diranno "Tra C++, Java, C#, cicici e tututu sicuramente questo non mi serve!", sono perfettamente d'accordo con voi... ma ogni sfizio è sfizio!!! ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-9179170330494083002?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/9179170330494083002/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=9179170330494083002' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/9179170330494083002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/9179170330494083002'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2009/03/e-se-dovessi-programmare-in-c-ansi-ma.html' title='E se dovessi programmare in C ANSI.. ma OO?'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-4796677857611216617</id><published>2008-11-29T20:02:00.002+01:00</published><updated>2008-12-01T10:29:15.617+01:00</updated><title type='text'>C#: Perdita di eleganza?</title><content type='html'>La prima volta che incontrai sulla mia strada il linguaggio C# fu nel 2003, era ancora un linguaggino molto molto MOLTO Java-style, quasi clone, con alcune features in più come boxing e unboxing, property, delegate, eventi e qualcosina d'altro.&lt;br /&gt;&lt;br /&gt;Oggi, alla release 3.5 del .NET framework, assistiamo ad una evoluzione del linguaggio a dir poco sconvolgente! Lo dico in senso positivo da un certo punto di vista, in senso negativo da un altro:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Lati positivi dell'evoluzione del linguaggio C#&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Aggiunte features che permettono di modellare il software in maniera più flessibile, vedasi generics con constraints;&lt;/li&gt;&lt;li&gt;Aggiunte features che semplificano la realizzazione di pattern comuni in maniera meno verbosa, vedasi iteratori e delegate.. anche se già dalla prima versione;&lt;/li&gt;&lt;li&gt;Aggiunti strumenti per la cooperazione tra sviluppatori, vedasi classi e metodi parziali.&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Lati negativi dell'evoluzione del linguaggio C#&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Metodi estesi, non hanno ancora un corrispettivo nell'esperienza comune (pattern che li vedano come strumento da utilizzare realmente);&lt;/li&gt;&lt;li&gt;Metodi partial: si tratta in fondo di metodi virtual non puri ma senza codice (solo più efficienti.. ma i compilatori d'oggi risolvono anche quel problema!);&lt;/li&gt;&lt;li&gt;generics: ancora problemi con i vincoli, da aggiungere features in questo caso:&lt;br /&gt;&lt;blockquote&gt;class Classe&lt;t&gt; where T: operator &gt; {...}&lt;br /&gt;&lt;/t&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;/ol&gt;Insomma.. butto il sassolino: trovo che l'entropia di C# stia aumentando, portando ai problemi di utilizzo di ADA e Haskel! Voi che ne dite?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-4796677857611216617?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/4796677857611216617/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=4796677857611216617' title='5 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4796677857611216617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4796677857611216617'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/11/c-perdita-di-eleganza.html' title='C#: Perdita di eleganza?'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-8473487823911079485</id><published>2008-11-12T16:49:00.004+01:00</published><updated>2008-11-12T17:14:40.245+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>Nasce OpenTVF</title><content type='html'>Ragazzi.. nasce OGGI &lt;a style="font-weight: bold; font-style: italic;" href="http://opentvf.sourceforge.net/"&gt;OpenTVF&lt;/a&gt; su sourceforge.. andate a dare un occhio! ;) Se qualcuno è interessato a collaborare con lo sviluppo di &lt;span style="font-weight: bold; font-style: italic;"&gt;OpenTVF&lt;/span&gt;... é sempre ben accetto! :D&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;A BREVE&lt;/span&gt;... metterò su sourceforge anche altri progetti che per troppo tempo ho tenuto nel cassetto.. se poi qualche interessato mi darà una mano a renderli qualcosa di più appetibile per l'utente finale.. MEGLIO!&lt;br /&gt;&lt;br /&gt;A prestisismo.. HAPPY CODING!!! ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-8473487823911079485?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/8473487823911079485/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=8473487823911079485' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8473487823911079485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8473487823911079485'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/11/nasce-opentvf.html' title='Nasce OpenTVF'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-73207047852574209</id><published>2008-11-05T19:02:00.003+01:00</published><updated>2008-11-05T19:07:45.713+01:00</updated><title type='text'>Drago Magnus</title><content type='html'>Come avrete notato la DeA ha buttato fuori una quintalata di raccolte/enciclopedie/corsi/ecc ecc in fascicoli a partie da quest'estate; tra le tante ce n'é una intitolatea semplicemente "Draghi" che propone delle miniature, a detta loro da collezionare e basta.. ma io trovo che siano più divertenti da dipingere! Voi che ne dite? ;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Tidqh9c0DiE/SRHgUcdn6RI/AAAAAAAAAsU/eb96cb8GmgA/s1600-h/CIMG0445.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_Tidqh9c0DiE/SRHgUcdn6RI/AAAAAAAAAsU/eb96cb8GmgA/s320/CIMG0445.JPG" alt="" id="BLOGGER_PHOTO_ID_5265236081215269138" border="0" /&gt;&lt;/a&gt;Vi prometto che la metterò anche su Picasa così che sia scaricabile in dimensioni originali.. solo che prima vorrei scattare qualche foto un po' più "ambientalizzata" e contestualizzata, con altre miniature (che ho già dipinto) in maniera da simulare una piccola bataglia "nani VS drago magnus".&lt;br /&gt;&lt;br /&gt;P.S.: Chi di voi si ricorda chi è il drago magnus? Indizio: anche se nella foto non si vede, lo scudo l'ho dipinto di bianco con una croce rossa! ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-73207047852574209?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/73207047852574209/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=73207047852574209' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/73207047852574209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/73207047852574209'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/11/drago-magnus.html' title='Drago Magnus'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Tidqh9c0DiE/SRHgUcdn6RI/AAAAAAAAAsU/eb96cb8GmgA/s72-c/CIMG0445.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-3160302545804956510</id><published>2008-10-22T08:30:00.000+02:00</published><updated>2008-10-22T08:31:31.086+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Diamante condannato</title><content type='html'>Diamante condannato&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Una preziosa pietra,&lt;br /&gt;rara tra coproliti,&lt;br /&gt;risplende affannosa&lt;br /&gt;nell’olimpo tra miti.&lt;br /&gt;&lt;br /&gt;Non solo per natura&lt;br /&gt;le doti son innate,&lt;br /&gt;elogio di bravura&lt;br /&gt;per sfide affrontate.&lt;br /&gt;&lt;br /&gt;Diamante condannato,&lt;br /&gt;solitario viaggio,&lt;br /&gt;sogno decapitato&lt;br /&gt;d’unione col raggio.&lt;br /&gt;&lt;br /&gt;Onnipotente,&lt;br /&gt;un dio “fato” eleva valorosi&lt;br /&gt;che esternano spontaneamente.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-3160302545804956510?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/3160302545804956510/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=3160302545804956510' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/3160302545804956510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/3160302545804956510'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/10/diamante-condannato.html' title='Diamante condannato'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-1681280669588169762</id><published>2008-09-16T14:30:00.003+02:00</published><updated>2008-09-16T16:58:43.791+02:00</updated><title type='text'>J2EE SecurityService: potente ma...</title><content type='html'>...decisamente "entropico"!&lt;br /&gt;&lt;br /&gt;Niente da dire su JAAS lato autenticazione, realizzato un po' sul modello di PAM (con cui tra l'altro può interagire), JAAS è decisamente costruito bene dal punto di vista dell'autenticazione.. per J2SE.. in J2EE le cose non vanno altrettanto bene dato che:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;ci si può autenticare in Ackerman(N,N) modi con N&gt;3... il che tradotto da "modoDiDire" a "italiano standard" significa "troppi";&lt;/li&gt;&lt;li&gt;l'autenticazione avvenuta in ognuno di questi modi porta a risultati diversi.. se almeno uno potesse scegliere una delle modalità di autenticazione qualunque (la più standard, la più comoda, ...) ottenendo lo stesso risultato... invece ci si può autenticare:&lt;ul&gt;&lt;li&gt;lato web-tier, utilizzando uno dei metodi vari (BASE,FORM,DIGEST,CUSTOM ecc) con identità salvata lato web-tier e propagata lato EJB;&lt;/li&gt;&lt;li&gt;direttamente tramite API dell'AS (come "&lt;tt&gt;com.sun.appserv.security.ProgrammaticLogin&lt;/tt&gt;" in glassfish) saltando tutti i meccanismi di autenticazione standard.. e anche questo lato web e lato business con enormi differenze sul risultato;&lt;/li&gt;&lt;li&gt;utilizzando librerie che interagiscano con JAAS e con il SO, ad esempio per effettuare il login usando l'identità locale dell'utente (ad esempio un client di una applicazione EE potrebbe usare le credenziali di Windows o di PAM in Linux, Unix, MacOSX, "/.*[xX]/");&lt;/li&gt;&lt;li&gt;creando un proprio LoginModule e Realm (tanto per aggiungere entropia.. finiremo per confonderci con il "rumore di fondo"!!!)...&lt;/li&gt;&lt;li&gt;...mi fermo ma potrei proseguire, sicuramente uno standard (anche de-facto) farebbe piacere.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;autenticazione=??? Ok, abbiamo controllato tutti i LoginModule di questa terra, username+password, impronte digitali, scansione retinica, statistiche di digitazione, impronta vocale, eco nel padiglione auricolare destro, ecc ecc... e mò? Salvataggio di Subject, Principal, Credentials... Tutto qui? E poi? Perché devo scrivere nel subject che sono "Gabriele Lombardi", creare un principal con dentro scritto "Gabirele Lombardi" e magari salvare le credenziali "Gabriele Lombardi"+"PasswdFuffa"???&lt;/li&gt;&lt;/ol&gt; Ma mica abbiamo finito.. eh no! Diamo un occhio lato autorizzazioni, da questo lato l'architettura è stra-fine: gestione di risorse, gestione di policy sulle risorse, di regole nelle policy, di permissions sulle risorse, di...&lt;br /&gt;&lt;span style="font-size:130%;"&gt;...&lt;span style="font-weight: bold;"&gt;insomma un casino&lt;/span&gt;! &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Allora, dico io, va bene che bisogna poter fare mille cose.. che la sicurazza è una cosa, che bisogna essere generali e che usare i DesignPatterns aiuta a sviluppare software riutilizzabile e corretto... però a tutto c'é un limite! &lt;span style="font-weight: bold;"&gt;OPPURE&lt;/span&gt;...&lt;br /&gt;Bene.. cari &lt;span style="font-weight: bold;"&gt;Sun&lt;/span&gt;nisti, esiste un simpatico BANALE pattern GOF di nome "Facade", lo usate sempre... ci sono package che fanno anche il caffé e nelle API pubbliche se ne vedono 4 classi/interfacce/annotazioni in croce! (Vedasi javax.persistence... fa l'impossibile.. ma "di nascosto")... usarlo anche per il SecurityService no eh? Magari usarlo UNA SOLA VOLTA ma bene.. creando un solo standard di accesso al servizio... non 27 modi diversi, non standard, vendor-dependent... e in generale diversi o peggio... quasi uguali ma con sfumature "cangianti"!!!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;DETTO QUESTO...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Butto li una domanda-esempio: se volessi gestire dinamicamente utenti (e gruppi di utenti/gruppi organizzati in un DAG) nonché risorse (organizzate ad albero o DAG anche loro)... e poi volessi creare dei permessi che associno risorse e utilizzatori (utenti o gruppi) in maniera da poter risolvere i permessi sfruttando ereditarietà sia sulle risorse che sugli utenti/gruppi... come potrei fare? Ovviamente il tutto lo voglio fare dinamicamente.. non voglio uno staticissimo policy-file!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ESEMPIO:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  RISORSE:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;PhotoGallery&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Gallery1&lt;/li&gt;&lt;li&gt;Gallery2&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;con permessi ordinati "edit"&gt;"comment"&gt; "browse" (cioè che si implicano l'un l'altro).&lt;br /&gt;&lt;br /&gt;  UTENTI:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Users&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Admin&lt;/li&gt;&lt;li&gt;Owner&lt;/li&gt;&lt;li&gt;KnownUser&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;  PERMESSI:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Admin-&gt;Risorse: "*"&lt;/li&gt;&lt;li&gt;Owner-&gt;PhotoGallery: "*" (o "edit" dato che implica le altre)&lt;/li&gt;&lt;li&gt;KnownUser-&gt;Gallery1: "comment"&lt;/li&gt;&lt;li&gt;User-&gt;PhotoGallery: "browse"&lt;/li&gt;&lt;/ul&gt; Al che "Ciccio", associato al gruppo KnownUser, può vedere tutte le gallerie, ma può commentare solo Gallery1 e non può editare. "MasterOfPuppets" associato al gruppo Admin può fare tutto, mentre "QuiQuoQua", owner della galleria, può fare tutto.. ma solo sulla (sua) galleria.&lt;br /&gt;&lt;br /&gt; Soluzione? Ovviamente costruibile a run-time.. cioè creando la struttura di risorse e utilizzatori a run-time aggiungendo tuple in una o più tabelle, creando le tuple di utenti e gruppi e creando le tuple per i permessi.&lt;br /&gt;&lt;br /&gt; Vi prego... FLAMMATEMI questo post, così magari ci capisco un po' di più!!! ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-1681280669588169762?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/1681280669588169762/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=1681280669588169762' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1681280669588169762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1681280669588169762'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/09/j2ee-securityservice-potente-ma.html' title='J2EE SecurityService: potente ma...'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-3144571579291584570</id><published>2008-08-18T12:25:00.002+02:00</published><updated>2008-08-20T12:52:45.857+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><title type='text'>Diamo forma ai libri..!</title><content type='html'>Alla fine le poesie sono fatte per essere scritte.. e lette! Quindi eccovi la mia prima pubblicazione poetica ufficiale:&lt;br /&gt;&lt;br /&gt;  &lt;a href="http://ilmiolibro.it/libro.asp?id=42814"&gt;Deliranti sentieri...&lt;br /&gt; ...in versi sparsi.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Giusto per dare forma ai pensieri.. tipo forma di "parallelepipedo sfogliabile"! ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-3144571579291584570?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/3144571579291584570/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=3144571579291584570' title='3 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/3144571579291584570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/3144571579291584570'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/08/diamo-forma-ai-libri.html' title='Diamo forma ai libri..!'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-227727701923944269</id><published>2008-08-07T12:43:00.003+02:00</published><updated>2008-08-07T12:50:44.323+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Mutevole erotismo</title><content type='html'>Mutevole erotismo&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fantasia fervida,&lt;br /&gt;ricerca di novità,&lt;br /&gt;il docle piacere&lt;br /&gt;d'un sogno proibito;&lt;br /&gt;di tabù superati&lt;br /&gt;è plasmata l'unione.&lt;br /&gt;&lt;br /&gt;Fine delle idee,&lt;br /&gt;nullo desiderio&lt;br /&gt;d'arti spericolate;&lt;br /&gt;sensibile profondo,&lt;br /&gt;gustato a pieno,&lt;br /&gt;l'amore passionale.&lt;br /&gt;&lt;br /&gt;La sottomissione&lt;br /&gt;all'amante deciso,&lt;br /&gt;la prevaricazione&lt;br /&gt;d'uno schiavo dolce,&lt;br /&gt;scontro d'intensi sguardi:&lt;br /&gt;si miscelan' i sensi.&lt;br /&gt;&lt;br /&gt;Riscoprendoci dentro,&lt;br /&gt;sbizzarrendoci fuori,&lt;br /&gt;usando corpi nudi,&lt;br /&gt;assaporando ogni&lt;br /&gt;sfumatura d'anime,&lt;br /&gt;siamo sempre più "NOI"!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-227727701923944269?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/227727701923944269/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=227727701923944269' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/227727701923944269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/227727701923944269'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/08/mutevole-erotismo.html' title='Mutevole erotismo'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-404753897654354567</id><published>2008-07-02T16:20:00.001+02:00</published><updated>2008-07-02T16:21:38.671+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Sgretolandoti</title><content type='html'>Sgretolandoti&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mente d'instabile,&lt;br /&gt;veloce deriva&lt;br /&gt;d'una dolce pensatrice:&lt;br /&gt;s'aggrovellano idee,&lt;br /&gt;paure, proiezioni&lt;br /&gt;d'un mondo che mai&lt;br /&gt;fu meno reale.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-404753897654354567?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/404753897654354567/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=404753897654354567' title='4 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/404753897654354567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/404753897654354567'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/07/sgretolandoti.html' title='Sgretolandoti'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-8786041000740580742</id><published>2008-07-02T16:16:00.001+02:00</published><updated>2008-07-02T16:22:00.465+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Fresche e lucenti... nell'oscurità</title><content type='html'>Fresche e lucenti... nell'oscurità&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Perle trasparenti brillano:&lt;br /&gt;da tiepidi raggi trafitte,&lt;br /&gt;rotolano inermi lungo stami,&lt;br /&gt;abbandonano i giovani germogli&lt;br /&gt;per lanciarsi nell'abisso&lt;br /&gt;ove non faranno ritorno.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-8786041000740580742?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/8786041000740580742/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=8786041000740580742' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8786041000740580742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8786041000740580742'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/07/fresche-e-lucenti-nelloscurit.html' title='Fresche e lucenti... nell&apos;oscurità'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-4971468699068495007</id><published>2008-05-15T16:22:00.004+02:00</published><updated>2008-05-15T17:54:25.131+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Stagioni diverse</title><content type='html'>Stagioni diverse&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Rotean ingranaggi&lt;br /&gt;d'esseri mutevoli,&lt;br /&gt;splendore rugginoso;&lt;br /&gt;alternarsi frivoli&lt;br /&gt;osservo personaggi.&lt;br /&gt;&lt;br /&gt;Essendo incapaci&lt;br /&gt;d'introspetta puntura,&lt;br /&gt;dolore fastidioso&lt;br /&gt;alimenta paura,&lt;br /&gt;vegetano felici.&lt;br /&gt;&lt;br /&gt;Rarament'intendendo,&lt;br /&gt;ponendomi quesiti&lt;br /&gt;vi osservo dubbioso:&lt;br /&gt;contorto è l'animo,&lt;br /&gt;lo sto somatizzando.&lt;br /&gt;&lt;br /&gt;Gli umani son siti&lt;br /&gt;d'intricati terrori:&lt;br /&gt;chi diviene furioso,&lt;br /&gt;chi rovina d'amori,&lt;br /&gt;chi lavor'appassiti.&lt;br /&gt;&lt;br /&gt;Io m'osservo: perdente&lt;br /&gt;comprendo di non poter,&lt;br /&gt;nell'animo fumoso,&lt;br /&gt;duro nocciolo scorger:&lt;br /&gt;sconfitta è sovente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-4971468699068495007?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/4971468699068495007/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=4971468699068495007' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4971468699068495007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4971468699068495007'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/05/stagioni-diverse.html' title='Stagioni diverse'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-1794418192261904968</id><published>2008-05-14T17:00:00.002+02:00</published><updated>2008-05-14T17:49:38.059+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agraria'/><category scheme='http://www.blogger.com/atom/ns#' term='erboristeria'/><title type='text'>Sambuco in fiore</title><content type='html'>Ragazzi, in questo periodo la natura si è svegliata e sembra impazzita. La camomilla romana ed i papaveri invadono i campi e le piante di &lt;a href="http://it.wikipedia.org/wiki/Sambucus"&gt;sambuco&lt;/a&gt; riempiono l'aria di un profumo dolciastro. Maaa.. lo sapevate che:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Il sambuco è una pianta commestibile, non tossica, i cui fiori hanno mille usi.&lt;/li&gt;&lt;li&gt;In questo periodo i fiori aperti (e belli profumati) possono essere fritti in pastella (come i fiori di zucca) e comodamente mangiati utilizzando il picciolo del fiore come "manico".&lt;/li&gt;&lt;li&gt;Per produrre un buon liquore al sambuco (non identico alla classica sambuca) è sufficiente raccogliere i fiori, separare i singoli fiorellini dal picciolo "sgrullando" il fiore su un giornale e tenerli in "infusione" per 40 giorni in alcool puro (in maniera tale che i fiori riempiano completamente il barattolo in cui sono posti); dopo questo periodo è sufficiente per ogni litro di alcool aromatizzato versare in una pentola un litro di acqua e 700g di zuccero e portare ad ebollizione (facendo sciogliere completamente lo zucchero con un cucchiaio), infine miscelare bene i due liquidi e lasciar raffreddare. La raccolta e separazione dei fiori dai piccioli è un'operazione velocissima (le piante di sambuco si trovano ovunque ed i fiori maturi si staccano subito), purtroppo bisogna aspettare 40 giorni (agitando di tanti in tanto il barattolo), però la preparazione finale del liquore con acqua e zucchero è un lavoro da 10 minuti!!!&lt;/li&gt;&lt;li&gt;&lt;a href="http://it.wikipedia.org/wiki/Sambuco"&gt;Sambuco&lt;/a&gt; è anche un comune di 84 abitanti in provincia di Cuneo ;)&lt;/li&gt;&lt;li&gt;Il suo nome &lt;span style="font-size:100%;"&gt;deriva dal greco, "sambuchè", una specie di flauto costruito rimuovendo il modollo morbido dai rami più grossi.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;E' una pianta &lt;/span&gt;&lt;span style="font-size:100%;"&gt; emolliente e sudorifera, i fiori sono diaforetici, i frutti sono lassativi e la corteccia è diuretica. (ne ha una per ogni esigenza ;) Inoltre i fiori possono essere usati contro l'influenza tramite infusi e come astringenti per la pelle se se ne utilizza il decotto.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:100%;"&gt;Tutto qui? No no: gli usi del sambuco sono 1000 e 1000.. ma non vi voglio togliere il piacere della scoperta, Google is your friend ;)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-1794418192261904968?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/1794418192261904968/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=1794418192261904968' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1794418192261904968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1794418192261904968'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/05/sambuco-in-fiore.html' title='Sambuco in fiore'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-5213133017309789574</id><published>2008-04-15T18:31:00.002+02:00</published><updated>2008-04-15T18:32:33.704+02:00</updated><title type='text'>Notte perpetua</title><content type='html'>Belli guaglioni, eccovi un bel racconto da leggere d'un fiato e da commentare. Se fa schifo.. ditemelo pure, sono qui apposta per ricevere commenti di qualunque genere. Sicuramente non è un racconto "nella media". Ditemi che ne pensate, a presto.&lt;br /&gt;&lt;a href="http://homes.dsi.unimi.it/%7Elombardi/download/docs/various/NottePerpetua.doc"&gt;Notte perpetua&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-5213133017309789574?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/5213133017309789574/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=5213133017309789574' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/5213133017309789574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/5213133017309789574'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/04/notte-perpetua.html' title='Notte perpetua'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-1638293542971900067</id><published>2008-03-26T12:45:00.004+01:00</published><updated>2008-03-26T14:26:33.785+01:00</updated><title type='text'>OOP in VimScript</title><content type='html'>Vim è uno dei (due) editor di testo più potenti che esistano, e come il suo concorrente (Emacs) può essere programmato in (almeno) un linguaggio di scripting apposito: il VimScript (in Emacs si usa l'elisp). Il VimScript è un linguaggio molto potente, articolato, con strutture dati flessibili (simili alle strututre dati di Python), tra le quali i dizioniari. I dizioniari, utilizzati in maniera particolare, consentono la costruzione di funzioni in cui sia possibile accedere al loro contentuo, una sorta di self pointer. Buttiamo lì un'identità di cui discuterò con voi volentieri:&lt;br /&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;strutture+function_handler+self=object orientation&lt;/span&gt;&lt;br /&gt; Vediamo come questa cosa possa essere vera in VimScript: per prima cosa vi esorto a scaricare &lt;a href="http://homes.dsi.unimi.it/%7Elombardi/download/mySw/toys/VimPresentation_2008_02_14_01_36.zip"&gt;questo&lt;/a&gt; archivio con all'interno del codice VimScript, fra cui quello che ho scritto per l'OOP. In secundis aprite ed osservate il file "OO.vim" presente nella cartella "VimPresentation\Automation\Scripting". In esso:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;BaseClass&lt;/span&gt;: salva in una variabile globale la classe corrente, costruita come dizionario con l'entry speciale "__name" contenente i nomi delle classi da cui l'oggetto eredita (per ora solo la corrente) e l'array (ora vuoto) delle interfacce implementate. Successivamente lo restituisce.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Interface&lt;/span&gt;: nefinisce una struttura simile a quella di una classe ma senza array delle interfacce.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Hinerit&lt;/span&gt;: l'ereditatrietà è gestita all'interno del costruttore chiamando questa funzione,  qui viene creata l'istanza della superclasse, viene poi aggiunto ai nomi delle classi da cui si eredita il nome della sottoclasse, sarà poi compito del costruttore terminare la propria opera aggingendo nuovi attributi e svolgendo altri compiti di inizializzazione.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Virtual&lt;/span&gt;: i metodi virtuali non sono altro che metodi che vengono (nella sottoclasse, non nella superclasse come in C++) salvati all'interno della strututra d'istanza sotto nuovo nome tipo "superclasse_metodo" e che quindi vengono sostituiti nella sottoclasse.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;PureVirtual&lt;/span&gt;: un metodo virtuale puro invece è un metodo che non è ancora stato implementato, se ne genera quindi una versione dummy ( che genera solo un'eccezione) e si utilizza la stessa tecnica dei metodi virtuali.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Implements&lt;/span&gt;: l'implementazione delle interfacce significa due cose:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;l'interfaccia (il suo nome) deve figurare tra le interfacce implementate,&lt;/li&gt;&lt;li&gt;tutti i metodi virtuali puri presenti nell'interfaccia devono essere in quelche modo "importati" all'interno della classe corrente (starà poi al programmatore implementarli).&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Isa&lt;/span&gt;: usando i nomi da dizionario si può sapere se una istanza è (da qualche parte nell'albero d'ereditarietà) istanza di una determinata classe.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;IsImplemented&lt;/span&gt;: in modo analogo si può controllare se un istanza implementa una determinata interfaccia.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Import&lt;/span&gt;: un po' di comodità non guasta! ;)&lt;/li&gt;&lt;/ul&gt;Detto questo, sperando che abbiate contemporaneamente visionato il (semplicissimo) codice in VimScript che definisce queste funzioni, vediamo come utilizzarle per definire una classe, il classico contatore. Riporto e commento il file "Counter.vim":&lt;br /&gt;&lt;blockquote&gt;let s:_default = 42&lt;/blockquote&gt; All'interno di uno script le variabili nello scope s: sono locali allo script stesso, per una classe questo significa avere a disposizione uno strumento per gli attributi statici.&lt;br /&gt;&lt;blockquote&gt;function! Counter(...)&lt;br /&gt; ...&lt;br /&gt;endfunction&lt;br /&gt;&lt;/blockquote&gt; Al solito definiamo una classe come funzione con funzioni innestate, la funzione di suo farà da costruttore. In fondo si può trovare il codice:&lt;br /&gt;&lt;blockquote&gt;function! Counter_compare(a,b)&lt;br /&gt;    " Contronto actual:&lt;br /&gt;    return a:a._actual&gt;a:b._actual&lt;br /&gt;endfunction&lt;br /&gt;&lt;/blockquote&gt;che definisce una funzione friend. Il costruttore svolge le seguenti azioni:&lt;br /&gt;&lt;blockquote&gt;    if a:0&lt;1&lt;br /&gt;        let initial = s:_default&lt;br /&gt;    else&lt;br /&gt;        let initial = a:1&lt;br /&gt;    end&lt;br /&gt;    let counter = BaseClass('Counter') | Implements ICounter&lt;br /&gt;    call extend(counter,{'_actual': initial})&lt;br /&gt;&lt;/blockquote&gt;che rappresentano:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;inizializzazione dell'attributo "initial" come variabile (per ora) locale,&lt;/li&gt;&lt;li&gt;creazione dell'istanza con implementazione dell'interfaccia ICounter,&lt;/li&gt;&lt;li&gt;agginta dell'attributo privato "initial".&lt;/li&gt;&lt;/ol&gt; Vedremo dopo come è stata definita l'interfaccia, ovviamente la sintassi deriva dal fatto che è stato creato un comando apposito per la definizione delle interfacce implementate, che richiama la funzione omonima.&lt;br /&gt; A questo punto vengono aggiunti i metodi (eventualmente dichiarati virtuali se devono sovrascrivere i metodi di una superclasse o di un'interfaccia):&lt;br /&gt;&lt;blockquote&gt;    Virtual actual&lt;br /&gt;    function! counter.actual() dict&lt;br /&gt;        return self._actual&lt;br /&gt;    endfunction&lt;br /&gt;&lt;/blockquote&gt; E la classe è pronta! ;) Si osservi che i metodi vengono dichiarati con la speciale sintassi:&lt;br /&gt;&lt;blockquote&gt;funciton! struttura.nome(...) &lt;span style="color: rgb(204, 0, 0);"&gt;dict&lt;/span&gt;&lt;br /&gt; ...&lt;br /&gt;endfunction&lt;br /&gt;&lt;/blockquote&gt;dove la parola chiave "dict" assicura che all'interno del metodo si possa fare riferimento al dizionario "counter" con la parola chiave self. Si noti anche che il nome della funzione inizia con il nome dell'istanza che si sta costruento e che verrà restituita al termine del costruttore, infatti si sta semplicemente dichiarando un funciotn_handler di nome (in questo esempio) "actual" all'interno del dizionario "counter" richiedendo di generare il riferimento locale "self" con la parola chiave "dict".&lt;br /&gt; Nel file "StepCounter.vim" si può osservare che l'ereditarietà è ottenuta semplicemente sostituendo la chiamata a "BaseClass" con la chiamata a "Hinerit" passando anche il nome della superclasse e la lista degli argomenti.&lt;br /&gt; Con la definizione dei comandi si è resa semplicissima la dichiarazione delle interfacce:&lt;br /&gt;&lt;blockquote&gt;fun! ICounter()&lt;br /&gt;    let counter = Interface('ICounter')&lt;br /&gt;    Abstract actual next prev set&lt;br /&gt;    return counter&lt;br /&gt;endfun&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Infatti:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Si crea l'interfaccia in una fuzione "costruttore",&lt;/li&gt;&lt;li&gt;si crea "l'istanza" con "Interface",&lt;/li&gt;&lt;li&gt;si creano i metodi virtuali puri col comando "Abstract",&lt;/li&gt;&lt;li&gt;si restituisce l'interfaccia.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-1638293542971900067?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/1638293542971900067/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=1638293542971900067' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1638293542971900067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1638293542971900067'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/03/oop-in-vimscript.html' title='OOP in VimScript'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-2231106151890871954</id><published>2008-03-26T11:53:00.002+01:00</published><updated>2008-03-26T12:31:12.552+01:00</updated><title type='text'>OO in Matlab: Single inheritance</title><content type='html'>Belli guaglioni, ricordate &lt;a href="http://ilgabbio.blogspot.com/2007/04/programmare-oop-in-matlab.html"&gt;questo&lt;/a&gt; post rtelativo alla programmazione OO in Matlab? Bè ogni tanto per sfizio mi diletto a giocherellare con la metaprogrammazione e ho da proporvi un paio di chicche, una (banale) in matlab e una più interessante in VimScript (prossimo post).&lt;br /&gt; Iniziamo pensare alla tecnica proposta per programmare OO in Matlab, abbiamo compreso come ottenere molte features, non abbiamo ottenuto però l'ereditarietà. Per aggiungere l'ereditarietà vogliamo tenere d'occhio i seguenti aspetti:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Overriding&lt;/span&gt;: vogliamo poter "sovrascrivere" i metodi della superclasse con le nostre nuove versioni senza perdere però la possibilità di accedere esplicitamente alle versioni della superclasse.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Accessors&lt;/span&gt;: non abbiamo descritto in maniera molto dettagliata come poter realizzare dei metodi accessori al meglio della comodità d'utilizzo, l'idea è quella di ottenere una sorta di property come in C#, per intenderci.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Protected access&lt;/span&gt;: nell'antico post sulla OOP in Matlab abbiamo descritto in maniera precisa come ottenere accesso pubblico e privato ai metodi, come costruire funzioni private accessorie non legate agli oggetti, come memorizzare gli attributi come privati ma non come pubblici (cosa che non faremo, usando invece i metodi accessori). Resta però da efinire come ottenere un livello protetto di accesso ai metodi o attributi. Si cominci a considerare il fatto che se si ottiene l'accesso protetto ai metodi si può sfruttare quello per avere accesso protetto verso gli attributi semplicemente con degli accessori protetti. Per ora però purtroppo non siamo in grado di creare metodi ad accesso protetto, quindi ci limitiamo ad utilizzare la tecnica delle property.&lt;/li&gt;&lt;/ul&gt; Dopo tutta sta pizza passiamo al codice: vogliamo creare la classe stepCouter sottoclasse di counter, in essa dovremo sfruttare il valore attuale del contatore per poterlo leggere, modificare e reimpostare; per questo motivo creiamo il seguente metodo accessorio nel contatore:&lt;br /&gt;&lt;blockquote&gt;    &lt;span style="color: rgb(51, 204, 0);"&gt;% The actual value accessor:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;function&lt;/span&gt; ao = Actual(ai)&lt;br /&gt;        &lt;span style="color: rgb(51, 204, 0);"&gt;% Getting the actual value:&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;if&lt;/span&gt; nargin&gt;0; start=ai; &lt;span style="color: rgb(0, 0, 153);"&gt;end&lt;/span&gt;&lt;br /&gt;       &lt;br /&gt;        &lt;span style="color: rgb(51, 204, 0);"&gt;% Setting the output:&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;if&lt;/span&gt; nargout&gt;0; ao=start; &lt;span style="color: rgb(0, 0, 153);"&gt;end&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;end&lt;/span&gt;&lt;/blockquote&gt; Collegheremo questo metodo all'oggetto salvando il function_handler con il nome "actual" all'interno dell'istanza restituita:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;% Returning the counter: this is the public methods' set exported.&lt;/span&gt;&lt;br /&gt;c = struct(&lt;span style="color: rgb(153, 51, 153);"&gt;'next'&lt;/span&gt;,@Next,&lt;span style="color: rgb(153, 51, 153);"&gt;'prev'&lt;/span&gt;,@Prev, &lt;span style="color: rgb(51, 204, 0);"&gt;...&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(153, 51, 153);"&gt;'reset'&lt;/span&gt;,@Reset,&lt;span style="color: rgb(153, 51, 153);"&gt;'actual'&lt;/span&gt;,@Actual);&lt;br /&gt;&lt;/blockquote&gt; Fatto questo abbiamo la possibilità, nella sottoclasse, di istanziare il contatore e aggiungervi dei metodi che, sfruttando la property 'actual', possano modificare anche l'istanza della superclasse.&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Si noti che la superclasse e la sottoclasse avranno collegati a sé due workspace differenti con all'interno i loro rispettivi attributi privati;&lt;/span&gt; questo significa che con questa tecnica comunque ogni classe genera istanza che hanno il proprio workspace separato da tutti gli altri, senza possibilità di interferenze. Ecco il codice:&lt;blockquote&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;function&lt;/span&gt; c = stepCounter(start,step)&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% STEPCOUNTER  Generates a new counter that uses a step.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;%&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;%  Here the single hineritance is obtained by generating an object of the&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% superclass and then joining the method calls, notice that the mantained&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% workspaces are distinguished so there are difficulties in the private&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% attributes access (there is no protected access, only public or private);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% so an accessor in the class "counter" must be added (in this case&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% "actual"), this allows to have the actual attribute to be public.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% =========================================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% Creating the object:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% =========================================================================&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% Using the superclass' constructor:&lt;/span&gt;&lt;br /&gt;c = counter(start);&lt;br /&gt;clear &lt;span style="color: rgb(153, 51, 153);"&gt;start&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% Adding local methods:&lt;/span&gt;&lt;br /&gt;c.step = @Step;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% Saving the old method so that can be explicitly called if required:&lt;/span&gt;&lt;br /&gt;c.counter.next = c.next;&lt;br /&gt;c.next = @Next;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% Same for the prev:&lt;/span&gt;&lt;br /&gt;c.counter.prev = c.prev;&lt;br /&gt;c.prev = @Prev;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% =========================================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;%  The public methods body.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% =========================================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    % The next integer function:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;function &lt;/span&gt;n = Next&lt;br /&gt;        &lt;span style="color: rgb(0, 153, 0);"&gt;% Increment:&lt;/span&gt;&lt;br /&gt;        n = c.actual(c.actual() + step);&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;end&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 153, 0);"&gt;% The prev integer function:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;function &lt;/span&gt;n = Prev&lt;br /&gt;        &lt;span style="color: rgb(0, 153, 0);"&gt;% Decrement:&lt;/span&gt;&lt;br /&gt;        n = c.actual(c.actual() - step);&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;end&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 153, 0);"&gt;% Setting and getting the step value:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;function&lt;/span&gt; so = Step(si)&lt;br /&gt;        &lt;span style="color: rgb(0, 153, 0);"&gt;% Getting the actual value:&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;if&lt;/span&gt; nargin&gt;0; step=si; &lt;span style="color: rgb(0, 0, 153);"&gt;end&lt;/span&gt;&lt;br /&gt;       &lt;br /&gt;        &lt;span style="color: rgb(0, 153, 0);"&gt;% Setting the output:&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;if &lt;/span&gt;nargout&gt;0; so=step; &lt;span style="color: rgb(0, 0, 153);"&gt;end&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% =========================================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;%  Private methods are simple functions and can be defined here.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% =========================================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% =========================================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;%  Support functions that are not methods (no access to attributes) are&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% defined here.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% =========================================================================&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;/span&gt;Quindi in questa sottoclasse "step" è un attributo locale privato, ed è l'unico presente nel workspace della sottoclase "stepCounter", il parametro "start" del costruttore viene rimosso una volta utilizzato perché dopo la chiamata al costruttore della superclasse non serve più (è stato memorizzato nel workspace della superclasse) e se non eliminato rimarrebbe nel workspace privato della sottoclasse "stepCounter" occupando spazio inutile e potenzialmente dando la possibilità di scrivere codice errato e confuso. Per "step" si è creata una property, i metodi "next" e "prev" sono stati sostituiti e le vecchie versioni sono state salvate nella struttura stessa in una sottostruttura con il nome della superclasse. Ora è possibile scrivere codice come il seguente:&lt;br /&gt;&lt;blockquote&gt;c1 = counter(10);&lt;br /&gt;c2 = stepCounter(10,10);&lt;br /&gt;c1.next()&lt;br /&gt;c2.next() &lt;span style="color: rgb(0, 153, 0);"&gt;% Uso la versione "overridata":&lt;/span&gt;&lt;br /&gt;s=c2.step &lt;span style="color: rgb(0, 153, 0);"&gt;%ottengo lo step:&lt;/span&gt;&lt;br /&gt;c2.step(20); &lt;span style="color: rgb(0, 153, 0);"&gt;% Imposto lo step:&lt;/span&gt;&lt;br /&gt;c2.counter.next(); &lt;span style="color: rgb(0, 153, 0);"&gt;% Uso la versione originale:&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-2231106151890871954?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/2231106151890871954/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=2231106151890871954' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/2231106151890871954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/2231106151890871954'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/03/oo-in-matlab-single-inheritance.html' title='OO in Matlab: Single inheritance'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-1588861734891987262</id><published>2008-02-13T12:31:00.003+01:00</published><updated>2008-02-13T12:35:17.583+01:00</updated><title type='text'>Commenti in C++</title><content type='html'>I linguaggi C/C++/Java/ecc (anche se non nello standard C99) prevedono l'utilizzo di due diversi tipi commenti:&lt;br /&gt;&lt;br /&gt;// Commento su una riga (one-line comment)&lt;br /&gt;/*&lt;br /&gt;  Commento di un intervallo di testo (range comment)&lt;br /&gt;  */&lt;br /&gt;&lt;br /&gt; Inoltre non prevedono comment nesting (annidamento dei commenti), quindi suddividono l'input in token "//", "/*" e "*/" dipendentemente dal contesto (di commento). Questo unito all'utilizzo del carattere "/" condiviso tra i due tipi di commento permette di "giocare" per ottenere risultati interessanti e utili.. quando si dice giocare con poco per ottenere molto! ;)&lt;br /&gt;&lt;br /&gt; Date un occhio a &lt;a href="http://homes.dsi.unimi.it/%7Elombardi/download/docs/various/comments.cpp"&gt;questi esempi&lt;/a&gt; e se vi va lasciatemi un commento (al blog, non in C++ ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-1588861734891987262?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/1588861734891987262/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=1588861734891987262' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1588861734891987262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1588861734891987262'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/02/commenti-in-c.html' title='Commenti in C++'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-3928005224288539839</id><published>2008-01-29T11:14:00.000+01:00</published><updated>2008-01-29T11:17:53.585+01:00</updated><title type='text'>Buio illuminante</title><content type='html'>Buio illuminante&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Luce diffusa, radente, coglie&lt;br /&gt;ogne anfratto dell’anima pia,&lt;br /&gt;occultando le ombre minacciose.&lt;br /&gt;In agguato pazientano tenebre,&lt;br /&gt;liberatrici di spettri antichi,&lt;br /&gt;nulla può impedirne il ritorno.&lt;br /&gt;&lt;br /&gt;Miope dell’antica identità,&lt;br /&gt;non comprendo il profondo dolore;&lt;br /&gt;erroneamente intendo segni&lt;br /&gt;mostratimi con gesti inattesi.&lt;br /&gt;Nel buio profondo ora brancolo&lt;br /&gt;fiutando intesa per dar appoggio.&lt;br /&gt;&lt;br /&gt;Giornate luminose rendon ciechi,&lt;br /&gt;sovente di più svela oscurità,&lt;br /&gt;chiarore perpetuo, s’apprezza poco.&lt;br /&gt;Nell’ombra, un sol raggio di speranza&lt;br /&gt;pare illuminar l’intera vita,&lt;br /&gt;vien ben percepito con ogne senso.&lt;br /&gt;&lt;br /&gt;Dovrebbe serenità&lt;br /&gt;pervadere le menti&lt;br /&gt;d’accecati dispersi:&lt;br /&gt;vedranno più di prima.&lt;br /&gt;&lt;br /&gt;Non capendo,&lt;br /&gt;percepisco.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-3928005224288539839?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/3928005224288539839/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=3928005224288539839' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/3928005224288539839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/3928005224288539839'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2008/01/buio-illuminante.html' title='Buio illuminante'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-8921627536216876638</id><published>2007-11-23T11:43:00.000+01:00</published><updated>2007-12-14T14:18:42.015+01:00</updated><title type='text'>Goccia</title><content type='html'>&lt;div&gt;Goccia&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Goccia mi s'è posata&lt;br /&gt;d'improvviso sul volto:&lt;br /&gt;pioggia lieve, trasporta;&lt;br /&gt;saran d'uno stolto,&lt;br /&gt;ma l'antichi riporta&lt;br /&gt;mente d'era passata.&lt;br /&gt;&lt;br /&gt;Frenetico appare  &lt;/div&gt;seguirsi d'adulteri&lt;br /&gt;giorni non penetranti:&lt;br /&gt;&lt;div&gt;son gl'intensi valori,&lt;br /&gt;e non i fuorvianti,&lt;br /&gt;cui voglio l'sapore!&lt;br /&gt;&lt;br /&gt;Aspirandot'appieno&lt;br /&gt;gusto l'vero valore&lt;br /&gt;ch'amalgama serena&lt;br /&gt;coscienza d'amore;&lt;br /&gt;sublima l'anatema,&lt;br /&gt;errar pare ameno.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Son gli alti e bassi&lt;br /&gt;che compongono succo&lt;br /&gt;di esistenza, piatto&lt;br /&gt;appare il rintocco&lt;br /&gt;d'esistere coatto:&lt;br /&gt;sovente siam percossi!&lt;br /&gt;&lt;br /&gt;Usma essenza densa&lt;br /&gt;di quanto già possiedi;&lt;br /&gt;aspira la fragranza&lt;br /&gt;di antichi rimedi&lt;br /&gt;qual vera sostanza:&lt;br /&gt;palpito non pensa.&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Gabriele Lombardi&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-8921627536216876638?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/8921627536216876638/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=8921627536216876638' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8921627536216876638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8921627536216876638'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/11/goccia.html' title='Goccia'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-5106317460231587303</id><published>2007-11-03T18:00:00.000+01:00</published><updated>2007-11-03T18:03:15.611+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Bella</title><content type='html'>Bella&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Come un sorriso solare&lt;br /&gt;che sorge al mattino&lt;br /&gt;e non tramonta mai,&lt;br /&gt;come un angelo sognatore&lt;br /&gt;che dispiega le ali&lt;br /&gt;in un leggero volo libero,&lt;br /&gt;come un delicato fiore&lt;br /&gt;apre i petali vellutati&lt;br /&gt;sfiorato dalla rugiada,&lt;br /&gt;come una dolce amante&lt;br /&gt;trasmette inconsapevole&lt;br /&gt;un amore profondo e intenso;&lt;br /&gt;&lt;br /&gt;così tu sai rendermi felice,&lt;br /&gt;così tu sai carezzarmi,&lt;br /&gt;così tu sai essere la mia donna,&lt;br /&gt;così tu sai appagarmi,&lt;br /&gt;così tu sai sorridermi,&lt;br /&gt;così tu sai capirmi,&lt;br /&gt;così tu mi vuoi e ti dai,&lt;br /&gt;così tu mi intrighi,&lt;br /&gt;così tu diventi il mio centro,&lt;br /&gt;così tu.. e nessun'altra..&lt;br /&gt;nel mio profondo t'inerpichi&lt;br /&gt;drogandomi d'amore vero.&lt;br /&gt;&lt;br /&gt;Mia bella,&lt;br /&gt;ora ti sento mia&lt;br /&gt;e non posso più pensare&lt;br /&gt;a una vita vissuta senza di te.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-5106317460231587303?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/5106317460231587303/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=5106317460231587303' title='4 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/5106317460231587303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/5106317460231587303'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/11/bella.html' title='Bella'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-8246244878147839391</id><published>2007-10-31T13:24:00.000+01:00</published><updated>2007-10-31T13:29:00.410+01:00</updated><title type='text'>Diamo un occhio ai saponi fatti in casa</title><content type='html'>Eccovi un piccolo album fotografico dei saponi auto-prodotti:&lt;br /&gt;&lt;br /&gt; &lt;a href="http://picasaweb.google.com/ilGabbio/Sapone"&gt;Saponi&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-8246244878147839391?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/8246244878147839391/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=8246244878147839391' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8246244878147839391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8246244878147839391'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/10/diamo-un-occhio-ai-saponi-fatti-in-casa.html' title='Diamo un occhio ai saponi fatti in casa'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-8034198736735429230</id><published>2007-10-15T13:21:00.000+02:00</published><updated>2007-10-26T16:52:25.191+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='erboristeria'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Saponi saponi e ancora saponi!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Tidqh9c0DiE/RyH_F9JZDHI/AAAAAAAAANg/pzcoDbD5qxY/s1600-h/CIMG0918.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Tidqh9c0DiE/RyH_F9JZDHI/AAAAAAAAANg/pzcoDbD5qxY/s320/CIMG0918.JPG" alt="" id="BLOGGER_PHOTO_ID_5125658328702717042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Ragazzi.. come mi capita ogni tanto (anzi ogni spesso!) mi salta per la testa qualcosa e parto per la tangente! A sto giro sono partito per la tangente dei saponi e mi son messo a fabbricarne in casa! Se date un occhio al sito &lt;a href="http://www.ilmiosapone.it/"&gt;ilmiosapone&lt;/a&gt; troverete una marea di consigli, strumenti e ricette pronte per essere sperimentate.. considerate fra l'altro che se utilizzate il metodo a freddo potete utilizzare degli strumenti dedicati per il sapone per una spesa complessiva di circa 20€, senza devastare per forza una pentola di casa (che poi familiari vari tipo mogli, mariti o genitori vengono a bussare alla mia porta incazzati neri!!!).&lt;br /&gt;&lt;br /&gt;Siccome sul sito del link c'è già scritto tutto.. non vorrei ripetere le stesse informazioni.. a parte il fatto che la soda caustica in drogheria si trova con estrema facilità e costa pure poco (tipo 5€ un kg con cui potete fare circa 8 kg di sapone.. che mi sembrano abbastanza ;).. e che dovete assolutament elavorare con finestre spalancate.. meglio se direttamente in balcone o comunque all'aperto e con tutte le protezioni e precauzioni del caso perché la soda caustica non scherza!!!&lt;br /&gt;&lt;br /&gt;A parte tutto questo.. voglio darvi una ricettucola che mi sono inventato io e che mi sembra essere venuta una figata esagerata! Non l'ho trovata da nessuna parte.. quindi è pubblicata qui in esclusiva per voi (oooh ;). ECCOLA!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Tidqh9c0DiE/Rx8UHMueIKI/AAAAAAAAANY/CgZGWojJxdY/s1600-h/CIMG0915.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Tidqh9c0DiE/Rx8UHMueIKI/AAAAAAAAANY/CgZGWojJxdY/s320/CIMG0915.JPG" alt="" id="BLOGGER_PHOTO_ID_5124837014878691490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-style: italic;"&gt;Sapone orientale rinfrescante&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Questa ricetta sembra molto complicata ma in realtà ha l'enorme vantaggio di non contenere ingredienti comlicati da cercare.. molti si possono trovare in qualunque erboristeria (olii essenziali, foglie di eucalipto, olio di mandorle dolci), altri al supermercato (tutti gli altri olii, il miele e la farina di cocco). Considerate che potete tranquillamente sostituire degli ingredienti.. se avete già in casa il miele e non è all'eucalipto va bene comunque (ovviamente meglio usare quello di eucalipto), se non avete la farina di cocco ma quella normale.. ok comunque!&lt;br /&gt;&lt;br /&gt;Pesate i grassi nelle seguenti quantità:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;    100g   olio di mandorle dolci&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    100g   olio di soia&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      50g   olio di ricino&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    400g   olio di riso&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    350g   olio di oliva (meglio extravergine)&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Procuratevi anche:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;    5ml    olio essenziale alle mandorle (circa 50 gocce)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    5ml    olio essenziale all'eucalipto&lt;/span&gt;&lt;span style="font-style: italic;"&gt; (circa 50 gocce)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    q.b.    farina di cocco (un cucchiaio va bene)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    q.b.    miele all'eucalipto (un cucchiaio va bene)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    20g    foglie secche di eucalipto (frullatele per farne una polverina fine ma non troppo)&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Per la soluzione caustica servono:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;    125g     soda caustica&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    300cl    acqua con amido di riso procurato come segue:&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Facendovi un bel riso (meglio se in bianco).. che potrete mangiarvi aggiungendo zafferano o funghi trifolati.. come vi pare.. ma durante la cottura.. tenete l'acqua non troppo abbondante ma nemmeno troppo scarsa e di tanto in tanto con un mestolo recuperate l'amido.. che non sia troppo pastoso.. deve rimanere abbastanza liquido.. dovete raccoglierne 300cl in una brocca graduata. Fatelo raffreddare.&lt;br /&gt;&lt;br /&gt;Indossate vestiti vecchi e mettetevi le protezioni (guanti di gomma, maschera anti gas  (anche semplice), occhiali da saldatore).. pesate la soda caustica con precisione (al grammo.. non all'atomo!) e unitela lentamente con l'amido all'interno di uno stampo alto per torte abbastanza capiente da contenere almeno 2l d'acqua.. e che userete solo per il sapone. Non versate MAI l'acqua nella soda.. sempre il contrario e sempre lentamente mescolando con un cucchiaio che userete SOLO per fare il sapone. Mescolate bene fino a far sciogliere la soda.. state attenti ad essere in un posto all'aperto senza cose, persone o animali in giro perché la soluzione caustica è pericolosa (raggiungerà circa gli 80 gradi solo per la reazione chimica)!&lt;br /&gt;&lt;br /&gt;Mentre la soda rafredda e raggruma l'amido (ogni tanto andate a dargli una girata altrimenti viene fuori la ricotta sopra e tutto liquido sotto), cominciate a scaldare su un fornello i grassi, a fuoco molto lento, ogni tanto ficcateci dentro un dito per controllare la temperatura.. devono essere 45 gradi, se avete un termometro meglio, altrimenti controllate che sia appena tiepido, 45 gradi sono poco più della temperatura corporea (37).. la temperatura è molto importante.. quindi se riuscite a procurarvi 2 termometri è molto meglio!&lt;br /&gt;&lt;br /&gt;Quando la soda si è raffreddata fino a 45 gradi e l'olio è arrivato a 45 gradi.. uniteli (meglio la soda nell'olio.. però io di solito faccio il contrario per non rovinare una pentola da cucina!), mescolate bene con un cucchiaio, poi passate al frullatore a immersione (dovreste dedicare un frullatore intero al solo sapone.. se non volete farlo dato il costo della cosa potete prendere un frustino da dolci al costo di 3 euri e frullare a mano come facevano gli antichi con i rametti per fare il fuoco.. io faccio così.. è faticoso ma funziona e non devo spendere 70€ per un frullatore ad immersione). Smettete di frullare solamente quando raggiungete il nastro, ovvero quando il tutto è abbastanza cremoso da lasciare una piccola scia per un istante quando togliete il frullatore.&lt;br /&gt;&lt;br /&gt;A questo punto il sapone è pronto.. non resta che profumarlo e arricchirlo: tirate via metà del composto versandolo attentamente in un altro stampo, lo userete dopo. Aggiungete al rimanente il miele, la farina di cocco e l'olio essenziale alle mandorle. Continuate a mescolare a mano un po' (tipo un paio di minuti) e date anche una leggera frullatina, dovrebbe diventare ancora più cremoso. Fatto questo mettete da parte lo stampo principale e prendete il secondario con il composto avanzato: mettete l'olio essenziale all'eucalipto e le foglie di eucalipto; mescolate e frullate.&lt;br /&gt;Tococ d'arte: adesso versate il composto all'eucalipto dentro al composto al miele facendo una bella striscia centrale profonda. Versatelo tutto, poi procuratevi una bella assicella di legno.. o comunque qualcosa per isolare termicamente e mettete in un posto riparato il vostro stampo con tutto il sapone dentro, coperto in maniera che il calore duri di più aiutando la saponificazione. Lasciate maturare e indurire per 48 ore, poi sformate il sapone e lasciatelo stagionare almeno per un mese, meglio se due (diventa più delicato con la pelle).&lt;br /&gt;&lt;br /&gt;HAPPY SOAPING ;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-8034198736735429230?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/8034198736735429230/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=8034198736735429230' title='3 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8034198736735429230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8034198736735429230'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/10/saponi-saponi-e-ancora-saponi.html' title='Saponi saponi e ancora saponi!'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Tidqh9c0DiE/RyH_F9JZDHI/AAAAAAAAANg/pzcoDbD5qxY/s72-c/CIMG0918.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-5207471874532029083</id><published>2007-10-10T15:33:00.000+02:00</published><updated>2007-10-10T16:37:15.294+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='elaborazione delle immagini'/><title type='text'>Cose semplici.. ma di effetto!!!</title><content type='html'>A volte penso: "come è possibile che nel nostro laboratorio si lavori così tanto senza pensare all'impatto emotivo che anche prodotti semplici hanno su chi li vede?" Ovviamente mi metto in prima persona: cerco di inventare algoritmi carini (e funzionanti) per svolgere i compiti più disparati nel ramo della computer visione e dell'elaborazione delle immagini.. e poi non mi rendo conto di quanto poco ci voglia per valorizzarli!&lt;br /&gt;&lt;br /&gt;Ad esempio: con un proiettore, una webcam, un puntatore laser (ed ovviamente un computer) si può costruire in maniera molto semplice un sistema di puntamento (cioè di controllo del cursore) che funzioni con il puntatore laser puntato contro un muro dove è proiettato lo schermo del PC.. senza troppa fatica (l'algoritmo di localizzazione dello spot luminoso rosso è veramente una cavolata), ma con un risultato decisamente d'effetto! E' tanto semplice che mi è sembrato assurdo che non ci avesse ancora pensato nessuno.. infatti ci avevano già pensato &lt;a href="http://ieeexplore.ieee.org/iel4/5860/15612/00723001.pdf?arnumber=723001"&gt;[1]&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Al che dico.. il giochino del puntatore laser me gusta e me lo implemento.. però d'ora in poi voglio cercare di stupirmi e stupirvi con effetti speciali.. alla mia portata! ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-5207471874532029083?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/5207471874532029083/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=5207471874532029083' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/5207471874532029083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/5207471874532029083'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/10/cose-semplici-ma-di-effetto.html' title='Cose semplici.. ma di effetto!!!'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-4178188847768603696</id><published>2007-07-24T19:17:00.000+02:00</published><updated>2007-10-10T17:15:30.642+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='elaborazione delle immagini'/><category scheme='http://www.blogger.com/atom/ns#' term='teoria'/><title type='text'>Factor-Graphs.. questi sconosciuti!</title><content type='html'>L'inferenza statistica è uno strumento veramente potentissimo in molti campi, permette di sfruttare al massimo le informazioni a disposizione, eventualmente corredate da prior distributions ecc ecc, per ricavare delle distribuzioni di probabilità che descrivono un determinato fenomeno. Ad esempio si può utilizzare una tecnica di inferenza come la belief-propagation nelle Bayesian-networks per sapere se in Cina il prezzo del sale aumenterà o diminuirà partendo dal fatto che in Italia piove ecc ecc.. eccessi a parte l'idea è che eventi fra loro apparentemente scorrelati possono influenzare tramite catene di dipendenza altri eventi, le Bayesian-networks hanno sostanzialmente lo scopo di consentire la gestione di queste dipendenze per determinare la distribuzione di probabilità di un evento a posteriori (ovvero date le informazioni disponibili).&lt;br /&gt;&lt;br /&gt; Esistono una quantità smodata di tecniche di inferenza statistica, ma -udite udite- moltissime di esse sostanzialmente si pongono come scopo quello di marginalizzare una distribuzione di probabilità coniugata in molte variabili, spesso facilmente fattorizzabile (ad esempio utilizzando le regole relative alle distribuzioni di probabilità condizionata).&lt;br /&gt;&lt;br /&gt; I &lt;a href="http://cba.mit.edu/events/03.11.ASE/docs/Loeliger.pdf"&gt;factor-graphs&lt;/a&gt; sono uno strumento molto potente per la marginalizzazione di funzioni in molte variabili fattorizzabili in funzioni a poche variabili, del tipo:&lt;br /&gt;&lt;blockquote&gt;data g(x1,x2,...,xn) = PRODi(f(Xi)&lt;br /&gt;&lt;br /&gt;dove le xi sono le variabili e gli Xi sono dei sottoinsiemi (di cardinalità "bassa") delle variabili xi,&lt;br /&gt;&lt;br /&gt;è possibile sfruttare la fattorizzazione per calcolare efficientemente:&lt;br /&gt;g(xj) = SUMx1(SUMx2(...SUMxj-1(SUMxj+1(...SUMxn(g(x1,x2,...,xn))...))...))&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt; I factor-graphs permettono di effettuare questo calcolo utilizzando un solo semplice algoritmo di nome Sum-Product-Algorithm. Tantissimi algoritmi sono rappresentabili come istanze dei factor-graphs, ad esempio l'algoritmo di Viterbi, il belief-propagation per le Bayesian-networks, forward-backward, Random Markov Fields ecc ecc Turbo-codes decoding.. e ovviamente molti altri algoritmi possono essere costruiti utilizzando lo stesso framework.&lt;br /&gt;&lt;br /&gt; Quindi? Non state ancora leggendo l'articolo del link? Ok, allora se non avete voglia di leggere tutto il paper magari date un occhio &lt;a href="http://www.isi.ee.ethz.ch/~lustenbe/FactorGraphs/FactorGraphs.html"&gt;qui&lt;/a&gt; per un tutorial/demo. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-4178188847768603696?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/4178188847768603696/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=4178188847768603696' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4178188847768603696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4178188847768603696'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/07/factor-graphs-questi-sconosciuti.html' title='Factor-Graphs.. questi sconosciuti!'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-4641200302210689292</id><published>2007-07-04T12:45:00.000+02:00</published><updated>2007-07-04T12:50:42.152+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cazzate'/><title type='text'>Documenti antichi</title><content type='html'>Dalla Sonipaf rispuntano importantissimi documenti di 9 anni fa!!! Date un occhio a quali effetti collaterali producono gli esami di analisi nei poveri studenti che inconsapevoli del pericolo li affrontano!&lt;br /&gt;&lt;br /&gt; &lt;a href="http://homes.dsi.unimi.it/%7Elombardi/download/docs/various/Analisi1.doc"&gt;Analisi1&lt;/a&gt; &lt;a href="http://homes.dsi.unimi.it/%7Elombardi/download/docs/various/Analisi2.doc"&gt;Analisi2&lt;/a&gt;&lt;br /&gt; GIURO.. prima di analisi ero normale! ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-4641200302210689292?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/4641200302210689292/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=4641200302210689292' title='5 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4641200302210689292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4641200302210689292'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/07/documenti-antichi.html' title='Documenti antichi'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-1234517218134675989</id><published>2007-06-27T14:24:00.000+02:00</published><updated>2007-06-27T16:11:56.832+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Da sempre, vicini</title><content type='html'>Da sempre, vicini&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Interminabile la nostr'attesa,&lt;br /&gt;obbligata distanza duratura&lt;br /&gt;ha fermentato ancor più di prima&lt;br /&gt;il desiderio e la certezza&lt;br /&gt;d'un intreccio a maglie strette,&lt;br /&gt;un ricco ricamo variopinto&lt;br /&gt;che sulla tela della nostra vita&lt;br /&gt;prende forma mostrando l'armonia&lt;br /&gt;di ciò ch'assieme siamo e saremo.&lt;br /&gt;&lt;br /&gt;Ritrovo, abbraccio, le pennellate&lt;br /&gt;d'un rosso vivo or ci dipingono&lt;br /&gt;su uno sfondo rosa permanente;&lt;br /&gt;coricati in un campo di grano&lt;br /&gt;ammirando l'orizzonte aperto:&lt;br /&gt;scorgiamo serena retta linera&lt;br /&gt;ch'immersi c'accompagnerà entrambe&lt;br /&gt;fra carezze d'oro e alto cielo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-1234517218134675989?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/1234517218134675989/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=1234517218134675989' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1234517218134675989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1234517218134675989'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/06/da-sempre-vicini.html' title='Da sempre, vicini'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-7994315104724220439</id><published>2007-06-25T15:18:00.000+02:00</published><updated>2007-06-25T15:38:44.393+02:00</updated><title type='text'>Side effects in Matlab</title><content type='html'>Come tutti i "matlabbisti" sanno, in Matlab l'assegnamento ed il passaggio dei parametri è virtualmente per copia, ovvero virtualmente ogni volta che si assegna una variabile ad un'altra o che si passa una variabile a una funzione questa viene copiata per intero in maniera tale da non avere side effects. In pratica ovviamente non viene sempre fatta la copia: viene utilizzata una politica di lazy-evaluation sulle copie in maniera da utilizzare la variabile originale fin tanto che non vengono fatte modifiche e di copiarla in una nuova variabile solamente a fronte di una richiesta di  modifica della stessa (questo solamente per una questione di efficienza).&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Ma è possibile ottenere in Matlab i side effects?&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt; Ovviamente è possibile ottenerli utilizzando Java o creando MEX-files in C o in FORTRAN. E' però possibile ottenere i side effects anche in Matlab puro sfruttando i workspaces temporanei creati durante le chiamate a funzione. Nel post &lt;a href="http://ilgabbio.blogspot.com/2007/04/programmare-oop-in-matlab.html"&gt;Programmare OOP in Matlab&lt;/a&gt; è stato spiegato come costruire una classe in Matlab utilizzando solamente le funzioni. Ora, si ipotizzi di istanziare la classe counter, descritta in quel precedente post, e crearne una copia come segue:&lt;br /&gt;&lt;blockquote&gt;c1 = counter(1);    &lt;span style="color: rgb(51, 204, 0);"&gt;% Istanziazione:&lt;/span&gt;&lt;br /&gt;c2 = c1;                 &lt;span style="color: rgb(51, 204, 0);"&gt;% Copia:&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt; Ora l'oggetto c1 e l'oggetto c2 sono esattamente lo stesso oggetto. Le modifiche su uno hanno side effects sull'altro, infatti:&lt;br /&gt;&lt;blockquote&gt;c1.next()&lt;br /&gt;  &lt;span style="color: rgb(51, 102, 255);"&gt;ans = 1&lt;/span&gt;&lt;br /&gt;c2.next()&lt;br /&gt;  &lt;span style="color: rgb(51, 102, 255);"&gt; ans = 2&lt;/span&gt;&lt;br /&gt;c1.next()&lt;br /&gt;  &lt;span style="color: rgb(51, 102, 255);"&gt; ans = 3&lt;/span&gt;&lt;br /&gt;c2.next()&lt;br /&gt;  &lt;span style="color: rgb(51, 102, 255);"&gt;  ans = 4&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt; Inoltre realizzando una funzione come la seguente:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;function&lt;/span&gt; incrementa(c)&lt;br /&gt;    c.next();&lt;br /&gt;&lt;/blockquote&gt; E richiamandola come segue:&lt;br /&gt;&lt;blockquote&gt;c =counter(1);&lt;br /&gt;incrementa(c);&lt;br /&gt;incrementa(c);&lt;br /&gt;c.next()&lt;br /&gt;  &lt;span style="color: rgb(51, 102, 255);"&gt;ans = 3&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt; E' possibile appurare che l'oggetto passato alla funzione può essere modificato dall'interno della stessa generando side-effects.&lt;br /&gt;&lt;br /&gt; SPIEGAZIONE: Le classi realizzate come spiegato nel post precedente sfruttano la creazione di un workspace locale (WL) per ogni chiamata a funzione Matlab, quando una funzione Matlab viene richiamata un workspace temporaneo viene creato ex-novo in cui "vivono" le variabili locali della funzione, alla terminazione dell'esecuzione tale WL viene lasciato in pasto al garbage collector che normalmente lo rimuove, nel caso però in cui vengano restituiti i puntatori a funzioni innestate, che possono quindi accedervi, il WL non viene rimosso perchè esistono ancora delle variabili che vi possono accedere. Il WL viene eliminato quando anche l'oggetto istanziato diviene irraggiungibile. A differenza delle normali variabili però il WL è legato all'istanza dell'oggetto in maniera indiretta, non fa parte della variabile, questo significa che copiare la variabile non copia il WL. L'oggetto rappresenta in maniera indiretta un puntatore al WL, passare quindi questo "puntatore" a una funzione o copiarlo non provoca la replica del WL che rimane lo stesso e soffre quindi dei side-effects.&lt;br /&gt;&lt;br /&gt; Questo comportamento non deve essere visto come un "baco" ma come una "feature": infatti è un modo efficace per ottenere i side-effects quando e se servono.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-7994315104724220439?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/7994315104724220439/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=7994315104724220439' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/7994315104724220439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/7994315104724220439'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/06/side-effects-in-matlab.html' title='Side effects in Matlab'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-2871653976143549692</id><published>2007-06-13T16:04:00.000+02:00</published><updated>2007-06-13T16:21:36.618+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Ovunque</title><content type='html'>Ovunque&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Stupendi luoghi, che ci circondano,&lt;br /&gt;sanno attarr'attenzione per poco:&lt;br /&gt;sbalordit'osserviamo, sentiamo&lt;br /&gt;l'arte con ogne brandello d'anima.&lt;br /&gt;&lt;br /&gt;Fra imponenti volte, capitelli,&lt;br /&gt;dipinti e sculture, chiese, ponti,&lt;br /&gt;vasti sentieri lungo freschi boschi,&lt;br /&gt;scintillanti laghi, montagn'e mari;&lt;br /&gt;&lt;br /&gt;in tutto questo, aprendo i sensi,&lt;br /&gt;non possiamo che scorger noi stessi:&lt;br /&gt;opera d'arte certo non umana,&lt;br /&gt;che più ci scalda, tanto da sciogliere.&lt;br /&gt;&lt;br /&gt;Distanti; ovunqu'io poss'andare,&lt;br /&gt;ricordo fatti, medito sorprese,&lt;br /&gt;vedo 'l tuo viso, cerco tuoi occhi:&lt;br /&gt;ovunque, dentro me, ci sei sempre tu.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-2871653976143549692?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/2871653976143549692/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=2871653976143549692' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/2871653976143549692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/2871653976143549692'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/06/ovunque.html' title='Ovunque'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-4828657119573983484</id><published>2007-06-13T14:32:00.000+02:00</published><updated>2007-06-13T15:54:03.800+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Fluttuazioni</title><content type='html'>Fluttuazioni&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;L'onda,&lt;br /&gt;piatta ma grintosa,&lt;br /&gt;in vista delle rive,&lt;br /&gt;si gonfiava maestosa&lt;br /&gt;e troppo sicura di sé.&lt;br /&gt;&lt;br /&gt;La spuma sorrideva,&lt;br /&gt;correva veloce nel vento;&lt;br /&gt;senza accorgersene&lt;br /&gt;finalmente raggiungeva&lt;br /&gt;l'agognata bianca meta.&lt;br /&gt;&lt;br /&gt;Improvviso il crollo,&lt;br /&gt;spariva l'acqua sotto i piedi:&lt;br /&gt;parte di se veniva a mancare,&lt;br /&gt;ciò che la componeva, mischiata,&lt;br /&gt;l'abbandonava tradendo sicurezza.&lt;br /&gt;&lt;br /&gt;Riflusso silenzioso&lt;br /&gt;trasportava nuovamente,&lt;br /&gt;nell'oceano tumultuoso,&lt;br /&gt;disgregate parti&lt;br /&gt;per restituire vigore pieno.&lt;br /&gt;&lt;br /&gt;Altra meta, quella giusta,&lt;br /&gt;sà meglio accogliere:&lt;br /&gt;onda splendente, gioiosa;&lt;br /&gt;scorgendoci, d'istinto,&lt;br /&gt;ci siam corsi incontro.&lt;br /&gt;&lt;br /&gt;Fluido, armonioso scontro&lt;br /&gt;d'imponenti masse,&lt;br /&gt;ch'impazienti son mischiate&lt;br /&gt;in ogni minima goccia:&lt;br /&gt;profondo abbraccio.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-4828657119573983484?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/4828657119573983484/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=4828657119573983484' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4828657119573983484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4828657119573983484'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/06/fluttuazioni.html' title='Fluttuazioni'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-7498347086524816552</id><published>2007-06-12T17:58:00.001+02:00</published><updated>2007-06-12T18:15:49.401+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><title type='text'>C++: se lo conosci non ti uccide...</title><content type='html'>...e io stavo per rimanerci secco!!! ;)&lt;br /&gt;&lt;br /&gt;Posto questo post (scusate la cacofonia) per gli "ignoranti" come me che ignorano.. o semplicemente dopo anni non si ricordano più.. della seguente "finezza" del C++.. che tanto fine non è in realtà: in C++ alla creazione di un oggetto i costruttori vengono richiamati dalle classi base alle classi derivate in catena secondo l'ordine con cui sono dichiarati nella sintassi del costruttore dopo l'operatore ':'. I distruttori invece vengono richiamati automaticamente in ordine inverso (notare, in ordine inverso anche rispetto a strani ordinamenti nel grafo aciclico ottenibile tramite l'ereditarietà multipla).&lt;br /&gt;A parte il discorso del chaining, che ai più è noto, la finezza sta nelle operazioni che possono essere svolte all'interno dei costruttori e dei distruttori: chi di voi per caso volesse utilizzare il noto pattern "Abstract method" se lo scordi pure perchè all'interno di costruttori e distruttori non è possibile richiamare metodi virtuali puri relativi alla classe stessa, nemmeno se si ha a che fare con l'istanza di una classe derivata che li implementa concretamente. In sostanza niente "Abstract method" all'interno di costruttori e distruttori.. vi lascio un pezzettino piccolo piccolo di codice con cui giocare.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// The abstract superclass:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;class&lt;/span&gt; A {&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;  public&lt;/span&gt;:&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// The constructor:&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(255, 102, 0);"&gt; &lt;/span&gt;A() {&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;   &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// Try to call but cannot dispatch:&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(255, 102, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);"&gt; &lt;/span&gt;virtualMethod();&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// The virtual pure method:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;virtual void&lt;/span&gt; virtualMethod()=0;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// My subclass&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;class&lt;/span&gt; B : &lt;span style="color: rgb(255, 102, 0);"&gt;public&lt;/span&gt; A {&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;public&lt;/span&gt;:&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;    // The implementation:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    virtual void&lt;/span&gt; virtualMethod() {};&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// Using them:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;int&lt;/span&gt; main(&lt;span style="color: rgb(255, 102, 0);"&gt;int&lt;/span&gt; argc, &lt;span style="color: rgb(255, 102, 0);"&gt;char&lt;/span&gt; *argv[]) {&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;      // Instantiating:&lt;/span&gt;&lt;br /&gt;B b;&lt;br /&gt;b.virtualMethod();&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;      return&lt;/span&gt; 0;&lt;br /&gt;}&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-7498347086524816552?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/7498347086524816552/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=7498347086524816552' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/7498347086524816552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/7498347086524816552'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/06/c-se-lo-conosci-non-ti-uccide.html' title='C++: se lo conosci non ti uccide...'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-2045995165824708185</id><published>2007-05-31T14:45:00.000+02:00</published><updated>2007-05-31T15:34:50.514+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><title type='text'>C++: problemi con il polimorfismo</title><content type='html'>Questo post sarebbe da mettere come domanda in un newsgroup di programmazione in C++.&lt;br /&gt;Non so se a qualcuno di voi è mai capitato, però a me è la seconda volta che succede di definire un metodo virtuale puro in una superclasse, convinto di poterlo implementare nella sottoclasse (simpatico e banale, anche se potente, design pattern "Abstract method").. e di vedere un bel messaggio di errore del linker che non trova l'implementazoine del metodo se si tenta di chiamarlo!&lt;br /&gt;&lt;br /&gt;VOLETE IL CODICE? OK!&lt;br /&gt;&lt;br /&gt;Allora di una cosa sono sicuro: con l'operatore di assegnamento ottengo il seguente risultato:&lt;br /&gt;&lt;br /&gt;------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;#include &lt;iostream&gt;&lt;br /&gt;using namespace std;&lt;br /&gt;&lt;br /&gt;// The abstract superclass:&lt;br /&gt;class A {&lt;br /&gt;  public:&lt;br /&gt;  // The virtual pure methods:&lt;br /&gt;  virtual A&amp; operator +=(A&amp; a)=0;&lt;br /&gt;  virtual A&amp; operator =(A&amp; a)=0;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;// My subclass&lt;br /&gt;class B : public A {&lt;br /&gt;  public:&lt;br /&gt;  // The implementations:&lt;br /&gt;  virtual A&amp; operator +=(A&amp; a) {&lt;br /&gt;    cout &lt;&lt; "Called the '+=' operator!" &lt;&lt; endl;&lt;br /&gt;    return *this;&lt;br /&gt;  }&lt;br /&gt;  virtual A&amp; operator =(A&amp; a) {&lt;br /&gt;    cout &lt;&lt; "Called the '=' operator!" &lt;&lt; endl;&lt;br /&gt;    return *this;&lt;br /&gt;  }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;// Using them:&lt;br /&gt;int main(int argc, char *argv[]) {&lt;br /&gt;  // Instantiating:&lt;br /&gt;  B b1,b2;&lt;br /&gt;  b1 += b2; // This works:&lt;br /&gt;  b1 = b2; // This give a compile time error:&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;il che potrebbe essere QUASI accettabile.. se non fosse che non c'è modo di richiedere forzatamente l'implementazione nelle sottoclassi dell'operatore di assegnamento. Provate a sostituire i parametri dal tipo A&amp; al tipo B&amp;.. e vedete come s'incazza il compilatore!!!&lt;br /&gt; Il codice che l'altra volta mi aveva dato lo stesso errore era su un metodo normalissimo.. fra l'altro con un altro compilatore (nemmeno da dire cambi compilatore perchè è un baco.. il baco è NEL MIO CERVELLO!).&lt;br /&gt;&lt;br /&gt;Ok.. se trovate un modo per richiedere forzatamente (stile signature nell'interfaccia) l'implementazione dell'assegnamento nelle sottoclassi.. ditemelo perché la soluzione banale NON FUNZIONA :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-2045995165824708185?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/2045995165824708185/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=2045995165824708185' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/2045995165824708185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/2045995165824708185'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/05/c-problemi-con-il-polimorfismo.html' title='C++: problemi con il polimorfismo'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-4660977134067762341</id><published>2007-05-24T17:38:00.000+02:00</published><updated>2007-05-24T17:42:09.989+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><title type='text'>C++.. RISOLTOOOOOO</title><content type='html'>Risolto il problema.. conclusioni e suggerimenti:&lt;br /&gt;IN C++ NON MISCHIARE MAI IL SACRO (standard C libraries) E IL PROFANO (stl libraries) SENZA UNA OTTIMA CONSAPEVOLEZZA DEI PERICOLI CHE STAI AFFRONTANDO!!!&lt;br /&gt;&lt;br /&gt; In sostanza se si gioca troppo con i namespaces una sola include di un header file C standard piazzata nel posto sbagliato può dichiarare nel namespace sbagliato (cioè non quello esterno) un casino di simpatiche cosucce che dovrebbero restare in ::!!!&lt;br /&gt;&lt;br /&gt; Ok ok.. per molti di voi questa è una banalità.. a me però non era mai successo di sclerare così per una include.. e quindi valeva la pena di scrivere un po' di cazzate sul mio blog ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-4660977134067762341?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/4660977134067762341/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=4660977134067762341' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4660977134067762341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4660977134067762341'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/05/c-risoltoooooo.html' title='C++.. RISOLTOOOOOO'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-4973622357517065752</id><published>2007-05-24T17:34:00.000+02:00</published><updated>2007-05-24T22:42:55.047+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><title type='text'>Aforisma su C++ e Ken Shiro</title><content type='html'>Programmare in C++ è come esegure il colpo della distruzione dell'univareso usato da Ken Shiro contro il Sacro Imperatore Souther: UN SOLO ERRORE D'ESECUZIONE PUO' PORTARE ALLA DISTRUZIONE DELL'INTERO UNIVERSO!!! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-4973622357517065752?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/4973622357517065752/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=4973622357517065752' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4973622357517065752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4973622357517065752'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/05/aforisma-su-c-e-kan-shiro.html' title='Aforisma su C++ e Ken Shiro'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-2302200832832612882</id><published>2007-05-24T17:17:00.000+02:00</published><updated>2007-05-24T18:08:07.679+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='teoria'/><title type='text'>C++.. debugging?</title><content type='html'>Allora, voglio lasciare su questo blog una bella digressione sul C++: avete mai provato a realizzare in C++ una bella libreria tutta tempestata di template, in cui utilizzate pesantemente STL (stdc++), tipi (typedef), namespace, cicici e tututu?&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight:bold;"&gt;PROVATE!!!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Allora.. cerca che ti cerco.. e mentre sviluppo in C++ (mannaggia a me) un pezzo piuttosto grosso e importante del mio lavoro di dottorato.. come libreria ultra astratta ultra pluggabile ultra sciacquate-gli-uocchie.. tiro su il mio bel ambientino di testing con il connubio CppUnit e Automake/Autoconf/AutoTuttoQuelloCheVuoiFaccioIoNonTiDeviPreoccupareDiNullaTantoIlTuoLavoroNonFunzionaràMai.. &lt;br /&gt;..et voilà.. dopo ore di debugging di un test set VUOTO (tutto astratto, template dappertutto.. si inizia con il debugging della sintassi/semantica senza codice reale!).. mi salta fuori il solito errore da C++.. che uno non capisce:&lt;br /&gt;&lt;br /&gt; /usr/local/lib/gcc/i686-pc-linux-gnu/4.0.4/../../../../include/c++/4.0.4/cstddef:52: error: '::ptrdiff_t' has not been declared&lt;br /&gt;[altre 1945 righe simili]&lt;br /&gt;&lt;br /&gt; Ok, allora.. ci ho messo 3 ore per capire FORSE come risolvere il problema.. fra altre 50 ORE vi faccio sapere se la soluzione adottata riguarda l'utilizzo di un macete a doppio taglio oppure no!&lt;br /&gt;&lt;br /&gt;P.S.: I newsgroup mi sono serviti moltissimo in questo caso.. infatti hanno occupato inutilmente 2 di queste 3 ore.. anche ricompilare gcc con una versione più nuova mi ha aiutato.. a inchiodare una macchina per altre 2 di quelle 3 ore.. fortuna che in lab di macchine ce ne sono e si può parallelizzare il tempo!!! Parallelizzare lo spazio no he? Sarebbe utile essere qui e contemporaneamente alle maldive.. ne ho proprio bisogno!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-2302200832832612882?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/2302200832832612882/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=2302200832832612882' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/2302200832832612882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/2302200832832612882'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/05/c-debugging.html' title='C++.. debugging?'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-7890053538108823775</id><published>2007-05-22T10:47:00.000+02:00</published><updated>2007-05-22T11:20:53.985+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='teoria'/><category scheme='http://www.blogger.com/atom/ns#' term='Software engeneering'/><title type='text'>Aspetti ortogonali</title><content type='html'>Come tutti ben sanno, il paradigma di programmazione per aspetti (AOP) è stato inventato appositamente per superare (o tentare di superare) le problematiche di ortogonalità fra differenti aspetti all'interno di un progetto software.&lt;br /&gt;&lt;br /&gt; Al di là della poca diffusione e della poca risonanza che ha avuto questo paradigma (se volete un flame sul perché AOP non ha preso piede.. fate pure.. partecipo volentieri ;)), sicuramente un commento è dovuto: il problema dell'ortogonalità è diffuso in ogni dove, e tende a devastare rapidamente il risultato di moltissimi sforzi fatti da programmatori, da progettisti esperti di SE, da DBA, da CTO.. cicici e tututu! Insomma gli aspetti ortogonali rompono e parecchio!&lt;br /&gt;&lt;br /&gt; Esempi? Allora: considerate il problema di etichettatura di dati al fine della classificazione, ad esempio chi di noi non ha incontrato l'annoso problema di memorizzare all'interno di una struttura di cartelle sensata la CATERVA di articoli scientifici raccolta in anni di lavoro? Chi di noi non si è accorto che UN ALBERO NON VA BENE? Ovvio, un albero no va bene perché esistono aspetti ortogonali che possono essere descritti solamente tramite un grafo diretto aciclico connesso (DAG). Sigle a parte la struttura dati che in questo caso avrebbe più senso è un MULTIALBERO.. se mi concedete la licenza poetica per coniare questo vocabolo. Si perchè mentre un grafo non distingue l'appartenenza degli archi a una sottostruttura, in questo caso ESISTE!&lt;br /&gt;&lt;br /&gt; Ok ok.. sembra che io stia DIVAGANDO un po' troppo deragliando dal fulcro della questione.. ma quello che penso è che queste strutture a multialbero dovrebbero essere adottate in:&lt;br /&gt; - documenti XML, dove spesso vengono solo simulate con riferimenti ovunque;&lt;br /&gt; - linguaggi di programmazione, dove l'ereditarietà consente di ottenere alberi, o al più DAG;&lt;br /&gt; - database, dove spesso si tenta inconsapevolmente di emularli con tabelle e query fra di esse.. ma in molti casi si tende a confondere le query con le tabelle.. soprattutto i discepoli di Access ;), in realtà il problema è che siccome i dati da qualche parte devono finire realmente, li si infila nelle tabelle e gli aspetti ortogonali li si mostra con le query.. quindi aggiungendo l'elaborazione di una query per non costruire una struttura dati adeguata (un multialbero).&lt;br /&gt;&lt;br /&gt; L'elenco potrebbe allungarsi.. ma prima vorrei sapere.. siete d'accordo? Volete anche voi un multitagged-XML? ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-7890053538108823775?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/7890053538108823775/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=7890053538108823775' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/7890053538108823775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/7890053538108823775'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/05/aspetti-ortogonali.html' title='Aspetti ortogonali'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-6732369103986395433</id><published>2007-05-21T11:25:00.000+02:00</published><updated>2007-05-21T11:28:30.131+02:00</updated><title type='text'>Ritratto</title><content type='html'>Ritratto&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Arduo m’è ‘l tracciar&lt;br /&gt;bei lineamenti,&lt;br /&gt;tuo viso imitar&lt;br /&gt;sui fogl’impazienti.&lt;br /&gt;&lt;br /&gt;Di certo non eccello&lt;br /&gt;in pittur’e disegno,&lt;br /&gt;ma volto tanto bello&lt;br /&gt;sfid’artista nel segno.&lt;br /&gt;&lt;br /&gt;Son note sfumature,&lt;br /&gt;m’è impresso profondo&lt;br /&gt;ogne particolare:&lt;br /&gt;il sorriso giocondo.&lt;br /&gt;&lt;br /&gt;La traccia di graffite,&lt;br /&gt;al pari d’un insulto,&lt;br /&gt;di guance vellutate&lt;br /&gt;soave luc’ha tolto.&lt;br /&gt;&lt;br /&gt;Seppure possa esser&lt;br /&gt;sentito realmente,&lt;br /&gt;artista non può nascer&lt;br /&gt;ch’angelo abilmente&lt;br /&gt;&lt;br /&gt;renda a paragone&lt;br /&gt;di tua real’essenza.&lt;br /&gt;Di tratt’imitazione&lt;br /&gt;a bellezz’è violenza.&lt;br /&gt;&lt;br /&gt;T’osservo, e sereno me ne cibo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lombardi Gabriele&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-6732369103986395433?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/6732369103986395433/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=6732369103986395433' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/6732369103986395433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/6732369103986395433'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/05/ritratto.html' title='Ritratto'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-5277669396571704076</id><published>2007-05-16T14:03:00.000+02:00</published><updated>2007-05-16T14:07:59.572+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>La collina del pensatore</title><content type='html'>La collina del pensatore&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Giunto qui mi sdraio su calda roccia,&lt;br /&gt;occhi chiusi, ascolto altri sensi:&lt;br /&gt;sole calante m'accarezza piano,&lt;br /&gt;fruscio di foglie, vento sovrano,&lt;br /&gt;cinguettio, odor di camp'immensi,&lt;br /&gt;cielo infinito, di calma doccia.&lt;br /&gt;&lt;br /&gt;Attendo il variopinto tramonto,&lt;br /&gt;cibandomi famelico di verde,&lt;br /&gt;color di ricercata mia vita:&lt;br /&gt;ogn'essere, di mente non sopita,&lt;br /&gt;ha un luogo caro a lui concorde,&lt;br /&gt;ov'esternar di pensieri tormento.&lt;br /&gt;&lt;br /&gt;Qui son consumati duri momenti&lt;br /&gt;d'un vivere oltre piatto essere,&lt;br /&gt;qui s'affrontan i sottili problemi&lt;br /&gt;non pratici c'affliggon coi ricami:&lt;br /&gt;d'un organo che non può comprendere&lt;br /&gt;son doni costruttiv'e disfacenti.&lt;br /&gt;&lt;br /&gt;Molteplici pene affliggon forte,&lt;br /&gt;delicato, fragile, istintivo&lt;br /&gt;pensatore; romantico artista,&lt;br /&gt;crede all'amore a prima vista,&lt;br /&gt;con te d'indugiare non v'è motivo;&lt;br /&gt;lontano come 'l figlio di Laerte.&lt;br /&gt;&lt;br /&gt;Ciò ch'or profondamente pens'e temo&lt;br /&gt;è 'l tuo penar errando per esteri&lt;br /&gt;stupendi luoghi, perdendon'essenza.&lt;br /&gt;In cuor mio tristemente avanza&lt;br /&gt;colpevole sensazione di nostri&lt;br /&gt;sentimenti vivi per cui or fremo.&lt;br /&gt;&lt;br /&gt;In te so d'aver trovato splendido&lt;br /&gt;tesoro un dì sepolto profondo,&lt;br /&gt;ma lucente ai miei occhi&lt;br /&gt;si mostra sincero senza balocchi.&lt;br /&gt;Per anni, te e me amor forgiando,&lt;br /&gt;vivremo: godi d'un viaggio candido.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lombardi Gabriele&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-5277669396571704076?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/5277669396571704076/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=5277669396571704076' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/5277669396571704076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/5277669396571704076'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/05/la-collina-del-pensatore.html' title='La collina del pensatore'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-3654996130201130452</id><published>2007-05-10T14:45:00.000+02:00</published><updated>2007-05-13T16:20:04.847+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agraria'/><category scheme='http://www.blogger.com/atom/ns#' term='erboristeria'/><title type='text'>Calendula</title><content type='html'>La Calendula officinalis è una pianta da fiore ornamentale e medicamentosa dalle mille proprietà benefiche.. oltre che artistiche. Ho aggiunto un pochino di dettagli sulle sue proprietà e sui metodi di coltivazione all'indirizzo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://it.wikipedia.org/wiki/Calendula_officinalis"&gt;http://it.wikipedia.org/wiki/Calendula_officinalis&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;chi è interessato e ci da un occhio.. se mi manda qualche commento/consiglio/critica.. sarà ben accettatissimo!!! :)&lt;br /&gt;&lt;br /&gt;Appena le piantine mi crescono un po' farò mille foto e le aggiungerò.. per ora ho quelle dei semi e dei germogli.. appena le porto in uni le inserisco in wikipedia :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-3654996130201130452?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/3654996130201130452/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=3654996130201130452' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/3654996130201130452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/3654996130201130452'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/05/calendula.html' title='Calendula'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-8484549800573725617</id><published>2007-05-07T11:11:00.000+02:00</published><updated>2007-05-13T16:19:12.700+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Lontana, qui con me</title><content type='html'>Lontana, qui con me&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Spossato da stanca inattività,&lt;br /&gt;pesante, mi corico affondando:&lt;br /&gt;visione di tua voce, ascoltando&lt;br /&gt;di tuo viso lineamenti, che già&lt;br /&gt;a fuoco son tatuati dentro me.&lt;br /&gt;&lt;br /&gt;Par breve, ma faticosa l'attesa&lt;br /&gt;d'anime fresche lontan'intrecciate;&lt;br /&gt;possono, tempo e distanza subite,&lt;br /&gt;districar nodi ch'uniscon rosa?&lt;br /&gt;Può condizion'allontanarmi da te?&lt;br /&gt;&lt;br /&gt;Attendersi, non vedersi, pensare,&lt;br /&gt;sentirsi poco, cercarsi, volersi:&lt;br /&gt;amar'ingredienti d'una catarsi&lt;br /&gt;che stringe laccio soffice d'amore.&lt;br /&gt;Nulla par impossibile per noi.&lt;br /&gt;&lt;br /&gt;Musica, sussurrata nella notte&lt;br /&gt;da autori lontani, ma vicini;&lt;br /&gt;ogni canzone di versi violini,&lt;br /&gt;inspiegabilmente riport'a vette&lt;br /&gt;di vita, momenti con te vissuti.&lt;br /&gt;&lt;br /&gt;Distanti, continent'e oceano&lt;br /&gt;separano corpi di carn'e ossa;&lt;br /&gt;son sicuro ch'anime nulla possa&lt;br /&gt;sbrogliare ché mischiate or vivono:&lt;br /&gt;viva in me, vivo in te, noi siamo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-8484549800573725617?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/8484549800573725617/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=8484549800573725617' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8484549800573725617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8484549800573725617'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/05/lontana-qui-con-me.html' title='Lontana, qui con me'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-87073738683012487</id><published>2007-05-03T16:11:00.000+02:00</published><updated>2007-05-05T11:49:19.594+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Viaggiando</title><content type='html'>Viaggiando&lt;br /&gt;&lt;br /&gt;Corsa,&lt;br /&gt;verso tranquilli istanti&lt;br /&gt;vissuti di fretta,&lt;br /&gt;ma serenamente,&lt;br /&gt;incontrando decine di persone,&lt;br /&gt;e profonde solitudini&lt;br /&gt;in sintonia con la natura,&lt;br /&gt;con me stesso,&lt;br /&gt;con la vita&lt;br /&gt;degna di questo nome.&lt;br /&gt;&lt;br /&gt;In treno,&lt;br /&gt;nei boschi,&lt;br /&gt;sulla montagna,&lt;br /&gt;tra piante e rocce,&lt;br /&gt;di fronte a imponenti cascate,&lt;br /&gt;sotto cieli stellati,&lt;br /&gt;tramonti incantati,&lt;br /&gt;ovunque,&lt;br /&gt;nella magia del momento,&lt;br /&gt;mancava un ingrediente&lt;br /&gt;ormai fondamentale:&lt;br /&gt;il tuo calore,&lt;br /&gt;il tuo sguardo&lt;br /&gt;posato su di me,&lt;br /&gt;le tue carezze,&lt;br /&gt;il tuo sorriso..&lt;br /&gt;tu!&lt;br /&gt;&lt;br /&gt;Tu,&lt;br /&gt;parte di me,&lt;br /&gt;non sei qui,&lt;br /&gt;ma ti sento sempre vicina,&lt;br /&gt;dentro i miei pensieri,&lt;br /&gt;nei miei sogni,&lt;br /&gt;nel mio cuore:&lt;br /&gt;son sereno&lt;br /&gt;perchè posso aspettarti;&lt;br /&gt;sono felice&lt;br /&gt;perchè ti amo.&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-87073738683012487?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/87073738683012487/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=87073738683012487' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/87073738683012487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/87073738683012487'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/05/viaggiando.html' title='Viaggiando'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-4211867588696445047</id><published>2007-04-20T11:12:00.000+02:00</published><updated>2007-04-20T11:19:57.332+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geometria'/><category scheme='http://www.blogger.com/atom/ns#' term='teoria'/><title type='text'>Level-set</title><content type='html'>Cosa posso dire dei level-set? Che sono uno strumento formidabile, stupendo, comodissimo.. MA:&lt;br /&gt; - l'obbligo di rappresentazione discreta ne limita l'utilizzo a 2 e 3 dimensioni.. con voxel spesso troppo grandi;&lt;br /&gt; - l'elaborazione di uno o più volumi descriventi dei level set diventa oneroso data la quantità di dati da elaborare;&lt;br /&gt; - la loro algebra è molto elegante dal punto di vista teorico, ma nella pratica si scontra con moltissime problematiche, soprattutto quelle di rappresentazione sopracitate.&lt;br /&gt;&lt;br /&gt;QUINDI:&lt;br /&gt; Perchè non costruire una sotto-algebra dei level-set manipolabile analiticamente in maniera comoda, così da poter rappresentare efficientemente (in spazio) i level-set per qualunque dimensionalità e da poterli manipolare efficientemente (in tempo) rimuovendo gli ostacoli che ora come ora mostrano?&lt;br /&gt;&lt;br /&gt; IDEE:&lt;br /&gt; - si può pensare di utilizzare una famiglia ristretta di funzioni distanza da comporre fra di loro;&lt;br /&gt; - si può mantenere il level-set descritto analiticamente durante tutte le elaborazioni fino a quando non ne servono direttamente i dati (risultati finali o parziali);&lt;br /&gt; - si possono utilizzare tecniche come marching-squares o marching-cubes per determinare l'approssimazione discreta del level-set reale a una precisione arbitraria, e solo quando serve.&lt;br /&gt;&lt;br /&gt; Meditate, level-settatori, meditate ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-4211867588696445047?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/4211867588696445047/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=4211867588696445047' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4211867588696445047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4211867588696445047'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/04/level-set.html' title='Level-set'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-8271669041674114880</id><published>2007-04-18T11:47:00.000+02:00</published><updated>2007-04-18T11:59:46.408+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Complicità</title><content type='html'>Complicità&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Da soli pochi giorni&lt;br /&gt;l'anime osserviamo,&lt;br /&gt;scoperta par ch'adorni&lt;br /&gt;l'esistente ricamo.&lt;br /&gt;&lt;br /&gt;Sguardo complice scagli,&lt;br /&gt;ch'io lo so già cogliere,&lt;br /&gt;seguir mia pazzia scegli,&lt;br /&gt;mio combaciant'essere.&lt;br /&gt;&lt;br /&gt;Com'incastro profondo:&lt;br /&gt;completiamo diverso,&lt;br /&gt;spirito pareggiando;&lt;br /&gt;nulla pare avverso.&lt;br /&gt;&lt;br /&gt;Con breve cors'ora sò,&lt;br /&gt;angelica visione,&lt;br /&gt;ch'armonia simil non può&lt;br /&gt;ch'esser dolce passione.&lt;br /&gt;&lt;br /&gt;Fiori siamesi, sbocciati lontani,&lt;br /&gt;or sfiorano delicati petali;&lt;br /&gt;ancor ne gusto 'l brivido leggero,&lt;br /&gt;su foglie, stelo, corolla, intrise&lt;br /&gt;d'aroma soave di tua presenza.&lt;br /&gt;&lt;br /&gt;E' primavera, ti vedo, ti sento,&lt;br /&gt;altra stagione non riesc'a pensare.&lt;br /&gt;T'osservo, una foto, un ricordo:&lt;br /&gt;armoniose forme, profond'anima.&lt;br /&gt;Accorciar distanz'attenderò sogno.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-8271669041674114880?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/8271669041674114880/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=8271669041674114880' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8271669041674114880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8271669041674114880'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/04/complicit.html' title='Complicità'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-7575888427707684682</id><published>2007-04-16T14:50:00.000+02:00</published><updated>2007-04-16T14:56:32.017+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>Ricostruzione 3D di layout di piani.. DA UNA SOLA IMMAGINE</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.techcrunch.com/wp-content/amtrak.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.techcrunch.com/wp-content/amtrak.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;E' nato un nuovo servizio Web, raggiungibile &lt;a href="http://fotowoosh.com/"&gt;qui&lt;/a&gt;, che permette di ricostruire una scena in 3D a partire da una sola fotografia: l'assunzione di base è la presenza di differenti classi di superfici abbastanza semplici.. ad esempio il cielo, il pavimento, eventuali palazzi oppure altri tipi di oggetti verticali.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-7575888427707684682?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/7575888427707684682/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=7575888427707684682' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/7575888427707684682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/7575888427707684682'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/04/ricostruzione-3d-di-layout-di-piani-da.html' title='Ricostruzione 3D di layout di piani.. DA UNA SOLA IMMAGINE'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-332565403625325001</id><published>2007-04-16T14:31:00.000+02:00</published><updated>2007-04-16T14:56:32.018+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>Il rettangolo rosso.. un mistero risolto</title><content type='html'>La nebula mostrata nell'immagine viene chiamata Red Rectangle, si tratta di una delle nebulose dalla forma più curiosa e insolita di tutte quelle avvistate nella volta celeste.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://a52.g.akamaitech.net/f/52/827/1d/www.space.com/images/070406_red_rectangle_02.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://a52.g.akamaitech.net/f/52/827/1d/www.space.com/images/070406_red_rectangle_02.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; In &lt;a href="http://www.space.com/scienceastronomy/070406_red_rectangle.html"&gt;questo articolo&lt;/a&gt; è descritto (brevemente) il mistero di Red Rectangle e la sua soluzione.&lt;br /&gt; Quante altre simpatiche forme ci potrà mostrare lo spazio profondo? In ogni caso rimarrà sempre un affascinante immenso luogo da esplorare.. e perchè no? Per farci elaborazione delle immagini ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-332565403625325001?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/332565403625325001/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=332565403625325001' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/332565403625325001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/332565403625325001'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/04/il-rettangolo-rosso-un-mistero-risolto.html' title='Il rettangolo rosso.. un mistero risolto'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-6881087748504294614</id><published>2007-04-16T11:29:00.000+02:00</published><updated>2007-04-16T12:09:40.031+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geometria'/><category scheme='http://www.blogger.com/atom/ns#' term='elaborazione delle immagini'/><category scheme='http://www.blogger.com/atom/ns#' term='teoria'/><title type='text'>Calcolo tensoriale e variazionale.. un simpatico connubio</title><content type='html'>Come noto, il calcolo tensoriale è uno strumento molto comodo per la manipolazione di strutture geometriche descritte in spazi curvi, ad esempio in cordinate sferiche, cilindriche, o altri arbitrari spazi curvi descritti da mappe invertibili.&lt;br /&gt; Come anche è noto, il calcolo variazionale consente di minimizzare integrali al variare di un funzionale incognito, questo viene utilizzato molto in fisica ad esempio per la ricerca dello stato di equilibrio di membrane o corde elastiche.&lt;br /&gt;&lt;br /&gt; Come trovo ovvio proporre, le due fantastiche teorie, che ad esempio mostrano applicazioni in geometria e nel mio campo dell'elaborazione delle immaigni, possono essere messe assieme, e come trovo ancora più ovvio, possono miscelarsi in maniera molto più profonda di quel che si possa pensare a prima vista (stile deformare membrane elastiche descrivendole all'interno di uno spazio curvo).&lt;br /&gt;&lt;br /&gt; Un esempio interessante: ogni superficie semplice in 3D (che non interseca sè stessa, che non è degenere riducendosi parzialmente o completamente a una curva o un punto.. ecc ecc.. ce ne sono un po' di proprietà raggruppate sotto la "semplicità") identifica uno spazio curvo in 2D, questo mi porta a pensare immediatamente alla seguente cosa: se lo spazio curvo fosse l'incognita?&lt;br /&gt;&lt;br /&gt; Ragionando: tramite le tecniche variazionali è possibile determinare la posizione di equilibrio di una membrana elastica rispetto a determinate forze esterne e interne di elasticità. L'equazione differenziale di Eulero-Lagrange rende esplicite tali dipendenze da tali forze. Lo scopo però è quello di determinare una superficie! Si immagini ora di avere delle entità bidimensionali immerse in \Re^2, si immagini che tali entità abbiano delle proprietà invarianti che rimangono preservate al variare dello spazio curvo in cui vengono immerse, altre proprietà varianti, che dipendono dallo spazio considerato. E' allora possibile costruire un integrale di superficie, in cui il funzionale integrando esprime le proprietà varianti locali di cui minimizzare la "somma", relative alla rappresentazione in 2D delle entità geometriche di interesse, e dipendenti da una superficie {(x,y,z)|(x=x(u,v),y=y(u,v),z=z(u,v)} con (u,v)\in\Re^2, che identifica la deformazione spaziale di \Re^2.&lt;br /&gt;&lt;br /&gt;So che tutto questo buttato lì sembra senza senso.. però mi prodigherò nel mostrare un'applicazione pratica più tangibile.. con dettagli in più.. quando questa idea sarà più matura.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-6881087748504294614?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/6881087748504294614/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=6881087748504294614' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/6881087748504294614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/6881087748504294614'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/04/calcolo-tensoriale-e-variazionale-un.html' title='Calcolo tensoriale e variazionale.. un simpatico connubio'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-1259780880105410908</id><published>2007-04-10T14:11:00.000+02:00</published><updated>2007-04-10T14:17:40.406+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Tuoi passi</title><content type='html'>Tuoi passi&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Uno sull'altro, impronte lasciando,&lt;br /&gt;scolpiscon mente, cuore e vita.&lt;br /&gt;Battito di farfalla, ogn'istante,&lt;br /&gt;può generare in fertile fata.&lt;br /&gt;&lt;br /&gt;Io, lento rimuovo velo su velo,&lt;br /&gt;conosco l'ignoto or più di ieri.&lt;br /&gt;Tiepida scoperta mostra, stupendo,&lt;br /&gt;affinità e mistero solerte.&lt;br /&gt;&lt;br /&gt;Chi eri, chi sei, chi sono, saremo&lt;br /&gt;assieme tutt'uno, aggrovigliati&lt;br /&gt;corpo e anima per camminare&lt;br /&gt;su qualunque via c'attenda 'l passaggio.&lt;br /&gt;&lt;br /&gt;Passeggiamo, tu, io, fianco a fianco;&lt;br /&gt;ciò ch'unita sorte ha preparato,&lt;br /&gt;scriverà pagine di menti&lt;br /&gt;or confuse, frizzanti, armoniose.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-1259780880105410908?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/1259780880105410908/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=1259780880105410908' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1259780880105410908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1259780880105410908'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/04/tuoi-passi.html' title='Tuoi passi'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-5616627047170109156</id><published>2007-04-03T11:55:00.000+02:00</published><updated>2007-04-03T12:44:12.603+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Software engeneering'/><title type='text'>Programmare OOP in Matlab</title><content type='html'>In Matlab esistono degli strumenti del linguaggio appositamente realizzati per consentire la programmazione OOP, essi sono descritti nel capitolo "Classes and Objects" e sono lo standard utilizzato anche all'interno della toolbox standard di Matlab per l'UI e per molto altro.&lt;br /&gt; Tale tecnica di programmazione presenta alcuni indubbi vantaggi ma anche degli svantaggi enormi, a partire dalla struttura e costruzione delle classi all'interno del file-system, l'impossibilità di utilizzo della dot-notation e molti altri.&lt;br /&gt; Una tecnica alternativa per fare OOP in Matlab sfrutta lo storing del workspace locale condiviso nel caso in cui vengano utilizzate delle funzioni innestate. La seguente dichiarazione della classe "counter", completamente commentata, mostra come può essere facilmente utilizzata questa tecnica:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;code&gt;&lt;/span&gt; &lt;div style="text-align: left;"&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;function&lt;/span&gt; c = counter(start)&lt;br /&gt;  &lt;span style="color: rgb(0, 102, 0);"&gt;% COUNTER  Generates a new counter object created with internal functions.&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;%&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;%  The technique used here allows to create objects with all private&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;% attributes and public methods exported in a structure. All local&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;% variables defined here can be used as object attributes. Sub-functions&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;% can be used as private methods and setter/getter methods can be written&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;% to give the acces to attributes.. using the complete information&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;% hiding paradigm. The main funciton is the constructor. The object status&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;% is stored in a local workspace that have the same lifetime of the&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;% generated object.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;  &lt;span style="color: rgb(0, 102, 0);"&gt;% Save the initial value:&lt;/span&gt;&lt;br /&gt;startVal = start;&lt;br /&gt; &lt;br /&gt;  &lt;span style="color: rgb(0, 102, 0);"&gt;% ===========&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;%  Now there are two object attributes: start and startVal.&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;% ===========&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;  &lt;span style="color: rgb(0, 102, 0);"&gt;% Returning the counter: this is the public methods set exported.&lt;/span&gt;&lt;br /&gt;c = struct(&lt;span style="color: rgb(204, 51, 204);"&gt;'next'&lt;/span&gt;,@Next,&lt;span style="color: rgb(204, 51, 204);"&gt;'prev'&lt;/span&gt;,@Prev,&lt;span style="color: rgb(204, 51, 204);"&gt;'reset'&lt;/span&gt;,@Reset);&lt;br /&gt; &lt;br /&gt;  &lt;span style="color: rgb(0, 102, 0);"&gt;% ===========&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;%  The public methods body.&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;% ===========&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 102, 0);"&gt;% The next integer function:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(51, 51, 255);"&gt;function&lt;/span&gt; n = Next&lt;br /&gt;        &lt;span style="color: rgb(0, 102, 0);"&gt;% Set:&lt;/span&gt;&lt;br /&gt;        n = start;&lt;br /&gt;        &lt;span style="color: rgb(0, 102, 0);"&gt;% Increment:&lt;/span&gt;&lt;br /&gt;        start = start + 1;&lt;br /&gt;    &lt;span style="color: rgb(51, 51, 255);"&gt;end&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 102, 0);"&gt;% The prev integer function:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(51, 51, 255);"&gt;function&lt;/span&gt; n = Prev&lt;br /&gt;        &lt;span style="color: rgb(0, 102, 0);"&gt;% Set:&lt;/span&gt;&lt;br /&gt;        n = start;&lt;br /&gt;        &lt;span style="color: rgb(0, 102, 0);"&gt;% Decrement:&lt;/span&gt;&lt;br /&gt;        start = start - 1;&lt;br /&gt;    &lt;span style="color: rgb(51, 51, 255);"&gt;end&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 102, 0);"&gt;% The reset function:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(51, 51, 255);"&gt;function&lt;/span&gt; Reset&lt;br /&gt;        &lt;span style="color: rgb(0, 102, 0);"&gt;% Reset:&lt;/span&gt;&lt;br /&gt;        start = startVal;&lt;br /&gt;    &lt;span style="color: rgb(51, 51, 255);"&gt;end&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 102, 0);"&gt;% ===========&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;%  Private methods are simple functions and can be defined here.&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;% ===========&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;end&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;  &lt;span style="color: rgb(0, 102, 0);"&gt;% ===========&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;%  Support functions that are not methods (no access to attributes) are&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;% defined here.&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt;% ===========&lt;/span&gt;&lt;/blockquote&gt; &lt;div style="text-align: center;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;code&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt; Per creare un oggetto di classe "counter" è sufficiente eseguire la funzione:&lt;br /&gt;&lt;blockquote&gt;c1 = counter(1);&lt;br /&gt;c2 = counter(-2);&lt;/blockquote&gt; Per eseguire un metodo è sufficiente utilizzare la dot-notation:&lt;br /&gt;&lt;blockquote&gt;c1.next()&lt;br /&gt;    ans = 1&lt;br /&gt;c1.next()&lt;br /&gt;    ans = 2&lt;br /&gt;c1.reset()&lt;br /&gt;c1.next()&lt;br /&gt;    ans = 1&lt;/blockquote&gt;Have fun! ;)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-5616627047170109156?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/5616627047170109156/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=5616627047170109156' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/5616627047170109156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/5616627047170109156'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/04/programmare-oop-in-matlab.html' title='Programmare OOP in Matlab'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-7870468692021930310</id><published>2007-03-30T13:05:00.000+02:00</published><updated>2007-03-30T13:10:47.541+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><title type='text'>Burrasca di velluto</title><content type='html'>Ragassuoli.. informazione di servizio.. siccome mi trovo in un periodo di mutazione profonda di me stesso e della mia vita.. ho deciso che la raccolta di poesie "Burrasca di velluto" termina qui. Il che non significa che smetto di scrivere.. ANZI.. la prossima raccolta l'ho intitolata "Oscillazioni".. vedremo che ne esce.. e quanto dura.. la precedente è durata 12 anni di crescita ;) e la trovate &lt;a href="http://homes.dsi.unimi.it/%7Elombardi/download/docs/various/BurrascaDiVelluto.pdf"&gt;qui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Non è da escludere che "Oscillazioni" cresca molto rapidamente dando spazio ad una terza raccolta.. fra l'altro, altra informazione di servizio: credo che pubblicherò "Burrasca di velluto".. se succede vi informerò IMMEDIATAMENTE ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-7870468692021930310?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/7870468692021930310/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=7870468692021930310' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/7870468692021930310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/7870468692021930310'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/03/burrasca-di-velluto.html' title='Burrasca di velluto'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-3410183120663441913</id><published>2007-03-28T23:16:00.000+02:00</published><updated>2007-03-28T23:17:32.003+02:00</updated><title type='text'>Timestamp dei post</title><content type='html'>Belli guagluioni.. dovrei aver messo a posto il fuso orario di salvataggio dei post.. sempre che io non sia troppo FUSO ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-3410183120663441913?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/3410183120663441913/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=3410183120663441913' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/3410183120663441913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/3410183120663441913'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/03/timestamp-dei-post.html' title='Timestamp dei post'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-833317234658204315</id><published>2007-03-28T12:31:00.000+02:00</published><updated>2007-03-28T12:49:52.552+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Software engeneering'/><title type='text'>Hookka che ti hookko anch'io</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Confronto fra tecniche di hooking e l'AOP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Piccola osservazione forse banale:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;le &lt;span style="font-style: italic;"&gt;tecniche di hooking&lt;/span&gt; consentono di definire dei punti del proprio codice in cui l'esecuzione di codice esterno è ammessa previa registrazione di simpatiche funzioncine di callback, questo ad esempio permette a mtrace di tracciare l'attività della libreria malloc (ad es. funzioni malloc, realloc, free, ...). Ogni funzione di callback è però registrata come callback per esattamente una funzione da tracciare, eventualmente tipizzata per poter tracciare punti differenti;&lt;/li&gt;   &lt;li&gt;l'&lt;span style="font-style: italic;"&gt;AOP&lt;/span&gt; (Aspect Oriented Programming) prevede la possibilità di dichiarare degli aspetti come collezioni di azioni da poter eseguire eventualmente dietro esplicita richiesta oppure prima o dopo l'esecuzione di ben precisi metodi degli oggetti di ben precise classi (o tutte, o una parte). Differenti aspetti possono definire differenti azioni o classi su cui operano o metodi che "modificano".&lt;/li&gt; &lt;/ul&gt;  Ok, questo era un riassunto BRUTTISSIMO e non esattamente corretto di quello che sono le due tecniche.. ora le riflessioni:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;esiste sempre del codice esterno (es. funzioni) da eseguire in determinati punti del codice delle classi che descrivono le entità del dominio;&lt;/li&gt;   &lt;li&gt;esiste sempre una tipizzazione (tipo di hook, aspetto legato all'azione);&lt;/li&gt;   &lt;li&gt;si tenta sempre di imporre una separazione fra il codice che si vuole "iniettare" ed il codice preesistente;&lt;/li&gt;   &lt;li&gt;gli aspetti lavorano su sottoinsiemi di classi, l'hooking lavora su ogni singola funzione.&lt;/li&gt; &lt;/ul&gt;  Non vi sembrano simili simili simili? Decisamente direi che è possibile mettere l'hooking e l'AOP sotto lo stesso tetto. In realtà le implementazioni dell'AOP in genere prevedono un preprocessore che modifichi il codice sorgente prima della compilazione mentre nell'hooking tutto è eseguito a run-time.. però questo è solo un dettaglio tecnico.&lt;br /&gt; Esempio.. ho implementato uno strumento di hooking per Matlab (&lt;a href="http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=14396&amp;objectType=file"&gt;FHook&lt;/a&gt;) che consente di fare anche AOP, è grezzo, non consente di sfruttare il pattern-matching per la selezione delle funzioni/sottofunzioni a cui applicare gli aspetti o su cui fare hooking.. però anche come strumento embrionale direi che può essere utile e si può usare per studiare a fondo questa simbiosi di concetti ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-833317234658204315?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/833317234658204315/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=833317234658204315' title='6 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/833317234658204315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/833317234658204315'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/03/hookka-che-ti-hookko-anchio.html' title='Hookka che ti hookko anch&apos;io'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-7893770328728340838</id><published>2007-03-26T15:21:00.000+02:00</published><updated>2007-03-26T15:30:38.013+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='immagini'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Disegni di Sonipaf</title><content type='html'>Quando uno dice..&lt;br /&gt;"Sta mia amica è un'artista della matita, pastello, acquarello ecc" ;)&lt;br /&gt;&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt; Date un po' un occhio &lt;a href="http://picasaweb.google.com/soniag79/MyPictures"&gt;qui&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-7893770328728340838?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/7893770328728340838/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=7893770328728340838' title='8 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/7893770328728340838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/7893770328728340838'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/03/disegni-di-sonipaf.html' title='Disegni di Sonipaf'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-5478596027585185418</id><published>2007-03-24T15:37:00.000+01:00</published><updated>2007-03-24T18:56:58.231+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>La vita</title><content type='html'>La vita&lt;br /&gt;è una collezione di rare isole di equilibrio,&lt;br /&gt;immerse in un mare di tempo&lt;br /&gt;speso per cercarle.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-5478596027585185418?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/5478596027585185418/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=5478596027585185418' title='3 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/5478596027585185418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/5478596027585185418'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/03/la-vita.html' title='La vita'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-8623353516665426539</id><published>2007-03-22T10:21:00.000+01:00</published><updated>2007-03-22T10:31:36.397+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='foto'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'></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/_Tidqh9c0DiE/RgJKy_Eeh0I/AAAAAAAAAEc/1iXtPVyHYdk/s1600-h/CIMG0020_2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_Tidqh9c0DiE/RgJKy_Eeh0I/AAAAAAAAAEc/1iXtPVyHYdk/s320/CIMG0020_2.JPG" alt="" id="BLOGGER_PHOTO_ID_5044676772392503106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Un tramonto,&lt;br /&gt;a volte affascinante,&lt;br /&gt;ma a volte malinconico,&lt;br /&gt;non può che chiudere una giornata&lt;br /&gt;lasciando spazio al buio e al silenzio.&lt;br /&gt;Una giornata, sperata interminabile,&lt;br /&gt;si è conclusa scemando lentamente;&lt;br /&gt;ma domani un nuovo sole&lt;br /&gt;si leverà alto e lucente,&lt;br /&gt;scaldandomi.&lt;br /&gt;&lt;/div&gt; &lt;div style="text-align: right;"&gt;Gabriele Lombardi&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-8623353516665426539?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/8623353516665426539/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=8623353516665426539' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8623353516665426539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8623353516665426539'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/03/un-tramonto-volte-affascinante-ma-volte.html' title=''/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Tidqh9c0DiE/RgJKy_Eeh0I/AAAAAAAAAEc/1iXtPVyHYdk/s72-c/CIMG0020_2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-3020556349314553280</id><published>2007-03-20T15:16:00.000+01:00</published><updated>2007-03-21T16:18:03.047+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Mutamento</title><content type='html'>Mutamento&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fui bimbo tenero, amoroso,&lt;br /&gt;che conobbe soffice calor tuo;&lt;br /&gt;mi cambiasti in sincero amante.&lt;br /&gt;Poi il laccio si ruppe lentamente,&lt;br /&gt;cosa ci portò a tanta distanza?&lt;br /&gt;&lt;br /&gt;Permeasti nella mente fertile,&lt;br /&gt;trovasti caldo concime d'abbraccio.&lt;br /&gt;Or nulla esiste di tutto questo,&lt;br /&gt;solo lontano ricordo tiepido;&lt;br /&gt;in me permani incisa, mutando.&lt;br /&gt;&lt;br /&gt;M'hai conosciuto bimbo cercatore,&lt;br /&gt;m'hai trasformato in dolce compagno;&lt;br /&gt;m'hai lasciato vulnerabil sperduto,&lt;br /&gt;mutando il mio animo gentile&lt;br /&gt;in un uomo dolce, forte, libero.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-3020556349314553280?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/3020556349314553280/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=3020556349314553280' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/3020556349314553280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/3020556349314553280'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/03/mutamento.html' title='Mutamento'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-1568961331080030162</id><published>2007-03-05T11:53:00.000+01:00</published><updated>2007-03-05T11:58:33.213+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Memorie</title><content type='html'>Memorie&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fotografie al sapore di antica felicità;&lt;br /&gt;la tua voce, che mi scaldò l'anima,&lt;br /&gt;ora gelida m'inumidisce attraverso un filmato;&lt;br /&gt;parole dolci hai inciso nella mia anima,&lt;br /&gt;le leggo, le trascrivo, le conservo.&lt;br /&gt;&lt;br /&gt;Dolcezza che mi fece innamorare;&lt;br /&gt;affetto che mi legò indelebilmente;&lt;br /&gt;amore che mi manca come ossigeno;&lt;br /&gt;soffoco, senza te non respiro più&lt;br /&gt;quel fresco tepore d'un viso sfiorato.&lt;br /&gt;&lt;br /&gt;Hai donato ciò che di più grande esiste;&lt;br /&gt;hai trasmesso ciò che ho sempre cercato;&lt;br /&gt;ora non più, non mio, ma concedi ancora,&lt;br /&gt;a chi saprà apprezzarlo,&lt;br /&gt;il tuo dono unico e prezioso.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-1568961331080030162?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/1568961331080030162/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=1568961331080030162' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1568961331080030162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1568961331080030162'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/03/memorie.html' title='Memorie'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-8691671428858703461</id><published>2007-02-26T14:05:00.000+01:00</published><updated>2007-02-26T14:06:42.790+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Scarnificato</title><content type='html'>Scarnificato&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Casualità d'un incontro, donato&lt;br /&gt;da colui che domina l'avvenire,&lt;br /&gt;aveva mutato mia esistenza.&lt;br /&gt;Prati fioriti, boschi, laghi, monti;&lt;br /&gt;tutto splendeva con te al mio fianco.&lt;br /&gt;&lt;br /&gt;Ci siamo raccontati, accuditi,&lt;br /&gt;osservati, carezzati, amati;&lt;br /&gt;compenetrati e complementati.&lt;br /&gt;Fulminea entrasti nel profondo,&lt;br /&gt;crescendo nella mia vita: fu tua.&lt;br /&gt;&lt;br /&gt;Pensieri, speranze e sogni freschi;&lt;br /&gt;polpa di esistenza calda, rosa.&lt;br /&gt;Or hai abbandonato questo sangue,&lt;br /&gt;appaio carcassa scarnificata,&lt;br /&gt;vuoto incolmabile: or ti sogno.&lt;br /&gt;&lt;br /&gt;desiderio d'affetto tuo pervade,&lt;br /&gt;m'impregna, umido 'l guanciale, freddo;&lt;br /&gt;io caloroso, ora sento 'l gelo.&lt;br /&gt;Tuo pensiero, via lo caccio tremante,&lt;br /&gt;ma m'insegue, nei sogni e nel cuore.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-8691671428858703461?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/8691671428858703461/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=8691671428858703461' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8691671428858703461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8691671428858703461'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/02/scarnificato.html' title='Scarnificato'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-6815921601479273286</id><published>2007-02-14T13:05:00.000+01:00</published><updated>2007-02-14T13:32:47.669+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Istinti opposti distruggono</title><content type='html'>Istinti opposti distruggono&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A volte inspiegabil, istintiva&lt;br /&gt;reazione a propri desideri,&lt;br /&gt;i più intimi, profondi e dolci,&lt;br /&gt;carezza, sguardo, affetto trasmesso,&lt;br /&gt;distrugge realtà che fu rosea.&lt;br /&gt;&lt;br /&gt;Cercavo solo lievi tue carezze;&lt;br /&gt;esprimevo come peggio si possa.&lt;br /&gt;Avrei trovato con gesti soavi,&lt;br /&gt;avrei dovuto comprender che tu&lt;br /&gt;altrettanto cercavi mei sussurri.&lt;br /&gt;&lt;br /&gt;Non ho capito e non ho spiegato,&lt;br /&gt;ho solo mostrato forte mancanza&lt;br /&gt;con scontento arrogante, lascivo.&lt;br /&gt;Avrei dovuto, ma non ho fatto,&lt;br /&gt;or me ne pento, è tardi purtroppo.&lt;br /&gt;&lt;br /&gt;Mente mia s'attorciglia su sè stessa,&lt;br /&gt;cuor si contrae, dolor inespresso.&lt;br /&gt;Ancor non riesco a capacitarmi&lt;br /&gt;d'aver perso simil tua ricchezza,&lt;br /&gt;per stupidità d'opposti istinti.&lt;br /&gt;&lt;br /&gt;Del senno di poi son piene le fossa,&lt;br /&gt;ora vero come mai chiaro vidi.&lt;br /&gt;Or darei tutto per poter trasmetter&lt;br /&gt;parola, carezza, sorriso, bacio.&lt;br /&gt;In me stesso, resto solo, afflitto.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-6815921601479273286?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/6815921601479273286/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=6815921601479273286' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/6815921601479273286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/6815921601479273286'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/02/istinti-opposti-distruggono.html' title='Istinti opposti distruggono'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-8010674036602574413</id><published>2007-02-12T23:15:00.000+01:00</published><updated>2007-02-12T14:15:13.055+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Ali tarpate</title><content type='html'>Ali tarpate&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ali tarpate iteratamente;&lt;br /&gt;sovente accennan volo libero;&lt;br /&gt;poi Tu, e io servo e aiutante,&lt;br /&gt;scagli rose di cupi pallettoni&lt;br /&gt;contro librante illuso misero,&lt;br /&gt;un ascoltatore di emozioni.&lt;br /&gt;&lt;br /&gt;Tu, immortal d'Odiesseo irato,&lt;br /&gt;sballotti ludicamente tui figli,&lt;br /&gt;disperdi nel mar del pensier brumato:&lt;br /&gt;tarli profondi brulicano svelti,&lt;br /&gt;picchian sul cuore come grossi magli;&lt;br /&gt;ed io, complice, causa di risvolti.&lt;br /&gt;&lt;br /&gt;Ma probabilmente Tu non esisti,&lt;br /&gt;se non nelle nostre menti bacate:&lt;br /&gt;Tu sei solo casualità, fingesti&lt;br /&gt;d'esser divinità, per assolverci&lt;br /&gt;da nostre azioni; tornan spietate&lt;br /&gt;conseguenze, s'adopran per ferirci.&lt;br /&gt;&lt;br /&gt;Tarpate t'ho l'ali, troncando netto&lt;br /&gt;nostro volo una volta sereno;&lt;br /&gt;pensandoci par mi sento d'inetto.&lt;br /&gt;Chiedi se t'odio: mai potrei, in questa&lt;br /&gt;o altra vita, amandoti, veleno&lt;br /&gt;d'odio provar, tua scelta non lo desta.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-8010674036602574413?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/8010674036602574413/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=8010674036602574413' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8010674036602574413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8010674036602574413'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/01/ali-tarpate.html' title='Ali tarpate'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-6286464334955705205</id><published>2007-02-12T12:18:00.000+01:00</published><updated>2007-02-12T12:37:36.273+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Parole, pensieri e sensazioni</title><content type='html'>Parole, pensieri e sensazioni&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pare incredibile,&lt;br /&gt;quanto nascosti restin&lt;br /&gt;sensazioni, affetto,&lt;br /&gt;dispiaceri, tristezza,&lt;br /&gt;delusi desideri,&lt;br /&gt;sentimenti profondi.&lt;br /&gt;&lt;br /&gt;Pensieri già tradiscon:&lt;br /&gt;non posson descrivere;&lt;br /&gt;parole riassumon:&lt;br /&gt;troppo vorremo dire;&lt;br /&gt;timori mi strozzano&lt;br /&gt;favellar sul nascere.&lt;br /&gt;&lt;br /&gt;A volte trovo, forte&lt;br /&gt;d'inferto minor danno,&lt;br /&gt;silenzio soluzione:&lt;br /&gt;trattener dentro di sé,&lt;br /&gt;per non infligger colpi&lt;br /&gt;di certo non voluti.&lt;br /&gt;&lt;br /&gt;Di tante cicatrici,&lt;br /&gt;silenzio reciproco,&lt;br /&gt;non so dove si pone:&lt;br /&gt;lenta medicazione,&lt;br /&gt;o truce e crudele&lt;br /&gt;reciproco supplizio?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gabriele Lombardi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-6286464334955705205?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/6286464334955705205/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=6286464334955705205' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/6286464334955705205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/6286464334955705205'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/02/parole-pensieri-e-sensazioni.html' title='Parole, pensieri e sensazioni'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-4671359589762475002</id><published>2007-01-23T17:22:00.000+01:00</published><updated>2007-01-23T17:25:31.308+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Software engeneering'/><title type='text'>GoF design patterns</title><content type='html'>Chi non avesse mai studiato o letto il libro "Design Paterns" della GoF (Gang of Four).. ma anche chi lo conosce a memoria ed è uno "squilibrato patternizzatore" di tutto il codice che scrive.. eccovi un link ad un lavoro di descrizione per esempi dei pattern GoF.. comprensivo di tavola periodica dei design patterns :D&lt;br /&gt;&lt;br /&gt; &lt;a href="http://home.earthlink.net/%7Ehuston2/dp/patterns.html"&gt;GoF Design Patterns&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Collegamento" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-4671359589762475002?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/4671359589762475002/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=4671359589762475002' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4671359589762475002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4671359589762475002'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/01/gof-design-patterns.html' title='GoF design patterns'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-8351116303393302788</id><published>2007-01-23T17:12:00.000+01:00</published><updated>2007-01-23T17:18:21.621+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Software engeneering'/><title type='text'>C++: i paradigmi Object Oriented e Generics Oriented accoppiati</title><content type='html'>Con il C++ si ha un esempio di linguaggio di programmazione multiparadigma in cui i vari paradigmi inclusi sono in grado di cooperare per generare nuove famiglie di design patterns. In particolare in C++ è possibile sfruttare in maneira furba l'esistenza di OO e dei generics (templates) per ottenere codice flessibile ed ottimizzato per le proprie esigenze.&lt;br /&gt;Al link seguente troverete un pattern curioso.. che per questo ha preso il nome di &lt;a href="http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern"&gt;Curiously Recurring Template Pattern (CRTP)&lt;/a&gt;.&lt;br /&gt;Un altra serie di pattern a paradigma misto.. li pubblicherò in questo blog a breve.. vi aspetto ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-8351116303393302788?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/8351116303393302788/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=8351116303393302788' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8351116303393302788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/8351116303393302788'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/01/c-i-paradigmi-object-oriented-e.html' title='C++: i paradigmi Object Oriented e Generics Oriented accoppiati'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-3057129277633022658</id><published>2007-01-11T11:52:00.000+01:00</published><updated>2007-01-11T11:54:14.702+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='geometria'/><title type='text'>Algoritmi di geometria.. già implementati</title><content type='html'>&lt;a href="http://cgal.org/"&gt;CGAL&lt;/a&gt;.. e ho detto tutto :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-3057129277633022658?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/3057129277633022658/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=3057129277633022658' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/3057129277633022658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/3057129277633022658'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/01/algoritmi-di-geometria-gi-implementati.html' title='Algoritmi di geometria.. già implementati'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-6569292875489332853</id><published>2007-01-08T13:46:00.000+01:00</published><updated>2007-02-05T15:08:33.377+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geometria'/><title type='text'>Flatlandia: quesito di dicembre 2006</title><content type='html'>Questo mese è stato proposto il seguente quesito:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:Arial;" &gt;  &lt;span style="color:black;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;font-family:Arial;" &gt;&lt;span style="color:black;"&gt;Sono dati due segmenti b e c (b&gt;c).&lt;/span&gt;&lt;/span&gt;     &lt;p style="font-weight: bold;" class="MsoNormal" align="left"&gt;&lt;span style="font-family:Arial;"&gt;  &lt;span style="color:black;"&gt;Disegnare con essi un trapezio rettangolo ABCD di   basi AB=b, DC=c e di altezza AD=b+c.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="font-weight: bold;" class="MsoNormal" align="left"&gt;&lt;span style="font-family:Arial;"&gt;  &lt;span style="color:black;"&gt;1) Verificare, e poi dimostrare, che la circonferenza di diametro CB incontra il lato AD in due punti che chiameremo P e Q (AP&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:black;"&gt;&lt;aq&gt;&lt;/aq&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal" align="left"&gt;&lt;span style="font-family:Arial;"&gt;  &lt;span style="color:black;"&gt;&lt;span style="font-weight: bold;"&gt;2) Determinare in funzione di &lt;/span&gt;&lt;b style="font-weight: bold;"&gt;b&lt;/b&gt;&lt;span style="font-weight: bold;"&gt; e &lt;/span&gt;&lt;b style="font-weight: bold;"&gt;c &lt;/b&gt;&lt;span style="font-weight: bold;"&gt;  la lunghezza della corda PQ, le distanze di P e Q dai vertici A e D del   trapezio e l’area del triangolo BPC.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt; &lt;p class="MsoNormal" align="left"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:black;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; Il problema sembra molto più complicato di quello che è: infatti se si disegna il trapezio rettangolo.. e se ne disegna un altro ruotato di 180 gradi facendo aderire il lato obliquo, si scopre che il trapezio è in realtà una porzione di un quadrato. Si scopre inoltre che il centro della circonferenza descritta per simmetria è il centro del quadrato. Chiamato &lt;span style="font-weight: bold;"&gt;X&lt;/span&gt; tale punto, essendo il segmento &lt;span style="font-weight: bold;"&gt;XC&lt;/span&gt; (raggio del cerchio) maggiore del semilato del quadrato di lunghezza &lt;span style="font-weight: bold;"&gt;(b+c)/2&lt;/span&gt;, ed essendo minore della semidiagonale di lunghezza &lt;span style="font-weight: bold;"&gt;sqrt(2)(b+c)&lt;/span&gt;, devono per forza esserci punti della circonferenza esterni al quadrato e punti interni, ovvero devono esserci due intersezioni con ogni lato del quadrato. Si osservi che l'esistenza delle due intersezioni si può scoprire e dimostrare anche notando che sul lato superiore del quadrato esiste già l'intersezione &lt;span style="font-weight: bold;"&gt;C&lt;/span&gt;, sul lato inferiore esiste l'intersezione &lt;span style="font-weight: bold;"&gt;B&lt;/span&gt; e per simmetria ogni lato deve avere un'intersezione per ognuna delle distanze &lt;span style="font-weight: bold;"&gt;DB&lt;/span&gt; ed &lt;span style="font-weight: bold;"&gt;AC&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Tidqh9c0DiE/RaJCR_c0dZI/AAAAAAAAAAU/0SOsvagwW4A/s1600-h/TrapezioRettangolo.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Tidqh9c0DiE/RaJCR_c0dZI/AAAAAAAAAAU/0SOsvagwW4A/s320/TrapezioRettangolo.gif" alt="" id="BLOGGER_PHOTO_ID_5017645811701675410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Una ulteriore nota è la seguente: per simmetria la lunghezza dal segmento &lt;span style="font-weight: bold;"&gt;CD&lt;/span&gt; è identica alla lunghezza del segmento &lt;span style="font-weight: bold;"&gt;DQ&lt;/span&gt;; inoltre, sempre per simmetria, si può considerare l'insieme di punti di intersezione della circonferenza con il quadrato come l'insieme dei punti del quadrato di distanza &lt;span style="font-weight: bold;"&gt;CD=c&lt;/span&gt; dai vertici.&lt;br /&gt;&lt;br /&gt;Ovviamente il calolo della corda &lt;span style="font-weight: bold;"&gt;PQ&lt;/span&gt; è ora semplice da effettuare:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;PQ = AD-AQ-DP = b+c-2c = b-c&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Il triangolo &lt;span style="font-weight: bold;"&gt;BPC&lt;/span&gt; infine è rettangolo: infatti per la simmetria della scelta dei punti, &lt;span style="font-weight: bold;"&gt;BPC&lt;/span&gt; si può ottenere dividendo a metà, lungo una diagonale, il quadrato mostrato in figura.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Tidqh9c0DiE/RaJDvfc0daI/AAAAAAAAAAc/vkzNjDMabYo/s1600-h/TrapezioRettangolo2.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_Tidqh9c0DiE/RaJDvfc0daI/AAAAAAAAAAc/vkzNjDMabYo/s320/TrapezioRettangolo2.gif" alt="" id="BLOGGER_PHOTO_ID_5017647418019444130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Il lato &lt;span style="font-weight: bold;"&gt;PB&lt;/span&gt; è lungo &lt;span style="font-weight: bold;"&gt;l=sqrt(c^2+b^2)&lt;/span&gt;, il triangolo ha quindi area &lt;span style="font-weight: bold;"&gt;(l^2)/2&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-6569292875489332853?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/6569292875489332853/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=6569292875489332853' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/6569292875489332853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/6569292875489332853'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/01/flatlandia-quesito-di-dicembre-2006.html' title='Flatlandia: quesito di dicembre 2006'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Tidqh9c0DiE/RaJCR_c0dZI/AAAAAAAAAAU/0SOsvagwW4A/s72-c/TrapezioRettangolo.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-2412090839787814825</id><published>2007-01-08T13:24:00.000+01:00</published><updated>2007-01-08T13:25:19.635+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='foto'/><category scheme='http://www.blogger.com/atom/ns#' term='immagini'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Mie foto pubbliche</title><content type='html'>Ecco che finalmente ho messo a disposizione alcune delle mie foto artistiche.. giuro che ne aggiungerò ancora una marea :D&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;br /&gt; &lt;a href="http://picasaweb.google.com/ilgabbio"&gt;http://picasaweb.google.com/ilgabbio&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-2412090839787814825?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/2412090839787814825/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=2412090839787814825' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/2412090839787814825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/2412090839787814825'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2007/01/mie-foto-pubbliche.html' title='Mie foto pubbliche'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-1045011283657919607</id><published>2006-12-20T11:28:00.000+01:00</published><updated>2006-12-20T11:33:38.053+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><title type='text'>Un framework per l'analisi di dati</title><content type='html'>Quante volte è capitato, a chiunque faccia ricerca in ambito scientifico, di dover manipolare ed esplorare dati, magari di doverli rappresentare graficamente, oppure interpolare con una qualche tencinca, per esempio con le T-spline. Se non si utilizza un software commerciale come Matlab e si sta lavorando in C++ per mantenere un occhio sulla portabilità e un occhio sull'efficienza.. in genere ci si affida a librerie esterne con il risultato di avere un elenco enorme di dipendenze. Ecco qui un framework che mette a disposizione tantissimi strumenti (tutti quelli di cuik si ha bisogno?) sotto un'unico pacchetto: &lt;a href="http://root.cern.ch/"&gt;ROOT&lt;/a&gt;.&lt;br /&gt; Direi che il modo migliore per apprezzare ROOT è quello di andare a dare un occhio al materiale pubblicato, alle applicazioni che ci sono state implementate utilizzandolo.. e poi scaricarlo e provare ad utilizzarlo :D&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-1045011283657919607?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/1045011283657919607/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=1045011283657919607' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1045011283657919607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/1045011283657919607'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2006/12/un-framework-per-lanalisi-di-dati.html' title='Un framework per l&apos;analisi di dati'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-5488004788130161461</id><published>2006-12-16T11:33:00.000+01:00</published><updated>2006-12-16T11:56:47.112+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geometria'/><category scheme='http://www.blogger.com/atom/ns#' term='elaborazione delle immagini'/><category scheme='http://www.blogger.com/atom/ns#' term='teoria'/><title type='text'>Tensor Voting</title><content type='html'>Il Tensor Voting, tecnica che si sta diffondendo molto rapidamente nella computer vision per il perceptual grouping di informazioni, non può che essere una tecnica citata in questo blog come ospite d'onore: infatti penso che non ci sia nulla di più vicino alla tecnologia, all'arte ed alla percezione di questa tecnica.&lt;br /&gt; Il Tensor Voting affronta il problema di determinare le strutture percettive presenti in un insieme di punti di uno spazio a N dimensioni RN. Tali strutture vengono determinate sfruttando due principi principali:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;La "continuazione percettiva" di strutture esistent verso il vicinato: ad esempio se osserviamo una linea tratteggiata vediamo comunque una linea, anche se in realtà si tratta solo di tanti segmenti, questo perchè eprcettivamente tentiamo a "continuare" ogni segmento verso il successivo.&lt;/li&gt;   &lt;li&gt;La "morbidezza delle variazioni" delle strutture stesse: qui si intende parlare di smoothness, in questo caso il senso di questo termine è quello di mantenere il più costante possibile (minimizzarne quindi le variazioni)  la curvatura delle strutture. Ad esempio la curva con curvatura costante che può unire due punti è un arco di circonferenza, non obbligatoriamente un segmento, infatti l'arco di circonferenza potrebbe evitare variazioni brusche nella derivata prima della curva in una giunzione precedente o successiva.&lt;/li&gt; &lt;/ol&gt; Non intendo descrivere qui il Tensor Voding, sarebbe decisamente ridondante (si cerci sulla rete, con autori Medioni, Tang e Mordohai), quello che intendo dare come idee.. o come riflessioni sono le seguenti:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Esistono tutti gli strumenti matematici che permettono di lavorare algoritmicamente con il Tensor Voting.. ma nessuno strumento di analisi globale, che permetta di interpretarne i risultati.. che sono stupefacenti.. ma che non sono secondo me descritti con sufficiente rigore.. ad esempio non si parla mai dello spazio delle possibili orientazioni, o delle possibili curve, o del fatto che ogni singolo voting è uno step discreto in un automa a stati infiniti.. insomma dal punto di vista analitico manca un bel po' di lavoro (speriamo di essere io a farlo ;).&lt;/li&gt;   &lt;li&gt;Il Tensor Voting è una tecnica molto pontente, non ci sono dubbi.. però credo che il suo nome debba essere spezzato in due:&lt;/li&gt;   &lt;ul&gt;     &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Tensor&lt;/span&gt;: Si lavora con votanti e voti che sono tensori; i votati sono solo punti.&lt;/li&gt;     &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Voting&lt;/span&gt;: Si tratta di una tecnica di voto, come ad esempio Hough; io direi che la generalizzazione del Tensor Voting più ovvia è il Voting.. una descrizione del voting come meta-tecnica di information transmission fra dati possa essere un formalismo potente, molte tecniche figlie possono essere costruite a partire da questa. Ovviamente in questo caso la matematica analitico-descrittiva del Voting sarebbe l'assoluta essenza del Voting stesso.&lt;/li&gt;   &lt;/ul&gt;   &lt;li&gt;Dal punto di vista computazionale ci sono vari problemi: è una tecnica che può essere resa molto veloce grazie alle giuste strutture dati, però tende ad occupare una quantità di memoria esponenziale al crescere della dimensionalità N, costruire una tecnica efficiente di sintesi dei tensori del tensor voting field per dimensionalità alte potrebbe essere molto utile.&lt;br /&gt;  &lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-5488004788130161461?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/5488004788130161461/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=5488004788130161461' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/5488004788130161461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/5488004788130161461'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2006/12/tensor-voting.html' title='Tensor Voting'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-2188567117039362597</id><published>2006-11-21T12:13:00.000+01:00</published><updated>2006-11-21T12:23:39.823+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='elaborazione delle immagini'/><category scheme='http://www.blogger.com/atom/ns#' term='teoria'/><title type='text'>Cellular Neural Networks (CNN)</title><content type='html'>Gli automi cellulari sono sempre stati considerati dei &lt;span style="font-style: italic;"&gt;giochini&lt;/span&gt; interessanti, fatti per esplorare le basi più semplici della teoria del caos, osservare comportamenti e proprietà emergenti non banalmente deducibili dalle regole di evoluzione del sistema. La loro natura di "stati definiti su nodi du un lattige rettangolare bidimensionale" però li hanno sempre resi molto vicini alle problematiche di elaborazione delle immagini. Ecco &lt;a href="http://www.ce.unipr.it/pardis/CNN/cnn.html"&gt;qui&lt;/a&gt; un lavoro che permette di esplorare alcune tecniche di elaborazione di immagini basate sugli automi cellulari. Lo strumento teorico, estensione dell'automa cellulare classico, prende il nome di &lt;span style="font-weight: bold;"&gt;rete neurale cellulare&lt;/span&gt; (CNN). I risultati sono interessanti, anche se non mostrano nulla di non ottenibile per altre vie, in genere anche in maniera molto più efficiente.&lt;br /&gt;&lt;br /&gt;L'idea di estendere però lo strumento affinchè sia in grado di gestire organizzazioni di cellulle in agglomerati capaci di computazione locale non sarebbe malaccio.. si immaginino delle sorte di agglomerati cellulari che si muovono nello spazio degli stati attingendo alle informazioni presenti in esso e nell'immagine, aggregazioni che magari tendono a &lt;span style="font-style: italic;"&gt;nutrirsi&lt;/span&gt; di pixel a 1 nell'immagine (binaria) da elaborare, la loro evoluzione potrebbe portare ad agglomerati di cellule addensati dove sono presenti curve o aree, portando ad un perceptual grouping dei dati sparsi ed incompleti.&lt;br /&gt;&lt;br /&gt;Potrebbe essere un campo divertente in cui giocare :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-2188567117039362597?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/2188567117039362597/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=2188567117039362597' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/2188567117039362597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/2188567117039362597'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2006/11/cellular-neural-networks-cnn.html' title='Cellular Neural Networks (CNN)'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-4904789765453917844</id><published>2006-11-13T13:49:00.000+01:00</published><updated>2006-11-13T14:45:27.546+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geometria'/><title type='text'>Flatlandia, quesito di Novembre 2006</title><content type='html'>Nel sito &lt;a href="http://www.fardiconto.it/flatlandia/"&gt;Flatlandia&lt;/a&gt; ogni mese viene proposto un &lt;span style="font-style: italic;"&gt;quesito geometrico&lt;/span&gt; a cui provare a rispondere cimentandosi nella dimostrazione di piccoli teoremi oppure dove è possibile cimentarsi in divertenti costruzioni geometriche. Su questo blog verranno pubblicate le risposte.&lt;br /&gt;Quesito di Novembre 2006:&lt;br /&gt;&lt;p align="left"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;Costruire un quadrilatero in cui le   bisettrici di due angoli opposti (di vertici A e C) siano parallele. &lt;/span&gt;  &lt;/b&gt;&lt;/p&gt;    &lt;p align="left"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;1) Quali cara&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;tteristiche presenta il   quadrilatero così ottenuto?&lt;br /&gt; 2) Potrebbe essere un trapezio o un parallelogrammo? &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p align="left"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;Descrivere la costruzione e   giustificare le risposte. &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;La costruzione richiesta non è banale, ma può essere ottenuta ragionando sulla costruzione della bisettrice di un angolo dati tre punti (estremo, centro ed altro estremo), e sui gradi di libertà a disposizione. In particolare è possibile utilizzare un SW di geometria vincolata, come &lt;a href="http://www.mit.edu/%7Eibaran/kseg.html"&gt;kseg&lt;/a&gt;, per costruire ciò che di seguito viene descirtto.&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Il quadrilatero descritto ha 7 gradi di libertà: ovvero perde solamente un grado di libertà nel vincolo richiesto. E' quindi possibile pernsare di utilizzare 6 gradi di libertà per fissare 3 punti del quadrilatero, utilizzare il restante grado di libertà per selezionare la bisettrice parallela a quella (implicitamente) data e trovare quindi la costruzione che permetta di determinare il quarto punto.&lt;/li&gt;   &lt;li&gt;La costruzione di una bisettrice dati tre punti A, B e C è molto semplice, è sufficiente infatti:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/3789/4504/1600/flatlandia_quad01.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger2/3789/4504/320/flatlandia_quad01.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;costruire la retta passante per A e B,&lt;/li&gt;&lt;li&gt;proiettare C su tale retta con un arco centrato in B,      &lt;/li&gt;       &lt;li&gt;Successivamente può essere costruito un segmento DB, ed il suo punto medio E.&lt;/li&gt;&lt;li&gt;La bisettrice è la semiretta che parte da B e passa per il punto E.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/3789/4504/1600/flatlandia_quad02.0.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger2/3789/4504/320/flatlandia_quad02.0.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;&lt;/li&gt;      &lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Per ottenere ora il quarto punto del quadrilatero è indispensabile costruire una retta parallela alla bisettrice appena ottenuta controllabile tramite un punto; per questo motivo si costuisce un punto P libero sul segmento AC e si costruisce la retta passante per esso e parallela alla bisettrice.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/3789/4504/1600/flatlandia_quad03.gif"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger2/3789/4504/320/flatlandia_quad03.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Per costruzione, esattamente come per il segmento DC, il punto incognito X potrà essere utilizzato per costruire la bisettrice, a noi nota, utilizzando la stessa costruzione. Per questo motivo si costruisce il segmento passante per A e parallelo a DC, si determina il punto di incontro F con la bisettrice di X e si determina il punto proiettato D' a distanza doppiarispetto ad AF.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/3789/4504/1600/flatlandia_quad04.gif"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger2/3789/4504/320/flatlandia_quad04.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;A questo punto, esattamente come B è il punto di incontro tra le rette BE (bisettrice) ed AD, così è possibile costruire la retta CD' e determinare il quarto punto del quadrilatero come incrocio con la bisettrice nota.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/3789/4504/1600/flatlandia_quad05.gif"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger2/3789/4504/320/flatlandia_quad05.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;L'output ottenuta con in input i punti A, B, C e P vincolato sul segmento AC è quello mostrato in figura.&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/3789/4504/1600/flatlandia_quad06.gif"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger2/3789/4504/320/flatlandia_quad06.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Interessante è osservare, al muoversi di P sul segmento AC, quali sono le possibili posizioni del punto X. Per ottenere questa informazione viene costruito il luogo di punti X definito dalle possibili posizioni di P ottenendo quanto mostrato nella figura seguente:&lt;br /&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/3789/4504/1600/flatlandia_quad07.gif"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger2/3789/4504/320/flatlandia_quad07.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Si può mostrare che le possibili posizioni del punto X si trovano su una roto-omotetia dell'iperbole equilatera limitata dai punti A e C e passante per B ed ovviamente X. Un ramo (quello superiore nella figura) consente di ottenere i quadrilateri convessi e l'altro consente di ottenere i quadrilateri concavi.&lt;/li&gt;   &lt;li&gt;Per quanto riguarda i quesiti: questa costruzione consente di avere tutti e soli i quadrilateri costruibili con le condizioni date, possono essere parallelogrammi ma non trapezi (se non degeneri in rettangoli).&lt;br /&gt;  &lt;/li&gt;  &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-4904789765453917844?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/4904789765453917844/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=4904789765453917844' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4904789765453917844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/4904789765453917844'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2006/11/flatlandia-quesito-di-novembre-2006.html' title='Flatlandia, quesito di Novembre 2006'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-116297878325134874</id><published>2006-11-08T10:26:00.000+01:00</published><updated>2006-11-13T13:44:27.602+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><title type='text'>Matlab: ottenere un numero arbitrario di parametri d'uscita</title><content type='html'>Spesso in Matlab capita di conoscere solo a run-time il numero di parametri da ottenere in uscita dalla chiamata a una funzione, questa situazione si presenta, ad esempio, se si utilizza la classica funzione &lt;span style="font-weight: bold; font-style: italic;"&gt;ind2sub&lt;/span&gt; su un array di dimensionalità non nota a tempo di scrittura del codice.&lt;br /&gt;Si immagini di avere a disposizione un array &lt;span style="font-style: italic;"&gt;A&lt;/span&gt; ed un indice &lt;span style="font-style: italic;"&gt;i&lt;/span&gt; di accesso lineare ai dati contenuti in &lt;span style="font-style: italic;"&gt;A&lt;/span&gt; (accesso non strutturato, vedendo i semplicemente dati come una sequenza senza struttura). Ottenerne le dimensioni è possibile con la funzione &lt;span style="font-weight: bold; font-style: italic;"&gt;size&lt;/span&gt;, ottenere l'indice strutturato da &lt;span style="font-style: italic;"&gt;i&lt;/span&gt; richiede di ottenere in uscita dalla funzione &lt;span style="font-weight: bold; font-style: italic;"&gt;ind2sub&lt;/span&gt; un numero di parametri non a tempo di scrittura del codice. L'utilizzo dell'espansione delle celle in sequenze di parametri viene in soccorso:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;% Ottenimento delle dimensioni:&lt;/span&gt;&lt;br /&gt;sze = &lt;span style="font-weight: bold; font-style: italic;"&gt;size&lt;/span&gt;(A);&lt;br /&gt; &lt;br /&gt;  &lt;span style="color: rgb(51, 204, 0);"&gt;% Costruzione della cella per i parametri in output:&lt;/span&gt;&lt;br /&gt;is = &lt;span style="font-weight: bold; font-style: italic;"&gt;cell&lt;/span&gt;(1,&lt;span style="font-weight: bold; font-style: italic;"&gt;numel&lt;/span&gt;(sze));&lt;br /&gt; &lt;br /&gt;  &lt;span style="color: rgb(51, 204, 0);"&gt;% Conversione dell'indice i in indice strutturato:&lt;/span&gt;&lt;br /&gt;[is{:}] = &lt;span style="font-weight: bold; font-style: italic;"&gt;ind2sub&lt;/span&gt;(sze,i);&lt;br /&gt; &lt;br /&gt;  &lt;span style="color: rgb(51, 204, 0);"&gt;% Esempio di utilizzo degli indici strutturati memorizzati nella cella:&lt;/span&gt;&lt;br /&gt;elem = A(is{:});&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-116297878325134874?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/116297878325134874/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=116297878325134874' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/116297878325134874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/116297878325134874'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2006/11/matlab-ottenere-un-numero-arbitrario.html' title='Matlab: ottenere un numero arbitrario di parametri d&apos;uscita'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-116290975094140427</id><published>2006-11-07T15:07:00.000+01:00</published><updated>2006-11-13T13:44:27.503+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Lenta carne pensante</title><content type='html'>A volte, il peso del proprio corpo,&lt;br /&gt;ci fa sentire legati&lt;br /&gt;a una realtà terrena da cui fuggire;&lt;br /&gt;lo si vorrebbe abbandonare,&lt;br /&gt;seppur momentaneamente,&lt;br /&gt;per inibirne le distrazioni,&lt;br /&gt;per eliminare dalla mente&lt;br /&gt;gli effetti dei suoi capricci.&lt;br /&gt;&lt;br /&gt;M'immagino senza carne,&lt;br /&gt;pensiero puro librante,&lt;br /&gt;capace di incredibili voli pindarici&lt;br /&gt;che mi portino ovunque:&lt;br /&gt;nel cuore di persone fantastiche,&lt;br /&gt;nel cuore di luoghi fantastici,&lt;br /&gt;nel cuore di teorie fantastiche.&lt;br /&gt;&lt;br /&gt;Ma il fardello è qui, da trasportare;&lt;br /&gt;la realtà ci mantiene&lt;br /&gt;in uno spazio-tempo limitato;&lt;br /&gt;solo un sospiro e una carezza&lt;br /&gt;possono dar l'illusione della libertà.&lt;br /&gt;Chiudo gli occhi: per un attimo volo.&lt;br /&gt;&lt;br /&gt;Tempo fuggevole, luoghi lontani,&lt;br /&gt;li focalizzo chiaramente:&lt;br /&gt;canyon, foreste, oceani e ghiacciai;&lt;br /&gt;luoghi dove dispiegare le ali&lt;br /&gt;d'una ricercata serenità.&lt;br /&gt;&lt;br /&gt;Ne carezzo la freschezza,&lt;br /&gt;ne vedo i bagliori,&lt;br /&gt;ne respiro l'aria,&lt;br /&gt;ne odo i silenzi.&lt;br /&gt;&lt;br /&gt;Riapro gli occhi,&lt;br /&gt;tornano i sensi,&lt;br /&gt;strette pareti.&lt;br /&gt;&lt;br /&gt;Mi opprimono,&lt;br /&gt;mi soffocano.&lt;br /&gt;&lt;br /&gt;Uccidono.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-116290975094140427?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/116290975094140427/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=116290975094140427' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/116290975094140427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/116290975094140427'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2006/11/lenta-carne-pensante.html' title='Lenta carne pensante'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-116255138059029112</id><published>2006-11-03T11:46:00.000+01:00</published><updated>2006-11-13T13:44:27.397+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programmazione'/><title type='text'>Matlab: multidimensional array slicing</title><content type='html'>Si immagini di avere un array multidimensionale &lt;span style="font-style: italic; font-weight: bold;"&gt;A&lt;/span&gt; con un numero di dimensioni non noto nel momento in cui si scrive il codice. Si immagini anche di avere a disposizione un array &lt;span style="font-style: italic; font-weight: bold;"&gt;from&lt;/span&gt; contenente per ogni dimensione l'indice di partenza di un'operazione di slicing, e un arrai &lt;span style="font-weight: bold; font-style: italic;"&gt;to&lt;/span&gt; contenente gli indici di arrivo. Ipotizzando di avere già svolto tutti i controlli sulle dimensioni e sugli indici si può effettuare lo slicing come segue:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Si costruisce una cella contenente per ogni dimensione l'array di indici da utilizzare.&lt;/li&gt;   &lt;li&gt;Si utilizza l'espansione di celle in elenco di parametri accoppiato con l'operatore di slicing.&lt;/li&gt; &lt;/ul&gt; Il tutto è riassunto nel codice seguente:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;% Parametri forniti:&lt;/span&gt;&lt;br /&gt;A = rand(3,3,3);&lt;br /&gt;from = [1,2,1];&lt;br /&gt;to = [3,2,2];&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;% Costruzione della cella (domanda: il ciclo è evitabile?):&lt;/span&gt;&lt;br /&gt;D = numel(size(A));&lt;br /&gt;inds = cell(1,D);&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;for&lt;/span&gt; i=1:D&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);"&gt; % Gli indici voluti:&lt;/span&gt;&lt;br /&gt;inds{i} = from(i):to(i);&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;% Lo slicing:&lt;/span&gt;&lt;br /&gt;sliceA = A(inds{:});&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-116255138059029112?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/116255138059029112/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=116255138059029112' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/116255138059029112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/116255138059029112'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2006/11/matlab-multidimensional-array-slicing.html' title='Matlab: multidimensional array slicing'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-116255041658807754</id><published>2006-11-03T11:40:00.000+01:00</published><updated>2006-11-13T13:44:27.182+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geometria'/><title type='text'>Flatlandia, quesito di Ottobre 2006</title><content type='html'>Sul sito &lt;a href="http://www.fardiconto.it/flatlandia/"&gt;Flatlandia&lt;/a&gt;&lt;blockquote&gt;&lt;/blockquote&gt; ogni mese viene proposto un quesito geometrico da risolvere con la sola logica e la sola geometria. Ecco la mia risposta al seguente quesito di Ottobre 2006:&lt;br /&gt;&lt;p align="left"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;blockquote&gt;   &lt;p style="font-style: italic;" align="left"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;1) Fissato un segmento BC, costruire   un triangolo ABC in cui la mediana AM sia congruente al lato AB. &lt;/span&gt;&lt;/b&gt;  &lt;/p&gt;      &lt;p style="font-style: italic;" align="left"&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;2) Come si dovrà scegliere AM affinché   il triangolo ABC sia rettangolo o acutangolo o ottusangolo? &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;      &lt;p align="left"&gt;&lt;b style="font-style: italic;"&gt;&lt;span style="font-family:Arial;"&gt;Giustificare le risposte.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt; &lt;/p&gt;   &lt;p align="left"&gt;&lt;/p&gt; &lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4105/4133/1600/flatlandia_tri01.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; cursor: pointer;" src="http://photos1.blogger.com/blogger/4105/4133/320/flatlandia_tri01.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p align="left"&gt;Nella figura è mostrata la costruzione che permette di ottenere il triangolo richiesto. In essa:&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;   &lt;li&gt;Si è determinato il punto medio M sul segmento BC. Si è identificato il punto medio D sul segmento BM.&lt;/li&gt;   &lt;li&gt;Si è costruita la retta passante per D ortogonale a BM: questa retta è ortogonale alla corda della circonferenza passante per B ed M; preso un qualunque punto A su tale retta si ha che la distanza tra A e B è uguale alla distanza tra A ed M (mediana) essendo entrambe raggi della circonferenza costruita. Così è risolto il punto 1.&lt;br /&gt; &lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4105/4133/1600/flatlandia_tri02.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer;" src="http://photos1.blogger.com/blogger/4105/4133/320/flatlandia_tri02.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;  &lt;li&gt;Esistono solamente due punti A sulla retta passante per AD tali che il triangolo ottenuto sia rettangolo. Chiamati A1 ed A2 tali punti si ha che tutti i triangoli AiBC, in cui Ai è un punto sul segmento A1A2, sono ottusi. I triangoli A1BC e A2BC sono rettangoli e gli altri sono acuti.&lt;/li&gt;   &lt;li&gt;I punti A1 e A2 sono facilmente ottenibili grazie al seguente ragionamento: il triangolo finale, avendo un lato e due angoli in comune con ABD, deve essergli simile. Ma tracciandone la mediana DE come in figura, per similitudine deve essere DE congruente con BD, e quindi con DM, deve quindi essere la mediana la DE metà della mediana AM. Ne segue che il triangolo ABC è il doppio del triangolo ABD. Questo implica che, essendo AE, EB, ED, BD e DM congruenti, devono esserlo anche AB con BM, quindi il triangolo ABM è equilatero; è quindi sufficiente tracciare un arco centrato in B e passante per M per ottenere, come intersezione con la retta AD, i due punti A1 e A2. Così è risolto il punto 2.&lt;br /&gt; &lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-116255041658807754?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/116255041658807754/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=116255041658807754' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/116255041658807754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/116255041658807754'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2006/11/flatlandia-quesito-di-ottobre-2006_03.html' title='Flatlandia, quesito di Ottobre 2006'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36900557.post-116231353568622054</id><published>2006-10-31T17:32:00.000+01:00</published><updated>2006-11-13T13:44:26.976+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poesia'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><title type='text'>Poesia: uno sfogo per i sentimenti?</title><content type='html'>Penso che la poesia sia per me, come per molti autori, uno sfogo per i sentimenti, per questo si scrive di più e meglio quando qualcosa non và!&lt;br /&gt;&lt;br /&gt;Date un occhio a questa poesia di Charles Baudelaire:&lt;br /&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: center"&gt;&lt;span style="font-family:Arial,Helvetica,sans-serif;"&gt;&lt;small&gt;L'AMORE E IL CRANIO&lt;/small&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="TEXT-ALIGN: center"&gt;&lt;span style="font-family:Arial,Helvetica,sans-serif;"&gt;&lt;small&gt;&lt;span style="FONT-STYLE: italic"&gt;Vecchio fregio&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sul cranio dell'umanità&lt;br /&gt;l'Amor sta seduto,&lt;br /&gt;che sembra sul trono, e di là,&lt;br /&gt;con viso paffuto,&lt;br /&gt;&lt;br /&gt;soffiando le bolle rotonde&lt;br /&gt;le lancia su in alto&lt;br /&gt;e prende, lievi e gioconde,&lt;br /&gt;le stelle d'assalto.&lt;br /&gt;&lt;br /&gt;I fragili globi lucenti&lt;br /&gt;van su spensierati,&lt;br /&gt;ma esplodono tosto:&lt;br /&gt;frammenti di sogni dorati.&lt;br /&gt;&lt;br /&gt;invano ogni volta la voce&lt;br /&gt;del cranio garrisce:&lt;br /&gt;"Ma questo giochetto feroce,&lt;br /&gt;quand'è che finisce?&lt;br /&gt;&lt;br /&gt;perchè ciò che tu, traditore,&lt;br /&gt;disperdi nel vento,&lt;br /&gt;è il vivo mio sangue, il mio cuore,&lt;br /&gt;il mio sentimento!"&lt;br /&gt;&lt;/small&gt;&lt;/span&gt;&lt;div style="TEXT-ALIGN: left"&gt;&lt;br /&gt;Adoro Baudelaire!!! Penso che molti si immedesimino in questo testo quando qualcosa va male con il partner.&lt;br /&gt;&lt;br /&gt;Le mie poesie sono una raccolta di sentimenti, pensieri e sensazioni gettate sulla carta da un ragazzo di differenti età, che scrivendo dall'adolescenza alla (quasi ;) maturità mostra la propria crescita intellettuale e sentimentale. Potete reperirle &lt;a href="http://homes.dsi.unimi.it/~lombardi/download/docs/various/Poesie.pdf"&gt;qui&lt;/a&gt;. &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36900557-116231353568622054?l=ilgabbio.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilgabbio.blogspot.com/feeds/116231353568622054/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36900557&amp;postID=116231353568622054' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/116231353568622054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36900557/posts/default/116231353568622054'/><link rel='alternate' type='text/html' href='http://ilgabbio.blogspot.com/2006/10/poesia-uno-sfogo-per-i-sentimenti.html' title='Poesia: uno sfogo per i sentimenti?'/><author><name>Gabriele Lombardi</name><uri>http://www.blogger.com/profile/01861732391547320218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp2.blogger.com/_Tidqh9c0DiE/SFpJEirkaPI/AAAAAAAAAgY/JLnrB7DJ7Do/S220/Avatar.jpg'/></author><thr:total>0</thr:total></entry></feed>
