<?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>deanjrobinson.com &#187; Article</title>
	<atom:link href="http://deanjrobinson.com/category/article/feed/" rel="self" type="application/rss+xml" />
	<link>http://deanjrobinson.com</link>
	<description>pipe delimited life</description>
	<lastBuildDate>Wed, 28 Jul 2010 12:42:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Custom Shortlinks for WordPress</title>
		<link>http://deanjrobinson.com/article/custom-shortlinks-for-wordpress/</link>
		<comments>http://deanjrobinson.com/article/custom-shortlinks-for-wordpress/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 09:27:32 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[lessn]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[shortlink]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=1345</guid>
		<description><![CDATA[I was lucky and managed to get my hands on a neat little .co domain, <a href="http://djr.co" target="_blank">djr.co</a>, and I decided that since it is now the shortest domain that I own that I'd first put it to use for the short links on my blog, and as my own personal url shortener.]]></description>
			<content:encoded><![CDATA[<p class="hideme">I was lucky and managed to get my hands on a neat little .co domain, <a href="http://djr.co" target="_blank">djr.co</a>, and I decided that since it is now the shortest domain that I own that I’d first put it to use for the short links on my blog, and as my own personal url shortener.</p>
<h3>The (really) short version</h3>
<ul>
<li>I’ve set up <a href="http://shauninman.com/archive/2009/08/17/less_n">Lessn</a> to take care of the personal url shortener side of things
<ul>
<li><em>links in the format <a href="http://djr.co/u/2" target="_blank">http://djr.co/u/2</a></em></li>
</ul>
</li>
<li>And I’m using a simple combination of a WordPress filter function and an .htaccess/index.php redirection combo to handle the shortlinks for my blog.
<ul>
<li><em>links in the format <a href="http://djr.co/m/1345" target="_blank">http://djr.co/m/1345</a></em></li>
</ul>
</li>
</ul>
<h3>The long version (for those who want more info)</h3>
<h4>Personal URL shortener</h4>
<p>For the general url shortener there a few different options floating around, but I didn’t need anything super fancy with graphs and counters and all that stuff, I just wanted something simple and easy to setup — and most importantly something that worked. So I went with Shaun Inman’s nice little <a href="http://shauninman.com/archive/2009/08/17/less_n">Lessn</a> script and its working great.</p>
<p>Summary — if you want to set up your own url shortener using your own domain, then give <a href="http://shauninman.com/archive/2009/08/17/less_n">Lessn</a> a go. It is dead simple to setup.</p>
<h4>Custom WordPress ‘shortlinks’</h4>
<p>As of version 3.0, WordPress now come with a built in function called ‘<strong>wp_get_shortlink</strong>’ which, as you can probably guess, returns a ‘shortlink’ for the relevant post/page.</p>
<p>By default these ‘shortlinks’ take the form of <strong><a href="http://deanjrobinson.com/?p=1345">http://deanjrobinson.com/?p=1345</a></strong> — which also happens to be the default post links if you don’t have pretty permalinks set up, I’ll explain why this point is important shortly.</p>
<h4>Getting djr.co ready for redirection</h4>
<p>The first thing I needed to do was to set up things on djr.co and make sure it was working as I expected.</p>
<p>I had considered using the <a href="http://shauninman.com/archive/2009/09/14/less_n_go">api built into Lessn</a> to auto generate a shortlink when I publish a post, I even found a plugin that would have done it for me pretty easily, however I rules this out for a couple of reasons:</p>
<ul>
<li>It would have meant adding additional meta data fields against posts — not necessarily a bad thing, but also not really necessary for my needs</li>
<li>I would have had to either modify my templates to output the new short links, or create a filter to take care of it for me</li>
<li>And the main reason was that I wanted ‘shortlinks’ to be available for all my old posts as well — without me having to go back and generate them.</li>
</ul>
<p>The ‘solution’ I decided on is essentially a really stripped back version of Lessn — without the need to call off to the Lessn database etc because our WP posts already have unique ids which we can use for the redirection. More specifically it just two files a <em>.htaccess</em> file and an <em>index.php</em> file.</p>
<p><strong>First, the <em>.htaccess</em> file, this is exactly the same as the one from Lessn.</strong></p>
<p>This takes the url, eg. <a href="http://djr.co/m/1345">http://djr.co/m/1345</a>, and passes it to <br/><a href="http://djr.co/m/index.php?token=1345">http://djr.co/m/index.php?token=1345</a> ready for the redirection.</p>
<pre class="code">
&lt;IfModule mod_rewrite.c&gt;
  RewriteEngine on
  RewriteCond	%{REQUEST_FILENAME}	!-d
  RewriteCond	%{REQUEST_FILENAME}	!-f
  RewriteRule	(.*) index.php?token=$1	[QSA,L]
&lt;/IfModule&gt;
</pre>
<p>You might be curious as to why I haven’t just redirected it to my primary url using the htaccess, I’ll get to that in a sec.</p>
<p><strong>Second, the simple <em>index.php</em></strong></p>
<p>This is based on the index.php file from Lessn, but cut down to just what I needed for my blog redirection. That means no need to call any of the Lessn includes, or make any database queries, just grab the id and redirect it off to my blog.</p>
<p>If no ‘token’ is passed though the page will simply return a 404. The two reasons for using this index.php file to handle the actual redirect are so that I can clean up the token (using <em>strip_tags</em>) just in case someone tries something nasty, and so that I can check that the token is numeric (using <em>is_numeric</em>) — this is because WordPress post/page IDs are only numeric, so any other values obviously aren’t going to work anyway.</p>
<p>This is what the cut-down, modified index.php file looks like. You’ll notice that the url format for the ‘Header Location’ matches the default WordPress ‘shortlink’ format I mentioned above. This is because no matter how you have your pretty permalinks set up, these default links will always work.</p>
<pre class="code">
&lt;?php

if (!empty($_GET[&#x27;token&#x27;])) {
  $id = strip_tags($_GET[&#x27;token&#x27;]);
  if(is_numeric($id)) {
    header($_SERVER[&#x27;SERVER_PROTOCOL&#x27;].&#x27; 301 Moved Permanently&#x27;);
    header(&#x27;Location:http://deanjrobinson.com/?p=&#x27;.$id);
    exit();
  }
}

header($_SERVER[&#x27;SERVER_PROTOCOL&#x27;].&#x27; 404 Not Found&#x27;);
header(&#x27;Status:404&#x27;);
die(&#x27;404 Not Found&#x27;);

?&gt;
</pre>
<h4>Getting WordPress to use these custom shortlinks</h4>
<p>To get this working, all I needed to do was add a really simple ‘filter’ to the functions.php file in my current theme.</p>
<p>I’m using a filter so that I can continue to use the built-in ‘<strong>wp_get_shortlink</strong>’ function that is available in WordPress (since 3.0). This function can be used something like this:</p>
<pre class="code">
&lt;a href=&quot;&lt;?php echo wp_get_shortlink(); ?&gt;&quot; title=&quot;ShortURL for this post&quot;&gt;Short URL&lt;/a&gt;
</pre>
<p>By running the filter over the standard function not only do I not have to update any of my theme templates, I will also be able to retrieve my custom short url by using the “Get Shortlink” button that has been added to the create/edit post screen in the WordPress admin, just below the post title.</p>
<pre class="code">
&lt;?php

function my_custom_shortlink_filter() {
  global $post;
  return &#x27;http://djr.co/m/&#x27;.$post-&gt;ID;
}
add_filter(&#x27;get_shortlink&#x27;,&#x27;my_custom_shortlink_filter&#x27;);

?&gt;
</pre>
<p>Best of all, because the shortlinks are based on the unique post ids (which every post has) the shortlinks will instantly work for all my posts going right back to the beginning of this blog without me needing to change anything else. Yay.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/custom-shortlinks-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fluency Admin 2.3 now available</title>
		<link>http://deanjrobinson.com/article/fluency-admin-2-3-now-available/</link>
		<comments>http://deanjrobinson.com/article/fluency-admin-2-3-now-available/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 06:34:01 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[fluency]]></category>
		<category><![CDATA[fluency-admin]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/article/fluency-admin-2-3-now-available/</guid>
		<description><![CDATA[Now compatible with WordPress 3.0. I've also added more customisation options including iPad friendly menus, and the ability to turn on/off hover menus and hot keys as needed.]]></description>
			<content:encoded><![CDATA[<p><a href="http://deanjrobinson.com/projects/fluency-admin/"><img src="http://deanjrobinson.com/wp-content/uploads/2010/06/f23banner.jpg" alt="Fluency Admin 2.3 now available" /></a></p>
<p>Fluency 2.3 is a recommended upgrade for all Fluency users who’ve already upgraded to WordPress 3.0 (which was released earlier this week). Included in this update, in addition to WP3.0 support, are fixes for a number of small issues that were pointed out by users over the past 6 months, and a few additional options to ‘fine-tune’ how you use Fluency.</p>
<p>Well, what are you waiting for? Read more about the updates <a href="http://deanjrobinson.com/projects/fluency-admin/">here</a>, or head to your admin panel to upgrade/install Fleucny 2.3 (of course, you can also jump straight over to WordPress.org to grab the <a href="http://wordpress.org/extend/plugins/fluency-admin/" target="_blank">download from there</a> too.)</p>
<p>As always, if you spot a bug or something I’ve missed please let me know. The best place for you to do so is in my <a href="http://help.deanjrobinson.com/groups/fluency-admin/" target="_blank">help forums</a>, or, if you prefer, in the WordPress.org <a href="http://wordpress.org/tags/fluency-admin?forum_id=10" target="_blank">support forums</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/fluency-admin-2-3-now-available/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Hahlo 4.2 — Now iPad friendly</title>
		<link>http://deanjrobinson.com/article/hahlo-4-2-now-ipad-friendly/</link>
		<comments>http://deanjrobinson.com/article/hahlo-4-2-now-ipad-friendly/#comments</comments>
		<pubDate>Mon, 31 May 2010 06:01:14 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[hahlo]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[webapp]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=1291</guid>
		<description><![CDATA[Not that it iPad friendly wasn't before, in fact Hahlo ran perfectly fine on the iPad, but with that extra screen space available it would be silly to not make use of it, wouldn't it? All up it isn't a massive update, but some good bits and pieces have been thrown in.]]></description>
			<content:encoded><![CDATA[<p class="hideme">Not that it iPad friendly wasn’t before, in fact Hahlo ran perfectly fine on the iPad, but with that extra screen space available it would be silly to not make use of it, wouldn’t it? All up it isn’t a massive update, but some good bits and pieces have been thrown in.</p>
<p><img src="http://deanjrobinson.com/wp-content/uploads/2010/05/hahlo_ipad_heroshot_flat_500.png" alt="Hahlo 4.2 - Now iPad friendly" title="Hahlo 4.2 - Now iPad friendly" width="500" height="312" /></p>
<h3>What’s New</h3>
<ul>
<li>iPad specific changes
<ul>
<li>Custom landscape layout with menu visible on the left (see screenshot above)</li>
<li>Portrait mode retains the ‘traditional’ Hahlo overlay menu accessed from the ‘menu’ button in the header.</li>
<li>Slightly larger navigation tabs</li>
<li>Bigger maps (640x480) on the geo-location pages</li>
<li>Custom iPad startup image when you add Hahlo to your home screen</li>
<li>New 72px home screen icon for the iPad</li>
</ul>
</li>
<li>Added ‘Retweeted by’ links (similar to ‘in reply to’) to all three retweet timelines
<ul>
<li>These allow you to quickly see who else has retweeted that specific tweet</li>
<li>Currently shows a maximum of 10 users (I may increase this in the future)</li>
</ul>
</li>
<li>Added all three retweet timelines to the menu (Retweeted to Me, Retweeted by Me, Retweets of Me)</li>
<li>Using Twitter provided location data (for locations in the US), other locations are still using the google Maps API.</li>
<li>Added link on geo-location pages to open the current location in Google Maps (will work on iPhone and iPad)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fixed a link parsing bug where links that omitted http:// would be linked incorrectly, this has now been fixed for links that begin with www but still omit http://</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/hahlo-4-2-now-ipad-friendly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Internet Explorer Nein!</title>
		<link>http://deanjrobinson.com/article/internet-explorer-nein/</link>
		<comments>http://deanjrobinson.com/article/internet-explorer-nein/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 10:36:31 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[ie9]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[nein]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=1245</guid>
		<description><![CDATA[I love Internet Explorer. I equally love sticking red-hot pokers in my eyes and sliding bamboo splinters underneath my finger nails.]]></description>
			<content:encoded><![CDATA[<p class="hideme">I love Internet Explorer. I equally love sticking red-hot pokers in my eyes and sliding bamboo splinters underneath my finger nails.</p>
<p>Perhaps you missed the announcement about the IE9 ‘platform preview’, if that’s the case, then jump over to the <a href="http://blogs.msdn.com/ie/archive/2010/03/16/html5-hardware-accelerated-first-ie9-platform-preview-available-for-developers.aspx" target="_blank">IE Blog</a> and have a read about what they’re doing to bring things up to where everyone else was three years ago.</p>
<p style="color:#FFF;color:rgba(0,0,0,0.8);">All IE users are either not fans of the internet or work for some mindless corporation which insists on installing IE6 on their work machines because they have some antiquated internal application that requires IE6 to function. That is a very sweeping generalisation, and I don’t really care, I can say this because IE users won’t see this paragraph unless they actually highlight the text in their inferior browsers. I was going to hide this whole article, but that seemed like too much effort for a quick thrill. (spoiler alert: I’ve used rgba for the text colour.)</p>
<p>This is also my 500th post on this blog, so it’s only fitting that its a rant. Let’s go.</p>
<h3>My eyes, it burns, it burns…</h3>
<p>Acid will do that. But with a diluted <a href="http://ie.microsoft.com/testdrive/benchmarks/Acid3/Default.html" target="_blank">55/100</a> score thus far in the Acid3 test it is more likely to fizz and tingle than actually burn. Safari 4 gets perfect 100/100, and Firefox 3.6 94/100. Long way to go guys, maybe start boasting once you hits the 90’s… not the 50’s.<br />
<span id="more-1245"></span></p>
<blockquote><p>Today, Microsoft has submitted over 100 additional tests of HTML5, CSS3, DOM, and SVG to the W3C. You can try out some of the tests we’ve submitted to the W3C <a href="http://samples.msdn.microsoft.com/ietestcenter/" target="_blank">here</a>.</p></blockquote>
<p>So, in addition to the Acid3 test, Microsoft have devised 100 more tests which, *shockingly*, they pass completely and all other browsers don’t. I’m not saying there is anything wrong with the tests that Microsoft have come up with, there is some perfectly reasonable stuff in there, its just very convenient that they pass every single one of the tests they’ve outlined. Very convenient.</p>
<h3>Warp speed capt’n</h3>
<p>Not really, warp speed, but compared to previous versions the JavaScript performance figures for IE9 aren’t too bad, although still behind Safari and Chrome, they’re on-par with Firefox 3.7 Alpha2. Whether this performance increase remains once its wrapped up in the whole IE9 application as opposed to this ‘preview’ will be the real test.</p>
<h3>Standards</h3>
<p>Possibly the most abused word on the IE blog, perhaps on the internet in general. I have to quote this whole section from the IE Blog, because its hilarious to think that it’s actually written on the IE Blog in a post about IE.</p>
<blockquote><p style="margin-bottom:10px;">The goal of standards and interoperability is that the same HTML, script, and formatting markup work the same across different browsers. Eliminating the need for different code paths for different browsers benefits everyone, and creates more opportunity for developers to innovate.</p>
<p style="margin-bottom:10px;">Many standards are still emerging. They are in committee in draft form, or partially implemented, often in different ways, across different browsers.  Developers face a hard challenge here: they need to work harder than they should, to write more and different HTML, script, and markup, just to get similar but not always the same results across different browsers.</p>
<p>We want the same markup to just work across different browsers. In IE9, we’re doing for the rest of the platform what we did for CSS 2.1 in IE8. IE8 delivered a high-quality CSS 2.1 implementation, sticking to the standard, and looking to other implementations in places where the standard is ambiguous. Developers should expect more from across the industry on this front in order to make HTML5 applications easier for developers to write.</p>
</blockquote>
<p>Simpleton translation. “We’ve been dicking you around with bad browsers, forcing you to use dodgy hacks to make things look presentable in our products even though those same thing have looked fine in other browsers for years”</p>
<h3>HTML5 != CSS3</h3>
<p>I’m not sure if everyone will agree with this, but as far as I’m concerned HTML5 has nothing to do with CSS3, they are two separate things, however Microsoft seem to be bundling them together as though they shared the womb for 9 months. Their <a href="http://ie.microsoft.com/testdrive/" target="_blank">IE9 ‘test drive’ page</a> has three sections ‘Speed Demos’, ‘Graphics Demos’ and ‘HTML5 Demos’. But listed under ‘HTML5’ are <a href="http://ie.microsoft.com/testdrive/HTML5/01BorderRadius/Default.html" target="_blank">Border Radius</a>, <a href="http://ie.microsoft.com/testdrive/HTML5/10CSS3_Selectors/Default.html" target="_blank">CSS3 Selectors</a>, <a href="http://ie.microsoft.com/testdrive/HTML5/13DOM_Events/Default.html" target="_blank">DOM Events</a>, <a href="http://ie.microsoft.com/testdrive/HTML5/16DOM_Style/Default.html" target="_blank">DOM Style</a> and <a href="http://ie.microsoft.com/testdrive/HTML5/25HTML5_T--Shirt_Designer/Default.xhtml" target="_blank">‘HTML5 T-Shirt Designer’</a> (which seems to be an XHTML document not HTML5…). This is the list of things they spout that the shirt designer uses, maybe someone whos read more of the HTML5 spec than I have can clarify how many of these actually fall under HTML5, because I was of the belief that (for starters) HTML5 != XHTML, just like HTML5 != CSS3</p>
<ul>
<li>is served as XHTML (MIME type: application/xhtml+xml)</li>
<li>uses XHTML namespaces and styles them with CSS</li>
<li>uses DOM Style and the CSS3 border-radius and opacity properties to create the color-picking widget</li>
<li>uses DOM Events (e.g., addEventListener) to be notified of mouse events</li>
<li>uses these mouse events to enable drawing on an SVG surface</li>
</ul>
<p>Lastly checking the source of the shirt designer provides a childish giggle in the comments:</p>
<blockquote><p>The purpose of these demos is to convey a concept and not intended to be used as a best practice for web development. Enjoy!</p></blockquote>
<p>Really? Why would anyone have been expecting Microsoft to start conveying best practice now?</p>
<h3>Frequently asked questions…</h3>
<p><a href="http://ie.microsoft.com/testdrive/info/FrequentlyAskedQuestions/Default.html" target="_blank">These</a> are relatively good for a laugh. I won’t comment on all their FAQs (I could, but I won’t), just the quality ones.</p>
<blockquote><p><strong>Q: Why doesn’t Platform Preview have a back button or address bar?</strong><br/>A: Our focus with Internet Explorer Platform Preview is to provide a vehicle with which Web developers can see our progress and start planning if and how they want to support new HTML5 capabilities in the future.</p></blockquote>
<p>Web Developers already have platforms to use if they want to test HTML5 capabilities. They’re called Safari, Firefox, Chrome etc.</p>
<blockquote><p><strong>Q: How often will be you be updating this?</strong><br/>A: We hope to release a new version of Internet Explorer Platform Preview approximately every 8 weeks</p></blockquote>
<p>What’s that saying? Release early, release occasionally. Nah, that doesn’t sound…</p>
<p>* switches tabs to download Webkit <u>nightly</u> build *</p>
<p>…sound quite right. The word I was looking for was ‘often’. As in I ‘often’ consider testing in IE.</p>
<blockquote><p><strong>Q: When will the first beta ship?</strong><br/>A: We will release beta of Internet Explorer 9 when feedback from the Platform Preview releases indicates we have a high-quality Web platform that can be used for everyday browsing of the Web.</p></blockquote>
<p>So… never?</p>
<blockquote><p><strong>Q: You showed HTML5 <code>&lt;video&gt;</code> at MIX10 but it doesn’t work in the Platform Preview.</strong><br/>A: The demo of HTML5 <code>&lt;video&gt;</code> at MIX10 was a preview of a future release of the Platform Preview. Stay tuned for more!</p></blockquote>
<p>That’s a piss-take right? You’ve got a more up-to-date version of the “platform preview”, but you’re not going to give it out yet. Do we want to take bets that this ‘future release’ that they’re referring to won’t be the one (if there is one) that’s released in 8 weeks time.</p>
<h3>Semi-Serious stuff</h3>
<p>If you take a look at the <a href="http://ie.microsoft.com/testdrive/info/ReleaseNotes/Default.html" target="_blank">release notes</a> for the ‘platform preview’, there are certainly some interesting things in there. And the IE devs are definitely trying their hardest to make IE9 ‘better’. But is it really, really worth all the effort? Really?</p>
<h3>Apples and Lemons.</h3>
<p>Despite it seeming like the best, most obvious, satisfactory, sensible way for Microsoft to ‘catch up’ in the browser wars, it still seems extremely unlikely that they’ll adopt the Webkit (or Gecko, I’m not too picky really) rendering engine anytime soon. Probably because of Apple’s involvement with Webkit and Microsoft being stubborn.</p>
<p>Even Google, who’s love/hate relationship with Apple seems to be growing, is using Webkit in Chrome and (partly) as a result seeing a reasonably sharp uptake on their Chrome browser. But no, clearly both Apple and Google are wrong, Webkit isn’t the way to go, the best option *clearly* is to infinitely patch an inferior product to bring it up to where the competitors were three years ago. Yay Microsoft.</p>
<p>The best thing about the internet? Opinions. That’s just mine.</p>
<h4>Possibly related reading (from both sides of the fence)</h4>
<ul>
<li><a href="http://blogs.msdn.com/ie/archive/2010/03/16/html5-hardware-accelerated-first-ie9-platform-preview-available-for-developers.aspx" target="_blank">IE Blog — HTML5, Hardware Accelerated: First IE9 Platform Preview Available for Developers</a></li>
<li><a href="http://www.zeldman.com/2010/03/16/ie9-preview/" target="_blank">zeldman.com — IE9 Preview</a></li>
<li><a href="http://community.winsupersite.com/blogs/paul/archive/2010/03/16/zeldman-just-doesn-t-get-it-on-ie-9.aspx" target="_blank">Paul Thurrott’s SuperSite for Windows — Zeldman Just Doesn’t Get It On IE 9</a></li>
<li><a href="http://pacoup.com/2010/03/16/seriously-zeldman-how-can-you-get-ie-9-so-badly/" target="_blank">Pacoup.com — Seriously Zeldman, how can you get IE 9 so badly?</a></li>
<li><a href="http://www.electronista.com/articles/10/03/16/internet.explorer.tech.adds.hardware/" target="_blank">Electronista — IE9 preview finally gives Microsoft HTML5 support</a></li>
<li><a href="http://www.computerworld.com/s/article/9171338/Microsoft_unveils_IE9_public_preview" target="_blank">Computerworld — Microsoft unveils IE9 public preview</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/internet-explorer-nein/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Enabling Twitter avatars within BuddyPress</title>
		<link>http://deanjrobinson.com/article/enabling-twitter-avatars-within-buddypress/</link>
		<comments>http://deanjrobinson.com/article/enabling-twitter-avatars-within-buddypress/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 09:58:44 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[buddypress]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[twit connect]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=1219</guid>
		<description><![CDATA[First up, the first step in this process is to install the <a href="http://wordpress.org/extend/plugins/twitconnect/" target="_blank">Twit Connect plugin</a> which you can do by following <a href="http://www.wpin.me/adding-sign-in-with-twitter-to-a-buddypress-site/" target="_blank">these instructions</a>, then you can proceed with enabling Twitter avatars.]]></description>
			<content:encoded><![CDATA[<p class="hideme">First up, the first step in this process is to install the Twit Connect plugin which you can do by following <a href="http://www.wpin.me/adding-sign-in-with-twitter-to-a-buddypress-site/" target="_blank">these instructions</a>, then you can proceed with enabling Twitter avatars.</p>
<p>This is just a quick filter that I wrote while I was setting up <a href="http://help.deanjrobinson.com" target="_blank">help.deanjrobinson.com</a> last week after I discovered that the twitter avatars weren’t working because of a different function/filter being used by BuddyPress.</p>
<p>I make no claims that this additional function is perfect, but I haven’t come across any problems with it yet, and I only knocked it together quickly. If you find anything wrong with it, or have any suggestions as to how it could be improved/simplified please let me know.</p>
<p>This new function based on one of the original functions that comes with the Twit Connect plugin which enables twitter avatars on regular WordPress blogs, just a with a few tweaks.</p>
<p>What you need to do is add the following code to the <code>functions.php</code> in your current BuddyPress theme. You can download a plain text copy of this function <a href="http://deanjrobinson.com/wp-content/uploads/other/function.bp_twc_get_avatar.txt" target="_blank">here</a> (it’ll probably more reliable than copy-and-pasting from this page). <strong>Remember to backup your functions.php file before making any changes… just in case.</strong></p>
<p><strong>UPDATE:</strong> Appears some people who added this function the <code>functions.php</code> file in the default BuddyPress theme were seeing some error messages (I have not yet been able to recreate this error, but more than one user has reported it). Ideally you shouldn’t be modifying the default BP theme directly, you should be doing it via a child theme (<a href="http://codex.buddypress.org/how-to-guides/building-a-buddypress-child-theme/" target="_blank">find out how</a>), so this code should be then added to the <code>functions.php</code> in your <strong>child</strong> theme.</p>
<p><strong>7th March, UPDATE</strong> I’ve updated the function below (and the downloadable version above) to use <a href="http://tweetimag.es" target="_blank">http://tweetimag.es</a> for the static twitter avatar URLs, it looks like it might a more reliable/consistent service.</strong></p>
<pre class="code">&lt;?php

 function bp_twc_get_avatar($avatar, $id_or_email=&#x27;&#x27;) {
  global $comment, $twc_user_login_suffix;

  if(is_object($comment)) {
   $user_id = $comment-&gt;user_id;
  }

  if (is_object($id_or_email)) {
   $user_id = $id_or_email-&gt;user_id;
  }

  if (is_array($id_or_email)) {
   if ($id_or_email[&#x27;object&#x27;]==&#x27;user&#x27;) {
    $user_id = $id_or_email[&#x27;item_id&#x27;];
   }
  }

  if (get_usermeta($user_id, &#x27;twcid&#x27;)) {
   $user_info = get_userdata($user_id);
   $twav_suffix = &#x27;&#x27;;

   if ( $id_or_email[&#x27;width&#x27;] ) {
    $twav_size = $id_or_email[&#x27;width&#x27;];
    if( $twav_size &lt; 32 ) {
     $twav_suffix = &#x27;m&#x27;;
    } else if ( $twav_suffix &lt; 64 ) {
     $twav_suffix = &#x27;n&#x27;;
    } else {
     $twav_suffix = &#x27;b&#x27;;
    }
   } else if ( &#x27;full&#x27; == $id_or_email[&#x27;type&#x27;] ) {
    $twav_size = BP_AVATAR_FULL_WIDTH;
    $twav_suffix = &#x27;b&#x27;;
   } else if ( &#x27;thumb&#x27; == $id_or_email[&#x27;type&#x27;] ) {
    $twav_size = BP_AVATAR_THUMB_WIDTH;
    $twav_suffix = &#x27;n&#x27;;
   }

   $out = &#x27;http://img.tweetimag.es/i/&#x27;. str_replace($twc_user_login_suffix,&quot;&quot;,$user_info-&gt;user_login) . &#x27;_&#x27; .$twav_suffix;

   $avatar = &quot;&lt;img alt=&#x27;Twitter Avatar&#x27; src=&#x27;{$out}&#x27; class=&#x27;avatar avatar-{$twav_size}&#x27; height=&#x27;{$twav_size}&#x27; width=&#x27;{$twav_size}&#x27; /&gt;&quot;;
   return $avatar;

  } else {
   return $avatar;
  }

 }

 // Check if Twit Connect exists (since its without it this function is pointless)
 if( function_exists( &#x27;twit_connect&#x27; ) ) {

  add_filter( &#x27;bp_core_fetch_avatar&#x27;, &#x27;bp_twc_get_avatar&#x27;,10,4);

 }

?&gt;</pre>
<p><a href="#show-original-version" onclick="javascript:document.getElementById('bp-twc-av-orig').style.display='block';">Show me the original version</a></p>
<div id="bp-twc-av-orig" style="display:none;">
<a href="#hide-original-version" onclick="javascript:document.getElementById('bp-twc-av-orig').style.display='none';">Hide this version</a></p>
<p>Original plain text version can be downloaded here: <a href="http://deanjrobinson.com/wp-content/uploads/other/function.bp_twc_get_avatar.original.txt" target="_blank">here</a></p>
<pre class="code">&lt;?php

 function bp_twc_get_avatar($avatar, $id_or_email=&#x27;&#x27;) {
  global $comment, $twc_user_login_suffix;

  if(is_object($comment)) {
   $user_id = $comment-&gt;user_id;
  }

  if (is_object($id_or_email)) {
   $user_id = $id_or_email-&gt;user_id;
  }

  if (is_array($id_or_email)) {
   if ($id_or_email[&#x27;object&#x27;]==&#x27;user&#x27;) {
    $user_id = $id_or_email[&#x27;item_id&#x27;];
   }
  }

  if (get_usermeta($user_id, &#x27;twcid&#x27;)) {
   $user_info = get_userdata($user_id);
   $twav_suffix = &#x27;&#x27;;

   if ( $id_or_email[&#x27;width&#x27;] ) {
    $twav_size = $id_or_email[&#x27;width&#x27;];
    if( $twav_size &lt; 32 ) {
     $twav_suffix = &#x27;/mini&#x27;;
    } else if ( $twav_suffix &lt; 64 ) {
     $twav_suffix = &#x27;&#x27;;
    } else {
     $twav_suffix = &#x27;/bigger&#x27;;
    }
   } else if ( &#x27;full&#x27; == $id_or_email[&#x27;type&#x27;] ) {
    $twav_size = BP_AVATAR_FULL_WIDTH;
    $twav_suffix = &#x27;/bigger&#x27;;
   } else if ( &#x27;thumb&#x27; == $id_or_email[&#x27;type&#x27;] ) {
    $twav_size = BP_AVATAR_THUMB_WIDTH;
   }

   $out = &#x27;http://purl.org/net/spiurl/&#x27;. str_replace($twc_user_login_suffix,&quot;&quot;,$user_info-&gt;user_login) . $twav_suffix;

   $avatar = &quot;&lt;img alt=&#x27;Twitter Avatar&#x27; src=&#x27;{$out}&#x27; class=&#x27;avatar avatar-{$twav_size}&#x27; height=&#x27;{$twav_size}&#x27; width=&#x27;{$twav_size}&#x27; /&gt;&quot;;
   return $avatar;

  } else {
   return $avatar;
  }

 }

 // Check if Twit Connect exists (since its without it this function is pointless)
 if( function_exists( &#x27;twit_connect&#x27; ) ) {

  add_filter( &#x27;bp_core_fetch_avatar&#x27;, &#x27;bp_twc_get_avatar&#x27;,10,4);

 }

?&gt;</pre>
</div>
<p>I will add an explanation of what its doing if people are interested/curious.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/enabling-twitter-avatars-within-buddypress/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Want Help? Come get some!</title>
		<link>http://deanjrobinson.com/article/want-help-come-get-some/</link>
		<comments>http://deanjrobinson.com/article/want-help-come-get-some/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 02:37:22 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[buddypress]]></category>
		<category><![CDATA[forum]]></category>
		<category><![CDATA[help]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[support]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=1201</guid>
		<description><![CDATA[I've grown tired of doing support via blog comments or emails, so it's time for a change. Introducing <a href="http://help.deanjrobinson.com" target="_blank">HELP!</a> my new BuddyPress powered support site. You can now get support for all my WordPress plugins and themes, plus Hahlo, nextga.me (once its finished....) and other projects all in one spot.]]></description>
			<content:encoded><![CDATA[<p class="hideme">I’ve grown tired of doing support via blog comments or emails, so it’s time for a change. Introducing <a href="http://help.deanjrobinson.com" target="_blank">HELP!</a> my new BuddyPress powered support site. You can now get support for all my WordPress plugins and themes, plus Hahlo, nextga.me (once its finished.…) and other projects all in one spot.</p>
<p><a href="http://help.deanjrobinson.com" target="_blank" style="background-color:#FFC;display:block;padding:20px;-moz-border-radius:6px;-webkit-border-radius:6px;"><img src="http://help.deanjrobinson.com/wp-content/themes/djr-help/img/help_logo.png" alt="Want Help? Come get some!" /></a></p>
<p>In the past I’ve had trouble finding a “good” solution for support. I’ve tried various forum packages, with each being abandoned because they were either insufficient or superfluous to my needs… that and every forum I’ve run has been hit by low-life spammers selling v1agr4 or offering to transfer $99,000,000,000 to me from their Nigerian bank account.</p>
<p>Following these ‘failures’ I tried hosted solutions like GetSatisfaction and UserVoice, again they didn’t really meet my needs, and I found that I was still left fielding support questions in blog comments and via email. In the case of support for Hahlo I stuck pretty strongly to GetSatisfaction (even if I didn’t check it as often as I probably should have). Recently GetSatisfaction have announced changes to their pricing plans, which ultimately means the free account (which I’ve been using) would appear that its losing a bunch of the more useful features. I should clarify that this change isn’t the only reason I’m moving away from GetSatisfaction, the main reason is that I wanted something I had more control over, and that I could also use for supporting my WordPress Plugins and Themes etc.</p>
<p><span id="more-1201"></span><br />
<h3>Enter BuddyPress</h3>
<p>Then I started reading about BuddyPress following its 1.2 release. I’d played the really early beta releases and liked the idea, I just didn’t like the requirement that it needed WordPressMU to run. Well, that’s been solved with v1.2, and its great. Adding bbPress forums (which was what I really wanted) into your BuddyPress setup is also mind-bogglingly simple, and a heck of a lot less painful than it was in previous releases. The new default theme for BuddyPRess ain’t too shabby either. But, I digress, this isn’t a BuddyPress review.</p>
<p>So I’ve settled (for the time being) on BuddyPress for my support “solution”, and I’ve spent the last week or so fiddling around, tweaking (more than I’d originally planned) the default theme to match this blog, adding a custom homepage, and making a few plugins work the way I wanted. The important plugins were the ones I was going to use to let people signup/login, I didn’t want to force people to create *another* account, so I’ve added support for Facebook Connect, Twitter oAuth and Open ID. The plugins I’ve used needed a little tweaking to get working as I wanted, mainly the Twitter one which I needed to write a new filter for in order to get the avatars working (I might release this filter as a plugin for a plugin…)</p>
<h3>So, here’s the deal</h3>
<p>From here on, the place to get support will be <a href="http://help.deanjrobinson.com" target="_blank">help.deanjrobinson.com</a>, please don’t leave anymore questions as comments on random posts, or send them via email — its time to try and centralise and control this a bit better. </p>
<p>To begin with I’ve set up ‘groups’ for Hahlo, and each of the plugins and theme that are available on this site, and I’ll probably add a couple of more general ‘groups’ at some point for css and javascript questions which aren’t directly related to one of the other projects.</p>
<p>So, if you’ve emailed me recently, or left a comment and I haven’t replied that’s probably why, but your can now jump over to <a href="http://help.deanjrobinson.com" target="_blank">help.deanjrobinson.com</a> and start asking your questions.</p>
<p>…and there a few rules, but in general just don’t be a dick and you’ll be fine, remember I’m providing this support for free so keep that in mind. If you want to be a dick, that’s fine too, I’ll just ban you.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/want-help-come-get-some/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>So they called it the iPad.</title>
		<link>http://deanjrobinson.com/article/so-they-called-it-the-ipad/</link>
		<comments>http://deanjrobinson.com/article/so-they-called-it-the-ipad/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 11:10:13 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[new]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[tablet]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=1173</guid>
		<description><![CDATA[We've waited so long for it but in the end, and as cool as it is, if I find it just a little meh but at the same time I want one does that make me a bad person?]]></description>
			<content:encoded><![CDATA[<p><span class="hideme">We’ve waited so long for it but in the end, and as cool as it is, if I find it just a little meh but at the same time I want one does that make me a bad person? </span>Sure, I had hoped for something in-between the iPhone and a MacBook, in terms of size that is exactly what it is. But, I’ll be honest my first impression was that “it’s just a giant iPod Touch” (or iPod Touch 3GXL…)</p>
<p><img src="http://deanjrobinson.com/wp-content/uploads/2010/01/hardware-01-20100127-500x291.jpg" alt="" title="hardware-01-20100127" width="500" height="291" class="alignnone size-medium wp-image-1174" /></p>
<p>It is running what is basically the iPhone OS, with slightly bigger icons, and plenty of space between them on the home screen. I mean plenty. A small child could thump their paw down on the screen an only hit one app. It has the general iPhone feel (flick/pinch/swipe etc) to the interface, with the exception of the OS X style dock, also with really spaced out icons (I wonder how many you can actually put on it?).</p>
<style>
table.ggs-table {border-spacing:5px;}
table.ggs-table th {font-weight:bold;padding:3px;border-bottom:2px solid #ddd;}
table.ggs-table td {padding:3px;vertical-align:top;}
</style>
<table class="ggs-table">
<tr>
<th width="90">Great</th>
<th>Good</th>
<th width="150">So-So</th>
</tr>
<tr>
<td>Price point<br/>Design<br/>Speed<br/>No Flash</td>
<td>Delicious Library… err, I mean iBooks<br/>It runs iPhone apps (including those you already own)<br/>Tech specs — seem pretty good for the price<br/>Redesigned core apps<br/>Claimed battery life</td>
<td>The Bezel<br/>The way iPhone apps run<br/>No Camera<br/>Additional cost for 3G<br/>The name. iPad? hmm…</td>
</tr>
</table>
<p><span id="more-1173"></span></p>
<h3>The Name?</h3>
<p>Why iPad? Why Apple? Why? Why does its have to being with an ‘i’? Its very much got the appearance of a ‘pro’ product, what with its aluminium back and glass front, but the name ‘iPad’ doesn’t have anything ‘pro’ about it. Its too similar to ‘iPod’ for starters (maybe they chose it because the iPad is just a giant iPod). But tablet, slate or canvas, in my opinion, would have all been better.</p>
<p>Part of me wonders though when they decided on the name, a lot of rumours were around late last year referring to the device as the ‘slate’ or ‘iSlate’, and then CES rolled around and the HP ‘slate’ was shown off by that crazy bald dude from Microsoft. Was there a hasty rebranding of the, then unreleased, Apple product that we now know as the iPad? I guess we’ll never know.</p>
<h3>iPad Apps? There’s an iPhone app for that</h3>
<p>All the same apps that you get on the iPhone are there — Safari, mail, calendar, contacts, maps, YouTube, music, videos etc. They’ve apparently all been redeveloped specifically for the iPad’s larger screen (and they look hot), and its probably reasonable to assume that some of the smaller UI differences might make an appearance in iPhone 4.0 later in the year. It also runs all other iPhone apps (140,000+) by floating them in the middle of the screen, or upscaling them… hrm, a little dodgy but better than nothing. Oh and only one app a time…</p>
<p>Hopefully the iPad SDK will result in iPad specific version of all the good apps being released along side their iPhone counterparts. Personally I think an iPad version of The Hit List would work very nicely, but I guess we need to wait for the iPhone version to materialise. I’m being patient. Honest.</p>
<h3>Design</h3>
<p>I really quite like the design, its a bit iPhone and a bit MacBook Pro, and it looks great. The only thing I’m not so sure on is the massive bezel around the screen. I’m sure there are technical packaging reasons why this was necessary, but it makes the device seem considerably larger than it might have otherwise been. It might only be half an inch thick, but I would have no worry with that blowing out a slight fraction if it meant less bezel. Or they could keep it the same physical size and throw a bigger screen in, I don’t mind ;)</p>
<p>Gruber <a href="http://daringfireball.net/2010/01/ipad_big_picture" target="_blank">says</a> the wide bezel is so that you’ve got somewhere to rest your thumbs. Ok fair point, but how wide are some peoples thumbs that the bezel needs to be so large? (Yes I know my exceptionally narrow thumbs are the exception, not the rule, but still). Maybe the press images are deceptive (possible), but the bezel looks like it could be half the width and still leave plenty of room to rest your thumbs. But again, that’s just my opinion.</p>
<h3>No camera? really?</h3>
<p>I would have hoped for at least one (they’ve got plenty of room in that bezel), surely the camera component used above the MacBook Pro screens could have been squeezed in there somewhere. Then they could have added an iPad version of Photobooth, think of all the cool photo morphing fun that you could have had using an in-built camera and the iPad’s touch interface. Maybe we’ll see a camera in the next generation, I’m guessing there are quite a few things people would like to see in the next generation.</p>
<p>Although it would be nice if they’d put one in, the lack of a camera isn’t a deal breaker for me. Remember this is just the first generation iPad. After all the camera in the the first and second gen iPhones was pretty ordinary.</p>
<h3>Giant iPhone or keyboard-less netbook-sized MacBook?</h3>
<p>Or something else entirely? I think the intention is to target the netbook end of the market, but I think they’ve made it a little too iPhone-like, but again thats just my opinion. Don’t get me wrong, there is nothing wrong with the iPhone OS, its mostly great (lack of multi-tasking being a downer), it just looks a little weird on a much larger screen… maybe I just need time for it to grow on me.</p>
<p>A big benefit of being very iPhone-like is that the millions and millions of people who already own iPhones will already know how to use the iPad, which I’m guessing was a big motivating factor for Apple. Another completely different user experience would like scare a lot of people away.</p>
<h3>No Flash? Awesome.</h3>
<p>There a a lot of people complaining that the iPad doesn’t support Flash. I don’t really care. I hate Flash. It’s not Flash’s fault, its the fault of people who think that its justifiable to create entire websites in Flash. Flash advertising also annoys  the crap out of me, so browsing the net on the iPad would be good simply because all those annoying Flash banners won’t work. Yes, its moderately disappointing that the lack of Flash means that you can’t play ‘cool’ Flash games etc, but I can live with that.</p>
<p>I’ve seen a few people mention that the iPad should have Flash so that video services such as Hulu can be used on this fantastic new device. Firstly, we can’t use Hulu in Australia so I don’t care. Secondly, perhaps websites providing video services should start to move away from using Flash for their videos, or at least make an alternative available — like YouTube has done.</p>
<h3>Kindle-killer</h3>
<p>I’ve never used a kindle so I can’t really comment on whether the iPad will kill it, or by how much it will do so. But on the face of it the iPad does look like a solid competitor, especially given the amount of additional functionality that you get in addition to being a snazzy e-reader.</p>
<p>I’ve also only tried a couple of e-books on the iPhone, and I didn’t hate the experience, but it just seemed wierd on a device the size of that size. However, I can definitely see the experience being more likable on the iPad’s larger screen</p>
<h3>Tech specs</h3>
<p>Obviously I haven’t played with one yet, but from what people are saying the Apple A4 processor is really quick which is a good thing, and hopefully something that will flow over into the next-gen iPhone in a few months time. As far as connectivity goes it is equipped with WiFi (802.11 a/b/g/n), Bluetooth 2.1 and on the 3G model there is support for HSDPA and GSM/EDGE (data only, not calls).</p>
<p>The 9.7-inch (would it have killed them to go full 10-inch…) screen is 1024x768 pixels and sports 132 pixels per inch (ppi) which is a long way off the iPhone’s 163 ppi. If you’re interested, if the screen had the same pixel density as the iPhone it could have been 1260x950 pixels and iPad still would have been the same size (although probably more expensive).</p>
<p>Something I didn’t know is that the pixels per inch for the latest iMacs is apparently north of 200, putting both the iPhone and iPad to shame. At that ppi you’d nearly get a full widescreen HD display onto the iPad (it would obviously have to be slightly longer and narrower).</p>
<p>They’re even making a relatively wide range of storage sizes available, with 16, 32 or 64GB models available (both 3G and non-3G versions of each). I suspect that 128GB SSDs are still too pricey to make them worthwhile.</p>
<h3>iPad 3G</h3>
<p>The 3G model, which will come along a little while after the WiFi only version goes on sale, will use a mini-sim — which feels to me a little bit too much like they’ve made it different to the iPhone just so you can’t swap and change sim cards between the two easily. It also appears that the only real extra in the 3G model is 3G support (oh and ‘assisted GPS’), and yet it costs $130 extra — which in the case of the 16GB model a whopping 25% more than the non-3G version — and then you’re expected to pay for a monthly data contract as well.</p>
<p>My question is, that if I’m already paying $50 per month for my iPhone (including phone payments) on a plan that includes 500 MB of data per month, then why can’t get a second sim for this same account to go in my iPad so I can actually make use of the downloads I’m already paying for? According to the stats on my iPhone (which say they’ve never been reset) I’ve used just 637 MB in TOTAL since I got my iPhone 18 months ago. Surely there has to be someway they can make this happen. But then again mobile providers are evil.</p>
<h3>Good (slightly misleading) marketing</h3>
<p>If you watch the demo videos on apple.com, you probably noticed a couple of quotes when they are expressing how awesome they think the device is. “The best way to watch movies”, really? I’ve got a 40-inch HD digital TV that’s pretty good for that, not to mention the surround sound speakers I’ve got hooked up. And “with a screen this large you can just see more of the web”, again, really? So you’re saying that all this time I’ve been browsing the internet on my 24-inch Cinema Display with nearly 4x the pixels of the iPad that I’ve been missing bits of the web, wow, wish someone had told me sooner.…</p>
<h3>Verdict</h3>
<p>Do I want one, yeah I kind of do. The demonstration videos make me want one, even if I’m not sure I need one. I guess thats the point of the videos. In fact the more I simply read about it the more I want one.</p>
<p>Will I buy one? Maybe, it’ll depend on how much they end up costing down here, and when they’re available how much extra the 3G version will be. Also I’m planning on updating to the next-gen iPhone when they arrive so if it comes down to me having to choose one over the other I’ll probably go for the new iPhone, and hold out for the second gen iPad. Maybe, unless I change my mind. After all I never intended to get an iPhone either… and then I got up at 4 in the morning to get in the queue. Damn you Apple and your sexy products.</p>
<h3>One more thing</h3>
<p>If I do get one I want to be able to purchase a <a href="http://www.twelvesouth.com/" target="_blank">twelvesouth</a> iPad-sized ‘<a href="http://www.twelvesouth.com/products/bookbook/" target="_blank">BookBook</a>’ to put it in. So go over here: <a href="http://bit.ly/bNvTXK" target="_blank">http://bit.ly/bNvTXK</a> and let them know you’d like one too. Thx.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/so-they-called-it-the-ipad/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>To retweet or not to retweet</title>
		<link>http://deanjrobinson.com/article/to-retweet-or-not-to-retweet/</link>
		<comments>http://deanjrobinson.com/article/to-retweet-or-not-to-retweet/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 02:32:55 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[discussion]]></category>
		<category><![CDATA[hahlo]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[retweet]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=1161</guid>
		<description><![CDATA[Yesterday I launched Hahlo 4.1 and one of the changes was the switch from to old-style 'RT' retweets over to the new twitter retweet api. Unfortunately this seems to have upset a few people, not necessarily because I've added support for the new api but because I chose not to maintain the old-style RTs as well. This is a tale of why.]]></description>
			<content:encoded><![CDATA[<p class="hideme">Yesterday I launched Hahlo 4.1 and one of the changes was the switch from to old-style ‘RT’ retweets over to the new twitter retweet api. Unfortunately this seems to have upset a few people, not necessarily because I’ve added support for the new api but because I chose not to maintain the old-style RTs as well. This is a tale of why.</p>
<p><img src="http://deanjrobinson.com/wp-content/uploads/2009/12/rtgoodvevil.png" alt="To retweet or not to retweet - a tale of good vs. evil"/></p>
<p>Keep in mind this falls into the category of “people can use twitter however the hell they want”, you’re allowed to disagree, just don’t be a knob about it.</p>
<h3>The Hahlo side of the things</h3>
<p>Hahlo is about moving forward, not backwards, if I were not interested in keeping up with the new feature additions to twitter (and the api) then Hahlo probably wouldn’t still be in active development. Also maintaining two different methods for retweeting means more work on my side making sure they both continue working, having an ‘RT’ button which performs different functions for different people is not only illogical, but would very quickly become a pain to support. Also, please remember I don’t get paid anything to work on or support Hahlo, I do that because I’m a nice guy.</p>
<h3>The twitter side of things</h3>
<p>Those who’ve used Hahlo will see that I’ve tried to match the same ‘flow’ as on twitter.com. For example, you click ‘retweet’ and you’re asked to confirm that you’d like to retweet this tweet to your followers. Not everyone likes the new-style retweets, but then not everyone like change. But changes happens, deal with it.</p>
<p><a href="http://evhead.com/2009/11/why-retweet-works-way-it-does.html" target="_blank">Evan Williams wrote a great post</a> on why retweets work the way that they work on twitter.com, if you haven’t read it I strongly suggest you do.</p>
<h3>The “retweets annoy me” side of things</h3>
<p>There is a reason I never added retweets to Hahlo prior to version 4, I don’t (or didn’t to be more precise) like them. And then when I did add them, I also added an ‘hide all retweets’ option. This is why, and if you disagree (likely) I’d like to hear (constructively) why that is. Lets try a common example to illustrate my point.</p>
<p><span id="more-1161"></span></p>
<p>Lets say I follow ‘Joe Smith’, ‘Tom Johnson’, ‘Harry Williams’ and the company they work for ‘Globoawesome Solutions’.</p>
<p>‘Globoawesome Solutions’ tweets:</p>
<blockquote><p><strong>globoawesome</strong>: Check this out, we just won an award http://bit.ly/weareawesome</p></blockquote>
<p>I see this tweet because I follow ‘Globoawesome Solutions’. This is fine.</p>
<p>Because Joe, Tom and Harry love the company they work for, and are proud that they won an award so they retweet the original tweet.</p>
<blockquote><p><strong>joeman77</strong>: RT @globoawesome Check this out, we just won an award http://bit.ly/weareawesome</p></blockquote>
<blockquote><p><strong>tomlovesdogs</strong>: Check this out, we just won an award http://bit.ly/weareawesome (via @globoawesome)</p></blockquote>
<blockquote><p><strong>harrywho</strong>: Oh man we’re fully awesome. RT @globoawesome Check this out, we just won an award http://bit.ly/weareawesome</p></blockquote>
<p>Now, because I also follow Joe, Tom and Harry I also see these three tweets. This is not fine. This is a pain. To be clear I would not have problem (or not as big a one) if they had each tweeted the link with their own thoughts eg.</p>
<blockquote><p><strong>tomlovesdogs</strong>: My employers Globoawesome Solutions just won an award, check it out -&gt; http://bit.ly/weareawesome</p></blockquote>
<p>This scenario is annoying because it really happens.</p>
<p>This is the first reason that the “new-style” retweets are better, because if Joe, Tom and Harry all retweet the original tweet I don’t have to see it another 3 times.</p>
<p>A similar problem arises when you follow two or three (or more) people who seem to endless retweet each other so much you begin to wonder if they’re the same person.</p>
<p>My understanding of how the new retweets behave better in this situation, and when they’ll appear in your timelines.</p>
<ul>
<li>If you follow ‘User A’ and ‘User B’, and ‘User A’ retweets ‘User B’ you WON’T see the retweet because you’ll see the original.</li>
<li>If you follow ‘User A’ but NOT ‘User B’, and ‘User A’ retweets ‘User B’ you will see the retweet unless you’ve blocked retweets from ‘User A’.</li>
</ul>
<h3>Annoyance number two.</h3>
<p>We only get 140 characters to play with. If I tweet something and its 138 characters long, the person X retweets it in the old-style then they have to shorten/edit/change my original tweet, potentially changing its meaning/intention/purpose. How times have you seen something like this:</p>
<blockquote><p><strong>captnawesome</strong>: RT @foobar RT @jellydonuts We’ve got a super special on awesome jelly donuts happening right now, pls RT (via @donutman65) (via @steve)</p></blockquote>
<p>There’s a high chance there could have a been a link pointing to said jelly donuts in the original tweet, but you’d never know now that it has little to no context remaining (apart from that we now know that captnawesome, fooba and steve all like jelly donuts — and/or spam)</p>
<h3>Third times a charm</h3>
<p>Until recently twitter was ‘asking’ “What are you doing?” (they’ve now changed it to a slightly more generic “What’s happening?”). The point is, that it was what are YOU doing, not “What is the linux fanboy you follow doing?”. If I really want to know what the linux fanboy is doing, I’ll follow them.</p>
<h3>Old-style retweets are the spam/telemarketers of the twittersphere</h3>
<p>Every time you add something like “pls RT or kittens will die” (or something to that effect) real kittens actually die, seriously, they’re dead. I don’t really care how awesome you think you’re new flash game is, don’t ask people to spam their followers by retweeting your dribble. Even charities, who are arguably the only groups that should be allowed to ask for an RT in the first place, shouldn’t do it. If awareness for the charity is deserved then people will likely tweet about it anyway, without you begging them to.</p>
<p>I hang up on telemarketers. I also block people who post endless amounts of crap to twitter, this is crap that they usually retweet from elsewhere. I’ve also started block (and report as spam) people who send direct message spam, or “thanks for following” messages to me after I’ve followed them because they were already following me, but thats another argument altogether.</p>
<h3>RT via cc goo goo ga ga</h3>
<p>There was a discussion a while back about the difference between ‘RT’ and ‘via’ two of most commonly used old-style retweeting syntax, I think it was <a href="http://twitter.com/maxvoltar" target="_blank">@maxvoltar</a> but can’t remember for sure (feel free to correct me). The conclusion was something like this:</p>
<ul>
<li>RT = word-for-word copy of someone else’s tweet</li>
<li>via = usually a link or thought from someone else but as part of your tweet</li>
</ul>
<p>Think of it this way. RT = plagiarism. via = referenced source material.</p>
<h3>But, but, but, I want to add a comment to my RT</h3>
<p>Then its not a retweet. It’s a tweet mentioning something someone else already tweeted.</p>
<p>Maybe if twitter <a href="http://hastwitterfixedrepliesyet.com/" target="_blank">fixed replies</a> then people could just @reply to the tweet they wanted to comment on, this would keep context, keep it in the conversation chain, and still allow only those who actually wanted to see your additional witty comment to see it. (Remember you used to have the option to see all the @replies/mentions that those you follow posted instead of just the ones directed at other people you already follow).</p>
<h3>But I can’t pad out my tweet count if I have to think of them all myself</h3>
<p>I strongly believe there are people out there who were retweeting like crazy just to pad out their total tweet count, almost as if it was going to make them more important or something. From what I can tell the new retweets don’t count towards your tweet count, which is great. What will be even great is when a ‘retweet counter’ is added, because I’m sure we’re going to spot a few people who retweet more than they actually tweet themselves.</p>
<p>Of course, then we just have to work out what to do about people who feel the need to post every flicker photo, delicious bookmark, blog post, aim status change and bowel movement to twitter. Their time will come.</p>
<h3>Conclusion</h3>
<p>Old-style = Bad. New-style = Good.</p>
<p>Change within the twittersphere is good, just think, without change you would not have @mentions, #hashtags, lists, search, saved searches, geolocation or just about any of the other cool things that you now take for granted.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/to-retweet-or-not-to-retweet/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>New WordPress theme: Dear Diary</title>
		<link>http://deanjrobinson.com/article/new-wordpress-theme-dear-diary/</link>
		<comments>http://deanjrobinson.com/article/new-wordpress-theme-dear-diary/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 06:57:54 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[dear diary]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=631</guid>
		<description><![CDATA[Dear Diary is a super simplistic theme for WordPress. It is best suited to a basic journal or diary where content is king and the theme should stay mostly out of your way.]]></description>
			<content:encoded><![CDATA[<p class="hideme">Dear Diary is a super simplistic theme for WordPress. It is best suited to a basic journal or diary where content is king and the theme should stay mostly out of your way.</p>
<p><img src="http://deanjrobinson.com/wp-content/uploads/2009/10/deardiaryheader.gif" alt="deardiaryheader" title="deardiaryheader" width="500" height="100" class="alignnone size-full wp-image-628" /></p>
<h3>What’s it great for?</h3>
<p>With its ruled-notepad styling Dear Diary is perfect for a simple online journal or diary. Of course you can still posts images and videos etc, but simple text is what Dear Diary does best. You can check out a full live preview <a href="http://wp-themes.com/dear-diary/" target="_blank">here</a>.</p>
<p><span id="more-631"></span><br />
<h3>Features</h3>
<ul>
<li>Default sidebar contains page menu and blog archive (months)</li>
<li>Support for sidebar widgets (note not all widgets will work nicely with this theme.)</li>
<li>Custom archives page, just create a page and select the ‘Archives’ template.</li>
<li>Search box hidden in the page header. Hover over the header to reveal the ‘Search for posts’ link, click it to reveal the search form.</li>
<li>Support for threaded comments and replies. Including Gravatars.</li>
</ul>
<h3>Where do I get it?</h3>
<p>Dear Diary is available from the WordPress.org <a href="http://wordpress.org/extend/themes/dear-diary" target="_blank">theme directory</a> which means you can also install it directly from your blog just by visiting the ‘Appearance &gt; Add new themes’ page and searching for Dear Diary. You can also download it using the link at the top right-hand corner of this page.</p>
<p>For more info you can jump over to the <a href="http://deanjrobinson.com/projects/dear-diary/">project page</a>, or it you just want to download it then head straight to the <a href="http://wordpress.org/extend/themes/dear-diary" target="_blank">WordPress theme directory</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/new-wordpress-theme-dear-diary/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introducing WPAPI.ORG</title>
		<link>http://deanjrobinson.com/article/introducing-wpapi-org/</link>
		<comments>http://deanjrobinson.com/article/introducing-wpapi-org/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 14:45:39 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wpapi]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=610</guid>
		<description><![CDATA[Ok, so I actually launched this last weekend, but I'm only just now getting around to writing (briefly) about it. WP<small>API.ORG</small> is a super easy to use API which you can use to retrieve stats for all those great plugins and themes that you've got hosted on WordPress.org. Why would you want to do this?]]></description>
			<content:encoded><![CDATA[<p class="hideme">Ok, so I actually launched this last weekend, but I’m only just now getting around to writing (briefly) about it. <a href="http://wpapi.org" target="_blank">WP<small>API.ORG</small></a> is a super easy to use API which you can use to retrieve stats for all those great plugins and themes that you’ve got hosted on WordPress.org. Why would you want to do this?</p>
<p><a href="http://wpapi.org" target="_blank"><img src="http://deanjrobinson.com/wp-content/uploads/2009/10/wpapi-1.png" alt="WPapi.org" title="WPapi.org" width="500" height="150" class="alignnone size-full wp-image-611" /></a></p>
<h3>Why did I build this thing?</h3>
<p>Because I could. No, seriously, the reason that I’ve built this (and made it available to everyone else) is that I was looking for ways to pull back the stats from WordPress.org and display them on the project pages here on my site, maybe even with some sexy graphs using something like <a href="http://raphaeljs.com" target="_blank">Raphaël JS</a>. After some investigation I found the xml feed that powers the graphs on WordPress.org, but that didn’t really help me. What I really wanted was JSON.</p>
<p><span id="more-610"></span></p>
<h3>How’s it work?</h3>
<p>Well it uses the previously mention xml feed from WordPress.org and caches that on my server, then depending on the URL you request it returns either xml, json, jsonp (with custom callback), serialised php string or csv. For example, together with jQuery you could use the jsonp format to do something cool (like graphs)…</p>
<pre class="code">
$.getJSON("http://wpapi.org/api/plugin/fluency-admin.jsonp?callback=?", function(data){
  $.each(data.stats, function(date,downloads){
    // do something cool here...
  });
});
</pre>
<p>For more info on the different output formats along with some examples of the responses you can expect from each head over to <a href="http://wpapi.org" target="_blank">WP<small>API.ORG</small></a></p>
<p><a href="http://wpapi.org" target="_blank"><img src="http://deanjrobinson.com/wp-content/uploads/2009/10/WPAPIorg-500x593.jpg" alt="WPapi.org homepage" title="WPapi.org homepage" width="500" height="593" class="alignnone size-medium wp-image-612" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/introducing-wpapi-org/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone horizontal home screen</title>
		<link>http://deanjrobinson.com/article/iphone-horizontal-home-screen/</link>
		<comments>http://deanjrobinson.com/article/iphone-horizontal-home-screen/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 08:26:34 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[concept]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mockup]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=594</guid>
		<description><![CDATA[Why can't my iPhone do this? Apple has has horizontal modes in some (but annoyingly not all) core apps, so why can't they add it to the home screen as well?]]></description>
			<content:encoded><![CDATA[<p class="image"><a href="http://deanjrobinson.com/wp-content/uploads/2009/09/iphone-horizontal-homescreen.png"><img src="http://deanjrobinson.com/wp-content/uploads/2009/09/iphone-horizontal-homescreen-500x306.png" alt="iPhone horizontal home screen concept" title="iPhone horizontal home screen concept" width="500" height="306" /></a></p>
<p>Why can’t my iPhone do this? Apple has horizontal modes in some (but annoyingly not all) core apps, so why can’t they add it to the home screen as well? It wouldn’t necessarily have to be just like my mockup, which fits an additional 4 apps and drops the text labels (could get them to fit nicely), instead each individual icon could just swivel 90 degree left or right so they are the right way up when you’re looking at them. In horizontal mode you might also flick through your various home screens by scrolling up and down instead of left and right.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/iphone-horizontal-home-screen/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Heroes out for redemption</title>
		<link>http://deanjrobinson.com/article/heroes-out-for-redemption/</link>
		<comments>http://deanjrobinson.com/article/heroes-out-for-redemption/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 08:48:12 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[entertainment]]></category>
		<category><![CDATA[heroes]]></category>
		<category><![CDATA[tv]]></category>
		<category><![CDATA[tveet]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=1273</guid>
		<description><![CDATA[It was the series return that I was least excited for, and apparently everyone else felt the same. Ratings for the premiere were 46% lower than they were for the season 3 premiere last year. In comparison, House which premiered on the same night rose 16%. So, Heroes Redemption, the season title really does have a double meaning, yes this season is supposedly about the characters and their quest for redemption, but the series is in some serious need of redemption itself.]]></description>
			<content:encoded><![CDATA[<p style="border:1px solid #0FF;background:#CFF;-moz-border-radius:6px;-webkit-border-radius:6px;padding:6px 10px;">This article was originally posted on a previous incarnation of <a href="http://tveet.com">tveet.com</a>, and is now being archived here so as not to disappear completely into the ether.</p>
<p class="hideme">It was the series return that I was least excited for, and apparently everyone else felt the same. Ratings for the premiere were 46% lower than they were for the season 3 premiere last year. In comparison, House which premiered on the same night rose 14%. So, Heroes Redemption, the season title really does have a double meaning, yes this season is supposedly about the characters and their quest for redemption, but the series is in some serious need of redemption itself.</p>
<p>The overall feeling of the two hour premiere was very much about starting over, and I seem to recall this being mentioned at the Heroes Comic-Con panel. Its almost as if they are trying to forget the majority of the past two seasons…gee why would they want to do that. Oh I know why, because they were mostly rubbish.</p>
<p>But while starting over may not be a terrible idea, its only going to end badly if they make the same stupid mistakes for a 5th time. Test number one. Show a fight sequence. Check. Holy shit, they actually showed two ‘heroes’ use their superpowers against each other. It’ll never make up for the battles they haven’t shown, but thank god they didn’t hide it behind big closed doors.</p>
<p>Test number two. Make Claire less annoying. Meh, not quite. We get it, we ‘got’ it three years ago, Claire just wants to be normal. Here’s the catch Claire, you can get shot, fall from a building and get crushed by a train, but you can’t die. You are not ‘normal’. As other reviews have mentioned, and its been teased in some of the promos, it looks like Claire’s ‘purpose’ in the story line is to introduce some lesbianism. The writers are clearly very desperate for people to watch, and willing to try anything.</p>
<p>Bring back the good ol’ Sylar. Test number three. Maybe we’ll see him, maybe we won’t. With Sylar’s body now being used as transport for a copy of Nathan’s brain, we’re only getting to really see Sylar from Parkman’s point-of-view. Sylar is inside Parkman’s head, taunting him to start using his powers again. No doubt they’re are going to drag this out for as long as possible, because while-ever Slyar is not Sylar, but Sylar is Nathan, than Nathan isn’t dead and they have another character to work with.</p>
<p>However, this series is all about redemption, and Hiro’s quest appears to be going back and ‘fixing’ things he stuffed up. Yes, Hiro’s getting his time travel on again, even if he’s not sure how he’s doing it. He’s already been back, and with the persuasion of newcomer Samuel, and ‘fixed’ the moment in time where his sister started hating Ando. What’s to stop him time jumping to a point and whatever change he makes results in Nathan not dying, and thus Sylar not becoming Nathan. If the writers are attached Nathan’s character, then there’s probably a decent chance of this happening.</p>
<p>Mrs Petrelli is focused on rebuilding the company (oh yay…) with the help of Noah Bennett. Danko is searching for Tracey, who in turn is hunting down and killing people herself with both Bennett and Danko on her list. With the help of the Haitian, Bennett stops Danko from hunting down Tracey is trade for Tracey’s trust. Although new boy Edgar makes sure that doesn’t really matter anyway when he slices and dices.</p>
<p>Lastly give Peter his powers back. All of them. When Peter was ‘full charged’ there was the opportunity for some decent action, then the writers go and take all of them away. WTF guys, which idiot convinced you to do that. Now Peter is back working as a paramedic, making use of the strength and agility powers he absorbed from Mohinder to save lives instead of endangering them. I like this, makes a nice change from grumpy Peter. Although as he seems overly dedicated to saving lives I can only see it ending badly.</p>
<p>The question is though, is Peter still a “one power at a time” kind of guy or has he returned to being jack of all trades. We’ve seen him steal another power, so he can still do that, but now that he’s got superspeed, does he still have his agility and strength. My guess is, unfortunately, no.</p>
<p>So, I guess that wasn’t really a ‘review’ as such, more a recap of what was going through my head as I sat through two hours of meh. Dear Heroes, please improve. Thanks.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/heroes-out-for-redemption/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fluency 2.1 now available</title>
		<link>http://deanjrobinson.com/article/fluency-2-1-now-available/</link>
		<comments>http://deanjrobinson.com/article/fluency-2-1-now-available/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 08:16:07 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[fluency]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=584</guid>
		<description><![CDATA[It's been a while between updates, mostly due to the time spent working on getting <a href="http://hahlo.com">Hahlo4</a> finished, but with that out of the way it was time to update Fluency to work with the latest version of WordPress. The big news is that Fluency is now hosted in the WordPress plugins directory, meaning that you will be able to use the built-in plugin installer, and auto update features in WordPress when new version are released.]]></description>
			<content:encoded><![CDATA[<p><img src="http://deanjrobinson.com/wp-content/uploads/2009/09/f21banner.jpg" alt="Fluency 2.1 now available"/></p>
<p class="hideme">It’s been a while between updates, mostly due to the time spent working on getting <a href="http://hahlo.com">Hahlo4</a> finished, but with that out of the way it was time to update Fluency to work with the latest version of WordPress. The big news is that Fluency is now hosted in the WordPress plugins directory, meaning that you will be able to use the built-in plugin installer, and auto update features in WordPress when new version are released.</p>
<p>You can get more details, and grab Fluency 2.1 from the WordPress plugin directory <a href="http://wordpress.org/extend/plugins/fluency-admin/" target="_blank">here.</a></p>
<h3>New features</h3>
<p>There aren’t mountains of new features but there a couple worth mentioning. I’ve added a ‘Fluency Options’ page, which can be found under the ‘Settings’ menu, there are just two options for the moment. Both were requests from users, you can disable the Fluency style on the login page, and you can also specify a custom logo to be displayed on the login page (this works with the Fluency login style turned on or off)</p>
<p>For few versions now WordPress has come with two default admin color schemes, but up until now Fluency has only had a grey-based scheme. I’ve now added full support for a Classic/Blue color scheme, based on whichever color scheme you have selected in you user profile on your blog.</p>
<p><span id="more-584"></span><a href="http://www.flickr.com/photos/deanjrobinson/3935692873/"><img src="http://farm3.static.flickr.com/2629/3935692873_c9039dc69d_m.jpg" alt="Default grey theme" /></a>  <a href="http://www.flickr.com/photos/deanjrobinson/3935691673/"><img src="http://farm3.static.flickr.com/2463/3935691673_f8e3dba49d_m.jpg" alt="Classic/Blue theme" /></a></p>
<p>With the new admin interface in WP2.7 a collapsible menu was introduced allowing you to ‘minimize’ the menu to just show the icons for the various top level items. I’ve now added support for this back into Fluency 2.1 and the collapsed menu should function as it does in the default admin.</p>
<h3>Bug fixes</h3>
<p>I’ve fixed a few bugs in the hover menu code, so it should behave better when you have lots of items in your settings submenu. I’ve also tweaked the hot keys support so that you can access more than just the first 9 items in a submenu.</p>
<p>If you find a bug, please let me know, and if possible provide steps which can be used to reproduce the problem.</p>
<p>Please see the <a href="http://deanjrobinson.com/projects/fluency-admin/">Fluency page</a> for more details about updated plugin support, info on what browsers are supported and additional screenshots.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/fluency-2-1-now-available/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>What is in the Warehouse?</title>
		<link>http://deanjrobinson.com/article/what-is-in-the-warehouse/</link>
		<comments>http://deanjrobinson.com/article/what-is-in-the-warehouse/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 13:21:46 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[entertainment]]></category>
		<category><![CDATA[tv]]></category>
		<category><![CDATA[tveet]]></category>
		<category><![CDATA[warehouse 13]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=1270</guid>
		<description><![CDATA[Still a good 5 or 6 weeks away from anything decent returning to our screens I've gone in search of something (anything) to watch. I'd seen mention of Warehouse 13 when it first started, but decided to give it a miss as I "didn't want another show to watch". Well, that was then, now I'm on holidays, and I've got lots of mental detox time booked out in front of my television with nothing to watch... so I thought I'd give it a try.]]></description>
			<content:encoded><![CDATA[<p style="border:1px solid #0FF;background:#CFF;-moz-border-radius:6px;-webkit-border-radius:6px;padding:6px 10px;">This article was originally posted on a previous incarnation of <a href="http://tveet.com">tveet.com</a>, and is now being archived here so as not to disappear completely into the ether.</p>
<p class="hideme">Still a good 5 or 6 weeks away from anything decent returning to our screens I’ve gone in search of something (anything) to watch. I’d seen mention of Warehouse 13 when it first started, but decided to give it a miss as I “didn’t want another show to watch”. Well, that was then, now I’m on holidays, and I’ve got lots of mental detox time booked out in front of my television with nothing to watch… so I thought I’d give it a try.</p>
<p>I’ve sat through the first three episodes, and yet nothing has really caught my interest. The concept is fine, don’t really have any problems with that, but the execution of said concept is, well, a little limp. If you’d prefer to not know what things you’re (not) missing out on maybe skip the next paragraph or four.</p>
<p>The pilot starts off an these two agents save the day (and the President) by stopping some dude who’s become possessed by some ancient stone head (which was also oozing blood at one point). Ok, that wasn’t too bad, after all they were only setting up the basics. These agents then get “recruited” for a special project which involves them working at Warehouse 13 out in the middle of the desert.</p>
<p>The Warehouse is said to store things that possess ‘magic’ powers of one description of another, and they are kept in Warehouse 13 to keep the world safe. Some of these things belonged to people like Tesla and Edison, and others to people like Houdini. So you would imagine there are all sorts of weird and wonderful things lurking in this massive building, right?</p>
<p>Then we get to the second half of the two hour pilot and the newly recruited agents are sent on their first “mission”… to recover killer hair comb. Oh god. I’d explain further but I really started to zone out when they discovered they were searching for a comb. The second episode revolved around a mystical piece of music that when played inside large stone/marble buildings (for example a bank) made everyone feel loved, and then lose all memory of the events that take place while the music is playing. Wow…</p>
<p>But still I sat down and watched the third episode today, and what wondrous device did they track down in this adventure. A chair. An old chair whose springs had been charged with the vibrations of a hypnotist which then worked there way into anyone who sat on the chair making them display uncharacteristic violent behaviour. Whoa scary stuff there. So what is in the warehouse? Not much.</p>
<p>Ok end of spoilers/recap. I’ve still got another three episodes which I haven’t watched, and I don’t know how many more I will be able to handle. For a show that revolves around a huge warehouse full of the weird and wonderful, they are yet to show me anything particularly weird or wonderful.</p>
<p>It is a little like Fringe dosed up to the eyeballs with a very strong sedative. If you’ve watched Fringe you might recall the spiky worm parasite thing that wrapped around some guys internal organs, or even the lab-grown hybrid bat/snake/spider monster thing that was hiding in the sewer. What would you rather watch? Killer hair comb or giant bat/snake/spider monster. I hope you don’t have to think to hard to answer that one.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/what-is-in-the-warehouse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apocalyptic Dollhouse</title>
		<link>http://deanjrobinson.com/article/apocalyptic-dollhouse/</link>
		<comments>http://deanjrobinson.com/article/apocalyptic-dollhouse/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 08:17:25 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[dollhouse]]></category>
		<category><![CDATA[entertainment]]></category>
		<category><![CDATA[tv]]></category>
		<category><![CDATA[tveet]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=1267</guid>
		<description><![CDATA[When it was revealed that even though there was a thirteenth episode (Epitaph One) of Dollhouse filmed for the first season that Fox wouldn't be showing it everyone (ok, maybe not everyone, but a lot of people) wondered why. The story was that Fox had only commissioned 13 episodes and because they had to film the pilot twice before Fox liked it, the mythical episode 13 was actually to 14th and fell outside their original agreement.]]></description>
			<content:encoded><![CDATA[<p style="border:1px solid #0FF;background:#CFF;-moz-border-radius:6px;-webkit-border-radius:6px;padding:6px 10px;">This article was originally posted on a previous incarnation of <a href="http://tveet.com">tveet.com</a>, and is now being archived here so as not to disappear completely into the ether.</p>
<p class="hideme">When it was revealed that even though there was a thirteenth episode (Epitaph One) of Dollhouse filmed for the first season that Fox wouldn’t be showing it everyone (ok, maybe not everyone, but a lot of people) wondered why. The story was that Fox had only commissioned 13 episodes and because they had to film the pilot twice before Fox liked it, the mythical episode 13 was actually to 14th and fell outside their original agreement.</p>
<p>As disappointed as I’m sure so many were, I think everyone knew that the episode would turn up eventually, and in this case it turned up on the DVD set along with the rest of the season. Makes perfect sense I guess. Also included on the DVD set was the original pilot that Fox didn’t like, but more on that in a bit.</p>
<p>If you haven’t watched episode 13 perhaps you should stop reading now just in case I spoil something for you. </p>
<p>Epitaph One is set in 2019 in a post-apocalyptic world. For the majority of the episode there is no real inclusion of the usual cast, on the whole this episode feels nothing like the rest of the season, which is both a good and bad thing. There is no part of me that would be surprised if the real reason Fox didn’t air this episode was because they thought it was just too far removed from the other 12 episodes.</p>
<p>Personally I’m still undecided if I did or didn’t like this episode, it was a nice change from some of the stupid boring stories told in the other 12 episodes, but was it too different? I don’t know. I’m not familiar enough with Joss Whedon’s other work, has he done things like this before?</p>
<p>Imagine for a moment you’d just watched an entire series of The Smurfs, then you were handed the missing season finale which features Wolverine and the other X-Men. That’s kind of how I felt at the end of Epitaph One. It was just so different it could have easily been a pilot for a completely different show. But the bigger question is what does this episode mean for season 2…</p>
<p>Will the next season pick up where episode 12 left off, or where episode 13 left off? My guess is they’ll continue on from episode 12 and just forget about the events of episode 13 (and presumably those that led up to it) until they need to wrap the series up in some way. If Dollhouse just continues on like it did in Season 1 then you’d have to think it chances of coming back for a third season would be pretty slim, especially after the Sarah Connor Chronicles got canned even though its second season was so much better than the first.</p>
<p>Minor disclaimer: I watch Dollhouse, but by no means do I truly love it, and I’m still disappointed that it got renewed and SCC didn’t.</p>
<p>As for the original pilot, well, if and when you watch it you’ll notice that you’ve seen a lot of it before, but in a different order. Looks like after Fox rejected this pilot Whedon and co went back, cut it up into a bunch of small pieces and then reconstructed it (and filled in the gaps) to make four or five entire episodes. As far as pilot episodes go I think this pilot, even though it seemed to have to much jammed into it, was better than the pilot that actually wen to air.</p>
<p>A number of key reveals were made in the original pilot, things like Ballard’s ‘informant’ being revealed to be a Doll (Victor), and Ballard and Echo coming face to face. Both of which were held back for several episodes when the season actually went to air. Given how few reveals and twists there seemed to be, it would have been a shame if they had used up so many in the pilot… good thing they changed it.</p>
<p>Season 2 of Dollhouse starts September 25.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/apocalyptic-dollhouse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Can Heroes return to glory?</title>
		<link>http://deanjrobinson.com/article/can-heroes-return-to-glory/</link>
		<comments>http://deanjrobinson.com/article/can-heroes-return-to-glory/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 05:56:07 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[entertainment]]></category>
		<category><![CDATA[heroes]]></category>
		<category><![CDATA[tv]]></category>
		<category><![CDATA[tveet]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=1263</guid>
		<description><![CDATA[Ok, but just before we get the 'returning' bit, when was the last time you actually 'enjoyed' watching Heroes? For me it was the end of Season 1, and the most disappointing series finale I had seen in a long time. The build up promised so much and delivered nothing. Super power throw down battle hidden behind closed doors kind of sealed Heroes' fate, not even sending Hiro back in time was enough to redeem what should have been the beginning of the end.]]></description>
			<content:encoded><![CDATA[<p style="border:1px solid #0FF;background:#CFF;-moz-border-radius:6px;-webkit-border-radius:6px;padding:6px 10px;">This article was originally posted on a previous incarnation of <a href="http://tveet.com">tveet.com</a>, and is now being archived here so as not to disappear completely into the ether.</p>
<p class="hideme">Ok, but just before we get the ‘returning’ bit, when was the last time you actually ‘enjoyed’ watching Heroes? For me it was the end of Season 1, and the most disappointing series finale I had seen in a long time. The build up promised so much and delivered nothing. Super power throw down battle hidden behind closed doors kind of sealed Heroes’ fate, not even sending Hiro back in time was enough to redeem what should have been the beginning of the end.</p>
<p>Despite its (many) flaws I’ve stuck with Heroes in the hope that it would get better. And so far, I haven’t got much return on my investment. There have been brief moments of improvement, and then they go and do something stupid. Small things like recycling story lines more than a crappy soap opera, through to massive things like having yet another epic battle take place behind very big, very closed doors and all we get to see is some lights flashing through the gap between said doors.</p>
<p>Why do they continue to do this? Is it a budget constraint? Do they not have enough money to produce amazing fight sequences? If that’s the case then they should stop writing scenes that require them. No fight scene at all would be better than one that is just teased or hinted at but we never get to see.</p>
<p>So we’re now a little under 2 months from the beginning of season 4 (volume 5, because that’s not at all confusing). There are new characters, another change to the writing staff, and no doubt another reason that they’ll have to save a cheerleader to save the world.</p>
<p>At Comic Con they showed off a <a href="http://tveet.com/2009/08/heroes-season-4-trailer/">3 minute trailer</a> for the new season, and according to Tim Kring everything in that promo happens in the first 3.5 episodes. Volume 5, “Redemption”, is all about the heroes returning to (or at least trying to) normal lives, Peter is a paramedic, Claire’s going to college, Nathan is playing Senator and Sylar is playing Nathan.</p>
<p>From the look of the trailer a fair amount of the story will be taking place in the carnival. This is where three of the new characters reside, Samuel — whose power is the ability to move earth, Lydia who is a kind of empath and has images appear on her body in the form of tattoos, and Edgar who it would appear has a liking for knives in addition to his super speed. They’ve also promised that we’ll get the interesting Hiro back, the one who time jumps, hopefully they’ll “fix” other things too, things like giving Peter all his powers back.</p>
<p>Two of the main cast additions for the new season are Robert Knepper (played <em>T-Bag</em> in <em>Prison Break</em>) and Madeline Zima (played <em>Mia</em> in <em>Californication</em>). If Knepper can bring some of the evil he displayed on Prison Break he’ll make a great villain (although I’m not exactly sure yet whether his character (Samuel) is a good guy or bad guy), he was originally signed on for just 6 episodes but has now been confirmed as a series regular. Zima on the other hand will be playing a college room mate for Claire, and the rumours of a lesbian storyline between Clarie and Zima’s character are a pretty clear indication that the writers/producers are desperate to do anything to gain a boost in ratings.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/can-heroes-return-to-glory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to add clickable hashtags to your twitter widget</title>
		<link>http://deanjrobinson.com/article/how-to-add-clickable-hashtags-to-your-twitter-widget/</link>
		<comments>http://deanjrobinson.com/article/how-to-add-clickable-hashtags-to-your-twitter-widget/#comments</comments>
		<pubDate>Sun, 26 Jul 2009 05:40:00 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=537</guid>
		<description><![CDATA[<p>A few weeks ago Twitter finally added clickable hashtags to twitter.com. However if your one of the many people who make use of the html/js widget provided by twitter to display recent tweet on your own website then you will have noticed that you still don’t get clickable hashtags in the list of tweets that get displayed. Luckily this is pretty easy to fix if you want to, and you aren’t freaked out at the thought of modifying a little javascript.</p>]]></description>
			<content:encoded><![CDATA[<p class="hideme">A few weeks ago Twitter finally added clickable hashtags to twitter.com. However if your one of the many people who make use of the html/js widget provided by twitter to display recent tweet on your own website then you will have noticed that you still don’t get clickable hashtags in the list of tweets that get displayed. Luckily this is pretty easy to fix if you want to, and you aren’t freaked out at the thought of modifying a little javascript.</p>
<p><strong>UPDATE:</strong> This article is no longer relevant, twitter have completely changed their widgets (which you can grab <a href="http://twitter.com/goodies/widgets" target="_blank">here</a>), and the new widgets now support hashtags out of the box. Looks like any existing widgets should continue working as they just use the user_timeline API method which hasn’t changed.</p>
<p>Below is the default javascript function that is called by the default HTML Twitter widget, you can grab the <a href="http://twitter.com/widgets" target="_blank">widget code here</a> or look at the full <a href="http://twitter.com/javascripts/blogger.js" target="_blank">javascript file here</a>.</p>
<p>There isn’t much to it, just the callback function, and a function to format the timestamp for each tweet. I’m only focusing on the callback in this post as that is all we need to play with to get clickable hashtags working. The default callback runs through the list of tweets that have been returned and using a couple of regular expressions (regex) it pulls out urls and @mentions and links them up.<br />
<span id="more-537"></span></p>
<h3>Original blogger.js</h3>
<pre class="code">
function twitterCallback2(twitters) {
  var statusHTML = [];
  for (var i=0; i&lt;twitters.length; i++){
    var username = twitters[i].user.screen_name;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\&lt;\&gt;]*[^.,;'"&gt;\:\s\&lt;\&gt;\)\]\!])/g, function(url) {
      return '&lt;a href="'+url+'"&gt;'+url+'&lt;/a&gt;';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return reply.charAt(0)+'&lt;a href="http://twitter.com/'+reply.substring(1)+'"&gt;'+reply.substring(1)+'&lt;/a&gt;';
    });
    statusHTML.push('&lt;li&gt;&lt;span&gt;'+status+'&lt;/span&gt; &lt;a style="font-size:85%" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id+'"&gt;'+relative_time(twitters[i].created_at)+'&lt;/a&gt;&lt;/li&gt;');
  }
  document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
}
</pre>
<p>What you’ll need to add is just a couple of extra lines, highlighted below, this adds another regex check to find any hashtags and link them up to a default twitter search.</p>
<h3>Freshly modified blogger-mod.js</h3>
<pre class="code" style="color:#999;">
function twitterCallback2(twitters) {
  var statusHTML = [];
  for (var i=0; i&lt;twitters.length; i++){
    var username = twitters[i].user.screen_name;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\&lt;\&gt;]*[^.,;'"&gt;\:\s\&lt;\&gt;\)\]\!])/g, function(url) {
      return '&lt;a href="'+url+'"&gt;'+url+'&lt;/a&gt;';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return reply.charAt(0)+'&lt;a href="http://twitter.com/'+reply.substring(1)+'"&gt;'+reply.substring(1)+'&lt;/a&gt;';
    })<span style="color:#000">.replace(/\B#([_a-z0-9]+)/ig, function(hashtag) {
      return '&lt;a href="http://twitter.com/search?q=%23'+hashtag.substring(1)+'"&gt;'+hashtag+'&lt;/a&gt;';
    })</span>;
    statusHTML.push('&lt;li&gt;&lt;span&gt;'+status+'&lt;/span&gt; &lt;a style="font-size:85%" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id+'"&gt;'+relative_time(twitters[i].created_at)+'&lt;/a&gt;&lt;/li&gt;');
  }
  document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
}
</pre>
<h3>Ok, that’s super, but what do I do with it?</h3>
<p>Right, since you can’t modify the <a href="http://twitter.com/javascripts/blogger.js" target="_blank">blogger.js</a> file on twitter’s server, you’ll need to download a copy for yourself. Once you’ve done that you can add the extra code outlined above, I’d suggest saving the file as something like <code>blogger-mod.js</code> and then you’ll need to upload it to your web host.</p>
<p>…or if you’re not overly confident in modifying the javascript yourself, simply download <a href="http://deanjrobinson.com/wp-content/uploads/2009/07/blogger-mod.js.txt" target="_blank">this file</a>, remove the .txt extension of the file (eg. change <code>blogger-mod.js.txt</code> to <code>blogger-mod.js</code>) and then upload it to your web host.</p>
<h3>Cool beans, I’ve upload the new file, now what?</h3>
<p>Ok, this is the standard widget code that twitter provides:</p>
<pre class="code">
&lt;div id="twitter_div"&gt;
  &lt;h2 class="sidebar-title"&gt;Twitter Updates&lt;/h2&gt;
  &lt;ul id="twitter_update_list"&gt;&lt;/ul&gt;
  &lt;a href="http://twitter.com/yourusername" id="twitter-link" style="display:block;text-align:right;"&gt;follow me on Twitter&lt;/a&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://twitter.com/statuses/user_timeline/yourusername.json?callback=twitterCallback2&amp;count=5"&gt;&lt;/script&gt;
</pre>
<p>We only need to change the reference to twitter’s <code>blogger.js</code> to point to our newly uploaded <code>blogger-mod.js</code> (highlighted below). Now when the tweets are returned from twitter they will be processed by your javascript file (which handles hashtags) instead of twitter’s standard code.</p>
<pre class="code" style="color:#999;">
&lt;div id="twitter_div"&gt;
  &lt;h2 class="sidebar-title"&gt;Twitter Updates&lt;/h2&gt;
  &lt;ul id="twitter_update_list"&gt;&lt;/ul&gt;
  &lt;a href="http://twitter.com/yourusername" id="twitter-link" style="display:block;text-align:right;"&gt;follow me on Twitter&lt;/a&gt;
&lt;/div&gt;
<span style="color:#000;">&lt;script type="text/javascript" src="http://mywebsite.com/my/path/blogger-mod.js"&gt;&lt;/script&gt;</span>
&lt;script type="text/javascript" src="http://twitter.com/statuses/user_timeline/yourusername.json?callback=twitterCallback2&amp;count=5"&gt;&lt;/script&gt;
</pre>
<p>Hopefully that will help a few people out until such time that twitter add this functionality to their own widget. If you have any trouble with the steps above, leave a comment and I’ll see if I can help out.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/how-to-add-clickable-hashtags-to-your-twitter-widget/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>And then it was redesigned</title>
		<link>http://deanjrobinson.com/article/and-then-it-was-redesigned/</link>
		<comments>http://deanjrobinson.com/article/and-then-it-was-redesigned/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 09:18:23 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[redesign]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=526</guid>
		<description><![CDATA[<p>Surely I'm not the only one with this 'problem', I can't sit on one design for too long, personally I think I've done well to hold out for nearly 7 months this time. If you're reading this in your favourite feedreader, then you're missing out on the interesting bit, you can't see my *awesome* redesign unless you're reading this in a browser, so, hop to it.</p>]]></description>
			<content:encoded><![CDATA[<p class="hideme">Surely I’m not the only one with this ‘problem’, I can’t sit on one design for too long, personally I think I’ve done well to hold out for nearly 7 months this time. If you’re reading this in your favourite feedreader, then you’re missing out on the interesting bit, you can’t see my *awesome* redesign unless you’re reading this in a browser, so, hop to it.</p>
<h3>Wait</h3>
<p>Isn’t it only like 6 weeks since you last redesigned? No, the last redesign went live the week after Christmas last year, which means its over 6 months since I’ve redesigned. So there :P</p>
<h3>Why</h3>
<p>I’ve gotten into a habit of redesigning (or at least refreshing) around the time that I upgrade to the latest and great version of WordPress. This time around I knew 2.8 was just around the corner and planned to go live with redesign while I was upgrading. That didn’t happen.</p>
<p>I also needed to do something to escape/take my mind off/avoid certain other things, and a redesign is great for that. Only problem that brought was that I didn’t have as much time to dedicate to the redesign as I normally would.</p>
<p><span id="more-526"></span></p>
<h3>When</h3>
<p>I started on this in mid May (I think), the layout changed numerous times in the first couple of weeks before I (mostly) settled on what you see now. Since then though I’ve rewritten the ‘theme’ behind this half a dozen times, still not sure I’m entirely happy with it, but its better than before.</p>
<h3>Woot</h3>
<p>I finally got this to a point where I’m happy for to to go live. I’ve been living with it for a few weeks fixing broken things as I found them. I was tempted several time to just put it live and deal with broken crap at a later date (its what I’ve done every other time) but vowed that I would only go live once I was happy.</p>
<p>There are still couple of plugins that I need to update, and a couple I want to partially rewrite (they appear to be using a huge numbers of queries without great reason).</p>
<h3>Wow</h3>
<p>Well, I think its a wow, you can let me know what you think in the comments. More than ever this design is almost entirely CSS, there is a background image (for the sideways text) and a couple of small logos, but everything else is CSS. As a result this site quite possible looks like arse in Internet Explorer. I don’t care.</p>
<p>The redesign has sticky posts, sprinkles of big text, fancy dropcaps (ok, I had those before) and other shiny things. I’ve tried to simplify some areas (probably unsuccessfully), and add ‘value’ to others, even if its just value for myself. For example, on the downloads page I’ve added calculations for ‘total downloads’ and ‘downloads per day’.</p>
<h3>Werd</h3>
<p>Or more accurately type. I may have gone a little overboard, but it was fun styling things I know almost certainly won’t work in IE. Makes me all warm and fuzzy inside. A couple of highlights, for me, are the new download links you’ll find on the project pages, and the big month/year being displayed on the archive pages. Helvetica/Helvetica Neue (and variants) FTW.</p>
<h3>Well then</h3>
<p>Thats not all. I’m planning on adding a portfolio section (different to the projects section I’ve already got), but its not nearly ready to be added just yet, its something I will work on later in the year.</p>
<h3>Whoa</h3>
<p>Before you ask, and there those of you who will, you always do. No, you can’t have this ‘theme’. Would you ask Gizmodo for their theme? No, ok some of you might. I’m not being nasty, even if I gave you this ‘theme’, its unlikely that you’d be able to do much with it anyway, its coded to work with the posts, structure, categories, content etc for this site, so unless your site is a clone…</p>
<p>Ok, now before you abuse me for not giving YOU the design of MY site, listen to this. I haven’t released anything to the WordPress community for 7 (long) months, I’ve got numerous things in progress though, including: updates to Fluency2, an ‘Archives’ plugin (to replicate the archive layout I use here), Captain Planet (I’ll release it one day I promise), and a few other that you know nothing about ;)</p>
<p>On top of that I’m planning on going back to working on themes that you can all use, perhaps even a framework of sorts. I make no promises about when, what or how much I’ll release, but I’ll try and get some of them out into the WP world before the end of the year.</p>
<h3>Whee</h3>
<p>I’ve run out ‘W’ words. Keep an eye out for my continued blogging, and watch out for plugin and theme releases in the coming months. Enjoy the redesign, let me know if/when you find things that are broken, be warned though, if you tell me it doesn’t work in IE6 (or even 7 for that matter) I’m going to ignore you.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/and-then-it-was-redesigned/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>IE8: Don’t get the facts. Get Reality.</title>
		<link>http://deanjrobinson.com/article/ie8-dont-get-the-facts-get-reality/</link>
		<comments>http://deanjrobinson.com/article/ie8-dont-get-the-facts-get-reality/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 03:22:46 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[ie8]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=484</guid>
		<description><![CDATA[<p>When it comes to web browsers Internet Explorer is the one out there leaving bad impressions making everyone else look bad. Well at least they're good at doing that, because, well, they aren't much chop at anything else.</p>]]></description>
			<content:encoded><![CDATA[<p>Facts are meant to be true aren’t they? Microsoft, or should that be Windows since they are marketing it as “Windows Internet Explorer 8″, seem to have put their own spin on the truth by providing a list of 10 reasons that IE8 is sooo much better than Firefox and Chrome. Yes, just Firefox and Chrome, not Opera and not Safari. I don’t really care for Opera (have never used it), but the absence of Safari is just a little too obvious. Clearly they are aware that Safari probably beats IE8 in these 10 claims of awesomeness (and about 1000 others) and didn’t want to challenge Apple. Either that or they still believe that Safari is a Mac only browser, don’t laugh, I wouldn’t be surprised at all. Is ignorance or denial the first sign that you have a problem?</p>
<p>Let’s take a look at the wonderful claims being made by the peeps at IE8, text referenced from screen shots taken by Chris Messina (<a href="http://www.flickr.com/photos/factoryjoe/">factoryjoe</a> ← my favourite flickr stream) on the 19th and 20th of June 2009, (here: <a href="http://www.flickr.com/photos/factoryjoe/3640211488/">19th</a> and here: <a href="http://www.flickr.com/photos/factoryjoe/3641864695/">20th</a>).</p>
<p><span id="more-484"></span></p>
<h3>Security (IE8 only)</h3>
<blockquote><p>Internet Explorer 8 takes the cake with better phishing and malware protection, as well as protection from emerging threats.</p></blockquote>
<p>Ok, first problem, by only placing a ‘tick’ next to IE8 they are essentially claiming that Firefox and Chrome have no security features, especially to someone who just skims down the list and doesn’t read their provided explanations. They do this on 6 or 7 of the other “reasons” below too.</p>
<p>I haven’t been a full-time Windows user for almost 3 years, but back then most of the “malware” and “emerging threats” had more to do with the fact that 99% of the viruses that the scum out there were writing and distributing only targeted machines running Windows, than it did with the actual browser. Yes the browser can add an intermediate step to help prevent some of these “threats” but in many cases the user themselves should be more responsible, if they want to visit dodgy sites and download, umm, “screensavers” and other sorts of “entertainment” then they should be aware that they are putting their lovely Windows machine at risk of infection. Maybe if Microsoft had plugged all the security holes in their swiss-cheese operating system sooner it wouldn’t have become as big an issue.</p>
<p>Even better get a Mac, you won’t have to worry about IE and its highly unlikely you’ll get any viruses.</p>
<h3>Privacy (IE8 only)</h3>
<blockquote><p>InPrivate Browsing and InPrivate Filtering help Internet Explorer claim privacy victory.</p></blockquote>
<p>Claiming victory because you left out the competitor that includes the features doesn’t make you the victor. Safari has had “Private browsing” mode for a long time, and Firefox is introducing something similar in version 3.5 which should be out soon.</p>
<h3>Ease of Use (IE8 only)</h3>
<blockquote><p>Features like Accelerators, Web Slices and Visual Search Suggestions make Internet Explorer 8 easiest to use.</p></blockquote>
<p>Ease of use is not won by adding features that 10% of people will use, its achieved by making the software, uh durr, easier to use. From what I can tell IE8 still looks and feels like IE7, with its odd arrangement of menus and buttons splattered all over the top portion of the screen in a completely different manner to most other Microsoft software. Although they’ve at least continued this trend in the latest version of Office with that stupid ‘ribbon’ menu/palette crap. A web browser is core to many computer users need, there should be no learning curve.</p>
<h3>Web Standards (IE8, FF, GC)</h3>
<p>Yes, two quotes, they changed their text… wonder why.</p>
<blockquote><p>It’s a tie. Internet Explorer passes more of the World Wide Web Consortium’s CSS 2.1 test cases than any other browser, but Firefox 3 has more support for some evolving standards.</p></blockquote>
<p>…or one day later…</p>
<blockquote><p>Firefox and Chrome have more support for emerging standards like HTML5 and CSS3, but Internet Explorer 8 invested heavily in having world-class, consistent support for the entire CSS2.1 specification.</p></blockquote>
<p>Oh, this is priceless, anyone got a camera I’d like a photo of little IE8 playing with the grownups. Its like a high school basketballer claiming they are better than players in the NBA because they have a better free throw percentage. In other words, its bull shit.</p>
<p>So yes, you’ve FINALLY got CSS2.1 support, welcome to 5 years ago. IE8 is still so far behind its not even humorous anymore, its just sad. They (now) say that IE8 invested heavily in having world-class CSS2.1 support, great but that would have been a nice thing a few years ago, real browsers have moved on to this radical thing called CSS3, and you Internet Explorer are holding the world back by not implementing even the most basic parts of it.</p>
<p>For starters, border radius, Safari and Firefox (although it took until v3 for it to be ‘nice’) have had this for a long time, and yet with this first new version of IE in years we still don’t get it. Why?</p>
<p>Declaring a tie is a bit of a cop out, I’m pretty sure I could put together a page that would look perfect in Safari, Firefox, Chrome and Opera and would still need some dirty, dirty hack to look ‘right’ in IE8.</p>
<p>Internet Explorer is the mortal enemy of web developers and designer across the world, and with version 8 it doesn’t make things better it makes them worse. Now we have three fucking versions of IE to fight with. Wonderful.</p>
<h3>Developer Tools (IE8 only)</h3>
<p>Again two days, two quotes, and this time they even changed which browser they awarded a ‘tick’ to.</p>
<blockquote><p>Of course Internet Explorer 8 wins this one. There’s no need to install tools separately, and it offers better features like Javascript profiling.</p></blockquote>
<p>…or one day later… (IE8, FF3)</p>
<blockquote><p>Internet Explorer 8 has the most comprehensive developer tools built in, including HTML, CSS and JavaScript editing, but also JavaScript profiling; other browsers have developer tools available, but either require you to download the separately, or aren’t as complete.</p></blockquote>
<p>“Of course”? Are they serious? Apparently not, since they removed that bit.</p>
<p>Heaven forbid that us developers need to download a browser addon to check css and a js errors… regular users don’t give a toss, so why clutter up their experience and add unwanted confusion by making it a bundled “feature”? Why Microsoft, why?</p>
<p>I’m also pretty sure that Safari’s web inspector shits on, and then sets fire to, whatever rubbish tools IE8 has added.</p>
<p>Abuse and insults aside, it has to be better than what was in IE6/7, especially in regards to javascript errors. “Error at Line 1, Character 0″ — gee thanks IE, that’s useful for debugging my 4000 line javascript file, thanks. If they’ve fixed that issue alone it will be an improvement.</p>
<h3>Reliability (IE8 only)</h3>
<blockquote><p>Only Internet Explorer 8 has both tab isolation and crash recovery features; Firefox and Chrome have one or the other.</p></blockquote>
<p>And what about the reliability and crash recovery features of the operating system the people have to use if they want to use your stupid browser? Oh, they don’t have any, ok…</p>
<h3>Customizability (IE8, FF, GC)</h3>
<blockquote><p>Sure, Firefox may win in shear number of add-ons, but many of the customizations you’d want to download for Firefox are already part of Internet Explorer 8 — right out of the box.</p></blockquote>
<p>More features does not a better product make.</p>
<p>Especially features that 90% of people won’t use. What about the features we do want though, things that are included in Safari and Firefox “out of the box” things like CSS3, and “being not shit”, are there at least IE8 plugins for those?</p>
<h3>Compatibility (IE8 only)</h3>
<blockquote><p>Internet Explorer 8 is more compatible with more sites on the Internet than any other browser.</p></blockquote>
<p style="font-size:18px;"><strong>omgroflmaowtfbbq</strong></p>
<p>Are they serious? Must be, they haven’t changed the wording yet. Wake up and smell reality you idiots, Internet Explorer is not compatible with websites, websites are compatible with IE.</p>
<p>If the world hadn’t spent the last 8 years building websites and then fixing them to work with the fucked up web standards implementation in IE6/7 then nothing would work in IE8.</p>
<p>Also, adding “IE7 compatibility mode” or “render as IE7” or whatever the hell its called achieves nothing, we still have to test everything in all those modes because there is no way of knowing what the user is going to have selected as their default.</p>
<p>Internet Explorer, you are the cause not the solution, please crawl into a hole and die. Thanks.</p>
<h3>Manageability (IE8 only)</h3>
<blockquote><p>Neither Firefox nor Chrome provide guidance or enterprise tools. That’s just not nice.</p></blockquote>
<p>…or one day later…</p>
<blockquote><p>Neither Firefox nor Chrome provide guidance or enterprise tools.</p></blockquote>
<p>Someone at Microsoft must have found out they had a 5 year old writing their promo material and stepped in the make that small wording change.</p>
<p>How about this for a reason. Regular people aren’t enterprises, so enterprise tools are pointless for a large percentage of the population.</p>
<p>What is with Microsoft’s fascination with “enterprise” anyway, its like they think it makes them sound better or something. Either that or they are just closet Star Trek fans.</p>
<h3>Performance (IE8, FF, GC)</h3>
<blockquote><p>Knowing the top speed of a car doesn’t tell you how fast you can drive in rush hour. To actually see the difference in page loads between all three browsers, you need slow-motion video. This one’s also a tie.</p></blockquote>
<p>Another tie? really? Ok, if you say so.</p>
<p>Reports say that IE8 is definitely quicker than IE6/7, but its not nearly as fast as Firefox (which itself isn’t always that great, FF3.5 is apparently a big improvement though), and if this were a race into outer-space, Safari would be beyond Pluto before IE8 had reached Mars.</p>
<p>IE8 you’re not fast, you probably never will be. Get over it, or simply switch to cross platform rendering engine that works. Y’know something like Webkit.</p>
<p>The points I’ve discussed above are based on what their “browser comparison chart” said on the 19th and 20th of June 2009, you can see the list <a href="http://www.microsoft.com/windows/internet-explorer/get-the-facts/browser-comparison.aspx">here</a>, no doubt its probably changed again, and if it hasn’t it will, just give it time.</p>
<h3>But wait there’s more</h3>
<p>The good folk at Microsoft also provide a set of 8 reasons to install IE8, they even put them under a heading of “What’s so great about Internet Explorer 8?”</p>
<p>In summary, because if I go into detail I’ll write another 2000 words, the 8 reasons are: it’s faster than ever, it’s easier than ever, it’s safer than ever, keep up with the stuff that matters to you, see any site easily, recover from crashes quickly, surf with more privacy and make it yours.</p>
<p>I agree with about, umm, zero of them, but you can check out their reasons for the reasons <a href="http://www.microsoft.com/windows/internet-explorer/get-the-facts/default.aspx">here</a>.</p>
<p>As I see it the only reason you should install IE8 is if you’re currently using IE6 or IE7, and are too brainwashed to switch to a real browser. People who actually like using the internet need not bother.</p>
<h3>What next?</h3>
<p>Well from Microsoft we can probably count on seeing Internet Explorer 9 in 2013, and it probably still won’t support CSS3 or HTML5, if we’re lucky we might get that for IE10 in 2020 by which time Firefox and Safari with have release a dozen major upgrades none of which Microsoft will see as important enough to implement themselves for another 10 or so years.</p>
<p>One can only wonder what the Internet Explorer crew will “invent” next? In IE7 that ‘invented’ this new thing called RSS… or not, but for Joe Average IE7 was probably the first time he’d encountered this new fangle thing, so to him its a Microsoft invention. This time its ‘Web slices’, which sounds an awful lot like Safari’s web clips. Just saying.</p>
<p><strike>But don’t just take our word for it. <a href="#lol_as_if_I'd_give_you_a_download_link">Download</a> Internet Explorer 8 today to see for yourself.</strike></p>
<p>But don’t just take my word for it. Don’t Download Internet Explorer 8 today and save yourself the headaches.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/ie8-dont-get-the-facts-get-reality/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Today’s keynote brought to you by the letter S</title>
		<link>http://deanjrobinson.com/article/todays-keynote-brought-to-you-by-the-letter-s/</link>
		<comments>http://deanjrobinson.com/article/todays-keynote-brought-to-you-by-the-letter-s/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 03:28:22 +0000</pubDate>
		<dc:creator>dean.j.robinson</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[3gs]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[keynote]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[macbook]]></category>
		<category><![CDATA[macbook pro]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[snow leopard]]></category>
		<category><![CDATA[wwdc]]></category>

		<guid isPermaLink="false">http://deanjrobinson.com/?p=469</guid>
		<description><![CDATA[<p>I haven't watched the keynote yet, mainly because of the time difference living on the other side of the world and having to get up and go to work today. As expected they showed off the 'new' iPhone, by 'new' they mean updated not 'new' like it was last year.</p>]]></description>
			<content:encoded><![CDATA[<p>I haven’t watched the keynote yet, mainly because of the time difference living on the other side of the world and having to get up and go to work today. As expected they showed off the ‘new’ iPhone, by ‘new’ they mean updated not ‘new’ like it was last year.</p>
<h3>iPhone 3G S …is for speed</h3>
<p>Yes there is the the new 3.0 iPhone OS, yes it now comes with32GB of storage, yes the camera is better and has focus, yes it shoots video, yes it has a voice recorder, yes its faster (about the only thing I find really interesting) and yes it has a compass (woo…). But.</p>
<p>The camera is ‘only’ 3.2MP, and while this what I was expecting, and it has to be better than the current 2MP I still feel let down. Nokia have been squeezing 5MP cameras into their high-end phones for years, as have Sony, and Samsung recently upped the ante shoving a 12MP camera into is latest phone. Sorry Apple, but for your “most advanced phone in the world” 3.2MP is a little lame. I’d love it if my iPhone could replace the need for carrying around a decent camera to take happy snaps (which I don’t currently do because my digital camera is too bulky), maybe the 3.2MP with auto focus will cut it, maybe it won’t.</p>
<p><span id="more-469"></span>When 3G arrived back whenever that was, one of the big “selling points” in Australia (despite the fact that you had to actually live in a capital city) was video calling. Using Nokia as an example again, currently even their most basic 3G phone has two cameras to facilitate video calling, yet the iPhone… nope. I’m unlikely to ever even use video calling but it would be nice if I had the option.</p>
<p>The fact that its taken until the 3rd generation iPhone to get MMS is a little ridiculous considering even my 7 year old Sony Ericsson could handle MMS. And video recording sounds great, but how good are the VGA quality videos actually going to be? People were saying a few weeks ago that and iPhone with video could challenge the Flip Mino, I have my doubts, but would like to be proven wrong.</p>
<p>So, I’m not really seeing anything that is screaming “buy me, buy me now!!!”, and I’m thinking I might be happy enough with the free 3.0 update for the time being. Besides, just going on what people are saying about AT&amp;T, it sounds like existing iPhone 3G owners who want to upgrade are going to be screwed over anyway, and Optus won’t be any better here.</p>
<p>Also, whats the fugly diagonal stripes they’ve added to the phone, ipod and sms icons? The default homescreen icons are an inconsistent mess… Just so you don’t get the wrong idea I honestly do love my current iPhone.</p>
<h3>Two more things. MacBook Pros and Snow Leopards.</h3>
<p>The MacBook Pro got an update, which seems odd since it took so long for them to update them before and now less then a year after the unibodies were released they’ve updated them again. Overall the 15-inch MBPs are cheaper (good thing), the ExpressCard slot has been swapped for and SD Card slot and they’re also the recipient of the non-user-replaceable battery thats already found in the 17-inch.</p>
<p>While the 17-inch is also cheaper but retains the ExpressCard slot. And the 13-inch unibody MacBook is now officially a 13-inch MacBook Pro and a bit cheaper, it also has the non-user-replaceable battery, SD slot and FireWire 800 ports added. The MacBook Air also received a more than decent price drop.</p>
<p>And lastly Snow Leopard, it seems to be getting the least attention, so did it get only minimal air time in the keynote? Anyway, good news is that is going to be so cheap that no-one is going to have a decent excuse not to update, only $29 in the US (and apparently only $14.95 here in Australia) which is even lower than <a href="http://daringfireball.net/2009/06/wwdc_2009_predictions" target="_blank">John Gruber was expecting</a>. From what I’ve read on apple.com its sounds like its going to be a great update full of things to makes other things go faster and stuff… I mean lots more 64-bit goodness across the core native apps and better multiple processor processing.</p>
<p>Apple have cut 6GB (!) from the installation, I would imagine most of that was gained by cutting old legacy crap out of the core and apps like Mail, iCal etc. Safari 4 is available now minus the stupid title-bar tabs (lol), Microsoft Exchange support is now available out of the box which Apple says isn’t even available on Windows machines, Quicktime X also gets a new shiny interface and updating basic editing controls, Finder has apparently been rewritten in Cocoa to suck less, Stacks have been improved (making them useful) and Exposé has been tied into the dock which seems a little Windows 7-esque.</p>
<p>So the Snow Leopard info maybe wasn’t as plentiful as some were expecting (although digging through apple.com there is plenty of info there), the iPhone info was a little disappointing (sorry Apple, when you’ve got the most advanced phone in the world you start to expect really, really awesome things all the time) and the MacBook updates were unexpected.</p>
<p>I’ll watch the keynote when I get home tonight (as I’ve already used my lunch break to write this) and see if it changes any of my broad, sweeping opinions.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanjrobinson.com/article/todays-keynote-brought-to-you-by-the-letter-s/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)
Database Caching 11/34 queries in 0.113 seconds using disk

Served from: deanjrobinson.com @ 2010-07-30 15:07:16 -->