<?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>DEfusion.org.uk &#187; Web Development</title>
	<atom:link href="http://www.defusion.org.uk/archives/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.defusion.org.uk</link>
	<description>I too will force my opinions on you</description>
	<lastBuildDate>Mon, 04 Jul 2011 19:28:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Shrinking large background image bug in iPhone Safari</title>
		<link>http://www.defusion.org.uk/archives/2010/02/19/shrinking-large-background-image-bug-in-iphone-safari/</link>
		<comments>http://www.defusion.org.uk/archives/2010/02/19/shrinking-large-background-image-bug-in-iphone-safari/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 18:03:36 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.defusion.org.uk/archives/2010/02/19/shrinking-large-background-image-bug-in-iphone-safari/</guid>
		<description><![CDATA[
Updated: 22nd Feb 2010
I experienced a slightly odd bug in the latest version of mobile Safari on iPhone where it was shrinking large background images applied via CSS to fit within the confines of the screen. Not finding anyone else who has written about this problem I thought I&#8217;d share my findings.
Firstly a bit of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.defusion.org.uk/wp-content/uploads/2010/02/compare.jpg" rel="lightbox"><img class="featureImg" src="http://www.defusion.org.uk/wp-content/uploads/2010/02/compare_thumb.jpg" alt="Screenshots of an iPhone showing the broken background and the working background" /></a><br />
Updated: <a href="#2010-02-22-update">22nd Feb 2010</a><br />
I experienced a slightly odd bug in the latest version of mobile Safari on iPhone where it was shrinking large background images applied via <acronym title="Cascading Style Sheets">CSS</acronym> to fit within the confines of the screen. Not finding anyone else who has written about this problem I thought I&#8217;d share my findings.</p>
<p>Firstly a bit of background, the company I am working for at the moment recently released a real-time <acronym title="Cascading Style Sheets">CSS</acronym> editor (of sorts) which I built that allows customers to style their sites using nothing more than uploaded images and some UI controls &#8211; for more details on that you can see <a href="http://www.bandzoogle.com/blog/blogposts/video-tour-of-the-custom-template-system-16711.cfm?showdate=11-01-2009">a video of it in action on this blog post</a> and some of <a href="http://www.bandzoogle.com/blog/blogposts/bandzoogle-20-new-design-new-style-editor-new-features-new-pricing-17461.cfm">the amazing results</a> that customers have been able to achieve with it.</p>
<p>Yesterday one customer reported an issue where a large background image (1800&#215;2520) was being shrunk on the iPhone. I did quite a lot of investigation and to cut a long-ish story short I discovered that there is a tipping point where the total pixel-area of an image causes mobile Safari to resize the image. <em>This tipping point appears to be at <strong>2,000,001 pixels</strong></em>.</p>
<p>Read on for a bit more of a breakdown of my experiment results.<br />
<span id="more-203"></span><br />
To debug this issue I looked at the pixel size of some of our larger background images that were working fine on the iPhone and then tried various sizes to see what the results were. My experiments are shown in the table below (in the order I performed them).</p>
<table id="iphone-results">
<thead>
<tr>
<th>Width&nbsp;</th>
<th>Height&nbsp;</th>
<th>Pixel area&nbsp;</th>
<th>iPhone shrinks background</th>
</tr>
</thead>
<tbody>
<tr>
<td>1400</td>
<td>1200</td>
<td>1,680,000</td>
<td><span style="color: green;">No</td>
</tr>
<tr>
<td>1200</td>
<td>1600</td>
<td>1,920,000</td>
<td><span style="color: green;">No</td>
</tr>
<tr>
<td>1200</td>
<td>1800</td>
<td>2,160,000</td>
<td><span style="color: red;">Yes</td>
</tr>
<tr>
<td>1200</td>
<td>1700</td>
<td>2,004,000</td>
<td><span style="color: red;">Yes</td>
</tr>
<tr>
<td>1200</td>
<td>1650</td>
<td>1,980,000</td>
<td><span style="color: green;">No</td>
</tr>
<tr>
<td>1200</td>
<td>1675</td>
<td>2,201,000</td>
<td><span style="color: red;">Yes</td>
</tr>
<tr>
<td>1200</td>
<td>1666</td>
<td>1,999,200</td>
<td><span style="color: green;">No</td>
</tr>
<tr>
<td>1666</td>
<td>1200</td>
<td>1,999,200</td>
<td><span style="color: green;">No</td>
</tr>
<tr>
<td>1667</td>
<td>1200</td>
<td>2,000,400</td>
<td><span style="color: red;">Yes</td>
</tr>
<tr>
<td>500</td>
<td>4000</td>
<td>2,000,000</td>
<td><span style="color: green;">No</td>
</tr>
<tr>
<td>500</td>
<td>4001</td>
<td>2,000,500</td>
<td><span style="color: red;">Yes</td>
</tr>
</tbody>
</table>
<p>There were further tests in between but I won&#8217;t list them all for your sanity but my tests seems to say that it didn&#8217;t matter on the width or the height of the image just the total pixel area. E.g. a very wide image < 2,000,001 works just as a very high image does. At 2,000,001 pixels or larger they get shrunk. Note I didn't get it right down to 2,000,001 pixels and this is just an educated guess that it is the actual tipping point.</p>
<p>I&#8217;m going to submit this as a bug to Apple I&#8217;m not sure what is causing this but another guess of mine is that 2,000,000 is the maximum area that the renderer will handle/cache (you can see this in effect when you scroll around on mobile Safari how it re-draws the page) and so is getting enforced on the background image some how.</p>
<p><a name="2010-02-22-update"></a><br />
<strong>Update: 22nd Feb 2010</strong><br />
It seems I should have RTFMed. Apple got back to me with regards to the bug and pointed me at the <a href="http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html">Known iPhone OS Resource Limits in the Safari Web Content Guide</a> which says:</p>
<blockquote cite="http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html">
<ul>
<li>The maximum size for decoded GIF, <acronym title="Portable Network Graphics">PNG</acronym>, and TIFF images is 3 megapixels.
<p>That is, ensure that width * height â‰¤ 3 * 1024 * 1024. Note that the decoded size is far larger than the encoded size of an image.</li>
<li>The maximum decoded image size for JPEG is 32 megapixels using subsampling.
<p>JPEG images can be up to 32 megapixels due to subsampling, which allows JPEG images to decode to a size that has one sixteenth the number of pixels. <em>JPEG images larger than 2 megapixels are subsampledâ€”that is, decoded to a reduced size.</em> JPEG subsampling allows the user to view images from the latest digital cameras.</li>
</ul>
</blockquote>
<p>Emphasis added.</p>]]></content:encoded>
			<wfw:commentRss>http://www.defusion.org.uk/archives/2010/02/19/shrinking-large-background-image-bug-in-iphone-safari/feed/</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
		<item>
		<title>No IE For You!</title>
		<link>http://www.defusion.org.uk/archives/2009/11/01/no-ie-for-you/</link>
		<comments>http://www.defusion.org.uk/archives/2009/11/01/no-ie-for-you/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 22:45:06 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[IE Sucks]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.defusion.org.uk/archives/2009/11/01/no-ie-for-you/</guid>
		<description><![CDATA[
The title of this post was going to be:
If Microsoft Insist On Making It Nigh-on Impossible For Us To Test IE Effectively Then Why Do They Think We Should Bother Supporting It?
But I decided that was a bit too long, so I took inspiration from the soup kitchen chef instead, it&#8217;s more to the point.
Anyway [...]]]></description>
			<content:encoded><![CDATA[<p><img class="featureImg" src="http://www.defusion.org.uk/wp-content/uploads/2009/11/no-ie-thumb.jpg" alt="No IE for You!" /><br />
The title of this post was going to be:</p>
<blockquote><p>If Microsoft Insist On Making It Nigh-on Impossible For Us To Test <acronym title="Internet Explorer">IE</acronym> Effectively Then Why Do They Think We Should Bother Supporting It?</p></blockquote>
<p>But I decided that was a bit too long, so I took inspiration from the soup kitchen chef instead, it&#8217;s more to the point.</p>
<p>Anyway the reason I&#8217;m back writing about adventures in <acronym title="Internet Explorer">IE</acronym> testing land is I have a week of some horrid <acronym title="Internet Explorer">IE</acronym> browser testing of my current, JavaScript heavy, project coming up if the first quick check through all versions of <acronym title="Internet Explorer">IE</acronym> is anything to go by. Yes I know I should have been testing as I went along, but having to refresh 9 browsers with every change really kills my buzz (especially when 3 of those are <acronym title="Internet Explorer">IE</acronym>).</p>
<p>So I did some initial browser testing last week and got <strong>zero issues in 6 browsers</strong>, but <em>each version of <acronym title="Internet Explorer">IE</acronym> threw up massive amounts of JavaScript errors</em> &#8212; absolutely all over the place &#8212; and we all know how annoying debugging JS is in <acronym title="Internet Explorer">IE</acronym>. This combined with my aging (and decidedly creaky) Windows XP Virtual Machine (running in Parallels on a Mac Pro with more than enough grunt to run multiple <acronym title="Virtual Machine">VM</acronym>&#8217;s all at once) meant that tonight I decided to look for new alternatives (as multiple versions of <acronym title="Internet Explorer">IE</acronym> on a single <acronym title="Virtual Machine">VM</acronym> have never been great anyway).<br />
<span id="more-198"></span><br />
So single <acronym title="Virtual Machine">VM</acronym> images (as light and quick as possible) was my plan and I started to do some research, and found the following:</p>
<ul>
<li>Microsoft handily supply a bevvy of <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef&#038;DisplayLang=en">Internet Explorer Application Compatibility VPC Image&#8217;s</a> exactly for this situation. <strong>Score 1 Microsoft!</strong></li>
<li>These are Virtual PC images, which is only available for Windows&#8230; but I found <a href="http://blog.mozmonkey.com/2008/vpc-ie6-ie7-ie8-on-mac-os-x/">these instructions for converting them</a> to run with either VMWare Fusion or VirtualBox. <strong>Score 1 Mac and the sweet, sweet people on the Internet</strong></li>
</ul>
<p>So I&#8217;m all set right? The steps aren&#8217;t that difficult and I choose to try VirtualBox as </p>
<ol>
<li>I&#8217;ve tried VMWare Fusion before and wasn&#8217;t that keen.</li>
<li>I know that VMWare won&#8217;t run at the same time as parallels. A big minus there.</li>
<li>I&#8217;ve wanted to try VirtualBox for a while.</li>
</ol>
<p>I do a few downloads, the conversion stuff and within the hour I have VirtualBox booting the image. <em>It boots quickly and it&#8217;s nippy</em>, I assume they&#8217;ve stripped Windows down to the bare bones with just enough to run <acronym title="Internet Explorer">IE</acronym> properly &#8211; which is what I was going to try and do anyway. Windows says something about having to re-activate so I try, that fails but says I have 3 days so I figure that has to be due to the last step I haven&#8217;t completed, which I then do and reboot. Only to get the following:</p>
<ol>
<li>WGA prompt</li>
<li>Follow instructions</li>
<li>Fail</li>
<li>Repeat steps 1 to 3 a couple more times</li>
<li>Search Google and <a href="http://socket7.net/article/ie-vpc-images-now-with-wga">find</a> out <a href="http://forums.virtualbox.org/viewtopic.php?f=2&#038;t=21712&#038;start=45">that</a> they&#8217;ve gone and restricted it to running in Virtual PC only. <strong><em>Microsoft FAIL</em></strong>. It&#8217;s in the EULA so I should have noticed it&#8230; Like I&#8217;m going to read every EULA put in front of my face.</li>
</ol>
<p><a href="http://blogs.msdn.com/petel/">Peter L</a> who is the &#8220;Product Manager, Internet Explorer, Developer Division&#8221; has the following <a href="http://blogs.msdn.com/petel/archive/2009/09/09/running-the-ie-vpc-s-on-other-vpc-hosts.aspx">month and a half old update</a>:</p>
<blockquote cite="http://blogs.msdn.com/petel/archive/2009/09/09/running-the-ie-vpc-s-on-other-vpc-hosts.aspx"><p>I&#8217;ve spent some time investigating this issue, and now understand that the VPC images used to work on other hosting environments, but with the latest release, don&#8217;t any more.  We have a better understanding of the issue now, and while we&#8217;re looking for a solution, we don&#8217;t have one right now.  If you&#8217;re using the VPC&#8217;s, and they don&#8217;t work any more, I encourage you to email me, with your name, how you&#8217;re using them and the hosting environment that you&#8217;re using.</p></blockquote>
<p>I&#8217;ll drop him an email but I don&#8217;t expect to get a resolution any time soon.</p>
<p>So a couple of hours of work and I&#8217;m back to square one, the only positive thing I can take from this is <a href="http://www.virtualbox.org/">VirtualBox</a> seems quite fast and neither it nor Parallels have complained about the other. So I might try converting my Dev <acronym title="Virtual Machine">VM</acronym>&#8217;s and setting up a new Multi-<acronym title="Internet Explorer">IE</acronym> Windows <acronym title="Virtual Machine">VM</acronym> on there.</p>
<p>But the big thing I take from this is that Microsoft don&#8217;t want you to play with them if you don&#8217;t own a Microsoft football. I quite honestly would be quite happy to do that, <em>to never have to open <acronym title="Internet Explorer">IE</acronym> again would suit me fine</em>. </p>
<p>Unfortunately that would also mean commercial suicide for a web developer who works on public facing sites.</p>]]></content:encoded>
			<wfw:commentRss>http://www.defusion.org.uk/archives/2009/11/01/no-ie-for-you/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Update : JavaScript Image Cropper UI using Prototype v 1.2.1</title>
		<link>http://www.defusion.org.uk/archives/2009/10/06/update-javascript-image-cropper-ui-using-prototype-v-121/</link>
		<comments>http://www.defusion.org.uk/archives/2009/10/06/update-javascript-image-cropper-ui-using-prototype-v-121/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 19:45:16 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.defusion.org.uk/archives/2009/10/06/update-javascript-image-cropper-ui-using-prototype-v-121/</guid>
		<description><![CDATA[It&#8217;s been a long time since I released an update to the JavaScript Image Cropper UI (for reference v1.2.0 was released on 30th Oct 2006!).
However it is still going strong and a couple of things prompted me to release this update to bring it to v1.2.1.
The first thing was Tom Hirashima (sorry Tom, wasn&#8217;t sure [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a long time since I released an update to the <a href="/code/javascript-image-cropper-ui-using-prototype-scriptaculous/">JavaScript Image Cropper UI</a> (for reference v1.2.0 was released on 30th Oct 2006!).</p>
<p>However it is still going strong and a couple of things prompted me to release this update to bring it to v1.2.1.</p>
<p>The first thing was <a href="http://straightnochaser.org/">Tom Hirashima</a> <del datetime="2009-10-06T22:52:08+00:00">(sorry Tom, wasn&#8217;t sure if you have a site you want me to link to)</del> sent me an email last week with an update to the code to allow it to work with the latest versions of Prototype &#038; script.aculo.us out of the box (1.6.1.0 &#038; 1.8.2 respectively). Although the last time I tried the cropper with the latest versions of them both it worked fine, you just had to change the bundles that script.aculo.us included, Tom has made some further changes. This is a good thing as for the past couple of years I&#8217;ve pretty much been out of the prototype &#038; script.aculo.us loop having moved to MooTools and now jQuery (which I hated at first, but that&#8217;s another story).</p>
<p>The second thing was that the cropper was mentioned (and my how old does this site design look to me now) in the latest (and as usual excellent) <a href="http://railscasts.com/">Railscast</a>, <a href="http://railscasts.com/episodes/182-cropping-images">Cropping Images</a>.</p>
<p>As a part of integrating Tom&#8217;s changes I decided to tackle a load of bugs from the bug list to try and reduce the list so I can keep on top of it better going forward (a long list of open bugs is never conducive to getting any of them fixed).<br />
<span id="more-197"></span><br />
Here&#8217;s a full list of the changes:</p>
<ul>
<li>Added support for latest versions of Prototype &#038; script.aculo.us (1.6.1.0 &#038; 1.8.2 respectively). Changes provided by Tom Hirashima.</li>
<li>No-longer package prototype &#038; script.aculo.us with the release</li>
<li>Changed tests to use google ajax libraries <acronym title="Application Programming Interface">API</acronym> to load prototype &#038; script.aculo.us</li>
<li>Added option to not auto include the cropper <acronym title="Cascading Style Sheets">CSS</acronym> file</li>
<li><span class="code">#00008</span> &#8211; Fixed bug: Dynamic include of cropper <acronym title="Cascading Style Sheets">CSS</acronym> expected cropper.js and failed when using cropper.uncompressed.js</li>
<li><span class="code">#00028</span> &#8211; Fixed bug: Doesn&#8217;t work with latest script.aculo.us &#8211; Fix by Tom Hirashima</li>
<li><span class="code">#00030</span> &#8211; Fixed bug: Doesn&#8217;t work in Firefox 3.5 (<acronym title="Cascading Style Sheets">CSS</acronym> include issue)</li>
<li><span class="code">#00007</span> &#8211; Fixed bug: onEndCrop isn&#8217;t called when moving with keys</li>
<li><span class="code">#00011</span> &#8211; Fixed bug: The image that is to be cropped does not show in IE6.0 &#8212; included <acronym title="Cascading Style Sheets">CSS</acronym> fix</li>
<li>Tidied up source code &#038; fixed issues that jslint found so it will compress better</li>
</ul>
<p>Finally as usual, please use the bug reporting link or discussion list mentioned on <a href="/code/javascript-image-cropper-ui-using-prototype-scriptaculous/">JavaScript Image Cropper UI code page</a> rather than leaving comments to report bugs.</p>
<p>Head over to the <a href="/code/javascript-image-cropper-ui-using-prototype-scriptaculous/">JavaScript Image Cropper UI code page</a> for download and documentation.
<p><strong><em>Advertisement</em></strong>:  <a href="http://www.defusion.org.uk/code/javascript-image-cropper-ui-using-prototype-scriptaculous/">JavaScript Image Cropper UI</a><em> </em>Download my feature-rich JavaScript Image Cropper.</p>]]></content:encoded>
			<wfw:commentRss>http://www.defusion.org.uk/archives/2009/10/06/update-javascript-image-cropper-ui-using-prototype-v-121/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Where to Start With, open to all &amp; new feature</title>
		<link>http://www.defusion.org.uk/archives/2009/07/13/where-to-start-with-open-to-all-new-feature/</link>
		<comments>http://www.defusion.org.uk/archives/2009/07/13/where-to-start-with-open-to-all-new-feature/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 21:16:07 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[My Sites]]></category>
		<category><![CDATA[Outer Monologue]]></category>
		<category><![CDATA[Quick Link]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Where to Start With]]></category>

		<guid isPermaLink="false">http://www.defusion.org.uk/archives/2009/07/13/where-to-start-with-open-to-all-new-feature/</guid>
		<description><![CDATA[Just a very quick post to let you all know that my community-driven music recommendation site Where to Start With has just left private beta. Not only that but we have launched what we think is a killer new feature, there is a lot more detail (and a screencast) in the blog post over at [...]]]></description>
			<content:encoded><![CDATA[<p>Just a very quick post to let you all know that my community-driven music recommendation site <a href="http://wheretostartwith.com/">Where to Start With</a> has just left private beta. Not only that but we have launched what we think is a killer new feature, <a href="http://blog.wheretostartwith.com/2009/07/13/goodbye-private-beta-hello-new-features/">there is a lot more detail (and a screencast) in the blog post</a> over at our Where to Start With blog.</p>]]></content:encoded>
			<wfw:commentRss>http://www.defusion.org.uk/archives/2009/07/13/where-to-start-with-open-to-all-new-feature/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing: Wheretostartwith.com &#8211; Community Powered Music Recommendations</title>
		<link>http://www.defusion.org.uk/archives/2009/03/06/introducing-wheretostartwithcom-community-powered-music-recommendations/</link>
		<comments>http://www.defusion.org.uk/archives/2009/03/06/introducing-wheretostartwithcom-community-powered-music-recommendations/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 18:52:38 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[My Sites]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.defusion.org.uk/archives/2009/03/06/introducing-wheretostartwithcom-community-powered-music-recommendations/</guid>
		<description><![CDATA[

I&#8217;d like to introduce to you my brand new site Where to Start With, which I have been working on in my spare time for a while (more on this in future posts).
The elevator pitch for Where to Start With goes like this:

Where to Start With helps you when youâ€™re trying out new bands and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wheretostartwith.com/"><br />
<img class="featureImg" src="http://www.defusion.org.uk/wp-content/uploads/2009/03/wtosw-thumb.gif" alt="Screenshot of the Where To Start With homepage"/><br />
</a>I&#8217;d like to introduce to you my brand new site <a href="http://wheretostartwith.com/">Where to Start With</a>, which I have been working on in my spare time for a while (more on this in future posts).</p>
<p>The elevator pitch for Where to Start With goes like this:</p>
<blockquote><p>
Where to Start With helps you when youâ€™re trying out new bands and artists by providing community-powered recommendations written by die hard fans.</p>
<p>If that new band you want to try has 10 <acronym title="Compact Disk">CD</acronym>â€™s out, then Where to Start With will give youâ€¦ well, where to start with them!
</p></blockquote>
<p>The whole idea behind this site came from a need me and my friend found ourselves having; many times we would hear a song or read about a band that sounded interesting but then when we did go to try that band we would find they had a handful of releases out already. Where is the best place to start with them? Traditionally unless you got a specific recommendation for an album you would just try the lucky dip approach and hope you found a winner. If you got lucky you might have just found your new favourite band, however if you picked a rotten egg you may dismiss your potential new favourite band based on your opinion of one of their poorer releases.<br />
<span id="more-192"></span><br />
A personal example was when I was recommended to listen to Porcupine Tree and given one song to try. That song was awesome, however Porcupine Tree have a massive back-catalogue (9 albums, 6 live/compilation albums and 4 EPs) and from trying a few releases out I found that they are very diverse and I still haven&#8217;t managed to get into them, although from that initial song I really wish I could. What I really needed was a guide to tell me where to actually start with Porcupine Tree, for example something that said &quot;for starting out with Porcupine Tree what you really need to buy first is their album X&quot;.</p>
<p>This is how <a href="http://wheretostartwith.com/">Where to Start With</a> was born and also basically how it works &#8212; each band or artist will have an article about them which gives a short history/description of the band and each of their main releases (e.g. Albums &#038; E.P.&#8217;s) with a little description. Any user can add these articles and each article is in the wiki-style, e.g. anyone can edit the descriptions to add new information and fix mistakes etc.</p>
<p><strong>The real core</strong> of the site comes into play w<em>hen people start adding their opinions</em> on artists, once again anyone can do this, but it is better for people who are currently fans of the artist to add their opinion. Each opinion includes a rating, a recommendation (more on those later) and a personal comment on each of the albums for the artist. We then take these opinions and produce an article that gives you recommendations on where to start with the artist, what to try after that and even sometimes what to avoid.</p>
<h2>What makes this different to other sites?</h2>
<p>Well, whereas other sites, software and services may give you reviews, the most popular or most listened to albums those may not necessarily be the best releases to start off with a new artist.</p>
<p>For instance Reefs debut album &quot;Replenish&quot; is absolutely amazing and one of my all time favourite albums, however pretty much anyone interested in starting with Reef would be best advised to start with their second album &quot;Glow&quot;, which is much more accessible in general. Another clear example would be Nirvana, I personally hardly ever listen to Nirvana&#8217;s &quot;Nevermind&quot; album any more (as I know all of Nirvanaâ€™s albums inside and out, every cough and guitar string noise included) and I would rate &quot;In Utero&quot; as my favourite album however &quot;Nevermind&quot; obviously would be the album I would recommend anyone new to Nirvana should start out with.</p>
<p>But going further than that after you have tried the &quot;essential&quot; release <a href="http://wheretostartwith.com/">Where to Start With</a> helps you with which release to follow the essential release with, a wildcard album and even sometimes what to avoid &#8211; these can be really difficult to determine from the other methods.</p>
<h2>About the recommendations.</h2>
<p>Each <a href="http://wheretostartwith.com/">Where to Start With</a> article can have the following recommendations for each release to help guide you:</p>
<ul>
<li><strong>Essential</strong>: The the first release to try, the best introduction to the artist.</li>
<li><strong>Follow with</strong>: The next release to try after the essential release.</li>
<li><strong>Also recommended</strong>: Another good release to try.</li>
<li><strong>Wildcard</strong>: A release that may not be &quot;the norm&quot; for the artist but still could be interesting. If you try the essential release and weren&#8217;t so keen this should be different enough to be worth a try.</li>
<li><strong>Avoid</strong>: Yes, some users will also tell you what to avoid.</li>
</ul>
<p>The votes of each person on each release are added up to ensure that each article has one of each of the above recommendations (where applicable) and the more opinions that are added the better the recommendations become. You also have access to personal comments of each person who gave their opinion to give you a better insight into why they voted how they voted. And finally, just in case there is a close call between releases you can also see the breakdown of the votes for each release.</p>
<h2>Sounds great, how do I get started?</h2>
<p>Well weâ€™re currently in private beta and have been running with a small handful of users for the past couple of weeks but are accepting <a href="http://wheretostartwith.com/">applications to the beta</a> and <strong>adding new users on a daily basis</strong>. The reason weâ€™re currently in private beta is to ensure that the platform is solid and discover any issues, we&#8217;re not sure how long this will take but we obviously want to be out of beta as soon as possible. We also have setup a dedicated <a href="http://blog.wheretostartwith.com/">blog for Where to Start With</a> which you can follow if you want to be kept up to date with progress of the beta and other new things (as we&#8217;re not finished adding features yet).</p>
<h2>It&#8217;s working for me already!</h2>
<p>Even with the small handful of users in the initial phase of the private beta I&#8217;ve already found one new band who I would have probably a) never heard of and b) not known where to start with without the site. There is more on this in the post <a href="http://blog.wheretostartwith.com/2009/02/28/its-working-for-us/">It&#8217;s working for us</a> on <a href="http://blog.wheretostartwith.com/">our blog</a>.</p>
<p>So <a href="http://wheretostartwith.com/">give it a whirl</a>, and do get in touch to give us your thoughts etc.</p>]]></content:encoded>
			<wfw:commentRss>http://www.defusion.org.uk/archives/2009/03/06/introducing-wheretostartwithcom-community-powered-music-recommendations/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick Link: Dead simple task scheduling in Rails</title>
		<link>http://www.defusion.org.uk/archives/2009/02/14/quick-link-dead-simple-task-scheduling-in-rails/</link>
		<comments>http://www.defusion.org.uk/archives/2009/02/14/quick-link-dead-simple-task-scheduling-in-rails/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 11:23:04 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Outer Monologue]]></category>
		<category><![CDATA[Quick Link]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.defusion.org.uk/archives/2009/02/14/quick-link-dead-simple-task-scheduling-in-rails/</guid>
		<description><![CDATA[I&#8217;ve just come across this post on dead simple task scheduling in Rails by the guys at intridea. It looks like a really nifty way to setup scheduled tasks in your Rails app, previously I had my tasks in rake files which I would then hit with cron. 
While that is working perfectly adequately for [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just come across this post on <a href="http://www.intridea.com/posts/dead-simple-task-scheduling-in-rails">dead simple task scheduling in Rails</a> by the guys at <a href="http://www.intridea.com/">intridea</a>. It looks like a really nifty way to setup scheduled tasks in your Rails app, previously I had my tasks in rake files which I would then hit with cron. </p>
<p>While that is working perfectly adequately for my current setup it does have one downside, when I setup a new server I will have to setup the crontab file too. With <a href="http://www.intridea.com/posts/dead-simple-task-scheduling-in-rails">this method</a> when I deploy my app my scheduled tasks would get deployed and be running out of the box. Nice.</p>]]></content:encoded>
			<wfw:commentRss>http://www.defusion.org.uk/archives/2009/02/14/quick-link-dead-simple-task-scheduling-in-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Has Someone Broken/Hacked Google?</title>
		<link>http://www.defusion.org.uk/archives/2009/01/31/has-someone-brokenhacked-google/</link>
		<comments>http://www.defusion.org.uk/archives/2009/01/31/has-someone-brokenhacked-google/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 14:57:59 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Outer Monologue]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.defusion.org.uk/archives/2009/01/31/has-someone-brokenhacked-google/</guid>
		<description><![CDATA[For the past 10 minutes or so every search I have performed on Google (.co.uk) has brought up the &#8220;This site may harm your computer&#8221; warning page on almost every result (except for Google owned sites, like YouTube). Just take a look at this search for the term &#8220;Something&#8221;:

I also tried on different browsers and [...]]]></description>
			<content:encoded><![CDATA[<p>For the past 10 minutes or so every search I have performed on Google (.co.uk) has brought up the &#8220;This site may harm your computer&#8221; warning page on <del>almost</del> every result <del>(except for Google owned sites, like YouTube)</del>. Just take a look at this search for the term &#8220;Something&#8221;:</p>
<p><a href="http://www.defusion.org.uk/wp-content/uploads/2009/01/google_broken_thumb.png" rel="lightbox"><img id="image187" src="http://www.defusion.org.uk/wp-content/uploads/2009/01/google_broken_thumb.png" alt="A screenshot of Google search results" /></a></p>
<p>I also tried on different browsers and get the same issues &#8211; is anyone else getting this? Either way it&#8217;s a little disconcerting that a bug like this can find its way into Google, but also in its own way a little reassuring that everyone has bugs.</p>
<p><strong>Update:</strong> Yep it appears to be everywhere, this <a href="http://www.techcrunch.com/2009/01/31/google-flags-whole-internet-as-malware/">TechCrunch story covers it.</a></p>
<p><strong>Update:</strong> The <a href="http://news.bbc.co.uk/1/hi/technology/7862840.stm">BBC have a bit more detail</a>, seems an import of data from Stopbadware.org flagged everything as dangerous &#8211; do you think someone updated the query recently and missed out the <span class="code">WHERE id = [id]</span> part, I know I&#8217;ve done that on in dev more than once. :)</p>]]></content:encoded>
			<wfw:commentRss>http://www.defusion.org.uk/archives/2009/01/31/has-someone-brokenhacked-google/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CSS Management on Large Sites</title>
		<link>http://www.defusion.org.uk/archives/2008/10/21/css-management-on-large-sites/</link>
		<comments>http://www.defusion.org.uk/archives/2008/10/21/css-management-on-large-sites/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 19:06:18 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Outer Monologue]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.defusion.org.uk/archives/2008/10/21/css-management-on-large-sites/</guid>
		<description><![CDATA[At one of my previous jobs we had a massive amount of CSS to handle; we had the global styles, then section/page specific styles and on top of both of those we had different styles for various versions of the application (as the same application and content ran many sites).
The solution we came up with [...]]]></description>
			<content:encoded><![CDATA[<p>At one of my previous jobs we had a massive amount of <acronym title="Cascading Style Sheets">CSS</acronym> to handle; we had the global styles, then section/page specific styles and on top of both of those we had different styles for various versions of the application (as the same application and content ran many sites).</p>
<p>The solution we came up with was not too dissimilar to the one discussed in this months <a href="http://www.alistapart.com/">A List Apart</a> article <a href="http://www.alistapart.com/articles/progressiveenhancementwithcss">Progressive Enhancement with <acronym title="Cascading Style Sheets">CSS</acronym></a> and that article is well worth a read. But I also thought I&#8217;d write a little about the setup that we came up with and how it worked out for us.<br />
<span id="more-184"></span><br />
The basic setup was as follows:</p>
<ul>
<li>Split the styles into their three components of the <acronym title="Cascading Style Sheets">CSS</acronym> make-up: layout, typography, skin (with the skin file containing the colour and graphics). As this kept things nicely compartmentalised and meant that we could re-use some styles from one site (e.g. the layout generally was the same for most content across all the sites) while applying extra changes specific to that site.</li>
<li>The stylesheets were organised into directories based on the section (or sometimes specific page) of the application. So for example <span class="code">home/layout.css</span>, <span class="code">home/skin.css</span>, <span class="code">news/layout.css</span> and <span class="code">news/skin.css</span> etc.</li>
<li>We could then also import specific stylesheets for each of our sites on top of these (both at a global and section level) which usually just overrode a few style declarations to keep these site-specific style rules to a minimum.</li>
<li>All of this was managed server side using a configuration schema which knew where to look for the stylesheets for a given section of the application (as well as the global ones) and include them as appropriate for the given site.</li>
</ul>
<p>We also had common comment styling for breaking the larger stylesheets into sections (which makes it easier to find things) and tried to alphabetise our properties within each style rule (although it&#8217;s not something that I personally could always stick to).</p>
<p>This was quite a good system, it may have looked complex based on the number of stylesheets that were imported for any given page but it worked out really well and we never really had any problems with our <acronym title="Cascading Style Sheets">CSS</acronym> system.</p>
<p>I&#8217;ve even used it on a few of my own larger side projects with minor tweaking to the system (e.g. dropping the configuration schema and following a Rails-like &quot;Convention over Configuration&quot; setup), and as I say it is very similar to the one described in the <a href="http://www.alistapart.com/">A List Apart</a> article <a href="http://www.alistapart.com/articles/progressiveenhancementwithcss">Progressive Enhancement with <acronym title="Cascading Style Sheets">CSS</acronym></a> &#8212; that has a really good idea for handling the different media types, which we handled via our schema.</p>]]></content:encoded>
			<wfw:commentRss>http://www.defusion.org.uk/archives/2008/10/21/css-management-on-large-sites/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Pleasefixtheiphone.com &#8211; Great Site and Great Design</title>
		<link>http://www.defusion.org.uk/archives/2008/10/20/pleasefixtheiphonecom-great-site-and-great-design/</link>
		<comments>http://www.defusion.org.uk/archives/2008/10/20/pleasefixtheiphonecom-great-site-and-great-design/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 20:25:16 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Outer Monologue]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.defusion.org.uk/archives/2008/10/20/pleasefixtheiphonecom-great-site-and-great-design/</guid>
		<description><![CDATA[
I just came across this great site via Techcrunch called &#34;Please fix the iPhone&#34;. It&#8217;s basically a list of issues which people are having with the iPhone and allows you to vote on ones you&#8217;d like to have fixed. 
It&#8217;s quite a nice idea and really well executed. What I really liked is the fact [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.defusion.org.uk/wp-content/uploads/2008/10/pleasefixtheiphone.png" rel="lightbox"><img id="image181" src="http://www.defusion.org.uk/wp-content/uploads/2008/10/pleasefixtheiphone-thumb.png" alt="Pleasefixtheiphone.com screenshot" class="featureImg" /></a><br />
I just came across this great site <a href="http://www.techcrunch.com/2008/10/20/please-fix-the-iphone-a-to-do-list-for-steve-jobs/">via Techcrunch</a> called &quot;<a href="http://pleasefixtheiphone.com/">Please fix the iPhone</a>&quot;. It&#8217;s basically a list of issues which people are having with the iPhone and allows you to vote on ones you&#8217;d like to have fixed. </p>
<p>It&#8217;s quite a nice idea and really well executed. What I really liked is the fact that they&#8217;ve obviously spent a little time designing this thing (both from a UI and functionality point of view). It&#8217;s really quite refreshing to see something like this appear in an era when most simple ideas I see like this end up running on a blog or a wiki platform.</p>
<p>So if you&#8217;ve got an iPhone <a href="http://pleasefixtheiphone.com/">head over there and vote</a>, if you haven&#8217;t <a href="http://pleasefixtheiphone.com/">head over and take a look at the design</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.defusion.org.uk/archives/2008/10/20/pleasefixtheiphonecom-great-site-and-great-design/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Coding Clarity Over Cleverness</title>
		<link>http://www.defusion.org.uk/archives/2008/10/14/coding-clarity-over-cleverness/</link>
		<comments>http://www.defusion.org.uk/archives/2008/10/14/coding-clarity-over-cleverness/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 20:02:29 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Outer Monologue]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.defusion.org.uk/archives/2008/10/14/coding-clarity-over-cleverness/</guid>
		<description><![CDATA[I was asked a question a while back over IM. The question and my subsequent answer made me think about my coding style, decision making process and evolution over the years and I decided that I would share those thoughts with you (aren&#8217;t you lucky).

The initial conversation went something like this, I&#8217;m paraphrasing here (but [...]]]></description>
			<content:encoded><![CDATA[<p>I was asked a question a while back over <acronym title="Instant Message">IM</acronym>. The question and my subsequent answer made me think about my coding style, decision making process and evolution over the years and I decided that I would share those thoughts with you (aren&#8217;t you lucky).<br />
<span id="more-179"></span><br />
The initial conversation went something like this, I&#8217;m paraphrasing here (but at least I&#8217;m not <a href="/archives/2007/02/11/donations-make-me-warm-and-fuzzy/">filling it with &#8220;dude&#8221;&#8217;s</a>):</p>
<blockquote><p>M: I was thinking about the <span class="code">event.setArg()</span> method, and thought it would be nice if you could have it set the variable to session or cookies within the same call, e.g. <span class="code">event.setArg(&#8216;name&#8217;,'value&#8217;,true,true)</span>, what do you think?</p></blockquote>
<blockquote><p>Me: I see what you&#8217;re thinking, but I don&#8217;t like it. I think that your code should be clear to you and others what it is doing and those true arguments don&#8217;t give you much insight into what they&#8217;re doing.</p>
<p>You&#8217;ve got to think about someone else coming to maintain your code, would they be able to see what it was doing without digging through to find the definition of <span class="code">event.setArg()</span>? </p>
<p>Also how many times will you use it, and if not many, will you have to check the definition yourself to remind you which one is setting the cookie and which the session next time you see it?</p></blockquote>
<p>So in the end I proposed 3 methods, the original setArg() method and two for setting cookie values &#038; session values, basically a couple of cookie and session faÃ§ades, and I think that&#8217;s what he went for in the end.</p>
<p>In my view the few times you&#8217;d want to set the same value to cookie and or session is very rare and the following example shows the worst case scenario where you want the value in all 3 places:</p>
<p><span class="code">event.setArg( &#8216;myArg&#8217;, myVal );</span><br />
<span class="code">cookie.set( &#8216;myArg&#8217;, myVal );</span><br />
<span class="code">session.set( &#8216;myArg&#8217;, myVal );</span></p>
<p>It&#8217;s not the driest piece of code, but in my opinion much better than being presented with <span class="code">event.setArg(&#8216;myArg&#8217;, myVal, false, true)</span>.</p>
<p>So that brings me to the title of this post, &#8220;Coding Clarity Over Cleverness&#8221;, the example with the extra faÃ§ades for the session &#038; cookie can&#8217;t really be any clearer in my opinion, it&#8217;s not the cleverest or driest solution but as far as readability and future maintenance in my opinion it&#8217;s much better. Presented with that code you probably wouldn&#8217;t even dig into the documentation or code to see what cookie.set() and session.set() are doing as it&#8217;s pretty clear.</p>
<p>The clarity over cleverness argument goes for any coding situation, you might hide some really clever code behind a method or function, but it&#8217;s name and signature should clearly show what it&#8217;s doing.</p>
<p>So the next time you come up with a clever solution, ask yourself if it&#8217;s clear what the code is doing if not then re-factor it so that it is.</p>]]></content:encoded>
			<wfw:commentRss>http://www.defusion.org.uk/archives/2008/10/14/coding-clarity-over-cleverness/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

