<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Confessioni di un consulente IT</title>
	<atom:link href="http://licensetransfer.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://licensetransfer.wordpress.com</link>
	<description>Gli sfoghi dello stress di una delle professioni più difficili del mondo</description>
	<lastBuildDate>Sun, 29 Nov 2009 11:23:14 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>it</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='licensetransfer.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/248add9ba1f4e868b55b98f367a18829?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Confessioni di un consulente IT</title>
		<link>http://licensetransfer.wordpress.com</link>
	</image>
			<item>
		<title>Sitecom router WL-341</title>
		<link>http://licensetransfer.wordpress.com/2009/11/28/sitecom-router-wl-341/</link>
		<comments>http://licensetransfer.wordpress.com/2009/11/28/sitecom-router-wl-341/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 00:07:54 +0000</pubDate>
		<dc:creator>pigreco314</dc:creator>
				<category><![CDATA[Geek corner]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[adsl]]></category>
		<category><![CDATA[fastweb]]></category>
		<category><![CDATA[qik]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[sitecom]]></category>
		<category><![CDATA[wifi]]></category>
		<category><![CDATA[wireless]]></category>
		<category><![CDATA[wl-341]]></category>

		<guid isPermaLink="false">http://licensetransfer.wordpress.com/?p=562</guid>
		<description><![CDATA[La nuova linea ADSL aziendale per casa è fornita da Fastweb. Non posso lamentarmi delle prestazioni che Speedtest.net quantifica in un apprezzabile 10.5Mbit/s in download e uno 0.87Mbit/s in upload.
Il modem di Fastweb ha il wireless integrato (configurabile dalla propria home page nell&#8217;Area Clienti del sito) e assegna un massimo di 4 indirizzi IP alla [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=562&subd=licensetransfer&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div class="wp-caption alignright" style="width: 410px"><a href="http://www.sitecom.com/Wireless-Router-300N-X2/WL-341/p/703"><img title="Sitecom WL-341 300N X2" src="http://www.sitecom.com/image/productimage/3979/WL-341-Product.jpg" alt="" width="400" height="300" /></a><p class="wp-caption-text">Sitecom WL-341 300N X2</p></div>
<p>La nuova linea ADSL aziendale per casa è fornita da Fastweb. Non posso lamentarmi delle prestazioni che <a href="http://www.speedtest.net/" target="_blank">Speedtest.net</a> quantifica in un apprezzabile 10.5Mbit/s in download e uno 0.87Mbit/s in upload.</p>
<p>Il modem di Fastweb ha il wireless integrato (configurabile dalla propria home page nell&#8217;Area Clienti del sito) e assegna un massimo di 4 indirizzi IP alla vostra rete locale. Il giorno in cui erano collegati a internet entrambi i PC di casa, una virtual machine, il cellulare per il broadcasting live di <a href="http://qik.com" target="_blank">Qik </a>e l&#8217;iPod Touch il router ha cominciato a singhiozzare e a dare errori di indirizzi IP duplicati sulla rete. Tra l&#8217;altro il wireless di Fastweb non è il massimo per stabilità e propagazione del segnale.</p>
<p>Per ovviare al problema ho deciso di dotarmi di un router ADSL con opzione wireless e la mia scelta è caduta sul piccolo <a href="//www.sitecom.com/Wireless-Router-300N-X2/WL-341/p/703">Sitecom WL-341 300N X2</a>.</p>
<p>Il router funge da DHCP server e dispensa tutti gli indirizzi IP che servono alla vostra rete locale.</p>
<p>Questo giocattolino dispone inoltre di una funzione utilissima: il <a href="http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol" target="_blank"><strong>DHCP statico</strong></a>, ossia la possibilità di assegnare a uno specifico host della rete sempre lo stesso indirizzo IP, cosa che ho sfruttato per la stampante/fax/scanner di casa HP Officejet 6310. In questo modo abbiamo eliminato la scomodissima connessione USB che si inceppava continuamente su uno dei laptop e possiamo ora stampare o scansionare allegramente via cavo o wireless.</p>
<p>La configurazione del router è molto semplice e avviene tramite browser, senza necessità di assegnare indirizzi temporanei al PC da cui la effettuate: puntate su http://192.168.0.1 , inserite username e password e il gioco è fatto.</p>
<p>Il wifi supporta le modalità 802.11 B/G/N. L&#8217;unico dispositivo che era in grado di collegarsi al router con qualunque modalità è l&#8217;iPod Touch, non il laptop Dell né il cellulare Nokia E65. Dopo aver impostato la modalità B+G tutto è filato liscio.</p>
<p>L&#8217;autenticazione supporta WEP, WPA-TKIP, WPA-AES e Mixed (scelta AES altrimenti non c&#8217;era verso di autenticarsi dal Nokia). Disponibile ovviamente anche il filtro all&#8217;accesso basato su indirizzo MAC e un firewall integrato.</p>
<p>Possibile anche programmare lo spegnimento e l&#8217;accensione automatici giornalieri del dispositivo.</p>
<p>La potenza del segnale è buona in tutta la casa (100mq su un piano).</p>
<p>Insomma, un bel prodotto con un ottimo rapporto qualità/prezzo (49 EUR)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/licensetransfer.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/licensetransfer.wordpress.com/562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/licensetransfer.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/licensetransfer.wordpress.com/562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/licensetransfer.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/licensetransfer.wordpress.com/562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/licensetransfer.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/licensetransfer.wordpress.com/562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/licensetransfer.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/licensetransfer.wordpress.com/562/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=562&subd=licensetransfer&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://licensetransfer.wordpress.com/2009/11/28/sitecom-router-wl-341/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b4f888e50cc340b4432a4b83e5dd7a68?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pigreco314</media:title>
		</media:content>

		<media:content url="http://www.sitecom.com/image/productimage/3979/WL-341-Product.jpg" medium="image">
			<media:title type="html">Sitecom WL-341 300N X2</media:title>
		</media:content>
	</item>
		<item>
		<title>Cose che non vanno #1</title>
		<link>http://licensetransfer.wordpress.com/2009/10/29/cose-che-non-vanno-1/</link>
		<comments>http://licensetransfer.wordpress.com/2009/10/29/cose-che-non-vanno-1/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 22:20:59 +0000</pubDate>
		<dc:creator>pigreco314</dc:creator>
				<category><![CDATA[Azienda]]></category>
		<category><![CDATA[C.C.N.V]]></category>
		<category><![CDATA[HR]]></category>
		<category><![CDATA[goal settings]]></category>
		<category><![CDATA[obiettivi]]></category>

		<guid isPermaLink="false">http://licensetransfer.wordpress.com/?p=560</guid>
		<description><![CDATA[Inauguriamo una nuova rubrica perché la lista delle cose che non vanno a tre mesi dalla fusione si allunga e non si capisce se qualcuno sta lavorando per risolverle.
Dopo aver chiesto ripetutamente al top management cosa intendessero fare per implementare un sistema di obiettivi di business a un piano bonus, mi è stato comunicato oggi [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=560&subd=licensetransfer&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Inauguriamo una nuova rubrica perché la lista delle cose che non vanno a tre mesi dalla fusione si allunga e non si capisce se qualcuno sta lavorando per risolverle.</p>
<p>Dopo aver chiesto ripetutamente al top management cosa intendessero fare per implementare un sistema di obiettivi di business a un piano bonus, mi è stato comunicato oggi che entro venerdi (tra due giorni) devo escogitare un piano di obiettivi per il mio team (5 persone di cui 4 localizzate negli USA, giusto per rendere il compito ancora più facile). Un processo al quale nella precedente azienda si dedicavano almeno 4 settimane.</p>
<p>Quello che più inquieta però è le sensazione che tra i grandi capi regni sovrana la confusione.</p>
<p>Ma come, l&#8217;ex General Manager del business, oggi Chief Operating Officer della nuova società, in una conference call di due settimane fa ci  assicura che si sta occupando personalmente dell&#8217;implementazione di un sistema di obiettivi e bonus e alla fine sono io che mi devo sbattere per fare tutto in due giorni?</p>
<p>Sorvolo sul fatto che i Professional Services hanno definito i propri obiettivi circa un mese fa e le Vendite probabilmente ancora prima. Nessuna novità ancora riguardo quel 18% che costituiva la parte variabile del mio stipendio.</p>
<p>Non ci siamo, non ci siamo proprio.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/licensetransfer.wordpress.com/560/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/licensetransfer.wordpress.com/560/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/licensetransfer.wordpress.com/560/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/licensetransfer.wordpress.com/560/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/licensetransfer.wordpress.com/560/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/licensetransfer.wordpress.com/560/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/licensetransfer.wordpress.com/560/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/licensetransfer.wordpress.com/560/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/licensetransfer.wordpress.com/560/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/licensetransfer.wordpress.com/560/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=560&subd=licensetransfer&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://licensetransfer.wordpress.com/2009/10/29/cose-che-non-vanno-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b4f888e50cc340b4432a4b83e5dd7a68?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pigreco314</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle oui.exe crash</title>
		<link>http://licensetransfer.wordpress.com/2009/10/24/oracle-oui-exe-crash/</link>
		<comments>http://licensetransfer.wordpress.com/2009/10/24/oracle-oui-exe-crash/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 19:55:05 +0000</pubDate>
		<dc:creator>pigreco314</dc:creator>
				<category><![CDATA[Geek corner]]></category>
		<category><![CDATA[oracle10R2 oui 10.2.0.1.0 crash]]></category>

		<guid isPermaLink="false">http://licensetransfer.wordpress.com/?p=556</guid>
		<description><![CDATA[Che c&#8217;è di meglio durante un fine settimana che installare Oracle 10g R2 10.2.0.1.0 su una macchina virtuale con Windows XP?
Lancio l&#8217;Oracle Universal Installer, si apre la consueta finestrella DOS con alcune righe diagnostiche e dopo qualche secondo il crash.
Primi pensieri: sto installando su un sistema operativo non supportato, per giunta virtuale, non ho abbastanta [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=556&subd=licensetransfer&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Che c&#8217;è di meglio durante un fine settimana che installare Oracle 10g R2 10.2.0.1.0 su una macchina virtuale con Windows XP?</p>
<p>Lancio l&#8217;Oracle Universal Installer, si apre la consueta finestrella DOS con alcune righe diagnostiche e dopo qualche secondo il crash.</p>
<p>Primi pensieri: sto installando su un sistema operativo non supportato, per giunta virtuale, non ho abbastanta memoria (2Gb fisica, 1Gb assegnato alla VM), la cache del sistema operativo è troppo piccola, ecc.</p>
<p>Nulla di tutto ciò: la causa del problema è che stavo lanciando il setup.exe dello Universal Installer da un path contenente degli spazi al suo interno (tipo &#8220;c:\temp\oracle 10g R2&#8243;).</p>
<p>Ho rinominato le cartelle eliminando gli spazi e l&#8217;installazione è partita regolarmente.</p>
<p>Grazie all&#8217;ignoto benefattore di <a href="http://www.mercatorgeosystems.com/blog/wp-trackback.php?p=36" target="_blank">A Different Projection</a></p>
<p>Ah, oracle!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/licensetransfer.wordpress.com/556/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/licensetransfer.wordpress.com/556/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/licensetransfer.wordpress.com/556/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/licensetransfer.wordpress.com/556/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/licensetransfer.wordpress.com/556/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/licensetransfer.wordpress.com/556/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/licensetransfer.wordpress.com/556/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/licensetransfer.wordpress.com/556/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/licensetransfer.wordpress.com/556/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/licensetransfer.wordpress.com/556/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=556&subd=licensetransfer&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://licensetransfer.wordpress.com/2009/10/24/oracle-oui-exe-crash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b4f888e50cc340b4432a4b83e5dd7a68?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pigreco314</media:title>
		</media:content>
	</item>
		<item>
		<title>Signore e signori, buona notte</title>
		<link>http://licensetransfer.wordpress.com/2009/10/11/signore-e-signori-buona-notte/</link>
		<comments>http://licensetransfer.wordpress.com/2009/10/11/signore-e-signori-buona-notte/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 17:33:46 +0000</pubDate>
		<dc:creator>pigreco314</dc:creator>
				<category><![CDATA[italia]]></category>

		<guid isPermaLink="false">http://licensetransfer.wordpress.com/?p=552</guid>
		<description><![CDATA[In questo film del 1976, già si intravedeva come sarebbe andata a finire.
Godetevi questa scena in cui a un basito Mastroianni giornalista, davanti allo sproloquio del ministro non resta che controbattere: &#8220;Scusi ma&#8230;ma che chacchio sta dicendo!?&#8221;.

       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=552&subd=licensetransfer&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In questo film del 1976, già si intravedeva come sarebbe andata a finire.</p>
<p>Godetevi questa scena in cui a un basito Mastroianni giornalista, davanti allo sproloquio del ministro non resta che controbattere: &#8220;Scusi ma&#8230;ma che chacchio sta dicendo!?&#8221;.</p>
<p style="text-align:center;"><span style="text-align:center; display: block;"><a href="http://licensetransfer.wordpress.com/2009/10/11/signore-e-signori-buona-notte/"><img src="http://img.youtube.com/vi/rvrkynKC57s/2.jpg" alt="" /></a></span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/licensetransfer.wordpress.com/552/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/licensetransfer.wordpress.com/552/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/licensetransfer.wordpress.com/552/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/licensetransfer.wordpress.com/552/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/licensetransfer.wordpress.com/552/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/licensetransfer.wordpress.com/552/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/licensetransfer.wordpress.com/552/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/licensetransfer.wordpress.com/552/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/licensetransfer.wordpress.com/552/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/licensetransfer.wordpress.com/552/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=552&subd=licensetransfer&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://licensetransfer.wordpress.com/2009/10/11/signore-e-signori-buona-notte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b4f888e50cc340b4432a4b83e5dd7a68?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pigreco314</media:title>
		</media:content>

		<media:content url="http://img.youtube.com/vi/rvrkynKC57s/2.jpg" medium="image" />
	</item>
		<item>
		<title>Dove eravamo rimasti</title>
		<link>http://licensetransfer.wordpress.com/2009/09/22/dove-eravamo-rimasti/</link>
		<comments>http://licensetransfer.wordpress.com/2009/09/22/dove-eravamo-rimasti/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 20:39:41 +0000</pubDate>
		<dc:creator>pigreco314</dc:creator>
				<category><![CDATA[Azienda]]></category>
		<category><![CDATA[delegare]]></category>
		<category><![CDATA[international teams]]></category>
		<category><![CDATA[software upgrades]]></category>
		<category><![CDATA[team management]]></category>

		<guid isPermaLink="false">http://licensetransfer.wordpress.com/?p=548</guid>
		<description><![CDATA[Sono trascorse sei settimane dal nostro trasferimento ufficiale nella nuova realtà aziendale.
La transizione è ancora in corso ma per fortuna si notano progressi, non è un inutile girare intorno a problemi senza provare ad abbozzare una soluzione.
Vediamo di fare il punto sul guaio in cui sono capitato.
Sono responsabile globale di un gruppo che prima della [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=548&subd=licensetransfer&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Sono trascorse sei settimane dal nostro trasferimento ufficiale nella nuova realtà aziendale.</p>
<p>La transizione è ancora in corso ma per fortuna si notano progressi, non è un inutile girare intorno a problemi senza provare ad abbozzare una soluzione.</p>
<p>Vediamo di fare il punto sul guaio in cui sono capitato.</p>
<p>Sono responsabile globale di un gruppo che prima della acquisizione del nostro business non esisteva nell&#8217;azienda che ci ha comprati, ovvero un team incaricato di effettuare gli upgrade software delle installazioni dei nostri prodotti: sia all&#8217;interno della stessa linea di prodotto (li chiamo omo-upgrade) sia da una linea all&#8217;altra (li chiamo etero-upgrade).</p>
<p>Gli etero-upgrade avverranno probabilmente in una sola direzione poiché delle due linee di prodotto una è sicuramente vincente (quella dell&#8217;azienda che ci ha comprati) e l&#8217;altra (quella che mi ha dato da mangiare durante gli ultimi nove anni) è destinata a soccombere anche se ci vorrà parecchio tempo.</p>
<p>Comunque, prima che si parli di etero-upgrade bisognerà prima definire un percorso di migrazione da una piattaforma all&#8217;altra, cosa non facile perché parliamo di tecnologie, architetture, funzionalità, modelli dati abbastanza diversi.</p>
<p>Curioso come sia stato messo a capo di un team la cui responsabilità principale è svolgere forse l&#8217;unica attività (quella degli upgrade appunto) di cui non mi sono mai occupato personalmente durante la mia quasi decennale esperienza nel settore.</p>
<p>Meglio: non verrò eccessivamente distratto dai dettagli tecnici e sarò più portato a delegare.</p>
<p>Ritengo l&#8217;esperienza che sto vivendo molto importante anche perché stiamo assistendo al processo di formazione di un&#8217;organizzazione. Chi ci ha comprato aveva in Europa un solo ufficio vicino a Londra e ora si trova a dover gestire dall&#8217;oggi al domani un intero nuovo Continente.</p>
<p>Il mio nuovo team è formato da cinque persone più il sottoscritto: 4 americani e 1 olandese.</p>
<p>Già ora le giornate lavorative durano 11 ore circa. Si vocifera che mi verranno assegnate a breve altre 5 persone, di cui un indiano, nel senso di residente in India, Calcutta per la precisione.</p>
<p>Rinvierò sine die et sine cura l&#8217;assegnazione di un Blackberry.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/licensetransfer.wordpress.com/548/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/licensetransfer.wordpress.com/548/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/licensetransfer.wordpress.com/548/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/licensetransfer.wordpress.com/548/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/licensetransfer.wordpress.com/548/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/licensetransfer.wordpress.com/548/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/licensetransfer.wordpress.com/548/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/licensetransfer.wordpress.com/548/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/licensetransfer.wordpress.com/548/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/licensetransfer.wordpress.com/548/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=548&subd=licensetransfer&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://licensetransfer.wordpress.com/2009/09/22/dove-eravamo-rimasti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b4f888e50cc340b4432a4b83e5dd7a68?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pigreco314</media:title>
		</media:content>
	</item>
		<item>
		<title>Ultimo giorno</title>
		<link>http://licensetransfer.wordpress.com/2009/08/01/ultimo-giorno/</link>
		<comments>http://licensetransfer.wordpress.com/2009/08/01/ultimo-giorno/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 00:51:53 +0000</pubDate>
		<dc:creator>pigreco314</dc:creator>
				<category><![CDATA[Azienda]]></category>
		<category><![CDATA[addio]]></category>
		<category><![CDATA[farewell]]></category>
		<category><![CDATA[nuovavita]]></category>
		<category><![CDATA[saluti]]></category>
		<category><![CDATA[ufficio]]></category>

		<guid isPermaLink="false">http://licensetransfer.wordpress.com/?p=545</guid>
		<description><![CDATA[Oggi è stato il mio ultimo giorno in ufficio, nonostante fossi in ferie.
Dal 10 Agosto per 13 persone comincia una nuova vita. Il nostro business è stato venduto a una società fino a ieri nostra concorrente.
Puntiamo a essere il Numero Uno al mondo nel 2012. Si aprono discrete opportunità professionali e per me un nuovo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=545&subd=licensetransfer&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Oggi è stato il mio ultimo giorno in ufficio, nonostante fossi in ferie.</p>
<p>Dal 10 Agosto per 13 persone comincia una nuova vita. Il nostro business è stato venduto a una società fino a ieri nostra concorrente.</p>
<p>Puntiamo a essere il Numero Uno al mondo nel 2012. Si aprono discrete opportunità professionali e per me un nuovo ruolo ancora un po&#8217; fumoso ma per ora va bene così.</p>
<p>Con la nostra S., un forte lungo abbraccio (anche se ci rivedremo tra poco più di una settimana) come per dire: in che cavolo di avventura siamo finiti?</p>
<p>L&#8217;amica B., della reception, è salita a salutarci e aveva le lacrime agli occhi.</p>
<p>La cara A. è stata dolce e affettuosa, più di me. Non si è commossa mentre ero lì, poi non so.</p>
<p>D. mentre usciva dal cancello in bicicletta ci ha urlato: &#8220;Siete i più belli!&#8221; e io di rimando dal finestrino della macchina: &#8220;D., non te l&#8217;ho mai detto ma hai proprio un bel fondoschiena!&#8221;. No, non ho detto fondoschiena.</p>
<p>L&#8217;altra B., a casa in maternità, ci ha scritto una email molto bella.</p>
<p>S., dell&#8217;ufficio personale, è stata molto gentile a evadere la mia ultima richiesta (riconteggio ticket restaurant e mi sa che ho fatto bene a verificare) nonostante <a href="http://licensetransfer.wordpress.com/2007/02/27/dinosauri-aziendali-2/" target="_blank">la megera N.</a> la richiamasse all&#8217;ordine.</p>
<p>R. e M., i capostipiti del business in Italia, poi in Europa e in seguito passati ad altri importanti incarichi, ci faranno senz&#8217;altro visita. Non so perché ma ho la sensazione che le strade con M. si incroceranno ancora.</p>
<p>M., la nostra business controller un po&#8217; casinista, ci ha salutato via email con un sincero augurio.</p>
<p>C. e C. del Supporto sono scese a dirci un ciao molto affettuoso.</p>
<p>Non sono riuscito a salutare altri buoni amici del Servizio e del Supporto e lo farò via email.</p>
<p>S., lo<a href="http://licensetransfer.wordpress.com/2009/03/07/standby/" target="_blank"> Zio IT</a> (passato al Servizio, ottima mossa Zio!) era in ferie ma lo rivedremo presto.</p>
<p>Sono certo che i colleghi più cari li rivedremo ancora, nonostante il nuovo ufficio sia un po&#8217; fuori mano e per me molto più arduo da raggiungere, visto che per arrivarci devo saltare sulla tang@#!&lt;&gt;enziale di Milano provenienza BG!</p>
<p>Tutti gli altri li possiamo tranquillamente dimenticare, alcuni il più velocemente possibile.</p>
<p>Domenica parto con la famigliola per una settimana di tutto relax in Croazia  anche se un occhio lo terrò inevitabilmente sulle notizie dal fronte occidentale.</p>
<p>Rivolgo ai miei colleghi e a me stesso il più classico degli <strong>&#8220;In Bocca Al Lupo!&#8221;</strong></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/licensetransfer.wordpress.com/545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/licensetransfer.wordpress.com/545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/licensetransfer.wordpress.com/545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/licensetransfer.wordpress.com/545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/licensetransfer.wordpress.com/545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/licensetransfer.wordpress.com/545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/licensetransfer.wordpress.com/545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/licensetransfer.wordpress.com/545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/licensetransfer.wordpress.com/545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/licensetransfer.wordpress.com/545/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=545&subd=licensetransfer&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://licensetransfer.wordpress.com/2009/08/01/ultimo-giorno/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b4f888e50cc340b4432a4b83e5dd7a68?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pigreco314</media:title>
		</media:content>
	</item>
		<item>
		<title>Allucinazioni</title>
		<link>http://licensetransfer.wordpress.com/2009/06/03/allucinazioni/</link>
		<comments>http://licensetransfer.wordpress.com/2009/06/03/allucinazioni/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 20:14:16 +0000</pubDate>
		<dc:creator>pigreco314</dc:creator>
				<category><![CDATA[Domande]]></category>
		<category><![CDATA[olismo]]></category>
		<category><![CDATA[percezione viso]]></category>
		<category><![CDATA[riduzionismo]]></category>

		<guid isPermaLink="false">http://licensetransfer.wordpress.com/?p=541</guid>
		<description><![CDATA[Guardo un tizio che parla con un amico a qualche metro da me.
Il rumore del traffico mi consente di percepire solo frammenti di conversazione.
Mi fisso sul viso della persona che sta parlando in questo momento.
A poco a poco quel viso diventa un accostamento di occhi, naso, bocca, zigomi, fronte: un insieme di parti che incidentalmente [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=541&subd=licensetransfer&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Guardo un tizio che parla con un amico a qualche metro da me.</p>
<p>Il rumore del traffico mi consente di percepire solo frammenti di conversazione.</p>
<p>Mi fisso sul viso della persona che sta parlando in questo momento.</p>
<p>A poco a poco quel viso diventa un accostamento di occhi, naso, bocca, zigomi, fronte: un insieme di parti che incidentalmente si trovano in prossimità l&#8217;una dell&#8217;altra.</p>
<p>E il viso come tutt&#8217;uno scompare, il riduzionismo ha la meglio sull&#8217;olismo.</p>
<p>Rabbrividisco immaginando che probabilmente un alieno ci percepirebbe così.</p>
<p>Un po&#8217; come vedere i segni che compongono una parola scritta nella propria lingua o udirne la pronuncia ma bloccare l&#8217;emergere automatico e inesorabile del suo significato all&#8217;interno della mente.</p>
<p>Sarà grave?</p>
<p>E in che categoria lo colloco questo post?</p>
<p>Che nervi questa attesa&#8230;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/licensetransfer.wordpress.com/541/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/licensetransfer.wordpress.com/541/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/licensetransfer.wordpress.com/541/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/licensetransfer.wordpress.com/541/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/licensetransfer.wordpress.com/541/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/licensetransfer.wordpress.com/541/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/licensetransfer.wordpress.com/541/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/licensetransfer.wordpress.com/541/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/licensetransfer.wordpress.com/541/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/licensetransfer.wordpress.com/541/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=541&subd=licensetransfer&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://licensetransfer.wordpress.com/2009/06/03/allucinazioni/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b4f888e50cc340b4432a4b83e5dd7a68?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pigreco314</media:title>
		</media:content>
	</item>
		<item>
		<title>Pianificazione</title>
		<link>http://licensetransfer.wordpress.com/2009/05/30/pianificazione/</link>
		<comments>http://licensetransfer.wordpress.com/2009/05/30/pianificazione/#comments</comments>
		<pubDate>Sat, 30 May 2009 16:06:17 +0000</pubDate>
		<dc:creator>pigreco314</dc:creator>
				<category><![CDATA[Project Management]]></category>
		<category><![CDATA[amnesiac]]></category>
		<category><![CDATA[emissione co2]]></category>
		<category><![CDATA[pianificazione tour]]></category>
		<category><![CDATA[pyramid song]]></category>
		<category><![CDATA[radiohead]]></category>
		<category><![CDATA[richard young]]></category>
		<category><![CDATA[tour planning]]></category>

		<guid isPermaLink="false">http://licensetransfer.wordpress.com/?p=524</guid>
		<description><![CDATA[Il Tour Production Manager dei Radiohead, Richard Young, parla in un breve articolo dei problemi logistici che deve affrontare per la pianificazione del prossimo tour della band.
I Radiohead hanno deciso infatti di limitare al massimo l&#8217;emissione di anidride carbonica coinvolta nello svolgimento del tour e ha posto il vincolo che l&#8217;equipaggiamento utilizzato negli spettacoli (strumenti, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=524&subd=licensetransfer&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="alignright" title="Radiohead" src="http://www.radiohead.com/deadairspace/dastitle.png" alt="" width="432" height="120" />Il Tour Production Manager dei <a href="http://www.radiohead.com/deadairspace/">Radiohead</a>, Richard Young, <a href="http://www.radiohead.com/themostgiganticflyingmouthforsometime/ViewEntry.html?EntryID=56" target="_blank">parla in un breve articolo dei problemi logistici</a> che deve affrontare per la pianificazione del prossimo tour della band.</p>
<p>I <a href="http://en.wikipedia.org/wiki/Radiohead">Radiohead </a>hanno deciso infatti di limitare al massimo l&#8217;emissione di anidride carbonica coinvolta nello svolgimento del tour e ha posto il vincolo che l&#8217;equipaggiamento utilizzato negli spettacoli (strumenti, sistema di luci, ecc.) non deve essere trasportato per via aerea.</p>
<p>Che fareste voi per limitare i costi, rispettare le date e assicurarvi che la band disponga dei propri rarissimi microfoni in ogni data del tour?</p>
<p>Mentre ci pensate su, potete godervi la musica e le immagini di &#8220;<a href="http://en.wikipedia.org/wiki/Pyramid_Song" target="_blank">Pyramid Song</a>&#8221; dall&#8217;album <a href="http://en.wikipedia.org/wiki/Amnesiac" target="_blank">Amnesiac</a>.</p>
<p style="text-align:center;"><span style="text-align:center; display: block;"><a href="http://licensetransfer.wordpress.com/2009/05/30/pianificazione/"><img src="http://img.youtube.com/vi/LbxQ2cYWC_w/2.jpg" alt="" /></a></span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/licensetransfer.wordpress.com/524/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/licensetransfer.wordpress.com/524/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/licensetransfer.wordpress.com/524/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/licensetransfer.wordpress.com/524/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/licensetransfer.wordpress.com/524/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/licensetransfer.wordpress.com/524/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/licensetransfer.wordpress.com/524/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/licensetransfer.wordpress.com/524/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/licensetransfer.wordpress.com/524/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/licensetransfer.wordpress.com/524/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=524&subd=licensetransfer&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://licensetransfer.wordpress.com/2009/05/30/pianificazione/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b4f888e50cc340b4432a4b83e5dd7a68?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pigreco314</media:title>
		</media:content>

		<media:content url="http://www.radiohead.com/deadairspace/dastitle.png" medium="image">
			<media:title type="html">Radiohead</media:title>
		</media:content>

		<media:content url="http://img.youtube.com/vi/LbxQ2cYWC_w/2.jpg" medium="image" />
	</item>
		<item>
		<title>Alla rovescia</title>
		<link>http://licensetransfer.wordpress.com/2009/05/20/alla-rovescia/</link>
		<comments>http://licensetransfer.wordpress.com/2009/05/20/alla-rovescia/#comments</comments>
		<pubDate>Wed, 20 May 2009 20:20:32 +0000</pubDate>
		<dc:creator>pigreco314</dc:creator>
				<category><![CDATA[Consulenti]]></category>
		<category><![CDATA[G.M.]]></category>
		<category><![CDATA[Progetti]]></category>
		<category><![CDATA[chiusura progetto]]></category>
		<category><![CDATA[cliente pubblico]]></category>
		<category><![CDATA[opinioni]]></category>
		<category><![CDATA[tattica]]></category>

		<guid isPermaLink="false">http://licensetransfer.wordpress.com/?p=502</guid>
		<description><![CDATA[Forse ci siamo, forse incrociando dita, falangi, falangine, falangette e polpastrelli riusciamo a chiudere il dannatissimo progetto K**, difficilissimo Cliente di L*, Germania.
La firma che ci avrebbe permesso di fatturare il residuo sarebbe dovuta arrivare due , quattro no aspetta, sette&#8230; un numero imprecisato di mesi fa e invece probabilmente arriverà domani, dopodomani&#8230; insomma un [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=502&subd=licensetransfer&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div class="wp-caption alignright" style="width: 250px"><a href="http://www.flickr.com/photos/osiatynska/3355863553/"><img title=" Relax by ailatan" src="http://farm4.static.flickr.com/3429/3355863553_e62528da34_m_d.jpg" alt=" Relax © by ailatan" width="240" height="240" /></a><p class="wp-caption-text"> Relax © by ailatan</p></div>
<p>Forse ci siamo, forse incrociando dita, falangi, falangine, falangette e polpastrelli riusciamo a chiudere il dannatissimo progetto K**, difficilissimo Cliente di L*, Germania.</p>
<p>La firma che ci avrebbe permesso di fatturare il residuo sarebbe dovuta arrivare <span style="text-decoration:line-through;">due </span>, <span style="text-decoration:line-through;">quattro </span>no aspetta, <span style="text-decoration:line-through;">sette</span>&#8230; un numero imprecisato di mesi fa e invece probabilmente arriverà <span style="text-decoration:line-through;">domani</span>, <span style="text-decoration:line-through;">dopodomani</span>&#8230; insomma un giorno della prossima settimana sicuramente.</p>
<p>Avrete capito che trattasi di progetto travagliato, che ha visto coinvolte un discreto numero di persone impegnate a portare a casa un risultato utile, tra cui, in veste di protagonista, l&#8217;ormai mitico G.M. Di recente si è aggiunto anche il nuovo acquisto in casa Sales, il promettente A.D., come &#8220;supportante&#8221; Account Manager.</p>
<p>Negli ultimi 5 mesi con questo Cliente non si è fatto altro che negoziare al mercato delle &#8220;issues&#8221;: &#8220;no questo non è un problema causato dal nostro software bensì dalla vostra infrastruttura di rete&#8221;, &#8220;questo non l&#8217;avevate chiesto e quindi non ve lo sistemiamo a meno che non ci paghiate l&#8217;intervento&#8221;, &#8220;no questo non lo firmo perché non c&#8217;è il sotto-vice-assistente-precario del responsabile&#8221; (cliente pubblico) ecc.</p>
<p>Suona quindi strano che  presso un Cliente così problematico in una fase così delicata del progetto si organizzi una dimostrazione di un modulo software di analisi statistica e reportistica avanzata per il quale quelli di K** hanno manifestato un notevole interesse. Organizzatori: G.M. e A.D., il dinamico duo.</p>
<p>Della serie: <strong>prima </strong>risolviamo la faccenduola relativa alla chiusura del progetto e <strong>poi</strong> vi facciamo vedere tutto quello che volete, vi contiamo in diretta anche i pixel dell&#8217;interfaccia grafica utente se volete. <strong>Dopo</strong> però.</p>
<p>Saltiamo qualche passaggio e diciamo che stando ai resoconti del dinamico duo il Cliente firmerà la chiusura del progetto, consentendoci di fatturare il residuo e pure ordinando un giorno di consulenza per una micro attività aggiuntiva.</p>
<p>Curioso il modo in cui A.D. riporta la notizia, al termine della riunione di ieri:</p>
<blockquote><p>Vi informo che siamo riusciti nel nostro intento di generare interesse presso K** circa i software X e Y, cosa che era l&#8217;obiettivo <em><strong>primario</strong> </em>(sic!) della riunione. Tra le altre cose, abbiamo poi stabilito una relazione col Cliente (questa non l&#8217;ho capita bene) il quale <em><strong>ha accennato</strong></em> al fatto che firmerà la chiusura del progetto blah blah&#8230;</p></blockquote>
<p>Ovviamente sono sicuro del fatto che l&#8217;entusiasmo del dinamico duo è ben motivato e che tra poco vedrò materializzare nella mia inbox (o nel mio GTalk, veggasi articoli sul bot) il pezzo di carta firmato, tuttavia la differenza di prospettiva rispetto a cosa sia veramente importante in una situazione è cosa che colpisce.</p>
<p>PS: alla fine della giornata di lavoro di oggi (20/05), nessuna traccia del pezzo di carta. Seguiranno aggiornamenti.</p>
<p>PPS: nulla nemmeno a tutto il 25/05</p>
<p>PPPS: 28 maggio, giornata storica il sign-off è <strong>arrivato!!!!!</strong></p>
<p><strong>PPPPS: non ci credo: abbiamo chiuso il progetto e fatturato il 29 maggio 2009<br />
</strong></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/licensetransfer.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/licensetransfer.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/licensetransfer.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/licensetransfer.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/licensetransfer.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/licensetransfer.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/licensetransfer.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/licensetransfer.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/licensetransfer.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/licensetransfer.wordpress.com/502/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=502&subd=licensetransfer&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://licensetransfer.wordpress.com/2009/05/20/alla-rovescia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b4f888e50cc340b4432a4b83e5dd7a68?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pigreco314</media:title>
		</media:content>

		<media:content url="http://farm4.static.flickr.com/3429/3355863553_e62528da34_m_d.jpg" medium="image">
			<media:title type="html"> Relax by ailatan</media:title>
		</media:content>
	</item>
		<item>
		<title>Progetto GTalk Bot #3</title>
		<link>http://licensetransfer.wordpress.com/2009/05/20/progetto-gtalk-bot-3/</link>
		<comments>http://licensetransfer.wordpress.com/2009/05/20/progetto-gtalk-bot-3/#comments</comments>
		<pubDate>Wed, 20 May 2009 15:31:40 +0000</pubDate>
		<dc:creator>pigreco314</dc:creator>
				<category><![CDATA[Geek corner]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[bot]]></category>
		<category><![CDATA[exchange2007]]></category>
		<category><![CDATA[gtalk]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[jabberbot]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[nusoap]]></category>
		<category><![CDATA[outlook2007]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[vpn]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[weboutlook]]></category>

		<guid isPermaLink="false">http://licensetransfer.wordpress.com/?p=459</guid>
		<description><![CDATA[Nell'ultimo mese il progetto GTalk Bot è proseguito seguendo ramificazioni inattese ma assai feconde.
Quei quattro lettori che mi seguono sapranno senz'altro di che progetto sto parlando. Per gli ospiti di passaggio è disponibile la serie delle due puntate precedenti (parte #1 e parte #2)<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=459&subd=licensetransfer&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Nell&#8217;ultimo mese il progetto GTalk Bot è proseguito seguendo ramificazioni inattese ma assai feconde.<a href="http://licensetransfer.files.wordpress.com/2009/05/image-0011.jpg"><img class="alignright size-medium wp-image-508" title="GTalk Bot" src="http://licensetransfer.files.wordpress.com/2009/05/image-0011.jpg?w=300&#038;h=227" alt="GTalk Bot" width="300" height="227" /></a></p>
<p>Quei quattro lettori che mi seguono sapranno senz&#8217;altro di che progetto sto parlando. Per gli ospiti di passaggio è disponibile la serie delle due puntate precedenti (<a href="http://licensetransfer.wordpress.com/2008/05/27/progetto-gtalk-bot/" target="_blank">parte #1</a> e <a href="http://licensetransfer.wordpress.com/2009/04/29/progetto-gtalk-bot-2/">parte #2</a>)</p>
<p>Nella versione attuale (ancora piuttosto alfa) il bot ha migliorato il supporto LDAP e ora accetta anche query complesse, permettendo amenità varie come estrarre la lista di tutti i riporti di un determinato manager con un comando del tipo:</p>
<p style="text-align:center;"><code>d -q "manager=Mario Rossi"</code></p>
<p>Vi ricordo che la sintassi è totalmente arbitraria (il <code>"dir"</code> del post precedente si è contratto in <code>"d"</code> per comodità di digitazione sui dispositivi mobili)</p>
<p>Visto che un pezzo della Corporation sta su Active Directory ho dovuto estendere il supporto delle query LDAP su un secondo server, cosa che, con l&#8217;aiuto di uno dei tanti tool di esplorazione LDAP, è risultata particolarmente semplice in quanto l&#8217;unica modifica ha riguardato la modalità di autenticazione e il &#8220;base dn&#8221;.</p>
<p>Ma la cosa di cui vado particolarmente fiero è l&#8217;interfaccia con Outlook 2007 (o meglio Exchange 2007) implementata tramite invocazione dei web services di Exchange su protocollo <a href="http://en.wikipedia.org/wiki/SOAP_%28protocol%29" target="_blank">SOAP</a>, risultato che mi è costato qualche notte insonne e un cambio abbastanza radicale in termini di design.</p>
<h2>Python e SOAP</h2>
<p>L&#8217;idea iniziale di utilizzare una soluzione basata su <a href="http://code.google.com/p/weboutlook/" target="_blank">weboutlook</a> si è rivelata poco praticabile e un po&#8217; troppo rozza (sostanzialmente effettua un parsing della pagina web di Outlook Web Access).</p>
<p>I web services di Exchange di 2007 sono invece <a href="http://code.google.com/p/weboutlook/" target="_blank">splendidamente documentati</a>. Il problema quindi si &#8220;riduceva&#8221; a implementare in <a href="http://en.wikipedia.org/wiki/Python_%28programming_language%29" target="_blank">Python</a> (il linguaggio con cui avevo iniziato a sviluppare il bot) le chiamate SOAP ai servizi di Exchange.</p>
<p>Seguendo l&#8217;eccellente introduzione di <a href="http://diveintopython.org/soap_web_services/" target="_blank">Dive Into Python</a> ho cominciato a sperimentare SOAP su python. Dopo aver appreso le basi, ho tentato di attaccare i web services di Exchange con scarsi e snervanti risultati. Purtroppo il debugging di una applicazione SOAP non è per niente banale. Le librerie SOAP di Python che vanno per la maggiore sono due:</p>
<ul>
<li><a href="http://pywebsvcs.sourceforge.net/" target="_blank">SOAPpy</a>: abbastanza semplice da usare scarsamente documentata e credo non più sviluppata</li>
<li><a href="http://pywebsvcs.sourceforge.net/" target="_blank">ZSI</a>: ben documentata (ma vi serve qualche base di SOAP) e attivamente sviluppata</li>
</ul>
<p>Quando dal debugging della mia applicazione sono passato al debugging delle librerie medesime per risalire alla causa di certi errori (anche il passaggio dei tipi di variable complessi via SOAP può diventare un incubo) ho pensato che forse il supporto SOAP di Python non era sufficientemente maturo per i miei scopi.</p>
<h2>Php</h2>
<p>L&#8217;articolo <a href="http://www.howtoforge.com/talking-soap-with-exchange" target="_blank">Talking SOAP with Exchange</a> ha attirato la mia attenzione su <a href="http://en.wikipedia.org/wiki/Php" target="_blank">Php</a> che già conoscevo come linguaggio di scripting per applicazioni web.</p>
<p>Vi si descrive più o meno quello che mi serviva, ossia implementare un client SOAP per servizi Exchange 2007. Il ché mi ha indotto a considerare l&#8217;ipotesi di scrivere in Php un front-end semplificato per i servizi di Exchange e fare in modo che il bot Gtalk scritto in Python consumasse questi web services surrogati invece degli originali più complessi.</p>
<p>In realtà Php, <a href="http://www.php.net/features.commandline" target="_blank">dalla versione 4.3.0</a>, può essere utilizzato anche per realizzare <strong>script eseguibili dalla linea di comando</strong> senza necessariamente utilizzarlo all&#8217;interno di un web server, assumendo così dignità di linguaggio di scripting di sistema alla pari di python, perl ecc.</p>
<p>Mi sono pertanto chiesto se per caso qualche anima pia non avesse anche provveduto a sviluppare un supporto Php per <strong>XMPP/Jabber, </strong>il protocollo di Google Talk.</p>
<p>Si dà il caso che grazie al lavoro <a href="http://nathan.fritzclan.com/" target="_blank">Nathan Fritz</a> (per sempre grato,Nat!), <a href="http://code.google.com/p/xmpphp/" target="_blank">Php supporti il protocollo XMPP/Jabber</a>.</p>
<p>A quel punto, l&#8217;idea di scrivere il GTalk Bot in Php ha preso forma.</p>
<p>Mi spiaceva un po&#8217; abbandonare l&#8217;approccio di <a href="http://freshmeat.net/projects/python-jabberbot/" target="_blank">python-jabberbot</a> e il suo elegante meccanismo di funzioni callback e quindi, come prima cosa, <strong>ho riscritto jabberbot in Php</strong> (a breve penso di pubblicarlo su Google Code).</p>
<p>Con il php-jabberbot, creare un bot Google Talk che ritorni lo user Id del proprio interlocutore e dica che ore sono è semplice come scrivere:</p>
<p><code>&lt;?php</code></p>
<p><code>include "jabberbot.php";</code></p>
<p><code>class GtalkBot extends JabberBot {</code></p>
<p style="padding-left:30px;"><code>public function bot_hello($msg,$args) {</code></p>
<p style="padding-left:60px;"><code>list($jid,$client)=split("/",$msg['from']);</code></p>
<p style="padding-left:60px;"><code>return "Hello $jid , it is now ".strftime("%H:%M:%S  %d/%b/%Y");</code></p>
<p style="padding-left:30px;"><code>}</code></p>
<p><code>}</code></p>
<p><code>$gtb = new GtalkBot(&lt;username_gtalk&gt;,&lt;password_gtalk&gt;');</code><br />
<code><br />
$gtb-&gt;serve_forever();</code></p>
<p><code>?&gt;</code></p>
<p>Collegandosi a Google Talk con un secondo account e aprendo una chat con l&#8217;utente fittizio utilizzato dal bot, digitando il messaggio &#8220;hello&#8221;, il nostro amico risponderà salutandovi cortesemente e ragguagliandovi circa ora e data in uso sul proprio server.</p>
<p>Se avete urgenza di mettere le mani sul codice di php-jabberbot è sufficiente che lasciate un commento a questo post.</p>
<h2>Php e NuSOAP</h2>
<p>Torniamo a SOAP ed Exchange. L&#8217;articolo <a href="http://www.howtoforge.com/talking-soap-with-exchange" target="_blank">Talking SOAP with Exchange</a> sopracitato è un ottima introduzione al tema ma ha il difetto di basarsi sull&#8217;estensione SOAP di PHP 5 che non supporta <a href="http://en.wikipedia.org/wiki/NTLM" target="_blank">l&#8217;autenticazione NTLM</a> richiesta da Exchange (l&#8217;articolo fornisce anche la soluzione a questo problema).</p>
<p>In realtà, di librerie SOAP per Php ve ne sono almeno tre:</p>
<ul>
<li>la già citata estensione SOAP di PHP 5 (su Windows è la dll <strong>php_soap.dll</strong>)</li>
<li>il package <a href="http://pear.php.net/package/SOAP" target="_blank">PEAR:Soap</a></li>
<li>la libreria <a href="http://sourceforge.net/projects/nusoap" target="_blank">NuSOAP</a> (la versione che ho scaricato dal repository reca numero 0.7.3)</li>
</ul>
<p>La terza è quella con cui mi sono trovato meglio: buona documentazione, supporto autenticazione NTLM nonché Basic HTTP e sufficiente diagnostica per il debugging.</p>
<p>Ho quindi iniziato a sperimentare NuSOAP con alcuni web services disponibili in rete (per esempio <a href="http://www.xmethods.net/ve2/index.po" target="_blank">XMethods.net</a>).</p>
<h2>Php, NuSOAP e Exchange 2007</h2>
<p>Rinfrancato dai primi successi, sono passato a studiare la documentazione disponibile e a fare qualche esperimento infastidendo il nostro server Exchange 2007.</p>
<p>La faccio breve e vi presento qui sotto un esempio di come sia possibile usare NuSOAP per interrogare Exchange e ottenere informazioni sui messaggi non letti presenti nella vostra casella di posta elettronica.</p>
<p>Personalmente ho trovato l&#8217;introduzione a SOAP di <a href="http://diveintopython.org/soap_web_services/first_steps.html" target="_blank">Dive Into Python</a> (anche se centrata su Python) più che sufficiente per i miei scopi. Qualunque altra introduzione all&#8217;argomento va bene. I concetti che vi servono sono il meccanismo Request/Response di SOAP, il modo in cui i messaggi vengono formattati in XML e i descrittori di webservices WSDL.</p>
<p>Le interrogazioni di questo esempio useranno l&#8217;approccio <a href="http://en.wikipedia.org/wiki/Web_Services_Description_Language" target="_blank">WSDL</a>.</p>
<p>Gli ingredienti:</p>
<ul>
<li>un server Exchange 2007 (es. https://exchange.example.com) e relativo account; inoltre dovrete farvi dire quale tipo di autenticazione è configurata sul server (nel mio caso Basic HTTP, altra possibile opzione è NTML)</li>
<li>PHP 5</li>
<li>NuSOAP 0.7.x: io sto usando la 0.7.3</li>
<li>Php_curl: l&#8217;unica dipendenza richiesta da NuSOAP</li>
</ul>
<p>Anche se il bot verrà messo in produzione su Linux, in fase di test opero in ambiente Windows:  I love  scripting languages!</p>
<p>Cominciate a procurarvi i seguenti file dal vostro server Exchange. Dovrebbero essere reperibili agli indirizzi indicati qui sotto:</p>
<ul>
<li><em><strong>Services.wsdl</strong></em>: https://exchange.esempio.com<strong>/EWS/Services.wsdl</strong>.</li>
<li><em><strong>messages.xsd</strong></em>: https://exchange.esempio.com<strong>/EWS/messages.xsd</strong></li>
<li><em><strong>types.xsd</strong></em>:https://exchange.esempio.com<strong>/EWS/types.xsd</strong></li>
</ul>
<p>Salvateli in una directory locale nel vostro ambiente di sviluppo. Questi file XML contengono le specifiche dei web services esposti da Exchange. Teoricamente non è necessario utilizzarli localmente, tuttavia, secondo<a href="http://www.howtoforge.com/talking-soap-with-exchange" target="_blank">Talking SOAP with Exchange</a>, il wsdl di Exchange 2007 è malformato (!) in quanto mancante di una dichiarazione senza la quale non si ha conformità con le specifiche SOAP. In effetti, se provate a usare il file così com&#8217;è, le interrogazioni SOAP falliscono. La soluzione più semplice, una volta salvato il file in locale, è aggiungervi in coda la parte mancante come riportato qui sotto e nell&#8217;articolo (sostituite ovviamente il nome del server con quello reale):<br />
<code><br />
&lt;wsdl:service name="ExchangeServices"&gt;</code></p>
<p style="padding-left:30px;"><code>&lt;wsdl:port name="ExchangeServicePort" binding="tns:ExchangeServiceBinding"&gt;</code></p>
<p style="padding-left:60px;"><code>&lt;soap:address location=</code></p>
<p style="padding-left:60px;"><code>"https://<strong>exchange.esempio.com</strong>/EWS/Exchange.asmx"/&gt;</code></p>
<p style="padding-left:30px;"><code>&lt;/wsdl:port&gt;</code></p>
<p><code>&lt;/wsdl:service<code>&gt;</code></code></p>
<p><code><code>&lt;!-- la riga successiva dovrebbe già essere nel vostro file WSDL --&gt;<br />
</code></code></p>
<p><code><code>&lt;/wsdl:definitions&gt;<br />
</code></code></p>
<h2 style="text-align:left;">Autenticazione<em><br />
</em></h2>
<p>Nel frammento qui sotto, si spiega come usare NuSOAP per autenticarsi in Basic HTTP sul server Exchange:<br />
<code><br />
require_once('nusoap.php');</code></p>
<p><code>//percorso dove avete salvato il file wsdl, i file .xsd verranno cercati nella medesima directory:</code></p>
<p><code>$client = new nusoap_client('file://c:/Temp/Services.wsdl',true);<br />
$err = $client-&gt;getError();<br />
if ($err) {<br />
print "\nClient error". $err . ".\n";<br />
}</code></p>
<p><code>//basic HTTP autentication:</code></p>
<p><code>$client-&gt;setCredentials ('<em><strong>username</strong></em>','<em><strong>password</strong></em>','basic');<br />
</code><br />
Il client è pronto per inviare interrogazioni al server Exchange.</p>
<h2 style="text-align:left;">&#8220;Request<em>&#8220;<br />
</em></h2>
<p>Esaminando <a href="http://msdn.microsoft.com/en-us/library/bb204119.aspx" target="_blank">la documentazione dei web services di Exchange</a> scopriamo che la operation <a href="http://msdn.microsoft.com/en-us/library/aa566107.aspx" target="_blank"><em><strong>FindItem</strong></em></a>, ritorna i messaggi contenuti in un determinato folder Outlook.</p>
<p>La richiesta deve rispettare questa struttura:</p>
<p><code>&lt;FindItem Traversal="Shallow"&gt;</code></p>
<p style="padding-left:30px;"><code>&lt;ItemShape&gt;</code></p>
<p style="padding-left:60px;"><code>&lt;t:BaseShape&gt;Default&lt;/t:BaseShape&gt;</code></p>
<p style="padding-left:30px;"><code>&lt;/ItemShape&gt;</code></p>
<pre style="padding-left:30px;"><strong>&lt;!-apre la dichiarazione per una condizione di ricerca --&gt;
</strong><code>&lt;Restriction&gt;</code></pre>
<pre style="padding-left:60px;"><strong>&lt;!-apre una clausola di euguaglianza --&gt;</strong></pre>
<p style="padding-left:60px;"><code>&lt;t:IsEqualTo&gt;</code></p>
<p style="padding-left:90px;"><code>&lt;FieldURI FieldURI="message:isRead"/&gt;</code></p>
<pre style="padding-left:120px;"><strong>&lt;!-message:isRead deve essere zero,ovvero messaggio non letto--&gt;</strong></pre>
<p style="padding-left:120px;"><code>&lt;FieldURIOrConstant&gt;&lt;Constant Value="0"/&gt;</code></p>
<p style="padding-left:90px;"><code>&lt;/FieldURIOrConstant&gt;</code></p>
<p style="padding-left:60px;"><code>&lt;/t:IsEqualTo&gt;</code></p>
<p style="padding-left:30px;"><code>&lt;/Restriction&gt;</code></p>
<p style="padding-left:30px;"><code>&lt;ParentFolderIds&gt;</code></p>
<pre style="padding-left:60px;"><strong>&lt;!-identifica il folder--&gt;</strong></pre>
<p style="padding-left:60px;"><code>&lt;t:DistinguishedFolderId Id="inbox"/&gt;</code></p>
<p style="padding-left:30px;"><code>&lt;/ParentFolderIds&gt;</code></p>
<p><code>&lt;/FindItem&gt;</code></p>
<p>Con NuSOAP, la &#8220;request&#8221; qui sopra si può costruire creando diversi oggetti <strong><code>soapval </code></strong>innestati, partendo da quelli più interni:</p>
<p><code>$BaseShape = new soapval(</code></p>
<pre style="padding-left:30px;"><strong>// nome dell'oggetto come da struttura sopra:</strong></pre>
<p style="padding-left:30px;"><code>'BaseShape',</code></p>
<pre style="padding-left:30px;"><strong>// nome del tipo: si ricava dalla documentazione Microsoft:</strong></pre>
<p style="padding-left:30px;"><code>'DefaultShapeNamesType',</code></p>
<pre style="padding-left:30px;"><strong>// valore: si ricava dalla documentazione Microsoft</strong></pre>
<p style="padding-left:30px;"><code>'AllProperties',</code></p>
<pre style="padding-left:30px;"><strong>// namespace del tipo:si ricava dalla documentazione Microsoft
// ho riscontrato che l'interrogazione fallisce se non
// viene specificato</strong></pre>
<p style="padding-left:30px;"><code>'http://schemas.microsoft.com/exchange/services/2006/types',</code></p>
<pre style="padding-left:30px;"><strong>// namespace dell'elemento (opzionale):si ricava dalla
// documentazione Microsoft</strong></pre>
<p style="padding-left:30px;"><code>false,</code></p>
<pre style="padding-left:30px;"><strong>// eventuali attributi dell'elemento</strong></pre>
<p style="padding-left:30px;"><code>false);</code></p>
<p style="padding-left:30px;">
<p><code>$ItemShape = new soapval ('ItemShape',</code></p>
<p style="padding-left:30px;"><code>'ItemResponseShapeType',</code></p>
<pre style="padding-left:30px;"><strong>// ItemShape contiene BaseShape come valore:</strong></pre>
<p style="padding-left:30px;"><code>$BaseShape,</code></p>
<p style="padding-left:30px;"><code>'http://schemas.microsoft.com/exchange/services/2006/messages',</code></p>
<p style="padding-left:30px;"><code>false,</code></p>
<p style="padding-left:30px;"><code>false);</code></p>
<p><code><br />
$FieldURI = new soapval('FieldURI',</code></p>
<p style="padding-left:30px;"><code>'PathToUnindexedFieldType',</code></p>
<pre style="padding-left:30px;"><strong>// l'elemento FieldURI non ha valore bensì un attributo (vedi sotto)</strong></pre>
<p style="padding-left:30px;"><code>'',</code></p>
<p style="padding-left:30px;"><code>'http://schemas.microsoft.com/exchange/services/2006/types',</code></p>
<p style="padding-left:30px;"><code>false,</code></p>
<pre style="padding-left:30px;"><strong>// attributo FieldURI dell'elemento FieldURI
// incidentalmente hanno lo stesso nome
// per la dichiarazione si usa il formato chiave=&gt;valore</strong><em><strong>: </strong></em></pre>
<p style="padding-left:30px;"><code>array('FieldURI'=&gt;'message:IsRead'));</code></p>
<p style="padding-left:30px;">
<p><code>$Constant = new soapval('Constant',</code></p>
<p style="padding-left:30px;"><code>'ConstantValueType',</code></p>
<p style="padding-left:30px;"><code>'',</code></p>
<p style="padding-left:30px;"><code>'http://schemas.microsoft.com/exchange/services/2006/types',</code></p>
<p style="padding-left:30px;"><code>false,</code></p>
<p style="padding-left:30px;"><code>array('Value'=&gt;'0'));</code></p>
<p style="padding-left:30px;">
<p><code>$FieldURIOrConstant = new soapval('FieldURIOrConstant',</code></p>
<p style="padding-left:30px;"><code>'FieldURIOrConstantType',</code></p>
<p style="padding-left:30px;"><code>$Constant,</code></p>
<p style="padding-left:30px;"><code>'http://schemas.microsoft.com/exchange/services/2006/types',</code></p>
<p style="padding-left:30px;"><code>false,</code></p>
<p style="padding-left:30px;"><code>false );</code></p>
<p style="padding-left:30px;">
<p><code>$IsEqualTo = new soapval('IsEqualTo',</code></p>
<p style="padding-left:30px;"><code>'IsEqualToType',</code></p>
<p style="padding-left:30px;"><code>array($FieldURI,$FieldURIOrConstant),</code></p>
<p style="padding-left:30px;"><code>'http://schemas.microsoft.com/exchange/services/2006/types',</code></p>
<p style="padding-left:30px;"><code>false,</code></p>
<p style="padding-left:30px;"><code>false);</code></p>
<p style="padding-left:30px;">
<p><code>$Restriction = new soapval('Restriction',</code></p>
<p style="padding-left:30px;"><code>'RestrictionType',</code></p>
<p style="padding-left:30px;"><code>$IsEqualTo,</code></p>
<p style="padding-left:30px;"><code>'http://schemas.microsoft.com/exchange/services/2006/messages',</code></p>
<p style="padding-left:30px;"><code>false,</code></p>
<p style="padding-left:30px;"><code>false);</code></p>
<p><code>$DistinguishedFolderId = new soapval('DistinguishedFolderId',</code></p>
<p style="padding-left:180px;"><code>'DistinguishedFolderIdType',</code></p>
<p style="padding-left:180px;"><code>'',</code></p>
<p style="padding-left:180px;"><code>'http://schemas.microsoft.com/exchange/services/2006/types',</code></p>
<p style="padding-left:180px;"><code>false,</code></p>
<p style="padding-left:180px;"><code>array('Id'=&gt;'inbox'));</code></p>
<p style="padding-left:180px;">
<p><code>$ParentFolderIds = new soapval('ParentFolderIds',</code></p>
<p style="padding-left:180px;"><code>'NonEmptyArrayOfBaseFolderIdsType',</code></p>
<p style="padding-left:180px;"><code>$DistinguishedFolderId,</code></p>
<p style="padding-left:180px;"><code>'http://schemas.microsoft.com/exchange/services/2006/messages',</code></p>
<p style="padding-left:180px;"><code>false,</code></p>
<p style="padding-left:180px;"><code>false);</code></p>
<p style="padding-left:180px;">
<p><code>$FindItem = new soapval('FindItem',</code></p>
<p style="padding-left:30px;"><code>'FindItemType',</code></p>
<pre style="padding-left:30px;"><strong>// quando l'elemento contiene più sottoelementi,
// questi vengono combinati in un array:</strong></pre>
<p style="padding-left:30px;"><code>array($ItemShape,$Restriction,$ParentFolderIds),</code></p>
<p style="padding-left:30px;"><code>'http://schemas.microsoft.com/exchange/services/2006/messages',</code></p>
<p style="padding-left:30px;"><code>false,</code></p>
<p style="padding-left:30px;"><code>array('Traversal'=&gt;'Shallow'));</code></p>
<p style="padding-left:30px;">
<p style="padding-left:30px;">
<p>A questo punto la variabile $FindItem contiene la nostra richiesta. Rimane solo da inviarla al server. Ecco come fare:</p>
<p><code>$xmlout = $FindItem-&gt;serialize('literal');</code><br />
<code><br />
$items=$client-&gt;call('FindItem',$xmlout);</code><br />
<code>$err = $client-&gt;getError();</code></p>
<p><code>if ($err) {</code></p>
<p style="padding-left:30px;"><code>print "\nMethod error". $err . ".\n";</code></p>
<p><code>}</code></p>
<pre><strong>// nel caso vogliate esaminare la struttura della risposta del server:</strong></pre>
<p><code>//print_r($items);</code></p>
<h2 style="text-align:left;">&#8220;Response<em>&#8220;<br />
</em></h2>
<p>La documentazione di Microsoft riporta anche le specifiche dettagliate delle risposte del server.</p>
<p>Queste vengono astratte da NuSOAP sotto forma di array innestati. Vi rimando alla documentazione o alle prove sul campo per i dettagli.</p>
<p>Mi limito qui a riportare il codice che potete utilizzare per stampare le informazioni relative ai messaggi non letti presenti nella inbox e ritornati nella variabile $items di cui sopra:</p>
<pre>// numero di messaggi trovati</pre>
<p><code>$num_items =  $items['ResponseMessages']['FindItemResponseMessage']['RootFolder']['!TotalItemsInView'];</code></p>
<pre><strong>// loop sui messaggi: attenzione, questo loop
// funziona solo se $num_items &gt; 1.
// occorre gestire il caso 0 o 1 messaggio separatamente</strong></pre>
<p><code>foreach ($items['ResponseMessages']['FindItemResponseMessage']['RootFolder']['Items']['Message'] as $message) {</code></p>
<p style="padding-left:30px;"><code>print "Subject: ". $message['Subject']. "\n" .</code></p>
<p style="padding-left:60px;"><code>"From: ". $message['From']['Mailbox']['Name']. "\n" .</code></p>
<p style="padding-left:60px;"><code>"Size: ". $message['Size']. "\n" .</code></p>
<p style="padding-left:60px;"><code>"Date Sent: ". $message['DateTimeSent']. "\n" .</code></p>
<p style="padding-left:60px;"><code>"Date Created: ". $message['DateTimeCreated']. "\n" .</code></p>
<p><code>}</code></p>
<h2>Oltre</h2>
<p>Ricapitoliamo.</p>
<p>Con questa soluzione posso accedere via instant messaging di GTalk a una serie di servizi disponibili normalmente solo all&#8217;interno della nostra rete aziendale, come info LDAP e posta.</p>
<p>In realtà, la recente migrazione ad Outlook 2007 (un altro pianeta rispetto a Lotus Notes) ha reso questa necessità meno impellente  in quanto finalmente, dopo anni, possiamo accedere alla nostra posta via Web fuori dalla VPN grazie a <a href="http://office.microsoft.com/en-us/outlook/HA010860351033.aspx" target="_blank"><strong>Outlook Web Access</strong></a> su https. Ho già sperimentato l&#8217;interfaccia utente su iPod Touch (dal Nokia E65 ho un problema di cookie).</p>
<p>L&#8217;interrogazione via instant messaging può però in diversi casi essere più agevole e immediata e consentire anche interessanti estensioni che coinvolgano il servizio Twitter. Il bot potrebbe infatti mettersi in ascolto di un account twitter fittizio al quale inviare messaggi via SMS. Questi messaggi verrebbero in realtà interpretati come comandi da eseguire esattamente come se l&#8217;interazione avvenisse via IM. Come gestire l&#8217;invio delle risposte in questo caso? Ovviamente sempre via SMS, usando una SIM dedicata collegata al server su cui gira il bot o un interessante side effect di Google Calendar.</p>
<p>Ma questo è materiale per il prossimo articolo.</p>
<p><code><a name="pd_a_1636919"></a><div class="PDS_Poll" id="PDI_container1636919" style="display:inline-block;"></div><script type="text/javascript" language="javascript" charset="utf-8" src="http://static.polldaddy.com/p/1636919.js"></script>
		<noscript>
		<a href="http://answers.polldaddy.com/poll/1636919/">View This Poll</a><br/><span style="font-size:10px;"><a href="http://answers.polldaddy.com">polls</a></span>
		</noscript></code></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/licensetransfer.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/licensetransfer.wordpress.com/459/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/licensetransfer.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/licensetransfer.wordpress.com/459/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/licensetransfer.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/licensetransfer.wordpress.com/459/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/licensetransfer.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/licensetransfer.wordpress.com/459/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/licensetransfer.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/licensetransfer.wordpress.com/459/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=licensetransfer.wordpress.com&blog=433588&post=459&subd=licensetransfer&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://licensetransfer.wordpress.com/2009/05/20/progetto-gtalk-bot-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b4f888e50cc340b4432a4b83e5dd7a68?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">pigreco314</media:title>
		</media:content>

		<media:content url="http://licensetransfer.files.wordpress.com/2009/05/image-0011.jpg?w=300" medium="image">
			<media:title type="html">GTalk Bot</media:title>
		</media:content>
	</item>
	</channel>
</rss>