<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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" version="2.0">

<channel>
	<title>All Marked Up</title>
	
	<link>http://allmarkedup.com</link>
	<description />
	<pubDate>Wed, 12 Nov 2008 20:25:48 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/allmarkedup_blog" type="application/rss+xml" /><item>
		<title>Great Companies</title>
		<link>http://allmarkedup.com/archives/great-companies/</link>
		<comments>http://allmarkedup.com/archives/great-companies/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 20:25:45 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[The Web]]></category>

		<guid isPermaLink="false">http://allmarkedup.com/?p=149</guid>
		<description><![CDATA[Great companies mix excellent reliability with great customer support. Campaignmonitor and Wired Tree are tow such companies.]]></description>
			<content:encoded><![CDATA[<p>When you are a web designer/developer, you are generally reliant on a number of third-party suppliers to provide you (and by extension your clients) with essential services such as site hosting, domain registration and DNS management, email newsletter broadcasts, hosted version control and more.</p>
<p>Obviously, you will grade your quality of experience with these suppliers largely in terms of the reliability of service that they provide. But these days most reasonable suppliers offer very similar levels of reliability, so what becomes more and more important is the quality of their customer service. All services will encounter a problem every now and then; the true mark of a great company is how they address those problems, how quickly they respond to your support requests and questions.</p>
<p>After dealing with literally hundreds of companies with stunningly crap customer support, when I find one where the people are helpful, quick to respond and <em>knowledgeable</em> about what they do, I hang onto them pretty tight and recommend them to as many people as possible. So I thought I would recommend a couple of companies that I have dealt with a lot recently and have found to provide both excellent reliability and fantastic customer support.</p>
<h3>Wired Tree (Hosting)</h3>
<p>Wired Tree offer managed VPS as well as dedicated servers, with cPanel/WHM at reasonable prices. I host all my personal sites with them, and we use them at <a href="http://vgroup.com">work</a> now for all our clients&#8217; hosting, and they have performed excellently in terms of speed and uptime. More importantly, their customer service has really been second to none - support requests are generally answered within 15 to 30 minutes, and they are knowledgeable, honest and exceedingly helpful. Highly recommended, check them out at <a href="http://wiredtree.com">wiredtree.com</a>.</p>
<h3>Campaign Monitor (Email broadcasts)</h3>
<p>These guys are great! They provide a really nice, easy to use online email broadcast tool, which does it&#8217;s job very well. They also are quick to respond to support tickets and information requests, and are eager to help and quick to look into any problems that I have encountered (mostly my fault!). After using an number of other email broadcast tool suppliers over the years I can honestly say that none have even come close to the level of service that these guys offer. You can sign up for an account at <a href="http://campaignmonitor.com">campaignmonitor.com</a> for free to check out the tool.</p>
<p>Any one got any other great companies they can recommend?</p>
]]></content:encoded>
			<wfw:commentRss>http://allmarkedup.com/archives/great-companies/feed/</wfw:commentRss>
		</item>
		<item>
		<title>jQuery Quick Pagination plugin</title>
		<link>http://allmarkedup.com/archives/jquery-quick-pagination-plugin/</link>
		<comments>http://allmarkedup.com/archives/jquery-quick-pagination-plugin/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 22:47:20 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://allmarkedup.com/?p=144</guid>
		<description><![CDATA[I have just added a quick, simple jQuery pagination plugin to my projects area.
It basically allows you to paginate any collection of elements on the page, adding very simple prev / next links (as well as a &#8216;page&#8217; counter if required) to allow navigation.
I often use this to paginate a list of news articles, or [...]]]></description>
			<content:encoded><![CDATA[<p>I have just added a quick, simple <a href="http://projects.allmarkedup.com/jquery_quick_paginate/">jQuery pagination plugin</a> to my <a href="http://projects.allmarkedup.com/">projects area</a>.</p>
<p>It basically allows you to paginate any collection of elements on the page, adding very simple prev / next links (as well as a &#8216;page&#8217; counter if required) to allow navigation.</p>
<p>I often use this to paginate a list of news articles, or as a very simple way to throw together a little &#8217;slideshow&#8217; (by paginating through images with the &#8216;perpage&#8217; setting set to 1).</p>
<p>It can paginate pretty much any collection of elements (of mixed types if required), including images, divs, elements in an unordered list etc (ordered list li&#8217;s don&#8217;t work well - try it and see why!).</p>
<p>Once again, I&#8217;ve kinda rushed it up there so if you spot any bugs or mistakes in the documentation etc, just drop a comment below and I will look at it asap.</p>
<p><a href="http://projects.allmarkedup.com/jquery_quick_paginate/">Check the plugin out here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://allmarkedup.com/archives/jquery-quick-pagination-plugin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Change of Tack</title>
		<link>http://allmarkedup.com/archives/change-of-tack/</link>
		<comments>http://allmarkedup.com/archives/change-of-tack/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 20:44:22 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Tips &amp; Tricks]]></category>

		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://allmarkedup.com/?p=140</guid>
		<description><![CDATA[The only programming I have ever know has been programming for the web. Chiefly PHP and JavaScript (with a little RoR sprinkled in there along the way), but all loosely-typed languages where it is easy to be a bit sloppy with the code and still get away with it.
In contrast, I have just started learning [...]]]></description>
			<content:encoded><![CDATA[<p>The only programming I have ever know has been programming for the web. Chiefly PHP and JavaScript (with a little RoR sprinkled in there along the way), but all loosely-typed languages where it is easy to be a bit sloppy with the code and still get away with it.</p>
<p>In contrast, I have just started learning a bit about iPhone app development. Primarily because I want another challenge, something a little different; and partly because I am really excited about the potential that the platform holds, and I would rather be in there making things happen then watching from the sidelines. So I have started getting stuck into a bit of Objective-C, and to be honest it is something of a shock! Coming from a PHP/JavaScript background, the language seems <em>incredibly</em> rigid - no more getting away with being sloppy about return value types! Actually, to start with the whole thing seemed incredibly anal, but I am slowly starting to see the advantages of doing things this way.</p>
<p>In fact, even though I have only just started looking at it, I am starting to understand how PHP is really a kind of facilitation layer plastered over the underlying core programming language - which makes things easier for sure, but lacks the fundamental power that scripting in C can give you. Of course PHP is really optimised for web tasks, and Objective-C in turn for mobile and desktop applications, so their intention is very different and they undoubtably each fulfill their roles very satisfactorily. But I can&#8217;t help the feeling that I have suddenly had a veil lifted from my eyes and can now see that I have been programming in Fisher-Price, child-friendly languages up until now.</p>
<p>I mean this as no disrespect to the people who code in PHP/JavaScript etc - I do so everyday and very much enjoy it. It&#8217;s just that within those languages you are very much shielded from a lot of the more &#8217;serious&#8217;, lower-level programming issues (such as memory management and threading) that you have to deal with in languages such as Objective-C. This is a fact that I was aware of but never really <em>understood</em> until I started investigating iPhone development.</p>
<p>So I am realising how much I have to learn, all over again, but I am really quite excited about it all. Who knows where it will lead - 5 years ago I was doing a Master&#8217;s degree in Oceanography and would never have though I would be programming for the web in 5 years time! I certainly wouldn&#8217;t be sad if I was earning a living writing Mac/iPhone applications in a few years time. But perhaps I&#8217;m getting ahead of myself&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://allmarkedup.com/archives/change-of-tack/feed/</wfw:commentRss>
		</item>
		<item>
		<title>4.13% of the web is standards compliant</title>
		<link>http://allmarkedup.com/archives/413-of-the-web-is-standards-compliant/</link>
		<comments>http://allmarkedup.com/archives/413-of-the-web-is-standards-compliant/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 08:03:42 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
		
		<category><![CDATA[Elsewhere]]></category>

		<category><![CDATA[HTML]]></category>

		<category><![CDATA[The Web]]></category>

		<guid isPermaLink="false">http://allmarkedup.com/?p=138</guid>
		<description><![CDATA[Opera also ran the pages indexed by MAMA through the W3C's validation tools to see how many conform with standards. The results show that only 4.13 percent are valid.]]></description>
			<content:encoded><![CDATA[<p><a href="http://arstechnica.com/news.ars/post/20081015-opera-study-only-4-13-of-the-web-is-standards-compliant.html" title="Opera study: only 4.13% of the web is standards-compliant">Arstechnica reports</a> on Opera&#8217;s web study: </p>
<blockquote cite="http://arstechnica.com/news.ars/post/20081015-opera-study-only-4-13-of-the-web-is-standards-compliant.html"><p>Opera also ran the pages indexed by MAMA through the W3C&#8217;s validation tools to see how many conform with standards. The results show that only 4.13 percent are valid.</p>
</blockquote>
<p>Ahhh how I love statistics, especially headline grabbing ones like this. It&#8217;s a shame they can&#8217;t measure the &#8216;as close to validating as to not make the blindest bit of difference to anything or anyone&#8217; percentage - I think it would be a lot higher, and more representative of the general state of the web today.</p>
<p>As it is I think this particular stat might just get <a href="http://jeffcroft.com/" title="JeffCroft.com: Homepage">Jeff Croft</a> all wound up again.</p>
]]></content:encoded>
			<wfw:commentRss>http://allmarkedup.com/archives/413-of-the-web-is-standards-compliant/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Back from holiday</title>
		<link>http://allmarkedup.com/archives/back-from-holiday/</link>
		<comments>http://allmarkedup.com/archives/back-from-holiday/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 15:54:11 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://allmarkedup.com/?p=135</guid>
		<description><![CDATA[Sarah, little Sadie and I have just go back from a week of surfing and windsurfing in Cornwall. We drove down in our semi-finished surf van / motorhome conversion, and were lucky enough to score great weather, great surf and even some windy days to give us some nice wavesailing. All in all we were very lucky with the conditions!]]></description>
			<content:encoded><![CDATA[<p>Sarah, little Sadie and I have just go back from a week of surfing and windsurfing in Cornwall. We drove down in our semi-finished surf van / motorhome conversion, and were lucky enough to score great weather, great surf and even some windy days to give us some nice wavesailing. All in all we were very lucky with the conditions!</p>
<p>It&#8217;s amazing how a week away from the computer can open you eyes and re-align your perspective. It really highlighted to me how alive I feel when I spend a lot of time outside doing physical exercise - especially adrenaline sports such as windsurfing and surfing - and how 14 hours a day in front of a screen just sucks the life out of me. I&#8217;m sure I&#8217;m not the only one who feels like this! With the day to day pressure of earning money and with the routine of &#8216;normal&#8217; life it is just so easy to forget what is really important to you.</p>
<p>So whilst the break has done me a world of good, in a funny way it has also made me feel less satisfied with my life as it is at the moment. That&#8217;s not at all a bad thing: I really think it&#8217;s important to keep looking at where you are and what you are doing, and asking yourself if it is in keeping with your ideas and dreams. Don&#8217;t get me wrong - I love what I do, but given the choice I would much rather be spending more time outside and in the water that I get to at the moment.</p>
<p>I guess what I am saying is that if you have the opportunity, get away from the computer, go outside, get refreshed. It sounds obvious, but it is actually surprisingly hard to do sometimes when everything else seems so pressing. I know I&#8217;ll be trying to do it more.</p>
<p>Anyway, I&#8217;m back in the fold now, in front of the computer, so normal service on all fronts should be resumed soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://allmarkedup.com/archives/back-from-holiday/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wireframing woes</title>
		<link>http://allmarkedup.com/archives/wireframing-woes/</link>
		<comments>http://allmarkedup.com/archives/wireframing-woes/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 09:12:54 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
		
		<category><![CDATA[IA / Usability]]></category>

		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://allmarkedup.com/?p=131</guid>
		<description><![CDATA[Wireframing is hard to get right. All too often the wireframe can adversely affect the clients expectations and constrain the design process.]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://vgroup.com/">VGroup</a>, we almost always use wireframes as a first step in the web design process. I think that they are an important, if not essential part of any good web project. However, it is very hard to get wireframing right, and I often feel uneasy about they way that they are used and the consequent impact that they have on client&#8217;s expectations, as well as on the final design of a site.</p>
<p>Our site design process generally goes a little something like this: After the initial scoping phase is completed, a sitemap is drawn up (or a supplied one is checked and amended as necessary). Then typically a wireframe gets put together, featuring all the appropriate navigation items plus any other components of importance. This is then shown to the client, and on signoff is then passed to the designers for them to build upon to create the final design. Pretty standard methodology.</p>
<p>So what&#8217;s the problem with this method? Well, the main issue is that the wireframe itself is not drawn up by the designers. This is for good reason - our designers (and this is very often the case elsewhere too), whilst very talented at what they do, are not dyed in the wool <em>web</em> designers; whilst they can certainly produce a lovely looking site, they don&#8217;t have the depth of understanding about information architecture, usability and accessibility etc to <em>on their own</em> produce a site that works as nicely as it looks. </p>
<p>So mostly the wireframe gets put together by the project manager, who is more experienced with IA, usability concepts, etc - but is not a designer. And herein lies the problem. A wireframe of a site often depicts a simple layout - width, number of columns, content areas, header areas and so on. This initial wireframe may not be at all show the intended layout for the final site - more just a quick schematic to ensure that all the relevant parts will be accounted for and so that the client has something tangible to engage with and to comment on. But however much you tell the client that this is NOT necessarily how their site will be laid out, they will always expect the final design to roughly resemble the wireframe. It&#8217;s just the way it is. And no matter how many times you tell the designers not to be constrained by the layout on the wireframe, inevitably this layout will be hard to shake out of their heads, and nine times out of ten the end design will end up being somewhat restricted by this. </p>
<p>There are many ways around this issue, some of which we are now starting to explore. But our experiences at VGroup have taught me that good, effective wireframing is really not easy; it is a delicate balance to get the correct level of detail in them, to present them at the correct time in the site design process, and to ensure that all the relevant parties have just enough input in the process so that the wireframes provide a springboard for the creative process and not a cage around it.</p>
<p>I am going to try and do a bit more thinking and reading about the wireframing process over the next couple of months, and I&#8217;ll be sure to post up anything useful I come across. And if anyone has any top tips or recommendations for books/articles then please leave a comment or drop me an email!</p>
]]></content:encoded>
			<wfw:commentRss>http://allmarkedup.com/archives/wireframing-woes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>App store rejection letters under NDA</title>
		<link>http://allmarkedup.com/archives/app-store-rejection-letters-under-nda/</link>
		<comments>http://allmarkedup.com/archives/app-store-rejection-letters-under-nda/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 07:50:32 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Elsewhere]]></category>

		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://allmarkedup.com/?p=129</guid>
		<description><![CDATA[Apparently, Apple has now started labeling their rejection letters with Non-Disclosure (NDA) warnings:
THE INFORMATION CONTAINED IN THIS MESSAGE IS UNDER NON-DISCLOSURE]]></description>
			<content:encoded><![CDATA[<p>Via <a href="http://www.macrumors.com/2008/09/23/apple-extends-non-disclosure-to-app-store-rejection-letters/">MacRumours</a>:</p>
<blockquote cite="http://www.macrumors.com/2008/09/23/apple-extends-non-disclosure-to-app-store-rejection-letters/"><p>Apparently, Apple has now started labeling their rejection letters with Non-Disclosure (NDA) warnings:<br />
THE INFORMATION CONTAINED IN THIS MESSAGE IS UNDER NON-DISCLOSURE<cite>&mdash; MacRumours</cite></p>
</blockquote>
<p>Apple is really, really pushing the limits of peoples&#8217; tolerance with this now. I love your products Steve &amp; co, but you need to get a grip on this before it becomes a deal-breaking issue.</p>
]]></content:encoded>
			<wfw:commentRss>http://allmarkedup.com/archives/app-store-rejection-letters-under-nda/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Memory issues with OOP PHP</title>
		<link>http://allmarkedup.com/archives/memory-issues-with-oop-php/</link>
		<comments>http://allmarkedup.com/archives/memory-issues-with-oop-php/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 07:52:51 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
		
		<category><![CDATA[Elsewhere]]></category>

		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://allmarkedup.com/?p=127</guid>
		<description><![CDATA[It’s hard to imagine pushing the limits of object oriented PHP so far that your web servers choke, but the truth is those limits are reached faster than you think.]]></description>
			<content:encoded><![CDATA[<p>An <a href="http://particletree.com/notebook/object-oriented-php-memory-concerns/" title="Particletree  &raquo; Object Oriented PHP Memory Concerns">interesting article over at ParticleTree</a> on hitting PHP&#8217;s memory limit when instantiating a lot of objects </p>
<blockquote cite="http://particletree.com/notebook/object-oriented-php-memory-concerns/"><p>It’s hard to imagine pushing the limits of object oriented PHP so far that your web servers choke, but the truth is those limits are reached faster than you think. <cite>&mdash; Ryan Campbell</cite></p>
</blockquote>
<p>I&#8217;ve run into this problem a number of times myself, and always with regards to the example Ryan provides - a script that exports a large database table to a CSV. I didn&#8217;t realise that it was the object instantiation that was sucking up all the memory - although perhaps this seems obvious in retrospect.</p>
]]></content:encoded>
			<wfw:commentRss>http://allmarkedup.com/archives/memory-issues-with-oop-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Coding for others - Part 2</title>
		<link>http://allmarkedup.com/archives/coding-for-others-part-2/</link>
		<comments>http://allmarkedup.com/archives/coding-for-others-part-2/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 12:48:50 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Tips &amp; Tricks]]></category>

		<guid isPermaLink="false">http://allmarkedup.com/?p=123</guid>
		<description><![CDATA[The second part in a series where I examine what makes code easy to read and understand, and why it is important to make sure your own code is written to a strict set of standards to ensure ease of maintainability.]]></description>
			<content:encoded><![CDATA[<p>In the <a title="Coding for others - Part 1 : All Marked Up" href="http://allmarkedup.com/archives/coding-for-others-part-1/">first part</a> of this 2-part mini-series I explained why it is important to make sure you take the time to make sure your code is easy for others to pick up and understand. But how do you best achieve this lofty aim? Below are some general principles that are straightforward to implement and will go a long way to making your code clear, legible and as easy to understand as possible.</p>
<h3>Whitespace, whitespace, whitespace</h3>
<p>Probably the single most important thing you can do to increase the legibility of your code is to inject a good dose of whitespace into it. Dense, cramped up code is hard to scan and hard to extract information from quickly. Correctly indenting your code, together with liberal use of spaces and new lines results in a much clearer easier to scan and understand script. If you are writing JavaScript or CSS, don&#8217;t cut back on whitespace to save you a Kb or two in filesize - instead space everything out nicely and then run it through a compressor when you are ready to go live with it all, keeping the uncompressed version for later editing. Have a peek at the <a href="http://codeigniter.com/">CodeIgniter framework</a> source code for a great example of well formatted code with plenty of whitespace.</p>
<h3>Make it self-documenting</h3>
<p>Good code doesn&#8217;t need pages of comments to tell you what it is doing. Careful choice of variable and function names can go a very long way to making your code speak for itself. Stay away from non-standard abbreviations and generic names (like &#8216;value&#8217; of &#8217;set_value&#8217;) where possible, and try to make sure all of your function names are really representative of what the function actually does, and variable names describe accurately their contents. The CodeBetter site has a <a title="Self Documenting Code - Eric Wise" href="http://codebetter.com/blogs/eric.wise/archive/2005/12/06/135418.aspx">good post on self documenting code</a> = check it out for loads of good tips.</p>
<h3>Create a set of conventions, and stick to them</h3>
<p>Nothing is harder to get your head round than code that doesn&#8217;t follow a cohesive set of conventions. It is really, really important that you develop a set of conventions (or adopt ones from somewhere else) for all the code that you write, and then stick to them religiously. The actual conventions don&#8217;t even matter as much as the sticking to them; what you are aiming for is uniform, consistent code standards across and within projects. This goes for naming of functions, variables, file names - everything, even the amount of whitespace. Write down your conventions if you need to share it across teams - Zend&#8217;s &#8216;<a title="Zend Framework: Documentation" href="http://framework.zend.com/manual/en/coding-standard.html">coding standard guide</a>&#8216; for their Zend Framework is a great example of a comprehensive manual of coding and naming conventions. Obviously for your own personal projects it is unlikely you would take it this far; but however far you go it will make it much easier for people who have looked at one piece of your code to pick up another and immediately feel at home.</p>
<h3>Comment enough, but not too much</h3>
<p>Comments in code are often invaluable for providing information as to the purpose of a particular line, function or other segment of code. In an ideal world the code itself would be entirely self-documenting (see above) - however in reality this is rarely (if ever) achieved, and a few helpfully placed and concise comments can work wonders. But keep the comments short and sweet! A 30 line comment, unless absolutely necessary, will actually hinder understanding of the code, as it adds to the visual &#8216;noise&#8217; in the script and most people are highly unlikely to actually read it all! Besides, if a function (or anything else) needs 30 lines of comments to explain what it does it is very likely that the real problem is in the clarity of the code itself.</p>
<h3>Don&#8217;t get too fancy</h3>
<p>Whilst it is tempting to condense a 10 line &#8216;if&#8217; statement into one line by stringing it together into a triple-nested ternary operator expression, this does not necessarily help with the general maintainability or readability of your code! It might get you top geek marks from the most hardcore of programmers, but generally it is not bad thing to split up complex statements to make it clearer to those charged with understanding your code.</p>
<h3>Write better code, and less of it</h3>
<p>Okay, so maybe this isn&#8217;t so easy to implement. But the amount of code you write, together with the quality of it go a long way to making it easy to understand (or not!). Stick to the DRY (Don&#8217;t Repeat Yourself) principle, and look at every piece of code you write to see how you can improve it and cut down on the number of lines it takes achieve your aim. Shorter, more concise code that fulfills the same role will generally be easier to understand than a long, rambling, poorly written script, as long as it doesn&#8217;t break any of the principles outline above.</p>
<p>So these are a just few things that you can do to improve your code&#8217;s maintainability, and make it easy for others (or even yourself!) to pick up the code later on down the line and easily make sense of it. No-one is perfect, and I certainly deviate from these guidelines form time to time. But following these general principles will go a long way to making your code accessible to others.</p>
]]></content:encoded>
			<wfw:commentRss>http://allmarkedup.com/archives/coding-for-others-part-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Coding for others - Part 1</title>
		<link>http://allmarkedup.com/archives/coding-for-others-part-1/</link>
		<comments>http://allmarkedup.com/archives/coding-for-others-part-1/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 10:35:04 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Tips &amp; Tricks]]></category>

		<guid isPermaLink="false">http://allmarkedup.com/?p=121</guid>
		<description><![CDATA[The first part in a series where I examine what makes code easy to read and understand, and why it is important to make sure your own code is written to a strict set of standards to ensure ease of maintainability.]]></description>
			<content:encoded><![CDATA[<p class="note">This is part one of a two part mini-series. The <a href="http://allmarkedup.com/archives/coding-for-others-part-2/">second part</a> goes into more detail on tips for improving your code&#8217;s readability and maintainability.</p>
<p>The vast majority of developers will, at some point in their career, use code written by a third party. This might be code written by a co-worker, a little snippet from a repository such as <a title="Code Snippets - Snipplr Social Snippet Repository" href="http://snipplr.com/">Snipplr</a>, or a comprehensive language framework such as <a title="CodeIgniter - Open source PHP web application framework" href="http://codeigniter.com/">CodeIgniter</a> or <a title="jQuery: The Write Less, Do More, JavaScript Library" href="http://jquery.com/">jQuery</a>.</p>
<p>Now if you have actually ever had to go beyond just <em>using</em> any code written by others, and instead had to delve into the guts of the code itself, you will probably have seen a mix of code quality. Poorly written code can be a nightmare to understand. <em>Well</em> written code, on the other hand, can make it feel like you are reading prose; you can instantly get a feel for what is happening. Typically, well established code libraries will tend to have clear, easily readable code, whereas your co-worker might be turning out code that looks like it is written in Klingon.</p>
<p>So what does <em>your</em> code look like? How easy would it be for other people to pick up your code and figure out what it is doing?</p>
<p>Even if you are working on your own, writing code intended just for yourself, it is important to have a strict coding standard that you work to. You never know in the future who will have to look at your code and figure it out. And even if that person in the future is you, it is amazing how quickly you forget what a particular function or class does. The extra time taken to carefully craft and comment your code so it is easy to pick up again after a break will be paid back a hundredfold when you don&#8217;t have to hunt through file after file tying to figure out what your mind was thinking when you wrote it.</p>
<p>If you are writing code explicitly intended for others to use, then the case for clear, expressive code is even more pressing. It is your <em>obligation</em> to ensure that the code is as readable and easy to understand as possible; doing so will benefit you as well as your users, helping to cut down on requests for help or clarification. Good code speaks for itself and needs little documentation.</p>
<p>So how do you make your code easy for others to follow? In the Part 2 of this series I will go into detail on how you can make your code expressive, easy to read and simple for another developer to pick up and understand.</p>
]]></content:encoded>
			<wfw:commentRss>http://allmarkedup.com/archives/coding-for-others-part-1/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
