<?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>..the cat came back.. &#187; software</title>
	<atom:link href="http://blog.automated.it/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.automated.it</link>
	<description>i does tech i does.</description>
	<lastBuildDate>Tue, 17 Jan 2012 18:25:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Kiosk Browser Grows Up, Goes Pro</title>
		<link>http://blog.automated.it/2011/11/08/kiosk-browser-grows-up-goes-pro/</link>
		<comments>http://blog.automated.it/2011/11/08/kiosk-browser-grows-up-goes-pro/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 10:50:43 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[kiosk]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=242</guid>
		<description><![CDATA[Over the last few days I&#8217;ve worked on a new release of Kiosk Browser what I&#8217;m calling the SE (Special Edition) for now. I am undecided as to how I&#8217;ll distribute and license this and at what cost. I know that some of you are using Android tablets that do not have the Google Market [...]]]></description>
			<content:encoded><![CDATA[<p><img src=/images/ic_launcher.png><br />
Over the last few days I&#8217;ve worked on a new release of Kiosk Browser what I&#8217;m calling the SE (Special Edition) for now. I am undecided as to how I&#8217;ll distribute and license this and at what cost. I know that some of you are using <a href="http://www.android.com/" target='blank'>Android</a> tablets that do not have the <a href="http://www.google.com" target='blank'>Google</a> Market on them. It may be that distribution is just an apk download from my server. I&#8217;m not sure many of you would appreciate entering licenses for each kiosk tied to a specific device, so I favour the one off fee, install however many times you want approach. I&#8217;ve put a poll at the end of this post, you can vote for the one you like the most or provide alternatives in the comments.</p>
<p>Kiosk Browser SE includes some extra, more advanced features such as</p>
<p><strong>Home Screen</strong></p>
<p>You can make Kiosk Browser SE the device home screen so that when pressing the home screen, or back button the user ends up in Kiosk Browser and not the &#8216;desktop&#8217;. When the device is booted Kiosk Browser SE will automatically start.</p>
<p><strong>Orientation Lock</strong></p>
<p>Kiosk Browser SE can lock the screen in landscape or portrait mode.</p>
<p><strong>Wake Lock</strong></p>
<p>If you don&#8217;t want your kiosk to sleep you can force it to stay awake. </p>
<p>Options are,</p>
<p><em><strong>off</strong></em>: The device will sleep as normal. This may result in loss of network connectivity and the lock screen may appear. </p>
<p><em><strong>dim</strong></em>: Wake lock that ensures that the screen is on (but may be dimmed); the keyboard backlight will be allowed to go off.</p>
<p><em><strong>full</strong></em>: Wake lock that ensures that the screen and keyboard are on at full brightness.* </p>
<p>*be aware of screen burn in and panel lifetime.</p>
<p><strong>Idle Timeout</strong></p>
<p>If there&#8217;s no input from the user you can jump back to the start url after a number of minutes you specify.</p>
<p><strong>Capture Images</strong></p>
<p>You can automatically capture images from the front camera and/or the screen when the user interacts with Kiosk Browser SE. You can have either image captured or both. If you have both each image filename is stamped with the same time. You can tag your kiosk files with a specific identity to help keep files unique. Useful if multiple kiosks are uploading to the same space. </p>
<p><strong>Upload Images</strong></p>
<p>Captured images can be FTP&#8217;d to a server, once complete they are removed from local storage to free up space. The target FTP path can also be specified.</p>
<p><strong>Remote Load</strong></p>
<p>Sometimes it may be useful to load a new configuration from a remote server. On boot Kiosk Browser SE will check for a local configuration file and then optionally a remote one. The local configuration file can be automatically deleted once loaded so can be used for initial provisioning. Settings are saved internally so after configuration updates the kiosk can operate without the presence of the configuration file on the remote server.</p>
<p><strong>XML Configuration</strong></p>
<p>Configuration is via XML, there is no preferences screen.</p>
<p>I&#8217;ll update this post with the status of Kiosk Browser SE as development progresses. I&#8217;ve set myself a target date for release, so far that&#8217;s looking good. Of course there&#8217;s still the documentation to do as well.</p>
<p>you can look to the <a href="http://kiosk.automated.it" target="_blank">Kiosk Browser SE</a> pages for more detail on the Pro version</p>
<p>If you&#8217;re twitter minded you can follow Kiosk Browser for updates and news <a href="https://twitter.com/KioskBrowser" class="twitter-follow-button" data-show-count="false">Follow @KioskBrowser</a><br />
<script src="//platform.twitter.com/widgets.js" type="text/javascript"></script></p>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.

<br><a href=http://blog.automated.it/2011/11/08/kiosk-browser-grows-up-goes-pro/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2011%2F11%2F08%2Fkiosk-browser-grows-up-goes-pro%2F&amp;title=Kiosk+Browser+Grows+Up%2C+Goes+Pro" 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%2Fblog.automated.it%2F2011%2F11%2F08%2Fkiosk-browser-grows-up-goes-pro%2F&amp;title=Kiosk+Browser+Grows+Up%2C+Goes+Pro" 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%2Fblog.automated.it%2F2011%2F11%2F08%2Fkiosk-browser-grows-up-goes-pro%2F&amp;title=Kiosk+Browser+Grows+Up%2C+Goes+Pro" 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%2Fblog.automated.it%2F2011%2F11%2F08%2Fkiosk-browser-grows-up-goes-pro%2F&amp;title=Kiosk+Browser+Grows+Up%2C+Goes+Pro" 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%2Fblog.automated.it%2F2011%2F11%2F08%2Fkiosk-browser-grows-up-goes-pro%2F&amp;title=Kiosk+Browser+Grows+Up%2C+Goes+Pro', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2011%2F11%2F08%2Fkiosk-browser-grows-up-goes-pro%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%2Fblog.automated.it%2F2011%2F11%2F08%2Fkiosk-browser-grows-up-goes-pro%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%2Fblog.automated.it%2F2011%2F11%2F08%2Fkiosk-browser-grows-up-goes-pro%2F&amp;title=Kiosk+Browser+Grows+Up%2C+Goes+Pro" 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%2Fblog.automated.it%2F2011%2F11%2F08%2Fkiosk-browser-grows-up-goes-pro%2F&amp;title=Kiosk+Browser+Grows+Up%2C+Goes+Pro" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2011%2F11%2F08%2Fkiosk-browser-grows-up-goes-pro%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2011/11/08/kiosk-browser-grows-up-goes-pro/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Android App: Simple Kiosk Browser</title>
		<link>http://blog.automated.it/2011/07/09/android-app-simple-kiosk-browser/</link>
		<comments>http://blog.automated.it/2011/07/09/android-app-simple-kiosk-browser/#comments</comments>
		<pubDate>Sat, 09 Jul 2011 14:14:06 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[kiosk]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=239</guid>
		<description><![CDATA[Kiosk Browser, is as its name suggests, a browser that acts like a kiosk. You can limit the browser to a specific site or allow external sites to be loaded, optionally in the default standard browser. The browser has some additional features allowing the sending of Toast messages to the user from javascript, showing and [...]]]></description>
			<content:encoded><![CDATA[<p>Kiosk Browser, is as its name suggests, a browser that acts like a kiosk.</p>
<p><img src=/images/qr-kiosk.jpg></p>
<p>You can limit the browser to a specific site or allow external sites to be loaded, optionally in the default standard browser. The browser has some additional features allowing the sending of Toast messages to the user from javascript, showing and hiding the title bar and launching applications on the device.  </p>
<p>These special functions available from Javascript are demonstrated by the code below:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&nbsp;
&lt;input type=&quot;button&quot; value=&quot;Show Preferences screen&quot; onClick=&quot;Kiosk.showPreferences(); return false;&quot; /&gt;
&lt;input type=&quot;button&quot; value=&quot;Show Platform Settings&quot; onClick=&quot;Kiosk.platformSettings(); return false;&quot; /&gt;
&nbsp;
&lt;input type=&quot;button&quot; value=&quot;Clear cache, form data, history&quot; onClick=&quot;Kiosk.clearCaches(); return false;&quot; /&gt;
&nbsp;
&lt;input type=&quot;text&quot; size=30 name=something&gt;
&lt;br&gt;
&lt;input type=&quot;button&quot; value=&quot;Back&quot; onClick=&quot;Kiosk.goBack(); return false;&quot; /&gt;
&lt;input type=&quot;button&quot; value=&quot;Forward&quot; onClick=&quot;Kiosk.goForward(); return false;&quot; /&gt;
&lt;input type=&quot;button&quot; value=&quot;Reload&quot; onClick=&quot;Kiosk.reload(); return false;&quot; /&gt;
&lt;input type=&quot;button&quot; value=&quot;Stop&quot; onClick=&quot;Kiosk.stop(); return false;&quot; /&gt;
&nbsp;
&nbsp;
&lt;input type=&quot;button&quot; value=&quot;Disable Menus&quot; onClick=&quot;Kiosk.disableMenus(); return false;&quot; /&gt;
&lt;input type=&quot;button&quot; value=&quot;Enable Menus&quot; onClick=&quot;Kiosk.enableMenus(); return false;&quot; /&gt;
&lt;input type=&quot;button&quot; value=&quot;Disable Scaling&quot; onClick=&quot;Kiosk.disableScaling(); return false;&quot; /&gt;
&lt;input type=&quot;button&quot; value=&quot;Enable Scaling&quot; onClick=&quot;Kiosk.enableScaling(); return false;&quot; /&gt;
&nbsp;
&nbsp;
&nbsp;
&lt;input type=&quot;submit&quot; value=&quot;Android app interface&quot; onClick=&quot;Kiosk.showToast('Hello Android!'); return false;&quot; &gt;
&nbsp;
&lt;input type=&quot;button&quot; value=&quot;Fullscreen&quot; onClick=&quot;Kiosk.hideTitlebar(); return false;&quot; &gt;
&lt;input type=&quot;button&quot; value=&quot;With title&quot; onClick=&quot;Kiosk.showTitlebar(); return false;&quot; &gt;
&lt;input type=&quot;button&quot; value=&quot;Restart&quot; onClick=&quot;Kiosk.endApp(); return false;&quot; &gt;
&lt;input type=&quot;button&quot; value=&quot;Launch&quot; onClick=&quot;Kiosk.launch('fm.last.android','fm.last.android.LastFm'); return false;&quot; &gt;
&lt;input type=&quot;button&quot; value=&quot;Launch 2&quot; onClick=&quot;Kiosk.launch('fm.last.android-1','fm.last.android-1.activity.Profile_RadioTab'); return false;&quot; &gt;
&nbsp;
&nbsp;
&lt;a href=http://www.google.co.uk&gt;External&lt;/a&gt;</pre></div></div>

<p><strong>UPDATE: 04-November-2011</strong>: Added more javascript interfaces and preferences&#8230; (sorry about the 2 updates in one go) Second update allows for zoom to be set from 1 to 200</p>
<p><strong>UPDATE: 29-October-2011</strong>: Rearranged some of the options to make preferences a little less messy. </p>
<p>Added an optional &#8220;Page Loading&#8221; message, this blocks screen access until the page has completely loaded so be aware that it may just sit there forever if your network drops out. The good news is the addition of the labs section may help here.</p>
<p>Also added a &#8216;Labs&#8217; preference section where experimental stuff can go. Currently there&#8217;s one active preference in there called <strong>&#8220;Network Connect&#8221;</strong>. What this does is run the kiosk application when the network goes up or down. What this means is that you can have the kiosk automatically run when the device boots (and gets unlocked). Feedback on how useful it is would be useful <img src='http://blog.automated.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Seems I&#8217;ve managed to mess up the comments section :/ </p>
<p><strong>Some simple documentation is available <a href="http://lin.cx/kioskdoc">here</a></strong></p>
<p><strong>There&#8217;s also some information on the <a href='http://blog.automated.it/2011/11/08/kiosk-browser-grows-up-goes-pro/'>next iteration</a> of Kiosk Browser</strong></p>

<br><a href=http://blog.automated.it/2011/07/09/android-app-simple-kiosk-browser/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2011%2F07%2F09%2Fandroid-app-simple-kiosk-browser%2F&amp;title=Android+App%3A+Simple+Kiosk+Browser" 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%2Fblog.automated.it%2F2011%2F07%2F09%2Fandroid-app-simple-kiosk-browser%2F&amp;title=Android+App%3A+Simple+Kiosk+Browser" 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%2Fblog.automated.it%2F2011%2F07%2F09%2Fandroid-app-simple-kiosk-browser%2F&amp;title=Android+App%3A+Simple+Kiosk+Browser" 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%2Fblog.automated.it%2F2011%2F07%2F09%2Fandroid-app-simple-kiosk-browser%2F&amp;title=Android+App%3A+Simple+Kiosk+Browser" 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%2Fblog.automated.it%2F2011%2F07%2F09%2Fandroid-app-simple-kiosk-browser%2F&amp;title=Android+App%3A+Simple+Kiosk+Browser', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2011%2F07%2F09%2Fandroid-app-simple-kiosk-browser%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%2Fblog.automated.it%2F2011%2F07%2F09%2Fandroid-app-simple-kiosk-browser%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%2Fblog.automated.it%2F2011%2F07%2F09%2Fandroid-app-simple-kiosk-browser%2F&amp;title=Android+App%3A+Simple+Kiosk+Browser" 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%2Fblog.automated.it%2F2011%2F07%2F09%2Fandroid-app-simple-kiosk-browser%2F&amp;title=Android+App%3A+Simple+Kiosk+Browser" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2011%2F07%2F09%2Fandroid-app-simple-kiosk-browser%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2011/07/09/android-app-simple-kiosk-browser/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Widget, it’s got a widget…</title>
		<link>http://blog.automated.it/2011/05/20/widget-its-got-a-widget/</link>
		<comments>http://blog.automated.it/2011/05/20/widget-its-got-a-widget/#comments</comments>
		<pubDate>Fri, 20 May 2011 20:10:33 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[1-Wire]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[currentcost]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=233</guid>
		<description><![CDATA[John Smiths have a lot to answer for there I can tell you. It&#8217;s been a busy few weeks at work while we launch our revamped online shop and how did I go about relaxing? I did more development work at home. Since we&#8217;ve moved into our house I haven&#8217;t really had a lot of [...]]]></description>
			<content:encoded><![CDATA[<p> John Smiths have a lot to <a href="http://www.youtube.com/watch?v=e1I2eyPIB4w" target=_new>answer</a> for there I can tell you.</p>
<p> It&#8217;s been a busy few weeks at <a href="http://linitx.com" target=_new>work</a> while <img src="http://blog.automated.it/images/gallery/widget/med_widget_selection.png" alt="Selection of widgets" />we launch our revamped online shop and how did I go about relaxing? I did more development work at home. Since we&#8217;ve moved into our house I haven&#8217;t really had a lot of time to do much development, more tiling grouting and renovating than anything else. This last week though, as we started to get on top of things, I took some time to put together a widget for <a href="http://www.android.com/" target='blank'>Android</a>. I&#8217;ve been <a href="http://blog.automated.it/2011/01/18/linkusbi-and-1-wire-setup/">collecting</a>, <a href="http://blog.automated.it/2009/02/13/current-cost-capers/">storing</a> and graphing <a href="http://blog.automated.it/2010/10/20/i-am-an-iams-cat/">data</a> from various sensors around the house for some time now and while the graphs are pretty they aren&#8217;t really a quick or efficient way of reading the status at a glance.</p>
<p>Step forward the widget. Each widget requests XML data from the server and presents it on the widget, this allows an infinite number of widget variations since the only change is the data received. In other words, if it&#8217;s in the database it can be served.  The widget itself has a number of coloured backgrounds which the server data can trigger if and it&#8217;s also capable of playing an alarm sound if required. I still need to fix this because the alarm sound triggers on each update and there&#8217;s currently no way to tell the widget to be quiet. </p>
<p><strong>Update:</strong> Fixed this, tapping the widget will silence it until the next alarm trigger ie once the state returns to normal and then alarms once again.</p>
<p>Incidentally, since I only have a self signed certificate on my server but still wanted encrypted access I had to extend the <a href="http://developer.android.com/reference/org/apache/http/impl/client/DefaultHttpClient.html" target=_new>DefaultHttpClient</a>. By default <a href="http://www.android.com/" target='blank'>Android</a> will just refuse to connect to a server if the certificate isn&#8217;t signed by one of the &#8216;trusted&#8217; certificate authorities &#8211; it wont tell you that it refused, it&#8217;ll just silently fail. You&#8217;d only ever really know if you&#8217;d connected to your device via adb and done a logcat. You can get round this by adding a keystore to your application, which is good enough for testing or personal applications. </p>
<p>If you want to do this you need to make sure you have the <a href="http://www.bouncycastle.org/download/bcprov-jdk16-146.jar">Bouncy Castle cryptography jar</a> in your CLASSPATH. The first thing you&#8217;ll need is a copy of the certificate which I hope you&#8217;ve generated and installed on your server. If you need to get a remote server certificate you can use the following command (all one line).</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #000000; font-weight: bold;">|</span> openssl s_client <span style="color: #660033;">-connect</span> your.server.goes.here:<span style="color: #000000;">443</span> <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">|</span>  
<span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-ne</span> <span style="color: #ff0000;">'/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'</span> <span style="color: #000000; font-weight: bold;">&gt;</span> mycert.pem</pre></div></div>

<p>Replace the &#8220;<strong>your.server.goes.here</strong>&#8221; with your server, obviously.  Once you&#8217;ve done that export the CLASSPATH to the Bouncy Castle jar you downloaded replacing the path I&#8217;ve used with the location you downloaded it to:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">CLASSPATH</span>=bcprov-jdk16-<span style="color: #000000;">146</span>.jar</pre></div></div>

<p>You can now use the following script, note that the keystore name is <strong>appkeystore.bks</strong> as on line 3</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #007800;">CERTSTORE</span>=appkeystore.bks
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-a</span> <span style="color: #007800;">$CERTSTORE</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #007800;">$CERTSTORE</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
keytool \
      <span style="color: #660033;">-import</span> \
      <span style="color: #660033;">-v</span> \
      <span style="color: #660033;">-trustcacerts</span> \
      <span style="color: #660033;">-alias</span> <span style="color: #000000;">0</span> \
      <span style="color: #660033;">-file</span> <span style="color: #000000; font-weight: bold;">&lt;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>openssl x509 <span style="color: #660033;">-in</span> mycert.pem<span style="color: #7a0874; font-weight: bold;">&#41;</span> \
      <span style="color: #660033;">-keystore</span> <span style="color: #007800;">$CERTSTORE</span> \
      <span style="color: #660033;">-storetype</span> BKS \
      <span style="color: #660033;">-provider</span> org.bouncycastle.jce.provider.BouncyCastleProvider \
      <span style="color: #660033;">-providerpath</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>java<span style="color: #000000; font-weight: bold;">/</span>bcprov.jar \
      <span style="color: #660033;">-storepass</span> MyPaSsWoRd</pre></td></tr></table></div>

<p>Replacing the <strong>MyPaSsWoRd</strong> on line 19 with a password of your choosing, you&#8217;ll need it later too. If you run the script you should get some output like this, obviously with your server information &#8211; remember to answer <strong>yes</strong> to the &#8220;<em>Trust this certificate</em>&#8221; prompt.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">&nbsp;
Owner: EMAILADDRESS=info@ automated.it, CN=www.automated.it, OU=Tech, O=Automated IT, L=Eye, ST=Suffolk, C=GB
Issuer: EMAILADDRESS=info@ automated.it, CN=www.automated.it, OU=Tech, O=Automated IT, L=Eye, ST=Suffolk, C=GB
Serial number: 4dce9c74
Valid from: Sat May 14 16:15:00 BST 2011 until: Sun May 13 16:15:00 BST 2012
Certificate fingerprints:
	 MD5:  32:0F:33:0C:42:8D:FF:78:90:46:31:7A:4F:D3:33:23
	 SHA1: BD:A8:B8:21:B1:48:C3:53:BB:01:22:65:9E:00:6E:14:7B:DE:4E:F6
	 Signature algorithm name: SHA1withRSA
	 Version: 1
Trust this certificate? [no]:yes
Certificate was added to keystore
[Storing appkeystore.bks]</pre></div></div>

<p>Create a directory called &#8220;<strong>raw</strong>&#8221; in your project&#8217;s &#8216;<strong>res</strong>&#8216; folder and copy the <em>appkeystore.bks</em> file to it. </p>
<p>In your <a href="http://www.android.com/" target='blank'>Android</a> application or widget you can now create a new class for the following code which will extend the original <a href="http://developer.android.com/reference/org/apache/http/impl/client/DefaultHttpClient.html" target=_new>DefaultHttpClient</a> class. You&#8217;ll want to change the package name on line 1 to match your application.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">your.package.name.here</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.Context</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.http.conn.ClientConnectionManager</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.http.conn.scheme.PlainSocketFactory</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.http.conn.scheme.Scheme</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.http.conn.scheme.SchemeRegistry</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.http.conn.ssl.SSLSocketFactory</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.http.impl.client.DefaultHttpClient</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.http.impl.conn.SingleClientConnManager</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.InputStream</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.security.KeyStore</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> myHttpClient <span style="color: #000000; font-weight: bold;">extends</span> DefaultHttpClient <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Context</span> context<span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> UserAgent<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Android dataWidget (ScaredyCat 0014150511-0.1b) [http://blog.automated.it]&quot;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> myHttpClient<span style="color: #009900;">&#40;</span><span style="color: #003399;">Context</span> context<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">context</span> <span style="color: #339933;">=</span> context<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  @Override <span style="color: #000000; font-weight: bold;">protected</span> ClientConnectionManager createClientConnectionManager<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    SchemeRegistry registry <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SchemeRegistry<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    registry.<span style="color: #006633;">register</span><span style="color: #009900;">&#40;</span>
        <span style="color: #000000; font-weight: bold;">new</span> Scheme<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;http&quot;</span>, PlainSocketFactory.<span style="color: #006633;">getSocketFactory</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #cc66cc;">80</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    registry.<span style="color: #006633;">register</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Scheme<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;https&quot;</span>, newSslSocketFactory<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #cc66cc;">443</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">new</span> SingleClientConnManager<span style="color: #009900;">&#40;</span>getParams<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, registry<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> SSLSocketFactory newSslSocketFactory<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #003399;">KeyStore</span> trusted <span style="color: #339933;">=</span> <span style="color: #003399;">KeyStore</span>.<span style="color: #006633;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;BKS&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #003399;">InputStream</span> in <span style="color: #339933;">=</span> context.<span style="color: #006633;">getResources</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">openRawResource</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">raw</span>.<span style="color: #006633;">appkeystore</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
        trusted.<span style="color: #006633;">load</span><span style="color: #009900;">&#40;</span>in, <span style="color: #0000ff;">&quot;MyPaSsWoRd&quot;</span>.<span style="color: #006633;">toCharArray</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">finally</span> <span style="color: #009900;">&#123;</span>
        in.<span style="color: #006633;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
      <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">new</span> SSLSocketFactory<span style="color: #009900;">&#40;</span>trusted<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> AssertionError<span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Note that the password used in the script earlier should match the one on <strong>line 37</strong>- use your own different password in production for security purposes. You can now use the class as required in your application, for example:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="java" style="font-family:monospace;">&nbsp;
myHttpClient httpclient <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> myHttpClient<span style="color: #009900;">&#40;</span>context<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
httpclient.<span style="color: #006633;">getCredentialsProvider</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setCredentials</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> AuthScope<span style="color: #009900;">&#40;</span>host, port<span style="color: #009900;">&#41;</span>, <span style="color: #000000; font-weight: bold;">new</span> UsernamePasswordCredentials<span style="color: #009900;">&#40;</span>username,password<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
BasicHttpContext localcontext <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> BasicHttpContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
BasicScheme basicAuth <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> BasicScheme<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
localcontext.<span style="color: #006633;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;preemptive-auth&quot;</span>, basicAuth<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
httpclient.<span style="color: #006633;">addRequestInterceptor</span><span style="color: #009900;">&#40;</span>preemptiveAuth, <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
HttpHost targetHost <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> HttpHost<span style="color: #009900;">&#40;</span>host, port, scheme<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
HttpGet httpget <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> HttpGet<span style="color: #009900;">&#40;</span>url<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
httpget.<span style="color: #006633;">setHeader</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;User-Agent&quot;</span>, httpclient.<span style="color: #006633;">UserAgent</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Once I&#8217;d got the SSL connection I could get the application to download a list of sensors from the database, this only happens the first time the first widget is added to the home screen. I need to sort a way of allowing the user to delete the list if more sensors are added. At the moment clearing the data for the widget application works but it erases the widget settings too.</p>
<p>When I&#8217;m at home I want to connect to a local server for the information for the widgets and when I&#8217;m out and about (using a 3G connection) I want to connect to an external server. I implemented the ability to automatically switch when my phone connected to my WiFi access point. One final thing I did was to add the ability to long press on a text field and then select &#8216;<strong>Save as default</strong>&#8216; allowing things like servers, Wifi MAC address, username and password to be saved as the defaults for all widgets. </p>
<p><a title="First run, download sensors" rel="thumbnail" href="http://blog.automated.it/images/gallery/widget/widget_download.png"><img src="http://blog.automated.it/images/gallery/widget/sm_widget_download.png" alt="First run, download sensors" width="40" height="85" /></a><a title="Selection of widgets" rel="thumbnail" href="http://blog.automated.it/images/gallery/widget/widget_selection.png"><img src="http://blog.automated.it/images/gallery/widget/sm_widget_selection.png" alt="Selection of widgets" width="40" height="85" /></a><a title="Widget settings" rel="thumbnail" href="http://blog.automated.it/images/gallery/widget/widget_settings.png"><img src="http://blog.automated.it/images/gallery/widget/sm_widget_settings.png" alt="Widget settings" width="40" height="85" /></a><a title="Save as default" rel="thumbnail" href="http://blog.automated.it/images/gallery/widget/save_default.png"><img src="http://blog.automated.it/images/gallery/widget/sm_save_default.png" alt="Save as default" width="40" height="85" /></a></p>
<p>&nbsp;</p>

<br><a href=http://blog.automated.it/2011/05/20/widget-its-got-a-widget/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2011%2F05%2F20%2Fwidget-its-got-a-widget%2F&amp;title=Widget%2C+it%E2%80%99s+got+a+widget%E2%80%A6" 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%2Fblog.automated.it%2F2011%2F05%2F20%2Fwidget-its-got-a-widget%2F&amp;title=Widget%2C+it%E2%80%99s+got+a+widget%E2%80%A6" 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%2Fblog.automated.it%2F2011%2F05%2F20%2Fwidget-its-got-a-widget%2F&amp;title=Widget%2C+it%E2%80%99s+got+a+widget%E2%80%A6" 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%2Fblog.automated.it%2F2011%2F05%2F20%2Fwidget-its-got-a-widget%2F&amp;title=Widget%2C+it%E2%80%99s+got+a+widget%E2%80%A6" 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%2Fblog.automated.it%2F2011%2F05%2F20%2Fwidget-its-got-a-widget%2F&amp;title=Widget%2C+it%E2%80%99s+got+a+widget%E2%80%A6', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2011%2F05%2F20%2Fwidget-its-got-a-widget%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%2Fblog.automated.it%2F2011%2F05%2F20%2Fwidget-its-got-a-widget%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%2Fblog.automated.it%2F2011%2F05%2F20%2Fwidget-its-got-a-widget%2F&amp;title=Widget%2C+it%E2%80%99s+got+a+widget%E2%80%A6" 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%2Fblog.automated.it%2F2011%2F05%2F20%2Fwidget-its-got-a-widget%2F&amp;title=Widget%2C+it%E2%80%99s+got+a+widget%E2%80%A6" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2011%2F05%2F20%2Fwidget-its-got-a-widget%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2011/05/20/widget-its-got-a-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pictures from Computex 2009</title>
		<link>http://blog.automated.it/2009/06/02/pictures-from-computex-2009/</link>
		<comments>http://blog.automated.it/2009/06/02/pictures-from-computex-2009/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 10:51:56 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[computex]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=218</guid>
		<description><![CDATA[Two of my colleagues are in Taipei again attending Computex 2009 this week and the news is that there appear to be a whole lot of netbooks on view. As ever Nick is uploading pictures to Picasa so you can get some idea of what&#8217;s about. As the days progress Nick will update the images, [...]]]></description>
			<content:encoded><![CDATA[<p>Two of my colleagues are in Taipei again attending Computex 2009 this week and the news is that there appear to be a whole lot of netbooks on view. <img class="right" title="Eepc tablet" src="/images/gallery/computex2009/dscf6103_sm.jpg" alt="" width="257" height="193" /> As ever Nick is uploading pictures to <a href="http://picasaweb.google.com/nick.shore/Computex2009Day1" target="_blank">Picasa</a> so you can get some idea of what&#8217;s about. As the days progress Nick will update the images, but it is a slow, slow process. Keep your eyes peeled for the rest of the week &#8211; and make sure you&#8217;re not looking at last years&#8217; pictures by mistake <img src='http://blog.automated.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .  Some of you might notice that some things like the Asus Skype phone have been around for a little while. In fact it has been around since September of last year. </p>
<p>Update 1: <a href="http://picasaweb.google.com/nick.shore/Computex2009Day2" target="_blank">More pictures</a> are available.</p>
<p>Update 2: <a href="http://picasaweb.google.com/nick.shore/Computex2009Day3" target="_blank">Pictures from day 3</a> are available now.</p>
<p>Update 3: <a href="http://picasaweb.google.com/nick.shore/Computex2009Day4" target="_blank">Pictures from day 4</a> are available now. There are also some shots of <a href="http://picasaweb.google.com/nick.shore/Taipei02" target="_blank">Taipei</a></p>

<br><a href=http://blog.automated.it/2009/06/02/pictures-from-computex-2009/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2009%2F06%2F02%2Fpictures-from-computex-2009%2F&amp;title=Pictures+from+Computex+2009" 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%2Fblog.automated.it%2F2009%2F06%2F02%2Fpictures-from-computex-2009%2F&amp;title=Pictures+from+Computex+2009" 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%2Fblog.automated.it%2F2009%2F06%2F02%2Fpictures-from-computex-2009%2F&amp;title=Pictures+from+Computex+2009" 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%2Fblog.automated.it%2F2009%2F06%2F02%2Fpictures-from-computex-2009%2F&amp;title=Pictures+from+Computex+2009" 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%2Fblog.automated.it%2F2009%2F06%2F02%2Fpictures-from-computex-2009%2F&amp;title=Pictures+from+Computex+2009', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2009%2F06%2F02%2Fpictures-from-computex-2009%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%2Fblog.automated.it%2F2009%2F06%2F02%2Fpictures-from-computex-2009%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%2Fblog.automated.it%2F2009%2F06%2F02%2Fpictures-from-computex-2009%2F&amp;title=Pictures+from+Computex+2009" 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%2Fblog.automated.it%2F2009%2F06%2F02%2Fpictures-from-computex-2009%2F&amp;title=Pictures+from+Computex+2009" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2009%2F06%2F02%2Fpictures-from-computex-2009%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2009/06/02/pictures-from-computex-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pull That Squidgy iPhone application</title>
		<link>http://blog.automated.it/2009/06/02/pull-that-squidgy-iphone-application/</link>
		<comments>http://blog.automated.it/2009/06/02/pull-that-squidgy-iphone-application/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 08:34:56 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=217</guid>
		<description><![CDATA[Yesterday a friend was ranting away as usual about how stuff was always broken and in passing mentioned the iPhone application Squidgy, an application that allows you to control your Squeezbox(es). There are apparently two problems with the application. The first is that it crashes quite a bit and doesn&#8217;t really seem to work very [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday a friend was ranting away as usual about how stuff was always broken and in passing mentioned the <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a> application Squidgy, an application that allows you to control your Squeezbox(es). There are apparently two problems with the application. The first is that it crashes quite a bit and doesn&#8217;t really seem to work very well, not particularly good for an application costing £5 ($8 / 6 EUR). The second is a little more serious. You see <a href="http://www.emccsoft.com/" target="_blank">EMCC Software Ltd</a>, the company that released the application, went into administration on 12th March 2009. The application is still on sale in the iTunes store despite the fact that EMCC are not providing support and their website consists of a statement that they are in administration and who the acting agents are. Perhaps it would be wise to find a different application to control your Squeezebox(es). </p>

<br><a href=http://blog.automated.it/2009/06/02/pull-that-squidgy-iphone-application/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2009%2F06%2F02%2Fpull-that-squidgy-iphone-application%2F&amp;title=Pull+That+Squidgy+iPhone+application" 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%2Fblog.automated.it%2F2009%2F06%2F02%2Fpull-that-squidgy-iphone-application%2F&amp;title=Pull+That+Squidgy+iPhone+application" 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%2Fblog.automated.it%2F2009%2F06%2F02%2Fpull-that-squidgy-iphone-application%2F&amp;title=Pull+That+Squidgy+iPhone+application" 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%2Fblog.automated.it%2F2009%2F06%2F02%2Fpull-that-squidgy-iphone-application%2F&amp;title=Pull+That+Squidgy+iPhone+application" 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%2Fblog.automated.it%2F2009%2F06%2F02%2Fpull-that-squidgy-iphone-application%2F&amp;title=Pull+That+Squidgy+iPhone+application', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2009%2F06%2F02%2Fpull-that-squidgy-iphone-application%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%2Fblog.automated.it%2F2009%2F06%2F02%2Fpull-that-squidgy-iphone-application%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%2Fblog.automated.it%2F2009%2F06%2F02%2Fpull-that-squidgy-iphone-application%2F&amp;title=Pull+That+Squidgy+iPhone+application" 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%2Fblog.automated.it%2F2009%2F06%2F02%2Fpull-that-squidgy-iphone-application%2F&amp;title=Pull+That+Squidgy+iPhone+application" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2009%2F06%2F02%2Fpull-that-squidgy-iphone-application%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2009/06/02/pull-that-squidgy-iphone-application/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Extra Cupcake, Still No Latitude</title>
		<link>http://blog.automated.it/2009/05/22/extra-cupcake-still-no-latitude/</link>
		<comments>http://blog.automated.it/2009/05/22/extra-cupcake-still-no-latitude/#comments</comments>
		<pubDate>Fri, 22 May 2009 09:12:12 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Cupcake]]></category>
		<category><![CDATA[G1]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Latitude]]></category>
		<category><![CDATA[security update]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=216</guid>
		<description><![CDATA[After getting Android Cupcake about a month ago and running it happily, this morning I was notified of another update that was a security fix. I have been unable to find anything that mentions what the fix was for, I guess it&#8217;s a little early for that information to be floating around. I&#8217;ve got my [...]]]></description>
			<content:encoded><![CDATA[<p>After getting <a href="http://www.android.com/" target='blank'>Android</a> Cupcake about a month ago and running it happily, this morning I was notified of another update that was a security fix. <img alt="" src="http://blog.automated.it/images/gallery/g1/G1_CRB43_sm.png" title="G1 CRB43" class="alignnone" width="160" height="240" /> I have been unable to find anything that mentions what the fix was for, I guess it&#8217;s a little early for that information to be floating around. I&#8217;ve got my log from the G1 and will be taking a look to see if there&#8217;s anything interesting there.</p>
<p>Shame that this fix didn&#8217;t include making Latitude available for UK users &#8211; <a href="http://www.google.com" target='blank'>Google</a> seems to be coming up with excuses that don&#8217;t really wash for that. Considering Latitude is available to pretty much every other smart phone out there and that it&#8217;s even on the G2. </p>
<p>If you want to get a copy of the update, you can <a href=http://android.clients.google.com/updates/signed-kila_eu-CRB43-from-CRB17.1638e1b4.zip>download</a> it direct from <a href="http://www.google.com" target='blank'>Google</a>&#8217;s servers</p>
<p><b>Update:</b><br />
I&#8217;ve extracted the update and here&#8217;s a list of the contents, the largest patch is in Maps (at 291KB) and the second largest is in framework.odex (at 271KB), then &#8220;MediaUploader&#8221; which is likely to be the YouTube and Picasa uploading service (at 166KB).</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">&nbsp;
total <span style="color: #000000;">3496</span>
drwxr-xr-x  <span style="color: #000000;">6</span> andypowell  staff   204B <span style="color: #000000;">23</span> May <span style="color: #000000;">11</span>:<span style="color: #000000;">24</span> META-INF
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   141K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 applypatch
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   1.6M <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 boot.img
drwxr-xr-x  <span style="color: #000000;">4</span> andypowell  staff   136B <span style="color: #000000;">23</span> May <span style="color: #000000;">11</span>:<span style="color: #000000;">25</span> <span style="color: #c20cb9; font-weight: bold;">patch</span>
drwxr-xr-x  <span style="color: #000000;">3</span> andypowell  staff   102B <span style="color: #000000;">23</span> May <span style="color: #000000;">11</span>:<span style="color: #000000;">24</span> system
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span>META-INF:
total <span style="color: #000000;">56</span>
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   1.7K <span style="color: #000000;">20</span> Aug  <span style="color: #000000;">2008</span> CERT.RSA
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff    12K <span style="color: #000000;">20</span> Aug  <span style="color: #000000;">2008</span> CERT.SF
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff    12K <span style="color: #000000;">20</span> Aug  <span style="color: #000000;">2008</span> MANIFEST.MF
drwxr-xr-x  <span style="color: #000000;">3</span> andypowell  staff   102B <span style="color: #000000;">23</span> May <span style="color: #000000;">11</span>:<span style="color: #000000;">24</span> com
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span>META-INF<span style="color: #000000; font-weight: bold;">/</span>com:
total <span style="color: #000000;">0</span>
drwxr-xr-x  <span style="color: #000000;">3</span> andypowell  staff   102B <span style="color: #000000;">23</span> May <span style="color: #000000;">11</span>:<span style="color: #000000;">24</span> google
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span>META-INF<span style="color: #000000; font-weight: bold;">/</span>com<span style="color: #000000; font-weight: bold;">/</span>google:
total <span style="color: #000000;">0</span>
drwxr-xr-x  <span style="color: #000000;">3</span> andypowell  staff   102B <span style="color: #000000;">23</span> May <span style="color: #000000;">11</span>:<span style="color: #000000;">24</span> android
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span>META-INF<span style="color: #000000; font-weight: bold;">/</span>com<span style="color: #000000; font-weight: bold;">/</span>google<span style="color: #000000; font-weight: bold;">/</span>android:
total <span style="color: #000000;">96</span>
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff    47K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 update-script
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">patch</span>:
total <span style="color: #000000;">0</span>
drwxr-xr-x  <span style="color: #000000;">9</span> andypowell  staff   306B <span style="color: #000000;">23</span> May <span style="color: #000000;">11</span>:<span style="color: #000000;">25</span> system
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span>patch<span style="color: #000000; font-weight: bold;">/</span>system:
total <span style="color: #000000;">8</span>
drwxr-xr-x  <span style="color: #000000;">93</span> andypowell  staff   3.1K <span style="color: #000000;">23</span> May <span style="color: #000000;">11</span>:<span style="color: #000000;">24</span> app
drwxr-xr-x   <span style="color: #000000;">3</span> andypowell  staff   102B <span style="color: #000000;">23</span> May <span style="color: #000000;">11</span>:<span style="color: #000000;">24</span> bin
<span style="color: #660033;">-rwxr-xr-x</span>   <span style="color: #000000;">1</span> andypowell  staff   236B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 build.prop.p
drwxr-xr-x   <span style="color: #000000;">6</span> andypowell  staff   204B <span style="color: #000000;">23</span> May <span style="color: #000000;">11</span>:<span style="color: #000000;">26</span> etc
drwxr-xr-x  <span style="color: #000000;">37</span> andypowell  staff   1.2K <span style="color: #000000;">23</span> May <span style="color: #000000;">11</span>:<span style="color: #000000;">24</span> framework
drwxr-xr-x   <span style="color: #000000;">5</span> andypowell  staff   170B <span style="color: #000000;">23</span> May <span style="color: #000000;">11</span>:<span style="color: #000000;">25</span> lib
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span>patch<span style="color: #000000; font-weight: bold;">/</span>system<span style="color: #000000; font-weight: bold;">/</span>app:
total <span style="color: #000000;">1896</span>
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   324B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:02 AlarmClock.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   262B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:02 AlarmClock.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   582B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:02 Browser.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   312B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:02 Browser.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   156B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:02 BugReport.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   266B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:02 BugReport.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   223B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:02 Calculator.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   266B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:02 Calculator.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   402B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:02 Calendar.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   262B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Calendar.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   205B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 CalendarProvider.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   263B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 CalendarProvider.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   566B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Camera.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   268B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Camera.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff    11K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Contacts.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   260B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Contacts.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   174B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 DownloadProvider.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   263B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 DownloadProvider.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   165B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 DrmProvider.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   257B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 DrmProvider.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   455B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Email.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   270B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Email.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   1.6K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 FieldTest.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   631B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Gmail.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   267B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Gmail.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   176B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 GmailProvider.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   263B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 GmailProvider.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   191B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 GoogleApps.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   264B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 GoogleApps.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   170B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 GoogleContactsProvider.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   264B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 GoogleContactsProvider.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   162B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 GooglePartnerSetup.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   261B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 GooglePartnerSetup.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   174B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 GoogleSearch.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   258B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 GoogleSearch.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   172B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 GoogleSettingsProvider.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   266B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 GoogleSettingsProvider.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   206B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 GoogleSubscribedFeedsProvider.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   265B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 GoogleSubscribedFeedsProvider.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   154B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 HTMLViewer.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   258B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 HTMLViewer.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   208B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 ImProvider.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   263B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 ImProvider.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   443B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 LatinIME.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   264B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 LatinIME.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff    37K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Launcher.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   3.3K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Launcher.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   290K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Maps.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   180B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 MediaProvider.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   264B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 MediaProvider.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   165K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 MediaUploader.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   459B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Mms.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   263B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Mms.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   7.6K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Music.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   265B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Music.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   155B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 NetworkLocation.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   1.9K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 NetworkLocation.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   198B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 PackageInstaller.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   264B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 PackageInstaller.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff    29K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Phone.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff    23K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Phone.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff    23K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Settings.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   266B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Settings.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   168B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 SettingsProvider.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   262B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 SettingsProvider.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff    18K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 SetupWizard.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   264B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 SetupWizard.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   215B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 SoundRecorder.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   261B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 SoundRecorder.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   206B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Stk.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   262B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Stk.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   212B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Street.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   265B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Street.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   195B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 SystemUpdater.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   263B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 SystemUpdater.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   450B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Talk.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   265B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Talk.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   170B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 TelephonyProvider.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   263B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 TelephonyProvider.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   155B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 UserDictionaryProvider.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   252B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 UserDictionaryProvider.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   421B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Vending.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   269B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Vending.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   174B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Webnwalk.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   255B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 Webnwalk.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   359B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 YouTube.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   264B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 YouTube.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   155B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 checkin.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   264B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 checkin.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   196B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 gtalkservice.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   261B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 gtalkservice.odex.p
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span>patch<span style="color: #000000; font-weight: bold;">/</span>system<span style="color: #000000; font-weight: bold;">/</span>bin:
total <span style="color: #000000;">8</span>
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   160B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 debuggerd.p
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span>patch<span style="color: #000000; font-weight: bold;">/</span>system<span style="color: #000000; font-weight: bold;">/</span>etc:
total <span style="color: #000000;">96</span>
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff    42K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 NOTICE.html.gz.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   153B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 contributors.html.p
drwxr-xr-x  <span style="color: #000000;">3</span> andypowell  staff   102B <span style="color: #000000;">23</span> May <span style="color: #000000;">11</span>:<span style="color: #000000;">24</span> security
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span>patch<span style="color: #000000; font-weight: bold;">/</span>system<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>security:
total <span style="color: #000000;">8</span>
-rwxr-xr-x<span style="color: #000000; font-weight: bold;">@</span> <span style="color: #000000;">1</span> andypowell  staff   175B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 otacerts.zip.p
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span>patch<span style="color: #000000; font-weight: bold;">/</span>system<span style="color: #000000; font-weight: bold;">/</span>framework:
total <span style="color: #000000;">1040</span>
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   155B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 am.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   257B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 am.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   176B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 android.awt.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   270B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 android.awt.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   153B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 android.policy.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   234B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 android.policy.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   155B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 android.test.runner.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   6.9K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 android.test.runner.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   153B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 com.android.im.plugin.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   264B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 com.android.im.plugin.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   152B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 com.google.android.gtalkservice.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   266B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 com.google.android.gtalkservice.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   155B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 com.google.android.maps.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   263B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 com.google.android.maps.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   285B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 core.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff    46K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 core.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   155B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 ext.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   211B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 ext.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff    63K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 framework-res.apk.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   153B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 framework-tests.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   262B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 framework-tests.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   168B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 framework.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   270K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 framework.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   153B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 ime.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   252B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 ime.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   153B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 input.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   249B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 input.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   153B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 monkey.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   267B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 monkey.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   153B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 pm.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   263B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 pm.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   153B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 services.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   4.6K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 services.odex.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   153B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 svc.jar.p
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   255B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 svc.odex.p
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span>patch<span style="color: #000000; font-weight: bold;">/</span>system<span style="color: #000000; font-weight: bold;">/</span>lib:
total <span style="color: #000000;">16</span>
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   4.7K <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 libicudata.so.p
drwxr-xr-x  <span style="color: #000000;">3</span> andypowell  staff   102B <span style="color: #000000;">23</span> May <span style="color: #000000;">11</span>:<span style="color: #000000;">24</span> modules
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span>patch<span style="color: #000000; font-weight: bold;">/</span>system<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>modules:
total <span style="color: #000000;">8</span>
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   618B <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 wlan.ko.p
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span>system:
total <span style="color: #000000;">3672</span>
<span style="color: #660033;">-rwxr-xr-x</span>  <span style="color: #000000;">1</span> andypowell  staff   1.8M <span style="color: #000000;">20</span> May <span style="color: #000000;">10</span>:03 recovery.img</pre></td></tr></table></div>

<p>
<a title="Cupcake CRB43" rel="thumbnail" href="http://blog.automated.it/images/gallery/g1/G1_CRB43.png"><img src="http://blog.automated.it/images/gallery/g1/G1_CRB43_vsm.png" alt="Cupcake CRB43" width="63" height="94" /></a></p>
<p></p>

<br><a href=http://blog.automated.it/2009/05/22/extra-cupcake-still-no-latitude/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2009%2F05%2F22%2Fextra-cupcake-still-no-latitude%2F&amp;title=Extra+Cupcake%2C+Still+No+Latitude" 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%2Fblog.automated.it%2F2009%2F05%2F22%2Fextra-cupcake-still-no-latitude%2F&amp;title=Extra+Cupcake%2C+Still+No+Latitude" 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%2Fblog.automated.it%2F2009%2F05%2F22%2Fextra-cupcake-still-no-latitude%2F&amp;title=Extra+Cupcake%2C+Still+No+Latitude" 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%2Fblog.automated.it%2F2009%2F05%2F22%2Fextra-cupcake-still-no-latitude%2F&amp;title=Extra+Cupcake%2C+Still+No+Latitude" 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%2Fblog.automated.it%2F2009%2F05%2F22%2Fextra-cupcake-still-no-latitude%2F&amp;title=Extra+Cupcake%2C+Still+No+Latitude', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2009%2F05%2F22%2Fextra-cupcake-still-no-latitude%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%2Fblog.automated.it%2F2009%2F05%2F22%2Fextra-cupcake-still-no-latitude%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%2Fblog.automated.it%2F2009%2F05%2F22%2Fextra-cupcake-still-no-latitude%2F&amp;title=Extra+Cupcake%2C+Still+No+Latitude" 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%2Fblog.automated.it%2F2009%2F05%2F22%2Fextra-cupcake-still-no-latitude%2F&amp;title=Extra+Cupcake%2C+Still+No+Latitude" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2009%2F05%2F22%2Fextra-cupcake-still-no-latitude%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2009/05/22/extra-cupcake-still-no-latitude/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Everywhere you go, always take the weather with you</title>
		<link>http://blog.automated.it/2009/03/21/everywhere-you-go-always-take-the-weather-with-you/</link>
		<comments>http://blog.automated.it/2009/03/21/everywhere-you-go-always-take-the-weather-with-you/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 18:11:03 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[jailbreak]]></category>
		<category><![CDATA[tracking]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=214</guid>
		<description><![CDATA[Originally I wasn&#8217;t going to blog about this but I finally gave in so here it is. This is another one of those things that you really just can&#8217;t do with your iPhone unless you&#8217;ve jailbroken it. Having the weather on your lock screen is nothing particularly new, there are enough Winterboard themes that allow [...]]]></description>
			<content:encoded><![CDATA[<p>Originally I wasn&#8217;t going to blog about this but I finally gave in so here it is. This is<img class="right" title="Tracing weather" src="/images/gallery/weather/smIMG_0055.PNG" alt="Tracking weather" width="196" height="294" /> another one of those things that you really just can&#8217;t do with your <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a> unless you&#8217;ve <a title="Pwnage Tool" href="http://blog.iphone-dev.org/" target="_blank">jailbroken</a> it. </p>
<p>Having the weather on your lock screen is nothing particularly new, there are enough <a title="Winterboard" href="http://www.saurik.com/id/9" target="_blank">Winterboard</a> themes that allow you to do this. However, this is slightly different. I&#8217;ve never really understood why you&#8217;d only ever want to know what the weather was like in your home town. What does it matter? That is of course unless you never actually go anywhere.  Why not have the weather for where you are? Yes I know you could just look out of the window or actually go outside but that&#8217;s beside the point. What I wanted was to have the weather for where I actually am right now.  So, as part of my <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a> <a title="Follow me wallpaper" href="http://blog.automated.it/2008/09/22/follow-me-wallpaper/" target="_blank">tracking</a> system I added the ability for the weather to follow me too.  The implementation is rather simple. </p>
<p>Since I&#8217;m already sending my location and retrieving the wallpaper image I&#8217;m also getting an override (overRide.js) for my weather configureMe.js. The overRide.js contains a single line, the location &#8211; as per the configureMe.js format:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> locale<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;Lelystad,NL&quot;</span></pre></div></div>

<p>So each time the wallpaper is updated, so is this file. One of the key things you need to do to accomplish this for yourself is what is called reverse geocoding. That is, getting the name of your location from your GPS coordinates. </p>
<p>Now, the best way I&#8217;ve found of doing this so far is by using <a href='http://www.geonames.org' target=_new>geonames</a> this is a fantastic site that allows you to do the reverse geocoding without even blinking. For example, calling geonames using the url</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">http<span style="color: #339933;">:</span><span style="color: #006600; font-style: italic;">//ws.geonames.org/findNearbyPlaceName?lat=50.455&amp;lng=-3</span></pre></div></div>

<p>would result in the following xml being returned</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span> <span style="color: #000066;">standalone</span>=<span style="color: #ff0000;">&quot;no&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;geonames<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;geoname<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Seaton<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;lat<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>50.7049382166946<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/lat<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;lng<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>-3.06999206542969<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/lng<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;geonameId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>2638278<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/geonameId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;countryCode<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>GB<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/countryCode<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;countryName<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>United Kingdom<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/countryName<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;fcl<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>P<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/fcl<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;fcode<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>PPL<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/fcode<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;distance<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>28.2265<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/distance<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/geoname<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/geonames<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xml<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>This gives you pretty much everything you could possibly want and for free too. Note the inclusion of your distance between your coordinates and the the coordinates returned (nearest named location).</p>
<p>Now I know what you&#8217;re thinking. Why would I retrieve a file with the data in it from my server, why not parse the xml in the javascript on the lock screen. You&#8217;re right, I could and you, possibly, should. I don&#8217;t because I keep all my GPS data in a database on that server so I update the database with the actual locations too. I don&#8217;t parse the xml on the <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a> because I don&#8217;t need to.</p>
<p>Of course I haven&#8217;t yet tested being in some obscure location that the weather provider doesn&#8217;t know about. Incidentally, geonames is so freaking good that, if you want to, you can <a href='http://www.geonames.org/export/' target=_new>download</a> a daily dump of the database.</p>
<p><a title="Lock screen tracking weather" rel="thumbnail" href="http://blog.automated.it/images/gallery/weather/IMG_0055.PNG"><img src="http://blog.automated.it/images/gallery/weather/thumb_IMG_0055.PNG" alt="Lock screen weather" width="63" height="94" /></a><a title="Lock screen tracking weather, later that day" rel="thumbnail" href="http://blog.automated.it/images/gallery/weather/IMG_0056.PNG"><img src="http://blog.automated.it/images/gallery/weather/thumb_IMG_0056.PNG" alt="Lock screen weather, later that day" width="63" height="95" /></a><br /></p>

<br><a href=http://blog.automated.it/2009/03/21/everywhere-you-go-always-take-the-weather-with-you/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2009%2F03%2F21%2Feverywhere-you-go-always-take-the-weather-with-you%2F&amp;title=Everywhere+you+go%2C+always+take+the+weather+with+you" 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%2Fblog.automated.it%2F2009%2F03%2F21%2Feverywhere-you-go-always-take-the-weather-with-you%2F&amp;title=Everywhere+you+go%2C+always+take+the+weather+with+you" 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%2Fblog.automated.it%2F2009%2F03%2F21%2Feverywhere-you-go-always-take-the-weather-with-you%2F&amp;title=Everywhere+you+go%2C+always+take+the+weather+with+you" 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%2Fblog.automated.it%2F2009%2F03%2F21%2Feverywhere-you-go-always-take-the-weather-with-you%2F&amp;title=Everywhere+you+go%2C+always+take+the+weather+with+you" 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%2Fblog.automated.it%2F2009%2F03%2F21%2Feverywhere-you-go-always-take-the-weather-with-you%2F&amp;title=Everywhere+you+go%2C+always+take+the+weather+with+you', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2009%2F03%2F21%2Feverywhere-you-go-always-take-the-weather-with-you%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%2Fblog.automated.it%2F2009%2F03%2F21%2Feverywhere-you-go-always-take-the-weather-with-you%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%2Fblog.automated.it%2F2009%2F03%2F21%2Feverywhere-you-go-always-take-the-weather-with-you%2F&amp;title=Everywhere+you+go%2C+always+take+the+weather+with+you" 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%2Fblog.automated.it%2F2009%2F03%2F21%2Feverywhere-you-go-always-take-the-weather-with-you%2F&amp;title=Everywhere+you+go%2C+always+take+the+weather+with+you" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2009%2F03%2F21%2Feverywhere-you-go-always-take-the-weather-with-you%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2009/03/21/everywhere-you-go-always-take-the-weather-with-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic Dials Disclosed</title>
		<link>http://blog.automated.it/2009/03/04/dynamic-dials-disclosed/</link>
		<comments>http://blog.automated.it/2009/03/04/dynamic-dials-disclosed/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 18:08:44 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[opensource]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Pachube]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=208</guid>
		<description><![CDATA[There&#8217;s been quite a bit of interest in my electricity usage dial like the one below so I&#8217;m going to go through how I did it with you. The first thing you&#8217;ll need is the XML/SWF Gauge and a web server with PHP. It&#8217;s possible to do this on a web server running Perl or [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s been quite a bit of interest in my electricity usage dial like the one below so I&#8217;m going to go through how I did it with you. The first thing you&#8217;ll need is the <a href='http://www.maani.us/gauge/' target=_new>XML/SWF Gauge</a> and a web server with PHP. It&#8217;s possible to do this on a web server running Perl or <img class="left" title="Usage Dial" src="/images/gallery/environment/use_dial.png" alt="usage dial" width="166" height="115" />ASP but you&#8217;ll need to do that yourself. For this example I&#8217;m also using a <a href='http://www.pachube.com' target=_new>Pachube</a> account to grab the data. My feed, the one for my gauge on the top right, is <a href='http://www.pachube.com/feeds/1498' target=_new>1498</a> but you <b>will</b> want to create your own account and start updating your own data. Using the gauge is as simple as a simple thing. </p>
<p>There are a number of things we need to get this simple display working,</p>
<ul>
<li><b>1.</b> The .SWF file</li>
<li><b>2.</b> An gauge.html page to show the gauge</li>
<li><b>3.</b> A data fetch PHP script</li>
</ul>
<hr />
<b>1.</b> The .SWF file</p>
<p>We&#8217;ll come to that at the very end of the article.</p>
<hr />
<b>2.</b> The gauge.html file. </p>
<p>Open your favourite text editor and cut and paste the following into it.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;HTML<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;BODY</span> <span style="color: #000066;">bgcolor</span>=<span style="color: #ff0000;">&quot;#FFFFFF&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;OBJECT</span> <span style="color: #000066;">classid</span>=<span style="color: #ff0000;">&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">codebase</span>=<span style="color: #ff0000;">&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">WIDTH</span>=<span style="color: #ff0000;">&quot;200&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">HEIGHT</span>=<span style="color: #ff0000;">&quot;100&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;gauge&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;PARAM</span> <span style="color: #000066;">NAME</span>=<span style="color: #ff0000;">&quot;movie&quot;</span> <span style="color: #000066;">VALUE</span>=<span style="color: #ff0000;">&quot;/data/gauge.swf?xml_source=/getdata.php&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;PARAM</span> <span style="color: #000066;">NAME</span>=<span style="color: #ff0000;">&quot;quality&quot;</span> <span style="color: #000066;">VALUE</span>=<span style="color: #ff0000;">&quot;high&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;wmode&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;transparent&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;allowScriptAccess&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;sameDomain&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;EMBED</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">&quot;/data/gauge.swf?xml_source=/getdata.php&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">quality</span>=<span style="color: #ff0000;">&quot;high&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">wmode</span>=<span style="color: #ff0000;">&quot;transparent&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">WIDTH</span>=<span style="color: #ff0000;">&quot;200&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">HEIGHT</span>=<span style="color: #ff0000;">&quot;100&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">NAME</span>=<span style="color: #ff0000;">&quot;gauge&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">allowScriptAccess</span>=<span style="color: #ff0000;">&quot;sameDomain&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">swLiveConnect</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">TYPE</span>=<span style="color: #ff0000;">&quot;application/x-shockwave-flash&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">PLUGINSPAGE</span>=<span style="color: #ff0000;">&quot;http://www.macromedia.com/go/getflashplayer&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/EMBED<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/OBJECT<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/BODY<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/HTML<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Save the file as <b>gauge.html</b>.</p>
<hr />
<b>3.</b> A data fetch PHP script.</p>
<p>Start a new document and cut and paste the following. Before you save the file as <b>getdata.php</b> make sure you change the $myFeedId and $myFeedStream values to match your Pachube feed.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?</span>
<span style="color: #000088;">$myFeedId</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1498</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$myFeedStream</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$myURLPath</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'/getdata.php'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://www.pachube.com/feeds/<span style="color: #006699; font-weight: bold;">$myFeedId</span>/datastreams/<span style="color: #006699; font-weight: bold;">$myFeedStream</span>/history.csv&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$now</span> <span style="color: #339933;">=</span> <span style="color: #990000;">gmdate</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Y-m-d'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'T'</span><span style="color: #339933;">.</span><span style="color: #990000;">gmdate</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'H:i:s'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'Z'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$ch</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_URL<span style="color: #339933;">,</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_SSL_VERIFYHOST <span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_SSL_VERIFYPEER <span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_HEADER<span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">ob_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$resultStr</span> <span style="color: #339933;">=</span> <span style="color: #990000;">ob_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">ob_end_clean</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">curl_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$readings</span> <span style="color: #339933;">=</span> <span style="color: #990000;">split</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;,&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$resultStr</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$last</span><span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$readings</span><span style="color: #009900;">&#91;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$readings</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">40</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$prev</span><span style="color: #339933;">=-</span><span style="color: #cc66cc;">90</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$readings</span><span style="color: #009900;">&#91;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$readings</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">40</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$mval</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">max</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$readings</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">40</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$tval</span><span style="color: #339933;">=-</span><span style="color: #cc66cc;">90</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type: text/xml<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;gauge&gt;
		&lt;update url='<span style="color: #000000; font-weight: bold;">&lt;?=</span><span style="color: #000088;">$myURLPath</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>?m=<span style="color: #000000; font-weight: bold;">&lt;?=</span><span style="color: #000088;">$mval</span><span style="color: #000000; font-weight: bold;">?&gt;</span>' delay='909' delay_type='1' timeout='30' retry='9' /&gt; 
<span style="color: #000000; font-weight: bold;">&lt;?</span>
		RadialTicks<span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">100</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">75</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">60</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">15</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">90</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">45</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">12</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;33ff33&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       		RadialTicks<span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">100</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">75</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">60</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">15</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">45</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">12</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;efe415&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       	 	RadialTicks<span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">100</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">75</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">60</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">15</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">45</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">12</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ef8b15&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        	RadialTicks<span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">100</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">75</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">60</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">15</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">45</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">94</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">12</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ff3333&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
      		&lt;text x='40' y='50' width='220' align='left' size='10' color='000000' alpha='20'&gt;<span style="color: #000000; font-weight: bold;">&lt;?=</span><span style="color: #000088;">$now</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/text&gt;
		&lt;text x='150' y='100' width='120' align='center' size='24' color='000000' alpha='100'&gt;Watts (W)&lt;/text&gt;
&nbsp;
       		&lt;rotate x='100' y='75' start='-90' span='<span style="color: #000000; font-weight: bold;">&lt;?=</span><span style="color: #000088;">$mval</span><span style="color: #000000; font-weight: bold;">?&gt;</span>' step='3' shake_frequency='0' shake_span='3' shadow_alpha='15'&gt;
	                &lt;polygon fill_color='ff0000' fill_alpha='90' line_alpha='0'&gt;
               		        &lt;point x='97' y='5' /&gt;
       	        	        &lt;point x='101' y='5' /&gt;
                        	&lt;point x='102' y='63' /&gt;
               	        	&lt;point x='96' y='63' /&gt;
	                &lt;/polygon&gt;
			&lt;rect x='94' y='87' width='10' height='10' fill_color='ff0000' fill_alpha='90' line_alpha='50' /&gt;
	        &lt;/rotate&gt;
&nbsp;
		&lt;rotate x='100' y='75' start='<span style="color: #000000; font-weight: bold;">&lt;?=</span><span style="color: #000088;">$prev</span><span style="color: #000000; font-weight: bold;">?&gt;</span>' span='<span style="color: #000000; font-weight: bold;">&lt;?=</span><span style="color: #000088;">$last</span><span style="color: #000000; font-weight: bold;">?&gt;</span>' step='1' shake_frequency='95' shake_span='3' shadow_alpha='15'&gt;
			&lt;polygon fill_color='000000' fill_alpha='90' line_alpha='0'&gt;
				&lt;point x='100' y='10' /&gt;
				&lt;point x='101' y='10' /&gt;
				&lt;point x='101' y='63' /&gt;
				&lt;point x='96' y='63' /&gt;
			&lt;/polygon&gt;
			&lt;rect x='94' y='87' width='10' height='20' fill_color='000000' fill_alpha='90' line_alpha='50' /&gt;
		&lt;/rotate&gt;
		&lt;circle x='100' y='75' radius='14' fill_color='000000' fill_alpha='50' line_alpha='0' /&gt;
	&lt;/gauge&gt;<span style="color: #000000; font-weight: bold;">&lt;?</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> RadialTicks <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$x_center</span><span style="color: #339933;">,</span> <span style="color: #000088;">$y_center</span><span style="color: #339933;">,</span> <span style="color: #000088;">$radius</span><span style="color: #339933;">,</span>  <span style="color: #000088;">$length</span><span style="color: #339933;">,</span> <span style="color: #000088;">$start_angle</span><span style="color: #339933;">,</span> <span style="color: #000088;">$end_angle</span><span style="color: #339933;">,</span> <span style="color: #000088;">$ticks_count</span><span style="color: #339933;">,</span> <span style="color: #000088;">$thickness</span><span style="color: #339933;">,</span> <span style="color: #000088;">$color</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$start_angle</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;=</span> <span style="color: #000088;">$end_angle</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">+=</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$end_angle</span><span style="color: #339933;">-</span><span style="color: #000088;">$start_angle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ticks_count</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;		&lt;line x1='&quot;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$x_center</span><span style="color: #339933;">+</span><span style="color: #990000;">sin</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">deg2rad</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #000088;">$radius</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>
			<span style="color: #0000ff;">&quot;' y1='&quot;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$y_center</span><span style="color: #339933;">-</span><span style="color: #990000;">cos</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">deg2rad</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #000088;">$radius</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;' x2='&quot;</span>
			<span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$x_center</span><span style="color: #339933;">+</span><span style="color: #990000;">sin</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">deg2rad</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$radius</span><span style="color: #339933;">+</span><span style="color: #000088;">$length</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;' y2='&quot;</span>
			<span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$y_center</span><span style="color: #339933;">-</span><span style="color: #990000;">cos</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">deg2rad</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$radius</span><span style="color: #339933;">+</span><span style="color: #000088;">$length</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;' thickness='&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$thickness</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;' color='&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$color</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;' /&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Copy the .swf file that you downloaded from the <a href='http://www.maani.us/gauge/' target=_new>XML/SWF Gauge</a> site and put it on your web server along with your gauge.html and getdata.php files. Point your browser at your website and the gauge.html page and bask in your glorious meter display.</p>
<p>I should point out that this is using the historic feed data from pachube which has a 15 minute lag. The reason for this is simply because it does not require authentication with the pachube servers. If you want to use your live feed you will need to change the url used and the management of the data returned as well as adding</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span> CURLOPT_USERPWD<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;username:password&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>just before the <b>ob_start();</b> on line 16. Replace username:password with your actual username and password, don&#8217;t forget the colon in between. When changing the url you might want to use the secure https rather than just http. </p>

<br><a href=http://blog.automated.it/2009/03/04/dynamic-dials-disclosed/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2009%2F03%2F04%2Fdynamic-dials-disclosed%2F&amp;title=Dynamic+Dials+Disclosed" 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%2Fblog.automated.it%2F2009%2F03%2F04%2Fdynamic-dials-disclosed%2F&amp;title=Dynamic+Dials+Disclosed" 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%2Fblog.automated.it%2F2009%2F03%2F04%2Fdynamic-dials-disclosed%2F&amp;title=Dynamic+Dials+Disclosed" 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%2Fblog.automated.it%2F2009%2F03%2F04%2Fdynamic-dials-disclosed%2F&amp;title=Dynamic+Dials+Disclosed" 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%2Fblog.automated.it%2F2009%2F03%2F04%2Fdynamic-dials-disclosed%2F&amp;title=Dynamic+Dials+Disclosed', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2009%2F03%2F04%2Fdynamic-dials-disclosed%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%2Fblog.automated.it%2F2009%2F03%2F04%2Fdynamic-dials-disclosed%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%2Fblog.automated.it%2F2009%2F03%2F04%2Fdynamic-dials-disclosed%2F&amp;title=Dynamic+Dials+Disclosed" 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%2Fblog.automated.it%2F2009%2F03%2F04%2Fdynamic-dials-disclosed%2F&amp;title=Dynamic+Dials+Disclosed" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2009%2F03%2F04%2Fdynamic-dials-disclosed%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2009/03/04/dynamic-dials-disclosed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gratifying Graphic Gizmos</title>
		<link>http://blog.automated.it/2009/03/01/gratifying-graphic-gizmos/</link>
		<comments>http://blog.automated.it/2009/03/01/gratifying-graphic-gizmos/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 08:47:37 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[1-Wire]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[Pachube]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=207</guid>
		<description><![CDATA[Yesterday the Current Cost unit actually got installed for real, something I was dreading. Dreading not because it was a difficult thing to do but simply because I expected the figure it would show would be terrible. Guess what, it wasn&#8217;t. In fact it seemed to be fairly close to that of other people who [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday the <a href=http://www.currentcost.com/ target=_new>Current Cost</a> unit actually got installed for real, something I was dreading. Dreading not because it was a difficult thing to do but simply because I expected the figure it would show would be terrible. Guess what, it wasn&#8217;t. In fact it seemed to be fairly close to that of other people who are monitoring theirs. The initial figure of 371 Watts didn&#8217;t last too long once the dishwasher and oven came on and an interesting spike appeared when the hob went on for the kettle. </p>
<p><img class="left" title="Current Cost Graph" src="/images/gallery/environment/small_69.png" alt="" width="387" height="166" /><br />
<br/><br />
Continuing with my sudden graphing fetish, as well as using a Current Cost unit I have dotted a number of little devices I&#8217;ve built with <a href='http://www.digi.com/products/wireless/zigbee-mesh/' target=_new>Xbee</a> and <a href='http://arduino.cc' target=_new>Arduinos</a> to measure temperatures (and other things)  around the house. More information on those will come out later, but it&#8217;s an interesting project too. </p>
<p>Since I have the data for those it&#8217;d be rude not to graph them too, there&#8217;s a sample in the thumbnails below.</p>
<p>Not content with graphing them locally I picked up a <a href=http://www.pachube.com target=_new>Pachube</a> invite and started graphing data there too. The process is simple really and as you can see on the right hand side of this page under &#8216;Graphy Stuff&#8217;, graph images can be embedded in your own or other sites. The really interesting thing about Pachube is that you can <a href=http://www.pachube.com/feeds/1498 target=_new>share</a> your data with people who may be interested. The data they get to see is delayed by approximately 15 minutes. If you output your data in the <a href=http://community.pachube.com/?q=node/127>eeml</a> format then you can specify your own tags too.</p>
<p><a title="Electricity Usage Graph" rel="thumbnail" href="http://blog.automated.it/images/gallery/environment/graph_69_1.png"><img src="http://blog.automated.it/images/gallery/environment/thumb_graph_69_1.png" alt="Electricity Usage Graph" width="176" height="64" /></a><a title="Temperature in the garage" rel="thumbnail" href="http://blog.automated.it/images/gallery/environment/graph_70_1.png"><img src="http://blog.automated.it/images/gallery/environment/thumb_graph_70_1.png" alt="Temperature in the garage" width="176" height="64" /></a><br />
<br/></p>

<br><a href=http://blog.automated.it/2009/03/01/gratifying-graphic-gizmos/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2009%2F03%2F01%2Fgratifying-graphic-gizmos%2F&amp;title=Gratifying+Graphic+Gizmos" 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%2Fblog.automated.it%2F2009%2F03%2F01%2Fgratifying-graphic-gizmos%2F&amp;title=Gratifying+Graphic+Gizmos" 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%2Fblog.automated.it%2F2009%2F03%2F01%2Fgratifying-graphic-gizmos%2F&amp;title=Gratifying+Graphic+Gizmos" 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%2Fblog.automated.it%2F2009%2F03%2F01%2Fgratifying-graphic-gizmos%2F&amp;title=Gratifying+Graphic+Gizmos" 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%2Fblog.automated.it%2F2009%2F03%2F01%2Fgratifying-graphic-gizmos%2F&amp;title=Gratifying+Graphic+Gizmos', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2009%2F03%2F01%2Fgratifying-graphic-gizmos%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%2Fblog.automated.it%2F2009%2F03%2F01%2Fgratifying-graphic-gizmos%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%2Fblog.automated.it%2F2009%2F03%2F01%2Fgratifying-graphic-gizmos%2F&amp;title=Gratifying+Graphic+Gizmos" 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%2Fblog.automated.it%2F2009%2F03%2F01%2Fgratifying-graphic-gizmos%2F&amp;title=Gratifying+Graphic+Gizmos" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2009%2F03%2F01%2Fgratifying-graphic-gizmos%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2009/03/01/gratifying-graphic-gizmos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Current Cost Capers</title>
		<link>http://blog.automated.it/2009/02/13/current-cost-capers/</link>
		<comments>http://blog.automated.it/2009/02/13/current-cost-capers/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 09:38:06 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[hardware]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[monitoring]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=205</guid>
		<description><![CDATA[My Unbioctium Current Cost CC128 arrived on Thursday and although I&#8217;m not going to actually get a chance in install it for a couple of weeks I did have a play. The first thing to do once it was all up and paired with the base was get the output into my laptop. To do [...]]]></description>
			<content:encoded><![CDATA[<p>My <a href=http://shop.ebay.co.uk/?_nkw=unbioctium target=_new><del datetime="2009-02-13T08:41:13+00:00">Unbioctium</del></a> <a title="Current Cost" href="http://www.currentcost.com/" target="_blank">Current Cost</a> CC128 arrived on Thursday and although I&#8217;m not going to actually get a chance in install it for a couple of weeks I did have a play. The first thing to do once it was all up and paired with the base was get the output into my laptop. To do this you will need to buy the data cable or <a href=http://e.inste.in/2008/06/15/interfacing-the-currentcost-meter-to-your-pc/ target=_new>make</a> up your own&#8230;</p>
<p>At first I tried to be smart with reading from the serial port, as that seems to be a bit unreliable I fell back on the old tried and tested method. I also decided from the outset that I was going to parse the XML that the the CC128  spat out rather than just filter the bits needed with regexp.</p>
<p>You will need to make sure you have the perl modules Device::SerialPort and XML::Simple installed. If you don&#8217;t have them then as root on your linux box do the following:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">perl -MCPAN -e shell</pre></div></div>

<p>then install each module, for example Device::SerialPort,</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">install Device::SerialPort</pre></div></div>

<p>and here&#8217;s the script which is also available for <a href=/files/cc-128.txt target=_new>download</a>.<em>Updated to make it more reliable</em>.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
</pre></td><td class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/perl</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">use</span> Device<span style="color: #339933;">::</span><span style="color: #006600;">SerialPort</span> <span style="color: #000066;">qw</span><span style="color: #009900;">&#40;</span> <span style="color: #339933;">:</span>PARAM <span style="color: #339933;">:</span>STAT <span style="color: #cc66cc;">0.07</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> XML<span style="color: #339933;">::</span><span style="color: #006600;">Simple</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #0000ff;">$port</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;/dev/ttyUSB0&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #0000ff;">$ob</span> <span style="color: #339933;">=</span> Device<span style="color: #339933;">::</span><span style="color: #006600;">SerialPort</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">new</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$port</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">or</span> <span style="color: #000066;">die</span> <span style="color: #ff0000;">&quot;Can not open port $port<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$ob</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">baudrate</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">57600</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$ob</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">write_settings</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$ob</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">close</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># using XML::Parser speeds xml parsing up lots!</span>
<span style="color: #0000ff;">$backend</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'XML::Parser'</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$ENV</span><span style="color: #009900;">&#123;</span>XML_SIMPLE_PREFERRED_PARSER<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$backend</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># we use this to only do 1 iteration (or not)</span>
<span style="color: #0000ff;">$escape</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span>SERIAL<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;&lt;$port&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$escape</span> <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">sleep</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$line</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;SERIAL&gt;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;"># for debug</span>
		<span style="color: #666666; font-style: italic;">#print $line;</span>
&nbsp;
		<span style="color: #0000ff;">$isValid</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066;">index</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$line</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;&lt;msg&gt;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #0000ff;">$isValid</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;This data is&quot;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$isValid</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot; not&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #ff0000;">&quot; valid<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;"># force XML::Simple to see this as a string not as a file</span>
		<span style="color: #666666; font-style: italic;"># since XML::Simple is stupid and needs to be shot</span>
&nbsp;
		<span style="color: #0000ff;">$line</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;&lt;fakeTag&gt;$line&lt;/fakeTag&gt;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #0000ff;">$isHistoric</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066;">index</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$line</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;&lt;hist&gt;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #0000ff;">$nref</span> <span style="color: #339933;">=</span> XMLin<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$line</span><span style="color: #339933;">,</span>forcearray <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #0000ff;">$ref</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$nref</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>msg<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;"># just for reference, show if data is historic or not</span>
&nbsp;
		<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;This data is&quot;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$isHistoric</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot; not&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #ff0000;">&quot; historic<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #0000ff;">$isHistoric</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
	        	<span style="color: #0000ff;">$dsb</span>        <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">$ref</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>dsb<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
        		<span style="color: #0000ff;">$recordTime</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ref</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #000066;">time</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
        		<span style="color: #0000ff;">$ccname</span>     <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ref</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>src<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
        		<span style="color: #0000ff;">$temp</span>       <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ref</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>tmpr<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
			<span style="color: #0000ff;">$ch1watts</span>   <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">$ref</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>ch1<span style="color: #009900;">&#125;</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>watts<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
			<span style="color: #0000ff;">$sensor</span>     <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">$ref</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>sensor<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
			<span style="color: #0000ff;">$id</span>         <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ref</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>id<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
			<span style="color: #0000ff;">$type</span>       <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">$ref</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>type<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066;">defined</span> <span style="color: #0000ff;">$ref</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>whatever<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #666666; font-style: italic;"># do something based on whatever</span>
&nbsp;
			<span style="color: #009900;">&#125;</span>
&nbsp;
        		<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;This $ccname was born $dsb days ago as at $recordTime - temperature is: $temp :: Current Watts in use on channel 1 are $ch1watts :: Sensor is $sensor, with an id of $id and a type of $type<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;"># for cacti you'd probably just want to output CC_Temperature:$temp CC_Watts1:$ch1watts </span>
&nbsp;
			<span style="color: #666666; font-style: italic;"># insert data into db</span>
&nbsp;
			<span style="color: #666666; font-style: italic;"># if you want to exit after a 'good' iteration set this to 1 otherwise set it to 0 (or don't change it to 1 :) );</span>
			<span style="color: #0000ff;">$escape</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">#process or ignore historic data</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span>SERIAL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>and here&#8217;s some example output, remember that I haven&#8217;t actually connected the loop around my electrical cable as yet.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">This data is not historic
This CC128-v0.11 was born 1 days ago as at 21:16:44 - temperature is: 23.7 :: Watts used on channel 1 are 0 :: Sensor is 0, with an id of 02835 and a type of 1</pre></div></div>

<p>Historic data isn&#8217;t processed at the moment but it would be trivial to do. I&#8217;m not processing it since I don&#8217;t really see the point if you&#8217;re going to store the results in a database.</p>

<br><a href=http://blog.automated.it/2009/02/13/current-cost-capers/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2009%2F02%2F13%2Fcurrent-cost-capers%2F&amp;title=Current+Cost+Capers" 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%2Fblog.automated.it%2F2009%2F02%2F13%2Fcurrent-cost-capers%2F&amp;title=Current+Cost+Capers" 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%2Fblog.automated.it%2F2009%2F02%2F13%2Fcurrent-cost-capers%2F&amp;title=Current+Cost+Capers" 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%2Fblog.automated.it%2F2009%2F02%2F13%2Fcurrent-cost-capers%2F&amp;title=Current+Cost+Capers" 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%2Fblog.automated.it%2F2009%2F02%2F13%2Fcurrent-cost-capers%2F&amp;title=Current+Cost+Capers', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2009%2F02%2F13%2Fcurrent-cost-capers%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%2Fblog.automated.it%2F2009%2F02%2F13%2Fcurrent-cost-capers%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%2Fblog.automated.it%2F2009%2F02%2F13%2Fcurrent-cost-capers%2F&amp;title=Current+Cost+Capers" 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%2Fblog.automated.it%2F2009%2F02%2F13%2Fcurrent-cost-capers%2F&amp;title=Current+Cost+Capers" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2009%2F02%2F13%2Fcurrent-cost-capers%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2009/02/13/current-cost-capers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>One Wireduino made easy</title>
		<link>http://blog.automated.it/2009/02/04/one-wireduino-made-easy/</link>
		<comments>http://blog.automated.it/2009/02/04/one-wireduino-made-easy/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 21:46:25 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[1-Wire]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=204</guid>
		<description><![CDATA[For a very long time now I&#8217;ve been playing with the Arduino boards but it wasn&#8217;t until I recently discovered some DS1820 1-wire chips in my parts box that I started even thinking about 1-wire stuff. Connecting 1-wire devices to the Arduino is, well, amazingly simple. Using the sample circuit from the datasheet we can [...]]]></description>
			<content:encoded><![CDATA[<p>For a very long time now I&#8217;ve been <a href="http://blog.automated.it/2008/02/18/usb-controlled-rgb-blob/" target="_new">playing</a> with the <a title="Arduino" href="http://www.arduino.cc/" target="_blank">Arduino</a> boards but it wasn&#8217;t until I recently discovered some <a title="DS1820 (replacements)" href="http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3021" target="_blank">DS1820</a> 1-wire chips in my parts box that I started even thinking about 1-wire stuff. Connecting 1-wire devices to the Arduino is, well, amazingly simple. Using the sample circuit from the datasheet we can see the connections are few and far between.</p>
<p style="text-align: center;"><img class="aligncenter" title="DS1820 Circuit" src="/images/gallery/1wire/ds1820-circuit.png" alt="" width="415" height="135" /></p>
<p>Please note that this is the corrected circuit, previously the VDD was not tied to ground. While the circuit would work it would only give reliable results on very short runs. This circuit allows longer runs to the sensor.</p>
<p>Coding this up is also made extremely easy with the OneWire library. I&#8217;ve put together a little application below that will read all of the 1-wire devices on a bus. If you press L in the Arduino IDE serial monitor it will list all the 1-Wire device id&#8217;s and if you press T you&#8217;ll get the id and temperature reading.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/*
Simple 1-wire device reading
&nbsp;
Pass T over serial to get temperatures
Pass L to list 1-wire devices
&nbsp;
*/</span>
<span style="color: #339933;">#include &lt;OneWire.h&gt;</span>
<span style="color: #339933;">#include &lt;stdio.h&gt;</span>
&nbsp;
<span style="color: #339933;">#define CONVERT     0x44</span>
<span style="color: #339933;">#define READSCRATCH 0xBE</span>
<span style="color: #339933;">#define SKIP_ROM    0xCC</span>
<span style="color: #339933;">#define MATCH_ROM   0x55</span>
&nbsp;
OneWire  ds<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// The DS18S20 is connected on pin 10</span>
<span style="color: #993333;">int</span> ledPin <span style="color: #339933;">=</span> <span style="color: #0000dd;">13</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// flash an led on 13 - we all like flashing lights</span>
&nbsp;
<span style="color: #993333;">void</span> setup<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">// initialize inputs/outputs</span>
  <span style="color: #666666; font-style: italic;">// start serial port</span>
  Serial.<span style="color: #202020;">begin</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">9600</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  pinMode<span style="color: #009900;">&#40;</span>ledPin<span style="color: #339933;">,</span> OUTPUT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">//we'll use the led to output a heartbeat</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">void</span> loop<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #993333;">int</span> incomingByte <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>Serial.<span style="color: #202020;">available</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// read the incoming byte:</span>
		incomingByte <span style="color: #339933;">=</span> Serial.<span style="color: #202020;">read</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// say what you got:</span>
		<span style="color: #666666; font-style: italic;">//Serial.print(&quot;I received: &quot;);</span>
		<span style="color: #666666; font-style: italic;">//Serial.println(incomingByte, DEC);</span>
                <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>incomingByte <span style="color: #339933;">==</span> <span style="color: #0000dd;">84</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                  getStuff<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                  Serial.<span style="color: #202020;">print</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>^&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>incomingByte <span style="color: #339933;">==</span> <span style="color: #0000dd;">76</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                   listDevices<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">void</span> listDevices<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
  byte addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">8</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
  ds.<span style="color: #202020;">reset_search</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span>ds.<span style="color: #202020;">search</span><span style="color: #009900;">&#40;</span>addr<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
     digitalWrite<span style="color: #009900;">&#40;</span>ledPin<span style="color: #339933;">,</span> HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   <span style="color: #666666; font-style: italic;">// sets the LED on</span>
&nbsp;
     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> OneWire<span style="color: #339933;">::</span><span style="color: #202020;">crc8</span><span style="color: #009900;">&#40;</span> addr<span style="color: #339933;">,</span> <span style="color: #0000dd;">7</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">7</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>   <span style="color: #009900;">&#123;</span>
         <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #208080;">0x10</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #666666; font-style: italic;">// Make sure it is a DS18S20 device</span>
            <span style="color: #993333;">char</span> buffer<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">512</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            sprintf<span style="color: #009900;">&#40;</span>buffer<span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;Id:%02x%02x%02x%02x%02x%02x%02x%02x<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span>
                       addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
                       addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">6</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">7</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
              Serial.<span style="color: #202020;">print</span><span style="color: #009900;">&#40;</span>buffer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          <span style="color: #009900;">&#125;</span>
      <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
    Serial.<span style="color: #202020;">print</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'^'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">void</span> getStuff<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  byte i<span style="color: #339933;">;</span>
  byte present <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
  byte data<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">12</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
  byte addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">8</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
  <span style="color: #993333;">char</span> buff<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">15</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
  <span style="color: #993333;">float</span> real_temp<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #993333;">float</span> temp_count<span style="color: #339933;">;</span>
  <span style="color: #993333;">float</span> read_temp<span style="color: #339933;">;</span> 
&nbsp;
  ds.<span style="color: #202020;">reset_search</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span>ds.<span style="color: #202020;">search</span><span style="color: #009900;">&#40;</span>addr<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>  <span style="color: #009900;">&#123;</span>
&nbsp;
     digitalWrite<span style="color: #009900;">&#40;</span>ledPin<span style="color: #339933;">,</span> HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   <span style="color: #666666; font-style: italic;">// sets the LED on</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> OneWire<span style="color: #339933;">::</span><span style="color: #202020;">crc8</span><span style="color: #009900;">&#40;</span> addr<span style="color: #339933;">,</span> <span style="color: #0000dd;">7</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">7</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>  <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// Check CRC is valid</span>
        Serial.<span style="color: #202020;">print</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;CRC is not valid&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #208080;">0x10</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>   <span style="color: #666666; font-style: italic;">// Make sure it is a DS18x20 device</span>
      Serial.<span style="color: #202020;">print</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Device is not a DS18x20 family device.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    ds.<span style="color: #202020;">reset</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">// Reset device</span>
    ds.<span style="color: #202020;">select</span><span style="color: #009900;">&#40;</span>addr<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>     <span style="color: #666666; font-style: italic;">// Select device</span>
    ds.<span style="color: #202020;">write</span><span style="color: #009900;">&#40;</span>CONVERT<span style="color: #339933;">,</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   <span style="color: #666666; font-style: italic;">// Issue Convert command </span>
&nbsp;
    delay<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>     <span style="color: #666666; font-style: italic;">// maybe 750ms is enough, maybe not</span>
    digitalWrite<span style="color: #009900;">&#40;</span>ledPin<span style="color: #339933;">,</span> LOW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">// sets the LED off</span>
&nbsp;
    present <span style="color: #339933;">=</span> ds.<span style="color: #202020;">reset</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// Reset device</span>
    ds.<span style="color: #202020;">select</span><span style="color: #009900;">&#40;</span>addr<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// Select device</span>
    ds.<span style="color: #202020;">write</span><span style="color: #009900;">&#40;</span>READSCRATCH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// Read Scratchpad</span>
&nbsp;
    <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span> i <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #0000dd;">9</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>  <span style="color: #666666; font-style: italic;">// we need 9 bytes</span>
          data<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> ds.<span style="color: #202020;">read</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>OneWire<span style="color: #339933;">::</span><span style="color: #202020;">crc8</span><span style="color: #009900;">&#40;</span> data<span style="color: #339933;">,</span> <span style="color: #0000dd;">8</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> data<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">8</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>  <span style="color: #666666; font-style: italic;">// Check CRC is valid</span>
&nbsp;
      <span style="color: #666666; font-style: italic;">// CRC is ok</span>
      <span style="color: #666666; font-style: italic;">// Divide the temperature by 2 - note the » and</span>
      <span style="color: #666666; font-style: italic;">// « need to be replaced with double &lt; and &gt;</span>
      <span style="color: #666666; font-style: italic;">// wordpress kills the server when you try to </span>
      <span style="color: #666666; font-style: italic;">// save otherwise.</span>
      read_temp<span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span>«<span style="color: #0000dd;">8</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> data<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> » <span style="color: #0000dd;">1</span> <span style="color: #339933;">;</span>
     <span style="color: #666666; font-style: italic;">// Convert to real temperature</span>
      temp_count<span style="color: #339933;">=</span><span style="color: #993333;">float</span><span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> data<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">6</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">float</span><span style="color: #009900;">&#41;</span>data<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">7</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
      real_temp <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">float</span><span style="color: #009900;">&#41;</span>read_temp<span style="color: #339933;">-</span><span style="color:#800080;">0.25</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>temp_count<span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #666666; font-style: italic;">// Convert float to ascii</span>
      tempToAscii<span style="color: #009900;">&#40;</span>real_temp<span style="color: #339933;">,</span>buff<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #993333;">char</span> buffer<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">512</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
      sprintf<span style="color: #009900;">&#40;</span>buffer<span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;%02x%02x%02x%02x%02x%02x%02x%02x %s<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span>
                  addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
                  addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">6</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> addr<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">7</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> buff<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
      Serial.<span style="color: #202020;">print</span><span style="color: #009900;">&#40;</span>buffer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span>    <span style="color: #009900;">&#123;</span>
       Serial.<span style="color: #202020;">println</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;CRC Failed&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>    
&nbsp;
<span style="color: #993333;">void</span> tempToAscii<span style="color: #009900;">&#40;</span><span style="color: #993333;">double</span> temp<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>buff<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #993333;">int</span> frac<span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">//get three numbers to the right of the decimal point</span>
  frac<span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">unsigned</span> <span style="color: #993333;">int</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>temp<span style="color: #339933;">*</span><span style="color: #0000dd;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">%</span><span style="color:#800080;">1000</span><span style="color: #339933;">;</span>
  itoa<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span><span style="color: #009900;">&#41;</span>temp<span style="color: #339933;">,</span>buff<span style="color: #339933;">,</span><span style="color: #0000dd;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  strcat<span style="color: #009900;">&#40;</span>buff<span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">//put the frac after the decimal</span>
  itoa<span style="color: #009900;">&#40;</span>frac<span style="color: #339933;">,&amp;</span>amp<span style="color: #339933;">;</span>buff<span style="color: #009900;">&#91;</span>strlen<span style="color: #009900;">&#40;</span>buff<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #0000dd;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>There&#8217;s also a copy of the .pde file that you can <a title="download file" href="http://blog.automated.it/files/ds18s20.pde" target="_blank">download</a> if you feel more inclined. It&#8217;s not an exact copy, I removed the commented out xml for the above version. It&#8217;s worth pointing out that this circuit is using what is called parasitic power, which means your cable run should be shortish. If you want to use an external power supply then pin 3 (VDD) on the DS18S20 should go to your external supply. This would allow for much longer runs of cable. Below is an example graph generated by <a title="Cacti" href="http://www.cacti.net/" target="_blank">cacti</a> with 2 DS1820&#8242;s connected the the arduino. As you can see the temperatures aren&#8217;t exactly the same but this is to be expected since the accuracy of the DS1820 is +/- 0.5 ° C</p>
<p style="text-align: center;"><img class="aligncenter" style="margin-left: 30px; margin-right: 30px;" title="Example Graph" src="/images/gallery/1wire/example_graph.png" alt="" width="367" height="304" /></p>
<p>The breaks in the graph were caused my me removing the USB plug from the PC it was connected to so that I could make some minor alterations to the circuit.</p>
<p><a href=http://blog.automated.it/2009/02/04/one-wireduino-made-easy/#comments>Josh</a> asked how I was getting the input for Cacti, here&#8217;s the perl script I use</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/perl</span>
&nbsp;
<span style="color: #0000ff;">$output</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">`echo -en &quot;T&quot; &gt;&gt;/dev/ttyUSB0 &amp;&amp; cat /dev/ttyUSB0`</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #0000ff;">@lines</span> <span style="color: #339933;">=</span> <span style="color: #000066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/\r\n/</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$output</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$t</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">foreach</span> <span style="color: #0000ff;">$line</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@lines</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
       <span style="color: #0000ff;">@spl</span> <span style="color: #339933;">=</span> <span style="color: #000066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/\s+/</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$line</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #0000ff;">$lc</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">@spl</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$lc</span> <span style="color: #b1b100;">gt</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>	
                <span style="color: #0000ff;">$node</span><span style="color: #339933;">=</span><span style="color: #0000ff;">$spl</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #0000ff;">$val</span><span style="color: #339933;">=</span><span style="color: #0000ff;">$spl</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Temperature_$node:$val &quot;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #0000ff;">$t</span><span style="color: #339933;">++;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>This outputs <em>Temperature_x:n</em> where x is the 1-Wire id and n is the temperature. It could probably do with tidying up and if you wanted to you could pass the 1-Wire id to the script to and only output the temperature for that particular 1-Wire device. A copy of the exported Cacti template can be <a href="/files/cacti_arduino.xml" target=_new>downloaded</a>, I&#8217;m hoping that you just need to import that into your Cacti after placing the script in the scripts directory. Just remember, under linux, if you unplug and replug in your Arduino you may need to set the tty port speed to 9600 (or whatever you put in your Serial.begin(); ). You can use the following command for that;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">&nbsp;
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">stty</span> <span style="color: #660033;">-F</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>ttyUSB0 cs8 <span style="color: #000000;">9600</span> ignbrk <span style="color: #660033;">-brkint</span> <span style="color: #660033;">-icrnl</span> <span style="color: #660033;">-imaxbel</span> <span style="color: #660033;">-opost</span> <span style="color: #660033;">-onlcr</span> <span style="color: #660033;">-isig</span> <span style="color: #660033;">-icanon</span> <span style="color: #660033;">-iexten</span> <span style="color: #660033;">-echo</span> <span style="color: #660033;">-echoe</span> <span style="color: #660033;">-echok</span> <span style="color: #660033;">-echoctl</span> <span style="color: #660033;">-echoke</span> noflsh <span style="color: #660033;">-ixon</span> <span style="color: #660033;">-crtscts</span></pre></td></tr></table></div>

<p>Make sure that ttyUSB0 is what your Arduino is connected to first. If not you will need to change it in the perl script and on the line above. </p>

<br><a href=http://blog.automated.it/2009/02/04/one-wireduino-made-easy/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2009%2F02%2F04%2Fone-wireduino-made-easy%2F&amp;title=One+Wireduino+made+easy" 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%2Fblog.automated.it%2F2009%2F02%2F04%2Fone-wireduino-made-easy%2F&amp;title=One+Wireduino+made+easy" 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%2Fblog.automated.it%2F2009%2F02%2F04%2Fone-wireduino-made-easy%2F&amp;title=One+Wireduino+made+easy" 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%2Fblog.automated.it%2F2009%2F02%2F04%2Fone-wireduino-made-easy%2F&amp;title=One+Wireduino+made+easy" 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%2Fblog.automated.it%2F2009%2F02%2F04%2Fone-wireduino-made-easy%2F&amp;title=One+Wireduino+made+easy', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2009%2F02%2F04%2Fone-wireduino-made-easy%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%2Fblog.automated.it%2F2009%2F02%2F04%2Fone-wireduino-made-easy%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%2Fblog.automated.it%2F2009%2F02%2F04%2Fone-wireduino-made-easy%2F&amp;title=One+Wireduino+made+easy" 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%2Fblog.automated.it%2F2009%2F02%2F04%2Fone-wireduino-made-easy%2F&amp;title=One+Wireduino+made+easy" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2009%2F02%2F04%2Fone-wireduino-made-easy%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2009/02/04/one-wireduino-made-easy/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>WordPress tweetbacking</title>
		<link>http://blog.automated.it/2009/01/12/wordpress-tweetbacking/</link>
		<comments>http://blog.automated.it/2009/01/12/wordpress-tweetbacking/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 22:09:11 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[opensource]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=201</guid>
		<description><![CDATA[Tweetbacking, it sounds like some sort of deviant sport or something but isn&#8217;t. The idea behind Tweetbacks, similar to pingbacks, is that you can see who is commenting (tweeting) about your blog on Twitter. There are a number of plugins available for use in the end I went for Joost de Valk&#8216;s version. While it [...]]]></description>
			<content:encoded><![CDATA[<p>Tweetbacking, it sounds like some sort of deviant sport or something but isn&#8217;t. The idea behind Tweetbacks, similar to pingbacks, is that you can see who is commenting (tweeting) about your blog on Twitter. There are a number of plugins available for use in the end I went for <a title="Tweetback plugin" href="http://yoast.com/wordpress/tweetbacks/" target="_blank">Joost de Valk</a>&#8216;s version. While it worked nicely I decided that I really wanted to approve the tweets before they appeared in my blog so I modified the code a little. The diff is available for <a title="tweetback patch" href="http://blog.automated.it/downloads/tweetback.patch" target="_blank">download</a>. It allows you to enable and disable the automatic approval of Tweets form the plugin&#8217;s admin page. Hopefully Joost will add this option in the official version sometime.</p>
<p>Tweetbacks are saved in the comments table and can be displayed however you like for example, in my comment loop I have:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> 
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$comment</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comment_type</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'tweetback'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$avatarurl</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span>
       <span style="color: #0000ff;">&quot;twitter:&quot;</span><span style="color: #339933;">,</span>
       <span style="color: #0000ff;">&quot;http://s3.amazonaws.com/twitter_production/profile_images/&quot;</span><span style="color: #339933;">,</span>
       <span style="color: #000088;">$comment</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comment_author_email</span>
       <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;img align=middle&quot;</span>
              <span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; src='<span style="color: #006699; font-weight: bold;">$avatarurl</span>' border=none&quot;</span>
              <span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; width=40 height=40 alt=''&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p><em>A word or two of caution about the plugin. Personally I&#8217;ve removed the bit.ly url shortening link parsing because it just didn&#8217;t work properly &#8211; I ended up with bogus tweetbacks until I did.  The other issue is with the date saving from the tweetback, it doesn&#8217;t work properly either giving dates in the 1970&#8242;s!!!</em></p>

<br><a href=http://blog.automated.it/2009/01/12/wordpress-tweetbacking/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2009%2F01%2F12%2Fwordpress-tweetbacking%2F&amp;title=WordPress+tweetbacking" 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%2Fblog.automated.it%2F2009%2F01%2F12%2Fwordpress-tweetbacking%2F&amp;title=WordPress+tweetbacking" 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%2Fblog.automated.it%2F2009%2F01%2F12%2Fwordpress-tweetbacking%2F&amp;title=WordPress+tweetbacking" 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%2Fblog.automated.it%2F2009%2F01%2F12%2Fwordpress-tweetbacking%2F&amp;title=WordPress+tweetbacking" 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%2Fblog.automated.it%2F2009%2F01%2F12%2Fwordpress-tweetbacking%2F&amp;title=WordPress+tweetbacking', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2009%2F01%2F12%2Fwordpress-tweetbacking%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%2Fblog.automated.it%2F2009%2F01%2F12%2Fwordpress-tweetbacking%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%2Fblog.automated.it%2F2009%2F01%2F12%2Fwordpress-tweetbacking%2F&amp;title=WordPress+tweetbacking" 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%2Fblog.automated.it%2F2009%2F01%2F12%2Fwordpress-tweetbacking%2F&amp;title=WordPress+tweetbacking" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2009%2F01%2F12%2Fwordpress-tweetbacking%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2009/01/12/wordpress-tweetbacking/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>iPhone proximity sensing IS in the API</title>
		<link>http://blog.automated.it/2008/11/28/iphone-proximity-sensing-is-in-the-api/</link>
		<comments>http://blog.automated.it/2008/11/28/iphone-proximity-sensing-is-in-the-api/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 11:43:04 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=198</guid>
		<description><![CDATA[There seems to have been a lot of misinformation flying about of late. With Google releasing a new version of their app incorporating proximity sensing, some blogs have claimed this is breaking AppStore rules by using undocumented hidden (non public) API calls. I&#8217;m here to tell you that&#8217;s just rubbish. All that has happened is [...]]]></description>
			<content:encoded><![CDATA[<p>There seems to have been a lot of misinformation flying about of late. With <a href="http://www.google.com" target='blank'>Google</a> releasing a new version of their app incorporating proximity sensing, some <a title="Fail!" href="http://www.moconews.net/entry/419-googles-breaks-iphone-app-rules/" target="_blank">blogs</a> have claimed this is breaking AppStore rules by using undocumented hidden (non public) API calls. I&#8217;m here to tell you that&#8217;s just rubbish. All that has happened is the people reporting it haven&#8217;t even bothered to check. Want to prove this to yourself?</p>
<p>1. Start Xcode and pick one of the templates.<br />
2. Load up the AppDelegate code and skip to &#8216;applicationDidFinishLaunching&#8217;.<br />
3. Type &#8216;application.&#8217; (note the full stop after the word application)<br />
4. Hit escape and you&#8217;ll get a list, scroll down to items starting with P<br />
5. Oh look there it is&#8230;</p>
<p>For those without Xcode here&#8217;s a picture.</p>
<div class="wp-caption alignnone" style="width: 452px"><img src="/images/iphoneproximity.png" alt="Oh, that must be the non-public public api..." width="442" height="302" /><p class="wp-caption-text">Oh, that must be the non-public public api...</p></div>
<p>For those that want to see the what the documentation says</p>
<p><code><br />
proximitySensingEnabled</p>
<p>A Boolean value that determines whether proximity sensing is enabled.</p>
<p>@property(nonatomic, getter=isProximitySensingEnabled) BOOL proximitySensingEnabled</p>
<p>Discussion<br />
YES if proximity sensing is enabled; otherwise NO. Enabling proximity sensing tells <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a> OS that it may need to blank the screen if the user’s face is near it. Proximity sensing is disabled by default.</p>
<p>Availability</p>
<p>Available in <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a> OS 2.0 and later.</p>
<p>Declared In<br />
UIApplication.h</p>
<p></code></p>
<p>Unfortuneately once some people grab hold of false information no facts will get in their way. Anyone that knows me will tell you that I&#8217;m really not fond of either <a href="http://www.google.com" target='blank'>Google</a> or Apple, but let&#8217;s just get stuff right shall we. </p>
<p><strong><br />
Update:</strong> I&#8217;ve had some discussion on irc and it was felt that I should point out that proximityStateChanged is used and following some additonal chatter on IRC with UncleBob who pointed out that &#8220;It&#8217;s not private in the OBjC sense just the Apple documented SDK sense. &#8221; he then went on to say &#8220;the whole thing is definately a peanut-gallery cockfest&#8221; which sums it all up really.</p>

<br><a href=http://blog.automated.it/2008/11/28/iphone-proximity-sensing-is-in-the-api/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2008%2F11%2F28%2Fiphone-proximity-sensing-is-in-the-api%2F&amp;title=iPhone+proximity+sensing+IS+in+the+API" 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%2Fblog.automated.it%2F2008%2F11%2F28%2Fiphone-proximity-sensing-is-in-the-api%2F&amp;title=iPhone+proximity+sensing+IS+in+the+API" 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%2Fblog.automated.it%2F2008%2F11%2F28%2Fiphone-proximity-sensing-is-in-the-api%2F&amp;title=iPhone+proximity+sensing+IS+in+the+API" 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%2Fblog.automated.it%2F2008%2F11%2F28%2Fiphone-proximity-sensing-is-in-the-api%2F&amp;title=iPhone+proximity+sensing+IS+in+the+API" 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%2Fblog.automated.it%2F2008%2F11%2F28%2Fiphone-proximity-sensing-is-in-the-api%2F&amp;title=iPhone+proximity+sensing+IS+in+the+API', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2008%2F11%2F28%2Fiphone-proximity-sensing-is-in-the-api%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%2Fblog.automated.it%2F2008%2F11%2F28%2Fiphone-proximity-sensing-is-in-the-api%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%2Fblog.automated.it%2F2008%2F11%2F28%2Fiphone-proximity-sensing-is-in-the-api%2F&amp;title=iPhone+proximity+sensing+IS+in+the+API" 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%2Fblog.automated.it%2F2008%2F11%2F28%2Fiphone-proximity-sensing-is-in-the-api%2F&amp;title=iPhone+proximity+sensing+IS+in+the+API" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2008%2F11%2F28%2Fiphone-proximity-sensing-is-in-the-api%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2008/11/28/iphone-proximity-sensing-is-in-the-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Concept iPhone Application</title>
		<link>http://blog.automated.it/2008/11/11/concept-iphone-application/</link>
		<comments>http://blog.automated.it/2008/11/11/concept-iphone-application/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 20:35:39 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=196</guid>
		<description><![CDATA[I&#8217;ve been messing about trying to learn how to write iPhone apps. There&#8217;s a lot to take in but at the moment I&#8217;ve managed a concept application. A little shop (of horrors . At the moment it simply reads data from an sqlite database and then displays information on the product. The buy now button [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been messing about trying to learn how to write <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a> apps. There&#8217;s a lot to take in but at the moment I&#8217;ve managed a concept application. A little shop (of horrors <img src='http://blog.automated.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . At the moment it simply <img class="left" src="/images/gallery/iphoneapp1/inline_search_sm.png" alt="" width="160" height="240" />reads data from an sqlite database and then displays information on the product. The buy now button currently just jumps to the product url at <a title="linitx" href="http://linitx.com?ref=tccb" target="_blank">Linitx.com</a>.</p>
<p><strong>Update:</strong> Added a screenshot when rotated. The <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a> SDK handles the rotation automatically, all you need to do is specify which parts of which objects move or resize. All that can be done from Interface Builder. Easy as pie. Also note the changed title bar colour, in keeping with <a href="http://linitx.com" target='blank'>LinITX</a>, and the title text. The shop title (<a href="http://linitx.com" target='blank'>LinITX</a>) and shop base product URL are read from a plist file. I suppose they could be read from the sqlite db but I am experimenting so learning how to read a plist file is useful too.</p>
<p><strong>Update 2:</strong> Spent ages last night trying to work out why some of the text descriptions for products came out of the database as null. Discovered that when importing the data file it wasn&#8217;t using UTF8 encoding, which is apparently all sqlite deals with. Loading up the source data file into TextEdit under OSX and saving it as UTF8 then reimporting solved the problem.  I also modified how things are displayed. The image and text are inserted into a UIWebView so are now scaleable by the user. The images are also base64 encoded and in the database. This increases the database size but means the application can still be used offline. Before none of the pictures would display if there was no network connectivity.</p>
<p><strong>Update 3:</strong> Added the ability to search the list. The search bar appears when the search button is pressed and hides again when the search is complete.</p>
<p><a title="Product List" rel="thumbnail" href="http://blog.automated.it/images/gallery/iphoneapp1/IMG_0034.PNG"><img src="http://blog.automated.it/images/gallery/iphoneapp1/thumb_IMG_0034.PNG" alt="Product List" width="32" height="48" /></a><a title="Product detail" rel="thumbnail" href="http://blog.automated.it/images/gallery/iphoneapp1/IMG_0033.PNG"><img src="http://blog.automated.it/images/gallery/iphoneapp1/thumb_IMG_0033.PNG" alt="Product detail" width="32" height="48" /></a><a title="Product detail rotated" rel="thumbnail" href="http://blog.automated.it/images/gallery/iphoneapp1/IMG_0035.PNG"><img src="http://blog.automated.it/images/gallery/iphoneapp1/thumb_IMG_0035.PNG" alt="Product detail rotated" width="48" height="32" /></a><a title="Additional toolbar" rel="thumbnail" href="http://blog.automated.it/images/gallery/iphoneapp1/IMG_0037.PNG"><img src="http://blog.automated.it/images/gallery/iphoneapp1/thumb_IMG_0037.PNG" alt="Additional toolbar" width="32" height="48" /></a><a title="Search" rel="thumbnail" href="http://blog.automated.it/images/gallery/iphoneapp1/IMG_0038.PNG"><img src="http://blog.automated.it/images/gallery/iphoneapp1/thumb_IMG_0038.PNG" alt="Search" width="32" height="48" /></a><a title="Searching for DDR2 memory" rel="thumbnail" href="http://blog.automated.it/images/gallery/iphoneapp1/IMG_0039.PNG"><img src="http://blog.automated.it/images/gallery/iphoneapp1/thumb_IMG_0039.PNG" alt="Searching for DDR2 memory" width="32" height="48" /></a></p>

<br><a href=http://blog.automated.it/2008/11/11/concept-iphone-application/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2008%2F11%2F11%2Fconcept-iphone-application%2F&amp;title=Concept+iPhone+Application" 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%2Fblog.automated.it%2F2008%2F11%2F11%2Fconcept-iphone-application%2F&amp;title=Concept+iPhone+Application" 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%2Fblog.automated.it%2F2008%2F11%2F11%2Fconcept-iphone-application%2F&amp;title=Concept+iPhone+Application" 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%2Fblog.automated.it%2F2008%2F11%2F11%2Fconcept-iphone-application%2F&amp;title=Concept+iPhone+Application" 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%2Fblog.automated.it%2F2008%2F11%2F11%2Fconcept-iphone-application%2F&amp;title=Concept+iPhone+Application', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2008%2F11%2F11%2Fconcept-iphone-application%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%2Fblog.automated.it%2F2008%2F11%2F11%2Fconcept-iphone-application%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%2Fblog.automated.it%2F2008%2F11%2F11%2Fconcept-iphone-application%2F&amp;title=Concept+iPhone+Application" 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%2Fblog.automated.it%2F2008%2F11%2F11%2Fconcept-iphone-application%2F&amp;title=Concept+iPhone+Application" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2008%2F11%2F11%2Fconcept-iphone-application%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2008/11/11/concept-iphone-application/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Fullscreen iPhone WebApps</title>
		<link>http://blog.automated.it/2008/10/19/fullscreen-iphone-webapps/</link>
		<comments>http://blog.automated.it/2008/10/19/fullscreen-iphone-webapps/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 16:44:59 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=193</guid>
		<description><![CDATA[Web applications on the iPhone have always been second class citizens without access to the really interesting features. To add insult to injury web applications lost a large chunk of screen real estate to the top and bottom Safari toolbars. Well, now they don&#8217;t need to. For users with firmware 2.1, if you add the [...]]]></description>
			<content:encoded><![CDATA[<p>Web applications on the <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a> have always <img src="http://blog.automated.it/images/gallery/webapps/Webapp_inline.png" class='right'>been second class citizens without access to the really interesting features. To add insult to injury web applications lost a large chunk of screen real estate to the top and bottom Safari toolbars. </p>
<p>Well, now they don&#8217;t need to. For users with firmware 2.1, if you add the following lines to the &lt;head&gt; section of your web application page then, when someone adds your web application to their home screen and then uses it all they will see is the standard bar showing carrier name, signal and battery level. As ever the pictures should make it much clearer. Notice that there is no address bar or lower toolbar <strong>at all</strong>, even when scrolling.<br />
<span id="more-193"></span></p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width; 
 initial-scale=1.0; maximum-scale=1.0; user-scalable=1;&quot; /&gt;
&nbsp;
&lt;meta name=&quot;apple-mobile-web-app-capable&quot; content=&quot;yes&quot; /&gt;
&nbsp;
&lt;meta names=&quot;apple-mobile-web-app-status-bar-style&quot; 
 content=&quot;black-translucent&quot; /&gt;</pre></div></div>

<p>
One thing I should point out is that, if you already have a link to a particular web application on your home screen, you will need to delete it and recreate it after the above lines have been added. </p>
<p><a title="Web app opened from Home Screen" rel="thumbnail" href="http://blog.automated.it/images/gallery/webapps/Webapp_openl.png"><img src="http://blog.automated.it/images/gallery/webapps/Webapp_open.png" alt="Web app opened from Home Screen" width="32" height="48" /></a><a title="Web app scrolling down - no address bar" rel="thumbnail" href="http://blog.automated.it/images/gallery/webapps/Webapp_downl.png"><img src="http://blog.automated.it/images/gallery/webapps/Webapp_scrolldown.png" alt="Web app scrolling down - no address bar" width="32" height="48" /></a><a title="Web app scrolling up" rel="thumbnail" href="http://blog.automated.it/images/gallery/webapps/Webapp_upl.png"><img src="http://blog.automated.it/images/gallery/webapps/Webapp_scrollup.png" alt="Web app scrolling up" width="32" height="48" /></a></p>

<br><a href=http://blog.automated.it/2008/10/19/fullscreen-iphone-webapps/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2008%2F10%2F19%2Ffullscreen-iphone-webapps%2F&amp;title=Fullscreen+iPhone+WebApps" 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%2Fblog.automated.it%2F2008%2F10%2F19%2Ffullscreen-iphone-webapps%2F&amp;title=Fullscreen+iPhone+WebApps" 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%2Fblog.automated.it%2F2008%2F10%2F19%2Ffullscreen-iphone-webapps%2F&amp;title=Fullscreen+iPhone+WebApps" 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%2Fblog.automated.it%2F2008%2F10%2F19%2Ffullscreen-iphone-webapps%2F&amp;title=Fullscreen+iPhone+WebApps" 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%2Fblog.automated.it%2F2008%2F10%2F19%2Ffullscreen-iphone-webapps%2F&amp;title=Fullscreen+iPhone+WebApps', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2008%2F10%2F19%2Ffullscreen-iphone-webapps%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%2Fblog.automated.it%2F2008%2F10%2F19%2Ffullscreen-iphone-webapps%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%2Fblog.automated.it%2F2008%2F10%2F19%2Ffullscreen-iphone-webapps%2F&amp;title=Fullscreen+iPhone+WebApps" 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%2Fblog.automated.it%2F2008%2F10%2F19%2Ffullscreen-iphone-webapps%2F&amp;title=Fullscreen+iPhone+WebApps" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2008%2F10%2F19%2Ffullscreen-iphone-webapps%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2008/10/19/fullscreen-iphone-webapps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lock screen fun</title>
		<link>http://blog.automated.it/2008/10/06/lock-screen-fun/</link>
		<comments>http://blog.automated.it/2008/10/06/lock-screen-fun/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 22:15:18 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=171</guid>
		<description><![CDATA[Yet more jailbroken iPhone fun based on Status Notifier. The original version simply placed icons on the lock screen if you had SMS&#8217;s, email, voice mail or missed calls. I wanted to have the actual counts visible, just like you get on the standard icons. The CSS for the badge is simple: .shield &#123; position: [...]]]></description>
			<content:encoded><![CDATA[<p>Yet more <a href="http://blog.iphone-dev.org/" target='blank'>jailbroken</a> <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a> fun based on <a title="Status Notifier" href="http://code.google.com/p/statusnotifier/" target="_blank">Status Notifier</a>. <img class="left" title="Notify icons with badges" src="/images/gallery/iphone/notifysmall.png" alt="" width="320" height="209" />The original version simply placed icons on the lock screen if you had SMS&#8217;s, email, voice mail or missed calls. I wanted to have the actual counts visible, just like you get on the standard icons. The CSS for the badge is simple:<br />
<span id="more-171"></span></p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.shield</span> <span style="color: #00AA00;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
        <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
        <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">7px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.badge</span> <span style="color: #00AA00;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> helvetica<span style="color: #00AA00;">;</span>
        <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span>
        <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
        <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
        <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-2px</span><span style="color: #00AA00;">;</span>
        <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">52px</span><span style="color: #00AA00;">;</span>
        <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">30px</span><span style="color: #00AA00;">;</span>
        <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">24px</span><span style="color: #00AA00;">;</span>
        <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">3px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
        <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">imgs/badge.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
        <span style="color: #000000; font-weight: bold;">color</span> <span style="color: #00AA00;">:</span>  <span style="color: #993333;">white</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>the badge.png image is just a copy of the original from the <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a>. Then we just wrap the icon and badge in the &#8216;shield&#8217; div</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;">&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;height: 220px; width: 320px;&quot;</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;shield&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;CallIcon&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;display:block&quot;</span> </span>
<span style="color: #009900;">         <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;imgs/call.png&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;CallIconB&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;badge&quot;</span> </span>
<span style="color: #009900;">        <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;display:none&quot;</span>&gt;</span>0<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;shield&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;MailIcon&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;display:block&quot;</span> </span>
<span style="color: #009900;">         <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;imgs/mail.png&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;MailIconB&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;badge&quot;</span> </span>
<span style="color: #009900;">        <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;display:none&quot;</span>&gt;</span>0<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;shield&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;SMSIcon&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;display:block&quot;</span> </span>
<span style="color: #009900;">         <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;imgs/sms.png&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
     <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;SMSIconB&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;badge&quot;</span> </span>
<span style="color: #009900;">          <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;display:none&quot;</span>&gt;</span>0<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;shield&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;VoiceMailIcon&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;display:block&quot;</span> </span>
<span style="color: #009900;">         <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;imgs/voicemail.png&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;VoiceMailIconB&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;badge&quot;</span> </span>
<span style="color: #009900;">        <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;display:none&quot;</span>&gt;</span>0<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>

<p>Now it&#8217;s just a case of tweaking the javascript to update the values of the badges. The showElement function gets a new parameter, the count for this icon&#8217;s badge. We set the value and make the badge visible.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> showElement<span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #339933;">,</span>count<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
   elCn <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'B'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>elCn<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
       elCn.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> count<span style="color: #339933;">;</span>
       elCn.<span style="color: #660066;">style</span>.<span style="color: #660066;">display</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'block'</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
    document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">style</span>.<span style="color: #660066;">display</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>The hideElement function gets a little change to hide the badge completely if the count is 0. I&#8217;m a little undecided as to if the icons should always be on display, I think I prefer that they are &#8211; hence the commenting out of the style change.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> hideElement<span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
   elCn <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'B'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>elCn<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      elCn.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
      elCn.<span style="color: #660066;">style</span>.<span style="color: #660066;">display</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;none&quot;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
      <span style="color: #006600; font-style: italic;">//document.getElementById(name).style.display = &quot;none&quot;;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>All that remains is a small change to the call to showElement to pass the value.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> updateIcon<span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
   <span style="color: #003366; font-weight: bold;">var</span> value<span style="color: #339933;">;</span>
   <span style="color: #003366; font-weight: bold;">var</span> elVa<span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #000066; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span> 
      elVa <span style="color: #339933;">=</span>  xmlReq.<span style="color: #660066;">responseXML</span>.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      value <span style="color: #339933;">=</span> elVa<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">firstChild</span>.<span style="color: #660066;">nodeValue</span><span style="color: #339933;">;</span>
&nbsp;
      <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>value <span style="color: #339933;">!=</span> <span style="color: #3366CC;">&quot;0&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
          showElement<span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;Icon&quot;</span><span style="color: #339933;">,</span>value<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
          hideElement<span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;Icon&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
   <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>error<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><a title="Updating badges on the icons" rel="thumbnail" href="http://blog.automated.it/images/gallery/iphone/notifierbadges.png"><img src="http://blog.automated.it/images/gallery/iphone/thumb_notifierbadges.png" alt="Updating badges" width="32" height="48" /></a></p>

<br><a href=http://blog.automated.it/2008/10/06/lock-screen-fun/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2008%2F10%2F06%2Flock-screen-fun%2F&amp;title=Lock+screen+fun" 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%2Fblog.automated.it%2F2008%2F10%2F06%2Flock-screen-fun%2F&amp;title=Lock+screen+fun" 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%2Fblog.automated.it%2F2008%2F10%2F06%2Flock-screen-fun%2F&amp;title=Lock+screen+fun" 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%2Fblog.automated.it%2F2008%2F10%2F06%2Flock-screen-fun%2F&amp;title=Lock+screen+fun" 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%2Fblog.automated.it%2F2008%2F10%2F06%2Flock-screen-fun%2F&amp;title=Lock+screen+fun', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2008%2F10%2F06%2Flock-screen-fun%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%2Fblog.automated.it%2F2008%2F10%2F06%2Flock-screen-fun%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%2Fblog.automated.it%2F2008%2F10%2F06%2Flock-screen-fun%2F&amp;title=Lock+screen+fun" 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%2Fblog.automated.it%2F2008%2F10%2F06%2Flock-screen-fun%2F&amp;title=Lock+screen+fun" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2008%2F10%2F06%2Flock-screen-fun%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2008/10/06/lock-screen-fun/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Follow Me Wallpaper</title>
		<link>http://blog.automated.it/2008/09/22/follow-me-wallpaper/</link>
		<comments>http://blog.automated.it/2008/09/22/follow-me-wallpaper/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 11:50:58 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[tracking]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=139</guid>
		<description><![CDATA[Last night I tried a little experiment on my jailbroken iPhone. Since I&#8217;d already started poking about playing with my own Winterboard themes and have been tracking my iPhone&#8217;s location for a while now, I thought I&#8217;d see what happened if I mixed the two. So, how about wallpaper that followed you? It turns out [...]]]></description>
			<content:encoded><![CDATA[<p>Last night I tried a little experiment on my <a title="Pwnage Tool" href="http://blog.iphone-dev.org/" target="_blank">jailbroken</a> <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a>. Since I&#8217;d already started poking about playing with my own <a title="Winterboard" href="http://www.saurik.com/id/9" target="_blank">Winterboard</a> themes and have been tracking my <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a>&#8217;s location for a while now, I thought I&#8217;d see what happened if I mixed the two. So, how about wallpaper that followed you? <img class="right" title="Follow Me Wallpaper" src="/images/followmewp.png" alt="Follow Me" width="200" height="300" /> It turns out that combining the two is relatively straight forward. <a href="http://www.google.com" target='blank'>Google</a> now provide a mechanism for getting what they call <a title="Google Static Maps" href="http://code.google.com/apis/maps/documentation/staticmaps/" target="_blank">static maps</a> which will allow you to get an image centered on a set of coordinates. You can also add your own markers if you want.</p>
<p>There are some limitations on the number and size of the maps that you can retrieve so I employed a very simple caching mechanism to ensure I didn&#8217;t annoy <a href="http://www.google.com" target='blank'>Google</a>. This certainly helps speed things up when testing and also enabled me to identify a small issue I was having.<br />
<span id="more-139"></span><br />
One of the things I wanted to happen was that the image on the phone would only change if the location of the phone had changed and the phone had a network connection of some type (wifi/edge etc). So far it works pretty well except when the phone uses SkyHook IP  which manages to be 100&#8242;s of kilometers out. Thankfully since my positioning database has the source of the positioning I can filter out those dodgy SkyHook IP results.</p>
<p>I also found that it was better to remove the text from the docked icons. Well, technically, I didn&#8217;t actually remove it I just made it transparent. The text for the other icons was made red so that it can be seen over the underlying map. It&#8217;s a simple process. By adding the following lines to the Info.plist of my Winterboard theme, I get the desired effect.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>UndockedIconLabelStyle<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>font-size: 13px; color: red<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>DockedIconLabelStyle<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>font-size: 13px; color: transparent<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Any of the <a href="http://www.google.com" target='blank'>Google</a> maps styles can be used (roadmap, mobile, satellite etc) but I prefer the mobile one since it&#8217;s clearer and the number of bytes that need to be transmitted is less than half of that for the satellite image.</p>

<br><a href=http://blog.automated.it/2008/09/22/follow-me-wallpaper/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2008%2F09%2F22%2Ffollow-me-wallpaper%2F&amp;title=Follow+Me+Wallpaper" 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%2Fblog.automated.it%2F2008%2F09%2F22%2Ffollow-me-wallpaper%2F&amp;title=Follow+Me+Wallpaper" 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%2Fblog.automated.it%2F2008%2F09%2F22%2Ffollow-me-wallpaper%2F&amp;title=Follow+Me+Wallpaper" 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%2Fblog.automated.it%2F2008%2F09%2F22%2Ffollow-me-wallpaper%2F&amp;title=Follow+Me+Wallpaper" 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%2Fblog.automated.it%2F2008%2F09%2F22%2Ffollow-me-wallpaper%2F&amp;title=Follow+Me+Wallpaper', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2008%2F09%2F22%2Ffollow-me-wallpaper%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%2Fblog.automated.it%2F2008%2F09%2F22%2Ffollow-me-wallpaper%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%2Fblog.automated.it%2F2008%2F09%2F22%2Ffollow-me-wallpaper%2F&amp;title=Follow+Me+Wallpaper" 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%2Fblog.automated.it%2F2008%2F09%2F22%2Ffollow-me-wallpaper%2F&amp;title=Follow+Me+Wallpaper" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2008%2F09%2F22%2Ffollow-me-wallpaper%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2008/09/22/follow-me-wallpaper/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tagging The Untagged</title>
		<link>http://blog.automated.it/2008/09/21/tagging-the-untagged/</link>
		<comments>http://blog.automated.it/2008/09/21/tagging-the-untagged/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 13:11:53 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[opensource]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=128</guid>
		<description><![CDATA[I recently purchased a copy of Jaikoz to help process some of my bulging music collection. Back in the day when most of this got ripped grabbing details from the internet was pretty much unknown. As time progressed things got easier but these old rips never really got their info updated. They may have had [...]]]></description>
			<content:encoded><![CDATA[<p>I recently purchased a copy of <a title="Jaikoz" href="http://www.jthink.net/jaikoz/jsp/startup.jsp" target="_blank">Jaikoz</a> to help process some of my bulging music collection. Back in the day when most of this got ripped grabbing details from the internet was pretty much unknown. As time <img alt="" src="/images/jaikoz.gif" title="Jaikoz" class="left" width="64" height="64" />progressed things got easier but these old rips never really got their info updated. They may have had an artist and album folder, but they didn&#8217;t have much in the way of tags. Jaikoz, which runs under Windows, OS X and Linux, was to be my tool of choice in repairing them all. The process is pretty simple. Select the folder containing music to be tagged and then click the toolbar button of a car. Then all you need to do is find somehting else to do for a few hours. When you come back most, if not all, of your untagged music is tagged.<br />
<span id="more-128"></span><br />
There were a few tracks that Jaikoz couldn&#8217;t tag from <a title="Music IP" href="http://www.musicip.com/" target="_blank">MusicIP</a> or <a title="Music Brainz" href="http://musicbrainz.org/" target="_blank">MusicBrainz</a> but it has certainly cut down the typing I&#8217;ll have to do quite drastically.</p>
<p>Now, Jaikoz does have iTunes integration but since I&#8217;m dealing with lots of files memory is going to get used up and we don&#8217;t really want to have that bloated pig (iTunes) running at the same time. Once all the files have had their tags done and saved by Jaikoz used this AppleScript:</p>

<div class="wp_syntax"><div class="code"><pre class="applescript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">(*
Refresh Selected Tags v1.0
June 6, 2006 (yes, that's 6/6/06)
http://marv.kordix.com
*)</span>
&nbsp;
<span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;iTunes&quot;</span>
&nbsp;
   <span style="color: #ff0033; font-weight: bold;">if</span> <span style="color: #0066ff;">selection</span> <span style="color: #ff0033; font-weight: bold;">is</span> <span style="color: #000000;">&#123;</span><span style="color: #000000;">&#125;</span> <span style="color: #ff0033; font-weight: bold;">then</span>
      <span style="color: #0066ff;">display dialog</span> <span style="color: #009900;">&quot;No tracks selected.&quot;</span> <span style="color: #0066ff;">buttons</span> <span style="color: #000000;">&#123;</span><span style="color: #009900;">&quot;I will!&quot;</span><span style="color: #000000;">&#125;</span> ¬
         default button <span style="color: #000000;">1</span> <span style="color: #ff0033; font-weight: bold;">with</span> icon <span style="color: #000000;">0</span>
   <span style="color: #ff0033; font-weight: bold;">else</span>
      <span style="color: #ff0033; font-weight: bold;">set</span> sel <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #0066ff;">selection</span>
      <span style="color: #ff0033; font-weight: bold;">repeat</span> <span style="color: #ff0033; font-weight: bold;">with</span> myTrack <span style="color: #ff0033; font-weight: bold;">in</span> sel
         <span style="color: #ff0033; font-weight: bold;">if</span> myTrack`s class <span style="color: #ff0033; font-weight: bold;">is</span> <span style="color: #0066ff;">file</span> track <span style="color: #ff0033; font-weight: bold;">then</span>
            <span style="color: #ff0033; font-weight: bold;">tell</span> myTrack
               refresh myTrack
            <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span>
         <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">if</span>
      <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">repeat</span>
&nbsp;
      <span style="color: #0066ff;">display dialog</span> <span style="color: #009900;">&quot;Selected tags have been freshened up.&quot;</span> ¬
          <span style="color: #0066ff;">buttons</span> <span style="color: #000000;">&#123;</span><span style="color: #009900;">&quot;Okay&quot;</span><span style="color: #000000;">&#125;</span> ¬
         default button <span style="color: #000000;">1</span>
&nbsp;
   <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">if</span>
&nbsp;
<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span></pre></div></div>

<p>to refresh iTunes music that&#8217;s had its tags changed.</p>

<br><a href=http://blog.automated.it/2008/09/21/tagging-the-untagged/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2008%2F09%2F21%2Ftagging-the-untagged%2F&amp;title=Tagging+The+Untagged" 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%2Fblog.automated.it%2F2008%2F09%2F21%2Ftagging-the-untagged%2F&amp;title=Tagging+The+Untagged" 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%2Fblog.automated.it%2F2008%2F09%2F21%2Ftagging-the-untagged%2F&amp;title=Tagging+The+Untagged" 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%2Fblog.automated.it%2F2008%2F09%2F21%2Ftagging-the-untagged%2F&amp;title=Tagging+The+Untagged" 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%2Fblog.automated.it%2F2008%2F09%2F21%2Ftagging-the-untagged%2F&amp;title=Tagging+The+Untagged', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2008%2F09%2F21%2Ftagging-the-untagged%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%2Fblog.automated.it%2F2008%2F09%2F21%2Ftagging-the-untagged%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%2Fblog.automated.it%2F2008%2F09%2F21%2Ftagging-the-untagged%2F&amp;title=Tagging+The+Untagged" 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%2Fblog.automated.it%2F2008%2F09%2F21%2Ftagging-the-untagged%2F&amp;title=Tagging+The+Untagged" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2008%2F09%2F21%2Ftagging-the-untagged%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2008/09/21/tagging-the-untagged/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Winterboard Rick Roll</title>
		<link>http://blog.automated.it/2008/08/12/winterboard-rick-roll/</link>
		<comments>http://blog.automated.it/2008/08/12/winterboard-rick-roll/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 10:26:04 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[jailbreak]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=67</guid>
		<description><![CDATA[Winterboard is a rather good application for a jailbroken iPhone that allows you to theme your iPhone&#8217;s appearance. It&#8217;s touted as a replacement for Summerboard, which I&#8217;ve never used. As with any theming you will want to download some, well, themes. The Suprise theme is one that you do not want to install. Put simply [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Winterboard" href="http://www.saurik.com/id/9" target="_blank">Winterboard</a> is a rather good application for a <a href="http://blog.iphone-dev.org/" target='blank'>jailbroken</a> <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a> that allows you to theme your <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a>&#8217;s appearance. It&#8217;s touted as a replacement for Summerboard, which I&#8217;ve never used. As with any theming you will want to download some, well, themes.<br />
<span id="more-67"></span><br />
The <strong>Suprise</strong> theme is one that you <strong><em>do not </em></strong>want to install. Put simply it&#8217;s a <a title="Rick Roll" href="http://en.wikipedia.org/wiki/Rickroll" target="_blank">Rick Roll </a>on your <a href="http://www.apple.com/iphone/" target='blank'>iPhone</a> home screen.</p>
<p>What?</p>
<p>&#8220;Way to go spoiling it?&#8221;</p>
<p>I don&#8217;t care.</p>
<p>What it has done is cast a shadow over the Big Boss &amp; Planet-iPhones repositories which either don&#8217;t verify or don&#8217;t care what ends up in their listings. While a Rick Roll isn&#8217;t dangerous it does highlight the dangers of installing applications etc from these repositories. It&#8217;s <strong>all</strong> about trust, if you can&#8217;t trust a repository it has no value. While the theme was probably a joke it has just made these repositories untrustworthy.</p>

<br><a href=http://blog.automated.it/2008/08/12/winterboard-rick-roll/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2008%2F08%2F12%2Fwinterboard-rick-roll%2F&amp;title=Winterboard+Rick+Roll" 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%2Fblog.automated.it%2F2008%2F08%2F12%2Fwinterboard-rick-roll%2F&amp;title=Winterboard+Rick+Roll" 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%2Fblog.automated.it%2F2008%2F08%2F12%2Fwinterboard-rick-roll%2F&amp;title=Winterboard+Rick+Roll" 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%2Fblog.automated.it%2F2008%2F08%2F12%2Fwinterboard-rick-roll%2F&amp;title=Winterboard+Rick+Roll" 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%2Fblog.automated.it%2F2008%2F08%2F12%2Fwinterboard-rick-roll%2F&amp;title=Winterboard+Rick+Roll', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2008%2F08%2F12%2Fwinterboard-rick-roll%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%2Fblog.automated.it%2F2008%2F08%2F12%2Fwinterboard-rick-roll%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%2Fblog.automated.it%2F2008%2F08%2F12%2Fwinterboard-rick-roll%2F&amp;title=Winterboard+Rick+Roll" 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%2Fblog.automated.it%2F2008%2F08%2F12%2Fwinterboard-rick-roll%2F&amp;title=Winterboard+Rick+Roll" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2008%2F08%2F12%2Fwinterboard-rick-roll%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2008/08/12/winterboard-rick-roll/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter == FAIL</title>
		<link>http://blog.automated.it/2008/07/24/twitter-fail/</link>
		<comments>http://blog.automated.it/2008/07/24/twitter-fail/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 12:58:39 +0000</pubDate>
		<dc:creator>ScaredyCat / Andy Powell</dc:creator>
				<category><![CDATA[opensource]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[api]]></category>

		<guid isPermaLink="false">http://blog.automated.it/?p=61</guid>
		<description><![CDATA[I&#8217;ve finally had enough of Twitter. I have no idea why people put up with its failures, its continuing inability to do IM updates or its inability to cope with their traffic volumes. It&#8217;s just broken. I&#8217;m moving to identi.ca which seems to be a lot more robust and at least lets me use IM. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally had enough of Twitter. I have no idea why people put up with its failures, its continuing inability to do IM updates or its inability to cope with their traffic volumes. It&#8217;s just broken. I&#8217;m moving to <a title="identi.ca" href="http://identi.ca" target="_blank">identi.ca</a> which seems to be a lot more robust and at least lets me use IM. The also have a twitter compatible <a title="Twitter compatible API" href="http://laconi.ca/Main/Twitter-compatibleAPI" target="_blank">API</a> sorted out. A perfect replacement. Hope to see you there soon.</p>

<br><a href=http://blog.automated.it/2008/07/24/twitter-fail/><p><img style='float:right;margin-left:15px;margin-bottom:10px;' src='http://blog.automated.it/images/tccb.png' border='0'></a></p><br>

<br><span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fblog.automated.it%2F2008%2F07%2F24%2Ftwitter-fail%2F&amp;title=Twitter+%3D%3D+FAIL" 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%2Fblog.automated.it%2F2008%2F07%2F24%2Ftwitter-fail%2F&amp;title=Twitter+%3D%3D+FAIL" 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%2Fblog.automated.it%2F2008%2F07%2F24%2Ftwitter-fail%2F&amp;title=Twitter+%3D%3D+FAIL" 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%2Fblog.automated.it%2F2008%2F07%2F24%2Ftwitter-fail%2F&amp;title=Twitter+%3D%3D+FAIL" 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%2Fblog.automated.it%2F2008%2F07%2F24%2Ftwitter-fail%2F&amp;title=Twitter+%3D%3D+FAIL', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.automated.it%2F2008%2F07%2F24%2Ftwitter-fail%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%2Fblog.automated.it%2F2008%2F07%2F24%2Ftwitter-fail%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%2Fblog.automated.it%2F2008%2F07%2F24%2Ftwitter-fail%2F&amp;title=Twitter+%3D%3D+FAIL" 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%2Fblog.automated.it%2F2008%2F07%2F24%2Ftwitter-fail%2F&amp;title=Twitter+%3D%3D+FAIL" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
<a href="http://twitter.com/home?status=Currently reading http%3A%2F%2Fblog.automated.it%2F2008%2F07%2F24%2Ftwitter-fail%2F" title="Click to send this page to Twitter!" target="_blank"><img src="http://www.twitter.com/favicon.ico" width="16" height="16" alt="[Twitter]" /></a>
</span><br><br>]]></content:encoded>
			<wfw:commentRss>http://blog.automated.it/2008/07/24/twitter-fail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
