<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Codice on A Ovest Di Paperino</title>
    <link>https://aovestdipaperino.com/categories/codice/</link>
    <description>Recent content in Codice on A Ovest Di Paperino</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>it-it</language>
    <lastBuildDate>Sun, 23 Sep 2018 02:43:53 +0000</lastBuildDate>
    
	<atom:link href="https://aovestdipaperino.com/categories/codice/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Open Source Experience</title>
      <link>https://aovestdipaperino.com/posts/open-source-experience/</link>
      <pubDate>Sun, 23 Sep 2018 02:43:53 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/open-source-experience/</guid>
      <description>Negli ultimi tempi mi rendo conto di essere diventato un po&amp;rsquo; più friendly nei confronti dell&amp;rsquo;Open Source; infatti sul mio Cray 1 ci gira Linux con un Pool ZFS nativo e gingillerie varie. Trovo tuttora tale configurazione estremamente economica per conservare i file più cari. Foto, ricordi, diapositive del tempo che passa.
Ritengo invece, in tutta la questione, che sia rimasta un&amp;rsquo;invariante, ovvero la necessità non tanto remota di doversi spesso e volentieri sporcarsi le mani con il codice scritto da altri che sempre molto più spesso ha il sapore del tabacco da masticare.</description>
    </item>
    
    <item>
      <title>Mark Down!</title>
      <link>https://aovestdipaperino.com/posts/mark-down/</link>
      <pubDate>Mon, 17 Sep 2018 17:42:30 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/mark-down/</guid>
      <description>Ho sempre pensato che l&amp;rsquo;informatica fosse la branca della scienze MM.NN.FF. più razionale. Voglio dire se scrivi 2+2 e il risultato è 5, il processo per arrivare a determinare dove sia la discrepanza tra attesa e realtà è abbastanza pedissequo.
Però dove tre o più umani decidono in &amp;ldquo;commissione&amp;rdquo; o più semplicemente un Program Manager ardimentoso si lancia all&amp;rsquo;avventura, si può assistere a risultanti interessanti o addirittura spettacolari.
La storia delle mode dei &amp;ldquo;formati&amp;rdquo; è un esempio lampante, chiarissimo, cristallino.</description>
    </item>
    
    <item>
      <title>Nuvole</title>
      <link>https://aovestdipaperino.com/posts/nuvole.aspx/</link>
      <pubDate>Thu, 16 Aug 2018 20:01:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/nuvole.aspx/</guid>
      <description>In questi giorni ho fatto un po’ di pulizia virtuale. Non solo ho spostato il blog, ma avendo scoperto l’esistenza di Google Domains che offre lo stesso servizio di GoDaddy a quasi metà prezzo senza dover per forza fare una caccia al tesoro di sconti, spostato tutti i miei domini lì.
Avevo solo un piccolo problema con una piccola webapp che, nell’incarnazione precedente, sfruttava la possibilità di girare in condivisione con il blog.</description>
    </item>
    
    <item>
      <title>Onoreficenze</title>
      <link>https://aovestdipaperino.com/posts/onoreficenze.aspx/</link>
      <pubDate>Thu, 14 Dec 2017 03:12:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/onoreficenze.aspx/</guid>
      <description>Una delle cose carine che rende più nerdoso lavorare per Google è la pagina personale con un elenco di onoreficenze (tradotto: badge). Ce ne sono tra le più disparate, legate ad esempio alle ultime cifre del numero delle proprie changelist, altre più frivole e così via.
Ieri mi è capitato di cambiare, in un file di configurazione, la sequenza ‘vk’ con ‘vj’. Ho detto scherzosamente ai miei colleghi che, essendo la CL più piccola della mia carriera in Google, avrei meritato un badge.</description>
    </item>
    
    <item>
      <title>Apple languages</title>
      <link>https://aovestdipaperino.com/posts/apple-languages.aspx/</link>
      <pubDate>Tue, 28 Nov 2017 02:11:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/apple-languages.aspx/</guid>
      <description>Da &#34;iOS Programming: The Big Nerd Ranch Guide” terza edizione.
In general, when you have a property that points to an instance of a class that has a mutable subclass (like NSString or NSArray), it is safer to make a copy of the object to point to rather than pointing to an existing object that could have other owners.
Agli arguti lettori il compito di segnalare cosa c’è di grave nella frase di cui sopra.</description>
    </item>
    
    <item>
      <title>Quattro mesi report</title>
      <link>https://aovestdipaperino.com/posts/quattro-mesi-report.aspx/</link>
      <pubDate>Wed, 21 May 2014 18:05:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/quattro-mesi-report.aspx/</guid>
      <description>Sono quattro mesi che ormai lavoro in un ecosistema che non è Microsoft-centrico e volevo raccontare un primo bilancio: il codice si scrive in Java (parte in 1.7, grossa parte addirittura in 1.6), usiamo tool Apache per la build, i database sono MySQL, ecc. Il tutto gira su MacOS, almeno per tre su quattro di noi del team remoto.
In passato ho giochicchiato un po’ con MacOS ma non ho mai fatto niente di produttivo e soprattutto remunerato.</description>
    </item>
    
    <item>
      <title>Intentional leave</title>
      <link>https://aovestdipaperino.com/posts/intentional-leave.aspx/</link>
      <pubDate>Sun, 19 Jan 2014 20:01:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/intentional-leave.aspx/</guid>
      <description>Venerdì scorso ho lasciato la mia azienda precedente: sono stati due anni (poco meno) veloci e intensi in cui ho imparato tanto e lavorato fianco a fianco ad una leggenda.
Il caso ha voluto che una nuova offerta di lavoro venisse a me nella forma di numeri che davvero non si potevano rifiutare: il mio nuovo datore di lavoro è lui stesso un’altra leggenda (Magnet) e porta in sé una caterva di cambiamenti incredibili.</description>
    </item>
    
    <item>
      <title>L’inevitabile decadenza del software</title>
      <link>https://aovestdipaperino.com/posts/l-inevitabile-decadenza-del-software.aspx/</link>
      <pubDate>Wed, 08 May 2013 19:05:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/l-inevitabile-decadenza-del-software.aspx/</guid>
      <description>Mi piace Google Chrome perché semplice, pulito, pochi fronzoli e ha un Sync decente. Vero fino all’altro giorno, quando i bookmark del PC dell’ufficio non si sincronizzavano più. Non ci ho fatto caso più di tanto poi oggi, incuriosito, guardo i settings:
“Sync has been stopped via the Google Dashboard.”
Probabilmente da quel momento nel passato, quando la batteria del telefono era molto scarica e mi serviva tenerlo in vita, in cui ho disabilitato temporaneamente la sincronizzazione.</description>
    </item>
    
    <item>
      <title>Tribal Knowledge</title>
      <link>https://aovestdipaperino.com/posts/tribal-knowledge.aspx/</link>
      <pubDate>Mon, 22 Apr 2013 22:04:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/tribal-knowledge.aspx/</guid>
      <description>Qui in Intentional il modello di sviluppo è abbastanza flessibile. Però ogni mattina c’è un meeting in cui ognuno racconta quello che ha fatto il giorno precedente e quello che farà nelle successive ore lavorative. Nei miei primi meeting mi sembrava di essere sbarcato su un altro pianeta: oltre allo slang tipico aziendale, c’era da assorbire uno strato abbastanza spesso di notazione ungherese.
Durante uno di questi meeting ho ascoltato per la prima volta le parole tribal knowledge per descrivere un insieme di conoscenze tramandato per via di esperienza lavorativa di gruppo, magari tramite striminzita documentazione scritta.</description>
    </item>
    
    <item>
      <title>Cercare numeri reali</title>
      <link>https://aovestdipaperino.com/posts/cercare-numeri-reali.aspx/</link>
      <pubDate>Tue, 06 Nov 2012 01:11:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/cercare-numeri-reali.aspx/</guid>
      <description>Soluzione pratica ad un problema comune. È la seconda volta che si manifesta in meno di due anni e avrei pensato che la soluzione a mio dire più pratica di tutte fosse anche la più intuibile. A guardare le facce ogni volta che la propongo direi di no.
Il problema: cercare e visualizzare tutte le righe (di una tabella, lista, contenitore, ecc.) contenenti valori in virgola mobile. Ovvero: se l’utente cerca “2.</description>
    </item>
    
    <item>
      <title>Congruenze</title>
      <link>https://aovestdipaperino.com/posts/congruenze.aspx/</link>
      <pubDate>Mon, 04 Jun 2012 05:06:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/congruenze.aspx/</guid>
      <description>Piccole grandi formule interessanti. Da giovane ero in grado di calcolare la prima grazie ad un aiuto mnemonico per la parte più difficile relativa al mese e semplificando il calcolo limitandolo al secolo allora in corso e già passato. Raccolte qui per un piacere puramente estetico.
La congruenza di Zeller:
(Analisi)
La luna nuova:
(Spiegazione)
Formula di Oudin:

(spiegazione)
-quack</description>
    </item>
    
    <item>
      <title>LunedìQuìz–serie 2012 #2</title>
      <link>https://aovestdipaperino.com/posts/lunediquiz-serie-2012-2.aspx/</link>
      <pubDate>Mon, 20 Feb 2012 18:02:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/lunediquiz-serie-2012-2.aspx/</guid>
      <description>Implementare la seguente funzione:
bool SumExists(int[] data, int sum)
che restituisce true se esistono due elementi nell’array data la cui somma è sum e definirne la complessita in notazione O.
-quack
P.S. titolo leggermente alterato per arginare l’eventuale ondata spam</description>
    </item>
    
    <item>
      <title>Lunedì quiz - serie 2012 #1</title>
      <link>https://aovestdipaperino.com/posts/lunedi-quiz-serie-2012-1.aspx/</link>
      <pubDate>Tue, 07 Feb 2012 02:02:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/lunedi-quiz-serie-2012-1.aspx/</guid>
      <description>Dato un albero binario (vedasi esempio figura)

si implementi la funzione: TrovaAntenatoComune(node root, node first, node second) che restituisce l’antenato comune più “vicino” ai due nodi o sollevi un’eccezione se uno dei due nodi non è raggiungibile dalla radice.
Esempio:
TrovaAntenatoComune(A, D, I) = B
TrovaAntenatoComune(A, P, F) = E
-quack</description>
    </item>
    
    <item>
      <title>Quiz riflessivo per programmatori C#</title>
      <link>https://aovestdipaperino.com/posts/quiz-riflessivo-per-programmatori-c.aspx/</link>
      <pubDate>Wed, 27 Jul 2011 23:07:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/quiz-riflessivo-per-programmatori-c.aspx/</guid>
      <description>Data una classe X_Class ed una proprietà Y_Property di tipo Zeta:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; class X_Class
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Zeta Y_Property { get; set; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
 ricavare il nome della proprietà sotto forma di stringa in maniera programmatica (hint: usare la versione 4.x del Framework).
BONUS POINT: L’esercizio ha anche un suo perché, stabilire quale.
Soluzione:
public static string YPropToString()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; return ((MemberExpression)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((Expression&amp;lt;Func&amp;lt;X_Class, object&amp;gt;&amp;gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((o) =&amp;gt; o.</description>
    </item>
    
    <item>
      <title>Esercizio grammaticale</title>
      <link>https://aovestdipaperino.com/posts/esercizio-grammaticale.aspx/</link>
      <pubDate>Wed, 09 Mar 2011 23:03:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/esercizio-grammaticale.aspx/</guid>
      <description>Per il dileggio del lettore interessato dall’affascinante mondo del parsing (sì, ne sto scrivendo un altro in virtù della già citata maledizione).
Data la seguente grammatica ( S il simbolo di partenza, in maiuscolo i terminali, in minuscolo le regole di produzione), convertirla in forma LL(1):
S –&amp;gt; q
q –&amp;gt; ( q ) | r
r –&amp;gt; A u | ( t )
u –&amp;gt; B | ( t )</description>
    </item>
    
    <item>
      <title>Lunedì quiz–nono ed ultimo</title>
      <link>https://aovestdipaperino.com/posts/lunedi-quiz-nono-ed-ultimo.aspx/</link>
      <pubDate>Mon, 06 Dec 2010 19:12:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/lunedi-quiz-nono-ed-ultimo.aspx/</guid>
      <description>Su richiesta del nonno, scrivere un algoritmo che determini se ci sono ancora mosse possibili in una partita di Bejeweled o se sia GameOver.
L’input della funzione è una matrice NxN di byte dove il valore rappresenta uno dei possibili 256 colori (non è detto che siano in uso tutti).
A giudicare la soluzione sarà il nonno stesso. -quack</description>
    </item>
    
    <item>
      <title>Lunedì quiz 8</title>
      <link>https://aovestdipaperino.com/posts/lunedi-quiz-8.aspx/</link>
      <pubDate>Mon, 29 Nov 2010 20:11:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/lunedi-quiz-8.aspx/</guid>
      <description>Input: un numero intero non tanto grande.
Output: un array contenente i nodi foglia di un albero binario inverso completamente bilanciato di profondità pari al valore in input.
Per albero binario inverso intendo un albero in cui ogni nodo ha un puntantore al nodo “padre”.
È responsabilità dell’algoritmo allocare un numero necessario e sufficiente di nodi (il campo “data” non è necessario da inizializzare).
-quack</description>
    </item>
    
    <item>
      <title>Lunedì quiz - 7</title>
      <link>https://aovestdipaperino.com/posts/lunedi-quiz-7.aspx/</link>
      <pubDate>Mon, 22 Nov 2010 08:11:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/lunedi-quiz-7.aspx/</guid>
      <description>Scrivere un algoritmo super performante in grado di analizzare il risultato di partite tic-tac-toe e dichiarare se c’è il vincitore per ogni partita. Si assume che le partite abbiano risultati validi quindi la risposta è limitata ad 1, X o 2.

-quack</description>
    </item>
    
    <item>
      <title>Lunedì quiz - 6</title>
      <link>https://aovestdipaperino.com/posts/lunedi-quiz-6.aspx/</link>
      <pubDate>Mon, 15 Nov 2010 19:11:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/lunedi-quiz-6.aspx/</guid>
      <description>Creare un iteratore che riceva un altro iteratore in input e rimuova i duplicati consecutivi dall’iterazione; evitare possibilmente le facility di iterazione del C# 2.0. La lista di input è fatta di interi (positivi e negativi) marcata da 0 come elemento finale.
Esempio:
input: 1,2,2,2,2,2,5,2,3,1,1,1,6,0; output: 1,2,5,2,3,1,6,0.
Domanda bonus: 
Si possiedono due uova identiche che si rompono se lanciate da una specifica altezza. Stabilire da quale piano di un grattacielo di 100 piani le uova si rompono minimizzando per il caso peggiore.</description>
    </item>
    
    <item>
      <title>Weekend coding</title>
      <link>https://aovestdipaperino.com/posts/weekend-coding.aspx/</link>
      <pubDate>Fri, 29 Oct 2010 22:10:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/weekend-coding.aspx/</guid>
      <description>Uno degli spezzoni più topici di “Office Space” è il momento in cui il protagonista chiede al vicino di casa che cosa farebbe se avesse un conto in banca multi milionario: spiega che il modo in cui una persona risponde da indicazioni sulle proprie inclinazioni e trovare un lavoro che risponda a tali inclinazioni è fonte di quotidiana serenità. Il vicino di casa per la verità un po’ rustico risponde che con un tal conto in banca farebbe un mini Bunga Bunga party (two chicks at the same time, man!</description>
    </item>
    
    <item>
      <title>Lunedì quiz - 3</title>
      <link>https://aovestdipaperino.com/posts/lunedi-quiz-3.aspx/</link>
      <pubDate>Sun, 24 Oct 2010 19:10:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/lunedi-quiz-3.aspx/</guid>
      <description>Mi porto un po’ avanti con un quiz molto facile rispetto ai soliti. La difficoltà più grossa è descrivere un tale algoritmo per telefono.
Dato un albero binario di nodi contenenti due valori per ogni nodo (X, Y) e ordinato per X, trovare e stampare tutti i nodi che hanno entrambi i valori più grandi di un nodo di riferimento.
In poche parole, implementare: PrintNodes(node root, node referenceNode)
-quack
(*)ordinato per X: tutti i nodi a sx di un determinato nodo K hanno X &amp;lt;= X(K)</description>
    </item>
    
    <item>
      <title>Lunedì quiz - 2</title>
      <link>https://aovestdipaperino.com/posts/lunedi-quiz-2.aspx/</link>
      <pubDate>Mon, 18 Oct 2010 16:10:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/lunedi-quiz-2.aspx/</guid>
      <description>Mentre il nonno termina la stesura dell’algoritmo precedente, il resto della tribù può focalizzarsi sul nuovo quiz.
Input: Array di interi positivi con cardinalità N; ogni elemento appartiene al range 1…N-1; trovare un elemento duplicato (ce ne potrebbe essere più di uno). L’array è sconquassabile a piacere. Fonte interna.</description>
    </item>
    
    <item>
      <title>Lunedì quiz - 1</title>
      <link>https://aovestdipaperino.com/posts/lunedi-quiz-1.aspx/</link>
      <pubDate>Mon, 11 Oct 2010 19:10:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/lunedi-quiz-1.aspx/</guid>
      <description>Periodo di colloqui, domande e rompicapo. Questo è interessante, fonte Amazon.com
Data una matrice binaria (n x m), individuare la grandezza del blocco di ‘uni’ contigui (N, S, O ed E) più grande. Ad esempio nella matrice qui sotto 0011000000 0011000100 0011001100 0001111100 0000000001 1111111111 0011110010 0000001111 0000000010 il blocco più grande è quello evidenziato con 21 uni.
-quack</description>
    </item>
    
    <item>
      <title>Disfuctioning JavaScript</title>
      <link>https://aovestdipaperino.com/posts/disfuctioning-javascript.aspx/</link>
      <pubDate>Wed, 22 Sep 2010 20:09:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/disfuctioning-javascript.aspx/</guid>
      <description>La release seppur beta di IE9 ha portato scompiglio dappertutto. Anche questo blog, la parte che gestisce l’editor online basata su TinyMCE, ha subito qualche dissestamento (?). Ero arrivato a scegliere TinyMCE dopo aver provato un po’ di tutto per due motivi essenziali:
 mi sembrava abbastanza stabile e coerente con l’output supportava correttamente le citazioni non ricorsive Purtroppo però col tempo anche TinyMCE ha smesso di essere Tiny e capire dove fosse la fonte dei guai è diventato difficile.</description>
    </item>
    
    <item>
      <title>Privacy 101</title>
      <link>https://aovestdipaperino.com/posts/privacy-101.aspx/</link>
      <pubDate>Wed, 03 Mar 2010 18:03:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/privacy-101.aspx/</guid>
      <description>Giro una notizia che sta passando abbastanza in sordina ma che dovrebbe fare immediatamente il giro del mondo.
Microsoft ha rilasciato l’SDK di U-Prove di cui avevo già parlato in maniera flash in precedenza. La parte più interessante è questa:
 It is made available under the BSD open-source license.
 Vittorio Bertocci aka Vibro.Net ha intervistato Stefan Brands, il ricercatore dietro questa importante innovazione. L’intervista è estremamente godibile per gli appassionati dell’argomento cryptografia; Vittorio la definisce in una parola sola come cryptopr0n.</description>
    </item>
    
    <item>
      <title>Halloween nightmare</title>
      <link>https://aovestdipaperino.com/posts/halloween-nightmare.aspx/</link>
      <pubDate>Tue, 02 Mar 2010 21:03:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/halloween-nightmare.aspx/</guid>
      <description>Mentre giochicchiavo con alcuni database engine scritti interamente in C#, mi sono imbattuto in una spettacolare manifestazione di un baco scoperto già nel 1976. Trentaquattro anni, quasi più vecchio di me, eppure…
Gli aspetti interessanti sono due. Quello storico, il cui punto di partenza è questo articolo su Wikipedia. Quello tecnico contenuto in questo blog post di Craig Freedman.
La manifestazione del baco che ho incontrato io è piuttosto banale:</description>
    </item>
    
    <item>
      <title>Dark side tale</title>
      <link>https://aovestdipaperino.com/posts/dark-side-tale.aspx/</link>
      <pubDate>Mon, 08 Feb 2010 20:02:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/dark-side-tale.aspx/</guid>
      <description>Compro una scheda hardware di cui mi riprometto di condividere maggiori dettagli e che viene venduta in due bundle diversi.
1. Scheda + Applicazione A
2. Scheda + Plugin per applicazione B
Siccome mi interessa tantissimo il secondo bundle, comincio ad informarmi su come comprarlo. Sul mercato americano non è mai comparso. Sembra disponibile forse in Giappone ed è in vendita al pubblico in Australia, ma il negozio online non sembra voler spedire verso gli Stati Uniti.</description>
    </item>
    
    <item>
      <title>Expression Tree</title>
      <link>https://aovestdipaperino.com/posts/expression-tree.aspx/</link>
      <pubDate>Mon, 11 Jan 2010 06:01:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/expression-tree.aspx/</guid>
      <description>Se c’è una attività lavorativa che mi piace più dello scrivere codice è quella di “rimuovere codice” extra. Ecco una nuova versione dei “metodi dinamici di delegazione” che ho scoperto mentre per lavoro mi documentavo sulla libreria degli ET della versione 4.0 del framework .net:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private TypeConstruct constructor;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegate object TypeConstruct();
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static TypeConstruct CreateConstructor(Type t)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NewExpression call = Expression.New(t);
&amp;nbsp;
&amp;nbsp;</description>
    </item>
    
    <item>
      <title>L’Heisenbug perfetto</title>
      <link>https://aovestdipaperino.com/posts/l-heisenbug-perfetto.aspx/</link>
      <pubDate>Wed, 16 Dec 2009 22:12:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/l-heisenbug-perfetto.aspx/</guid>
      <description>Pochi giorni fa mi sono riscontrato nel cosidetto Heisenbug perfetto. Di solito gli Heisenbug hanno a che fare con il multi-threading circostanza per cui aggiungere qualche breakpoint al codice sfasa il timing dell’applicazione e per tanto potrebbe causare la scomparsa di un baco sotto osservazione. Nel mio caso non c’era nessun multithreading, ma bastava semplicemente “osservare” il comportamento dell’oggetto misterioso per deviarne il flusso di esecuzione. Ridotto al minimo l’Heisenbug è descritto qui sotto:</description>
    </item>
    
    <item>
      <title>Tor exit node lookup in ASP.Net</title>
      <link>https://aovestdipaperino.com/posts/tor-exit-node-lookup-in-asp-net.aspx/</link>
      <pubDate>Thu, 10 Dec 2009 20:12:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/tor-exit-node-lookup-in-asp-net.aspx/</guid>
      <description>Potrebbe tornare utile a qualcun altro:
using System.Web;
using System.Net;
&amp;nbsp;
namespace TorHelper
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; public class TorHelper
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; const string TOR_EXIT_IP = &#34;127.0.0.2&#34;;
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static string ResolveName(string name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string ip = (string) HttpContext.Current.Cache[name];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ip == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip = ResolveDNS(name);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpContext.Current.Cache[name] = ip;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ip;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static string ResolveDNS(string name)</description>
    </item>
    
    <item>
      <title>Installare un server Mercurial su WHS</title>
      <link>https://aovestdipaperino.com/posts/installare-un-server-mercurial-su-whs.aspx/</link>
      <pubDate>Fri, 30 Oct 2009 00:10:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/installare-un-server-mercurial-su-whs.aspx/</guid>
      <description>Dopo l’upgrade del serverozzo ho dovuto reinstallare il server Mercurial. Ho deciso di farlo da zero per segnarmi tutti i passi nel caso debba rifarlo su un altro (virtual) PC.
La procedura che ho usato è quella indicata in questo post che spiega come installare e configurare Python, dove prelevare i file e come configurare IIS in modo tale che il server sia accessibile via HTTP.
Dopo di che ci sono da notare un paio di cose: con la versione 1.</description>
    </item>
    
    <item>
      <title>Risorse per il WebMaster .Net #1</title>
      <link>https://aovestdipaperino.com/posts/risorse-per-il-webmaster-net-1.aspx/</link>
      <pubDate>Thu, 16 Jul 2009 00:07:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/risorse-per-il-webmaster-net-1.aspx/</guid>
      <description>Sparo un po’ di link che ho trovato molto interessanti per chi vuol giocare con ASP.Net e jQuery.  jQuery file tree, un mini-explorer AJAX per jQuery Manipolazioni di immagini per CMS Il lato oscuro dei file upload Come invocare un metodo statico di una webpage via JavaScript Come implementare un file upload con tanto di progress bar Flot, libreria jQuery per il plotting di grafici. Sensazionale, sembra un plugin Flash Throbblers e generatori:</description>
    </item>
    
    <item>
      <title>Onda d’urto</title>
      <link>https://aovestdipaperino.com/posts/onda-d-urto.aspx/</link>
      <pubDate>Mon, 13 Jul 2009 20:07:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/onda-d-urto.aspx/</guid>
      <description>In questi 2 o 3 giorni il blog ha subito una vera e propria onda d&amp;rsquo;urto causata dall&amp;rsquo;effetto a cascata di un paio di cosette:
 la ricerca del &amp;ldquo;baco&amp;rdquo; (un po&amp;rsquo; stupida come definizione, I am sorry, ma tre tazze sono comunque state assegnate)  un sovraccarico temporaneo una regressione in NVelocity  La regressione &amp;egrave; stata tutta colpa mia. Avevo gi&amp;agrave; sistemato il baco ma non avevo pensato di proporre la patch; e cos&amp;igrave; dopo aver aggiornato i sorgenti alla versione SVN, il baco &amp;egrave; riapparso.</description>
    </item>
    
    <item>
      <title>Regex &amp; Lambda</title>
      <link>https://aovestdipaperino.com/posts/regex-lambda.aspx/</link>
      <pubDate>Fri, 03 Jul 2009 00:07:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/regex-lambda.aspx/</guid>
      <description>Prima della cura:
private static string FormatLinks(string input, bool insideLink)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; MatchCollection matches = inlineUrls.Matches(input);
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (matches.Count == 0)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return input;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuilder sb = new StringBuilder(input.Length * 2);
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; int inputIndex = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (Match tag in matches)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // add the normal text between the &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // current index and the index of the current tag</description>
    </item>
    
    <item>
      <title>Anti-pattern: pausa caffè</title>
      <link>https://aovestdipaperino.com/posts/anti-pattern-pausa-caffe.aspx/</link>
      <pubDate>Thu, 02 Jul 2009 18:07:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/anti-pattern-pausa-caffe.aspx/</guid>
      <description>Durante i miei trascorsi universitari ho potuto notare che le “materie” che mi hanno arricchito di più sono sempre state quelle più orientate alla teoria che alla pratica. La cosa si è rivelata lampante durante la preparazione dell’esame di “Sistemi II” che richiedeva la presentazione di un caso di studio dall’analisi al codice finale. L’esame ha avuto risvolti tragicomici così eclatanti che sebbene abbia difficoltà a ricordare la data della seduta di laurea, non ho alcuna difficoltà a ricordare quel maledetto 28 Maggio 1993.</description>
    </item>
    
    <item>
      <title>Debugging</title>
      <link>https://aovestdipaperino.com/posts/debugging.aspx/</link>
      <pubDate>Mon, 15 Jun 2009 07:06:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/debugging.aspx/</guid>
      <description>Ho deciso di dare un’occhiata ad un pezzo di codice di Blogoo che aveva ricevuto lamigliore benedizione possibile, quella di ore ed ore di volo. L’ho fatto dopo aver letto la recensione di Jeff di un libro dedicato alle Regular Expression. A differenza del recensore le RegEx mi stanno sempre un po’ indigeste, ma avevo un pezzo di codice in decadimento in attesa di essere sistemato con qualche botta di refactoring (e non intendo refuctoring).</description>
    </item>
    
    <item>
      <title>Standard e trasparenza</title>
      <link>https://aovestdipaperino.com/posts/standard-e-trasparenza.aspx/</link>
      <pubDate>Tue, 02 Jun 2009 22:06:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/standard-e-trasparenza.aspx/</guid>
      <description>Ieri giochicchiavo con una piccola feature da inserire in Blogoo che avevo stimato in mezz’ora di research and development (ma poi è andata a finire in leggera contro-tendenza). Volevo fare in modo che nel momento in cui si invia un commento comparisse una finestra trasparente con una ruota che gira stile boot loader di OS X. La parte più difficile dell’impresa è stata trovare la gif animata: l’avevo vista in giro usata come avatar in diversi forum, ma non ne ho mai annotato la URL e ritrovarla è stata una missione quasi impossibile.</description>
    </item>
    
    <item>
      <title>L’arte del repro</title>
      <link>https://aovestdipaperino.com/posts/l-arte-del-repro.aspx/</link>
      <pubDate>Thu, 28 May 2009 00:05:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/l-arte-del-repro.aspx/</guid>
      <description>Qualcuno si ricorderà il baco che causava il crash di IE8 con le pagine del mio blog contenenti il video di YouTube:
(apropò, grazie a tutti per la segnalazione!)
Dopo un paio di settimane di dialogo via email con quelli di IE8 mi son deciso ad alzare la cornetta e parlare con uno dei capoccia a voce. Gira e rigira mi son riproposto di dimostrare la mia tesi, ovvero che il crash fosse dovuto a YouTube + TinyMCE, con una pagina HTML creata ad hoc.</description>
    </item>
    
    <item>
      <title>Il pericolo è il mio mestiere</title>
      <link>https://aovestdipaperino.com/posts/il-pericolo-e-il-mio-mestiere.aspx/</link>
      <pubDate>Wed, 20 May 2009 22:05:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/il-pericolo-e-il-mio-mestiere.aspx/</guid>
      <description>Il numero di Giugno della rivista Technet disponibile online dedica ampio spazio all’Application Compatibility Toolkit giunto da pochi giorni alla versione 5.5. La seguente figura è tratta dal primo articolo introduttivo in cui Chris Jackson parla di quali acrobazie un Data Collection Package (DCP) debba fare per poter essere eseguito sui PC da inventariare: La parte tratteggiata in verde rappresenta il DCP così come era concepito nelle versioni precedenti alla 5.</description>
    </item>
    
    <item>
      <title>Open Document Mess</title>
      <link>https://aovestdipaperino.com/posts/open-document-mess.aspx/</link>
      <pubDate>Thu, 26 Feb 2009 22:02:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/open-document-mess.aspx/</guid>
      <description>Disclaimer: quello che scrivo è sempre e solo frutto del mio pensiero ma vale ancor di più in questo post.
Dico la mia sulla questione dei formati aperti cominciando con uno sguardo al passato basato solo sulla mia memoria. Il monopolio di Office, a differenza delle teorie più o meno dietrologiche che circondano quello di Windows, è un monopolio che si è affermato in maniera commerciale. WordPerfect ad esempio negli anni a cavallo tra fine ‘80 e inizio ‘90 era il word processor standard de facto anche se oggi è difficile a credersi.</description>
    </item>
    
    <item>
      <title>Dancing in the Moonlight</title>
      <link>https://aovestdipaperino.com/posts/dancing-in-the-moonlight.aspx/</link>
      <pubDate>Thu, 12 Feb 2009 04:02:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/dancing-in-the-moonlight.aspx/</guid>
      <description>Moonlight ha raggiunto la mitica milestone 1.0
Le mie più sincere congratulazioni vanno al grandissimo Miguel da cui tanti hanno parecchio da imparare. Anche se ritengo che la milestone più emozionante risale ad una ventina di giorni fa, quando la cerimonia di insediamento del nuovo presidente era di fatto diventata accessibile via internet al 99.9% degli utenti (vabbè sto esagerando).
Dietro questo rilascio c’è stata tanta cooperazione:
 Microsoft worked late last night to get us access to the code that will be used during the inauguration so we could test it with Moonlight.</description>
    </item>
    
    <item>
      <title>Lambdas</title>
      <link>https://aovestdipaperino.com/posts/lambdas.aspx/</link>
      <pubDate>Mon, 02 Feb 2009 06:02:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/lambdas.aspx/</guid>
      <description>Lo sapevo che prima o poi sarei diventato addicted: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public delegate void AsyncVoidMethodHelper();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void RunAsync(int timeout, AsyncVoidMethodHelper method)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IAsyncResult result = method.BeginInvoke(null, null);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result.AsyncWaitHandle.WaitOne(timeout);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void Main(string[] args)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string result = String.Empty;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RunAsync(50, delegate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread.Sleep(10);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&#34;you should see this&#34;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = &#34;a&#34;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RunAsync(50, delegate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread.Sleep(100);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&#34;you should _NOT_ see this&#34;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = &#34;b&#34;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&#34;result should be &#39;a&#39;. =&amp;gt; &#39;{0}&#39;&#34;, result);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }</description>
    </item>
    
    <item>
      <title>Heisenbug</title>
      <link>https://aovestdipaperino.com/posts/heisenbug.aspx/</link>
      <pubDate>Sun, 02 Nov 2008 21:11:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/heisenbug.aspx/</guid>
      <description>Mi sono imbattuto nella definizione geniale (anche se leggermente scorretta) di questo tipo di baco. Geniale in quanto è bastato il nome per capire esattamente di cosa si trattasse: ovvero di bachi che cambiano il loro comportamento se osservati attraverso il microscopio di un debugger (di solito hanno a che vedere con l’inizializzazione delle variabili). Wikipedia fa le pulci a questa definizione osservando che tale tipo di effetto è conosciuto come l’observer effect, ma è spesso confuso appunto con il principio di indeterminazione di Heisenberg.</description>
    </item>
    
    <item>
      <title>HTML Sanitization</title>
      <link>https://aovestdipaperino.com/posts/html-sanitization.aspx/</link>
      <pubDate>Mon, 20 Oct 2008 21:10:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/html-sanitization.aspx/</guid>
      <description>Ho letto con interesse l’ultimo post di Jeff aka CodingHorror riguardo la “disinfettazione” dell’HTML. L’articolo vale la pena di essere letto ed i link valgono la pena di essere visitati.
Jeff conclude il post con una affermazione buona e giusta ripresa da Joel Spolsky:&amp;nbsp; “If it&#39;s a core business function -- do it yourself, no matter what.”


Affermazione sulla quale concordo ma che secondo me mal si applica al caso specifico del nuovo sito di Jeff (www.</description>
    </item>
    
    <item>
      <title>Se voi foste il developer - Ottobre 2008</title>
      <link>https://aovestdipaperino.com/posts/se-voi-foste-il-developer-ottobre-2008.aspx/</link>
      <pubDate>Thu, 16 Oct 2008 20:10:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/se-voi-foste-il-developer-ottobre-2008.aspx/</guid>
      <description>Prendo spunto dalla settimana enigmistica e la rubrica (?) “se voi foste il giudice” con un quizzillo per programmatori ispiratomi da un libro[1] molto bello (quanto accademico).
Data una stringa in input (S) e un insieme noto a priori di prefissi (xyz, abc, …) scrivere un algoritmo estremamente efficiente che ritorni il prefisso giusto se la stringa S comincia per uno dei prefissi. Nota: i prefissi hanno lunghezza diversa. Se la stringa matcha due prefissi diversi, restituire il prefisso più lungo.</description>
    </item>
    
    <item>
      <title>Windows Live Writer Post Download Plugin</title>
      <link>https://aovestdipaperino.com/posts/windows-live-writer-post-download-plugin.aspx/</link>
      <pubDate>Mon, 15 Sep 2008 09:09:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/windows-live-writer-post-download-plugin.aspx/</guid>
      <description>English version of these instructions.
Come promesso, questo è il post sul plugin da premio Nobel che mi sono auto assegnato.
Il problema: tempo fa cercando sul mio blog, ho scoperto che un post antico non si visualizzava correttamente in quanto l’immagine hot-linkata su WikiPedia era stata rinominata. Siccome la piattaforma ancora non supporta l’editing on-line (Всему свое время, direbbero i russi), l’alternativa era quella di aprire gli ultimi 500 post via Windows Live Writer, trovare quello giusto, editarlo e ripubblicarlo.</description>
    </item>
    
    <item>
      <title>Source control</title>
      <link>https://aovestdipaperino.com/posts/source-control.aspx/</link>
      <pubDate>Fri, 08 Aug 2008 19:08:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/source-control.aspx/</guid>
      <description>Da qualche parte avevo letto qualcosa sulla falsa riga di se il tuo progetto non vale un fico secco, non lo mettere in un source control system.
Visto che la complessità di Blogoo è cominciata a salire parecchio, mi è sembrato sensato cercare di pararmi le spalle utilizzando qualcosa di già pronto e possibilmente economico. La mia passata esperienza di Source Control è quasi variegata: sono passato da un source control infimo (si chiamava SLIME) a Source Depot passando per quell’accrocco bestiale che è stato Visual Source Safe.</description>
    </item>
    
    <item>
      <title>Ballmer peak, project mess e coding panic</title>
      <link>https://aovestdipaperino.com/posts/ballmer-peak-project-mess-e-coding-panic.aspx/</link>
      <pubDate>Thu, 03 Jul 2008 04:07:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/ballmer-peak-project-mess-e-coding-panic.aspx/</guid>
      <description>In questi giorni solo al centro di un vortice estremamente burrascoso. Mentre sto lavorando ad un progetto, su cui già sono in ritardo rispetto alle scadenze di ben più di qualche giorno, arriva il mio capo per dirmi che un altro progetto è in una situazione super critica e ha bisogno di un seasoned developer per tentare una missione impossibile: mettere mani a del codice altrui ASP.Net cercando di capire come funziona e cosa modificare, il tutto senza avere neanche il lusso di poter sbagliare neanche una volta (aka Project Mess).</description>
    </item>
    
    <item>
      <title>Passa codice</title>
      <link>https://aovestdipaperino.com/posts/passa-codice.aspx/</link>
      <pubDate>Thu, 26 Jun 2008 06:06:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/passa-codice.aspx/</guid>
      <description>Leggendo il blog di Coding Horror, ho avuto occasione di riflettere sulla seguente frase:
 Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live.
 È un paio di giorni che mi sento un po’ shining:
L’aggiunta di una piccola feature nel prodotto a cui sto lavorando, così piccola che si può descrivere con pochissime pagine fin nei minimi dettagli, mi ha costretto a riscrivere quasi ex-novo del codice non mio.</description>
    </item>
    
    <item>
      <title>Refuctoring in C# 3.0</title>
      <link>https://aovestdipaperino.com/posts/refuctoring-in-c-3-0.aspx/</link>
      <pubDate>Tue, 08 Apr 2008 00:04:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/refuctoring-in-c-3-0.aspx/</guid>
      <description>Con la nuova versione del linguaggio C# (3.0) rilasciata con Visual Studio sono state introdotte alcune nuove sintassi che, secondo la mia personale teoria che il codice &#34;compatto&#34; sia scarsamente leggibile, rendono il refuctoring un gioco da ragazzi. Ne elenco alcune:
Variabili locali tipizzate implicitamente
Un esempio vale più di mille parole:
var i = 10; // i è un int var j = &#34;hello&#34; // j è una string Si ottengono molti punti refuctoring se la dichiarazione var è usata per definire il valore di ritorno di una funzione:</description>
    </item>
    
    <item>
      <title>Piattaforma</title>
      <link>https://aovestdipaperino.com/posts/piattaforma.aspx/</link>
      <pubDate>Fri, 07 Mar 2008 20:03:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/piattaforma.aspx/</guid>
      <description>Sono sicuramente di parte, ma quando leggo certi articoli mi viene da pensare che Windows è la piattaforma più friendly che ci sia. I miglioramenti apportati con il rilascio dei prodotti 2008 sono notevoli:
Building Great AJAX Applications from Scratch Using ASP.NET 3.5 and Visual Studio 2008 (devo ammettere che AJAX non mi piace, ma vedere questa demo me lo ha fatto apprezzare un po&#39;)
ASP.NET MVC Preview 2 (Model View Controller + ASP.</description>
    </item>
    
    <item>
      <title>Peccato e redenzione</title>
      <link>https://aovestdipaperino.com/posts/peccato-e-redenzione.aspx/</link>
      <pubDate>Wed, 06 Feb 2008 16:02:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/peccato-e-redenzione.aspx/</guid>
      <description>Mentre lavoricchiavo alla mia piattaforma di blogging (che ha gi&amp;agrave; pure un nome!) &amp;egrave; saltato fuori un peccato mortale:
Per fortuna c&#39;&amp;egrave; stata la redenzione immediata:
 -quack
Technorati tags: Cazzate </description>
    </item>
    
    <item>
      <title>PowerShell: parliamone serenamente</title>
      <link>https://aovestdipaperino.com/posts/powershell-parliamone-serenamente.aspx/</link>
      <pubDate>Fri, 01 Feb 2008 15:02:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/powershell-parliamone-serenamente.aspx/</guid>
      <description>Rubo il titolo ad un gi&amp;agrave; citato post di Enrico, per parlare stavolta di PowerShell visto che &amp;egrave; stata pi&amp;ugrave; volte citata nei commenti di questo blog. Non sono un esperto di Command Line Interface (CLI o shell), non sono mai stato un sys-admin in vita mia, e perci&amp;ograve; mi limiter&amp;ograve; ad un paio di osservazioni di superficie. Prima osservazione: le shell non dovrebbero essere intese come strumenti per l&#39;utente finale.</description>
    </item>
    
    <item>
      <title>Every build you break</title>
      <link>https://aovestdipaperino.com/posts/every-build-you-break.aspx/</link>
      <pubDate>Sat, 08 Dec 2007 17:12:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/every-build-you-break.aspx/</guid>
      <description> </description>
    </item>
    
    <item>
      <title>Metodi dinamici di delegazione</title>
      <link>https://aovestdipaperino.com/posts/metodi-dinamici-di-delegazione.aspx/</link>
      <pubDate>Thu, 29 Nov 2007 15:11:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/metodi-dinamici-di-delegazione.aspx/</guid>
      <description>Questi giorni sto giochicchiando con i DynamicMethod di .Net e ho pensato di condividere. Lo scopo di tali classi - conosciute anche come lightweight code generation - &amp;egrave; di generare codice IL (il P-code di .Net) dinamicamente. Accoppiandoli con i metodi delegate (puntatori a funzione) si possono fare cose veramente interessanti. Gli esempi che seguono sono alquanto banali (il classico &#34;Hello World&#34;), ma con la LCG si possono fare cose moooolto deliziose: esempio 1, esempio 2.</description>
    </item>
    
    <item>
      <title>Brevetto ep287578</title>
      <link>https://aovestdipaperino.com/posts/brevetto-ep287578.aspx/</link>
      <pubDate>Tue, 20 Nov 2007 16:11:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/brevetto-ep287578.aspx/</guid>
      <description>Il brevetto ep287578, non so se sia un numero ufficiale ma come titolo fa figo, &amp;egrave; quello considerato come il &#34;brevetto base MP3&#34;.Mai pi&amp;ugrave; che mai vale il disclaimer quello che segue &amp;egrave; farina del mio sacco personale.  La mia microanalisi che segue si basa su una voce wikipedia per un motivo semplice: se wikipedia su questi articoli fosse di parte penderebbe dal lato della &#34;fondazione&#34;. Cominciamo dal LAME. In passato &amp;egrave; stato detto che il codec LAME &amp;egrave; &#34;</description>
    </item>
    
    <item>
      <title>Interviste moderne</title>
      <link>https://aovestdipaperino.com/posts/interviste-moderne.aspx/</link>
      <pubDate>Wed, 14 Nov 2007 21:11:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/interviste-moderne.aspx/</guid>
      <description>Accadde veramente, in quale punto dello spazio-tempo &amp;egrave; poco rilevante:
 Intervistatore: mi spiegheresti come districarsi con la concurrency nel caso di una WebApp che accede ad un DB in scrittura (tipo accenni alla optimistic e pessimistic concurrency)?
Addetto: [blateramento di 5 minuti, nessun accenno alle due strategie, una menzione del locking del codice nel middle-tier]
Intervistatore: vabb&amp;eacute;, io avrei fatto cos&amp;igrave; (mostra un SQL UPDATE statement alla lavagna).
Addetto: {faccia perplessa}</description>
    </item>
    
    <item>
      <title>Overengineering</title>
      <link>https://aovestdipaperino.com/posts/overengineering.aspx/</link>
      <pubDate>Fri, 12 Oct 2007 02:10:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/overengineering.aspx/</guid>
      <description>Comincio a credere che quello di passare troppo tempo sul come migliorare una soluzione - laddove non sia strettamente necessario - stia diventando una piaga molto comune. In inglese hanno una sola parola, overengineering: un esempio [quasi] reale di quanto ho visto accadere pu&amp;ograve; essere di aiuto.
Richiesta di implementare HelloWorld in C#. La prima versione:
/// &amp;lt;summary&amp;gt; /// My hello world class /// &amp;lt;/summary&amp;gt; public class HelloWorld { static void Main(string[] args) { System.</description>
    </item>
    
    <item>
      <title>Mamma ho perso la password</title>
      <link>https://aovestdipaperino.com/posts/mamma-ho-perso-la-password.aspx/</link>
      <pubDate>Wed, 25 Jul 2007 15:07:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/mamma-ho-perso-la-password.aspx/</guid>
      <description>sottotitolo: che belle che sono le Rainbow Table
Nella mia esperienza&amp;nbsp;mi son fatto convinto che la cartina al tornasole&amp;nbsp;per&amp;nbsp;stabilire se qualcuno passa troppo tempo davanti ad un computer &amp;egrave; chiedere se ha mai dimenticato una password. Se la risposta &amp;egrave; affermativa, si ha a che fare con un geek (nel mio caso ho dimenticato pi&amp;ugrave;&amp;nbsp;volte una password!).
Mentre cazzeggiavo mi informavo sul web, mi sono imbattuto in ophcrack, un programma per crackare le password di Windows; tale programma fa uso delle cosidette Rainbow Table (d&#39;ora in poi semplicemente RT).</description>
    </item>
    
    <item>
      <title>Refuctoring</title>
      <link>https://aovestdipaperino.com/posts/refuctoring.aspx/</link>
      <pubDate>Thu, 19 Jul 2007 15:07:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/refuctoring.aspx/</guid>
      <description>Il refuctoring &amp;egrave; una pratica che tende ad aumentare la job-security e come tale non va confusa con il refactoring.
&amp;Egrave; infatti risaputo che:
&amp;nbsp;&amp;nbsp;
in quanto se il codice diventa pi&amp;ugrave; manutenibile, la job-security diminuisce.
Anche il refuctoring ha la sua teoria alle spalle su cui si possono trovare maggiori informazioni in questo PDF.
-enjoy
Technorati Tags: Cazzate, Codice </description>
    </item>
    
    <item>
      <title>FizzBuzz versione 2</title>
      <link>https://aovestdipaperino.com/posts/fizzbuzz-versione-2.aspx/</link>
      <pubDate>Wed, 25 Apr 2007 20:04:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/fizzbuzz-versione-2.aspx/</guid>
      <description>L&#39;altro giorno ho accennato al quesito FizzBuzz e chiacchierando sulle infinite possibilit&amp;agrave; di scriverne una versione mi &amp;egrave; venuta in mente una piccola variante che propongo ai soliti lettori intraprendenti.
Il questito FizzBuzz v.1 &amp;egrave; il seguente:
 Scrivere un programma che stampi i numeri da 1 a 100. Ma per i multipli di 3 stampare &#34;Fizz&#34; al posto&amp;nbsp;del numero; per i multipli di 5 stampare &#34;Buzz&#34; al posto del numero.</description>
    </item>
    
    <item>
      <title>Windows Live Writer plugin: footnote</title>
      <link>https://aovestdipaperino.com/posts/windows-live-writer-plugin_3a00_-footnote.aspx/</link>
      <pubDate>Thu, 05 Apr 2007 20:04:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/windows-live-writer-plugin_3a00_-footnote.aspx/</guid>
      <description>La palla di scrivere un post come quello di un paio di giorni fa, visto che il mio stile soffre da eccessi di &#34;incisivi&#34;, è stata quella della formattazione delle note a piè pagina. I maligni si potrebbero chiedere chi me l&#39;ha fatto fare. Anyway...
Onde ripeterlo senza farmi male, ho scritto un plugin per Windows Live Writer, il mio editor preferito. L&#39;idea è semplice, cliccando su &#34;Insert Footnote&#34; compare questa finestra di dialogo:</description>
    </item>
    
    <item>
      <title>Libro sulla scrivania: Aprile 2007</title>
      <link>https://aovestdipaperino.com/posts/libro-sulla-scrivania_3a00_-aprile-2007.aspx/</link>
      <pubDate>Tue, 03 Apr 2007 01:04:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/libro-sulla-scrivania_3a00_-aprile-2007.aspx/</guid>
      <description>Fedele al motto &#34;il disordine &amp;egrave; il mio equilibrio&#34; mantengo da anni un ufficio ed una scrivania piuttosto caotica (prometto una foto in seguito!)
In cima alla pila - una delle tante pile - dei libri c&#39;&amp;egrave; il nuovo acquisto, Code di Charles Petzold, che Jeff Atwood definisce una lettera d&#39;amore nei confronti dei computer (lo ammetto io non sono cos&amp;igrave; folle, ma qualcuno potrebbe non essere d&#39;accordo).
Il libro &amp;egrave; molto bello e come nello stile di Petzold, espone con un linguaggio chiaro concetti che potrebbero risultare anche alquanto astratti.</description>
    </item>
    
    <item>
      <title>Codice sporco</title>
      <link>https://aovestdipaperino.com/posts/codice-sporco.aspx/</link>
      <pubDate>Tue, 27 Mar 2007 04:03:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/codice-sporco.aspx/</guid>
      <description>Qualche volta bisogna pure sporcarsi le mani. -quack</description>
    </item>
    
    <item>
      <title>Risposta al language pop quiz</title>
      <link>https://aovestdipaperino.com/posts/risposta-al-language-pop-quiz.aspx/</link>
      <pubDate>Sat, 10 Mar 2007 17:03:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/risposta-al-language-pop-quiz.aspx/</guid>
      <description>Consider the abstract language L = {wcw | w is in (a|b)*}. L consists of all words composed of a repeated string of a&#39;s and b&#39;s separated by c, such as aabcaab. It can be proven that this language is not context free. This language abstracts the problem of checking that identifiers are declared before their use in a program. That is, the first w in wcw represents the declaration of the identifier w.</description>
    </item>
    
    <item>
      <title>Il caso dei trasferimenti lenti di messenger</title>
      <link>https://aovestdipaperino.com/posts/il-caso-dei-trasferimenti-lenti-di-messenger.aspx/</link>
      <pubDate>Mon, 27 Nov 2006 20:11:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/il-caso-dei-trasferimenti-lenti-di-messenger.aspx/</guid>
      <description>E&#39; da un po&#39; che sono molto scocciato dall&#39;infame messaggio &#34;If you are experiencing a slow transfer rate, click here to find out why&#34;. Ieri, armato di santa pazienza e di nuovo router di zecca (un&#39;altra storia da raccontare), ho cercato di capire PERCHE&#39;!
Alcuni indizi:
 non dipende dalla versione di messenger (succede sia&amp;nbsp;con la 8.1 Beta che con la 8.0) non dipende dal router (ne ho provati 4); o per lo meno: non dipende interamente dal router non dipende dall&#39;ISP: connesso direttamente al modem tutto sembra funzionare alla perfezione non dipende dall&#39;OS (in senso stretto): si verifica - in alcuni casi - anche su windows XP SP2 non dipende dai vari firewall: si verifica anche quando i firewall sono completamente disattivati non dipende dal settaggio dell&#39;UPnP del router: il problema si verifica anche quando l&#39;UPnP e&#39; attivato Quando pensavo ormai di essere sfigato e basta, ho installato messenger sul mio mediacenter (XP SP2) e tutto funzionava alla perfezione.</description>
    </item>
    
    <item>
      <title>La storia di Dancing Banana</title>
      <link>https://aovestdipaperino.com/posts/la-storia-di-dancing-banana.aspx/</link>
      <pubDate>Wed, 08 Nov 2006 23:11:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/la-storia-di-dancing-banana.aspx/</guid>
      <description>Era da un po&#39; che ho cominciato a notare le banane spopolare sui forum online (grazie alla formichina che mi ha mostrato la prima qualche anno fa). Ma ignoravo che - dietro questa emoticon - si celasse una vera e propria storia, ne mai avrei pensato di trovarla su wikipedia.
La scoperta l&#39;ho fatta oggi tramite il post su CodingHorror di un plugin per VS che permette di piazzare la mitica banana un po&#39; ovunque nell&#39;editor dell&#39;IDE.</description>
    </item>
    
    <item>
      <title>Is good to be right</title>
      <link>https://aovestdipaperino.com/posts/is-good-to-be-right.aspx/</link>
      <pubDate>Fri, 22 Sep 2006 07:09:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/is-good-to-be-right.aspx/</guid>
      <description>Poco prima del rilascio di DotNet 1.1 mi era stato assegnato un baco molto strano. In una situazione di multi-threading un pezzo di codice del dataset aveva cominciato a causare deadlocks. Siccome il baco non si manifestava nella versione 1.0, il baco era stato qualificato come regression. La cosa strana &amp;egrave; che lo specifico pezzo di codice non era mai stato modificato tra la versione 1.0 e la versione 1.1. Cos&#39;era successo: il baco era gi&amp;agrave; li, ma ben nascosto.</description>
    </item>
    
    <item>
      <title>Arghhh!</title>
      <link>https://aovestdipaperino.com/posts/arghhh_2100_.aspx/</link>
      <pubDate>Tue, 29 Aug 2006 05:08:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/arghhh_2100_.aspx/</guid>
      <description>Maledizione. Due ore di lavoro buttate al vento (oltre a due ore da mettere in preventivo per cercare il responsabile di questo crash!!)
NOTE TO SELF: Cercare al pi&amp;ugrave; presto un plugin VS per salvare ogni 2 minuti!</description>
    </item>
    
    <item>
      <title>Software gratis made in MS</title>
      <link>https://aovestdipaperino.com/posts/software-gratis-made-in-ms.aspx/</link>
      <pubDate>Fri, 25 Aug 2006 16:08:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/software-gratis-made-in-ms.aspx/</guid>
      <description>In questi giorni di reinstallazione forzata (per i maligni: col mio Dell c&#39;era una copia di XP home e ho voluto fare una fresh installation di XP pro) ho scoperto che uno dei tools che mi ha risparmiato un sacco di tempo &amp;egrave; made in MS. Trattasi di foldershare&amp;nbsp;e gira anche per Mac (per i fan di Linux, sorry) oltre ad essere supportato da alcuni NAS Iomega.
Alcuni giorni fa, dopo lunghe polemiche su cos&#39;&amp;egrave; un blog (mi riservo di dire la mia), Scoble ha pensato di linkare una lista di SW freeware e molto utile made in MS.</description>
    </item>
    
    <item>
      <title>Self generating SQL</title>
      <link>https://aovestdipaperino.com/posts/self-generating-sql.aspx/</link>
      <pubDate>Thu, 24 Aug 2006 20:08:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/self-generating-sql.aspx/</guid>
      <description>Sono sempre stato appassionato di codice autogenerante (molto bello uno dei teoremi di teoria della calcolabilit&amp;agrave; che dimostra l&#39;esistenza di codice self-generante).
Il problema: copiare una colonna da una tabella all&#39;altra in due database diversi (su server diversi, su computer diversi e magari su universi diversi capaci di parlarsi solo con un copia e incolla testuale)
La soluzione: generare una serie di&amp;nbsp;UPDATE statement dal primo DB e copia/incollare sul secondo DB.</description>
    </item>
    
    <item>
      <title>dasBlog2BlogML</title>
      <link>https://aovestdipaperino.com/posts/dasblog2blogml.aspx/</link>
      <pubDate>Mon, 21 Aug 2006 23:08:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/dasblog2blogml.aspx/</guid>
      <description>Allego il codice sorgente del tool che mi son scritto per fare la conversione dei post da dasBlog a BlogML poi importati in CommunityServer tramite apposito plugin.
L&#39;import usa un paio di features del DataSet (alcune delle quali abbastanza familiari per me ) mentre impiega l&#39;uso di un XML writer per l&#39;output.
Enjoy!</description>
    </item>
    
    <item>
      <title>Redirect risolto!!</title>
      <link>https://aovestdipaperino.com/posts/redirect-risolto_21002100_.aspx/</link>
      <pubDate>Mon, 21 Aug 2006 19:08:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/redirect-risolto_21002100_.aspx/</guid>
      <description>Sono riuscito a risolvere il problema del redirect dei vecchi feed. La soluzione, direi semplice, mi &amp;egrave; stata suggerita sul forum di community server. Il classico uovo di Colombo. Trattasi di implementare un semplice HttpModule che semplicemente sta l&amp;igrave; in ascolto della vecchia URL e fa un redirect se coincide con i vecchi feed. Il Codice, davvero semplicissimo tanto da starci intero in questo post, &amp;egrave; questo:
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;using System;</description>
    </item>
    
    <item>
      <title>Cambio blog (spero per l&#39;ultima volta!!)</title>
      <link>https://aovestdipaperino.com/posts/cambio-blog-_2800_spero-per-l_2700_ultima-volta_210021002900_.aspx/</link>
      <pubDate>Wed, 09 Aug 2006 00:08:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/cambio-blog-_2800_spero-per-l_2700_ultima-volta_210021002900_.aspx/</guid>
      <description>Quando qualche mese fa ho deciso di scrivere un blog, mi son subito preoccupato di cercare l&#39;applicazione che funzionasse meglio&amp;nbsp;per le mie esigenze. Avevo pochi requirements in testa e pensavo che - essendo un blog in fin dei conti un DB con 2 tabelle - avrei trovato subito l&#39;implementazione migliore. Listo qui i requirements e ditemi se hanno poco senso:   Che avesse un editor HTML wysiAwayg (=what you see is ALMOST what you get)&amp;nbsp;integrato (tipo wordpress)  Che fosse gratuito da hostare su un mio dominio  Che supportasse il posting in pi&amp;ugrave; categorie (perch&amp;eacute; al mondo siamo liberi)  Che fosse facile da personalizzare.</description>
    </item>
    
    <item>
      <title>WinFS &amp;#232; morto</title>
      <link>https://aovestdipaperino.com/posts/winfs-e_2700_-morto.aspx/</link>
      <pubDate>Mon, 26 Jun 2006 14:06:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/winfs-e_2700_-morto.aspx/</guid>
      <description>A quanto pare hanno staccato il respiratore&amp;nbsp;a questo progetto che era diventato tutto e niente. Il rammarico pi&amp;ugrave; grande &amp;egrave; stato il fatto che WinFS ha trascinato via con se ObjectSpaces: ora tocca aspettare il DLINQ per avere un layer di persistenza adeguato.
Per quanto mi riguarda, nonostance ci fossi un po&amp;#39; affezionato perch&amp;eacute; in passato ci ho lavorato anche io, sono contento che finalmente sia stata staccata la spina (un anno in ritardo)</description>
    </item>
    
    <item>
      <title>Firefox, security e sul concetto di demenza</title>
      <link>https://aovestdipaperino.com/posts/firefox_2c00_-security-e-sul-concetto-di-demenza.aspx/</link>
      <pubDate>Tue, 02 May 2006 01:05:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/firefox_2c00_-security-e-sul-concetto-di-demenza.aspx/</guid>
      <description>Leggiucchiando in giro son capitato sul sito dei FirefoxFlicks,&amp;nbsp;video promozionali per pubblicizzare Firefox, e mi son imbattuto nel secondo posto classificato. Davidonzo, mia nemesi totale (usa Ubuntu e quindi Firefox), commentando il video definisce demenza l&#39;essenza di IE. Un paio di note: nel 2005 ho installato anche io, quando IE fu tempestato da una miriade di bachi di sicurezza, Firefox. Mi ripeto ma&amp;nbsp;Firefox in passato, per il mancato supporto degli ActiveX causa di molti mali nel browser avverso, veniva svenduto come &#34;</description>
    </item>
    
    <item>
      <title>C# e IDisposable</title>
      <link>https://aovestdipaperino.com/posts/c_2300_-e-idisposable.aspx/</link>
      <pubDate>Tue, 25 Apr 2006 02:04:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/c_2300_-e-idisposable.aspx/</guid>
      <description>Due dei costrutti pi&amp;uacute; interessanti ed eleganti del C# sono il lock e lo using, che funzionano in maniera pressocch&amp;eacute; simile. La feature pi&amp;uacute; comoda di tali istruzioni &amp;eacute; la gestione automatica di quello che avviene implicitamente all&#39;uscita del blocco di codice (e quindi anche&amp;nbsp;in presenza di un eccezione). Nel caso del lock viene chiamato Monitor.Exit, nel caso di using viene chiamatoIDisposable.Dispose. Giorni fa, proprio tale &#34;automatismo&#34; mi ha dato un&#39;idea abbastanza simpatica e cio&amp;eacute; quella di estendere il concetto di &#34;</description>
    </item>
    
    <item>
      <title>Loops: Pop-quiz (2)</title>
      <link>https://aovestdipaperino.com/posts/loops_3a00_-pop_2d00_quiz-_2800_2_2900_.aspx/</link>
      <pubDate>Fri, 14 Apr 2006 07:04:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/loops_3a00_-pop_2d00_quiz-_2800_2_2900_.aspx/</guid>
      <description>Nel buon vecchio BASIC 1.0 (quando i numeri di linea erano obbligatori!) l&#39;unico modo per avere un loop era tramite FOR ... NEXT.  10 FOR I = 1 TO 10 20 ... 30 NEXT I  Per abbandonare prematuramente il loop bisognava fare qualcosa tipo: 20 I=15; GOTO 30 Oggi ho visto un pezzo di codice in C# che mi ha fatto venire un po&#39; di nostalgia: while(nRetries &amp;lt; allowedRetries){ .</description>
    </item>
    
    <item>
      <title>Design Patterns: il singleton</title>
      <link>https://aovestdipaperino.com/posts/design-patterns_3a00_-il-singleton.aspx/</link>
      <pubDate>Mon, 10 Apr 2006 06:04:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/design-patterns_3a00_-il-singleton.aspx/</guid>
      <description>Tra i vantaggi offerti dalla mia azienda, ci sono corsi interni di aggiornamento: uno dei pi&amp;uacute; interessanti che ho seguito &amp;eacute; stato quello sui design pattern diviso in 2 moduli. Ho scoperto che, per quanto ci si doti di buona volont&amp;aacute;, i pattern non si possono &amp;quot;capire&amp;quot; semplicemente leggendo un libro. La verit&amp;aacute; intrinseca dei pattern pu&amp;oacute; essere trasmessa efficacemente solo tramite uno scambio docente-alunno. Provate a cercare in giro ad esempio l&amp;#39;implementazione di un singleton in C#.</description>
    </item>
    
    <item>
      <title>Pop quiz (1)</title>
      <link>https://aovestdipaperino.com/posts/pop-quiz-_2800_1_2900_.aspx/</link>
      <pubDate>Sun, 12 Mar 2006 05:03:00 +0000</pubDate>
      
      <guid>https://aovestdipaperino.com/posts/pop-quiz-_2800_1_2900_.aspx/</guid>
      <description>Cosa c&#39;&amp;egrave; di sbagliato nel codice qui sotto (in C#)?
 try { .... } catch(XYZException e) { if(e.Message.StartsWith(&amp;quot;The server is offline&amp;quot;)) { // do something } else { // do something else } } &amp;nbsp;</description>
    </item>
    
  </channel>
</rss>