Archive

Archive for the ‘Informatica’ Category

Lazyness

13 Marzo 2009 - 10:53

C’e’ stata una migrazione qualche notte fa per $GRANDECLIENTE. Fortunatamente io non vi ho fatto parte, se no avrei dovuto passare la notte in ufficio.

Uno step previsto per la migrazione consisteva nel disattivare tutti i check nagios della vecchia release ceh girava su una 20ina di server. La CGI Nagios e’ notoriamente uno schifo. Non c’e’ nessuna funzionalita’ tipo “select all” -> click. Cosi’ quei geni si sono messi a cliccare come pazzi, spendendo UN’ORA.

Ora, per me tu puoi fare quello che vuoi, ma siccome non si sa mai che in un futuro prossimo io debba essere al posto loro, ho rimediato con l’ennesimo script.

Fossi io avrei preferito spendere un’ora a scrivermi uno script che non mi avrebbe fatto perdere un’ora ogni volta che avessi dovuto fare una cosa del genere. E cosi’ ho fatto ieri sera dopo cena, non avendo un cazzo di molto interessante da fare.

Lo script e’ qui.

/home/pallotron/bin/nagios_extcmd.sh <-n | -N | -p | -P | -C | -c> host service_description <cmdfile_path>
/home/pallotron/bin/nagios_extcmd.sh -h
 
-n disable notification
-N enable notification
 
-p disable passive check
-P enable passive check
 
-c disable check
-C enable check

Lo script scrive qualcosa nella pipe che il daemon Nagios piazza nel file system.

Ho preso la lista dei comandi da qui.

Avrete bisogno di editarlo e cambiare il path della pipe in base al vostro sistema. Poi sbizzarrirvi con un robe del tipo:

for i in web01de web02de web03de web04de
do
   nagios_extcmd.sh -n $i "SC Apache"
   nagios_extcmd.sh -p $i "SC Apache"
   nagios_extcmd.sh -c $i "SC Apache"
done

Popularity: 12% [?]

pallotron Informatica, Lavoro, Linux, Unix , , , ,

Io ti odio!

14 Febbraio 2009 - 11:19

Caro collega,

stavolta lo scrivo qui: ieri ti ho odiato, per l’ennesima volta!

Quando il nostro collega DBA indiano e’ venuto da me chiedendomi:

«Angelo, come faccio ad inserire una stringa “NAME” su un file “tmp.log” da 1 GB tra la quarta e la quinta colonna con VI/VIM?»

Tu hai sentito… ti sei voluto alzare… con quell’aria da saccente… *dovevi* intrometterti… il tuo istinto da “nerdone-primo-della-classe-so-tutto-io” ti ha fatto venire alla mia scrivania mentre io scrivevo il one-liner perl necessario alla magia, consigliandomi di poterlo fare cosi’ e coli’… con sed piuttosto che con awk, e blabla…

nerd

Non e’ stato sufficiente che ti dicessi di farti i cazzi tuoi… dovevi gareggiare… dovevi farti sputtanare… e dopo 2 minuti hai avuto anche la sfacciataggine di mandare una email al collega col subject “sed version”, scrivendo questa zozzeria:

$ cat tmp.log | sed 's/^\(\W*\w\+\W\+\w\+\W\+\W*\w\+\)/\1 fff/g'

Ma ti ho punito con la eleganza del Perl:

$ perl -lpne 's/^((\w+\W+){3})/$1NAME /;' tmp.log

Sei old! OLD! Mettitelo in testa. Guarda quella linea, e’ ILLEGGIBILE. Con tutte quelle sequenze di escape!

Peccato che il DBA abbia scelto il tuo sed. In questo mondo non c’e’ giustizia.

Popularity: 20% [?]

pallotron Informatica, Irlanda, Lamentazioni, Lavoro, Programmazione, Unix , , , , ,

Come ti estendo l’homebanking col Perl

31 Gennaio 2009 - 16:32

Ireland, 1 year.

Sono al giro di boa del primo anno. Non faro’ il solito post commemorativo del tipo “questo giorno un anno fa ero all’aeroporto ignaro del futuro”. Forse lo faro’ dopo. Accontentati di quello che avevo scritto un mese fa. Piuttosto festeggio con un bel rilascio su CPAN.org dei miei sforzi informatici delle ultime 2 settimane, per provare quanto sia sensato il fumetto di xkcd.com : cioe’ che abbia piu’ senso una settimana incasinando col Perl che 900 ore di corso universitario o 400 ore di compiti a casa :)

11th_grade

Cosi’, dopo 2 settimane di programmazione piu’ o meno autistica, ho rilasciato una prima release usabile: il modulo si chiama Finance::Bank::IE::PermanentTSB, e si aggiunge al namespace Finance::Bank, accanto ad altri moduli dello stesso tipo.

Il modulo permette di stampare da riga di comando il saldo di tutti i conti correnti bancari collegato all’homebanking di PermanentTSB.

pallotron@terminus ~ $ ptsb -b
Parsing configuration file...
 
You need a passphrase to unlock the secret key for
user: "Angelo Failla &lt;afailla@newbay.com&gt;"
2048-bit ELG-E key, ID F83D3FCA, created 2008-02-18 (main key ID B68B318D)
 
gpg: encrypted with 2048-bit ELG-E key, ID F83D3FCA, created 2008-02-18
      "Angelo Failla &lt;afailla@newbay.com&gt;"
 
Connecting...
 
-----------------------------------------------------------
|       Account name | Acc. # |     Balance |   Available |
-----------------------------------------------------------
| Switch Current A/C |   0220 |      135.35 |      235.35 |
|          Visa Card |   2667 |     -419.66 |       80.34 |
-----------------------------------------------------------

Ovviamente i dati dell’output sono taroccati :D
Lo script e’ anche in grado di stampare l’estratto conto basandosi su range temporale, regular expression (per matchare la description), e condizioni matematiche (tipo <300, >=2000, etc).

L’idea del modulo mi e’ venuta dopo che ho scoperto la potenza di WWW::Mechanize. E’ un modulo Perl che permette di automatizzare l’interazione con un sito web: gestisce la navigazione attraverso pagine, i click, la gestione delle form, il fill out delle form, etc. C’e’ qualche pazzo che l’ha usato per scriversi bot che tengono d’occhio aste di Ebay o che effettuano operazioni periodiche su Ogame (famoso gioco alla Warcraft, ma online; ci giocavo 2 anni fa, ma poi ne sono uscito pulito!).

Il miglior modo per imparare qualcosa quando programmi e’ di solito scrivere qualcosa che ti serva veramente. Cosi’ mi sono detto: «devo scrivere qualcosa che mi serva veramente e nel frattempo mi possa servire per imparare il modulo e rispolverare altre cose del Perl».

Noi sistemisti siamo pigri e non amiamo fare le stesse cose ripetutamente, e, dove possibile (quasi dovunque!), ci piace automatizzare :D
Se poi possiamo avere tool command line per fare le cose piu’ disparate sicuramente non disdegniamo.

Il sito di PermanentTSB e’ una chiavica, non fa grafici e istogrammi del conto, non salva/esporta gli estratti conto in file CSV, non tiene dati piu’ vecchi di 6 mesi! Un invito a nozze per rimediare a cio’ con WWW::Mechanize!

D’apprima ho iniziato scrivendo un modulo per familiarizare con le librerie, obiettivo: “inserire da command line, le ore lavorate nel sistema di time tracking aziendale”. Devo dire che lo script e’ stato molto apprezzto a lavoro visto che per inserire anche un solo record nella interfaccia aziendale si devono cliccare milioni di volte, e il sistema non e’ a prova di errore!

Queste due settimane mi sono servite a:

  • rispolverare Perl;
  • imparare la programmazione dei package/moduli;
  • capire come funziona la comunita’ CPAN;
  • imparare WWW::Mechanize;
  • imparare come funzionano le test unit in Perl usando Test::More e Test::MockObject;
  • imparare come funziona git, il sistema di versioning creato da Linus Torvalds usato dalla comunita’ di sviluppo del Kernel Linux. Veramente fico per velocita’ e completezza di opzioni e feature. Meglio di subversion/cvs.

In piu’ e’ servito a coprire anche un po’ di spazi vuoti che ultimamente sto avendo a lavoro. :P

Alla prossima!

Popularity: 16% [?]

pallotron Informatica, Linux, Programmazione, Unix , , , ,

Creative Commons, questa sconosciuta…

8 Dicembre 2008 - 12:31

Questo articolo e’ per coloro i quali non conoscono la licenza in questione, o credono che la licenza in questione sia una cosa che solo i polli deficienti usano, e credono quindi di poterne approfittare.

Ecco un sunto, per gli impazienti che non riescono ad arrivare alle fine articolo perche’ ormai completamente assuefatti da facebook:

  • Creative Commons non vuol dire che l’autore dell’opera e’ un pollo che svende le cose a gratis.
  • Non e’ vero che se io editore voglio usare una opera copera da licenza Creative Commons, ad es. una foto, e mando una email, posso utilizzarla se l’autore non risponde entro 3 giorni.
  • Creative Commons non vuol dire gratis.

Ok, non sono riuscito a mettere tutto su una riga in puro facebook style… se siete arrivati fino a qui potete tornare alle vostre status line. Gli altri continuino a leggere pure.

Io non sono un gran fotografo, diciamo che mi diletto.

Uso flickr per mettere online le mie foto solo perche’ lo ritengo molto valido come sistema (tecnologicamente parlando), le potenzialita’ del mezzo sono tante, ma la gente che ci sta non e’ un granche’, e’ tutto un pullulare di stemmi stemmini, super gif animate, di gente che pubblica solo perche’ vuole stare su explorer etc. Non c’e’ molto spazio per discussioni edificanti sulla fotografia, tecniche, vera autocritica etc.

Su flickr puoi decidere la licenza da applicare di default alle tue foto. Ci sono varie opzioni. Dal classico stretto copyright alla Creative Commons. Io ho scelto quest’ultima per vari motivi: etici e culturali soprattutto.

Comunque, pubblicando le foto li, ogni tanto mi capita di ricevere delle richiesta da parte di editori piu’ o meno professionali/professionisti, che chiedono di utilizzare le mie foto in siti, giornali non molto famosi; spesso si tratta di eventi a scopo no-profit, altre volte no.

Spesso

Oggi ho ricevuto una email:

Dear User;

My name is X and I am the photo editor of Y, a monthly magazine distributed in the Italian
airports. We are now selecting the pictures to be published in the next issue and we would like to use one of yours picture about “baccalà”.
[ndr: lui e' il photo editor pero' pare che non capisce un cazzo di licenze. tra parentesi la foto non e' che sia una delle mie preferite :D ]

We will obviously attribute the photo to you, (give me your name for the credit).
If we choose one of your photos, I’ll send you the pdf file of the article.
[ndr: e ci mancava che non mi citavate]

You are kindly requested to contact me as soon as possible in order to give me the permission to publish your photograph.
[ndr: minchia, c'ha anche fretta!!!!! non ha tempo da perdere lui!]

Because your photo has been licensed under a Creative Commons License, if you do not reply to this email in three days, I would assume your approval as granted and I ‘d list the photo credit as you user
[ndr: cosaaaaaaaa?! se non rispondo entro 3 giorni io do' il mio consenso perche' la Creative Commons dice cosi'!??!?!]

Sincerely

Io risposi a questo signore poco fa:

Well, as my photo has been licensed under a creative commons license and your publication is commercial, you cannot publish without my approval even if i dint reply in 3 days!!! :)

look at the license text, it’s very straightforward:

http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en
[ndr: mi pare ovvio che la rivista in questione sia a scopo di lucro, non importa se distribuita gratuitamente! questi signori si fanno pagare gli spazi pubblicitari!]

it says:

“Noncommercial. You may not use this work for commercial purposes.”

the license also says this:

# Any of the above conditions can be waived if you get permission from
# the copyright holder.

[ndr: quindi la condizione di cui sopra puo' essere infranta solo se l'autore approva, cosa che avrei anche potuto fare se il tipo non si fosse mostrato cosi' cretino ed arrogante.]

so if you don’t get permission you cannot publish! anyway, i only grant permission to use my pic for free only to non-commercial association and organizations… the others has to pay a simbolic charge of 40 euros.
[ndr: 40 euro, bruscoletti per un magazine.]

Regards

Il tipo mi ha risposto poco fa con un bel “Ok. no problem. thanks a lot and best regards”. Io gli ho risposto “good luck… i’m sure you’ll “find” some pictures for free :P

Beata ignoranza! La gente non ha idea di cosa sia il diritto d’autore classico, figuriamoci delle nuove innovazioni in tema…

Maggiori info sulla creative commons:

Popularity: 21% [?]

pallotron Diritti digitali, Fotografia, Stampa , ,

Meno male che e’ arrivato il week end.

27 Settembre 2008 - 15:58

Dublin, 8 months so far

Meno male che e’ arrivato il week end! Ho appena finito un pranzo luculliano a base di pesce.

4 Spigole a 4 euro ciascuna in un negozio di pescie vicino smithfield. 10 minuti da casa mia a piedi.
Antipasto a base di patate (siamo in Irlanda dopo tutto) condite con rosmarino, peperoncino e sale (un goccio di vino per dare sapore). Pesce cotto al cartoccio (al forno). Pane comprato da Fresh a Smithfield (un po’ meglio del solito pane cuisine de France).

Caffe’ con pallina di gelato vaniglia e rum (ricetta di Jose’).

Un pasto rifocillante dopo la fatica della pulizia del backyard dietro casa, che adesso e’ un po’ piu’ vivibile. :)

Per quanto riguarda la situazione lavorativa ultimamente sono un po’ cambiate alcune cose. In azienda e’ successo un piccolo cataclisma, 12 licenziati in tronco: leggere qui e qui).

Quando le acque si sono calmate ho preso il mio vicino di scrivania e gli ho detto: “Welcome to $azienda level 2!”. :)

No. Non c’entra niente la morte della Tigre Celtica e i discorsi economici sulla crisi in Irlanda, semplicemente l’azienda ha preso dei provvedimenti in merito a certe scelte fatte in passato. Di sicuro e’ la prima volta in vita mia, da quando lavoro, che vedo licenziare persino gente del calibro di Project Managers, Product Managers, HR Director…

In quei giorni ho ricevuto diverse telefonate da parte di recruiter vari che mi chiedevano: “Sei ancora in Newbay?”. I recruiter qui sono degli sciacalli. Sapevano gia’ tutto della situazione e saranno gia’ a caccia dei miei ex colleghi a spasso. Questa e’ anche la prova che il mercato IT in Dublino ancora tira per fortuna.

Qualche giorno dopo il mio capo manda questa email:

Need to do a one-to-one with each of you lads. Don’t panic – I’ll grab you one at a time over the next hour for a few mins.

“Don’t panic” ho pensato! Non sei tu il prossimo! Ed infatti era proprio cosi’. La chiaccherata era solo per tranquillizzarci che tutto va bene e non dobbiamo preoccuparci.

Nello stesso giorno mi e’ arrivata la conferma che il mio periodo di probation si e’ concluso con successo e che sono stato confermato nel mio ruolo permanent.

Il giorno dopo apprendo di essere stato rimosso dal progetto a cui stavo lavorando nel bel mezzo del system integration (progetto iniziato da zero, rackaggio, cablaggio, deployment del mondo, system integration, etc etc).

La rimozione e’ stata motivata dal fatto che alcuni sysadmin in USA hanno dato le dimissioni ed ero stato spostato al gruppo di USA ufficialmente per “dare una mano”. Quella sera partecipo ad una confcall in america in cui mi assegnano la responsabilita’ di gestire i lab di dublino che servono da palestra per il testing di alcuni prodotti che sono in sviluppo a dub ma che vengono messi in produzione in USA.

Insomma il tappabuchi…

Il risultato e’ che monto alle 10.30 e smonto alle 19.00 per avere piu’ tempo che si interseca con l’ufficio di Seattle.

Le attivita’ sono principalmente:

  • supporto a coder e tester a Dublino
  • deployment delle release sul lab dublinese e su quello americano
  • tappamento di buchi vari a caso
  • pare che fra un po’ mi assegneranno una bella gatta da pelare, ovvero tenere d’occhio gli allarmi nagios di un sistema di produzione e fixare i problemi che si riscontrano quando il team americano e’ a letto…

I progetti a cui sto partecipando lamentano una mancanza di documentazione paurosa e sono costretto a muovermi fra i server solo perche’ ho gia’ una esperienza pregressa con i prodotti aziendali.

Alla confcall mi hanno affidato un case da risolvere riguardo al problema lamnentato da $grandeoperatoretelefonicoamericano: alcuni telefonini non riescono ad accedere alle funzionalita’ WAP di un nostro prodotto… mi sono messo in contatto con un mio collega operations in USA che mi ha spiegato la situazione… mi sono installato un paio di plugin per firefox (modify-headers, e wmlbrowser e firebug) per simulare gli User-Agent dei telefonini e altri headers mandati da essi.

Mi sono messo in contatto con uno sviluppatore che mi ha aiutato a capire dove era il problema. Ho fixato una regular expression che pareva non essere molto corretta e abbiamo fatto un passo avanti. Con Firefox non riscontravo piu’ problemi di accesso ma a quanto pare alcuni telefonini reali hanno ancora problemi. Allora ho chiesto al mio collega in USA di farmi avere dei tcpdump e i log dell’applicazione via email. Io non posso ottenerli da solo perche’ non ho accesso in produzione (e francamente me ne tengo alla larga il piu’ possibile) e pare che i telefonini di test NON accedino al lab… Un giorno di mattina mi alzo e leggo questa email:

Angelo, you are a member of the US team now,  try not to just pass the issues like this.
For example try to have $american_colleague on the phone trying the wap request, while you collect the tcpdump.  Please try to stay involved, and continue to push this forward.
Don’t wait for it to come back to you.
Does that make sense?

Ho pensato: ma questo e’ impazzito? Io non sto cercando di scaricare il barile a nessuno! Sto solo cercando di ottenere piu’ info, visto che non posso ottenerle da solo perche’ mi serve avere in mano un telefonino vero lo chiedo a chi si trova li. Con gli orari che ci sono tra Dublino e Seattle devo veramente svegliare la gente per avere una minchiata di tcpdump mentre il telefonino cerca di accedere? Assurdo! Ma che lo facciano quando leggono la email e me lo mandino! Mi pare piu’ comodo per tutti! E poi come faccio a fare da solo se non ho il fottuto telefono nelle mei mani?

Fatto sta’ che di fretta e furia sono andato a lavoro e mi sono lamentato col mio manager. Ma come! Io cerco di aiutare e la gente mi risponde cosi’? Con questo tono! Ovviamente il mio capo ha detto che ho ragione ma che comunque gli avrei dovuto rispondere in maniera coridale. Cosa che ho fatto. Non c’era motivo di aggredirmi in quel modo. Sicuramente il tipo sara’ stressato di suoi (infatti e’ di pochi giorni dopo la notizia che il lancio in produzione di una nuova release e’ andata male e sono stati costretti ad effettuare il rollback).

Ad ogni modo quel giorno gli rispondo dicendo che la sua precedente email mi e’ sembrata un po’ con toni accusatori ma che sicuramente non era cosi’, magari solo stress. Gli faccio presente che per lavorare al problema ho bisogno di telefonini reali e non posso procedere solo con Firefox. E gli chiedo se posso svegliare qualcuno la notte… :P

Qualche giorno dopo ricevo questa email (mandata a tutta la ml aziendale americana degli operations engineer):

Where are we with WAP  ?   $bigamericanmobilecompany is ready to shoot someone (ndr: chissa’ chi e’!), there has been little progress. There are still 10 phones that can see the index of albums but once an album link is selected they get 404.

Io ed il mio collega gli abbiamo risposto contemporaneamente ed il concetto delle mail era qualcosa tipo: “Guarda che stiamo aspettando che $grandeoperatore ci metta in condizione di lavorare!”.

E mi sento rispondere:

if we are waiting on $bigamericancompany I need to know so I can push back, they right now are not aware of that.

Ma come? Ti serve saperlo! MA TUTTE LE CAZZO DI EMAIL CHE MANDO METTENDOTI IN CC LE LEGGI?

Il buon senso suggerisce che per risolvere il problema bisogna riprodurlo nel lab di test e fare le proprie prove con calma senza toccare la produzione, lavorando insieme a coder e tester, fino a quando non si viene a capo della soluzione. Poi i coder rilasciano la nuvoa release che fixa il baco, e la si deploya in produzione.

Il problema e’ che non solo $grandeoperatoremobileamericano non ci ha fornito alcun telefonino per riprodurre il problema, per giunta ci ha detto che non c’e’ modo di raggiungere (meglio dire che a loro non va’ di configurare le cose…) il lab dai telefonini con le sim di test perche’ i WAP gateway non sono configurati per redirigere certi MSISDN sul laboratorio. E che ci dobbiamo arrangiare!

Abbiamo chiesto di avere un paio di SIM/MSISDN rediretti dal WAP gw all’ambiente di produzione. Non penso sia impossibile!

E’ Incredibile! UN IMMENSO OPERATORE TUTTI SPACCHI E PIRITI CHE NON E’ IN GRADO DI CONFIGURARE QUATTRO MINCHIATE WAP PER RAGGIUNGERE UN FOTTUTO LAB.

Ho un bug da risolvere e non posso lavorare per riprodurlo nel laboratorio come e’ giusto che sia ma mi devo arrangiare! Leggete:

We will not be able to use this firewall for any excuse, and we will need to make progress with the system we have.  Please try to think up some ways we can get information to the developers that can code a fix. (ndr: si parla di firewall perche’ nel frattempo qualcuno in $grandeoperatore proponeva qualche magica regola non so dove per permetterci di fare arrivare i telefonini al lab)

Mah. Mi faccio venire una idea… mmmmm…… mmmmmmmmmm.mmmmmmm……. mungle mungle…….. L’unica idea che mi viene e’ quella di lavorare in produzione visto che i tel possono arrivare solo li. Ma sono pazzi? Ma sono seri? Ma dico ma questi i test di accettazione in quale ambiente li hanno fatti? Ma soprattutto li hanno fatti?

Il progetto a cui lavoravo prima e’ piu’ serio. Solo l’ambiente di test e’ una copia ESATTA di quello di produzione anche dal punto di vista dell’integrazione.

Comunque non sono molto convinto della situazione attuale. Odio fare il tappabuchi degli altri, specie quando mi trovo a subire le conseguenze di mala documentazione e poca condivisione delle informazioni. Sabato scorso ho lavorato e tutt’ora sto appresso alla email aziendale…

Cambiamo discorso: continua la ricerca del/della nuovo/a coinquilino/a.
Ieri dovevamo vedere 4/5 persone ma 3 ci hanno dato buca e abbiamo visto solo 2.
Una ragazza francese, molto simpatica, parla inglese perfetto (manco ci si rende conto dell’accento francese), vissuto tanti anni a Londra. E un ragazzo francese che e’ stato immediatamente scartato:

  • e’ venuto in giacca e cravatta (quando e’ entrato io e jose’ ci siamo visti in faccia e ci siamo subito intesi)
  • e’ qui da una settimana e lavora (ma non che mi fidi piu’ di tanto)
  • attualmente e’ ospite a casa di alcuni amici che, a sua detta, lo vogliono buttare fuori (giustamente dico io!)
  • la prima domanda che ci ha fatto e’ stata se puo’ fare party e se puo’ portare persone a dormire!
  • non cucina COMPLETAMENTE.

Oggi pomeriggio aspettiamo altre 5 persone anche se devo dire la tipa di ieri ci ha fatto una buona impressione. Vedremo.

Adesso vi saluto. Alla prossima.

Popularity: 17% [?]

pallotron Informatica, Irlanda, Lamentazioni, Lavoro, casa , , , , ,