<?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>Shane&#039;s blog</title>
	<atom:link href="http://blog.shamess.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.shamess.info</link>
	<description>Personal blog of Shane Preece. Occaisional politics and tech minddump.</description>
	<lastBuildDate>Thu, 03 May 2012 12:59:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Dash Before Caption in WordPress</title>
		<link>http://blog.shamess.info/2012/05/03/dash-before-caption-in-wordpress/</link>
		<comments>http://blog.shamess.info/2012/05/03/dash-before-caption-in-wordpress/#comments</comments>
		<pubDate>Thu, 03 May 2012 12:59:38 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.shamess.info/?p=1223</guid>
		<description><![CDATA[There&#8217;s a dash that goes before the caption in WordPress posts. Most people want to remove it, according to my Googling. I wanted to use it in another theme I&#8217;m working on. The relevant piece of CSS is this, on &#8230; <a href="http://blog.shamess.info/2012/05/03/dash-before-caption-in-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a dash that goes before the caption in WordPress posts. Most people want to remove it, according to my Googling. I wanted to use it in another theme I&#8217;m working on.</p>
<p>The relevant piece of CSS is this, on <a href="https://github.com/WordPress/WordPress/blob/dd64f17ab73bc7131657528d10ca5a80314a6955/wp-content/themes/twentyeleven/style.css#L905">line 905 in the style.css</a>:</p>
<pre>.wp-caption .wp-caption-text:before {
 color: #666;
 content: '\2014';
 font-size: 14px;
 font-style: normal;
 font-weight: bold;
 margin-right: 5px;
 position: absolute;
 left: 10px;
 top: 7px;
}</pre>
<p>Removing chunk will stop the dash appearing. However, this change will be overwritten when you update your WordPress next. The best way to fix this would be to make a filter which applies to the wp_head() function to output:</p>
<pre>.wp-caption .wp-caption-text:before {
  content: none;
}</pre>
<p>The <a href="http://www.w3.org/TR/CSS21/generate.html#content">CSS content</a> attribute appends some content to the selector.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shamess.info/2012/05/03/dash-before-caption-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AJAX loading image with jQuery</title>
		<link>http://blog.shamess.info/2012/03/27/ajax-loading-image-with-jquery/</link>
		<comments>http://blog.shamess.info/2012/03/27/ajax-loading-image-with-jquery/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 16:20:47 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.shamess.info/?p=883</guid>
		<description><![CDATA[Usually when you click a link you know you&#8217;ve clicked the link instinctively because your browser tab starts doing that loading animation. The browser doesn&#8217;t handle AJAX requests quite the same though, and there&#8217;s often not enough visual queues so &#8230; <a href="http://blog.shamess.info/2012/03/27/ajax-loading-image-with-jquery/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Usually when you click a link you know you&#8217;ve clicked the link instinctively because your browser tab starts doing that loading animation. The browser doesn&#8217;t handle AJAX requests quite the same though, and there&#8217;s often not enough visual queues so the user knows something is happening, and doesn&#8217;t click again.That&#8217;s where the circle loading graphics come into play.</p>
<p>First make the animation you want to show, or just nab one from <a href="http://www.ajaxload.info/">Ajaxload</a>. Put that into a &lt;div id=&#8221;loading_gif&#8221;&gt; on the the page, where you want to to be displayed, and then set it to hidden.</p>
<p>You want the graphic to display when there&#8217;s an active AJAX request, and hidden when there&#8217;s not, and fortunately it&#8217;s incredibly simple by adding to the AJAX object.</p>
<p>Each element can be assigned a .ajaxStart() handler, which is triggered when the first AJAX request is started. (It only gets triggered once if there are two running at the same time.) The function you pass it here should be to unhide your loading gif.</p>
<p>To compliment that, once all the AJAX requests are finished, .ajaxStop() gets triggered.</p>
<pre>$('#loading_gif').ajaxStart (function () {
   $(this).show();
}).ajaxStop (function () {
   $(this).hide();
});</pre>
<p>The selector given when applying .ajaxStart and .ajaxStop doesn&#8217;t actually matter, and is only used to give context to the handler function.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shamess.info/2012/03/27/ajax-loading-image-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Default Profile Image</title>
		<link>http://blog.shamess.info/2012/02/08/default-profile-image/</link>
		<comments>http://blog.shamess.info/2012/02/08/default-profile-image/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 21:05:48 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[37signals]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[user experience]]></category>

		<guid isPermaLink="false">http://blog.shamess.info/?p=1176</guid>
		<description><![CDATA[37signals decided to shift up their dull default profile image for a random one, assigned presumably on sign up, which is much more colourful. This is decent idea. Much more interesting than the grey silhouette. But hasn&#8217;t this problem already &#8230; <a href="http://blog.shamess.info/2012/02/08/default-profile-image/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>37signals decided to shift up their dull default profile image for a random one, assigned presumably on sign up, which is <a href="http://37signals.com/svn/posts/3104-behind-the-scenes-reinventing-our-default-profile-pictures">much more colourful</a>. This is decent idea. Much more interesting than the grey silhouette.</p>
<p>But hasn&#8217;t this problem already been fixed before with Gravatar? As their blog post says, people don&#8217;t often have a picture they want to use right at the moment they sign up, so why not let them use the one they&#8217;ve chosen as their identity to the web? Let Gravatar focus on that business &#8211; and 37signals should focus on their business, which has little do with profile pictures.</p>
<p>For a company obsessed with efficiency, it&#8217;s a shame that they probably wasted a day on this &#8220;problem&#8221;.</p>
<p>Previous if you saw that a user was using the default profile picture you were forced to look at their name. This is fine, but the process would have been quicker if they had their own image to recognise them by. This doesn&#8217;t get fixed with assigning them a random one &#8211; what happens when two people get the same icon? This is slowing down fluidity, at the cost of a bit of colour. Jamie from the comments of that article says it well:</p>
<blockquote><p>I learn over time to recognize Bill by his orange and purple generic icon. Then if Janice is added to the project and she chooses the same icon, I will, out of habit, glance and think her comments are actually coming from Bill.</p></blockquote>
<p>Not as colourful, but Trello solves this problem by not actually having an image, but putting the user&#8217;s initials in its place.</p>
<div id="attachment_1185" class="wp-caption aligncenter" style="width: 544px"><a href="https://trello.com/fogcreek"><img class="size-full wp-image-1185" title="Trello Default Profile Images" src="http://blog.shamess.info/wp-content/uploads/2012/02/trello-default-profile-pic.png" alt="" width="534" height="201" /></a><p class="wp-caption-text">The listing of members for the Fog Creek Software page shows a few members without avatars.</p></div>
<p>It also adds the possibility that a person can have a private avatar that can only be seen by those with the privileges to. If you want your work friends to see your photo, but not the outside world this fits really well.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shamess.info/2012/02/08/default-profile-image/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>X-UA-Compatible causes non-valid HTML5</title>
		<link>http://blog.shamess.info/2012/01/18/x-ua-compatible-causes-non-valid-html5/</link>
		<comments>http://blog.shamess.info/2012/01/18/x-ua-compatible-causes-non-valid-html5/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 10:28:47 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[sound tiger]]></category>
		<category><![CDATA[standards]]></category>

		<guid isPermaLink="false">http://blog.shamess.info/?p=1174</guid>
		<description><![CDATA[It&#8217;s just something you&#8217;ll have to live with, and another reason why trying to live and die by standards is stupid. Doing so often leaves some users without experimental features (remember -moz-border-radius?); even if others can&#8217;t see them, you can still &#8230; <a href="http://blog.shamess.info/2012/01/18/x-ua-compatible-causes-non-valid-html5/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s just something you&#8217;ll have to live with, and another reason why trying to live and die by standards is stupid. Doing so often leaves some users without experimental features (remember -moz-border-radius?); even if others can&#8217;t see them, you can still improve your website for others.</p>
<p>The annoying thing is that I don&#8217;t need X-UA-Compatible on my web app. The only reason I need to use it is to stop Internet Explorer incorrectly telling people &#8220;this website is probably broken, you know. Click here to fix that.&#8221;</p>
<p>Websites, including html5boilerplate, appear to be telling people to use <code>&lt;meta http-equiv="X-UA-Compatible" content="IE=edge" /&gt;</code>, which means to say &#8220;this is supported in every future version of IE, and current ones&#8221;. I don&#8217;t find that to be a sensible choice though. If you&#8217;re going to use this invalid meta element, why not actually have it work properly?</p>
<p>For Sound Tiger, I decided to set it to IE=9.</p>
<ul>
<li>Fairly old (Firefox 3 era) A List Apart article: <a href="http://www.alistapart.com/articles/beyonddoctype/">Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8</a></li>
<li>456 Berea Street: <a href="http://www.456bereastreet.com/archive/201103/x-ua-compatible_and_html5/">X-UA-Compatible and HTML5</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.shamess.info/2012/01/18/x-ua-compatible-causes-non-valid-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;ve Disabled Comments</title>
		<link>http://blog.shamess.info/2012/01/18/ive-disabled-comments/</link>
		<comments>http://blog.shamess.info/2012/01/18/ive-disabled-comments/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 01:32:13 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Meta-blog]]></category>

		<guid isPermaLink="false">http://blog.shamess.info/?p=1172</guid>
		<description><![CDATA[I&#8217;m following a few people (Matt Gemmel, and Marco Arment) in this, but I&#8217;ve decided to turn off comments in this blog. My most popular blog post (a code snippet on how to fit all markers on a Google Map) &#8230; <a href="http://blog.shamess.info/2012/01/18/ive-disabled-comments/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m following a few people (<a href="http://mattgemmell.com/2011/11/29/comments-off/">Matt Gemmel</a>, and <a href="http://articles.marco.org/292">Marco Arment</a>) in this, but I&#8217;ve decided to turn off comments in this blog.</p>
<p>My most popular blog post (a code snippet on how to <a href="http://blog.shamess.info/2009/09/29/zoom-to-fit-all-markers-on-google-maps-api-v3/">fit all markers on a Google Map</a>) largely is the only place that gets a response with the occasional comment. However, they&#8217;re usually &#8220;thanks for the help&#8221;, which I really do appreciate but I don&#8217;t feel that was the point of the blog post. Otherwise, it&#8217;s people asking for further support which I just can&#8217;t give over the comments of a blog post (mostly because people don&#8217;t check back).</p>
<p>Pingbacks &#8211; letting a blog know you&#8217;ve mentioned it in a post on your blog (WordPress does this by default) &#8211; seems the most sensible way to have a conversation online. It forces well thought out comments rather than spur of the moment outbursts.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shamess.info/2012/01/18/ive-disabled-comments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>POST/REQUEST/GET Pattern in PHP</title>
		<link>http://blog.shamess.info/2012/01/06/postrequestget-pattern-in-php/</link>
		<comments>http://blog.shamess.info/2012/01/06/postrequestget-pattern-in-php/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 02:34:41 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[user experience]]></category>

		<guid isPermaLink="false">http://blog.shamess.info/?p=1169</guid>
		<description><![CDATA[The &#8220;do you want to resend the POST data to the website again?&#8221; error message a user gets when they try to refresh or go back to a page really scares them. Understandably, since the browser often says &#8220;this could &#8230; <a href="http://blog.shamess.info/2012/01/06/postrequestget-pattern-in-php/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The &#8220;do you want to resend the POST data to the website again?&#8221; error message a user gets when they try to refresh or go back to a page really scares them. Understandably, since the browser often says &#8220;this could mean you&#8217;ll pay for the item twice!&#8221;.</p>
<p>The first way to fix that is by sending all form data over an AJAX request. But if the user has javascript disabled then you&#8217;ll need to fall back to my next suggestion anyway.</p>
<p>The POST/REQUEST/GET (PRG) pattern removes that possibility by never allowing the user to fall onto a page which POST data has been sent to. Putting it simply, whenever you want POST data, you take it and then immediately redirect them.</p>
<p>You do the redirect by using a <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4">HTTP1.1 303</a>, and although that sounds a little hacky it&#8217;s what was intended for that status to be used for.</p>
<p><a href="https://gist.github.com/1568621">You can see a gist with sample code here.</a></p>
<p>In that example I used a SESSION in order to give feedback. Although as a stackoverflow post points out, you could also <a href="http://stackoverflow.com/questions/4297371/prg-pattern-problem">send data back using GET variables</a> (as the pattern truly intended). Sessions are handy for when you don&#8217;t want the user always coming back to the page, or when you don&#8217;t want to put sensitive data in the URL.</p>
<p>PRG is particularly important these days with single page Javascript applications becoming more popular. I came across this with my <a href="http://taskapp.info">notebook application</a>, where trying to refresh would annoyingly bring up &#8220;would you like to resubmit [your log in data]?&#8221;, which adds friction to the flow.</p>
<p>Further reading:</p>
<ul>
<li><a href="http://blogs.msdn.com/b/ieinternals/archive/2011/08/19/understanding-the-impact-of-redirect-response-status-codes-on-http-methods-like-head-get-post-and-delete.aspx">HTTP Methods and Redirect Status Codes</a></li>
<li><a href="http://www.reddit.com/r/webdev/comments/o47mr/this_has_got_to_be_the_worst_web_usability/">this has got to be the worst web usability problem that still exists today; do regular users have a clue what this means? &#8211; reddit</a></li>
<li><a href="http://en.wikipedia.org/wiki/Post/Redirect/Get">Wikipedia article</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.shamess.info/2012/01/06/postrequestget-pattern-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Project is Unsuitable for Paper Prototyping</title>
		<link>http://blog.shamess.info/2011/11/14/my-project-is-unsuitable-for-paper-prototyping/</link>
		<comments>http://blog.shamess.info/2011/11/14/my-project-is-unsuitable-for-paper-prototyping/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 16:50:33 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[paper prototyping]]></category>
		<category><![CDATA[sound tiger]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[user interface]]></category>

		<guid isPermaLink="false">http://blog.shamess.info/?p=1154</guid>
		<description><![CDATA[I was really looking forwards to paper prototyping, and read Carolyn Snyder&#8217;s (US) book. I was planning on creating my widgets and elements this and last week but keep running into problems&#8230; I wanted to use this technique based on &#8230; <a href="http://blog.shamess.info/2011/11/14/my-project-is-unsuitable-for-paper-prototyping/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was really looking forwards to paper prototyping, and read <a href="http://www.amazon.co.uk/gp/product/1558608702/ref=as_li_ss_tl?ie=UTF8&amp;tag=allroundnews-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=1558608702">Carolyn Snyder&#8217;s</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=allroundnews-21&amp;l=as2&amp;o=2&amp;a=1558608702" alt="" width="1" height="1" border="0" /> (<a href="http://www.amazon.com/gp/product/1558608702/ref=as_li_ss_tl?ie=UTF8&amp;tag=shasblo093-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399369&amp;creativeASIN=1558608702">US</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=shasblo093-20&amp;l=as2&amp;o=1&amp;a=1558608702&amp;camp=217145&amp;creative=399369" alt="" width="1" height="1" border="0" />) book. I was planning on creating my widgets and elements this and last week but keep running into problems&#8230;</p>
<p>I wanted to use this technique based on advice from my tutor to figure out if my UI is intuitive enough; I&#8217;ve managed to fit all the elements I want to show of the media player on one screen, and have missed off a few widgets (like the song progress bar, and length and genre information) which could be considered risky. It&#8217;s of wasting a lot of time coding I could jot the idea down on paper and ask a focus group of users to let me know what they thought of the idea on paper. Super quick, in theory. If they don&#8217;t like it, I can literally pencil the changes in.</p>
<p>It could also help with the flow of the application, removing the <em>will the user understand that they have to click this bit of the UI to get to this page..?</em> worry. You ask them to do a task (&#8220;Can you add a song by Coldplay to the now playing queue.&#8221;) and then see how they go about doing it. Was it easy for them? Could they instantly find the play button?</p>
<p>But as I mentioned, problems occurred.</p>
<p>The first issue was that I did it on paper. &#8220;Paper prototyping&#8221; is a misnomer, as paper is too light. Too easy blown away by a sneeze, and too hard to pick up to move around. You need something heavier, like card. This wasn&#8217;t an issue though, I could just get some card (I actually had a tonne of card stock lying around.) However, it meant redrawing what I&#8217;d already done onto the card.</p>
<p>The drawing was very, very hard for me. Simple boxes would end up being horribly unaligned, in such a way I couldn&#8217;t fit the rest of the elements on (which would easily fit on a screen when done with CSS). My play button looked more like an oversized equilateral when next to the badly drawn next track button. The book mentions, as well as everyone else, that <a href="http://www.userfocus.co.uk/articles/paperprototyping.html">good drawing isn&#8217;t a requisite</a>. But it wasn&#8217;t something I could be any more than embarrassed about.</p>
<div id="attachment_1155" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.shamess.info/wp-content/uploads/2011/11/paper-prototyping.jpg"><img class="size-medium wp-image-1155" title="paper-prototyping" src="http://blog.shamess.info/wp-content/uploads/2011/11/paper-prototyping-300x225.jpg" alt="A fairly messy looking paper UI..." width="300" height="225" /></a><p class="wp-caption-text">My ill fated attempt with recreating my UI on paper</p></div>
<p>I decided to try an do it all on Photoshop, and print the elements onto card. That&#8217;d get rid of my issues with drawing. I spent two hours today in a lab trying to use Photoshop to create an empty rectangle with a stroked edge. That&#8217;s definitely not a piece of software you can pick up and play with. You need training, which I can&#8217;t get and don&#8217;t have time for. This is not a rapid way of doing testing, like the book boasts.</p>
<p>My prototype would have to be fairly data heavy too; sample track titles and artists on individual bits for the user to be able to drag around. Once they move to another view, I&#8217;d have to spend a few minutes sorting on the paper, only for the user to potentially decide to &#8220;go back&#8221; and have to redraw it all again.</p>
<p>Paper prototyping is usually carried out by a number of people &#8211; at least three really. Snyder says maybe two, but that&#8217;s an absolute extreme. Pushing myself down to a session with just one person is incredibly hard, I expect.</p>
<p>None of these issues are issues with the testing method. It&#8217;s more a reflection on my constraints. All of them can be fixed with having more people, and one of them with marginally better skill at drawing sketched boxes. However, it is what it is, and I won&#8217;t be able to use Paper Prototyping.</p>
<p>I&#8217;m glad I learnt about it though, and will definitely be trying to use this again in the future when I&#8217;m in a team at work.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shamess.info/2011/11/14/my-project-is-unsuitable-for-paper-prototyping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MP3s and Grouping By Album</title>
		<link>http://blog.shamess.info/2011/11/07/mp3s-and-grouping-by-album/</link>
		<comments>http://blog.shamess.info/2011/11/07/mp3s-and-grouping-by-album/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 15:49:17 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[sound tiger]]></category>

		<guid isPermaLink="false">http://blog.shamess.info/?p=1148</guid>
		<description><![CDATA[It&#8217;s a little more annoying than I&#8217;d like to be able to group by an album. The need to group a set of songs by album is obvious when you&#8217;re trying to create a page which lists unique albums, and &#8230; <a href="http://blog.shamess.info/2011/11/07/mp3s-and-grouping-by-album/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a little more annoying than I&#8217;d like to be able to group by an album.</p>
<p>The need to group a set of songs by album is obvious when you&#8217;re trying to create a page which lists unique albums, and lets the user click through to view the tracks in the album.</p>
<p>When a user gives a set of MP3 files, all the data I have about the files is in the ID3 tags, and looks a little like this:</p>
<pre>    array
      'title' =&gt;
        array
          0 =&gt; string 'I Feel Fantastic' (length=16)
      'artist' =&gt;
        array
          0 =&gt; string 'Jonathan Coulton' (length=16)
      'composer' =&gt;
        array
          0 =&gt; string 'Jonathan Coulton' (length=16)
      'album' =&gt;
        array
          0 =&gt; string 'Our Bodies, Ourselves, Our Cybernetic Arms' (length=42)
      'year' =&gt;
        array
          0 =&gt; string '2005' (length=4)
      'encoded_by' =&gt;
        array
          0 =&gt; string 'iTunes v4.9' (length=11)
      'comments' =&gt;
        array
          0 =&gt; string '00001630 00000344 0000E27C 000031E5[...]
          1 =&gt; string 'From the soundtrack for the Future [...]
      'track_number' =&gt;
        array
          0 =&gt; string '2/5' (length=3)</pre>
<p>(That&#8217;s the data from Jonathan Coulton&#8217;s <a href="http://www.jonathancoulton.com/wiki/I_Feel_Fantastic"><em>I Feel Fantastic</em></a>, which you can download for free under a CC license.)</p>
<p>The similar data between tracks for each album are: <em>encoded_by</em> (not helpful, different tracks may have been obtained in different ways), <em>comments</em> (not helpful, same reason as <em>encoded_by</em>), <em>year</em> (potential candidate), <em>album title</em> (very helpful), <em>artist</em> (somewhat helpful).</p>
<p>None of that data is actually helpful to find a unique album since all the data may be used by <em>another completely different album</em>.</p>
<p>For instance, the album name alone doesn&#8217;t help; there are many albums called <a href="http://en.wikipedia.org/wiki/Resurrection_%28disambiguation%29">Resurrection</a>. And even the artist name doesn&#8217;t guarantee a unique album; Westlife have two self titled albums, and two &#8216;Greatest Hits&#8217; albums. Both of these cases can be solved by including the year though (though, this is assuming that the year is the same across the entire album).</p>
<p>It gets more complicated when you think of compilation albums; same album name, but many different artists.</p>
<p>For this iteration I&#8217;m going to focus on grouping albums by artist name, band name, and year on the track. Compilation albums won&#8217;t be supported in this three month development release, but instead they&#8217;ll show as a different album for each artist on the compilation.</p>
<p>I think that&#8217;s a good fall back because you can still listen to the music, and saves me a lot of time coding in work arounds for compilations and exceptions (which will have to be done in the second three months of development).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shamess.info/2011/11/07/mp3s-and-grouping-by-album/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A bit of organisation: bug tracking</title>
		<link>http://blog.shamess.info/2011/11/07/a-bit-of-organisation-bug-tracking/</link>
		<comments>http://blog.shamess.info/2011/11/07/a-bit-of-organisation-bug-tracking/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 15:19:25 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[bug tracking]]></category>
		<category><![CDATA[sound tiger]]></category>
		<category><![CDATA[unfuddled]]></category>

		<guid isPermaLink="false">http://blog.shamess.info/?p=1145</guid>
		<description><![CDATA[I&#8217;m not really at the part of my project which requires bug tracking just yet, since I&#8217;m just starting but I still have a use for it. When I start a new class, like the Import one I&#8217;ve just been &#8230; <a href="http://blog.shamess.info/2011/11/07/a-bit-of-organisation-bug-tracking/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not really at the part of my project which requires bug tracking just yet, since I&#8217;m just starting but I still have a use for it.</p>
<p>When I start a new class, like the Import one I&#8217;ve just been working on, I like to write out the methods with their parameters I&#8217;m expecting. This was easy this time, since I had class diagrams to follow, but usually this helps me notice logical inconsistencies in the way I think it should work. Then I quickly run through and fill out the methods with their general purpose.</p>
<p>At that point, I usually notice small bugs, or since I just want to have something to ship, edge cases which aren&#8217;t handled well. Typically I&#8217;ll add a double-hash-comment, like <code>## This will fail if we've not been given an absolute path.</code> And then later, once I&#8217;ve done the main focus of the class I&#8217;ll do a directory wide search for ## and fix those issues.</p>
<p>I realised that&#8217;s a fair bit informal, and can lead to unexpected results if anyone but me uses the software. It&#8217;s easy to miss these comments if a search doesn&#8217;t pick up on them, or I forget to look out for them. They&#8217;re very much &#8220;out of site out of mind&#8221; issues.</p>
<p>That&#8217;s why I wanted a super lightweight bug tracker (though, my purpose is more of an issue tracker I suppose). I wanted to use FogBugz, but they don&#8217;t have a free version. Trac and Bugzilla are both too overkill, especially for a one man team.</p>
<p>Stackoverflow pointed me towards <a href="http://http://unfuddle.com/">Unfuddle </a>though.</p>
<div id="attachment_1146" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.shamess.info/wp-content/uploads/2011/11/unfuddle-soundtiger.png"><img class="size-medium wp-image-1146" title="Unfuddled Dashboard" src="http://blog.shamess.info/wp-content/uploads/2011/11/unfuddle-soundtiger-300x193.png" alt="" width="300" height="193" /></a><p class="wp-caption-text">Unfuddled dashboard for Sound Tiger</p></div>
<p>It&#8217;s much lighter than the alternatives, or at least the UI makes it feel less intimidating. Most importantly they have a free package for people with small teams, like me.</p>
<p>Also, which was a nice addition, they let me upload my git repo. That&#8217;s another place I can consider my software backed up.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shamess.info/2011/11/07/a-bit-of-organisation-bug-tracking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick aside on Paper Prototyping</title>
		<link>http://blog.shamess.info/2011/11/03/quick-aside-on-paper-prototyping/</link>
		<comments>http://blog.shamess.info/2011/11/03/quick-aside-on-paper-prototyping/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 18:43:00 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[paper prototyping]]></category>
		<category><![CDATA[sound tiger]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[user interface]]></category>

		<guid isPermaLink="false">http://blog.shamess.info/?p=1143</guid>
		<description><![CDATA[Ironically, you can&#8217;t actually use thin paper. The bits are too fiddly. Fortunately I have card stock in my crafts box, so I&#8217;m going to try using that.]]></description>
			<content:encoded><![CDATA[<p>Ironically, you can&#8217;t actually use thin paper. The bits are too fiddly. Fortunately I have card stock in my crafts box, so I&#8217;m going to try using that.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shamess.info/2011/11/03/quick-aside-on-paper-prototyping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

