<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>Un po' di storia</title>
        <link>http://blogs.ugidotnet.org/adrian/category/283.aspx</link>
        <description>Un po' di storia</description>
        <language>it-IT</language>
        <copyright>Adrian Florea</copyright>
        <generator>Subtext Version 2.1.0.3</generator>
        <item>
            <title>MVC versus Document/View in MFC</title>
            <link>http://blogs.ugidotnet.org/adrian/archive/2009/04/03/mvc-versus-documentview-in-mfc.aspx</link>
            <description>&lt;p&gt;Sto leggendo il bellissimo libro di &lt;a href="http://blogs.ugidotnet.org/dinoes/"&gt;Dino&lt;/a&gt; &amp;amp; &lt;a href="http://blogs.ugidotnet.org/pape/"&gt;Andrea&lt;/a&gt;, "&lt;a href="http://www.amazon.com/Microsoft%C2%AE-NET-Architecting-Applications-PRO-Developer/dp/073562609X/"&gt;Microsoft .NET: Architecting Applications for the Enterprise&lt;/a&gt;" e mi ha incuriosito questa loro osservazione alla pagina 362: "[...] &lt;em&gt;Microsoft Foundation Classes (MFC) offered more than a decade ago an architecture with some points in common with MVC - particularly, the Document/View (DV) model. DV can be seen as a version of MVC where the view and controller are fused together. &lt;/em&gt;&lt;strong&gt;We really don't know whether the MFC team intentionally discarded MVC to embrace DV&lt;/strong&gt;&lt;em&gt;; our feeling, however, is that DV blossomed autonomously during the design by simply applying correctly and diffusely the SoC principle&lt;/em&gt;".&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www2.roguewave.com/support/developer/WinResources/mvc.cfm"&gt;Sembra&lt;/a&gt; che alla PDC del 1995, un membro del team di MFC abbia raccontato proprio la storia del "&lt;em&gt;MVC versus DV&lt;/em&gt;" nella scelta architetturale di MFC: "[...] &lt;em&gt;for the controller’s message mapping mechanism, can’t we just reuse MFC’s message map solution? Ideally, yes. But there is one big problem here... A separate controller class for message handlers may sound like a good idea, but MFC was designed in such a way that this was thought impossible. MFC allows commands such as menu picks to be rerouted to non-windows, but not windows messages such as mouse clicks. In MFC, only a CWnd can receive windows messages and only one instance of a CWnd can receive the messages for a real Windows window. Since a controller is meant to be a non-window that can handle windows messages and exist in multiple instances per window, we seem to be stuck! An interesting aside, this problem was sited by an original MFC team member as &lt;/em&gt;&lt;strong&gt;the main reason Microsoft emulated MVC for the CDocument and CView, but stopped short of implementing a controller&lt;/strong&gt;&lt;em&gt; (MFC Professional Developers Conference, 1995)&lt;/em&gt;". Interessante...&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/adrian/aggbug/95872.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adrian Florea</dc:creator>
            <guid>http://blogs.ugidotnet.org/adrian/archive/2009/04/03/mvc-versus-documentview-in-mfc.aspx</guid>
            <pubDate>Fri, 03 Apr 2009 19:18:48 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/adrian/archive/2009/04/03/mvc-versus-documentview-in-mfc.aspx#feedback</comments>
            <slash:comments>868</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/adrian/comments/commentRss/95872.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/adrian/services/trackbacks/95872.aspx</trackback:ping>
        </item>
        <item>
            <title>Brian Grunkemeyer sulla storia del TypeCode e dell'interfaccia IConvertible</title>
            <link>http://blogs.ugidotnet.org/adrian/archive/2008/03/17/91755.aspx</link>
            <description>&lt;p&gt;Visto l'interesse che ha suscitato &lt;a href="http://blogs.ugidotnet.org/adrian/archive/2008/03/12/91669.aspx"&gt;l'ultimo post&lt;/a&gt;, ho scritto a &lt;a href="http://blogs.msdn.com/brada"&gt;Brad Abrams&lt;/a&gt; chiedendo conferma per la mia supposizione e dettagli sulla storia dell'interfaccia IValue, lui mi risponde subito indirizzandomi a &lt;a href="http://blogs.msdn.com/bclteam/"&gt;Brian Grunkemeyer&lt;/a&gt; e stamattina trovo nella mia casella email, scritto da Brian, questo splendido pezzo della storia di .NET:&lt;/p&gt; &lt;blockquote&gt;
&lt;p&gt;This is a good question. I was digging through the history of this file to see if I could figure out what happened, and it’s not clear. We’ve had this “hole” in the TypeCode enum since October of 2000, and I can’t find an older set of bits. But, I’m sure that comment in IConvertible is right – this used to be TimeSpan. For TimeSpan, it’s possible we thought it would be interesting for a while, then we realized that frankly not that many people need to convert a Decimal to a TimeSpan, then removed it.&lt;/p&gt;
&lt;p&gt;You might ask why we didn’t “fix” the enum when we removed whichever of these values we had originally added. It turns out that whenever we have a breaking change internally, we need to recompile all the code that might possibly depend on the removed or changed public surface area. For us, that would mean rebuilding everything that might have referred to TypeCode.String, whose value would have changed from 18 to 17. While we do go through that process internally in DevDiv, it is costly &amp;amp; painful for us. Back then with some underdeveloped internal processes, it usually took 2 weeks, then even longer if your change requires a rebuilt compiler to be checked in as a new “safe” build of a compiler. Back in 2000, we were racing to ship as soon as possible (even though we didn’t ship for another year or two), so we wanted to limit churn like this. It’s sometimes easier to not deal with that level of churn in the product.&lt;/p&gt;
&lt;p&gt;For your other question about IValue, that was the original name for IConvertible. We exposed a Variant type to match OLE Automation’s VARIANT type on the native side, for COM Interop reasons. The VB team actually was thinking that Variant should be conceptually the root of their object hierarchy (at least in terms of how types were exposed in VB 7), but that seemed a little silly. Fortunately, Anders Hejlsberg convinced them to use Object instead and we’d expose IConvertible on the base data types to allow VB users to easily change from one data type to another. So we marked Variant internal &amp;amp; we only use it in a handful of places internally for COM-related functionality.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Grazie ragazzi!&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/adrian/aggbug/91755.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adrian Florea</dc:creator>
            <guid>http://blogs.ugidotnet.org/adrian/archive/2008/03/17/91755.aspx</guid>
            <pubDate>Mon, 17 Mar 2008 17:24:33 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/adrian/archive/2008/03/17/91755.aspx#feedback</comments>
            <slash:comments>165</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/adrian/comments/commentRss/91755.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/adrian/services/trackbacks/91755.aspx</trackback:ping>
        </item>
        <item>
            <title>Sull'enum TypeCode e sull'interfaccia fantoma IValue</title>
            <link>http://blogs.ugidotnet.org/adrian/archive/2008/03/12/91669.aspx</link>
            <description>&lt;p&gt;Oggi &lt;a href="http://blogs.ugidotnet.org/raffaele/"&gt;Raf&lt;/a&gt; sul messenger mi chiede se conosco un modo piu' diretto per capire se un tipo sia &lt;a href="http://msdn2.microsoft.com/en-us/library/system.type.isprimitive.aspx"&gt;primitivo&lt;/a&gt; oppure &lt;strong&gt;String&lt;/strong&gt; o &lt;strong&gt;DateTime&lt;/strong&gt; (questo per evitare degli &lt;em&gt;if&lt;/em&gt;...). Pensandoci un po', arrivo a questa soluzione:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;(int)Type.GetTypeCode(type) &amp;gt; 2&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;dove &lt;em&gt;type&lt;/em&gt; e' il tipo in causa. Lui prova e mi dice che va benissimo mentre io gia' sto pensando di bloggare questa riga di codice :-) L'enum &lt;a href="http://msdn2.microsoft.com/en-us/library/system.typecode.aspx"&gt;TypeCode&lt;/a&gt; infatti, contiene nella sua lista di valori maggiori a 2 tutti i 12 tipi &lt;strong&gt;primitivi&lt;/strong&gt; piu' il &lt;strong&gt;DateTime&lt;/strong&gt; e lo &lt;strong&gt;String&lt;/strong&gt;, proprio quello che voleva Raf. A questo punto gli chiedo come denominare questa categoria di tipi? Primitivi non sono, &lt;em&gt;built-in&lt;/em&gt; (&lt;a href="http://www.ecma-international.org/publications/standards/Ecma-335.htm"&gt;ECMA-335&lt;/a&gt;, &lt;strong&gt;Partition I&lt;/strong&gt;, &lt;strong&gt;8.2.2&lt;/strong&gt;) nemmeno, boh... &lt;em&gt;fondamentali&lt;/em&gt;? Qui Raf si ricorda che "&lt;em&gt;in una alpha erano refclass adesso non piu'&lt;/em&gt;". E poi fa questa osservazione giusta:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Raffaele MVP says (4:45 PM):&lt;/strong&gt;&lt;br /&gt;
io comunque metterei &amp;gt;2 e &amp;lt;18&lt;br /&gt;
non si sa mai che aggiungano altre enum in futuro&lt;br /&gt;
&lt;strong&gt;&amp;lt;drian says (4:46 PM):&lt;/strong&gt;&lt;br /&gt;
hai visto che manca 17?&lt;br /&gt;
&lt;strong&gt;Raffaele MVP says (4:46 PM):&lt;/strong&gt;&lt;br /&gt;
non ci ho fatto caso&lt;br /&gt;
&lt;strong&gt;&amp;lt;drian says (4:47 PM):&lt;/strong&gt;&lt;br /&gt;
in questo caso, dovrei fare anche != 17, perche' il 17 per adesso manca&lt;br /&gt;
e diventa un po' una schifezza&lt;br /&gt;
&lt;strong&gt;Raffaele MVP says (4:48 PM):&lt;/strong&gt;&lt;br /&gt;
a questo punto puoi legarlo ad una versione specifica di quell'assembly ma poi non funziona più automaticamente&lt;br /&gt;
&lt;strong&gt;Raffaele MVP says (4:49 PM):&lt;/strong&gt;&lt;br /&gt;
o ancora metterlo typesafe&lt;br /&gt;
&amp;gt;=boolean &amp;lt;=string&lt;br /&gt;
ma c'è sempre il 17 a rompere &lt;/p&gt;
&lt;p&gt;Spulciando poi i sorgenti di &lt;a href="http://msdn.microsoft.com/net/sscli/"&gt;Rotor&lt;/a&gt;, trovo questo commento nel file dell'interfaccia &lt;strong&gt;System.IConvertible&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#339966"&gt;// The IValue interface represents an object that contains a value. This&lt;br /&gt;
// interface is implemented by the following types in the System namespace:&lt;br /&gt;
// &lt;strong&gt;Boolean&lt;/strong&gt;, &lt;strong&gt;Char&lt;/strong&gt;, &lt;strong&gt;SByte&lt;/strong&gt;, &lt;strong&gt;Byte&lt;/strong&gt;, &lt;strong&gt;Int16&lt;/strong&gt;, &lt;strong&gt;UInt16&lt;/strong&gt;, &lt;strong&gt;Int32&lt;/strong&gt;, &lt;strong&gt;UInt32&lt;/strong&gt;, &lt;strong&gt;Int64&lt;/strong&gt;, &lt;strong&gt;UInt64&lt;/strong&gt;,&lt;br /&gt;
// &lt;strong&gt;Single&lt;/strong&gt;, &lt;strong&gt;Double&lt;/strong&gt;, &lt;strong&gt;Decimal&lt;/strong&gt;, &lt;strong&gt;DateTime&lt;/strong&gt;, &lt;font color="#ff0000"&gt;&lt;strong&gt;TimeSpan&lt;/strong&gt;&lt;/font&gt;, and &lt;strong&gt;String&lt;/strong&gt;. The interface may&lt;br /&gt;
// be implemented by other types that are to be considered values.&lt;/font&gt; &lt;/p&gt;
&lt;p&gt;Cosa notate? Esattamente l'elenco di tipi che interessava Raf, nell'ordine di &lt;strong&gt;TypeCode&lt;/strong&gt; e... in piu' il &lt;strong&gt;&lt;font color="#ff0000"&gt;TimeSpan&lt;/font&gt;&lt;/strong&gt; tra il &lt;strong&gt;DateTime&lt;/strong&gt; = 16 e lo &lt;strong&gt;String&lt;/strong&gt; = 18, cioe' corrispondente proprio al &lt;strong&gt;&lt;font color="#ff0000"&gt;17&lt;/font&gt;&lt;/strong&gt; che mancava! Questa interfaccia, &lt;strong&gt;IValue&lt;/strong&gt;, non esiste piu' nel framework ma alcuni commenti su varie implementazioni del metodo &lt;strong&gt;GetTypeCode()&lt;/strong&gt; sono rimasti come:&lt;/p&gt;
&lt;p&gt;&lt;font color="#339966"&gt;// IValue implementation&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;perche', probabilmente, conteneva questo metodo &lt;strong&gt;GetTypeCode&lt;/strong&gt;. Questa ormai e' "&lt;em&gt;archeologia&lt;/em&gt;" di .NET! :-) E non e' tutto. Guardate nei commenti dell'enum &lt;strong&gt;System.TypeCode&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;font color="#339966"&gt;// Note that when an object has a given TypeCode, there is no guarantee that&lt;br /&gt;
// the object is an instance of the corresponding System.XXX value class. For&lt;br /&gt;
// example, &lt;strong&gt;an object with the type code TypeCode.Int32 might actually be an&lt;/strong&gt;&lt;br /&gt;
// &lt;strong&gt;instance of a nullable 32-bit integer type&lt;/strong&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p&gt;Questo comportamento non e' piu' vero, perche' il valore di &lt;strong&gt;Type.GetTypeCode(typeof(&lt;font color="#ff0000"&gt;int?&lt;/font&gt;))&lt;/strong&gt; e' &lt;strong&gt;TypeCode.&lt;font color="#ff0000"&gt;Object&lt;/font&gt;&lt;/strong&gt;, mentre il valore di &lt;strong&gt;Type.GetTypeCode(typeof(int))&lt;/strong&gt; e' &lt;strong&gt;TypeCode.Int32&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Dopo una discussione tecnica con Raf, direi che sia impossibile non cliccare "&lt;strong&gt;New Post&lt;/strong&gt;"! :-)&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/adrian/aggbug/91669.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adrian Florea</dc:creator>
            <guid>http://blogs.ugidotnet.org/adrian/archive/2008/03/12/91669.aspx</guid>
            <pubDate>Wed, 12 Mar 2008 04:49:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/adrian/archive/2008/03/12/91669.aspx#feedback</comments>
            <slash:comments>113</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/adrian/comments/commentRss/91669.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/adrian/services/trackbacks/91669.aspx</trackback:ping>
        </item>
        <item>
            <title>Bill Gates e il pancake problem</title>
            <link>http://blogs.ugidotnet.org/adrian/archive/2005/10/07/27766.aspx</link>
            <description>&lt;P&gt;Pochi forse sanno che il nostro amato &lt;A href="http://www.microsoft.com/billgates/"&gt;chief software architect&lt;/A&gt; &amp;#232; anche il coautore di un davvero bellissimo risultato di &lt;A href="http://it.wikipedia.org/wiki/Combinatorica"&gt;combinatorica&lt;/A&gt; sul cos&amp;#236;detto &lt;B&gt;problema delle frittelle&lt;/B&gt; :-) (in inglese "&lt;B&gt;pancake problem&lt;/B&gt;") insieme al vincitore del &lt;A href="http://sigact.acm.org/prizes/knuth/"&gt;Premio Knuth&lt;/A&gt; per 2002 (una specie di Nobel per l'&lt;I&gt;informatica teorica&lt;/I&gt;), il &lt;A href="http://www.cs.berkeley.edu/~christos/"&gt;Prof. Christos H. Papadimitriou&lt;/A&gt;. Insieme, sono riusciti all'inizio del 1978 (Bill aveva appena compiuto 22 anni) a dimonstrare che per fare il sorting di una permutazione di ordine &lt;I&gt;n&lt;/I&gt; ci vogliono non pi&amp;#249; di &lt;I&gt;(5*n+5)/3&lt;/I&gt; flip (o &lt;I&gt;prefix reversal&lt;/I&gt;) e non meno di &lt;I&gt;17*n/16&lt;/I&gt; flip. Vale la pena di scaricare (e leggere) il PDF della fotocopia dell'articolo originale (sono quasi 5 MB):&lt;/P&gt;
&lt;P&gt;&lt;B&gt;W.H. Gates&lt;/B&gt;, &lt;B&gt;C.H. Papadimitriou&lt;/B&gt;, "&lt;A href="http://www.cs.berkeley.edu/~christos/papers/Bounds%20For%20Sorting%20By%20Prefix%20Reversal.pdf"&gt;Bounds for Sorting by Prefix Reversal&lt;/A&gt;", &lt;I&gt;Discrete Mathematics&lt;/I&gt;, &lt;B&gt;27&lt;/B&gt; (1979) 47-57&lt;/P&gt;
&lt;P&gt;Il limite inferiore &amp;#232; stato frattempo migliorato nel 1992, a 15*n/14, grazie a &lt;A href="http://en.wikipedia.org/wiki/David_X._Cohen"&gt;David S. Cohen&lt;/A&gt; (non mi crederete per&amp;#242; ha scritto anche &lt;A href="http://www.thesimpsons.com/"&gt;The Simpsons&lt;/A&gt;) e al &lt;A href="http://www.cs.berkeley.edu/~blum/"&gt;Prof. Manuel Blum&lt;/A&gt; (quest'ultimo vincitore del &lt;A href="http://www.acm.org/awards/taward.html"&gt;Premio Turing&lt;/A&gt; per 1995 - il premio &amp;#232; la pi&amp;#249; alta onorificenza&amp;nbsp;per &lt;I&gt;computer science&lt;/I&gt;).&lt;/P&gt;
&lt;P&gt;Il problema originale &amp;#232; stato proposto dal &lt;A href="http://www.ccny.cuny.edu/mathematics/faculty/goodman/goodman.html"&gt;Prof. Jacob E. Goodman&lt;/A&gt; nel 1975 (si &amp;#232; firmato per&amp;#242; &lt;I&gt;Harry Dweighter&lt;/I&gt;) e suscita tuttora interesse dopo 30 anni, soprattutto per le sue varie applicazioni pratiche. Il nostro Bill nello stesso articolo, oltre al risultato sopra menzionato, propone e risolve un altro problema leggermente modificato: quello delle &lt;B&gt;frittelle bruciate&lt;/B&gt; ("&lt;B&gt;burnt pancake problem&lt;/B&gt;"). Lascio adesso a voi il piacere di gustarle :-)&lt;/P&gt;
&lt;P&gt;&lt;B&gt;P.S.&lt;/B&gt;: Sembra che il valore del limite maggiore, &lt;I&gt;(5*n+5)/3&lt;/I&gt;, sia stato ottenuto indipendentemente sempre nel 1978, anche da due ungheresi (vedi la nota della pagina 7&amp;nbsp;di &lt;A href="http://www.research.att.com/~njas/doc/sg.pdf"&gt;questo articolo&lt;/A&gt; del mitico &lt;A href="http://www.research.att.com/~njas/"&gt;Neil J.A. Sloane&lt;/A&gt;):&lt;/P&gt;
&lt;P&gt;&lt;B&gt;E. Gy&amp;#246;ri&lt;/B&gt;, &lt;B&gt;G. Tur&amp;#225;n&lt;/B&gt;, "Stack of pancakes", &lt;I&gt;Studia Sci. Math. Hungar.&lt;/I&gt;, &lt;B&gt;13&lt;/B&gt; (1978),133-137&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/adrian/aggbug/27766.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adrian Florea</dc:creator>
            <guid>http://blogs.ugidotnet.org/adrian/archive/2005/10/07/27766.aspx</guid>
            <pubDate>Fri, 07 Oct 2005 19:43:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/adrian/archive/2005/10/07/27766.aspx#feedback</comments>
            <slash:comments>13</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/adrian/comments/commentRss/27766.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/adrian/services/trackbacks/27766.aspx</trackback:ping>
        </item>
        <item>
            <title>Great Renaissance artists vs. great software engineers</title>
            <link>http://blogs.ugidotnet.org/adrian/archive/2005/07/15/23429.aspx</link>
            <description>&lt;P&gt;Leggendo questo articolo apparso oggi:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.cs.wpi.edu/~gpollice/"&gt;G. Pollice&lt;/A&gt;, "&lt;A href="http://www-128.ibm.com/developerworks/rational/library/jul05/pollice/index.html"&gt;Great art and the craft of software development&lt;/A&gt;", The Rational Edge (July 2005)&lt;/P&gt;
&lt;P&gt;mi sono ricordato di questo post di &lt;A href="http://www.boschin.it/blogs/radicalmente/"&gt;Andrea Boschin&lt;/A&gt;:&lt;SPAN style="TEXT-DECORATION: none"&gt; "&lt;A href="http://www.boschin.it/blogs/radicalmente/archive/2005/05/24/2736.aspx"&gt;Una via italiana al software?&lt;/A&gt;". Sembra che davanti a opere di Michelangelo, da Vinci, Tiziano, Caravaggio, Stradivarius, Amati, qualcuno ha pensato a &lt;A href="http://www-cs-faculty.stanford.edu/~knuth/"&gt;Donald Knuth&lt;/A&gt;, &lt;A href="http://www.booch.com/architecture/blog.jsp"&gt;Grady Booch&lt;/A&gt;, &lt;A href="http://en.wikipedia.org/wiki/Ken_Thompson"&gt;Ken Thompson&lt;/A&gt;, &lt;A href="http://www.cs.bell-labs.com/who/dmr/"&gt;Dennis Ritchie&lt;/A&gt;, &lt;A href="http://www.ivarjacobson.com/"&gt;Ivar Jacobson&lt;/A&gt;, &lt;A href="http://www.cas.mcmaster.ca/sqrl/parnas.homepg.html"&gt;David Parnas&lt;/A&gt;, &lt;A href="http://c2.com/ppr/about/author/kent.html"&gt;Kent Beck&lt;/A&gt;, &lt;A href="http://www.martinfowler.com/"&gt;Martin Fowler&lt;/A&gt;, &lt;A href="http://www-306.ibm.com/software/rational/bios/rumbaugh.html"&gt;James Rumbaugh&lt;/A&gt;, &lt;A href="http://www.cs.inf.ethz.ch/~wirth/"&gt;Niklaus Wirth&lt;/A&gt;, &lt;A href="http://butunclebob.com/ArticleS.UncleBob"&gt;Robert Martin&lt;/A&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Ed ecco come, alla domanda di Andrea "&lt;I&gt;perch&amp;#232; i principi che hanno dato vita a delle cos&amp;#236; efficaci ed apprezzate soluzioni non vengono applicati anche in campo informatico?&lt;/I&gt;", il Prof. Pollice prova a trovare una "riceta":&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;cross-fertilization of disciplines (software and hardware architectures, scientific and mathematical disciplines)&lt;/LI&gt;
&lt;LI&gt;scrupulous about creating clean, accurate models that translated into sleek, efficient systems in which every feature has a clear purpose and adequate support&lt;/LI&gt;
&lt;LI&gt;view software development along three axes: 
&lt;P&gt;&lt;B&gt;people&lt;/B&gt;&amp;nbsp; - understand the value of working with a talented team&lt;/P&gt;
&lt;P&gt;&lt;B&gt;process&lt;/B&gt; - the rigor of your process should vary according to the type of product on which you are working&lt;/P&gt;
&lt;P&gt;&lt;B&gt;tools&lt;/B&gt; - as the complexity increases, the quality of your tools must also increase in order to produce the desired results&lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;understand the importance of details and take time to deal with them lovingly&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.ugidotnet.org/adrian/aggbug/23429.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adrian Florea</dc:creator>
            <guid>http://blogs.ugidotnet.org/adrian/archive/2005/07/15/23429.aspx</guid>
            <pubDate>Fri, 15 Jul 2005 08:34:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/adrian/archive/2005/07/15/23429.aspx#feedback</comments>
            <slash:comments>20</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/adrian/comments/commentRss/23429.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/adrian/services/trackbacks/23429.aspx</trackback:ping>
        </item>
        <item>
            <title>Brad Abrams si diventa</title>
            <link>http://blogs.ugidotnet.org/adrian/archive/2005/06/14/18872.aspx</link>
            <description>&lt;P&gt;La tesi di &lt;A href="http://blogs.msdn.com/brada/"&gt;Brad Abrams&lt;/A&gt;, ormai pura storia:&lt;/P&gt;
&lt;P&gt;B. Abrams, "&lt;A href="http://www.csc.ncsu.edu:8080/academics/undergrad/Reports/bmabrams/paper.html"&gt;The Distributed Object Dilemma. A Technical Overview of Two Standards for Distributed Computer Systems&lt;/A&gt;", Honors Report, &lt;A href="http://www.csc.ncsu.edu/"&gt;Department of Computer Science&lt;/A&gt;, &lt;A href="http://www.engr.ncsu.edu/"&gt;College of Engineering&lt;/A&gt;, &lt;A href="http://www.ncsu.edu/"&gt;North Carolina State University&lt;/A&gt; (1997)&lt;/P&gt;
&lt;P&gt;33 pagine sul comodino, da leggere con un sorriso nelle ore piccole :-)&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/adrian/aggbug/18872.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adrian Florea</dc:creator>
            <guid>http://blogs.ugidotnet.org/adrian/archive/2005/06/14/18872.aspx</guid>
            <pubDate>Tue, 14 Jun 2005 07:02:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/adrian/archive/2005/06/14/18872.aspx#feedback</comments>
            <slash:comments>14</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/adrian/comments/commentRss/18872.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/adrian/services/trackbacks/18872.aspx</trackback:ping>
        </item>
        <item>
            <title>Grande Cwalek!</title>
            <link>http://blogs.ugidotnet.org/adrian/archive/2005/04/23/14702.aspx</link>
            <description>&lt;P&gt;Sapevate che &lt;A href="http://blogs.msdn.com/kcwalina/"&gt;Krzysztof Cwalina&lt;/A&gt; &amp;#232; anche &lt;A href="http://www.olimpijski.pl/294_13560.html"&gt;uno dei pi&amp;#249; veloci nuotatori polacchi&lt;/A&gt;? E un'altra cosa carina, ha fatto la tesi di laurea con una &lt;A href="http://profs.sci.univr.it/~bonacina/"&gt;professoressa italiana&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/adrian/aggbug/14702.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adrian Florea</dc:creator>
            <guid>http://blogs.ugidotnet.org/adrian/archive/2005/04/23/14702.aspx</guid>
            <pubDate>Sat, 23 Apr 2005 10:47:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/adrian/archive/2005/04/23/14702.aspx#feedback</comments>
            <slash:comments>9</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/adrian/comments/commentRss/14702.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/adrian/services/trackbacks/14702.aspx</trackback:ping>
        </item>
        <item>
            <title>Brian Grunkemeyer è l'autore delle static class</title>
            <link>http://blogs.ugidotnet.org/adrian/archive/2005/01/27/10016.aspx</link>
            <description>&lt;P&gt;Un pezzo di storia: nel video di questo &lt;A href="http://channel9.msdn.com/ShowPost.aspx?PostID=36366"&gt;post&lt;/A&gt;, dal minuto 6:13 al minuto 10:28, &lt;A href="http://blogs.msdn.com/bclteam/"&gt;Brian Grunkemeyer&lt;/A&gt; racconta come gli &amp;#232; venuta l'idea delle &lt;B&gt;classi statiche&lt;/B&gt;. E' iniziato tutto da un suo bug nella versione 1.0 del Framework: il metodo &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemenvironmentclasshasshutdownstartedtopic.asp"&gt;System.Environment.HasShutdownStarted&lt;/A&gt; non era ai tempi &lt;B&gt;static&lt;/B&gt;, e quindi poteva essere chiamato solo tramite reflection :-) &lt;/P&gt;
&lt;P&gt;Lo racconta anche in &lt;A href="http://www.amazon.com/exec/obidos/ASIN/0321154894/"&gt;SLAR&lt;/A&gt;, alla pagina 178&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/adrian/aggbug/10016.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adrian Florea</dc:creator>
            <guid>http://blogs.ugidotnet.org/adrian/archive/2005/01/27/10016.aspx</guid>
            <pubDate>Thu, 27 Jan 2005 19:09:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/adrian/archive/2005/01/27/10016.aspx#feedback</comments>
            <slash:comments>11</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/adrian/comments/commentRss/10016.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/adrian/services/trackbacks/10016.aspx</trackback:ping>
        </item>
        <item>
            <title>Quiz (BASIC, Einstein, Berlusconi)</title>
            <link>http://blogs.ugidotnet.org/adrian/archive/2005/01/18/9591.aspx</link>
            <description>&lt;P&gt;&lt;B&gt;On Topic&lt;/B&gt;: Che legame c'&amp;#232; tra il linguaggio &lt;A href="http://www.dartmouth.edu/~vox/0304/0503/basic.html"&gt;BASIC&lt;/A&gt; e &lt;A href="http://nobelprize.org/physics/laureates/1921/index.html"&gt;Albert Einstein&lt;/A&gt;?&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Off Topic&lt;/B&gt;: Ma tra Albert Einstein e &lt;A href="http://www.forza-italia.it/silvioberlusconi/"&gt;Silvio Berlusconi&lt;/A&gt;?&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/adrian/aggbug/9591.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adrian Florea</dc:creator>
            <guid>http://blogs.ugidotnet.org/adrian/archive/2005/01/18/9591.aspx</guid>
            <pubDate>Tue, 18 Jan 2005 01:56:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/adrian/archive/2005/01/18/9591.aspx#feedback</comments>
            <slash:comments>10</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/adrian/comments/commentRss/9591.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/adrian/services/trackbacks/9591.aspx</trackback:ping>
        </item>
        <item>
            <title>The Faces in Front of the Monitors</title>
            <link>http://blogs.ugidotnet.org/adrian/archive/2005/01/18/9590.aspx</link>
            <description>&lt;P&gt;I link interessanti che trovo in giro, da un po' di tempo li "&lt;I&gt;furlo&lt;/I&gt;" &lt;A href="http://www.furl.net/members/adrianflorea"&gt;qui&lt;/A&gt; (l'RSS del mio &lt;I&gt;furl&lt;/I&gt; &amp;#232; &lt;A href="http://www.furl.net/members/adrianflorea/rss.xml"&gt;questo&lt;/A&gt;), risparmiando cos&amp;#236; lo spazio del blog e la vostra attenzione per cose magari pi&amp;#249; originali. Per&amp;#242; questo, "&lt;A href="http://www.wbglinks.net/pages/watchmen/"&gt;The Faces in Front of the Monitors&lt;/A&gt;", &amp;#232; troppo atipico per non postarlo. Nella scelta dei personaggi (che mischia buoni e cattivi) scopro non pochi nomi giovanissimi...&lt;/P&gt;
&lt;P&gt;Me l'ha mandato il mio amico &lt;A href="http://onesearch.sun.com/search/onesearch/index.jsp?qt=venditti"&gt;Nicola Venditti&lt;/A&gt;, che ogni tanto si ricorda del &lt;A href="http://blogs.ugidotnet.org/adrian/category/283.aspx"&gt;mio debole per la storia&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/adrian/aggbug/9590.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adrian Florea</dc:creator>
            <guid>http://blogs.ugidotnet.org/adrian/archive/2005/01/18/9590.aspx</guid>
            <pubDate>Tue, 18 Jan 2005 00:48:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/adrian/archive/2005/01/18/9590.aspx#feedback</comments>
            <slash:comments>11</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/adrian/comments/commentRss/9590.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/adrian/services/trackbacks/9590.aspx</trackback:ping>
        </item>
    </channel>
</rss>
