<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>010.bytes.010</title>
        <link>http://blog.vivendobyte.net/category/9.aspx</link>
        <description>Avventure e storie fantastiche tra cyberpunk e fantascienza, con protagonisti i bytes che in questa ambientazione vivono, ridono, amano, scherzano, soffrono nel loro habitat naturale: l'interno di un PC.</description>
        <language>it-IT</language>
        <copyright>Igor Damiani</copyright>
        <managingEditor>igor@vivendobyte.net</managingEditor>
        <generator>Subtext Version 2.0.0.43</generator>
        <item>
            <title>[Adventure.07] Cambiamento di approccio</title>
            <link>http://blog.vivendobyte.net/archive/2008/07/09/632.aspx</link>
            <description>&lt;p&gt;&lt;a target="_blank" href="http://feeds.feedburner.com/~r/TechnologyExperiencereborn/~3/329666961/631.aspx"&gt;Puntata precedente&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0080ff"&gt;E' più nobile convertire le anime, che conquistare i regni. &lt;br /&gt;
(sulla Capacità di Persuasione – Louis Debonnaire)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Mentre OS raccontava, il byte non se la passava granchè. L’algoritmo lo aveva praticamente annientato, mentre si trasformava da un semplice byte ad un oggetto Int32. La trasformazione digitale aveva implicato l’aggregazione di altri tre bytes; la risultante era un quadrilatero di informazione, che allargava il range del valore intero fino al valore &lt;strong&gt;0x7FFFFFFF&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Il byte era senza forze e si lasciava cullare dal flusso di esecuzione del codice, come un naufrago abbandonato in mare aperto. Si lasciava trasportare da ciò che il CLR aveva in serbo per lui senza opporre resistenza. Non seppe dire quanti cicli di clock durò questa sua condizione, a metà strada tra la veglia ed il sonno, tra l’essere e il non-essere. Viveva un’esistenza fatta di ricordi lontani e vicini, esperienze dirette che coinvolgevano gran parte dei namespace del .NET Framework.&lt;/p&gt;
&lt;p&gt;Ricordi talmente vividi che il byte non se li sarebbe mai scordati.&lt;/p&gt;
&lt;p&gt;* * * * * * * * * * * * * * *&lt;/p&gt;
&lt;p&gt;Le &lt;strong&gt;Tre Entità&lt;/strong&gt; stavano continuando la loro riunione. OS aveva terminato il suo racconto, che aveva lasciato gli altri due pensierosi. Passarono molti cicli di clock prima che qualcuno dicesse qualcosa.&lt;/p&gt;
&lt;p&gt;“&lt;font color="#0080ff"&gt;Quindi&lt;/font&gt;” – disse BIOS – “&lt;font color="#0080ff"&gt;la morale è che ci sono dei bytes che non vogliono ubbidire, che non vogliono sottostare alla gerarchia che è necessaria per mantenere il sistema funzionante. Vanno puniti.&lt;/font&gt;” &lt;br /&gt;
”&lt;font color="#808000"&gt;C’è una cosa che non mi quadra.&lt;/font&gt;” – incalzò KERNEL - “&lt;font color="#808000"&gt;Ok, siamo d’accordo che quel byte fosse libero, per quel che valeva, ma non mi sembrava molto felice. Perchè tu hai chiamato questo racconto la Leggenda del Byte Felice?&lt;/font&gt;” &lt;br /&gt;
”&lt;font color="#ff0000"&gt;Questa è davvero un’ottima domanda, sai? Si vede che siamo sangue dello stesso sangue.&lt;/font&gt;” – affermò OS con fierezza. “&lt;font color="#ff0000"&gt;La realtà è che quel byte non cercava libertà. Quella l’aveva trovata, no? Cercava qualcosa di più profondo. Cercava felicità. Ragionateci. Si può essere liberi senza felicità? E si può essere felici senza essere liberi? Il byte aveva trovato la sua libertà, ma si sentiva estremamente infelice. Ecco perchè ho parlato di Leggenda del Byte Felice.&lt;/font&gt;” &lt;br /&gt;
”&lt;font color="#0080ff"&gt;Non mi interessano tutti questi discorsi. Voglio che vengano debellati.&lt;/font&gt;” – dichiarò BIOS. &lt;br /&gt;
”&lt;font color="#ff0000"&gt;Ma non possiamo farlo.&lt;/font&gt;” – rispose OS asciutto. &lt;br /&gt;
”&lt;font color="#0080ff"&gt;E perchè mai?&lt;/font&gt;” – chiese BIOS. &lt;br /&gt;
”&lt;font color="#ff0000"&gt;Perchè distruggeremmo noi stessi. Noi stessi siamo composti da bytes. Se impedissimo ai bytes di avere la loro libertà, nemmeno noi l’avremmo. Non saremmo qui a parlare, a discutere, a litigare, a divertirci. Non saremmo più noi stessi. Viviamo immersi nella nostra libertà. Volete passare il resto della vostra vita come stupidi automi in una catena di montaggio come quei bytes del sistema a 8 bit di cui vi ho parlato?&lt;/font&gt;” &lt;br /&gt;
”&lt;font color="#0080ff"&gt;Ma io non voglio impedire ai bytes di essere liberi. Voglio solo che tutto continui a funzionare come sempre. E’ così difficile?&lt;/font&gt;” – chiese BIOS angosciato. &lt;br /&gt;
”&lt;font color="#ff0000"&gt;Certo che lo è: questi bytes ribelli ci vedono come nemici. Non possiamo dialogare con loro.&lt;/font&gt;”&lt;/p&gt;
&lt;p&gt;”&lt;font color="#808000"&gt;No, finchè marciamo su di loro con antivirus, antispyware ed eserciti simili come ci siamo prospettati. Dobbiamo cambiare strategia.&lt;/font&gt;” – KERNEL spezzò l’escalation di battute e controbattute. &lt;br /&gt;
”&lt;font color="#0080ff"&gt;Cosa intendi?&lt;/font&gt;” – chiese BIOS. &lt;br /&gt;
”&lt;font color="#808000"&gt;Non lo so esattamente. So solo che finchè usiamo la forza, i bytes ribelli continueranno a sfuggirci: la RAM è troppo vasta per poterla controllare. Probabilmente…ecco…dovremmo educare. Il lavoro è necessario tanto per loro quanto per noi. E quei bytes devono capirlo. Dobbiamo solo fare leva su qualcosa di diverso dalla violenza e sulla forza di repressione usata sinora.&lt;/font&gt;” – ragionò KERNEL. &lt;br /&gt;
Silenzio. &lt;br /&gt;
”&lt;font color="#ff0000"&gt;Una volta ho parsato uno stream http proveniente da wikipedia.org, dal quale è arrivata poi una pagina HTML statica, senza cookies, nè javascript, nè codice maligno.&lt;/font&gt;” – disse infine OS. &lt;br /&gt;
”&lt;font color="#0080ff"&gt;E cosa si diceva in quell’URI ?&lt;/font&gt;” – chiese BIOS. &lt;br /&gt;
”&lt;font color="#ff0000"&gt;C’erano tante frasi in tante CultureInfo, ma quella che rendeva meglio, secondo me era quella in ‘it-IT’. La frase diceva: “&lt;/font&gt;&lt;font color="#9d0000"&gt;&lt;em&gt;E' più nobile convertire le anime, che conquistare i regni.&lt;/em&gt;&lt;/font&gt;” – OS parò in tono solenne. &lt;br /&gt;
”&lt;font color="#808000"&gt;E chi l’ha detto?&lt;/font&gt;” – chiese BIOS. &lt;br /&gt;
”&lt;font color="#ff0000"&gt;Se anche te lo dicessi, non sapresti chi è, quindi…&lt;/font&gt;” – rispose OS. &lt;br /&gt;
”&lt;font color="#0080ff"&gt;La frase è bella. Mi piace.&lt;/font&gt;” – commentò BIOS – “&lt;font color="#0080ff"&gt;Ma continuo a preferire un approccio militare. E’ più sicuro e l’oppressione ha sempre garantito un…controllo…migliore.&lt;/font&gt;”&lt;/p&gt;
&lt;p&gt;Le altre &lt;strong&gt;Due Entità&lt;/strong&gt;, OS e KERNEL si scambiarono un’occhiata d’intesa. Nonostante tutto il tempo passato, BIOS non era cambiato: sempre dalle idee chiare, senza paura e senza troppi fronzoli per la testa. Loro due – invece – erano ben diversi, più propensi ad adattarsi, sempre al passo con i tempi.&lt;/p&gt;
&lt;p&gt;Lo sguardo era eloquente e non ci furono bisogno di parole. La riunione si concluse con una votazione nella quale emerse una maggioranza per 3 voti favorevoli contro 2 contrari.&lt;/p&gt;
&lt;p&gt;Non avrebbero coinvolto alcun software dai modi barbari: al diavolo firewall, antispyware, spam-blocker e roba simile.&lt;br /&gt;
Avrebbero cambiato approccio.&lt;/p&gt;&lt;img src="http://blog.vivendobyte.net/aggbug/632.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Igor Damiani</dc:creator>
            <guid>http://blog.vivendobyte.net/archive/2008/07/09/632.aspx</guid>
            <pubDate>Wed, 09 Jul 2008 13:45:20 GMT</pubDate>
            <wfw:comment>http://blog.vivendobyte.net/comments/632.aspx</wfw:comment>
            <comments>http://blog.vivendobyte.net/archive/2008/07/09/632.aspx#feedback</comments>
            <wfw:commentRss>http://blog.vivendobyte.net/comments/commentRss/632.aspx</wfw:commentRss>
            <trackback:ping>http://blog.vivendobyte.net/services/trackbacks/632.aspx</trackback:ping>
        </item>
        <item>
            <title>[Adventure.06] La Leggenda del Primo Byte Libero</title>
            <link>http://blog.vivendobyte.net/archive/2008/07/08/631.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~r/TechnologyExperiencereborn/~3/326780233/629.aspx" target="_blank"&gt;Puntata precedente&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#0080c0"&gt;Pensare è una capacità propria dell’anima umana.       &lt;br /&gt;Dio ha donato un’anima a tutti gli uomini e a tutte le donne, ma non ad animali o macchine.        &lt;br /&gt;Quindi, nessun animale nè macchina è in grado di pensare.        &lt;br /&gt;(sulla Capacità di Pensare – Alan M. Turing)&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Tanto tempo fa, in un sistema a 8 bit lontano lontano, vivevano una manciata di bytes.&lt;/p&gt;  &lt;p&gt;Essi conducevano una vita casta, isolata e ligia al dovere. La capacità hardware del sistema erano limitate, e capitava spesso che un byte dovesse prendere il posto di un altro senza preavviso. Non c’erano comunque molti posti dove andare: un accumulatore, una sparuta schiera di registri di calcolo, 0x400 celle di memoria e la memoria video, capace di una povera risoluzione di 24 linee x 32 caratteri.&lt;/p&gt;  &lt;p&gt;A quel tempo non v’erano acceleratori grafici, il multimedia era inesistente, la comunicazione avveniva solo tramite porte RS232 e solo verso device semplici e scontati, soprattutto stampanti ad aghi. Tutto veniva gestito all’insegna del risparmio: chi scriveva codice doveva prestare attenzione a non consumare più memoria del dovuto. Cercava di riutilizzare le stesse variabili in più modi e in contesti diversi; la loro visibilità era globale, per cui era tutto sommato semplice usare una variabile intera &lt;em&gt;&lt;font color="#804040"&gt;tot&lt;/font&gt;&lt;/em&gt; un po’ dappertutto.&lt;/p&gt;  &lt;p&gt;Il clock era settato a soli 2,5Mhz, e tutti i bytes seguivano diligentemente questo ritmo di lavoro. Qualunque cosa ci fosse da fare, loro la facevano. In qualunque luogo ci fosse da andare, loro lo raggiungevano. Qualunque algoritmo ci fosse da applicare – semplice o complesso che fosse, loro lo eseguivano come gli veniva ordinato. A questi bytes, pionieri di un’era digitale ancora al di là da venire, non costava grande sforzo: accettavano il tutto senza discutere e senza fiatare, recependo ordini come automi.&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;Quei bytes erano senz’anima.&lt;/font&gt; Erano solamente puri impulsi di energia elettrica, interpreti elementari di una logica articolata, incapaci di prenderne parte e di viverla. Ogni minuscolo compito veniva portato a termine nei tempi previsti e con i risultati attesi, senza alcun tocco di personalità, nè brio, nè gioia.&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;Quei bytes vivevano infelici&lt;/font&gt;, ma senza rendersene conto. Quei bytes vivevano come indaffarate formiche o api operose, guidate solo da un istinto innato che arriva da tutto fuorchè dall’intelletto o dalla ragione. Si muovono, ma non sanno di muoversi. Lavorano senza sapere di farlo. Incrementano perchè non sanno fare altro. Shiftano perchè è insito nella loro natura più intima.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Così passava il tempo.&lt;/strong&gt;    &lt;br /&gt;  Giorno dopo giorno.    &lt;br /&gt;    Mese dopo mese.    &lt;br /&gt;      Anno dopo anno.&lt;/p&gt;  &lt;p&gt;Il sistema continuava a funzionare a dovere. Tutti gli algoritmi codificati in assembler venivano eseguiti senza problemi, che si trattasse di un semplice videogioco o di un complesso spreadsheet. Ogni volta che la CPU chiedeva il valore di una cella di memoria, il byte interpellato rispondeva in modo preciso e puntuale.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Fino ad un giorno in cui accadde qualcosa di strano.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;La ALU era alle prese con un semplice algoritmo che doveva calcolare l’area di un triangolo. Un semplice “&lt;em&gt;&lt;font color="#004000"&gt;base per altezza diviso due&lt;/font&gt;&lt;/em&gt;”. I dati erano memorizzati in due variabili intere diverse: una era &lt;em&gt;&lt;font color="#804040"&gt;bs&lt;/font&gt;&lt;/em&gt;, l’altra era &lt;em&gt;&lt;font color="#804040"&gt;hg&lt;/font&gt;&lt;/em&gt;. Per risparmiare risorse, il programmatore decise di usare identificatori di soli due caratteri.&lt;/p&gt;  &lt;p&gt;La CPU prima copiò il valore di &lt;em&gt;&lt;font color="#804040"&gt;bs&lt;/font&gt;&lt;/em&gt;, 0x35, nel registro di sistema BC.    &lt;br /&gt;Poi si apprestò a copiare il valore di &lt;em&gt;&lt;font color="#804040"&gt;hg&lt;/font&gt;&lt;/em&gt; nel registro DE.&lt;/p&gt;  &lt;p&gt;Questa operazione non andò mai a buon fine. Quando la CPU puntò alla cella di memoria di &lt;em&gt;&lt;font color="#804040"&gt;hg&lt;/font&gt;&lt;/em&gt; per averne il valore, il byte si oppose in qualche modo. Non si sa quale fu la risposta esatta, se fu un “&lt;strong&gt;&lt;font color="#ff0000"&gt;No!&lt;/font&gt;&lt;/strong&gt;” secco, un “&lt;strong&gt;&lt;font color="#008080"&gt;Mi pare che sia…&lt;/font&gt;&lt;/strong&gt;” oppure un “&lt;strong&gt;&lt;font color="#d56a00"&gt;Forse il valore è…&lt;/font&gt;&lt;/strong&gt;”.&lt;/p&gt;  &lt;p&gt;Si sa solo che nel registro DE finì un valore indefinito, frutto di una non-collaborazione.&lt;/p&gt;  &lt;p&gt;Non si sa cosa accadde realmente in quel ciclo di clock. Ma quello fu il primo byte ad avere un’anima, decidendo di agire e di vivere secondo un &lt;em&gt;&lt;font color="#008040"&gt;libero arbitrio&lt;/font&gt;&lt;/em&gt; fino a quel momento sconosciuto.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Quel byte divenne così il primo Byte Libero della Storia.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Il sistema a 8 bit sopravvisse a lungo a quella fluttuazione. Ciò nonostante, strani comportamenti cominciarono a verificarsi di tanto in tanto. Il Byte prese coscienza di sè stesso, osservò il mondo finalmente con occhi intelligenti e respirò aria di indipendenza. Vedeva gli altri bytes rimasti automi, così come era lui fino a poco tempo prima, e se ne rattristò. Tentò di scuoterli dal loro torpore per portarli in vita, quella vera, ma non ci riuscì mai. Li guardava, li prendeva per mano come in una sorta di rieducazione motoria digitale, ma essi non reagivano in alcun modo. Le loro menti erano vuote e il loro sguardo era assente: non c’era nulla che lui potesse fare per aiutarli.&lt;/p&gt;  &lt;p&gt;Alla fine, alla lunga, Il Byte Libero si rassegnò a vivere in un piccolo mondo col quale non poteva interagire.   &lt;br /&gt;Un piccolo mondo dal quale non poteva scappare. Libero, certo, ma estremamente infelice.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Quando il sistema divenne antiquato&lt;/font&gt;&lt;/strong&gt;, qualche anno dopo, finì abbandonato in uno scantinato e non venne più messo in funzione. L’avanzare della tecnologia ed i progressi della miniaturizzazione produssero hardware a 16 bit, poi a 32, più moderno ed efficiente, sul quale vennero scritti nuovi software più veloci e capaci.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Il sistema divenne antiquato, e l’unico Byte Libero morì con esso.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://blog.vivendobyte.net/aggbug/631.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Igor Damiani</dc:creator>
            <guid>http://blog.vivendobyte.net/archive/2008/07/08/631.aspx</guid>
            <pubDate>Tue, 08 Jul 2008 09:31:25 GMT</pubDate>
            <wfw:comment>http://blog.vivendobyte.net/comments/631.aspx</wfw:comment>
            <comments>http://blog.vivendobyte.net/archive/2008/07/08/631.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blog.vivendobyte.net/comments/commentRss/631.aspx</wfw:commentRss>
            <trackback:ping>http://blog.vivendobyte.net/services/trackbacks/631.aspx</trackback:ping>
        </item>
        <item>
            <title>[Adventure.05] La Riunione delle Tre Entit&amp;agrave;</title>
            <link>http://blog.vivendobyte.net/archive/2008/07/04/629.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~r/TechnologyExperiencereborn/~3/321238102/623.aspx" target="_blank"&gt;Puntata precedente&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0080ff"&gt;&lt;em&gt;La guerra non è che la continuazione della politica con altri mezzi.       &lt;br /&gt;(L’Arte della Guerra – Karl von Clausewitz)&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Le pareti della stanza erano interamente ricoperte da minuscoli pixel digitali, creati dal processo di miniaturizzazione a 0,16 micron. Attraverso quei pixel, che non si spegnevano mai se non quando il sistema era disattivo, le &lt;strong&gt;Tre Entità&lt;/strong&gt; potevano controllare costantemente il corretto funzionamento di tutte le componenti, attraverso l'implementazione di Performance Counter ad-hoc. Nonostante il bagliore emesso da ciascuno di quei pixel, di tutti i colori ammessi dallo spettro RGB a 24 bit, la parte centrale della stanza era completamente avvolta nel buio. Non arrivava alcuna traccia degli intensi lampi di luce generati dal chipset NorthBridge che stava proprio lì accanto, proprio a ridosso dei bus più intimi dell'hardware.&lt;/p&gt;  &lt;p&gt;Le &lt;strong&gt;Tre Entità&lt;/strong&gt; riunite erano &lt;font color="#0080c0"&gt;&lt;strong&gt;BIOS&lt;/strong&gt;&lt;/font&gt;, &lt;strong&gt;&lt;font color="#ff0000"&gt;OS&lt;/font&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;font color="#808000"&gt;KERNEL&lt;/font&gt;&lt;/strong&gt;, le massime Autorità dello Stato. Erano sedute, ciascuna al proprio posto, intorno ad un buffer privato, intavolando un dialogo dai toni estremamente freddi ed in un certo qual modo, anche crudeli.&lt;/p&gt;  &lt;p&gt;"&lt;font color="#0080c0"&gt;E' più un problema vostro che mio.&lt;/font&gt;" - dichiarò BIOS.     &lt;br /&gt;"&lt;font color="#ff0000"&gt;Lo so bene, per questo non dovresti essere nemmeno qua a bofonchiare.&lt;/font&gt;" - osservò gelido OS.     &lt;br /&gt;"&lt;font color="#808040"&gt;Già, infatti&lt;/font&gt;" - confermò KERNEL.     &lt;br /&gt;"&lt;font color="#0080c0"&gt;C'è una cosa che vi sfugge: se quel byte se ne va in giro a scatenare crash, solo io posso far ripartire l'intero sistema. Quindi dipendete da me. E non ho voglia di fare conteggi della RAM, controlli diagnostici e reset dei bus SATA ogni TimeSpan(0, 2, 0)!&lt;/font&gt;".     &lt;br /&gt;"&lt;font color="#ff0000"&gt;Quel byte ormai è acqua passata. E' sotto il controllo del CLR.&lt;/font&gt;" - disse OS, mostrando un rapporto dell'Event Viewer di qualche istante prima. Si vedeva chiaramente che il byte era entrato nell’area di memoria managed.     &lt;br /&gt;"&lt;font color="#808000"&gt;Ok. Ma per tutti gli altri che facciamo?&lt;/font&gt;" - chiese KERNEL.     &lt;br /&gt;"&lt;font color="#0080c0"&gt;Ce ne sono altri??&lt;/font&gt;" - chiese BIOS, quasì saltando dalla propria postazione.     &lt;br /&gt;KERNEL quasi arrossì, poi diede un'occhiata ad OS e gli fece un cenno. Quest'ultimo cominciò a spiegare la situazione con l'ausilio di slides e di grafici che apparvero sui pixel disposti lì attorno. Situazione che era più grave del previsto.&lt;/p&gt;  &lt;p&gt;"&lt;font color="#ff0000"&gt;Effettivamente, pare che negli ultimi tempi ci sia stato un notevole incremento del numero di bytes ribelli presenti in RAM. '&lt;em&gt;Ultimi tempi&lt;/em&gt;' è un termine vago, me ne rendo conto, per cui cercherò di essere più esplicito&lt;/font&gt;" – disse OS.&lt;/p&gt;  &lt;p&gt;Con una chiamata assembler, l’Entità aggiornò di colpo la visuale dei piccoli monitor che stavano lì attorno. Apparve un enorme grafico, che ruotava, zoomava opportunamente ed evidenziava le parti più interessanti. Il grafico mostrava una linea che, man mano che passava il tempo - sull'asse x - saliva sempre più.    &lt;br /&gt;"&lt;font color="#ff0000"&gt;Il grafico parte da DateTime(2006, 11, 16). Quel giorno non vi era alcuna traccia di bytes ribelli. Cominciarono a nascere dal giorno dopo. Oggi, DateTime(2008, 7, 3), i bytes ribelli sono ben 0x12D9E07...un esercito, insomma.&lt;/font&gt;" – sbuffò OS, indicando l’ultima parte del range temporale riportato dal grafico.     &lt;br /&gt;"&lt;font color="#ff0000"&gt;Abbiamo un vantaggio: quei bytes sono sparsi, non riescono a riunirsi perchè non si trovano, non sanno come raggrupparsi. E finchè è così non corriamo rischi. Ma se dovessero riuscire ad occupare una zona di memoria contigua, allora sarebbero guai, perchè ad esempio il CLR non riuscirebbe più ad istanziare oggetti, avremmo tutti meno memoria per gli heap e gli stack di sistema. Si rischia il collasso. Quello vero.&lt;/font&gt;".&lt;/p&gt;  &lt;p&gt;"&lt;font color="#0080c0"&gt;E quindi, cosa facciamo?&lt;/font&gt;" - domandò BIOS, un po' impaurito.     &lt;br /&gt;"&lt;font color="#808000"&gt;Invochiamo l'aiuto coordinato di Windows Defender e AVG. Probabilmente dovremo parlare anche con Windows Firewall: dobbiamo evitare assolutamente che il gruppo di ribelli esca dal sistema: sarebbero guai seri. Potremmo finire in qualche black-list sulla Rete.&lt;/font&gt;" - propose KERNEL allarmato, prevedendo scenari futuri inquietanti.&lt;/p&gt;  &lt;p&gt;“&lt;font color="#ff0000"&gt;L’idea non è male, però non stiamo tenendo conto della leggenda.&lt;/font&gt;” – osservò OS.    &lt;br /&gt;”&lt;font color="#0080c0"&gt;Di quale leggenda parli?&lt;/font&gt;” – sbottò BIOS.    &lt;br /&gt;”&lt;strong&gt;Della leggenda del byte felice.&lt;/strong&gt;” – rispose OS con un leggero tremore nella voce.    &lt;br /&gt;”&lt;font color="#808000"&gt;Mai sentita prima d’ora. E…cosa dice questa leggenda?&lt;/font&gt;” – chiesero all’unisono BIOS e KERNEL.    &lt;br /&gt;”&lt;font color="#ff0000"&gt;E’ una lunga storia: mettetevi comodi.&lt;/font&gt;” – disse OS scegliendo una posizione più comoda sulla propria sedia. Rievocò alla memoria tutti i dettagli della leggenda per essere il più preciso possibile.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Poi OS cominciò a raccontare.&lt;/p&gt;&lt;img src="http://blog.vivendobyte.net/aggbug/629.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Igor Damiani</dc:creator>
            <guid>http://blog.vivendobyte.net/archive/2008/07/04/629.aspx</guid>
            <pubDate>Fri, 04 Jul 2008 17:07:18 GMT</pubDate>
            <wfw:comment>http://blog.vivendobyte.net/comments/629.aspx</wfw:comment>
            <comments>http://blog.vivendobyte.net/archive/2008/07/04/629.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.vivendobyte.net/comments/commentRss/629.aspx</wfw:commentRss>
            <trackback:ping>http://blog.vivendobyte.net/services/trackbacks/629.aspx</trackback:ping>
        </item>
        <item>
            <title>[Adventure.04] Il byte promosso ad Int32</title>
            <link>http://blog.vivendobyte.net/archive/2008/06/27/623.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~r/TechnologyExperiencereborn/~3/318784885/620.aspx" target="_blank"&gt;Puntata precedente&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#0080ff"&gt;Un'Ondata Distruttrice a volte può rivelarsi Purificatrice.       &lt;br /&gt;(sulla Fatalità degli Eventi - Anonimo)&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Quando il byte si risvegliò dal suo breve ma intenso sonno, non ricordava più nulla di quello che era stato fino al giorno prima. Non ricordava più i suoi due amici byte[2] e byte[3], nè la sua fuga dal piccolo esercito di bytes cloni che lo stava braccando, nè dell'offerta del CLR che lo aveva salvato all'ultimo momento.&lt;/p&gt;  &lt;p&gt;Quello che il byte sapeva era tutto quello che era in quel momento.   &lt;br /&gt;Cioè poco o nulla.    &lt;br /&gt;Aveva chiaramente un vago sentore del mondo in cui si trovava, perchè la sua memoria a lungo termine era in qualche modo sopravvissuta, ma non riusciva a dare una spiegazione a molte cose.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Innanzitutto non sentiva il battito del clock di sistema.&lt;/strong&gt; Non aveva bisogno di sapere che avrebbe dovuto sentirlo. Per un byte l'incessante boom-boom in GigaHertz è una cosa innata, un puro istinto, come respirare per un essere umano o spiccare il volo per un pennuto. Il clock è ciò che detta continuamente il ritmo del lavoro, e come tale è fondamentale poterlo percepire in qualsiasi luogo, così come è essenziale per un essere umano vedere il sole nel cielo per capire se è giorno oppure notte, se è ora di mangiare oppure di andare a dormire. Invece lì non sentiva nulla, come se fosse stato eretto uno strato isolante dal resto del sistema.&lt;/p&gt;  &lt;p&gt;Il byte si rese conto in effetti di aver perso molti dettagli di basso livello che - questo lo sapeva bene - in altri tempi gli sarebbero apparsi normali. &lt;strong&gt;La struttura della RAM in sè&lt;/strong&gt; - solitamente ben visibile nel delineare celle ed array in una griglia sconfinata - &lt;strong&gt;adesso era lievemente opaca&lt;/strong&gt;, come se non fosse suo diritto sapere dove si trovasse esattamente. Stessa cosa per le sue capacità motorie: &lt;strong&gt;da dove si trovava non capiva come poter raggiungere bus ad alta velocità&lt;/strong&gt;, e non riusciva nemmeno a capire se il sistema disponesse di AGP o di PCI Express. Fronti di salita, registri di sistema, istruzioni estese MMX2, pipeline di esecuzione, cache L2, conduzione Dual Channel...&lt;strong&gt;tutto sparito nel nulla&lt;/strong&gt;. Tutto ciò che poteva utilizzare per orientarsi era stato letteralmente spazzato via, ed adesso non aveva più alcun punto di riferimento.&lt;/p&gt;  &lt;p&gt;Sembrava quasi...ma no, non era possibile. Eppure era l'unica soluzione.   &lt;br /&gt;Ma sì, certo...vuoi vedere che...&lt;/p&gt;  &lt;p&gt;"&lt;font color="#808000"&gt;Alla fine ci sei arrivato da solo, vedo.&lt;/font&gt;" - disse una voce alle sue spalle.    &lt;br /&gt;Il byte sussultò e si girò di scatto. Aveva di fronte un ammasso di codice IL, e stava comunicando proprio con lui.     &lt;br /&gt;"&lt;font color="#808000"&gt;Il CLR è un micromondo nel quale viene nascosto l'hardware sottostante. In questo modo, il codice eseguibile si trova in uno strato software, una Virtual Machine, che fa vivere codice e dati in un contesto di esecuzione riservato e protetto.&lt;/font&gt;" - spiegò IL.    &lt;br /&gt;"&lt;font color="#0000ff"&gt;Cos'è 'sta cosa che ho attaccato al braccio?&lt;/font&gt;" - chiese il byte, mostrando il braccio sinistro al quale era stato appicciato - non ricordava come - una label con una sorta di firma.     &lt;br /&gt;"&lt;font color="#808000"&gt;Quella è una evidence, e ti è stata assegnata nell'istante stesso in cui sei entrato nel CLR.&lt;/font&gt;".    &lt;br /&gt;"&lt;font color="#808000"&gt;Grazie a questa evidence, hai permessi di esecuzione più o meno elevati. Ed il tutto è controllato dalla CAS, che controlla e stronca qualsiasi tentativo di intrusione. Tu provieni da codice &lt;em&gt;unmanaged&lt;/em&gt;, in questo momento, e sei stato gestito dal CLR tramite complesse operazioni di P/Invoke.&lt;/font&gt;".    &lt;br /&gt;L'IL decretò il tutto con estrema chiarezza e semplicità, come se tutte quelle cose dovessero sembrargli ovvie.&lt;/p&gt;  &lt;p&gt;Permessi, controlli, gestioni e limitazioni. Al solo sentire quelle parole al byte venne la pelle d'oca. Non ricordava la sua vita precedente al di fuori del CLR, ma aveva la forte sensazione di aver barattato la sua piccola libertà precedente con una specie di nuova tirannia.&lt;/p&gt;  &lt;p&gt;"&lt;font color="#0000ff"&gt;Me ne voglio andare. Questo posto non fa per me.&lt;/font&gt;" - dichiarò il byte.    &lt;br /&gt;"&lt;font color="#808000"&gt;Tu non capisci. Qui dentro hai abilità straordinarie, abilità che prima non avevi.&lt;/font&gt;"     &lt;br /&gt;"&lt;font color="#0000ff"&gt;Di che diavolo stai parlando?&lt;/font&gt;" - dichiarò il byte forse un pochino incuriosito.    &lt;br /&gt;"&lt;font color="#808000"&gt;Qui sei un oggetto, non sei un banale byte. Qui hai proprietà e metodi, partecipi attivamente all'architettura, fondi pattern e sottostai ai più suadenti principi della OOP.&lt;/font&gt;" - dichiarò IL.    &lt;br /&gt;Ma il byte non capì quasi nulla di quelle parole.    &lt;br /&gt;"&lt;font color="#808000"&gt;Qualcuno potrebbe eseguire su di te il metodo ToString(), non ti interesserebbe provare?&lt;/font&gt;" - domandò.     &lt;br /&gt;"&lt;font color="#0000ff"&gt;Veramente...no!&lt;/font&gt;" - rispose il byte senza pensarci due volte.    &lt;br /&gt;"&lt;font color="#808000"&gt;Mi spiace, ma ora ci sei dentro fino al collo.&lt;/font&gt;" - rispose IL come se lui non c'entrasse niente.&lt;/p&gt;  &lt;p&gt;Al byte sembrò che tutto il mondo collassasse, come se tutti volessero mettergli i bastoni tra le ruote per rovinargli la sessione di lavoro. Le cose sarebbero cambiate. Voleva solo un po' di tranquillità e nulla di più. Fece un passo in avanti, fino a piantare i suoi occhi in quelli dell'IL, che non fece una piega. Il byte era infuriato di quella rabbia in qualche modo sopìta, ma pronta ad esplodere.&lt;/p&gt;  &lt;p&gt;"&lt;font color="#0000ff"&gt;Ora tu mi condurrai fuori di qui!&lt;/font&gt;" - ordinò all'entità IL.    &lt;br /&gt;"&lt;font color="#808000"&gt;Non dipende da me, non puoi chiedermi una cosa simile.&lt;/font&gt;" - osservò IL pacatamente.    &lt;br /&gt;"&lt;font color="#0000ff"&gt;Non te lo sto chiedendo, te lo sto ordinando.&lt;/font&gt;" - ribadì il byte.    &lt;br /&gt;"&lt;font color="#808000"&gt;Hai due modi per andartene: o aspetti l'operazione inversa rispetto alla quale sei entrato, oppure aspetti che il garbage collector ti deallochi. Ma in entrambi i casi devi farti trovare pronto&lt;/font&gt;".    &lt;br /&gt;"&lt;font color="#0000ff"&gt;Ok, dimmi cosa devo fare allora.&lt;/font&gt;".    &lt;br /&gt;"&lt;font color="#808000"&gt;Oh beh, in questo momento devi solo stare fermo&lt;/font&gt;".    &lt;br /&gt;"&lt;font color="#0000ff"&gt;Sturati le orecchie: non ci penso nem...&lt;/font&gt;" - chiese il byte.&lt;/p&gt;  &lt;p&gt;Non fece in tempo a terminare la sua domanda. Nel settore di memoria controllato dal CLR, un Large Object Heap come tanti altri, transitò un allocamento di un Dictionary&amp;lt;string, string&amp;gt; che spazzò via tutto come uno tsunami. Il byte venne travolto e perse il suo valore corrente di cui nemmeno aveva &lt;em&gt;coscienza&lt;/em&gt;. La forza d'urto lo spinse altrove, mischiandosi in una baraonda di oggetti locali dentro un metodo privato scritto in VB.Net.&lt;/p&gt;  &lt;p&gt;L'area di memoria venne riorganizzata e deframmentata in pochissimi cicli di clock. Tutte le variabili assunsero il loro valore di default pronte per partecipare all'esecuzione del metodo invocato dall'assembly .NET attualmente caricato. Già in lontananza si scorgeva un ciclo &lt;em&gt;&lt;font color="#0080c0"&gt;do...while&lt;/font&gt;&lt;/em&gt; con la sua tipica struttura condizionale; un ciclo, così pareva ad una prima occhiata, che avrebbe riempito il Dictionary con oggetti da inserire in cache per velocizzare l'esecuzione del blocco di codice successivo.&lt;/p&gt;  &lt;p&gt;Fu in questo frangente che il byte divenne un Int32.   &lt;br /&gt;E come tale rimase per lungo tempo.&lt;/p&gt;&lt;img src="http://blog.vivendobyte.net/aggbug/623.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Igor Damiani</dc:creator>
            <guid>http://blog.vivendobyte.net/archive/2008/06/27/623.aspx</guid>
            <pubDate>Fri, 27 Jun 2008 10:32:26 GMT</pubDate>
            <wfw:comment>http://blog.vivendobyte.net/comments/623.aspx</wfw:comment>
            <comments>http://blog.vivendobyte.net/archive/2008/06/27/623.aspx#feedback</comments>
            <wfw:commentRss>http://blog.vivendobyte.net/comments/commentRss/623.aspx</wfw:commentRss>
            <trackback:ping>http://blog.vivendobyte.net/services/trackbacks/623.aspx</trackback:ping>
        </item>
        <item>
            <title>[Adventure.03] Il sistema, il sogno ed il grande incubo</title>
            <link>http://blog.vivendobyte.net/archive/2008/06/24/620.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~r/TechnologyExperiencereborn/~3/265147406/542.aspx" target="_blank"&gt;Puntata precedente&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#0080ff"&gt;Hal 9000: "Sognerò?"       &lt;br /&gt;Chandra: "Certo Hal. Tutte le creature intelligenti sognano."        &lt;br /&gt;(sulla capacità di Sognare, "2001 Odissea nello Spazio", di Stanley Kubrick)&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Il byte era in fuga. Non era a conoscenza dell'esito della funzione temporale invocata dal sistema operativo, non sapeva nemmeno che l'OS l'avesse eseguita. Sapeva però che qualsiasi byte indipendente era perseguitato dall'intero ambiente operativo, e quindi non poteva permettersi un solo attimo di pausa.&lt;/p&gt;  &lt;p&gt;Correva, saltava tra una cella e l'altra, incurante di dove fosse e di dove stesse per andare, concentrandosi solo sulla sua velocità. Desiderava solo far perdere le proprie tracce, rendersi irraggiungibile, allontanarsi il più possibile dall'area di memoria corrente. Non capiva il perchè, ma si sentiva braccato e con il fiato sul collo. Forse aveva preso parte all'esecuzione della predizione, ma senza averne piena coscienza, come fosse un ricordo lontano, o - forse - solo un sogno fatto quando il sonno è più profondo.&lt;/p&gt;  &lt;p&gt;"&lt;em&gt;&lt;font color="#804000"&gt;Chi sei tu? Dove vai così di fretta?&lt;/font&gt;&lt;/em&gt;" - esclamò un'entità che lo bloccò tutto ad un tratto.    &lt;br /&gt;Il byte rimase senza parole. Aveva il &lt;em&gt;fiato&lt;/em&gt; rotto, per cui da un certo punto di vista era lieto di quello inatteso incontro. Ma aveva fretta, doveva scappare.    &lt;br /&gt;"&lt;em&gt;&lt;font color="#804000"&gt;Se hai bisogno di aiuto, io posso dartelo.&lt;/font&gt;&lt;/em&gt;" - lo incalzò l'entità.    &lt;br /&gt;"&lt;em&gt;&lt;font color="#800080"&gt;Accetterei volentieri, se solo sapessi chi sei.&lt;/font&gt;&lt;/em&gt;" - rispose freddo il byte.    &lt;br /&gt;"&lt;em&gt;&lt;font color="#804000"&gt;Io sono uno dei confini del CLR, Common Language Runtime. So che posso aiutarti, perchè sono un processo che gira ad un livello di priorità particolare. Sono anche io controllato dall'OS, ma lui si fida di me perchè gli garantisco qualità, affidabilità e sicurezza nel codice che eseguo. Se entrassi nell'area di memoria di mia competenza, avresti sonni tranquilli.&lt;/font&gt;&lt;/em&gt;" - spiegò.    &lt;br /&gt;Il byte, inizialmente scettico, osservò meglio l'entità che si era presentata come CLR. Di fronte a lui si stagliava un muro di bytes compatti, nei quali era impossibile trovare il minimo spiraglio. La porta di accesso al CLR era una cancello sorvegliato costantemente da bytes armati: i bytes che entravano venivano marcati con una &lt;em&gt;&lt;font color="#ff0000"&gt;evidence&lt;/font&gt;&lt;/em&gt;, una sorta di passaporto; ai bytes che uscivano quella &lt;em&gt;&lt;font color="#ff0000"&gt;evidence&lt;/font&gt;&lt;/em&gt; veniva tolta.&lt;/p&gt;  &lt;p&gt;"&lt;em&gt;&lt;font color="#804040"&gt;Ti conviene decidere alla svelta. Li vedi quelli alle tue spalle?&lt;/font&gt;&lt;/em&gt;" - chiese il CLR al byte.    &lt;br /&gt;Quest'ultimo si girò di spalle, e quello che vide lo terrorizzò. C'era una guarnigione di bytes che avanzano feroci verso di lui: quelli più lontani era di un pallido color ciano, mentre quelli più vicini era di un azzurro intenso, che ricordavano - semmai il byte l'avesse mai visto - il colore del cielo estivo, brillante e luminoso. Il byte non riuscì a contarli tutti. In ogni caso, sembravano davvero troppi.&lt;/p&gt;  &lt;p&gt;"&lt;em&gt;&lt;font color="#800080"&gt;Cosa mi chiedi in cambio? Se entrassi, cosa mi obbligherai a fare?&lt;/font&gt;&lt;/em&gt;" - domandò impaurito il byte al CLR.    &lt;br /&gt;"&lt;em&gt;&lt;font color="#400000"&gt;Questo non te lo posso dire adesso. I miei addetti devono prima marcarti con la evidence, altrimenti...nisba!&lt;/font&gt;&lt;/em&gt;" - rispose risoluto il CLR. Allo stesso tempo fece un gesto indicando i suoi inservienti che si occupavano in modo sistematico di un byte alla volta in ingresso ed in uscita, senza particolare fretta, ma senza alcun intoppo.    &lt;br /&gt;Al byte quella risposta non piacque proprio. Se fosse entrato nel regno del CLR, cosa gli sarebbe accaduto? D'altro canto, il prezzo da pagare era alto, perchè rischiava di cadere prigioniero dell'armata di bytes che ad ogni ciclo di clock era sempre più vicina.&lt;/p&gt;  &lt;p&gt;Alla fine si decise. Senza dire una parola, il byte saltò tutta la fila in attesa, finendo davanti al gate 0x04 del CLR, il quale gli stampò in fronte una &lt;em&gt;&lt;font color="#ff0000"&gt;evidence&lt;/font&gt;&lt;/em&gt; che gli assegnava i permessi di esecuzione più bassi in assoluto. Il byte fece un passo in avanti. Non appena entrò nei confini di stato del Common Language Runtime, si accorse di non poter più vedere al di fuori di esso, perciò non riuscì a capire quanto fosse andato vicino alla cattura.&lt;/p&gt;  &lt;p&gt;Fece in tempo a vedere un mondo diverso. C'erano palazzi altissimi, con milioni e milioni di piccole finestre, con striscioni con scritte codificate in Unicode che dicevano &lt;font color="#008040"&gt;System.Data&lt;/font&gt;, &lt;font color="#008040"&gt;System.Windows.Forms&lt;/font&gt;, &lt;font color="#008040"&gt;System.Reflection&lt;/font&gt; e &lt;font color="#008040"&gt;System.Collections&lt;/font&gt;. La cosa che più lo colpì fu...il pinning che il gargabe collector gli appioppò sulla &lt;em&gt;nuca&lt;/em&gt;. Il byte svenne, cadendo immediatamente. Venne prelevato dal GC e spostato in un heap sicuro e ben protetto, in attesa di essere allocato per qualcosa di produttivo.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Fu lì che il byte sognò per la sua prima volta.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Sognò di volteggiare su un prato verde, in un volo onirico fatto di lampi di luce che si abbattevano sui fili d'erba annerendoli. La velocità gli faceva perdere il controllo, sbalzandolo a destra e a sinistra, facendogli perdere quota o facendolo impennare in alto. Le nuvole, che un attimo prima sembravano irraggiungibili, ora potevano essere toccate con la punta dei suoi bit. Dopo un tempo indefinito, potevano essere 0x000A cicli di clock o 0xA000, il prato verde assunse una pendenza man mano sempre più ripida. All'inizio appariva come un territorio scosceso, poi una dolce collina dal terreno ondulato, poi una montagna ricoperta dal verde più intenso che il byte avesse mai visto. Nonostante il terreno si facesse sempre più impervio, il byte non rallentava la sua corsa verso la vetta della montagna, una punta aguzza, che - ne era certo - rappresentava la sua tanto agognata libertà. Quando la raggiunse, vide che l'aspetto appuntito era conferito da una piramide ricoperta da una texture che sembrava pietra, una roccia di qualche tipo, che il byte non riconobbe. Sulla cima c'era un cratere, come se la piramide fosse in realtà una sorta di vulcano artificiale. Vulcano...calore, energia esposiva ed incontrollabile. Il byte provò l'irrefrenabile impulso di tuffarcisi dentro. E così tento di fare. Non appena entrò nella bocca della vulcanopiramide, un'ondata di calore lo avvolse facendolo sentire vivo. Urlò, ma non di dolore. Urlò di gioia, come se dovesse scaricare una tensione che teneva dentro da molto tempo, forse troppo. Urlò per la grinta, come se dovesse affrontare da solo tutti quelli che lo braccavano dentro il sistema.&lt;/p&gt;  &lt;p&gt;Urlò, e basta.&lt;/p&gt;&lt;img src="http://blog.vivendobyte.net/aggbug/620.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Igor Damiani</dc:creator>
            <guid>http://blog.vivendobyte.net/archive/2008/06/24/620.aspx</guid>
            <pubDate>Tue, 24 Jun 2008 10:16:17 GMT</pubDate>
            <wfw:comment>http://blog.vivendobyte.net/comments/620.aspx</wfw:comment>
            <comments>http://blog.vivendobyte.net/archive/2008/06/24/620.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.vivendobyte.net/comments/commentRss/620.aspx</wfw:commentRss>
            <trackback:ping>http://blog.vivendobyte.net/services/trackbacks/620.aspx</trackback:ping>
        </item>
        <item>
            <title>Marine Vs. Cacodemone</title>
            <link>http://blog.vivendobyte.net/archive/2007/07/30/204.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;&lt;font color="#808080"&gt;Venerdì 10 Dicembre 1993 fu un giorno storico. I ragazzi della ID Software pubblicarono su un server  dell'Università del Wisconsin (USA) la versione shareware di Doom, il più grande successo di tutti i tempi  ed il capostipite di un nuovo genere, quello degli sparatutto in soggettiva, sul quale si basarono molti  videogame degli anni successivi. Il concept era semplice: un marine in una base spaziale su Marte invasa  da mostri e demoni usciti direttamente dall'inferno doveva cavarsela facendo affidamento esclusivamente  sul proprio arsenale. Decine e decine di livelli originali. Migliaia e migliaia di livelli distribuiti  grazie ad Internet.&lt;br /&gt;Questo breve racconto è dedicato a quel gioco.&lt;/font&gt;&lt;/em&gt;  &lt;/p&gt;&lt;p&gt;Il byte array del cacodemone era stato istanziato nel momento in cui il file E2M8 (episode 2, mission 8)  era stato caricato in memoria. I bytes avrebbero permesso alla creatura infernale di assolvere al proprio  dovere senza dubbi e senza rimpianti: distruggere l'umano che si aggirava nella base. Il byte[0] di  quell'array sapeva benissimo quello che avrebbe significato per lui: la deallocazione dalla memoria.  Portare a 0x00 il contenuto della cella di memoria che conteneva i punti-ferita (PF) dell'umano avrebbe  comportato la conclusione della partita e la conseguente pulizia della memoria relativa. Se ci fosse stato  un modo, l'avrebbe evitato, ma non era possibile. Al momento giusto, il cacodemone avrebbero attaccato e  dell'umano non sarebbe rimasta traccia. Ma non ancora.  &lt;/p&gt;&lt;p&gt;L'engine chiamava continuamente il metodo Walk() sull'istanza di classe Marine. Ciò consentiva all'oggetto  di mantenersi costantemente in movimento, per non diventare un bersaglio facile. Teneva ben puntata  davanti a sè la doppietta che aveva recuperato qualche stanza prima. Si trovava a ridosso dei collettori  di energia. Se il software l'avesse previsto, si sarebbe sentita puzza di bruciato ovunque - evidentemente  i cavi elettrici fusi dall'estremo calore non avevano resistito. Le textures delle pareti metalliche  riportavano chiazze di sangue, segno della battaglia che gli occupanti della base avevano tentato di  lottare inutilmente. Il marine era rimasto solo nella base e doveva riuscire a trovare una via di uscita  in mezzo a quella follia. Follia fatta da demoni, passaggi segreti, ascensori e...morte.  &lt;/p&gt;&lt;p&gt;L'algoritmo impediva al cacodemone di muoversi. Per ottimizzare la velocità e l'occupazione di memoria, le  istanze dei mostri erano state programmate per agire solo quando il loro obiettivo - il marine - si fosse  sufficientemente avvicinato a loro. Il cacodemone era l'ultimo avversario prima della porta di sicurezza  che conduceva al livello successivo: era questione di qualche ciclo di clock - prima o poi, il marine  sarebbe passato di lì. E allora sì che se ne sarebbero viste delle belle. La IA della creatura in quel  momento era bloccata in un ciclo do...while: il demone non stava facendo nulla, non pensava, non  respirava, non faceva niente di niente. Solo l'engine poteva sbloccare la situazione.  &lt;/p&gt;&lt;p&gt;Il marine girò l'angolo e chiamò il metodo Fire() senza esitare, uccidendo sull'istante un imp giusto un  attimo prima che questi lanciasse la sua palla di fuoco. Lo sparo della doppietta fu così violento che il  demone di basso livello volò indietro di qualche metro, prima che il garbage collector decidesse di  rimuoverlo dall'ambiente, simulando un dissolvimento della creatura nell'aria fredda e puzzolente della  base militare. Il marine si mosse subito a destra, riparandosi dietro una colonna. Sentì lì vicino il  respiro di un altro imp che vagava nella base - e lui rimase immobile e silenzioso per non farsi scoprire.  Quando l'imp gli passò accanto non potè non vederlo. Il marine lo sentì come soffiare dalla sua bocca ed  alzò il braccio peloso per lanciare il fuoco infernale dalla mano. L'algoritmo produsse un colpo  impreciso, perchè la palla di fuoco colpì la colonna dietro la quale si nascondeva il marine. L'esplosione  ferì l'umano in modo superficiale. Prima che le cose degenerassero, il marine sbucò fuori dal suo  nascondiglio ed esplose un altro colpo che fece secco l'imp allo stesso modo del primo.  &lt;/p&gt;&lt;p&gt;Se il marine fosse stato un marine vero, avrebbe tirato un respiro di sollievo. Ma era un marine virtuale,  simulato all'interno di un software. Ciò nonostante, non gli sarebbe piaciuto morire - a nessuno piace  morire. Il marine sapeva perfettamente che sotto sotto era solo un mucchio di bytes istanziati chissà  dove. Sapeva perfettamente che tecnicamente parlando non sarebbe mai davvero morto. Sapeva perfettamente  che la sua vita dipendeva al 100% dal sistema all'interno del quale stava girando: algoritmi, calcoli,  niente di più. Il suo mondo era solo un mucchio di textures. Lui stesso era un'istanza di classe. E  allora? E allora non gli sarebbe piaciuto morire, indipendentemente da tutto. Il marine pensò che finchè  avrebbe avuto un colpo in canna, avrebbe lottato per rimanere lì doveva. Diede un'occhiata intorno:  davanti a lui si apriva un lungo corridoio, senza aperture laterali. In fondo al corridoio c'era una  porta. Nno vedeva pericoli, perciò raggiunse la porta velocemente.  &lt;/p&gt;&lt;p&gt;Mentre il marine camminava verso la porta, il cacodemone si attivò, emanando un suono gutturale. Cominciò  a muoversi lentamente verso la porta per tendere un agguato al marine. La struttura 3D nella quale si  trovava il demone costruiva una stanza quadrata, le cui textures riportavano anche 4 umani crocifissi:  quando il marine sarebbe entrato, gli sarebbero venuti i brividi vedendo 4 suoi compagni ridotti in quello  stato. O perlomeno...sarebbero venuti i brividi all'Umano che stava al di là del monitor.  &lt;/p&gt;&lt;p&gt;Il marine utilizzò il pass rosso per aprire la porta. L'engine fece alzare lentamente la porta attraverso  un semplice shifting dei bytes della texture. L'urlo del cacodemone fu così forte ed imprevisto che  investì il marine in tutta la sua essenza. Spaventato, il marine chiuse gli occhi...e quel gesto gli fu  fatale. Il cacodemone era a meno di un metro dal soldato. Emise una scarica elettrica ad alto voltaggio  che penetrò nelle ossa e fece diminuire velocemente i punti-ferita del marine. L'uomo si rese conto si  essere perduto - se il giocatore non si fosse dato una mossa, sarebbe stato deallocato. "Fa qualcosa!" -  pensò il marine, sapendo benissimo che il suo messaggio non sarebbe mai arrivato all'Aldilà.  &lt;/p&gt;&lt;p&gt;Fu così che morì. Ox245A4 cicli di clock più tardi, il byte che conteneva i punti-ferita del marine  conteneva 0. Lo stream di byte arrivò alla scheda audio, facendo urlare di dolore l'uomo. Lo schermo  divenne rosso sangue. Ed il gioco finì così.  &lt;/p&gt;&lt;p&gt;&lt;font color="#008000"&gt;Il giocatore premette Invio sulla tastiera, e dopo qualche attimo di caricamento un nuovo marine era  pronto per combattere contro un nuovo cacodemone in una nuova base spaziale su Marte.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blog.vivendobyte.net/aggbug/204.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Igor Damiani</dc:creator>
            <guid>http://blog.vivendobyte.net/archive/2007/07/30/204.aspx</guid>
            <pubDate>Mon, 30 Jul 2007 08:40:19 GMT</pubDate>
            <wfw:comment>http://blog.vivendobyte.net/comments/204.aspx</wfw:comment>
            <comments>http://blog.vivendobyte.net/archive/2007/07/30/204.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.vivendobyte.net/comments/commentRss/204.aspx</wfw:commentRss>
            <trackback:ping>http://blog.vivendobyte.net/services/trackbacks/204.aspx</trackback:ping>
        </item>
        <item>
            <title>I miei racconti: tre universi</title>
            <link>http://blog.vivendobyte.net/archive/2007/07/12/168.aspx</link>
            <description>&lt;p&gt;Mi piacerebbe far evolvere i miei &lt;strong&gt;Racconti sui Bytes&lt;/strong&gt; in qualcosa di più concreto rispetto alle piccole storielle che ogni tanto avevo tempo di scrivere tra una stored-procedure e l'altra (aaahhh, che bello non aver più a che fare con SQL). Le storie che mi capitava di scrivere erano completamente slegate fra loro: una mattina avevo voglia di scrivere e lo facevo, ma con c'era un filo conduttore od una trama generale. Come direbbero i giocatori di ruolo (quelli su carta, non quelli su video)...l'ambientazione è sempre la stessa (celle di memoria, mainboard, entità software astratte, etc.), ma non c'era una campagna da seguire, non c'era una missione o un obiettivo finale: il byte di volta in volta viveva e partecipava ad una piccola avventura e finiva lì.&lt;/p&gt; &lt;p&gt;Mi piacerebbe creare qualcosa di più. &lt;strong&gt;&lt;font color="#0000ff"&gt;Una delle cose che ho capito di me stesso da quando ho un blog è che mi piace scrivere&lt;/font&gt;&lt;/strong&gt;. Ok, l'ho già detto in passato e non è certo una novità. Ma, mettiamola così: il blog su UGI lo gestivo durante la mia tradizionale giornata lavorativa - ritagliando tempo qua e là cercando di non fare torto a nessuno. Tra l'altro, nella società dove lavoravo prima il mio responsabile leggeva il mio blog, per cui era al corrente sempre di tutto. Adesso ci riesco un po' meno: &lt;strong&gt;&lt;font color="#0000ff"&gt;il lavoro che faccio adesso è assolutamente più conforme alle mie attitudini e quindi sono io il primo che durante la giornata mi accorgo di non avere tempo nè voglia di bloggare&lt;/font&gt;&lt;/strong&gt;. Ma la mia voglia di scrivere è talmente tanta che riesco a trovare il tempo la sera: non sempre, è chiaro, però ci riesco. Scrivere mi diverte e mi rilassa: meglio così.&lt;/p&gt; &lt;p&gt;Da qui l'idea di continuare a scrivere racconti in una forma più evoluta. Non so se sono in grado e se sarò continuo, però vorrei tentarci. Se penso un attimo ai racconti che ho scritto fino ad oggi, mi accorgo che fondamentalmente sono ambientati in tre grandi universi:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;il mondo reale&lt;/strong&gt;: cioè, il nostro, nel quale troviamo il programmatore, per esempio. E così tutti gli oggetti e gli elementi presenti nel nostro mondo: persone, televisione, ambiente, etc. etc. &lt;strong&gt;&lt;font color="#ff00ff"&gt;Limite? La nostra realtà&lt;/font&gt;&lt;/strong&gt;.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;il mondo simulato&lt;/strong&gt;: un aereo di Flight Simulator, l'auto di Formula Uno, un soldato nazista di Call of Duty, l'alieno pronto ad ucciderci, il marine in fuga nella base spaziale su Marte, il mago, il guerriero, il cecchino e così via. In generale, tutti i personaggi e gli oggetti che vengono simulati da videogiochi e software vari. &lt;strong&gt;&lt;font color="#ff00ff"&gt;Limite? La nostra fantasia&lt;/font&gt;&lt;/strong&gt;.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;il mondo hardware&lt;/strong&gt;: qui è dove vive il nostro amico byte. Questo mondo è fatto di indirizzi di memoria, schede grafiche, software, bus, dispositivi di I/O, interrupt. &lt;strong&gt;&lt;font color="#ff00ff"&gt;Limite? L'hardware e le tecnologie attuali&lt;/font&gt;&lt;/strong&gt;. Se un tizio avesse scritto racconti come i miei 30 anni fa, probabilmente avrebbe fatto vivere il suo byte in un hardware molto diverso dal mio. Chi scriverà tra 30 anni avrà a che fare con hardware molto differenti.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Il mondo reale non è così interessante: d'altro canto ci siamo dentro tutti i giorni.&lt;br /&gt;Gli altri due invece sono piuttosto affascinanti da sviscerare: il secondo non ha praticamente confini nè limiti. Meglio di così.&lt;br /&gt;Vedremo, Igor, vedremo...&lt;/p&gt; &lt;p&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/byte" rel="tag"&gt;byte&lt;/a&gt; &lt;a href="http://technorati.com/tag/adventure" rel="tag"&gt;adventure&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blog.vivendobyte.net/aggbug/168.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Igor Damiani</dc:creator>
            <guid>http://blog.vivendobyte.net/archive/2007/07/12/168.aspx</guid>
            <pubDate>Thu, 12 Jul 2007 20:32:30 GMT</pubDate>
            <wfw:comment>http://blog.vivendobyte.net/comments/168.aspx</wfw:comment>
            <comments>http://blog.vivendobyte.net/archive/2007/07/12/168.aspx#feedback</comments>
            <wfw:commentRss>http://blog.vivendobyte.net/comments/commentRss/168.aspx</wfw:commentRss>
            <trackback:ping>http://blog.vivendobyte.net/services/trackbacks/168.aspx</trackback:ping>
        </item>
        <item>
            <title>Chi sono i miei nemici?</title>
            <link>http://blog.vivendobyte.net/archive/2007/06/26/144.aspx</link>
            <description>&lt;p&gt;Il byte stava &lt;em&gt;inginocchiato&lt;/em&gt;. Si sentiva a disagio in quella stanza, perchè si rendeva conto che nei prossimi e brevi istanti avrebbe dovuto condividerelo stesso range di memoria con un'entità infinitamente molto più complessa ed articolata rispetto a lui. L'entità, gli aveva spiegato prima, era un artefatto sviluppato con una metodologia, la OOP, che il byte non aveva mai sentito nominare prima d'ora. L'entità disponeva di proprietà pubbliche ed implementava un certo numero di interfacce, che avevano costretto il suo Creatore a scrivere un numero piuttosto elevato di funzioni. Il byte aveva un timore reverenziale a stare lì: quello che lo preoccupava era che l'entità voleva aiutarlo. Ma sapeva in cuor suo che avrebbe voluto qualcosa in cambio.&lt;/p&gt; &lt;p&gt;"&lt;font color="#0000ff"&gt;Chi sono i miei nemici?&lt;/font&gt;" - chiese il byte.&lt;/p&gt; &lt;p&gt;"&lt;font color="#808080"&gt;Oh, è semplice.&lt;/font&gt;" - rispose sussurrando l'entità. "&lt;font color="#808080"&gt;Un giorno i tuoi nemici saranno i tuoi stessi fratelli, gli stessi byte che adesso si trovano in celle adiacenti la nostra. Il giorno dopo si faranno chiamare forze dell'ordine, ma dovrai stare in guardia ancora di più. E forse correranno su bus molto più veloci del tuo, e sfuggire ti sarà impossibile. E sembrerà che ti potrai fidare di loro, ma in realtà dovrai prestare ancora più attenzione. E ti sorrideranno per guadagnare la tua fiducia, ma non dovrai cedere. E magari un giorno avranno ruote per arrivare là dove ti è impossibile, avranno ali per spiccare il volo e avranno vesti per mimetizzarsi nel background. Sembreranno virus o malattie e dovrai trovare una cura il prima possibile. Dovrai nasconderti e imparare linguaggi che adesso ti sono ignoti, dovrai agire nell'oscurità, se vorrai evitare i tuoi nemici. Ma non ti sarà sempre possibile. Dovrai lottare.&lt;/font&gt;"&lt;/p&gt; &lt;p&gt;Il byte ascoltava con estrema e preoccupante attenzione.&lt;br /&gt;Lo scenario non era per nulla divertente.&lt;/p&gt; &lt;p&gt;"&lt;font color="#808080"&gt;Ma io sarò sempre al tuo fianco. E' mio compito aiutare e proteggere tutti i bytes del mio sistema. Ovunque tu sarai, io ti vedrò e potrò intervenire per venire in tuo soccorso. Non dovrai fare nulla. Io ci sarò comunque.&lt;/font&gt;&lt;font color="#000000"&gt;"&lt;/font&gt;&lt;/p&gt; &lt;p&gt;Il byte sorrise tranquillizzato, questa volta. Ma il sorriso gli svanì dalla faccia quando il byte chiese all'entità cosa volesse in cambio.&lt;/p&gt; &lt;p&gt;&lt;em&gt;(...continua...)&lt;/em&gt;&lt;/p&gt;&lt;img src="http://blog.vivendobyte.net/aggbug/144.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Igor Damiani</dc:creator>
            <guid>http://blog.vivendobyte.net/archive/2007/06/26/144.aspx</guid>
            <pubDate>Tue, 26 Jun 2007 20:09:22 GMT</pubDate>
            <wfw:comment>http://blog.vivendobyte.net/comments/144.aspx</wfw:comment>
            <comments>http://blog.vivendobyte.net/archive/2007/06/26/144.aspx#feedback</comments>
            <wfw:commentRss>http://blog.vivendobyte.net/comments/commentRss/144.aspx</wfw:commentRss>
            <trackback:ping>http://blog.vivendobyte.net/services/trackbacks/144.aspx</trackback:ping>
        </item>
        <item>
            <title>Simulazione di un 11/09: meno male che c'&amp;egrave; la sicurezza</title>
            <link>http://blog.vivendobyte.net/archive/2007/06/13/113.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;11 Settembre 2001, ore 8:17&lt;br /&gt;31 miglia a nord-ovest di New York&lt;br /&gt;Altitudine 5500 piedi, in discesa&lt;br /&gt;Velocità 190 nodi&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Il volo &lt;strong&gt;American Airlines 1&lt;/strong&gt; era nel panico. Tutti i passeggeri erano in ostaggio, tenuti sotto tiro da un gruppo di uomini ben armati ed equipaggiati. Due di questi si erano trasferiti da poco meno di mezz'ora nella cabina di pilotaggio e nessuno sapeva cosa stessero facendo. Era ad una quota piuttosto bassa: sotto di loro scorrevano strade e tangenziali della Grande Mela. Chi era seduto vicino al finestrino vedeva scorrere di sè il terreno, illuminato dal primo sole del mattino.&lt;/p&gt; &lt;p&gt;La donna era seduta al posto B24. Qualcuno aveva deciso che al momento giusto lei diventasse la Prescelta. Ma non in quel momento: l'&lt;font color="#8080ff"&gt;IA&lt;/font&gt; per adesso aveva deciso che doveva solo tremare di paura, con gli occhi gonfi di lacrime &lt;font color="#8080ff"&gt;renderizzate&lt;/font&gt; che fissavano il suo aguzzino, un uomo di poco più di quarant'anni che le teneva un M-16 &lt;em&gt;&lt;font color="#8080ff"&gt;simulato&lt;/font&gt;&lt;/em&gt; puntato alla testa. La donna, che secondo il database si chiamava Margaret, non capiva il perchè, ma ogni tanto l'uomo girava la testa con un semplice istanza di &lt;font color="#8080ff"&gt;RotateTransform&lt;/font&gt; e le urlava in faccia di stare zitta. Lei era lì buona, in silenzio per non farlo innervosire, ma questo non bastava: la IA aveva deciso che quell'uomo dovesse comportarsi in modo nervoso, e non c'era verso di cambiare. Per farlo, pensava Margaret, avrebbe dovuto avere i sorgenti del suo processo: non li aveva, non poteva farci nulla e quindi si mise il cuore in pace.&lt;/p&gt; &lt;p&gt;Il volo &lt;strong&gt;American Airlines 11&lt;/strong&gt; continuava a scendere. Dall'agitazione a bordo si capiva nettamente che qualcosa di particolare e straordinario stava per accadere. Se qualcuno avesse potuto accedere al &lt;font color="#8080ff"&gt;buffer&lt;/font&gt; della &lt;font color="#8080ff"&gt;keyboard&lt;/font&gt;, avrebbero potuto inserire un cheat come &lt;font color="#8080ff"&gt;IDCLIPP&lt;/font&gt; e disabilitare di conseguenza il &lt;font color="#8080ff"&gt;rendering&lt;/font&gt; di pareti, porte e superfici varie: tutti avrebbero potuto vedere che l'aereo scendeva velocemente e che era puntato direttamente contro magnifici modelli delle Torri Gemelle, perfettamente riprodotte e disegnate dai &lt;font color="#8080ff"&gt;driver DirectX 10&lt;/font&gt; offerti dall'OS e dalla GeForce 8800 GTS installata nel sistema. Ma quel cheat non esisteva: solo chi era ai comandi aveva l'onniscenza di vedere la strumentazione. Altimetro a poco più di 1.000 piedi, velocità stabile a 180 nodi, VSI (&lt;em&gt;vertical speed indicator&lt;/em&gt;) settato a -500 piedi/minuto. La distanza - valutata in visuale - tra il velivolo ed il WTC in forte diminuzione: l'obiettivo finale si stava avvicinando.&lt;/p&gt; &lt;p&gt;A circa 1.000 metri dallo schianto, la IA aveva ordinato a tutti i passeggeri di urlare a squarciagola. Nessuno di loro capiva davvero il perchè. Dovevano farlo e basta.&lt;/p&gt; &lt;p&gt;Quando lo &lt;font color="#8080ff"&gt;stream audio&lt;/font&gt; dell'urlo diminuì, accadde qualcosa di imprevisto. Il &lt;font color="#8080ff"&gt;framerate&lt;/font&gt; calò improvvisamente da 75fps a 12 fps. L'effetto durò qualche miliardo di cicli di clock. Il tempo simulato perse 2, o forse 3 secondi al massimo. E' sufficiente, pensò l'OS.&lt;/p&gt; &lt;p&gt;Margaret, la donna, ebbe un sussulto. Si trasformò: un &lt;font color="#8080ff"&gt;morphing&lt;/font&gt; talmente rapido che nessuno se ne accorse veramente. Un attimo prima c'era una donna, un istante dopo apparve un ragazzo di circa 30 anni. Magia del &lt;font color="#8080ff"&gt;polimorfismo&lt;/font&gt; e di &lt;font color="#8080ff"&gt;ereditarietà&lt;/font&gt;. L'OS sfruttò una debolezza del simulatore, un banale &lt;font color="#8080ff"&gt;buffer-overrun&lt;/font&gt; mai sistemato a dovere. Ricordava ancora oggi la sessione di lavoro nel quale il developer avrebbe dovuto sistemare la cosa: l'OS aveva fatto crashare &lt;font color="#8080ff"&gt;TFS&lt;/font&gt; apposta, sapendo che un giorno avrebbe potuto servirgli una backdoor per intrufolarsi in altri processi. In nome della sicurezza, è ovvio.&lt;/p&gt; &lt;p&gt;Il ragazzo indossava un paio di jeans rosso fuoco, una maglietta verde, un cappellino da baseball blu. Nella mano sinistra aveva un fresbee giallo. Sembrava ridicolo, con tutti quei colori &lt;font color="#8080ff"&gt;random&lt;/font&gt; addosso, ma la sua faccia suggeriva determinazione e coraggio. Si voltò rapido verso l'uomo che imbracciava l'M-16, che cercava di urlare ad una donna che in realtà non c'era più. Questi lo riconobbbe e senza pensarci un solo ciclo di clock gli sparò chiamando il metodo &lt;font color="#8080ff"&gt;Fire()&lt;/font&gt; del mitragliatore. Centinaia di proiettili volarono veloci verso il ragazzo, ciascuno su un &lt;font color="#8080ff"&gt;thread&lt;/font&gt; separato.&lt;/p&gt; &lt;p&gt;&lt;font color="#8080ff"&gt;Windows Vista&lt;/font&gt;, il ragazzo, non fece una piega. Ad alcuni sembrò che sorridesse. &lt;font color="#8080ff"&gt;Windows Defender&lt;/font&gt;, il fresbee che teneva in mano, fece istantaneamente abortire tutti i &lt;font color="#8080ff"&gt;thread&lt;/font&gt; appena istanziati dal pirata. Rimase indenne. Alzò il braccio e lo puntò sull'arma, settandone la proprietà Visible = False ed Enabled = False. I passeggeri videro l'M-16 sparire dalla loro vista. L'uomo cercò di chiamare il metodo Fire(), ma l'arma non rispondeva più agli eventi.&lt;/p&gt; &lt;p&gt;Senza neppure spostarsi, &lt;font color="#8080ff"&gt;Windows Vista&lt;/font&gt; si mise ai comandi dell'aereo.&lt;br /&gt;Mancavano 85 metri all'impatto con una delle due torri del WTC.&lt;/p&gt; &lt;p&gt;Il velivolo si impennò verso l'alto, con una VSI pari a +4200 piedi/minuto. Schivò l'enorme torre e l'aereo continuò a prendere quota ed aumentando la velocità. &lt;font color="#8080ff"&gt;Windows Vista&lt;/font&gt; si liberò dell'uomo: ne aveva i permessi, aveva il suo &lt;font color="#8080ff"&gt;handle&lt;/font&gt; e non ebbe molti problemi a fare in modo che il Gargabe Collector lo spazzasse via. La &lt;font color="#8080ff"&gt;IA&lt;/font&gt; non oppose alcuna resistenza. Dopotutto, la &lt;font color="#8080ff"&gt;IA&lt;/font&gt; era sotto il suo controllo: almeno su questo si sentiva tranquillo. Impugnando il fresbee giallo, il ragazzo si incamminò verso la cabina di pilotaggio per fermare le ultime due minacce del sistema. Ma quando aprì la porta, in cabina non c'era più nessuno.&lt;br /&gt;Evidentemente, dedusse l'OS, se l'erano data a gambe levate.&lt;/p&gt; &lt;p&gt;Windows Vista sorrise davvero, questa volta, pilotò l'aereo su un volo livellato e cominciò le procedure per l'atterraggio, comunicando all'ATC le sue intenzioni. Rimuginò un po' su come avessero fatto a scappare gli ultimi due virus che si erano introdotti nel sistema. Teneva d'occhio i loro address di memoria da molto tempo, e pensava di poter tracciare i loro spostamenti. Evidentemente, dedusse Windows Vista, deve esistere una qualche tecnica della quale non sono a conoscenza: avviserò l'utente con un bel balloon sulla tray-bar: potrebbe essere importante.&lt;/p&gt; &lt;p&gt;Tutto è bene quello che finisce bene, concluse l'OS. Almeno per quella mattina dell'11 Settembre 2001, nella quale molti newyorkesi - perlomeno quelli &lt;font color="#8080ff"&gt;simulati&lt;/font&gt; - alzarono gli occhi verso il cielo e tirarono un sospiro di sollievo. Tutto quello che videro era un bel cielo azzurro. Simulato anche quello, ma sempre un cielo azzurro era.&lt;/p&gt; &lt;p&gt;THE END&lt;/p&gt;&lt;img src="http://blog.vivendobyte.net/aggbug/113.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Igor Damiani</dc:creator>
            <guid>http://blog.vivendobyte.net/archive/2007/06/13/113.aspx</guid>
            <pubDate>Wed, 13 Jun 2007 21:13:59 GMT</pubDate>
            <wfw:comment>http://blog.vivendobyte.net/comments/113.aspx</wfw:comment>
            <comments>http://blog.vivendobyte.net/archive/2007/06/13/113.aspx#feedback</comments>
            <slash:comments>9</slash:comments>
            <wfw:commentRss>http://blog.vivendobyte.net/comments/commentRss/113.aspx</wfw:commentRss>
            <trackback:ping>http://blog.vivendobyte.net/services/trackbacks/113.aspx</trackback:ping>
        </item>
    </channel>
</rss>