<?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>Ugh!!'s Greymatter Honeypot &#187; coding</title>
	<atom:link href="http://www.u-g-h.com/tag/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.u-g-h.com</link>
	<description>Distracting the Mind with Information Overload</description>
	<lastBuildDate>Wed, 08 Feb 2012 23:39:10 +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>Isle of Man: devG &#8211; C# language features</title>
		<link>http://www.u-g-h.com/2009/06/11/isle-of-man-devg-c-language-features/</link>
		<comments>http://www.u-g-h.com/2009/06/11/isle-of-man-devg-c-language-features/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 22:55:22 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[Isle-of-Man]]></category>
		<category><![CDATA[Mike Cromwell]]></category>

		<guid isPermaLink="false">http://www.u-g-h.com/?p=3048</guid>
		<description><![CDATA[If you&#8217;re a .Net developer here&#8217;s an event you mustn&#8217;t miss here on the Isle of Man. It&#8217;s a talk about the new language features of C# and here are the details: Mike has agreed to share is knowledge with us, and will be giving a talk on the 3.5 language features, covering Lamdas, Extension [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re a .Net developer here&#8217;s an event you mustn&#8217;t miss here on the Isle of Man. It&#8217;s a talk about the new language features of C# and here are the details:</p>
<blockquote><p>Mike has agreed to share is knowledge with us, and will be giving a talk on the 3.5 language features, covering Lamdas,  Extension methods and linq. Iâ€™m sure it will be interesting for everyone.</p>
<p>As you can imagine its been challenging finding a venue especially around TT week. A company in <a  class="zem_slink" href="http://maps.google.com/maps?ll=54.097,-4.631&#038;spn=0.1,0.1&#038;q=54.097,-4.631%20%28Ballasalla%29&#038;t=h" title="Ballasalla" rel="geolocation">Ballasalla</a> has kindly allowed us to have a room for the evening of the 23rd June 2009.</p>
<p>So the second meeting will be : Tuesday, 23rd June 2009,  Global House, Station Road, Ballasalla. Its the office park next to the Ballasalla station. Should we say around 6:15pm. </p>
<p>See u there!</p></blockquote>
<p>The presentation is being given by <a  href="http://journalofasoftwaredev.wordpress.com/">Mike Cromwell</a> who is to Visual Studio what <a  class="zem_slink" href="http://www.imdb.com/name/nm0971329/" title="Tiger Woods" rel="imdb">Tiger Woods</a> is to <a  href="http://www.blind9golf.com/">golf clubs</a>. Come listen to some new ideas and technique that can help you up your game. It will be a great geeky evening.</p>
<div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"><img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=cf8ba43e-9e17-45b9-b80e-7d061449adde"><span class="zem-script pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>
<p><a  class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.u-g-h.com%2F2009%2F06%2F11%2Fisle-of-man-devg-c-language-features%2F&#038;title=Isle%20of%20Man%3A%20devG%20%26%238211%3B%20C%23%20language%20features" id="wpa2a_2"><img src="http://www.u-g-h.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.u-g-h.com/2009/06/11/isle-of-man-devg-c-language-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dev Wednesday in the Isle of Man</title>
		<link>http://www.u-g-h.com/2009/05/11/dev-wednesday-in-the-isle-of-man/</link>
		<comments>http://www.u-g-h.com/2009/05/11/dev-wednesday-in-the-isle-of-man/#comments</comments>
		<pubDate>Mon, 11 May 2009 15:58:12 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[events]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Isle-of-Man]]></category>

		<guid isPermaLink="false">http://www.u-g-h.com/2009/05/11/dev-wednesday-in-the-isle-of-man/</guid>
		<description><![CDATA[My mate Zak is looking to try and set up a Developer Group here in the Isle of Man. I was speaking to him a couple of days ago, and itâ€™s still uncertain what shape itâ€™s going to take; which is excellent news for anyone wanted to get involved. It essentially means that if you [...]]]></description>
			<content:encoded><![CDATA[<p>My mate Zak is looking to try and set up a <a  href="http://fuzzelogicsolutions.com/wordpress/index.php/2009/05/08/the-dev-group/">Developer Group here in the Isle of Man</a>. I was speaking to him a couple of days ago, and itâ€™s still uncertain what shape itâ€™s going to take; which is excellent news for anyone wanted to get involved. It essentially means that if you would like to get involved, all you have to do it to turn up to this founding meeting and make your opinions heard. Itâ€™s open to anyone with an interest in Development.</p>
<p>So, where is it happening? Itâ€™s on Wednesday 13th May at 6:30pm at Câ€™est La Vie, a bar/restaurant in Victoria Street:</p>
<div style="padding-bottom: 0px; padding-left: 0px; width: 320px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:84E294D0-71C9-4bd0-A0FE-95764E0368D9:5cee70f5-a757-44da-84c2-79c0e00028e7" class="wlWriterEditableSmartContent"><a  href="http://maps.live.com/default.aspx?v=2&#038;cp=54.14945~-4.478409&#038;lvl=16&#038;style=r&#038;sp=aN.54.14951_-4.479375_C&#039;est%2520La%2520Vie_&#038;mkt=en-us&#038;FORM=LLWR" id="map-bb333770-1b62-4480-ab18-ea8f76201e17" alt="Click to view this map on Live.com" title="Click to view this map on Live.com"><img src="http://www.u-g-h.com/wp-content/uploads/2009/05/mapa38a8f0f9393.jpg" width="320" height="240" alt="Map picture"></a></div>
<p>If you can make it, come along and bring a friend, the more the merrier. Itâ€™s open to developers of all ages, regardless of what language you use. Come and join us; should be a fun evening.</p>
<p><a  class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.u-g-h.com%2F2009%2F05%2F11%2Fdev-wednesday-in-the-isle-of-man%2F&#038;title=Dev%20Wednesday%20in%20the%20Isle%20of%20Man" id="wpa2a_4"><img src="http://www.u-g-h.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.u-g-h.com/2009/05/11/dev-wednesday-in-the-isle-of-man/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Javascript Gotcha: Invalid Assignment Left-Hand Side</title>
		<link>http://www.u-g-h.com/2008/08/18/javascript-gotcha-invalid-assignment-left-hand-side/</link>
		<comments>http://www.u-g-h.com/2008/08/18/javascript-gotcha-invalid-assignment-left-hand-side/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 15:34:39 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.u-g-h.com/?p=2333</guid>
		<description><![CDATA[I ended up scratching my head today over a line of Javascript that was just not playing ball. The line was this: opener.document.forms[0].plugin-media4pic.value = "avatar.jpg"; All I was trying to do was update a field on the parent form that called a popup with an image that had been uploaded by the user. Sounds pretty [...]]]></description>
			<content:encoded><![CDATA[<p>I ended up scratching my head today over a line of <a  href="http://en.wikipedia.org/wiki/JavaScript">Javascript</a> that was just not playing ball. The line was this:</p>
<blockquote><p>
<code>opener.document.forms[0].plugin-media4pic.value = "avatar.jpg";</code>
</p></blockquote>
<p>All I was trying to do was update a field on the parent form that called a popup with an image that had been uploaded by the user. Sounds pretty straightforward, and I had used that type of code in the past when building the <a  href="http://www.wpauctions.com/">WP Auctions</a> plugin. So I expected it to work right off the bat.</p>
<div style="float:right;margin-left:5px;"><span id="pa_59492"><a  id="pa_59492" href="http://www.picapp.com/PublicSite/ViewDetails.aspx?ImageId=176393"><img src="http://www.picapp.com/ftp/Preview/0059/scratch_head_Picapp_59492.jpg" alt="Man scratching the back of his head" oncontextmenu="return false;"></a><br/><font size="-2"></font></span><script type="text/javascript" src="http://pis.picapp.com/IamProd/javascript/imageV2.js?p=5113&#038;i=59492&#038;w=234&#038;h=351&#038;adH=25&#038;adS=3&#038;fv=picviewerv2_1.swf&#038;pv=http://pis.picapp.com/IamProd/FlashSite/en/&#038;u=http://pis.picapp.com/IamProd/ImageServing.aspx&#038;sp=true&#038;n=1"></script> </div>
<p>Instead, I kept getting an error saying &#8220;invalid assignment left-hand side&#8221;. I rechecked my code. I walked through the page DOM to ensure I wasn&#8217;t specifying something that didn&#8217;t exist. I rechecked my code. I went for a walk. I rechecked my code. I made some tea. I rechecked my code. I scratched my head for a bit. I rechecked my code. Nothing. I still kept getting the pesky error.</p>
<p>Eventually, out od desperation, I started trying different things, and found out what the problem was!</p>
<p>Turns out the problem was a form field called <strong>plugin-media4pic</strong>. For some inexplicable reason, Javascript interpreted the &#8220;-&#8221; as a minus sign and was trying to evaluate the left-hand side of the assignment expression above. Don&#8217;t ask me why, but changing the &#8220;-&#8221; to an &#8220;_&#8221; solved the problem. Can anyone explain why this was happening?</p>
<p>Hope you guys don&#8217;t run into something else inexplicable today.</p>
<p><a  class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.u-g-h.com%2F2008%2F08%2F18%2Fjavascript-gotcha-invalid-assignment-left-hand-side%2F&#038;title=Javascript%20Gotcha%3A%20Invalid%20Assignment%20Left-Hand%20Side" id="wpa2a_6"><img src="http://www.u-g-h.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.u-g-h.com/2008/08/18/javascript-gotcha-invalid-assignment-left-hand-side/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Picking a Platform</title>
		<link>http://www.u-g-h.com/2008/03/31/picking-a-platform/</link>
		<comments>http://www.u-g-h.com/2008/03/31/picking-a-platform/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 12:35:46 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[consumer]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[market]]></category>
		<category><![CDATA[platforms]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.u-g-h.com/index.php/2008/03/31/picking-a-platform/</guid>
		<description><![CDATA[Great post on ReadWriteWeb about 5 issues to keep in mind when choosing a web development platform. Regardless of what sort of platform you&#8217;re after, these ideas translate well to other technologies also. Here are the things to watch out for: Reach of the platform &#8211; the broader the target market, the more effective the [...]]]></description>
			<content:encoded><![CDATA[<p>Great post on ReadWriteWeb about <a  href="http://www.readwriteweb.com/archives/picking_a_platform_5_issues_to_consider.php">5 issues to keep in mind when choosing a web development platform</a>. Regardless of what sort of platform you&#8217;re after, these ideas translate well to other technologies also. Here are the things to watch out for:</p>
<ul>
<li><strong>Reach of the platform</strong> &#8211; the broader the target market, the more effective the platform will be. If you&#8217;re writing an application for an obsolete computer, you&#8217;re not going to have many customers.</li>
<li><strong>Growth of the audience</strong> &#8211; companies who built applications for <a  href="http://www.facebook.com">Facebook</a> as soon as the <a  href="http://en.wikipedia.org/wiki/API">API</a> was opened up today have millions of potential customers. Always look to the future.</li>
<li><strong>Value of the audience</strong> &#8211; value isn&#8217;t always monetary, however if the audience cannot grow, sustain itself and generate rewards, your work won&#8217;t help you attain your goals.</li>
<li><strong>Capability to support desired user experience</strong> &#8211; Choosing a platform without knowing what the capabilities and limitations are could be a surefire route to <a  href="http://www.youfail.org/">failure</a>.</li>
<li><strong>Efficiency of development on platform</strong> &#8211; The quicker you can get a product to market, and cheaper it is to maintain it, the better.</li>
</ul>
<p>Some great thoughts there. I particularly like the way those ideas translate to other technologies also, not just web development. Just like <a  href="http://www.lightingshowplace.com/decor/search.pl?N=102+221">outdoor lighting</a>, a consumer is usually faced with a number of choices to achieve the same goals. If you&#8217;re building a desktop application, a website, or even a commercial product that has nothing to do with the web, the ideas are still valid. Best go <a  href="http://www.readwriteweb.com/archives/picking_a_platform_5_issues_to_consider.php">read the post</a></p>
<p><a  class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.u-g-h.com%2F2008%2F03%2F31%2Fpicking-a-platform%2F&#038;title=Picking%20a%20Platform" id="wpa2a_8"><img src="http://www.u-g-h.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.u-g-h.com/2008/03/31/picking-a-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vista SP1 &#8211; The Developer&#8217;s Perspective</title>
		<link>http://www.u-g-h.com/2008/03/28/vista-sp1-the-developers-pespective/</link>
		<comments>http://www.u-g-h.com/2008/03/28/vista-sp1-the-developers-pespective/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 11:28:31 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[upgrades]]></category>
		<category><![CDATA[Vista SP1]]></category>

		<guid isPermaLink="false">http://www.u-g-h.com/index.php/2008/03/28/vista-sp1-the-developers-pespective/</guid>
		<description><![CDATA[Paul, from my office, has just sent me a link to a post by Tim Sneath entitled What does Vista SP1 mean to developers. In his post, Tim outlines some major changes in SP1 that developers need to know about. In a nutshell, his post talks about: A common codebase for ALL Vista and Windows [...]]]></description>
			<content:encoded><![CDATA[<p><a  href="http://www.linkedin.com/pub/0/251/312">Paul</a>, from my <a  href="http://www.solidsoft.com">office</a>, has just sent me a link to a post by Tim Sneath entitled <a  href="http://blogs.msdn.com/tims/archive/2008/03/19/what-does-windows-vista-sp1-mean-for-developers.aspx">What does Vista SP1 mean to developers</a>. In his post, Tim outlines some major changes in SP1 that developers need to know about. In a nutshell, his post talks about:</p>
<ul>
<li>A common codebase for ALL Vista and Windows 2008 editions</li>
<li>A massive improvement in IIS 7</li>
<li>Minor update to <a  href="http://msdn2.microsoft.com/en-us/directx/aa937789.aspx">Direct 3D</a></li>
<li>New APIs to control the <a  href="http://msdn2.microsoft.com/en-us/library/bb736299%28VS.85%29.aspx">Data Execution Protection</a> and <a  href="http://download.microsoft.com/download/4/4/b/44bb7147-f058-4002-9ab2-ed22870e3fe9/Kernal%20Data%20and%20Filtering%20Support%20for%20Windows%20Server%202008.doc">Kernel Patch Protection</a> features</li>
<li>New <a  href="http://msdn2.microsoft.com/en-us/library/aa375534.aspx">cryptographic and random number generation algorithms</a></li>
<li>.Net Framework upgraded to v3.0 SP1</li>
</ul>
<p>There&#8217;s also some other information that is pretty well know (speed improvements in file copy, less aggressive UAC) but you&#8217;re best off <a  href="http://blogs.msdn.com/tims/archive/2008/03/19/what-does-windows-vista-sp1-mean-for-developers.aspx">reading the entire post</a>.</p>
<p>The great thing about <a  href="http://technet.microsoft.com/en-us/windowsvista/bb738089.aspx">Vista SP1</a> is that is really is a leap forward in terms of stability and were needed more than a <a  href="http://www.buyautotruckaccessories.com/categories.cfm/cf-bin/cn.tonneau-covers/gid.101001006">tonneau cover</a> on a stormy night. I&#8217;ve been running it for around a month now and have been counting how many problems, blue screens, freezes etc I&#8217;ve had. To date &#8230; <a  href="http://mw1.m-w.com/dictionary/none">none</a>!</p>
<p><a  class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.u-g-h.com%2F2008%2F03%2F28%2Fvista-sp1-the-developers-pespective%2F&#038;title=Vista%20SP1%20%26%238211%3B%20The%20Developer%26%238217%3Bs%20Perspective" id="wpa2a_10"><img src="http://www.u-g-h.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.u-g-h.com/2008/03/28/vista-sp1-the-developers-pespective/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facts on Software Engineering</title>
		<link>http://www.u-g-h.com/2008/03/28/facts-on-software-engineering/</link>
		<comments>http://www.u-g-h.com/2008/03/28/facts-on-software-engineering/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 09:12:39 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[advice]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[facts]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[software engineering]]></category>

		<guid isPermaLink="false">http://www.u-g-h.com/index.php/2008/03/28/facts-on-software-engineering/</guid>
		<description><![CDATA[I came across a post on CodingHorror where Jeff pulls out a summary from Facts and Fallacies of Software Engineering by Robert L. Glass. There&#8217;s some great stuff in there that everyone working in software should know. And good advice is like? cheap glasses, you can never have enough! So I&#8217;m echoing it here: People [...]]]></description>
			<content:encoded><![CDATA[<p><a  href="http://astore.amazon.co.uk/greymatter-21/detail/0321117425/202-7824162-5329448"><img src="http://ecx.images-amazon.com/images/I/21KAS7P70JL._SL125_.jpg" align="left" border="5" height="125" hspace="5" vspace="5" width="100" /></a>I came across a post on <a  href="http://www.codinghorror.com/blog/">CodingHorror</a> where Jeff pulls out a summary from <a  href="http://astore.amazon.co.uk/greymatter-21/detail/0321117425/202-7824162-5329448">Facts and Fallacies of Software Engineering by Robert L. Glass</a>. There&#8217;s some great stuff in there that everyone working in software should know. And good advice is like? <a  href="http://www.lbweyewear.com/">cheap glasses</a>, you can never have enough! So I&#8217;m echoing it here:</p>
<p><strong>People</strong></p>
<ol>
<li>The most important factor in software work is the quality of the programmers.</li>
<li>The best programmers are up to 28 times better than the worst programmers.</li>
<li>Adding people to a late project makes it later.</li>
<li>The working environment has a profound impact on productivity and quality.</li>
</ol>
<p><strong>Tools and Techniques</strong></p>
<ol start="5">
<li>Hype (about tools and technology) is a plague on the house of software.</li>
<li>New tools and techniques cause an initial <em>loss</em> of productivity / quality.</li>
<li>Software developers talk a lot about tools, but seldom use them.</li>
</ol>
<p><strong>Estimation</strong></p>
<ol start="8">
<li>One of the two most common causes of runaway projects is poor estimation.</li>
<li>Software estimation usually occurs at the wrong time.</li>
<li>Software estimation is usually done by the wrong people.</li>
<li>Software estimates are rarely corrected as the project proceeds.</li>
<li>It is not surprising that software estimates are bad. But we live and die by them anyway!</li>
<li>There is a disconnect between software management and their programmers.</li>
<li>The answer to a feasability study is almost always &#8220;yes&#8221;.</li>
</ol>
<p><strong>Reuse</strong></p>
<ol start="15">
<li>Reuse-in-the-small is a solved problem.</li>
<li>Reuse-in-the-large remains a mostly unsolved problem.</li>
<li>Reuse-in-the-large works best in families of related systems.</li>
<li>Reuseable components are three times as hard to build and should be tried out in three different settings.</li>
<li>Modification of reused code is particularly error-prone.</li>
<li>Design pattern reuse is one solution to the problems of code reuse.</li>
</ol>
<p><strong>Requirements</strong></p>
<ol start="23">
<li>One of the two most common causes of runaway projects is unstable requirements.</li>
<li>Requirements errors are the most expensive to fix during production.</li>
<li>Missing requirements are the hardest requirements errors to correct.</li>
</ol>
<p><strong>Design</strong></p>
<ol start="26">
<li>Explicit requirements &#8216;explode&#8217; as implicit requirements for a solution evolve.</li>
<li>There is seldom one best design solution to a software problem.</li>
<li>Design is a complex, iterative process. Initial design solutions are usually wrong and certainly not optimal.</li>
</ol>
<p><strong>Coding</strong></p>
<ol start="29">
<li>Designer &#8216;primitives&#8217; rarely match programmer &#8216;primitives&#8217;.</li>
<li>COBOL is a very bad language, but all the others are so much worse.</li>
</ol>
<p><strong>Error removal</strong></p>
<ol start="31">
<li>Error removal is the most time-consuming phase of the lifecycle.</li>
</ol>
<p><strong>Testing</strong></p>
<ol start="32">
<li>Software is usually tested at best to the 55 to 60 percent coverage level.</li>
<li>100 percent test coverage is still far from enough.</li>
<li>Test tools are essential, but rarely used.</li>
<li>Test automation rarely is. Most testing activities cannot be automated.</li>
<li>Programmer-created, built-in debug code is an important supplement to testing tools.</li>
</ol>
<p><strong>Reviews and Inspections</strong></p>
<ol start="37">
<li>Rigorous inspections can remove up to 90 percent of errors before the first test case is run.</li>
<li>Rigorous inspections should not replace testing.</li>
<li>Post-delivery reviews, postmortems, and retrospectives are important and seldom performed.</li>
<li>Reviews are both technical and sociological, and both factors must be accommodated.</li>
</ol>
<p><strong>Maintenance</strong></p>
<ol start="41">
<li>Maintenance typically consumes 40 to 80 percent of software costs. It is probably the most important software lifecycle phase.</li>
<li>Enhancements represent roughly 60 percent of maintenance costs.</li>
<li>Maintenance is a solution&#8211; not a problem.</li>
<li>Understanding the existing product is the most difficult maintenance task.</li>
<li>Better methods lead to <em>more</em> maintenance, not less.</li>
</ol>
<p><strong>Quality</strong></p>
<ol start="46">
<li>Quality is a collection of attributes.</li>
<li>Quality is <em>not</em> user satisfaction, meeting requirements, achieving cost and schedule, or reliability.</li>
</ol>
<p><strong>Reliability</strong></p>
<ol start="48">
<li>There are errors that most programmers tend to make.</li>
<li>Errors tend to cluster.</li>
<li>There is no single best approach to software error removal.</li>
<li>Residual errors will always persist. The goal should be to minimize or eliminate <em>severe</em> errors.</li>
</ol>
<p><strong>Efficiency</strong></p>
<ol start="52">
<li>Efficiency stems more from good design than good coding.</li>
<li>High-order language code can be about 90 percent as efficient as comparable assembler code.</li>
<li value="54">There are tradeoffs between optimizing for time and optimizing for space.</li>
</ol>
<p><strong>Research</strong></p>
<ol start="55">
<li>Many researchers advocate rather than investigate.</li>
</ol>
<p>I&#8217;m sure there are things there that most of us can relate to. I have to add that book to <a  href="http://astore.amazon.co.uk/greymatter-21/202-7824162-5329448?_encoding=UTF8&#038;node=3">my reading list</a></p>
<p><a  class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.u-g-h.com%2F2008%2F03%2F28%2Ffacts-on-software-engineering%2F&#038;title=Facts%20on%20Software%20Engineering" id="wpa2a_12"><img src="http://www.u-g-h.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.u-g-h.com/2008/03/28/facts-on-software-engineering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 ways to improve your code</title>
		<link>http://www.u-g-h.com/2008/03/10/10-ways-to-improve-your-code/</link>
		<comments>http://www.u-g-h.com/2008/03/10/10-ways-to-improve-your-code/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 17:48:59 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[advice]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[improve]]></category>

		<guid isPermaLink="false">http://www.u-g-h.com/index.php/2008/03/10/10-ways-to-improve-your-code/</guid>
		<description><![CDATA[Interesting post on The Reg about Neil Ford&#8216;s talk about how to improve you code. The talk was aimed at Java developers but there&#8217;s good advice for everyone in there. Here&#8217;s what he said in a nutshell: Write tests before writing the code Use static analysis tools Practice &#8220;good citizenship&#8221; by paying attention to how [...]]]></description>
			<content:encoded><![CDATA[<p>Interesting post on The Reg about <a  href="http://www.nealford.com/my/bio.htm">Neil Ford</a>&#8216;s talk about how to improve you code. The talk was aimed at <a  href="http://java.sun.com/">Java</a> developers but there&#8217;s good advice for everyone in there. Here&#8217;s what he said in a nutshell:</p>
<ol>
<li>Write tests before writing the code</li>
<li>Use static analysis tools</li>
<li>Practice &#8220;good citizenship&#8221; by paying attention to how well your objects interact with the outside world</li>
<li>Avoid indulging in <a  href="http://benpryor.com/blog/2007/12/03/the-prime-directive-of-software-development/">speculative software development</a></li>
<li>Simplify essential complexity and kill accidental complexity</li>
<li>Challenge programming conventions</li>
<li>Embrace single level of abstraction principle</li>
<li>Leverage existing platforms with languages targeted at specific problems and applications</li>
<li>Learn every nuance of the languages you are using</li>
<li>Change your perspective and consider &#8220;<a  href="http://en.wikipedia.org/wiki/Antiobjects">antiobjects</a>&#8220;</li>
</ol>
<p>Phew . . I actually typed those out on my <a  href="http://www.buy.com/cat/laptop-computers/212.html">notebook computer</a> was reading them off my desktop. There&#8217;s some definite wisdom in there. I don&#8217;t know if any of your cringed because you were guilty of breaking some of those in the past. I know I have. Read the complete synopsis <a  href="http://www.regdeveloper.co.uk/2008/03/10/ten_ways_to_improve_code/">here</a>.</p>
<p><a  class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.u-g-h.com%2F2008%2F03%2F10%2F10-ways-to-improve-your-code%2F&#038;title=10%20ways%20to%20improve%20your%20code" id="wpa2a_14"><img src="http://www.u-g-h.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.u-g-h.com/2008/03/10/10-ways-to-improve-your-code/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AJAX attacks and how to mitigate against them</title>
		<link>http://www.u-g-h.com/2008/02/18/ajax-attacks-and-how-to-mitigate-against-them/</link>
		<comments>http://www.u-g-h.com/2008/02/18/ajax-attacks-and-how-to-mitigate-against-them/#comments</comments>
		<pubDate>Mon, 18 Feb 2008 10:06:52 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[advice]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.u-g-h.com/index.php/2008/02/18/ajax-attacks-and-how-to-mitigate-against-them/</guid>
		<description><![CDATA[Excellent post on The Register entitled Reduce your exposure to AJAX threats, which talks about three pieces of advice you need to keep in mind when developing AJAX applications. There&#8217;s nothing new in terms of security principles, just an application to the fact that a good portion of AJAX applications work on the client&#8217;s browser [...]]]></description>
			<content:encoded><![CDATA[<p>Excellent post on <a  href="http://www.regdeveloper.co.uk">The Register</a> entitled <a  href="http://www.regdeveloper.co.uk/2008/02/18/simple_ajax_security/">Reduce your exposure to AJAX threats</a>, which talks about three pieces of advice you need to keep in mind when developing <a  href="http://en.wikipedia.org/wiki/AJAX">AJAX</a> applications. There&#8217;s nothing new in terms of security principles, just an application to the fact that a good portion of AJAX applications work on the client&#8217;s browser and so are open to client-side manipulation. And if you are using a toolkit that generates AJAX for you, you may not realise how much you are giving away. Here are the main points:</p>
<ol>
<li><strong>Know where it runs</strong>: If you&#8217;re using a toolkit like the <a  href="http://code.google.com/webtoolkit/">Google Web Toolkit</a>, part of your Java will be compiled to Javascript and executed on the client. Presumably the same happens if you <a  href="http://www.asp.net/ajax/">ASP.Net AJAX Toolkit</a>. Make sure you understand which parts of the code are exposed to the user and can therefore be maniuplated and ALWAYS validate/authenticate any responses you get on the server.</li>
<li><strong>Keep data seperate from code</strong>: The client and server portion of your application will be exchanging data, and potentially code (thanks to the &#8220;<a  href="http://www.magic.co.uk/magic.asp">magic</a>&#8221; that? our rich DOM-based paradigms offer today). Make sure the data you exchange never gets executed or used before it is validated. This protects you from <a  href="http://www.google.co.uk/search?hl=en&#038;q=injection+attacks&#038;meta=">injection-type attacks</a>, regardless on the data transport technology you are using. Always assume your data is carrying a dangerous payload and needs to be cleaned. This will protect your code in the long run.</li>
<li><strong>Beware encoding</strong>: If your data is encoded, then this makes it harder for you to see what&#8217;s being sent back and forth. Encoding can be broken relatively easily in this case as the client code is visible to anyone who wants to crack your application. If you do use encoding, make sure you are explicit at both ends as to what you are using and make the <a  href="http://wrapper.askmen.com/s?from=http%3A%2F%2Fwww.askmen.com%2Fmoney%2Fsuccessful%2Fsuccess5.html&#038;siteId=9557&#038;size=entryinterstitial&#038;cKey=7288867-7091363931203329136670&#038;docTitle=AskMen.com%20-%20Handshake">handshake</a> between your applications &#8220;firm&#8221;.</li>
</ol>
<p>I learnt quite a bit about how dangerous AJAX can be while building <a  href="http://www.wpauctions.com/">WP Auctions</a>, but it&#8217;s good to see the risks articulated by someone else. Unfortunately, AJAX application are easier to break than? <a  href="http://www.boyles.com/">discount furniture</a>, so full awareness of the risks you are exposing yourself and your clients to is of paramount importance. The good news is that if you understand what you&#8217;re doing, <a  href="http://blog.tmcnet.com/blog/rich-tehrani/is-ajax-our-future.html">AJAX gives you the ability </a>to provide a rich experience in a technology-agnostic way to potentially millions of users.</p>
<p><a  class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.u-g-h.com%2F2008%2F02%2F18%2Fajax-attacks-and-how-to-mitigate-against-them%2F&#038;title=AJAX%20attacks%20and%20how%20to%20mitigate%20against%20them" id="wpa2a_16"><img src="http://www.u-g-h.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.u-g-h.com/2008/02/18/ajax-attacks-and-how-to-mitigate-against-them/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Forays into AJAX</title>
		<link>http://www.u-g-h.com/2008/02/01/forays-into-ajax/</link>
		<comments>http://www.u-g-h.com/2008/02/01/forays-into-ajax/#comments</comments>
		<pubDate>Sat, 02 Feb 2008 00:23:29 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[WP Auctions]]></category>

		<guid isPermaLink="false">http://www.u-g-h.com/index.php/2008/02/01/forays-into-ajax/</guid>
		<description><![CDATA[I&#8217;ve recently had the opportunity to learn more about AJAX. For those unfamiliar with the term, it&#8217;s a web technique whereby web pages can make asynchronous calls to backend services to present functionality to the user without having to refresh the page all the time. I did this while developing functionality for my latest WordPress [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently had the opportunity to learn more about <a  href="http://en.wikipedia.org/wiki/AJAX">AJAX</a>. For those unfamiliar with the term, it&#8217;s a web technique whereby web pages can make asynchronous calls to backend services to present functionality to the user without having to refresh the page all the time. I did this while developing functionality for my latest WordPress plugin: <a  href="http://www.wpauctions.com/">WP Auctions</a>; a plugin that lets you run auctions fee free on your blog. (It&#8217;s running in the sidebar if you want to take a look)</p>
<p>The plugin makes extensive use of the <a  href="http://www.prototypejs.org/">Prototype Javascript framework</a> which is a toolkit that provides a number of Javascript functions which work across multiple browsers. The function I used most was the <a  href="http://www.prototypejs.org/api/ajax/request">Ajax.Request function</a> that handles all the communication between browser and server. The popup functionality which comes into place when you click the &#8220;Bid Now&#8221; button actually uses 3 discrete AJAX functions to build up the screen, one to show the auction details, one to display bids on it and the other to display other auctions in the popup. There&#8217;s also another AJAX function that lets users bid on an auction. This means that users can perform any function they need without having to refresh the page or leave the website. Cool huh?</p>
<p>The main thing to remember with AJAX is never to rely on front-end validation for user input. An AJAX request can come from anywhere on the web; and there&#8217;s no guarantee that it&#8217;s coming from your code. So never assume, always validate .. it&#8217;s safer in the long run.</p>
<p>btw, if you want an invitation to the beta test, <a  href="http://demotest.wpauctions.com/wp-auctions-plugin-beta/">click here</a>.</p>
<p><a  class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.u-g-h.com%2F2008%2F02%2F01%2Fforays-into-ajax%2F&#038;title=Forays%20into%20AJAX" id="wpa2a_18"><img src="http://www.u-g-h.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.u-g-h.com/2008/02/01/forays-into-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; Want to create a graph?</title>
		<link>http://www.u-g-h.com/2007/12/02/php-want-to-create-a-graph/</link>
		<comments>http://www.u-g-h.com/2007/12/02/php-want-to-create-a-graph/#comments</comments>
		<pubDate>Sun, 02 Dec 2007 13:28:53 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[graphs]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[postgraph]]></category>
		<category><![CDATA[widgets]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.u-g-h.com/index.php/2007/12/02/php-want-to-create-a-graph/</guid>
		<description><![CDATA[Last night I wanted to create a WordPress widget for my brother in law, Randolph who has decided to ask people who ask him what he wants for Xmas to donate cash towards his new laptop. It&#8217;s a bit rough as I can&#8217;t really dedicate time to it at the moment, but I wanted to [...]]]></description>
			<content:encoded><![CDATA[<p>Last night I wanted to create a WordPress widget for my brother in law, <a  href="http://www.familybusuttil.com/randolph/">Randolph</a> who has decided to ask people who ask him what he wants for Xmas to donate cash towards his new laptop. It&#8217;s a bit rough as I can&#8217;t really dedicate time to it at the moment, but I wanted to share a cool library for creating graphs that made the whole thing so much easier for me. It&#8217;s called <a  href="http://www.qualityunit.com/postgraph/">PostGraph</a> and lets you create graphs really easily. It&#8217;s not as sophisticated as some of the others I&#8217;ve seen, (I was particularly impressed by <a  href="http://www.maani.us/charts/index.php">PHP/SWF charts</a>), but it&#8217;s free, so you can&#8217;t really knock it.</p>
<p>I&#8217;ll clean it up in the New Year, just after I&#8217;ve finished off some other things (<a  href="http://www.everybodygoto.com/">Hyder</a> knows exactly what I&#8217;m talking about), and then package it up so others can use it. You can use it get get people to donate towards a gift, a holiday or even a wedding present, just like <a  href="http://rory.streetfamily.info/">Rory</a> did. Thanks for the inspiration mate!</p>
<p><a  class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.u-g-h.com%2F2007%2F12%2F02%2Fphp-want-to-create-a-graph%2F&#038;title=PHP%20%26%238211%3B%20Want%20to%20create%20a%20graph%3F" id="wpa2a_20"><img src="http://www.u-g-h.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.u-g-h.com/2007/12/02/php-want-to-create-a-graph/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

