<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Web Log di Raffaele Rialdi</title>
        <link>http://blogs.ugidotnet.org/raffaele/Default.aspx</link>
        <description>&amp;nbsp;</description>
        <language>it-IT</language>
        <copyright>Raffaele Rialdi</copyright>
        <managingEditor>malta@vevy.com</managingEditor>
        <generator>Subtext Version 1.9.5.176</generator>
        <image>
            <title>Web Log di Raffaele Rialdi</title>
            <url>http://blogs.ugidotnet.org/images/RSS2Image.gif</url>
            <link>http://blogs.ugidotnet.org/raffaele/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Architettura e performance</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/06/20/93106.aspx</link>
            <description>&lt;p&gt;Sono daccordo con il recente &lt;a href="http://blogs.ugidotnet.org/topics/archive/2008/06/19/se-non-egrave-semplice-crsquoegrave-qualcosa-che-non-vahellip.aspx"&gt;post di Mauro&lt;/a&gt; e quindi con l'affermazione di &lt;a href="http://www.dotnetside.org/blogs/tcaldarola/"&gt;Tommaso&lt;/a&gt;: "Se non è semplice c'è qualcosa che non va". Questa è stata la mia impressione in diversi lavori che ho visto, ma qui prepotentemente si insinua un altro problema: le performance.&lt;/p&gt;  &lt;p&gt;Si, abbiamo macchine da 4GHz, ma certe scelte costano care anche su macchine superveloci.&lt;/p&gt;  &lt;p&gt;Si, entro 5 anni arriveremo a 80 core, &lt;a href="http://news.cnet.com/2100-1006_3-6119618.html"&gt;dice Intel&lt;/a&gt; (poi quando parlavo dei 16 core mi davano del visionario), ma sfruttarli per bene non è affatto semplice e gli strumenti sono ancora pochi (tra l'altro questi saranno proprio gli argomenti di una delle mie sessioni ai &lt;a href="http://www.communitydays.it/events/communitydays2008milano.aspx"&gt;Community Days&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Ma ...&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ma recentemente ho toccato con mano che alcune scelte architetturali costano in performance e sono di tangibile fastidio all'utente che usa l'applicazione.&lt;/p&gt;  &lt;p&gt;Factory, Proxy, MVC, MVP, Adapters, ... sono fantastiche soluzioni by design ... se si chiamano pattern significa proprio che sono stati usati con successo da migliaia di developer e quindi su questo non si discute. Il problema è chi li usa &lt;img alt="smile_regular" src="http://spaces.live.com/rte/emoticons/smile_regular.gif" /&gt;.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;La prima considerazione è che il disegno dell'applicazione è e rimarrà un passo fondamentale per la creazione di una applicazione, e che quegli strumenti sono validissimi.     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;La seconda considerazione è che lo sviluppatore e l'architetto devono &lt;u&gt;dialogare&lt;/u&gt; per capire fin dalla stesura dell'architettura per capire quali possano essere i colli di bottiglia e non finire col piangere davanti ad un profiler.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;La terza considerazione è che le performance vanno &lt;u&gt;misurate&lt;/u&gt; perché è troppo facile dare la colpa al mancato uso di StringBuilder o all'architetto eccentrico, ma devo ribadire che se alla performance non ci si pensa fin dall'inizio, alla fine si fa prima a riscrivere, il che è quanto di peggio possa accadere.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;La quarta considerazione è che i problemi di performance dovuti all'architettura ci sono a prescindere dall'ambiente di sviluppo e possono accadere anche con la programmazione nativa in C++. Solo che chi programma in C++ non ha strumenti insiti nel linguaggio per componentizzare (i componenti ci sono se si usa COM, Corba, Framework, ...) e quindi tipicamente l'architettura è più spartana.     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Infine quello che ritengo sarà la soluzione ottimale e il miglior compromesso: la generazione di codice. Alcune scelte architetturali sono legate all'uso di tecnologie come Reflection, potenti ma anche arma a doppio taglio. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Concludendo, non sempre fare i "perfettini" con l'architettura paga, anzi tutt'altro.&lt;/p&gt;  &lt;p&gt;Quindi tornando al post di Mauro aggiungo che l'architettura non deve essere solo semplice ma anche un &lt;u&gt;&lt;strong&gt;compromesso&lt;/strong&gt;&lt;/u&gt; con le tecnologie e i linguaggi che si stanno utilizzando. Non credo alla pura architettura riusabile meno che mai in modo trasversale sul Framework, su Java, su COM, etc. L'architettura si deve 'sporcare', quando è necessario, perché il nostro è il regno della tecnocrazia.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Paragone con un algoritmo di calcolo: lo scrivo in C++ e lo traduco in C# (o viceversa).     &lt;br /&gt;Funziona? Si. È efficicente? No, nella gran maggioranza dei casi perché lo strumento ha delle differenze notevoli da cui non possiamo prescindere.&lt;/em&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/93106.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/06/20/93106.aspx</guid>
            <pubDate>Fri, 20 Jun 2008 07:43:21 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/93106.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/06/20/93106.aspx#feedback</comments>
            <slash:comments>20</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/93106.aspx</wfw:commentRss>
        </item>
        <item>
            <title>[OT] Il docente deve sempre essere preparato a tutto ...</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/06/18/93083.aspx</link>
            <description>&lt;p&gt;Chi fa il docente di corsi sa bene che possono capitare le cose più strane, ma questa ci ha fatto &lt;u&gt;ribaltare&lt;/u&gt; tutti dalle risate.&lt;/p&gt;  &lt;p&gt;Dite che fa parte del LAB?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/OTIldocentedevesempreesserepreparatoatu_9800/IMG_3199.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_3199" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/OTIldocentedevesempreesserepreparatoatu_9800/IMG_3199_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Ovviamente come prima cosa ho ruotato fisicamente il monitor, poi ho optato per una soluzione più high-tech &lt;img alt="smile_tongue" src="http://spaces.live.com/rte/emoticons/smile_tongue.gif" /&gt;&lt;/p&gt;  &lt;p&gt;Grazie alla simpaticissima Veruska per le risate &lt;img alt="smile_teeth" src="http://spaces.live.com/rte/emoticons/smile_teeth.gif" /&gt;&lt;/p&gt;  &lt;p&gt;BTW l'utility della scheda grafica Intel lascia di default gli shortcut di rotazione monitor attivi.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/93083.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/06/18/93083.aspx</guid>
            <pubDate>Wed, 18 Jun 2008 08:53:17 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/93083.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/06/18/93083.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/93083.aspx</wfw:commentRss>
        </item>
        <item>
            <title>E poi si dice che la sicurezza non &amp;egrave; divertente ...</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/06/13/93027.aspx</link>
            <description>&lt;p&gt;&lt;a title="http://blogs.technet.com/alead_msft/archive/2008/06/13/ciak-si-gira.aspx" href="http://blogs.technet.com/alead_msft/archive/2008/06/13/ciak-si-gira.aspx"&gt;http://blogs.technet.com/alead_msft/archive/2008/06/13/ciak-si-gira.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;ah ... quella seria è nelle video interviste, qui: &lt;a title="http://www.sicurezzainrete7x24.org/" href="http://www.sicurezzainrete7x24.org/"&gt;http://www.sicurezzainrete7x24.org/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/93027.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/06/13/93027.aspx</guid>
            <pubDate>Fri, 13 Jun 2008 16:15:31 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/93027.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/06/13/93027.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/93027.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Utenti finali e il sistema sicurezza: la settimana della sicurezza in rete</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/06/08/92966.aspx</link>
            <description>&lt;p&gt;Nella sicurezza informatica i due attori sotto i riflettori sono l'attacker e il defender. Il dato più evidente è che l'attacker è sempre costantemente in vantaggio perché può inventare sistemi e modalità di attacco che non sono ancora noti al defender.&lt;/p&gt;  &lt;p&gt;Il sistema sicurezza evolve in una sorta di spirale; man mano che un sistema informatico diventa più sicuro, gli attacchi mutano, evolvono per qualità e inventiva, e le contromisure per contrastarli sono dei veri contanti che gli utenti incassano come sicurezza di qualità ancora superiore. E naturalmente il ciclo continua all'infinito.&lt;/p&gt;  &lt;p&gt;Questa continua elevazione della sicurezza non raggiunge un livello soddisfacente a causa di un grosso e grave difetto: &lt;strong&gt;sto parlando dell'utente&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;L'utente è un &lt;strong&gt;fattore primario&lt;/strong&gt; nella sicurezza ed ha un peso importante tanto quanto le scelte tecnologiche e architetturali. Gli attacchi di &lt;a href="http://en.wikipedia.org/wiki/Social_engineering_(security)"&gt;social engineering&lt;/a&gt; lo dimostrano rendendo spesso vane le barriere tecnologiche più sofisticate.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Poco dopo l'invenzione dell'automobile, sulle strade si verificarono i primi tragici incidenti e si decise che era indispensabile l'introduzione di una patente prima di poter scorazzare per le strade armati di motore a scoppio. &lt;strong&gt;L'utente inesperto è dannoso per gli altri?&lt;/strong&gt; La risposta è si e la piaga dello spam si allarga proprio per questo motivo.&lt;/p&gt;    &lt;p&gt;Nel 1630 gli untori dell'epidemia di peste venivano linciati o, nella migliore delle ipotesi, processati.     &lt;br /&gt;Ogni utente che lascia esposto ad internet il PC non aggiornato, con servizi aperti, senza firewall, e apre gli attachment delle email facendosi impestare di virus è un untore di nuova generazione. Si perché al contrario di quanto si crede comunemente &lt;strong&gt;i virus si contrastano meglio con l'intelligenza e la conoscenza del PC&lt;/strong&gt; rispetto all'uso dello stupido, e talvolta persino inutile, antivirus.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Perciò quando vedo un'iniziativa come quella di &lt;a href="http://www.sicurezzainrete7x24.org/"&gt;www.SicurezzainRete7x24.org&lt;/a&gt; non posso che essere contento.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/Ilsistemasicurezza_14ED6/120x90_SicurezzaRete_051608_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="94" alt="120x90_SicurezzaRete_051608" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/Ilsistemasicurezza_14ED6/120x90_SicurezzaRete_051608_thumb.jpg" width="124" border="0" /&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Rendiamo l'utente &lt;u&gt;consapevole&lt;/u&gt; di come usa il suo PC e non riduciamo gli utenti a degli automi che affidano la sicurezza solo allo strumento che hanno davanti ai loro occhi.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;La settimana della sicurezza in rete è appena iniziata e l'iniziativa è rivolta agli utenti finali. Ovviamente non finirà il 14 Giugno ma questa settimana è una buona occasione per i professionisti del settore per promuovere l'iniziativa verso i propri familiari, amici e clienti.&lt;/p&gt;  &lt;p&gt;Tra le video interviste ci sono quelle di &lt;a href="http://blogs.dotnethell.it/vincent/"&gt;Vincenzo di Russo&lt;/a&gt;, il guru di Internet Explorer, ed il sottoscritto.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Infine un paradosso: è curioso che i cosiddetti meno esperti, proprio perché fanno numero, sono la principale causa scatenante di quell'evoluzione tecnologica (hardware più potente e meno costoso, banda internet più ampia, applicativi più sofisticati, games più realistici, etc.) che al tempo stesso temono e vorrebbero che fosse meno rapida. Nel contempo i "geek" vorrebbero godersi più novità tecnologiche possibili ma senza quegli utenti che invece l'hanno resa possibile.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/92966.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/06/08/92966.aspx</guid>
            <pubDate>Sun, 08 Jun 2008 00:03:23 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/92966.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/06/08/92966.aspx#feedback</comments>
            <slash:comments>35</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/92966.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Newsreader Windows Mail addio</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/05/26/92820.aspx</link>
            <description>&lt;p&gt;Outlook Express non mi dispiaceva affatto. Tutto sommato ho postato per anni migliaia di messaggi su diverse gerarchie senza avere troppi problemi.&lt;/p&gt;  &lt;p&gt;Da quando ho &lt;a href="http://blogs.ugidotnet.org/raffaele/archive/2008/03/14/91702.aspx"&gt;aggiornato il mio PC a Windows 2008&lt;/a&gt; e più recentemente anche sul nuovo portatile (ebbene si, ho ceduto all'offerta Dell, un XPS 1530) mi sono trovato forzatamente ad usare Windows Mail su cui funziona ancora il caro vecchio &lt;a href="http://home.in.tum.de/~jain/software/oe-quotefix/"&gt;OE-Quotefix&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Anche se all'apparenza sembra identico al vecchio Outlook Express, sono riusciti a fare il disastro. Quando apro un gruppo seleziona automaticamente il primo messaggio non letto, marcandolo come letto. All'apertura di un gruppo "corposo" flickera la lista dei messaggi per diversi secondi. Nessuna nuova feature per gestire decentemente i messaggi.&lt;/p&gt;  &lt;p&gt;Risultato: bruciato Windows Mail e migrazione immediata e definitiva al già testato &lt;a href="http://www.mesnews.net/gb/"&gt;MesNews&lt;/a&gt;. Tutti i problemi risolti e opzioni comodissime a bizzeffe (sync più veloce, quoting, fonts, opzioni dei server, ...). Sono bastati solo pochi post per rendermi conto di essere molto più produttivo e in grado di postare di più in meno tempo.&lt;/p&gt;  &lt;p&gt;L'impressione personale è che come accadde per IE6 (cioè messo in cantina per troppo tempo dormendo sugli allori) anche per Outlook Express sia accaduto lo stesso, con la grossa differenza che a MS non stanno simpatici i newsgroup (vedi tempi di latenza sul post e tante altre cose che vado ripetendo al limite dello scontro fisico ad ogni incontro con i team di MSDN Forums).&lt;/p&gt;  &lt;p&gt;Peccato veramente perché NNTP è un pilastro di Internet. Vedremo che succede, ma se non ci pensa MS stiamo sicuri che ci penseranno altri.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/92820.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/05/26/92820.aspx</guid>
            <pubDate>Mon, 26 May 2008 21:10:04 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/92820.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/05/26/92820.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/92820.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Sitefinity &amp;egrave; free per gli User Group associati ad INETA</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/05/26/92816.aspx</link>
            <description>&lt;p&gt;Stavo cercando cosa offre di buono il mercato dei CMS su piattaforma Asp.net e &lt;a href="http://blog.knodev.com/"&gt;Davide&lt;/a&gt; mi ha indirizzato su Sitefinity, il CMS della Telerik&lt;/p&gt;  &lt;p&gt;La piattaforma mi è piaciuta perché lascia molte porte aperte allo sviluppatore che voglia estendere la struttura base e mi è caduto subito l'occhio all'offerta per la versione full (chiamata "standard") per gli User Group associati ad INETA che include tra l'altro anche l'hosting (cosa non proprio da poco):&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.sitefinity.com/product/features/free-offer.aspx" href="http://www.sitefinity.com/product/features/free-offer.aspx"&gt;http://www.sitefinity.com/product/features/free-offer.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Non c'è che dire, un ottimo startup per nuovi User Group!&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/92816.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/05/26/92816.aspx</guid>
            <pubDate>Mon, 26 May 2008 18:01:56 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/92816.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/05/26/92816.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/92816.aspx</wfw:commentRss>
        </item>
        <item>
            <title>E la voragine di sicurezza questa volta tocca a Debian</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/05/17/92714.aspx</link>
            <description>&lt;p&gt;Stando alla &lt;a href="http://www.debian.org/security/2008/dsa-1571"&gt;knowledge base di Debian&lt;/a&gt; un programmatore ha avuto la bella idea di togliere due righe di codice che hanno reso predicibile la generazione di numeri casuali, che sono la base per gli algoritmi crittografici. (Crediti a Luciano Bello che ha trovato il bug e Obiwan per avermelo segnalato).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0080ff"&gt;Cosa ha provocato e provocherà questo bug?&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Tutti i certificati generati con OpenSSL a partire dalla versione 0.9.8c-1 (del 17 Settembre &lt;strong&gt;&lt;u&gt;2006&lt;/u&gt;&lt;/strong&gt; !!!) su un OS basato su Debian sono craccabili e &lt;strong&gt;&lt;u&gt;DEVONO&lt;/u&gt;&lt;/strong&gt; essere rigenerati. &lt;/li&gt;    &lt;li&gt;Tutte le chiavi di SSH, OpenVPN, DNSSec, qualsiasi certificato X.509 e chiavi di sessione per connessioni SSL/TLS sono compromesse. &lt;/li&gt;    &lt;li&gt;Tutti i certificati Verisign &lt;a href="https://knowledge.verisign.com/support/ssl-certificates-support/index?page=content&amp;amp;id=AD91&amp;amp;actp=LIST"&gt;come da questo bollettino&lt;/a&gt;, devono essere sostituiti in quanto compromessi &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Questo significa che la patch di Debian NON risolve totalmente il problema in quanto &lt;strong&gt;tutte le chiavi ed i certificati che sono stati generati con la versione bacata sono ormai compromessi&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0080ff"&gt;La causa del bug&lt;/font&gt; &lt;/strong&gt;probabilmente sta nel fatto che qualcuno ha modificato del codice senza poi siano stati fatti la review di sicurezza su quel codice, cosa che avrebbe in tutta probabilità portato alla luce il problema.    &lt;br /&gt;Si, sto dicendo che applicando SDL nel modo corretto questo bug non sarebbe passato.&lt;/p&gt;  &lt;p align="center"&gt;* * *&lt;/p&gt;  &lt;p&gt;Ok, ma &lt;font color="#0080ff"&gt;&lt;strong&gt;quanto è sfruttabile il bug&lt;/strong&gt;&lt;/font&gt;? Semplicissimo, basta usare &lt;a href="http://metasploit.com/users/hdm/tools/debian-openssl/"&gt;questi tool&lt;/a&gt; e il crack è pronto. Inutile nasconderli, security through obscurity NON funziona, se ancora ci fosse bisogno di dirlo.&lt;/p&gt;  &lt;p&gt;Questo feroce bug colpisce non solo Debian e le distro derivate come Ubuntu, ma tutti quei sistemi embedded che sono basati su Debian. Pensiamo a telecamere IP, centralini, router, access point, etc. Si, perché Debian è una delle distro più usate in apparati embedded.&lt;/p&gt;  &lt;p&gt;La vera domanda perciò è: &lt;strong&gt;&lt;font color="#0080ff"&gt;quanto tempo occorrerà adesso per aggiornare tutti questi sistemi&lt;/font&gt;&lt;/strong&gt;? Probabilmente infinito perché tipicamente i sistemi embedded non vengono &lt;strong&gt;&lt;u&gt;MAI&lt;/u&gt;&lt;/strong&gt; aggiornati dopo la loro produzione. Questo deve far riflettere e cominciare a far cambiare la mentalità nel software per cui un sistema non aggiornato è MORTO.&lt;/p&gt;  &lt;p&gt;Diamo infine un caloroso benvenuto a Debian nel mondo reale, fatto di persone umane che sbagliano a prescindere dalla bandiera dell'OS a cui stanno lavorando. &lt;strong&gt;&lt;u&gt;La sicurezza è un problema di tutti, nessuno escluso&lt;/u&gt;&lt;/strong&gt;. Già perché personalmente non penso che sia affatto scandaloso trovare un bug di sicurezza, il vero scandalo è che molti pensavano che questo non accada sulle distro Linux e meno che mai in Debian.&lt;/p&gt;  &lt;p&gt;Come nota finale non posso che definire sconcertante uno dei commenti iniziali a questo post di &lt;a href="http://blogs.msdn.com/larryosterman/archive/2008/05/13/more-proof-that-crypto-should-be-left-to-the-experts.aspx"&gt;Larry Osterman&lt;/a&gt; che respinge la tesi che sia un bug di Debian. Quando si dice talebano ...&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/92714.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/05/17/92714.aspx</guid>
            <pubDate>Sat, 17 May 2008 11:00:02 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/92714.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/05/17/92714.aspx#feedback</comments>
            <slash:comments>25</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/92714.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Live Messenger, updates e sicurezza</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/05/14/92664.aspx</link>
            <description>&lt;p&gt;Per qualche strano motivo Microsoft non concepisce il fatto che qualcuno come il sottoscritto preferisca lavorare su versioni server del sistema operativo.&lt;/p&gt;  &lt;p&gt;In passato ho usato Windows 2000 server, poi 2003 e attualmente 2008 che ho sia sul portatile che sul desktop e i vantaggi per uno sviluppatore sono tanti: dhcp e dns per le macchine virtuali, IIS versione server, terminal services per sviluppare in roaming per l'ufficio o da una vpn, etc.. Usando Win2008 come workstation ho abilitato i temi di Vista, aero, e tutte le altre comodità.&lt;/p&gt;  &lt;p&gt;Purtroppo però non è abilitabile il bluetooth sul portatile ma mni basta che il power management funzioni a meraviglia.&lt;/p&gt;  &lt;p&gt;Come software tutto ok tranne la serie "Live" dei software che proprio di installarsi su Windows Server non ne vuole sapere. Niente Live Messenger e qualche trick per Live Writer.&lt;/p&gt;  &lt;p&gt;Questo mi solleva un montagna di dubbi a livello di sicurezza: Il mio Windows Live Messenger mi segnala di essere obsoleto ma il setup di Live Messenger non può essere eseguito.   &lt;br /&gt;Che devo fare? Disinstallare MSN perché è a rischio? Sappiamo bene che MSN è una applicazione fortemente a rischio ad attacchi e mantenere installata una versioine obsoleta è senza dubbio un chiaro ed evidente rischio di sicurezza.&lt;/p&gt;  &lt;p&gt;Io credo fermamente che Microsoft dovrebbe rivedere il "profilo" degli utenti tipici di Windows prevedendo che un utente avanzato possa prediligere Windows 2008 a Vista senza per questo negargli nessun tipo di funzionalità, e perché no, anche i games.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/92664.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/05/14/92664.aspx</guid>
            <pubDate>Wed, 14 May 2008 09:09:10 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/92664.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/05/14/92664.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/92664.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Un riassunto del MVP Summit 2008</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/04/22/92330.aspx</link>
            <description>&lt;p&gt;Ancora una volta un Summit magnifico. A prescindere dall'aspetto tecnologico, un po' tutti abbiamo apprezzato la qualità della vita (in termine di vita quotidiana, cortesia e vivibilità) di Seattle e dintorni. Questo è qualcosa che non si può descrivere con parole, ma va vissuto in prima persona ed è l'aspetto che lascia dei ricordi molto piacevoli.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2565_2.jpg"&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2766_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2766" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2766_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2565" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2565_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2591_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2591" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2591_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Ma l'aspetto tecnologico non è stato da meno. Ho passato il mio tempo al Campus a parlare di tre argomenti principali:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Developer Security. Novità dal gruppo SDL, evoluzione nel threat modeling, futuro. CLR e Silverlight security.&lt;/li&gt;    &lt;li&gt;VC++ vNext. Grosse novità in vista, enormi quantità di feedback a 360 gradi su tutto il prodotto. Altrettanto grande considerazione e apprezzamento da parte del team sul feedback ricevuto. Stay tuned ...&lt;/li&gt;    &lt;li&gt;MSDN Forums vs NNTP. Ancora mezz'ora prima di andare in areoporto ero in un meeting con il team che si occupa di questi temi. I punti su cui ho ripetutamente insistito (quasi in modo molesto :) ) sono stati:     &lt;br /&gt;a) NNTP è "solo"un protocollo al pari diHTTP e che NNTP non preclude di veicolare un rich content      &lt;br /&gt;b) NNTP può essere esteso al pari di NNTP      &lt;br /&gt;c) le caratteristiche che oggi offre NNTP sono ottimali per chi partecipa in modo &lt;strong&gt;&lt;u&gt;attivo&lt;/u&gt;&lt;/strong&gt; alle discussioni tecniche      &lt;br /&gt;d) &lt;a href="http://www.ugidotnet.org"&gt;UGIdotNET&lt;/a&gt; e &lt;a href="http://www.aspitalia.com"&gt;Aspitalia&lt;/a&gt; sono perfetti case studies di erogazione dello stesso contenuto con protocolli differenti.      &lt;br /&gt;Posso solo garantire che questi messaggi sono arrivati a chi di dovere. Stay tuned ...&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Visual Studio box, Visual C++ Art e Ale Contenti nel suo ufficio a sorvegliare le Safe CRT :-). Ale you promised ... open your own blog! ;-)&lt;/p&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2742_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="244" alt="IMG_2742" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2742_thumb.jpg" width="184" border="0" /&gt;&lt;/a&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2783_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2783" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2783_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2784_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2784" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2784_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;   &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Ecco i Developer Security MVP deliziati da una fantastica sessione di &lt;a href="http://blogs.msdn.com/shawnfa/"&gt;Shawn Farkas&lt;/a&gt; (terzo da sinistra) sulla sicurezza in Silverlight.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2769_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2769" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2769_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;In piedi Herb Sutter partecipa alla discussione su Visual C++ e al feedback degli MVP.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2778_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2778" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/UnriassuntodelMVPSummit2008_1388F/IMG_2778_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/92330.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/04/22/92330.aspx</guid>
            <pubDate>Tue, 22 Apr 2008 20:19:47 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/92330.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/04/22/92330.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/92330.aspx</wfw:commentRss>
        </item>
        <item>
            <title>MVP Global Summit 2008 partito</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/04/15/92207.aspx</link>
            <description>&lt;p&gt;Dopo il primo giorno di splendido sole (26 gradi!) a base di amici e barbeque in quel di Kirkland (grazie Max!!!) ...&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/MVPGlobalSummit2008partito_14F8A/IMG_2575.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="IMG_2575" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/MVPGlobalSummit2008partito_14F8A/IMG_2575_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/MVPGlobalSummit2008partito_14F8A/IMG_2585.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="IMG_2585" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/MVPGlobalSummit2008partito_14F8A/IMG_2585_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/MVPGlobalSummit2008partito_14F8A/IMG_2588.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="IMG_2588" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/MVPGlobalSummit2008partito_14F8A/IMG_2588_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;... oggi è partito il Summit 2008 che vede il cambio del vertice MVP dal grandissimo &lt;a href="http://communitygrouptherapy.com/"&gt;Sean O'Driscoll&lt;/a&gt; a Toby Richards&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/MVPGlobalSummit2008partito_14F8A/IMG_2711.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="IMG_2711" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/MVPGlobalSummit2008partito_14F8A/IMG_2711_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/MVPGlobalSummit2008partito_14F8A/IMG_2718.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="IMG_2718" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/MVPGlobalSummit2008partito_14F8A/IMG_2718_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/MVPGlobalSummit2008partito_14F8A/IMG_2734.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="IMG_2734" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/MVPGlobalSummit2008partito_14F8A/IMG_2734_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Sean si dedicherà d'ora in poi ad un mestiere che probabilmente in Italia verrà compreso tra parecchi anni, consulenza sul social media e communities. Un argomento che non tocca solo le community che orbitano nell'industria IT ma di qualsiasi azienda che abbia a che fare con gli end-user. Il mondo del web sta rivoluzionando il rapporto tra gli utenti (vedi facebook.com) e tra gli utenti e le aziende e lui certamente in questi anni ha potuto sviscerare come pochi altri questo argomento.&lt;/p&gt;  &lt;p&gt;La giornata è servita soprattutto a incontrare di persona le tante persone che sentiamo durante l'anno ma che si ha ovviamente poche occasioni per incontrarle se non in conferenze o qui a Seattle.&lt;/p&gt;  &lt;p&gt;Io ho dedicato il resto della giornata a difendere a spada tratta le community per far si che i protocolli NNTP (ms newgroups) e HTTP (msdn forums) attingano ad uno storage comune separando invece le UI (browser e newsreader, ma non solo) per soddisfare le esigenze di chi fa domande, di chi da risposte e delle comunity che vogliano aggregare (mashup) questi contenuti. I "miei" case studies sono stati UGIdotNET e Aspitalia.... che gli MVP portino consiglio &lt;img alt="smile_wink" src="http://spaces.live.com/rte/emoticons/smile_wink.gif" /&gt;.&lt;/p&gt;  &lt;p&gt;Domani giornata piena... io sarò tra i dev-security e il team di VC++.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/92207.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/04/15/92207.aspx</guid>
            <pubDate>Tue, 15 Apr 2008 07:04:03 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/92207.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/04/15/92207.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/92207.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Arrivo a Seattle</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/04/14/92197.aspx</link>
            <description>&lt;p&gt;Il viaggio in aereo (a destra la groenlandia):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2531.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2531" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2531_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2512.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2512" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2512_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2494.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2494" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2494_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2495.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2495" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2495_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2493.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2493" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2493_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2527.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2527" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2527_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2497.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2497" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2497_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2499.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2499" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2499_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2498.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2498" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2498_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2501.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2501" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2501_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Il tradizionale viaggio in Limo a downtown ...&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2536.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2536" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2536_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;  &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2534.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2534" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2534_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;check-in in albergo e subito a Cheescake factory insieme al grande Ale Contenti (Lead PM librerie di VC++)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2541.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2541" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2541_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2545.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2545" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2545_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Questi si che sono hamburger:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2542.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2542" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2542_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2543.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2543" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2543_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2544.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMG_2544" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ArrivoaSeattle_7CA5/IMG_2544_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/92197.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/04/14/92197.aspx</guid>
            <pubDate>Sun, 13 Apr 2008 23:58:21 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/92197.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/04/14/92197.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/92197.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Scandalosa Linate, vergogna!</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/04/12/92194.aspx</link>
            <description>&lt;p&gt;Non sono bastate le &lt;a href="http://it.wikipedia.org/wiki/Disastro_aereo_di_Linate"&gt;118 vittime dell'8 Ottobre 2001&lt;/a&gt;. Negli ultimi due giorno il radar di terra non funzionava. Chissà da quanto tempo non funzionava. I viaggiatori l'anno scoperto con il brutto tempo perché non era possibile l'atterraggio a vista.&lt;/p&gt;  &lt;p&gt;Il risultato della nostra personale esperienza è stato:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;passeggeri dirottati su Malpensa con i loro propri mezzi. Noi abbiamo speso in quattro 170 Euro di taxi che ha violato ogni legge della fisica per portarci in tempo a Malpensa&lt;/li&gt;    &lt;li&gt;prenotazione e check-in online (con tanto di posti assegnati) tutti annullati&lt;/li&gt;    &lt;li&gt;nuovo check-in a Malpensa con i minuti contati e riassegnazione casuale dei posti&lt;/li&gt;    &lt;li&gt;alcuni di noi dirottati su Milano - Londra - Los Angeles - Seattle che non è ancora giunto a destinazione mentre sto scrivendo&lt;/li&gt;    &lt;li&gt;altri tra quelli arrivati ieri sera con il bagaglio perso&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Un pensiero va ai 118 di quel tragico volo del 2001 e ringrazio il cielo (non certo la SEA) di essere arrivato in un modo o nell'altro qui a Seattle.&lt;/p&gt;  &lt;p&gt;L'arrabbiatura è all'ennesima potenza perché come professionisti informatici spendiamo tantissimo tempo a progettare e realizzare sistemi che prevedano ridondanza, gestione delle eccezioni, etc.&lt;/p&gt;  &lt;p&gt;Si, ci sono tantissime piccole aziendine che sono molto più efficienti di un vitale sistema di sicurezza areoportuale e questo è un vero inaccettabile schifo.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Non è accettabile che non ci sia una ridondanza per un radar di terra&lt;/li&gt;    &lt;li&gt;Non è accettabile che non ci sia un tecnico in grado di metterci mano in tempo reale, giorno, notte, domenica o natale che sia.&lt;/li&gt;    &lt;li&gt;Non è accettabile che in caso di imprevisto NON esista una benché minima procedura per risolvere diversamente la soluzione&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Queste cose non sono la luna, sono la normalità per l'industria IT ed elettronica. Vergogna SEA, vergogna Linate.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/92194.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/04/12/92194.aspx</guid>
            <pubDate>Sat, 12 Apr 2008 15:36:21 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/92194.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/04/12/92194.aspx#feedback</comments>
            <slash:comments>11</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/92194.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Ready for Redmond</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/04/09/92140.aspx</link>
            <description>&lt;p&gt;Quest'anno si che ho le idee chiare per le elezioni politiche. Anche il test me lo conferma &lt;img alt="smile_regular" src="http://spaces.live.com/rte/emoticons/smile_regular.gif" /&gt;.&lt;/p&gt;  &lt;p&gt;Quindi ho taroccato il test per renderlo più geekkoso ed ecco comparire la mia reale preferenza:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ReadyforRedmond_E668/301c7ce0_ter_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="168" alt="301c7ce0_ter" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ReadyforRedmond_E668/301c7ce0_ter_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;  &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ReadyforRedmond_E668/301c7ce0_bis_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="168" alt="301c7ce0_bis" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/ReadyforRedmond_E668/301c7ce0_bis_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;p&gt;Nel bagaglio decine tra caricatori cavetti e adattatori vari. Venerdi mattina la carovana di MVP viaggerà per il fantastico &lt;a href="http://www.mvpsummit2008.com/"&gt;MVP Summit 2008&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Limitatamente a quanto è permesso dall'NDA, cercherò di bloggare quanto più è possibile.&lt;/p&gt;  &lt;p&gt;Ritorno previsto il 18 Aprile. E da Seattle a Segrattle, il 21 e 22 Aprile sarò in Microsoft a Milano a tenere il primo corso su Office Open XML.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/92140.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/04/09/92140.aspx</guid>
            <pubDate>Wed, 09 Apr 2008 14:27:18 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/92140.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/04/09/92140.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/92140.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Office OpenXML &amp;egrave; stato ratificato standard ISO/IEC DIS 29500</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/04/02/92000.aspx</link>
            <description>&lt;p&gt;Oggi si è conclusa la lunga battaglia combattuta in vari paesi mondiali tra i sostenitori e i detrattori delle specifiche Office OpenXML che oggi sono divenute finalmente standard ISO DIS 29500:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.reuters.com/article/technologyNews/idUSL0179716920080401" href="http://www.reuters.com/article/technologyNews/idUSL0179716920080401"&gt;http://www.reuters.com/article/technologyNews/idUSL0179716920080401&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/presspass/press/2008/apr08/04-01OpenXMLVotePR.mspx" href="http://www.microsoft.com/presspass/press/2008/apr08/04-01OpenXMLVotePR.mspx"&gt;http://www.microsoft.com/presspass/press/2008/apr08/04-01OpenXMLVotePR.mspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In sede ISO (mondiale) i commenti propositivi ci sono stati, e sono stati tanti. Nonostante questo mi è spiaciuto vedere spesso una battaglia troppo politica e troppo poco tecnica, con abbondanza di "no" aprioristici invece di controproposte concrete che avrebbero solo potuto migliorare il risultato finale.&lt;/p&gt;  &lt;p&gt;Perché credo che questo standard sia un vantaggio per tutti?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;L'approvazione di uno standard non afferma alcuna prevalenza sul mercato ma toglie al produttore la libertà di giocare con le specifiche. La presenza di due standard (ODF e OOXML) toglie qualsiasi dubbio sul fatto che possano avvantaggiarsi solo per il fatto di essere standard ISO.     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Microsoft ha un indiscutibile vantaggio sul mercato con Microsoft Office. Da oggi abbiamo la garanzia che il formato non potrà cambiare in modo significativo e siamo, sia come sviluppatori che come utenti finali, garantiti dallo standard ECMA e ISO che gli investimenti su quel formato siano a lungo termine.     &lt;br /&gt;Se viceversa Microsoft avesse deciso di tenere un formato proprietario, proprio perché possiede la fetta di mercato più grossa, avrebbe potuto fare il bello e il cattivo tempo, minando seriamente gli investimenti di software house e utenti finali.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;La durata nel tempo delle informazioni. La RAI periodicamente travasa i filmati di tutto il suo storico da un media all'altro per mantenere "viva" l'informazione che, anche quando è digitale, è molto lontana dall'essere immortale. Io stesso ho ancora vecchi file in Word per DOS, Wordstar, Paintbrush, Lotus 123, Framework (Ashton Tate), etc. che sono "morti".     &lt;br /&gt;Un formato digitale deve essere facilmente fruibile in modo indipendente dal sistema operativo e dalle tecnologie usate per sviluppare le applicazioni. Il formato zip e XML garantiscono questa sopravvivenza alle tecnologie.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;La retrocompatibilità. È indiscutibile che la retrocompatibilità giochi per gli utenti un ruolo fondamentale. Non potremmo mai chiedere, come sviluppatori, di migrare un qualsiasi formato ad uno nuovo che non supporti la totalità delle caratteristiche del formato precedente. Questo è accaduto nel passaggio da Lotus 123 a Excel e vale tutt'ora per una moltitudine di formati come ad esempio TGA.     &lt;br /&gt;Questo è stato certamente il punto fondamentale per cui non ho aderito all'idea di poter adottare solo ODF che unico standard. Siamo pieni di multi-standard su tantissime tecnologie, lo scopo primario di uno standard NON è quello di essere unico, ma di garantire la condivisione delle specifiche tra gli implementatori.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Le specifiche OOXML sono aperte e libere (al momento già reperibili sul sito ECMA). Tanto per fare un paragone illustre, JPG è una specifica &lt;strong&gt;chiusa&lt;/strong&gt; e disponibile solo a pagamento.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Alla faccia delle specifiche troppo grosse, ad &lt;strong&gt;oggi&lt;/strong&gt; sono in grado di produrre documenti OOXML di wordprocessing e spreadsheet che ho testato con Word, Excel e OpenOffice. Si perché il plugin free di Microsoft per le precedenti versioni di Office funziona anche aprendo il formato OOXML da OpenOffice. Grazie al "si" di oggi, so che il tempo investito a scrivere questo codice è stato ben riposto.&lt;/p&gt;  &lt;p&gt;E dopo cosa viene? Spero che da oggi si inizi a parlare solo della parte tecnica e migliorare lo standard per le prossime versioni. Gli standard non sono statici, vivono e si evolvono e la giornata di oggi è solo l'inizio.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/92000.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/04/02/92000.aspx</guid>
            <pubDate>Tue, 01 Apr 2008 22:13:16 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/92000.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/04/02/92000.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/92000.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Orologi radiocontrollati? No, grazie</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/03/31/91963.aspx</link>
            <description>&lt;p&gt;L'orologio al quarzo ha rivoluzionato una decade e l'introduzione degli &lt;a href="http://en.wikipedia.org/wiki/Radio_clock"&gt;orologi radiocontrollati&lt;/a&gt; prometterebbe una nuova rivoluzione....&lt;/p&gt;  &lt;p&gt;Mi oppongo! Il caro vecchio orologio con ora "relativa" cioè senza sincronizzazione automatica è una garanzia senza rivali.&lt;/p&gt;  &lt;p&gt;La prima possibilità (che mi è successa veramente qualche anno fa) è che il segnale venga capito "male" dall'orologio che cambia l'ora in modo assurdo, magari di 12 ore più indietro. Dopo questa esperienza ho capito che mai e poi mai avrei dovuto usare una sveglia radiocontrollata. Il vecchio orologio al massimo sballa di qualche minuto ma non fa alcun danno.&lt;/p&gt;  &lt;p&gt;La seconda mi è venuta in mente oggi e non dubito che qualcuno ci abbia già pensato.... un bel attacco di hacking sugli orologi. Costruisco un trasmettitore radio e mando un segnale di sincronia radio, sballando totalmente gli orologi a portata di antenna. Vi immaginate il disastro di un attacco di questo genere? Magari eseguito durante la notte.&lt;/p&gt;  &lt;p&gt;Perciò va bene avere un orologio per sincronizzare gli altri &lt;strong&gt;a mano&lt;/strong&gt;, ma non ci affiderei nessun servizio essenziale, a partire dalla sveglia di casa.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/91963.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/03/31/91963.aspx</guid>
            <pubDate>Mon, 31 Mar 2008 12:39:38 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/91963.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/03/31/91963.aspx#feedback</comments>
            <slash:comments>12</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/91963.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Scheda grafica o fornetto da cucina?</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/03/27/91902.aspx</link>
            <description>&lt;p&gt;A causa di un driver sballato (che novità, eh ...) che cerca di pilotare il monitor ad una risoluzione diversa da quella del pannello di controllo, ho deciso il cambio di scheda grafica.   &lt;br /&gt;Comincio a sospettare che ATI e nVidia facciamo marketing producendo cattivi driver, ma lasciamo perdere.&lt;/p&gt;  &lt;p&gt;Non volendo rumorose ventole, ecco il mostro che mi sono trovato davanti all'apertura della scatola (notare il cavo supplementare di alimentazione). Lì per lì ho pensato che la marca fosse Whirlpool &lt;img alt="smile_tongue" src="http://spaces.live.com/rte/emoticons/smile_tongue.gif" /&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/Schedagraficaofornettodacucina_A21F/IMAGE_00135_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="IMAGE_00135" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/Schedagraficaofornettodacucina_A21F/IMAGE_00135_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;La tecnologia va avanti e i signori Joule e Maxwell ci guardano dall'alto, ridacchiando...&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/91902.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/03/27/91902.aspx</guid>
            <pubDate>Thu, 27 Mar 2008 10:35:53 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/91902.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/03/27/91902.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/91902.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Pirati sgrammaticati</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/03/27/91900.aspx</link>
            <description>&lt;p&gt;Chiamarli pirati è fargli un complimento e la triste realtà non sono tanto loro che ci provano, ma quelli che ci cascano.&lt;/p&gt;  &lt;p&gt;In questo attacco, fresco fresco di questa notte non c'è nulla di speciale, è una delle solite email che arrivano regolarmente.&lt;/p&gt;  &lt;p&gt;Punto A: Email sgrammaticata ... dovrebbe almeno insospettire&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/Piratisgrammaticati_8B7A/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="59" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/Piratisgrammaticati_8B7A/image_thumb_2.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Punto B: Hyperlink palesemente errato&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/Piratisgrammaticati_8B7A/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="112" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/Piratisgrammaticati_8B7A/image_thumb_1.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Punto C: Il vero sito usa https e l'utente può vedere il lucchetto&lt;/p&gt;  &lt;p&gt;Punto D: L'indirizzo del sito clonato è palesemente errato&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/Piratisgrammaticati_8B7A/image_10.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="146" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/Piratisgrammaticati_8B7A/image_thumb_4.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Veniamo però ai punto dove la banca avrebbe potuto fare meglio:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Il nome del sito è totalmente anti-intuitivo. Se fosse stato il vero nome della banca e con un URL semplice (io lo chiamo ergonomico) l'utente avrebbe meno dubbi a scegliere quello giusto.     &lt;br /&gt;Da notare che spesso in questi attacchi vengono usati URL molto simili a quelli orginali come &lt;a href="http://www.mia-banca.it"&gt;www.mia-banca.it&lt;/a&gt; oppure &lt;a href="http://www.miabanca.me.com"&gt;www.miabanca.me.com&lt;/a&gt;, etc.      &lt;br /&gt;Questo è il motivo per cui è importante il punto 2.&lt;/li&gt;    &lt;li&gt;Il vero sito purtroppo NON fa uso di certificati Extended Validation che avrebbero trasformato la barra di Internet Explorer con un background verde e rendendo molto più evidente l'affidabilità del sito.     &lt;br /&gt;Questi certificati vengono rilasciati solo dopo verifica dell'esistenza fisica dell'azienda richiedente e costano molto più cari.&lt;/li&gt;    &lt;li&gt;Il sito non fa uso di &lt;a href="http://en.wikipedia.org/wiki/Rolling_code"&gt;rolling-codes&lt;/a&gt; che vengono generati sempre diversi per ogni accesso e non riutilizzabili, rendendo così inutile il furto delle password.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Non sono stato a guardare i sorgenti della pagina per eventuali altre cose.&lt;/p&gt;  &lt;p&gt;A coloro che pensano che gli utenti non possono essere anche "meccanici" del proprio veicolo rispondo che a mio avviso l'utente dovrebbe &lt;strong&gt;&lt;u&gt;almeno&lt;/u&gt;&lt;/strong&gt; prendere una patente prima di avventurarsi per la strada.    &lt;br /&gt;La truffa internet è più facile da prevenire rispetto al furto del numero della carta di credito in qualsiasi negozio, la differenza come al solito la fa l'utente e non il mezzo.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/91900.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/03/27/91900.aspx</guid>
            <pubDate>Thu, 27 Mar 2008 08:59:17 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/91900.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/03/27/91900.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/91900.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Reflection e le propriet&amp;agrave; &amp;quot;specchiate&amp;quot;</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/03/23/91837.aspx</link>
            <description>&lt;p&gt;Ho finalmente concluso la riscrittura completa di una generica implementazione di IXmlSerializable.&lt;/p&gt;  &lt;p&gt;Ovviamente per essere generica usa reflection e non ho fatto l'ottimizzazione dell'implementazione di default, cioè la generazione al volo con CodeDom del codice per serializzare/deserializzare, in quanto per i progetti in cui mi serve la performance di questo codice non è, al momento, critica. In più ci sono già voluti alcuni giorni per considerare tutti i casi imposti dagli attributi XmlElement, XmlChoice, XmlArray, etc. etc.&lt;/p&gt;  &lt;p&gt;Perché rifarla da zero? Perché abbiamo bisogno di due cose:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Avere un evento nella entity prima e dopo la serializzazione (cosa non banale quando la entity è in mezzo ad un mare di oggetti dentro un domain model).&lt;/li&gt;    &lt;li&gt;Poter modificare liberamente il risultato della serializzazione senza dover riscrivere ad-hoc il codice per ogni singola entity (lavoro massacrante).&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Purtroppo riscrivere un XmlWriter non aiuta in modo granulare e così via alla riscrittura. Adesso ogni entity riceve, se vuole, un evento con un XDocument (superbo modo di gestire XML) che può modificare come più gli piace dopo la serializzazione e prima della deserializzazione.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Durante le varie manipolazioni con Reflection ho incontrato una &lt;strong&gt;piccola stranezza&lt;/strong&gt;. Quando chiamo GetProperties l'array delle proprietà viene restituito in modo comodo a chi l'ha implementato, ma anche in modo "illogico".    &lt;br /&gt;La lista infatti è in ordine di dichiarazione della classe ma nella gerarchia sono elencate le proprietà a partire dalla classe in questione a scendere verso quella base.&lt;/p&gt;  &lt;p&gt;Il serializzatore XML di default invece (a meno di non specificare un Order preciso) serializza dalla base &lt;em&gt;risalendo la gerarchia&lt;/em&gt;, cosa che appare logica visto che una classe derivata "specializza" e quindi di fatto aggiunge delle proprietà alle classi di base.&lt;/p&gt;  &lt;p&gt;Da qui il listato che segue, probabilmente ancora ottimizzabile ma perfetto per il mio scopo. Ovviamente fare il reverse delle proprietà non andrebbe bene perché il loro ordine è corretto per ogni livello della gerarchia di derivazione.&lt;/p&gt;  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// Same as Type.GetProperties, but returning properties in the correct order&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// The problem is that Type.GetProperties returns derived properties first,&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// while the XML Serializer want the base properties first.&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;param name="t"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; PropertyInfo[] GetProperties(Type t)&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;     &lt;span style="color: #008000"&gt;//PropertyInfo[] properties = t.GetProperties(&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;     &lt;span style="color: #008000"&gt;//    BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.Public);&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;     List&amp;lt;PropertyInfo&amp;gt; props = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;PropertyInfo&amp;gt;();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;     List&amp;lt;Type&amp;gt; types = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;Type&amp;gt;();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// Take the list of all base types&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;do&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;         types.Add(t);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;         t = t.BaseType;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;while&lt;/span&gt;(t != &lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;));&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// invert the type list.&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// After this the list start from the base types to the derived ones&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;     types.Reverse();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;(Type x &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; types)&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;         &lt;span style="color: #008000"&gt;// for each type in the list, I take only the public properties&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;         &lt;span style="color: #008000"&gt;// It's foundamental to get only the properties declared in that level&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;         &lt;span style="color: #008000"&gt;// by using "DeclaredOnly" binding flag.&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  31:&lt;/span&gt;         PropertyInfo[] properties = x.GetProperties(&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  32:&lt;/span&gt;             BindingFlags.GetProperty | BindingFlags.Instance | &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  33:&lt;/span&gt;             BindingFlags.Public | BindingFlags.DeclaredOnly);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  34:&lt;/span&gt;         props.AddRange(properties);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  35:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  36:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// finally I can return the PropertyInfo array&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  37:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; props.ToArray&amp;lt;PropertyInfo&amp;gt;();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  38:&lt;/span&gt; }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Sto anche pensando di pubblicare la serializzazione XML su Codeplex, ma non so se sarebbe di interesse...&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/91837.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/03/23/91837.aspx</guid>
            <pubDate>Sun, 23 Mar 2008 16:22:59 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/91837.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/03/23/91837.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/91837.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Il mio video al Virtual TechEd &amp;egrave; tra i top video</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/03/17/91750.aspx</link>
            <description>&lt;p&gt;Poco fa ho ricevuto una email che non posso che riportare testualmente:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I just wanted to let you know the smashing success of the Fish Bowl video you recorded in Barcelona. Your video—posted to &lt;/em&gt;&lt;a href="http://www.virtualteched.com"&gt;&lt;em&gt;www.virtualteched.com&lt;/em&gt;&lt;/a&gt;&lt;em&gt; on February 6—&lt;/em&gt;&lt;a href="http://www.virtualteched.com/Videos/EU_1_lgrosland_rrialdi_FB_100.asx"&gt;&lt;b&gt;&lt;em&gt;Threat Modeling and Discovering Security Issues&lt;/em&gt;&lt;/b&gt;&lt;/a&gt;&lt;em&gt; came in near the top of our February Video Viewings Metrics with 350 hits…great job! &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Il link al video è: &lt;a title="http://www.virtualteched.com/pages/videossearch.aspx?KW=raffaele" href="http://www.virtualteched.com/pages/videossearch.aspx?KW=raffaele"&gt;http://www.virtualteched.com/pages/videossearch.aspx?KW=raffaele&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;E chi ha mai detto che la security è noiosa? &lt;img alt="smile_wink" src="http://spaces.live.com/rte/emoticons/smile_wink.gif" /&gt;&lt;/p&gt;  &lt;p&gt;A parte la soddisfazione personale, questo è un chiaro segnale che l'argomento sicurezza e il Threat Modeling che ho trattato nel video è certamente un argomento sempre più sentito e che non è più ignorabile.&lt;/p&gt;  &lt;p&gt;Forza allora ... security first!&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/91750.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/03/17/91750.aspx</guid>
            <pubDate>Mon, 17 Mar 2008 20:36:43 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/91750.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/03/17/91750.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/91750.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Attacchi informatici alle banche ... io e Max l'avevamo detto!</title>
            <link>http://blogs.ugidotnet.org/raffaele/archive/2008/03/14/91706.aspx</link>
            <description>&lt;p&gt;La cronaca di oggi riporta due attacchi informatici &lt;strong&gt;stra-prevedibili&lt;/strong&gt;, tanto che io e Max ne parliamo ormai da anni.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Il primo&lt;/strong&gt;, da quanto leggo nell'articolo, sembra essere lo &lt;strong&gt;sniffing delle password &lt;/strong&gt;i cui hash passano nei pacchetti SMB della rete bancaria. &lt;a title="http://www.tg5.mediaset.it/cronaca/articoli/2008/03/articolo6353.shtml" href="http://www.tg5.mediaset.it/cronaca/articoli/2008/03/articolo6353.shtml"&gt;http://www.tg5.mediaset.it/cronaca/articoli/2008/03/articolo6353.shtml&lt;/a&gt;    &lt;br /&gt;Dall'articolo capisco che qualcuno ha installato un piccolo apparato alla rete fisica della banca raggiungibile tramite wifi dall'esterno della banca.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Il secondo&lt;/strong&gt; è la falsificazione del fingerprint.    &lt;br /&gt;&lt;a title="http://www.video.mediaset.it/video.html?sito=studioaperto&amp;amp;data=2008/03/14&amp;amp;id=35928&amp;amp;categoria=edizione/servizio&amp;amp;from=studioaperto" href="http://www.video.mediaset.it/video.html?sito=studioaperto&amp;amp;data=2008/03/14&amp;amp;id=35928&amp;amp;categoria=edizione/servizio&amp;amp;from=studioaperto"&gt;http://www.video.mediaset.it/video.html?sito=studioaperto&amp;amp;data=2008/03/14&amp;amp;id=35928&amp;amp;categoria=edizione/servizio&amp;amp;from=studioaperto&lt;/a&gt;    &lt;br /&gt;Di fantasia ce n'è voluta proprio poca. &lt;a href="http://www.nomads.it/gestione/doc/La%20Biometria%20in%20banca%20-%2021%20luglio%202005.pdf"&gt;Il sistema&lt;/a&gt; è fin troppo facilmente ingannabile.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Si da il caso che &lt;a href="http://blogs.ugidotnet.org/raffaele/archive/2007/10/30/89295.aspx"&gt;alla scorsa WPC a Milano&lt;/a&gt; io e &lt;a href="http://www.contoso.it/blogs/massimilianol/"&gt;Max&lt;/a&gt; abbiamo spiegato e mostrato demo anche su questi attacchi:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;In una delle tante demo ho usato un minuscolo access point per catturare il traffico di rete. Accedevo da remoto tramite un client SSH prelevando la cattura di rete e decrittando gli hash grazie alle mostruosamente grosse tabelle di rainbow sul computer fisso.     &lt;br /&gt;Max ha più volte insistito sul fatto che la &lt;strong&gt;DMZ è morta&lt;/strong&gt; perché la LAN ormai è troppo facilmente attaccabile.      &lt;br /&gt;Io ho fatto proprio l'esempio di quanto sarebbe facile insinuare in una azienda un piccolo Access Point come quello da usare come ponte per un attacco.      &lt;br /&gt;      &lt;br /&gt;&lt;strong&gt;Signori, IPSEC esiste da un pezzo e qui, ancora una volta, sono mancate le giuste precauzioni!       &lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Nella demo conclusiva alla nostra sessione, con il famigerato guanto da scheletro che ho recentemente &lt;a href="http://blogs.ugidotnet.org/raffaele/archive/2008/03/05/91520.aspx"&gt;rispolverato a Bologna&lt;/a&gt;, mi sono loggato a Windows XP con un'impronta digitale &lt;strong&gt;falsa&lt;/strong&gt; che ho riprodotto facilmente con mezzi casalinghi.      &lt;br /&gt;      &lt;br /&gt;&lt;strong&gt;Sono ormai &lt;/strong&gt;&lt;a href="http://blogs.ugidotnet.org/raffaele/archive/2005/11/16/29954.aspx"&gt;&lt;strong&gt;tre (3) anni che ripetiamo&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; che il fingerprint NON è un dispositivo di sicurezza&lt;/strong&gt; e per questo motivo il driver Microsoft non funziona sui sistemi operativi Server.      &lt;br /&gt;Ancora una volta sono mancate le giuste precauzioni, oltre all'invasione della privacy per i 'normali' utenti bancari.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Un ultimo disclaimer per chi non è pratico di sicurezza. "&lt;a href="http://en.wikipedia.org/wiki/Security_through_obscurity"&gt;Security through obscurity&lt;/a&gt;" NON funziona. Chi teme che, parlando di queste cose, si diano "cattive" idee ai malintenzionati si sbaglia di grosso. &lt;strong&gt;La storia della sicurezza dimostra esattamente il contrario&lt;/strong&gt;. È necessario parlarne fino alla noia per rendere al corrente tutti del potenziale pericolo. Chi se ne capisce e ha cattive intenzioni non ha bisogno di ripetizioni.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/91706.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Raffaele Rialdi</dc:creator>
            <guid>http://blogs.ugidotnet.org/raffaele/archive/2008/03/14/91706.aspx</guid>
            <pubDate>Fri, 14 Mar 2008 20:44:35 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/91706.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/raffaele/archive/2008/03/14/91706.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/91706.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>