Archive

Archive for August, 2010

Patterns in Ruby: Observer

Capita spesso che al variare di un determinato valore tanti elementi distinti debbano aggiornarsi, ad esempio un grafico che si aggiorna al variare dei valori di una tabella, o le celle di un foglio di calcolo. In tutti questi casi torna utile l’Observer pattern. Nell’esempio che segue variando i valori delle valute verrà automaticamente aggiornato il grafico, ovviamente il numero degli observer non è limitato ad uno.

Read more…

Patterns in ruby: Singleton

Uno dei pattern piu controversi e discussi (es: leggi qui, qui e qui) è il singleton. Il singleton pattern viene utilizzato quando l’oggetto ha una sola ed unica istanza. Ad esempio alcuni software hanno un’unico file di configurazione o un solo accesso al database. L’implementazione del pattern in ruby è la seguente: Read more…

shortcuts per rails compatibili con rails3

Questo è uno script bash che permette di lanciare rails server/console/generate rispettivamente con rs/rc/rg ed è compatibile con rails 2 e 3:

Patterns in ruby: strategy

Abbiamo visto il template method pattern, un’ottima soluzione per variare una parte di algoritmo (nel caso visto in base alla tipologia di gioco, Omaha o Texas Hold’em). Il problema principale del template method è che si basa sull’ereditarietà: è la classe padre che richiama i metodi specifici della classe specializzata.

Lo strategy pattern non fa uso di ereditarietà, ma delega la parte di algoritmo che varia ad un’altra classe (o in ruby molto spesso un modulo) che verrà incluso nella classe contesto. Ecco lo stesso esempio usato per il template method rivisto con lo strategy pattern: Read more…

Patterns in ruby: template method

Sui patterns della gang of four books si trovano spesso testi e implementazioni su linguaggi come java o c++, ma gli stessi pattern implementati in ruby sono molto più eleganti e meno prolissi,  questo grazie alle potenti caratteristiche che offre il linguaggio. Ho intenzione di scrivere alcuni post sul blog relativamente all’implementazione in Ruby di questi patterns.

Il template method pattern viene usato quando in un determinato algoritmo una o piu parti devono poter cambiare. Ad esempio in un progetto realizzato qualche tempo fa per la gestione di partite di  poker dovevo variare alcune parti della logica in base al gioco specifico Omaha o Texas Hold’em. Read more…

Seth Priebatsch: The game layer on top of the world

Qualche giorno fa parlando con un’amico era venuta un’idea: realizzare un videogame per il telefonino che sfruttasse anche la geolocalizzazione, l’autore di questo video ha realizzato SCVNGR un social game geolocalizzato.

George Carlin: save the planet?