<?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>Tra il codice e la realtà &#187; XML</title>
	<atom:link href="http://andreamurru.wordpress.com/tag/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://andreamurru.wordpress.com</link>
	<description>omnia munda mundis</description>
	<lastBuildDate>Fri, 04 Sep 2009 19:38:44 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>it</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='andreamurru.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/7f532f9a0124df110c111e4e38d3cc3c?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Tra il codice e la realtà &#187; XML</title>
		<link>http://andreamurru.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://andreamurru.wordpress.com/osd.xml" title="Tra il codice e la realtà" />
		<item>
		<title>Yahoo Pipes &#8211; mashup made easy</title>
		<link>http://andreamurru.wordpress.com/2009/09/04/yahoo-pipes-mashup-made-easy/</link>
		<comments>http://andreamurru.wordpress.com/2009/09/04/yahoo-pipes-mashup-made-easy/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 19:38:44 +0000</pubDate>
		<dc:creator>Andrea Murru</dc:creator>
				<category><![CDATA[Attualità]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[yhaoo pipes]]></category>

		<guid isPermaLink="false">http://andreamurru.wordpress.com/?p=104</guid>
		<description><![CDATA[Oggi ho provato ad utilizzare Yahoo Pipes: davvero impressionante!
Si tratta di un servizio che consente di aggregare, filtrare, generare feed partendo dalle più disparate fonti. E&#8217; ad esempio possibile recuperare i feed dei principali quotidiani e filtrare gli articoli in base al fatto che contengano o meno alcune parole (o più in generale un&#8217;espressione regolare). [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreamurru.wordpress.com&blog=2297529&post=104&subd=andreamurru&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Oggi ho provato ad utilizzare <a title="Yahoo Pipes" href="http://pipes.yahoo.com/pipes/">Yahoo Pipes</a>: davvero impressionante!</p>
<p>Si tratta di un servizio che consente di aggregare, filtrare, generare feed partendo dalle più disparate fonti. E&#8217; ad esempio possibile recuperare i feed dei principali quotidiani e filtrare gli articoli in base al fatto che contengano o meno alcune parole (o più in generale un&#8217;espressione regolare). Potentissima poi la possibilità di utilizzare come fonte una ricerca di google news (o blog search), sfruttandone tutte le potenzialità per ottenere un&#8217;inesauribile fonte <strong>personalizzata</strong> di new di qualità. Putroppo non è possibile utilizzare (direttamente) i risultati di una ricerca sul web (con google), ma è possibile avere a disposizione quelli di yahoo.</p>
<p>Tecnicamente le sorgenti possibili comprendono oltre ad rss e atom, anche XML, JSON, HTML, CSV, consentendo davvero di accedere a qualsiasi fonte disponibile sul web. L&#8217;unico limite è che le fonti non devono avere un file robots.txt che ne impedisca l&#8217;accesso.</p>
<p>Alle sorgenti è poi possibile applicare un gran numero di &#8220;operatori&#8221; che consentono di filtrare, dividere, unire, contare, troncare, verificare l&#8217;univocità, ordinare, etc, etc. in modo da ottenere davvero qualsiasi risultato si desideri.</p>
<p>Ma l&#8217;aspetto davvero straordinario del servizio è l&#8217;eccezionale tool grafico di generazione:</p>
<div id="attachment_105" class="wp-caption aligncenter" style="width: 520px"><a href="http://andreamurru.files.wordpress.com/2009/09/pipes.jpg"><img class="size-full wp-image-105" title="yahoo pipes" src="http://andreamurru.files.wordpress.com/2009/09/pipes.jpg?w=510&#038;h=318" alt="yahoo pipes edit" width="510" height="318" /></a><p class="wp-caption-text">yahoo pipes edit</p></div>
<p>E&#8217; un ambiente <strong>visuale </strong>estremamente <strong>semplice</strong> da utilizzare<strong> </strong>e allo stesso tempo <strong>potentissimo</strong>. Con qualche click è possibile selezionare le sorgenti, filtrarle unirle ed ottenere poi un feed che si può pubblicare con estrema semplicità.</p>
<p>Date un&#8217;occhiata al box qui a lato: trovate il feed che ho costruito per ottenere news simili ai contenuti di questo blog. In pochi minuti un risultato davvero eccellente!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andreamurru.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andreamurru.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andreamurru.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andreamurru.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andreamurru.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andreamurru.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andreamurru.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andreamurru.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andreamurru.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andreamurru.wordpress.com/104/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreamurru.wordpress.com&blog=2297529&post=104&subd=andreamurru&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://andreamurru.wordpress.com/2009/09/04/yahoo-pipes-mashup-made-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c533f393aa0365e59024d333b02b0b3f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Andrea Murru</media:title>
		</media:content>

		<media:content url="http://andreamurru.files.wordpress.com/2009/09/pipes.jpg" medium="image">
			<media:title type="html">yahoo pipes</media:title>
		</media:content>
	</item>
		<item>
		<title>Alcuni modi comuni per rovinarsi la vita con l&#8217;XML</title>
		<link>http://andreamurru.wordpress.com/2009/03/12/alcuni-modi-comuni-per-rovinarsi-la-vita-con-lxml/</link>
		<comments>http://andreamurru.wordpress.com/2009/03/12/alcuni-modi-comuni-per-rovinarsi-la-vita-con-lxml/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 17:05:11 +0000</pubDate>
		<dc:creator>Andrea Murru</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://andreamurru.wordpress.com/?p=96</guid>
		<description><![CDATA[In un ottimo articolo Kyle Brown, elenca tre &#8220;comuni&#8221; problemi che affliggono i Web Services basati su XML (SOAP o meno). Merita una lettura attenta perché non mette in evidenza  le meravigliose capacità di un qualche tool, libreria o linguaggio, ma collega a errori di principio nel design i disastri che si riesce a produrre anche [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreamurru.wordpress.com&blog=2297529&post=96&subd=andreamurru&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In un ottimo <a href="http://www.ibm.com/developerworks/websphere/techjournal/0903_col_brown/0903_col_brown.html?ca=drs-">articolo</a> Kyle Brown, elenca tre &#8220;comuni&#8221; problemi che affliggono i Web Services basati su XML (SOAP o meno). Merita una lettura attenta perché non mette in evidenza  le meravigliose capacità di un qualche tool, libreria o linguaggio, ma collega a errori di principio nel design i disastri che si riesce a produrre anche in contesti abbastanza semplici e con strumenti tutto sommato ben conosciuti.</p>
<p>Il primo errore è davvero banale e non mette in evidenza nulla di &#8220;profondo&#8221;: gestire messaggi da parecchi megabyte, magari con dati binari (senza forse neppure accorgersene) è semplicemente una scelta da incapaci; non è certo un problema dell&#8217;XML.</p>
<p>Il secondo è invece molto più interessante, perché è davvero una forza che guida spesso il design: definire i servizi ad un livello esremamente basso (ad esempio a livello di ogni singola operazione SQL). Perché (come dice Brown) &#8220;[...]such low-level data services often fail.&#8221; ? A mio parere il discorso è molto generale: Un Web Service dovrebbe rappresentare un&#8217;interfaccia che maschera la complessità che si trova a monte, semplificandone l&#8217;utilizzo in base alle esigenze di chi si trova a valle. Purtroppo invece scrivere un XML o richiamare un servizio non è più facile che accedere direttamente ad un DB e scrivere l&#8217;SQL relativo, né maschera alcuna complessità o dettaglio implementativo se il contenuto informativo necessario a richiamarlo è in relazione biunivoca con l&#8217;SQL utilizzato. Introdurre un layer (o un&#8217;interfaccia per l&#8217;accesso di una qualche risorsa/servizio) <strong>deve</strong> essere motivato da concreti <strong>vantaggi</strong> nel <strong>contesto specifico</strong> e non è certo buono in astratto e in generale.</p>
<p>Il terzo problema è paradossale e viene fuori soprattutto con SOAP: siccome non è comodo né banale definire gli schema in modo completo e soprattutto non è facile <strong>modificarli</strong>, spesso alcuni servizi sono solo semi-definiti con una parte (spesso predominate) magari ancora in XML, ma non parte dello schema della richiesta. Questa situazione è spesso solo la spia del fatto che si è sbagliato nel definire le interfacce, che risultano <strong>complesse</strong> ed devono essere <strong>cambiate molto spesso</strong>, perché sono poste al livello sbagliato.</p>
<p>Ultima nota a livello generale: in programmazione qualcosa di inutile è quasi sempre <strong>dannoso</strong>, specie un&#8217;astrazione.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andreamurru.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andreamurru.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andreamurru.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andreamurru.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andreamurru.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andreamurru.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andreamurru.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andreamurru.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andreamurru.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andreamurru.wordpress.com/96/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreamurru.wordpress.com&blog=2297529&post=96&subd=andreamurru&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://andreamurru.wordpress.com/2009/03/12/alcuni-modi-comuni-per-rovinarsi-la-vita-con-lxml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c533f393aa0365e59024d333b02b0b3f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Andrea Murru</media:title>
		</media:content>
	</item>
		<item>
		<title>Google Protobuf</title>
		<link>http://andreamurru.wordpress.com/2008/07/08/google-protobuf/</link>
		<comments>http://andreamurru.wordpress.com/2008/07/08/google-protobuf/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 22:26:13 +0000</pubDate>
		<dc:creator>Andrea Murru</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[gSOAP]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Protobuf]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://andreamurru.wordpress.com/?p=20</guid>
		<description><![CDATA[Se l&#8217;XML non vi è mai piaciuto e JSON non vi sembra una soluzione adeguata, Protobuf potrebbe essere la soluzione che aspettavate.
L&#8217;idea interessante è quella di generare delle classi (ad esempio in C++) che forniscono un accesso estremamente comodo attraverso setters e getters (anche se io avrei fatto una scelta diversa) e integrazione con le [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreamurru.wordpress.com&blog=2297529&post=20&subd=andreamurru&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Se l&#8217;XML non vi è mai piaciuto e JSON non vi sembra una soluzione adeguata, <a title="Protobuf" href="http://code.google.com/p/protobuf/" target="_blank">Protobuf</a> potrebbe essere la soluzione che aspettavate.</p>
<p>L&#8217;idea interessante è quella di generare delle classi (ad esempio in C++) che forniscono un accesso estremamente comodo attraverso setters e getters (anche se io avrei fatto una scelta diversa) e integrazione con le funzionalità del linguaggio (come gli stream di IO) e contemporaneamente estremamente efficiente in termini di parsing (realizzato infatti ad hoc per il singolo schema)  e memorizzazione (direttamente in strutture del linguaggio).</p>
<p>Da molti punti di vista un approccio di questo tipo è la soluzione ottimale nel caso in cui si abbia a che fare con dati con una struttura omogenea e nota a priori, la cui manipolazione ha un peso significativo per l&#8217;efficienza del sistema nel complesso.</p>
<p>Non sono un fan dell&#8217;XML, ma non posso non notare che una soluzione del genere è implementabile anche con XML (e viene nei fatti usata da tempo ad esempio da <a title="gSOAP" href="http://www.cs.fsu.edu/~engelen/soap.html" target="_blank">gSOAP</a>), ma non con JSON che manca di uno standard di definizione degli schemi. Rispetto a XML però non so dire quali siano i vantaggi: semplicità nella generazione delle classi nel linguaggio scelto ? Efficienza nella rappresentazione dei dati (utile ad esempio per ridurre la banda in caso di trasmissione) ? Efficienza comunque nel parsing (anche se ad hoc per schema) ? Non saprei, presto per dirlo, ma se dovesse servirmi qualcosa del genere, darò sicuramente un&#8217;occhiata più approfondita a questa libreria.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/andreamurru.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/andreamurru.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andreamurru.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andreamurru.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andreamurru.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andreamurru.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andreamurru.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andreamurru.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andreamurru.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andreamurru.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andreamurru.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andreamurru.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andreamurru.wordpress.com&blog=2297529&post=20&subd=andreamurru&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://andreamurru.wordpress.com/2008/07/08/google-protobuf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c533f393aa0365e59024d333b02b0b3f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Andrea Murru</media:title>
		</media:content>
	</item>
	</channel>
</rss>