<?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>Danny-T.co.uk &#187; Best Practices</title>
	<atom:link href="http://danny-t.co.uk/index.php/category/best-practices/feed/" rel="self" type="application/rss+xml" />
	<link>http://danny-t.co.uk</link>
	<description>Web apps fanatic, ramblings on dev for web, mobile and other geeky stuff</description>
	<lastBuildDate>Sat, 04 Feb 2012 09:59:04 +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>2011 &gt; 2012 what was and will be&#8230;</title>
		<link>http://danny-t.co.uk/index.php/2012/01/02/2011-2012-what-was-and-will-be/</link>
		<comments>http://danny-t.co.uk/index.php/2012/01/02/2011-2012-what-was-and-will-be/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 15:22:29 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[This Blog]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=518</guid>
		<description><![CDATA[Well the festive season is over and after a much needed break I&#8217;m winding up ready to get back to work and tackle 2012. This is my attempt to reflect and summarise 2011 and some thoughts on looking towards 2012 and what it may entail. 2011 New company website At the beginning of 2011 we [...]]]></description>
			<content:encoded><![CDATA[<p>Well the festive season is over and after a much needed break I&#8217;m winding up ready to get back to work and tackle 2012. This is my attempt to reflect and summarise 2011 and some thoughts on looking towards 2012 and what it may entail.</p>
<h3>2011</h3>
<h4>New company website</h4>
<p>At the beginning of 2011 we finally launched a new <a href="http://moov2.com" title="moov2 software developers">website for Moov2</a>, accompanying it was a <a href="http://moov2.com/blog" title="software development blog">blog on business software</a> for sharing some more company related thoughts. To be honest, from the outset things were a little slow on our part for keeping it up to date. This was down to the usual poor excuse of being <em>too busy</em>. However in recent weeks we&#8217;ve made a real effort to add regular new content and I&#8217;m fairly happy with where its going. We&#8217;ve also been putting a bit of time and effort into Google Adwords, SEO and Analytics. The purist in me really dislikes those terms but they are paying dividend and there are genuine approaches to these things without resorting to underhand tactics and falsified pointless copy.</p>
<h4>Silverlight</h4>
<p>In February, I <a href="http://danny-t.co.uk/index.php/2011/02/12/learning-silverlight/" title="learning silverlight">dived into Silverlight</a> and I was very impressed with the platform. Unfortunately I don&#8217;t think Silverlight took off as much as it could have and the outlook for it in its original guise is now somewhat limited. However Windows Phone 7 does leverage Silverlight and the development approach for the upcoming Windows 8 <em>Metro apps</em>, while not Silverlight, is looking to be very similiar to it (I.e. c# and xaml). So I&#8217;m still pleased to have familiarised myself with it.</p>
<h4>Blog</h4>
<p>In November I declared that I was going to increase how much I&#8217;m blogging here. It&#8217;s only been a few weeks but so far I&#8217;ve upped the amount of blog posts I&#8217;ve been writing (although not really frequency or consistency). It&#8217;s hard to pinpoint the benefit of doing this but it definitely feels better to be documenting my thoughts more. Another benefit of doing so helps me better get in the mode for writing which helps with content on the Moov2 site too.</p>
<h4>Upset in Flash world</h4>
<p>Adobe made a few PR blunders with some mixed messages about the future of Flash, Flex and AIR. This did cause me some minor annoyance purely by having to first decipher these messages and then explain them to some of our clients (<a href="http://moov2.com/blog/2011/12/html5-and-flash-our-thoughts/" title="Future of Flash">summarised here</a>). However it doesn&#8217;t cause me any great concern. I think the Flash platform still has a strong future in gaming, cross platform mobile and brownfield projects. That said, I am fully on board with HTML5 and standards based development and can definitely see this as a unified development approach. So whilst the announcements from Adobe (and similar from Microsoft) may not have been handled as well as we&#8217;d like I do think they&#8217;re doing the right things by putting their focus into HTML5.</p>
<h4>Personal</h4>
<p>Outside of work and geeky interests I started a <a href="http://dannyt.posterous.com/" title="dannyt mountain biking">blog on mountain biking</a> which has been my main non-tech interest and healthy activity in 2011. I&#8217;ve not put too much effort into the blog but Mountain biking is definitely still holding my interest and has had a definite positive effect on my waistline. I&#8217;ve done some amazing rides and made some great new friends as a result.</p>
<p>At the very end of 2010 Andrea and I moved into a new house on the edge of the New Forest in Hampshire. After a tough few months trying to sort out a mortgage we were very grateful to finally move in. The novelty has still not worn off, I love living so close to the forest for biking and the general lifestyle of the area is great. </p>
<h3>2012</h3>
<h4>Championing a new approach</h4>
<p>I&#8217;ve been running a software development company since 2003, it&#8217;s often still terrifying and I know I still have a lot to learn. However, I have learned a thing or two along the way. One of those is that no matter how meticulously planned a software project is change is inevitable. This was always traditionally referred to as scope creep but that puts the onus on the client to not deviate from the original plan. Fact is, change comes about not because clients just change their mind but because the change presents itself as the obvious thing to do. I will post more on this in the future but going forwards our approach will be to be open to and expect change. This will be managed by tackling the obvious problems and opportunities first and reviewing at regular intervals (or even constantly). Each project will be broken down into multiple smaller projects and we will have the agility to change direction at any point without loss of investment for our clients and wasted time for ourselves.</p>
<h4>Systemisation</h4>
<p>Another benefit of having been running a software development agency for nearing a decade is that we have encountered and solved many problems. We&#8217;ve identified processes and procedures for dealing with them and have been constantly looking for new more efficient means of doing so. However, this hasn&#8217;t always been particularly controlled, more of an ethos than standardised practice. I&#8217;ve recently read a great book, <a href="http://www.e-myth.com/pub/htdocs/emr_ch1" title="E-myth revisited book">The E-Myth Revisited</a> in which the author describes the process of creating a system (a defined, documented approach for exactly how to tackle something) for each and every process within your business. Whilst at first this seemed like a ridiculous undertaking the more I thought about it the more I&#8217;ve entertained the idea. There are so many aspects of running a software business that could be easily summarised into a documented procedure which could then effectively be undertaken by anyone (within reason), reviewed and improved upon over time. This essentially creates a path for improvement and also reduces friction when delegating and sharing tasks. </p>
<p>In 2012 I intend to systemise as much of what I do as possible with the intention of being able to easily alleviate tasks that are currently tied to myself or whomever currently undertakes them. This will also set a starting point for improvement from which slicker and more efficient processes will hopefully evolve. </p>
<h4>Continue to play</h4>
<p>Finally both in work and in my own time I will be encouraging &#8216;play&#8217;. It&#8217;s become somewhat of a skill at Moov2 now to be able to investigate and review new technologies as they come about and where appropriate integrate them seamlessly with our workflow. This has many obvious commercial benefits but also is a lot of fun. Going forwards I hope that we&#8217;ll be able to share some of our thoughts and findings with the wider development community in the form of blog posts and open source projects.</p>
<p>So that&#8217;s my wrap up of last year and some objectives for this coming year. To anyone who has read all of this (and I don&#8217;t expect that to be many, I&#8217;m writing this more for my own benefit really), I wish you a very happy and successful 2012!</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2012/01/02/2011-2012-what-was-and-will-be/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8216;Client Centric Software Development&#8217;</title>
		<link>http://danny-t.co.uk/index.php/2011/12/02/client-centric-software-development/</link>
		<comments>http://danny-t.co.uk/index.php/2011/12/02/client-centric-software-development/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 00:59:12 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Business]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/index.php/2011/12/02/client-centric-software-development/</guid>
		<description><![CDATA[Paul Boag is: … on a mission to convince the web design community that working with clients can be enjoyable, constructive and creates outstanding websites. One of his key messages is that the traditional approach for building a website is essentially “big bang” development. Every few years a website is overhauled and redeployed to great [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://boagworld.com/tumblog/download-chapter-1-of-client-centric-web-design-for-free/">Paul Boag</a> is:</p>
<blockquote><p>… on a mission to convince the web design community that working with clients can be enjoyable, constructive and creates outstanding websites.</p>
</blockquote>
<p>One of his key messages is that the traditional approach for building a website is essentially “big bang” development. Every few years a website is overhauled and redeployed to great fanfare and significant expense only to immediately begin slowly rotting and be forgotten about until the cycle begins again some years later.</p>
<p>Now this is all remarkably familiar to software development and typical complaints with <a href="http://en.wikipedia.org/wiki/Waterfall_model">waterfall</a> development methodologies. A familiarity by the way, which is particularly understandable considering the line between “website development” and “software development” is now well and truly blurred (more on this in a future post).</p>
<p>Perhaps we should be doing away with major version numbers. There should be no MassiveProjectX to be delivered by DeadlineY. Throw that door-stop of a requirements catalogue out of the window and spend some time actually empathising with the businesses we’re trying to help. We should be building open and on-going partnerships with our clients focusing on providing smaller, more frequent deliveries which are solving the most obvious and important problems first. </p>
<p>Agile approaches (inspired by the <a href="http://agilemanifesto.org/principles.html">agile manifesto</a>) have been widely adopted by many developers to help with many of these issues which is great, but it is still a largely developer adopted practice. More-so than involving business people as per the original manifesto principles. More effort needs to be made in getting on board with our clients and working together to enable the best solutions which work out better for both parties. </p>
<p>Paul’s mission is set for full steam ahead in 2012 and I intend to follow a similar path focusing on more effective client relationships. I highly recommend reading the first chapter of Paul’s upcoming book <a href="http://boagworld.com/season/3/">Client Centric Web Design</a> which is available for free. I’ve found it a real eye opener and will be posting more thoughts along these lines soon both here and from a more professional capacity on our <a href="http://moov2.com/blog/">company blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2011/12/02/client-centric-software-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stop competing on features</title>
		<link>http://danny-t.co.uk/index.php/2011/11/24/stop-competing-on-features/</link>
		<comments>http://danny-t.co.uk/index.php/2011/11/24/stop-competing-on-features/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 01:04:58 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=465</guid>
		<description><![CDATA[Competing on features is the road to feature bloat, poor usability and increased frustration for users, developers and project stakeholders. I&#8217;ve been taking an increased interest in the &#8220;tech startup&#8221; trend that has been occurring over the past few years and this concept is especially pertinent for anyone trying to make a success of a [...]]]></description>
			<content:encoded><![CDATA[<p>Competing on features is the road to feature bloat, poor usability and increased frustration for users, developers and project stakeholders.</p>
<p>I&#8217;ve been taking an increased interest in the &#8220;tech startup&#8221; trend that has been occurring over the past few years and this concept is especially pertinent for anyone trying to make a success of a startup. If your startup is going to take on Goliath corp. then feature parity should absolutely not be the goal.</p>
<p>I&#8217;d even argue that if it&#8217;s possible to compete on a single key feature and ignore everything else (which is likely to be falling somewhere within <a href="http://en.wikipedia.org/wiki/Pareto_principle#In_software">Pareto&#8217;s principle</a>) then you&#8217;re very likely to be able to offer a far simpler, far superior product. </p>
<p>Of course there is a lot of context dependence on such a statement but certainly for a startups consideration then it&#8217;s much easier to compete on a single feature than many. I&#8217;ve written similar thoughts on the <a href="http://moov2.com/blog/2011/02/removing-choice/">Moov2 on Business Software blog</a> in the past but it&#8217;s recently returned to my attention.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2011/11/24/stop-competing-on-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Flex/best practices blog</title>
		<link>http://danny-t.co.uk/index.php/2011/04/25/new-flexbest-practices-blog/</link>
		<comments>http://danny-t.co.uk/index.php/2011/04/25/new-flexbest-practices-blog/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 19:11:13 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=416</guid>
		<description><![CDATA[Moov2 aficionado Peter Keating has finally started blogging, so far posts have been a very thorough introduction to unit testing, test-driven development and project best practices for Flex. Definitely worth a look so check it out over at peterkeating.co.uk.]]></description>
			<content:encoded><![CDATA[<p><a href="http://moov2.com">Moov2 </a>aficionado Peter Keating has finally started blogging, so far posts have been a very thorough introduction to unit testing, test-driven development and project best practices for Flex. Definitely worth a look so check it out over at <a href="http://peterkeating.co.uk">peterkeating.co.uk</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2011/04/25/new-flexbest-practices-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Come work with me!</title>
		<link>http://danny-t.co.uk/index.php/2011/02/16/come-work-with-me/</link>
		<comments>http://danny-t.co.uk/index.php/2011/02/16/come-work-with-me/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 12:44:16 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=406</guid>
		<description><![CDATA[At Moov2 we have a lot of really exciting projects on the go and in the pipeline. We&#8217;re expanding our skill-sets and opening up more and more new opportunities. Coupled with one of our developers taking sabbatical we have a couple of new positions available and are looking for some hyper-enthusiastic devs to join our [...]]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://moov2.com">Moov2</a> we have a lot of really exciting projects on the go and in the pipeline. We&#8217;re expanding our skill-sets and opening up more and more new opportunities. Coupled with one of our developers taking sabbatical we have a <a href="http://moov2.com/blog/2011/02/come-join-us/">couple of new positions available</a> and are looking for some hyper-enthusiastic devs to join our team.</p>
<p>We love playing with new technology and strive to stay on top of the latest and greatest. We also regularly attend industry events and user groups such as <a href="http://www.flashonthebeach.com/">FOTB</a>, <a href="http://www.droidcon.co.uk/">Droidcon</a>, <a href="http://www.360flex.com/">360Flex</a>, <a href="www.developerdeveloperdeveloper.com">DDD</a>, <a href="http://www.nxtgenug.net/">NxtGen</a> and <a href="http://www.lfpug.com/">LFPUG</a> and always looking for the next great event. </p>
<p>You&#8217;ll get to work with the likes of <a href="http://twitter.com/#!/dannyt">me</a>, <a href="http://twitter.com/#!/andreablack">@andreablack</a>, <a href="http://twitter.com/#!/peterkeating">@peterkeating</a> and <a href="http://twitter.com/#!/colinl">@colinl</a> along with occasional input from great talents such as <a href="http://twitter.com/#!/nwebb">@nwebb</a>, <a href="http://twitter.com/#!/getrichhull">@getrichhull</a>, <a href="http://twitter.com/#!/amw7">@amw7</a> and others to help us build world class RIAs. </p>
<p>We get all sorts of interesting projects ranging from sales tools for one of the worlds largest toy manufacturers to <a href="http://www.abrsm.org/students/speedshifter">really cool audio slow-downers</a> to help people learn to play music. We like to consider ourselves &#8216;platform agnostic&#8217; which means we don&#8217;t get caught up in the &#8220;my tech is better than your tech&#8221; arguments. We focus on learning as much as possible and using the best tool for the job. This is great fun for us, we don&#8217;t get stuck using the same old technology and means our clients get a better result from experienced and unbiased opinion.</p>
<p>If you&#8217;re a developer with good OOP experience, familiarity with Flex and/or .Net and a genuine passion for building amazing user experiences and writing great code why not <a href="http://moov2.com/blog/2011/02/come-join-us/">check out our openings and drop us your CV/portfolio</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2011/02/16/come-work-with-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You&#8217;re doing handlers wrong</title>
		<link>http://danny-t.co.uk/index.php/2010/12/06/youre-doing-handlers-wrong/</link>
		<comments>http://danny-t.co.uk/index.php/2010/12/06/youre-doing-handlers-wrong/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 11:36:25 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=294</guid>
		<description><![CDATA[Okay so it&#8217;s a link bait, sensationalist title, but that fact I&#8217;ve recognised that fact makes it okay yeah? Anyway like I said you&#8217;re doing handlers wrong&#8230; or rather, to stop with the hype-generating, FUD-like statements; If you&#8217;re waiting for RPC/Async handlers to return in order to update your application&#8217;s interface then allow me to [...]]]></description>
			<content:encoded><![CDATA[<p>Okay so it&#8217;s a link bait, sensationalist title, but that fact I&#8217;ve recognised that fact makes it okay yeah? Anyway like I said you&#8217;re doing handlers wrong&#8230; or rather, to stop with the hype-generating, FUD-like statements; If you&#8217;re waiting for RPC/Async handlers to return in order to update your application&#8217;s interface then allow me to propose a new approach:</p>
<blockquote><p>Always assume the call you&#8217;re making will work.</p></blockquote>
<p>Some context for the above, I recently got sick of my iPhone and decided to give Android a spin, side-stepping the obvious discussion here, one of the things that has irked me about the Android experience is that it just doesn&#8217;t feel as responsive as the iPhone for certain applications, specifically email. So I started to compare the two and realised that the iPhone reacts to my interactions immediately whereas Android seems to wait for approval from the server. This eye-opening discovery led to me imposing a new standard here at <a href="http://moov2.com">Moov2</a>:</p>
<blockquote><p>Every user interaction must have an immediate and obvious reaction.</p></blockquote>
<p>Proud and smug feelings of wearing my user experience hat were soon interupted when challenged to explain wtf I actually meant by this. So, for example, deleting an email from a list of viewed email messages. When I hit delete I expect that message to be removed from the list and if that happens as soon as I press the delete button, I&#8217;m a happy chap. Conversely, if I have to wait, even a couple of seconds, I may think I missed and try hitting it again&#8230; and again&#8230; etc. So developers, quite simply, as soon as that delete button is hit, remove the message from the list and THEN send your call informing the server to do it&#8217;s part. This approach can be applied to pretty much any application development that involves a rich user interface, Flash, Flex, Silverlight, AJAX, Android, iPhone, native desktop apps and whatever.</p>
<h3>But what if something goes wrong?</h3>
<p>Of course, just throwing the message away willy-nilly is reckless, there&#8217;s a whole host of things that could prevent that message from being deleted. The user might be offline, the email list might not be up to date or there may just be some other bug elsewhere making the delete email process just plain not possible at the moment. In this case, sheepishly, politely and unobtrusively, let your user know the fact and pop the email back where it came from. This will obviously be a nuissance to the user, but how often does this really happen in comparisson to how often it works? Very rarely, and it&#8217;s no less annoying for the user than having to sit there waiting with no response only to find out the action failed.</p>
<h3>What if I NEED the response in order to update the UI?</h3>
<p>So deleting is a fairly convenient example because we&#8217;re taking away from an already viewable interface, what about if we&#8217;re adding to our interface based on the response from our call? For example displaying the list of emails in the first place. Well, for this I suggest you present all of the interface elements that you know are going to be available and just provide some indication that something else is going on to reassure the user that their input has been acknowledged. So when the user chooses to view their inbox, immediately react and change the view, present them the &#8216;Inbox&#8217; title, show them any user controls they might be able to interact with and display the space those messages are going to load into with some form of preloader/spinner and note indicating their messages are being retrieved.</p>
<p>So take a minute and review your result handlers to see how much UI stuff is being done there. Could it be moved to before the call was made? This sometimes means you need to think about how to best back-track when things go wrong but for the 95% of the time when you just get the result you&#8217;d expect you&#8217;ll deliver a MUCH more responsive feeling interface that your users will thank you for.</p>
<p>By the way, if you&#8217;d like to actually see some code demonstrating this concept tweet the following message to Pete who has prepared a very clean implementation of this for a Flex application we&#8217;re currently working on: &#8220;<a href="http://twitter.com/?status=Hey @peterkeating, codez pls http://bit.ly/f8HOyp">Hey @peterkeating, codez pls http://bit.ly/f8HOyp</a>. I&#8217;m sure he&#8217;ll oblige with a sample soon enough.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2010/12/06/youre-doing-handlers-wrong/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WTF is going on? &#8211; User feedback when loading data</title>
		<link>http://danny-t.co.uk/index.php/2010/10/04/wtf-is-going-on-user-feedback-when-loading-data/</link>
		<comments>http://danny-t.co.uk/index.php/2010/10/04/wtf-is-going-on-user-feedback-when-loading-data/#comments</comments>
		<pubDate>Mon, 04 Oct 2010 20:14:07 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=236</guid>
		<description><![CDATA[RIAs are an amazing platform upon which to deliver data to users. Data for reading, editing, deleting, organising, digesting and processing. We have the opportunity to present data in a vast array of new, exiting and visually appealing ways, offering faster and more fun methods of interacting with it. However, getting this data can be [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://danny-t.co.uk/wp-content/uploads/Untitled-11.png"><img src="http://danny-t.co.uk/wp-content/uploads/Untitled-11.png" alt="hourglass" title="Hourglass" width="200" height="166" class="alignright size-full wp-image-253" /></a>RIAs are an amazing platform upon which to deliver data to users. Data for reading, editing, deleting, organising, digesting and processing. We have the opportunity to present data in a vast array of new, exiting and visually appealing ways, offering faster and more fun methods of interacting with it. However, getting this data can be difficult, cumbersome and have a real impact on the users experience. Often we&#8217;re unable to control the technicalities of how we get data grabbing it from remote services, public APIs, XML or wherever. What we can control however, is how we keep our users informed about the data they&#8217;re getting and do our best not to let this get in the way of them achieving their goals quickly.</p>
<p>Below are some key questions you should be asking about your data retrieval process with regards to user interaction:</p>
<blockquote><p>Do I need to stop the user interacting?</p></blockquote>
<p>Should the user be able to continue working whilst the application retrieves this data? For example, loading your latest company news via an RSS feed into your applications home screen should <strong>not</strong> prevent them from doing anything they are actually there to do. However, if a user has just selected an entry from a list they wish to make ammendments to its understandable they might not be able to do so until that entity has been fully saturated into the application.</p>
<blockquote><p>Does the user need to know what is going on?</p></blockquote>
<p>Is visual feedback required for the user to continue productively using the application? Typically if the data being loaded is as a result of an interaction instigated by the user then probably. If however you&#8217;re doing some form of background data loading then it may be sufficient to surpess any distracting feedback unless the user interacts with that part of the application. For example, if a search facility needs to build an index and the user doesn&#8217;t try to search, they don&#8217;t need to know about it. As soon as they try to use the search facility a user-friendly message to indicate the search is being prepared only then becomes relevant. <em>Note:</em> &#8220;Search index compilation in progress&#8221; is most probably NOT a user-friendly message, pick a tone and language most appropriate to the intended audience.</p>
<blockquote><p>Should the user be able to cancel?</p></blockquote>
<p>Unfortunately, some operations have to take a long time. Obviously any efforts made to reduce the time of intensive processes are well placed but, if after you&#8217;ve squeezed every possible millisecond of performance out of a hefty process it still takes a long time then the least you can do is offer the user a means of cancelling that process. </p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2010/10/04/wtf-is-going-on-user-feedback-when-loading-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subclipse missing files / folders</title>
		<link>http://danny-t.co.uk/index.php/2010/02/02/subclipse-missing-files-folders/</link>
		<comments>http://danny-t.co.uk/index.php/2010/02/02/subclipse-missing-files-folders/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 23:37:38 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=163</guid>
		<description><![CDATA[So I was trying to get the latest files for a Flex project recently and I had an error about a missing stylesheet. I of course took the standard approach to fixing this and promptly bitched at the foolish developer who neglected to commit the crucial element&#8230; Alas turns out I was the fool and [...]]]></description>
			<content:encoded><![CDATA[<p>So I was trying to get the latest files for a Flex project recently and I had an error about a missing stylesheet. I of course took the standard approach to fixing this and promptly bitched at the <a href="http://twitter.com/peterkeating">foolish developer</a> who neglected to commit the crucial element&#8230; Alas turns out <strong><em>I</em></strong> was the fool and upon doing what I should have done in the first place and checking the logs and repository turns out the file was actually committed already. </p>
<p>So I check the file system, no dice. Do another update, nope. Try synchronizing with repository, nada. Try about 10 more updates on the off chance it will magically work one time, amazingly it doesn&#8217;t. WTF!?</p>
<p>Anyway turns out the solution is to do the following:</p>
<p>Right click project select &#8220;Update to version&#8221;</p>
<p><img src="http://danny-t.co.uk/wp-content/uploads/update-to-version.png" alt="" title="update to version" width="604" height="140" class="aligncenter size-full wp-image-164" /></p>
<p>Choose HEAD, change Depth to &#8220;Fully recursive&#8221; and tick &#8220;Change working copy to specified depth&#8221;</p>
<p><img src="http://danny-t.co.uk/wp-content/uploads/update-to-version2.png" alt="" title="update to version2" width="528" height="416" class="aligncenter size-full wp-image-165" /></p>
<p>Et voila, all files and folders get gotten again, no idea what causes this hiccup but this is much nicer than previous resolution of deleting entire project and checking out again <img src='http://danny-t.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2010/02/02/subclipse-missing-files-folders/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Inversion of Control Containers Links</title>
		<link>http://danny-t.co.uk/index.php/2008/06/17/inversion-of-control-containers-links/</link>
		<comments>http://danny-t.co.uk/index.php/2008/06/17/inversion-of-control-containers-links/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 22:49:10 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/?p=120</guid>
		<description><![CDATA[I&#8217;m slowly getting my head around IoC containers and want to note a few useful links for future reference. As things tend to go in my geeky exploits I read about and learn these ideas from the .net world, who often have picked things up from the Java world, I then try to find out [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m slowly getting my head around IoC containers and want to note a few useful links for future reference. As things tend to go in my geeky exploits I read about and learn these ideas from the .net world, who often have picked things up from the Java world, I then try to find out who&#8217;s doing similar stuff in the Flex world and am generally not disappointed, which is very cool. So these links below are a mashup of various technologies but should be useful to anyone who has been hearing about<br />
IoC and wants to learn more regardless of language/platform.</p>
<p><a href="http://www.martinfowler.com/articles/injection.html">The &#8216;Textbook definition&#8217; by Martin Fowler</a><br />
<a href="http://msdn.microsoft.com/en-us/library/aa973811.aspx">Very useful explanation with some basic sample code (.net)</a> by <a href="http://ayende.com/">Ayende</a><br />
<a href="http://castleproject.org/container/gettingstarted/index.html">Castle Windsor step by step basic intro (.net)</a><br />
<a href="http://www.pranaframework.org/">Prana &#8211; a Spring-ish IoC Container for AS3</a> by <a href="http://www.herrodius.com/blog/">Christophe Herreman</a> (via <a href="http://twitter.com/jesterxl/statuses/837278670">jesterxl</a>)</p>
<p>This stuff doesn&#8217;t come naturally to me to say the least so if anyone else has any links they want to share feel free to post them in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2008/06/17/inversion-of-control-containers-links/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flex Code Coverage Tool</title>
		<link>http://danny-t.co.uk/index.php/2008/04/13/flex-code-coverage-tool/</link>
		<comments>http://danny-t.co.uk/index.php/2008/04/13/flex-code-coverage-tool/#comments</comments>
		<pubDate>Sun, 13 Apr 2008 14:25:17 +0000</pubDate>
		<dc:creator>DannyT</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://danny-t.co.uk/index.php/2008/04/13/flex-code-coverage-tool/</guid>
		<description><![CDATA[I hope to find some time for a more thorough post on this but there is a new Code Coverage tool available for Flex]]></description>
			<content:encoded><![CDATA[<p>I hope to find some time for a more thorough post on this but there is a new Code Coverage tool available for<br />
Flex<, check out Flex Cover on Google Code:</p>
<p><a href="http://code.google.com/p/flexcover/">http://code.google.com/p/flexcover/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://danny-t.co.uk/index.php/2008/04/13/flex-code-coverage-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

