<?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>Red Robot Studios</title>
	<atom:link href="http://www.redrobotstudios.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.redrobotstudios.com/blog</link>
	<description>Web development company specialising in Django and mobile development for clients around the world</description>
	<lastBuildDate>Wed, 14 Jul 2010 09:12:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Dynamic Data Filtering for WhoIsHostingThis.com</title>
		<link>http://www.redrobotstudios.com/blog/2010/07/14/dynamic-data-filtering-for-whoishostingthis/</link>
		<comments>http://www.redrobotstudios.com/blog/2010/07/14/dynamic-data-filtering-for-whoishostingthis/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 09:12:13 +0000</pubDate>
		<dc:creator>Scott Barnham</dc:creator>
				<category><![CDATA[portfolio]]></category>

		<guid isPermaLink="false">http://www.redrobotstudios.com/blog/?p=213</guid>
		<description><![CDATA[We&#8217;ve worked on the WhoIsHostingThis.com site for several years, since it was taken over by web marketing experts Quality Nonsense.  It started as a tool to tell you which web hosting company is hosting any site, but has changed and expanded in scope and usefulness, adding honest reviews and special offer coupons over the [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve worked on the WhoIsHostingThis.com site for several years, since it was taken over by web marketing experts <a href="http://www.qualitynonsense.com/">Quality Nonsense</a>.  It started as a tool to tell you which web hosting company is hosting any site, but has changed and expanded in scope and usefulness, adding <a href="http://www.whoishostingthis.com/about-our-reviews/">honest reviews</a> and special offer <a href="http://www.whoishostingthis.com/hosting-coupons/">coupons</a> over the last couple of years.</p>
<h3>Hosting Comparison Tool</h3>
<p>A few months ago we helped launch the new <a href="http://www.whoishostingthis.com/hosting-reviews/">hosting comparison</a> tool which filters tens of thousands of data points to tell you which web hosting company is best for you.  Our role was to develop the comparison engine and super-slick dynamic interface which updates the list of suitable hosts as you click features and criteria that are important to you.</p>
<p><a href="http://www.redrobotstudios.com/blog/wp-content/uploads/2010/07/wiht-comparison.png"><img class="aligncenter size-full wp-image-216" title="web hosting comparison" src="http://www.redrobotstudios.com/blog/wp-content/uploads/2010/07/wiht-comparison.png" alt="" width="600" height="340" /></a></p>
<h3>Data Update Interface</h3>
<p>Behind the scenes, the team at WhoIsHostingThis.com add web hosting plans and regularly update masses of data using an interface we developed.  All changes are logged, checked and approved before going live on the site.</p>
<h3>Tech</h3>
<p>The WhoIsHostingThis.com site uses PHP and MySQL.  Much of the work for the hosting comparison tool was client-side, using JavaScript and the MooTools library.  The filter uses ajax to update the list of hosts without reloading the page making it quick and simple to compare and contrast hosts.</p>
<h3>Job Done</h3>
<p>WhoIsHostingThis.com is probably the largest site we regularly work on and Quality Nonsense is a great client.  We&#8217;re happy with the work we&#8217;ve done and it has been well received by testers and reviewers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redrobotstudios.com/blog/2010/07/14/dynamic-data-filtering-for-whoishostingthis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Legends of Suzuki iPhone Apps</title>
		<link>http://www.redrobotstudios.com/blog/2010/06/17/legends-of-suzuki-iphone-web-apps/</link>
		<comments>http://www.redrobotstudios.com/blog/2010/06/17/legends-of-suzuki-iphone-web-apps/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 11:59:06 +0000</pubDate>
		<dc:creator>Andrew Gleave</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[portfolio]]></category>

		<guid isPermaLink="false">http://www.redrobotstudios.com/blog/?p=197</guid>
		<description><![CDATA[We recently had the privilege of working with Suzuki UK developing two iPhone applications to complement their Legends of Suzuki exhibition at the Manx Museum. Suzuki have a long and illustrious history at the Isle of Man TT and 2010 is their 50 year anniversary and they wanted to provide an interactive element to their exhibition.

The [...]]]></description>
			<content:encoded><![CDATA[<p>We recently had the privilege of working with Suzuki UK developing two iPhone applications to complement their Legends of Suzuki exhibition at the <a href="http://www.gov.im/mnh/">Manx Museum</a>. Suzuki have a long and illustrious history at the Isle of Man TT and 2010 is their <a href="http://www.suzuki50years.com/">50 year anniversary</a> and they wanted to provide an interactive element to their exhibition.</p>
<p><a href="http://www.redrobotstudios.com/blog/wp-content/uploads/2010/06/suzuki_apps1.jpg"><img class="aligncenter size-full wp-image-208" title="suzuki_apps" src="http://www.redrobotstudios.com/blog/wp-content/uploads/2010/06/suzuki_apps1.jpg" alt="" width="512" height="350" /></a></p>
<p>The Legends of Suzuki exhibition at the museum comprises all sorts of Suzuki memorabilia, from the bike <a href="http://en.wikipedia.org/wiki/Mike_Hailwood">Mike Hailwood</a> rode in his final TT victory in 1979 , to leathers, helmets and bikes from many other TT champions stretching back to the 1963 50cc winner Mitsuo Ito. If you&#8217;re on the Island and are a TT fan, you should certainly check it out!</p>
<p>Working with Manx National Heritage, who provided the content, we built an audio guide app which provides commentary and information for some of the exhibits and a &#8220;Gallery Tour&#8221; app which includes photos, information and video of covering significant events in Suzuki&#8217;s history at the Isle of Man TT.</p>
<p>The gallery app has rare and early photos of the first Suzuki team in 1960 as well video clips of Mike Hailwood, the 1960&#8217;s riders, Mick Grant, and more recent stars such as Cameron Donald and Bruce Anstey.</p>
<p>Both free can be downloaded now from the App Store:</p>
<p><a href="http://itunes.apple.com/gb/app/legends-suzuki-exhibition/id375566774?mt=8">Legends of Suzuki Exhibition Archive Gallery</a></p>
<p><a href="http://itunes.apple.com/gb/app/legends-suzuki-exhibition/id375565218?mt=8">Legends of Suzuki Exhibition Audio Tour</a></p>
<p>We also built a simple web-based version of the audio tour app for iPhone and Android (2.0+) users which is virtually identical to the native iPhone app. Go to <a href="http://bit.ly/suzukiaudiotour">http://bit.ly/suzukiaudiotour</a> on your iPhone, iPad, iPod Touch or Android phone to check it out!</p>
<p>We had great fun making the apps, we hope you find them useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redrobotstudios.com/blog/2010/06/17/legends-of-suzuki-iphone-web-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Just Released: Ronaldsway Airport iPhone App</title>
		<link>http://www.redrobotstudios.com/blog/2010/06/14/just-released-ronaldsway-airport-iphone-app/</link>
		<comments>http://www.redrobotstudios.com/blog/2010/06/14/just-released-ronaldsway-airport-iphone-app/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 20:03:33 +0000</pubDate>
		<dc:creator>Andrew Gleave</dc:creator>
				<category><![CDATA[cocoa]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[portfolio]]></category>

		<guid isPermaLink="false">http://www.redrobotstudios.com/blog/?p=183</guid>
		<description><![CDATA[We&#8217;ve just released a simple iPhone app for Ronaldsway Airport here on the Isle of Man.

The application is free, simple, and quick, and shows arrival and departure information for flights to and from the Island helping you keep up to date while on your iPhone, iPad or iPod touch.
If you live on the Island or [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve just released a simple iPhone app for Ronaldsway Airport here on the Isle of Man.</p>
<p style="text-align: center;"><a title="Download from the App Store" href="http://itunes.apple.com/gb/app/ronaldsway/id374473927?mt=8"><img class="aligncenter size-full wp-image-186" title="Download the app from the App Store!" src="http://www.redrobotstudios.com/blog/wp-content/uploads/2010/06/ronaldsway_app_icon.jpg" alt="" width="232" height="314" /></a></p>
<p>The application is free, simple, and quick, and shows arrival and departure information for flights to and from the Island helping you keep up to date while on your iPhone, iPad or iPod touch.</p>
<p>If you live on the Island or are visiting, you can <a href="http://itunes.apple.com/gb/app/ronaldsway/id374473927?mt=8">download it from the App Store here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redrobotstudios.com/blog/2010/06/14/just-released-ronaldsway-airport-iphone-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Glowing and soft shadowed text on iPhone</title>
		<link>http://www.redrobotstudios.com/blog/2010/04/29/create-glow-soft-shadow-text-on-iphone/</link>
		<comments>http://www.redrobotstudios.com/blog/2010/04/29/create-glow-soft-shadow-text-on-iphone/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 08:28:03 +0000</pubDate>
		<dc:creator>Andrew Gleave</dc:creator>
				<category><![CDATA[cocoa]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipad]]></category>

		<guid isPermaLink="false">http://www.redrobotstudios.com/blog/?p=171</guid>
		<description><![CDATA[iPhone OS&#8217;s UILabel provides basic shadowing properties which can be used to create inset text effects and basic text shadows. However, the shadow has no blur and gives a sharp edge which is not particularly useful if you&#8217;re looking for a soft or subtle shadow.
Recently I needed to create a &#8220;glowing&#8221; text effect – essentially [...]]]></description>
			<content:encoded><![CDATA[<p>iPhone OS&#8217;s UILabel provides basic shadowing properties which can be used to create inset text effects and basic text shadows. However, the shadow has no blur and gives a sharp edge which is not particularly useful if you&#8217;re looking for a soft or subtle shadow.</p>
<p>Recently I needed to create a &#8220;glowing&#8221; text effect – essentially a soft shadow without the offset – so I wrote a simple UILabel subclass which let me specify an offset, colour and blur amount.</p>
<p><a style="text-decoration: none;" href="http://www.redrobotstudios.com/blog/wp-content/uploads/2010/04/glow1.png"><img class="aligncenter size-full wp-image-175" title="glow" src="http://www.redrobotstudios.com/blog/wp-content/uploads/2010/04/glow1.png" alt="" width="325" height="482" /></a></p>
<p>The screenshot shows a how the class can be used to create a glow effect but it&#8217;s equally easy to create soft shadows for your text.</p>
<p>You can find the <a href="http://github.com/andrewgleave/TextGlowDemo">source here</a> on GitHub.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redrobotstudios.com/blog/2010/04/29/create-glow-soft-shadow-text-on-iphone/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Simple iPhone &amp; iPad Video Streaming with Streamory</title>
		<link>http://www.redrobotstudios.com/blog/2010/04/20/simple-iphone-ipad-video-streaming/</link>
		<comments>http://www.redrobotstudios.com/blog/2010/04/20/simple-iphone-ipad-video-streaming/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 14:33:22 +0000</pubDate>
		<dc:creator>Andrew Gleave</dc:creator>
				<category><![CDATA[Company]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[streamory]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[streaming]]></category>

		<guid isPermaLink="false">http://www.redrobotstudios.com/blog/?p=154</guid>
		<description><![CDATA[For the last couple of months we’ve been working on technology to enable anyone to stream live and pre-recorded video to iPhone, iPad and iPod Touch devices.
Today, we’re pleased to announce Streamory, our in-alpha service which lets users easily stream their own video and audio to the iPhone with only a couple of clicks. Streamory [...]]]></description>
			<content:encoded><![CDATA[<p>For the last couple of months we’ve been working on technology to enable anyone to stream live and pre-recorded video to iPhone, iPad and iPod Touch devices.</p>
<p>Today, we’re pleased to announce <a href="http://www.streamory.com/">Streamory</a>, our in-alpha service which lets users easily stream their own video and audio to the iPhone with only a couple of clicks. Streamory takes the hard work of configuring and setting up a streaming infrastructure, and instead lets you simply upload a video or input stream and, with a single click, publish a stream for use in your site or iPhone / iPad app.</p>
<p style="text-align: center;"><a href="http://www.streamory.com/"><img class="size-full wp-image-165 aligncenter" title="Streamory – Simple iPhone Streaming Service" src="http://www.redrobotstudios.com/blog/wp-content/uploads/2010/04/logo1.png" alt="Simple iPhone and iPad media streaming service" width="313" height="76" /></a></p>
<p>You can check our simple web-based demo iPhone app on the <a href="http://www.streamory.com/">Streamory site</a> – make sure you’re using an iPhone or iPad for best experience, though! The demo app demonstrates some different types of output Streamory can generate, as well as adaptive bandwidth streams which give you higher or lower quality content automatically as available bandwidth changes.</p>
<p>We’ve already got some great ideas to make it easy for users to create iPhone-ready video streams without the fuss, but we’d love to hear what you think so <a href="mailto:info@streamory.com">get in touch</a> and let us know! :)</p>
<p>We’re not ready for beta testers yet, but if you’d be interested in participating, drop us a line and we’ll get back to you when we’re ready.</p>
<p><em>Andrew Gleave is the lead developer of <a href="http://www.redrobotstudios.com/mobile-development/">iPhone and mobile apps</a> at Red Robot Studios. Considering developing a mobile app? <a href="http://www.redrobotstudios.com/contact/">Contact Red Robot Studios</a> to see how we can help.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.redrobotstudios.com/blog/2010/04/20/simple-iphone-ipad-video-streaming/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Enterprise Ready iPhone</title>
		<link>http://www.redrobotstudios.com/blog/2010/04/09/the-enterprise-ready-iphone/</link>
		<comments>http://www.redrobotstudios.com/blog/2010/04/09/the-enterprise-ready-iphone/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 15:05:08 +0000</pubDate>
		<dc:creator>Andrew Gleave</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobile app]]></category>

		<guid isPermaLink="false">http://www.redrobotstudios.com/blog/?p=143</guid>
		<description><![CDATA[There are a lot of changes but some of the less-discussed improvements are ones which bring 'enterprise-ready' features to the iPhone. These features really open the potential for using iPhone and iPad devices securely in a business context.]]></description>
			<content:encoded><![CDATA[<p>Yesterday <a href="http://www.apple.com/iphone/preview-iphone-os/">Apple announced</a> the fourth release of the iPhone OS. There are a lot of changes to the platform but some of the less-discussed improvements are ones which bring &#8216;enterprise-ready&#8217; features to the iPhone. These features really open up the potential for using iPhone and iPad devices securely in a business context.</p>
<p>With iPhone OS 4, iPhone and iPad now support:</p>
<ul>
<li>SSL VPN Support</li>
<li>Multiple MS Exchange Accounts</li>
<li>Mobile Device Management<strong> </strong>– <em>Remotely configure, update and wipe devices</em></li>
<li>Data Encryption</li>
<li>In-House App Distribution – <em>Distribute and update your enterprise apps to company devices wirelessly</em></li>
</ul>
<p>All of these are important features for most medium and large businesses, but being able to remotely update and sync your company iPhones and iPads is a real clincher. The ability for an enterprise to write and deploy its own apps (not distributed with the App Store) to staff devices wirelessly over WiFi or 3G, is the only reliable way of making sure all your devices are up to date: waiting for users to sync with iTunes mean it could takes weeks for all devices to get an update.</p>
<p>Add the ability to encrypt user data, access your network securely though a VPN and remotely manage and wipe devices, and you&#8217;ve got a pretty good case for building mobile apps which help you to do business, and that don&#8217;t give the Sys Admins a security and management headache.</p>
<p>I&#8217;ve only had a cursory look over the new SDK but the thing which stands out is that it really feels like a mature platform: there aren&#8217;t as many missing or restricted APIs and many of them have been massively expanded. This release will give rise to a whole host of apps just not possible before.</p>
<p>I can&#8217;t wait to take a closer look at the SDK in the next couple of days!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redrobotstudios.com/blog/2010/04/09/the-enterprise-ready-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTTP Live Streaming for the iPhone</title>
		<link>http://www.redrobotstudios.com/blog/2010/03/17/http-live-streaming-for-the-iphone/</link>
		<comments>http://www.redrobotstudios.com/blog/2010/03/17/http-live-streaming-for-the-iphone/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 09:39:33 +0000</pubDate>
		<dc:creator>Andrew Gleave</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[streaming]]></category>

		<guid isPermaLink="false">http://www.redrobotstudios.com/blog/?p=127</guid>
		<description><![CDATA[There are many types of live streaming technology, some with wider adoption than others. Currently, the most widely used platform for streaming media is Adobe’s Flash technology, and is what sites like YouTube, BBC iPlayer and ABC.com use to stream their video content.
However, to watch the stream you need to have Flash Player installed.  [...]]]></description>
			<content:encoded><![CDATA[<p>There are many types of live streaming technology, some with wider adoption than others. Currently, the most widely used platform for streaming media is Adobe’s Flash technology, and is what sites like YouTube, BBC iPlayer and ABC.com use to stream their video content.</p>
<p>However, to watch the stream you need to have Flash Player installed.  This isn’t a problem for typical computers – approx. 90% of all computers already have Flash installed – but if you’re an iPhone user, you’re out in the cold. Apple have been very public in their criticism of Flash, and some well-known Apple fans have claimed that it is the “<a href="http://daringfireball.net/2010/01/apple_adobe_flash">leading source of application crashes on Mac OS X</a>”.</p>
<p>Whether on not this is the case is beside the point, but what is interesting is the technology Apple have developed as an alternative to Flash streaming, for both the iPhone and, more generally, the web as a whole. Not only is it built on existing and well-established protocols and technology, it&#8217;s a proposed standard and headed off to the <a href="http://tools.ietf.org/html/draft-pantos-http-live-streaming-02">IETF for approval</a>. The best bit of all: it’s very simple.</p>
<p>The technology is called <a href="http://en.wikipedia.org/wiki/HTTP_Live_Streaming">HTTP Live Steaming</a> and is fundamentally very straightforward to deploy. There’s no special / expensive kit required to deploy the stream, and instead uses standard web servers with minor modifications.</p>
<h4 id="key_differences">Key differences:</h4>
<ul>
<li>No streaming software required.</li>
<li>No extra ports have to be opened on your firewall as they do for RTSP / RTP.</li>
<li>Clients can make use of standard HTTP constructs like caching, load-balancing and expiry headers to optimise delivery to clients.</li>
<li>Only needs a standard web server. No extra modules necessary: just add the mime types to your config and you’re done.</li>
<li>Clients can dynamically switch between streams of different quality depending on available bandwidth. If you’re on a WiFi network you can be watching a HD-quaity video stream; move to the garden (and 3G) and it can automatically switch to a lower quality stream with no interruption.</li>
<li>Can support both live and VOD (Video on Demand) streams.</li>
<li>The stream can be encrypted. Therefore, you don’t need access restrictions on the content itself. An authorised client is served a key which enables it to decrypt the stream on the fly. If someone gets hold of the stream but don&#8217;t have a key, it&#8217;s totally useless.</li>
</ul>
<p>For the iPhone, or any other mobile device, this is all a great win: you can be on the move, your phone dynamically switching from 3G to EDGE to WiFi as you move around, and your stream will intelligently adapt to give you the best broadcast quality with no drops or stalls. Perfect.</p>
<p>Actually, this is where HTTP live streaming differs from the &#8220;progressive download&#8221; model where the client incrementally downloads the content as it the stream is being watched: with a progressive download you’re stuck with whatever resolution you chose when you started watching the stream, and if your bandwidth decreases, you stream will stall.</p>
<p>The only real downside is that it’s currently only supported on the iPhone and Mac OS 10.6. However, I can see Apple implementing it in its Windows version of QuickTime and Google implementing it for the Android platform so this shouldn’t be a limitation for long.</p>
<p>Another tangible advantage for this technology is that WebKit has native support for HTTP live streams being used as the source for <code>&lt;video&gt;</code> and <code>&lt;audio&gt;</code> elements. This means you can use live streamed content in your web app as well as in native iPhone applications without the need for any external plugin.</p>
<p>This all adds up to a pretty attractive package, with minimum fuss on both the client and server sides.</p>
<p><a href="http://www.redrobotstudios.com/contact/">Get in touch</a> to find out how we can help you stream audio and video to your iPhone app.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redrobotstudios.com/blog/2010/03/17/http-live-streaming-for-the-iphone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t delete an image file when deleting a Django model instance</title>
		<link>http://www.redrobotstudios.com/blog/2010/03/02/dont-delete-image-file-when-deleting-django-model-instance/</link>
		<comments>http://www.redrobotstudios.com/blog/2010/03/02/dont-delete-image-file-when-deleting-django-model-instance/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 09:54:22 +0000</pubDate>
		<dc:creator>Scott Barnham</dc:creator>
				<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://www.redrobotstudios.com/blog/?p=55</guid>
		<description><![CDATA[If you have a Django model with a FileField or ImageField, when you delete the model instance, the associated file or image is also deleted.  In most cases this is desirable and keeps things tidy, but I had a situation recently where the image file should not be deleted when the model was deleted. [...]]]></description>
			<content:encoded><![CDATA[<p>If you have a Django model with a <code>FileField</code> or <code>ImageField</code>, when you delete the model instance, the associated file or image is also deleted.  In most cases this is desirable and keeps things tidy, but I had a situation recently where the image file should not be deleted when the model was deleted.  Here&#8217;s a simple way to override the default behaviour.</p>
<h3>Custom file storage</h3>
<p>Django uses storage classes to determine how files are read and written.  Normally, the data is just written as files to disk, but there are other possibilities such as storing on remote servers.</p>
<p>It&#8217;s easy to write a <a href="http://docs.djangoproject.com/en/dev/howto/custom-file-storage/">custom file storage</a> class to override the behaviour of the default <code>FileStorageSystem</code>.  In this case, we only need to change the <code>delete</code> method so it does not delete the file.</p>
<p>In custom.py</p>
<pre>from django.core.files import storage

class NoDeleteFileStorage(storage.FileSystemStorage):
    def delete(self, name):
        pass</pre>
<p>We can then <a href="http://docs.djangoproject.com/en/1.1/topics/files/#file-storage">use the custom file storage</a> by making an instance and passing it to the <code>ImageField</code>.</p>
<p>In models.py</p>
<pre>from custom import NoDeleteFileStorage

ndfs = NoDeleteFileStorage()

class ImageInstance(models.Model):
    image = models.ImageField(storage=ndfs, ...)</pre>
<p>It&#8217;s as simple as that!  Custom file storage has some interesting possibilities.  With it you can handle how files are named or integrate with some caching or <a href="http://en.wikipedia.org/wiki/Content_Delivery_Network">CDN</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redrobotstudios.com/blog/2010/03/02/dont-delete-image-file-when-deleting-django-model-instance/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Web or Native: Mobile Application Decisions</title>
		<link>http://www.redrobotstudios.com/blog/2010/02/20/web-or-native-mobile-application-decisions/</link>
		<comments>http://www.redrobotstudios.com/blog/2010/02/20/web-or-native-mobile-application-decisions/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 09:07:02 +0000</pubDate>
		<dc:creator>Andrew Gleave</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[web app]]></category>

		<guid isPermaLink="false">http://www.redrobotstudios.com/blog/?p=69</guid>
		<description><![CDATA[Since the debut of the iPhone in 2007, mobile computing has really taken off and we’re now at the start of a trend which will shape the future of computing, and one that will likely have a greater effect on people’s day-to-day lives than the internet experience of today.
Mobile phones have had the ability to [...]]]></description>
			<content:encoded><![CDATA[<p>Since the debut of the iPhone in 2007, mobile computing has really taken off and we’re now at the start of a trend which will shape the future of computing, and one that will likely have a greater effect on people’s day-to-day lives than the internet experience of today.</p>
<p>Mobile phones have had the ability to use the internet in a primitive way for 15 years or so, but it wasn’t until Apple released the <a href="http://www.tuaw.com/2007/10/17/apple-we-plan-to-have-an-iphone-sdk-in-developers-hands-in-fe/">iPhone <acronym title="A set of tools that allows for the creation of applications platform or system">SDK</acronym> in 2008</a> and the subsequent development frenzy that ensued, that the surge in mobile internet use really began.</p>
<p style="text-align: center;"><a href="http://www.redrobotstudios.com/blog/wp-content/uploads/2010/02/iphone.jpg"><img class="aligncenter size-full wp-image-91" title="Apple's iPhone whetted users' appetite for apps" src="http://www.redrobotstudios.com/blog/wp-content/uploads/2010/02/iphone.jpg" alt="" width="389" height="287" /></a></p>
<p>Today&#8217;s smartphones transcend simply retrieving email, sending SMSs and making calls and instead enable users to transform their phone in to whatever they want: a <a href="http://itunes.apple.com/us/app/the-sims-3/id317904170?mt=8">gaming machine</a>, a <a href="http://itunes.apple.com/gb/app/tomtom-u-k-ireland/id326067542?mt=8">sat nav</a>, or a <a href="http://itunes.apple.com/gb/app/sleep-cycle-alarm-clock/id320606217?mt=8">sleep cycle alarm clock</a>; all with the download of an application. This shift has fundamentally altered the way consumers think about what a phone <em>is</em> and how they use it, so much so, that often its function as a phone becomes secondary.</p>
<p>The current darling of this revolution is Apple’s iPhone which currently has about 140,000 applications on its <a href="http://www.apple.com/iphone/apps-for-iphone/">App Store</a>, and with over <a href="http://www.apple.com/pr/library/2010/01/05appstore.html">3 billion downloads</a> is easily the most developed marketplace for mobile applications. In fact, stats gathered at the end of 2009 showed Apple captured <a href="http://arstechnica.com/apple/news/2010/01/apple-responsible-for-994-of-mobile-app-sales-in-2009.ars" target="_blank">99.4% of the mobile application market</a>!</p>
<p>Apple aren&#8217;t the only ones driving this push in to mobile application use. Google, Nokia, Palm, RIM (with their Blackberry) and  Microsoft all have their own platform, all offering similar features, but all mostly incompatible.</p>
<p>So with apps being a hot (and potentially lucrative) market and a number of competing platforms to choose from, how do you go about developing and deploying mobile applications?</p>
<p>It boils down to two choices:</p>
<ul>
<li>A native application – A native application is one which is installed and runs on the device and is developed using the device’s <acronym title="A set of tools that allows for the creation of applications platform or system">SDK</acronym>. Native applications only run on one platform so you need to develop a different application for each platform. Once built, the app can be sold on its respective  marketplace such as the <a href="http://www.apple.com/iphone/apps-for-iphone/">App Store</a>, <a href="http://www.android.com/market/">Android Marketplace</a> or <a href="http://www.ovi.com/services/">Nokia’s Ovi store</a>.</li>
<li>A mobile web app – A mobile app is a web-based application which runs in the browser of the device. There’s no special deployment necessary, it only requires a browser to use it. The goal is to build a web app which is usable by most, if not all, of the different types of device. However, in practice this isn&#8217;t particularity easy – yet.</li>
</ul>
<p>Actually, if you just require a mobile version of your site, you have the option of doing nothing and hoping that your site is useable enough as it is for users browsing on their mobile device. This depends on how your site was built and the browser which is being used, so there could be a large number of users who may get a less than ideal experience.</p>
<p>Both web and native apps have their pros and cons and the choice often comes down to what you want the app to do, and what your users will expect.</p>
<h3 id="going_native">Going Native</h3>
<div id="attachment_94" class="wp-caption aligncenter" style="width: 378px"><a href="http://www.redrobotstudios.com/blog/wp-content/uploads/2010/02/markets.png"><img class="size-full wp-image-94 " title="markets" src="http://www.redrobotstudios.com/blog/wp-content/uploads/2010/02/markets.png" alt="" width="368" height="136" /></a><p class="wp-caption-text">The Apple&#39;s App Store and Google&#39;s Android Marketplace are two of a number of outlets for native applications</p></div>
<p>Developing a native application will provide benefits in its performance and tight integration with all the device’s features and <acronym title="An interface implemented by a software program to enable interaction with other software, much in the same way that a user interface facilitates interaction between humans and computers">APIs</acronym>. A native application will give your users the best experience by taking full advantage of the full capabilities of the device.</p>
<p>Advantages like :</p>
<ul>
<li>They can use all of the device’s features such as its camera, GPS, compass, file system etc.</li>
<li>They can be sold through a marketplace such as the App Store or Android Marketplace</li>
<li>They have superior performance compared with a typical web app</li>
<li>Don’t necessarily need to be connected to a 3G or WiFi network to function *</li>
<li>They’re not running in a browser so there’s no restriction on the types of application that can be developed</li>
</ul>
<p><em>*Improvements brought in with HTML5 will help web apps in some respect</em></p>
<p>Because a native app isn’t restricted to running in a browser they can do some pretty intensive things such as an augmented reality app to show you <a href="http://www.youtube.com/watch?v=b64_16K2e08">a data overlay on top of live video</a> or full <a href="http://itunes.apple.com/us/app/crash-bandicoot-nitro-kart-3d/id285005463?mt=8">full 3D games</a>. Neither of which would currently be possible with a web app.</p>
<p>But there are downsides, too:</p>
<ul>
<li>Typically higher development cost and longer lead time.</li>
<li>Very little portability across platform – if you want your app to run on both the iPhone and Android it means building two separate versions.</li>
</ul>
<p>So if you want to do anything that takes full advantage of a device’s capabilities, or do anything custom or unique, you’re likely looking at a native app. However, the issue of building and deploying to many different devices mean the overall cost can be high.</p>
<p>And this is where web-apps can really start to look like a great alternative: A web-based app should be able to run on any device with a browser, right?</p>
<p>Well, sort of.</p>
<h3 id="the_changing_landscape_of_the_mobile_web">The Mobile Web</h3>
<p>Everything which you interact with on the internet (except the most basic of web pages) is a web app in one form or another: Facebook, Twitter, Flickr, your favourite blog – all in a broad sense are web apps.</p>
<p>The major advantage of web apps are that they can be used wherever you are, from any computer, via almost any browser. No downloading, no software updates and no uninstalling – just open a browser window, type the URL and hit Enter. Add that to fact that all devices have a web browser means that you have a potentially large number of users who are already familiar with how to get to and use your app.</p>
<p>However web development for mobile devices is still developing and it can be difficult to do things which would be straightforward in a native application. John Gruber has a great article on building <a href="http://daringfireball.net/2009/11/iphone_web_apps_alternative">iPhone Web Apps as an Alternative to the App Store</a> which covers the topic nicely.</p>
<p>Even though currently it’s not possible to build a web app that will do everything a native app does, for some situations a mobile app is perfect. There’s some great work going in with <a href="http://www.jqtouch.com/">jQTouch</a> which is a tool that makes it easier to build  mobile web apps for both the iPhone and Android, that look and feel more like a native application. There&#8217;s also <a href="http://phonegap.com/">PhoneGap</a>, which enables a web app to be packaged up and deployed as a native application for the iPhone, Blackberry and Android and sold on their respective marketplace / store.</p>
<p>With these types of tools emerging, and the devices themselves becoming more powerful, it’s not long before web apps become the choice for a larger proportion of mobile applications. The fact that Apple (iPhone), Google (Android), Palm (Pre), Nokia and <a href="http://www.businessweek.com/news/2010-02-16/rim-to-debut-new-blackberry-web-browser-to-compete-with-iphone.html">just announced RIM</a> (Blackberry) are all backing the open source <a href="http://webkit.org/">WebKit</a> engine to power their web browsers, it&#8217;s a major step in getting a consistent experience across multiple devices.  Knowing that an app will look and perform the same manner on all these devices is the Holy Grail of web development: write once, run anywhere.</p>
<div id="attachment_96" class="wp-caption aligncenter" style="width: 225px"><a href="http://www.redrobotstudios.com/blog/wp-content/uploads/2010/02/icon-gold.png"><img class="size-full wp-image-96" title="icon-gold" src="http://www.redrobotstudios.com/blog/wp-content/uploads/2010/02/icon-gold.png" alt="" width="215" height="174" /></a><p class="wp-caption-text">The Webkit browser engine which powers a lot of modern smartphone browsers</p></div>
<p>Add to this <a href="http://diveintohtml5.org/">HTML5</a> and the rapid development of browser technology and we’re closely approaching the point where we can use standard web technologies to build advanced mobile applications. In the next couple of years most, if not all, mobile platforms will have support for the following advanced features all of which will drasticly change both what web apps are capable of and what users will expect from them:</p>
<ul>
<li>Pure web-based 3D graphics via <a href="http://webkit.org/blog/603/webgl-now-available-in-webkit-nightlies/">WebGL</a> – enabling 3D games and modelling</li>
<li>Standardised 2D graphics and animation – slick animation and graphics are trademarks of native applications&#8217; rich interfaces</li>
<li>Standardised video and audio support – no more plugins to watch movies or listen to streaming music</li>
<li>Communication improvements</li>
<li>Geolocation support &#8211; enable the browser to access your location</li>
<li>Local storage and SQL databases – meaning data can be stored within the web application itself so you don’t always require an internet connection to use it. <a href="http://docs.google.com/support/bin/answer.py?hl=en&amp;answer=92254">Google Apps</a> provide this features already using Google Gears.</li>
<li>Manifests and offline resource caching – movies and photos are still accessible even if you go offline</li>
</ul>
<p>The future is looking bright for mobile web app development, and as the tools and browser technology get better, development will shift from native to web-based applications. The overall trend is that the &#8220;Internet is the platform&#8221; that all applications rely on – and not just the mobile ones.</p>
<blockquote><p>&#8220;…development for a platform is a distraction. It’s taking our eyes off the ball, and ignoring the bigger shift that’s happening beneath our feet.&#8221;</p></blockquote>
<p><cite><a href="http://factoryjoe.com/blog/2009/08/01/steve-jobs-hates-the-appstore/">Chris Messina</a> – <em>Referring to the fact that we should be developing for the web rather than for a single platform.</em></cite></p>
<p>These types of device and the market for mobile applications in general is still young and it’s going to take a while for the game to play out. Native mobile applications, with their superior performance, slickness and better capabilities are going to be the choice for demanding or cutting edge applications – at least for the forseable future – but one thing you can bank on is that the web isn’t going anywhere. The web is the inevitable platform, and that means that we&#8217;ll see huge growth in web-based apps in the coming years.</p>
<p><em>Andrew Gleave is the lead developer of <a href="http://www.redrobotstudios.com/mobile-development/">iPhone and mobile apps</a> at Red Robot Studios.  Considering developing a mobile app?  <a href="http://www.redrobotstudios.com/contact/">Contact Red Robot Studios</a> to see how we can help.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.redrobotstudios.com/blog/2010/02/20/web-or-native-mobile-application-decisions/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Custom web, Django and mobile development</title>
		<link>http://www.redrobotstudios.com/blog/2010/02/08/custom-web-django-and-mobile-development/</link>
		<comments>http://www.redrobotstudios.com/blog/2010/02/08/custom-web-django-and-mobile-development/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 10:04:15 +0000</pubDate>
		<dc:creator>Scott Barnham</dc:creator>
				<category><![CDATA[Company]]></category>
		<category><![CDATA[services]]></category>

		<guid isPermaLink="false">http://www.redrobotstudios.com/blog/?p=50</guid>
		<description><![CDATA[We started Red Robot Studios in 2008 to develop web-based apps using great technologies like Django. Since then we&#8217;ve learned an enormous amount about what it takes to build and deploy large-scale web applications, and as we&#8217;ve developed and released our own sites and apps, we&#8217;ve increasingly been approached by people who want us to work with [...]]]></description>
			<content:encoded><![CDATA[<p>We started Red Robot Studios in 2008 to develop web-based apps using great technologies like Django. Since then we&#8217;ve learned an enormous amount about what it takes to build and deploy large-scale web applications, and as we&#8217;ve developed and released our own sites and apps, we&#8217;ve increasingly been approached by people who want us to work with them to help them build great sites and services.</p>
<p>We&#8217;re still going to be building and releasing our own projects but have also decided to offer our development service to clients as well. We have some excellent clients already and will be accepting work from new clients.</p>
<p>Our aim is not just to provide a normal development service but to help our clients achieve their goals. We want to help and advise based on our experience and go the extra mile to provide <strong>really great</strong> development services to all our clients.</p>
<p>Our main focus is <a href="http://www.redrobotstudios.com/django-development/">Django development</a>, <a href="http://www.redrobotstudios.com/mobile-development/">iPhone and mobile development</a>, but we are well experienced in many other areas including things as diverse as WordPress plugins, Facebook apps and Firefox extensions. We&#8217;d love to hear about your great idea, so <a href="http://www.redrobotstudios.com/contact/">get in touch</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redrobotstudios.com/blog/2010/02/08/custom-web-django-and-mobile-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
