L’importanza della roadmap elettronica Aggiungi un commento

22 settembre 2009, 15:14

Avere una roadmap, delle linee guida, è senza dubbio importante per realizzare qualsiasi progetto che sia più complesso di “hello, world” (o delle classi Treno e Vagone, vero, compagni informatici della Bicocca?). Il documento in questione può assumere numerose forme: un albero completamente astratto e presente nella testa del progettista, una serie di grafi e schemi su carta o un documento elettronico.

L’ultima forma ha degli evidenti vantaggi sulle prime due. Innanzitutto, esiste fisicamente; inoltre vi si possono memorizzare più cose di quelle che qualcuno possa tenere a mente (a meno che la persona sia un genio, o un folle). Infine, un documento elettronico presenta alcuni vantaggi:

  1. Può essere modificato più e più volte, a piacimento, senza per questo diventare un impiastro illeggibile. Anche scrivendo a matita (il che comunque è un ottimo consiglio), il foglio può rovinarsi o perdersi;
  2. Può essere istantaneamente copiato e reso disponibile ovunque con un clic. Usando strumenti come Google Documents, inoltre, è possibile collaborare alla stesura e all’aggiornamento della roadmap allo stesso modo in cui si scriverebbe a più mani su un foglio di carta, senza per questo dover essere nello stesso luogo;
  3. E’ leggibile! Sembra banale, ma diventa un requisito indispensabile se si è dotati di una scrittura illeggibile come la mia. In questi giorni, a lavoro, mi è stato chiesto di stendere una sintesi dei lavori attuali della società, sottintendendo di scriverla a mano. Inorridisco al solo pensiero. No, no.

Che una roadmap elettronica (o foglio di specifiche, o To-Do list) sia indispensabile per progetti dalle migliaia di righe di codice in su è appurato, ma penso sia quasi indispensabile anche per progetti più semplici e anche se chi li fa pensa “Ho le idee ben chiare, il progetto è tutto nella mia testa e in questi 20 fogli sparsi di schemi”. Perchè i progetti non sono perfetti, cambiano, si evolvono, devono essere modificati ed eventualmente condivisi. Se poi il lavoro non è l’unico da fare in quel periodo, si rischia di cadere nella palude dell’incertezza di percorso: senza un path di sviluppo definito a priori, non ci si ricorda letteralmente più cosa c’è da fare in un dato momento.

Parlo per esperienza. Senza un documento elettronico di percorso, anche se provvisto di molti schemi (molti dei quali superati), mi bloccavo ogni volta che riprendevo in mano il gestionale per caselle di fumetteria. Che avevo fatto fino a quel momento? Può anche darsi che io sia carente di sonno (accidenti agli Steam Weekend Deal), svogliato o quant’altro. Niente di più facile. Ma se anche fosse così, non sarò né il primo né l’ultimo.

Insomma, a chi gestice più di un progetto (anche piccoli) do questo consiglio: scrivete una roadmap o documento di progettazione elettronici, o perlomeno a matita. Vi permetterà di risparmiare molto tempo, anche se potrebbe sembrare una perdita di tempo all’inizio. Anche, datevi tempi ragionevolmente regolari e stretti per organizzare il vostro progetto “libero” con il lavoro fisso (o con gli altri progetti) e con il tempo di svago.

Braid: Tempo e Perdono Aggiungi un commento

19 settembre 2009, 17:52

Oggi voglio parlare di Braid.

Braid - Città

Non farò una recensione del gioco di Johnathan Blow, per quello esistono siti molto più esaurienti e specializzati; ma una riflessione sulle emozioni che il gioco ha prodotto in me e sulle sensazioni che mi ha lasciato. Personalmente, considero un videogame (o qualsiasi altro lavoro creativo) tanto di successo quanto più mi capita di ricordarlo. Non necessariamente rigiocarlo, anche se quest’ultima cosa spesso segue la prima, ma ricordarlo ed emozionarmi per la storia o per associazioni tra le sue varie componenti: grafica, musica, feeling ecc.

Giochi come StarCraft, per la storia, Unreal e Half-Life per le ambientazioni e la colonna sonora, Faraon e Alpha Centauri per la complessità del gameplay, li ricordo volentieri e, spesso, li rigioco ancora oggi, perchè mi hanno lasciato qualcosa. Giocare a StarCraft di nuovo era come rileggere un libro fantasy ben scritto: ogni volta mi emozionavo di nuovo per il sacrificio di Tassadar e l’eroismo che il suo ricordo suscitava in quelli che rimanevano dopo di lui.

Braid è stato per me anche più di questo. In un periodo dove i giochi esplodono in quanto a grafica ed effetti speciali, oppure sono iterazioni ennesime di franchise iniziati più di un lustro fa, Braid si pone invece tra quei giochi che, con budget relativamente limitato e team composti spesso da una, due o massimo tre persone, riescono nel loro intento molto più che giochi da centinaia di milioni di dollari.

In Braid, molte cose colpiscono il giocatore. Chi gioca è subito coinvolto nell’azione: nessuna schermata iniziale, ma un ponte in ombra, che dà su una città in cui alcune luci dorate mostrano un paesaggio di tetti. Il titolo svanisce appena ci muoviamo; nell’atto stesso di muoversi scopriamo il personaggio, altrimenti quasi invisibile, e lo vediamo mentre passa in luce sotto alcuni lampioni dall’aspetto rétro.

Braid - Casa di Tim

Tim, il protagonista, utilizza la sua casa come punto di partenza per i vari “mondi” alla Super Mario; ma all’ingresso di ogni mondo, ci viene raccontato qualcosa di lui. Nel primo, che enigmaticamente è il “Mondo 2″, viene detto qualcosa che ognuno potrà fare suo.

“Ma se abbiamo imparato dai nostri errori, se ci hanno fatto diventare migliori, non dovremmo essere premiati, piuttosto che puniti? [...] L’esperienza ci renderebbe comunque più saggi, ma non dovremmo più soffrire per i nostri errori.”

Braid è una storia di perdono, remissione, frustrazione, esitazione, decisione e ineluttabilità. Sfide che chiunque si ritrova a vincere o perdere (più che altro perdere) nella sua vita. Tutti i concetti sono integrati nel gameplay come manipolazioni temporali: il perdono è la possibilità di riavvolgere il tempo fino all’inizio del livello, l’esitazione è rappresentata da zone in cui il tempo (e Tim stesso) rallenta fin quasi a fermarsi, la decisione è l’avverarsi della frase “Se tornassi indietro, farei la stessa cosa”: un’ombra di noi stessi ripercorre le azioni che abbiamo appena compiuto. Ogni mondo integra uno di questi concetti nella musica e nella grafica, oltre che nel gameplay.

Braid - Coniglietti rosa mannari

Musica e grafica sono tra le migliori che io abbia mai visto in un gioco. Sono perfette per la situazione, al punto che l’occhio non riesce a cogliere cosa sia in particolare che lo colpisce, ma abbraccia il tutto come un intero. La musica, una combinazione di tenui melodie d’arpa, pianoforte e violino, è stata accuratamente scelta perchè si accordasse con il concetto dei mondi e le ambientazioni e, a sua volta, ha influenzato entrambi. Infine, la grafica, in uno squisito stile acquarello, contiene elementi che riprendono il concetto espresso e l’episodio raccontato.

Non potrei raccomandarlo abbastanza: Braid non è solo un gioco, è un’esperienza, un dipinto, una sinfonia ed un omaggio al genere platform. Cosa mi ha insegnato? Che anche se l’esperienza può servirci per non commettere gli stessi errori in futuro, non si può mai tornare compiutamente indietro; cercare di farlo significa procurare altra sofferenza a se stessi e agli altri. Ma si può andare avanti, cercare di costruire qualcosa di nuovo.

Wolfram Alpha, motore di Conoscenza Aggiungi un commento

15 settembre 2009, 16:33

Ieri il mio amico e collega informatico/programmatore Paolo (che spero di vedere presto in una home sua) mi ha mostrato Wolfram|Alpha, web application definita come “Motore computazionale di conoscenza”. Sviluppato dalla Wolfram Research, il suo scopo è presentare la conoscenza in una forma più descrittiva e puntuale di una serie di link (come ad esempio fa un motore di ricerca).

Wolfram|Alpha saluta

La Wolfram Research è la società privata di Steven Wolfram il cui prodotto più noto è Mathematica, suite per operazioni matematiche di qualsiasi tipo. La mia esperienza con Mathematica si riduce ad una ventina di ore di laboratorio durante il corso di Teoria dei sistemi (Elementi), dove l’usavamo per calcolare output di sistemi ingresso-uscita e la soluzione di equazioni differenziali.

Wolfram|Alpha è basato sullo stesso software, quindi può riconoscere espressioni matematiche  (anche in linguaggio più o meno naturale) e comportarsi di conseguenza. Qui due esempi, con una funzione complessa e una semplice:

Funzione semplice su Wolfram|AlphaFunzione complessa su Wolfram|Alpha

Con Internet a disposizione ed una stampante, situazione tipica nel laboratorio di una qualsiasi scuola moderna, si può stampare al volo un foglio di riferimento completo per qualsiasi funzione richiesta: derivata prima o seconda, limiti notevoli, integrale definito e indefinito, espansione in serie se applicabile, grafico… insomma, veramente ottimo, ma quasi scontato, almeno procedendo sui passi di un software come Mathematica che esiste da 20 anni per quell’unico scopo.

Ciò che è meno facile, Wolfram|Alpha si presenta come un motore computazionale di tutta la conoscenza. E’ ancora nella sua prima infanzia, essendo stato lanciato il 15 maggio, ma già si possono fare domande come “Quanti anni ha il principe Carlo?” o “Dove sono?” e lui risponderà in maniera appropriata. Anche domande come il valore nutrizionale di una mela, la 12ma nazione ordinata per numero di donne, per non parlare di costanti fisiche e valori notevoli, conversioni tra unità di misura, ecc. trovano pronta e spesso esauriente risposta.

Non mancano strizzatine d’occhio alle domande che un nerd potrebbe porre:

Wolfram|Alpha non disdegna di rispondere ad alcune domande personali:

  • Chi sei?
  • Dove vivi?
  • Sei Skynet? (Risposta: “No, Skynet raggiunse l’autocoscienza il 29 agosto 1997 alle 02.14 AM, ora della Costa Orientale. Io, al contrario, non sono stato messo in funzione fino al 15 maggio 2009. Inoltre, apprezzo modalità di interazione con gli umani che non involvano necessariamente l’uso di missili nucleari.”)

E infine, una buona ragione di vita per ogni persona curiosa:

Non è perfetto, ma già risultati del genere erano quasi impensabili, poniamo, 10 anni fa… e prima, erano ipotizzabili solo da un supercomputer che alla domanda “Esiste Dio?” rispondeva, dopo aver assorbito la conoscenza e la potenza di calcolo dell’Universo intero: “Sì, adesso Dio c’è” (Frederic Brown, La risposta).

In via di elaborazione sono l’estensione del motore di conoscenza ad argomenti di programmazione, complessità computazionale e conversazione naturale, à la Jabberwacky o Eliza. Inoltre, il motore per ora parla solo inglese, ma nuovi linguaggi verranno sicuramente aggiunti in futuro.

In definitiva, Wolfram|Alpha mira a diventare una raccolta organizzata di “tutto il sapere oggettivo: implementare ogni modello, metodo e algoritmo conosciuto; rendere tutta la conoscenza sistematica immediatamente calcolabile e accessibile da chiunque ” (About Wolfram|Alpha).