<?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>George Brocklehurst's weblog &#187; hack day</title>
	<atom:link href="http://blog.georgebrock.com/tag/hack-day/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.georgebrock.com</link>
	<description>Because some things are too long for Twitter</description>
	<lastBuildDate>Fri, 19 Feb 2010 00:15:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Open Hack London: XFN Profile Discovery</title>
		<link>http://blog.georgebrock.com/events/open-hack-london-xfn-profile-discovery</link>
		<comments>http://blog.georgebrock.com/events/open-hack-london-xfn-profile-discovery#comments</comments>
		<pubDate>Wed, 13 May 2009 16:52:49 +0000</pubDate>
		<dc:creator>George Brocklehurst</dc:creator>
				<category><![CDATA[events]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[hack day]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[openhacklondon]]></category>
		<category><![CDATA[social graph]]></category>
		<category><![CDATA[xfn]]></category>
		<category><![CDATA[yql]]></category>

		<guid isPermaLink="false">http://blog.georgebrock.com/?p=162</guid>
		<description><![CDATA[Yahoo hosted another of their Open Hack events in London  this weekend.  I took the opportunity to play around with YQL, the Google Social Graph API and the XFN microformat and built a Greasemonkey script that recognises when you&#8217;re on a social network profile and finds other social network profiles belonging to the [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_163" class="wp-caption alignright" style="width: 213px"><a href="http://blog.georgebrock.com/wp-content/uploads/2009/05/openhack_profile_discovery.png"><img class="size-full wp-image-163" title="XFN profile discovery" src="http://blog.georgebrock.com/wp-content/uploads/2009/05/openhack_profile_discovery.png" alt="Screenshot of XFN profile discovery" width="203" height="512" /></a><p class="wp-caption-text">Screenshot of XFN profile discovery</p></div>
<p><span class="vevent">Yahoo hosted another of their <a class="url summary" href="http://openhacklondon.pbworks.com/">Open Hack</a> events in <span class="location">London</span> <span class="dtstart"><span class="value-title" title="2009-05-09"> </span>this weekend</span></span>.  I took the opportunity to play around with <a href="http://developer.yahoo.com/yql/"><acronym title="Yahoo! Query Language">YQL</acronym></a>, the <a href="http://code.google.com/apis/socialgraph/">Google Social Graph <acronym title="Application Programming Interface">API</acronym></a> and the <a href="http://microformats.org/wiki/xfn"><acronym title="XHTML Friends Network">XFN</acronym> microformat</a> and built a <a href="http://www.greasespot.net/">Greasemonkey</a> script that recognises when you&#8217;re on a social network profile and finds other social network profiles belonging to the same person.</p>
<p>If you want to try it out, just follow these simple steps:</p>
<ol>
<li>Get <a href="http://getfirefox.com">Firefox</a> and <a href="https://addons.mozilla.org/en-US/firefox/addon/748" title="Greasemonkey installation page">Greasemonkey</a>.</li>
<li>Visit this page to install the plugin: <a href="http://georgebrock.com/openhack2009/xfndiscovery.user.js">georgebrock.com/openhack2009/xfndiscovery.user.js</a></li>
<li>Go to a profile page (like a <a href="http://twitter.com/georgebrock" rel="me">Twitter page</a>, or even this blog) and you&#8217;ll see a &ldquo;more user profiles&rdquo; link in the rop right corner of the page</li>
</ol>
<p>If you&#8217;re more interested in how it works, you can find the <a href="http://github.com/georgebrock/XFN-Profile-Detection">source code on GitHub</a>.</p>
<p>It starts by looking for links that use <code>rel="me"</code> (XFN&#8217;s way of saying &#8220;this link points to another page about the same person as this page&#8221;).  If it find any it uses YQL (and <a href="http://www.xml.com/pub/a/2007/09/04/parsing-microformats.html?page=2">a clever bit of XPath magic</a> from <span class="vcard"><a class="fn url" href="http://suda.co.uk">Brian Suda</a></span>) to find more <code>rel="me"</code> links on those page and so on until it runs out of profile links. To make sure nothing&#8217;s been missed it&#8217;ll bundle together all of the URLs that it&#8217;s found and pass them to the Google Social Graph API.  If the <acronym title="Social Graph">SG</acronym> API finds any new unique URLs they are parsed with YQL too.  The combination of YQL and the SG API means that the script gets good coverage for most people, whether or not they have deliberately made use of <code>rel="me"</code>.</p>
<p>One fun thing about building this hack was finding my own profiles on sites that I&#8217;d forgotten about (it turns out I have a <a rel="me" href="http://georgebrock.soup.io">soup.io</a> account).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.georgebrock.com/events/open-hack-london-xfn-profile-discovery/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Last.fm Hack Day: Scrobbling Spotify</title>
		<link>http://blog.georgebrock.com/events/lastfm-hack-day-scrobbling-spotify</link>
		<comments>http://blog.georgebrock.com/events/lastfm-hack-day-scrobbling-spotify#comments</comments>
		<pubDate>Mon, 15 Dec 2008 06:13:02 +0000</pubDate>
		<dc:creator>George Brocklehurst</dc:creator>
				<category><![CDATA[events]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[hack day]]></category>
		<category><![CDATA[last.fm]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[SIMBL]]></category>
		<category><![CDATA[spotify]]></category>

		<guid isPermaLink="false">http://blog.georgebrock.com/?p=10</guid>
		<description><![CDATA[Sunday was Last.fm&#8217;s first Hack Day (and my first Hack Day too) a great opportunity to get together with a bunch of other developers, enjoy a steady supply of free food, coffee and beer and spend the day hacking away at whatever Last.fm-related projects we could dream up. I particularly liked Neil Crosby&#8217;s Last Genius [...]]]></description>
			<content:encoded><![CDATA[<p>Sunday was <a href="http://www.last.fm/group/Hack+Day">Last.fm&#8217;s first Hack Day</a> (and my first Hack Day too) a great opportunity to get together with a bunch of other developers, enjoy a steady supply of free food, coffee and beer and spend the day hacking away at whatever Last.fm-related projects we could dream up. I particularly liked <span class="vcard"><a class="fn url" rel="friend met" href="http://neilcrosby.com/">Neil Crosby</a></span>&#8217;s <a href="http://github.com/NeilCrosby/last-genius/tree">Last Genius</a> which builds a playlist of simiar music based on a single starting track and <span class="vcard"><a class="fn url" rel="acquaintance met" href="http://www.last.fm/user/flaneur/">Matt Ogle</a>&#8217;s</span> <a href="http://playground.audioscrobbler.com/matt/hackday/">Songcolours</a> which draws pretty graphs based the most common words in the lyrics of your favourite songs.</p>
<p>I spent the day playing around with <a href="http://www.culater.net/software/SIMBL/SIMBL.php"><abbr title="Smart InputManager Bundle Loader">SIMBL</abbr></a>, <a href="http://www.spotify.com">Spotify</a> and, of course, the <a href="http://www.last.fm/api">Last.fm <acronym title="Application Programming Interface">API</acronym></a> trying to build a Spotify <a title="Last.fm FAQ: What is scrobbling?" href="http://www.last.fm/help/faq?category=Scrobbling">Scrobbler</a>.  Progress was slower than I would have liked and I spent most of the day trying to figure out Spotify&#8217;s internal APIs and following various dead-ends (reverse engineering compiled software is tricky), but it was good to learn how to write SIMBL bundles and by the end of the day I&#8217;d managed to hack together a working plugin that was aware of when a new track started and what the track and artist names were. It seemed a shame to leave it half done, so I spent some time when I got home adding scrobbling capabilities, and you can now find a <a href="http://github.com/georgebrock/spotify-scrobbler/tree/master">working Spotify Scrobbler over on GitHub</a> (if you want to use it you&#8217;ll find instructions in the <a href="http://github.com/georgebrock/spotify-scrobbler/tree/master/README.Markdown">read-me file</a>).  It&#8217;s not particularly polished, but I&#8217;m pretty pleased with how it turned out. All in all, a good first Hack Day.</p>
<p><strong>Update:</strong> As of 18th December 2008 <a href="http://www.spotify.com/blog/archives/2008/12/18/spotify-scrobbles/">Spotify has built-in scrobbling support</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.georgebrock.com/events/lastfm-hack-day-scrobbling-spotify/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
