28/12/2013

Stalker: Shadow of Chernobyl

S.T.A.L.K.E.R._Shadow_of_Chernobyl_LogoA distanza di quasi quattro anni dallo splendido “Stalker Call of Pripyat“, stanco, anzi stufo marcio di sparatutto penosi e lineari (qualcuno ha detto CoD?) ho deciso di rigiocare il fantastico capostipite della serie “Stalker: Shadow of Chernobyl”.

Sembra passato un secolo da quando finii per la prima questo titolo, ed effettivamente dal punto di vista tecnologico ne è passata di acqua sotto i ponti da allora.
Devo ammettere che ancora oggi, a distanza di quasi 7 anni dalla sua uscita (correva l’anno 2007…) il gioco è ancora meravigliosamente giocabile e anche molto bello da vedere, niente di paragonabile ai titoli che sfruttano gli ultimi engine e ritrovati grafici, però Stalker mantiene un’ottima atmosfera, non fa sentire il peso degli anni e non da al giocatore quella spiacevole sensazione da retrogaming.
Ovviamente anche al massimo dei dettagli il gioco è estremamente fluido con configurazioni odierne, mi stupirei del contrario.

stalker1

Dal punto di vista del gameplay confesso di essere rimasto stupito più volte, anche per colpa degli anni e della confusione tra le tre incarnazioni di questa splendida serie.
Mi ero addirittura scordato dell’esistenza di alcune fazioni, in alcuni casi invece mi aspettavo di trovare accampamenti che invece non c’erano (probabilmente introdotti in Clear Sky) o che in passato avevo del tutto ignorato.
Nonostante la confusione (che regna sovrana nella mia testona…) mi sono davvero goduto Stalker, le sue atmosfere, l’esplorazione della Zona, l’evoluzione dell’equipaggiamento e dei manufatti; ho goduto particolarmente della grande libertà di questo gioco, soprattutto rispetto alla becera linearità degli sparatutto che dominano la scena da qualche anno (con qualche piacevole eccezione, ad esempio l’ottimo Far Cry 3).

Come da copione nel finale sono cascato ancora in uno dei cosidetti “bad endings” (lo stesso di quando finii il gioco per la prima volta, il lupo perde il pelo…),  a differenza di allora però stavolta mi sono messo d’impegno e ricaricato un salvataggio ho provato a terminare il gioco seguendo i due veri finali, c’è una sola parola per descriverli: FANTASTICI!

stalker2

Se avete già giocato Stalker sapete già quanto sia bello e intenso questo titolo (e presumibilmente non starete certo qui a leggere le farneticazioni del sottoscritto), se non l’avete mai giocato siete moralmente obbligati a fiondarvi su Steam (dove è venduto a poco più di 10 euro) per acquistarlo, non giocare un titolo del genere sarebbe un crimine!

24/12/2013

Lotro Helm’s Deep

lotroNe è passata di acqua sotto i ponti dall’ultima volta che ho dedicato un po’ di spazio a Lord of the Rings Online, ormai è da più di un anno che mi sono ritirato dalla Terra di Mezzo.

I tempi delle nottate passate a raidare, delle istanze, la rincorsa per l’ultimo set, crafting, farming, le cazzate in Teamspeak con i gildani…
Qualche giorno fa ho riloggato per dare un’occhiata al gioco, le novità, un saluto agli amici con i quali ho passato due anni di intensissima attività e grande divertimento, devo confessare che ho sentito un nodo alla gola ripensando a tutte le cose belle condivise online con i compagni d’avventura dei Cavalieri delle Ere.

Non avete idea di cosa darei per subire un bel lavaggio del cervello, per dimenticare tutto quello che so del gioco, le quest, le meccaniche, il crafting, il gioco in team  e in solo.
Ricordo come se fosse ieri quando nel 2010 il gioco passò alla formula free2play, incuriosito lo ripresi (dopo averlo abbandonato subito dopo l’uscita nel 2007) e scoprii un mondo sterminato di cose da scoprire e di ambientazioni da esplorare, la quantità di cose da fare era talmente sterminata che mi sentivo quasi ubriaco, ovunque mi girassi c’era qualcosa di nuovo e meraviglioso con il quale passare il tempo libero.

Non avete idea di quanto invidi chi non ha mai provato questo fantastico gioco…

E’ giunta l’ora di avventurarsi verso nuove terre e nuove avventure, un nuovo cap, nuove abilità, nuovi livelli di crafting, nuove modalità di gioco.
Non so se mi tornerà la voglia di raidare, di rimettere i pg a puntino per poter giocare in gruppo, forse giocherò Helm’s Deep in solo e mi accontenterò di spendere qualche settimana o mese a questare, a ciarlare in chat con i gildani, a risentire vecchi amici, oppure forse sperimenterò nuovi stimoli e tornerò a raidare.

Comunque vada a finire grazie Turbine per questo splendido gioco.

20/12/2013

Quick Bugzilla

buggieUno degli strumenti che utilizzo frequentemente in ambito lavorativo e che personalmente apprezzo tantissimo è Bugzilla.

So bene che questo strumento è nato come tool di bug tracking, e per quanto abbia una struttura dichiaratamente general purpose non sarebbe l’ideale per la gestione di progetti o comunque come tool di trouble ticketing.

Dalla mia esperienza però purtroppo le aziende italiane sono scarsamente abituate ad una gestione strutturata dei problemi e tendono a inondare il povero consulente (o tecnico in generale) con una valanga di email, generando entropia “a gerle”; in scenari di questo tipo anche una semplice istanza Bugzilla può letteralmente cambiare la vita (in positivo), poi diciamocelo, come non amare un software con un logo così carino?

Come tutte le cose però anche Bugzilla non è esente da difetti, in particolare le vecchie versioni hanno un motore di ricerca imho molto macchinoso, e al crescere dei bug le performance risultano tutt’altro che brillanti.
Guarda caso mi sono trovato proprio in questa situazione da un cliente, Bugzilla versione 2.22 su una altrettanto arcaica Debian Etch installata su un pc recuperato da uno sgabuzzino e oltre 8000 bug alle spalle, come potete immaginare fare query estese su questa istanza non è certo una passeggiata.

Preso dallo sconforto un giorno mi sono riservato un’oretta di tempo per buttar giù una semplice pagina php che andasse ad interrogare direttamente il database di Bugzilla per generare una tabella riassuntiva dei bug successivi ad una certa data, formattando i record con colori differenti in base allo stato del bug e che permettesse di aprire il dettaglio di ciascuno con un semplice link.

Il risultato è il seguente, ci tengo a precisare che:

  • le mie skill di sviluppo php sono prossime allo zero assoluto
  • la pagina viene utilizzata unicamente da rete trustata e il codice presente nella pagina è stato sviluppato in modo becero e in spregio a qualsiasi best practice
  • la pagina effettua soltanto query di select, pertanto non è distruttiva, a prescindere da questo declino ogni responsabilità per qualsiasi utilizzo scorretto della stessa
  • la pagina è stata sviluppata per interrogare il database MySQL di Bugzilla v. 2.22

quick_bugzilla

Download: quick_bugzilla (2 KB)
MD5sum: a42afdbec6ea4cee123d04cb15fe6014

10/12/2013

Le maledette schedulazioni Oracle

Se c’è una cosa che ho sempre odiato dal profondo del cuore è lo schedulatore di Oracle, al punto da arrivare a schedulare jobs (query, esecuzione di package, qualsiasi cosa) tramite bash script in cron mediante sqlplus.

Sicuramente qualche dba Oracle starà rabbrividendo, altri grideranno allo scandalo… non prendetela sul personale però imho, modestamente, personalmente, lo schedulatore di Oracle FA LETTERALMENTE CAGARE!

Terminato lo sfogo veniamo a noi, una cosa che capita spesso è schedulare un job per girare giornalmente ad una data ora, una cosa semplice, pulita che con crontab risulta essere di una banalità disarmante, vediamo come farlo con i job di Oracle.
Partiamo da presupposto per modificare un job di Oracle richiede una connessione al db con lo schema adatto e l’esecuzione del package DBMS_JOB.CHANGE.

La sintassi è apparentemente semplice:

exec DBMS_JOB.CHANGE( job, what, next_date, interval);

Il campo job indica l’id del job (lo trovate lanciando una select sulle viste dba_jobs o user_jobs) , il campo what indica cosa deve fare il job in questione, il campo next_date indica la prossima data di esecuzione, il bello viene con l’intervallo.

Oracle utilizza un perverso sistema di calcolo degli intervalli temporali, partiamo dall’istruzione SYSDATE che riporta data e ora corrente.
01

WTF!?!?! Dove diavolo è l’ora?
Pensavate forse di trovarvi ad usare un database amichevole e con una interfaccia ragionevole? Oh ragazzi state lavorando su Oracle! La complicazione è una feature…
Utilizzate l’istruzione to_char per renderizzare data e ora in un formato umano.

02

Ma se voglio visualizzare la data di domani? Utilizzate l’istruzione SYSDATE+1 che somma 24 ore alla data e ora correnti

03

Ora il volo pindarico: per identificare le ore 5:00 del giorno successivo dovete partire dalle 00:00 di SYSDATE+1 (mediante istruzione TRUNC) e aggiungere 5/24.

04

Prestate molta attenzione alle parentesi, specialmente se usate l’istruzione TRUNC, ad esempio tra “TRUNC(SYSDATE+1)+5/24” e “TRUNC((SYSDATE+1)+5/24)” c’è una enorme differenza.

05

Non disperate, questo è solo un piccolo assaggio dell’assurda e ingiustificata complessità e inusabilità di Oracle.