<?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>Adrian Short &#187; mashups</title>
	<atom:link href="http://blog.adrianshort.co.uk/tag/mashups/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.adrianshort.co.uk</link>
	<description>Government web design, open data, transparency, etc.</description>
	<lastBuildDate>Wed, 25 Apr 2012 10:08:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Building a local news mashup with Twitter, TwitterFeed, Delicious, Yahoo! Pipes, Ruby and RSS</title>
		<link>http://blog.adrianshort.co.uk/2009/03/15/building-a-local-news-mashup-with-twitter-twitterfeed-delicious-yahoo-pipes-ruby-and-rss/</link>
		<comments>http://blog.adrianshort.co.uk/2009/03/15/building-a-local-news-mashup-with-twitter-twitterfeed-delicious-yahoo-pipes-ruby-and-rss/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 18:35:27 +0000</pubDate>
		<dc:creator>Adrian Short</dc:creator>
				<category><![CDATA[Software design]]></category>
		<category><![CDATA[Sutton]]></category>
		<category><![CDATA[apis]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[Delicious]]></category>
		<category><![CDATA[Hpricot]]></category>
		<category><![CDATA[mashups]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[Paul Burstow]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Stonecot Hill News]]></category>
		<category><![CDATA[Sutton Council]]></category>
		<category><![CDATA[Sutton Guardian]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[TwitterFeed]]></category>
		<category><![CDATA[Yahoo! Pipes]]></category>

		<guid isPermaLink="false">http://adrianshort.co.uk/?p=311</guid>
		<description><![CDATA[(Click on the image to download the PDF, 19KB, opens in new window/tab.) Like this? Follow me on Twitter: http://twitter.com/adrianshort I&#8217;m a self-confessed and unashamed news junkie and this is how I&#8217;m starting to mash up news in my local area. For those that aren&#8217;t local, Sutton is a London borough with a population of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.adrianshort.co.uk/wp-content/uploads/2009/03/sutton-local-news-mashup.pdf" target="_blank"><img class="alignnone size-medium wp-image-330" title="sutton-local-news-mashup" src="http://blog.adrianshort.co.uk/wp-content/uploads/2009/03/sutton-local-news-mashup-400x282.png" alt="sutton-local-news-mashup" width="400" height="282" /></a></p>
<p><em>(Click on the image to download the PDF, 19KB, opens in new window/tab.)</em></p>
<p><em>Like this? Follow me on Twitter: <a href="http://twitter.com/adrianshort">http://twitter.com/adrianshort</a><br />
</em></p>
<p>I&#8217;m a self-confessed and unashamed news junkie and this is how I&#8217;m starting to mash up news in my local area. For those that aren&#8217;t local, <a href="http://en.wikipedia.org/wiki/London_Borough_of_Sutton">Sutton</a> is a London borough with a population of approximately 180,000. Stonecot Hill is a neighbourhood within Sutton with a population of a few thousand.</p>
<p>Here&#8217;s how it all works.</p>
<p><strong>Sources (green boxes)</strong></p>
<p>I write <a href="http://www.stonecothillnews.co.uk/">Stonecot Hill News</a> which is a local news blog running as a standalone <a href="http://wordpress.org/">WordPress</a> installation on its own server. It produces an <a href="http://en.wikipedia.org/wiki/RSS_(file_format)">RSS 2.0 feed</a> which here is treated as an outbound <a href="http://en.wikipedia.org/wiki/Api">API</a>.</p>
<p><a href="http://paulburstow.com/">Paul Burstow</a> is the local member of parliament (constituency: Sutton &amp; Cheam). Paul posts news regularly to his website and for many years that site has been serving an RSS 1.0 (RDF) feed. Whether he realises it or not, Paul laid one of the first foundations for news mashability in the borough.</p>
<p>The <a href="http://www.suttonguardian.co.uk/">Sutton Guardian</a> is the local newspaper, published by Newsquest. Together with its sister titles in other areas, they publish <a title="Sutton Guardian RSS feeds" href="http://www.suttonguardian.co.uk/misc/rss/">several dozen RSS 2.0 feeds</a> for a wide variety of content.</p>
<p><a href="http://www.sutton.gov.uk/">Sutton Council</a> is the local authority for the borough. Despite a recent £270,000 revamp to their website they haven&#8217;t yet managed to step into the Twenty-First and produce any RSS feeds. However, they do publish a variety of content regularly on their website, including their <a title="Sutton Council press releases" href="http://www.sutton.gov.uk/index.aspx?articleid=3434">press releases</a>.</p>
<p><strong>APIs (grey boxes)</strong></p>
<p>For the non-technical: API stands for Application Programming Interface, but that doesn&#8217;t tell you very much. Think of APIs like connectors or adapters that allow one program to plug into another in the same way that our household appliances can all connect to the electrical network because they share common plugs and sockets.</p>
<p>An API may be <em>inbound </em>(allowing data to be put into an application), <em>outbound </em>(allowing data to be extracted) or both.</p>
<p>As we can see in the diagram, applications which use APIs can be daisy-chained together, with the output of one application being fed into another.</p>
<p>RSS and <a href="http://en.wikipedia.org/wiki/Atom_(standard)">Atom</a> feeds are also APIs in that they provide a structured way for a program to get data out of an application. These feed formats are simple to implement (many applications produce them automatically) and are the first thing to consider when implementing a simple outbound API for an application.</p>
<p><strong>Mashers (pink boxes)</strong></p>
<p>Mashers are small programs that connect otherwise incompatible inbound and outbound APIs together. <a href="http://twitterfeed.com/">TwitterFeed</a> is a simple example. Say you want to automatically post the new items from your blog to your <a href="http://twitter.com/">Twitter</a> account. Your blog serves an RSS feed but Twitter, while it has an inbound API, cannot accept RSS directly as input. TwitterFeed links the two, allowing the user to define any number of RSS feeds as inputs and any number of Twitter accounts as outputs, via the Twitter API. In this way, TwitterFeed plugs blogs into Twitter.</p>
<p><a href="http://pipes.yahoo.com/">Yahoo! Pipes</a> is a much more sophisticated and flexible masher. It can take inputs from a variety of sources (RSS, Atom, <a title="Comma-separated values file format" href="http://en.wikipedia.org/wiki/Comma-separated_values">CSV</a>, <a title="Flickr photo sharing website" href="http://www.flickr.com/">Flickr</a> API, <a href="http://base.google.com/base/">Google Base</a> or even raw web pages), sort, filter and combine them in every conceivable way, and output the results as a single stream in various formats (RSS, <a title="JavaScript Object Notation" href="http://en.wikipedia.org/wiki/Json">JSON</a>, and <a title="KML - Keyhole Markup Language" href="http://en.wikipedia.org/wiki/Kml">KML</a>, the geo-format used by <a href="http://earth.google.com/">Google Earth</a>). For my mashup I created <a title="Stonecot Hill news mashup Yahoo Pipe" href="http://pipes.yahoo.com/adrianshort/tin_59X73RG83ZoNpgt1Yg">this pipe</a> to filter Paul Burstow&#8217;s, the Sutton Guardian&#8217;s and Sutton Council&#8217;s news and only pass through items containing the word &#8220;stonecot&#8221; to the stream that eventually ends in the <a href="http://twitter.com/stonecothill">@stonecothill Twitter feed</a>, which is just for Stonecot Hill residents. The number of items coming through these sources about Stonecot Hill is very low, but when something appears residents will want to see it. (By way of example, only a single press release from Sutton Council in the last 227 concerns the Stonecot Hill area specifically.)</p>
<p>As mentioned above, Sutton Council doesn&#8217;t provide an RSS feed or any other kind of outbound API for its press release. I wrote a screen scraper in <a title="Ruby programming language" href="http://www.ruby-lang.org/en/">Ruby</a> (using <a title="Hpricot HTML parser for Ruby" href="http://wiki.github.com/why/hpricot">Hpricot</a>) that grabs the press releases directly from the council website, dumps them into a <a href="http://www.mysql.com/">MySQL</a> database and pushes new items into the <a title="Delicious social bookmarks manager" href="http://delicious.com/">Delicious</a> API. I&#8217;ve used Delicious here for two reasons. Firstly, because it generates an RSS feed automatically from all the items posted to it, so I can easily connect this output to other mashers and APIs further downstream without having to generate and host an RSS feed myself. Also, Delicious provides a useful search facility on its website allowing me to easily search just the press releases from Sutton Council. This isn&#8217;t possible with the council&#8217;s own website, where searches are scoped to the entire site.</p>
<p><strong>Destinations (orange boxes)</strong></p>
<p>In my diagram, the destinations are sites and services which represent new ways of consuming information coming from the original sources. Don&#8217;t want to read Sutton Council&#8217;s press releases on their own website? You can folllow them in <a title="Sutton Council's press releases on Delicious" href="http://delicious.com/suttonboro">Delicious</a> or on <a title="Sutton Council's press releases on Twitter" href="http://twitter.com/suttonboro">Twitter</a>. Want to keep up with the latest news about Stonecot Hill? Again, the <a href="http://twitter.com/stonecothill">@stonecothill Twitter account</a> can find this for you from various sources. I also add my own items to @stonecothill, making it a unique mashup of original and syndicated content that&#8217;s highly targeted and very local.</p>
<p>The information stream doesn&#8217;t need to end with these destinations. Any destination that provides an outbound API can simply be another link in the chain to downstream services. In my diagram, the RSS feed from Delicious is used to do just that, pushing all its content on to the @suttonboro Twitter account, and just the Stonecot Hill-related content on to the @stonecothill account via the Yahoo! Pipes filter. Twitter has its own specific outbound API and also serves RSS feeds. There&#8217;s nothing to stop anyone else building on these destinations by combining and filtering them with other sources to produce their own unique, relevant information streams that they find useful.</p>
<p><strong>What next?</strong></p>
<p>If you run a website, it&#8217;s time to start thinking of mashability with the same degree of seriousness as you treat human visitors. Your website needs to serve up feeds and APIs so that other programs can connect to your content and deliver it to people in ways and contexts that they find useful. Some of these may have an audience of thousands or even millions. Others may have an audience of one. Regardless, by providing an API to your content you enable others to build things that you haven&#8217;t imagined, don&#8217;t have the resources or desire to build yourself, and won&#8217;t have to maintain. Businesses like newspapers that survive by selling their content (or selling advertising around their content) are thinking very carefully about the challenges and opportunities for the future of their industries. For government and voluntary organisations, it&#8217;s time to start thinking more like evangelists than economists. Spread the word like the free Bibles in hotel bedrooms and take every opportunity to get your message out there.</p>
<p>Sutton Council have been encouraged in various ways to implement feeds on their own website and the song will remain the same until they do. I don&#8217;t want to maintain my scraper for ever and I certainly don&#8217;t want to build any more of them.</p>
<p>The whole API and mashability agenda is far bigger than simple web feed formats like RSS and Atom. It&#8217;s time for technologists to stop flogging the line that &#8220;RSS is an easy way for people who follow lots of websites to read all their news in one place&#8221;. Direct human consumption of RSS feeds is never going to hit the mainstream in that way. If you&#8217;re reading this, you&#8217;re far more likely that average to use an RSS reader. (I&#8217;ve got 86 feeds in my <a href="http://www.google.com/reader/">Google Reader</a> right now). The average web user has barely heard of the concept and most definitely don&#8217;t do it. I suspect they never will. But it&#8217;s likely they&#8217;re already benefiting from syndicated content through sites and applications that they use. If they never have to see or care about the underlying technology that&#8217;s really no more a problem than worrying that the average web user doesn&#8217;t understand <a href="http://en.wikipedia.org/wiki/Http">HTTP</a> or <a href="http://en.wikipedia.org/wiki/Domain_Name_System">DNS</a>. It&#8217;s just plumbing that can stay out of sight and out of mind as long as it works.</p>
<p>For the minority that do use personal RSS readers, I&#8217;d like to see more of them with built-in filtering features. Setting a simple keyword filter on a feed makes RSS reading considerably more powerful.</p>
<p>For those serving up feeds, I&#8217;d like to see Atom more widely used. Without wanting to open a can of Wineresque worms, RSS 2.0 fudges a number of important issues around content semantics and provides no support whatsoever for correctly attributing items in feeds mashed from several sources. Atom was designed to solve these problems and it does. Let&#8217;s use it.</p>
<p>Lastly, mashability is about every conceivable kind of content and content type. It&#8217;s not just about news and text. Every stream of information should have its own machine-readable feed. Every system that can accept data from human input should implement an inbound API to do likewise. To take one example, <a href="http://www.fixmystreet.com/">FixMyStreet</a> is a website for people to report street faults to local authorities and currently takes around 1000 reports a week. It even has its own <a title="FixMyStreet on the iPhone" href="http://www.mysociety.org/2008/12/10/fixmystreet-iphone/">iPhone application</a> so people can report faults complete with GPS locations and photos directly from the street. Only a single local authority in over 400 has implemented an inbound API to receive these reports. The rest get them by email, which must be manually copied into their own databases with all the effort, expense, possibility for error and opportunity costs that represents. Third-parties building extensions to other people&#8217;s systems is no longer unusual, so organisations need to embrace the possibilities rather than fighting against it or standing around looking bemused.</p>
<p>It&#8217;s time to open the doors and windows and get the web joined up, mashed up and moving.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.adrianshort.co.uk/2009/03/15/building-a-local-news-mashup-with-twitter-twitterfeed-delicious-yahoo-pipes-ruby-and-rss/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>The fallacies of summary-only RSS feeds</title>
		<link>http://blog.adrianshort.co.uk/2008/04/04/the-fallacies-of-summary-only-rss-feeds/</link>
		<comments>http://blog.adrianshort.co.uk/2008/04/04/the-fallacies-of-summary-only-rss-feeds/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 10:04:34 +0000</pubDate>
		<dc:creator>Adrian Short</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[feeds]]></category>
		<category><![CDATA[mashups]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[web feeds]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://adrianshort.co.uk/2008/04/04/47</guid>
		<description><![CDATA[Please don't tease. Put your full article texts in your RSS feed and make everyone's life a whole lot easier.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m still frustrated and to a degree baffled by all those otherwise-wonderful sites that are serving up RSS feeds with just headlines and summaries. Where are the rest of the articles?</p>
<p>Sometimes this happens through laziness, sometimes with careful thought and intent but mostly through ignorance and fallacy.</p>
<p><span id="more-47"></span> So why isn&#8217;t everyone serving up full-text feeds? The argument tends to go like this:</p>
<blockquote><p><em>We&#8217;ve got a great website and we want people that are interested in what we do to visit it. Letting people subscribe to our RSS feed is a good way of generating more traffic as readers will click through to read the full text of articles that interest them.</em></p></blockquote>
<p>There are two main problems with this line of thinking:</p>
<p>The assumption that a summary-only feed will generate a lot of click-through traffic is a poor one. Most people are only subscribing to RSS in the first place because it gives them a quicker and easier way to follow lots of sites. Force those people to click through to read the full articles and those people will either rarely bother clicking through or they&#8217;ll even just unsubscribe. Sadly, the people that decide website policy are often not heavy RSS users themselves and can&#8217;t see things from the perspective of those that are.</p>
<p>The bigger and more fundamental mistake here is to put the requirement that people visit your website above all other considerations. If you&#8217;ve got a message to get out there, put as few barriers in the way of potential readers as you can. Getting read is the only thing that matters &#8212; <em>how</em> and <em>where</em> shouldn&#8217;t be issues.</p>
<p>People visiting your website has its benefits <em>for you</em>. They will get a better &#8220;branding&#8221; experience. They may be able to find other interesting things your organisation is doing. You will be able to track these visits in your web stats.</p>
<p>But all these considerations are of limited interest and value to the user. They want to read your article <em>right now</em>. Nothing more, nothing less. That&#8217;s a good thing, right? So don&#8217;t get in their way and let them read it the way <em>they </em>want to. By subscribing to your RSS feed, the user has said, &#8220;I don&#8217;t want to read this on your website. I want to read it in my RSS reader.&#8221; Frustrate that good intention at your peril.</p>
<p>Don&#8217;t think of RSS as a teaser for the main event that happens on your website. If what you&#8217;re saying has value and importance to your readers, they&#8217;ll come back to you in other ways anyway. They&#8217;ll recommend you to others. They&#8217;ll buy your products and services. They&#8217;ll join your organisation. They&#8217;ll write about you. Most of all, they&#8217;ll feel good that you&#8217;ve chosen to put their convenience first. A little thought and generosity goes a long way.</p>
<p>It&#8217;s more important that your material gets read than it gets read in the way that you dictate. It&#8217;s more important that your material gets read than your ability to track that reading in your web stats &#8212; though using sites like <a href="http://www.feedburner.com/">FeedBurner</a> you can keep stats on your feed subscribers too. If your logo and palette are more important to your branding than your words and your message, you&#8217;ve got a problem that no amount of web visits can solve.</p>
<p>We&#8217;re moving towards a world where information is read in a multitude of ways, many of which haven&#8217;t been provided by, designed by or even sanctioned by the original publisher. The ability of third parties to find your information, share it, combine it with others&#8217; in mashups, convert it to different formats, translate it and redistribute it hinges on them being able to find useful, comprehensive feeds in the first place.</p>
<p>Other people now have a massive ability to add value to the information you produce by transforming and recontextualising it, either just for themselves or for a wider audience. Serving full-text feeds from your website is one way your organisation can be a part of that. If you choose to ignore this, you&#8217;ll be at a disadvantage to those that don&#8217;t.</p>
<hr />In other news, the new release of <a href="http://wordpress.org/download/">WordPress</a> (2.5) now generates a full-text feed by default, even for posts that are split using the &#8220;more&#8221; tag. Pre-2.5 users should use the <a title="Full Text Feed plugin for WordPress" href="http://cavemonkey50.com/code/full-feed/">Full Text Feed plugin</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.adrianshort.co.uk/2008/04/04/the-fallacies-of-summary-only-rss-feeds/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
