Zune, la data, Microsoft e il passaparola.
Nei primissimi giorni dell'anno blog e giornali hanno riportato la notizia del blocco dei sistemi Zune, il bellissimo lettore MP3 distribuito, purtroppo non ancora in Italia, da Microsoft.
La notizia è semplicissima: un errore di software tanto banale da essere oggetto delle esercitazioni del primo anno di qualsiasi università dove si insegni a programmare ha portato al momentaneo blocco del sistema che si risolveva con un reset il giorno successivo.
Blog e giornali hanno dato libero sfogo alla fantasia: millenium bug 9 anni dopo, i programmatori Microsoft ignoravano l'esistenza degli anni bisestili, Microsoft non sa scrivere il software, tutti i file cancellati...
La notizia a me è sembrata subito un poco strana tanto è vero che ho segnalato la cosa subito su Geekissimo .
Poi è saltato fuori il codice .
Andandolo a vedere si nota subito come una routine di conversione manchi di una condizione di uscita e allo scavallamento del capodanno bisestile entri in una loop infinita: lo ripeto un errore banalissimo e comunissimo.
Con il Millenium bug questo problema non ha NULLA da spartire. I programmatori conoscevano benissimo il problema degli anni bisestili tanto è vero che hanno previsto anche il codice per la gestione di una anomalia della gestione del secolo bisestile che si presenterà nel 2400. Il codice molto probabilmente non è stato scritto da Microsoft, ma dal fornitore dell'hardware dell'orologio (Freescale Semiconductor). I file non sono ovviamente stati cancellati.
Come ho già avuto molto spesso modo di osservare credo che l'acritica ripubblicazione delle notizie sui blog e sui giornali sia uno dei problemi della comunicazione di questi anni. L'esempio del latte inquinato con melammina che diventa latte alla melanina è illuminante!
Credo che se blogger e giornalisti si limitassero a scrivere di cose che vagamente conoscono, informandosi in caso contrario da uno specialista, l'informazione ne trarrebbe un grande beneficio come fantastico sarebbe se i blogger scrivessero quando hanno qualche cosa da dire di originale senza limitarsi ad uno stucchevole taglia e incolla di informazioni altrui: per quello va benissimo del.icio.us!
bob
PS Gekissimo consiglia si attendere il giorno successivo, ma io ho qualche dubbio che un programma in loop si accorga del nuovo giorno senza un reset in questo caso ottenibile facendo scaricare la batteria.
Roberto, la tua riflessione è più che condivisibile e fa emergere uno dei temi storici dello sviluppo software, o meglio della qualità, vale a dire il malfunzionamento del sistema quando assume determinati stati.
RispondiEliminaIl fatto che si scrivano migliaia di test e si facciano centinaia di migliaia di review del codice non fa si che questo non possa assumere degli stati non previsti o non gestiti. Che sia Microsoft, Google, la Nasa o la piccola software house questo è un problema irrisolvibile a meno di non avere risorse e tempo infinito.
Forse bisognerebbe spiegare di più al mondo che qualunque prodotto industriale (e qui allargo il campo) può evidenziare difetti in determinate circostanze e che questo non è direttamente correlato al fatto che quel produttore sia bravo o no
@luca Hai ragione anche se i fatto che nei test del sistema non ci fosse lo scavallamento del bisestile stupisce un pochino.
RispondiEliminaIn generale c'è nel mondo del software una sostanziale ignoranza perché ci sono tanti programmatori, ma poche persone con cultura informatica.
La impossibilità di determinare in modo formale la correttezza di un programma è un teorema dimostrato.
bob