<?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>roobasoft blog &#187; Dashboard</title>
	<atom:link href="http://roobasoft.com/blog/category/dashboard/feed/" rel="self" type="application/rss+xml" />
	<link>http://roobasoft.com/blog</link>
	<description></description>
	<lastBuildDate>Sun, 15 Apr 2012 17:02:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Introducing TraineoWeight.wdgt</title>
		<link>http://roobasoft.com/blog/2007/01/20/introducing-traineoweightwdgt/</link>
		<comments>http://roobasoft.com/blog/2007/01/20/introducing-traineoweightwdgt/#comments</comments>
		<pubDate>Sat, 20 Jan 2007 14:27:02 +0000</pubDate>
		<dc:creator>BrianC</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Dashboard]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[releases]]></category>
		<category><![CDATA[Widgets]]></category>

		<guid isPermaLink="false">http://roobasoft.com/blog/2007/01/20/introducing-traineoweightwdgt/</guid>
		<description><![CDATA[Update: The traineo guys provided an API and I updated the widget. See: TraineoWeight.wdgt Updated Like most Americans I&#8217;d prefer to be less fat. To help me with that goal I&#8217;ve been logging my weight on traineo.com. They offer plenty more than just weight tracking, but I haven&#8217;t gotten into all that quite yet. Anyway, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:right;">
<img src="http://roobasoft.com/blog/wp-content/uploads/traineo59.png" height="252" width="152" border="0" align="right" hspace="4" vspace="4" alt="Yes, I really want to lose that much" title="Yes, I really want to lose that much" /><img src="http://roobasoft.com/blog/wp-content/uploads/traineodone.png" height="252" width="152" border="0" align="right" hspace="4" vspace="4" alt="Traineodone" />
</p>

<p>
<strong>Update: </strong>The traineo guys provided an API and I updated the widget. See: <a href="http://roobasoft.com/blog/2007/01/24/traineoweightwdgt-updated/" title="roobaLog » Blog Archive » TraineoWeight.wdgt Updated">TraineoWeight.wdgt Updated</a>
</p>

<p>
Like most Americans I&#8217;d prefer to be less fat. To help me with that goal I&#8217;ve been logging my weight on <a href="http://traineo.com">traineo.com</a>. They offer plenty more than just weight tracking, but I haven&#8217;t gotten into all that quite yet. Anyway, it seemed silly to log into a web page just to enter my weight each day (who has the time for that! <img src='http://roobasoft.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  &lt;/lazy&gt;). So I pinged the traineo folks and got this in reply:
</p>

<blockquote>
I&#8217;m afraid that at the moment we don&#8217;t have an open API, although we are planning to release one in the not-too-distant future.
<br />
<br />&lt;snip&gt;
<br />
<br />If you want to input your weight remotely, this is possible, but not something we actively advertise, as it&#8217;s currently not really ready for public consumption.
<br />
<br />If you were to visit http://they.made.it.sound/like/i/shouldnt/share while logged in (i.e. you have a cookie saved in your browser (they don&#8217;t go stale for a long time)), your weight would be submitted.
</blockquote>

<p>
To which I said (to myself): &#8220;C Is for cookie, that&#8217;s good enough for me!&#8221;.
</p>

<p>
When I found myself awake at 3am[1]. I knew just what to do:
</p>

<p>
1) Fire up <a href="http://developer.apple.com/tools/dashcode/">Dashcode</a>
<br />2) Author a widget based on a template Apple provided[2] using 1997 methods of screen scraping[3].
<br />3) Publish widget with minimal testing
<br />4) Hope traineo doesn&#8217;t change their response HTML
</p>

<p>
This took ~3 hours of my time[4] and surely has bugs and will surely break when traineo changes their response. I provide this &#8220;as is&#8221;. With that:
</p>

<p>
Enjoy! <a href="http://roobasoft.com/widgets/TraineoWeight.wdgt.zip">TraineoWeight.wdgt.zip</a>  Make sure you log into your traineo account with Safari first.
</p>

<p>
[1] our 3 year old likes to wake me up and make me tuck her back in (it&#8217;s not that bad really &#8211; I&#8217;m sure I&#8217;ll miss it when it stops).
<br />[2] I can&#8217;t make pretty things. But I can copy pretty things!
<br />[3] .substring() &#8211; I fought the DOM parser for too long and finally reverted to .substring(). Yes, this is a hack and this widget *will* break someday&#8230;possibly soon.
<br />[4] I would have never tried this without Dashcode. It&#8217;s pretty slick. Two thumbs up.
<br />[5] Wait&#8230;there wasn&#8217;t a [5]. Well, if you want access to the Dashcode project let me know and I&#8217;ll put up an svn repo. Feel free to take the widget and do with it what you will.
</p>
]]></content:encoded>
			<wfw:commentRss>http://roobasoft.com/blog/2007/01/20/introducing-traineoweightwdgt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

