<?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>Paul Donnelly</title>
	<atom:link href="http://paul.donnelly.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://paul.donnelly.org</link>
	<description>my personal blog and netstream</description>
	<lastBuildDate>Thu, 01 Sep 2011 18:44:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Protected: Top movies</title>
		<link>http://paul.donnelly.org/2011/09/01/top-movies/</link>
		<comments>http://paul.donnelly.org/2011/09/01/top-movies/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 17:22:17 +0000</pubDate>
		<dc:creator>Paul Donnelly</dc:creator>
				<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://paul.donnelly.org/?p=156</guid>
		<description><![CDATA[There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[<form action="http://paul.donnelly.org/blog/wp-pass.php" method="post">
<p>This post is password protected. To view it please enter your password below:</p>
<p><label for="pwbox-156">Password:<br />
<input name="post_password" id="pwbox-156" type="password" size="20" /></label><br />
<input type="submit" name="Submit" value="Submit" /></p></form>



Share:


	<a rel="nofollow" id="email" target="_blank" href="mailto:?subject=Top%20movies&amp;body=http%3A%2F%2Fpaul.donnelly.org%2F2011%2F09%2F01%2Ftop-movies%2F" title="E-mail this story to a friend!"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="del.icio.us" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fpaul.donnelly.org%2F2011%2F09%2F01%2Ftop-movies%2F&amp;title=Top%20movies&amp;notes=%7B%22pipe_id%22%3A%2231d88b9cc8140aa49b9698b184b272ea%22%2C%22_btype%22%3A%22list%22%7D%0D%0A%0D%0A%0D%0AThis%20was%20created%20with%202%20lines%20of%20code%3A%0D%0A%0D%0A%26lt%3Bscript%20src%3D%22http%3A%2F%2Fl.yimg.com%2Fa%2Fi%2Fus%2Fpps%2Flistbadge_1.4.js%22%26gt%3B%7B%22pipe_id%22%3A%2231d88b9cc8140aa49b9698b184b272ea%22%2C%22_btype%22%3A%22list%22%7D%26lt%3B%2Fscript%26" title="del.icio.us"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoobuzz" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fpaul.donnelly.org%2F2011%2F09%2F01%2Ftop-movies%2F&amp;submitHeadline=Top%20movies&amp;submitSummary=%7B%22pipe_id%22%3A%2231d88b9cc8140aa49b9698b184b272ea%22%2C%22_btype%22%3A%22list%22%7D%0D%0A%0D%0A%0D%0AThis%20was%20created%20with%202%20lines%20of%20code%3A%0D%0A%0D%0A%26lt%3Bscript%20src%3D%22http%3A%2F%2Fl.yimg.com%2Fa%2Fi%2Fus%2Fpps%2Flistbadge_1.4.js%22%26gt%3B%7B%22pipe_id%22%3A%2231d88b9cc8140aa49b9698b184b272ea%22%2C%22_btype%22%3A%22list%22%7D%26lt%3B%2Fscript%26&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow" id="twitthis" target="_blank" href="" title="TwitThis"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow" id="digg" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fpaul.donnelly.org%2F2011%2F09%2F01%2Ftop-movies%2F&amp;title=Top%20movies&amp;bodytext=%7B%22pipe_id%22%3A%2231d88b9cc8140aa49b9698b184b272ea%22%2C%22_btype%22%3A%22list%22%7D%0D%0A%0D%0A%0D%0AThis%20was%20created%20with%202%20lines%20of%20code%3A%0D%0A%0D%0A%26lt%3Bscript%20src%3D%22http%3A%2F%2Fl.yimg.com%2Fa%2Fi%2Fus%2Fpps%2Flistbadge_1.4.js%22%26gt%3B%7B%22pipe_id%22%3A%2231d88b9cc8140aa49b9698b184b272ea%22%2C%22_btype%22%3A%22list%22%7D%26lt%3B%2Fscript%26" title="Digg"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" id="facebook" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fpaul.donnelly.org%2F2011%2F09%2F01%2Ftop-movies%2F&amp;t=Top%20movies" title="Facebook"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" id="dzone" target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fpaul.donnelly.org%2F2011%2F09%2F01%2Ftop-movies%2F&amp;title=Top%20movies" title="DZone"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow" id="print" target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fpaul.donnelly.org%2F2011%2F09%2F01%2Ftop-movies%2F&amp;partner=sociable" title="Print this article!"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://paul.donnelly.org/2011/09/01/top-movies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running and Cooking &#8211; a new year resolution</title>
		<link>http://paul.donnelly.org/2010/01/18/running-and-cooking-a-new-year-resolution/</link>
		<comments>http://paul.donnelly.org/2010/01/18/running-and-cooking-a-new-year-resolution/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 06:20:24 +0000</pubDate>
		<dc:creator>Paul Donnelly</dc:creator>
				<category><![CDATA[food]]></category>
		<category><![CDATA[running]]></category>
		<category><![CDATA[cooking]]></category>

		<guid isPermaLink="false">http://paul.donnelly.org/?p=142</guid>
		<description><![CDATA[Last year I decided I would commit myself to trail running on a consistent basis. I&#8217;m usually pretty bad at sticking to my resolutions, but trail running did seem to stick and is something I now enjoy.  I have my friend Brad to thank for dragging me out to my first trail race in Sept [...]]]></description>
			<content:encoded><![CDATA[<p>Last year I decided I would commit myself to trail running on a consistent basis. I&#8217;m usually pretty bad at sticking to my resolutions, but trail running <em>did </em>seem to stick and is something I now enjoy.  I have my friend <a href="http://www.b7j0c.org/" target="_blank">Brad </a>to thank for dragging me out to my first trail race in Sept 08.</p>
<p>As the year progressed so did my results:</p>
<ol>
<li><a href="http://www.pctrailruns.com/AI_SMMR_RESULTS_09.HTM" target="_blank">Angel Island</a> (8k) &#8211; 6/20/09 &#8211; 47th Place</li>
<li><a href="http://www.pctrailruns.com/SCM_RESULTS_09.HTM" target="_blank">Santa Cruz Mtns.</a> (10k) &#8211; 9/27/09 &#8211; 56th Place</li>
<li><a href="http://www.pctrailruns.com/SR_RESULTS_09.HTM" target="_blank">Skyline Ridge</a> (14k) &#8211; 10/04/09 &#8211; 36th Place</li>
<li><a href="http://www.pctrailruns.com/SMM_RESULTS_09.HTM" target="_blank">Santa Monica Mtns. (</a>9k) &#8211; 11/22/09 &#8211; 28th Place</li>
</ol>
<p>For 2010 I plan to race the mid distance runs ~17-24k.</p>
<p>Also for 2010, I plan to cook more! As a passive fan of <a href="http://smittenkitchen.com" target="_blank">smittenkitchen.com</a> I finally made something from their wonderful website &#8211; home made <a href="http://smittenkitchen.com/2010/01/tomato-sauce-with-butter-and-onions/" target="_blank">tomato sauce with onion and butter</a>. <img class="alignright" src="http://photos-a.ak.fbcdn.net/hphotos-ak-snc3/hs170.snc3/19762_278605643831_669473831_4396059_8178789_n.jpg" alt="" width="182" height="217" />It came out pretty damm good.</p>
<p>I bookmarked a few more things to try out:</p>
<ul>
<li><a href="http://smittenkitchen.com/2008/01/fried-chicken/" target="_blank">fried chicken</a></li>
<li><a href="http://smittenkitchen.com/2008/11/chicken-pot-pie/" target="_blank">chicken pot pie</a></li>
<li><a href="http://smittenkitchen.com/2006/08/the-taco-joint-on-my-shirt/" target="_blank">chicken tacos</a></li>
<li><a href="http://smittenkitchen.com/2009/03/beef-empanadas/" target="_blank">beef empanadas</a></li>
<li><a href="http://smittenkitchen.com/2009/03/bialys/" target="_blank">bialys</a></li>
<li><a href="http://smittenkitchen.com/2008/10/meatballs-and-spaghetti/" target="_blank">meatballs and spaghetti</a></li>
<li><a href="http://smittenkitchen.com/2007/01/baklasagne/" target="_blank">fresh pasta + basic tomato sauce</a></li>
<li><a href="http://smittenkitchen.com/2008/02/matzo-ball-soup/" target="_blank">matzo ball soup</a></li>
<li><a href="http://smittenkitchen.com/2007/10/arroz-con-pollo/" target="_blank">arroz con pollo</a></li>
<li><a href="http://smittenkitchen.com/2007/01/pizza-and-the-limits-of-diy/" target="_blank">really simple homemade pizza</a></li>
<li><a href="http://smittenkitchen.com/2007/09/pizza-even-sweeter/" target="_blank">pizza</a></li>
<li><a href="http://smittenkitchen.com/2007/02/knotted-and-stacked-disappearing-acts/" target="_blank">miniature soft pretzels</a></li>
<li><a href="http://smittenkitchen.com/2009/02/meatball-sliders/" target="_blank">meatball sliders</a></li>
<li><a href="http://smittenkitchen.com/2009/06/spanakopita-triangles-then-some/" target="_blank">spanakopita triangles</a></li>
<li><a href="http://smittenkitchen.com/2008/12/potato-pancakes-even-better/" target="_blank">potato pancakes</a></li>
<li><a href="http://smittenkitchen.com/2008/08/crisp-rosemary-flatbread/" target="_blank">crisp rosemary flatbread</a></li>
<li><a href="http://smittenkitchen.com/2009/06/cheese-straws/" target="_blank">cheese straws</a></li>
<li><a href="http://smittenkitchen.com/2009/10/baked-chicken-meatballs/" target="_blank">baked chicken meatballs</a></li>
</ul>
<p>And the <a href="http://smittenkitchen.com/recipes/" target="_blank">master list</a>.</p>



Share:


	<a rel="nofollow" id="email" target="_blank" href="mailto:?subject=Running%20and%20Cooking%20-%20a%20new%20year%20resolution&amp;body=http%3A%2F%2Fpaul.donnelly.org%2F2010%2F01%2F18%2Frunning-and-cooking-a-new-year-resolution%2F" title="E-mail this story to a friend!"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="del.icio.us" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fpaul.donnelly.org%2F2010%2F01%2F18%2Frunning-and-cooking-a-new-year-resolution%2F&amp;title=Running%20and%20Cooking%20-%20a%20new%20year%20resolution&amp;notes=Last%20year%20I%20decided%20I%20would%20commit%20myself%20to%20trail%20running%20on%20a%20consistent%20basis.%20I%27m%20usually%20pretty%20bad%20at%20sticking%20to%20my%20resolutions%2C%20but%20trail%20running%20did%20seem%20to%20stick%20and%20is%20something%20I%20now%20enjoy.%C2%A0%20I%20have%20my%20friend%20Brad%20to%20thank%20for%20dragging%20me" title="del.icio.us"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoobuzz" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fpaul.donnelly.org%2F2010%2F01%2F18%2Frunning-and-cooking-a-new-year-resolution%2F&amp;submitHeadline=Running%20and%20Cooking%20-%20a%20new%20year%20resolution&amp;submitSummary=Last%20year%20I%20decided%20I%20would%20commit%20myself%20to%20trail%20running%20on%20a%20consistent%20basis.%20I%27m%20usually%20pretty%20bad%20at%20sticking%20to%20my%20resolutions%2C%20but%20trail%20running%20did%20seem%20to%20stick%20and%20is%20something%20I%20now%20enjoy.%C2%A0%20I%20have%20my%20friend%20Brad%20to%20thank%20for%20dragging%20me&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow" id="twitthis" target="_blank" href="" title="TwitThis"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow" id="digg" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fpaul.donnelly.org%2F2010%2F01%2F18%2Frunning-and-cooking-a-new-year-resolution%2F&amp;title=Running%20and%20Cooking%20-%20a%20new%20year%20resolution&amp;bodytext=Last%20year%20I%20decided%20I%20would%20commit%20myself%20to%20trail%20running%20on%20a%20consistent%20basis.%20I%27m%20usually%20pretty%20bad%20at%20sticking%20to%20my%20resolutions%2C%20but%20trail%20running%20did%20seem%20to%20stick%20and%20is%20something%20I%20now%20enjoy.%C2%A0%20I%20have%20my%20friend%20Brad%20to%20thank%20for%20dragging%20me" title="Digg"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" id="facebook" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fpaul.donnelly.org%2F2010%2F01%2F18%2Frunning-and-cooking-a-new-year-resolution%2F&amp;t=Running%20and%20Cooking%20-%20a%20new%20year%20resolution" title="Facebook"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" id="dzone" target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fpaul.donnelly.org%2F2010%2F01%2F18%2Frunning-and-cooking-a-new-year-resolution%2F&amp;title=Running%20and%20Cooking%20-%20a%20new%20year%20resolution" title="DZone"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow" id="print" target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fpaul.donnelly.org%2F2010%2F01%2F18%2Frunning-and-cooking-a-new-year-resolution%2F&amp;partner=sociable" title="Print this article!"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://paul.donnelly.org/2010/01/18/running-and-cooking-a-new-year-resolution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YQL and JSONP-X (aka. json-p-x, jsonpx, json-px)</title>
		<link>http://paul.donnelly.org/2009/07/08/yql-and-jsonp-x/</link>
		<comments>http://paul.donnelly.org/2009/07/08/yql-and-jsonp-x/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 22:23:34 +0000</pubDate>
		<dc:creator>Paul Donnelly</dc:creator>
				<category><![CDATA[yahoo]]></category>
		<category><![CDATA[pipes]]></category>
		<category><![CDATA[yql]]></category>

		<guid isPermaLink="false">http://paul.donnelly.org/?p=96</guid>
		<description><![CDATA[With all the buzz about YQL&#8217;s new Insert/Update/Delete, a new feature JSONP-X was also released at the same time. JSONP-X is essentially an escaped XML string as a JSON result wrapped in a javascript callback function. To access this functionality consider this example: http://query.yahooapis.com/v1/public/yql?q=&#60;my yql query&#62;&#38;format=xml&#38;callback=mycallback and a basic structure: myJSCallbackFunction({ "query": {yql meta data [...]]]></description>
			<content:encoded><![CDATA[<p>With all the buzz about YQL&#8217;s new Insert/Update/Delete, a new feature JSONP-X was also released at the same time.</p>
<p>JSONP-X is essentially an <em>escaped XML string as a JSON result wrapped in a javascript callback function</em>. To access this functionality consider this example:<br />
http://query.yahooapis.com/v1/public/yql?q=&lt;my yql query&gt;&amp;format=xml&amp;callback=mycallback</p>
<p>and a basic structure:</p>
<pre>myJSCallbackFunction({
    "query": {yql meta data here},
    "results": ["&lt;escaped xml/html here&gt;"]
});</pre>
<p>The power of YQL&#8217;s JSONP-X really comes into play when page scraping a website. It allows you to extract HTML &#8211; keeping the HTML structure in the JSON results and using Javascript to innerHTML the results into your webpage. This makes badging much easier. (YQL and Pipes <strong>respect</strong> robots.txt so html scraping will only work on sites that are happy to have their content indexed by search engines and cached elsewhere.)</p>
<p>I&#8217;m a cycling fan and the Tour de France is the World Series of cycling. So I wanted to create a badge that leveraged the new JSONP-X feature to extract the nice results module on <a href="http://www.letour.fr/us/homepage_courseTDF.html" target="_blank">http://www.letour.fr/us/homepage_courseTDF.html</a></p>
<p>For the impatient, here is the final example page: <a href="http://paul.donnelly.org/demos/YQL_JSONP-X.html" target="_blank">http://paul.donnelly.org/demos/YQL_JSONP-X.html</a></p>
<p><a href="http://paul.donnelly.org/blog/wp-content/uploads/2009/07/letour.png"><img class="alignnone size-medium wp-image-98" title="letour" src="http://paul.donnelly.org/blog/wp-content/uploads/2009/07/letour-300x129.png" alt="" width="300" height="129" /></a></p>
<p>First of all page scraping www.letour.fr to get this module wasn&#8217;t exactly straight forward. Upon further inspection of this page, that module is created dynamically based on the current stage.</p>
<p><a href="http://developer.yahoo.com/yql/console/?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fwww.letour.fr%2Fus%2Fhomepage_courseTDF.html%22%20and%20xpath%20%3D%20%27%2F%2Fdiv[%40id%3D%22maillotDyn%22]%27" target="_blank">select * from html where url=&#8221;http://www.letour.fr/us/homepage_courseTDF.html&#8221; and xpath = &#8216;//div[@id="maillotDyn"]&#8216;</a></p>
<p>The above query yielded an empty div.</p>
<p>Upon further poking of the page I found that this function:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">maillotFunc <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	makeRequest<span style="color: #009900;">&#40;</span>prefixPath <span style="color: #339933;">+</span> <span style="color: #3366CC;">'blocPorteursMaillots.html?'</span><span style="color: #339933;">+</span>timestamp<span style="color: #339933;">,</span> <span style="color: #3366CC;">'maillotDyn'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'HTML'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>created the module.</p>
<p>Now that I found the function I knew the html page that I needed to scrape.</p>
<p>But what is the &#8220;prefixPath&#8221;. Apparently this was generated dynamically on the front page and was defined in the Javascript. I could create a YQL Execute statement that regex&#8217;s that script node or&#8230;wait..</p>
<p>I also noticed that href paths to various links had the dynamically created &#8220;prefixPath&#8221; as well, for example:</p>
<div style="overflow:auto">
<pre>&lt;li class="level2"&gt;&lt;a href="/2009/TDF/LIVE/us/500/classement/index.html"&gt;Standings&lt;/a&gt;&lt;/li&gt;</pre>
</div>
<p>Ah, yes I can use that path to construct &#8220;<a href="http://www.letour.fr/2009/TDF/LIVE/us/500/blocPorteursMaillots.html" target="_blank">http://www.letour.fr/2009/TDF/LIVE/us/500/blocPorteursMaillots.html</a>&#8221; the final endpoint.</p>
<p>OK, so lets create a YQL query that fetchs me one of those links:</p>
<p><a href="http://developer.yahoo.com/yql/console/?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fwww.letour.fr%2Fus%2Fhomepage_courseTDF.html%22%20and%20xpath%20%3D%20%22%2F%2Fli[%40class%3D%27level2%27][2]%2Fa%22">select * from html where url=&#8221;http://www.letour.fr/us/homepage_courseTDF.html&#8221; and xpath = &#8220;//li[@class='level2'][2]/a&#8221;</a></p>
<p>Great, now I have a nice result that gives me my prefix. So now, how do I go about regexing that path out and construct the final and complete URL that I need? I guess I&#8217;ll have to create a YQL execute statement that performs the regex. But wait. I&#8217;m feeling kind of lazy this morning and don&#8217;t want to spend alot of time on this.</p>
<p>I can use Yahoo Pipes to leverage my regex! Get the cleaned up results from Yahoo Pipes as JSON and then do my final JSONP-X call. Check out the Pipe <a href="http://pipes.yahoo.com/pipes/pipe.edit?_id=KBC0Ye1r3hGpf2CaqevxTA" target="_blank">here</a>.</p>
<p><a href="http://paul.donnelly.org/blog/wp-content/uploads/2009/07/pipesyql.png"><img class="alignnone size-medium wp-image-109" title="pipesyql" src="http://paul.donnelly.org/blog/wp-content/uploads/2009/07/pipesyql-300x175.png" alt="" width="300" height="175" /></a></p>
<p>In my Pipe, I use the YQL module to get the prefixPath from the A tag. I then use the Regex module to construct the final URL I want YQL to scrape. (In [item.href] Replace [^(.*?)/classement.*] with [http://www.letour.fr$1/blocPorteursMaillots.html])</p>
<p>Sweet. I then can use <a href="http://pipes.yahoo.com/pipes/pipe.run?_id=KBC0Ye1r3hGpf2CaqevxTA&amp;_render=json">http://pipes.yahoo.com/pipes/pipe.run?_id=KBC0Ye1r3hGpf2CaqevxTA&amp;_render=json</a> as a way to get to my final URL via a sub select.</p>
<p>This is the final YQL statement I used: <a href="http://developer.yahoo.com/yql/console/?q=select%20*%20from%20html%20where%20url%20in%20%28select%20href%20from%20json%20where%20url%3D%22http%3A%2F%2Fpipes.yahoo.com%2Fpipes%2Fpipe.run%3F_id%3DKBC0Ye1r3hGpf2CaqevxTA%26_render%3Djson%22%20and%20itemPath%20%3D%20%22json.value.items%22%29%20and%20xpath%20%3D%20%22%2Fhtml%2Fbody%2Fdiv%22" target="_blank">select * from html where url in (select href from json where url=&#8221;http://pipes.yahoo.com/pipes/pipe.run?_id=KBC0Ye1r3hGpf2CaqevxTA&amp;_render=json&#8221; and itemPath = &#8220;json.value.items&#8221;) and xpath = &#8220;/html/body/div&#8221;</a></p>
<p>and this is the JSONP-X call: <a href="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%20in%20%28select%20href%20from%20json%20where%20url%3D%22http%3A%2F%2Fpipes.yahoo.com%2Fpipes%2Fpipe.run%3F_id%3DKBC0Ye1r3hGpf2CaqevxTA%26_render%3Djson%22%20and%20itemPath%20%3D%20%22json.value.items%22%29%20and%20xpath%20%3D%20%22%2Fhtml%2Fbody%2Fdiv%22&amp;format=xml&amp;callback=phoningHome" target="_blank">http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%20in%20%28select%20href%20from%20json%20where%20url%3D%22http%3A%2F%2Fpipes.yahoo.com%2Fpipes%2Fpipe.run%3F_id%3DKBC0Ye1r3hGpf2CaqevxTA%26_render%3Djson%22%20and%20itemPath%20%3D%20%22json.value.items%22%29%20and%20xpath%20%3D%20%22%2Fhtml%2Fbody%2Fdiv%22&amp;format=xml&amp;callback=phoningHome</a></p>
<p>and the JSONP-X structure:</p>
<div style="overflow:auto">
<pre>phoningHome({
    "query": {
        "count": "1",
        "created": "2009-07-10T07:09:52Z",
        "lang": "en-US",
        "updated": "2009-07-10T07:09:52Z",
        "uri": "http://query.yahooapis.com/v1/yql?q=select+*+from+html+where+url+in+%28select+href+from+json+where+url%3D%22http%3A%2F%2Fpipes.yahoo.com%2Fpipes%2Fpipe.run%3F_id%3DKBC0Ye1r3hGpf2CaqevxTA%26_render%3Djson%22+and+itemPath+%3D+%22json.value.items%22%29+and+xpath+%3D+%22%2Fhtml%2Fbody%2Fdiv%22",
        "diagnostics": {
            "publiclyCallable": "true",
            "url": [{
                "execution-time": "14",
                "content": "http://pipes.yahoo.com/pipes/pipe.run?_id=KBC0Ye1r3hGpf2CaqevxTA&amp;_render=json"
            },
            {
                "execution-time": "350",
                "content": "http://www.letour.fr/2009/TDF/LIVE/us/700/blocPorteursMaillots.html"
            }],
            "user-time": "370",
            "service-time": "364",
            "build-version": "2174"
        }
    },
    "results": ["&lt;div id=\"maillots\"&gt;\n    &lt;h2&gt;Jersey holders&lt;\/h2&gt;\n    &lt;noscript&gt;\n      &lt;div class=\"errormes\"&gt;\n        &lt;p&gt;Activate Javascript/Flash for the automatic refresh and\n        the display of the tabs.&lt;\/p&gt;\n      &lt;\/div&gt;\n    &lt;\/noscript&gt; \n    &lt;div id=\"porteurmaillotGeneral\"&gt;\n      &lt;ul&gt;\n        &lt;li class=\"jaune\"&gt;\n          &lt;a href=\"/2009/TDF/RIDERS/us/coureurs/33.html\" onclick=\"SesameCoureur('/2009/TDF/RIDERS/us/coureurs/33.html');return false;\"&gt;CANCELLARA\n          F.&lt;\/a&gt;\n          &lt;a class=\"cob\" href=\"/2009/TDF/RIDERS/us/coureurs/33.html\" onclick=\"SesameCoureur('/2009/TDF/RIDERS/us/coureurs/33.html');return false;\"&gt;SAX&lt;\/a&gt;\n        &lt;\/li&gt;\n        &lt;li class=\"vert\"&gt;\n          &lt;a href=\"/2009/TDF/RIDERS/us/coureurs/71.html\" onclick=\"SesameCoureur('/2009/TDF/RIDERS/us/coureurs/71.html');return false;\"&gt;CAVENDISH\n          M.&lt;\/a&gt;\n          &lt;a class=\"cob\" href=\"/2009/TDF/RIDERS/us/coureurs/71.html\" onclick=\"SesameCoureur('/2009/TDF/RIDERS/us/coureurs/71.html');return false;\"&gt;THR&lt;\/a&gt;\n        &lt;\/li&gt;\n        &lt;li class=\"apois\"&gt;\n          &lt;a href=\"/2009/TDF/RIDERS/us/coureurs/122.html\" onclick=\"SesameCoureur('/2009/TDF/RIDERS/us/coureurs/122.html');return false;\"&gt;AUGE\n          S.&lt;\/a&gt;\n          &lt;a class=\"cob\" href=\"/2009/TDF/RIDERS/us/coureurs/122.html\" onclick=\"SesameCoureur('/2009/TDF/RIDERS/us/coureurs/122.html');return false;\"&gt;COF&lt;\/a&gt;\n        &lt;\/li&gt;\n        &lt;li class=\"blanc\"&gt;\n          &lt;a href=\"/2009/TDF/RIDERS/us/coureurs/76.html\" onclick=\"SesameCoureur('/2009/TDF/RIDERS/us/coureurs/76.html');return false;\"&gt;MARTIN\n          T.&lt;\/a&gt;\n          &lt;a class=\"cob\" href=\"/2009/TDF/RIDERS/us/coureurs/76.html\" onclick=\"SesameCoureur('/2009/TDF/RIDERS/us/coureurs/76.html');return false;\"&gt;THR&lt;\/a&gt;\n        &lt;\/li&gt;\n      &lt;\/ul&gt;\n    &lt;\/div&gt;&lt;\/div&gt;"]
});</pre>
</div>
<p>Like I said, letour.fr didn&#8217;t make it easy, but most websites are much easier to scrape if it&#8217;s static html.</p>
<p>Now the easy part. Here&#8217;s the JS source that makes the YQL JSONP-X call, parses it and innerHTML&#8217;s the escaped HTML into a div.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> sURL <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%20in%20%28select%20href%20from%20json%20where%20url%3D%22http%3A%2F%2Fpipes.yahoo.com%2Fpipes%2Fpipe.run%3F_id%3DKBC0Ye1r3hGpf2CaqevxTA%26_render%3Djson%22%20and%20itemPath%20%3D%20%22json.value.items%22%29%20and%20xpath%20%3D%20%22%2Fhtml%2Fbody%2Fdiv%22&amp;amp;format=xml&amp;amp;callback=phoningHome&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> transactionObj <span style="color: #339933;">=</span> YAHOO.<span style="color: #660066;">util</span>.<span style="color: #660066;">Get</span>.<span style="color: #660066;">script</span><span style="color: #009900;">&#40;</span>sURL<span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
    onSuccess <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>o<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>o.<span style="color: #660066;">purge</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    onFailure <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>YAHOO.<span style="color: #660066;">util</span>.<span style="color: #660066;">Dom</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;badge&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;error&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    scope     <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">this</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> phoningHome <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>r<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #006600; font-style: italic;">//the callback function</span>
     YAHOO.<span style="color: #660066;">util</span>.<span style="color: #660066;">Dom</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;badge&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> r.<span style="color: #660066;">results</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>And finally, the final example page <a href="http://paul.donnelly.org/demos/YQL_JSONP-X.html" target="_blank">here</a>, and <a href="view-source:http://paul.donnelly.org/demos/YQL_JSONP-X.html" target="_blank">source</a>.</p>
<p>Footnotes:</p>
<p>The main trouble with this method is, you have manually copy over the CSS from the site you are scraping from if you want to render their styling. If you copy over their entire style sheet, you also want to make sure it doesn&#8217;t clash with your existing styles.</p>
<p>Also, it&#8217;s quite easy for the publisher you are scraping from to insert a nasty &lt;script&gt; tag with javascript that does malicious things to your users or page &#8211; so be wary. If you want sanitized HTML output, add the <a href="http://developer.yahoo.com/yql/guide/sorting.html" target="_blank">sanitize </a>option at the end of your YQL query. As of this writing there is a bug if you want to sanitize the entire output &#8211; instead of using sanitize() use: sanitize(field=&#8221;)</p>
<p>If the html you are scraping from uses relative links, (most will) &#8211; I found using the &lt;base&gt; tag useful to ensure these links actually work -or you can regex the results and modify the links that way.</p>
<p>The example page I created is best used if &lt;iframed&gt; as a badge.</p>



Share:


	<a rel="nofollow" id="email" target="_blank" href="mailto:?subject=YQL%20and%20JSONP-X%20%28aka.%20json-p-x%2C%20jsonpx%2C%20json-px%29&amp;body=http%3A%2F%2Fpaul.donnelly.org%2F2009%2F07%2F08%2Fyql-and-jsonp-x%2F" title="E-mail this story to a friend!"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="del.icio.us" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fpaul.donnelly.org%2F2009%2F07%2F08%2Fyql-and-jsonp-x%2F&amp;title=YQL%20and%20JSONP-X%20%28aka.%20json-p-x%2C%20jsonpx%2C%20json-px%29&amp;notes=With%20all%20the%20buzz%20about%20YQL%27s%20new%20Insert%2FUpdate%2FDelete%2C%20a%20new%20feature%20JSONP-X%20was%20also%20released%20at%20the%20same%20time.%0D%0A%0D%0AJSONP-X%20is%20essentially%20an%20escaped%20XML%20string%20as%20a%20JSON%20result%20wrapped%20in%20a%20javascript%20callback%20function.%20To%20access%20this%20functionality" title="del.icio.us"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoobuzz" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fpaul.donnelly.org%2F2009%2F07%2F08%2Fyql-and-jsonp-x%2F&amp;submitHeadline=YQL%20and%20JSONP-X%20%28aka.%20json-p-x%2C%20jsonpx%2C%20json-px%29&amp;submitSummary=With%20all%20the%20buzz%20about%20YQL%27s%20new%20Insert%2FUpdate%2FDelete%2C%20a%20new%20feature%20JSONP-X%20was%20also%20released%20at%20the%20same%20time.%0D%0A%0D%0AJSONP-X%20is%20essentially%20an%20escaped%20XML%20string%20as%20a%20JSON%20result%20wrapped%20in%20a%20javascript%20callback%20function.%20To%20access%20this%20functionality&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow" id="twitthis" target="_blank" href="" title="TwitThis"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow" id="digg" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fpaul.donnelly.org%2F2009%2F07%2F08%2Fyql-and-jsonp-x%2F&amp;title=YQL%20and%20JSONP-X%20%28aka.%20json-p-x%2C%20jsonpx%2C%20json-px%29&amp;bodytext=With%20all%20the%20buzz%20about%20YQL%27s%20new%20Insert%2FUpdate%2FDelete%2C%20a%20new%20feature%20JSONP-X%20was%20also%20released%20at%20the%20same%20time.%0D%0A%0D%0AJSONP-X%20is%20essentially%20an%20escaped%20XML%20string%20as%20a%20JSON%20result%20wrapped%20in%20a%20javascript%20callback%20function.%20To%20access%20this%20functionality" title="Digg"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" id="facebook" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fpaul.donnelly.org%2F2009%2F07%2F08%2Fyql-and-jsonp-x%2F&amp;t=YQL%20and%20JSONP-X%20%28aka.%20json-p-x%2C%20jsonpx%2C%20json-px%29" title="Facebook"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" id="dzone" target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fpaul.donnelly.org%2F2009%2F07%2F08%2Fyql-and-jsonp-x%2F&amp;title=YQL%20and%20JSONP-X%20%28aka.%20json-p-x%2C%20jsonpx%2C%20json-px%29" title="DZone"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow" id="print" target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fpaul.donnelly.org%2F2009%2F07%2F08%2Fyql-and-jsonp-x%2F&amp;partner=sociable" title="Print this article!"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://paul.donnelly.org/2009/07/08/yql-and-jsonp-x/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Top 10 YQL execute links</title>
		<link>http://paul.donnelly.org/2009/05/02/top-10-yql-execute-links/</link>
		<comments>http://paul.donnelly.org/2009/05/02/top-10-yql-execute-links/#comments</comments>
		<pubDate>Sat, 02 May 2009 18:42:39 +0000</pubDate>
		<dc:creator>Paul Donnelly</dc:creator>
				<category><![CDATA[yahoo]]></category>
		<category><![CDATA[yql]]></category>

		<guid isPermaLink="false">http://paul.donnelly.org/?p=88</guid>
		<description><![CDATA[Some links about YQL&#8217;s new execute feature: http://developer.yahoo.net/blogs/theater/archives/2009/04/yql_execute_screencast.html http://www.yqlblog.net/blog/2009/04/29/do-it-your-way-with-execute-and-open-data-tables/ http://developer.yahoo.net/blog/archives/2009/04/yql_execute.html http://www.readwriteweb.com/archives/theres_a_great_amount_of.php http://ajaxian.com/archives/yql-execute-now-allows-you-to-convert-scraped-data-with-server-side-javascript http://simonwillison.net/2009/Apr/29/yql/ http://blog.programmableweb.com/2009/04/30/yahoos-yql-makes-the-internet-your-database/ http://www.cio.com/article/491215/Yahoo_Extends_YQL_Web_Data_Query_Platform http://radar.oreilly.com/2009/04/four-short-links-30-apr-2009.html http://www.pcworld.com/businesscenter/article/164067/yahoo_extends_yql_web_data_query_platform.html]]></description>
			<content:encoded><![CDATA[<p>Some links about YQL&#8217;s new execute feature:</p>
<ul>
<li><a href="http://developer.yahoo.net/blogs/theater/archives/2009/04/yql_execute_screencast.html">http://developer.yahoo.net/blogs/theater/archives/2009/04/yql_execute_screencast.html</a></li>
<li><a href="http://www.yqlblog.net/blog/2009/04/29/do-it-your-way-with-execute-and-open-data-tables/">http://www.yqlblog.net/blog/2009/04/29/do-it-your-way-with-execute-and-open-data-tables/</a></li>
<li><a href="http://developer.yahoo.net/blog/archives/2009/04/yql_execute.html">http://developer.yahoo.net/blog/archives/2009/04/yql_execute.html</a></li>
<hr />
<li><a href="http://www.readwriteweb.com/archives/theres_a_great_amount_of.php">http://www.readwriteweb.com/archives/theres_a_great_amount_of.php</a></li>
<li><a href="http://ajaxian.com/archives/yql-execute-now-allows-you-to-convert-scraped-data-with-server-side-javascript">http://ajaxian.com/archives/yql-execute-now-allows-you-to-convert-scraped-data-with-server-side-javascript</a></li>
<li><a href="http://simonwillison.net/2009/Apr/29/yql/">http://simonwillison.net/2009/Apr/29/yql/</a></li>
<li><a href="http://blog.programmableweb.com/2009/04/30/yahoos-yql-makes-the-internet-your-database/">http://blog.programmableweb.com/2009/04/30/yahoos-yql-makes-the-internet-your-database/</a></li>
<li><a href="http://www.cio.com/article/491215/Yahoo_Extends_YQL_Web_Data_Query_Platform">http://www.cio.com/article/491215/Yahoo_Extends_YQL_Web_Data_Query_Platform</a></li>
<li><a href="http://radar.oreilly.com/2009/04/four-short-links-30-apr-2009.html">http://radar.oreilly.com/2009/04/four-short-links-30-apr-2009.html</a></li>
<li><a href="http://www.pcworld.com/businesscenter/article/164067/yahoo_extends_yql_web_data_query_platform.html">http://www.pcworld.com/businesscenter/article/164067/yahoo_extends_yql_web_data_query_platform.html</a></li>
</ul>
<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://paul.donnelly.org/2009/05/02/top-10-yql-execute-links/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Yahoo Pipes will not be effected by the closing of Brickhouse</title>
		<link>http://paul.donnelly.org/2008/12/10/yahoo-pipes-will-not-be-effected-by-the-closing-of-brickhouse/</link>
		<comments>http://paul.donnelly.org/2008/12/10/yahoo-pipes-will-not-be-effected-by-the-closing-of-brickhouse/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 19:45:31 +0000</pubDate>
		<dc:creator>Paul Donnelly</dc:creator>
				<category><![CDATA[yahoo]]></category>
		<category><![CDATA[pipes]]></category>

		<guid isPermaLink="false">http://paul.donnelly.org/?p=83</guid>
		<description><![CDATA[There has been some confusion around the net. http://www.techcrunch.com/2008/12/09/yahoo-to-close-brickhouse-by-end-of-year/ http://twitter.com/ccarmichael/statuses/1049692691 http://twitter.com/armoredtech/status/1049651550 http://twitter.com/clintlalonde/statuses/1049663508 http://twitter.com/armoredtech/statuses/1049650384 Yahoo Pipes will not be effected by the closing of Brickhouse. Pipes is currently under the Yahoo Open Social group. So don&#8217;t worry, your Pipes will still be around. Good luck to all the team members in Brickhouse and all of my [...]]]></description>
			<content:encoded><![CDATA[<p>There has been some confusion around the net.</p>
<p><a href="http://www.techcrunch.com/2008/12/09/yahoo-to-close-brickhouse-by-end-of-year/">http://www.techcrunch.com/2008/12/09/yahoo-to-close-brickhouse-by-end-of-year/</a><br />
<a href="http://twitter.com/ccarmichael/statuses/1049692691">http://twitter.com/ccarmichael/statuses/1049692691</a><br />
<a href="http://twitter.com/armoredtech/status/1049651550">http://twitter.com/armoredtech/status/1049651550</a><br />
<a href="http://twitter.com/clintlalonde/statuses/1049663508">http://twitter.com/clintlalonde/statuses/1049663508</a><br />
<a href="http://twitter.com/armoredtech/statuses/1049650384">http://twitter.com/armoredtech/statuses/1049650384</a></p>
<p>Yahoo Pipes will <strong>not</strong> be effected by the closing of Brickhouse. Pipes is currently under the Yahoo Open Social group. So don&#8217;t worry, your Pipes will still be around.</p>
<p>Good luck to all the team members in Brickhouse and all of my Yahoo co-workers that got laid off today.</p>
<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://paul.donnelly.org/2008/12/10/yahoo-pipes-will-not-be-effected-by-the-closing-of-brickhouse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I love chill drum n&#8217; bass.</title>
		<link>http://paul.donnelly.org/2008/11/07/i-love-chill-drum-n-bass/</link>
		<comments>http://paul.donnelly.org/2008/11/07/i-love-chill-drum-n-bass/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 05:43:54 +0000</pubDate>
		<dc:creator>Paul Donnelly</dc:creator>
				<category><![CDATA[music]]></category>
		<category><![CDATA[drumnbass]]></category>
		<category><![CDATA[jungle]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://paul.donnelly.org/?p=78</guid>
		<description><![CDATA[This is one of the better chill mixes I&#8217;ve heard recently. I love this old skool stuff. Still resonates today. (btw, the videos&#8217; suck, the music rocks, have a listen) Everything But The Girl &#8211; Single (Photek remix) GrooveShark link (edit: since the youtube vids are yanked have a listen here) Also this one is [...]]]></description>
			<content:encoded><![CDATA[<p>This is one of the better chill mixes I&#8217;ve heard recently. I love this old skool stuff. Still resonates today.<br />
(btw, the videos&#8217; suck, the music rocks, have a listen)</p>
<p><strong>Everything But The Girl &#8211; Single (Photek remix)</strong><br />
<a href="http://listen.grooveshark.com/#/s/Single+Photek+Remix+/w6MoQ" target="_blank">GrooveShark link (edit: since the youtube vids are yanked have a listen here)</a><br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/gSG1T6jSOVA&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/gSG1T6jSOVA&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>Also this one is quite sick.</p>
<p><strong>Everything But The Girl &#8211; Before Today (Dillinja Remix)</strong><br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/sSbGFmhfTkM&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/sSbGFmhfTkM&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://paul.donnelly.org/2008/11/07/i-love-chill-drum-n-bass/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2-legged OAuth Javascript Function for YQL</title>
		<link>http://paul.donnelly.org/2008/10/31/2-legged-oauth-javascript-function-for-yql/</link>
		<comments>http://paul.donnelly.org/2008/10/31/2-legged-oauth-javascript-function-for-yql/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 07:52:46 +0000</pubDate>
		<dc:creator>Paul Donnelly</dc:creator>
				<category><![CDATA[yahoo]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[yql]]></category>

		<guid isPermaLink="false">http://paul.donnelly.org/?p=36</guid>
		<description><![CDATA[Here is a 2-legged OAuth Javascript function that makes it easy to get YQL results into your Javascript application. First we want to include the oauth javascript libraries obtained from http://oauth.googlecode.com. &#60;script type=&#34;text/javascript&#34; src=&#34;http://oauth.googlecode.com/svn/code/javascript/oauth.js&#34;&#62;&#60;/script&#62; &#60;script type=&#34;text/javascript&#34; src=&#34;http://oauth.googlecode.com/svn/code/javascript/sha1.js&#34;&#62;&#60;/script&#62; It&#8217;s probably best to download those files to your local server, instead of calling them directly from googlecode [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a 2-legged OAuth Javascript function that makes it easy to get <a href="http://developer.yahoo.com/yql/console/" target="_blank">YQL</a> results into your Javascript application.</p>
<p>First we want to include the oauth javascript libraries obtained from <a href="http://oauth.googlecode.com" target="_blank">http://oauth.googlecode.com</a>.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://oauth.googlecode.com/svn/code/javascript/oauth.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://oauth.googlecode.com/svn/code/javascript/sha1.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>It&#8217;s probably best to download those files to your local server, instead of calling them directly from googlecode in this example.</p>
<p>We then want to use function makeSignedRequest to make the signed URL string to query.yahooapis.com so we can get the YQL results.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #003366; font-weight: bold;">var</span> makeSignedRequest <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>ck<span style="color: #339933;">,</span>cks<span style="color: #339933;">,</span>encodedurl<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>     
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> accessor <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> consumerSecret<span style="color: #339933;">:</span> cks<span style="color: #339933;">,</span> tokenSecret<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>          
	<span style="color: #003366; font-weight: bold;">var</span> message <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> action<span style="color: #339933;">:</span> encodedurl<span style="color: #339933;">,</span> method<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;GET&quot;</span><span style="color: #339933;">,</span> parameters<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;oauth_version&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;1.0&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;oauth_consumer_key&quot;</span><span style="color: #339933;">,</span>ck<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
	OAuth.<span style="color: #660066;">setTimestampAndNonce</span><span style="color: #009900;">&#40;</span>message<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	OAuth.<span style="color: #660066;">SignatureMethod</span>.<span style="color: #660066;">sign</span><span style="color: #009900;">&#40;</span>message<span style="color: #339933;">,</span> accessor<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> parameterMap <span style="color: #339933;">=</span> OAuth.<span style="color: #660066;">getParameterMap</span><span style="color: #009900;">&#40;</span>message<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> baseStr <span style="color: #339933;">=</span> OAuth.<span style="color: #660066;">decodeForm</span><span style="color: #009900;">&#40;</span>OAuth.<span style="color: #660066;">SignatureMethod</span>.<span style="color: #660066;">getBaseString</span><span style="color: #009900;">&#40;</span>message<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>           
	<span style="color: #003366; font-weight: bold;">var</span> theSig <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>parameterMap.<span style="color: #660066;">parameters</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> <span style="color: #000066; font-weight: bold;">item</span> <span style="color: #000066; font-weight: bold;">in</span> parameterMap.<span style="color: #660066;">parameters</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> subitem <span style="color: #000066; font-weight: bold;">in</span> parameterMap.<span style="color: #660066;">parameters</span><span style="color: #009900;">&#91;</span><span style="color: #000066; font-weight: bold;">item</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>parameterMap.<span style="color: #660066;">parameters</span><span style="color: #009900;">&#91;</span><span style="color: #000066; font-weight: bold;">item</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>subitem<span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;oauth_signature&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					theSig <span style="color: #339933;">=</span> parameterMap.<span style="color: #660066;">parameters</span><span style="color: #009900;">&#91;</span><span style="color: #000066; font-weight: bold;">item</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>                    
					<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>                      
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> paramList <span style="color: #339933;">=</span> baseStr<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&amp;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	paramList.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;oauth_signature=&quot;</span><span style="color: #339933;">+</span> encodeURIComponent<span style="color: #009900;">&#40;</span>theSig<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	paramList.<span style="color: #660066;">sort</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>a<span style="color: #339933;">,</span>b<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;</span> b<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&gt;</span> b<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;</span> b<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span>  <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&gt;</span> b<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> locString <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> x <span style="color: #000066; font-weight: bold;">in</span> paramList<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		locString <span style="color: #339933;">+=</span> paramList<span style="color: #009900;">&#91;</span>x<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&amp;&quot;</span><span style="color: #339933;">;</span>                
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> finalStr <span style="color: #339933;">=</span> baseStr<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;?&quot;</span> <span style="color: #339933;">+</span> locString.<span style="color: #660066;">slice</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>locString.<span style="color: #660066;">length</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">return</span> finalStr<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Here is an example of how to call the function.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">makeSignedRequest<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&lt;API Key HERE&gt;&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;&lt;Shared Secret HERE&gt;&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;&lt;YQL URL HERE&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>If you havn&#8217;t already created your API key and Shared Secret, you can do so by going <a href="https://developer.yahoo.com/dashboard/createKey.html" target="_blank">here</a>. Use the URL from the <a href="http://developer.yahoo.com/yql/console/" target="_blank">YQL console</a>, located in the <a href="http://paul.donnelly.org/blog/wp-content/uploads/2008/10/yqlurl.jpg" target="_blank">textarea</a> to the right of where you enter the query.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #003366; font-weight: bold;">var</span> signedURL <span style="color: #339933;">=</span> makeSignedRequest<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;dj0yJmk9Rm1MUU9iWmdNZ2FjJmQ9WVdrOVZWWk9Wa3h5TldFbWNHbzlNVEk0TXpNMk1EYzFPQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD1kMg--&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;570e2ef3db460b114e6a0a987709a0f6a90b5ec0&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;http://query.yahooapis.com/v1/yql?q=select%20*%20from%20search.news%20where%20query%3D%22obama%22&amp;format=json&amp;callback=myCallback&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>And it&#8217;s easy as that! You then can make cool apps that use <a href="http://www.hunlock.com/blogs/Mastering_JSON_(_JavaScript_Object_Notation_)#quickIDX11" target="_blank">dynamic script nodes</a> to bring in the YQL data.</p>
<p>Here is a <a href="http://paul.donnelly.org/demos/oauth.htm" target="_blank">sample app</a> created with all the ingredients from above. </p>
<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://paul.donnelly.org/2008/10/31/2-legged-oauth-javascript-function-for-yql/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>visual music.</title>
		<link>http://paul.donnelly.org/2008/10/30/visual-music/</link>
		<comments>http://paul.donnelly.org/2008/10/30/visual-music/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 04:33:22 +0000</pubDate>
		<dc:creator>Paul Donnelly</dc:creator>
				<category><![CDATA[music]]></category>
		<category><![CDATA[bach]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://paul.donnelly.org/?p=40</guid>
		<description><![CDATA[just in time for Halloween.. Share:]]></description>
			<content:encoded><![CDATA[<p>just in time for Halloween..<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/ipzR9bhei_o&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ipzR9bhei_o&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>



Share:


	<a rel="nofollow" id="email" target="_blank" href="mailto:?subject=visual%20music.&amp;body=http%3A%2F%2Fpaul.donnelly.org%2F2008%2F10%2F30%2Fvisual-music%2F" title="E-mail this story to a friend!"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="del.icio.us" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fpaul.donnelly.org%2F2008%2F10%2F30%2Fvisual-music%2F&amp;title=visual%20music.&amp;notes=just%20in%20time%20for%20Halloween..%0D%0A" title="del.icio.us"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoobuzz" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fpaul.donnelly.org%2F2008%2F10%2F30%2Fvisual-music%2F&amp;submitHeadline=visual%20music.&amp;submitSummary=just%20in%20time%20for%20Halloween..%0D%0A&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow" id="twitthis" target="_blank" href="" title="TwitThis"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow" id="digg" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fpaul.donnelly.org%2F2008%2F10%2F30%2Fvisual-music%2F&amp;title=visual%20music.&amp;bodytext=just%20in%20time%20for%20Halloween..%0D%0A" title="Digg"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" id="facebook" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fpaul.donnelly.org%2F2008%2F10%2F30%2Fvisual-music%2F&amp;t=visual%20music." title="Facebook"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" id="dzone" target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fpaul.donnelly.org%2F2008%2F10%2F30%2Fvisual-music%2F&amp;title=visual%20music." title="DZone"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow" id="print" target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fpaul.donnelly.org%2F2008%2F10%2F30%2Fvisual-music%2F&amp;partner=sociable" title="Print this article!"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://paul.donnelly.org/2008/10/30/visual-music/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YQL launches!</title>
		<link>http://paul.donnelly.org/2008/10/29/yql-launches/</link>
		<comments>http://paul.donnelly.org/2008/10/29/yql-launches/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 08:17:17 +0000</pubDate>
		<dc:creator>Paul Donnelly</dc:creator>
				<category><![CDATA[yahoo]]></category>
		<category><![CDATA[yql]]></category>

		<guid isPermaLink="false">http://paul.donnelly.org/?p=26</guid>
		<description><![CDATA[After many months of work, YQL has finally launched. It&#8217;s exciting to see such a powerful tool released that unifies many of Yahoo&#8217;s web services and allows mash ups from external sources. I created the console part of YQL, which is a small part in the YQL picture &#8211; but it allows developers to test [...]]]></description>
			<content:encoded><![CDATA[<p>After many months of work, <a href="http://developer.yahoo.com/yql/" target="_blank">YQL</a> has finally launched. It&#8217;s exciting to see such a powerful tool released that unifies many of Yahoo&#8217;s web services and allows mash ups from external sources.</p>
<p>I created the <a href="http://developer.yahoo.com/yql/console/" target="_blank">console</a> part of YQL, which is a small part in the YQL picture &#8211; but it allows developers to test out  queries quickly without having to setup their environments to debug. OAuth authentication is required to run any YQL query &#8211; since the console doesn&#8217;t need this, it&#8217;s the fastest way to test and create new queries. The console also gives developers sample queries to help them get started and show what data tables are available. YQL results come either in XML, JSON or PHP (if using the <a href="http://developer.yahoo.com/social/php_guide/sdk_yql-using_yql.html" target="_blank">PHP SDK</a>) formats.</p>
<p>Tip &#8211; You can share YQL queries with your friends like this:</p>
<p>http://developer.yahoo.com/yql/console/?q=&lt;query here&gt;</p>
<p><a href="http://developer.yahoo.com/yql/console/?q=select%20urls.url%20from%20flickr.photos.info%20where%20photo_id%20in%20(select%20id%20from%20flickr.photos.search%20where%20text=%22lolcat%22%20limit%2010)" target="_blank">http://developer.yahoo.com/yql/console/?q=select%20urls.url%20from%20flickr.photos.info%20where%20photo_id%20in%20(select%20id%20from%20flickr.photos.search%20where%20text=%22lolcat%22%20limit%2010)</a></p>
<p><a href="http://jonathantrevor.net" target="_blank">Jonathan</a> our team architect gave an awesome presentation recently on YQL, please <a href="http://jonathantrevor.net/?p=15" target="_blank">check it out</a>. Props to the rest of the YQL team <a href="http://nagiworld.net/2008/10/yql-a-query-language-for-the-web" target="_blank">Nagesh</a>, Josh, <a href="http://www.b7j0c.org/" target="_blank">Brad</a> and <a href="http://javarants.com" target="_blank">Sam</a>.</p>



Share:


	<a rel="nofollow" id="email" target="_blank" href="mailto:?subject=YQL%20launches%21&amp;body=http%3A%2F%2Fpaul.donnelly.org%2F2008%2F10%2F29%2Fyql-launches%2F" title="E-mail this story to a friend!"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="del.icio.us" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fpaul.donnelly.org%2F2008%2F10%2F29%2Fyql-launches%2F&amp;title=YQL%20launches%21&amp;notes=After%20many%20months%20of%20work%2C%20YQL%20has%20finally%20launched.%20It%27s%20exciting%20to%20see%20such%20a%20powerful%20tool%20released%20that%20unifies%20many%20of%20Yahoo%27s%20web%20services%20and%20allows%20mash%20ups%20from%20external%20sources.%0D%0A%0D%0AI%20created%20the%20console%20part%20of%20YQL%2C%20which%20is%20a%20small%20part%20i" title="del.icio.us"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoobuzz" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fpaul.donnelly.org%2F2008%2F10%2F29%2Fyql-launches%2F&amp;submitHeadline=YQL%20launches%21&amp;submitSummary=After%20many%20months%20of%20work%2C%20YQL%20has%20finally%20launched.%20It%27s%20exciting%20to%20see%20such%20a%20powerful%20tool%20released%20that%20unifies%20many%20of%20Yahoo%27s%20web%20services%20and%20allows%20mash%20ups%20from%20external%20sources.%0D%0A%0D%0AI%20created%20the%20console%20part%20of%20YQL%2C%20which%20is%20a%20small%20part%20i&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow" id="twitthis" target="_blank" href="" title="TwitThis"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow" id="digg" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fpaul.donnelly.org%2F2008%2F10%2F29%2Fyql-launches%2F&amp;title=YQL%20launches%21&amp;bodytext=After%20many%20months%20of%20work%2C%20YQL%20has%20finally%20launched.%20It%27s%20exciting%20to%20see%20such%20a%20powerful%20tool%20released%20that%20unifies%20many%20of%20Yahoo%27s%20web%20services%20and%20allows%20mash%20ups%20from%20external%20sources.%0D%0A%0D%0AI%20created%20the%20console%20part%20of%20YQL%2C%20which%20is%20a%20small%20part%20i" title="Digg"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" id="facebook" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fpaul.donnelly.org%2F2008%2F10%2F29%2Fyql-launches%2F&amp;t=YQL%20launches%21" title="Facebook"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" id="dzone" target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fpaul.donnelly.org%2F2008%2F10%2F29%2Fyql-launches%2F&amp;title=YQL%20launches%21" title="DZone"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow" id="print" target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fpaul.donnelly.org%2F2008%2F10%2F29%2Fyql-launches%2F&amp;partner=sociable" title="Print this article!"><img src="http://paul.donnelly.org/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://paul.donnelly.org/2008/10/29/yql-launches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

