<?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"
	>

<channel>
	<title>Archgrove - Implicit Definition</title>
	<atom:link href="http://www.archgrove.co.uk/feed" rel="self" type="application/rss+xml" />
	<link>http://www.archgrove.co.uk</link>
	<description>Literature, Programming, Mathematics. They're not so different.</description>
	<pubDate>Mon, 21 Jul 2008 19:11:16 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Woops</title>
		<link>http://www.archgrove.co.uk/weblog/2008/07/21/woops</link>
		<comments>http://www.archgrove.co.uk/weblog/2008/07/21/woops#comments</comments>
		<pubDate>Mon, 21 Jul 2008 19:11:16 +0000</pubDate>
		<dc:creator>Adam Wright</dc:creator>
		
		<category><![CDATA[Metapost]]></category>

		<guid isPermaLink="false">http://www.archgrove.co.uk/?p=90</guid>
		<description><![CDATA[It may be the case that during the last software update, I neglected to check the behaviour of a new FTP client I was using, and deleted the images folder that hosts the post images for this site. It may also be the case that I didn&#8217;t have backups of these images.
I&#8217;ve not lost data [...]]]></description>
			<content:encoded><![CDATA[<p>It may be the case that during the last software update, I neglected to check the behaviour of a new FTP client I was using, and deleted the images folder that hosts the post images for this site. It may also be the case that I didn&#8217;t have backups of these images.</p>
<p>I&#8217;ve not lost data due to lack of backups in five odd years, since I constructed a vastly improved backup infrastructure/version control system. As such, I&#8217;m refusing to confirm this latest idiocy.</p>
<p>On the plus side, these hypothetical lost images are not of great import.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.archgrove.co.uk/weblog/2008/07/21/woops/feed</wfw:commentRss>
		</item>
		<item>
		<title>Other people whining on wine</title>
		<link>http://www.archgrove.co.uk/weblog/2008/07/17/other-people-whining-on-wine</link>
		<comments>http://www.archgrove.co.uk/weblog/2008/07/17/other-people-whining-on-wine#comments</comments>
		<pubDate>Thu, 17 Jul 2008 20:00:47 +0000</pubDate>
		<dc:creator>Adam Wright</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.archgrove.co.uk/?p=88</guid>
		<description><![CDATA[The NYT&#8217;s Freakonomics pointed me at something I think we&#8217;ve all suspected for years - Expensive wine is only worth it if you&#8217;ve either trained a highly educated palette (and we&#8217;re talking lots of practice here), or you&#8217;re one of those people who just like&#8217;s pouring money into glasses so other people can see your [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://freakonomics.blogs.nytimes.com/2008/07/16/cheap-wine/">NYT&#8217;s Freakonomics</a> pointed me at something I think we&#8217;ve all suspected for years - Expensive wine is only worth it if you&#8217;ve either trained a highly educated palette (and we&#8217;re talking lots of practice here), or you&#8217;re one of those people who just like&#8217;s pouring money into glasses so other people can see your glasses full of cash.</p>
<p>I don&#8217;t buy the highly expensive bottles (I&#8217;n not that rich, nor that trained), but when other people have been kind enough (or when I&#8217;ve drunk too many cheaper glasses and am in a suitable bar), I have indulged and come to the same conclusions. But I&#8217;ll add a corollary - on average, very cheap wines can be hit and mostly miss, especially in the realm of red. The value curve has it&#8217;s peak at about, for me, £10 to £15 a bottle.</p>
<p>Now, I certainly don&#8217;t think you can&#8217;t get decent wines for less (I have, do, and continue to), nor that every &#8220;mid price&#8221; bottle is better (some are dross). Just that if you do your research, that price point has the widest selection of bottles that taste well above their price range, without seeming ostentatious.</p>
<p>Note that I&#8217;m talking about wines bought from a store, not a restaurant. Wine by the bottle with a meal starts at about that range (and normally they&#8217;d have paid about a tenth of that for it).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.archgrove.co.uk/weblog/2008/07/17/other-people-whining-on-wine/feed</wfw:commentRss>
		</item>
		<item>
		<title>Whining on wine</title>
		<link>http://www.archgrove.co.uk/weblog/2008/07/15/whining-on-wine-2</link>
		<comments>http://www.archgrove.co.uk/weblog/2008/07/15/whining-on-wine-2#comments</comments>
		<pubDate>Tue, 15 Jul 2008 20:20:10 +0000</pubDate>
		<dc:creator>Adam Wright</dc:creator>
		
		<category><![CDATA[Wine]]></category>

		<guid isPermaLink="false">http://www.archgrove.co.uk/weblog/2008/07/15/whining-on-wine-2</guid>
		<description><![CDATA[Tonight&#8217;s wine: A 2006 Mendoza (Argentinean) Cabernet Sauvignon, &#8220;La Flor&#8221; from De Pulenta. One of a set of staple evening reds I&#8217;ve used this year for when I want wine without food, it stands alone very well. A touch acidic, but with good fruitiness (a tannic strawberry to my mouth, but I&#8217;ve never been a [...]]]></description>
			<content:encoded><![CDATA[<p>Tonight&#8217;s wine: A 2006 Mendoza (Argentinean) Cabernet Sauvignon, &#8220;La Flor&#8221; from De Pulenta. One of a set of staple evening reds I&#8217;ve used this year for when I want wine without food, it stands alone very well. A touch acidic, but with good fruitiness (a tannic strawberry to my mouth, but I&#8217;ve never been a big fan of the &#8220;Hint of wild raspberries on a wet spring morning&#8221; descriptions). Has a sweet nuttiness, and works well in small doses - a solid slow evening glass.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.archgrove.co.uk/weblog/2008/07/15/whining-on-wine-2/feed</wfw:commentRss>
		</item>
		<item>
		<title>Whining on wine</title>
		<link>http://www.archgrove.co.uk/weblog/2008/07/11/whining-on-wine</link>
		<comments>http://www.archgrove.co.uk/weblog/2008/07/11/whining-on-wine#comments</comments>
		<pubDate>Fri, 11 Jul 2008 18:25:55 +0000</pubDate>
		<dc:creator>Adam Wright</dc:creator>
		
		<category><![CDATA[Wine]]></category>

		<guid isPermaLink="false">http://www.archgrove.co.uk/weblog/2008/07/14/whining-on-wine</guid>
		<description><![CDATA[Today&#8217;s wine: A 2006 Rosemount (Australian) Pinot Noir. Picked up from the supermarket with dinner when I forgot to go to the wine merchant, and regretted; have had some 2006 Shiraz from the same estate in the past and found it excellent for the price point. This, costing circa £8.00, has no depth whatsoever, is [...]]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s wine: A 2006 Rosemount (Australian) Pinot Noir. Picked up from the supermarket with dinner when I forgot to go to the wine merchant, and regretted; have had some 2006 Shiraz from the same estate in the past and found it excellent for the price point. This, costing circa £8.00, has no depth whatsoever, is overly acidic, and has no fruit tones that I can detect. Disappointing - should have bought red food dye, vinegar and water.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.archgrove.co.uk/weblog/2008/07/11/whining-on-wine/feed</wfw:commentRss>
		</item>
		<item>
		<title>Closing the Windows</title>
		<link>http://www.archgrove.co.uk/weblog/2008/02/15/closing-the-windows</link>
		<comments>http://www.archgrove.co.uk/weblog/2008/02/15/closing-the-windows#comments</comments>
		<pubDate>Fri, 15 Feb 2008 19:28:26 +0000</pubDate>
		<dc:creator>Adam Wright</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.archgrove.co.uk/weblog/2008/02/15/closing-the-windows</guid>
		<description><![CDATA[After Windows Update toasted my Vista install last week (Twas impossible to login as the console,I could only recover by RDCing in and using System Restore), I bit the bullet and bought an iMac to use as my primary desktop. I&#8217;ll keep the Windows machine around for games and some development work.
Overall, I&#8217;m very happy [...]]]></description>
			<content:encoded><![CDATA[<p>After Windows Update toasted my Vista install last week (Twas impossible to login as the console,I could only recover by RDCing in and using System Restore), I bit the bullet and bought an iMac to use as my primary desktop. I&#8217;ll keep the Windows machine around for games and some development work.</p>
<p>Overall, I&#8217;m very happy (but then, I&#8217;ve been a Mac laptop user for years). The only problem is the TN panel screen, which has an annoying top to bottom gradient (some colours get very desaturated as you move down the screen). It&#8217;s not ideal, and less than I&#8217;d expect from Apple. However everything else is perfect, and as I&#8217;m no graphic designer, I can afford to live with it.</p>
<p>My first tiplet (which is no doubt very obvious to most people, and maybe even in the help files) is that you can save Automator workflows as application bundles. It&#8217;s significantly easier to achieve some small tasks (which don&#8217;t have control structures) with this mechanism - I currently use it to read me the RSS news headlines when the machine alarm goes off. Yes, this could be achieved with more traditional programming methods, but occasionally, graphical workflow tools are useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.archgrove.co.uk/weblog/2008/02/15/closing-the-windows/feed</wfw:commentRss>
		</item>
		<item>
		<title>Coarse classifications for bugs</title>
		<link>http://www.archgrove.co.uk/weblog/2008/02/09/coarse-classifications-for-bugs</link>
		<comments>http://www.archgrove.co.uk/weblog/2008/02/09/coarse-classifications-for-bugs#comments</comments>
		<pubDate>Sat, 09 Feb 2008 18:07:39 +0000</pubDate>
		<dc:creator>Adam Wright</dc:creator>
		
		<category><![CDATA[Computer Science]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[bugs]]></category>

		<category><![CDATA[Code]]></category>

		<category><![CDATA[dom]]></category>

		<guid isPermaLink="false">http://www.archgrove.co.uk/weblog/2008/02/09/coarse-classifications-for-bugs</guid>
		<description><![CDATA[As mentioned, some spare time at the moment is being spent investigating the mistakes other people make using the W3C DOM API. Having now looked at literally hundreds of separate bugs, I&#8217;ve begun to construct a coarse categorization for each. I don&#8217;t claim there&#8217;s anything novel here - in fact, most of us have these [...]]]></description>
			<content:encoded><![CDATA[<p>As mentioned, some spare time at the moment is being spent investigating the mistakes other people make using the <a href="http://www.w3.org/DOM/">W3C DOM API</a>. Having now looked at literally hundreds of separate bugs, I&#8217;ve begun to construct a coarse categorization for each. I don&#8217;t claim there&#8217;s anything novel here - in fact, most of us have these internal categories well defined. All I&#8217;m doing here is spitting out a semi-minimal collection of them, and giving each a title.</p>
<p>Some types of errors can be argued to fall into multiple groups - this is no bad thing. The idea, eventually, is to speak of how effective certain techniques are at preventing certain types of error.</p>
<p><strong>Errors of ignorance</strong><br />
<em>When you don&#8217;t know what you&#8217;re doing</em></p>
<p>A remarkable amount of bugs just boil down to raw incompetence. Harsh words, but in reality, we&#8217;ve all been there. Using languages and frameworks before we&#8217;ve actually performed some experiments, being thrown into fixing a problem in a system we&#8217;ve never seen before, being forced to render comment on a project before we&#8217;ve even seen a spec - all old stories for even the most talented developers. Errors of ignorance capture the problems you introduce in this state - using the wrong constructs, not knowing what frameworks actually do, and generalised language idiom failures.</p>
<p><strong>Errors of expectation</strong><br />
<em>When the outside world intrudes.</em></p>
<p>Most of the time, we&#8217;re dealing in some form with input in our programs. If we expect input in a certain format, and receive it in another, this is our fault - we need to be more robust. We might also <em>think</em> we&#8217;ll get input in a given format, but it&#8217;s subtly different.</p>
<p>We can also have expectations on what other people will provide for us, or the side effects they will have on the world. Any problems induced by our expectations differing from reality, I&#8217;m currently calling &#8220;Errors of expectation&#8221;.</p>
<p><strong>Errors of omission</strong><br />
<em>When you forget to handle something</em></p>
<p>Often, we know what we&#8217;re doing, we intend to do it, and then just forget - perhaps to handle an edge case, perhaps to release a resource. Our natural forgetfulness leads us into &#8220;Errors of omission&#8221;.</p>
<p>NB: This is currently my least favorite category, which I hope to kill off, but some bugs just fall into this group very naturally.</p>
<p><strong>Errors of intention</strong><br />
<em>When you just got it wrong.</em></p>
<p>These are what most people would call bugs - when the we, the programmer or designer, just get it wrong. Perhaps we thought the algorithm worked when it didn&#8217;t, perhaps our mathematics is just wrong, perhaps our expectations are mutually inconsistent. The code is doing exactly what we wanted - it is, in it&#8217;s way, flawless work. It just doesn&#8217;t do the right thing because, even having missed all the above classes of errors, we still didn&#8217;t know what the right thing was - we&#8217;ve committed an &#8220;Error of intention&#8221;.</p>
<p>This is my first attempt at a concise set of names to concepts I&#8217;ve been dealing with for years - it will be interesting to see how they evolve as I try and put it to use.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.archgrove.co.uk/weblog/2008/02/09/coarse-classifications-for-bugs/feed</wfw:commentRss>
		</item>
		<item>
		<title>Demons in DOM</title>
		<link>http://www.archgrove.co.uk/weblog/2008/01/30/demons-in-dom</link>
		<comments>http://www.archgrove.co.uk/weblog/2008/01/30/demons-in-dom#comments</comments>
		<pubDate>Wed, 30 Jan 2008 13:38:43 +0000</pubDate>
		<dc:creator>Adam Wright</dc:creator>
		
		<category><![CDATA[Computer Science]]></category>

		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.archgrove.co.uk/weblog/2008/01/30/demons-in-dom</guid>
		<description><![CDATA[At the moment, I’m spending spare moments collecting and collating idiomatic failures in Javascript (specifically, failures of DOM manipulation in Javascript). This is, alas, proving harder than I expected – bug database trawling is about as fun as it sounds and, more importantly, the bug databases don’t keep track of developmental bugs.
By idiomatic failures, I’m [...]]]></description>
			<content:encoded><![CDATA[<p>At the moment, I’m spending spare moments collecting and collating idiomatic failures in Javascript (specifically, failures of DOM manipulation in Javascript). This is, alas, proving harder than I expected – bug database trawling is about as fun as it sounds and, more importantly, the bug databases don’t keep track of developmental bugs.</p>
<p>By idiomatic failures, I’m referring to common mistakes and patterns that cause errors. Suitable examples from other languages would be</p>
<ul>
<li>In C, failing to account for the null string terminator</li>
<li>Buffer overruns, in C and C++</li>
<li>Off by one errors in pretty much every language</li>
<li>With C++, delete’ing a new[]’d resource</li>
<li>In PHP and many other scripting languages, failing to account for the weakly typed comparisons (so you forget that 0, null and the empty string are treated as semantically the same under comparison, but are distinct in your program logic).</li>
</ul>
<p>These are the building blocks of certain types of program failure –often, when debugging, one of these type of error is the cause.</p>
<p>Of course, I’ve run into these many times myself, but that doesn’t really say much about the commonality of the problem; I may be a particularly poor programmer. So, I’ve been spelunking around bug databases for long running open source projects (i.e. the Javascript libraries behind Ruby on Rails); this is proving somewhat fruitful, but it’s a statistically invalid sample. As mentioned, the bug databases only tend to get populated by bugs in release versions, and then only the bugs that people have bothered to report. If a developer finds a bug whilst he’s developing, these are often not added – even if it took days to track down. Moreover, if they find a bug in a release version themselves, they often quietly fix it. Bugs that only occur rarely and are not repeatable are added almost never.</p>
<p>In a way, this is quite good – the failures I’m seeing are the ones that escaped testing, escaped the eyes of the developers, yet blew up in a users face. These are the hard to see bugs – the most annoying of the species. On the other side, this is quite bad – I miss a huge subset of bugs that fall into my class of interest.</p>
<p>Of course, these types of problems could be considered language defects – stupid mis-features that bite people again and again specifically because they are so artificial. After I have a relatively complete map of these failures, I’m going to move onto logical failures and failures of design that are common within Javascript/DOM – i.e. conceptual black holes that people are repeatedly sucked into, the actual failures of programmers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.archgrove.co.uk/weblog/2008/01/30/demons-in-dom/feed</wfw:commentRss>
		</item>
		<item>
		<title>Code update</title>
		<link>http://www.archgrove.co.uk/weblog/2008/01/19/code-update</link>
		<comments>http://www.archgrove.co.uk/weblog/2008/01/19/code-update#comments</comments>
		<pubDate>Sat, 19 Jan 2008 21:52:41 +0000</pubDate>
		<dc:creator>Adam Wright</dc:creator>
		
		<category><![CDATA[Metapost]]></category>

		<guid isPermaLink="false">http://www.archgrove.co.uk/weblog/2008/01/19/code-update</guid>
		<description><![CDATA[As another preparatory step, the code base for this site has been replaced by the most recent Wordpress release (10,000 versions newer than my last, give or take a few). The shiny new theme is provided free by Tommaso Baldovino; I have the graphic design skills of a blind snail, so the provisioning of free [...]]]></description>
			<content:encoded><![CDATA[<p>As another preparatory step, the code base for this site has been replaced by the most recent Wordpress release (10,000 versions newer than my last, give or take a few). The shiny new theme is provided free by Tommaso Baldovino; I have the graphic design skills of a blind snail, so the provisioning of free work by talented designers is a true blessing.</p>
<p>Comments are now being checked by the built-in Wordpress Akismet spam checking engine. If anyone has any trouble, just drop me a line.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.archgrove.co.uk/weblog/2008/01/19/code-update/feed</wfw:commentRss>
		</item>
		<item>
		<title>Cleanup</title>
		<link>http://www.archgrove.co.uk/weblog/2008/01/16/cleanup</link>
		<comments>http://www.archgrove.co.uk/weblog/2008/01/16/cleanup#comments</comments>
		<pubDate>Wed, 16 Jan 2008 19:10:50 +0000</pubDate>
		<dc:creator>Adam Wright</dc:creator>
		
		<category><![CDATA[Metapost]]></category>

		<guid isPermaLink="false">http://www.archgrove.co.uk/weblog/2008/01/16/cleanup</guid>
		<description><![CDATA[I&#8217;ve been expunging some site noise recently; defective posts that link to things that never happened. I&#8217;ve left the vast majority of the content (even when I really dislike what I wrote), but I wanted to remove the temporal references that point to nowhere (&#8221;I&#8217;ll post this then&#8221;, but didn&#8217;t).
A good education in what sort [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been expunging some site noise recently; defective posts that link to things that never happened. I&#8217;ve left the vast majority of the content (even when I really dislike what I wrote), but I wanted to remove the temporal references that point to nowhere (&#8221;I&#8217;ll post this then&#8221;, but didn&#8217;t).</p>
<p>A good education in what sort of posts don&#8217;t work, and preparation for writing again!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.archgrove.co.uk/weblog/2008/01/16/cleanup/feed</wfw:commentRss>
		</item>
		<item>
		<title>Showing off</title>
		<link>http://www.archgrove.co.uk/weblog/2008/01/13/showing-off</link>
		<comments>http://www.archgrove.co.uk/weblog/2008/01/13/showing-off#comments</comments>
		<pubDate>Sun, 13 Jan 2008 22:15:43 +0000</pubDate>
		<dc:creator>Adam Wright</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.archgrove.co.uk/weblog/2008/01/13/showing-off</guid>
		<description><![CDATA[
 
 
 
  Showing off
  
  Originally uploaded by archgrove
 

Insanely busy, but not dead. Here&#8217;s a photo from last summer. When I can spare the editing time, I&#8217;ll distill some of my academic writing into posts here.

]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px; margin-bottom: 10px;">
 <a href="http://www.flickr.com/photos/archgrove/549003170/" title="photo sharing"><img src="http://farm2.static.flickr.com/1326/549003170_5192f0bf5b_m.jpg" alt="" style="border: solid 2px #000000;" /></a><br />
 <br />
 <span style="font-size: 0.9em; margin-top: 0px;"><br />
  <a href="http://www.flickr.com/photos/archgrove/549003170/">Showing off</a><br />
  <br />
  Originally uploaded by <a href="http://www.flickr.com/people/archgrove/">archgrove</a><br />
 </span>
</div>
<p>Insanely busy, but not dead. Here&#8217;s a photo from last summer. When I can spare the editing time, I&#8217;ll distill some of my academic writing into posts here.<br />
<br clear="all" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.archgrove.co.uk/weblog/2008/01/13/showing-off/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
