<?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>tomputer &#187; widgets</title>
	<atom:link href="http://droza.net/blog/blog/tags/widgets/feed/" rel="self" type="application/rss+xml" />
	<link>http://droza.net/blog</link>
	<description>Software. Gadgets. Music. Rants. By Tom D\&#039;Roza</description>
	<lastBuildDate>Thu, 23 Dec 2010 13:26:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Drawing graphs in a webpage</title>
		<link>http://droza.net/blog/2009/03/08/drawing-graphs-in-a-webpage/</link>
		<comments>http://droza.net/blog/2009/03/08/drawing-graphs-in-a-webpage/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 17:28:18 +0000</pubDate>
		<dc:creator>tdroza</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://droza.net/blog/?p=140</guid>
		<description><![CDATA[As you may know if you follow me on Twitter, a couple of weeks ago I started to investigate ways of producing graphs within a webpage. The driver for this was for a dashboard application to track progress against targets and was one of those &#8220;JFDI&#8221; projects at work that we all get sprung upon [...]]]></description>
			<content:encoded><![CDATA[
<!-- wp-jquery-lightbox, a WordPress plugin by ulfben --> 
<div class="mceTemp mceIEcenter" style="text-align: left;">As you may know if you follow me on <a title="tdroza on Twitter" href="http://twitter.com/tdroza" target="_blank">Twitter</a>, a couple of weeks ago I started to investigate ways of producing graphs within a webpage. The driver for this was for a dashboard application to track progress against targets and was one of those &#8220;JFDI&#8221; projects at work that we all get sprung upon us from time to time.  The key requirement was for slick looking graphs  above all else.  For speed of development I decided I wanted a client-side solution so that quickly focussed my investigation around 3 approaches:</p>
<div class="mceTemp mceIEcenter" style="text-align: left;">
<ol>
<li>Images generated off-platform (Google Charts)</li>
<li>Flash (Fusion Charts)</li>
<li>Javascript (JQuery + Flot)</li>
</ol>
</div>
<div class="mceTemp mceIEcenter" style="text-align: left;">For my project we focussed on Option 2 and 3 and eventually setttled on the Javascript route. I&#8217;ve summarised below the factors that influenced our decision.</div>
<div class="mceTemp mceIEcenter" style="text-align: left;">
<h1>Images (Google Charts)</h1>
<p><a href="http://code.google.com/apis/chart" target="_blank">http://code.google.com/apis/chart</a></p>
<p>I&#8217;ve been looking for an excuse to use Google Charts for some time as it&#8217;s a very simple API for embedding an image in a webpage yet produces really good looking charts (far better than I&#8217;ve seen in equivalent comercial applications). To use GoogleCharts you simply generate a url like the one below, and use it as the src attribute in an image tag.</p>
<pre class="brush: xml; title: ;">

http://chart.apis.google.com/chart?cht=lc&amp;amp;amp;amp;amp;amp;amp;chs=200x100&amp;amp;amp;amp;amp;amp;amp;chd=s:ithankYouGodformostthisamazingdayforthel&amp;amp;amp;amp;amp;amp;amp;chxt=x,y&amp;amp;amp;amp;amp;amp;amp;chxl=0:|Apr|May|June|1:||50+Kb
</pre>
<p><img class="alignnone" src="http://chart.apis.google.com/chart?cht=lc&amp;chs=200x100&amp;chd=s:ithankYouGodformostthisamazingdayforthel&amp;chxt=x,y&amp;chxl=0:|Apr|May|June|1:||50+Kb" alt="" width="200" height="100" /></p>
<p>Google Charts supports an extensive range of chart types beyond the regular bar, line &amp; pie and the images can be annotated with custom text for the legend, axes and data series. Like all Google&#8217;s API services, Charts is free to use, and although there&#8217;s no hard rate limit Google do reserve the right to block any traffic that they detect as &#8220;abusive&#8221; beyond 250,000 hits per day (not an issue for my application but worth bearing in mind).</p></div>
<div class="mceTemp mceIEcenter" style="text-align: left;">
<h1>Flash (Fusion Charts)</h1>
<p><a href="http://www.fusioncharts.com/" target="_blank">http://www.fusioncharts.com/</a></p>
<p>For the type of slick interactive graphs that were needed for this project, flash was in many ways the obvious choice. Personally I&#8217;m not a big fan of flash, partly because I have zero flash skills but also because downloading flash files often bloats the page unecessarily and is littered with fancy effects that apart from being annoying are usually not accessible. However, after taking a look at the Fusion Charts gallery I had to give it serious cosideration becuase it ha&#8217;s support for a huge range of chart types (many of which I hadn&#8217;t even seen before I don&#8217;t really know what they represent!). There can be no denying that the charts themselves are really nice to look at and the tutorials show how easy it is to get set up and running.</p>
<div id="attachment_142" class="wp-caption aligncenter" style="width: 310px"><a class="thickbox" href="http://test.droza.net/fusion?KeepThis=true&amp;TB_iframe=true&amp;height=600&amp;width=800" target="_self"><img class="size-medium wp-image-142" title="FusionCharts" src="http://droza.net/blog/wp-content/uploads/2009/03/fusion-300x168.gif" alt="Click the image to view working demo" width="300" height="168" /></a><p class="wp-caption-text">Click the image to view working demo</p></div>
<p>It wasn&#8217;t until I created a quick prototype using some static data (click the image above) that I started to have a few doubts: When you embed a FusionCharts flash object on your webpage, you pass it a url where the source data will be retrieved from. This data must be in the FusionCharts prescribed XML format which is fine if you&#8217;re creating your own data sources, but not if you want to consume an existing csv/xml/json feed. There&#8217;s no Javascript API to the flash object so you can&#8217;t parse data within your page and then pass it to the flash to render. Also, if you wanted to allow the user to zoom in and out of the chart, or toggle series on and off, your chart would need to fetch a new dynamically generated data feed each time. This adds load on  the server, but also degrades performance because of the round-trip delay in requesting new data which seems unecessary when all the data is already held within the page and just needs to be filtered. I also discovered that although the flash file is only 60KB in size, that&#8217;s only for one chart type, if you want to switch to bar or pie you have to load another flash file each time.  For these reasons and also because FusionCharts is proprietary software that we can&#8217;t edit/enhance and comes with a (albeit very reasonable) licence fee we decided to rule out this option.</p></div>
</div>
<div class="mceTemp mceIEcenter" style="text-align: left;">
<h1>Javascript (JQuery + Flot)</h1>
<p><a href="http://code.google.com/p/flot/" target="_blank">http://code.google.com/p/flot/</a></p>
<p>Flot turned out to be a great find. It produces very customisable, great looking graphs, and the API will feel familiar to anyone that has worked with the Google Maps API &#8211; import a JS library, create an element on the page to contain your chart, then create a JS plot object and pass it your data and some (optional) configuration arguments. The beauty of Flot is that it can interact with the page around it by raising events when the user clicks the chart, selects an area or hovers near a data point. Using the JS API you can redraw the chart either with different min/max boundaries (for zooming) or with different data series (to toggle data on/off). Also, because data is passed to the chart as a JSON object, the data can be fetched in any format from a remote source (css/xml/JSON) and can be parsed/filtered within the browser. Another great feature is that events in your chart can be setup to affect another chart on the page so for example, in the demo below there&#8217;s a small overview chart that is used to indicate the area of focus when the user zooms on the main chart. In the example below, I retrieve the data from a remote CSV file (I&#8217;m actually using JSON for the real app but this was an interesting experiment).</p></div>
<div id="attachment_141" class="wp-caption aligncenter" style="width: 310px"><a class="thickbox" href="http://test.droza.net/flot?KeepThis=true&amp;TB_iframe=true&amp;height=600&amp;width=800" target="_self"><img class="size-medium wp-image-141" title="Flot" src="http://droza.net/blog/wp-content/uploads/2009/03/flot-300x221.gif" alt="Click the image to view working demo" width="300" height="221" /></a><p class="wp-caption-text">Click the image to view working demo</p></div>
<p>Flot is by no means perfect: it&#8217;s only at version 0.6 (and hasn&#8217;t been updated in around 12months)  and although the features are impressive, there are a few short falls.  It really only supports line and bar charts (there&#8217;s a patch discussed on the flot issue tracker that adds support for pie charts). Also, to get certain features to work (e.g. tooltips and zooming) you need to write you own implementation using the events generated by flot &#8211; there&#8217;s no chart.enableZooming() here! Having said that, these are only minor criticisms about features that aren&#8217;t even available at all in the alternative solutions.</p>
<h1>Also worthy of a mention:</h1>
<h2>Sparklines</h2>
<p><a href="http://www.omnipotent.net/jquery.sparkline/" target="_blank">http://www.omnipotent.net/jquery.sparkline/</a></p>
<p>Toward the end of my search I found Sparklines (via <a href="http://twitter.com/stevereynolds">@stevereynolds</a>). It&#8217;s a nifty little jquery plugin for producing tiny little charts &#8211; similar to the &#8220;summary&#8221; charts on the Google Analytics dashboard page. I haven&#8217;t actually used it (yet) but it looks useful for times when you want several small graphs on a single page to give an indication of trends and to entice users to dig deeper for more in-depth analysis.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fdroza.net%2Fblog%2F2009%2F03%2F08%2Fdrawing-graphs-in-a-webpage%2F&amp;title=Drawing+graphs+in+a+webpage" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdroza.net%2Fblog%2F2009%2F03%2F08%2Fdrawing-graphs-in-a-webpage%2F&amp;title=Drawing+graphs+in+a+webpage" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fdroza.net%2Fblog%2F2009%2F03%2F08%2Fdrawing-graphs-in-a-webpage%2F&amp;title=Drawing+graphs+in+a+webpage" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fdroza.net%2Fblog%2F2009%2F03%2F08%2Fdrawing-graphs-in-a-webpage%2F&amp;title=Drawing+graphs+in+a+webpage" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fdroza.net%2Fblog%2F2009%2F03%2F08%2Fdrawing-graphs-in-a-webpage%2F&amp;title=Drawing+graphs+in+a+webpage', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdroza.net%2Fblog%2F2009%2F03%2F08%2Fdrawing-graphs-in-a-webpage%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fdroza.net%2Fblog%2F2009%2F03%2F08%2Fdrawing-graphs-in-a-webpage%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fdroza.net%2Fblog%2F2009%2F03%2F08%2Fdrawing-graphs-in-a-webpage%2F&amp;title=Drawing+graphs+in+a+webpage" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fdroza.net%2Fblog%2F2009%2F03%2F08%2Fdrawing-graphs-in-a-webpage%2F&amp;title=Drawing+graphs+in+a+webpage" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://droza.net/blog/2009/03/08/drawing-graphs-in-a-webpage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XBMChumby sourcecode is now public</title>
		<link>http://droza.net/blog/2008/11/04/xbmchumby-sourcecode-is-now-public/</link>
		<comments>http://droza.net/blog/2008/11/04/xbmchumby-sourcecode-is-now-public/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 22:22:25 +0000</pubDate>
		<dc:creator>tdroza</dc:creator>
				<category><![CDATA[Chumby]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[widgets]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[xbmc]]></category>

		<guid isPermaLink="false">http://droza.net/blog/?p=90</guid>
		<description><![CDATA[It&#8217;s taken me a while I&#8217;ll admit but I&#8217;ve just got around to releasing the sourcecode for the XBMChumby widget I wrote which displays the XBMC &#8220;Now Playing&#8221; queue on the Chumby. I decided early on that my very basic skills as a flash/ActionScript developer weren&#8217;t up to developing this to it&#8217;s full potential so [...]]]></description>
			<content:encoded><![CDATA[
<!-- wp-jquery-lightbox, a WordPress plugin by ulfben --> 
<p>It&#8217;s taken me a while I&#8217;ll admit but I&#8217;ve just got around to releasing the sourcecode for the XBMChumby widget I wrote which displays the XBMC &#8220;Now Playing&#8221; queue on the Chumby. I decided early on that my very basic skills as a flash/ActionScript developer weren&#8217;t up to developing this to it&#8217;s full potential so now if anyone is interested in taking it further please checkout the code and get in touch if you have any problems building it etc etc etc.</p>
<p>The sourceforge project page is: https://sourceforge.net/projects/xbmchumby/</p>
<p>&#8230;or you can point your CVS client at xbmchumby.cvs.sourceforge.net</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fdroza.net%2Fblog%2F2008%2F11%2F04%2Fxbmchumby-sourcecode-is-now-public%2F&amp;title=XBMChumby+sourcecode+is+now+public" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdroza.net%2Fblog%2F2008%2F11%2F04%2Fxbmchumby-sourcecode-is-now-public%2F&amp;title=XBMChumby+sourcecode+is+now+public" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fdroza.net%2Fblog%2F2008%2F11%2F04%2Fxbmchumby-sourcecode-is-now-public%2F&amp;title=XBMChumby+sourcecode+is+now+public" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fdroza.net%2Fblog%2F2008%2F11%2F04%2Fxbmchumby-sourcecode-is-now-public%2F&amp;title=XBMChumby+sourcecode+is+now+public" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fdroza.net%2Fblog%2F2008%2F11%2F04%2Fxbmchumby-sourcecode-is-now-public%2F&amp;title=XBMChumby+sourcecode+is+now+public', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdroza.net%2Fblog%2F2008%2F11%2F04%2Fxbmchumby-sourcecode-is-now-public%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fdroza.net%2Fblog%2F2008%2F11%2F04%2Fxbmchumby-sourcecode-is-now-public%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fdroza.net%2Fblog%2F2008%2F11%2F04%2Fxbmchumby-sourcecode-is-now-public%2F&amp;title=XBMChumby+sourcecode+is+now+public" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fdroza.net%2Fblog%2F2008%2F11%2F04%2Fxbmchumby-sourcecode-is-now-public%2F&amp;title=XBMChumby+sourcecode+is+now+public" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://droza.net/blog/2008/11/04/xbmchumby-sourcecode-is-now-public/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My first Chumby widget: XBMChumby</title>
		<link>http://droza.net/blog/2008/02/24/xbmchumby/</link>
		<comments>http://droza.net/blog/2008/02/24/xbmchumby/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 19:47:14 +0000</pubDate>
		<dc:creator>tdroza</dc:creator>
				<category><![CDATA[Chumby]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[widgets]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[widget]]></category>
		<category><![CDATA[xbmc]]></category>
		<category><![CDATA[xbox]]></category>

		<guid isPermaLink="false">http://droza.net/blog/2008/02/24/xbmchumby/</guid>
		<description><![CDATA[Intro I&#8217;ve created a Chumby widget to act as a basic remote display for XBMC. I&#8217;ve been using it and reworking it over the last couple of weeks and I think it&#8217;s now in a state where I can make it available for others to try. It works by retreiving an RSS feed from the [...]]]></description>
			<content:encoded><![CDATA[
<!-- wp-jquery-lightbox, a WordPress plugin by ulfben --> 
<p><strong>Intro</strong><br />
I&#8217;ve created a <a title="Chumby" href="http://www.chumby.com" target="_blank">Chumby</a> widget to act as a basic remote display for <a title="XBox Media Center" href="http://www.xbmc.org" target="_blank">XBMC</a>. I&#8217;ve been using it and reworking it over the last couple of weeks and I think it&#8217;s now in a state where I can make it available for others to try. It works by retreiving an RSS feed from the Xbox that contains a list of the next 5 tracks in the music playlist. If no music is playing, the RSS feed will be empty. To achieve this I&#8217;ve written a simple web page that sits on the Xbox and uses the XBMC API to retreive information about the current playlist. The widget also uses <a title="API docs" href="http://www.xbmc.org/wiki/?title=WebServerHTTP-API" target="_blank">XBMC&#8217;s http API</a> to provide basic controls to play, pause and skip tracks. This is my first attempt at using ActionScript so the functionality is fairly basic, but if others find it useful I may add more features, or release the sourcecode.</p>
<p><a title="xbmchumby.jpg" href="http://droza.net/blog/wp-content/uploads/2008/02/xbmchumby.jpg" rel="lightbox[48]"><img src="http://droza.net/blog/wp-content/uploads/2008/02/xbmchumby.jpg" alt="xbmchumby.jpg" /></a><br />
<span id="more-48"></span><br />
<strong>Installation</strong><br />
To get the widget running, download <a href="http://www.droza.net/chumby/xbmc_rss.zip">this</a> zip file and copy the contents to the &#8220;web&#8221; folder on your xbox (usually /e:/apps/xbmc/web). The zip contains the web page to generate the RSS and a crossdomain.xml file to make the RSS accessible from the Chumby. You may need to edit the playlist.asp file to configure the IP address of your xbox which defaults to 10.0.0.5 &#8211; you can find this from the Settings &gt; Network Settings screen in XBMC. Also, from the settings screen in XBMC make sure that the web server is enabled and doesn&#8217;t require a password.</p>
<p>Next, just log in to your profile on chumby.com and add the XBMChumby widget (in the &#8220;Entertainmnet&#8221; category). The configuration widget will prompt for the IP address of your Xbox. Then just start playing some music on the Xbox and when the widget loads on the Chumby it will retrieve the RSS feed from the Xbox and show you the next 5 tracks in the playlist (along with album art for the first track). At the moment the widget only retrieves the RSS feed when it first loads so make sure that it isn&#8217;t the only widget in your channel otherwise it will never refresh.</p>
<div><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><embed type="application/x-shockwave-flash" width="425" height="355"></embed></object><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/kVVcplUZJ0M" /><param name="wmode" value="transparent" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://www.youtube.com/v/kVVcplUZJ0M" wmode="transparent"></embed></object></div>
]]></content:encoded>
			<wfw:commentRss>http://droza.net/blog/2008/02/24/xbmchumby/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Chumby: Is it as good as I&#8217;d hoped?</title>
		<link>http://droza.net/blog/2008/02/08/chumby/</link>
		<comments>http://droza.net/blog/2008/02/08/chumby/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 21:27:41 +0000</pubDate>
		<dc:creator>tdroza</dc:creator>
				<category><![CDATA[Chumby]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[nabaztag]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[widgets]]></category>
		<category><![CDATA[diggnation]]></category>
		<category><![CDATA[kevin rose]]></category>

		<guid isPermaLink="false">http://droza.net/blog/2008/02/08/chumby/</guid>
		<description><![CDATA[I&#8217;ve been monitoring the Chumby project since I first saw the device on an episode of Diggnation over a year ago&#8230; Kevin had been given one of the alpha prototypes at FooCamp and gave a quick description. I&#8217;ve been waiting since then for the device to get a public release &#8211; I guess that shows [...]]]></description>
			<content:encoded><![CDATA[
<!-- wp-jquery-lightbox, a WordPress plugin by ulfben --> 
<p align="left">I&#8217;ve been monitoring the <a title="Chumby" href="http://www.chumby.com" target="_blank">Chumby</a> project since I first saw the device on an episode of <a title="diggnation" href="http://www.revision3.com/diggnation" target="_blank">Diggnation</a> over a year ago&#8230; Kevin had been given one of the alpha prototypes at FooCamp and gave a quick description. I&#8217;ve been waiting since then for the device to get a public release &#8211; I guess that shows the power of product placement even though I&#8217;m sure no cash had changed hands for it to appear on the show. People who know me or have read <a href="http://droza.net/blog/2007/11/12/my-new-toy-nabaztag-or-how-to-make-something-useful-by-providing-an-api/">my thoughts</a> on this before will know that I think there&#8217;s a lot of potential for an &#8220;ambient&#8221; device that provides up-to-date information from the online world without the user having to be sat in front of a PC. I was disappointed with the <a title="Nabaztag.com" href="http://www.nabaztag.com" target="_blank">Nabaztag</a> because of limitations with the user interface, but eager to get my hands on a Chumby as it seemed far more advanced. The Chumby was originally pitched as a new take on clock-radio for the internet enabled 21st century but I think that description groslly undersells it (and at $179, it&#8217;s an epensive way to wake up in the morning).</p>
<p align="left"><a title="My Chumby pics on flickr" href="http://flickr.com/photos/tdroza/tags/chumby" target="_blank"></a></p>
<p style="text-align: center"><a title="My Chumby pics on flickr" href="http://flickr.com/photos/tdroza/tags/chumby" target="_blank"><img src="http://droza.net/blog/wp-content/uploads/2008/02/latte_cup.jpg" alt="Chumby" /></a></p>
<p><span id="more-42"></span>Put simply, the Chumby is an always on device with a 3.5&#8243; touchscreen and a wifi connection to get online and is manufactured by Chumby Industries. It runs Linux (but without the user having to know anything about Linux), has (stereo) speakers, 2 USB ports for future expansion (or for connection to additional storage or an iPod) and built-in acelerometer that can be used by Chumby software as an input device. It&#8217;s all packaged in a padded leather housing so is squishy to hold. In fact the housing contains a &#8220;squeeze sensor&#8221; as an additional input. The great thing about the whole Chumby project though is that it&#8217;s OpenSource &#8211; that&#8217;s both software and hardware. If you&#8217;re really keen you can download the parts list and schematics and build your own Chumby from scratch!</p>
<p>The Chumby runs flash-lite widgets (aka gadgets, aka portlets in old money). Users log in to their account on the Chumby website, select &amp; configure widgets from the catalogue and the device connects to Chumby.com to download it&#8217;s configuration and the actual widget swf files. Widgets can be grouped into &#8220;channels&#8221; so that the user can easily switch between widgets, and in operation the device cycles through all the widgets in the current channel (I currently have News, Games, Photos and Test channels). There&#8217;s also a &#8220;VirtualChumby&#8221; on the website so you can get a feel for the widgets before downloading to the device. The only software that&#8217;s included in the firmware is the Control Panel used to set alarms, switch channels, etc everything else is downloaded each time the device is switched on so without an internet connection it&#8217;s pretty dumb.</p>
<p>The device hasn&#8217;t been launched outside the US as yet (it has FCC aproval for the US but needs the equivalent for other territories) so I got mine from eBay. First impressions were very good &#8211; it comes packaged in a branded canvas bag rather than the usual moulded plastic/polystyrene and upon turning it on for the first time plays an animated flash movie with voiceover by the development team that explains exactly how to get it connected to your wifi and activated on the Chumby site. I know this experience has been rehearsed and revised through an invitation only trial launch that&#8217;s been running for a couple of months. You definitely get the feeling that this is a small dedicated company <a title="Chumby team" href="http://www.chumby.com/corporate/team" target="_blank">run by</a> people who are passionate about the device rather than a big faceless corporation. I&#8217;m not normally one to read instruction manuals anyway, but the Chumby really doesn&#8217;t need one anyway &#8211; the setup was super simple and worked flawlessly.</p>
<p>There&#8217;s a wide range of widgets from the basic clock (I was happy to find that the obligatory binary clock widget is present) and RSS news reader to streaming audio widgets, to personalised widgets that display the latest status updates/notifications on your facebook account and the number of bids/current price of any eBay auctions you&#8217;re watching. Although Chumby Industries do provide some widgets themselves, the majority are contributed by the community so they cover a very broad spectrum from useful, to fun, to perculiar (hypnotoad?). Because the widgets are flash based they generally look very slick &#8211; probably better than could be achieved with html/javascript widgets but for me as a developer, being flash-only is a barrier to entry. I don&#8217;t know how to write flash and I don&#8217;t want to invest hundreds of pounds in Adobe Flash tools so that I can learn. There are open source compilers available that will take ActionScript source code and convert to a Flash swf and I&#8217;m playing around with those at the moment (more on that soon, in a future post). The Flash sandbox also comes with its own cross-domain policy that prevents a Flash movie on one domain from retrieving content from another domain unless the content provider hosts a crossdomain.xml file to explicitly allow it. Potentially this is harder to circumvent than the JavaScript XmlHttpRequest cross-domain policy which could be a pain for developers but is better for end users concerned about security of their data.</p>
<p>Chumby Industries  have stated that their policy will be to roll out all software updates and new features as automatic downloads for free so that the device &#8220;will be even better next year than it is now&#8221;. This is a highly commendable policy and I applaud them for it, though it does make me wonder how they ever plan to turn a sustainable profit. The software and hardware are opensource, but the company exists to make money. They don&#8217;t charge for software updates and there&#8217;s no subscription for using the service or widgets. In theory Chumby Industries could release &#8220;premium&#8221; widgets for which they could charge but I&#8217;m sure the community would quickly develop free alternatives. Chumby Industries could inject adverts into the channels for playback between the widgets but I suspect there would be a big backlash to that approach if they introduced it now because it wasn&#8217;t part of user expectations at the start. I&#8217;m not sure how else they can monetize the Chumby except for a small overhead they might make on each device sold.</p>
<p>If there has been any compromise with the device it&#8217;s that its forever tethered to mains power. It has a small 9V battery just to preserve its settings but cannot operate without mains electricity. So far I&#8217;ve found that I want to move the device around: in the kitchen to catch up on news and friend statuses while cooking in the evening, in the spare room next to the computer while working, in the living room on the coffee table when listening to music etc. If it could run from an internal battery, even if only for 30-60 minutes, it would be a lot more convenient. After about 2 weeks of use, I&#8217;m still very impressed with what the folks at Chumby Industries have managed to achieve: the novely hasn&#8217;t worn off yet, I&#8217;m still using it every day and it attacts a lot of interest from everyone who sees it (though I think most dismiss is as just another of my geek toys!). Only time will tell whether the Chumby and devices like it have mass market appeal but this is the best attempt at this category of device that I&#8217;ve seen so far, and I hope it catches on.</p>
]]></content:encoded>
			<wfw:commentRss>http://droza.net/blog/2008/02/08/chumby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google gadgets</title>
		<link>http://droza.net/blog/2007/10/24/google-gadgets/</link>
		<comments>http://droza.net/blog/2007/10/24/google-gadgets/#comments</comments>
		<pubDate>Wed, 24 Oct 2007 12:59:19 +0000</pubDate>
		<dc:creator>tdroza</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[web2.0]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://droza.net/blog/2007/10/24/google-gadgets/</guid>
		<description><![CDATA[So I&#8217;ve been messing around with various different widget frameworks on and off over the last few months as preparation for a workshop I&#8217;m going to be involved with. I started out with Yahoo Widgets (née Konfabulator) mainly because the examples that I&#8217;d seen looked the prettiest. Although perhaps not strictly widgets, I&#8217;ve also started [...]]]></description>
			<content:encoded><![CDATA[
<!-- wp-jquery-lightbox, a WordPress plugin by ulfben --> 
<p>So I&#8217;ve been messing around with various different widget frameworks on and off over the last few months as preparation for a workshop I&#8217;m going to be involved with. I started out with Yahoo Widgets (née Konfabulator) mainly because the examples that I&#8217;d seen looked the prettiest. Although perhaps not strictly widgets, I&#8217;ve also started to look at facebook applications, but that&#8217;s a subject for another day. My favoured widget framework at the moment is Google Gadgets for a number of reasons:</p>
<ul>
<li>The barrier to entry is low because it&#8217;s pretty much standard javascript and html with an xml descriptor.</li>
<li>You write a gadget once and can view it in <a href="http://www.google.com/ig">iGoogle</a>, <a href="http://desktop.google.com">GoogleDesktop</a>, <a href="http://www.blogger.com">Blogger </a>or in an iframe embedded in any webpage.</li>
<li>As with all Google APIs the <a href="http://www.google.com/apis/gadgets">documentation</a> is great and there&#8217;s a lot of developer support.</li>
<li>It plays nicely with other Google APIs.</li>
<li>&#8230;finally, if you&#8217;re going to back one widget framework, who would bet against Google?</li>
</ul>
<p>I find the best way to learn is just to get stuck in so I created a couple of <a href="http://www.google.com/ig/directory?q=tdroza&amp;btnG=Search+Homepage+Content">simple examples</a>, one to display a user&#8217;s timeline from <a href="http://twitter.com">twitter</a> and another to display recent announcements made on another site I wrote, <a href="http://www2.bt.com/beta/apps/tellm">Tell&#8217;M</a>. They both follow very similar principles: pull down an rss feed, parse it for interesting fields and render the display. Both also have a few user preferences that can be set to customise the feed.</p>
<p><script src="http://gmodules.com/ig/ifr?url=http://www.btinternet.com/~tdroza/gadgets/twitter/index.xml&amp;up_username=tdroza&amp;up_feed=http%3A%2F%2Ftwitter.com%2Fstatuses%2Ffriends_timeline%2F&amp;up_max_items=3&amp;synd=open&amp;w=320&amp;h=200&amp;title=&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js"></script></p>
<p><script src="http://gmodules.com/ig/ifr?url=http://www.btinternet.com/~tdroza/gadgets/tellm/index.xml&amp;up_max_items=3&amp;synd=open&amp;w=320&amp;h=200&amp;title=Tell\\'M+-+announce+it+to+the+world&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js"></script></p>
<p>My interest had moved on to <a href="http://www.bt.com/btfon">other</a> <a href="http://developer.facebook.com/">things</a> recently but this week I started to look at gadgets again because the workshop is coming up soon. I found my two gadgets in the <a href="http://www.google.com/ig/directory?q=tdroza&amp;btnG=Search+Homepage+Content">google directory</a> and was disheartened to see that my twitter gadget had received two negative comments &#8211; one because of a security restriction of ajax (cross-domain policy) and twitter (which will only accept a POST to update status so I can&#8217;t use <a href="http://jayfresh.wordpress.com/2007/09/17/using-script-tags-to-do-remote-http-calls-in-javascript/">script injection</a>). After a bit more digging around I found that Google now display average weekly page views for gadgets and my twitter gadget is receiving <a href="http://www.google.com/ig/directory?synd=open&amp;source=gapi&amp;num=24&amp;url=http://www.btinternet.com/~tdroza/gadgets/twitter/index.xml">14,546</a> page views per week! I guess it&#8217;s easy for a developer to do something just to satisfy their own curiosity and think that nobody else will ever use it. I&#8217;ve now added Google Analytics to both my gadgets just to check that all those page view are not generated by me! <img src='http://droza.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fdroza.net%2Fblog%2F2007%2F10%2F24%2Fgoogle-gadgets%2F&amp;title=Google+gadgets" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdroza.net%2Fblog%2F2007%2F10%2F24%2Fgoogle-gadgets%2F&amp;title=Google+gadgets" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fdroza.net%2Fblog%2F2007%2F10%2F24%2Fgoogle-gadgets%2F&amp;title=Google+gadgets" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fdroza.net%2Fblog%2F2007%2F10%2F24%2Fgoogle-gadgets%2F&amp;title=Google+gadgets" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fdroza.net%2Fblog%2F2007%2F10%2F24%2Fgoogle-gadgets%2F&amp;title=Google+gadgets', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdroza.net%2Fblog%2F2007%2F10%2F24%2Fgoogle-gadgets%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fdroza.net%2Fblog%2F2007%2F10%2F24%2Fgoogle-gadgets%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fdroza.net%2Fblog%2F2007%2F10%2F24%2Fgoogle-gadgets%2F&amp;title=Google+gadgets" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fdroza.net%2Fblog%2F2007%2F10%2F24%2Fgoogle-gadgets%2F&amp;title=Google+gadgets" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://droza.net/blog/2007/10/24/google-gadgets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

