<?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>Jamie Dixon &#187; concepts</title>
	<atom:link href="http://www.jamie-dixon.co.uk/category/concepts/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jamie-dixon.co.uk</link>
	<description>Web Developer, Software Engineer and Mixed Language Artist</description>
	<lastBuildDate>Thu, 18 Aug 2011 09:31:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Global Resource strings by property</title>
		<link>http://www.jamie-dixon.co.uk/concepts/global-resource-strings-by-property/</link>
		<comments>http://www.jamie-dixon.co.uk/concepts/global-resource-strings-by-property/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 15:10:44 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[concepts]]></category>
		<category><![CDATA[App_GlobalResources]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[resources]]></category>

		<guid isPermaLink="false">http://www.jamie-dixon.co.uk/?p=208</guid>
		<description><![CDATA[Every now and then I come across a bunch of string literals littered through out some code and begin the task of moving them out into their own resource file (.resx).
Gaining access to these strings from C# is pretty easy however I&#8217;m yet to find anywhere explaining it the way I find simplest.
Assuming your resx [...]]]></description>
			<content:encoded><![CDATA[<p>Every now and then I come across a bunch of string literals littered through out some code and begin the task of moving them out into their own resource file (.resx).</p>
<p>Gaining access to these strings from C# is pretty easy however I&#8217;m yet to find anywhere explaining it the way I find simplest.</p>
<p>Assuming your resx file is stored in the App_GlobalResources folder, you can basically assign your resource file to a variable in your C# using the following syntax:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p208code3'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2083"><td class="code" id="p208code3"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">Res </span><span style="color: #008000;">=</span> Resources<span style="color: #008000;">.</span><span style="color: #0000FF;">MyResourceFile</span></pre></td></tr></table></div>

<p>This then gives you the ability to referene the contents of the resource file as properties in your code.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p208code4'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2084"><td class="code" id="p208code4"><pre class="csharp" style="font-family:monospace;"><span style="color: #6666cc; font-weight: bold;">string</span> x <span style="color: #008000;">=</span> Res<span style="color: #008000;">.</span><span style="color: #0000FF;">OneOfMyStringNames</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.jamie-dixon.co.uk/concepts/global-resource-strings-by-property/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Algorithmic Thinking</title>
		<link>http://www.jamie-dixon.co.uk/concepts/algorithmic-thinking/</link>
		<comments>http://www.jamie-dixon.co.uk/concepts/algorithmic-thinking/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 16:13:14 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[concepts]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[behaviour]]></category>
		<category><![CDATA[structure]]></category>
		<category><![CDATA[thinking]]></category>

		<guid isPermaLink="false">http://www.jamie-dixon.co.uk/?p=66</guid>
		<description><![CDATA[

al⋅go⋅rithm [al-guh-rith-uhm]
–noun
a set of rules for solving a problem in a finite number of steps, as for finding the greatest common divisor.
Dictionary.com Unabridged
Based on the Random House Dictionary, © Random House, Inc. 2009. 

One of the greatest things I&#8217;ve found about the work I do is that concepts from one field often tend to automatically [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-69 alignleft" title="Red plaid 1955 cookbook for kids" src="http://www.jamie-dixon.co.uk/wp-content/uploads/2009/04/recipe2.jpg" alt="Algorithmic Thinking" width="200" height="236" /></p>
<blockquote style="border:1px solid #999; width:367px; float:right;"><p>
<strong>al⋅go⋅rithm</strong> [al-guh-rith-uhm]</p>
<p><strong>–noun</strong><br />
a set of rules for solving a problem in a finite number of steps, as for finding the greatest common divisor.</p>
<p style="font-size:0.8em"><cite>Dictionary.com Unabridged<br />
Based on the Random House Dictionary, © Random House, Inc. 2009. </cite></p>
</blockquote>
<p>One of the greatest things I&#8217;ve found about the work I do is that concepts from one field often tend to automatically map over to work I do in other contexts. When I first learned about Object Orientated Programming, I started to see the world in terms of objects. I&#8217;d look at the TV and think &#8220;hmm, the TV has XY and Z properties and these methods exist for doing those things and if event q happens, method k gets fired&#8221;.</p>
<p>These things tend to mellow out after a short period of time but it&#8217;s hard to learn anything without it becoming part of what you do and how you operate. The more things you learn the more choices you have about what behaviours you exhibit and this leads me to the idea of Algorithmic Thinking.</p>
<p>As programmers, we all know about algorithms and their importance in software engineering but what about in the rest of the world. Since the idea of algorithms isn&#8217;t one from programming but one from mathematics, and mathematics being the way in which we model the world around us, it makes sense for us to take our knowledge of algorithms and to begin thinking about other things in a similar way.</p>
<p>One of the great things I love about algorithms is that they&#8217;re implementation neutral. That is, the algorithm defines the finite series of steps to follow to get result x but it doesn&#8217;t tell you how you should implement those steps. That&#8217;s part of being creative and artistic and the more of each of those you are, the more exciting it becomes to figure out new ways of doing lots of different things.</p>
<p>Every now and then I spend a little bit of time thinking completely algorithmically so that I can more easily build up that part of my brain that deals with problem solving. If I have the cook dinner, what algorithm am I going to use? Maybe I&#8217;ll come up with three or four different ones and then pick that one that best suits what I want.</p>
<p>Then I get to implement that algorithm and figure out different ways I&#8217;m going to go about that. If step one is to get the ingredients out of ther cupboard how am I going to implement that behaviour? Will I simply walk up and get them out? Maybe I&#8217;ll climb up a small step ladder to reach? Perhaps I&#8217;m going to put some music on and dance my way over to the kitchen? The beauty in this part is that you get to be as creative as you can imagine.</p>
<p>I tend to think of things in terms of puzzles, whether it&#8217;s cooking a meal, writing a computer program or simply figuring out what&#8217;s going to come next in a movie. Part of my love for being on this planet is our ability as humans to solve puzzles and problems and to always be creating new ways of doing things.</p>
<p>I&#8217;m interested in what kinds of fun algorithms people can come up with for every day tasks. Whatcha got?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jamie-dixon.co.uk/concepts/algorithmic-thinking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>User Stories</title>
		<link>http://www.jamie-dixon.co.uk/concepts/user-stories/</link>
		<comments>http://www.jamie-dixon.co.uk/concepts/user-stories/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 13:29:28 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[concepts]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[User Stories]]></category>

		<guid isPermaLink="false">http://www.jamie-dixon.co.uk/?p=42</guid>
		<description><![CDATA[User stories are an integral part of Agile but how come?
When I was first introduced to the idea of using user stories in a commercial environment I didn&#8217;t really know what they were. I&#8217;d seen some other people using them and noticed that they seemed to be a breakdown of what was needed for a [...]]]></description>
			<content:encoded><![CDATA[<p><em>User stories</em> are an integral part of <em>Agile</em> but how come?</p>
<p>When I was first introduced to the idea of using <em>user stories</em> in a commercial environment I didn&#8217;t really know what they were. I&#8217;d seen some other people using them and noticed that they seemed to be a breakdown of what was needed for a given system and then the developers would pick up one story at a time and work on it. <em>&#8220;Marvelous</em>!&#8221; I thought, but what&#8217;s the point?</p>
<p><span id="more-42"></span></p>
<p><strong>A brief introduction to <em>user stories</em></strong></p>
<p><a href="http://www.agilemodeling.com/artifacts/userStory.htm">www.agilemodeling.com</a> define <em>User Stories</em> as being:</p>
<blockquote><p>User stories are one of the primary development artifacts for XP project teams.  A user story is a very high-level definition of a requirement, containing just enough information so that the developers can produce a reasonable estimate of the effort to implement it.  A good way to think about a user story is that it is a reminder to have a conversation with your customer (in XP project stakeholders are called customers).</p></blockquote>
<h4>Ron Jeffries Three C&#8217;s:</h4>
<p>Ron Jeffries of <a href="http://www.xprogramming.com/">xprogramming.com</a> has identified three many components that make up User Stories:</p>
<dl>
<dt>Card</dt>
<dd>
<ul>
<li>Stories are traditionally written on note cards.</li>
<li>Cards may be annotated with estimates, notes, etc.</li>
</ul>
</dd>
<dt>Conversation</dt>
<dd>
<ul>
<li>Details behind the story come out during conversations with product owner.</li>
</ul>
</dd>
<dt>Confirmation</dt>
<dd>
<ul>
<li>Acceptance tests confirm the story was coded correctly.</li>
</ul>
</dd>
</dl>
<p><em>Source: XP Magazine 30/08/2001, Ron Jeffries</em></p>
<h3>So what&#8217;s the point in all of this?</h3>
<p>For those of us who have worked in <em>AGILE </em>environments  before it will seem obvious to say that communication is the key to any succesfull project however for many, this idea can be quite a new concept.</p>
<p>But what is communication? When we talk about communication as a noun (nominalisation) it&#8217;s easy to &#8220;think&#8221; that you&#8217;re communicating effectively and as long as &#8220;communication&#8221; is &#8220;done&#8221; then you&#8217;ve done all that&#8217;s required. In my experience, that&#8217;s not what really happens and the necessity to de-nominalise the term &#8220;communication&#8221; is of huge benefit.</p>
<p>Depending on who you&#8217;re communicating with determines <em>how</em> you communicate. When working between teams, whether it be between technical teams or between techies and the business, there are certain parts of the communication which are vital:</p>
<ul>
<li>A common language that everyone can understand</li>
<li>Clarity in communication eliminating as many ambiguities and nominalisations as possible</li>
<li>Flexibility, not only for negotiation but also flexibility in what you say, how you say it, and what your intent is with the things you say.</li>
<li>Language to experience map-across (re-connecting the words said with the actual experience they describe)</li>
<li>Clear intent for the communication it&#8217;s self (what are we all here for)</li>
<li>The ability to accurately gather information (ask targeted questions, listen in an information gathering way etc)</li>
</ul>
<p>These are just a few of the things that I consider necessary for good communication and I&#8217;ll be covering many of them in more detail, plus more, in a new series of posts about communication.</p>
<p><em>User Stories</em> are one step in the bigger picture of communication. By reminding ourselves to discuss things with real people, by chunking information in such a way that it becomes more easily estimatable and trackable and by promoting a transparent work ethic, we all win.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jamie-dixon.co.uk/concepts/user-stories/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mixed Language Artist &#8211; MLA</title>
		<link>http://www.jamie-dixon.co.uk/concepts/mixed-language-artist-mla/</link>
		<comments>http://www.jamie-dixon.co.uk/concepts/mixed-language-artist-mla/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 11:53:46 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[concepts]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[MLA]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.jamie-dixon.co.uk/?p=37</guid>
		<description><![CDATA[In the martial arts world, the idea of Mixed Martial Arts is something that&#8217;s been around for hundreds of years. The past ten years has seen a huge uptake in the concept with many more martial artists now choosing the mixed martial arts over their former singular and less eclectic predecessors. This increase in interest [...]]]></description>
			<content:encoded><![CDATA[<p>In the martial arts world, the idea of Mixed Martial Arts is something that&#8217;s been around for hundreds of years. The past ten years has seen a huge uptake in the concept with many more martial artists now choosing the mixed martial arts over their former singular and less eclectic predecessors. This increase in interest has been helped with televised competitions such as <acronym title="Ultimate Fighting Championship">UFC</acronym>.</p>
<p>The main reason for this is that each art has it&#8217;s own strengths and weaknesses. Some arts are good for distance fighting, some for close range, some are better than others at ground work and some have better defensive maneuvers than others.</p>
<p><span id="more-37"></span></p>
<p>For thousands of years there are have been conflicts and debates about which Martial Art is better than which and which one will &#8220;kick butt&#8221; more than the next. There have been inter-style battles, movies made, battle field conflicts and even Internet flame matches of people trying to prove that their Martial Art is the best.</p>
<p>Now we&#8217;ve reached a time where being eclectic is sought after. Where the best of the best are versed in all areas of defense and attack and where battles are no longer about which style you use, but about how good you are compared to the next person.</p>
<p>This is a revolution that&#8217;s going to happen in the world of programming and already we&#8217;re seeing the idea of the Mixed Language Artist beginning to spread.</p>
<p>When I think back over the last 10 years of programming, even to before I was commercially involved, we find that old &#8220;My language is better than your language&#8221; debate popping up all over the place. Whether it&#8217;s on Internet Forums, Books, Blogs, Webinars or Live training events.</p>
<p>This article signals the end of those times and the beginning of something new. This is the era of the Mixed Language Artist.</p>
<p><strong>What is a Mixed Language Artist?</strong></p>
<p>A mixed language artist is ultimately someone who does what it takes the get the job done. No longer do we developers sit behind our language specific berlin walls in our ivory towers of smuggness. The Mixed Language Artist knows what tools to use to get the job done. Whether that&#8217;s using C# and .NET, PHP, Ruby, SQL and even software like Excel.</p>
<p>I recently wrote a <a href="/concepts/utilisation-its-whealy-important/">post about utilisation</a> in which I talk about the idea of utilising what&#8217;s already available to you as a developer before you go about re-inventing the wheel. This is another skill for the true Mixed Language Artist because the ability to take what&#8217;s already out there and to use it in a way that fulfils your criteria and saves time, money, skill and sanity are all key components to being a true artist.</p>
<p><strong>So how do you become a Mixed Language Artist?</strong></p>
<p>Being a Mixed Language Artist is not just about programming or programming languages. It&#8217;s an attitude that leads you in a direction where the language is just a tool in getting the job done. The cornerstone to all of this is the attitude. It&#8217;s about knowing what you want to create, knowing what tools you have available to you, being able to utilise what&#8217;s around you and ultimately, it&#8217;s about feeling that rush of a job well done.</p>
<p>For thousands of years the Martial Arts developed before Western Society realised the benefits of mixing the strengths of each art together. Today we can make a choice the create a new wave of developers, engineers, craftsmen and architects. This is the time of the Mixed Language Artist.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jamie-dixon.co.uk/concepts/mixed-language-artist-mla/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Utilisation &#8211; It&#8217;s wheel&#8217;y important</title>
		<link>http://www.jamie-dixon.co.uk/concepts/utilisation-its-whealy-important/</link>
		<comments>http://www.jamie-dixon.co.uk/concepts/utilisation-its-whealy-important/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 11:10:31 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
				<category><![CDATA[concepts]]></category>

		<guid isPermaLink="false">http://www.jamie-dixon.co.uk/?p=27</guid>
		<description><![CDATA[There&#8217;s a saying that people have, &#8220;Don&#8217;t re-invent the wheel&#8221;, and as much as this article isn&#8217;t about wheels, I think it&#8217;s a useful phrase.
Usually in the technology world when we talk about utilisation, or more specifically in the software engineering world, we&#8217;re usually talking about some form of code re-use. Re-using code in a [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a saying that people have, &#8220;Don&#8217;t re-invent the wheel&#8221;, and as much as this article isn&#8217;t about wheels, I think it&#8217;s a useful phrase.</p>
<p>Usually in the technology world when we talk about utilisation, or more specifically in the software engineering world, we&#8217;re usually talking about some form of code re-use. Re-using code in a project is almost a no-brainer but there&#8217;s another side to utilisation that&#8217;s not so often talked about. This is the type of utilisation I simply call <em>&#8220;using what&#8217;s out there&#8221;</em>.</p>
<p><span id="more-27"></span></p>
<p>Now sometimes when we talk about things on a website like this, there&#8217;s often the temptation to answer &#8220;well of course, duh&#8221; but the truth is often different than the behaviour people exhibit. What I refer to as <em>&#8220;using what&#8217;s out there&#8221;</em> is nothing more than going out and finding what&#8217;s already out there in the world to fulfil the business requirements or other criterion.</p>
<p>There are two main things I&#8217;ve seen as an software engineer that prompted me to write this post. The first thing is the idea that all software must be written in-house because it&#8217;s just the way things are. Now sometimes this is a really useful belief and can often lead to some fantastic new and innovative software being created. Other times, and more often than not, this leads to time wasted. I say that because the truth is, if there&#8217;s already software or &#8220;things&#8221; out there in the real world that can fulfil the business requirements and add business value then it makes good sense to utilise those things and spend your time on other tasks that can add even more value to the business. The bottom line is, if what you&#8217;re doing is adding less business value than you could be by making your life easier, start making your life easier and offer more value to the business.</p>
<p>The second thing I often see, and this ties in well with the first thing also, is the idea that the technology you use to engineer the things you want, is the most important part of what you do. As software engineers the idea of being eclectic should be nothing new but for even still there are some who will only use specific technologies.  To me this simply doesn&#8217;t make sense. To say that C# and .NET are the <em>only</em> tools to use for developing software is like saying that a spanner is better than a screwdriver for everything. I&#8217;ve often joined a new company and found them re-writing software from one technology to another simply so they have everything the same. Now I know some people do like to have everything the same and to have all software written in the same language, and the main reason people give for this is that they want to interface each different application with each other. Sometimes it&#8217;s useful to take that approach and mostly it&#8217;s not.</p>
<p>Once we start to focus more on what being an engineer is all about, and when we work closely with and in the business, it becomes easy to see that the future of our industry is not in the specificity of technology nor is it in the art of being the 0ober-smart developer guy. The future of our industry is in our ability to offer genuine value to the business&#8217; we work with and to utilise what we need to get the results we want.</p>
<p>This blog for example is a demonstration of utilising software that returns the right amount of business value and allows me, the consumer, to post the things I want to post and not spend 2 months developing an in-house blogging system.  Some people would be shocked that a primarily Microsoft based developer would use Wordpress, a PHP based blogging system, to create a website. Again this comes back to the idea of being an engineer and knowing which tools to use for which job.</p>
<p>There are people who say that there is no need to re-invent the wheel. I agree. <img src='http://www.jamie-dixon.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.jamie-dixon.co.uk/concepts/utilisation-its-whealy-important/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

