domenica 27 novembre 2011

Breve presentazione di GNU Emacs

GNU Emacs è un ambiente di sviluppo per testi e programmazione, altrimenti detto editor di testo. In origine. Adesso, invece, GNU Emacs può fare anche molte altre cose, grazie alle continue estensioni che ne sono state fatte, ma il suo scopo primario resta sempre quello: sviluppo testi e programmazione.
GNU Emacs, come si capisce già dalla sigla iniziale, è software libero, distribuito sotto i termini della licenza GNU GPL, il che non è per nulla sorprendente, dato che il suo sviluppatore iniziale è stato proprio Richard Stallman, padre e profeta del software libero. Che ci abbia messo le mani Stallman lo si può intuire facilmente, vedendo le funzioni di crittografia dei testi di cui GNU Emacs dispone e conoscendo le fissazioni di Stallman stesso. A ogni modo, il programma nasce nella prima metà degli anni ’80 come editor di testo per gli ambienti UNIX e la sua origine è ancora ben visibile, pure a distanza di quasi vent’anni: ottimo programma, ma difficile da domare, per chi lo affronta per la prima volta e non ha molta voglia di impegnarsi. Vediamo però qualche dettaglio in più.

Innanzitutto, GNU Emacs è al momento disponibile per i principali sistemi operativi, da Windows a GNU Linux: è dunque molto probabile che ne troverete una versione adatta a voi. Questo è il sito da cui è possibile scaricarlo, anche se un utente Windows preferirà passare da questa pagina e scaricare la più recente versione in formato ZIP: al suo interno troverete una versione pre-compilata di GNU Emacs, pronta a essere estratta e usata. Il file che cercare avrà un nome del tipo emacs-23.1-bin-i386.zip (il numero sarà diverso, a seconda della versione).
Nella versione per Windows, questa è la sua schermata iniziale, cioè quello che vi appare dopo averlo avviato cliccando su “runemacs.exe”, o usando l’icona che potreste aver aggiunto al desktop:

Se l’unico editor di testo che conoscete è Word, potreste trovarvi molto spaesati. Consolatevi: non siete gli unici e non sarete gli unici. Giusto per intenderci, GNU Emacs può essere utilizzato senza mai staccare le mani dalla tastiera, ricorrendo alle innumerevoli combinazioni di tasti di cui dispone, il che può già costituire un primo ostacolo per gli amanti del punta-e-clicca. Ostacolo lieve, perché le versioni attuali del programma supportano il mouse e infatti lo potrete usare senza problemi. Per guidarvi nel magico mondo di GNU Emacs e aiutarvi a familiarizzare con le scorciatoie da tastiera, avete a disposizione un buon tutorial, che trovate già nella schermata di avvio: per aprirlo e seguir ela guida iniziale, basta cliccare su Emacs tutorial, oppure usare la combinazioni di tasti Ctrl + h e t. No, non è un errore di battitura: prima dovete premere assieme Ctrl e h, poi premere la t. Immagino che userete tutti il link da cliccare col mouse.
A titolo informativo, nelle combinazioni da tastiera il tasto Ctrl è comunemente abbreviato in C, mentre M è il tasto Alt: C + h significa dunque che bisogna premere assieme il tasto Ctrl e il tasto h.
Come altra nota informativa, sempre per entrare nel giusto stato mentale, nell’ambiente GNU Emacs si utilizza il termine buffer per indicare il riquadro contenente il testo su cui state lavorando. Potete avere aperti più buffer nello stesso momento e saltellare dall’uno all’altro, così come in un browser saltellate da una scheda all’altra. Per semplicità, potete pensarla proprio così: un buffer è l’equivalente di una scheda di Firefox. Quando usate GNU Emacs, avrete in primo piano il buffer su cui state lavorando e tutti gli eventuali altri buffer aperti saranno sullo sfondo, ma raggiungibili in qualsiasi momento.
Per il resto, funziona come un qualsiasi editor di testo, anche se utilizza combinazioni di tasti diverse rispetto a quelle a cui siete probabilmente abituati; per questo motivo è utile cominciare dal tutorial, che vi guiderà attraverso una prima panoramica delle funzioni di Emacs. È anche un ottimo ambiente per la programmazione, anche se vi dovrete dimenticare tutti i giocattoli plasticosi dei vari Visual qualcosa: qui i programmi si scrivono, non si costruiscono trascinando e incollando pezzi sullo schermo. Sempre per dare una idea, ecco come si presenta GNU Emacs in versione “ambiente di sviluppo per Common Lisp”, grazie all’aggiunta del componente SLIME:

Poter aggiungere nuovi componenti ed espandere il programma attraverso moduli è uno dei punti di forza di GNU Emacs, rispetto ad altri editor di testo.
Come dicevo, però, Emacs può anche svolgere svariate altre attività, che vanno ben oltre le normali competenze di un editor di testo. Provate a dare una occhiata al menu “Tool” e troverete risorse sorprendenti, come un calendario, una calcolatrice, diversi giochi e anche una opzione per scaricare e leggere email.

Ce n’è per tutti i gusti, insomma. L’inizio può essere complicato, ma alla fine ne vale la pena.

giovedì 24 novembre 2011

Facebook, un difetto nel “visualizza come”

Visto che mi è capitato già più volte di dover affrontare questo discorso, rispondendo a commenti su altri articoli, forse è il caso di discuterne in modo più ampio e dedicargli uno spazio apposito. Ciò non mi eviterà di doverlo spiegare altre volte, ma pazienza.
Il pulsante “Visualizza come”, che troviamo in alto a destra nella pagina del profilo di Facebook, serve a mostrarci come appare il nostro profilo a un determinato, oppure a un estraneo. Se clicchiamo quel pulsante, ci sarà dunque chiesto di inserire il nome di un nostro amico, oppure potremo cliccare su “public”, per vedere il nostro profilo con gli occhi di un estraneo. E fin qui, tutto normale. Ne avevo anche già parlato in un altro articolo, presentando le modifiche al profilo.
La funzione, in sé, è utile, perché ci permette di verificare quali elementi siano scoperti nel nostro profilo e regolare di conseguenza le impostazioni sulla privacy. Se abbiamo deciso di nascondere un certo elemento a un nostro amico, possiamo accertarci che quell’amico non riesca davvero a vedere l’elemento nascosto. Possiamo sapere quante e quali cose un estraneo potrebbe vedere sul nostro conto, visitando il nostro profilo. Eccetera eccetera. C’è soltanto un piccolo e insignificante problema: non funziona.
O meglio, non funziona come dovrebbe.
Quando clicchiamo su “Visualizza come” e scegliamo la prospettiva da cui vogliamo vedere il nostro profilo, soltanto la prima pagina sarà caricata correttamente; se invece proveremo a spostarci su un’altra pagina, sempre all’interno del nostro profilo, essa ci apparirà come dovrebbe apparire a non, e non come dovrebbe apparire alla persona selezionata.
Spieghiamolo con un esempio. Vogliamo vedere come appare il nostro profilo all’amico Pincopallino. Clicchiamo dunque su “Visualizza come”, poi scriviamo Pincopallino nello spazio in cui inserire il nome dell’amico. Si aprirà così la nostra Bacheca, come appare a Pincopallino. Se però noi clicchiamo “Info”, oppure “Foto”, dal menu a sinistra della Bacheca, quelle pagine ci appariranno come appaiono a noi, non come appaiono a Pincopallino. Insomma, il “visualizza come” vale solo per la prima pagina aperta, cioè la Bacheca. Se poi vogliamo visualizzare il nostro profilo così come appare a un estraneo, troveremo di nuovo lo stesso problema: soltanto la prima pagina sarà visualizzata come se fossimo estranei (di solito la pagina “Info”), mentre tutte le altre pagine appariranno così come appaiono normalmente a noi.
Probabilmente, non è quello che volevamo ottenere noi. Con il “Visualizza come”, molto spesso vogliamo vedere tutto il nostro profilo dalla prospettiva di un amico, oppure di un estraneo, e non solo una pagina. In attesa che Facebook decida di sistemare questo difetto (ammesso che sia davvero un difetto e non un comportamento voluto), c’è un sistema per aggirarlo e visualizzare ogni altra parte del nostro profilo così come appare a un amico o a un estraneo. È un metodo da smanettoni, ma funziona ed è piuttosto semplice.
Clicchiamo su “Visualizza come” e scegliamo il nome di un amico, oppure scegliamo l’opzione “public”: il sistema vale in entrambi i casi. Si aprirà così la prima pagina, visualizzata come se fossimo l’amico Pincopallino o un perfetto estraneo. Benissimo. Guardiamo ora nella barra degli indirizzi e troveremo una scritta di questo tipo:
http://www.facebook.com/profile.php?id=XXXX&viewas=XXXX&returnto=profile
Al posto delle X ci sarà di solito un codice numerico: il primo rappresenta noi, il secondo rappresenta il nostro amico (o l’estraneo). Di tutto questo, a noi interessa un pezzo soltanto, ossia il pezzo &viewas=XXXX, che ho evidenziato in rosso. Copiamo questo frammento di testo: è il codice che ci permette di visualizzare una pagina come se fossimo qualcun altro, ossia la persona contraddistinta da quel codice numerico (un amico o un estraneo, a seconda della nostra scelta). Apriamo adesso un’altra pagina del nostro profilo e torneremo alla visualizzazione normale: ci apparirà così come appare a noi, insomma. Andiamo nella barra degli indirizzi e incolliamo in fondo all’indirizzo quel frammento che abbiamo copiato prima, ossia &viewas=XXXX, e premiamo Invio. La pagina ci apparirà come appare alla persona che abbiamo selezionato.
Ogni volta che cambiamo pagina, dovremo rifare il procedimento, ossia incollare quel pezzo di codice in fondo all’indirizzo della pagina, se vogliamo che sia visualizzata come appare alla persona da noi scelta. Un sistema un po’ macchinoso, forse, ma efficace, e che ci permette di aggirare il difetto del “Visualizza come” di Facebook.

sabato 19 novembre 2011

Miniera, un semplice roguelike

Sempre a proposito di roguelike, giusto per passare il tempo ho provato a prepararne uno molto semplice io stesso, sperando che sia utile a dare una idea più precisa di cosa sia un roguelike e di come funzioni. Ammesso che a qualcuno interessi, naturalmente. Il gioco in questione è “Miniera” ed è realizzato in Java, per cui può funzionare allo stesso modo su qualsiasi sistema operativo: l’unico requisito è appunto che sia installata la Java Virtual Machine. Ah, anche una tastiera può tornare utile, dato che i comandi di gioco sono dati proprio attraverso i tasti, come in quasi tutti i roguelike “classici”. Nello specifico, “Miniera” è un coffeebreak roguelike.
Un coffeebreak roguelike, come il nome stesso suggerisce, è un tipo di roguelike molto breve e veloce da giocare, adatto appunto a spendere cinque o dieci minuti di pausa, giusto per rilassarsi e per far passare il tempo. Come caratteristiche di questo sottogenere, possiamo indicare la brevità del gioco, la dimensione del livello che solitamente coincide con quella della finestra di gioco, poche regole, pochi tasti da usare e in generale uno stile di gioco orientato più che altro verso i neofiti e chi non ha tempo/voglia di lanciarsi in un roguelike “maggiore”, di quelli con manuali di svariate pagine, decine di razze e categorie tra cui scegliere e combinazioni inimmaginabili di tasti.
Un modo per sperimentare un roguelike senza doverci perdere la vita sociale, insomma.
In “Miniera”, il gioco è molto semplice: sei rimasto intrappolato in una miniera e devi raggiungere l’uscita. Per raggiungere l’uscita, basta salire un livello dopo l’altro, fino a che non sarai arrivato alla profondità zero. Se ci arrivi, vinci; se muori strada facendo, perdi. Tutto qui.
La grafica è in ASCII, puro e semplice. Questo significa che tutto è raffigurato attraverso caratteri di testo: lettere dell’alfabeto, segni di punteggiatura e così via. Il protagonista è la classica @, che ogni giocatore di roguelike conosce, # sono le pareti, § sono i cumuli di detriti (che si possono scavare, se avete una pala o un piccone), > è un passaggio verso il livello più in basso, < un passaggio verso il livello più in alto. Altri simboli rappresentano le cose che potete trovare nel corso dell’esplorazione: se non si muovono, di solito sono oggetti e li potete raccogliere e usare; se si muovono, allora non sono oggetti, ma cose che vi vogliono fare male.
Per il resto, lo scopo del gioco è trovare le scale che portano verso l’alto (cioè <) e salire, fino a che non siete arrivati all’uscita. Per un elenco completo dei pochi tasti, basta premere ? durante il gioco.

Due parole adesso su come è strutturato il programma.
Lo schermo di gioco è costituito da un JPanel, su cui ho simulato una console vecchio stile: quella che, come abbiamo già visto, in Rogue era definita Curses. Per il Java, come per altri linguaggi di programmazione analoghi, si possono trovare librerie che emulano il comportamento dei curses, ma personalmente non mi piacciono granché: ho dunque trafficato un po’ coi JPanel, per ottenere più o meno gli stessi risultati. Non sarà identico, ma mi pare soddisfacente.
I mostri sono dotati di un AI piuttosto rudimentale, sia perché l’ho programmata in tempi ristretti, sia anche per non rendere troppo complicata la vita al protagonista. Sono comunque forniti di due sistemi di ricerca del personaggio: ricerca a vista e ricerca a olfatto. In altri termini, se vedono il personaggio lo inseguono a vista; se non vedono il personaggio, cercheranno di seguire l’odore che il personaggio ha lasciato nelle aree visitate. Se sono messi male, possono tentare di fuggire, oppure di mangiare qualcosa per recuperare le energie.
Per simulare l’odore, ho usato una semplice variabile numerica. Quando il personaggio calpesta una casella, la variabile corrispondente guadagna una certa cifra, che poi decade col tempo, quando il personaggio si allontana. I mostri possono “fiutare” il punteggio della variabile e seguire così la traccia, alla ricerca di variabili più “fresche”. Forse non è il sistema migliore per svilupparlo, ma è rapido e sufficientemente semplice. Inoltre, non richiede algoritmi che consumano tante risorse.
Personaggio e mostri possono fare più o meno le stesse cose. o almeno potrebbero: in questo caso, ho preferito evitare di far usare anche ai mostri gli attrezzi che si possono trovare, ma sono capaci di raccogliere il cibo (o almeno ciò che loro considerano cibo) e mangiarlo quando sono a corto di energia. Entrambi, infatti, estendono la stessa classe, ossia “Creatura”, al cui interno si trova la gran parte dei metodi usati dai mostri e dal giocatore. Utilizzato in un roguelike normale, questo sistema darebbe anche ai mostri la possibilità di servirsi di tutte le armi e di tutti gli oggetti magici che il giocatore potrebbe usare. E potrebbe essere molto letale, credetemi... ma sarebbe anche molto interessante, per cui credo proprio che lo farò, prima o poi.
È poi possibile che il gioco contenga alcuni bug, anzi diciamo pure che è probabile: quasi tutti i programmi ne contengono, ma nel peggiore dei casi dovreste solo notare comportamenti anomali del personaggio o dei mostri. Nel caso, siete liberi di segnalarli, così li cercherò e li correggerò.
Se il Java è installato correttamente, potete avviarlo come qualsiasi altro programma: se usate Windows, insomma, è sufficiente un doppio click.

Download

venerdì 18 novembre 2011

Come funziona Daemon Tools Lite

Avevo già accennato a Daemon Tools Lite, parlando dei file ISO e di come aprirli: vediamo oggi di approfondire il discorso su questo programma.
Daemon Tools Lite è la versione ridotta (e gratuita) di Daemon Tools, una serie di prodotti per emulazione e creazione di immagini disco, ma è più che sufficiente se abbiamo soltanto bisogno di utilizzare un file ISO e non intendiamo masterizzare un CD (o un DVD, a seconda dei casi). Un file ISO, come già detto, è una immagine di disco, ossia una “fotocopia” digitale del contenuto di un disco: può essere un CD, un DVD, ma anche qualsiasi altro tipo di supporto analogo. Per poter utilizzare questa fotocopia digitale, di solito è necessario “appiccicarla” su un altro supporto dello stesso tipo: masterizzarla su un CD se è la copia di un CD, su un DVD se è la copia di un DVD, e così via. Otterremo così una copia perfetta dell’originale. Di solito.
Un programma come Daemon Tools, invece, ci permette di aggirare questo problema utilizzando un supporto virtuale, su cui “appiccicheremo” provvisoriamente il nostro file ISO. In questo modo, lo potremo far funzionare come se fosse stato masterizzato su un CD, anche se in effetti sta soltanto girando su un programma che simula un CD. Detto in altri termini, con Daemon Tools potremo aprire un file ISO sul nostro computer, come se fosse un qualunque altro tipo di file.
Il motivo formale per cui si consiglia di usare un programma di questo tipo è quello di testare il corretto funzionamento di un file ISO, prima di procedere con la masterizzazione. Il motivo reale per cui la maggior parte della gente utilizza questo programma, con tutta probabilità, è quello di far funzionare videogiochi o altri programmi, scaricati in formato ISO attraverso eMule o Torrent. Una questione di punti di vista, insomma.

Daemon Tools Lite si può scaricare dal sito ufficiale del programma, senza alcuna difficoltà.
La procedura di installazione percorre i soliti, noiosi punti di ogni altra installazione e non dovrebbe dare problemi. Da sottolineare che dovrete selezionare la Licenza Gratuita di Daemon Tools, al momento dell’installazione; inoltre è consigliabile non selezionare le opzioni “Barra degli strumenti” (se non volete ritrovarvi un’altra, inutile barra nel vostro browser) e il Provider di ricerca predefinita (altra funzione inutile). Se avete Windows Vista o Windows 7, è probabile che cercherà anche di rifilarvi un Gadget, che finirà nel vostro desktop: potete ignorare anche quello.
Conclusa l’installazione, tra i “Dispositivi con archivi rimovibili” del vostro computer ci sarà una nuova unità, ossia il disco virtuale creato da Daemon Tools: lo utilizzerete per far girare i file ISO e funzionerà come se fosse un disco reale (più o meno). Ci sarà anche una nuova icona nella barra delle applicazioni, in basso a destra: l’icona di Daemon Tools: cliccandola col tasto destro del mouse, ci apparirà questo menu.

Le varie voci del menu dovrebbero essere abbastanza semplici da capire, a ogni modo vediamo una breve descrizione.
DAEMON Tools Lite: serve ad aprire la finestra principale del programma e si può attivare anche con un doppio click del tasto sinistro del mouse sull’icona stessa.
Immagine Disco: fornisce alcuni dati sul file ISO attualmente caricato (se ce n’è uno) e sul disco virtuale che stiamo usando.
Masterizza Immagine su Disco: richiede un altro programma, Astroburn Lite, che permette di masterizzare su un disco adatto il nostro file ISO. Se non avete Astroburn Lite, vi suggerirà di scaricarlo e installarlo.
Periferiche Virtuali: vi mostra l’elenco delle periferiche virtuali che avete creato con Daemon Tools Lite (ce n’è almeno una, creata al momento dell’installazione). Se volete crearne altre, potete farlo da qui.
Preferenze: permette di selezionare (o deselezionare) diverse opzioni relative al funzionamento di Daemon Tools Lite, come la lingua, l’avvio automatico, i formati di files da associare a questo programma e così via. Se non volete che Daemon Tools si avvii automaticamente ogni volta che accendete il computer, dovrete agire qui.
Acquista Ora: se volete passare alla versione a pagamento.
Aiuto: per aprire il manuale e gli altri strumenti di supporto (come il forum ufficiale).
La finestra principale del programma è la seguente:

In basso troverete la lista delle principali funzioni, che abbiamo visto anche nel menu precedente. Per ognuna, apparirà in sovrimpressione un breve testo descrittivo, in italiano, al passaggio del mouse: non credo sia dunque necessario ripetere quanto già detto.
Per montare un file ISO (o un’altra immagine di disco), dovremo innanzitutto cliccare sul disco virtuale che vogliamo usare, scegliendolo dalla lista in basso (se abbiamo più di un disco virtuale). Nell’immagine sopra, c’è un solo disco virtuale disponibile, per non creare troppa confusione.
Scegliamo poi l’immagine da montare, utilizzando “Aggiungi file”. Dopo averla selezionata, nella parte alta della finestra, cioè nel “Catalogo immagini”, troveremo il nostro file: selezioniamolo con un doppio click e la sua icona apparirà in basso, sopra quella del disco virtuale che stiamo usando.
A questo punto, basta cliccare “Monta”, per avviare il caricamento del file e far partire di conseguenza il programma che contiene.

lunedì 14 novembre 2011

La ricerca per immagini: Tineye e Google

La ricerca tramite immagini, come abbiamo già visto, consiste nell’utilizzare una immagine come base per effettuare una ricerca di altre immagini, nonché di pagine su cui sono state pubblicate. In altri termini, noi inseriamo una immagine nel motore di ricerca (caricandola dal nostro computer, o copiando l’indirizzo dell’immagine) e il motore di ricerca ci dirà su quali siti possiamo trovare quella stessa immagine, oppure una immagine simile (in certi casi).
A cosa può servire una ricerca di questo tipo? Può servire a soddisfare diverse esigenze, la cui importanza poi è del tutto soggettiva. Per esempio, può servire a trovare l’origine di una immagine, cercando la pagina su cui è apparsa per la prima volta. Se l’immagine fa parte di una serie, potremmo trovare il resto della serie, cercando tra le pagine su cui la foto è stata pubblicata. Inoltre, in questo periodo di caccia alle streghe del copyright, può essere molto utile per scoprire tutti i siti e le persone che hanno utilizzato una determinata immagine, se siamo talebani del copyright e vogliamo punire chiunque abbia osato condividere una immagine realizzata da noi. Infine, può servire a fornirci maggiori informazioni su una immagine, sempre cercando tra le varie pagine su cui è stata caricata.
Prima dell’ingresso di Google in questo settore, avvenuto in estate, il motore di ricerca di riferimento è stato Tineye, il quale però presenta alcune differenze rispetto al servizio offerto da Google. Osservando più in dettaglio queste, differenze, possiamo capire meglio come funzioni e quanto funzioni questo tipo di ricerca, ossia la ricerca tramite immagini.

Tineye è (era?) il motore di ricerca più usato, per localizzare una determinata immagine. Ecco come ci si presenta:

Il suo utilizzo è piuttosto semplice, così come sono piuttosto semplici anche le sue funzioni. Basta caricare una immagine dal nostro computer e lanciare la ricerca: in breve, Tineye ci dirà su quali siti appaia la nostra immagine. Tutto qui. Tineye stesso si presenta come strumento per la tutela del copyright, secondo quanto dicevo sopra, e come sua principale ragione di essere indica proprio quella di cercare tutte le pagine su cui una determinata immagine è stata usata.
Il principio di base è analogo a quello di un comune motore di ricerca: invece di cercare le pagine su cui appaiono le parole che abbiamo inserito, cerca le pagine su cui appare l’immagine che abbiamo inserito. Una ricerca per immagini, tuttavia, implica un lavoro più complesso rispetto a una semplice ricerca per parole e richiede determinate tecniche di riconoscimento dell’immagine, che per un occhio umano sono molto banali ma per un computer sono molto complicate. Non è dunque un lavoro così facile, come potrebbe sembrare, e questo spiega i risultati non sempre precisi che otteniamo.
A ogni modo, Tineye si limita a cercare copie esatte dell’immagine, per cui il processo di riconoscimento è sì fondamentale, ma non è spinto all’eccesso. Questo, semmai, succede con Google e il suo motore di ricerca per immagini.

Google è entrato nel campo della ricerca tramite immagini con l’obbiettivo di fare molto di più, rispetto ai motori di ricerca visti fino a questo momento. Il che era alquanto prevedibile, da parte del leader mondiale (o almeno occidentale) nella ricerca in Rete. Vediamo dunque cosa ha aggiunto, rispetto a motori come Tineye.
Innanzitutto, ecco come ci si presenta:

Abbiamo già parlato di come usarlo, per cui adesso parleremo meglio di come funzioni. Una volta caricata o inserita l’immagine da cercare, Google ci restituirà tutte le pagine su cui detta immagine compare. Fin qui nulla di diverso rispetto a Tineye, anche se il numero di risultati è mediamente maggiore. Ciò che Google ci offre in più è la possibilità di cercare anche immagini simili a quella che abbiamo caricato: simili sia come soggetto, sia come disposizione degli elementi. Tra le immagini che Google ci suggerisce, in fondo a una nostra ricerca, potremo dunque trovare altre foto con la spessa persona (o almeno con quella che Google interpreta come la stessa persona), oppure altre foto con la stessa ambientazione o lo stesso stile. Ed è qui che comincia la difficoltà vera e propria, rispetto alla semplice ricerca di una immagine identica.
Le reti neurali sono forse lo strumento più usato nel campo del riconoscimento delle immagini e sono uno strumento piuttosto avanzato, nel campo dell’intelligenza artificiale. Non scenderò qui nei dettagli, perché sarebbe estremamente complicato, ma mi limiterò a sottolineare una caratteristica base delle reti neurali: la capacità di apprendimento. Una rete neurale può essere allenata e può imparare a svolgere sempre meglio un determinato compito. Nel campo del riconoscimento delle immagini, più una rete neurale è allenata e più i suoi margini di errore saranno ridotti: in altri termini, col tempo e con varie prove diventerà sempre più brava a riconoscere una immagine.
Tutto questo per dire che la ricerca per immagini di Google, in teoria, dovrebbe migliorare col tempo e dare risultati sempre più vicini all’ottimale. È tutto da dimostrare che ci riesca davvero, ma personalmente l’ho trovata migliorata rispetto all’estate. Vedremo poi come proseguirà.
Un’altra opportunità offerta da Google è quella di cercare parole assieme alle immagini: basta che le scriviamo nel solito riquadro di Google, accanto all’immagine, e le due ricerche saranno incrociate, con la speranza di dare risultati più vicini a ciò che desideriamo noi. In caso di scarsi risultati, sarà Google stesso a suggerirci di aggiungere qualche parola, per descrivere meglio la nostra ricerca di immagini.

mercoledì 9 novembre 2011

Rogue, il nonno dei videogiochi

Abbiamo già parlato in breve del genere roguelike, un particolare tipo di giochi per computer che possiedono caratteristiche estremamente diverse da quelle dei videogiochi a cui siamo abituati oggi, ma che molto spesso ne costituiscono gli antenati. Per continuare il discorso, e siccome questi giochi rientrano tra le mie passioni, parleremo oggi del loro capostipite, da cui prendono il nome: il gioco Rogue.
Rogue è nato nel 1980, risultato del lavoro congiunto di Michael Toy, Glenn Wichman e Ken Arnold, tre studenti universitari californiani che si erano stancati dei soliti giochi presenti sui computer dell’università. I giochi in questione, a quei tempi, erano soprattutto avventure testuali, ossia giochi di ruolo in cui il computer stampava sullo schermo una descrizione testuale dell’ambiente e il giocatore interagiva scrivendo brevi comandi, del tipo “sali”, “scendi”, “raccogli l’oggetto”, eccetera. Questo tipo di giochi, per quanto potessero essere divertenti, presentavano però due difetti: la grafica non esisteva, perché erano soltanto frasi scritte sullo schermo, ma soprattutto il gioco era uno e non poteva cambiare. Una volta giunto alla fine, il giocatore conosceva tutti i passaggi e i “segreti” del gioco e non era dunque invogliato a rigiocarlo.
Rogue fu la soluzione a entrambi i problemi.
Ken Arnold, all’università di Berkeley, sviluppò il primo modello di interfaccia grafica, grazie a cui il programma poteva inserire caratteri in vari punti dello schermo, simulando così un disegno: un tipo di ASCII art, insomma, in cui su usavano i caratteri per disegnare figure. Questo modello è tuttora esistente e si chiama curses. Sulla base di questo modello, Michael Toy e Glenn Wichman, studenti dell’università di Santa Cruz, si lanciarono nell’impresa di creare un’avventura grafica, in cui il computer disegnasse sullo schermo l’ambiente di gioco, invece di descriverlo attraverso brevi frasi. Il risultato fu appunto Rogue.
Creare un’avventura grafica, però, non era sufficiente, perché rimaneva un altro grande problema, ancora più fondamentale: la rigiocabilità. Il programmatore di un’avventura testuale, infatti, per forza di cose conosceva già ogni segreto del gioco e non poteva divertirsi molto; allo stesso modo, un giocatore si divertiva poco a rigiocare un’avventura testuale già conclusa, perché ormai ne aveva imparato ogni elemento. Per risolvere il problema, decisero che non sarebbe stato il computer stesso a costruire l’ambiente in cui svolgere l’avventura, così da ottenere un’avventura diversa a ogni partita.
Questa è la base di Rogue. Il gioco, in sé, è piuttosto semplice, ma come ogni gioco semplice è anche estremamente complesso: il giocatore interpreta un personaggio, raffigurato sullo schermo con una @, e deve superare vari livelli di un dungeon, arrivare fino al livello 25, recuperare un amuleto magico e poi tornare al livello iniziale, per vincere il gioco. Durante il suo viaggio, la nostra @ dovrà affrontare vari mostri, raffigurati con altre lettere dell’alfabeto, e troverà diversi oggetti e armi che lo potranno aiutare nel suo compito. Questa è la trama di Rogue, così come di svariati altri roguelike suoi discendenti.
Il giocatore controlla il suo personaggio attraverso la tastiera: a ogni azione corrisponde un determinato tasto, grazie al quale il personaggio potrà muoversi sullo schermo, raccogliere oggetti, bere pozioni magiche, impugnare armi, attaccare i mostri e così via. anche questo sistema è stato mantenuto praticamente da tutti i roguelike successivi, ed è ancora alla base degli ultimi discendenti di oggi, in quanto elemento tradizionale.
La vera novità introdotta da Rogue, però, non è tanto l’interfaccia grafica, rudimentale ma pur sempre innovativa per l’epoca, quanto piuttosto il modo in cui il gioco è creato: è il programma stesso a produrre il gioco, non il programmatore. In altri termini, mappe, mostri e livelli non sono preparati dal programmatore, ma generati dal gioco stesso ogni volta che è utilizzato.
Quando il giocatore accede a un nuovo livello, il livello è generato casualmente dal motore del gioco: dapprima si creano le stanze, disposte a caso all’interno dello spazio a disposizione, poi le stanze sono collegate tra loro da corridoi, infine sono prodotti i mostri e gli oggetti che le popoleranno. Anche mostri e oggetti sono generati casualmente, pescandoli dalla lista di mostri e di oggetti a disposizione. Come risultato, ogni livello è sempre nuovo e diverso da ogni altro, e rappresenta una sfida diversa per il giocatore. Lo stesso programmatore del gioco non sa come siano i livelli, perché è il gioco a produrli autonomamente, ed è questo il marchio di fabbrica del genere roguelike, che sopravvive anche oggi: ogni partita è sempre diversa dalle precedenti.
Come è logico, trattandosi di computer non si può parlare di casualità reale, ma di pseudocasualità: il numero di fattori in gioco, però, garantisce periodi estremamente lunghi, prima di arrivare a ripetizioni e ritrovarsi livelli identici in tutto e per tutto a quelli già giocati. Pur nei limiti, possiamo quindi considerarlo sempre nuovo ed è proprio l’estrema rigiocabilità a caratterizzare un roguelike, rispetto a quasi tutti gli altri giochi per computer.

A più di trent’anni dalla sua nascita, ovviamente Rogue non è più mantenuto o sviluppato, soprattutto perché i suoi creatori hanno ormai raggiunto la mezza età e hanno altri impegni a cui dedicarsi. Nonostante questo, il gioco è stato “adottato” da una comunità di appassionati, che ne ha prodotto svariate versioni, per adattarlo alle macchine che si sono succedute in questi trent’anni di storia del computer. In pratica, hanno prodotto versioni di Rogue compatibili coi vari computer, per poter continuare a giocarlo senza problemi. Una lista completa (o quasi) delle varianti che ancora ne esistono, suddivise per linguaggio di programmazione, sistema operativo o tipo di computer (ma non solo, ne sono stati create anche varianti per calcolatrici), la potete trovare qui:
Fra le tante, ce ne sarà di sicuro almeno una adatta allo strumento che state utilizzando per leggere questo articolo: potete scaricarla gratuitamente e sperimentare voi stessi cosa sia Rogue. Sarà certo un interessante viaggio nel tempo, che vi metterà in contatto col mondo dei giochi per computer di trent’anni fa... e vi mostrerà quanti siano gli elementi poi ereditati dai videogiochi attuali. Diablo, tanto per dirne uno, non esisterebbe così come lo conoscete, se non ci fossero stati Rogue e tutti i suoi discendenti.

venerdì 4 novembre 2011

Breve guida a Malwarebytes

Abbiamo già parlato in più occasioni di virus e di malware, cominciando proprio dalla distinzione tra questi due termini: malware è una categoria che raggruppa tutti i programmi dannosi per un computer, mentre i virus sono soltanto un tipo di programma dannoso. In altri termini, possiamo dire che i malware sono le malattie che possono colpire un computer, mentre i virus sono una di queste malattie.
Questa è una differenza che dobbiamo tenere presente, quando il nostro computer si ritrova infettato: gli antivirus, infatti, funzionano soprattutto contro i virus e alcuni tipi di malware, ma non contro tutti i tipi, proprio come una medicina può curare una malattia, ma essere inutile contro una malattia diversa. Accanto all’antivirus, dunque, è bene tenere anche altri programmi di protezione, che si occupano di quel malware che un antivirus non può trovare e rimuovere. Malwarebytes Anti-Malware è uno di questi programmi.
Ne avevamo già parlato quasi un anno fa, ai tempi in cui infuriava il “virus di Facebook”, ossia quei simpatici link che i nostri amici ci spedivano in continuazione attraverso la chat, senza volere: in quel caso, l’infezione non era provocata da un virus, ma da un altro tipo di malware, ossia un worm, e un normale antivirus non lo avrebbe potuto rimuovere. Malwarebytes, invece, lo eliminava senza problemi. Passiamo dunque a una presentazione più completa del programma.

Malwarebytes è appunto un programma di protezione rivolto a tutto quel malware che, normalmente, sfugge al controllo di un antivirus: non serve a sostituire un antivirus, ma lo affianca e lo aiuta nel suo lavoro di pulizia. Dal punto di vista di un utente comune, però, funziona nello stesso modo: esegue una scansione del disco fisso, alla ricerca dei programmi infetti, e poi provvede a rimuoverli. Se sapete usare un antivirus, sapete usare anche Malwarebytes.
Il programma può essere scaricato dal sito ufficiale ed è disponibile in due versioni: gratuita, oppure a pagamento. La differenza tra le due versioni non sta nell’efficacia (entrambe rimuovono ogni tipo di infezione trovata), ma nel modo in cui controllano il computer. La versione a pagamento, infatti, funziona come un normale antivirus: controllo in tempo reale di tutto ciò che scarichiamo, scansioni programmate quando vogliamo, aggiornamenti automatici e così via. La versione gratuita, invece, esegue una scansione soltanto quando siamo noi ad avviarla, non si aggiorna automaticamente (ma tenta di eseguire un aggiornamento ogni volta che la lanciamo) e non controlla costantemente il computer. In pratica, la versione a pagamento è sempre attiva, mentre la versione gratuita si attiva quando noi la svegliamo, lanciando il programma.
A ogni modo, questa è la finestra che si apre, una volta avviato Malwarebytes:

Con la versione gratuita, è anche la finestra che ci interessa di più e con cui avremo a che fare nella maggior parte dei casi: la finestra di scansione, appunto. Le due voci che ci interessano sono Scansione veloce e Scansione completa.
Scansione veloce, come suggerisce il nome, serve a eseguire un controllo rapido del computer, cercando nelle cartelle e nelle aree in cui la maggior parte del malware si annida: è il tipo di scansione con cui possiamo cominciare, quando abbiamo bisogno di rimuovere qualcosa, e spesso sarà sufficiente.
Scansione completa, invece, controlla ogni area del computer ed è quindi piuttosto lenta. Se con la scansione veloce non siamo riusciti a risolvere il problema, dovremo procedere con la scansione completa, ma ci servirà una discreta quantità di tempo, prima che si concluda. Possiamo lanciarla e lasciarla lavorare sullo sfondo, mentre noi pensiamo ad altro.
Dopo aver scelto il tipo di scansione, dovremo naturalmente cliccare il pulsante “Scansione”. Nella forma “veloce”, una scansione richiederà cinque o dieci minuti, a seconda delle dimensioni del disco fisso, della velocità del computer e altri fattori; una scansione completa ne richiederà molti di più. Alla fine, in ogni caso, si aprirà la finestra coi risultati della scansione.

Se avrà trovato qualche elemento infetto, sarà visualizzato in rosso. In questo caso, cliccando su Mostra risultati potremo vedere l’elenco di tutto il malware che ha trovato: possiamo selezionare o deselezionare un elemento, cliccandolo. Il passaggio successivo sarà cliccare su Rimuovi gli elementi selezionati, per eliminare tutta la porcheria che è stata trovata sul nostro computer.
Precisiamo che il malware selezionato non sarà cancellato direttamente, ma spostato nella sezione “Quarantena”, dove non potrà più fare danni. È una precauzione per evitare i “falsi positivi”, ossia quei programmi che non sono nocivi, ma che per varie ragioni sono stati segnalati come dannosi; per eliminare definitivamente il malware, dovremo cliccare sull’etichetta Quarantena e poi, in basso, cliccare su Cancella o Cancella tutti (a seconda di cosa vogliamo fare). I tasti Ripristina, invece, servono appunto a recuperare un file o un programma che è stato erroneamente etichettato come malware.