<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Bill Gates on Melabit</title>
    <link>https://static.233.196.69.159.clients.your-server.de/it/tags/bill-gates/</link>
    <description>Recent content in Bill Gates on Melabit</description>
    <generator>Hugo</generator>
    <language>it</language>
    <lastBuildDate>Sat, 05 Apr 2025 06:00:00 +0000</lastBuildDate>
    <atom:link href="https://static.233.196.69.159.clients.your-server.de/it/tags/bill-gates/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>50 anni di Microsoft (più un giorno)</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2025/04/05/50-anni-di-microsoft-piu-un-giorno/</link>
      <pubDate>Sat, 05 Apr 2025 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2025/04/05/50-anni-di-microsoft-piu-un-giorno/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-04-05-50-anni-di-microsoft-piu-un-giorno/allen-and-gates.png&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Paul Allen seduto alla telescrivente collegata al computer della scuola con accanto, in piedi, un giovanissimo Bill Gates. Fonte: &lt;a href=&#34;https://www.gatesnotes.com/meet-bill/source-code/reader/microsoft-original-source-code&#34;&gt;Celebrate 50 Years of Microsoft&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://melabit.com/it/2025/04/04/50-anni-di-microsoft/&#34;&gt;Ieri&lt;/a&gt;, nonostante i festeggiamenti, sono stato un po&amp;rsquo; perfido nei confronti di Microsoft. Però va detto che il &lt;a href=&#34;https://www.gatesnotes.com/meet-bill/source-code/reader/microsoft-original-source-code&#34;&gt;pezzo celebrativo&lt;/a&gt; scritto da Bill Gates per i 50 anni della sua creatura è bellissimo. Il testo non rivela niente di nuovo, sono tutte cose ben note a chi conosce un po&amp;rsquo; di &lt;a href=&#34;https://melabit.com/it/2019/07/28/il-libro-per-lestate/&#34;&gt;storia dell&amp;rsquo;informatica personale&lt;/a&gt;, ma la realizzazione grafica è spettacolare. Grazie a Bill per questo bel regalo!&lt;/p&gt;&#xA;&lt;p&gt;Ma la vera chicca è il &lt;a href=&#34;https://images.gatesnotes.com/12514eb8-7b51-008e-41a9-512542cf683b/34d561c8-cf5c-4e69-af47-3782ea11482e/Original-Microsoft-Source-Code.pdf&#34;&gt;listato completo dell&amp;rsquo;interprete BASIC&lt;/a&gt; per l&amp;rsquo;Altair 8800, che è stato il primo programma mai venduto dalla Micro-Soft (all&amp;rsquo;inizio il nome era scritto con il trattino).&lt;/p&gt;&#xA;&lt;p&gt;Ragazzi, possiamo dire quello che vogliamo ma i due, Paul Allen e Bill Gates (con il supporto di Monte Davidoff) hanno scritto un codice ineccepibile. È in &lt;a href=&#34;https://en.wikipedia.org/wiki/Assembly_language&#34;&gt;Assembly&lt;/a&gt;, cioè nel linguaggio di programmazione più vicino possibile alla macchina (a meno di non programmare direttamente in codice binario), che ai quei tempi era l&amp;rsquo;unico modo per produrre un programma compatto e che pesasse il meno possibile sulle limitatissime risorse hardware delle macchine di allora.&lt;/p&gt;&#xA;&lt;p&gt;Non è necessario conoscere il linguaggio Assembly per apprezzare la perizia tecnica dei due: il loro codice è molto pulito e strutturato, pieno di subroutine (le moderne funzioni) per gestire le parti ripetitive ed evitare sprechi di spazio. Inoltre tutto il codice è pieno di commenti, che spiegano con estremo dettaglio il funzionamento di ogni sezione di codice e persino di ogni singola riga.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-04-05-50-anni-di-microsoft-piu-un-giorno/altair-basic-rnd-generator.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-04-05-50-anni-di-microsoft-piu-un-giorno/altair-basic-rnd-generator.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Non voglio dire leggendo che si capisce al volo quello che fa (magari fosse così!). Ma sono abbastanza sicuro che se oggi uno sufficientemente esperto di queste cose avesse la pazienza di leggere il codice, potrebbe capire fin nei minimi dettagli come funzionava l&amp;rsquo;interprete BASIC (chissà se fra 50 anni si potrà dire lo stesso per i programmi scritti oggi)&lt;/p&gt;&#xA;&lt;p&gt;Se diventi il più grande produttore di software al mondo non è solo perché sai vendere e usi pratiche commerciali sul filo del rasoio. È perché sei bravo.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>50 anni di Microsoft</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2025/04/04/50-anni-di-microsoft/</link>
      <pubDate>Fri, 04 Apr 2025 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2025/04/04/50-anni-di-microsoft/</guid>
      <description>&lt;p&gt;Piaccia o non piaccia  Microsoft è il più grande produttore di software al mondo, ed è riuscita, in modi più o meno puliti, a far installare i suoi prodotti sulla stragrande maggioranza dei computer del pianeta.&lt;/p&gt;&#xA;&lt;p&gt;Oggi Microsoft compie 50 anni, e sembra ieri quando i due fondatori, Bill Gates e Paul Allen, assicurarono Ed Roberts di avere pronto un &lt;a href=&#34;https://www.gatesnotes.com/meet-bill/source-code/reader/microsoft-original-source-code&#34;&gt;interprete BASIC per il suo Altair 8800&lt;/a&gt;, il primo computer davvero personale, senza aver mai visto né l&amp;rsquo;Altair né il processore 8080 che lo faceva funzionare.&lt;/p&gt;&#xA;&lt;p&gt;Qualche anno dopo, i due &lt;em&gt;dimenticarono&lt;/em&gt; di dire a Tim Paterson, l&amp;rsquo;autore di QDOS (Quick and Dirty Operating System, ovvero il Sistema Operativo [fatto in modo] Veloce e Sporco) per il processore 8086, che avevano promesso ad IBM un &lt;a href=&#34;https://www.pcmag.com/news/the-rise-of-dos-how-microsoft-got-the-ibm-pc-os-contract&#34;&gt;sistema operativo per il suo imminente Personal Computer&lt;/a&gt;, che era basato proprio su quel processore. Così acquisirono i diritti di QDOS da Paterson per un tozzo di pane, lo ribattezzarono MS-DOS e lo licenziarono a IBM, catapultando Microsoft (e sè stessi) nell&amp;rsquo;olimpo dell&amp;rsquo;informatica e dei profitti.&lt;/p&gt;&#xA;&lt;p&gt;E poi ci sono state le copiature smaccate dell&amp;rsquo;interfaccia utente di Windows (vero Apple?), le pratiche quasi intimidatorie con le aziende che utilizzavano Windows in licenza e l&amp;rsquo;uso di Internet Explorer come strumento per eliminare la concorrenza degli altri sistemi operativi. E poi ancora le cause legali, il ritiro di Bill Gates, le pagliacciate di Steve Ballmer, il flop cosmico di Vista, quello altrettanto cosmico di Windows 8.&lt;/p&gt;&#xA;&lt;p&gt;Ma oggi è il compleanno e si festeggia, per cui facciamo i buoni e alziamo i calici.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-04-04-50-anni-di-microsoft/clink-glasses.jpeg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Immagine generata dall&amp;rsquo;IA di &lt;a href=&#34;https://designer.microsoft.com/image-creator&#34;&gt;Microsoft Designer&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;hr style = &#34;border: none; &#xA;            border-top: 3px double #333; &#xA;            color: #333; &#xA;            overflow: visible; &#xA;            height: 5px; &#xA;            width: 50%; &#xA;            margin-left: auto; &#xA;            margin-right: auto;&#34;&#xA;&gt;&#xA;&#xA;&lt;p&gt;Però, anche se oggi si fa festa, una domanda a quelli di Microsoft non posso non fargliela.&lt;/p&gt;&#xA;&lt;p&gt;State festeggiando mezzo secolo di storia, siete famosi in tutto il sistema solare, e certo i soldi non vi mancano. Come è possibile che per celebrare un anniversario come questo non siate riusciti ad ingaggiare uno straccio di artista capace di disegnare degli &lt;a href=&#34;https://unlocked.microsoft.com/50th/&#34;&gt;sfondi migliori di questi&lt;/a&gt;?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-04-04-50-anni-di-microsoft/Microsoft_50th_Solitaire_Light_4k.jpg&#34; alt=&#34;&#34;&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-04-04-50-anni-di-microsoft/Microsoft_50th_Windows_Light_4k.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;P.S. Ma anche chi usa solo lo smartphone può rifarsi gli occhi con &lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-04-04-50-anni-di-microsoft/GmV5M6rWkAACeJ2.jpg&#34;&gt;questo&lt;/a&gt;, o &lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-04-04-50-anni-di-microsoft/GmV5NsCa8AQtzph.jpg&#34;&gt;questo&lt;/a&gt;, o anche &lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-04-04-50-anni-di-microsoft/GmV5Ptea8AMPRCh.jpg&#34;&gt;questo&lt;/a&gt;, e perfino &lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-04-04-50-anni-di-microsoft/GmV5Repa8AQTKaV.jpg&#34;&gt;questo&lt;/a&gt;.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>La perdita dell&#39;innocenza</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2020/01/30/la-perdita-dellinnocenza/</link>
      <pubDate>Thu, 30 Jan 2020 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2020/01/30/la-perdita-dellinnocenza/</guid>
      <description>&lt;p&gt;Microsoft è stata &lt;em&gt;cattiva&lt;/em&gt; sin dall&amp;rsquo;inizio. Quando il software veniva distribuito liberamente fra i (pochi) appassionati dell&amp;rsquo;&lt;a href=&#34;https://it.wikipedia.org/wiki/Homebrew_Computer_Club&#34;&gt;Homebrew Computer Club&lt;/a&gt; (HCC), il primo gruppo di appassionati di computer nato non a caso nella Silicon Valley, Bill Gates &lt;a href=&#34;http://www.storiainformatica.it/approfondimenti?start=8&#34;&gt;rivendicò ad alta voce&lt;/a&gt; il diritto di essere ricompensato economicamente per i prodotti software sviluppati dalla sua azienda, la neonata Micro-Soft (ancora con il trattino in mezzo al nome).&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://digitalcollections.lib.washington.edu/digital/api/singleitem/image/imlsmohai/15438/default.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Fonte: &lt;a href=&#34;https://digitalcollections.lib.washington.edu/digital/collection/imlsmohai/id/15438/&#34;&gt;MOHAI, Museum Of History And Industry&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;La sua lettera, pubblicata sul numero del 3 febbraio 1976 della newsletter dell&amp;rsquo;HCC segna la fine dell&amp;rsquo;epoca pionieristica e l&amp;rsquo;inizio dell&amp;rsquo;industria dei personal computer. Ma per Bill Gates e la sua Microsoft quello fu solo il primo passo. Poi venne il &lt;a href=&#34;https://www.storiainformatica.it/dos&#34;&gt;DOS rubato (o quasi)&lt;/a&gt; al povero Tim Paterson, Windows messo a forza in qualunque PC venduto sulla faccia della Terra, la &lt;a href=&#34;https://it.wikipedia.org/wiki/Guerra_dei_browser&#34;&gt;distruzione della concorrenza con qualunque mezzo&lt;/a&gt;, lecito ed illecito, pratiche commerciali rapaci. Tutto si può dire di Microsoft, tranne che sia mai stata una azienda simpatica.&lt;/p&gt;&#xA;&lt;hr style = &#34;border: none; &#xA;            border-top: 3px double #333; &#xA;            color: #333; &#xA;            overflow: visible; &#xA;            height: 5px; &#xA;            width: 50%; &#xA;            margin-left: auto; &#xA;            margin-right: auto;&#34;&#xA;&gt;&#xA;&#xA;&lt;p&gt;Google era esattamente il contrario, era l&amp;rsquo;azienda &lt;em&gt;buona&lt;/em&gt; per antonomasia. Quella che già nel motto, &lt;em&gt;Don&amp;rsquo;t Be Evil&lt;/em&gt;, prometteva di non essere malvagia.&lt;/p&gt;&#xA;&lt;img src=&#34;http://blogoscoped.com/files/google-at-stanford-wayback.jpg&#34; alt=&#34;&#34;&gt;&lt;p&gt;Il &lt;a href=&#34;https://elgoog.im/google1998/&#34;&gt;motore di ricerca&lt;/a&gt; nato nel 1998 in un &lt;a href=&#34;http://infolab.stanford.edu/pub/voy/museum/google.htm&#34;&gt;dormitorio di Stanford&lt;/a&gt; veniva percepito come l&amp;rsquo;azienda ideale dove lavorare, una azienda aperta, liberale, proiettata nel futuro. Una azienda capitanata da due &lt;em&gt;geek&lt;/em&gt; più interessati alla carriera accademica che al mondo degli affari, nella quale i dipendenti venivano praticamente cullati e potevano usufruire di una libertà e di un livello di servizi impensabile altrove.&lt;/p&gt;&#xA;&lt;p&gt;Oggi Google ha perso la sua innocenza, è un mostro tentacolare che attenta ogni giorno di più alla nostra privacy, che non si fa scrupoli di scendere a patti con le dittature, dove i dipendenti sono sempre meno tutelati e, se osano protestare, vengono &lt;em&gt;mobbizzati&lt;/em&gt; o fatti fuori senza scrupoli. Proprio &lt;a href=&#34;https://www.elle.com/culture/tech/a30259355/google-walkout-organizer-claire-stapleton/&#34;&gt;come è successo a Claire Stapleton&lt;/a&gt;, il &amp;ldquo;bardo di Google&amp;rdquo;, la manager che aveva contribuito a creare l&amp;rsquo;immagine dell&amp;rsquo;azienda.&lt;/p&gt;&#xA;&lt;p&gt;Il motto originario è passato di moda, ora contano solo i soldi.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Setacciare numeri con il serpente</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2014/09/29/setacciare-numeri-con-il-serpente/</link>
      <pubDate>Mon, 29 Sep 2014 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2014/09/29/setacciare-numeri-con-il-serpente/</guid>
      <description>&lt;p&gt;Anche se ho una collezione molto ampia di &lt;a href=&#34;http://atariage.com/forums/topic/167235-byte-magazine/&#34;&gt;scansioni in pdf&lt;/a&gt; di vecchi numeri di &lt;a href=&#34;http://vintagecomputer.com/history-of-byte-magazine.html&#34;&gt;BYTE Magazine&lt;/a&gt;, mi piace ogni tanto leggere qualche fascicolo preso in prestito dalla biblioteca dell&amp;rsquo;Istituto (del resto qualche tempo fa li ho salvati da una fine stile &lt;a href=&#34;http://it.wikipedia.org/wiki/Fahrenheit_451&#34;&gt;Fahrenheit 451&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;Nonostante la mia passione per la tecnologia, infatti, ci sono dei casi in cui preferisco ancora l&amp;rsquo;analogico al digitale. Fra cui ci sono i libri e le riviste.&lt;/p&gt;&#xA;&lt;p&gt;Sfogliando un numero di BYTE dell&#39;89 dedicato a Unix, mi ha incuriosito una lettera sul famoso &lt;a href=&#34;http://it.wikipedia.org/wiki/Crivello_di_Eratostene&#34;&gt;Crivello di Eratostene&lt;/a&gt;, un algoritmo per calcolare i &lt;a href=&#34;http://it.wikipedia.org/wiki/Numero_primo&#34;&gt;numeri primi&lt;/a&gt; che ha più di 2200 anni. L&amp;rsquo;algoritmo funziona come un &lt;em&gt;setaccio&lt;/em&gt; (da cui il nome): elimina uno dopo l&amp;rsquo;altro i numeri composti lasciando alla fine soltanto i numeri primi.&lt;/p&gt;&#xA;&lt;p&gt;La lettera su BYTE introduceva all&amp;rsquo;&lt;a href=&#34;http://www.algorithmist.com/index.php/Prime_Sieve_of_Eratosthenes&#34;&gt;algoritmo &lt;em&gt;standard&lt;/em&gt;&lt;/a&gt; e ad una ottimizzazione ben nota, con la quale era possibile velocizzare il calcolo dei numeri primi senza complicarne più di tanto l&amp;rsquo;implementazione in &lt;a href=&#34;http://en.wikipedia.org/wiki/BASIC&#34;&gt;BASIC&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Il BASIC è stato il linguaggio di programmazione più popolare degli anni&#xA;80, gli anni della rivoluzione del personal computer. A quei tempi il BASIC era usato per interagire con il computer stesso &amp;ndash; ne costituiva di fatto il sistema operativo vero e proprio &amp;ndash; ed ha contribuito a formare le prime generazioni di programmatori che sviluppavano software per il nascente mondo dell&amp;rsquo;informatica personale. Non è un caso che sia la Apple che la Microsoft abbiano basato i primi prodotti proprio sul BASIC [1,2].&lt;/p&gt;&#xA;&lt;p&gt;Il listato originale in BASIC è mostrato qui sotto, in una forma (spero) più leggibile rispetto a quanto consentito dall&amp;rsquo;impaginazione di BYTE (oltre che dall&amp;rsquo;abitudine di quei tempi di compattare all&amp;rsquo;estremo i programmi per ridurre il più possibile l&amp;rsquo;occupazione della memoria). Il programma determina i numeri primi da 1 fino al valore impostato nella variabile &lt;code&gt;max&lt;/code&gt;. Per usarlo, bisogna anche impostare il valore di &lt;code&gt;root&lt;/code&gt; alla radice quadrata di &lt;code&gt;max&lt;/code&gt; (arrotondata ad un numero intero).&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;max=8192&#xA;root=90&#xA;DIM flags (max)&#xA;&#xA;FOR num=1 TO max&#xA;&#x9;flags(num)=TRUE&#xA;NEXT num&#xA;&#xA;FOR num=2 TO root&#xA;&#x9;IF flags (num) THEN&#xA;&#x9;&#x9;FOR mult=num*num TO max STEP num&#xA;&#x9;&#x9;&#x9;flags(mult)=FALSE&#xA;&#x9;&#x9;NEXT&#xA;&#x9;END IF&#xA;NEXT num&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Appena ho visto il programma ho pensato che sarebbe stato immediato tradurlo in &lt;a href=&#34;https://www.python.org/&#34;&gt;Python&lt;/a&gt;, un linguaggio che mi piace moltissimo e che considero il migliore compromesso fra potenza e facilità d&amp;rsquo;uso. Python può essere usato a più livelli, da &lt;a href=&#34;http://en.wikipedia.org/wiki/Procedural_programming&#34;&gt;linguaggio puramente procedurale&lt;/a&gt; fino a &lt;a href=&#34;http://www.codeproject.com/Articles/22769/Introduction-to-Object-Oriented-Programming-Concep&#34;&gt;linguaggio orientato agli oggetti&lt;/a&gt;, e quindi si presta bene ad essere usato per imparare i fondamenti delle programmazione.&lt;/p&gt;&#xA;&lt;p&gt;Nella prima traduzione in Python ho lasciato il più possibile inalterato il codice originale. Le piccole differenze sono dovute alle particolarità sintattiche dei due linguaggi. In Python esiste la funzione &lt;code&gt;max()&lt;/code&gt; e non si può usare lo stesso nome per una variabile, gli indici degli array iniziano da 0 e la funzione &lt;code&gt;range(0, N)&lt;/code&gt; crea una lista di numeri interi da &lt;code&gt;0&lt;/code&gt; fino a &lt;code&gt;N-1&lt;/code&gt;, e non fino ad &lt;code&gt;N&lt;/code&gt; come sarebbe immediato pensare.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;num_max &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;256&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;root &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;flags &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; []&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; num &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; range(&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, num_max &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    flags&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;append(&lt;span style=&#34;color:#66d9ef&#34;&gt;True&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; num &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; range(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;, root):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; flags[num] &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;True&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; mult &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; range(num&lt;span style=&#34;color:#f92672&#34;&gt;**&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;, num_max &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, num):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            flags[mult] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Sieve of Eratosthenes between 1 and &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;%d&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; (BYTE-style): true/false map&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt;(num_max))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print flags[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;:num_max &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Sieve of Eratosthenes between 1 and &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;%d&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; (BYTE-style): prime numbers&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt;(num_max))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; num &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; range(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, num_max &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; flags[num] &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;True&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        print num,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        print &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;-&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Alla fine ho aggiunto il codice per stampare i risultati del calcolo, mostrando prima il contenuto &lt;em&gt;grezzo&lt;/em&gt; dell&amp;rsquo;array (o meglio della &lt;code&gt;lista&lt;/code&gt;) usato per determinare se ciascun numero è primo o meno, e poi convertendo l&amp;rsquo;output in una forma più leggibile.&lt;/p&gt;&#xA;&lt;p&gt;Per provare il programma, basta copiare il codice in un editor di testo (come i soliti TextWrangler, TextMate, Atom, Brackets, o analoghi), salvarlo sul disco rigido con un nome qualsiasi (diciamo &amp;ldquo;sieve.py&amp;rdquo;), ed eseguirlo dal Terminale con il comando&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ python sieve.py&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;[caption id=&amp;ldquo;attachment_1305&amp;rdquo; align=&amp;ldquo;aligncenter&amp;rdquo; width=&amp;ldquo;605&amp;rdquo;]&lt;img src=&#34;http://melabit.files.wordpress.com/2014/09/sieve.png?w=605&#34; alt=&#34;Output delle traduzione in Python del programma originale in BASIC per il calcolo dei numeri primi.&#34; width=&#34;605&#34; height=&#34;375&#34; class=&#34;size-large wp-image-1305&#34; /&gt; Output della traduzione in Python del programma originale in BASIC per il calcolo dei numeri primi.[/caption]&lt;/p&gt;&#xA;&lt;p&gt;Si può provare a misurare il tempo di esecuzione del programma impostando la variabile &lt;code&gt;num_max&lt;/code&gt; ad un valore relativamente grande (e ricordando di modificare anche il valore di &lt;code&gt;root&lt;/code&gt;, che deve essere la radice quadrata di &lt;code&gt;num_max&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ time python ./sieve.py&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Per evitare di influenzare la misura è bene cancellare (o commentare) la sezione del codice contenente i comandi di stampa dei risultati, che sono molto lenti rispetto al puro codice di calcolo.&lt;/p&gt;&#xA;&lt;p&gt;Il mio iMac del 2008 impiega 0.025 secondi per calcolare i numeri primi fino a 10.000, e ben 22.5 secondi per arrivare fino a 25.000.000.&lt;/p&gt;&#xA;&lt;p&gt;Ma di questo parleremo più diffusamente un&amp;rsquo;altra volta.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;[1] Il primo software prodotto dalla Micro-Soft di Bill Gates e Paul Allen fu proprio un &lt;a href=&#34;http://startup.nmnaturalhistory.org/gallery/notesViewer.php?ii=75_4&amp;amp;p=00&#34;&gt;interprete BASIC&lt;/a&gt; per l&amp;rsquo;&lt;a href=&#34;http://en.wikipedia.org/wiki/Altair_8800&#34;&gt;Altair 8800&lt;/a&gt;, il primo microcomputer personale in assoluto. La storia è raccontata nel bel libro di Paul Freiberger e Michael Swaine, &amp;ldquo;Fire in the Valley: The Making of the Personal Computer&amp;rdquo;, McGraw-Hill, 2000, ed è riassunta molto bene &lt;a href=&#34;http://it.wikipedia.org/wiki/Altair_BASIC&#34;&gt;in questa pagina su Wikipedia&lt;/a&gt; (per una volta la versione in italiano di un articolo è allo stesso livello di quella originale).&lt;/p&gt;&#xA;&lt;p&gt;[2] Steve Wozniak, la mente geniale della Apple degli inizi, &lt;a href=&#34;http://archive.org/stream/byte-magazine-1984-12/1984_12_BYTE_09-13_Communications#page/n461/mode/2up&#34;&gt;scrisse da zero&lt;/a&gt; un &lt;a href=&#34;http://gizmodo.com/how-steve-wozniak-wrote-basic-for-the-original-apple-fr-1570573636&#34;&gt;interprete BASIC per l&amp;rsquo;Apple I e II&lt;/a&gt;, che diventò il più diffuso interprete BASIC degli anni &amp;lsquo;80, un vero riferimento a cui tutti gli altri interpreti BASIC cercavano di ispirarsi.&lt;/p&gt;&#xA;</description>
    </item>
  </channel>
</rss>
