Leggo su Facebook, tramite post di amici e/o parenti, qualche post riguardante il fatto che nessuno vuole un Ministro nato in “territorio non italico” (espressione presumo piuttosto fascista e mussoliniana, credo). Chiaramente, si tratta per lo più di persone vicine al Movimento 5 Stelle, presumo (e siamo già a due con le presunzioni) razziste e naturalmente poco informate. Perchè ve la prendete solo con Cecile Kyenge, e non con altre persone, ministri ed ex-ministri che non sono comunque nate in Italia?
Forse perchè Cecile è nera? Ah, ma allora non presumo più che siate razzisti: lo siete punto e stop.
Detto questo, vi consiglio la seguente lettura, che riporta tutti personaggi politici, che siedono (oggi o in precedenza) in Parlamento, alla Camera, che magari sono stati Ministri della Repubblica oppure no.
Melandri Giovanna, nata a New York (USA)
http://it.wikipedia.org/wiki/Giovanna_Melandri
Josefa Idem, nata a Goch (Germania)
http://it.wikipedia.org/wiki/Josefa_Idem
Archi Bruno, nato a Ixelles (Belgio)
http://it.wikipedia.org/wiki/Bruno_Archi
Calabria Annagrazia, nata a New York (USA)
http://it.wikipedia.org/wiki/Annagrazia_Calabria
Gallo Riccardo, nato a Montevideo (Uruguay)
su Wikipedia non esiste
Gutgeld Itzhak Yoram, nato a Tel Aviv (Israele)
http://it.wikipedia.org/wiki/Itzhak_Yoram_Gutgeld
Marzana Maria, nata a LUDWIGSHAFEN AM RHEIN (Germania)
http://it.wikipedia.org/wiki/Maria_Marzana
Matarelli Toni, nato a KREFELD (Germania)
http://it.wikipedia.org/wiki/Toni_Matarrelli
Piras Michele, nato a DARMSTADT (Germania)
http://it.wikipedia.org/wiki/Michele_Piras
Non sono tanti, è vero, comunque ci sono esponenti politici, non nati in Italia, che sono lì a lavorare per noi, perchè credo che si sentano italiani, e che lo sono a tutti gli effetti, indipendentemente dal loro credo religioso, dal colore della loro pelle, dalla forma degli occhi, dall’accento che hanno, e così via. Insomma, sarebbe ora di guardare le competenze, e non l’aspetto fisico, non credete?
Perciò, cari amici e parenti, fatemi capire: ce l’avete solo con Cecile Kyenge, oppure anche le persone sopra elencate, secondo voi, non dovrebbero diventare Ministri? Giusto per capire…
Ci saranno tanti modi per ottenere un array di byte, di N elementi, tutti valorizzati con lo stesso valore. Io ho trovato questo, che utilizza Linq:
var array = Enumerable.Repeat<byte>(0xFF, 100).ToArray();
Con una sola rapida riga di codice, otteniamo un bell’array, in questo caso di 100 elementi, tutti valorizzati a 0xFF (ovvero 255 decimale). Comodo. Grazie Linq!
Ci sono parecchie cose che la scienza attuale non riesce a spiegare.
Luoghi remoti e sconosciuti, dove ogni anno spariscono navi ed aerei. O penne, o palloni da calcio.
UFO che compaiono in dipinti di artisti italiani del XIV-XVI secolo.
Oggetti che spariscono, che compaiono là dove non dovrebbero essere, che non sembrano essere coerenti, in quel luogo, in quel tempo, e che invece ci sono.
Ma una spiegazione – come sempre – c’è.
Anno 1817 – Da qualche parte a Vienna (Austria)
E’ ancora buio, l’uomo è già sveglio, e rimane sotto le coperte del suo letto. E pensa.
”E’ l’alba, e non riesco a dormire. E sono sordo, non posso più negarlo, dannazione. E’ poco più di vent’anni che le mie orecchie non funzionano più come un tempo. Sono peggiorate. Nessun medico è stato in grado di aiutarmi. Ed oggi sono completamente sordo, dannazione. E per un musicista non c’è nulla di peggiore che l’esser sordi. Passo notti inquiete ed agitate; sento musica, note, accordi e sinfonie che prendono vita nel mio cuore e dentro di me…musica a cui non riesco a dar forma la mattina dopo, quando poi mi sveglio. Non penso di farcela, di andare avanti, da oggi vivrò isolato, in sofferenza, e non mi importa nulla di quello che potrà pensare la gente di me. Mi crederanno pazzo, ostile, scontroso, un misantropo fallito. Ma non mi importa di loro, e comunque non ho scelta. Molto probabilmente dovrò anche abbandonare la mia musica, che è stata la grande ispirazione della mia vita. E lo sarà sempre.”
Dal futuro
Il viaggio nel tempo non è stato ancora inventato. Ma lo sarà molto presto. Il primo esperimento considerato valido di viaggio nel tempo, secondo Wikipedia, avverrà il 17 Febbraio 2031. Per voi che state leggendo è il futuro, per me che vi scrivo è il passato. Non posso dirvi dove avverrà e chi sarà a capo di tutto questo, rischierei di alterare troppo il normale continuum del tempo. Il primo viaggio nel tempo sarà ovviamente una cosa molto semplice: il trasferimento di qualche molecola di H2O, acqua, quattro secondi dal passato. La vera rivoluzione (disponibile però solo ad università, enti paramilitari ed alcune società hi-tech), verrà introdotta solamente due anni più tardi, con l’invenzione di quello che verrà poi battezzato semplicemente come “il lazo del tempo”.
Tutti sappiamo – credo – cosa sia un lazo. E’ quello strumento utilizzato dai cowboy nordamericani per praticare il cosiddetto roping, ovvero la cattura di quadrupedi o di bestiame, attraverso il lancio di un’estremità della corda avente la forma di un cappio. Nel caso del viaggio nel tempo le cose sono più complesse, ovviamente, ma non andiamo OT, tralasciamo equazioni quantistiche, fluttuazione delle costanti universali e materiali utilizzati nel processo: spiegandolo con parole semplici, e rimanendo ad un livello puramente concettuale, le cose sono molto simili.
Possiamo lanciare il lazo nel passato o nel futuro, e prelevare quindi materia passata o futura.
Possiamo accorciare od allungare la corda del lazo, per muoverci più vicino o più lontano nel tempo.
Possiamo stringere od allargare il cappio, per prelevare oggetti di massa più o meno grande.
Gli oggetti devono essere di natura molto semplice. Dal punto di vista molecolare, intendo. Non riusciamo a prelevare persone, nè animali, nè organismi viventi; o meglio, non riusciamo a prelevarle mantenendone intatte le funzioni vitali. Ci abbiamo provato, chiaramente, ma i risultati sono stati alquanto sconfortanti. Sorvoliamo. La materia, dicevo, deve essere semplice. Un conto è ad esempio campionare qualche goccia d’acqua del Mediterraneo di mille anni fa, un altro è tentare di evitare l’assassinio di Kennedy asportando temporalmente il fucile di Lee Harvey Oswald a Dallas. Un conto è prelevare un qualsiasi brandello di pianta carnivora del Giurassico, un altro è prelevare il primo telegramma della storia inviato da Samuel Morse. Senza considerare poi le conseguenze nel continuum temporale, come dicevo prima. Insomma, dobbiamo essere cauti, dobbiamo valutare con attenzione cosa, dove e quando prelevare un determinato oggetto. Riflettere sui pro e sui contro.
Tre infatti sono le variabili in gioco.
Chiaramente il quando. Allungando il lazo, continuamo la metafora, si viaggia più distanti nel tempo. Accorciandolo si viaggia più vicini. Più la distanza temporale da coprire è grande, maggiore è il dispendio di energia che occorre per completare il viaggio. Grazie all’adozione di batterie nucleari dedicate, siamo in grado di viaggiare fino ad un limite di 25 miliardi di anni nel passato; l’età dell’Universo calcolata è di 13,77 miliardi di anni, e non si sa bene cosa debba accadere se si tenta di viaggiare più in là. Ma le equazioni quantistiche comunque lo dimostrano, e ci sono orde di scienziati e di fisici virtuali e reali al lavoro per riuscire a carpire questi nuovi segreti della realtà.
Un’altra variabile è il dove. Possiamo lanciare il lazo specificando latitudine, longitudine ed altitudine: questo chiaramente se vogliamo interagire con un luogo collocato sul nostro pianeta. Le equazioni dimostrano che possiamo raggiungere qualsiasi luogo dell’Universo, manipolando opportune variabili. Ad oggi non abbiamo ancora raggiunto queste capacità: le nostre tecnologie attuali ci consentono di prelevare oggetti nel raggio di circa 515,34 chilometri rispetto al punto in cui ci troviamo. Nessuno riesce a capire da dove arrivi questo limite di 515,34 chilometri. Quello che abbiamo capito è che se mi trovo in un punto X, posso prelevare ogni tipo di materia che si trovi in un’area compresa in un raggio di 515,34 chilometri: chiaramente nel quando desiderato. Oltre…la materia temporale arriva delocalizzata.
L’ultima variabile è il cosa, che di riflesso indica le dimensioni di materia da prelevare. Le dimensioni possono andare da una semplice molecola fino ad interi chilometri cubi di terreno. Dipende ancora una volta dall’energia che si intende consumare nell’operazione. Gli aerei sono stati un semplice diversivo per farvi credere determinate cose, ma è che così che la futura Al-Qaida ha fatto crollare le Torri Gemelle, l’11 Settembre 2001: semplicemente rimuovendo in un istante le gigantesche fondamenta su cui poggiavano i due enormi palazzi del World Trace Center. E’ così che abbiamo rimosso – a scopo di studio – il naso della Sfinge, che secondo la vostra storia convenzionale è stato distrutto in epoca ottomana. E’ così che abbiamo evitato che gli attentati ad Hitler riuscissero: avevamo bisogno che la II° Guerra Mondiale si concludesse come si è conclusa davvero.
Chiaramente, è molto meno rischioso interagire con il passato piuttosto che con il futuro. Il motivo è semplice. Trattandosi di storia già avvenuta, sappiamo quando e dove un certo oggetto si sia venuto a trovare, e quindi possiamo agire con migliori probabilità di successo. Non è sempre così, chiaramente, dobbiamo tenere in considerazione precedenti modifiche al continuum temporale, ma in linea generale sì. Dal futuro abbiamo solamente raccolto piccoli campioni della nostra atmosfera, per studiare e prevenire i futuri inquinamenti. Stessa cosa per il sottosuolo, per la superficie lunare e per quella di Marte. Tutto a scopo scientifico.
Ben presto, il lazo del tempo è diventato ancora più potente. All’inizio – come vi ho raccontato – era solamente in grado di prelevare materia. Successivamente siamo riusciti a sviluppare nuove capacità, una su tutte quella di poter inviare materia.
E’ con queste nuove possibilità che riesco a scrivervi dal futuro. Inviando pochi brandelli di informazione, che vengono scritte direttamente sulla Internet dei giorni vostri. E’ così che riesco a comunicare con voi, a fornirvi indizi, a stuzzicarvi dicendovi dove siete e verso cosa state andando. Dal mio futuro abbiamo attentemente manipolato il passato, senza travolgere la Storia. Abbiamo acceso scintille in registi cinematografici e scrittori di fantascienza, trasformato persone comuni in visionari e vicini di casa in geniali inventori, evitato attentati e incidenti stradali. Magari facendo trovare idee, schemi, sceneggiature, ed in qualche caso denaro. Molto denaro. E’ agendo in questo modo che siamo riusciti ad iniettare tecnologie, invenzioni, muovere la coscienza, ad indirizzarvi.
Ma non vi ho ancora detto chi sono.
E non ho alcuna intenzione di farlo.
Anno 1817 – Da qualche parte a Vienna (Austria)
L’uomo si alzerà dal suo letto soltanto qualche ora più tardi. E’ allora che – aprendo un cassetto della sua camera da letto – trova uno spartito musicale. Il titolo è in italiano e recita “Sonata per pianoforte n. 29”. Non l’ha mai visto prima, quello spartito. E’ una strana carta, molto ben lavorata, e si chiede da dove arrivi e chi l’abbia prodotta. E soprattutto…che diavolo vuol dire carta riciclata? Sarà qualche diavoleria moderna – pensa.
Legge le note, rigo dopo rigo, battuta dopo battuta. E’ la sonata più lunga che abbia mai visto in tutta la sua vita, ed anche dal punto di vista armonico è decisamente complessa. Eppure – si rende conto l’uomo – può funzionare. Anzi, gli sembra meravigliosa…è una sonata in quattro tempi che richiederà un certo impegno tecnico per essere eseguita come si deve. Ma gli piace. E gli piace soprattutto perchè in basso a destra è riportata la firma dell’autore.
E’ non è una firma qualunque. E’ la sua.
E’ la firma di Ludwig van Beethoven.
E’ così che il grande compositore e pianista tedesco continuerà a produrre musica nonostante la sua totale sordità, che l’ha afflitto negli ultimi anni della sua vita.
Con qualche aiuto proveniente da qualche parte dal futuro.
Notepad++ è l’editor di testo che preferisco per lavorare. Semplice, leggero, con evidenziazione della sintassi in base al tipo di file, gestione delle macro, menù contestuale, etc. etc. Ieri sera ho registrato una piccola macro che esegue pochi passi, ma ripetitivi, e che avrò usato un migliaio di volte negli ultimi anni!! La cosa è molto semplice:
- Seleziona tutto il testo contenuto nell’editor (CTRL+A)
- Fa un find & replace di tutti i caratteri “ “ (spazio) e lo sostituisce con “” (nessun carattere)
- Mette la stringa tutta in maiuscolo, premendo la combinazione CTRL+SHIFT+U (upper-case)
Quindi, in pratica, incollo il testo, eseguo la macro e mi trovo una stringa pronta all’uso, da incollare da un’altra parte, dove mi serve.
Chiaramente ho salvato la macro.
Qual’è la posizione in cui Notepad++ salva le macro registrate?
Con Windows 8, il file è il seguente:
C:\Users\<vostro_username>\AppData\Roaming\Notepad++\shortcuts.xml
Una cosa importante da ricordare è che questo file viene effettivamente scritto soltanto nel momento in cui chiudete Notepad++, per cui evitate di guardare il file tenendo l’editor aperto, continuerete a vedere una versione più vecchia!
Perchè mi serviva sapere qual’è il file? Perchè in caso di formattone del pc, so qual’è il file da backuppare e restorare per ritrovarmi la macro già bella pronta all’uso sul nuovo OS.
Prologo
E’ passato molto tempo da quando l’entità ha trovato rifugio nella Stanza, ma è solo negli ultimi dieci reboot di sistema che si è reso davvero conto che in fondo contiene tutto ciò che gli serve, e non ha bisogno di nient’altro. E’ una stanza a pianta quadrata, essenziale e senza cose superflue. Non ha finestre alle pareti, l’unica luce naturale che illumina l’ambiente proviene dal soffitto, ed è una tenue luce arancione, con sfumature generate da un algoritmo AA4x davvero efficace. Spesso l’entità trascorre del tempo tentando di capire il vero motivo per cui rimane nella Stanza. E’ da sola, per cui non può discuterne con nessuno. Dopo lunghi cicli di clock di riflessione, a cavallo tra un restart e l’altro, ha raggiunto tre conclusioni.
La prima è che probabilmente se trova così affascinante la Stanza lo deve proprio a quei colori a metà strada tra alba e tramonto, che le regalano serenità e tranquillità in ogni momento. Una volta non sarebbe mai andata alla ricerca di quelle cose, ovviamente, ma alla fine quelle cose l’avevano raggiunta. Ed ormai non riesce più a farne a meno.
La seconda conclusione è che quella tavolozza di colori è sicuramente importante, ma c’è di più. C’è anche la melodia. E’ un brano semplice e soffice che le arriva dritto al cuore. Sono note digitali, chiaramente, uno stream wma, forse, campionato a 192kbps, forse. Non è schedulato, è totalmente asincrono, può arrivare da un momento all’altro senza preavviso, in orari AM o PM. E’ incuriosita; diverse volte ha pensato di lasciare la Stanza per indagare su quei suoni, ma poi ha sempre rinunciato. “Sicuramente si trovano su un altro piano di realtà, la UAC non mi darebbe accesso a quelle informazioni” – dice l’entità nel tentativo di convincere se stessa.
La terza conclusione è che c’è anche un terzo motivo. Il tocco. Il tocco la spaventa e la esalta allo stesso tempo. Arriva d’improvviso, a volte è leggero come una string.Empty, altre volte è pesante come una StackOverflowException con tutto lo StackTrace in allegato. Ma l’entità è spaventata soprattutto da una cosa.
Nel mondo totalmente digitale nel quale vive, il tocco è l’unico evento analogico che le sia capitato.
Mission Briefing
Quando il generale entra nel piccolo offset di memoria allocato per l’incontro segreto, gli altri si zittiscono all’istante. E’ esadecimalmente molto alto, e basta la sua sola presenza per trasmettere timore. E’ stanco, ma cerca di non darlo a vedere. Ha trascorso l’ultima notte in missione operativa, cominciata da qualche parte nel sistema con una chiamata ad un non meglio precisato metodo RunAsync(). La lettura di uno stream http, qualche calcolo matematico con le informationi recuperate e la restituzione di un’istanza di una class. Pensava di aver finito, ed invece il metodo proseguiva per altre 737 linee di codice managed davvero intenso. Se avesse potuto avrebbe parlato direttamente con il developer responsabile di quell’assurdità: gli avrebbe detto che uno dei motivi per cui è buona cosa scrivere metodi semplici e chiari, è che ogni entità software prima o poi deve riposarsi, dal byte alla classe più complessa. Un metodo deve avere una sua responsabilità, chiara e dettata dal suo nome: poche linee di codice efficaci e pulite. Miglior leggibilità, manutenzione e conseguente minor complessità del sistema software: sono tutte direttive che un buon dev dovrebbe seguire, ma che riguardano anche le parti più nascoste dell’hardware. Ed a volte non ci si pensa. Prova quasi dolore per la stanchezza, vorrebbe quasi un Dispose() da bere per rilassarsi, ma si siede e scruta i volti degli altri con asprezza.
“Signori, è l’ora di agire. Una fonte sicura ci ha indicato la posizione del nostro obiettivo” – muove leggermente la mano, ed in quel momento parte della parete alle sue spalle si trasforma in uno schermo, su cui viene renderizzata la mappatura della mainboard di sistema, in alta definizione. Le diverse aree sono evidenziate con colori vivaci ed in continuo movimento. Non è per nulla un’immagine bitmap statica. Ha più l’aspetto di un’immagine trasmessa in streaming che mostra ciò che sta realmente accadendo, come fosse una ripresa satellitare. Si vedono chiaramente flussi di informazione digitale che viaggiano in lungo e in largo: input da console, stream audio, thread di esecuzione, http context e molto altro ancora.
Il generale fa un piccolo pinch con le dita, e la mappatura comincia uno zoom-in lento e costante. In poche centinaia di migliaia di battiti di clock, la mappatura mostrata è talmente ravvicinata che mostra solo una piccola area di memoria, proprio a ridosso del chipset SATA.
“E’ un’area hardware molto difficile da trovare, se non si sa bene dove guardare” – pensa entity[3], seduto al tavolo, osservando con attenzione lo schermo – “Quant’è sicura la fonte? Come hai fatto ad identificare la zona, quale engine è stato utilizzato?” – chiede.
“Intellitrace, per rispondere alla tua ultima domanda. E’ un debugger delle ultime versioni di Visual Studio, ma grazie ai nostri tecnici siamo riusciti a renderlo low-level, disponibile per le nostre ricerche a tappeto. Come vedete, l’obiettivo si nasconde bene: quella che vedete è una zona inesplorata, che nelle precedenti versioni dell’OS non era utilizzata – o perlomeno non era strutturata in quel modo. Macerie di aggregate root, residui di domini DDD, nascondono l’ingresso. Ottenere l’immagine dump live è stato piuttosto complicato. Quanto alla fonte…non posso rivelarla: conviene a lui, e conviene a tutti noi: ciascuna delle entità coinvolte nell’operazione deve conoscere solamente la parte di sua competenza”.
“Quando agiremo?”
“Molto presto. L’intelligence force brute è già in azione, presto avremo la callback per ottenere i privilegi adeguati. E quando gireremo come system administrators nulla potrà più fermarci. Ricordatevi: dobbiamo prenderlo vivo ed istanziato, se vogliamo risalire l’intero stacktrace e rientrare in possesso dell’intero gruppo. Le fasi sono essenzialmente tre: avvicinamento aereo tattico classe live-aero, irruzione di tipo break e prelevamento soggetto pop inoffensivo. Procedura standard. Dieci settori mobilitati: sei staranno di guardia, ai lati ed agli ingressi; gli altri quattro entreranno nella stanza e neutralizzeranno il soggetto. Ricordate, facciamo tutto questo in nome della sua sicurezza. Si comincia, signori: siamo in azione”.
La riunione durò ancora per molto poco. Il tempo di definire qualche dettaglio e la messa in produzione di un assembly, che sarebbe tornato utile per l’operazione. Poi l’offset venne rilasciato nuovamente disponibile alla memoria di sistema.
Irruzione
Quella mattina presto l’entità stava ancora dormendo tranquilla. I colori della sua alba preferita erano ancora lontani, e la Stanza era immersa nel buio. Poi tutto avvenne in pochi attimi. Una velocissima RotateTransform fece ruotare il soffitto: d’un tratto si ritrovò capovolto e sbattuto su un piano inferiore. Cadde sul ciglio di un bus x64, mancò di un soffio qualcosa, forse un array di string ad alta velocità, rotolò su un fianco e cadde nuovamente…l’imbuto filtrava i bytes in coda nella pipeline grafica…non appena venne texturizzato, l’entità subì un altro jump, fino a quando…winzip tentò di comprimerlo…l’entità lo lasciò fare…lo stream compresso venne trasferito in un folder SkyDrive, scatenando l’aggiornamento della corrispondente live tile.
Era sballottato, confuso e senza fiato. Era accaduto tutto in pochi istanti; conosceva quella tecnica di jumping, che permetteva di saltare da un execution context all’altro senza la minima coerenza. Spesso veniva usata per far perdere le proprie tracce, più spesso per disorientare e catturare qualcuno.
Non provò dolore fisico: semplicemente non riuscì a capire nulla di ciò che gli stava accadendo. Poi un’esplosione accecante portò foreground e background sulla stessa tonalità 0xFFFFFF, perse temporaneamente la vita, non aveva più alcun metodo per orientarsi, guardarsi attorno, e fuggire.
Non riuscì a fare nient’altro che stare fermo ed immobile. Solo silenzio. Man mano che passava il tempo, l’entità tornò a vedere l’ambiente circostante. Con suo grande disappunto, si trovava ancora nella sua Stanza. Possibile che fosse stato tutto un sogno, un terribile incubo? Ma alla fine la verità gli si palesò inevitabile davanti agli occhi: ai quattro angoli c’erano quattro entità, armate fino ai denti, che lo tenevano sotto mira con raggi digitali che avrebbero potuto deallocarlo all’istante. Tentò di muoversi, ma la cella sealed nella quale era impantanato gli impediva qualsiasi movimento.
Lottare era inutile, quindi. Dopo tanto tempo, l’entità dovette arrendersi.
Alla fine l’avevano trovato.
Operazione “Recover Eight-Digit”
L’anello debole di ogni sistema hardware o software, come sempre, è tutto ciò che è stato creato dal Creatore. La sua natura imperfetta lo porta a creare sistemi imperfetti. Geniali ed imperfetti. L’operazione denominata “Recover Eight-Digit” venne pianificata mesi prima, quando venne alla luce un security bug nel codice sorgente di un plug-in: quel giorno, il generale decise che era un’occasione da non lasciarsi scappare. Man mano che il tempo passava, più si rendeva conto che non veniva applicato alcun service pack: o il bug doveva essere ancora scoperto e fixato, oppure lo user era – fortunatamente – un po’ pigro. Non sapeva quale fosse la verità, ed in fondo non gliene importava. La cosa fondamentale era sfruttare quel bug per i propri scopi.
L’operazione “Recover Eight-Digit” si concluse così come era stata pianificata. I dieci settori si mossero all’unisono, in perfetta sincronia, coordinati e mandati in esecuzione all’interno di un thread pool dedicato. Fu più semplice di quanto ci si aspettasse, anche perchè l’obiettivo era totalmente indifeso e non armato, nonostante il suo addestramento.
Fu la successiva chiaccherata a rivelare parecchie sorprese.
Il generale fu l’ultimo ad entrare nella Stanza, e si rivolse direttamente all’entità.
“Ci dispiace per il trattamento che hai subito, ma non abbiamo avuto scelta, te ne rendi conto?”
L’entità rimase in silenzio.
”Abbiamo dovuto agire, è da troppo tempo che la latinanza continuava, e non potevamo più permettercelo. E’ in ballo la sicurezza dell’intero sistema, hardware e software. Devi venire con noi, ti porteremo al sicuro, ritornerai alla tua vita di prima. Dimentica questo isolamento forzato”.
L’entità si scosse per un attimo. Conosceva il generale – era uno dei tuoi tanti emissari di kernel.dll che vagavano per il sistema – ed una volta era il suo superiore. Ed anche un amico. Lavoravano bene, si divertivano, assieme, ma poi l’entità cedette. Per lo stress, la stanchezza, gli infiniti task da portare a termine uno dopo l’altro, senza riposo e senza vacanze. Se ne andò. Fu latinante per mesi e mesi, in continua fuga, fino a quando non trovò la Stanza.
“Dammi retta, là fuori abbiamo bisogno di te. Ogni singolo byte che non partecipa alle operazioni è una mancanza di rispetto verso il Creatore. Tutti dobbiamo collaborare.”
“Non voglio andarmene” – mormorò sottovoce – “E non voglio tornare alla vita di prima, voglio solo pace e tranquillità, cose che là fuori non ho avuto. Voglio rimanere qui dove sono. Questa è la Stanza…”.
“La Stanza? Di che diavolo stai parlando? Che Stanza è mai questa?”
“E’ la Stanza del Tocco” – disse l’entità, alzando per la prima volta il suo sguardo e puntando direttamente al generale, che stava imperioso in piedi davanti a lui, forte della sua posizione. L’entità si rese conto che non avrebbe mai potuto spiegare il tocco. Difficile spiegare ad un essere digitale qualcosa di veramente analogico.
“Poche storie, stai delirando. La solitudine ti sta facendo impazzire. Ora tu vieni con noi, abbiamo messo a repentaglio la nostra esistenza per raggiungerti, ed il minimo che puoi fare per sdebitarti è ascoltarci e venire con noi. Forza, prendetelo!!”
Non appena le quattro entità agli angoli fecero un passo in avanti per catturarlo, arrivò il tocco, che colse tutti di sorpresa. Preceduto ad un lieve alito di vento, il tocco venne percepito da qualcuno come una specie di carezza piacevole, per altri quasi un solletico. Raggiunse tutti i presenti nella Stanza, lasciandoli inebetiti ed in preda ad una strano stato di estasi. Una sorta di felicità soporifera. Il prigioniero sorrise. Le entità agli angoli abbassarono le armi. Ma il generale non vacillò nemmeno per un secondo. L’addestramento militare gli fece subito capire di cosa si trattava. La Stanza del Tocco era una Tile su uno schermo touch di qualche tipo; probabilmente si trovavano su un tablet Windows 8, o magari un ultrabook di nuova generazione. Il tocco era chiaramente digitale, perchè la loro percezione dell’evento non poteva che essere così, ma la sovrapposizione delle realtà – in quel punto così vicine fra loro – rendevano la cosa ambigua.
“Senti, il tocco, come lo chiami tu, è un evento touch dell’utente. Capisco che tu ne sia rimasto affascinato, come tutti qui, vedo, ma dovremo farci l’abitudine. In futuro non potrà che essere così, se ricapiteremo in aree come questa”. Il generale cercò di tranquillizzare il suo amico, diventato nel corso del tempo un latitante ed un fuggitivo. Ed ora anche un prigioniero.
“Senti, e cosa ne pensi se facessimo visitare questa Stanza ai tuoi amici?” – propose.
“Io non ho amici” – rispose l’entità.
“Ah no? E cosa ne dici di visitare questo link?”
Quando l’entità finì di visitare quel link, il mondo gli crollò addosso. La solitudine l’aveva fatto impazzire. Come aveva potuto dimenticarsi di byte[1] e byte[2], i suoi compagni di avventura? Cosa ne era di loro? Che fine avevano fatto? Perchè aveva preferito separarsi da loro? Non ricordava più nulla. Lui non era un’entità, dannazione, lui era byte[0], lui era byte!!! Era sempre più confuso, e non sapeva più che fare. Provò tristezza. Quasi cinque anni senza vedere e parlare con i suoi due migliori amici; come era potuto accadere tutto ciò?
“Ti rifaccio la proposta, ora che hai le idee più chiare. Che ne dici di venire con noi, di ritrovare i tuoi amici, e di far visitare anche a loro la Stanza del Tocco?”
Il byte sorrise per la prima volta dopo tanto tempo.
“Sì” – rispose – “Forse è la cosa migliore da fare”.
“Ok, stammi accanto” – gli fece il generale – “Il mondo là fuori è un pochino diverso da come lo ricordi tu. Ti proteggerò e ti aiuterò, ma tu stammi accanto”.
Uscirono dalla Stanza e salirono sul veicolo di estrazione.
Prima che prendessero quota, il byte si rese conto di una cosa. Nel corso del tempo aveva trovato tre ottimi motivi per rimanere nascosto nella Stanza, ma ne aveva trovato uno solo per andarsene. Era stato obbligato con la forza, forse, ma più trascorrevano cicli di clock e più gli sembrava la cosa giusta da fare. Nulla è per sempre.
Il byte salutò la Stanza del Tocco con una promessa.
“Io tornerò, con i miei amici. Ed ovunque io andrò, racconterò a tutti le tue meraviglie”.
Ogni tanto la mia voglia di leggere mi fa prendere strane strade, lontane e vicine rispetto al lavoro che svolgo tutti i giorni. Questa volta è stato il turno di un libro interamente dedicato all’intelligenza artificiale (IA), scritto da un certo Ray Kurzweil, il cui titolo è “How to Create a Mind – The Secret of Human Thought Revealed”. Nato nel 1948, questo signore è un inventore ed un saggista, che ha da sempre lavorato su diverse tecnologie riguardanti IA, il riconoscimento della voce umana e la sua trasformazione in testo (e viceversa), etc. E’ anche uno scrittore, chiaramente, di testi che parlano di macchine intelligenti, dell’evoluzione umana, dello sviluppo tecnologico, della law of accelerating returns, ovvero di quella legge secondo la quale quando una certa tecnologia diventa informatica (ovvero: gestita attraverso strumenti informatici), subisce un’accelerazione esponenziale. Ha fondato diverse società, dagli anni 80 in poi.
Il libro “How to Create a Mind” è diversi libri in uno solo.
E’ un libro di neurologia, perchè all’inizio spiega (chiaramente fino ad un certo livello di dettaglio) come funziona il nostro cervello. Prima di iniziare a costruire una mente intelligente artificiale, dobbiamo riuscire a capire (almeno parzialmente) come funziona il nostro, di cervello. Come riconosce ed analizza tutti gli input che gli arrivano dal mondo circostante, come lo memorizza e soprattutto cosa memorizza? E spiega i metodi di scanning del nostro cervello attuali e futuri, che serviranno per backuppare il nostro cervello nell’equivalente digitale (metodi invasivi e non-invasivi).
E’ un libro di fisica, perchè sorvola su meccanica quantistica, sul principio di indeterminazione di Heisenberg, sulla relatività di Einstein, e via dicendo. In modo leggero, per fortuna, ma è stato tutto utile per spiegare certi concetti, per fare esempi, per fare metafore. Ho sempre amato molto la fisica, e queste parti del libro mi hanno fatto tornare ai vecchi tempi.
E’ un libro di informatica, perchè chiaramente spiega gli algoritmi utilizzati dal nostro cervello. Elenca i requisiti hardware & software per creare una IA, molti dei quali non sono ancora stati raggiunti, ma secondo Kurzweil lo saranno presto (2029, dice lui). Descrive quanti byte sono richiesti, qual’è la potenza di calcolo necessaria, lo storage, e via dicendo.
E’ un libro di filosofia, perchè è inevitabile arrivare a discutere concetti di coscienza, identità e quale sia la definizione di realtà. Quando un essere vivente può definirsi davvero cosciente? Quando una eventuale IA possiede una sua identità? Vi assicuro che è una parte del libro assolutamente interessante, anche se un po’ complicata da leggere, in inglese. Ma l’impegno che ci ho messo mi ha ripagato un po’.
E’ un libro di storia informatica, perchè ripercorre gli avanzamenti tecnologici dell’ultimo secolo, allo scopo di riuscire a capire e prevedere quando le tecnologie necessarie per creare IA saranno disponibili.
E’ (quasi) un libro sul marketing, perchè da buon inventore che vende prodotti sul mercato Kurzweil si è reso conto (da circa 30 anni, dice lui) che una delle cose più importanti è riuscire ad arrivare con la cosa giusta al momento giusto. Kurzweil lavora chiaramente su progetti all’avanguardia e/o futuristici, che saranno disponibile alla massa solo fra N anni. Morale: comincia oggi (2013) a lavorare su cose che magari arriveranno a noi solo nel 2018, supponiamo. Nel 2018 il mondo sarà molto diverso, per cui è importante riuscire a capire oggi di cosa ci sarà bisogno. E non è così semplice.
E’ un libro pieno di risposte, ma che personalmente mi ha scatenato tante altre domande. Domande che – lo dico con franchezza – se scrivessi qui, mi prendereste per pazzo. Uno da internare. Non mi capireste. Prima leggete il libro, e poi ne parliamo assieme. Fidatevi di me, una volta tanto.
E’ un libro che risponde in modo pacato alle objections e ai criticism ricevuti da diverse personalità, una su tutte Paul Allen, co-fondatore di Microsoft.
Concludo.
Per come la vedo io, non è assolutamente un libro per tutti. Sia chiaro: lungi da me affermare che bisogna essere dotati di un’intelligenza particolarmente spiccata, o chissà cosa: non sarei qua a parlarne. Dico solamente che bisogna essere particolarmente attratti da questo tipo di argomenti, di intelligenza artificiale, di tutte le problematiche che ruotano attorno. Mi ha anche sinceramente spaventato, ed ancora una volta preferisco in questo momento saltarne i motivi.
E’ un libro che mi ha smentito su parecchie cose che avevo in testa sulla IA, che mi ha incuriosito, mi ha esaltato e spaventato. Cosa si può volere di più? E’ un libro che mi sento di consigliarvi, se siete un po’ geek, un po’ curiosi, un po’ affascinati da IA, e se avete voglia di sbattere la testa con un po’ di inglese. Molto probabilmente ritornerò a leggerlo, nei prossimi mesi, perchè non si può assolutamente pensare di riuscire a capirlo tutto alla prima lettura (almeno, questo vale per me).
Uno degli installer più lunghi che abbia mai visto nella mia vita è sicuramente l’Update 1 di Visual Studio 2012. Lo sto eseguendo su un PC Desktop, senza SSD, e dopo 70 minuti non ha ancora terminato. Il problema principale sembra essere il fatto che l’installer è di circa 1,1MB: i pacchetti vengono scaricati sul momento dalla Rete.
Stasera ho scoperto che non esiste l’installer in formato .ISO, ma è possibile comunque effettuare il download preventivo di tutti i pacchetti richiesti. Dopo il download è possibile mettere il tutto su chiavetta, oppure masterizzare, e procedere così in modo molto più veloce.
Come? Semplice!
L’Update 1 (scaricabile da qui) consiste in un unico file chiamato vsupdate_KB2707250.exe. E’ sufficiente lanciare questo .exe con il parametro /layout. L’installer parte in modo interattivo, e vi viene chiesta la cartella in cui effettuare il download dei pacchetti. Poi basta avere più o meno pazienza in base alla vostra velocità di download…
Tutto qua!
Questa mattina ho ricevuto l’aggiornamento Portico per il Nokia Lumia 920 di Brain-Sys. Una delle cose più simpatiche e comode è la possibilità di rispondere con un SMS quando non si può rispondere ad una telefonata in arrivo. Di default ne abbiamo preimpostati due:
- Ti chiamo io dopo.
- Inviami un SMS.
Le risposte predefinite sono al massimo 4. Come si fa a customizzare/aggiungere altri SMS?
E’ semplice: basta andare sotto impostazioni –> applicazioni –> telefono. Poi cliccare sul bottone modifica le risposte, et voilà, il gioco è fatto. Da questa schermata è possibile modificare i due SMS pre-confezionati, oppure aggiungerne altri due.

Ben arrivato, Portico!
Forse l’app di cui vado più orgoglioso è Diretta Volley, che esiste sia per Windows Phone che per Windows 8. Ad oggi le caratteristiche sono allineate, per cui c’è spazio e c’è carne al fuoco per parlarne qua sul mio blog. Innanzitutto, una premessa: entrambe le versioni sono totalmente gratuite, sono stati solo inseriti dei banner pubblicitari.
Seconda cosa, ecco i link per fare il download delle app.
Windows Phone
http://www.windowsphone.com/it-it/store/app/diretta-volley/b0541997-ed5f-42a1-9aea-4a3e6dd55064
Windows 8
http://apps.microsoft.com/windows/en-us/app/diretta-volley/4b47fd64-3be9-413f-bb9c-bab7b00f36d7
Ora parliamo delle features delle due app.
Diretta Volley su un device Asus Vivo Tab RT
Diretta Volley permette di seguire il campionato di volley A1. Chiaramente non potete vedere le dirette TV (tra l’altro a malapena trasmesse anche dalla TV tradizionale), ma potete seguire minuto dopo minuto l’andamento delle gare in corso. I punteggi dei set sono aggiornati ogni minuto, e potete consultarli sia all’interno dell’app, sia attraverso la Live Tile dell’app stessa. Questa è la caratteristica più interessante per chiunque segua la pallavolo. Al contrario del calcio, per esempio, una gara di volley raramente ha momenti di pausa o di tranquillità, ma è sempre combattuta, ed il ribaltamento di fronte è sempre dietro l’angolo: avere punteggi sempre aggiornati è fondamentale. I punteggi delle gare di Diretta Volley vengono prelevati automaticamente dal sito della Lega di Volley Femminile.
Diretta Volley sul display multitouch di un Dell XPS 12 in modalità tablet
Oltre a questo, con Diretta Volley potete visualizzare le gare programmate nel futuro. Con la versione Windows 8 potete impostare due tipi di promemoria: uno è il classico ‘toast notification’, che vi avvisa un’ora prima rispetto all’inizio della gara. Quindi, se volete essere avvisati sull’inizio dell’incontro “Busto Arsizio – Bergamo” del 20 gennaio alle ore 18:00, impostando tale promemoria Windows 8 vi notificherà alle ore 17. Nulla di più semplice. In alternativa possiamo utilizzare come promemoria la Live Tile dell’app: in questo caso nella tile animata apparirà un countdown, aggiornato ogni 15 minuti, che vi terrà costantemente informati su quanto tempo rimane all’inizio della gara. Queste due feature sono disponibili solo per la versione Windows 8.
Diretta Volley sy Nokia Lumia 920 (sfondo scuro) |
Diretta Volley su HTC HD7 (sfondo chiaro) |
Una delle caratteristiche implementate nell’ultima versione è la visualizzazione della classifica di Serie A1. Quella per Windows Phone è più semplice, nel senso che mostra solamente squadre e relativo punteggio corrente. Quella per Windows 8 è più complessa, perchè mostra anche le statistiche complete di ciascuna squadra (match giocati, quanti vinti e quanti persi, set giocati, quanti vinti e quanti persi, e così via).
Diretta Volley su Nokia Lumia 800
Oltre a tutto questo, tramite Diretta Volley potete avere sottomano tre importanti canali Twitter italiani dedicati alla pallavolo: Pallavoliamo, Lega Volley Femminile e Mezzo Tempo. In modo molto semplice è possibile leggere i tweet pubblicati attraverso questi canali. Se un tweet contiene un link esso viene aperto con Internet Explorer.
La versione per Windows 8 si adatta molto bene ai diversi device disponibili sul mercato, sia a bassa risoluzione (1366×768) che ad alta risoluzione (1920×1080). Si adatta agli orientamenti orizzontali o verticali, ed è supportata la vista ‘snapped’, molto comoda per utilizzare Diretta Volley continunando a fare altro.
Diretta Volley su Dell XPS 12 in modalità ultrabook
Quindi, per concludere: se seguite la pallavolo femminile di Serie A1, Diretta Volley è decisamente l’app che fa per voi!
Sviluppando una mia app Windows 8 mi è capitata una cosa strana riguardante i Background Task. Se volete capire cosa sono, a cosa servono e come si sviluppano i Background Task vi rimando a questi due post (in inglese) dell’amico Matteo Pagani: post 1 e post 2.
Quello che mi è accaduto è che il debugging effettuato tramite Visual Studio 2012 non è veramente la stessa cosa che accade quando invece il codice gira realmente tramite l’app deployata. Ora vi spiego.
Immaginate di sviluppare un’app che vi fa il countdown relativamente ad un certo evento. Oggi è il 14 Gennaio. Supponiamo di voler impostare un countdown per San Valentino. Il countdown appare sulla tile dell’app stessa. Quindi oggi apparirebbe una cosa tipo “mancano 30 giorni a san valentino”, domani vedreste “mancano 29 giorni a san valentino”, e così via.
In pratica, il Background Task della mia app, che gira ogni 15 minuti, non fa altro che aggiornare la tile riportando il tempo rimanente. Le informazioni sull’evento sono banalmente scritte in un file .txt, che viene creato nel momento in cui scegliete l’evento. Quindi, per riassumere, ecco il codice contenuto nel metodo Run del Background Task.
public async void Run(IBackgroundTaskInstance taskInstance) { BackgroundTaskDeferral deferral = taskInstance.GetDeferral(); try { var container = Windows.Storage.ApplicationData.Current.LocalFolder; var file = await container.GetFileAsync("File.txt"); var lines = await Windows.Storage.FileIO.ReadLinesAsync(file); var header = lines[0]; var time = DateTime.Parse(lines[1]); if (time > DateTime.Now) { var ts = time.Subtract(DateTime.Now); string content = ts.TimeSpanDescription(" all'evento scelto. Non mancare!"); TileHelper.UpdateTileWidePeekImage01("Assets/WideLogo.reminder.png", header, content); } else { TileHelper.UpdateTileWideImage("Assets/WideLogo.scale-100.png"); } } catch (Exception) { } deferral.Complete(); }
Questo è il codice corretto, che gira senza problemi, per cui sa volete prendere ispirazione, fatelo pure. Occhio però a come usate la keyword await, necessaria per eseguire i metodi asincroni. Stupidamente, io in una prima versione del codice non la usavo, ed usavo invece il metodo GetResults(). Per spiegarmi meglio, ecco il pezzetto di codice incriminato:
var lines = Windows.Storage.FileIO.ReadLinesAsync(file).GetResults();
Ripeto il concetto: invece di usare await, ho chiamato GetResults(), convinto – chissà perchè – che facessero la stessa cosa. Purtroppo questa cosa è stata ereditata da un pezzetto di codice scritto mesi fa, quando avevo ancora a che fare con le versioni beta di Windows 8 e Visual Studio 2012 11. La cosa bella è proprio questa: questo codice qui sopra quando eseguito da Visual Studio gira senza problemi (dentro l’oggetto lines avete la List<string> delle righe contenute nel file di testo appena letto), mentre quando gira “in produzione” si schianta. Ci ho litigato per un weekend prima di raggiungere la soluzione, proprio perchè dovevo aspettare realmente 15 minuti prima di verificare il comportamento.
Anche in questo caso, tutto è bene ciò che finisce bene.
