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.

30/11/2013

Breaking Bad

Dopo varie traversie sono riuscito a terminare la visione di questa pluridecoratapremiataosannata serie tv, e come da tradizione non posso esimermi dal tirare le somme. Partiamo dal presupposto che parlare di questa serie in modo critico è complicato, anzi è diventato una specie di tabù, specialmente in certi ambienti vagamente geek. Generalmente citando la saga di Walter White le reazioni sono due, entrambi radicali:

  • totale indifferenza (generalmente tra il pubblico generico che non l’ha mai sentita nominare)
  • venerazione con tratti di fideismo talebano (generalmente tra la popolazione geek)

Per fugare ogni dubbio lasciatemi dire che imho Breaking Bad è una bella serie, anzi molto bella e sicuramente meritevole di visione da parte di chiunque, ciò nonostante non è esente da difetti.

Breaking-Bad

Il soggetto è sicuramente originale, credo che insieme a Dexter questa sia la serie che più mi ha stupito per originalità, oltre che in generale per un livello qualitativo mediamente molto molto alto. Dal punto di vista tecnico è davvero ottima, non sono un regista ne ho una grande cultura tecnico-cinematografica, però le inquadrature, la fotografia, l’uso sapiente dei flashback, i set e le scene sono veramente di grande impatto, a tratti (ad esempio nel deserto) vere e proprie cartoline che mi hanno ricordato certe inquadrature mozzafiato di “No Country for Old Men”.

I personaggi sono fantastici, complessi, combattuti, evolvono dalla prima all’ultima puntata; sul protagonista non saprei cos’altro dire se non “Oscar”, tanto per la presenza che per l’espressività, per non parlare di alcune scene che sono entrate nella leggenda, la celebre battuta del “I am the one who knocks” è diventata un’icona al pari del famoso “You talking to me?” di DeNiro in Taxi Driver, o del fantastico Joy Ride di Dennis Hopper in “Blue Velvet”.
Gli altri personaggi vanno da ottime performance (come nel caso di Jesse Pinkman, Gus Fring, Saul Goodman, Mike Ehrmantraut) ad altre meno convincenti (Skyler White, Hank e Marie Schrader), però tutte mediamente sopra la media delle serie tv più blasonate e di molte opere del cosidetto grande schermo (definizione che serie tv come questa fanno sempre più vacillare…).

breaking-bad-heisenberg Tutto rose e fiori? Imho qualche difetto c’è, sebbene la serie non sia propriamente lunga (5 stagioni con una media di 13 puntate ciascuna) il livello di tensione non è sempre elevato, tant’è che tra la seconda e la terza stagione ci sono momenti “di stanca” dove più di uno spettatore potrebbe essere spinto ad abbandonare; c’è poi una scarsa propensione ai colpi di scena, la trama è molto piacevole ma tende ad essere piuttosto prevedibile imho.
Un altro difetto potrebbe essere la scarsa propensione a sfruttare le capacità tecniche del protagonista, una soluzione chimica ad ogni problema (per capirci alla McGuyver) sarebbe stata ridicola, però qualche trucchetto chimico in più imho sarebbe stato gradito, non a caso nelle ultime due stagioni la componente chimica della trama è quasi del tutto assente. breaking_bad1 Insomma come dicevo si tratta di un’ottima serie, non mi sento di definirla leggendaria al pari di X-Files o di Star Trek, inoltre trovo fastidiosa la venerazione morbosa e acritica riservata a questa serie in certe community online (a tal proposito guardate cosa è arrivata a fare questa coppia di schizzati…), oppure il fatto che una leggenda della fisica come Werner Heisenberg venga associato unicamente come spacciatore di una serie tv… Ciò nonostante non posso negare che Breaking Bad mi abbia fatto passare momenti estremamente piacevoli, quindi consiglio a tutti di vederla senza se e senza ma.

28/11/2013

Seagate ST2000DM001

In quest’epoca di continue evoluzioni sul fronte solid state fa un po’ specie parlare di un buon vecchio disco meccanico, sta di fatto che mi sono acchiappato un esemplare di suddetto disco Seagate.

Confesso di essere sempre stato più propenso ad acquistare unità di questo produttore rispetto all’agguerrito concorrente Western Digital, non ho pregiudizi ne verso quest’ultimo produttore, semplicemente le unità Seagate su cui ho lavorato mi hanno più favorevolmente impressionato per performance e affidabilità.

Pare che queste mie impressioni abbiano trovato un’ulteriore conferma con questa unità, senza pormi alcun problema su settaggi da bios o altro l’ho connessa, partizionata, formattata e ho lanciato due benchmark veloci veloci giusto per non saper ne leggere ne scrivere…

HDTune_Benchmark_ST2000DMST2000DM001-1CH1

crystal_disk_seagate2GB

Ma guarda un po’… e chi se le sarebbe aspettate queste performance da un disco meccanico, per giunta economico!
Stiamo a vedere come si comporterà in futuro, per il momento lasciatemi levare tanto di cappello di fronte a questo ennesimo gioiellino Seagate.

22/11/2013

Deprecato webadmin.nsf

Recentemente IBM ha diramato un security bulletin in cui dichiara deprecato l’utilizzo del fantastico client di amministrazione web bases di IBM Lotus Domino (webadmin.nsf) a causa di alcune vulnerabilità di tipo cross-site scripting e una vulnerabilità di tipo cross-site request forgery.

Giusto una manciata di riflessioni in merito:

  1. a fronte di un bug, una vulnerabilità, un problema di sicurezza, una azienda seria (e sottolineo SERIA) dovrebbe FIXARE il problema e non nascondere la testa sotto la sabbia dicendo “Beh sai che c’è? Non devi più usarlo…”
  2. proporre come unica soluzione l’utilizzo del client di amministrazione IBM Domino Administrator è (scusate il francesismo) UNA CAZZATA COLOSSALE in quanto il client di amministrazione è disponibile SOLO per Windows, gli amministratori Domino che utilizzano GNU/Linux o MacOS X “si attaccano al tram e urlano in curva” (e questo nonostante i proclami planetari che IBM ha propinato per un decennio a favore dell’adozione di GNU/Linux)
  3. IBM non si è limitata a ignorare i problemi di webdadmin, l’ha proprio ignorato in toto da sempre (ovvero dall’acquisizione di Lotus) tant’è che questo potentissimo e utilissimo tool è rimasto identico a com’è nelle release Domino di 10 anni fa, una accozzaglia di applet java che fa molto “nineties”
  4. In riferimento al punto 3, visto che IBM non riesce a convincere mezzo cliente a migrare il suo parco applicativo nfs alle nuove e potenti tecnologie introdotte con la release 8 di Notes/Domino (Xpages tanto per dirne una), quale miglior case del rifacimento di un pezzo fondamentale dello stesso prodotto per mostrare le potenzialità di queste tecnologie?
  5. Dove diavolo è finito il motto “MobileFirst” razza di ipocriti?

Shame on you Big Blue…

« Post precedenti | Post successivi »