<?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>Wed, 18 Jan 2012 10:28:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<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>
		<item>
		<title>Indenting HTML: WHY!?</title>
		<link>http://blog.shamess.info/2011/11/02/indenting-html-why/</link>
		<comments>http://blog.shamess.info/2011/11/02/indenting-html-why/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 08:28:02 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://blog.shamess.info/?p=1140</guid>
		<description><![CDATA[The problem with creating pretty HTML that&#8217;s indented nicely is that it&#8217;s a language that can&#8217;t really be indented! It sometimes have an affect on the actual look of the page. For instance with a &#60;pre&#62; tag, trying to indent &#8230; <a href="http://blog.shamess.info/2011/11/02/indenting-html-why/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The problem with creating pretty HTML that&#8217;s indented nicely is that it&#8217;s a language that can&#8217;t really be indented! It sometimes have an affect on the actual look of the page.</p>
<p>For instance with a &lt;pre&gt; tag, trying to indent that nicely with the rest of your page will make the output shifted massively to the right. The only way to fix it is to have the pre tag the only piece of the source that isn&#8217;t indented, which looks uglier than having no indentation at all.</p>
<p>Which inefficient weirdos are debugging by looking at their source and not using Firebug anyway? In your editor you should have &#8220;highlight matching tags&#8221; turned on. It adds completely useless characters to the page, which are literally invisible. You&#8217;re paying for those bytes, and the user is being made to wait fractions of seconds (which Google ranks you on) longer.</p>
<p>Just stop doing it!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shamess.info/2011/11/02/indenting-html-why/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Playing MP3 Files In Every Browser</title>
		<link>http://blog.shamess.info/2011/10/31/playing-mp3-files-in-every-browser/</link>
		<comments>http://blog.shamess.info/2011/10/31/playing-mp3-files-in-every-browser/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 19:24:04 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[jplayer]]></category>
		<category><![CDATA[jsmad]]></category>
		<category><![CDATA[sound tiger]]></category>

		<guid isPermaLink="false">http://blog.shamess.info/?p=1138</guid>
		<description><![CDATA[I&#8217;ve been looking into various ways of being able to playing MP3 files within the browser, trying to avoid using Flash. Spoiler alert: You can&#8217;t do it just yet. I&#8217;ve ended up using another player called jPlayer. (Demo on my &#8230; <a href="http://blog.shamess.info/2011/10/31/playing-mp3-files-in-every-browser/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking into various ways of being able to playing MP3 files within the browser, trying to avoid using Flash. Spoiler alert: <strong>You can&#8217;t do it just yet.</strong></p>
<p>I&#8217;ve ended up using another player called <a href="http://jplayer.org/">jPlayer</a>. (<a href="http://shamess.info/soundtiger/course_docs/proto/streaming/">Demo on my prototype page.</a>) It&#8217;s a jQuery library which uses HTML5 where ever possible but is able to fall back to Flash if it&#8217;s needed, like in Firefox.</p>
<p>The Flash player is invisible when you end up using it, and you control it entirely through the Javascript, which means your UI can be however you want it to look.</p>
<p>I was raving about jsMad, but it doesn&#8217;t look like it&#8217;s <a href="http://stackoverflow.com/questions/7877940/how-do-i-use-jsmad">up to the task just yet</a>. The people behind it are planning to spend more time on it in the future though, so that&#8217;s definitely exciting.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shamess.info/2011/10/31/playing-mp3-files-in-every-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Example of Ambiguous UI</title>
		<link>http://blog.shamess.info/2011/10/28/an-example-of-ambiguous-ui/</link>
		<comments>http://blog.shamess.info/2011/10/28/an-example-of-ambiguous-ui/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 14:53:41 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[user interface]]></category>

		<guid isPermaLink="false">http://blog.shamess.info/?p=1130</guid>
		<description><![CDATA[I had to install Opera to test something out, so this is the first time I&#8217;ve actually ever used it. I&#8217;m testing the &#60;audio&#62; element, and for some reason I just assumed that this slider was an audio slider. I &#8230; <a href="http://blog.shamess.info/2011/10/28/an-example-of-ambiguous-ui/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_1132" class="wp-caption alignright" style="width: 310px"><a href="http://blog.shamess.info/wp-content/uploads/2011/10/opera-zoom-bar.png"><img class="size-medium wp-image-1132 " title="Bad UI: Opera Zoom Bar" src="http://blog.shamess.info/wp-content/uploads/2011/10/opera-zoom-bar-300x61.png" alt="" width="300" height="61" /></a><p class="wp-caption-text">Bad UI: What the hell is this?</p></div>
<p>I had to install Opera to test something out, so this is the first time I&#8217;ve actually ever used it.</p>
<p>I&#8217;m testing the &lt;audio&gt; element, and for some reason I just assumed that this slider was an audio slider. I thought &#8220;oh, that&#8217;s quite smart actually&#8221; (there may be audio playing somewhere on the page, but you&#8217;ve no idea where, so just use this global or tab-wide one), but no it&#8217;s actually a zoom slider.</p>
<p>Who on earth uses zoom so much that it needs to have its own unlabeled part of the UI?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.shamess.info/2011/10/28/an-example-of-ambiguous-ui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

