<?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>Nial Giacomelli</title>
	<atom:link href="http://nial.me/feed/" rel="self" type="application/rss+xml" />
	<link>http://nial.me</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Wed, 03 Feb 2010 12:48:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Rhombus.</title>
		<link>http://nial.me/2010/02/rhombus/</link>
		<comments>http://nial.me/2010/02/rhombus/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 12:47:33 +0000</pubDate>
		<dc:creator>Nial Giacomelli</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[rhombus]]></category>

		<guid isPermaLink="false">http://nial.me/?p=173</guid>
		<description><![CDATA[I&#8217;m tentatively pushing Rhombus out into the world today. It&#8217;s been a fairly simple evening and weekend project of mine for a while now. Rhombus&#8217; objective is simple: archive and deliver price changes on the Steam digital content network. To make the data as accessible as possible, users also have access to an RSS feed [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m tentatively pushing <a href="http://rhombus-app.com">Rhombus</a> out into the world today. It&#8217;s been a fairly simple evening and weekend project of mine for a while now. Rhombus&#8217; objective is simple: archive and deliver price changes on the Steam <a href="http://steampowered.com">digital content network</a>. To make the data as accessible as possible, users also have access to an RSS feed and a <a href="http://twitter.com/rhombusapp">Twitter account</a>.  Currently, Rhombus comes in two flavours: tracking both the <a href="http://rhombus-app.com">US</a> and <a href="http://uk.rhombus-app.com/">UK</a> versions of the Steam store.</p>
<p>The reason for Rhombus&#8217; existence is simple: I love videogames and great deals. Rhombus combines the two. </p>
]]></content:encoded>
			<wfw:commentRss>http://nial.me/2010/02/rhombus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using the HTML5 cache manifest with dynamic files</title>
		<link>http://nial.me/2010/01/using-the-html5-cache-manifest-with-dynamic-files/</link>
		<comments>http://nial.me/2010/01/using-the-html5-cache-manifest-with-dynamic-files/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 19:54:02 +0000</pubDate>
		<dc:creator>Nial Giacomelli</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[article]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://nial.me/?p=146</guid>
		<description><![CDATA[I recently added HTML5 cache manifest support to Showtime in an attempt to decrease load times for users on older hardware and for those with spotty network connectivity. As Stoyan Stefanov mentions: the current iPhone will not cache individual components if they are larger than 15K and will wipe all caches when the device is [...]]]></description>
			<content:encoded><![CDATA[<p>I recently added HTML5 cache manifest support to <a href="http://showtime-app.com">Showtime</a> in an attempt to decrease load times for users on older hardware and for those with spotty network connectivity. As <a href="http://www.phpied.com/iphone-caching/">Stoyan Stefanov</a> mentions: the current iPhone will not cache individual components if they are larger than 15K and will wipe all caches when the device is powered down or restarted. </p>
<p>This represents an inherent issue with using the <a href="http://jqtouch.com">jQTouch</a> library for iPhone-related web app development. Although jQTouch keeps itself fairly focused in terms of support (and thus lean), jQuery is bloated by its necessity to support all manner of rendering platforms and browser technologies. At the time of writing, a minified version of jQuery 1.4 will weigh in at about 72KB. As a result, jQuery must be remotely served each time your web application is accessed. While there has been talk of forking the jQuery codebase to shave away all non-essential (specifically, non-Webkit related implemenations and other pieces of fluff), those of us currently running web apps need a slightly more immediate solution.</p>
<p>That solution is the <a href="http://developer.apple.com/safari/library/documentation/iPhone/Conceptual/SafariJSDatabaseGuide/OfflineApplicationCache/OfflineApplicationCache.html">HTML5 cache manifest</a>. As the Safari Dev Center explains:</p>
<blockquote><p>The manifest file specifies the resources—such as HTML, JavaScript, CSS, and image files —to download and store in the application cache. After the first time a webpage is loaded, the resources specified in the manifest file are obtained from the application cache, not the web server.</p></blockquote>
<p>Although I had read about the cache manifest around the Internet, it wasn&#8217;t until I read Jonathon Stark&#8217;s wonderful <a href="http://www.amazon.com/Building-iPhone-Apps-HTML-JavaScript/dp/0596805780/ref=ntt_at_ep_dpt_1">Building iPhone Apps with HTML, CSS, and JavaScript: Making App Store Apps Without Objective-C or Cocoa</a> that I came across a cleverly dynamic means of generating a manifest and supplying it to the browser. There was only one problem: Stark&#8217;s implementation didn&#8217;t account for web apps that made use of dynamic content.</p>
<p>To resolve the issue, I forked his manifest.php implementation to account for .php files:</p>
<pre>
header('Content-Type: text/cache-manifest');
echo "CACHE MANIFEST\n";

$hashes = "";
$lastFileWasDynamic = FALSE;

$dir = new RecursiveDirectoryIterator(".");
foreach(new RecursiveIteratorIterator($dir) as $file) {
	if ($file->IsFile() &#038;&#038; $file != "./manifest.php" &#038;&#038;
		substr($file->getFilename(), 0, 1) != ".") {
		if(preg_match('/.php$/', $file)) {
			if(!$lastFileWasDynamic) {
				echo "\n\nNETWORK:\n";
			}
			$lastFileWasDynamic = TRUE;
		} else {
			if($lastFileWasDynamic) {
				echo "\n\nCACHE:\n";
				$lastFileWasDynamic = FALSE;
			}
		}
		echo $file . "\n";
		$hashes .= md5_file($file);
	}
}

echo "# Hash: " . md5($hashes) . "\n";
</pre>
<p>The above code should be fairly clear. Jonathon Stark&#8217;s original manifest.php made use of PHP5&#8217;s RecursiveDirectoryIterator class to generate a complete list of all the resources your web application relies upon (with the exception of the manifest.php file itself). I&#8217;ve simply altered it slightly to do a fairly primitive regex check to catch any files with a .php extension and preface those files within the manifest with a NETWORK flag (which forces the files to be requested from the web server, rather than the local cache).</p>
<p>Documentation on the application cache is fairly scarce at the moment, and I&#8217;m not professing to being any kind of expert. I just hope this code can help anyone else looking to use the cache manifest as a means of speeding up their dynamic mobile web applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://nial.me/2010/01/using-the-html5-cache-manifest-with-dynamic-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beautiful iPhone 4G mockup</title>
		<link>http://nial.me/2010/01/beautiful-iphone-4g-mockup/</link>
		<comments>http://nial.me/2010/01/beautiful-iphone-4g-mockup/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 19:50:58 +0000</pubDate>
		<dc:creator>Nial Giacomelli</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mockup]]></category>

		<guid isPermaLink="false">http://nial.me/?p=142</guid>
		<description><![CDATA[
I actually really like this, which instantly differentiates it from 99% of the iPhone mockups I see.
 &#8211; via Koralatov.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://nial.me/wp-content/uploads/2010/01/media_httpcachegawker_wtJzd.jpg.scaled500.jpg"><img src="http://nial.me/wp-content/uploads/2010/01/media_httpcachegawker_wtJzd.jpg.scaled500.jpg" alt="" title="media_httpcachegawker_wtJzd.jpg.scaled500" width="500" height="649" class="aligncenter size-full wp-image-143" /></a></p>
<blockquote><p>I actually really like this, which instantly differentiates it from 99% of the iPhone mockups I see.</p></blockquote>
<p> &#8211; via <a href="http://koralatov.com/2010/01/the-imac-iphone/">Koralatov</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nial.me/2010/01/beautiful-iphone-4g-mockup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Showtime</title>
		<link>http://nial.me/2009/12/showtime-2/</link>
		<comments>http://nial.me/2009/12/showtime-2/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 21:27:10 +0000</pubDate>
		<dc:creator>Nial Giacomelli</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[showtime]]></category>

		<guid isPermaLink="false">http://nial.me/?p=135</guid>
		<description><![CDATA[It&#8217;s been just over three weeks since I released the first Showtime public beta. Since then the app&#8217;s undergone two major re-writes. The first involved a significant backend reshuffle, but ultimately meant that Showtime was able to track hundreds of additional programmes with greater accuracy, while the second, which hit devices earlier this week, centred [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been just over three weeks since I released the first <a href="http://showtime-app.com">Showtime</a> public beta. Since then the app&#8217;s undergone two major re-writes. The first involved a significant backend reshuffle, but ultimately meant that Showtime was able to track hundreds of additional programmes with greater accuracy, while the second, which hit devices earlier this week, centred exclusively on the front-end.</p>
<p>But development aside, I&#8217;ve noticed that Showtime has been involved in a number of recent debates over the future of the iPhone as a platform, and, perhaps more poignantly, questions over the relevancy and effectiveness of web-based applications as opposed to native solutions. Perhaps the major catalyst for Showtime&#8217;s involvement in said discussions was a tweet by the inimitable <a href="http://twitter.com/gruber">@gruber</a> of <a href="http://daringfireball.net">Daring Fireball</a> fame, which read:</p>
<blockquote><p>Common answers so far for best iPhone web app: Gmail, Google Reader, Hahlo, Glyphboard, Showtime (http://showtime-app.com/) So: not much.</p></blockquote>
<p>The tweet itself led to a flood of traffic (both directly and through subsequent retweets), as well as a <a href="http://carpeaqua.com/2009/11/30/web-apps-scrolls-like-molasses">direct response</a> from Justin Williams, who stated:</p>
<blockquote><p>The Web only Showtime allows you to see when your favorite TV shows air next. Both of these are great applications, but they miss the mark for a few reasons.</p>
<p>[...]</p>
<p>I believe that with the current crop of Web technologies available in MobileSafari, apps like Hahlo, PocketTweets and Showtime could thrive as an alternative to their native counterparts if Apple allowed developers to adjust the scrolling/drag coefficient of Mobile WebKit.</p></blockquote>
<p>I&#8217;m not going to get into the web app vs. native discussion in any great detail here. It&#8217;s been covered far more <a href="http://www.quirksmode.org/blog/archives/2009/11/native_iphone_a.html">extensively</a> <a href="http://ajaxian.com/archives/iphone-native-apps-vs-iphone-web-apps">elsewhere</a>. But I would like to take a moment to say that I agree with Williams on almost every level. Apple has created something special with Mobile WebKit, so let&#8217;s hope they support web app development in the future with a more extensive API.</p>
<p>The final point I&#8217;d like to make revolves around the fact that web app development has allowed me to avoid the App Store in its entirety. As a result, Showtime updates can be deployed in seconds, allowing me to accurately gauge user reactions. An experience which, rather paradoxically, native app developers (who <strong>pay</strong> for the privilege) sadly seem to miss out on:</p>
<blockquote><p>Just when I start to get comfortable with the App Store again, shit like this happens. I understand Apple is completely inundated with updates and applications, but that’s not my problem. If you’re going to set up a system with this many requirements, you’d damned well better be able to handle it efficiently. 30 days to approve a simple update is not efficient.</p></blockquote>
<blockquote><p>And what does waiting mean? As I’ve said before, it means tons of email a day and tons of bad reviews. It means answering the same question (“My GA widgets all report zero… what gives??”) 20 times a day. It means watching negative reviews pour in. Here are some excerpts from lovely recent reviews:</p></blockquote>
<p><a href="http://log.maniacalrage.net/post/98510137/a-little-over-a-week-and-a-half-ago-google">via Garrett Murray</a> (who develops the incredible <a href="http://ego-app.com">Ego app</a>.</p>
<p>Of course, the <strong>best</strong> part of Showtime development is meeting total strangers who use the application on a regular basis and find it useful:</p>
<blockquote><p>Another app that shows webapps can be just as good as native ones: http://showtime-app.com</p></blockquote>
<p><a href="http://twitter.com/DouweM">@DouweM</a></p>
<blockquote><p>&#8216;Showtime&#8217; sets the standard for web apps on iPhone, absolutely incredible!</p></blockquote>
<p><a href="http://twitter.com/petemwah">@petemwah</a></p>
<blockquote><p>all #mobile #webapps should work like #showtime</p></blockquote>
<p><a href="http://twitter.com/theadb">@theadb</a></p>
]]></content:encoded>
			<wfw:commentRss>http://nial.me/2009/12/showtime-2/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Perfecting the circle</title>
		<link>http://nial.me/2009/11/perfecting-the-circle/</link>
		<comments>http://nial.me/2009/11/perfecting-the-circle/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 13:11:30 +0000</pubDate>
		<dc:creator>Nial Giacomelli</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[art]]></category>

		<guid isPermaLink="false">http://nial.me/2009/11/perfecting-the-circle/</guid>
		<description><![CDATA[Back at the start of the 14th Century, Giotto’s proof of his masterpiece was his free-hand circle. It was a concise way for him to demonstrate his enormous technical skill. Watching him draw the circle, it probably looked easy, but undoubtedly it took years, if not decades, of practice to get that kind of lazy, [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Back at the start of the 14th Century, Giotto’s proof of his masterpiece was his free-hand circle. It was a concise way for him to demonstrate his enormous technical skill. Watching him draw the circle, it probably looked easy, but undoubtedly it took years, if not decades, of practice to get that kind of lazy, deft skill.</p></blockquote>
<p>- via <a href="http://www.interactiondesign.se/blog/2009/11/in-search-of-the-perfect-circle/">Interaction Design</a>.</p>
<p><object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5155076&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5155076&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://nial.me/2009/11/perfecting-the-circle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Class 3 Outbreak</title>
		<link>http://nial.me/2009/11/class-3-outbreak/</link>
		<comments>http://nial.me/2009/11/class-3-outbreak/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 13:25:33 +0000</pubDate>
		<dc:creator>Nial Giacomelli</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[comedy]]></category>

		<guid isPermaLink="false">http://nial.me/2009/11/class-3-outbreak/</guid>
		<description><![CDATA[Class 3 Outbreak is a sandbox zombie outbreak simulator done via Google Maps where you can control the spread of the zombie infection and the speed of those infected. 
Filed under: wish-I&#8217;d-thought-of-that.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.class3outbreak.com/zombie-outbreak-simulator/">Class 3 Outbreak</a> is a sandbox zombie outbreak simulator done via Google Maps where you can control the spread of the zombie infection and the speed of those infected. </p>
<p>Filed under: wish-I&#8217;d-thought-of-that.</p>
]]></content:encoded>
			<wfw:commentRss>http://nial.me/2009/11/class-3-outbreak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Showtime</title>
		<link>http://nial.me/2009/11/showtime/</link>
		<comments>http://nial.me/2009/11/showtime/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 19:22:56 +0000</pubDate>
		<dc:creator>Nial Giacomelli</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://nial.me/?p=121</guid>
		<description><![CDATA[I&#8217;ve just released the first public beta of Showtime, a fun little iPhone app that lets you know when new episodes of your favourite TV shows air. It&#8217;s powered by the excellent jQTouch.
The application itself is fairly simple. You add your favourite shows to your &#8216;watchlist&#8217; and when new episodes become available they&#8217;re shown with [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just released the first public beta of <a href="http://showtime-app.com">Showtime</a>, a fun little iPhone app that lets you know when new episodes of your favourite TV shows air. It&#8217;s powered by the excellent <a href="http://jqtouch.com">jQTouch</a>.</p>
<p>The application itself is fairly simple. You add your favourite shows to your &#8216;watchlist&#8217; and when new episodes become available they&#8217;re shown with a star beside their name:</p>
<p><center><img src="http://nial.me/wp-content/uploads/2009/11/IMG_0003.PNG" alt="IMG_0003" title="IMG_0003" width="320" height="480" class="aligncenter size-full wp-image-123" /></center></p>
<p>Tapping any episode in your watchlist will give you extra details on the latest episode. Once you&#8217;ve seen it, just hit &#8216;I&#8217;ve seen this episode&#8217; and the star indicator will disappear. </p>
<p><center><img src="http://nial.me/wp-content/uploads/2009/11/IMG_0006.PNG" alt="IMG_0006" title="IMG_0006" width="320" height="480" class="aligncenter size-full wp-image-124" /></center></p>
<p>If you do try it out, please feel free to leave me feature requests and bug reports <a href="http://spreadsheets.google.com/viewform?formkey=dGlfV1VmcGRjUVhhY3VCX3Y0SUxHQlE6MA">here</a>. Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://nial.me/2009/11/showtime/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Fun Theory</title>
		<link>http://nial.me/2009/11/the-fun-theory/</link>
		<comments>http://nial.me/2009/11/the-fun-theory/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 09:07:00 +0000</pubDate>
		<dc:creator>Nial Giacomelli</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[comedy]]></category>
		<category><![CDATA[experiments]]></category>

		<guid isPermaLink="false">http://nial.me/?p=119</guid>
		<description><![CDATA[
The creators of the worlds &#8216;deepest bin&#8217; believe in the fun theory.
]]></description>
			<content:encoded><![CDATA[<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/cbEKAwCoCKw&#038;hl=en_US&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/cbEKAwCoCKw&#038;hl=en_US&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>The creators of the worlds &#8216;deepest bin&#8217; believe in the <strong><em>fun theory</em></strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nial.me/2009/11/the-fun-theory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating iPhone applications in HTML, CSS and JS</title>
		<link>http://nial.me/2009/10/creating-iphone-applications-in-html-css-and-js/</link>
		<comments>http://nial.me/2009/10/creating-iphone-applications-in-html-css-and-js/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 08:09:25 +0000</pubDate>
		<dc:creator>Nial Giacomelli</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://nial.me/?p=117</guid>
		<description><![CDATA[An interesting read on HTML powered iPhone application development. 
]]></description>
			<content:encoded><![CDATA[<p>An interesting <a href="http://building-iphone-apps.labs.oreilly.com/">read</a> on HTML powered iPhone application development. </p>
]]></content:encoded>
			<wfw:commentRss>http://nial.me/2009/10/creating-iphone-applications-in-html-css-and-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Columbus day</title>
		<link>http://nial.me/2009/10/columbus-day/</link>
		<comments>http://nial.me/2009/10/columbus-day/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 10:22:54 +0000</pubDate>
		<dc:creator>Nial Giacomelli</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[funny]]></category>

		<guid isPermaLink="false">http://nial.me/?p=114</guid>
		<description><![CDATA[This is great. Via Maniacal Rage.

]]></description>
			<content:encoded><![CDATA[<p>This is great. Via <a href="http://maniacalrage.net">Maniacal Rage</a>.</p>
<p><img class="aligncenter size-full wp-image-115" title="tumblr_krdbgh7hFJ1qa1kf9o1_500" src="http://nial.me/wp-content/uploads/2009/10/tumblr_krdbgh7hFJ1qa1kf9o1_500.png" alt="tumblr_krdbgh7hFJ1qa1kf9o1_500" width="422" height="297" /></p>
]]></content:encoded>
			<wfw:commentRss>http://nial.me/2009/10/columbus-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->