<?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>Terence Eden has a Blog</title>
	<atom:link href="http://shkspr.mobi/blog/index.php/feed" rel="self" type="application/rss+xml" />
	<link>http://shkspr.mobi/blog</link>
	<description>Mobiles, Shakespeare, Politics, Usability.</description>
	<lastBuildDate>Thu, 11 Mar 2010 13:11:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ribbit Voicemail</title>
		<link>http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 13:11:04 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[ribbit]]></category>
		<category><![CDATA[spinvox]]></category>
		<category><![CDATA[voicemail]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1802</guid>
		<description><![CDATA[I&#8217;m a long time fan of SpinVox &#8211; the Voicemail to SMS service.  In my review of them last year I found seven ways they could improve their service.
Due to SpinVox&#8217;s rather beleaguered year, there have been no noticeable improvements or enhancements in the service they provide.
Enter Ribbit!
Currently in beta, Ribbit promises to be all [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a long time fan of SpinVox &#8211; the Voicemail to SMS service.  In <a href="http://shkspr.mobi/blog/index.php/2009/06/what-i-want-from-spinvox/">my review of them last year</a> I found seven ways they could improve their service.</p>
<p>Due to <a href="http://www.bbc.co.uk/blogs/thereporters/rorycellanjones/2010/01/spinvox_investors_got_just_600.html">SpinVox&#8217;s rather beleaguered year</a>, there have been no noticeable improvements or enhancements in the service they provide.</p>
<h2>Enter Ribbit!</h2>
<p>Currently in beta, <a href="http://www.ribbit.com/">Ribbit</a> promises to be all that SpinVox could be &#8211; and more.</p>
<p>The basic premise is the same.  You divert all your voicemail to their service, a caller leaves a message, you get it delivered as an SMS.  Perfect.</p>
<p>Set up was a breeze, enter account information and set up the divert.  They even do a test call to make sure everything is set up correctly.</p>
<h2>Compared To Wishlist</h2>
<p>So, how do they do compared to my wishlist?</p>
<h3>MP3 delivery.</h3>
<blockquote><p>It’s great to receive an email with the transcript,  but I’d really like to get an audio file as well.  Useful for record  keeping, error checking and blackmail.</p></blockquote>
<p>Yup &#8211; done and done!  MP3s come through email. If your phone picks up your email, you can listen to a message without having to dial in.  Perfect.</p>
<div id="attachment_1807" class="wp-caption aligncenter" style="width: 487px"><img class="size-full wp-image-1807" title="MP3 Email" src="http://shkspr.mobi/blog/wp-content/uploads/2010/03/MP3-Email.jpg" alt="MP3 Email" width="477" height="566" /><p class="wp-caption-text">MP3 Email</p></div>
<h3>.mobi site.</h3>
<blockquote><p>I’d like to be able to go to spinvox.mobi and see a list  of all the voicemails I’ve received – including transcripts and audio  downloads.</p></blockquote>
<p>Again, close to perfect.  There&#8217;s a hidden mobile site &#8211; <a href="http://m.ribbit.com/">http://m.ribbit.com/</a> which gives you direct access to your transcriptions.  It even lets you dial in to a message or return a call directly from the web site.</p>
<div id="attachment_1805" class="wp-caption aligncenter" style="width: 477px"><img class="size-full wp-image-1805" title="Mobile Ribbit" src="http://shkspr.mobi/blog/wp-content/uploads/2010/03/Mobile-Ribbit.png" alt="Mobile Ribbit" width="467" height="490" /><p class="wp-caption-text">Mobile Ribbit</p></div>
<h3>Personal API.</h3>
<blockquote><p>I’d like access to an API for personal use.  To enable  me to generate <a href="http://www.wordle.net/">wordles </a>or  similar.  To grab all the voicemails from a particular person or  containing a certain phrase.</p></blockquote>
<p>It&#8217;s there! <a href="http://developer.ribbit.com/">http://developer.ribbit.com/</a>- I need to dig around to see what can be done.</p>
<h3>Personalised Greetings.</h3>
<blockquote><p>I’d like to set different greetings for  different sets of numbers. I keep the same number for work, friends and  family. My friends don’t want to hear my work Out-Of-Office message and  my work colleagues don’t want to hear my James Bond impression.</p></blockquote>
<p>I can&#8217;t see a way to do this.  It should be possible.  Once I&#8217;ve uploaded my address book, I want my mates to get one voicemail greeting, work colleagues to get another, etc.</p>
<blockquote><p>Along with greetings, I’d like to be able to quickly flick between  my regular voicemail message and my out of office message. It’s great  fun recording a new one every time I go away for a few days.</p></blockquote>
<p>Yes! This works!  You can record as many greetings as you like &#8211; you can even use your computer&#8217;s microphone.  You can swap them over on the web &#8211; I&#8217;ve not found a way to do it either via IVR or mobile web.</p>
<h3>Direct Dial Voicemail.</h3>
<blockquote><p>On Vodafone UK, I can dial 121 before any  number and go straight through to voicemail – handy if I want to avoid  someone! I’d like a number I can give out which would just go direct to  my voicemail.</p></blockquote>
<p>Not available.  A minor concern.</p>
<h2>Website</h2>
<p>Ribbit has an incredibly feature packed website.  As well as giving you complete control over your account, you can also use the website to read and listen to all your messages.</p>
<div id="attachment_1814" class="wp-caption aligncenter" style="width: 460px"><img class="size-full wp-image-1814" title="Ribbit Web Control Panel" src="http://shkspr.mobi/blog/wp-content/uploads/2010/03/Ribbit-Web-Control-Panel.png" alt="Ribbit Web Control Panel" width="450" height="146" /><p class="wp-caption-text">Ribbit Web Control Panel</p></div>
<p>You can also see missed calls. This is wonderfully useful. If you&#8217;re out of coverage, your phone won&#8217;t ring. Once you&#8217;re back in coverage, you can get a text or email from Ribbit telling you who rang but didn&#8217;t leave a message.</p>
<h2>Shortcomings</h2>
<p>Nothing in this world is perfect &#8211; let&#8217;s look at what Ribbit does badly.</p>
<h3>Startup</h3>
<p>The welcome text is very poorly done&#8230;</p>
<div id="attachment_1806" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1806" title="Ribbit Welcome SMS" src="http://shkspr.mobi/blog/wp-content/uploads/2010/03/Ribbit-Welcome-SMS.jpg" alt="Ribbit Welcome SMS" width="480" height="320" /><p class="wp-caption-text">Ribbit Welcome SMS</p></div>
<p>Coming from an unknown number, oddly formatted and no link to the mobile portal. The link presented doesn&#8217;t render well on mobile either.</p>
<p>You only get one chance to make a first impression &#8211; sadly Ribbit&#8217;s first impression is of carelessness.</p>
<h3>Accuracy</h3>
<p>Always a tricky one to get right.  Take a listen to this MP3 and compare it to the transcribed text.<br />
<object id="iefix1" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="129" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://boos.audioboo.fm/swf/fullsize_player.swf" /><param name="scale" value="noscale" /><param name="salign" value="lt" /><param name="bgColor" value="#FFFFFF" /><param name="allowScriptAccess" value="always" /><param name="wmode" value="window" /><param name="FlashVars" value="mp3Title=Ribbit+Transcription+Test&amp;mp3Time=12.39pm+11+Mar+2010&amp;mp3=http%3A%2F%2Faudioboo.fm%2Fboos%2F104289-ribbit-transcription-test.mp3&amp;mp3Author=edent&amp;mp3LinkURL=http%3A%2F%2Faudioboo.fm%2Fboos%2F104289-ribbit-transcription-test" /><param name="src" value="http://boos.audioboo.fm/swf/fullsize_player.swf" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="mp3Title=Ribbit+Transcription+Test&amp;mp3Time=12.39pm+11+Mar+2010&amp;mp3=http%3A%2F%2Faudioboo.fm%2Fboos%2F104289-ribbit-transcription-test.mp3&amp;mp3Author=edent&amp;mp3LinkURL=http%3A%2F%2Faudioboo.fm%2Fboos%2F104289-ribbit-transcription-test" /><embed id="iefix1" type="application/x-shockwave-flash" width="400" height="129" src="http://boos.audioboo.fm/swf/fullsize_player.swf" flashvars="mp3Title=Ribbit+Transcription+Test&amp;mp3Time=12.39pm+11+Mar+2010&amp;mp3=http%3A%2F%2Faudioboo.fm%2Fboos%2F104289-ribbit-transcription-test.mp3&amp;mp3Author=edent&amp;mp3LinkURL=http%3A%2F%2Faudioboo.fm%2Fboos%2F104289-ribbit-transcription-test" wmode="window" allowscriptaccess="always" bgcolor="#FFFFFF" salign="lt" scale="noscale" data="http://boos.audioboo.fm/swf/fullsize_player.swf"></embed></object></p>
<blockquote><p>Hi, Terry. It&#8217;s Mom. We&#8217;re just about to go over to have a cruise in Hong Kong. It&#8217;s the most beautiful place I&#8217;ve ever seen. I&#8217;m just knocked out. Anyway, we&#8217;d love to hear from you speak to you, I guess you can ring this phone. We mentioned we have a cruise and I may answer it. I hope you and Lis well. And I love you lots. Bye.</p></blockquote>
<p>Pretty damned accurate!  I put this under shortcomings because of the American translation of &#8220;Mum&#8221; to &#8220;Mom&#8221;.</p>
<h3>Timezones</h3>
<p>When your servers are in one country and your users are in another, date- and time-stamps become really important.</p>
<div id="attachment_1805" class="wp-caption aligncenter" style="width: 477px"><img class="size-full wp-image-1805" title="Mobile Ribbit" src="http://shkspr.mobi/blog/wp-content/uploads/2010/03/Mobile-Ribbit.png" alt="Mobile Ribbit" width="467" height="490" /><p class="wp-caption-text">Mobile Ribbit</p></div>
<p>The timestamps in the mobile web version are several hours out.  A minor annoyance &#8211; but one which gives people a headache trying to work out why someone is calling you at 6AM!</p>
<h3>QA</h3>
<p>Notice the &#8220;Call Voicemail&#8221; link in the image above?</p>
<div id="attachment_1803" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1803" title="Ribbit Mobile Error" src="http://shkspr.mobi/blog/wp-content/uploads/2010/03/Ribbit-Mobile-Error.jpg" alt="Ribbit Mobile Error" width="480" height="320" /><p class="wp-caption-text">Ribbit Mobile Error</p></div>
<p>It&#8217;s pointing to &#8211; I presume &#8211; the US dial in number, not the UK one.  There are several little errors like this.  None of them critical, but all enough to remind you it&#8217;s in Beta.</p>
<h2>Conclusion</h2>
<p>Ribbit is close to perfect. It blows SpinVox out of the water in terms of voicemail functionality.</p>
<p>It&#8217;s accuracy is good &#8211; and it&#8217;s upfront about its transcription methods.  It even lets you sacrifice accuracy for confidentiality if you&#8217;d rather just have machines listening in.</p>
<p>What will make it sink or swim is its <a href="http://www.ribbit.com/mobile/plans-pricing.php">pricing</a>.  Free during beta, it&#8217;s promising <strong>free</strong> automated transcription, with pricepoints of US$10 and $30 for higher tiers of premium human-based transcription.</p>
<p>It&#8217;s missing a few &#8220;nice to haves&#8221; &#8211; SpinVox let me reply to voicemails via text-to-voice and would let me update my social networks by speaking a message.</p>
<p>The website and mobile web service need a bit of spit-and-polish &#8211; but it is functional.</p>
<p>I highly recommend you <a href="http://www.ribbit.com/mobile/">sign up for the beta of Ribbit</a>.</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/&amp;title=Ribbit+Voicemail" title="Add 'Ribbit Voicemail' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Ribbit Voicemail' to Del.icio.us" alt="Add 'Ribbit Voicemail' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/&amp;title=Ribbit+Voicemail" title="Add 'Ribbit Voicemail' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Ribbit Voicemail' to digg" alt="Add 'Ribbit Voicemail' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/&amp;title=Ribbit+Voicemail" title="Add 'Ribbit Voicemail' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Ribbit Voicemail' to reddit" alt="Add 'Ribbit Voicemail' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/" title="Add 'Ribbit Voicemail' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Ribbit Voicemail' to Technorati" alt="Add 'Ribbit Voicemail' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/&amp;h=Ribbit+Voicemail" title="Add 'Ribbit Voicemail' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Ribbit Voicemail' to Newsvine" alt="Add 'Ribbit Voicemail' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/&amp;title=Ribbit+Voicemail" title="Add 'Ribbit Voicemail' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Ribbit Voicemail' to Stumble Upon" alt="Add 'Ribbit Voicemail' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/&amp;title=Ribbit+Voicemail" title="Add 'Ribbit Voicemail' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Ribbit Voicemail' to Google Bookmarks" alt="Add 'Ribbit Voicemail' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/" title="Add 'Ribbit Voicemail' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Ribbit Voicemail' to Bloglines" alt="Add 'Ribbit Voicemail' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Ribbit+Voicemail&amp;url=http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/" title="Add 'Ribbit Voicemail' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Ribbit Voicemail' to SlashDot" alt="Add 'Ribbit Voicemail' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/&amp;t=Ribbit+Voicemail" title="Add 'Ribbit Voicemail' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Ribbit Voicemail' to FaceBook" alt="Add 'Ribbit Voicemail' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/" title="Add 'Ribbit Voicemail' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'Ribbit Voicemail' to Wikio" alt="Add 'Ribbit Voicemail' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/" title="Add 'Ribbit Voicemail' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Ribbit Voicemail' to Twitter" alt="Add 'Ribbit Voicemail' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=Ribbit+Voicemail&amp;url=http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/" title="Add 'Ribbit Voicemail' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'Ribbit Voicemail' to FriendFeed" alt="Add 'Ribbit Voicemail' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/03/ribbit-voicemail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Perfect Twitter Spam Attack?</title>
		<link>http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 09:59:03 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[usability]]></category>
		<category><![CDATA[evil genius]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1796</guid>
		<description><![CDATA[This morning, when I logged on to Twitter, I saw a user who I didn&#8217;t recognise tweeting away in my timeline.
I wracked my brains thinking about how they could have gotten in there before I realised it was a long-dormant friend who had changed their name and avatar.
But, in thinking about how a spammer could [...]]]></description>
			<content:encoded><![CDATA[<p>This morning, when I logged on to Twitter, I saw a user who I didn&#8217;t recognise tweeting away in my timeline.</p>
<p>I wracked my brains thinking about how they could have gotten in there before I realised it was a long-dormant friend who had changed their name and avatar.</p>
<p>But, in thinking about how a spammer could infiltrate one&#8217;s timeline, I think I came up with a fairly bullet-proof method to spam Twitter users.</p>
<p>I present this as an exercise in devious thinking &#8211; and also to show how our assumptions about security can play against us. Remember, hacking and impersonation are likely to be illegal in your jurisdiction.  This information is designed to help you understand how security weaknesses can occur.</p>
<h2>Being Evil</h2>
<p>Imagine you are a nasty, evil Twitter spammer.  Your own mother wouldn&#8217;t spit on you if you were on fire &#8211; that&#8217;s how mean you are.  Here&#8217;s what you do.</p>
<ol>
<li>Obtain a user&#8217;s password.  Admittedly, this is the hardest part of the process. You might use a dictionary attack, use the same password they use to log in to another site, or somehow steal it.</li>
<li>Log on to Twitter.</li>
<li>Go to &#8220;Connections&#8221; and see which services they have connected to using OAuth.  For the purposes of this experiment, let&#8217;s assume they use Example.com.</li>
<li>Go to Example.com and OAuth yourself with Twitter using your mark&#8217;s credentials.</li>
<li>Here&#8217;s where the ordinary spammer falls down.  The ordinary spammer will start sending out messages from the mark&#8217;s account.  That&#8217;s <strong>not</strong> the aim of this weakness.</li>
<li>From the mark&#8217;s account, through Example.com, make your victim follow one of your spam accounts.  An account which exists solely to show adverts to your victim.</li>
</ol>
<p>Your victim now sees your adverts for pills, poker and porn in their timeline.  With any luck, they&#8217;ll just assume that one of their true friends is promoting your illicit wares.</p>
<h2>Counter Attack</h2>
<p>Most victims will assume that they accidentally followed your spam account &#8211; or that one of their friends has been hacked.</p>
<p>Worst case scenario, they unfollow your spam account.</p>
<p><strong><em>So you just make them follow you again!</em></strong> Remember, you are <strong>still</strong> OAuth&#8217;d to Example.com. You can make them follow as many of your spam accounts as you think you can get away with.</p>
<p>At this point, the intelligent victim will think that their account may be compromised and change their password.</p>
<p><strong><em>It doesn&#8217;t matter</em>!</strong> Because you have used OAuth, password changes <em>don&#8217;t affect you</em>.  You can continue make them follow as many of your spam accounts as you think you can get away with.</p>
<p>At this point, the <em>really</em> intelligent victim will go through their OAuth connections to look for something suspicious.  They won&#8217;t find it.  Remember steps 3 and 4?  <strong>You are OAuth&#8217;d to a service that your victim trusts</strong>.</p>
<p>Because of the way Twitter displays OAuth information, there&#8217;s no way for a victim to know when a service was last authorised.</p>
<div id="attachment_1798" class="wp-caption aligncenter" style="width: 460px"><img class="size-full wp-image-1798" title="Twitter OAuth Connections" src="http://shkspr.mobi/blog/wp-content/uploads/2010/03/Twitter-OAuth-Connections.png" alt="Twitter OAuth Connections" width="450" height="501" /><p class="wp-caption-text">Twitter OAuth Connections</p></div>
<p>There is no information other than the <em>first time</em> the OAuth was set up.  No last accessed date, no IP addresses, nothing useful.</p>
<p>When following an account, the victim gets no notification of what has happened, when it has happened or how it has happened.  There is no way of them knowing which of their OAuth&#8217;d connections have been compromised, nor when it happened.</p>
<p>Their only safe option is to revoke <em>every single </em>OAuth connection.  Then reauthorise.  A time consuming and annoying prospect.</p>
<h2>Conclusion</h2>
<p>I hope I&#8217;ve demonstrated two things.</p>
<p>Firstly, there&#8217;s more to spam then just sending out messages.  Forcing someone to read a message is just as annoying.</p>
<p>Secondly, our understanding of security and usability haven&#8217;t quite caught up with the new tools which are available to us.  OAuth is still better than giving your password to an untrusted site &#8211; but without essential usability changes, a compromised account is a lot more dangerous than the user would suspect.</p>
<p>This &#8220;attack&#8221; still relies on a victim having their original password compromised.  That&#8217;s not a trivial matter.  But security is like sexual health &#8211; it only takes one little accident&#8230;</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/&amp;title=The+Perfect+Twitter+Spam+Attack%3F" title="Add 'The Perfect Twitter Spam Attack?' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'The Perfect Twitter Spam Attack?' to Del.icio.us" alt="Add 'The Perfect Twitter Spam Attack?' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/&amp;title=The+Perfect+Twitter+Spam+Attack%3F" title="Add 'The Perfect Twitter Spam Attack?' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'The Perfect Twitter Spam Attack?' to digg" alt="Add 'The Perfect Twitter Spam Attack?' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/&amp;title=The+Perfect+Twitter+Spam+Attack%3F" title="Add 'The Perfect Twitter Spam Attack?' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'The Perfect Twitter Spam Attack?' to reddit" alt="Add 'The Perfect Twitter Spam Attack?' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/" title="Add 'The Perfect Twitter Spam Attack?' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'The Perfect Twitter Spam Attack?' to Technorati" alt="Add 'The Perfect Twitter Spam Attack?' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/&amp;h=The+Perfect+Twitter+Spam+Attack%3F" title="Add 'The Perfect Twitter Spam Attack?' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'The Perfect Twitter Spam Attack?' to Newsvine" alt="Add 'The Perfect Twitter Spam Attack?' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/&amp;title=The+Perfect+Twitter+Spam+Attack%3F" title="Add 'The Perfect Twitter Spam Attack?' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'The Perfect Twitter Spam Attack?' to Stumble Upon" alt="Add 'The Perfect Twitter Spam Attack?' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/&amp;title=The+Perfect+Twitter+Spam+Attack%3F" title="Add 'The Perfect Twitter Spam Attack?' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'The Perfect Twitter Spam Attack?' to Google Bookmarks" alt="Add 'The Perfect Twitter Spam Attack?' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/" title="Add 'The Perfect Twitter Spam Attack?' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'The Perfect Twitter Spam Attack?' to Bloglines" alt="Add 'The Perfect Twitter Spam Attack?' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=The+Perfect+Twitter+Spam+Attack%3F&amp;url=http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/" title="Add 'The Perfect Twitter Spam Attack?' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'The Perfect Twitter Spam Attack?' to SlashDot" alt="Add 'The Perfect Twitter Spam Attack?' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/&amp;t=The+Perfect+Twitter+Spam+Attack%3F" title="Add 'The Perfect Twitter Spam Attack?' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'The Perfect Twitter Spam Attack?' to FaceBook" alt="Add 'The Perfect Twitter Spam Attack?' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/" title="Add 'The Perfect Twitter Spam Attack?' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'The Perfect Twitter Spam Attack?' to Wikio" alt="Add 'The Perfect Twitter Spam Attack?' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/" title="Add 'The Perfect Twitter Spam Attack?' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'The Perfect Twitter Spam Attack?' to Twitter" alt="Add 'The Perfect Twitter Spam Attack?' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=The+Perfect+Twitter+Spam+Attack%3F&amp;url=http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/" title="Add 'The Perfect Twitter Spam Attack?' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'The Perfect Twitter Spam Attack?' to FriendFeed" alt="Add 'The Perfect Twitter Spam Attack?' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/03/the-perfect-twitter-spam-attack/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>I Love Open Source</title>
		<link>http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 22:21:40 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[voteuk]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1758</guid>
		<description><![CDATA[As I mentioned in my last post about VoteUK, I found the TheyWorkForYou API to be a little lacking when it came to image sizing.
I posted a request asking if there was a pattern to the image sizes and, if not, was it possible to have the sizes returned in the API.
The &#8220;standard&#8221; open source [...]]]></description>
			<content:encoded><![CDATA[<p>As I mentioned in <a href="http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/">my last post about VoteUK</a>, I found the TheyWorkForYou API to be a little lacking when it came to image sizing.</p>
<p>I <a href="https://secure.mysociety.org/admin/lists/pipermail/developers-public/2010-February/006115.html">posted a request</a> asking if there was a pattern to the image sizes and, if not, was it possible to have the sizes returned in the API.</p>
<p>The &#8220;standard&#8221; open source reply &#8211; &#8220;<em>fix it yerself</em>&#8221; &#8211; was <a href="https://secure.mysociety.org/admin/lists/pipermail/developers-public/2010-February/006117.html">predictably swift</a>.</p>
<p>So I did.</p>
<p>The <a href="http://github.com/mysociety/theyworkforyou">source code</a> is remarkably accessible &#8211; although a few more comments wouldn&#8217;t go amiss.  This was my first experience with GIT and Github.  It was easy to get the code and, luckily, I didn&#8217;t have to dive too far in to its syntax.</p>
<p>I had initially thought about using the EXIF data within the images to get the width and height.  Unfortunately, not every image can be guaranteed to have (accurate) EXIF data.  PHP to the rescue once again with the <a href="http://php.net/manual/en/function.getimagesize.php">getimagesize() </a>function.</p>
<p>So, where we previously had</p>
<pre>if ($image) $row['image'] = $image;</pre>
<p>This becomes</p>
<pre>if ($image) {
	list($width, $height) = getimagesize($image);
	$row['image'] = $image;
	$row['image_height'] = $height;
	$row['image_width'] = $width;
}</pre>
<p>Many thanks to Matthew Somerville for <a href="https://secure.mysociety.org/admin/lists/pipermail/developers-public/2010-February/006172.html">testing and releasing the patch in double quick time</a>. You can <a href="http://github.com/mysociety/theyworkforyou/commit/b6d93223b1d29dc1cc3bbe00abc61307ed89e0af">examine the changes</a> made to the code.</p>
<p>So now the API returns,</p>
<pre>&lt;image&gt;/images/mps/10409.jpg&lt;/image&gt;
&lt;image_height&gt;59&lt;/image_height&gt;
&lt;image_width&gt;49&lt;/image_width&gt;</pre>
<p>Brilliant!</p>
<p>So, I have a problem, I can see how much effort it will be to fix, I suggest a solution, it works and goes into production.  That&#8217;s the awesome power of open source.</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/&amp;title=I+Love+Open+Source" title="Add 'I Love Open Source' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'I Love Open Source' to Del.icio.us" alt="Add 'I Love Open Source' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/&amp;title=I+Love+Open+Source" title="Add 'I Love Open Source' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'I Love Open Source' to digg" alt="Add 'I Love Open Source' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/&amp;title=I+Love+Open+Source" title="Add 'I Love Open Source' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'I Love Open Source' to reddit" alt="Add 'I Love Open Source' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/" title="Add 'I Love Open Source' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'I Love Open Source' to Technorati" alt="Add 'I Love Open Source' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/&amp;h=I+Love+Open+Source" title="Add 'I Love Open Source' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'I Love Open Source' to Newsvine" alt="Add 'I Love Open Source' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/&amp;title=I+Love+Open+Source" title="Add 'I Love Open Source' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'I Love Open Source' to Stumble Upon" alt="Add 'I Love Open Source' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/&amp;title=I+Love+Open+Source" title="Add 'I Love Open Source' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'I Love Open Source' to Google Bookmarks" alt="Add 'I Love Open Source' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/" title="Add 'I Love Open Source' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'I Love Open Source' to Bloglines" alt="Add 'I Love Open Source' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=I+Love+Open+Source&amp;url=http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/" title="Add 'I Love Open Source' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'I Love Open Source' to SlashDot" alt="Add 'I Love Open Source' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/&amp;t=I+Love+Open+Source" title="Add 'I Love Open Source' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'I Love Open Source' to FaceBook" alt="Add 'I Love Open Source' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/" title="Add 'I Love Open Source' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'I Love Open Source' to Wikio" alt="Add 'I Love Open Source' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/" title="Add 'I Love Open Source' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'I Love Open Source' to Twitter" alt="Add 'I Love Open Source' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=I+Love+Open+Source&amp;url=http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/" title="Add 'I Love Open Source' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'I Love Open Source' to FriendFeed" alt="Add 'I Love Open Source' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/02/i-love-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hashtag Standards</title>
		<link>http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 17:35:38 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[hashtags]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1730</guid>
		<description><![CDATA[This is one of the longest and geekiest posts I've done.
It's a work in progress.
All comments and abuse welcome.
#hashtag – As long has there has been a way to search Tweets* people have been adding information to make the easy to find. The #hashtag syntax has become the standard for attaching a succinct tag to [...]]]></description>
			<content:encoded><![CDATA[<pre>This is one of the longest and geekiest posts I've done.
It's a work in progress.
All comments and abuse welcome.</pre>
<blockquote><p>#hashtag – As long has there has been a way to search Tweets* people have been adding information to make the easy to find. The #hashtag syntax has become the standard for attaching a succinct tag to Tweets.</p></blockquote>
<p><a href="http://engineering.twitter.com/2010/02/introducing-open-source-twitter-text.html">The Twitter Engineering Blog</a></p>
<p>That&#8217;s all well and good, but <a href="http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/">as I discovered yesterday</a>, without standardisation the ability to search falls apart.</p>
<p>I&#8217;m not talking about whether you should use the #<span style="text-decoration: underline;">LondonFire</span><strong> </strong>tag rather than #<span style="text-decoration: underline;">FireOfLondon</span><strong> </strong>or #<span style="text-decoration: underline;">LDNfire</span>. Rather; how does a computer recognise what a <em>valid</em> tag is?</p>
<h2>Why Does This Matter?</h2>
<p>Search and tracking quickly break down if they are inconsistent.<br />
For example, if you are using #<span style="text-decoration: underline;">Romeo&amp;Juliet</span> to mark all your conversations about the play you are watching, different Twitter clients will link through to either #<span style="text-decoration: underline;">Romeo</span>, #<span style="text-decoration: underline;">Romeo&amp;</span>, or #<span style="text-decoration: underline;">Romeo&amp;Juliet</span>.  Each search returning potentially different conversations.</p>
<h2>What&#8217;s The Convention?</h2>
<p>Twitter&#8217;s website <em>ought</em> to be the definitive source of how hashtags work.  This is their main site.</p>
<div id="attachment_1738" class="wp-caption aligncenter" style="width: 417px"><img class="size-full wp-image-1738" title="Twitter Website Hashtag" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Twitter-Website-Hashtag.png" alt="Twitter Website Hashtag" width="407" height="214" /><p class="wp-caption-text">Twitter Website Hashtag</p></div>
<p>Yet, when we visit their mobile site &#8211; we get a completely different experience.</p>
<div id="attachment_1731" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-1731" title="Mobile.Twitter's hashtags" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/snap20100225_151129.png" alt="Mobile.Twitter's hashtags" width="320" height="480" /><p class="wp-caption-text">Mobile.Twitter&#39;s hashtags</p></div>
<h2>Application Confusion</h2>
<p>Because there aren&#8217;t any widely publicised definitions for what hashtags are, some applications have a significantly different attitude to hashtags</p>
<div id="attachment_1732" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1732" title="SocialScope Hashtags" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Capture8_1_53.jpg" alt="SocialScope Hashtags" width="480" height="320" /><p class="wp-caption-text">SocialScope Hashtags</p></div>
<h2>
<div id="attachment_1771" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1771" title="UberTwitter's Hashtag Support" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/x2_c38906.jpeg" alt="UberTwitter's Hashtag Support" width="480" height="360" /><p class="wp-caption-text">UberTwitter&#39;s Hashtag Support</p></div></h2>
<h2>Standardisation</h2>
<p>To be fair, the Twitter team do have a standard.  Even if they don&#8217;t use it themselves.</p>
<p>They even have some <a href="http://github.com/mzsanford/twitter-text-conformance">limited test cases</a> and libraries in Ruby and Java.</p>
<p>So, given that Twitter, their implementation and apps all disagree on what a hashtag is, let&#8217;s try to work our what they <em>should</em> be.</p>
<h2>Anatomy of a Tag</h2>
<p>To begin at the beginning.  A hashtag starts with a hash. #.  Simple, no? No.</p>
<p>There are two different hash symbols! There&#8217;s the # we all know and love, and there&#8217;s ＃.  Looks pretty similar, but in fact it&#8217;s the unicode symbol [U+FF03]
<p>Actually, that&#8217;s not the beginning.  What comes before the # of the hashtag?</p>
<p>Consider the following examples &#8211; which should be hashtags?</p>
<ul>
<li>#tag &#8211; the # starts off the Tweet</li>
<li>This is my tweet #test &#8211; the # comes after a space.</li>
<li>This is it.#tag &#8211; the # is pushed against some punctuation, perhaps for reasons of space.</li>
<li>Here we go-#LiftOff &#8211; the # is pushed against a -</li>
<li>I&#8217;ve run out of space#OhNo &#8211; the # is pushed against some text</li>
<li>&amp;#nbsp; &#8211; the # is part of an HTML entity</li>
<li>text　#hashtag &#8211; the # comes after a &#8220;wide space&#8221; (U+3000)</li>
<li>Should I use #tag/#hashtag? The # comes after a /</li>
<li>Is this valid ##tag &#8211; there are two #s</li>
</ul>
<p>So, we can see it&#8217;s a little more complicated than we first thought.</p>
<h2>The End</h2>
<p>Let&#8217;s skip over what&#8217;s <em>in</em> a hashtag and as &#8220;how do we know that a tag has finished?&#8221;</p>
<p>Consider the following examples -</p>
<ul>
<li>New album #OMG! &#8211; should the ! be part of the hashtag?</li>
<li>#BreakingNews: dog bites man &#8211; should the : be part of the hashtag?</li>
<li>(is this a #tag) &#8211; should the ) be part of the hashtag?</li>
<li>I like #tags#</li>
</ul>
<p>We probably don&#8217;t want to have any punctuation at the end of our tag.  Can you think of any counter examples?</p>
<h2>Yummy Filling</h2>
<p>Our language is more than just the letters A-Z. We&#8217;ve got punctuation, numbers, symbols and all manner of other glyphs.  Which of them count as part of a hashtag?</p>
<p>Take a look at these examples</p>
<ul>
<li>Vote Bush! #Don&#8217;t</li>
<li>My dog died #:-(</li>
<li>Einstein #e=mc^2</li>
<li>I&#8217;m on bus #123</li>
<li>I&#8217;m giving #110%</li>
</ul>
<p>Using Twitter&#8217;s standards, <strong>none</strong> of the above render as complete tags.</p>
<h2>Foreign Languages</h2>
<p>We&#8217;ve mentioned accents above.  As we can see in the first example, &#8220;funny&#8221; characters can cause problems.  Broadly speaking, there are three issues.</p>
<ol>
<li>Accents.  Should the é on #Café be linked?</li>
<li>Accents.  Is #Romeo the same as #Ŕöméø?</li>
<li>Japanese, and some other languages, don&#8217;t use spaces.  Is #tagの valid? What about # 会議中 ?</li>
</ol>
<h2>Exhausted</h2>
<p>These are a fraction of the possible problems.  It&#8217;s exhausting trying to find all the possible textual combinations and permutations which could lead into a hashtag.  No wonder there is confusion!</p>
<p>Search is a complex, profitable, and useful business.  It&#8217;s of vital importance that there is a legitimate, comprehensive standard which <strong>all</strong> sites and applications can follow.</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/&amp;title=Hashtag+Standards" title="Add 'Hashtag Standards' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Hashtag Standards' to Del.icio.us" alt="Add 'Hashtag Standards' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/&amp;title=Hashtag+Standards" title="Add 'Hashtag Standards' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Hashtag Standards' to digg" alt="Add 'Hashtag Standards' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/&amp;title=Hashtag+Standards" title="Add 'Hashtag Standards' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Hashtag Standards' to reddit" alt="Add 'Hashtag Standards' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/" title="Add 'Hashtag Standards' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Hashtag Standards' to Technorati" alt="Add 'Hashtag Standards' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/&amp;h=Hashtag+Standards" title="Add 'Hashtag Standards' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Hashtag Standards' to Newsvine" alt="Add 'Hashtag Standards' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/&amp;title=Hashtag+Standards" title="Add 'Hashtag Standards' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Hashtag Standards' to Stumble Upon" alt="Add 'Hashtag Standards' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/&amp;title=Hashtag+Standards" title="Add 'Hashtag Standards' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Hashtag Standards' to Google Bookmarks" alt="Add 'Hashtag Standards' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/" title="Add 'Hashtag Standards' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Hashtag Standards' to Bloglines" alt="Add 'Hashtag Standards' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Hashtag+Standards&amp;url=http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/" title="Add 'Hashtag Standards' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Hashtag Standards' to SlashDot" alt="Add 'Hashtag Standards' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/&amp;t=Hashtag+Standards" title="Add 'Hashtag Standards' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Hashtag Standards' to FaceBook" alt="Add 'Hashtag Standards' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/" title="Add 'Hashtag Standards' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'Hashtag Standards' to Wikio" alt="Add 'Hashtag Standards' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/" title="Add 'Hashtag Standards' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Hashtag Standards' to Twitter" alt="Add 'Hashtag Standards' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=Hashtag+Standards&amp;url=http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/" title="Add 'Hashtag Standards' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'Hashtag Standards' to FriendFeed" alt="Add 'Hashtag Standards' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/02/hashtag-standards/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Girl With A One Track Mind</title>
		<link>http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 10:03:37 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[swinging london]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1719</guid>
		<description><![CDATA[It&#8217;s always a thrill to hear an author read their work aloud. It&#8217;s even more of an honour to be at the author&#8217;s début.
Last night, 100 people crammed into the function room of Canal 125 for the launch event of Girl With A One Track Mind Exposed by Abby Lee aka Zoe Margolis.

Sitting around her [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s always a thrill to hear an author read their work aloud. It&#8217;s even more of an honour to be at the author&#8217;s début.<br />
Last night, 100 people crammed into the function room of Canal 125 for the <a href="http://girlwithaonetrackmind.blogspot.com/2010/02/event.html">launch event</a> of <a href="http://www.amazon.co.uk/gp/product/0330509691?ie=UTF8&amp;tag=shkspr-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=0330509691">Girl With A One Track Mind Exposed</a> by Abby Lee aka <a href="http://girlwithaonetrackmind.blogspot.com/">Zoe Margolis</a>.</p>
<p style="text-align: center;"><a href="http://www.amazon.co.uk/gp/product/0330509691?ie=UTF8&amp;tag=shkspr-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=0330509691"><img class="aligncenter" style="border: 0pt none;" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/51UUT-yXzZL._SL160_.jpg" border="0" alt="" width="106" height="160" /></a><img class=" odiwtrqldkazznminmtz odiwtrqldkazznminmtz" style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=shkspr-21&amp;l=as2&amp;o=2&amp;a=0330509691" border="0" alt="" width="1" height="1" /></p>
<p>Sitting around her in a semicircle, it was like Jackanory for adults. Despite never having read her work in public before, Zoe&#8217;s voice rang out loud and clear. She relished the innuendo and succeeded in making her audience dissolve into fits of giggles on several occasions.</p>
<p>This is the sequel to her extraordinary first book, <a href="http://www.amazon.co.uk/gp/product/0091912407?ie=UTF8&#038;tag=shkspr-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0091912407">Girl with a One-track Mind: Confessions of the Seductress Next Door</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=shkspr-21&#038;l=as2&#038;o=2&#038;a=0091912407" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
<p>In with the smut, the London A-Z of where she&#8217;s shagged, and her thoughts on Rampant Rabbits, was unexpected heartbreak.</p>
<p>Anyone who has followed her blog knows the disgraceful way the Sunday Times treated Zoe. Their obnoxious pursuit of her and the lengths they went to for a &#8220;scoop&#8221;. I knew the story well. But hearing Zoe reading it aloud brought home just how terrifying it was for her.</p>
<p>The abuse &#8211; and there is no other word for it &#8211; is evidently still a raw subject. This new book is the product of emotional distance from a traumatic event &#8211; hence its delay in release.</p>
<p>It takes supreme courage to survive being exposed in front of your peers. Even more courage to take that experience, craft a book around it and then stand up in front of a group of strangers and ask them to listen to you.</p>
<p>Massive congratulations to Zoe for her <a href="http://girlwithaonetrackmind.blogspot.com/">outstanding blog</a> and her brilliant second book.</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/&amp;title=Girl+With+A+One+Track+Mind" title="Add 'Girl With A One Track Mind' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Girl With A One Track Mind' to Del.icio.us" alt="Add 'Girl With A One Track Mind' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/&amp;title=Girl+With+A+One+Track+Mind" title="Add 'Girl With A One Track Mind' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Girl With A One Track Mind' to digg" alt="Add 'Girl With A One Track Mind' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/&amp;title=Girl+With+A+One+Track+Mind" title="Add 'Girl With A One Track Mind' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Girl With A One Track Mind' to reddit" alt="Add 'Girl With A One Track Mind' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/" title="Add 'Girl With A One Track Mind' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Girl With A One Track Mind' to Technorati" alt="Add 'Girl With A One Track Mind' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/&amp;h=Girl+With+A+One+Track+Mind" title="Add 'Girl With A One Track Mind' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Girl With A One Track Mind' to Newsvine" alt="Add 'Girl With A One Track Mind' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/&amp;title=Girl+With+A+One+Track+Mind" title="Add 'Girl With A One Track Mind' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Girl With A One Track Mind' to Stumble Upon" alt="Add 'Girl With A One Track Mind' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/&amp;title=Girl+With+A+One+Track+Mind" title="Add 'Girl With A One Track Mind' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Girl With A One Track Mind' to Google Bookmarks" alt="Add 'Girl With A One Track Mind' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/" title="Add 'Girl With A One Track Mind' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Girl With A One Track Mind' to Bloglines" alt="Add 'Girl With A One Track Mind' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Girl+With+A+One+Track+Mind&amp;url=http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/" title="Add 'Girl With A One Track Mind' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Girl With A One Track Mind' to SlashDot" alt="Add 'Girl With A One Track Mind' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/&amp;t=Girl+With+A+One+Track+Mind" title="Add 'Girl With A One Track Mind' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Girl With A One Track Mind' to FaceBook" alt="Add 'Girl With A One Track Mind' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/" title="Add 'Girl With A One Track Mind' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'Girl With A One Track Mind' to Wikio" alt="Add 'Girl With A One Track Mind' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/" title="Add 'Girl With A One Track Mind' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Girl With A One Track Mind' to Twitter" alt="Add 'Girl With A One Track Mind' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=Girl+With+A+One+Track+Mind&amp;url=http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/" title="Add 'Girl With A One Track Mind' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'Girl With A One Track Mind' to FriendFeed" alt="Add 'Girl With A One Track Mind' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/02/girl-with-a-one-track-mind/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Hashtags and Implicit Knowledge</title>
		<link>http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 16:58:27 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[usability]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[dabr]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[hashtags]]></category>
		<category><![CDATA[tags]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1706</guid>
		<description><![CDATA[What is &#8220;Implicit Knowledge&#8221;?  Essentially it&#8217;s stuff that everyone knows, but no one has written down.  Usually it&#8217;s something that people have worked out through their own experiences.
This sort of knowledge is common in life &#8211; but is fatal in computing and design.  Take the following tweet I received.
The complaint was that [...]]]></description>
			<content:encoded><![CDATA[<p>What is &#8220;Implicit Knowledge&#8221;?  Essentially it&#8217;s stuff that everyone knows, but no one has written down.  Usually it&#8217;s something that people have worked out through their own experiences.</p>
<p>This sort of knowledge is common in life &#8211; but is fatal in computing and design.  Take the following tweet I received.</p>
<div class="quotedtweet" id="tw9582463562" style="background-color:#eef;padding:5px;margin-bottom:5px">
	<div class="tw_user-info" style="padding:10px 10px 5px 0;float:left;text-align:center;width:100px;">
		<div class="tw_thumb">
			<a href="http://twitter.com/Mawkins" title="Mark Hawkins" class="quoting_pic" rel="external"><img src="http://img.tweetimag.es/i/Mawkins_n" alt="Mawkins" /></a>
		</div>
		<div class="tw_screen-name">
			<em><a href="http://twitter.com/Mawkins" title="Twitter page : Mark Hawkins" rel="external">Mawkins</a></em>
		</div>
		<div class="tw_full-name">
			<strong>(Mark Hawkins)</strong>
		</div>
	</div>
	<div class="tw_content" style="float: left; width: 500px; font: 20pt Georgia, Verdana, sans-serif; font-style: normal;">
		<div class="tw_entry-content">
				<a href="http://www.twitter.com/edent" rel="external">@edent</a> <a href="http://www.twitter.com/dabr" rel="external">@dabr</a> you folks aware ampersands / &amp;s don't seem to work as part of hashtag links?

		</div>
	</div>
	<div style="clear: both; text-align: left;font-style:italic;margin-left:110px">
		<p class="tw_meta tw_entry-meta" style="margin: 0;padding-top:5px">
			<small>
				<span>On <a href="http://twitter.com/Mawkins/status/9582463562" rel="external">24-2-2010 16:27:19</a></span> 
				<span>from <a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></span> 
				<span> in reply to <a href="http://twitter.com/edent/status/9581804744" rel="external">Terence Eden</a></span>
			</small>
		</p>
	</div>
</div>
<p>The complaint was that #tfm&amp;a should be rendered as <span style="text-decoration: underline;">#tfm&amp;a</span> not <span style="text-decoration: underline;">#tfm</span>&amp;a.</p>
<h2>Everyone knows that&#8217;s how hashtags work!</h2>
<p>On Twitter&#8217;s website, find the page which discusses hashtag syntax.  Find where they explain how they should be styled.</p>
<p><strong>You can&#8217;t.</strong></p>
<p>And thus implicit knowledge is born.  Dabr only looks at letters and numbers in a hashtag.  It assumes that any other character is the end of the tag.</p>
<div id="attachment_1708" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1708" title="Dabr's Hashtag" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Capture16_35_30.jpg" alt="Dabr's Hashtag" width="480" height="320" /><p class="wp-caption-text">Dabr&#39;s Hashtag</p></div>
<p>Without official guidance &#8211; implicit knowledge develops.</p>
<h2>Has Dabr Got It Wrong?</h2>
<p>No.  I don&#8217;t think so.  Take a look at how Twitter on the web renders hashtags&#8230;</p>
<div id="attachment_1710" class="wp-caption aligncenter" style="width: 392px"><img class="size-full wp-image-1710" title="Twitter's Web Site" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Twitters-Web-Site.png" alt="Twitter's Web Site" width="382" height="312" /><p class="wp-caption-text">Twitter&#39;s Web Site</p></div>
<p>&#8230;and on the mobile.</p>
<div id="attachment_1707" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1707" title="Twitter Mobile" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Capture16_34_33.jpg" alt="Twitter Mobile" width="480" height="320" /><p class="wp-caption-text">Twitter Mobile</p></div>
<h2>So Where Does Render The Full Tag?</h2>
<p>Several applications don&#8217;t render tags in the same way as Twitter.  Take a look at SocialScope</p>
<div id="attachment_1709" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1709" title="SocialScope Hashtags" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Capture16_34_56.jpg" alt="SocialScope Hashtags" width="480" height="320" /><p class="wp-caption-text">SocialScope Hashtags</p></div>
<div id="attachment_1727" class="wp-caption aligncenter" style="width: 330px"><img src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/jsfe.jpg" alt="Tweetie2" title="Tweetie2" width="320" height="480" class="size-full wp-image-1727" /><p class="wp-caption-text">Tweetie2</p></div>
<p>I&#8217;ll upload more screenshots if I find examples of &#8220;badly behaved&#8221; hashtags.  Please let me know if you find any.</p>
<h2>What Does Twitter Say?</h2>
<p>Twitter has one page devoted to hashtags.  It is a <a href="http://help.twitter.com/forums/10711/entries/49309-what-are-hashtags-the-symbol">support page for hashtags</a>.  This explains to people what hashtags are.  There&#8217;s no detail on valid characters, maximum length, or any of the things which might be useful for a developer or designer.</p>
<h3>Edit 2010-02-25</h3>
<p>David Dorward has <a href="http://twitter.com/dorward/status/9584777039">pointed out that there is an official resource</a>. On the Twitter Engineering blog &#8211; which isn&#8217;t linked to from the developer site &#8211; there is a <a href="http://engineering.twitter.com/2010/02/introducing-open-source-twitter-text.html">page discussing hashtags and how to validate them</a>.  You&#8217;ll notice that they are rather circumspect on what should constitute a hashtag.</p>
<h2>Conclusion</h2>
<p>Standards and guidelines allow developers to create compatible applications.</p>
<p>Without explicit recommendations, developers will diverge as widely as possible.  Twitter &#8211; and everyone with an interest in compatibility and usability &#8211; needs to ensure that the knowledge they impart is <em>explicit</em>.</p>
<p>Letting people make it up as they go along leads to confusion.</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/&amp;title=Hashtags+and+Implicit+Knowledge" title="Add 'Hashtags and Implicit Knowledge' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Hashtags and Implicit Knowledge' to Del.icio.us" alt="Add 'Hashtags and Implicit Knowledge' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/&amp;title=Hashtags+and+Implicit+Knowledge" title="Add 'Hashtags and Implicit Knowledge' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Hashtags and Implicit Knowledge' to digg" alt="Add 'Hashtags and Implicit Knowledge' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/&amp;title=Hashtags+and+Implicit+Knowledge" title="Add 'Hashtags and Implicit Knowledge' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Hashtags and Implicit Knowledge' to reddit" alt="Add 'Hashtags and Implicit Knowledge' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/" title="Add 'Hashtags and Implicit Knowledge' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Hashtags and Implicit Knowledge' to Technorati" alt="Add 'Hashtags and Implicit Knowledge' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/&amp;h=Hashtags+and+Implicit+Knowledge" title="Add 'Hashtags and Implicit Knowledge' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Hashtags and Implicit Knowledge' to Newsvine" alt="Add 'Hashtags and Implicit Knowledge' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/&amp;title=Hashtags+and+Implicit+Knowledge" title="Add 'Hashtags and Implicit Knowledge' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Hashtags and Implicit Knowledge' to Stumble Upon" alt="Add 'Hashtags and Implicit Knowledge' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/&amp;title=Hashtags+and+Implicit+Knowledge" title="Add 'Hashtags and Implicit Knowledge' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Hashtags and Implicit Knowledge' to Google Bookmarks" alt="Add 'Hashtags and Implicit Knowledge' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/" title="Add 'Hashtags and Implicit Knowledge' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Hashtags and Implicit Knowledge' to Bloglines" alt="Add 'Hashtags and Implicit Knowledge' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Hashtags+and+Implicit+Knowledge&amp;url=http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/" title="Add 'Hashtags and Implicit Knowledge' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Hashtags and Implicit Knowledge' to SlashDot" alt="Add 'Hashtags and Implicit Knowledge' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/&amp;t=Hashtags+and+Implicit+Knowledge" title="Add 'Hashtags and Implicit Knowledge' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Hashtags and Implicit Knowledge' to FaceBook" alt="Add 'Hashtags and Implicit Knowledge' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/" title="Add 'Hashtags and Implicit Knowledge' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'Hashtags and Implicit Knowledge' to Wikio" alt="Add 'Hashtags and Implicit Knowledge' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/" title="Add 'Hashtags and Implicit Knowledge' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Hashtags and Implicit Knowledge' to Twitter" alt="Add 'Hashtags and Implicit Knowledge' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=Hashtags+and+Implicit+Knowledge&amp;url=http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/" title="Add 'Hashtags and Implicit Knowledge' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'Hashtags and Implicit Knowledge' to FriendFeed" alt="Add 'Hashtags and Implicit Knowledge' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/02/hashtags-and-implicit-knowledge/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Carnival of the Mobilists #212</title>
		<link>http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 17:36:58 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[bloggers]]></category>
		<category><![CDATA[mwc]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1694</guid>
		<description><![CDATA[Well, we&#8217;re post Mobile World Congress, so let&#8217;s see what&#8217;s caught the eye of the web&#8217;s best mobile bloggers.  Here&#8217;s Carnival of the Mobilists #212!
The 25 Biggest Companies in Mobile. The inimitable Tommi Ahonen pores over the statistics and shows the size of companies according to the money they make in mobile &#8211; and [...]]]></description>
			<content:encoded><![CDATA[<p>Well, we&#8217;re post Mobile World Congress, so let&#8217;s see what&#8217;s caught the eye of the web&#8217;s best mobile bloggers.  Here&#8217;s <a href="http://mobili.st/">Carnival of the Mobilists</a> #212!</p>
<p><a href="http://communities-dominate.blogs.com/brands/2010/02/the-25-biggest-companies-in-mobile-by-their-revenues-in-mobile-only-an-ahonen-25-index.html">The 25 Biggest Companies in Mobile</a>. The inimitable Tommi Ahonen pores over the statistics and shows the size of companies according to the money they make in mobile &#8211; and <em>only</em> mobile.  I may query the use of USD rather than € in the calculations, but the data are still highly interesting.  This is my <strong>post of the week!</strong></p>
<p><a href="http://mobhappy.com/blog1/2010/02/19/mob4hire-taking-off/">Mob4Hire launches</a>. There are thousands of handsets on hundreds of networks, how can you be sure your site or app will work on them?  If you don&#8217;t want to spend hundreds of thousands of pounds building a library of devices and SIM cards, it&#8217;s worth looking at a service like this to get a wide range of test cases.</p>
<p><a href="http://mobithinking.com/blog/mobile-winner-at-winter-olympics">Mobile Wins Gold at Winter Olympics</a>.  With more people accessing the mobile web than ever before, MobiThinking takes a look at the explosion in mobile data use around the Olympics.  Let&#8217;s hope that London&#8217;s networks are up to scratch for 2012!</p>
<p><a href="http://mobienthusiast.mobi/mdot-vs-dotmobi-tipping-point">What now for .mobi</a>? With the slightly shocking news that .mobi has been sold to Affilias, what does this mean for the .mobi brand.  I&#8217;ve a vested interest in this one, as I run a .mobi domain.  Will mobile sites migrate to m. a la facebook and twitter?  Can .mobi regain the initiative.  Important questions.</p>
<p><a href="http://www.chetansharma.com/blog/2010/02/17/new-whitepaper-mobile-voip-approaching-the-tipping-point/">Free White Paper on Mobile VoIP</a>.  This is a detailed look into the prospects of mobile VoIP in 2010.  My thoughts? As we move the LTE &#8211; an all IP network &#8211; is there a long term future for alternate VoIP providers?</p>
<p><a href="http://www.nellymoser.com/blog/?p=32">App Wars</a>.  Native apps vs Web apps vs Widgets vs JIL vs Device App Stores vs Operator App stores.  It&#8217;s a bloodbath out there &#8211; but John Puterbaugh performs some excellent analysis on the main players and issues.</p>
<p>In a similar vein, <a href="http://www.msearchgroove.com/2010/02/22/apps-or-browsers-speak-out-on-the-touch-web-contribute-to-our-collective-vision/">Apps vs Browsers</a> &#8211; Peggy Salz is looking for <em>your</em> opinion.  Will the mobile web splinter between touch devices, normal phones, apps?</p>
<p>Finally, bored with Google and Yahoo? Why not try <a href="http://www.handycase.com/gune/">Gune</a>, a new meta-search engine for mobile.</p>
<p>You can find all my latest mobile focused blog posts at <a href="http://shkspr.mobi/blog/index.php/category/mobile/">http://shkspr.mobi/blog/index.php/category/mobile/</a></p>
<p>Thanks for reading!</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/&amp;title=Carnival+of+the+Mobilists+%23212" title="Add 'Carnival of the Mobilists #212' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Carnival of the Mobilists #212' to Del.icio.us" alt="Add 'Carnival of the Mobilists #212' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/&amp;title=Carnival+of+the+Mobilists+%23212" title="Add 'Carnival of the Mobilists #212' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Carnival of the Mobilists #212' to digg" alt="Add 'Carnival of the Mobilists #212' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/&amp;title=Carnival+of+the+Mobilists+%23212" title="Add 'Carnival of the Mobilists #212' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Carnival of the Mobilists #212' to reddit" alt="Add 'Carnival of the Mobilists #212' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/" title="Add 'Carnival of the Mobilists #212' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Carnival of the Mobilists #212' to Technorati" alt="Add 'Carnival of the Mobilists #212' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/&amp;h=Carnival+of+the+Mobilists+%23212" title="Add 'Carnival of the Mobilists #212' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Carnival of the Mobilists #212' to Newsvine" alt="Add 'Carnival of the Mobilists #212' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/&amp;title=Carnival+of+the+Mobilists+%23212" title="Add 'Carnival of the Mobilists #212' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Carnival of the Mobilists #212' to Stumble Upon" alt="Add 'Carnival of the Mobilists #212' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/&amp;title=Carnival+of+the+Mobilists+%23212" title="Add 'Carnival of the Mobilists #212' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Carnival of the Mobilists #212' to Google Bookmarks" alt="Add 'Carnival of the Mobilists #212' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/" title="Add 'Carnival of the Mobilists #212' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Carnival of the Mobilists #212' to Bloglines" alt="Add 'Carnival of the Mobilists #212' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Carnival+of+the+Mobilists+%23212&amp;url=http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/" title="Add 'Carnival of the Mobilists #212' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Carnival of the Mobilists #212' to SlashDot" alt="Add 'Carnival of the Mobilists #212' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/&amp;t=Carnival+of+the+Mobilists+%23212" title="Add 'Carnival of the Mobilists #212' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Carnival of the Mobilists #212' to FaceBook" alt="Add 'Carnival of the Mobilists #212' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/" title="Add 'Carnival of the Mobilists #212' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'Carnival of the Mobilists #212' to Wikio" alt="Add 'Carnival of the Mobilists #212' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/" title="Add 'Carnival of the Mobilists #212' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Carnival of the Mobilists #212' to Twitter" alt="Add 'Carnival of the Mobilists #212' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=Carnival+of+the+Mobilists+%23212&amp;url=http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/" title="Add 'Carnival of the Mobilists #212' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'Carnival of the Mobilists #212' to FriendFeed" alt="Add 'Carnival of the Mobilists #212' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/02/carnival-of-the-mobilists-212/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Let Users Do Things They Can&#8217;t Do</title>
		<link>http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 15:05:42 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[usability]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[dabr]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1682</guid>
		<description><![CDATA[There are many &#8220;rules&#8221; when it comes to User Interface / User Experience design.  One that I try to stick to is &#8220;Don&#8217;t let users do things they can&#8217;t do.&#8221;
It&#8217;s one of my gripes with Linux.  If you&#8217;re editing a configuration file, you are relying on yourself to sanity check your input &#8211; often without [...]]]></description>
			<content:encoded><![CDATA[<p>There are many &#8220;rules&#8221; when it comes to User Interface / User Experience design.  One that I try to stick to is &#8220;Don&#8217;t let users do things they can&#8217;t do.&#8221;</p>
<p>It&#8217;s one of my gripes with Linux.  If you&#8217;re editing a configuration file, you are relying on yourself to sanity check your input &#8211; often without knowing what the limits are.</p>
<p>Take these two different examples.</p>
<p>In a text file, we might have:</p>
<blockquote>
<pre>#Maximum Widgets to fidget
maxW_to-F = 0
</pre>
</blockquote>
<p>Whereas a GUI would show</p>
<p>How many Widgets do you want to fidget?<br />
<select> <option>1</option> <option>2</option> <option>3</option> <option>5</option> </select>
<p>Even if you don&#8217;t know the rules behind Widget fidgetting (must be a prime number lower than 7), the GUI won&#8217;t let you choose a value that you can&#8217;t select.  The GUI doesn&#8217;t prevent you setting an innapropriate value &#8211; just an illegal one. Your config file, however, could be set to any crazy value that a user type &#8211; often resulting in &#8220;unpredictable&#8221; results.</p>
<blockquote>
<pre>#Maximum Widgets to fidget
maxW_to-F = seventeen
</pre>
</blockquote>
<p>It&#8217;s with this in mind that I&#8217;ve made the following <a href="http://code.google.com/p/dabr/source/detail?r=279">change to Dabr</a> &#8211; the mobile Twitter client.</p>
<h2>To Auth or Not To Auth? That Is The Question</h2>
<p>Twitter&#8217;s API has bug / peculiarity (<a href="http://groups.google.com/group/twitter-development-talk/browse_thread/thread/318a5e820ee73765#">reported to their discussion board</a>) which causes Dabr to log a user out.  Let me explain the steps</p>
<ul>
<li>User 1 (@private) has set her tweets to &#8220;protected&#8221;.</li>
<li>This means no one can see @private&#8217;s tweet unless she allows them.</li>
<li>@private has not allowed User 2 (@edent) to view her tweets.  She is protect from his view.</li>
<li>@edent clicks to view @private&#8217;s profile.</li>
<li>@edent can see that @private has 42 friends, 17 followers and 3 favourites.</li>
</ul>
<p>So far, this is the same behaviour on Twitter&#8217;s website as it is through their API.  Here&#8217;s the difference</p>
<h3>Web</h3>
<ul>
<li>@edent tries to see @private&#8217;s followers and can see their names, profile pictures etc.</li>
<li>@edent can also see @private&#8217;s friends</li>
<li>@edent <strong>cannot</strong> see @private&#8217;s favourites (or even how many favourites she has)</li>
</ul>
<h3>API</h3>
<ul>
<li>@edent tries to see @private&#8217;s followers, friends or favourites</li>
<li>Because @edent isn&#8217;t allowed to see @private&#8217;s info, the API returns <a href="http://apiwiki.twitter.com/HTTP-Response-Codes-and-Errors">401 Authorisation Required</a>.</li>
</ul>
<p>This is where things get tricky. Dabr sees the 401 and concludes that the user has invalid credentials.  It then, as a security measure, clears the user&#8217;s cookie and logs them out.</p>
<p>This may be a little harsh, but <a href="http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error">HTTP 401 essentially says that the authorisation has failed</a>.</p>
<h2>Fixing It</h2>
<p>There are 3 ways that this could be fixed</p>
<ol>
<li>Twitter could rationalise the API to allow access to the same content that a web user gets.</li>
<li>Twitter could return a different status code.</li>
<li>Dabr needs fixing.</li>
</ol>
<p>So, how do we get Dabr not to log out when it receives a 401 <em>only</em> under these specific circumstances?</p>
<p><a href="http://code.google.com/p/dabr/source/browse/trunk/common/twitter.php?r=274#293">Looking at the code</a>, we can see that Dabr simply sees the HTTP response code.  To fix it we&#8217;ll need to pass extra parameters, check where the code was called from, investigate all the edge cases, add more logic to the system, futz around breaking things, etc&#8230; etc&#8230;</p>
<p>What a pain in the&#8230;</p>
<h2>Or</h2>
<p><em>Don&#8217;t let users do things they </em>can&#8217;t<em> do.</em></p>
<p>If a user can&#8217;t see the information &#8211; why do we even let them <em>try</em> to see the information?  Why can&#8217;t we just get rid of the link?</p>
<p>This is what a user currently sees:</p>
<div id="attachment_1688" class="wp-caption aligncenter" style="width: 364px"><img class="size-full wp-image-1688" title="Old Style" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Old-Style.png" alt="Old Style" width="354" height="73" /><p class="wp-caption-text">Old Style</p></div>
<p>We&#8217;ve established that they can&#8217;t view followers, friends and favourites.  So we can get rid of those links (but not the information).</p>
<div id="attachment_1687" class="wp-caption aligncenter" style="width: 364px"><img class="size-full wp-image-1687" title="New Style" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/New-Style.png" alt="New Style" width="354" height="73" /><p class="wp-caption-text">New Style</p></div>
<p>(Incidentally, I&#8217;ve changed the order of the links.  I&#8217;ve tried to group together similar items.  Followers, friends, favourites and lists go together. Then DM. Finally, follow, block, report spam.)</p>
<p>Now a user cannot click through to an unwanted error message.</p>
<h2>Or</h2>
<p>There is another way round this.  With &#8220;Direct Messages&#8221; we could do the same thing &#8211; simply remove the link if you&#8217;re not able to send that user a DM.</p>
<p>Instead, we&#8217;ve taken the approach of displaying a suitable error message.</p>
<div id="attachment_1689" class="wp-caption aligncenter" style="width: 455px"><img class="size-full wp-image-1689" title="Direct Message Warning" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Direct-Message-Warning.png" alt="Direct Message Warning" width="445" height="194" /><p class="wp-caption-text">Direct Message Warning</p></div>
<p>The advantage of this is that the user gets an explanation as to <em>why</em> they are unable to complete an action.</p>
<h2>Your Thought?</h2>
<p>Which do you prefer? Being unable to click on a link (with no explanation) or clicking on a link only to be given a warning message?</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/&amp;title=Don%26%238217%3Bt+Let+Users+Do+Things+They+Can%26%238217%3Bt+Do" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Del.icio.us" alt="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/&amp;title=Don%26%238217%3Bt+Let+Users+Do+Things+They+Can%26%238217%3Bt+Do" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to digg" alt="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/&amp;title=Don%26%238217%3Bt+Let+Users+Do+Things+They+Can%26%238217%3Bt+Do" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to reddit" alt="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Technorati" alt="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/&amp;h=Don%26%238217%3Bt+Let+Users+Do+Things+They+Can%26%238217%3Bt+Do" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Newsvine" alt="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/&amp;title=Don%26%238217%3Bt+Let+Users+Do+Things+They+Can%26%238217%3Bt+Do" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Stumble Upon" alt="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/&amp;title=Don%26%238217%3Bt+Let+Users+Do+Things+They+Can%26%238217%3Bt+Do" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Google Bookmarks" alt="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Bloglines" alt="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Don%26%238217%3Bt+Let+Users+Do+Things+They+Can%26%238217%3Bt+Do&amp;url=http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to SlashDot" alt="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/&amp;t=Don%26%238217%3Bt+Let+Users+Do+Things+They+Can%26%238217%3Bt+Do" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to FaceBook" alt="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Wikio" alt="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Twitter" alt="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=Don%26%238217%3Bt+Let+Users+Do+Things+They+Can%26%238217%3Bt+Do&amp;url=http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to FriendFeed" alt="Add 'Don&#8217;t Let Users Do Things They Can&#8217;t Do' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/02/dont-let-users-do-things-they-cant-do/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress Mobile &#8211; For The Rest of Us</title>
		<link>http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 16:10:49 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wpmp]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1660</guid>
		<description><![CDATA[WordPress is only for people rich enough to buy a smartphone and cool enough to choose the right brand.  Right?
 From the WordPress Blog:
I like to moderate comments when I’m waiting for something: a checkout clerk to help me, the dentist to call me back to the office, a soy chai to be made. I [...]]]></description>
			<content:encoded><![CDATA[<p><em>WordPress is only for people rich enough to buy a smartphone and cool enough to choose the right brand.  Right?</em></p>
<p><em> </em>From the <a href="http://wordpress.org/development/2010/02/wordpress-on-the-go/">WordPress Blog</a>:</p>
<blockquote><p>I like to moderate comments when I’m waiting for something: a checkout clerk to help me, the dentist to call me back to the office, a soy chai to be made. I don’t lug my laptop everywhere I go,* so I love it that we have mobile apps that make this possible. I don’t know of any other blogging platform that has mobile apps for i<strong>Phone, Android <em>and</em> Blackberry</strong>. Do you? [emphasis added]</p></blockquote>
<p>So if you are one of the 85% of people without one of these high end devices, you are out of luck. No managing your WordPress Blog for you.</p>
<p><strong> </strong>This is &#8211; as PPK writes in <a href="http://www.quirksmode.org/blog/archives/2010/02/the_iphone_obse.html">The iPhone Obsession</a> &#8211; <strong>a colossal mistake</strong>.  To ignore the majority of phone and focus significant developer resources on a minority of platforms just doesn&#8217;t make sense.</p>
<p>So, how do &#8220;ordinary&#8221; mobile users access their Blogs&#8217; admin area?</p>
<h2>Enter WordPress Mobile Pack</h2>
<p>The <a href="http://wordpress.org/extend/plugins/wordpress-mobile-pack/">WordPress Mobile Pack</a> (which I help develop) doesn&#8217;t just make your blog viewable on <strong>all </strong>mobile browsers &#8211; it also makes your WordPress Dashboard options available.  Take a look at these screenshots.</p>
<div id="attachment_1664" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1664" title="Mobile Comment Moderation" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Mobile-Comment-Moderation.png" alt="Mobile Comment Moderation" width="480" height="566" /><p class="wp-caption-text">Mobile Comment Moderation</p></div>
<p>This page is simple enough to work on any phone with an HTML browser.  Sure, you can argue that it&#8217;s not particularly attractive &#8211; but that&#8217;s the point of <a href="http://www.alistapart.com/articles/understandingprogressiveenhancement">progressive enhancement</a>.  Get it working, then add all the bell, whistles, JavaScript and CSS that you want for high end phones.</p>
<p>No need for an app or a widget. Bookmark your blog&#8217;s admin URL and you&#8217;re done.  You don&#8217;t need to worry about security updates, corporate policies which lock down your device, compatibility with the latest firmware, nothing.</p>
<p><strong>You only need a web browser.</strong></p>
<p>(The more astute among you will notice that this screenshot is from a BlackBerry &#8211; rest assured, this page works on all the phones I&#8217;ve tried it on.)</p>
<h2>Wait! There&#8217;s More!</h2>
<p>This is the front page of the Admin Panel. As you can see, just about everything you can do on the regular WordPress, you can do on mobile.  Create and edit posts, approve or trash comments, edit the settings.</p>
<div id="attachment_1667" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1667" title="Admin Panel" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/admin.png" alt="Admin Panel" width="480" height="611" /><p class="wp-caption-text">Admin Panel</p></div>
<p>Almost every setting which is available to you in WordPress should also be available via mobile.</p>
<div id="attachment_1666" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1666" title="Settings" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Settings.png" alt="Settings" width="480" height="320" /><p class="wp-caption-text">Settings</p></div>
<h2>Prettifying It</h2>
<p>As I&#8217;ve said, this isn&#8217;t the prettiest pig in the sty. On an Android device, the site takes on a more attractive style sheet.</p>
<div id="attachment_1671" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-1671" title="Android CSS" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Andoid-CSS.png" alt="Android CSS" width="320" height="480" /><p class="wp-caption-text">Android CSS</p></div>
<h2>So Why Use An App?</h2>
<p>I think apps have tremendous potential &#8211; they&#8217;re at their best when they are taking advantage of a phone&#8217;s unique hardware / software.  3D graphics, geo-location, accessing the camera etc.</p>
<p>But why would you spent time and money writing an app for moderating WordPress comments? It just doesn&#8217;t make sense!  You don&#8217;t take advantage of the platform, you duplicate effort across multiple devices, and for what?</p>
<p>If you want broad reach across <strong>all</strong> of your users&#8217; devices &#8211; write a website.  If you want to look cool, waste money and alienate the majority of your customer &#8211; build an app.</p>
<p>You can install WordPress Mobile Pack from <a href="http://wordpress.org/extend/plugins/wordpress-mobile-pack/">http://wordpress.org/extend/plugins/wordpress-mobile-pack/</a></p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/&amp;title=WordPress+Mobile+%26%238211%3B+For+The+Rest+of+Us" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Del.icio.us" alt="Add 'WordPress Mobile &#8211; For The Rest of Us' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/&amp;title=WordPress+Mobile+%26%238211%3B+For+The+Rest+of+Us" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to digg" alt="Add 'WordPress Mobile &#8211; For The Rest of Us' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/&amp;title=WordPress+Mobile+%26%238211%3B+For+The+Rest+of+Us" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to reddit" alt="Add 'WordPress Mobile &#8211; For The Rest of Us' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Technorati" alt="Add 'WordPress Mobile &#8211; For The Rest of Us' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/&amp;h=WordPress+Mobile+%26%238211%3B+For+The+Rest+of+Us" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Newsvine" alt="Add 'WordPress Mobile &#8211; For The Rest of Us' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/&amp;title=WordPress+Mobile+%26%238211%3B+For+The+Rest+of+Us" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Stumble Upon" alt="Add 'WordPress Mobile &#8211; For The Rest of Us' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/&amp;title=WordPress+Mobile+%26%238211%3B+For+The+Rest+of+Us" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Google Bookmarks" alt="Add 'WordPress Mobile &#8211; For The Rest of Us' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Bloglines" alt="Add 'WordPress Mobile &#8211; For The Rest of Us' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=WordPress+Mobile+%26%238211%3B+For+The+Rest+of+Us&amp;url=http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to SlashDot" alt="Add 'WordPress Mobile &#8211; For The Rest of Us' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/&amp;t=WordPress+Mobile+%26%238211%3B+For+The+Rest+of+Us" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to FaceBook" alt="Add 'WordPress Mobile &#8211; For The Rest of Us' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Wikio" alt="Add 'WordPress Mobile &#8211; For The Rest of Us' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to Twitter" alt="Add 'WordPress Mobile &#8211; For The Rest of Us' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=WordPress+Mobile+%26%238211%3B+For+The+Rest+of+Us&amp;url=http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'WordPress Mobile &#8211; For The Rest of Us' to FriendFeed" alt="Add 'WordPress Mobile &#8211; For The Rest of Us' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/02/wordpress-mobile/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Twitter For BlackBerry &#8211; Review</title>
		<link>http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 13:38:57 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[RIM]]></category>
		<category><![CDATA[socialscope]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[ubertwitter]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1650</guid>
		<description><![CDATA[Blah blah Twitter&#8230;. Blah Blah BlackBerry&#8230; Blah Blah&#8230;. http://www.blackberry.com/twitter
NB1: I primarily use SocialScope on my BlackBerry. SocialScope&#8217;s terms of use prohibit me from showing screenshots of their beta. Hey, guys, I want to show everyone how great you are!
NB2: Screenshots taken on a BlackBerry 9000 running OS 5.0
First Impressions
I&#8217;ve never understood the need for a [...]]]></description>
			<content:encoded><![CDATA[<p>Blah blah Twitter&#8230;. Blah Blah BlackBerry&#8230; Blah Blah&#8230;. <a href="http://www.blackberry.com/twitter">http://www.blackberry.com/twitter</a></p>
<p>NB1: I primarily use SocialScope on my BlackBerry. SocialScope&#8217;s terms of use prohibit me from showing screenshots of their beta. Hey, guys, I want to show everyone how great you are!</p>
<p>NB2: Screenshots taken on a BlackBerry 9000 running OS 5.0</p>
<h2>First Impressions</h2>
<p>I&#8217;ve never understood the need for a EULA. They&#8217;re long, confusing, boring and a <em>terrible </em>way to make a first impression on your customers.  Twitter for Blackberry has a <strong>30 page</strong> monstrosity.</p>
<div id="attachment_1652" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1652" title="EULA Hell" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Capture7_49_30.jpg" alt="EULA Hell" width="480" height="320" /><p class="wp-caption-text">EULA Hell</p></div>
<p>No one reads them, no one cares, find a better way.</p>
<h2>Good</h2>
<p>This app really shows off the power of the BlackBerry SDK. It&#8217;s a pity that more developers don&#8217;t make full use of it.</p>
<p>Tweets show up in your message list&#8230;.</p>
<div id="attachment_1654" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1654" title="Message Integration" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Capture8_20_4.jpg" alt="Message Integration" width="480" height="320" /><p class="wp-caption-text">Message Integration</p></div>
<p>&#8230;and can be opened from there.</p>
<div id="attachment_1655" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1655" title="Open From Message" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Capture7_55_17.jpg" alt="Open From Message" width="480" height="320" /><p class="wp-caption-text">Open From Message</p></div>
<p>Images can be sent directly to TwitPic.</p>
<div id="attachment_1653" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1653" title="Send To Twitter" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Capture8_3_57.jpg" alt="Send To Twitter" width="480" height="320" /><p class="wp-caption-text">Send To Twitter</p></div>
<p>Apps like SocialScope and UberTwitter also hook in to the OS so that you can click on any #hastag and @name and be taken directly to that page within the app. I wasn&#8217;t able to ascertain whether this functionality was available in this app.</p>
<h2>Bad</h2>
<p>Limited view space.  At best, you can view 2 tweets at a time before scrolling. That&#8217;s not a very efficient use of space.</p>
<div id="attachment_1656" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1656" title="The Tweets Went In Two By Two" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Capture7_52_16.jpg" alt="The Tweets Went In Two By Two" width="480" height="320" /><p class="wp-caption-text">The Tweets Went In Two By Two</p></div>
<p>Poor navigation.  You can&#8217;t simply scroll left or right to move between pages, you need to scroll all the way to the top, or open the menu.</p>
<div id="attachment_1657" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1657" title="Navigation" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Capture7_52_32.jpg" alt="Navigation" width="480" height="320" /><p class="wp-caption-text">Navigation</p></div>
<p>The software also doesn&#8217;t remember which tweet you were on before you left.  It always refreshes the timeline and jumps to the top.  This is really annoying and it&#8217;s a problem solved in both UberTwitter and SocialScope.</p>
<h2>Ugly</h2>
<p>Missing loads of features that many users have become accostomed to.</p>
<ul>
<li>URL expansion.  bit.ly/fjhgkdfhg means nothing &#8211; use their API to expand the URL</li>
<li>Embed images and media. Show a preview of flickr images, YouTube videos etc.  At the moment, it only appears to do TwitPic.</li>
<li>No OAuth!  This is partly due to Twitter&#8217;s broken mobile OAuth support.</li>
<li>No autocomplete. SocialScope will show a list of your friends when you type @ to allow you to quickly select them.</li>
</ul>
<h2>Conclusion</h2>
<p>This app is amazing&#8230; if you&#8217;ve never used UberTwitter or SocialScope.  I also found it to be marginally slower than the other apps.</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/&amp;title=Twitter+For+BlackBerry+%26%238211%3B+Review" title="Add 'Twitter For BlackBerry &#8211; Review' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Twitter For BlackBerry &#8211; Review' to Del.icio.us" alt="Add 'Twitter For BlackBerry &#8211; Review' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/&amp;title=Twitter+For+BlackBerry+%26%238211%3B+Review" title="Add 'Twitter For BlackBerry &#8211; Review' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Twitter For BlackBerry &#8211; Review' to digg" alt="Add 'Twitter For BlackBerry &#8211; Review' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/&amp;title=Twitter+For+BlackBerry+%26%238211%3B+Review" title="Add 'Twitter For BlackBerry &#8211; Review' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Twitter For BlackBerry &#8211; Review' to reddit" alt="Add 'Twitter For BlackBerry &#8211; Review' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/" title="Add 'Twitter For BlackBerry &#8211; Review' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Twitter For BlackBerry &#8211; Review' to Technorati" alt="Add 'Twitter For BlackBerry &#8211; Review' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/&amp;h=Twitter+For+BlackBerry+%26%238211%3B+Review" title="Add 'Twitter For BlackBerry &#8211; Review' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Twitter For BlackBerry &#8211; Review' to Newsvine" alt="Add 'Twitter For BlackBerry &#8211; Review' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/&amp;title=Twitter+For+BlackBerry+%26%238211%3B+Review" title="Add 'Twitter For BlackBerry &#8211; Review' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Twitter For BlackBerry &#8211; Review' to Stumble Upon" alt="Add 'Twitter For BlackBerry &#8211; Review' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/&amp;title=Twitter+For+BlackBerry+%26%238211%3B+Review" title="Add 'Twitter For BlackBerry &#8211; Review' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Twitter For BlackBerry &#8211; Review' to Google Bookmarks" alt="Add 'Twitter For BlackBerry &#8211; Review' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/" title="Add 'Twitter For BlackBerry &#8211; Review' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Twitter For BlackBerry &#8211; Review' to Bloglines" alt="Add 'Twitter For BlackBerry &#8211; Review' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Twitter+For+BlackBerry+%26%238211%3B+Review&amp;url=http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/" title="Add 'Twitter For BlackBerry &#8211; Review' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Twitter For BlackBerry &#8211; Review' to SlashDot" alt="Add 'Twitter For BlackBerry &#8211; Review' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/&amp;t=Twitter+For+BlackBerry+%26%238211%3B+Review" title="Add 'Twitter For BlackBerry &#8211; Review' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Twitter For BlackBerry &#8211; Review' to FaceBook" alt="Add 'Twitter For BlackBerry &#8211; Review' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/" title="Add 'Twitter For BlackBerry &#8211; Review' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'Twitter For BlackBerry &#8211; Review' to Wikio" alt="Add 'Twitter For BlackBerry &#8211; Review' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/" title="Add 'Twitter For BlackBerry &#8211; Review' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Twitter For BlackBerry &#8211; Review' to Twitter" alt="Add 'Twitter For BlackBerry &#8211; Review' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=Twitter+For+BlackBerry+%26%238211%3B+Review&amp;url=http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/" title="Add 'Twitter For BlackBerry &#8211; Review' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'Twitter For BlackBerry &#8211; Review' to FriendFeed" alt="Add 'Twitter For BlackBerry &#8211; Review' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/02/twitter-for-blackberry-review/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Twitter and Linebreaks</title>
		<link>http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 11:45:21 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[aral]]></category>
		<category><![CDATA[dabr]]></category>
		<category><![CDATA[feathers]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1642</guid>
		<description><![CDATA[As any student of computer science knows, line breaks are confusing. There are styles of line breaks unique to Unix, Mac and Windows &#8211; so what should a web renderer do when faced with a newline command?  In HTML, it&#8217;s simple, they should be ignored.  But what when it is user generated text, [...]]]></description>
			<content:encoded><![CDATA[<p>As any student of computer science knows, <a href="http://en.wikipedia.org/wiki/Newline">line breaks are confusing</a>. There are styles of line breaks unique to Unix, Mac and Windows &#8211; so what should a web renderer do when faced with a newline command?  In HTML, it&#8217;s simple, they should be ignored.  But what when it is user generated text, not HTML?</p>
<p>This was a problem I faced when trying to get Dabr to render the <a href="http://en.wikipedia.org/wiki/ASCII_art">ASCII* art</a> produced by <a href="http://aralbalkan.com/">Aral Balkan</a>&#8217;s <a href="http://feathersapp.com/">Feathers App</a>.  Feathers uses line breaks to achieve images like&#8230;</p>
<pre>〰❀❃ Introducing ❃❀〰
My new iPhone app,
░░░▒█ Feathers █▒░░░
</pre>
<p>What&#8217;s confusing to me, as a developer is the inconsistent way Twitter handles line breaks.  For example&#8230;</p>
<p>Twitter&#8217;s website ignores line breaks.</p>
<div id="attachment_1643" class="wp-caption aligncenter" style="width: 410px"><img class="size-full wp-image-1643" title="Desktop Spacing" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Desktop-Spacing.png" alt="Desktop Spacing" width="400" height="178" /><p class="wp-caption-text">Desktop Spacing</p></div>
<p>Twitter Mobile, however, does line breaking correctly.</p>
<div id="attachment_1644" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-1644" title="Android Spacing" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Android-Spacing.png" alt="Android Spacing" width="320" height="480" /><p class="wp-caption-text">Android Spacing</p></div>
<p>Twitter has no style guide for rendering and &#8211; if it did &#8211; appears to render inconsistently.  So, what&#8217;s the correct thing to do?</p>
<p>In my opinion, <strong>respect the user</strong>. If a user has indicted that they want something, it is a developer&#8217;s role to implement it (unless it causes severe problems for the system).</p>
<h2>How to achieve it?</h2>
<p>You could use all sorts of complex regular expressions to get line breaks and convert them.<br />
Thankfully, PHP has this function built in with <a href="http://uk2.php.net/manual/en/function.nl2br.php">nl2br()</a> which will give you (X)HTML line breaks wherever a break occurs in the text.</p>
<h3>Footnote</h3>
<p>*Technically, Unicode Art. But that doesn&#8217;t have the same ring to it.</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/&amp;title=Twitter+and+Linebreaks" title="Add 'Twitter and Linebreaks' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Twitter and Linebreaks' to Del.icio.us" alt="Add 'Twitter and Linebreaks' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/&amp;title=Twitter+and+Linebreaks" title="Add 'Twitter and Linebreaks' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Twitter and Linebreaks' to digg" alt="Add 'Twitter and Linebreaks' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/&amp;title=Twitter+and+Linebreaks" title="Add 'Twitter and Linebreaks' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Twitter and Linebreaks' to reddit" alt="Add 'Twitter and Linebreaks' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/" title="Add 'Twitter and Linebreaks' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Twitter and Linebreaks' to Technorati" alt="Add 'Twitter and Linebreaks' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/&amp;h=Twitter+and+Linebreaks" title="Add 'Twitter and Linebreaks' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Twitter and Linebreaks' to Newsvine" alt="Add 'Twitter and Linebreaks' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/&amp;title=Twitter+and+Linebreaks" title="Add 'Twitter and Linebreaks' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Twitter and Linebreaks' to Stumble Upon" alt="Add 'Twitter and Linebreaks' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/&amp;title=Twitter+and+Linebreaks" title="Add 'Twitter and Linebreaks' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Twitter and Linebreaks' to Google Bookmarks" alt="Add 'Twitter and Linebreaks' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/" title="Add 'Twitter and Linebreaks' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Twitter and Linebreaks' to Bloglines" alt="Add 'Twitter and Linebreaks' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Twitter+and+Linebreaks&amp;url=http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/" title="Add 'Twitter and Linebreaks' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Twitter and Linebreaks' to SlashDot" alt="Add 'Twitter and Linebreaks' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/&amp;t=Twitter+and+Linebreaks" title="Add 'Twitter and Linebreaks' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Twitter and Linebreaks' to FaceBook" alt="Add 'Twitter and Linebreaks' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/" title="Add 'Twitter and Linebreaks' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'Twitter and Linebreaks' to Wikio" alt="Add 'Twitter and Linebreaks' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/" title="Add 'Twitter and Linebreaks' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Twitter and Linebreaks' to Twitter" alt="Add 'Twitter and Linebreaks' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=Twitter+and+Linebreaks&amp;url=http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/" title="Add 'Twitter and Linebreaks' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'Twitter and Linebreaks' to FriendFeed" alt="Add 'Twitter and Linebreaks' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/02/twitter-and-linebreaks/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>VoteUK &#8211; Updates</title>
		<link>http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 16:03:09 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[voteuk]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[vote]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1633</guid>
		<description><![CDATA[After the tragic death of Ernest Marples, I&#8217;m sorry to say that the site fell in to a bit of disrepair. With no postcode data and no new boundary data, it looked like VoteUK was going to be permanantly out of business.
Thanks &#8211; once again &#8211; to the clever-clogs at TheyWorkForYou, at least half of [...]]]></description>
			<content:encoded><![CDATA[<p>After the tragic death of <a href="http://ernestmarples.com/blog/2009/10/amazing/">Ernest Marples</a>, I&#8217;m sorry to say that the site fell in to a bit of disrepair. With no postcode data and no new boundary data, it looked like VoteUK was going to be permanantly out of business.</p>
<p>Thanks &#8211; once again &#8211; to the clever-clogs at TheyWorkForYou, at least half of the problem has been solved.</p>
<p>The API call <a href="http://www.theyworkforyou.com/api/docs/getConstituency">getConstituency</a> now has a future parameter.  Adding future=1 to the call will return the constituency the Postcode will be in for the 2010 General Election.</p>
<p>I&#8217;ve also made use of TWFY&#8217;s <a href="http://www.theyworkforyou.com/api/docs/getMP">getMP</a> API call.  It returns enough detail about the current MP to be useful &#8211; including a photo.</p>
<p>So, a valid postcode will get you something like this:</p>
<div id="attachment_1634" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-1634" title="MP Photo" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/device.png" alt="MP Photo" width="320" height="480" /><p class="wp-caption-text">MP Photo</p></div>
<p>One thing to note about the photos.  Each one is a different size.  This gives us two small problems.</p>
<p>Firstly there is no guarantee of how small the photo is.  Should one MP&#8217;s photo be massive, that could cause a problem for the phone trying to download it. All the ones I&#8217;ve tried so far have been thumbnail size.</p>
<p>Secondly, because we don&#8217;t know the height and width of the image, we can&#8217;t put the height and width attributes in the &lt;img&gt; tag.  Not only is this poor HTML, but it will mean that rendering the page will take longer and &#8211; depending on the phone &#8211; page reflow may occur.</p>
<p>To mitigate this issue, I&#8217;m using <a href="http://tinysrc.mobi/">http://tinysrc.mobi/</a> &#8211; it will automatically shrink the picture to fit the phone.  This doesn&#8217;t help with the page reflow issue though.</p>
<p>As for geo-locating Postcodes &#8211; I suggest you <a href="http://osconsultation.ernestmarples.com/">respond to Ordnance Survey&#8217;s consultation</a> and / or lobby your MP.</p>
<p>Until there&#8217;s an official source for postcode data, I&#8217;ve gone back to using Yahoo!&#8217;s geo-location API.  I then pass these co-ordinates on to the Google Maps API.</p>
<p>So, VoteUK lives on.  Next steps are to make sure that all the <a href="http://www.whatdotheyknow.com/request/postcodes_within_constituency_bo">data I got from the Electoral Commission</a> is valid and build a framework for volunteers to enter their local candidate details.</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/&amp;title=VoteUK+%26%238211%3B+Updates" title="Add 'VoteUK &#8211; Updates' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'VoteUK &#8211; Updates' to Del.icio.us" alt="Add 'VoteUK &#8211; Updates' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/&amp;title=VoteUK+%26%238211%3B+Updates" title="Add 'VoteUK &#8211; Updates' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'VoteUK &#8211; Updates' to digg" alt="Add 'VoteUK &#8211; Updates' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/&amp;title=VoteUK+%26%238211%3B+Updates" title="Add 'VoteUK &#8211; Updates' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'VoteUK &#8211; Updates' to reddit" alt="Add 'VoteUK &#8211; Updates' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/" title="Add 'VoteUK &#8211; Updates' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'VoteUK &#8211; Updates' to Technorati" alt="Add 'VoteUK &#8211; Updates' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/&amp;h=VoteUK+%26%238211%3B+Updates" title="Add 'VoteUK &#8211; Updates' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'VoteUK &#8211; Updates' to Newsvine" alt="Add 'VoteUK &#8211; Updates' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/&amp;title=VoteUK+%26%238211%3B+Updates" title="Add 'VoteUK &#8211; Updates' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'VoteUK &#8211; Updates' to Stumble Upon" alt="Add 'VoteUK &#8211; Updates' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/&amp;title=VoteUK+%26%238211%3B+Updates" title="Add 'VoteUK &#8211; Updates' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'VoteUK &#8211; Updates' to Google Bookmarks" alt="Add 'VoteUK &#8211; Updates' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/" title="Add 'VoteUK &#8211; Updates' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'VoteUK &#8211; Updates' to Bloglines" alt="Add 'VoteUK &#8211; Updates' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=VoteUK+%26%238211%3B+Updates&amp;url=http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/" title="Add 'VoteUK &#8211; Updates' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'VoteUK &#8211; Updates' to SlashDot" alt="Add 'VoteUK &#8211; Updates' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/&amp;t=VoteUK+%26%238211%3B+Updates" title="Add 'VoteUK &#8211; Updates' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'VoteUK &#8211; Updates' to FaceBook" alt="Add 'VoteUK &#8211; Updates' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/" title="Add 'VoteUK &#8211; Updates' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'VoteUK &#8211; Updates' to Wikio" alt="Add 'VoteUK &#8211; Updates' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/" title="Add 'VoteUK &#8211; Updates' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'VoteUK &#8211; Updates' to Twitter" alt="Add 'VoteUK &#8211; Updates' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=VoteUK+%26%238211%3B+Updates&amp;url=http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/" title="Add 'VoteUK &#8211; Updates' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'VoteUK &#8211; Updates' to FriendFeed" alt="Add 'VoteUK &#8211; Updates' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/02/voteuk-updates/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Twitter&#8217;s new OAuth Problem</title>
		<link>http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 12:10:07 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[dabr]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1627</guid>
		<description><![CDATA[Twitter have announced that all third party site will have to use OAuth.  You will no longer be able to just type in your username and password to get access to Twitter via your favourite web client.
Usually, I would be a big fan of this move &#8211; especially if it forces password anti-pattern sites like [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://groups.google.com/group/twitter-api-announce/browse_thread/thread/c2c4963061422f28?hl=en&amp;pli=1">Twitter have announced that all third party site will have to use OAuth</a>.  You will no longer be able to just type in your username and password to get access to Twitter via your favourite web client.</p>
<p>Usually, I would be a big fan of this move &#8211; especially if it forces <a href="http://adactio.com/journal/1357">password anti-pattern</a> sites like <a href="http://getsatisfaction.com/twitpic/topics/when_will_twitpic_implement_oauth">TwitPic to implement the new, secure standard</a>.</p>
<p>This means that you won&#8217;t be able to log in to a third party site by giving them your username and  password.  You will have to use OAuth to securely validate with the main Twitter site.</p>
<p>But &#8211; as ever &#8211; there&#8217;s a dark side to OAuth.</p>
<h2>Repressive Regimes</h2>
<p>One of the joys of Twitter is that its clients are decentralised from the main site.</p>
<p>This means that if Twitter is blocked in your country, you can use a third party client (like <a href="http://dabr.co.uk/">Dabr</a>) to access it.</p>
<blockquote>
<pre>Twitter User -&gt; Dabr -&gt; Twitter API -&gt; Dabr -&gt; User</pre>
</blockquote>
<p>If Dabr became sufficiently popular to be blocked by an oppressive regime, you can switch to any one of the thousands of Twitter web clients.</p>
<p>OAuth <strong>forces </strong>you to the main Twitter site.  While you may visit Dabr to start with, you would be redirected to Twitter to complete OAuth.  If Twitter is blocked, you can&#8217;t connect.</p>
<h3>At a stroke, Twitter has shut itself off to anyone in a repressive country.</h3>
<p><a href="http://groups.google.com/group/twitter-development-talk/browse_thread/thread/39b8b326d8b679c6">This has been picked up by some concerned users</a>.</p>
<h2>A (Hacky) Way Around It</h2>
<p>There&#8217;s really only one way around this problem.  The third party web client has to act as a man-in-the-middle.  There&#8217;s a patch for Dabr &#8211; developed by <a href="http://code.google.com/u/cnyegle/">cnyegle</a> &#8211; which will ask for a username and password, then proxy it to Twitter, get the OAuth token and tweet on behalf of the user.</p>
<p>From the user&#8217;s point of view, they are still giving the (potentially untrusted) site the username and password.</p>
<h2>Challenge Response</h2>
<p>This could be solved by implemented a challenge / response system.</p>
<ol>
<li>Alice visits the Dabr website.</li>
<li>Dabr asks Alice for her username (and <em>only</em> her username)</li>
<li>Dabr asks Twitter for the challenge associated with Alice&#8217;s username.</li>
<li>Twitter checks that Dabr is an authorised website (i.e. has signed up for OAuth).</li>
<li>Twitter returns the response:  A secret phrase which Alice has previously chosen.</li>
<li>Dabr displays this phrase to Alice.</li>
<li>Alice knows that Twitter trusts Dabr</li>
<li>Dabr asks Twitter for the password challenge.</li>
<li>Twitter returns that it requires the 3rd, 5th and last character from Alice&#8217;s password (the characters requested change randomly).</li>
<li>Dabr asks Alice for <em>only</em> those characters.</li>
<li>If Alice provides the correct characters, an OAuth token is granted to Dabr to tweet on behalf of Alice.</li>
</ol>
<p>This has the advantage of proving that Dabr is trusted (by displaying Alice&#8217;s pre-defined secret phrase) and mitigating the risk that Dabr is untrusted (by only revealing part of the password).</p>
<h2>Conclusion</h2>
<p>This is a very new area, and I&#8217;ve not had a chance to read through all of the proposals.  Nevertheless, it remains a fundamental problem that, if you can&#8217;t access a site, you need to delegate your trust to someone else.</p>
<p>I&#8217;m not a security expert &#8211; so I would appreciate someone pointing out the flaws in my reasoning.</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/&amp;title=Twitter%26%238217%3Bs+new+OAuth+Problem" title="Add 'Twitter&#8217;s new OAuth Problem' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Twitter&#8217;s new OAuth Problem' to Del.icio.us" alt="Add 'Twitter&#8217;s new OAuth Problem' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/&amp;title=Twitter%26%238217%3Bs+new+OAuth+Problem" title="Add 'Twitter&#8217;s new OAuth Problem' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Twitter&#8217;s new OAuth Problem' to digg" alt="Add 'Twitter&#8217;s new OAuth Problem' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/&amp;title=Twitter%26%238217%3Bs+new+OAuth+Problem" title="Add 'Twitter&#8217;s new OAuth Problem' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Twitter&#8217;s new OAuth Problem' to reddit" alt="Add 'Twitter&#8217;s new OAuth Problem' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/" title="Add 'Twitter&#8217;s new OAuth Problem' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Twitter&#8217;s new OAuth Problem' to Technorati" alt="Add 'Twitter&#8217;s new OAuth Problem' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/&amp;h=Twitter%26%238217%3Bs+new+OAuth+Problem" title="Add 'Twitter&#8217;s new OAuth Problem' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Twitter&#8217;s new OAuth Problem' to Newsvine" alt="Add 'Twitter&#8217;s new OAuth Problem' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/&amp;title=Twitter%26%238217%3Bs+new+OAuth+Problem" title="Add 'Twitter&#8217;s new OAuth Problem' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Twitter&#8217;s new OAuth Problem' to Stumble Upon" alt="Add 'Twitter&#8217;s new OAuth Problem' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/&amp;title=Twitter%26%238217%3Bs+new+OAuth+Problem" title="Add 'Twitter&#8217;s new OAuth Problem' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Twitter&#8217;s new OAuth Problem' to Google Bookmarks" alt="Add 'Twitter&#8217;s new OAuth Problem' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/" title="Add 'Twitter&#8217;s new OAuth Problem' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Twitter&#8217;s new OAuth Problem' to Bloglines" alt="Add 'Twitter&#8217;s new OAuth Problem' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Twitter%26%238217%3Bs+new+OAuth+Problem&amp;url=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/" title="Add 'Twitter&#8217;s new OAuth Problem' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Twitter&#8217;s new OAuth Problem' to SlashDot" alt="Add 'Twitter&#8217;s new OAuth Problem' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/&amp;t=Twitter%26%238217%3Bs+new+OAuth+Problem" title="Add 'Twitter&#8217;s new OAuth Problem' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Twitter&#8217;s new OAuth Problem' to FaceBook" alt="Add 'Twitter&#8217;s new OAuth Problem' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/" title="Add 'Twitter&#8217;s new OAuth Problem' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'Twitter&#8217;s new OAuth Problem' to Wikio" alt="Add 'Twitter&#8217;s new OAuth Problem' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/" title="Add 'Twitter&#8217;s new OAuth Problem' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Twitter&#8217;s new OAuth Problem' to Twitter" alt="Add 'Twitter&#8217;s new OAuth Problem' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=Twitter%26%238217%3Bs+new+OAuth+Problem&amp;url=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/" title="Add 'Twitter&#8217;s new OAuth Problem' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'Twitter&#8217;s new OAuth Problem' to FriendFeed" alt="Add 'Twitter&#8217;s new OAuth Problem' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-problem/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>EU 112 Day Widget</title>
		<link>http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 07:00:47 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[112]]></category>
		<category><![CDATA[360]]></category>
		<category><![CDATA[eu]]></category>
		<category><![CDATA[jil]]></category>
		<category><![CDATA[limo]]></category>
		<category><![CDATA[vodafone]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1619</guid>
		<description><![CDATA[Today is the European 112 Day! Because the date is 11/2 &#8211; just like the number &#8211; see!
112 is the European wide emergency services number.  Wherever you are in the EU, dialling 112 will get you through to the local emergency services.  In fact, most GSM networks outside of the EU will also [...]]]></description>
			<content:encoded><![CDATA[<p>Today is the <a href="http://www.112foundation.eu/view/en/vertical/the_112_events/european_112_day.html">European 112 Day</a>! Because the date is 11/2 &#8211; just like the number &#8211; see!</p>
<p>112 is the European wide emergency services number.  Wherever you are in the EU, dialling 112 will get you through to the local emergency services.  In fact, most GSM networks outside of the EU will also route your call correctly.</p>
<p>This is an important day.  Dialling 112 could save your life.  Sadly, <a href="http://www.eena.org/view/en/112events/112_day/2010_day.html">the UK isn&#8217;t doing anything to promote it</a>.</p>
<p>So, what better way to celebrate than by designing a JIL widget to allow you to quickly dial 112 in an emergency? (That&#8217;s a rhetorical question&#8230;)</p>
<h2>JIL Widget</h2>
<p><a href="http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/">I&#8217;ve written before about the JIL SDK</a> and my professional involvement with it.</p>
<p>The <a href="http://www.jil.org/">JIL SDK</a> allows us access to the telephony subsystem.  This allows us to directly place a call &#8211; usually via the native dialer application.  It&#8217;s a very simple call, all you do is pass it a string.  It will take 0-9+#*.  So, you can use it to call USSD commands.  Annoyingly, you can&#8217;t get information back from the commands &#8211; <a href="http://code.google.com/p/android/issues/detail?id=1285">a problem also present in Android</a>.</p>
<p>So, the code is simply</p>
<blockquote>
<pre>&lt;script type="text/javascript"&gt;
    Widget.Telephony.initiateVoiceCall("112");
&lt;/script&gt;</pre>
</blockquote>
<p>That&#8217;s it.</p>
<h2>Logo</h2>
<p>The EU has a logo that they want people to use for 112 promotion.</p>
<p><a href="http://www.112foundation.eu/"><img class="aligncenter size-full wp-image-1620" title="112logo" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/112logo.png" alt="" width="394" height="394" /></a>Their <a href="http://www.112foundation.eu/view/en/vertical/campaign_materials.html">licensing terms are very enlightened</a> (for a government organisation)</p>
<blockquote><p>Any organisation, institution, company or individual willing to inform citizens of the European emergency number can use the materials informing about the 112 and general logo of the 112 which are available on our website.<br />
Regardless of the size or the branch of economic/social/cultural activity, all the entities concerned with safety and emergency issues are welcomed to use these materials and ideas for their campaigns.</p></blockquote>
<h2>Download</h2>
<p><a href="http://shkspr.mobi/widget/E112.wgt">Download and install the widget</a>.</p>
<p>On the Vodafone H1, you may need to dial</p>
<pre>*#35767#</pre>
<p>to remove the <a href="http://www.jil.org/jil-forums/posts/list/176.page#525">H1’s security check</a>.</p>
<p>If you’re interest in developing for this platform, there’s a <a href="http://widget.developer.vodafone.com/en/">€1,000,000 bounty up for grabs</a>.  There’s also a <a href="http://jil.vodafone.com/app_planet/">Dev Camp at Mobile World Congress</a> this year.</p>
<p>I work for Vodafone – this is my personal blog, I don’t to speak for them.  All opinions, claims and mistakes are my own.</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/&amp;title=EU+112+Day+Widget" title="Add 'EU 112 Day Widget' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'EU 112 Day Widget' to Del.icio.us" alt="Add 'EU 112 Day Widget' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/&amp;title=EU+112+Day+Widget" title="Add 'EU 112 Day Widget' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'EU 112 Day Widget' to digg" alt="Add 'EU 112 Day Widget' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/&amp;title=EU+112+Day+Widget" title="Add 'EU 112 Day Widget' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'EU 112 Day Widget' to reddit" alt="Add 'EU 112 Day Widget' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/" title="Add 'EU 112 Day Widget' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'EU 112 Day Widget' to Technorati" alt="Add 'EU 112 Day Widget' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/&amp;h=EU+112+Day+Widget" title="Add 'EU 112 Day Widget' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'EU 112 Day Widget' to Newsvine" alt="Add 'EU 112 Day Widget' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/&amp;title=EU+112+Day+Widget" title="Add 'EU 112 Day Widget' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'EU 112 Day Widget' to Stumble Upon" alt="Add 'EU 112 Day Widget' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/&amp;title=EU+112+Day+Widget" title="Add 'EU 112 Day Widget' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'EU 112 Day Widget' to Google Bookmarks" alt="Add 'EU 112 Day Widget' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/" title="Add 'EU 112 Day Widget' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'EU 112 Day Widget' to Bloglines" alt="Add 'EU 112 Day Widget' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=EU+112+Day+Widget&amp;url=http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/" title="Add 'EU 112 Day Widget' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'EU 112 Day Widget' to SlashDot" alt="Add 'EU 112 Day Widget' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/&amp;t=EU+112+Day+Widget" title="Add 'EU 112 Day Widget' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'EU 112 Day Widget' to FaceBook" alt="Add 'EU 112 Day Widget' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/" title="Add 'EU 112 Day Widget' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'EU 112 Day Widget' to Wikio" alt="Add 'EU 112 Day Widget' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/" title="Add 'EU 112 Day Widget' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'EU 112 Day Widget' to Twitter" alt="Add 'EU 112 Day Widget' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=EU+112+Day+Widget&amp;url=http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/" title="Add 'EU 112 Day Widget' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'EU 112 Day Widget' to FriendFeed" alt="Add 'EU 112 Day Widget' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/02/eu-112-day-widget/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Twitter OAuth &#8211; Mobile Failures</title>
		<link>http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 15:06:26 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[dabr]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1606</guid>
		<description><![CDATA[I&#8217;m a big fan of OAuth &#8211; despite some claims to the contrary.  It&#8217;s an excellent way of teaching people not to stick their username and password into any old site which asks for it.  Which is why I&#8217;m so incredibly disappointed in Twitter&#8217;s implementation of mobile OAuth.
For a service which started out [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a big fan of OAuth &#8211; <a href="http://www.theregister.co.uk/2009/11/04/oauth_dark_side/">despite some claims to the contrary</a>.  It&#8217;s an excellent way of teaching people not to stick their username and password into any old site which asks for it.  Which is why I&#8217;m so incredibly disappointed in Twitter&#8217;s implementation of mobile OAuth.</p>
<p>For a service which started out operating by SMS, Twitter takes a surprisingly unenlightened view of mobile.  It&#8217;s main mobile service &#8211; <a href="http://m.twitter.com/">http://m.twitter.com/</a> &#8211; is almost completely devoid of useful features.  That&#8217;s one of the main impetuses behind the development of <a href="http://dabr.co.uk/">Dabr</a>.  Their latest mobile site &#8211; <a href="http://mobile.twitter.com/">http://mobile.twitter.com/</a> &#8211; is really only suitable for the tiny minority of people who have smartphones.</p>
<p>So, understandably, many people use 3rd party sites like Dabr.  They are now faced with a dilemma &#8211; give an untrusted site their username and password or try to use OAuth on the mobile.</p>
<p>A few weeks ago came the <a href="http://groups.google.com/group/twitter-development-talk/browse_thread/thread/084f57349587b3d2/">announcement that OAuth was finally ready for mobile</a>&#8230; Was it? No.  Once again a &#8220;mobile friendly&#8221; site designed with masses of JavaScript and guaranteed not to work with the majority of phones on the market.</p>
<p>Here&#8217;s how mobile OAuth looks on a variety of popular mobile phones.</p>
<h2>BlackBerry</h2>
<div id="attachment_1607" class="wp-caption aligncenter" style="width: 480px"><img class="size-full wp-image-1607" title="BlackBerry Twitter OAuth" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/BlackBerry-Twitter-OAuth.png" alt="BlackBerry Twitter OAuth" width="470" height="695" /><p class="wp-caption-text">BlackBerry Twitter OAuth</p></div>
<p>While this looks pretty enough, it doesn&#8217;t work.  The buttons <em>aren&#8217;t clickable</em>.  I&#8217;ve tried with and without JavaScript.  No matter where I click, nothing happens.</p>
<h2>Android</h2>
<p>The Android&#8217;s User-Agent isn&#8217;t detected by Twitter as being a mobile phone.  While it&#8217;s true that the browser is very capable &#8211; the OAuth screen is a lot more usable when it&#8217;s in mobile mode.</p>
<div id="attachment_1610" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-1610" title="Android Twitter OAuth" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/android2.png" alt="Android Twitter OAuth" width="320" height="480" /><p class="wp-caption-text">Android Twitter OAuth</p></div>
<p>So, it works, but it doesn&#8217;t look nice.</p>
<h2>N95</h2>
<p>The N95 makes a good test phone because it&#8217;s popular.  Probably more popular than the iPhone.</p>
<div id="attachment_1612" class="wp-caption aligncenter" style="width: 250px"><img class="size-full wp-image-1612" title="N95 Twitter OAuth" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Screenshot0106.png" alt="N95 Twitter OAuth" width="240" height="320" /><p class="wp-caption-text">N95 Twitter OAuth</p></div>
<div id="attachment_1613" class="wp-caption aligncenter" style="width: 250px"><img class="size-full wp-image-1613" title="N95 Twitter OAuth" src="http://shkspr.mobi/blog/wp-content/uploads/2010/02/Screenshot0108.png" alt="N95 Twitter OAuth" width="240" height="320" /><p class="wp-caption-text">N95 Twitter OAuth</p></div>
<p>It&#8217;s not pretty &#8211; but at least it works.</p>
<h2>Others</h2>
<p>The Sharp GX-10 is my default test phone.  One of the first phones with a colour HTML browser.  If your site can work on this phone, it will work on any phone.  There are no screenshot capabilities for this phone &#8211; but rest assured, it does not work.</p>
<p>The three phones I&#8217;ve demo&#8217;d above are very popular modern phones &#8211; AKA the minority.  If they don&#8217;t work well, what chance for the people using older phones?</p>
<p>Useless!  How hard can it be?  All it needs is a username field, a password field and a button.  That&#8217;s just about the most basic page imaginable.  It should be child&#8217;s play to make it work on mobile.  </p>
<p>This was <a href="http://code.google.com/p/twitter-api/issues/detail?id=395">first raised in March 2009 on Twitter&#8217;s issues list</a>. It&#8217;s currently the <em>most popular</em> bug.</p>
<p>So, we&#8217;re stuck in a dire situation.  Third-Party mobile sites get access to Twitter users&#8217; passwords because Twitter are unable or unwilling to develop a <em>simple</em> OAuth form.  It would be fascinating to know how many of Twitter&#8217;s security breaches are down to corrupt or insecure 3rd party sites which leak passwords.</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/&amp;title=Twitter+OAuth+%26%238211%3B+Mobile+Failures" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Del.icio.us" alt="Add 'Twitter OAuth &#8211; Mobile Failures' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/&amp;title=Twitter+OAuth+%26%238211%3B+Mobile+Failures" title="Add 'Twitter OAuth &#8211; Mobile Failures' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Twitter OAuth &#8211; Mobile Failures' to digg" alt="Add 'Twitter OAuth &#8211; Mobile Failures' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/&amp;title=Twitter+OAuth+%26%238211%3B+Mobile+Failures" title="Add 'Twitter OAuth &#8211; Mobile Failures' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Twitter OAuth &#8211; Mobile Failures' to reddit" alt="Add 'Twitter OAuth &#8211; Mobile Failures' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Technorati" alt="Add 'Twitter OAuth &#8211; Mobile Failures' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/&amp;h=Twitter+OAuth+%26%238211%3B+Mobile+Failures" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Newsvine" alt="Add 'Twitter OAuth &#8211; Mobile Failures' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/&amp;title=Twitter+OAuth+%26%238211%3B+Mobile+Failures" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Stumble Upon" alt="Add 'Twitter OAuth &#8211; Mobile Failures' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/&amp;title=Twitter+OAuth+%26%238211%3B+Mobile+Failures" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Google Bookmarks" alt="Add 'Twitter OAuth &#8211; Mobile Failures' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Bloglines" alt="Add 'Twitter OAuth &#8211; Mobile Failures' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Twitter+OAuth+%26%238211%3B+Mobile+Failures&amp;url=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/" title="Add 'Twitter OAuth &#8211; Mobile Failures' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Twitter OAuth &#8211; Mobile Failures' to SlashDot" alt="Add 'Twitter OAuth &#8211; Mobile Failures' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/&amp;t=Twitter+OAuth+%26%238211%3B+Mobile+Failures" title="Add 'Twitter OAuth &#8211; Mobile Failures' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Twitter OAuth &#8211; Mobile Failures' to FaceBook" alt="Add 'Twitter OAuth &#8211; Mobile Failures' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Wikio" alt="Add 'Twitter OAuth &#8211; Mobile Failures' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Twitter OAuth &#8211; Mobile Failures' to Twitter" alt="Add 'Twitter OAuth &#8211; Mobile Failures' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=Twitter+OAuth+%26%238211%3B+Mobile+Failures&amp;url=http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/" title="Add 'Twitter OAuth &#8211; Mobile Failures' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'Twitter OAuth &#8211; Mobile Failures' to FriendFeed" alt="Add 'Twitter OAuth &#8211; Mobile Failures' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/02/twitter-oauth-mobile-failures/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>What Super Bowl Sunday Means To Me</title>
		<link>http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 07:58:53 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[love]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[superbowl]]></category>
		<category><![CDATA[uea]]></category>
		<category><![CDATA[university]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1597</guid>
		<description><![CDATA[This could be the most important email I ever sent&#8230;
Subject: Come One! Come All!
Date: Tue, 23 Jan 2001 13:27:51 -0000
Yes, this Sunday our charming colonial cousins will be playing the
American Football Superbowl!!!!!!!
If you&#8217;re anything like me you can contain your excitement at the thought
of watching a bunch of Yanks try to play rugby while dressed [...]]]></description>
			<content:encoded><![CDATA[<p>This could be the most important email I ever sent&#8230;</p>
<blockquote><p>Subject: Come One! Come All!<br />
Date: Tue, 23 Jan 2001 13:27:51 -0000</p>
<p>Yes, this Sunday our charming colonial cousins will be playing the<br />
American Football Superbowl!!!!!!!</p>
<p>If you&#8217;re anything like me you can contain your excitement at the thought<br />
of watching a bunch of Yanks try to play rugby while dressed up like nancy<br />
boys&#8230; but come anyway &#8211; there&#8217;s gonna be beer and nachos&#8230;  LOTS of<br />
beer&#8230; MANY nachos&#8230;</p>
<p>So, yeah, Sunday 28 Jan our place some time in the evening.  Come or we&#8217;ll<br />
cross you off our Christmas Card list.  Ooooh &#8211; aren&#8217;t you scared?</p>
<p>Terry &amp; Stoive<br />
RSVP!</p></blockquote>
<p>To explain&#8230; I was at university and sharing a house with my mate, <a href="http://twitter.com/stoiveyp">Stoive</a>.  I can&#8217;t say that either of us really liked American Football, but it seemed like a good excuse for a party.  We invited everyone we knew.  Specifically &#8211; single girls.  More specifically, one single girl.</p>
<p>As it turned out, we never got to see SuperBowl XXXV.  It was shown only on Pay-per-view.  Our cable provider (NTL, I think) had a delightfully British attitude to making money.  We rang them on the Sunday morning, only to be told &#8220;Sorry, you can&#8217;t order pay-per-view at the weekends.  The staff only work week-days.&#8221;  I&#8217;m told that customer service hasn&#8217;t much improved in the land of cable.</p>
<p>So our &#8220;Superbowl&#8221; party became just another student party.  The beer quickly ran out only to be replaced by honey vodka and <a href="http://en.wikipedia.org/wiki/Goldschl%C3%A4ger">Goldschläger</a>.  With the TV off, we were forced &#8211; horror of horror &#8211; into conversations.</p>
<p>I don&#8217;t really know how I wrangled it, but I ended up sat next to the girl I had invited.  She was talking, I was talking.  But we weren&#8217;t talking to each other.  I was trying to work up the courage to talk to her.  Stoive was cautioning me against eating too much spicy salsa; &#8220;Not if you want to get lucky tonight, mate!&#8221;</p>
<p>There was a brief lull in the conversations.  I turned to her, about to say something which in my head sounded urbane when&#8230;</p>
<p>She kissed me.</p>
<p>She. Kissed. Me.</p>
<p>She kissed <em>me</em>.</p>
<p>She <strong>kissed</strong> me.</p>
<p>Nope.  No matter how many permutations I try, I still don&#8217;t understand it.  I know it happened &#8211; I&#8217;m still slightly at a loss to explain it.</p>
<p>One thing I do know is that, seven years later, <a href="http://www.newburytoday.co.uk/news/Article.aspx?articleID=6122">she kissed me again</a>.  And we&#8217;ve still never watched a Super Bowl.</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/&amp;title=What+Super+Bowl+Sunday+Means+To+Me" title="Add 'What Super Bowl Sunday Means To Me' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'What Super Bowl Sunday Means To Me' to Del.icio.us" alt="Add 'What Super Bowl Sunday Means To Me' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/&amp;title=What+Super+Bowl+Sunday+Means+To+Me" title="Add 'What Super Bowl Sunday Means To Me' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'What Super Bowl Sunday Means To Me' to digg" alt="Add 'What Super Bowl Sunday Means To Me' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/&amp;title=What+Super+Bowl+Sunday+Means+To+Me" title="Add 'What Super Bowl Sunday Means To Me' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'What Super Bowl Sunday Means To Me' to reddit" alt="Add 'What Super Bowl Sunday Means To Me' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/" title="Add 'What Super Bowl Sunday Means To Me' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'What Super Bowl Sunday Means To Me' to Technorati" alt="Add 'What Super Bowl Sunday Means To Me' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/&amp;h=What+Super+Bowl+Sunday+Means+To+Me" title="Add 'What Super Bowl Sunday Means To Me' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'What Super Bowl Sunday Means To Me' to Newsvine" alt="Add 'What Super Bowl Sunday Means To Me' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/&amp;title=What+Super+Bowl+Sunday+Means+To+Me" title="Add 'What Super Bowl Sunday Means To Me' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'What Super Bowl Sunday Means To Me' to Stumble Upon" alt="Add 'What Super Bowl Sunday Means To Me' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/&amp;title=What+Super+Bowl+Sunday+Means+To+Me" title="Add 'What Super Bowl Sunday Means To Me' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'What Super Bowl Sunday Means To Me' to Google Bookmarks" alt="Add 'What Super Bowl Sunday Means To Me' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/" title="Add 'What Super Bowl Sunday Means To Me' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'What Super Bowl Sunday Means To Me' to Bloglines" alt="Add 'What Super Bowl Sunday Means To Me' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=What+Super+Bowl+Sunday+Means+To+Me&amp;url=http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/" title="Add 'What Super Bowl Sunday Means To Me' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'What Super Bowl Sunday Means To Me' to SlashDot" alt="Add 'What Super Bowl Sunday Means To Me' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/&amp;t=What+Super+Bowl+Sunday+Means+To+Me" title="Add 'What Super Bowl Sunday Means To Me' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'What Super Bowl Sunday Means To Me' to FaceBook" alt="Add 'What Super Bowl Sunday Means To Me' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/" title="Add 'What Super Bowl Sunday Means To Me' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'What Super Bowl Sunday Means To Me' to Wikio" alt="Add 'What Super Bowl Sunday Means To Me' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/" title="Add 'What Super Bowl Sunday Means To Me' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'What Super Bowl Sunday Means To Me' to Twitter" alt="Add 'What Super Bowl Sunday Means To Me' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=What+Super+Bowl+Sunday+Means+To+Me&amp;url=http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/" title="Add 'What Super Bowl Sunday Means To Me' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'What Super Bowl Sunday Means To Me' to FriendFeed" alt="Add 'What Super Bowl Sunday Means To Me' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/02/what-super-bowl-sunday-means-to-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Holiday Book Reviews</title>
		<link>http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 13:35:12 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1577</guid>
		<description><![CDATA[I&#8217;m a manic book reader.  When I&#8217;m on holiday, I like to try and read a book a day.  So, my recent two weeks off was the perfect time to indulge.  Here, for those of you that care, are what I read and what I thought.  In no particular order&#8230;
Shades of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a manic book reader.  When I&#8217;m on holiday, I like to try and read a book a day.  So, my recent two weeks off was the perfect time to indulge.  Here, for those of you that care, are what I read and what I thought.  In no particular order&#8230;</p>
<h2>Shades of Grey &#8211; Jasper Fforde</h2>
<p><a href="http://www.amazon.co.uk/gp/product/0340963034?ie=UTF8&amp;tag=shkspr-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=0340963034"><img src="http://ecx.images-amazon.com/images/I/41gEXyD6gyL._SL160_.jpg" border="0" alt="" /></a><img class=" crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm" style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=shkspr-21&amp;l=as2&amp;o=2&amp;a=0340963034" border="0" alt="" width="1" height="1" /><br />
Jasper Fforde is one of the few truly original writers.  The plot is so-so (a mystery, a quest, a conspiracy) but the sci-fi is just the right side of weird.  Absolutely no exposition about why the world is the way it is &#8211; it&#8217;s left to the reader to pick up what clues they can.  One of the best books I&#8217;ve ever read. Funny, confusing and sweet.</p>
<p>I&#8217;d thought that the last Thursday Next book showed how FForde had painted himself into a bit of a corner.  This new universe he has created seems endlessly ripe for possibilities.</p>
<h2>The Year of the Flood &#8211; Margaret Atwood</h2>
<p><a href="http://www.amazon.co.uk/gp/product/0747585164?ie=UTF8&amp;tag=shkspr-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=0747585164"><img src="http://ecx.images-amazon.com/images/I/41gwMslUDnL._SL160_.jpg" border="0" alt="" /></a><img class=" crscqereomgidltructm crscqereomgidltructm" style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=shkspr-21&amp;l=as2&amp;o=2&amp;a=0747585164" border="0" alt="" width="1" height="1" /><br />
Dunce that I am, I didn&#8217;t realise until half-way through the book that this was a sequel to the rather brilliant Oryx and Crake.  You don&#8217;t need to have read Oryx to enjoy this book.  Much like Cory Doctorow (see below) Atwood&#8217;s speculative fiction is a delight.  It&#8217;s certainly refreshing to read a sci-fi work with two strong female leads.</p>
<h2>Oryx and Crake &#8211; Margaret Atwood</h2>
<p><a href="http://www.amazon.co.uk/gp/product/1844080285?ie=UTF8&amp;tag=shkspr-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=1844080285"><img src="http://ecx.images-amazon.com/images/I/517kzljggOL._SL160_.jpg" border="0" alt="" /></a><img class=" crscqereomgidltructm crscqereomgidltructm" style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=shkspr-21&amp;l=as2&amp;o=2&amp;a=1844080285" border="0" alt="" width="1" height="1" /><br />
I first read Oryx several years ago &#8211; the plot is still blisteringly good.  The only downside is some of the references have dated a little (CD-ROMs etc).  Re-reading this immediately after &#8220;Flood&#8221; was a revalation.  The characters burn brighter for knowing the complementary story within &#8220;Flood&#8221;.</p>
<h2>Neverwhere &#8211; Neil Gaiman</h2>
<p><a href="http://www.amazon.co.uk/gp/product/0747266689?ie=UTF8&amp;tag=shkspr-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=0747266689"><img src=" http://ecx.images-amazon.com/images/I/51H-Hn8DdIL._SL160_.jpg" border="0" alt="" /></a><img class=" dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm" style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=shkspr-21&amp;l=as2&amp;o=2&amp;a=0747266689" border="0" alt="" width="1" height="1" /><br />
I remember a special feature in the Radio Times about the making of the TV series &#8211; but I hadn&#8217;t found time to read the book until now.  Much like Shades of Grey, the plot is almost secondary to the world which Gaiman has created.  It owes a lot to Hitchikers&#8217; Guide &#8211; but that&#8217;s no bad thing.</p>
<h2>Black Swan &#8211; Taleb</h2>
<p><a href="http://www.amazon.co.uk/gp/product/0141034599?ie=UTF8&amp;tag=shkspr-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=0141034599"><img src="http://ecx.images-amazon.com/images/I/41vF9rYUXDL._SL160_.jpg" border="0" alt="" /></a><img class=" dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm" style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=shkspr-21&amp;l=as2&amp;o=2&amp;a=0141034599" border="0" alt="" width="1" height="1" /><br />
For a much hyped book, this really isn&#8217;t very good.  The basic premise is sound &#8211; unexpected things happen; plan for them &#8211; but the writing is turgid, self-important and too folksy for my liking.  I got halfway through the book before I felt like he was repeating himself endlessly.  I don&#8217;t think I&#8217;ll return to it.</p>
<h2>Starship Troopers &#8211; Heinlein</h2>
<p><a href="http://www.amazon.co.uk/gp/product/0340837934?ie=UTF8&amp;tag=shkspr-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=0340837934"><img src="http://ecx.images-amazon.com/images/I/51HT3G6B7ML._SL160_.jpg" border="0" alt="" /></a><img class=" dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm" style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=shkspr-21&amp;l=as2&amp;o=2&amp;a=0340837934" border="0" alt="" width="1" height="1" /><br />
Another one that has languished on my &#8220;To Read&#8221; pile for far too long.  Expertly crafted sci-fi which &#8211; as far as I can see &#8211; hasn&#8217;t dated in the slightest.</p>
<h2>Unseen Academicals &#8211; Pratchett</h2>
<p><a href="http://www.amazon.co.uk/gp/product/0385609345?ie=UTF8&amp;tag=shkspr-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=0385609345"><img src=" http://ecx.images-amazon.com/images/I/513H6D8PKaL._SL160_.jpg" border="0" alt="" /></a><img class=" dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm" style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=shkspr-21&amp;l=as2&amp;o=2&amp;a=0385609345" border="0" alt="" width="1" height="1" /><br />
Terry Pratchett had lost his way on some recent DiscWorld books.  Too many plot strands and too many in-jokes.  This is a stunning return to form.  I&#8217;m not in the least bit interest in football &#8211; so I no doubt missed many excellent puns &#8211; but this was the funniest book I&#8217;ve read in a long while. The plots work well together and there&#8217;s jsut the right amount of menacing undertone.</p>
<h2>The Diving Bell and The Butterfly &#8211; Baudry</h2>
<p><a href="http://www.amazon.co.uk/gp/product/0007139845?ie=UTF8&amp;tag=shkspr-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=0007139845"><img src="http://ecx.images-amazon.com/images/I/51FbY-jrZ0L._SL160_.jpg" border="0" alt="" /></a><img class=" dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm" style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=shkspr-21&amp;l=as2&amp;o=2&amp;a=0007139845" border="0" alt="" width="1" height="1" /><br />
It&#8217;s a remarkable book &#8211; dictated over months by a man who can only blink to communicate.  Essentially it&#8217;s a love letter to life.  That being said, I didn&#8217;t find it particularly moving or &#8211; if I&#8217;m honest &#8211; interesting.  If you&#8217;re missing your appreciation for life, it&#8217;s probably a must-read.</p>
<h2>The Behaviour of Moths &#8211; Poppy Adams</h2>
<p><a href="http://www.amazon.co.uk/gp/product/1844084884?ie=UTF8&amp;tag=shkspr-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=1844084884"><img src="http://ecx.images-amazon.com/images/I/51QwwABeaOL._SL160_.jpg" border="0" alt="" /></a><img class=" dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm" style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=shkspr-21&amp;l=as2&amp;o=2&amp;a=1844084884" border="0" alt="" width="1" height="1" /><br />
Bit of a random one, this.  It&#8217;s a sweet and engaging story which is high on detail and emotion.  AKA chick-lit.  But rather than blather on about dieting, this concentrates on family relationships, the nature of love and self identity.  There&#8217;s a beautiful sense of mystery  which is expertly left to the reader to resolve. I didn&#8217;t really enjoy reading this book but &#8211; oddly &#8211; I find myself enjoying the memory of the book.  No doubt it will be made in to a mini-series at some point.</p>
<h2>Makers &#8211; Cory Doctorow</h2>
<p><a href="http://www.amazon.co.uk/gp/product/0007325223?ie=UTF8&amp;tag=shkspr-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=0007325223"><img src="http://ecx.images-amazon.com/images/I/51rL7cPT3RL._SL160_.jpg" border="0" alt="" /></a><img class=" dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg dyzsarshajromqvpudgg crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm" style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=shkspr-21&amp;l=as2&amp;o=2&amp;a=0007325223" border="0" alt="" width="1" height="1" /><br />
Once again, Cory Doctorow comes up with a compelling vision of the future.  This is a more accessible read than some of his earlier work.  The human detail is richly expanded.  It seems, though, that it could do with a spot more editing.  The odd repeated phrase and convoluted sentence structure are a mite distracting.  I am also at a loss to explain his fetishising of Disney. Nevertheless, a hugely enjoyable and mind expanding book.</p>
<h2>Saint Leibowitz and the Wild Horse Woman &#8211; Walter M. Miller</h2>
<p><a href="http://www.amazon.co.uk/gp/product/1857230132?ie=UTF8&amp;tag=shkspr-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=1857230132"><img src="http://ecx.images-amazon.com/images/I/31MK0VM63AL._SL160_.jpg" border="0" alt="" /></a><img class=" crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm crscqereomgidltructm" style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=shkspr-21&amp;l=as2&amp;o=2&amp;a=1857230132" border="0" alt="" width="1" height="1" /><br />
This is the sequel to &#8220;A Canticle for Liebowitz&#8221; &#8211; without a doubt one of my favourite books.  I&#8217;m at a complete loss as to why this book was published (posthumously).  All of the majesty from the original book is gone.  It takes a small event in the life of the Liebowitz order and relates it with grinding detail.  Similar in tone and scope to a novel like Ken Follet&#8217;s &#8220;Pillars of the Earth&#8221; but without any of the fire, zeal, excitement or &#8211; if I&#8217;m frank &#8211; plot.  This was a slog to read.</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/&amp;title=Holiday+Book+Reviews" title="Add 'Holiday Book Reviews' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Holiday Book Reviews' to Del.icio.us" alt="Add 'Holiday Book Reviews' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/&amp;title=Holiday+Book+Reviews" title="Add 'Holiday Book Reviews' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Holiday Book Reviews' to digg" alt="Add 'Holiday Book Reviews' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/&amp;title=Holiday+Book+Reviews" title="Add 'Holiday Book Reviews' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Holiday Book Reviews' to reddit" alt="Add 'Holiday Book Reviews' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/" title="Add 'Holiday Book Reviews' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Holiday Book Reviews' to Technorati" alt="Add 'Holiday Book Reviews' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/&amp;h=Holiday+Book+Reviews" title="Add 'Holiday Book Reviews' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Holiday Book Reviews' to Newsvine" alt="Add 'Holiday Book Reviews' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/&amp;title=Holiday+Book+Reviews" title="Add 'Holiday Book Reviews' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Holiday Book Reviews' to Stumble Upon" alt="Add 'Holiday Book Reviews' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/&amp;title=Holiday+Book+Reviews" title="Add 'Holiday Book Reviews' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Holiday Book Reviews' to Google Bookmarks" alt="Add 'Holiday Book Reviews' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/" title="Add 'Holiday Book Reviews' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Holiday Book Reviews' to Bloglines" alt="Add 'Holiday Book Reviews' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Holiday+Book+Reviews&amp;url=http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/" title="Add 'Holiday Book Reviews' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Holiday Book Reviews' to SlashDot" alt="Add 'Holiday Book Reviews' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/&amp;t=Holiday+Book+Reviews" title="Add 'Holiday Book Reviews' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Holiday Book Reviews' to FaceBook" alt="Add 'Holiday Book Reviews' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/" title="Add 'Holiday Book Reviews' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'Holiday Book Reviews' to Wikio" alt="Add 'Holiday Book Reviews' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/" title="Add 'Holiday Book Reviews' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Holiday Book Reviews' to Twitter" alt="Add 'Holiday Book Reviews' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=Holiday+Book+Reviews&amp;url=http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/" title="Add 'Holiday Book Reviews' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'Holiday Book Reviews' to FriendFeed" alt="Add 'Holiday Book Reviews' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/02/holiday-book-reviews/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Does Facebook Think My Marriage Is In Trouble?</title>
		<link>http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 13:37:56 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[usability]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1565</guid>
		<description><![CDATA[Facebook has a funny idea of society.  From telling you to reconnect with dead friends, to offering your partner up as a &#8220;single&#8221; in your area &#8211; Facebook has a habit of getting things wrong.
My partner and I, like many married couples, live together.  We speak over breakfast, commute together and send each other emails [...]]]></description>
			<content:encoded><![CDATA[<p>Facebook has a funny idea of society.  From telling you to <a href="http://mashable.com/2009/10/26/facebook-memoralized-profiles/">reconnect with dead friends</a>, to offering your <a href="http://mashable.com/2009/07/17/facebook-dating-ads-2/">partner up as a &#8220;single&#8221; in your area</a> &#8211; Facebook has a habit of getting things wrong.</p>
<p>My partner and I, like many married couples, live together.  We speak over breakfast, commute together and send each other emails and texts throughout the day.  But we don&#8217;t do any of this on Facebook.</p>
<p>This worries Facebook.  It thinks our marriage may be on the rocks because we haven&#8217;t &#8211; excuse me &#8211; &#8220;poked&#8221; each other for a while.  Facebook knows the key to a successful marriage is to tag each other in as many photos as we can.</p>
<p>At least, that&#8217;s the only reason I can think for what I saw when I last logged in to Facebook.</p>
<div id="attachment_1566" class="wp-caption aligncenter" style="width: 418px"><a href="http://shkspr.mobi/blog/wp-content/uploads/2010/01/facebook-marriage.jpg"><img class="size-full wp-image-1566  " title="facebook marriage" src="http://shkspr.mobi/blog/wp-content/uploads/2010/01/facebook-marriage.jpg" alt="Click for Bigger" width="408" height="138" /></a><p class="wp-caption-text">Click to Embiggen</p></div>
<p>THANK YOU FACEBOOK FOR SAVING OUR MARRIAGE!</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/&amp;title=Does+Facebook+Think+My+Marriage+Is+In+Trouble%3F" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Del.icio.us" alt="Add 'Does Facebook Think My Marriage Is In Trouble?' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/&amp;title=Does+Facebook+Think+My+Marriage+Is+In+Trouble%3F" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to digg" alt="Add 'Does Facebook Think My Marriage Is In Trouble?' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/&amp;title=Does+Facebook+Think+My+Marriage+Is+In+Trouble%3F" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to reddit" alt="Add 'Does Facebook Think My Marriage Is In Trouble?' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Technorati" alt="Add 'Does Facebook Think My Marriage Is In Trouble?' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/&amp;h=Does+Facebook+Think+My+Marriage+Is+In+Trouble%3F" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Newsvine" alt="Add 'Does Facebook Think My Marriage Is In Trouble?' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/&amp;title=Does+Facebook+Think+My+Marriage+Is+In+Trouble%3F" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Stumble Upon" alt="Add 'Does Facebook Think My Marriage Is In Trouble?' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/&amp;title=Does+Facebook+Think+My+Marriage+Is+In+Trouble%3F" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Google Bookmarks" alt="Add 'Does Facebook Think My Marriage Is In Trouble?' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Bloglines" alt="Add 'Does Facebook Think My Marriage Is In Trouble?' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Does+Facebook+Think+My+Marriage+Is+In+Trouble%3F&amp;url=http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to SlashDot" alt="Add 'Does Facebook Think My Marriage Is In Trouble?' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/&amp;t=Does+Facebook+Think+My+Marriage+Is+In+Trouble%3F" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to FaceBook" alt="Add 'Does Facebook Think My Marriage Is In Trouble?' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Wikio" alt="Add 'Does Facebook Think My Marriage Is In Trouble?' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to Twitter" alt="Add 'Does Facebook Think My Marriage Is In Trouble?' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=Does+Facebook+Think+My+Marriage+Is+In+Trouble%3F&amp;url=http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'Does Facebook Think My Marriage Is In Trouble?' to FriendFeed" alt="Add 'Does Facebook Think My Marriage Is In Trouble?' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/01/does-facebook-think-my-marriage-is-in-trouble/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ORG Election</title>
		<link>http://shkspr.mobi/blog/index.php/2010/01/org_election/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/01/org_election/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 07:00:42 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[politics]]></category>
		<category><![CDATA[open rights group]]></category>
		<category><![CDATA[openrightsgroup]]></category>
		<category><![CDATA[org]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1572</guid>
		<description><![CDATA[Voting is now open for the Open Rights Group Board of Directors election.
I&#8217;d be delighted to answer any questions you may have.  Post them as a comment here, send me an SMS or an email and I&#8217;ll do my best to answer.
A quick look over the candidate statements shows that we&#8217;re all fairly well [...]]]></description>
			<content:encoded><![CDATA[<p>Voting is now open for the <a href="http://www.openrightsgroup.org/directors-elections-candidates">Open Rights Group Board of Directors election</a>.</p>
<p>I&#8217;d be delighted to answer any questions you may have.  Post them as a comment here, send me an SMS or an email and I&#8217;ll do my best to answer.</p>
<p>A quick look over the candidate statements shows that we&#8217;re all fairly well aligned.  For no reason other than they&#8217;re very Web 2.0, I&#8217;ve made a <a href="http://www.wordle.net/">Wordle</a> of the candidate statements.<br />
<div id="attachment_1571" class="wp-caption aligncenter" style="width: 310px"><a href="http://shkspr.mobi/blog/wp-content/uploads/2010/01/ORG-Wordle.png"><img src="http://shkspr.mobi/blog/wp-content/uploads/2010/01/ORG-Wordle-300x119.png" alt="ORG Wordle" title="ORG Wordle" width="300" height="119" class="size-medium wp-image-1571" /></a><p class="wp-caption-text">ORG Wordle - Click for Bigger</p></div></p>
<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/"><img style="border-width: 0;" src="http://i.creativecommons.org/l/by-sa/2.5/88x31.png" alt="Creative Commons License" /></a><br />
This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-Share Alike 2.5 Generic License</a>.<br />
Thanks to those who <a href="http://shkspr.mobi/blog/index.php/2010/01/open-rights-group-standing-for-the-board-of-directors/">helped me craft my statement</a>.</p>
<p>Voting is open to members only.  Votes have to be returned by 15 February 2010.</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/01/org_election/&amp;title=ORG+Election" title="Add 'ORG Election' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'ORG Election' to Del.icio.us" alt="Add 'ORG Election' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/01/org_election/&amp;title=ORG+Election" title="Add 'ORG Election' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'ORG Election' to digg" alt="Add 'ORG Election' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/01/org_election/&amp;title=ORG+Election" title="Add 'ORG Election' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'ORG Election' to reddit" alt="Add 'ORG Election' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/01/org_election/" title="Add 'ORG Election' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'ORG Election' to Technorati" alt="Add 'ORG Election' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/01/org_election/&amp;h=ORG+Election" title="Add 'ORG Election' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'ORG Election' to Newsvine" alt="Add 'ORG Election' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/01/org_election/&amp;title=ORG+Election" title="Add 'ORG Election' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'ORG Election' to Stumble Upon" alt="Add 'ORG Election' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/01/org_election/&amp;title=ORG+Election" title="Add 'ORG Election' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'ORG Election' to Google Bookmarks" alt="Add 'ORG Election' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/01/org_election/" title="Add 'ORG Election' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'ORG Election' to Bloglines" alt="Add 'ORG Election' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=ORG+Election&amp;url=http://shkspr.mobi/blog/index.php/2010/01/org_election/" title="Add 'ORG Election' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'ORG Election' to SlashDot" alt="Add 'ORG Election' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/01/org_election/&amp;t=ORG+Election" title="Add 'ORG Election' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'ORG Election' to FaceBook" alt="Add 'ORG Election' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/01/org_election/" title="Add 'ORG Election' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'ORG Election' to Wikio" alt="Add 'ORG Election' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/01/org_election/" title="Add 'ORG Election' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'ORG Election' to Twitter" alt="Add 'ORG Election' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=ORG+Election&amp;url=http://shkspr.mobi/blog/index.php/2010/01/org_election/" title="Add 'ORG Election' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'ORG Election' to FriendFeed" alt="Add 'ORG Election' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/01/org_election/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dabr Widget for 360 H1</title>
		<link>http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/</link>
		<comments>http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 11:30:38 +0000</pubDate>
		<dc:creator>Terence Eden</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[360]]></category>
		<category><![CDATA[dabr]]></category>
		<category><![CDATA[jil]]></category>
		<category><![CDATA[limo]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[vodafone]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1557</guid>
		<description><![CDATA[I&#8217;ve written a very basic JIL widget to launch dabr.  You can grab it from http://shkspr.mobi/Dabr.wgt

I&#8217;ve tested this to work on the Vodafone 360 H1 &#8211; but it should work with any JIL handset.
Because it isn&#8217;t certified, you may need to dial
*#35767#
to remove the H1&#8217;s security check.
The code is very simple.  The JIL SDK allows [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve written a very basic JIL widget to launch <a href="http://m.dabr.co.uk/">dabr</a>.  You can grab it from <a href="http://shkspr.mobi/Dabr.wgt">http://shkspr.mobi/Dabr.wgt</a></p>
<p><a href="http://shkspr.mobi/blog/wp-content/uploads/2010/01/Dabr-on-360.jpg"><img class="aligncenter size-full wp-image-1559" title="Dabr on 360" src="http://shkspr.mobi/blog/wp-content/uploads/2010/01/Dabr-on-360.jpg" alt="" width="400" height="315" /></a></p>
<p>I&#8217;ve tested this to work on the Vodafone 360 H1 &#8211; but it should work with any <a href="http://www.jil.org/">JIL</a> handset.</p>
<p>Because it isn&#8217;t certified, you may need to dial</p>
<pre>*#35767#</pre>
<p>to remove the <a href="http://www.jil.org/jil-forums/posts/list/176.page#525">H1&#8217;s security check</a>.</p>
<p>The code is very simple.  The JIL SDK allows you to call specific phone application &#8211; in this case, all I&#8217;ve done is invoked the browser.</p>
<pre>&lt;body&gt;
   &lt;script type="text/javascript"&gt;
      Widget.openURL("http://m.dabr.co.uk/");
   &lt;/script&gt;
   &lt;div&gt;
      Launching Dabr!
   &lt;/div&gt;
&lt;/body&gt;</pre>
<p>One thing to note, if you&#8217;re deploying the widgets from your website, ensure you have set the MIME type to &#8220;application/widget&#8221; &#8211; as per the <a href="http://www.w3.org/TR/widgets/#media-type-registration-for-applicationw">W3C standards</a> &#8211; otherwise many devices won&#8217;t recognise it as a valid widget.</p>
<p>If you&#8217;re interest in developing for this platform, there&#8217;s a <a href="http://widget.developer.vodafone.com/en/">€1,000,000 bounty up for grabs</a>.  There&#8217;s also a <a href="http://jil.vodafone.com/app_planet/">Dev Camp at Mobile World Congress</a> this year.</p>
<p>I work for Vodafone &#8211; this is my personal blog, I don&#8217;t to speak for them.  All opinions, claims and mistakes are my own.</p>
<!-- Social Bookmarking Reloaded BEGIN --><div class="social_bookmark"><em>Share This</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/&amp;title=Dabr+Widget+for+360+H1" title="Add 'Dabr Widget for 360 H1' to Del.icio.us"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/delicious.png" title="Add 'Dabr Widget for 360 H1' to Del.icio.us" alt="Add 'Dabr Widget for 360 H1' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/&amp;title=Dabr+Widget+for+360+H1" title="Add 'Dabr Widget for 360 H1' to digg"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/digg.png" title="Add 'Dabr Widget for 360 H1' to digg" alt="Add 'Dabr Widget for 360 H1' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/&amp;title=Dabr+Widget+for+360+H1" title="Add 'Dabr Widget for 360 H1' to reddit"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/reddit.png" title="Add 'Dabr Widget for 360 H1' to reddit" alt="Add 'Dabr Widget for 360 H1' to reddit" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/" title="Add 'Dabr Widget for 360 H1' to Technorati"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/technorati.png" title="Add 'Dabr Widget for 360 H1' to Technorati" alt="Add 'Dabr Widget for 360 H1' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newsvine.com/_wine/save?u=http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/&amp;h=Dabr+Widget+for+360+H1" title="Add 'Dabr Widget for 360 H1' to Newsvine"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/newsvine.png" title="Add 'Dabr Widget for 360 H1' to Newsvine" alt="Add 'Dabr Widget for 360 H1' to Newsvine" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/&amp;title=Dabr+Widget+for+360+H1" title="Add 'Dabr Widget for 360 H1' to Stumble Upon"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/stumbleupon.png" title="Add 'Dabr Widget for 360 H1' to Stumble Upon" alt="Add 'Dabr Widget for 360 H1' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/&amp;title=Dabr+Widget+for+360+H1" title="Add 'Dabr Widget for 360 H1' to Google Bookmarks"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/google.png" title="Add 'Dabr Widget for 360 H1' to Google Bookmarks" alt="Add 'Dabr Widget for 360 H1' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.bloglines.com/sub/http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/" title="Add 'Dabr Widget for 360 H1' to Bloglines"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/bloglines.png" title="Add 'Dabr Widget for 360 H1' to Bloglines" alt="Add 'Dabr Widget for 360 H1' to Bloglines" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Dabr+Widget+for+360+H1&amp;url=http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/" title="Add 'Dabr Widget for 360 H1' to SlashDot"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/slashdot.png" title="Add 'Dabr Widget for 360 H1' to SlashDot" alt="Add 'Dabr Widget for 360 H1' to SlashDot" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/&amp;t=Dabr+Widget+for+360+H1" title="Add 'Dabr Widget for 360 H1' to FaceBook"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/facebook.png" title="Add 'Dabr Widget for 360 H1' to FaceBook" alt="Add 'Dabr Widget for 360 H1' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.wikio.it/vote?url=http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/" title="Add 'Dabr Widget for 360 H1' to Wikio"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/wikio.png" title="Add 'Dabr Widget for 360 H1' to Wikio" alt="Add 'Dabr Widget for 360 H1' to Wikio" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/" title="Add 'Dabr Widget for 360 H1' to Twitter"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/twitter.png" title="Add 'Dabr Widget for 360 H1' to Twitter" alt="Add 'Dabr Widget for 360 H1' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://friendfeed.com/share/bookmarklet/frame#title=Dabr+Widget+for+360+H1&amp;url=http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/" title="Add 'Dabr Widget for 360 H1' to FriendFeed"><img src="http://shkspr.mobi/blog/wp-content/plugins/social-bookmarking-reloaded/friendfeed.png" title="Add 'Dabr Widget for 360 H1' to FriendFeed" alt="Add 'Dabr Widget for 360 H1' to FriendFeed" /></a></div>
<!-- Social Bookmarking Reloaded END -->]]></content:encoded>
			<wfw:commentRss>http://shkspr.mobi/blog/index.php/2010/01/dabr-widget-for-360-h1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
