<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Daniel's Blog</title>
	
	<link>http://www.daniels.net.nz</link>
	<description>140 characters... or more</description>
	<lastBuildDate>Mon, 23 Aug 2010 10:15:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/DanielsView" /><feedburner:info uri="danielsview" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Back to the gardens we go</title>
		<link>http://feedproxy.google.com/~r/DanielsView/~3/71OwLqQ1TUE/</link>
		<comments>http://www.daniels.net.nz/2010/08/back-to-the-gardens-we-go/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 10:15:10 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.daniels.net.nz/?p=159</guid>
		<description><![CDATA[If you were to look at what you use, most of all, during your time on a computer, what would it be? Other than those programs you need to work, it&#8217;s probably going to be your web browser. But, if we look at our modern smart devices, with promises of bringing the internet to the [...]]]></description>
			<content:encoded><![CDATA[<p>If you were to look at what you use, most of all, during your time on a computer, what would it be? Other than those programs you need to work, it&#8217;s probably going to be your web browser.</p>
<p>But, if we look at our modern smart devices, with promises of bringing the internet to the palms of our hands, we are doing anything but.</p>
<p>Instead of going to <a href="http://touch.facebook.com">touch.facebook.com</a> on your iPhone, you instead open up the Facebook application. Despite having one of the best web browsers out there on mobile platforms, we seem to have stepped back in time to loading an application.</p>
<p>Google is probably still the one leading the charge in bringing everything to the web &ndash; most of their mobile apps are just HTML5 versions of their standard web apps apps, they&#8217;ve brought JavaScript performance to near-native speeds, and they&#8217;re going to release an operating system that is only a web browser.</p>
<p>However a couple of years ago, I would&#8217;ve thought this was the way everyone and thing is going &ndash; off into the cloud of happiness and awesome. We&#8217;re regressing, going from an interconnected network of pages, and back into the walled gardens we were trying to escape.</p>
<p>For example, instead of making their website better for use with your finger, <a href="http://www.nzherald.co.nz">New Zealand Herald</a> decided to make an iPad app. Which is funny, because the iPad touts that it&#8217;s the best way to surf the web. And what does NZ Herald do that requires an app that their website can&#8217;t provide?</p>
<p>What is the problem here? Has the internet been late to the mobile party? HTML 5 and CSS 3 have been a long, very long, time coming. However with the iPhone and Android came some of the best implementations of these emerging standards. JavaScript now has frameworks to access location data, and support for multi-touch gestures. There are almost no excuses for a web site to not look at creating a fantastic mobile web application. A single mobile web application that is supported across many platforms, not just the flavour of the month (if you can consider the iPhone that).</p>
<p>Back in 2007 when the iPhone was first announced, Apple said that applications can only be built via the web standards. Shortly after, they announced the SDK and the rest is history.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DanielsView?a=71OwLqQ1TUE:Tt3BeOgwJK4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DanielsView?i=71OwLqQ1TUE:Tt3BeOgwJK4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DanielsView?a=71OwLqQ1TUE:Tt3BeOgwJK4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/DanielsView?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DanielsView/~4/71OwLqQ1TUE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.daniels.net.nz/2010/08/back-to-the-gardens-we-go/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.daniels.net.nz/2010/08/back-to-the-gardens-we-go/</feedburner:origLink></item>
		<item>
		<title>Your text size is too small</title>
		<link>http://feedproxy.google.com/~r/DanielsView/~3/MdmpwXREaCI/</link>
		<comments>http://www.daniels.net.nz/2010/08/your-text-size-is-too-small/#comments</comments>
		<pubDate>Sun, 01 Aug 2010 04:16:32 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.daniels.net.nz/?p=139</guid>
		<description><![CDATA[Look at this&#8230; Now look at this&#8230; Look at this&#8230; Now look at this&#8230; Which ones were easier to read? I&#8217;ve always had frustrations with websites that come with small text in the body of their pages. What&#8217;s worse about these sites? They seem to know it, and their solution isn&#8217;t to fix it but [...]]]></description>
			<content:encoded><![CDATA[<p>Look at this&#8230;<br />
<img src="http://www.daniels.net.nz/wp-content/uploads/2010/08/public-address-small-text1.png" alt="" title="public address small text" width="370" height="65" class="aligncenter size-full wp-image-140" /></p>
<p>Now look at this&#8230;<br />
<img src="http://www.daniels.net.nz/wp-content/uploads/2010/08/bbc-big-text.png" alt="" title="bbc big text" width="286" height="76" class="aligncenter size-full wp-image-141" /></p>
<p>Look at this&#8230;<br />
<img src="http://www.daniels.net.nz/wp-content/uploads/2010/08/daring-fireball-small-text.png" alt="" title="daring fireball small text" width="414" height="103" class="aligncenter size-full wp-image-142" /></p>
<p>Now look at this&#8230;<br />
<img src="http://www.daniels.net.nz/wp-content/uploads/2010/08/ign-big-text.png" alt="" title="ign big text" width="452" height="71" class="aligncenter size-full wp-image-143" /></p>
<p>Which ones were easier to read?</p>
<p>I&#8217;ve always had frustrations with websites that come with small text in the body of their pages. What&#8217;s worse about these sites? They seem to know it, and their solution isn&#8217;t to fix it but to provide options. The problem with options is your average user doesn&#8217;t care.</p>
<p>First sample is from <a href="http://www.publicaddress.net">Public Address</a>. To change the text size, you have a small &#8220;Change text size&#8221; series of links to the right of the page. The second sample is from the recently revamped <a href="http://news.bbc.co.uk">BBC News</a> website, which follows in the footsteps of other BBC websites getting some glorious big text sizes. The third sample is from <a href="http://www.daringfireball.net">Daring Fireball</a>, to change the font size, you scroll to the bottom of the page, click &#8220;Display Preferences&#8221; and then determine an appropriate size. Final sample is from <a href="http://www.ign.com">IGN.com</a>, massive text sizes.</p>
<p>Funnily enough, sites with big text sizes <em>don&#8217;t</em> have text size controls anywhere on their pages. They have been designed with good readability in mind. Resolutions are getting higher, meaning smaller text is becoming harder and harder to read. The web is trending towards large body text sizes, which is a big plus.</p>
<p>If your users are regular visitors, I guess they can spend their time working out how to change text size in either the browser, or on your web page. But if your visitors are new, what makes you think they are going to hang around for much longer if it&#8217;s difficult, or they have to jump through hoops, just to read it?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DanielsView?a=MdmpwXREaCI:oKkfgpiPZAk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DanielsView?i=MdmpwXREaCI:oKkfgpiPZAk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DanielsView?a=MdmpwXREaCI:oKkfgpiPZAk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/DanielsView?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DanielsView/~4/MdmpwXREaCI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.daniels.net.nz/2010/08/your-text-size-is-too-small/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.daniels.net.nz/2010/08/your-text-size-is-too-small/</feedburner:origLink></item>
		<item>
		<title>Handling ad rip-offs</title>
		<link>http://feedproxy.google.com/~r/DanielsView/~3/jLGByyO79KM/</link>
		<comments>http://www.daniels.net.nz/2010/07/handling-ad-rip-offs/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 09:08:35 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[playstation]]></category>
		<category><![CDATA[sony]]></category>
		<category><![CDATA[tv3]]></category>

		<guid isPermaLink="false">http://www.daniels.net.nz/?p=128</guid>
		<description><![CDATA[A couple of weeks ago I spotted an ad on TV3, it ended like this. Last year I saw an ad on the PlayStation US Blog, it ended like this. In fact, I could go through these ads frame-by-frame and you&#8217;d see that they&#8217;re the same. When I saw it I thought that either TV3 [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago I spotted an ad on TV3, it ended like this.<br />
<img src="http://www.daniels.net.nz/wp-content/uploads/2010/07/dai-henwood-ad.png" alt="" title="dai henwood ad" width="500" height="200" class="aligncenter size-full wp-image-129" /></p>
<p>Last year I saw an ad on the PlayStation US Blog, it ended like this.<br />
<img src="http://www.daniels.net.nz/wp-content/uploads/2010/07/kevin-butler-ad.png" alt="" title="kevin butler ad" width="500" height="200" class="aligncenter size-full wp-image-130" /></p>
<p>In fact, I could go through these ads frame-by-frame and you&#8217;d see that they&#8217;re the same. When I saw it I thought that either TV3 had partnered up with Sony to bring something (well, no), or TV3 are stupid and Sony was going to pwn them.</p>
<p>Turns out there is a third option, Sony will just go in for the ride. After the ad turned up on <a href="http://www.joystiq.com/2010/07/20/kevin-butler-commercial-cloned-in-new-zealand/">Joystiq</a>, <a href="http://twitter.com/TheKevinButler/status/19010980444">KB/PR person</a> posted this on Twitter,</p>
<blockquote><p>Dear TV3: You could have at least put my photo on top of the amp. Sheesh.</p></blockquote>
<p>He&#8217;s referring to how there is a picture of SCEA CEO Jack Tretton on the top of his amp (in fact, I&#8217;m pretty sure in all the commercials there&#8217;s a photo of him somewhere, except for the ModNation Racers one where he was <em>in</em> the ad).</p>
<p>Well, thinking that Sony lawyers are quickly writing up a cease-and-desist notice, the KB/PR person did one more, <a href="http://blog.us.playstation.com/2010/07/22/kevin-butler-and-new-zealand/">posting to the PlayStation Blog</a>,</p>
<blockquote><p>[W]e’d like to help them out and make our ENTIRE LIBRARY OF COMMERCIALS available for them to copy in order to promote their programming. I only ask that TV3 doesn’t use our actual footage, but all future homages of this sort are now Kevin Butler sanctioned.</p></blockquote>
<p>He even asks for a box set of the Flight of the Conchords, some thinking he was making reference to this scene in Episode 1 of Season 2.</p>
<p><object width="535" height="326"><param name="movie" value="http://www.youtube.com/v/The4rh1NwYw&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed  src="http://www.youtube.com/v/The4rh1NwYw&#038;fs=1" type="application/x-shockwave-flash" width="535" height="326" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>I guess this was a win for all &ndash; TV3 got more publicity for the campaign than they were &#8220;expecting&#8221; (yeah, they probably engineered this whole thing), and Sony get more mileage out of an old ad and don&#8217;t come out looking like a giant corporation beating down smaller ones.</p>
<p>Or, Sony still have their lawyers at full force, they&#8217;re just distracting us all.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DanielsView?a=jLGByyO79KM:nfb52kpIMBA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DanielsView?i=jLGByyO79KM:nfb52kpIMBA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DanielsView?a=jLGByyO79KM:nfb52kpIMBA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/DanielsView?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DanielsView/~4/jLGByyO79KM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.daniels.net.nz/2010/07/handling-ad-rip-offs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.daniels.net.nz/2010/07/handling-ad-rip-offs/</feedburner:origLink></item>
		<item>
		<title>Geotagging with WordPress</title>
		<link>http://feedproxy.google.com/~r/DanielsView/~3/W84aGTK1-tA/</link>
		<comments>http://www.daniels.net.nz/2010/07/geotagging-with-wordpress/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 08:41:28 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[geotagging]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.daniels.net.nz/?p=117</guid>
		<description><![CDATA[Recently I acquired tickets to go to Europe, that&#8217;s later this year, and I had a brief thought &#8211; I wonder if I could use WordPress for iPhone to make a travel blog. The intention was to be quick about it, i.e. take a photo, send it off, without thinking. Oh, and have it mark [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I acquired tickets to go to Europe, that&#8217;s later this year, and I had a brief thought &ndash; I wonder if I could use WordPress for iPhone to make a travel blog. The intention was to be quick about it, i.e. take a photo, send it off, without thinking. Oh, and have it mark the location of where the photo was.</p>
<p>My search came to an end surprisingly quick, WordPress for iPhone already does geotagging, it&#8217;s just WordPress itself doesn&#8217;t take advantage of it yet. There is a way however, and I managed to get something going in no time.</p>
<p><img src="http://www.daniels.net.nz/wp-content/uploads/2010/07/IMG_0941.png" alt="" title="" width="320" height="480" class="aligncenter size-full wp-image-120" /></p>
<p>When WordPress for iPhone geotags a post it adds several custom fields to the blog post, but we care about:</p>
<ul>
<li><code>geo_public</code> &ndash; indicates that the geotagging data is public,</li>
<li><code>geo_address</code> &ndash; the address that was picked up,</li>
<li><code>geo_latitude</code> and <code>geo_longitude</code> &ndash; the important bits.</li>
</ul>
<p>If it&#8217;s your blog, it&#8217;s up to you whether you heed <code>geo_public</code>, but this is a good indicator for whether you have a geotagged blog post or not.</p>
<p>Google Maps provides a handy API to provide static images, no key required. The URL is <code>http://maps.google.com/maps/api/staticmap?</code> and then you bundle in a bunch of parameters:</p>
<ul>
<li><code>sensor=false</code> because we aren&#8217;t using a GPS to generate this map, at least, I think that&#8217;s the rule (cause we did)</li>
<li><code>maptype</code> can be satellite, terrain, hybrid or left out for the default street map. I like the terrain maps.</li>
<li><code>size</code> is the size you want the image to be, widthxheight.</li>
<li><code>zoom</code> is your preferred zoom size,</li>
<li><code>markers</code> in my example is <code>size:small|lat,lon</code></li>
</ul>
<p>And you have a nice Google Map! But in your WordPress blog template, find where you output your blog posts (my theme has this in a function) and do the following:<br />
<code>
<pre>&lt;?php if ( get_post_meta($post->ID, "geo_public", true) == "1" ) :
	$map = "http://maps.google.com/maps/api/staticmap?sensor=false&#038;maptype=terrain&#038;size=234x150&#038;zoom=12&#038;markers=size:small|";
	$lat = get_post_meta($post->ID, "geo_latitude", true);
	$lon = get_post_meta($post->ID, "geo_longitude", true);
	$map .= $lat . "," . $lon;
?&gt;
&lt;div class="post-map"&gt;
	&lt;img src="&lt;?php echo $map ?>" alt="Google Map" /&gt;&lt;br /&gt;
	&lt;?php echo get_post_meta($post->ID, "geo_address", true); ?&gt;
&lt;/div&gt;
&lt;?php endif; ?&gt;</pre>
<p></code><br />
<strong>Done!</strong><br />
<img src="http://www.daniels.net.nz/wp-content/uploads/2010/07/geolocation-blog-post.png" alt="" title="geolocation blog post" width="474" height="252" class="aligncenter size-full wp-image-118" /></p>
<p>Another thing of note, the WordPress app will resize photos down to 640&#215;480 and I&#8217;ve found no way of changing it, so make sure your template is ready for it!</p>
<p>Plus, I haven&#8217;t decided if I would do it, mobile roaming charges are expensive, and I&#8217;d have better things to do than tell you all about it.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DanielsView?a=W84aGTK1-tA:plyV8CG5wvI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DanielsView?i=W84aGTK1-tA:plyV8CG5wvI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DanielsView?a=W84aGTK1-tA:plyV8CG5wvI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/DanielsView?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DanielsView/~4/W84aGTK1-tA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.daniels.net.nz/2010/07/geotagging-with-wordpress/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.daniels.net.nz/2010/07/geotagging-with-wordpress/</feedburner:origLink></item>
		<item>
		<title>Plugging into Chrome</title>
		<link>http://feedproxy.google.com/~r/DanielsView/~3/soxNxIS8VWw/</link>
		<comments>http://www.daniels.net.nz/2010/07/plugging-into-chrome/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 05:41:40 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.daniels.net.nz/?p=92</guid>
		<description><![CDATA[Work takes my programmers time, so anytime I think I can do something rather quickly, I&#8217;d try and make an effort. Since I&#8217;ve made Google Chrome my default browser, I thought I&#8217;d sink my teeth into some Chrome Extensions work &#8211; I attempted something similar with Mozilla Firefox, but found the whole development process to [...]]]></description>
			<content:encoded><![CDATA[<p>Work takes my programmers time, so anytime I think I can do something rather quickly, I&#8217;d try and make an effort. Since I&#8217;ve made Google Chrome my default browser, I thought I&#8217;d sink my teeth into some Chrome Extensions work &ndash; I attempted something similar with Mozilla Firefox, but found the whole development process to be clunky. Having a look over the API documentation, with Chrome you can build something up rather rapidly with no browser restarts. Sometimes, you don&#8217;t even need to reload the extension!</p>
<h3>The problem</h3>
<p>So, I went about thinking about what it is I do all the time that I could simplify. My immediate thought was posting links and pictures to Twitter. It&#8217;s something I regularly do, and so something I&#8217;d make easier. The process is rather complicated:</p>
<ol>
<li>Copy the link.</li>
<li>Go to http://j.mp.</li>
<li>Paste the link, hit Shorten.</li>
<li>Click the Copy button.</li>
<li>Go to Twitter (it&#8217;s usually open on another tab).</li>
<li>Type in my message, paste the link.</li>
</ol>
<p>Of course, if I used something like TweetDeck, the process is rather easier, copy the link, go to TweetDeck, paste the link. But, why not just do it in the browser?<br />
<span id="more-92"></span></p>
<h3>The solution</h3>
<p>So, after seeing <a href="http://code.google.com/chrome/extensions/docs.html">what I could do with Chrome</a>, I made a plan,</p>
<ul>
<li>A button on the toolbar will pop open a box that has the address field and a text box to type your tweet in.</li>
<li>Have a photo-picker mode so I can insert the address of the image if needed.</li>
</ul>
<p>And in the background,</p>
<ul>
<li>Have a Popup page with an associated icon.</li>
<li>Have an options page to configure Twitter.</li>
<li>Try and not use something like jQuery, it&#8217;s all rather simple.</li>
</ul>
<p>The first problem was dealing with OAuth. In reading the internet, I figured it is probably best to also have a Background page &ndash; the background page is actually rather useful in storing shared functions across the extension, and to help with messaging. I&#8217;ll write more about OAuth in another blog post, and more on messaging just a bit later.</p>
<p>So, I have an options page that goes into the Background page to call some OAuth magic, and when it gets the required tokens, it will save them into local storage. Local storage is a new HTML5 key/value store, much like cookies, but also much more powerful. You can simply do this,</p>
<p><code>
<pre>var myValue = "not a cookie";
localStorage["cookie"] = myValue;
alert(localStorage["cookie"]);

localStorage.removeKey("cookie");
if (!localStorage["cookie"]) {
	alert("The cookie is no more.");
}</pre>
<p></code></p>
<p>Friggin&#8217; sweet!</p>
<p>So, with that, I can have a function in my background page to check if the user is logged in or not,</p>
<p><code>
<pre>var userData = {
	screenName:	localStorage["screenName"],
	userId:		localStorage["userId"]
};

function IsLoggedIn() {
	if (!userData.userId || userData.userId == 0) {
		return false;
	} else {
		return true;
	}
}</pre>
<p></code></p>
<p>After logging in, we need a page to do the sending. This was actually the first thing I did,</p>
<p><img src="http://www.daniels.net.nz/wp-content/uploads/2010/07/first-chrome-extension.png" alt="" title="" width="141" height="172" class="aligncenter size-full wp-image-97" /></p>
<p>The file, manifest.json, at the root of the extension directory, is where all this magic happens,<br />
<code>
<pre>"browser_action": {
	"default_icon": "icon19.png",
	"default_title": "Send to Twitter",
	"default_popup": "html/popup.html"
},</pre>
<p></code></p>
<p>After some playing around I finally got something looking like this,<br />
<img src="http://www.daniels.net.nz/wp-content/uploads/2010/07/twitter-sender-thingy.png" alt="" title="" width="391" height="165" class="aligncenter size-full wp-image-98" /></p>
<p>To get the address of the currently selected tab was easy as,<br />
<code>
<pre>function applyCurrentTabToAddress() {
	var currentTab = chrome.tabs.getSelected(null, function(tab) {
		addressText.value = tab.url;
	});
}</pre>
<p></code><br />
<small>(There was a bit more code in there to do some URL checking).</small></p>
<p>Almost there! Now to just send it!<br />
<code>
<pre>function sendMessage() {
	var message = messageText.value;
	var address = addressText.value;
	bg.PostLinkToTwitter(message, address);
	window.close();
	return false;
}</pre>
<p></code><br />
bg is a variable I defined earlier as a shorthand for the background page, (it&#8217;s just <code>var bg = chrome.extension.getBackgroundPage();</code>). In the background page I do an AJAX request to the Bitly API to shrink the URL, and then another AJAX request via OAuth to Twitter. There is a little badge animation too, simply set up using an interval and <code>chrome.browserAction.setBadgeText({ text: currentBadge});</code>.</p>
<p>To do the final thing, the pop up to indicate the job has completed, I use the WebKit Desktop Notification API. So long as you have requested permission in the manifest, you can make a desktop notification.<br />
<code>
<pre>function notifyComplete(message) {
	var notify = webkitNotifications.createNotification('',
		'Just sent to Twitter', message);
	notify.show();
	setTimeout(function() {
		notify.cancel();
	}, 4000);
	chrome.browserAction.setBadgeText({text: ""});
}</pre>
<p></code><br />
Notice the timeout to hide the notification window. Desktop notifications don&#8217;t have a set timeout period (stupid idea, but it is rather new), so you have to do it yourself.</p>
<p>Now, next thing I wanted to do was allow for you to chose a picture on the page to also shorten. I first thought you could click a small link, then all images on the page will become &#8220;hot,&#8221; click the picture and the popup reappears. Unfortunately, you cannot programmatically call the popup to open, so that was out.</p>
<p>The solution was to inject a content script on the page. This requires the <code>"http://*/*"</code> permission in the permissions array of the extension manifest. Yeah, that&#8217;s saying that it can access any website.</p>
<p>To only have it load when required, I have the following function,<br />
<code>
<pre>function injectImagePicker() {
	chrome.tabs.executeScript(null, {file: "js/imagePicker.js"});
}</pre>
<p></code><br />
That injects the script onto the current tab. The script is very simple,<br />
<code>
<pre>if (window == top) {
	var myImages = findImages();
	chrome.extension.sendRequest({method: "get_images",
		result: myImages});
}

function findImages() {
	var images = document.getElementsByTagName("img");

	var output = [];
	for (var item in images) {
		if (typeof images[item].src != "undefined") {
			if (output.indexOf(images[item].src) == -1) {
				output.push(images[item].src);
			}
		}
	}
	return output;
};</pre>
<p></code><br />
In the third line of that code block, is the <code>sendRequest</code> call, which is part of the messaging API. It&#8217;s rather simple, that line will send a request to the background page with the JSON.</p>
<p>On the background page, I just have to add a listener to the <code>onRequest</code> event with a callback function,<br />
<code>
<pre>chrome.extension.onRequest.addListener(
	function (request, sender, sendResponse) {
		if (request.method == "get_images") {
			getImageCallback(request.result);
		}
		sendResponse({}); // we don't want to do anything
	}
);</pre>
<p></code><br />
The final <code>sendResponse</code> will close the message pipe. <code>getImageCallback</code> is a callback function that the popup sets on the fly with the background page. We do this because sending messages to other pages isn&#8217;t as easy. We get our little array of images and splat them out on the popup.</p>
<p>Finally, you go into Manage Extensions (tip, right-click the button to get quick access to it), and in the Developer Mode box hit the Pack Extension button.</p>
<p>The end result,<br />
<img src="http://www.daniels.net.nz/wp-content/uploads/2010/07/end-result.png" alt="" title="" width="391" height="392" class="aligncenter size-full wp-image-107" /></p>
<p>Really, the only difficult part of this whole exercise was the OAuth stuff. If you know HTML and Javascript, you&#8217;re pretty well placed for Chrome extension work.</p>
<p>You can download the extension from <a href="/files/TweetThisQuick.crx">here</a>, but I still have a lot of tidy-up work to do, especially in the Javascript department, before I submit it to Chrome.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DanielsView?a=soxNxIS8VWw:ua9pnLUdw_Q:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DanielsView?i=soxNxIS8VWw:ua9pnLUdw_Q:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DanielsView?a=soxNxIS8VWw:ua9pnLUdw_Q:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/DanielsView?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DanielsView/~4/soxNxIS8VWw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.daniels.net.nz/2010/07/plugging-into-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.daniels.net.nz/2010/07/plugging-into-chrome/</feedburner:origLink></item>
		<item>
		<title>Kinect and Move</title>
		<link>http://feedproxy.google.com/~r/DanielsView/~3/5DJU5wHGCx4/</link>
		<comments>http://www.daniels.net.nz/2010/06/kinect-and-move/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 04:32:08 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[motion control]]></category>
		<category><![CDATA[sony]]></category>

		<guid isPermaLink="false">http://www.daniels.net.nz/?p=71</guid>
		<description><![CDATA[E3 2010 is over, and now we have a better idea of the motion control systems that the two big companies (Nintendo already has it) have been telling us about for over a year. Microsoft have finally unveiled the name for Project Natal &#8211; Kinect. Sony also unveiled some more games, a price point and [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.daniels.net.nz/wp-content/uploads/2010/06/kinect-and-move1.png" alt="" title="kinect-and-move" width="520" height="145" class="aligncenter size-full wp-image-79" /><br />
E3 2010 is over, and now we have a better idea of the motion control systems that the two big companies (Nintendo already has it) have been telling us about for over a year. Microsoft have finally unveiled the name for Project Natal &#8211; Kinect. Sony also unveiled some more games, a price point and a release date.</p>
<p>Microsoft had a huge marketing spending splurge, which kinda made me sick just looking at it all. As a gamer, I don&#8217;t care what some actor says about a peripheral (cheque please). But then, Microsoft isn&#8217;t aiming Kinect at me, they want that whole casual market to cash in on.</p>
<p>Controller free gaming isn&#8217;t new, Sony did it during the PS2 days with the EyeToy. It was fun, but you got over it quickly, and came about the same time the SingStar franchise was starting up &#8211; the party was always up for more SingStar than EyeToy. But, it never took off, and never got any compelling gaming experiences. As Richard Marks (the guy at Sony behind the EyeToy and Move) has said about it, sometimes you just want a button.</p>
<p>Now Microsoft is trying it on for size, and whilst they&#8217;ve got better technology, with infrared and 3D cameras and stuff, they&#8217;re still to convince me that it is a better system. There are signs that it is, but they&#8217;re going to have to capture me on more than the first round of shovelware. Which I think is the problem, Microsoft is focusing too much on the casual gamer, rather than its core audience. As IGN <a href="http://au.xbox360.ign.com/articles/109/1099085p1.html">have pointed out</a>,</p>
<blockquote><p>Microsoft needs the core audience to tell the casual gamer what is cool. And if Microsoft doesn&#8217;t get that long-time Xbox 360 gamer behind Kinect, it will fail. We need some games that show what Kinect will do for someone who loves games like Halo or Castlevania or Gears of War. I&#8217;m not saying it has to be a first-person shooter where you are the gun, but we need to see more gamers that have depth to them. </p></blockquote>
<p>Sony on the otherhand have a system built around the PlayStation Eye. They&#8217;ve been trialling ball-on-stick tracking for years now, since about 2000 (<a href="http://www.youtube.com/watch?v=isHJAyCICw4">here is Richard Marks&#8217; demo</a> from about 2003/2004), but only now got a commercial product. PlayStation Move doesn&#8217;t just use the wand though, but it can do head and body tracking, facial recognition, all that fun stuff that&#8217;s ripe for exploitation.</p>
<p>There is definitely a broader range of games on Sony&#8217;s system, games that cater to the casual and the &#8220;core&#8221; gamer, and they&#8217;re also showing how it can be flexible by enabling support in other games as well, such as Heavy Rain and Little Big Planet. They must be taking their lessons about the EyeToy seriously &#8211; no compelling games? No sale.</p>
<p>Whilst this is the &#8220;first wave&#8221; that any platform has to suffer through, this first wave of games is coming right in the middle of an already mature game console cycle. We are getting bigger and better games all the time, and that was especially evident at the Sony press conference where they just kept whacking you with new, big, better games. It&#8217;s all up to Microsoft and Sony to show us the direction they want to head in with their motion controllers.</p>
<p>Meanwhile, Nintendo is laughing to the bank with all the core games they just announced for the Wii.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DanielsView?a=5DJU5wHGCx4:8SQTVVvjJEs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DanielsView?i=5DJU5wHGCx4:8SQTVVvjJEs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DanielsView?a=5DJU5wHGCx4:8SQTVVvjJEs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/DanielsView?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DanielsView/~4/5DJU5wHGCx4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.daniels.net.nz/2010/06/kinect-and-move/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.daniels.net.nz/2010/06/kinect-and-move/</feedburner:origLink></item>
		<item>
		<title>HTML5-ing it up</title>
		<link>http://feedproxy.google.com/~r/DanielsView/~3/NTKT-ch0Xsw/</link>
		<comments>http://www.daniels.net.nz/2010/06/html5-ing-it-up/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 04:29:22 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.daniels.net.nz/?p=61</guid>
		<description><![CDATA[Woohoo! OK, not really. All I did was use the &#60;!DOCTYPE html&#62; doctype. This site doesn&#8217;t use any HTML5 features, but it does use some CSS3. The reason? One web browser treats unknown tags differently to the rest. That browser, Internet Explorer. Until I found Dive into HTML5. It&#8217;s a free &#8220;book,&#8221; detailing HTML5 changes [...]]]></description>
			<content:encoded><![CDATA[<p>Woohoo!<br />
<img src="http://www.daniels.net.nz/wp-content/uploads/2010/06/html5-300x19.png" alt="" title="html5" width="300" height="19" class="aligncenter size-medium wp-image-62" /><br />
OK, not really. All I did was use the <code>&lt;!DOCTYPE html&gt;</code> doctype. This site doesn&#8217;t use any HTML5 features, but it does use some CSS3.</p>
<p>The reason? One web browser treats unknown tags differently to the rest. That browser, Internet Explorer.</p>
<p>Until I found <a href="http://www.diveintohtml5.com">Dive into HTML5</a>. It&#8217;s a free &#8220;book,&#8221; detailing HTML5 changes and even explains how you can HTML5-ify your site. And, it even describes a quirk in IE&#8217;s JavaScript that can be used to enable HTML5 components (of course, it means that your site is dependent on JS being turned on).</p>
<p>HTML5 was designed so that older browsers can still parse the document, unfortunately, it depended on functionality that 60% (or so) of the web browsing population don&#8217;t have.</p>
<p>You may be wondering why I used the HTML5 doctype then. Well, the answer is simple &ndash; it&#8217;s easy to remember. One annoyance I had with HTML4 was that if I wanted standards, I had to find a website that listed all the correct doctypes, figure out what I wanted, and pasted that in (yeah, I can&#8217;t remember them). HTML5 only has one, and it&#8217;s forwards compatible. (Who knows what they&#8217;ll do with HTML6, although I guess we won&#8217;t find out for another 20 years.)</p>
<p>We have a long way to go yet.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DanielsView?a=NTKT-ch0Xsw:XrZhZGnMRNs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DanielsView?i=NTKT-ch0Xsw:XrZhZGnMRNs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DanielsView?a=NTKT-ch0Xsw:XrZhZGnMRNs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/DanielsView?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DanielsView/~4/NTKT-ch0Xsw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.daniels.net.nz/2010/06/html5-ing-it-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.daniels.net.nz/2010/06/html5-ing-it-up/</feedburner:origLink></item>
		<item>
		<title>My data is open to everyone – but not really</title>
		<link>http://feedproxy.google.com/~r/DanielsView/~3/820VGAE7l88/</link>
		<comments>http://www.daniels.net.nz/2010/06/my-data-is-open-to-everyone-but-not-really/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 03:57:34 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://www.daniels.net.nz/?p=29</guid>
		<description><![CDATA[Late last year Facebook undertook a massive Privacy Settings overhaul. It was deprecating the &#8220;Networks&#8221; in favour of pages, i.e. you didn&#8217;t belong to the New Zealand Network, but the New Zealand page. In doing so, Facebook popped up on log in a dialog saying &#8220;We changed how our privacy settings works, please review your [...]]]></description>
			<content:encoded><![CDATA[<p>Late last year Facebook undertook a massive Privacy Settings overhaul. It was deprecating the &#8220;Networks&#8221; in favour of pages, i.e. you didn&#8217;t belong to the New Zealand Network, but the New Zealand page. In doing so, Facebook popped up on log in a dialog saying &#8220;We changed how our privacy settings works, please review your settings below.&#8221; I looked at them, and while the dialog was flakey (I complained that it wasn&#8217;t clear what &#8220;My current settings&#8221; was), I looked through them and determined my current settings were what I wanted.</p>
<h3>Social Graphs and Personalisation</h3>
<p>Facebook announced the Social Graph system and instant personalisation about a month ago. The former seems a lot like Twitter, and the latter seems to be something that should ask for your permission. Facebook stipulated that the only data sent is stuff that is open the everyone, yet then the cries of privacy being breached came. What happened?</p>
<p>My settings are pretty strict, I only share things between Friends or Friends of Friends. Well, there is the basic directory info that I share with everyone, and that&#8217;s because I want people to find me (a social network is for finding people and making connections, and if I can&#8217;t find you, then you don&#8217;t know what social networking is). Only people who I say &#8220;I know this person&#8221; can see what I&#8217;m doing and what I&#8217;m up to (although, most of the time, it&#8217;s to the oh-so-public Twitter, so, you know what I&#8217;m doing anyway).</p>
<p>And here&#8217;s the kicker, everyone was saying that Instant Personalisation was opt-out. Problem was, I never opted out, or opted in, and I&#8217;m <em>not in it</em>. I read the complaints on Twitter, when I inquired I got a &#8220;You&#8217;re kidding right?&#8221; When I figured out what the hell was going on, I found the Instant Personalisation screen and that the box wasn&#8217;t checked, and never has been.</p>
<h3>Everyone, it means Everyone</h3>
<p>Facebook uses the term &#8220;Everyone.&#8221; I can see why, Everyone is all emcompassing, and pretty much summarises in a single word who you are sharing your data with. But alas, there is that vague-ness about it. &#8220;So, Everyone means just people I&#8217;m friends with, right?&#8221;</p>
<p>When Facebook said &#8220;OK, now we have these API&#8217;s that lets people access that data,&#8221; people just went &#8220;Wait a minute. So, my data is public now?&#8221;</p>
<p>Yes, your data is public now, and has been since you said &#8220;Everyone&#8221; could access it.</p>
<p>They should probably call it something else, maybe, &#8220;Everyone, including people and businesses you don&#8217;t know.&#8221;</p>
<h3>But, it did yield good results</h3>
<p>The best thing about the privacy furor, good things did happen.</p>
<p>Facebook finally simplified the privacy controls &ndash; still giving that granular control that everyone wants, but made it simple at the same time. They should have had that to start with.</p>
<p>They also finally clarified what Everyone means&#8230;</p>
<blockquote><p><strong>Information you&#8217;ve shared with everyone &#8211; as well as your name, profile picture, gender and networks &#8211; could be seen by anyone on the Internet.</strong> Please be aware that it will be visible to anyone viewing your profile and applications and websites you and your friends use will be able to access it.</p></blockquote>
<p>(Emphasis, theirs.)</p>
<p>In fact, I love their <a href="http://www.facebook.com/privacy/explanation.php">Privacy guide</a>. Go and read it. It tells you exactly what&#8217;s going on, without the legalese. I wish <em>every</em> web site did this, for all legal policies. Take a look at the <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/nz/">Creative Commons license I&#8217;ve got on this blog</a>. It gives you an easy to read version of a legal document that can be understood by anyone looking at it for five seconds. If you must, you can dig deeper and look at the <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/nz/legalcode">legal license that sits behind it</a>.</p>
<p>Facebook also had a bug appear during the middle of all this which let you pretty much log in as someone else just by using a simple tool that lets you look at your profile as someone else. I expect QA would be tighter now on privacy than ever before.</p>
<p>The problem wasn&#8217;t just Facebook here, it was everyone, including people and businesses we don&#8217;t know. Facebook have done some pretty dodgy stuff (the do-first-ask-later game is getting pretty tiring), but when I read their privacy policy all I saw was &#8220;if you said that this information is public, then fair game.&#8221; Facebook asked, people said yes, but then changed their minds when it got real.</p>
<p>Of course, the simpler thing is to not put stuff up there you don&#8217;t want strangers to know.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DanielsView?a=820VGAE7l88:d-gVH1_d-AU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DanielsView?i=820VGAE7l88:d-gVH1_d-AU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DanielsView?a=820VGAE7l88:d-gVH1_d-AU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/DanielsView?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DanielsView/~4/820VGAE7l88" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.daniels.net.nz/2010/06/my-data-is-open-to-everyone-but-not-really/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.daniels.net.nz/2010/06/my-data-is-open-to-everyone-but-not-really/</feedburner:origLink></item>
		<item>
		<title>Comments</title>
		<link>http://feedproxy.google.com/~r/DanielsView/~3/HFXzPySZ-1o/</link>
		<comments>http://www.daniels.net.nz/2010/06/comments/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 09:46:49 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[comic]]></category>

		<guid isPermaLink="false">http://www.daniels.net.nz/?p=13</guid>
		<description><![CDATA[more]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.shoeboxblog.com/?p=14066"><img src="http://www.daniels.net.nz/wp-content/uploads/2010/06/intentional-typo.jpg" alt="" title="intentional-typo" width="499" height="498" class="aligncenter size-full wp-image-14" /></a><br />
<a href="http://www.shoeboxblog.com/?cat=1279">more</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DanielsView?a=HFXzPySZ-1o:xa9ZXIOMOWI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DanielsView?i=HFXzPySZ-1o:xa9ZXIOMOWI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DanielsView?a=HFXzPySZ-1o:xa9ZXIOMOWI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/DanielsView?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DanielsView/~4/HFXzPySZ-1o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.daniels.net.nz/2010/06/comments/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.daniels.net.nz/2010/06/comments/</feedburner:origLink></item>
		<item>
		<title>Web resources on the BP Oil Spill</title>
		<link>http://feedproxy.google.com/~r/DanielsView/~3/17OE3wtjwOY/</link>
		<comments>http://www.daniels.net.nz/2010/06/web-resources-on-the-bp-oil-spill/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 06:18:49 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[current event]]></category>
		<category><![CDATA[disaster]]></category>

		<guid isPermaLink="false">http://www.daniels.net.nz/?p=10</guid>
		<description><![CDATA[Google appear to have a website called Google Crisis Response which is available when disaster strikes. It&#8217;s currently active with the BP Oil Spill. There are a compilation of Google Maps layers, with forecasts to where the oil is headed, and the latest satellite imagery. Then there are links to Google Earth/KML files with this, [...]]]></description>
			<content:encoded><![CDATA[<p>Google appear to have a website called Google Crisis Response which is available when disaster strikes. It&#8217;s currently active with the <a href="http://www.google.com/crisisresponse/oilspill/">BP Oil Spill</a>.</p>
<p>There are a compilation of Google Maps layers, with forecasts to where the oil is headed, and the latest satellite imagery. Then there are links to Google Earth/KML files with this, and more (such as animations of the spill). There is also this great <a href="http://earth.tryse.net/Oil_Spill.kmz">overlay with all the worlds oil spills</a> (and rapidly updating data on the current one).</p>
<p>The Daily Kos has an article on how to do &#8220;<a href="http://www.dailykos.com/storyonly/2010/5/11/11558/1890">fucking proper fucking booming</a>.&#8221; Quite interesting, and here&#8217;s a sum up in picture format!</p>
<p><img alt="Fucking Boom" src="http://farm4.static.flickr.com/3410/4597166301_aec23fbe25_o.jpg" class="aligncenter" width="520" height="332" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DanielsView?a=17OE3wtjwOY:pRuuTJXGZdc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DanielsView?i=17OE3wtjwOY:pRuuTJXGZdc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DanielsView?a=17OE3wtjwOY:pRuuTJXGZdc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/DanielsView?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DanielsView/~4/17OE3wtjwOY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.daniels.net.nz/2010/06/web-resources-on-the-bp-oil-spill/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.daniels.net.nz/2010/06/web-resources-on-the-bp-oil-spill/</feedburner:origLink></item>
	</channel>
</rss>
