<?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>Garry PettetGarry Pettet - A geeky radiologist</title>
	<atom:link href="http://garrypettet.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://garrypettet.com</link>
	<description>A geeky radiologist</description>
	<lastBuildDate>Sat, 19 May 2012 09:26:45 +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>Use The Index, Luke</title>
		<link>http://garrypettet.com/2012/05/use-the-index-luke/</link>
		<comments>http://garrypettet.com/2012/05/use-the-index-luke/#comments</comments>
		<pubDate>Sat, 19 May 2012 09:26:45 +0000</pubDate>
		<dc:creator>Garry</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://garrypettet.com/?p=124</guid>
		<description><![CDATA[A useful index for tuning your SQL.]]></description>
			<content:encoded><![CDATA[<p><a href="http://use-the-index-luke.com/"> </a><br />
A useful index for tuning your SQL.</p>
]]></content:encoded>
			<wfw:commentRss>http://garrypettet.com/2012/05/use-the-index-luke/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MS Publisher To PDF Converter</title>
		<link>http://garrypettet.com/2012/05/ms-publisher-to-pdf-converter/</link>
		<comments>http://garrypettet.com/2012/05/ms-publisher-to-pdf-converter/#comments</comments>
		<pubDate>Thu, 17 May 2012 21:29:28 +0000</pubDate>
		<dc:creator>Garry</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://garrypettet.com/?p=122</guid>
		<description><![CDATA[If you&#8217;re on a Mac and have even been sent a Microsoft Publisher file, you&#8217;ll know you can&#8217;t open it. I&#8217;ve been using this free online MS publisher to PDF converter and it does exactly what it says on the tin. Recommended.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.publishertopdf.com"> </a><br />
If you&#8217;re on a Mac and have even been sent a Microsoft Publisher file, you&#8217;ll know you can&#8217;t open it.  I&#8217;ve been using this free online MS publisher to PDF converter and it does exactly what it says on the tin.  Recommended.</p>
]]></content:encoded>
			<wfw:commentRss>http://garrypettet.com/2012/05/ms-publisher-to-pdf-converter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FGUpload: A Better Real Studio WebFileUploader</title>
		<link>http://garrypettet.com/2012/05/fgupload-a-better-webfileuploader/</link>
		<comments>http://garrypettet.com/2012/05/fgupload-a-better-webfileuploader/#comments</comments>
		<pubDate>Sun, 06 May 2012 22:22:33 +0000</pubDate>
		<dc:creator>Garry</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[realbasic]]></category>
		<category><![CDATA[webedition]]></category>

		<guid isPermaLink="false">http://garrypettet.com/?p=112</guid>
		<description><![CDATA[I recently purchased a new license for Real Studio Web Edition as I have an idea for a web app that I&#8217;ve been meaning to build for quite some time. The app in mind will require the uploading of multiple image files of various sizes to the server. Whilst mocking up the uploading interface with [...]]]></description>
			<content:encoded><![CDATA[<p>I recently purchased a new license for Real Studio Web Edition as I have an idea for a web app that I&#8217;ve been meaning to build for quite some time. The app in mind will require the uploading of multiple image files of various sizes to the server. Whilst mocking up the uploading interface with the excellent <a href="http://www.balsamiq.com">Balsamiq Mockups</a> tool I thought I had better quickly explore the file uploading controls available in Web Edition. I was frankly horrified by the lack of functionality of the only file uploading control available to Web Edition &#8211; the WebFileUploader.</p>
<p>The native WebFileUploader has several limitations:</p>
<ol>
<li><span style="line-height: 21px;">Ugly UI.  You are essentially stuck with a listbox with two buttons, &#8220;+&#8221; and&#8221;-&#8221;</span></li>
<li><span style="line-height: 21px;">No events to inform of the live progress of uploads</span></li>
<li><span style="line-height: 21px;">No information on file size</span></li>
<li><span style="line-height: 21px;">No drag and drop support</span></li>
<li><span style="line-height: 21px;">File sizes are limited as the entire file is written to the RAM of your server</span></li>
</ol>
<p>Almost all of these limitations were show stoppers for my nascent project and I needed a workaround.  Searching on the forums and through feedback reports revealed many other people with the same complaints but it seems that RS is aware of the limitations but can&#8217;t rectify things without changing the underlying HTTP framework.</p>
<p>I did some research and came across a Javascript plugin / library called <a href="http://plupload.com">Plupload</a> which provides a framework for uploading files to a server using a combination of javascript and PHP.  It uses several runtimes to achieve this and will gracefully look for whatever runtime is available on the browser (either Flash, Silverlight, Google Gears, HTML 5 or good old HTML 4).</p>
<p>After a lot of tinkering / reading and swearing, I have managed to get a nice working framework to incorporate Plupload into your web apps and I thought I&#8217;d share the code and steps required to do this. I call the framework &#8211; FGUpload.</p>
<p><span style="text-decoration: underline;">Summary</span><br />
Firstly, <a href="/files/fgupload.zip">download the required files</a>.</p>
<p>Within your web app, instead of the user clicking on a WebFileUploader control you present them with an appropriately sized WebHTMLViewer (I find using a modal dialog works well).  The WebHTMLViewer points to a URL which contains Plupload.  The user interacts with Plupload through the WebHTMLViewer (of course they don&#8217;t realise this, they think they are still within your web app) and upload the files they want.  Once the upload is complete, Plupload redirects the user to a special URL which is handled by the App.HandleSpecialURL() event.</p>
<p>First of all, upload the entire contents of the [UPLOAD CONTENTS TO SERVER] folder to the server location of your choosing.  Next, within the FGUpload Real Studio project, change the value of dlgUpload.UploadURL to the URL of the uploaded index.html file.</p>
<p>The URL that the WebHTMLViewer points to is the location of the Plupload installation (index.html within the included folder).  Appended to this URL is a single parameter (id) containing the session identifier.  For example, if the URL of your Plupload installation is <strong>www.example.com/upload.html</strong> and the session identifier is ABCDEF123, the WebHTMLViewer.URL property should be: <strong>www.example.com/upload.html?id=ABCDEF123</strong>.</p>
<p>You need to edit the index.html file within the download specifying the URL of your web app.  Set the variable &#8216;<strong>webapp_url</strong>&#8216; to the URL of your web app (it&#8217;s near the top of the file).  In the example, it&#8217;s set up for local debugging. Within index.html, there is a line that says: <strong>unique_names : false</strong>.  By default, Plupload will leave the filename of uploads alone but you can set this to <strong>true</strong> to have it rename them to a unique name.  The reason this is false by default is that I haven&#8217;t (yet) figured out a way to get the new name of the file.</p>
<p>Finally, you may want to edit the included upload.php file to specify the folder that uploaded files should be saved.  The line to change is $targetdir = &#8216;uploads&#8217;;</p>
<p>When Plupload has completed uploading the selected files, it will redirect the WebHTMLViewer to <strong>webapp_url/special/upload</strong> and pass several parameters.  The first parameter is <em>id</em> and this contains the ID of the session that called Plupload.  Subsequent parameters are the names of the files uploaded.  E.g: <strong>mywebapp.com/special/upload?id=ABCDEF123&amp;name0=pic1.jpg&amp;name1=anotherpic.png</strong>.</p>
<p>There&#8217;s a lot more that can be done by tinkering with this and this is far from a completely functional application but it should serve an illustrative purpose.  Please let my know your thoughts in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://garrypettet.com/2012/05/fgupload-a-better-webfileuploader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging Real Studio Web Edition With Firefox</title>
		<link>http://garrypettet.com/2012/04/debugging-real-studio-web-edition-with-firefox/</link>
		<comments>http://garrypettet.com/2012/04/debugging-real-studio-web-edition-with-firefox/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 18:39:18 +0000</pubDate>
		<dc:creator>Garry</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[bugfix]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[realbasic]]></category>
		<category><![CDATA[webedition]]></category>

		<guid isPermaLink="false">http://garrypettet.com/?p=107</guid>
		<description><![CDATA[Many thanks to simulanics for this fix. Was driving me crazy that I couldn&#8217;t test out my web apps on Firefox!]]></description>
			<content:encoded><![CDATA[<p><a href="http://forums.realsoftware.com/viewtopic.php?f=23&#038;t=43199"> </a><br />
Many thanks to simulanics for this fix. Was driving me crazy that I couldn&#8217;t test out my web apps on Firefox!</p>
]]></content:encoded>
			<wfw:commentRss>http://garrypettet.com/2012/04/debugging-real-studio-web-edition-with-firefox/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Real Software&#8217;s Roadmap</title>
		<link>http://garrypettet.com/2012/04/real-softwares-roadmap/</link>
		<comments>http://garrypettet.com/2012/04/real-softwares-roadmap/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 11:07:20 +0000</pubDate>
		<dc:creator>Garry</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[real software]]></category>
		<category><![CDATA[realbasic]]></category>
		<category><![CDATA[realstudio]]></category>

		<guid isPermaLink="false">http://garrypettet.com/?p=80</guid>
		<description><![CDATA[This post is in response to Bob Keeney&#8217;s open letter to RS which has garnered quite a few comments. There are three issues here that I can see: The rapid release model The time RS devotes to bug fixes The new IDE First of all let&#8217;s get it out there, I like the rapid release [...]]]></description>
			<content:encoded><![CDATA[<p>This post is in response to Bob Keeney&#8217;s <a href="http://www.bkeeneybriefs.com/2012/04/open-letter-to-rs/">open letter</a> to RS which has garnered quite a few comments.</p>
<p>There are three issues here that I can see:</p>
<ol>
<li><span style="line-height: 21px;">The rapid release model</span></li>
<li><span style="line-height: 21px;">The time RS devotes to bug fixes</span></li>
<li><span style="line-height: 21px;">The new IDE</span></li>
</ol>
<p>First of all let&#8217;s get it out there, I like the rapid release model (RRM).  What I don&#8217;t like, however, is Real Software&#8217;s implementation of it. To quote the RS <a href="http://www.realsoftware.com/support/rapidrelease.php">support page</a>:</p>
<blockquote><p>once a product is released, a new version is released on the Internet every 90 days</p></blockquote>
<p>In principle, this is a great idea.  Customers win as RS pushes out new features and bug fixes as and when they&#8217;re ready and RS wins as it&#8217;s customers upgrade more frequently as they plenty of active development in the tool.</p>
<p>Only this isn&#8217;t what happens. The last time RS released an update (2011 release 4) was 5th December 2011. By my calculations, that&#8217;s exactly 140 days ago. Even if they release 2012 r1 today, are they going to offer existing license holders a 50 day extension to their licenses? I doubt it.</p>
<p>It&#8217;s been a long running (non) joke for years now that RS prioritise new features over bug fixes. There is plenty of evidence to support this from bug reports I&#8217;ve supported alone (<a href="&lt;feedback://showreport?report_id=16371&gt;">13 months old</a>, <a href="&lt;feedback://showreport?report_id=14318&gt;">16 months old</a>, <a href="&lt;feedback://showreport?report_id=17700&gt;">9 months old</a>).  All of these bugs have been Cocoa show stoppers for me and they are <em>basic UI issues</em> (I mean honestly, no focus ring around text fields?). Some of these have been marked as verified a year ago and yet have not been fixed &#8211; lost to the ether I suspect. Adding new features will not attract <em>sustainable</em> customers. Sure, new customers might come along but they won&#8217;t stay if the product is unreliable or they see that bugs are being ignored <strong>for years</strong>.</p>
<p>Finally we come to the new IDE.  I haven&#8217;t seen it. RS <a href="http://www.realsoftwareblog.com/2012/01/is-it-time-to-redesign.html">posted a teaser about it</a> back in January but there have been no updates about its progress since although we know that it&#8217;s coming in 2012 release 1 (whenever that arrives). I think a redesign probably is in order, largely because there have been several user interface advances in recent years and implementing them may improve my productivity.  My worry, however, is that RS are updating the UI to attract new customers, <em>not</em> to improve the experience for existing license holders. If they wanted to improve my experience, they could simply fix my bugs.</p>
<p>I really love Realbasic as a programming language.  I can create things with it that I&#8217;m simply not able to do with Objective-C or .NET or Java with my current level of knowledge.  I just dislike the company who I&#8217;m dependent upon as a developer because I feel out of the loop and not listened to.</p>
]]></content:encoded>
			<wfw:commentRss>http://garrypettet.com/2012/04/real-softwares-roadmap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reboot</title>
		<link>http://garrypettet.com/2012/04/reboot/</link>
		<comments>http://garrypettet.com/2012/04/reboot/#comments</comments>
		<pubDate>Sun, 22 Apr 2012 17:14:00 +0000</pubDate>
		<dc:creator>Garry</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://garrypettet.com/?p=72</guid>
		<description><![CDATA[garrypettet.com has been online since August 2006 and I&#8217;ve gone through periods of regular (and not so regular) blogging.  My wife and I recently had our first child (a little girl called Aoife) and since then I&#8217;ve been reflecting carefully on my interests and how I want to spend my (limited) free time. I like [...]]]></description>
			<content:encoded><![CDATA[<p>garrypettet.com has been online since August 2006 and I&#8217;ve gone through periods of regular (and not so regular) blogging.  My wife and I recently had our first child (a little girl called Aoife) and since then I&#8217;ve been reflecting carefully on my interests and how I want to spend my (limited) free time.</p>
<p>I like blogging but publishing to the world every last detail about one&#8217;s private life takes new meaning when you&#8217;re a Dad so I&#8217;ve decided to reboot this blog as a portal for my geeky ramblings and interests only, rather than my day-to-day activities.  The hobby that I&#8217;ve taken the most pleasure from for many years has been programming, specifically with <a href="http://realsoftware.com/realstudio">Real Studio</a>.  I run a small software company which uses Realbasic called <a href="http://madebyfiga.com">Figa software</a> and have released a few successful controls.  I&#8217;ve decided, therefore, that I&#8217;ll primarily use this site to talk about Realbasic and other interesting tech-related things I find on the web. I&#8217;m hoping to perhaps get a few video tutorials on coding with Realbasic up &#8211; we&#8217;ll see if time (or Aoife!) permits.</p>
<p>Anyway, for those who want to read the old articles or if you&#8217;re looking for my previously hosted medical notes, I&#8217;ve archived the old site at <a href="http://old.garrypettet.com">old.garrypettet.com</a>.</p>
<p>To new beginnings!</p>
]]></content:encoded>
			<wfw:commentRss>http://garrypettet.com/2012/04/reboot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nintendo Controller Coffee Table</title>
		<link>http://garrypettet.com/2012/04/nintendo-controller-coffee-table/</link>
		<comments>http://garrypettet.com/2012/04/nintendo-controller-coffee-table/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 17:52:05 +0000</pubDate>
		<dc:creator>Garry</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[gadgets]]></category>

		<guid isPermaLink="false">http://garrypettet.com/?p=54</guid>
		<description><![CDATA[ There’s absolutely no way my wife would ever let me buy this. Shame.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.etsy.com/listing/96827992/nintendo-controller-coffee-table"> </a>There’s absolutely no way my wife would ever let me buy this. Shame.</p>
]]></content:encoded>
			<wfw:commentRss>http://garrypettet.com/2012/04/nintendo-controller-coffee-table/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keypad Hidden Time Watch</title>
		<link>http://garrypettet.com/2012/04/keypad-hidden-time-watch/</link>
		<comments>http://garrypettet.com/2012/04/keypad-hidden-time-watch/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 09:50:50 +0000</pubDate>
		<dc:creator>Garry</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[gadgets]]></category>

		<guid isPermaLink="false">http://garrypettet.com/?p=52</guid>
		<description><![CDATA[ Nice bit of evening wear.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.coolest-gadgets.com/20120412/keypad-hidden-time-watch/"> </a>Nice bit of evening wear.</p>
]]></content:encoded>
			<wfw:commentRss>http://garrypettet.com/2012/04/keypad-hidden-time-watch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lion Battery Issue Fix</title>
		<link>http://garrypettet.com/2012/04/lion-battery-issue-fix/</link>
		<comments>http://garrypettet.com/2012/04/lion-battery-issue-fix/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 09:49:44 +0000</pubDate>
		<dc:creator>Garry</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[bug]]></category>

		<guid isPermaLink="false">http://garrypettet.com/?p=50</guid>
		<description><![CDATA[If (like me) you have a MacBook Air running Lion and your battery life is a joke, type the following into Terminal: sudo pmset -b standbydelay 900 standby 1 hibernatemode 25 Worked a treat.  Kudos to ‘Shadwig’.]]></description>
			<content:encoded><![CDATA[<p>If (like me) you have a MacBook Air running Lion and your battery life is a joke, type the following into Terminal:</p>
<blockquote><p>sudo pmset -b standbydelay 900 standby 1 hibernatemode 25</p></blockquote>
<p>Worked a treat.  Kudos to ‘Shadwig’.</p>
]]></content:encoded>
			<wfw:commentRss>http://garrypettet.com/2012/04/lion-battery-issue-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Raspberry Pi</title>
		<link>http://garrypettet.com/2012/04/raspberry-pi/</link>
		<comments>http://garrypettet.com/2012/04/raspberry-pi/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 07:48:34 +0000</pubDate>
		<dc:creator>Garry</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[hardware]]></category>

		<guid isPermaLink="false">http://garrypettet.com/?p=48</guid>
		<description><![CDATA[ Just preordered myself one of these.  A credit card sized 1080p-capable Linux-powered computer?  I’d be crazy not to get one!]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.raspberrypi.org/"> </a>Just preordered myself one of these.  A credit card sized 1080p-capable Linux-powered computer?  I’d be crazy not to get one!</p>
]]></content:encoded>
			<wfw:commentRss>http://garrypettet.com/2012/04/raspberry-pi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

