<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">

<channel>
	<title>barnesdmd.co.uk</title>
	
	<link>http://barnesdmd.co.uk</link>
	<description />
	<lastBuildDate>Tue, 18 Aug 2009 14:12:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<geo:lat>51.42180</geo:lat><geo:long>0.06035</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/barnesdmdcouk" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Twitter To Delicious with PHP</title>
		<link>http://barnesdmd.co.uk/2009/08/17/twitter-to-delicious-with-php/</link>
		<comments>http://barnesdmd.co.uk/2009/08/17/twitter-to-delicious-with-php/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 20:38:13 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Folksonomy]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[delicious]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[simplepie]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://barnesdmd.co.uk/?p=253</guid>
		<description><![CDATA[In the same way as most other users do, I find myself frequently posting links on twitter using one of the many URL shortening services. I&#8217;ll say at this point that I absolutely loathe these services, the recent demise of Tr.im and the debacle which has followed enforces the view that replicating something which already [...]]]></description>
			<content:encoded><![CDATA[<p>In the same way as most other users do, I find myself frequently posting links on twitter using one of the many URL shortening services. I&#8217;ll say at this point that I absolutely loathe these services, the recent <a title="External Link: techcrunch.com | tr.im Throws In the Towel" href="http://www.techcrunch.com/2009/08/09/trim-throws-in-the-towel/">demise of Tr.im</a> and the debacle <a title="External Link: techcrunch.com | Tr.im Cuts Off Bit.ly’s 301works Idea, Wants to Sell" href="http://www.techcrunch.com/2009/08/10/trim-cuts-off-bitlys-301works-idea-wants-to-sell/">which has followed</a> enforces the view that replicating something which already exists is bound to lead to issues (the thinking behind the popular <a title="Obligatory Wikipedia reference" href="http://en.wikipedia.org/wiki/Don't_repeat_yourself">programming acronym DRY</a>).</p>
<p> It would be a serious step forwards (IMHO), if twitter allowed you to convert sections of a tweet to a link in much the same way as one does in HTML so we can avoid this, but anyway, I&#8217;ve digressed, people might complain it would make it too &#8220;complicated&#8221;, rant over, back on track.</p>
<p>As the subject of this post suggests this is just a random little code snippet I put together today to help me hold onto my links, make them a little more searchable and use the real link not a shortened version by posting them to <a href="http://del.icio.us">delicious</a> when I tweet them. It almost certainly exists elsewhere, but this is my take on it and doesn&#8217;t rely on me using a particular browser and having a plug-in installed on all the machines I use it on which the otherwise excellent <a href="http://friedcell.net/tweecious/get">tweecious</a>  would do.<br />
<strong>Requirements</strong></p>
<ul>
<li>PHP5 webserver</li>
<li><a title="SimplePie.org" href="http://simplepie.org/downloads/">SimplePie Rss parser</a> (I&#8217;m using version 1.1.3 nothing has changed since which would break this, AFAIK)</li>
<li>CRONtab or similar to make it automatic, you can always just load the page up in a browser window if you don&#8217;t have CRON on your server or <a href="http://www.webcron.org/">use webcron</a>.</li>
</ul>
<p><strong>What it does</strong></p>
<ul>
<li>Any link you post on twitter is resolved to its original address, title grabbed off the original site and posted onto your delicious account with your tweet in the description and any tags you want.</li>
<li>Links will only be posted once, so if a link is automatically posted and you then delete it from delicious then its not going to reappear the next time the script is run.</li>
<li>You can optionally blacklist domains or sections of domains which you don&#8217;t want to be saved, for instance I tweeted a link to a programme on BBC iPlayer, there&#8217;s no point me saving it as iPlayer only stores stuff for a couple of weeks</li>
<li>You can also prevent a tweet which has a specific hashtag from being posted, I use the tag &#8220;#ns&#8221; which will prompt the script to ignore the rest</li>
</ul>
<p>To use it, just upload twittodel.php from the zip file below (or copy and paste the below source) to your webserver, add simplepie.inc and any other bits it needs, make a cache folder according to whatever you&#8217;ve set the CACHE_DIR option to (as a default it wants a folder called &#8216;cache&#8217;. </p>
<p><strong>Download: </strong> <a href='http://barnesdmd.co.uk/wp-content/uploads/2009/08/twittodel.zip'>twittodel.zip</a></p>
<p>As I say, it was put together fairly quickly so is not guaranteed to be perfect but anyway. Comments/improvements/criticism welcome. It might see the addition of <a href="http://www.zemanta.com/">Zemanta</a> style automatic tagging like tweecious, I&#8217;ll update this post if it does.</p>
<div  style="width:100%;height:400px;overflow:auto;border:2px solid #069;">

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Author: Duncan Barnes (www.barnesdmd.co.uk)</span>
<span style="color: #666666; font-style: italic;">// Updated: 16/08/09</span>
<span style="color: #666666; font-style: italic;">// License: Creative Commons Attribution-Non-Commercial-Share Alike (http://creativecommons.org/licenses/by-nc-sa/2.0/)</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//-----------------------------------------------------------------------------------------</span>
<span style="color: #666666; font-style: italic;">//You'll need to enter your delicious credentials and a few other details here to make this work</span>
<span style="color: #666666; font-style: italic;">//I've left in a few details as examples</span>
&nbsp;
&nbsp;
<span style="color: #666666; font-style: italic;">//Delicious username</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'DELICIOUS_USERNAME'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'yourusernamehere'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #666666; font-style: italic;">//Delicious password</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'DELICIOUS_PASSWORD'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'yourpasswordhere'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #666666; font-style: italic;">//Tag/s to add to the delicious entry</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'DELICIOUS_TAGS'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'from_twitter'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #666666; font-style: italic;">//Your twitter account timeline rss feed</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'TWITTER_RSS'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'http://twitter.com/statuses/user_timeline/6752222.rss'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #666666; font-style: italic;">//You can put a hash tag here which you might want to use to prevent tweets being posted to delicious</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'TWITTER_OMIT'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'#ns'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #666666; font-style: italic;">//You can put bits of addresses in here which you don't want to be posted, separate with a comma, e.g 'bbc.co.uk/iplayer', no urls which have this in them would be posted</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ADDRESS_OMIT'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'bbc.co.uk/iplayer,bbc.co.uk/programmes'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//Directory where this script can store cached data</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'CACHE_DIR'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'cache/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//Max number of tweets to process each time the script is run, adjust based on how often you tweet and how often you run the cron controlling this script </span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'MAX_TWEETS'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #666666; font-style: italic;">//-----------------------------------------------------------------------------------------</span>
&nbsp;
&nbsp;
<span style="color: #666666; font-style: italic;">//Bit of quick error checking</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">class_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'SimplePie'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'simplepie.inc'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'simplepie.inc'</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span><span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Simplepie not found, check simplepie.inc is in the same directory as this script!'</span><span style="color: #339933;">;</span>exit<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: #009900;">&#125;</span>
<span style="color: #000088;">$feed</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SimplePie<span style="color: #009900;">&#40;</span>TWITTER_RSS<span style="color: #339933;">,</span>CACHE_DIR<span style="color: #339933;">,</span><span style="color: #cc66cc;">3600</span><span style="color: #009900;">&#41;</span> or <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Could not declare Simplepie, you might want to check your TWITTER_RSS and CACHE_DIR settings and also that you have any additional files which SimplePie wants.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$curl_handle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> or <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Could not initiate curl, please check its enabled on your server!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Fetching our cache of previous things we've saved to delicious, means:</span>
<span style="color: #666666; font-style: italic;">// a)we're not repeating a push to delicious </span>
<span style="color: #666666; font-style: italic;">// b) If you delete an auto created entry from delicious it won't be recreated the next time this is run!</span>
<span style="color: #666666; font-style: italic;">// The script will still continue if there's a problem here, we're not going to worry about it too much as this might be the first run</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span>CACHE_DIR<span style="color: #339933;">.</span><span style="color: #0000ff;">'delicious.data'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$deliciouscache</span> <span style="color: #339933;">=</span> <span style="color: #990000;">unserialize</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span>CACHE_DIR<span style="color: #339933;">.</span><span style="color: #0000ff;">'delicious.data'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$deliciouscache</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//For ease of use, the ADDRESS_OMIT option is a constant, however we want its contents as an array for ease of processing so we'll covert it now</span>
<span style="color: #000088;">$address_omit</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">','</span><span style="color: #339933;">,</span>ADDRESS_OMIT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">@</span><span style="color: #990000;">array_walk</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$address_omit</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'trim_value'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Lets do it</span>
<span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$feed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_items</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$item</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">==</span>MAX_TWEETS<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #b1b100;">break</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//Stoppping if we've reached the limit</span>
	<span style="color: #000088;">$tweet</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$item</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_title</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//Checking the tweet isnt already in our cache or contains our omit string, we use an md5 of the tweet as it saves us doing any further lookups</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tweet</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #000088;">$deliciouscache</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #990000;">strstr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tweet</span><span style="color: #339933;">,</span> TWITTER_OMIT<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++;</span>continue<span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> getUrl<span style="color: #009900;">&#40;</span><span style="color: #000088;">$tweet</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++;</span>continue<span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//We've failed to get the target url, on to the next...</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>domain_check<span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'url'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++;</span>continue<span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//Checking the resolved url isn't in our list of urls we don't want to know about (ADDRESS_OMIT option)</span>
	<span style="color: #666666; font-style: italic;">// At this point we should have an array ($page) containing the title and the url provided by the getUrl function</span>
	<span style="color: #666666; font-style: italic;">// so lets go ahead and try and add to Delicious account</span>
	<span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #990000;">urlencode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'url'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">urlencode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'title'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$tweetenc</span> <span style="color: #339933;">=</span> <span style="color: #990000;">urlencode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tweet</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$tag</span> <span style="color: #339933;">=</span> <span style="color: #990000;">urlencode</span><span style="color: #009900;">&#40;</span>DELICIOUS_TAGS<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_handle</span><span style="color: #339933;">,</span> CURLOPT_URL<span style="color: #339933;">,</span> <span style="color: #0000ff;">'https://'</span><span style="color: #339933;">.</span>DELICIOUS_USERNAME<span style="color: #339933;">.</span><span style="color: #0000ff;">':'</span><span style="color: #339933;">.</span>DELICIOUS_PASSWORD<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;@api.del.icio.us/v1/posts/add?url=<span style="color: #006699; font-weight: bold;">$url</span>&amp;amp;description=<span style="color: #006699; font-weight: bold;">$title</span>&amp;amp;extended=<span style="color: #006699; font-weight: bold;">$tweetenc</span>&amp;amp;tags=<span style="color: #006699; font-weight: bold;">$tag</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_handle</span><span style="color: #339933;">,</span> CURLOPT_CONNECTTIMEOUT<span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_handle</span><span style="color: #339933;">,</span> CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_handle</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #990000;">array_unshift</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$deliciouscache</span><span style="color: #339933;">,</span> <span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tweet</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$deliciouscache</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> MAX_TWEETS<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//One in one out, stopping the cache file growing exponentially</span>
			<span style="color: #990000;">array_pop</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$deliciouscache</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$i</span><span style="color: #339933;">++;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">//Writing our cache back to file ready for the next run</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span>CACHE_DIR<span style="color: #339933;">.</span><span style="color: #0000ff;">'delicious.data'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'w'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$res</span><span style="color: #339933;">,</span><span style="color: #990000;">serialize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$deliciouscache</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #990000;">curl_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_handle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//Done</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Helper functions</span>
<span style="color: #000000; font-weight: bold;">function</span> domain_check<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$address_omit</span><span style="color: #339933;">;</span>if<span style="color: #009900;">&#40;</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$address_omit</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$address_omit</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$address</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$address</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">strstr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #339933;">,</span> <span style="color: #000088;">$address</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</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: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> trim_value<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span><span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$value</span> <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//Used to trim the $domain_omit array</span>
<span style="color: #000000; font-weight: bold;">function</span> getUrl<span style="color: #009900;">&#40;</span><span style="color: #000088;">$tweet</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$curl_handle</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$tweet</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
    <span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/http:\/\/\S*?/U'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$tweet</span><span style="color: #339933;">,</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_handle</span><span style="color: #339933;">,</span> CURLOPT_URL<span style="color: #339933;">,</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_handle</span><span style="color: #339933;">,</span> CURLOPT_CONNECTTIMEOUT<span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_handle</span><span style="color: #339933;">,</span> CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_handle</span><span style="color: #339933;">,</span> CURLOPT_FOLLOWLOCATION<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">// follow redirects (in the case of shortened urls)</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$buffer</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_handle</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$info</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_getinfo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_handle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$info</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'http_code'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!==</span> <span style="color: #cc66cc;">200</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">//If the page is gone then cancel</span>
	<span style="color: #666666; font-style: italic;">// match the title of the page at the url</span>
	<span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;/&lt;title&gt;(.*)&lt;\/title&gt;/s&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$buffer</span><span style="color: #339933;">,</span> <span style="color: #000088;">$match</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/&amp;lt;\/?(title)[^&amp;gt;]*&amp;gt;/iU'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$match</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'title'</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$title</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'url'</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$info</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'url'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/barnesdmdcouk?a=OWz1beTAwOE:5BVorjAarQg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/barnesdmdcouk?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/barnesdmdcouk?a=OWz1beTAwOE:5BVorjAarQg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/barnesdmdcouk?i=OWz1beTAwOE:5BVorjAarQg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/barnesdmdcouk?a=OWz1beTAwOE:5BVorjAarQg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/barnesdmdcouk?i=OWz1beTAwOE:5BVorjAarQg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/barnesdmdcouk?a=OWz1beTAwOE:5BVorjAarQg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/barnesdmdcouk?i=OWz1beTAwOE:5BVorjAarQg:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://barnesdmd.co.uk/2009/08/17/twitter-to-delicious-with-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Experiments with Geotagging and Photo meta data</title>
		<link>http://barnesdmd.co.uk/2009/06/10/experiments-with-geotagging-and-photo-meta-data/</link>
		<comments>http://barnesdmd.co.uk/2009/06/10/experiments-with-geotagging-and-photo-meta-data/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 10:52:17 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://barnesdmd.co.uk/?p=223</guid>
		<description><![CDATA[Half way through last year I had decided that looking back on pictures from five years ago and not really being sure of where they were taken sort of sucked and fervently went around my photo folder armed with Picasa and Google Earth, geotagging as many pictures as I could. This is all very well [...]]]></description>
			<content:encoded><![CDATA[<p>Half way through last year I had decided that looking back on pictures from five years ago and not really being sure of where they were taken sort of sucked and fervently went around my photo folder armed with Picasa and Google Earth, geotagging as many pictures as I could. This is all very well with UK pictures, and made more difficult when it involved any older sailing ones for instance, as coastlines where present are often not too distinguishable. Of course its damn near impossible with the pictures from Northern Italy I&#8217;d taken in 2007, although I had a good go at it.</p>
<p>When I visited Cape Town last year I took what was then my new phone (<a href="http://en.wikipedia.org/wiki/HTC_TyTN_II">HTC TyTn II</a>) which thoughtfully includes an inbuilt GPS. Pairing this with an early version of <a href="http://www.luisespinosa.com/freeware_eng.html">LEM&#8217;s TrackMe</a> logging application and I felt fairly well prepared to geotag all my pictures on my return. The trip itself went well and the phone managed to log most days movements (at 2 minute intervals) without the battery giving up (phone part switched off), giving me an acceptable accuracy to tag the pictures by matching up the nearest position fix with the timestamp on the photos.</p>
<p><a title="Link to manufacturers website via google" href="http://www.google.com/url?q=http://www.royaltek.com/products_dtl.php%3Fcid%3D2%26id%3D19%26argPage%3D1%26argI%3D6&amp;sa=X&amp;oi=smap&amp;resnum=1&amp;ct=result&amp;cd=1&amp;usg=AFQjCNH1-ttA5YJSlHmzo1QtDzyxSueDsA" target="_blank"><img class="alignright size-medium wp-image-220" title="Royaltek RBT2300" src="http://barnesdmd.co.uk/wp-content/uploads/2009/06/royaltek_rbt2300-300x298.jpg" alt="Royaltek RBT2300" width="240" height="238" /></a>However after this I decided that although the phone did the job ok, I &#8216;d rather not have the constant worry of the battery running flat and bought a <a title="Link to manufacturers website via google" href="http://www.google.com/url?q=http://www.royaltek.com/products_dtl.php%3Fcid%3D2%26id%3D19%26argPage%3D1%26argI%3D6&amp;sa=X&amp;oi=smap&amp;resnum=1&amp;ct=result&amp;cd=1&amp;usg=AFQjCNH1-ttA5YJSlHmzo1QtDzyxSueDsA" target="_blank">Royaltek RBT-2300</a> gps logger off ebay. Its a basic little unit, the software is a little lacking but it was cheap and it does the job admirably while at the same time using nokia phone batteries meaning that if I have need I can get a second battery for it.</p>
<p>It came with only a car charger which isn&#8217;t great but I&#8217;ve found that its quite happy running off 5v so made an adapter cable in work so it can be charged from my standard travel usb charger.</p>
<p>So after experiementation, and some scares with software causing data corruption on the photos (always do backups!), my process seems to go something along these lines when returning with fresh pictures:</p>
<ul>
<li>Copy photo&#8217;s to computer, leaving originals on SD card as a backup</li>
<li>Use Phil Harveys<a title="ExifTool website" href="http://www.sno.phy.queensu.ca/~phil/exiftool/"> ExifTool</a> to set common meta data on each picture, so thats author, copyright and a basic description of the occasion if the photo&#8217;s were all taken on one occasion, this is stored as EXIF and IPTC tags.</li>
<li>Extract tracklogs from the Royaltek logger using their software.</li>
<li>Convert this to the <a title="Wikipedia article on GPX" href="http://en.wikipedia.org/wiki/GPS_eXchange_Format">GPX</a> file format using<a title="The official GPSBabel site" href="http://www.gpsbabel.org/"> GPSBabel</a> (I tend to use the version with the user interface for this, beats remembering command line options).</li>
<li>Geotag all pictures with <a title="GPicSync on Google Code" href="http://code.google.com/p/gpicsync/">GPicSync</a> (this also produces a Google Earth KML file)</li>
<li>Done!</li>
</ul>
<p>This may seem like quite a long drawn out painful way of doing this, in actual fact it takes me about 5 minutes each time. There are other commercial bits of software which may be able to shorten some/all of this, in fact I&#8217;ve contemplated buying <a href="http://www.breezesys.com/Downloader/">Downloader Pro</a> which I hear good things about for a while.  The software used above however is all free/open source and does 99% of the process, I tend to use InfranView for image rotation.</p>
<p><a href="http://www.zooomr.com/photos/barnesdmd/3023659/"><img class="alignleft size-medium wp-image-224" title="charingxtrain" src="http://barnesdmd.co.uk/wp-content/uploads/2009/06/charingxtrain-300x225.jpg" alt="charingxtrain" width="300" height="225" /></a>My approach to photography now is pretty much to store as much information as possible about the photo&#8217;s and never to delete any no matter how bad you think they are at the time (storage is cheap),  there are software packages which can store more information, the only problem half the time is that its more data stored in a separate database which you then rely on to keep track of your pictures.</p>
<p>This method ensures that the data gathered is all stored in a standard format. Its also great when uploading to Zooomr or Flickr, thats when the meta data comes into its own when you see the photo sharing site build the page around it, including a map, author information and the description already filled in among others.</p>
<p>Its a workflow which has done me well for the last few years, hopefully in 10-15 years time it&#8217;ll make it worthwhile to remember where that picture was taken&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/barnesdmdcouk?a=WGoxEkZG-Zk:g2nBAP8nizM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/barnesdmdcouk?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/barnesdmdcouk?a=WGoxEkZG-Zk:g2nBAP8nizM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/barnesdmdcouk?i=WGoxEkZG-Zk:g2nBAP8nizM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/barnesdmdcouk?a=WGoxEkZG-Zk:g2nBAP8nizM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/barnesdmdcouk?i=WGoxEkZG-Zk:g2nBAP8nizM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/barnesdmdcouk?a=WGoxEkZG-Zk:g2nBAP8nizM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/barnesdmdcouk?i=WGoxEkZG-Zk:g2nBAP8nizM:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://barnesdmd.co.uk/2009/06/10/experiments-with-geotagging-and-photo-meta-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spotify, this could work…</title>
		<link>http://barnesdmd.co.uk/2009/01/03/spotify-this-could-work/</link>
		<comments>http://barnesdmd.co.uk/2009/01/03/spotify-this-could-work/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 12:20:48 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://barnesdmd.co.uk/?p=147</guid>
		<description><![CDATA[Saw a post about this on TorrentFreak last night and was very kindly sent an invite for the service by Ernesto. 
Spotify&#8217;s tagline is &#8216;Everyone loves music&#8217;, the interface is a media player with an iTunes feel to it so nice and familiar and easy to pick up for most people. Built in collaboration with most [...]]]></description>
			<content:encoded><![CDATA[<p>Saw a <a href="http://torrentfreak.com/spotify-an-alternative-to-music-piracy-090102/">post about this on TorrentFreak</a> last night and was very kindly sent an invite for the service by Ernesto. <a href="http://www.spotify.com"><img class="size-full wp-image-144 alignright" title="spotify_logo-small" src="http://barnesdmd.co.uk/wp-content/uploads/2009/01/spotify_logo-small.png" alt="" width="100" height="100" /></a></p>
<p><a title="Spotify - Everyone loves music" href="https://www.spotify.com/en/">Spotify</a>&#8217;s tagline is &#8216;Everyone loves music&#8217;, the interface is a media player with an iTunes feel to it so nice and familiar and easy to pick up for most people. Built in collaboration with most of the big record labels, it has a vast library of music streamed from the Internet (around 160kbps according to the TorrentFreak article), apart from some of the more indie stuff it seems to do quite well at finding anything your after.</p>
<p>Its not a complete collection of the worlds music by any means but its growing, the only random things I can&#8217;t find so far are the <a href="http://en.wikipedia.org/wiki/S&amp;M_(album)">Metallica S&amp;M recording</a> from the live set in San Fransisco (I was listening to it in the car this morning so it sprung to mind as something to search for), and anything by <a href="http://en.wikipedia.org/wiki/2_Many_DJs">2manyDJ&#8217;s.</a></p>
<p>Music starts playing as soon as you click on it (I&#8217;m on almost exclusive use of a 100mbps pipe at the moment so it might not be quite as fast on a normal connection!) and its easy to find more tracks by an artist, find what compilations they appear on etc. Reviews and Biographies are gathered from a range of sources including Wikipedia and All Music.</p>
<p>Of course the main advantage of Spotify is that a) its free! (some unobtrusive adverts) b) it would appear to be the first credible, legal and usable music service to emerge. The guys behind it seem to be taking tips quite happily from the beta community, <a href="http://www.last.fm/">Last.Fm</a> integration is there and it would seem that more will follow.<a href="https://www.spotify.com/wp-content/uploads/spotify_desktop_client.png"><img class="alignright size-full wp-image-145" title="spotify_desktop_client-small" src="http://barnesdmd.co.uk/wp-content/uploads/2009/01/spotify_desktop_client-small.png" alt="" width="100" height="100" /></a></p>
<p>Of course, the disadvantages of the system at the moment are no connection with portable devices, according to TorrentFreak this might come in the future. Of course with  better connected media devices including phones (iPhone, G1 etc) and improved data plans we might end up with a situation where we can just stream whatever music we want and don&#8217;t bother keeping it ourselves.</p>
<p>There&#8217;s a little introduction video here: <a href="https://www.spotify.com/en/about/press/concept-video/">https://www.spotify.com/en/about/press/concept-video/</a></p>
<p><em>(and no I still havn&#8217;t had a chance to sort out the template issues on this site!) </em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=42OSb7Pq"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=V7ncTEm4"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=V7ncTEm4" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=smetkVCy"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=smetkVCy" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=UzsiA6C3"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=UzsiA6C3" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://barnesdmd.co.uk/2009/01/03/spotify-this-could-work/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Opera 10.0, wow</title>
		<link>http://barnesdmd.co.uk/2008/12/04/opera-100-wow/</link>
		<comments>http://barnesdmd.co.uk/2008/12/04/opera-100-wow/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 13:04:07 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://barnesdmd.co.uk/?p=125</guid>
		<description><![CDATA[I&#8217;ve always been a big fan of the Opera browser, its fast and apart from its major features includes so many smaller ones which help to make it my personal favourite.
Little things like &#8216;paste and go&#8217; which allows you to paste a web address into the address bar and opera will go to it without [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always been a big fan of the <a title="Go to the Opera website" href="http://www.opera.com">Opera</a> browser, its fast and apart from its <a title="Opera browser feature page (current version)" href="http://www.opera.com/browser/">major features </a>includes so many smaller ones which help to make it my personal favourite.</p>
<p>Little things like &#8216;paste and go&#8217; which allows you to paste a web address into the address bar and opera will go to it without you hitting enter (really minor I know). And then others like the ability to select text on the screen and run a search for it or open it as a web address (hold shift while doing this to open in a new tab) from the right click context menu.<img class="alignright size-full wp-image-126" title="Opera logo" src="http://barnesdmd.co.uk/wp-content/uploads/2008/12/images.jpeg" alt="" width="124" height="109" /></p>
<p>Anyway, Opera 10.0 Alpha has just been released and even as a long term Opera user I&#8217;m impressed with the <a title="Opera 10 new features" href="http://www.opera.com/browser/next/">speed, instant spell check and everything else</a>.</p>
<p>The <a title="Opera Desktop Team blog entry" href="http://my.opera.com/desktopteam/blog/2008/12/03/peregrine-takes-flight-opera-10-0-alpha-is-here">Opera desktop blog has all the  details</a>, its still an alpha but well worth taking a look. If you moving from Internet Explorer it may be quite a change but its worth it.</p>
<p><em>(And yes, this blog is still, still undergoing a redesign so still looks a little rough around the edges!) </em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=k22GlHZc"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=SA0nap4N"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=SA0nap4N" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=ibLC7yy5"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=ibLC7yy5" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=Oib8gDpu"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=Oib8gDpu" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://barnesdmd.co.uk/2008/12/04/opera-100-wow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Maps with public transport</title>
		<link>http://barnesdmd.co.uk/2008/06/06/google-maps-with-public-transport/</link>
		<comments>http://barnesdmd.co.uk/2008/06/06/google-maps-with-public-transport/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 00:45:17 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Software]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://www.barnesdmd.co.uk/?p=92</guid>
		<description><![CDATA[Just noticed this post on the Google Operating System blog.
The latest version of Google Maps for Mobile includes an option that was already available in Google Maps: directions for public transportation. Google&#8217;s coverage has been continuously expanded in the past months to many US states, Japan, Austria, Switzerland, important cities from Canada, Italy, France, UK [...]]]></description>
			<content:encoded><![CDATA[<p>Just noticed <a href="http://googlesystem.blogspot.com/2008/06/public-transit-directions-in-mobile.html">this post</a> on the Google Operating System blog.</p>
<blockquote><p>The latest version of Google Maps for Mobile <a href="http://googlemobile.blogspot.com/2008/06/get-bus-and-train-directions-on-go-with.html">includes an option</a> that was already available in Google Maps: directions for public transportation. Google&#8217;s coverage has been continuously expanded in the past months to many US states, Japan, Austria, Switzerland, important cities from Canada, Italy, France, UK and Australia. Google Maps is one of the applications that is very useful when you are on the go and this new feature is a good alternative to the existing driving directions.</p></blockquote>
<p>Very cool, slightly frustrating bits at the moment include:</p>
<ul>
<li>Its not available for Windows Mobile devices like my <a href="http://www.htc.com/uk/product.aspx?id=8876">HTC TyTnII</a> (Kaiser) yet, I&#8217;ll try and be patient!</li>
<li>I thought about writing an app to do this myself about the time I got my TyTnII using London transport data, unfortunatly <a href="http://www.tfl.gov.uk">TFL</a> don&#8217;t make a lot of the required data publically obtainable to construct such a system, hence I gave up rather quickly. Frustrating at the time beacuse of TFL&#8217;s limited mobile device support.</li>
</ul>
<p>Glad to see Google have been thinking this one through, looking forward to seeing how well it works&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=AgfHfXMw"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=b181pNzf"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=b181pNzf" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=V098t18s"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=V098t18s" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=KxdhBBob"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=KxdhBBob" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://barnesdmd.co.uk/2008/06/06/google-maps-with-public-transport/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virgin Media’s Fibre Claims</title>
		<link>http://barnesdmd.co.uk/2008/04/07/virgin-medias-fibre-claims/</link>
		<comments>http://barnesdmd.co.uk/2008/04/07/virgin-medias-fibre-claims/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 01:02:32 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[ISP's]]></category>

		<guid isPermaLink="false">http://www.barnesdmd.co.uk/2008/04/07/virgin-medias-fibre-claims/</guid>
		<description><![CDATA[I was thinking about putting in a complaint to the Advertising Standards Agency (ASA) ages ago about this but didnt get around to it/couldnt be bothered!
Tonight I saw Ian&#8217;s post mentioning he was considering changing to Virgin Media beacuse of the advertised fast fibre optic connection and was reminded of my annoyance over the claims.
It [...]]]></description>
			<content:encoded><![CDATA[<p>I was thinking about putting in a complaint to the <a href="http://www.asa.org.uk/">Advertising Standards Agency (ASA)</a> ages ago about this but didnt get around to it/couldnt be bothered!</p>
<p>Tonight I saw <a href="http://www.cubicgarden.com/blojsom/blog/cubicgarden/media/2008/04/06/">Ian&#8217;s post</a> mentioning he was considering changing to Virgin Media beacuse of the advertised fast fibre optic connection and was reminded of my annoyance over the claims.</p>
<p>It turns out that BSkyB, Talk Talk and a few less idle members of the public did make a complaint. The below two stories cover the situation quite well with ThinkBroadband also carrying quite a few user comments on its page. Essentially Virgin Media as many have probably seen have been advertising fibre optic internet connections direct to the home, the fibre is actually only to one of the street boxes, its copper/steel/aluminium after that. A Virgin Media engineer I was speaking to recently, who works on the core fibre network around London said that it could be anything from 500 to a 1000 households sharing the connection!<a title="Virgin Media Fibre Optic ad" href="http://www.barnesdmd.co.uk/wp-content/uploads/2008/04/virginad512.jpg"><img class="alignright" src="http://www.barnesdmd.co.uk/wp-content/uploads/2008/04/virginad512.jpg" alt="Virgin Media Fibre Optic ad" width="322" height="193" align="right" /></a></p>
<ul>
<li><a href="http://informitv.com/articles/2008/02/06/virginmediacleared/">http://informitv.com/articles/2008/02/06/virginmediacleared/</a></li>
<li><a href="http://www.thinkbroadband.com/news/3391-asa-rules-on-virgin-fibre-optic-broadband-claims.html">http://www.thinkbroadband.com/news/3391-asa-rules-on-virgin-fibre-optic-broadband-claims.html</a></li>
</ul>
<p>Amazingly, <a href="http://www.asa.org.uk/asa/adjudications/Public/TF_ADJ_43928.htm">the ASA quashed the claims</a>, essentially deeming the copper portion of the network insignificant. By the same logic, as ThinkBroadband have pointed out, BT etc could now make the same claim as from the telephone exchange upwards, the ADSL network is fibre.</p>
<p>Wish the ASA had taken a stand with this and the &#8216;Unlimited&#8217; claims (There&#8217;s <a href="http://www.bbc.co.uk/blogs/technology/2008/03/understanding_broadband_speed.html">a nice little piece about this</a> on one of the BBC blogs), hardly surprising so many people are confused about Broadband.</p>
<p><strong>Update (13/04/08):</strong> Of course in addition to the above truth twisting, a worrying blow for <a href="http://en.wikipedia.org/wiki/Network_neutrality">net neutrality</a> comes with <a href="http://torrentfreak.com/virgin-media-ceo-says-net-neutrality-is-a-load-of-bollocks-080413/">Virgin Media&#8217;s CEO Neil Berkett branding it &#8220;a load of bollocks&#8221;.</a> Crude and worrying words, glad I&#8217;m not with them and supporting his point of view any more.</p>
<p>We got a letter from them in the mail today saying, &#8216;Sorry to hear your leaving, how about sleeping on it?&#8217;, this is accompanied by the type of mask you get on night flights. Be nice if they quit with all the marketing gimmiks and actually delivered on the fibre to the home claim!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=6l8LZT0m"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=TVzeRk54"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=TVzeRk54" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=iqZUzvD4"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=iqZUzvD4" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=tZHpKOwC"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=tZHpKOwC" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://barnesdmd.co.uk/2008/04/07/virgin-medias-fibre-claims/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DS107+, my new home server</title>
		<link>http://barnesdmd.co.uk/2008/04/05/ds107-my-new-home-server/</link>
		<comments>http://barnesdmd.co.uk/2008/04/05/ds107-my-new-home-server/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 00:11:14 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nas]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[synology]]></category>

		<guid isPermaLink="false">http://www.barnesdmd.co.uk/2008/04/05/ds107-my-new-home-server/</guid>
		<description><![CDATA[Ten months ago I was debating what route to go down with home servers, I&#8217;ve debated this in my own head for a while and about 6 months ago briefly fired up a spare mini-itx board and a couple of drives as a home Debian based headless server. While it worked, it wasn&#8217;t quite what [...]]]></description>
			<content:encoded><![CDATA[<p>Ten months ago <a href="http://www.barnesdmd.co.uk/2007/06/06/home-media-deliberations/" title="Internal link | Home Media Deliberations">I was debating what route to go down</a> with home servers, I&#8217;ve debated this in my own head for a while and about 6 months ago briefly fired up a spare mini-itx board and a couple of drives as a home <a href="http://www.debian.org">Debian</a> based headless server. While it worked, it wasn&#8217;t quite what I had previously envisaged as one of my main points was to have something which wasn&#8217;t going to cause my electricity bill to sky rocket while at the same time filling as many roles as possible. I discussed these in the previous post, but the main points were:
<ol>
<li>File server</li>
<li>Bittorrent capable</li>
<li>Low power consumption (as low as possible)</li>
<li>Secure external access</li>
</ol>
<p>One of the embedded linux boxes I had my eye on before was the <a href="http://excito.com/products.html" title="Link to Excito products list">Bubba</a>, it had its upsides including Debian as a base OS which made it pretty flexible. However, I already had a 500Gb SATA drive sitting around and the Bubba is IDE only.</p>
<p>A little look around and I found the <a href="http://www.synology.com">Synology</a> website and a fantastic list of compact low power devices, add to this their forums which include a dedicated section on modding their products and I was pretty much sold on buying something from them. Certainly for me, a company who are willing to openly encourage modifications and further development of their product range is a big attraction.<a href='http://www.barnesdmd.co.uk/wp-content/uploads/2008/04/ds107.jpg' title='Synology DS107+ NAS Station'><img align="right" src='http://www.barnesdmd.co.uk/wp-content/uploads/2008/04/ds107.thumbnail.jpg' alt='Synology DS107+ NAS Station' /></a></p>
<p>I chose the <a href="http://www.synology.com/enu/products/DS107+/index.php">DS107+</a> in the end, only a single internal drive but with an eSATA port and 3 USB2.0 ports, 500mhz processor, 128mb RAM, Gigabit Ethernet, a selection of third party bootstraps, several glowing reviews and the aforementioned <a href="http://www.synology.com/enu/forum/">forum</a>/<a href="http://www.synology.com/wiki/index.php/Home">wiki</a> it looked like the perfect solution.</p>
<p>I&#8217;ve been playing around with it for a week now and am very pleased, its quiet, plays well with <a href="http://xbmc.org/">Xbox Media Centre</a> and while including an array of useful web apps is flexible enough to let me replace them where necessary.</p>
<p>I&#8217;ve replaced the included bittorrent client (<a href="http://en.wikipedia.org/wiki/RTorrent">rTorrent</a> based) with <a href="http://www.transmissionbt.com">Transmission</a>/<a href="http://www.clutchbt.com">Clutch</a> and set up a few CRON jobs and shell scripts to control it and its running very well. The main reason for doing this is that the included one whilst having a handy <a href="http://www.synology.com/enu/products/features/downloadstation.php">desktop download redirector</a> application is based on an old version of rTorrent and doesn&#8217;t seed very much (not in the spirit of things really!). The OS is <a href="http://www.busybox.net/" "Busybox website | The swiss army knife of embedded linux">BusyBox</a> linux which is not at the time of writing totally open on the 107, annoying but currently not a big issue.</p>
<p>One other point to add, while putting the drive in I noticed the motherboard headers for a second SATA drive as well. It looks like the DS107 and <a href="http://www.synology.com/enu/products/DS207+/index.php">DS207</a> products share the same board. Not something which I&#8217;m concerned with now, and it would without a doubt void the warranty, but if needed in the future I have a feeling it would take the firmware for the 207 to give me a mirrored RAID.</p>
<p>Here&#8217;s a couple of the reviews I found helpful:</p>
<ul>
<li><a href="http://www.pro-clockers.com/review.php?id=280" title="Pro-clockers review of DS107+">Pro-Clockers</a></li>
<li><a href="http://www.xbitlabs.com/articles/other/display/synology-ds107plus.html" title="Xbit labs review of DS107+">Xbit Labs</a></li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=QGZHiew4"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=VimjtdFw"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=VimjtdFw" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=U6yYaIwr"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=U6yYaIwr" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=asvEcPga"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=asvEcPga" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://barnesdmd.co.uk/2008/04/05/ds107-my-new-home-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transferring Opera tabs between Maxivista/Synergy2 computers on Windows</title>
		<link>http://barnesdmd.co.uk/2008/02/14/transferring-opera-tabs-between-maxivistasynergy2-computers-on-windows/</link>
		<comments>http://barnesdmd.co.uk/2008/02/14/transferring-opera-tabs-between-maxivistasynergy2-computers-on-windows/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 13:07:57 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[maxivista]]></category>

		<guid isPermaLink="false">http://www.barnesdmd.co.uk/2008/02/14/transferring-opera-tabs-between-maxivistasynergy2-computers-on-windows/</guid>
		<description><![CDATA[One of the programs I use a lot is a little app called Maxivista, its got several features of particular merit, the ability to use another laptop/desktop as an extended display for your main computer and in another mode use the same mouse and keyboard to control several computers, with monitors using the network connection [...]]]></description>
			<content:encoded><![CDATA[<p>One of the programs I use a lot is a little app called Maxivista, its got several features of particular merit, the ability to use another laptop/desktop as an extended display for your main computer and in another mode use the same mouse and keyboard to control several computers, with monitors using the network connection for them to talk to each other. This is accomplished simply by dragging the mouse off the side of the screen at which point it appears on the other computer, the keyboard follows the mouse. Its probably easiest to have a browse through the <a href="http://www.maxivista.com/multi_monitor.htm">Desktop Extension</a> and <a href="http://www.maxivista.com/kvm.htm">Remote Control</a> sections of the <a href="http://www.maxivista.com">Maxivista</a> website to get a better idea what I&#8217;m talking about here. There&#8217;s also the obligatory open source offering called <a href="http://synergy2.sourceforge.net/">Synergy2</a> which sods law dictated that I would only discover after purchasing Maxivista!</p>
<p>Typically when I&#8217;m at my desk I have my main computer and my laptop next to it on a dock, with dual monitor on the desktop already I have a fair amount of real estate to work from (albeit not <a href="http://www.stefandidak.com/office/index.php">in quite the same league as Stefan Didak</a>!). I might typically have two instances of <a href="http://www.opera.com">Opera</a> running, one on the laptop and one on the second desktop screen, using the primary screen as my working area and the other two as reference windows, the key point however is that I prefer to use the laptop in remote control mode so that I can take advantage of its processor and resources while the main computers working on other things.</p>
<p>Anyway, heres the point of the post (finally I know): in this sort of set-up I&#8217;ve found its useful at times to be able to &#8220;transfer&#8221; tabs, between the browser windows on the two machines and it took me a while to work out how, to be honest its really thanks to an <a href="http://operawatch.com/news/2007/07/tip-open-pages-in-firefox-and-internet-explorer-directly-from-opera.html">Opera Watch post</a> about opening tabs in firefox and ie that I got an idea for a slightly bodged but workable solution. I thought I&#8217;d share it below in case anyone else finds it useful, its nothing revolutionary but its useful all the same.</p>
<p>Requirements/how to:</p>
<ul>
<li>Two networked computers running Opera (obviously)</li>
<li>For this to work both ways you will need the PsExec.exe file copied into the &#8220;c:\Windows\System32&#8243; folder, you can the PsTools package from the <a href="http://www.sysinternals.com">sysinternals website</a>, check against <a href="http://forum.sysinternals.com/forum_posts.asp?TID=3748">point 2 on this forum thread</a> that everything is ready to go.</li>
<li>Download <a href='http://www.barnesdmd.co.uk/wp-content/uploads/2008/02/remote.zip' title='Remote batch file'>this batch file</a> (zipped), extract and open it and change all the parts marked &lt;ike this&gt; to the appropriate values, note that the remote computers username should be the same as the one you logon as otherwise it&#8217;ll open a fresh opera window instead of using the existing one. Save the batch file to &#8220;c:\Windows\System32&#8243;</li>
<li>Drag the below Opera button to any opera panel, click and it should work!</li>
</ul>
<div style="width: 50%; margin-right:auto;margin-left:auto;">
<a TITLE="Transfer to other computer" HREF="opera:/button/Execute%20program,%22remote.cmd%22,%22%25u%22 &#038; Close page"><img src='http://www.barnesdmd.co.uk/wp-content/uploads/2008/02/tab-new.png' alt='Transfer' /></a></div>
<p>Things to note, you will get a console window opening for a second on the source computer, without compiling everything into a binary there&#8217;s little way of totally hiding the action, also, the above button is set to also remove the tab from the source computer.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=DWfaoylW"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=dfuNaBhT"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=dfuNaBhT" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=PhadjUTw"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=PhadjUTw" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=uz2japt2"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=uz2japt2" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://barnesdmd.co.uk/2008/02/14/transferring-opera-tabs-between-maxivistasynergy2-computers-on-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>“UK Ban” for illegal downloaders, but is the media better off with the pressure?</title>
		<link>http://barnesdmd.co.uk/2008/02/12/uk-ban-for-illegal-downloaders-but-is-the-media-better-off-with-the-pressure/</link>
		<comments>http://barnesdmd.co.uk/2008/02/12/uk-ban-for-illegal-downloaders-but-is-the-media-better-off-with-the-pressure/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 13:06:14 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[ISP's]]></category>

		<guid isPermaLink="false">http://www.barnesdmd.co.uk/2008/02/12/uk-ban-for-illegal-downloaders-but-is-the-media-better-off-with-the-pressure/</guid>
		<description><![CDATA[I was reading on the train this morning (I don&#8217;t think I could go back to commuting without mobile internet!), the BBC  have reported on a leaked draft paper from the UK Government published by the Times, proposing to force ISP&#8217;s to take action against illegal downloaders with a three strikes and out style [...]]]></description>
			<content:encoded><![CDATA[<p>I was reading on the train this morning (I don&#8217;t think I could go back to commuting without mobile internet!), the <a href="http://news.bbc.co.uk/1/hi/business/7240234.stm">BBC </a> have reported on a leaked draft paper from the UK Government published by the Times, proposing to force ISP&#8217;s to take action against illegal downloaders with a three strikes and out style system. As has been pointed out, the government, seem to be ignoring the serious privacy implications this has for internet access and what would seem an insurmountable task for the ISP&#8217;s to economically and practically undertake. I&#8217;ve got an image in my head of a satirical political cartoon showing an MPAA/RIAA figure pushing Gordon Brown along but anyway.</p>
<p><a title="Hero of the guitar by Unhindered by Talent on Flickr" href="http://www.flickr.com/photos/nicmcphee/487812367/"><img class=" alignleft" title="Hero of the guitar by Unhindered by Talent on Flickr" src="http://farm1.static.flickr.com/190/487812367_cf6834f1b0.jpg?v=0" alt="Hero of the guitar by Unhindered by Talent on Flickr" width="400" height="286" align="left" /></a></p>
<p>But anyway, aside from these points, the question is, are the media industries as a collective gradually responding better to consumer desires and the internet in general as a result of piracy? The rapid rise in piracy of music, films and television has left the industry models looking increasingly dated and almost ridiculous, indeed, if it could be charted it would correlate quite well with broadband uptake. They were left with choices, embrace, fight or ignore it, as we&#8217;ve seen, they&#8217;ve steadily fought it and probably thought after Napster that they could go back to sleep again.</p>
<p><a title="CD BrulÃ© by *** Fanch The System !!! *** on Flickr" href="http://www.flickr.com/photos/manannan_alias_fanch/331070836/"><img class=" alignright" title="CD Brulé by  *** Fanch The System !!! *** on Flickr" src="http://farm1.static.flickr.com/129/331070836_fca73c5e5e.jpg?v=0" alt="CD BrulÃ© by *** Fanch The System !!! *** on Flickr" width="400" height="300" align="right" /></a></p>
<p>In the last couple of years we&#8217;ve seen numerous press releases by the RIAA and MPAA citing the massive sales losses they&#8217;ve sustained as a result of piracy, the press has reported on numerous cases against <a href="http://www.cbsnews.com/stories/2003/09/09/tech/main572426.shtml">kids, the elderly</a> and <a href="http://technology.timesonline.co.uk/tol/news/tech_and_web/article2584831.ece">mothers</a> across America and elsewhere, in dubious attempts to deter the masses. Apple introduced iTunes and its worked fairly well with some debate, but that wasnâ€™t the industries idea, that was Apple, and many of the other major online music stores have been third parties approaching the music industry not them reaching out to the consumer. The same sort of scenario has been playing out for video content with the same issues, indeed the <a href="http://feeds.feedburner.com/~r/Torrentfreak/~3/233269134/">upcoming pirate bay case</a>, is seeing the founders gaining steady international notoriety as thieves and the worst of criminals in one light and justified and innocent in another.</p>
<p>Only really in the last year are we seeing perhaps the start of serious attempts at DRM free, decent (ish) quality music and video from the industry and this is encouraged in many ways by piracy (catering for the users so they don&#8217;t pirate the material). Its argued so much more now that piracy is slowly forcing the industry to respond better to the consumer, that piracy is a positive driving force for change and that it will eventually lead to a better solution.</p>
<p>Perhaps arguing that the end necessarily justifies the means is not an argument to start, but I do think its valid, the cost to the ISP&#8217;s who already have looming demand induced upgrade costs as well as the time and effort for the government to pass through legislation for this ultimatly means it will accomplish little. Others such as <a href="http://www.techcrunch.com/2007/10/04/the-inevitable-march-of-recorded-music-towards-free/">Michael Arrington</a> have suggested that you make money from associated products and live events as opposed to the music but I&#8217;m far more inclined to agree with the general principles of <a href="http://www.profy.com/2007/10/04/techcrunchs-founder-says-recorded-music-to-eventually-be-free-heres-why-hes-wrong//trackback/">Paul Glazowski&#8217;s</a> rebuttal and in particular the &#8220;linear chicken and egg&#8221; analogy he makes in his first comment on his post, its unfortunate however to read in the comments a lack of understanding of the items value as opposed to its distribution costs.</p>
<p>As with most people I know, if I like music I&#8217;ll buy it, aside from anything else, I still prefer having a physical copy (maybe I&#8217;m getting old). I&#8217;m not advocating illegal downloads as such, however, piracy is giving the media industries a good kick down the path of progress.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=FI51yCFy"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=BRpjjeqY"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=BRpjjeqY" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=2efiVR2s"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=2efiVR2s" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=vq6zwqo9"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=vq6zwqo9" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://barnesdmd.co.uk/2008/02/12/uk-ban-for-illegal-downloaders-but-is-the-media-better-off-with-the-pressure/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PointuiI, HTC apps, when will Microsoft catch up?</title>
		<link>http://barnesdmd.co.uk/2008/01/04/pointuii-htc-apps-when-will-microsoft-catch-up/</link>
		<comments>http://barnesdmd.co.uk/2008/01/04/pointuii-htc-apps-when-will-microsoft-catch-up/#comments</comments>
		<pubDate>Fri, 04 Jan 2008 22:00:02 +0000</pubDate>
		<dc:creator />
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[HTC]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://www.barnesdmd.co.uk/2008/01/04/pointuii-htc-apps-when-will-microsoft-catch-up/</guid>
		<description><![CDATA[So I&#8217;ve just got around to having a play with PointUI which surfaced earlier this week. The iPhone crowd have come out and laid into it on other blogs, ignoring the fact that the 3rd party apps which have to be bodged into the iPhone are the lifeblood of a windows mobile device and the [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve just got around to having a play with <a href="http://pointui.com/">PointUI</a> which <a href="http://www.engadgetmobile.com/2008/01/02/pointui-makes-windows-mobile-finger-friendly/">surfaced</a> earlier this week. The iPhone crowd have come out and laid into it on other blogs, ignoring the fact that the 3rd party apps which have to be bodged into the iPhone are the lifeblood of a windows mobile device and the reason why many choose Windows Mobile over the iPhone. <a href="http://pointui.com/"><img align="left" src='http://www.barnesdmd.co.uk/wp-content/uploads/2008/01/screenshot_3.png' alt='Pointui Home screenshot on Tmobile' /></a></p>
<p>Anyway, rant over. I must say for a free and from nothing attempt, Pointui is pretty good, its slick for the most part, its let down at the moment on two (significant) counts (imo):</p>
<ul>
<li>a) when you want to do anything as it then opens that application in the standard windows mobile shell.</li>
<li>b) Its not customizable and has no real settings which can be changed for user preference</li>
</ul>
<p>I havn&#8217;t mentioned any of the bugs beacuse its in beta and this is to be expected and I&#8217;m sure the features and flexibility will be expanded in due time.</p>
<p>Of course these guys arent the only one creating nicer interfaces for Windows Mobile, HTC for one have for a while been supplying plugins and apps to extend Windows Mobiles functionality although it seems to be a bit of a lottery sometimes as to which ones are installed on your device (down to network whims most of the time it seems). They&#8217;re not as slick and iPhone like as Pointui for the most part but they provide added functionality with most of them being finger compatible. There&#8217;s a fairly comprehensive <a href="http://forum.xda-developers.com/showthread.php?t=344533&#038;highlight=htc+apps">list of HTC apps on the XDA Developers site</a>.</p>
<p>The one thing I keep wondering is when Microsoft will catch up, not to mention whether they are always going to be playing catch up with Apple, HTC and the mass of individual enterprising developers around the world.</p>
<p>Windows Mobile 6 was for the most part a let down and not much of a change over version 5, it still has the abomination that is Pocket IE (not a big deal thanks to <a href="http://www.opera.com/products/mobile/">Opera Mobile</a>), still uses buttons which require a stylus and still looks like all they did was attempt to shrink down the desktop windows interface without any new thought put into it. <a href='http://forum.xda-developers.com/showthread.php?t=344533' title='HTC Windows mobile apps'><img align="right" src='http://www.barnesdmd.co.uk/wp-content/uploads/2008/01/all.jpg' alt='HTC Windows mobile apps' /></a></p>
<p>Small changes are promised in the upcoming 6.1 and therafter but I for one am not holding out much hope of them making any significant advances. Dont get me wrong, in many ways Windows Mobile is fantastic, as I said before, the plethora of 3rd party applications mean you have a tool for any job and if not then Visual Basic isn&#8217;t hard to pick up and develop it yourself .</p>
<p>But they could do better and with 79,000 employees at Microsoft (Source: <a href="http://en.wikipedia.org/wiki/Microsoft">Wikipedia</a>) its hard in some ways to see why all the interesting things are always coming from small players.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=4OpDuNut"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=4HH6DFVK"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=4HH6DFVK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=Hp3XYxlZ"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=Hp3XYxlZ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/barnesdmdcouk?a=6pf0b2wP"><img src="http://feeds.feedburner.com/~f/barnesdmdcouk?i=6pf0b2wP" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://barnesdmd.co.uk/2008/01/04/pointuii-htc-apps-when-will-microsoft-catch-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
