<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vita di un sys-admin &#187; cpan</title>
	<atom:link href="http://blog.angelofailla.com/tag/cpan/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.angelofailla.com</link>
	<description>Storie, esperienze e pensieri da Dublino.</description>
	<lastBuildDate>Sun, 14 Aug 2011 22:11:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Come ti estendo l&#8217;homebanking col Perl</title>
		<link>http://blog.angelofailla.com/2009/01/31/come-ti-estendo-lhomebanking-col-perl/</link>
		<comments>http://blog.angelofailla.com/2009/01/31/come-ti-estendo-lhomebanking-col-perl/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 15:32:21 +0000</pubDate>
		<dc:creator>pallotron</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[cpan]]></category>
		<category><![CDATA[moduli]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[www::mechanize]]></category>

		<guid isPermaLink="false">http://blog.angelofailla.com/?p=1296</guid>
		<description><![CDATA[Ireland, 1 year. Sono al giro di boa del primo anno. Non faro&#8217; il solito post commemorativo del tipo &#8220;questo giorno un anno fa ero all&#8217;aeroporto ignaro del futuro&#8221;. Forse lo faro&#8217; dopo. Accontentati di quello che avevo scritto un mese fa. Piuttosto festeggio con un bel rilascio su CPAN.org dei miei sforzi informatici delle [...]]]></description>
			<content:encoded><![CDATA[<p>Ireland, <strong>1 year.</strong></p>
<p><strong>Sono al giro di boa del primo anno.</strong> Non faro&#8217; il solito post commemorativo del tipo &#8220;questo giorno un anno fa ero all&#8217;aeroporto ignaro del futuro&#8221;. Forse lo faro&#8217; dopo. Accontentati di quello che avevo scritto <a href="2008/11/25/riflessioni-a-ruota-libera-senza-uno-scopo-particolare/">un mese fa.</a> Piuttosto festeggio con un bel rilascio su <a href="http://www.cpan.org">CPAN.org</a> dei miei sforzi informatici delle ultime 2 settimane, per provare quanto sia sensato il fumetto di <a href="http://xkcd.com/519/">xkcd.com</a> : cioe&#8217; che <strong>abbia piu&#8217; senso una settimana incasinando col <a href="http://it.wikipedia.org/wiki/Perl">Perl</a> che 900 ore di corso universitario o 400 ore di compiti a casa <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
<p><a href="http://xkcd.com/519/"><img class="alignnone size-full wp-image-1297" title="11th_grade" src="http://blog.angelofailla.com/wp-content/uploads/2009/01/11th_grade.png" alt="11th_grade" width="535" height="333" /></a></p>
<p>Cosi&#8217;, dopo 2 settimane di programmazione piu&#8217; o meno autistica, ho rilasciato una prima release usabile: il modulo si chiama <a href="http://search.cpan.org/~pallotron/Finance-Bank-IE-PermanentTSB/">Finance::Bank::IE::PermanentTSB</a>, e si aggiunge al namespace Finance::Bank, accanto ad altri moduli dello stesso tipo.</p>
<p>Il modulo permette di stampare da riga di comando il saldo di tutti i conti correnti bancari collegato all&#8217;homebanking di PermanentTSB.</p>
<pre>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 |
-----------------------------------------------------------</pre>
<p>Ovviamente i dati dell&#8217;output sono taroccati <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
Lo script e&#8217; anche in grado di stampare l&#8217;estratto conto basandosi su range temporale, regular expression (per matchare la description), e condizioni matematiche (tipo &lt;300, &gt;=2000, etc).</p>
<p>L&#8217;idea del modulo mi e&#8217; venuta dopo che ho scoperto <strong>la potenza di <a href="http://search.cpan.org/~petdance/WWW-Mechanize-1.54/lib/WWW/Mechanize.pm">WWW::Mechanize.</a></strong> E&#8217; un modulo Perl che permette di <strong>automatizzare l&#8217;interazione con un sito web</strong>: gestisce la navigazione attraverso pagine, i click, la gestione delle form, il fill out delle form, etc. C&#8217;e&#8217;<strong> qualche pazzo che l&#8217;ha usato per scriversi bot che tengono d&#8217;occhio aste di Ebay</strong> o che effettuano <strong>operazioni periodiche su Ogame</strong> (famoso gioco alla Warcraft, ma online; ci giocavo 2 anni fa, ma poi ne sono uscito pulito!).</p>
<p>Il miglior modo per imparare qualcosa quando programmi e&#8217; di solito scrivere qualcosa che ti serva veramente. Cosi&#8217; mi sono detto: <em>«devo scrivere qualcosa che mi serva veramente e nel frattempo mi possa servire per imparare il modulo e rispolverare altre cose del Perl».</em></p>
<p><strong>Noi sistemisti siamo pigri e non amiamo fare le stesse cose ripetutamente</strong>, e, dove possibile (quasi dovunque!), ci piace automatizzare <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
Se poi possiamo avere tool command line per fare le cose piu&#8217; disparate sicuramente non disdegniamo.</p>
<p>Il sito di PermanentTSB e&#8217; una chiavica, non fa grafici e istogrammi del conto, non salva/esporta gli estratti conto in file CSV, non tiene dati piu&#8217; vecchi di 6 mesi! Un invito a nozze per rimediare a cio&#8217; con WWW::Mechanize!</p>
<p>D&#8217;apprima ho iniziato scrivendo un modulo per familiarizare con le librerie, obiettivo: &#8220;inserire da command line, le ore lavorate nel sistema di time tracking aziendale&#8221;. Devo dire che lo script e&#8217; 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&#8217; a prova di errore!</p>
<p>Queste due settimane mi sono servite a:</p>
<ul>
<li>rispolverare Perl;</li>
<li>imparare la programmazione dei package/moduli;</li>
<li>capire come funziona la comunita&#8217; CPAN;</li>
<li>imparare WWW::Mechanize;</li>
<li>imparare come funzionano le test unit in Perl usando <a href="http://search.cpan.org/~mschwern/Test-Simple/lib/Test/More.pm">Test::More</a> e <a href="http://search.cpan.org/~chromatic/Test-MockObject">Test::MockObject</a>;</li>
<li>imparare come funziona <a href="http://git-scm.com/">git</a>, il sistema di versioning creato da <a href="http://it.wikipedia.org/wiki/Linus_Torvalds">Linus Torvalds</a> usato dalla comunita&#8217; di sviluppo del <a href="http://it.wikipedia.org/wiki/Linux">Kernel Linux.</a> Veramente fico per velocita&#8217; e completezza di opzioni e feature. Meglio di subversion/cvs.</li>
</ul>
<p>In piu&#8217; e&#8217; servito a coprire anche un po&#8217; di spazi vuoti che ultimamente sto avendo a lavoro. <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Alla prossima!</p>
<img src="http://blog.angelofailla.com/?ak_action=api_record_view&id=1296&type=feed" alt="" /><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.angelofailla.com%2F2009%2F01%2F31%2Fcome-ti-estendo-lhomebanking-col-perl%2F&amp;title=Come%20ti%20estendo%20l%26%238217%3Bhomebanking%20col%20Perl" id="wpa2a_2"><img src="http://blog.angelofailla.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.angelofailla.com/2009/01/31/come-ti-estendo-lhomebanking-col-perl/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>RSS-Bot</title>
		<link>http://blog.angelofailla.com/2011/01/20/rss-bot/</link>
		<comments>http://blog.angelofailla.com/2011/01/20/rss-bot/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 23:06:22 +0000</pubDate>
		<dc:creator>pallotron</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[bot]]></category>
		<category><![CDATA[cpan]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://blog.angelofailla.com/?p=2231</guid>
		<description><![CDATA[Ho scritto questa cazzata un po&#8217; di tempo fa a lavoro nel tentativo (non riuscito) di migliorare un po&#8217; di comunicazione interna intra-dipartimentale e rendere l&#8217;azienda un posto piu&#8217; geek dove lavorare. Serviva un luogo dove tutti potessero stare per lavorare insieme a delle robe, con un bot che stampasse nei diversi canali ticket di [...]]]></description>
			<content:encoded><![CDATA[<p>Ho scritto questa cazzata un po&#8217; di tempo fa a lavoro nel tentativo (non riuscito) di migliorare un po&#8217; di comunicazione interna intra-dipartimentale e rendere l&#8217;azienda un posto piu&#8217; geek dove lavorare. Serviva un luogo dove tutti potessero stare per lavorare insieme a delle robe, con un bot che stampasse nei diversi canali ticket di nagios, jira e altre robe basate su RSS feed. Non doveva essere ne&#8217; Skype, ne&#8217; qualcosa XMPP based (perche&#8217; le stanze in XMPP sono un casino da creare). Ho proposto il classico server IRC + questo bot. Cosa c&#8217;e&#8217; di meglio di IRC? <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  <strong>La proposta non e&#8217; stata recepita ovviamente&#8230;</strong></p>
<p>Magari a qualcuno serve e/o puo&#8217; prenderci spunto per fare qualcosa di migliore o diverso ma sempre basato su irc, ho messu su un po&#8217; di codice (non che sia poi il massimo) sul mio <a href="https://github.com/pallotron/rssbot">GitHUB a questa URL</a>.</p>
<p>Il bot legge un file YAML dove si possono specificare una serie di feed rss che poi possono essere associati a piu&#8217; canali, in modo tale che quando qualcosa di nuovo viene postato su un feed il bot printi un summary su ogni canale a cui e&#8217; associato.</p>
<p>Il codice e&#8217; molto basic, giusto un proof of concept che ho messo su&#8217;, e non vuole essere niente di performante, infatti dopo un po&#8217; di feed le prestazioni fanno un po&#8217; schifo <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Immagino che per tanti feed tocchi passare ai thread. Magari glieli aggiungo, oppure magari provo a farlo in Python visto che sto imparando&#8230;</p>
<p>Uso un CPAN module chiamato <a href="http://search.cpan.org/~hinrik/Bot-BasicBot-0.84/lib/Bot/BasicBot.pm">Bot::BasicBot</a>, basta solo estendere la sua classe e implementare il proprio codice per avere qualcosa di basic.</p>
<p>Alla prossima</p>
<img src="http://blog.angelofailla.com/?ak_action=api_record_view&id=2231&type=feed" alt="" /><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.angelofailla.com%2F2011%2F01%2F20%2Frss-bot%2F&amp;title=RSS-Bot" id="wpa2a_4"><img src="http://blog.angelofailla.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.angelofailla.com/2011/01/20/rss-bot/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

