iCloud, se di cognome fai "True" non hai accesso al servizio. Cosa è successo

08 Marzo 2021 122

L'attrice e scrittrice statunitense Rachel True si è resa protagonista di uno spiacevole (ma insolito) episodio: per circa sei mesi, la donna non ha potuto accedere al suo account iCloud a causa di un bug di codifica dovuto a un'errata interpretazione del suo cognome.

Nella fattispecie, come riportano numerose testate internazionali, il servizio di cloud della Mela interpreterebbe il cognome "True" come un flag booleano, la variabile che può assumere soltanto due valori: "vero" o "falso". Non lo rileverebbe, quindi, come un normale campo di testo da immettere nello spazio dedicato alle generalità dell'utente.

Su Twitter, la donna ha ricostruito la vicenda mostrando la schermata in cui appare il messaggio di errore di Apple, "iCloud ha smesso di funzionare". Venendo al problema, dai dettagli si evince che a mandare in tilt il sistema è stata l'impossibilità di impostare il valore "true" (tradotto: vero) sulla proprietà "lastName" (cognome).

Credits: Twitter (@RachelTrue)

Un errore nella scrittura del codice lato server avrebbe, dunque, generato il bug. Ad aggravare la situazione è il fatto che la donna, che nel frattempo ha continuato a pagare il servizio per non perdere i propri dati personali, non sia riuscita a risolvere la criticità nemmeno dopo aver trascorso ore al telefono con il servizio clienti di Apple.

Dopo il tam tam mediatico e l'ilarità che ha scatenato la vicenda sui social, Rachel True avrà sicuramente qualche chance in più per recuperare l'accesso al suo account.

Photo credits: Shutterstock | DestroLove


122

Commenti

Regolamento Commentando dichiaro di aver letto il regolamento e di essere a conoscenza delle informazioni e norme che regolano le discussioni sul sito. Clicca per info.
Caricamento in corso. Per commentare attendere...
Mark-
Ciccio Pasticcio

incompetenti gente che hanno scritto sw che magari senza saperlo usi anche tu?
gente che ha scritto dei sw per il test automatico delle reazioni chimico/fisiche dei farmaci e reagenti, usato da una _enorme_ azienda a livello mondiale nel settore farmaceutico?
allora, sentiamo qual e' la tua enorme esperienza di sviluppo? hai scritto un hello world senza far esplodere il pc e ti ritieni uno sviluppatore? ahahahahahahah fai pure le pulci alla grammatica, poi vai a spiegare al mio team leader del tempo (e sono sicuro che lo conosci, e' leggermente famoso) che tu sei piu' furbo di lui perche' dici assembly invece di assembler.
benvenuto nel killfile, novello bill gates!

boosook

Rilasciare un segmento di codice in produzione richiede, con le moderne modalità di sviluppo, pochissimo tempo (aziende come Apple fanno tutte continuous deployment). Molto probabilmente, il bug è stato gestito con una priorità molto bassa trattandosi di un problema segnalato da un singolo utente.

boosook

Beh, molto semplice... ha smesso di poter accedere quando è stato introdotto il bug in seguito a qualche modifica del codice.

Mark-

Beh mi dispiace dirtelo ma se chiamavano assembler il linguaggio sono degli incompetenti. Una mia curiosità: hai studiato in università o quei corsi online?

Ciccio Pasticcio

sono stato due volte in un team di sviluppo assembler, e in entrambi i casi lo chiamavano _assembler_, prendendo ampiamente pel c*lo quelli che lo chiamavano assembly, considerati dei fighetti appena usciti dagli studi.

se poi l'assembler l'hai solo studiato all'universita' e non l'hai mai usato seriamente, problemi tuoi.

Mark-

Assolutamente no. Assembly è il linguaggio, assembler è l'assemblatore. Sono due cose diverse. Non so con chi tu parli. Si studia al primo esame di università informatica.

Ciccio Pasticcio

si, ma se parli con uno che scrive in assembly, lo chiama anche assembler, non facciamo i perfettini. Poi, ci sono dei linguaggi di alto livello che sono eccellenti, altri che sono mer*a.

Ciccio Pasticcio

JS e' un guazzabuglio, nella gestione dei tipi. io detesto profondamente i linguaggi senza una tipizzazione decente, proprio perche', tra le altre cose, possono dare questi errori stupidi.

Pistacchio
B!G Ph4Rm4

Il primo perchè dovresti ottenere true

Goose

Era per intendere il cognome della donna in questione, probabilmente era tutto lowercase.

ErCipolla

Infatti, strano che l'assistenza non abbia fatto la prova

Scanato Khan

Possono sorgere problemi se in JS fai 1 == "1" (da notare le virgolette, il primo 1 è un numero, il secondo una stringa), perché ottieni true.
Comunque basta usare il triplo uguale, perché 1 === "1" è false.

Scanato Khan

Non darei la colpa al JS in se. La comparazione nel codice è fatta con il triplo uguale (non col doppio) tra la stringa "true" ed il valore inserito nel form, quindi la cosa sembra proprio voluta. Tra l'altro inserendo "True" con la lettera maiuscola il problema non si verificherebbe.

Scanato Khan

In verità "true" === "True" è false (la lettera maiuscola...).

Scanato Khan

Però significa che l'utente ha inserito il cognome con l'iniziale minuscola, altrimenti l'uguaglianza avrebbe restituito false.

Scanato Khan
Crash Nebula

Beh dal tuo commento sui genius sembrava ti aspettassi che il codice lo fixasse lui.
Il genius fa una segnalazione a chi deve, e per tempo questa venga fatta recapitare a chi può risolvere il problema, avoglia a non poter accedere.

virtual

Non deve sapere nulla, ma se una poveretta insiste prova lui a digitare "True" come cognome sul form e se gli dà l'errore lo segnalerà ai superiori.

csharpino

Ma che stai a di... Quando sali di livello è proprio quando diventa sempre più sconveniente usare linguaggi non tipizzati sia per questione di prestazioni che per compatibilità che soprattutto per testabilita.

csharpino

Cosa c'entra il basso livello con la tipizzazione???

nutci2nd

Conoscenze specifiche o mera curiosità?

nutci2nd

Del tipo "sono dentro, posso modificare questa .jpg in .jpeg!"

Crash Nebula

L’errore è di una banalità assurda, io però una cosa mi chiedo, questa ragazza non ha mai effettuato l’accesso ad iCloud prima?
Come fa ad avere il problema solo da sei mesi?

Crash Nebula
Crash Nebula

Ma dai ma pensi che il tizio che ti dica come recuperare la password, fare un backup, o di ripristinare l’iPhone per qualsiasi problema, sappia qualcosa di programmazione?

ErCipolla

esatto, idem da noi e penso ovunque

The_Th

quello è un caso diverso, non è il cliente che chiama ma un partner/rivenditore che chiaramente ha necessità diverse.
Anche da noi è così, il cliente salvo rarissimi casi non parla con lo sviluppatore direttamente, si passa dall'assistenza, al limite è il consulente/programmatore che chiama il cliente in casi particolari, ma di sicuro il cliente non chiama lo sviluppatore direttamente, anche perchè non sempre si sa in anticipo chi guarderà il problema

ErCipolla

In generale si, è così ovunque, almeno per il cliente "normale" (mi è capitato alcune volte di parlare direttamente con sviluppatori di certi software aziendali per risolvere certi bug, ma è perché l'azienda per cui lavoro è rivenditore di tali software e quindi c'è un filo più diretto)

The_Th

Ma anche di aziende più piccole, difficilmente parli con un tecnico o sviluppatore, se tutti quelli che chiamano dovessero disturbare un programmatore poi nessuno farebbe i lavori.
Tutti lavorano con ticket e simili.

ErCipolla

non concordo... TypeScript ad esempio rende JS fortemente tipizzato senza perdere funzionalità. JS è fatto così per motivi storici e scelte degli autori, non per necessità funzionali.

Mark-

A prescindere che assembly è il linguaggio e non assembler, che è l'assemblatore, se non fossero esistiti i linguaggi ad alto livello non si avrebbero gran parte degli applicativi di oggi. Sarebbe come accendere il fuoco con la pietra piuttosto che con l'accendino.

ErCipolla
ErCipolla

Lo so benissimo, l'ho usato spesso, ma mi sfugge perché un linguaggio di programmazione non sarebbe uno "strumento" scusa? Forse hai capito male... con "in JS" intendo "in ambito JS" non che è una cosa che fa parte del linguaggio javascript.

ErCipolla

Lol, ma tu credi che chiamando "il supporto" in un'azienda enorme come Apple parlerai mai direttamente con uno sviluppatore? Anche se arrivi al secondo o terzo livello al massimo ti aprono un ticket che verrà poi esaminato da chi di dovere a tempo debito.
E puoi stare sicuro che ormai gli sviluppatori sono stati informati della cosa e hanno sicuramente già il fix pronto, è rilasciarlo che richiede tempo.

ErCipolla

Eh ma Javascript non ha tipizzazione forte, quindi una cosa può diventare un'altra senza batter ciglio. Per questo al giorno d'oggi si tendono a usare linguaggi intermedi più strutturati (tipo TypeScript) che poi vengono tradotti da un transcompilatore in javascript puro.

ErCipolla

informatico, non ingegnere

Mako

una segnalazione singola difficilmente viene presa in considerazione, e purtroppo per la signora in questione, non ce ne sono tanti altri che hanno lo stesso cognome

fabrynet

Typescript non è uno strumento di JS è un linguaggio proprio a parte derivato da JS e maggiormente tipizzato.

fabrynet

Nulla, in quanto i controlli di sicurezza sono multilivello.
Nei film non sanno neanche di cosa parlano a volte quando si tratta di tecnologie informatiche.

Giangiacomo

Ne dubito fortemente, secondo me c'è altro sotto. Impossibile che dopo varie segnalazioni, ore col supporto e molto altro non abbiano ancora risolto.

fabrynet

Si ma quell’elemento dell’array t[o] non sappiamo cosa contiene, il codice è incompleto e quindi non possiamo dedurre se il problema sia lì.

riccardik

"you're naming it wrong" semicit.

fabrynet

Si ma rimaniamo nel campo delle ipotesi appunto. Col “presumibilmente” non si va da nessuna parte.
Il codice che hai postato non dimostra nulla.
A parte tutto comunque rimane un errore grave quanto banale.

Don Peridone

Non ho capito nulla di quello che hai scritto. complimenti comunque, sei ing informatico?

Ciccio Pasticcio

benvenuto nel mer*aviglioso mondo di JS

Ciccio Pasticcio

un attimo, se tu passi una variabile BOOL, quella BOOL rimane, cosi' come String. a fare casini simili in c, c++ o qualsiasi linguaggio in cui i tipi non siano trattati come spaghetti in una pentola, ce ne vuole.

Ciccio Pasticcio

tra l'assembler e il js c'e' un mare...

Mark-

Andrebbero usati come si deve invece. Che intendi con abolire? Vuoi tornare a programmare a basso livello?

iPhone 14, iPad e Mac ma non solo: il ricco 2022 di Apple secondo Bloomberg

Recensione Apple MacBook Pro 14 con M1 Pro, che goduria!

Ho trasformato la casa in palestra: la mia recensione di Apple Fitness+

Nuovi MacBook Pro con M1 Pro e Max, perchè comprarli e perchè no