Dopo essere stati sommersi da Katrina, dopo una stagione sostanzialmente undefeated, e dopo essere partiti malissimo durante la finale, ce l’hanno fatta!
Il primo Super Bowl della storia per i New Orleans Saints!
10 min di highlights.
Highlights di P. Thomas. #23 Saints. Un uomo che non va mai giù, e realizza una meta al 3° quarto semplicemente fantastica (filmato a 0:55).
Saints – Colt : 31 – 17
Sono talmente abituato ad arrangiarmi da solo, che quando mi è comparso davanti il benzinaio mentre stavo facendo il pieno alla mia auto, mi sono chiesto cosa volesse quest’uomo che si era frapposto fra me e la mia portiera vestito come un pilota di formula uno senza casco…
C’è stato un momento di imbarazzo – probabilmente dovuto al mio sguardo stralunato – poi ho ben deciso di scusarmi, lasciare la pompa nelle sue sapienti mani, e salire in auto buono buono.
Forse dovevo fotografarlo; non se ne vedono quasi più in giro. O_o
Dopo aver bestemmiato come un satanista, forse ne sono uscito. Finalmente.
Gli schemi che si mangia DBIx::Class sono di questo genere (ho tagliato la definizione delle colonne, perché irrilevante):
[…]
use base ‘DBIx::Class’;
__PACKAGE__->load_components("InflateColumn::DateTime", "TimeStamp", "EncodedColumn", "Core");
__PACKAGE__->table("thoughts");
__PACKAGE__->add_columns(
"id", { […] },
"title", { […] },
"body", { […] },
"create_time", { […] },
"last_modif", { […] },
"author_id", { […] },
);
__PACKAGE__->set_primary_key("id");
__PACKAGE__->add_unique_constraint("thought_pkey", ["id"]);
__PACKAGE__->belongs_to(
"author_id", "Tr0n3::Schema::Main::Result::Authors", { id => "author_id" },
);
1;
e
[…]
use base ‘DBIx::Class’;
__PACKAGE__->load_components("InflateColumn::DateTime", "TimeStamp", "EncodedColumn", "Core");
__PACKAGE__->table("authors");
__PACKAGE__->add_columns(
"id", { […] },
"nick", { […] },
"password", { […] },
"mail", { […] },
"create_time", { […] },
"last_login", { […] },
);
__PACKAGE__->set_primary_key("id");
__PACKAGE__->add_unique_constraint("authors_pkey", ["id"]);
__PACKAGE__->has_many(
"links", "Tr0n3::Schema::Main::Result::Links", { "foreign.author_id" => "self.id" },
);
__PACKAGE__->has_many( "thoughts", "Tr0n3::Schema::Main::Result::Thoughts", { "foreign.author_id" => "self.id" },
);
1;
Per fare una join con DBIC ci si appoggia alle relazioni:
Thoughts->belongs_to( "author_id", "Tr0n3::Schema::Main::Result::Authors", { id => "author_id" }, );
has_many crea una relazione “uno a molti”, e ha come argomenti: il nome dell’accessor, il nome della classe che rappresenta la tabella, un hashref con la reference (a cosa punta la foreign key).
In pratica lo schema Authors è in connessione uno a molti con Thoughs (per un Author ci possono essere molti Thoughts) , la relazione si chiama thoughts e vi si accede attraverso l’accessor thoughts, che punta allo schema Main::Result::Thoughts, secondo la relazione author_id (nella tabella thoughts) – id (nella tabella author).
In maniera analoga, lo schema Thoughts ha una relazione belongs_to con nome author_id, che punta allo schema Authors e che lega l’id in Authors con l’author_id di Thoughts.
Grazie a queste relazioni esplicitate nello schema, è possibile creare delle join in DBIx::Class:
Questa join parte dal ResultSet di Thoughts e senza filtri fa un JOIN con author attraverso l’accessor author_id.
L’SQL risultante è:
(Il prefisso “me” – inserito da DBIC – indica la tabella a sinistra del join.)
In tutti i giochi di carte la manipolazione del mazzo è fondamentale.
Si tenga conto che in Elements finire le carte fa perdere la partita, quindi occhio.
Attualmente ci sono poche carte che fanno pescare, e sono tutte Tempo.
Sundial fa pescare 1 carta come effetto collaterale al costo di 1 quanto luce. E’ comodo perché costa poco (1 quanto tempo) e blocca gli attacchi per un turno.
Il Golden Hourglass è la carta per pescare: al costo di 2 quanti tempo (1 se upgradata) si prende una carta extra durante il turno.
Non si può dire che non mi piaccia, ma il costo è alto (3 quanti tempo) specialmente nei mazzi rainbow (cioè i mazzi multicolore che di solito prendono quanti dai pillar generici).
Meglio ricordare anche Eternity e Reverse time che manipolano il mazzo rimettendo creature nel mazzo del proprietario (si evitano danni prolungati, riprendono in mano creature importanti o danneggiate, fa stallare l’avversario che non pesca carte nuove, creature costose vanno ripagate per intero).
Molti allegri coetanei hanno speso tempo e soldi su Magic: The Gathering, “antico” quanto riuscito gioco di carte.
Magic è (poichè risulta tutt’ora vivo e giocato) un gioco di carte collezionabili. L’abilità dei giocatori consta tanto nel vincere partite contro i propri avversari, quanto nel costruire mazzi vincenti con le carte giuste e diverse combinazioni delle stesse.
In un’epoca di quintali di giochini online, sono fioriti anche molteplici giochi in flash (attualmente suppongo che i più famosi siano quelli di facebook, ma ne esistevano anche in precedenza, vedi qua) e non poteva mancare un emulo di Magic, per altro pure carino.
Element the Game è una sorta di Magic virtuale, con parecchi “semi” in più e un certo bilanciamento fra le carte (info sulla wiki). L’AI del computer è abbastanza minchiona, ma arrivati contro avversari del terzo livello perlomeno bisogna ottimizzare il mazzo e non si è sicuri di vincere. Ovviamente, è possibile giocare anche contro avversari umani.
Si sceglie in partenza un colore per cui si produce “mana” gratis, ed è possibile cambiarlo (e quindi cambiare il colore del mazzo) per 100 electrum.
I mazzi possono essere composti da un minimo di 30 carte (come ben si sa, meglio stare bassi per ragioni statistiche) ad un massimo di 60; i colori nel mazzo possono variare a piacimento, ma è ovviamente fondamentale avere le risorse del tipo giusto per giocare le carte adeguate.
Si parte con 7 carte in mano, ogni turno se ne pesca una e se ne possono giocare quante si vuole (sempre pagando i relativi costi).
Le creature, salvo abilità particolari, non interagiscono con le creature avversarie, e tolgono vita direttamente al giocatore, che ha a disposizione anche un’arma offensiva ed uno scudo difensivo che può piazzare durante la partita.
Alcune carte senza costo possono essere giocare indipendentemente dal colore.
Agli inizi è conveniente seguire le quest che guidano un minimo al gioco e forniscono soldi per comperare nuove carte al bazaar: sì, si possono comperare carte nuove e vendere quelle già possedute e che non servono.
Inoltre alla fine di ogni partita vinta si riceverà qualcosa (soldi e la possibilità di vincere una carta a caso) e all’aumentare del livello dell’avversario i premi crescono in quantità (non so se anche in qualità).
Così ad occhio, ci sono carte che valgono molti soldi (ad esempio i draghi) e potrebbe sembrare conveniente venderle per avere un gruzzolo iniziale: a mio avviso invece non vale la pena perché sono carte che costano molto di più da ricomperare, e a conti fatti le si utilizza pure per avere un po’ di impatto fisico.
E’ possibile anche upgradare le carte per 1500 monete. E’ una cosa ganza… ma costa un occhio.
Cosa importante, il valore della vita con cui concludete la partita influenza il premio finale, quindi un mazzo con qualche cura generalmente tende ad essere vantaggioso per fare qualche soldo in più.
Ogni tanto mi piace prendere nota della pazzia imperante nel mondo.
Un fantastico buono per un trattamento in un salone di bellezza stile cartolina recita così:
Nell’Isola Incantata viviamo la nostra Favola nella meravigliosa Favola dell’Universo, insieme a persone di ogni razza, colore e religione… in grado di ascoltarci, e ascoltare “Gioiosamente immersi nella Vita”… con animali, piante e cose siamo abitanti di “Gioiopolis” città metafisica dove accadono gli AMANTI-PENSIERI le FANTASTIC-AZIONI le MERAVIGLI-OPERE.
Qui celebriamo la nostra Favola… la Magia della Vita…
Qui sperimenti-amo l’amore… amandoci… amando.
No dai, non fate così. C’è gente che paga pure.
Per convertire una data in timestamp in perl:
1235775600
Attenzione, la data inserita è il 28 febbraio 2009, a mezzanotte.
Il modulo Time::Local fornisce funzioni che sono l’opposto di quelle built-in di perl localtime() e gmtime().
Attenzione ai mesi che vanno da 0 a 11 (gen .. dic).
