<?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>patspam &#187; Air</title>
	<atom:link href="http://blog.patspam.com/category/comp/air/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.patspam.com</link>
	<description>patspam patspam patspam</description>
	<lastBuildDate>Fri, 18 Jun 2010 23:44:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=554</generator>
		<item>
		<title>Tarpo now on GitHub</title>
		<link>http://blog.patspam.com/2009/tarpo-now-on-github</link>
		<comments>http://blog.patspam.com/2009/tarpo-now-on-github#comments</comments>
		<pubDate>Mon, 30 Nov 2009 01:57:41 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Comp]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://blog.patspam.com/?p=1277</guid>
		<description><![CDATA[At about 11pm on the night before I headed off for the States, Ted the Vet and I sat down to talk Tarpo. In case you&#8217;re wondering, Tarpo is an open source, cross platform Data Management desktop application for Dog Health programs in rural and remote Indigenous Australian communities, written entirely in Javascript. The last [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><a href="http://blog.patspam.com/wp-content/uploads/2009/11/tarpo.jpg"><img class="aligncenter size-medium wp-image-1279" title="Tarpo Logo" src="http://blog.patspam.com/wp-content/uploads/2009/11/tarpo-267x300.jpg" alt="Tarpo Logo" width="267" height="300" /></a></p>
<p style="text-align: left;">At about 11pm on the night before I headed off for the States, Ted the Vet and I sat down to talk <a href="http://pdonelan.github.com/tarpo">Tarpo</a>.</p>
<p>In case you&#8217;re wondering, Tarpo is an open source, cross platform Data Management desktop application for <a href="http://www.amrric.org/">Dog Health programs in rural and remote Indigenous Australian communities</a>, written entirely in Javascript.</p>
<p>The last time I <a href="http://blog.patspam.com/2008/tarpo">blogged about Tarpo</a> was way back in April 2008, and since then I haven&#8217;t really touched the code, but in the meantime Ted and his team of helpers have used it to record several thousand House Visits, Medical and Surgical Cases as part of the Maningrida Dog Health program.</p>
<p>Several other Veterinarians have started expressing interest in using Tarpo for their own Dog Health programs, and needless to say, we&#8217;ve accumulated a long list of bugs and feature requests over the past 18 months. So this afternoon, with a bit of spare time up my sleeve, I decided to get the ball rolling again.</p>
<p>Tarpo now has a proper project page, which you can visit at: <a href="http://pdonelan.github.com/tarpo/">http://pdonelan.github.com/tarpo</a></p>
<p>As you can see from the url, the code now lives on GitHub. Apart from the front page which has the all-important &#8220;Install Tarpo&#8221; button, the most important page on the GitHub project page is the <a href="http://github.com/pdonelan/tarpo/issues">Issue Tracker</a>, which I&#8217;m hoping Ted and other Vets will use to report all Bugs and Feature requests. With a bit of luck, that will also make it easier for other developers to get involved too.</p>
<p>With these things in place, I started attacking the bit rot. Firstly I had to install <a href="http://aptana.com">Aptana</a> and the Adobe Air plugin, which took several hours and reminded me how much I prefer doing development in <a href="http://padre.perlide.org">Padre</a>! On a side note, I spent a few hours trying to think if there was some way I could rewrite the entire app in Perl (I like Javascript in a twisted sort of way, but I&#8217;d rather ditch Adobe Air since it&#8217;s a proprietary framework) &#8211; but in the end I decided to stuck with the existing architecture, at least for now.</p>
<p>I though about doing it as a <a href="http://wxperl.sourceforge.net">wxPerl</a> app (like Padre), but I&#8217;d hate to lose the HTML widget set that <a href="http://extjs.com">ExtJS</a> gives me.. hmm that gets me thinking (help me out if you&#8217;re reading Gábor or any of the other Padre gurus..) does wxPerl have a modern embedded browser that I could use? Maybe webkit-based one..? Then the backend could be rewritten as a standalone <a href="http://plackperl.org/">Plack</a>-powered webapp and I&#8217;d have all of CPAN at my disposal.. hmm maybe that&#8217;s too ambitious, but it does feel like the sort of thing you *should* be able to do with Perl..</p>
<p>I didn&#8217;t have much time left to do any real coding after that, except for updating a few dependencies so that Tarpo at least starts up ok on the latest version of Adobe Air (a small victory). But at least now in a position to start attacking the <a href="http://github.com/pdonelan/tarpo/issues">ticket list</a>, which means that real progress can&#8217;t be too far off..</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.patspam.com/2009/tarpo-now-on-github/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tarpo</title>
		<link>http://blog.patspam.com/2008/tarpo</link>
		<comments>http://blog.patspam.com/2008/tarpo#comments</comments>
		<pubDate>Tue, 15 Apr 2008 02:53:15 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://blog.patspam.com/?p=1030</guid>
		<description><![CDATA[A huge class of applications are nothing more than a bunch of relational database tables with a simple Create Read Update Delete (CRUD) user interface. More and more these applications are being built as web-apps, eg. the user interface is HTML/CSS/Javascript running inside a users&#8217; browser, and the backend is a simple server-side layer (Perl/PHP/Ruby/J2EE/..) [...]]]></description>
			<content:encoded><![CDATA[<p>A huge class of applications are nothing more than a bunch of relational database tables with a simple <strong>C</strong>reate <strong>R</strong>ead <strong>U</strong>pdate <strong>D</strong>elete (CRUD) user interface. More and more these applications are being built as web-apps, eg. the user interface is HTML/CSS/Javascript running inside a users&#8217; browser, and the backend is a simple server-side layer (Perl/PHP/Ruby/J2EE/..) controlling access to an online database. This architecture is becoming increasingly easy to implement with the advent of server-side web/application frameworks (Catalyst/Rails/Spring) and database <strong>O</strong>bject <strong>R</strong>elational <strong>M</strong>appers (DBIx::Class/ActiveRecord/Hibernate,..) that remove most of the tedium, along with awesome Javascript libraries in the front-end (ExtJS/jQuery/Dojo/..) that let you make the user interface much more engaging and adaptable.</p>
<p><a href="http://blog.patspam.com/wp-content/uploads/2008/04/maningrida_surgery.jpg"><img class="alignleft size-thumbnail wp-image-1035" style="float: left; margin: 5px;" title="maningrida_surgery" src="http://blog.patspam.com/wp-content/uploads/2008/04/maningrida_surgery-150x150.jpg" alt="" width="150" height="150" /></a><a href="http://blog.patspam.com/wp-content/uploads/2008/04/maningrida_tech.jpg"><img class="alignright size-thumbnail wp-image-1036" style="float: right; margin: 5px;" title="maningrida_tech" src="http://blog.patspam.com/wp-content/uploads/2008/04/maningrida_tech-150x150.jpg" alt="" width="150" height="150" /></a>What happens, however, when your intended users have no internet access? I was recently faced with that exact problem: My Dad (Dr Ted Donelan) runs a pro bono dog health program in Maningrida, a self-governing aboriginal community in Arnhem Land (500km east of Darwin) where, unless you want to pay through the teeth for that Telstra NextG internet rubbish, there&#8217;s no easy access to the internet. And certainly no way of logging into a website while you&#8217;re riding around from house to house in a ute or carrying out surgery on an outdoor trestle table  underneath the local grog-shelter. Dr Ted wanted a way to record the statistical information that he collects (dog body conditions, mange scores, fleas, ticks, etc..) along with his formal veterinary records of surgical cases, medical cases, etc.. All of which can be neatly captured in a handful of relational tables (attested by the fact that previously he had been recording his data in hand-written tables, later to be transferred to Excel). I suppose I could have stepped back into the C#/Java world and implemented a stand-alone app to solve the problem, but I&#8217;m not familiar enough with any frameworks in those languages to whip up something quickly. And that was the point, I only had a small amount of time to come up with a solution. And what I really wanted was a way to build him a stand-alone app using my existing HTML/Javascript/CSS-fu..</p>
<p>Cue <a href="http://www.adobe.com/products/air/">Adobe AIR</a>.. a desktop framework that lets you build traditional dektop apps using web technologies. Now I&#8217;m not the biggest fan of proprietary technology (Adobe Flash being a prime example) since it goes against the grain of the Open Web, but there&#8217;s really no open-source alternatives at the moment.</p>
<p>The first really awesome AIR app I saw was ExtJS creator Jack Slockum&#8217;s &#8220;<a href="http://extjs.com/blog/2008/02/24/tasks2/">Simple Tasks</a>&#8220;. Check out the screen-shots and you&#8217;ll see why I was excited: here was a desktop application with an embedded (SQLite) database running pure HTML/CSS/Javascript. And not just any Javascript either. ExtJS shines most when used to create windows application-style interfaces, and as such it&#8217;s the perfect library to use in an AIR app when you really are building a desktop application.</p>
<p>Simple Tasks is released under GPL v3, so I decided to base my code on Jack&#8217;s. It was the right decision. With no prior experience with AIR it took less than a day to have a working prototype, and by working I mean a full database implementation, an editable data grid and an Add/Edit form for individual rows, all with the trademark ExtJS polish. That&#8217;s ridiculously fast.</p>
<p>After about 4 days with lots of feedback from Dr. Ted we had a finished app, named <strong><a href="http://patspam.com/tarpo">Tarpo</a></strong>, complete with polished input forms, reporting, backup, CSV/XML export, &#8230;</p>
<p><a href="http://blog.patspam.com/wp-content/uploads/2008/04/tarpo.jpg"><img class="alignnone size-thumbnail wp-image-1032" title="tarpo" src="http://blog.patspam.com/wp-content/uploads/2008/04/tarpo-150x150.jpg" alt="" width="150" height="150" /></a><br />
<a href="http://blog.patspam.com/wp-content/uploads/2008/04/tarpo-2.jpg"><img class="alignnone size-thumbnail wp-image-1033" title="tarpo-2" src="http://blog.patspam.com/wp-content/uploads/2008/04/tarpo-2-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p>I&#8217;ll be releasing <a href="http://patspam.com/tarpo">Tarpo</a> under GPL v3. Until then I&#8217;ve got a little <a href="http://patspam.com/tarpo">page</a> where you can install it straight off the web and have a play. Dr. Ted is heading up to Maningrida next week so I&#8217;m excited to see how <a href="http://patspam.com/tarpo">Tarpo</a> goes on her first test-run. If everything works well we&#8217;ll make her available to other Vets running similar programs in other indigenous communities. One cool follow-on from this will be that vets running <a href="http://amrric.org">AMRRIC</a>-endorsed programs could use <a href="http://patspam.com/tarpo">Tarpo</a> to submit their activity reports direct to the <a href="http://amrric.org">AMRRIC</a> website (which I recently developed).</p>
<p>Andy (also of <a href="http://sdhconsulting.com.au">SDH</a>) is whipping up a <a href="http://patspam.com/tarpo">Tarpo</a> logo for me, which I&#8217;ll post up here as soon as he&#8217;s finished inking it!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.patspam.com/2008/tarpo/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
