<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Cardbox &#187; Development</title>
	<atom:link href="http://cardbox.wordpress.com/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://cardbox.wordpress.com</link>
	<description>Designing, building, selling and supporting a leading End User Database</description>
	<lastBuildDate>Wed, 27 May 2009 08:22:49 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language></language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='cardbox.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/175111b9cd5359f266000a5c47e37447?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Cardbox &#187; Development</title>
		<link>http://cardbox.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://cardbox.wordpress.com/osd.xml" title="Cardbox" />
		<item>
		<title>How to run VBScript from non-.VBS files</title>
		<link>http://cardbox.wordpress.com/2007/04/17/how-to-run-vbscript-from-non-vbs-files/</link>
		<comments>http://cardbox.wordpress.com/2007/04/17/how-to-run-vbscript-from-non-vbs-files/#comments</comments>
		<pubDate>Tue, 17 Apr 2007 19:06:57 +0000</pubDate>
		<dc:creator>cardbox</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cardbox.wordpress.com/2007/04/17/how-to-run-vbscript-from-non-vbs-files/</guid>
		<description><![CDATA[If your network administrator has prevented you from downloading or running .VBS files, you can get round this restriction by storing your VBScript in files of a different type: for example, .TXT.

Suppose that you want to run a file called C:\My Scripts\xxx.txt. The command to use is:
%SystemRoot%\System32\WScript.exe //E:vbscript "c:\My Scripts\xxx.txt"
You can create a Windows shortcut [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=47&subd=cardbox&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>If your network administrator has prevented you from downloading or running .VBS files, you can get round this restriction by storing your VBScript in files of a different type: for example, .TXT.</p>
<p><span id="more-47"></span></p>
<p>Suppose that you want to run a file called C:\My Scripts\xxx.txt. The command to use is:</p>
<pre><code>%SystemRoot%\System32\WScript.exe //E:vbscript "c:\My Scripts\xxx.txt"</code></pre>
<p>You can create a Windows shortcut for a command like this, to save typing it every time.</p>
<p>Here is a sample macro in Cardbox that launches an external .VBS script stored in a .TXT file:</p>
<pre><code>x="C:\My Scripts\xxx.txt"
Launch "%SystemRoot%\System32\WScript.exe","//E:vbscript """ &amp; x &amp; """"</code></pre>
<p>Use Run instead of Launch if you want your macro to wait until the external script has completed.</p>
<p><strong>Note</strong>: If you are using a Cardbox build earlier than 4249, you will have to replace <code>%SystemRoot%</code> with the actual name of your Windows directory: probably <code>C:\Windows</code>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cardbox.wordpress.com/47/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cardbox.wordpress.com/47/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cardbox.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cardbox.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cardbox.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cardbox.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cardbox.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cardbox.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cardbox.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cardbox.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cardbox.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cardbox.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=47&subd=cardbox&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cardbox.wordpress.com/2007/04/17/how-to-run-vbscript-from-non-vbs-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e2aed1be59489a1610b340cba3dc73ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cardbox</media:title>
		</media:content>
	</item>
		<item>
		<title>Amazon S3 and Cardbox</title>
		<link>http://cardbox.wordpress.com/2006/07/11/amazon-s3-and-cardbox-2/</link>
		<comments>http://cardbox.wordpress.com/2006/07/11/amazon-s3-and-cardbox-2/#comments</comments>
		<pubDate>Tue, 11 Jul 2006 09:21:55 +0000</pubDate>
		<dc:creator>cardbox</dc:creator>
				<category><![CDATA[Amazon S3]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">https://cardbox.wordpress.com/2006/07/11/amazon-s3-and-cardbox-2/</guid>
		<description><![CDATA[The project to add Amazon S3 facilities to Cardbox has been completed. (If you&#8217;re not familiar with Cardbox then you can read about it here and get a free 1-month trial licence here).
Amazon S3 is storage for the Internet. Secure, reliable and cheap, it can be used to store any amount of data, at any [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=28&subd=cardbox&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The project to add Amazon S3 facilities to Cardbox has been completed. (If you&#8217;re not familiar with Cardbox then you can read about it <a href="http://www.cardbox.com" target="_blank">here</a> and get a free 1-month trial licence <a href="http://www.cardbox.com/sales/trynow.htm" target="_blank">here</a>).</p>
<p><a href="http://s3.amazonaws.com/" title="Amazon S3 web site" target="_blank">Amazon S3</a> is storage for the Internet. Secure, reliable and cheap, it can be used to store any amount of data, at any time, and retrieve it from anywhere on the web. There is no sign-up fee and you pay only for the storage you actually use.</p>
<p>In the <a href="http://www.cardbox.com/downloading/updates.htm" target="_blank">new build of Cardbox</a> that is released today, we have incorporated the following features to make use of S3:</p>
<p><b>The Cardbox Server</b> (used in multi-user and networking systems) can be configured to back up your databases automatically, at specified intervals, to your S3 storage space. There is no interruption in service during a backup, because the Cardbox Server can back up a database even if it is in use. You can have a single backup copy of the latest version of each database, or you can have a separate backup made each time that the database has changed.</p>
<p><b>Cardbox itself</b> has a new command that lets you view your S3 storage space and upload, download or delete files. Apart from managing the Cardbox Server&#8217;s backups, this also allows you to make backups of files on your own computer.</p>
<p><b>Cardbox&#8217;s VBScript macro system</b> has been expanded to allow you to manage your S3 storage space programmatically. This offers interesting prospects for the future: for instance, a photographic database that stores and displays each photograph at a reasonable screen resolution while the original full-resolution images are held in an archive on S3.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cardbox.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cardbox.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cardbox.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cardbox.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cardbox.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cardbox.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cardbox.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cardbox.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cardbox.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cardbox.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cardbox.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cardbox.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=28&subd=cardbox&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cardbox.wordpress.com/2006/07/11/amazon-s3-and-cardbox-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e2aed1be59489a1610b340cba3dc73ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cardbox</media:title>
		</media:content>
	</item>
		<item>
		<title>Amazon S3 and Cardbox</title>
		<link>http://cardbox.wordpress.com/2006/06/13/amazon-s3-and-cardbox/</link>
		<comments>http://cardbox.wordpress.com/2006/06/13/amazon-s3-and-cardbox/#comments</comments>
		<pubDate>Tue, 13 Jun 2006 20:05:04 +0000</pubDate>
		<dc:creator>cardbox</dc:creator>
				<category><![CDATA[Amazon S3]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">https://cardbox.wordpress.com/2006/06/13/amazon-s3-and-cardbox/</guid>
		<description><![CDATA[Amazon S3 is storage for the Internet. Secure, reliable and cheap, it can be used to store any amount of data, at any time, and retrieve it from anywhere on the web. There is no sign-up fee and you pay only for the storage you actually use.
This posting describes how we are enhancing Cardbox to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=26&subd=cardbox&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://s3.amazonaws.com" title="Amazon S3 web site" target="_blank">Amazon S3</a> is storage for the Internet. Secure, reliable and cheap, it can be used to store any amount of data, at any time, and retrieve it from anywhere on the web. There is no sign-up fee and you pay only for the storage you actually use.</p>
<p>This posting describes how we are enhancing Cardbox to take advantage of the facilities that Amazon S3 offers.</p>
<p><i>If you don&#8217;t already know Cardbox, it&#8217;s a fast, straightforward database designed for end users. Anything you can list, Cardbox can store. Its particular strengths are powerful text indexing and the ability to attach photographs and scanned documents to every record. Cardbox is used by everyone from individuals and small businesses to multinationals and United Nations agencies, and there are Cardbox users on every continent including Antarctica. The <a href="http://www.cardbox.com" target="_blank">Cardbox web site</a> tells you more.</i></p>
<p><span id="more-26"></span>When Amazon S3 was released we knew immediately that this was something we wanted to use. The next question was: faced with unlimited, reliable data storage space, how could we extend Cardbox to take advantage of it? We had several ideas, but the one that promised the greatest benefits to the largest number of users was automated backup. (We will describe the other ideas in future posts).</p>
<p>The trouble with backup has traditionally been that it is something that someone has to <b>do</b>. Except in the most sophisticated organisations, someone ends up physically having to burn a CDROM or DVD, or even manipulate magnetic tape. Even when the backup has been done the problems are not over, because the backup has to be stored somewhere safe but accessible, organised so that you can find the right DVD again when you need it.</p>
<h4>Automated backups</h4>
<p>With Amazon S3, we have been able to add an automated backup facility to the Cardbox Server. In the Server&#8217;s configuration pages you tell it how often you want to back up, and the name of the location in S3 where you want the backups to go. And that is all. Cardbox does the rest.</p>
<p>The beautiful thing about letting the Cardbox Server do its own backups is that service doesn&#8217;t need to be interrupted while the backup is going on. Cardbox users can continue searching and browsing their data, and even making changes, during the backup. Cardbox knows enough about its own behaviour to be able to store the changes that users make while at the same time ensuring that the backup is a consistent picture of the entire database at one particular instant.</p>
<h4>Retrieving from backup</h4>
<p>The part of Cardbox that users actually see and interact with is the Cardbox Client &#8211; which we usually just call &#8220;Cardbox&#8221;, full stop, since as far as most people are concerned, the Cardbox Client <b>is</b> Cardbox.</p>
<p>We have extended the Cardbox Client in two ways. First of all, we have added commands to Cardbox&#8217;s VBScript macro system to allow objects to be listed, downloaded, and deleted (we have also included uploading, in case sophisticated macro writers need it). Secondly, we are implementing a window that shows a simple listing of all backed-up files and lets the user download or delete selected files. (Typically this feature would be under the control of a responsible administrator, since once an object is deleted from S3, it is deleted).</p>
<h4>Summary</h4>
<ul>
<li>Automatic backup at regular intervals.</li>
<li>Secure and reliable storage on Amazon S3.</li>
<li>Simple viewing and management of all backed-up files.</li>
<li>Downloading on demand.</li>
</ul>
<h4>Things to be done before release</h4>
<p>The features described here are in our internal development version of Cardbox. They will be incorporated in the production version (and formally announced to Cardbox users) soon. The principal work to be done is to add appropriate pages to the Tools &gt; Options and Server Configuration windows, and to add a new command (Tools &gt; Management &gt; Amazon S3) to allow interactive management of backup files.</p>
<h4>The future</h4>
<p>The main future enhancement we are considering is incremental backup. If you have a database of 100,000 photographs or documents, the chances are that only a few will be added or deleted in one day, meaning that out of a 10GB database, only a few megabytes have changed. Sending only the changes to Amazon S3 will save time and reduce data transmission costs. This feature already exists in Cardbox (if you download a database to your PC from a server with Tools &gt; Management &gt; Download, only the changes get downloaded) but we are waiting to implement the equivalent in S3 until (1) Amazon add some necessary features to their service and (2) enough Cardbox users are using the service to make the development worthwhile.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cardbox.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cardbox.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cardbox.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cardbox.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cardbox.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cardbox.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cardbox.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cardbox.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cardbox.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cardbox.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cardbox.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cardbox.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=26&subd=cardbox&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cardbox.wordpress.com/2006/06/13/amazon-s3-and-cardbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e2aed1be59489a1610b340cba3dc73ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cardbox</media:title>
		</media:content>
	</item>
		<item>
		<title>Keeping databases consistent</title>
		<link>http://cardbox.wordpress.com/2006/05/09/amazons-inconsistent-databases/</link>
		<comments>http://cardbox.wordpress.com/2006/05/09/amazons-inconsistent-databases/#comments</comments>
		<pubDate>Tue, 09 May 2006 07:54:03 +0000</pubDate>
		<dc:creator>cardbox</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">https://cardbox.wordpress.com/2006/05/09/amazons-inconsistent-databases/</guid>
		<description><![CDATA[We&#39;ve been experimenting with using Amazon Web Services to extract book data from Amazon&#39;s database and import them into Cardbox. It all fits into a nice little macro and we&#39;ll publish the macro in the Knowledge Base in due course. You will be able to type in an ISBN and the macro will fill in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=21&subd=cardbox&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>We&#39;ve been experimenting with using <a href="http://aws.amazon.com" target="_blank">Amazon Web Services</a> to extract book data from Amazon&#39;s database and import them into Cardbox. It all fits into a nice little macro and we&#39;ll publish the macro in the Knowledge Base in due course. You will be able to type in an ISBN and the macro will fill in all the book details for you. If you have a barcode scanner then you won&#39;t even need to type.<br />
In the course of creating the macro we noticed that there was no way for us to get hold of the synopsis that appears on Amazon&#39;s book pages. Further investigation showed that the synopsis was available if we looked at amazon.com but not if we looked at amazon.co.uk. A thread on <a href="http://developer.amazonwebservices.com/connect/thread.jspa?messageID=38202锺" title="You probably need to sign up as an Amazon developer before you can read this." target="_blank">the relevant Amazon forum</a> says, essentially, &quot;this behavior is by design&quot; (to use a favourite phrase of Microsoft&#39;s).</p>
<p>We thought we&#39;d investigate further. Here are the details of a book published in the UK, as shown in amazon.co.uk and amazon.com.</p>
<table border="1" cellpadding="4" cellspacing="0">
<tr>
<th></th>
<th>amazon.co.uk</th>
<th>amazon.com</th>
</tr>
<tr>
<td>ISBN</td>
<td colspan="2">1852851880</td>
</tr>
<tr>
<td>Author</td>
<td colspan="2">Halik Kochanski</td>
</tr>
<tr>
<td>Title</td>
<td colspan="2">Sir Garnet Wolseley: Victorian Hero</td>
</tr>
<tr>
<td>Publisher</td>
<td>Hambledon Continuum</td>
<td>Hambledon &amp; London</td>
</tr>
<tr>
<td>Date</td>
<td>1 July 1999</td>
<td>April 2001</td>
</tr>
<tr>
<td>Pages</td>
<td>351</td>
<td>204</td>
</tr>
<tr>
<td>Subjects</td>
<td>1833-1913, Biography, Biography &amp; Autobiography, Biography/Autobiography,        Biography: historical, General, Generals, Great Britain, Great Britain &#8211;        History &#8211; 19th Century, Historical &#8211; General, History, History &#8211; General        History, Ireland, Military, Military History (General), United Kingdom,        Great Britain, Victoria, 1837-1901, Viscount,, Warfare &amp; Defence, Wolseley,        Garnet, Wolseley, Garnet Wolseley,</td>
<td>1833-1913, Biography, Biography &amp; Autobiography, Biography/Autobiography,        General, Generals, Great Britain, Great Britain &#8211; History &#8211; 19th Century,        Historical &#8211; General, History, History &#8211; General History, Military, Military        History (General), Victoria, 1837-1901, Viscount,, Wolseley, Garnet Wolseley,,        Biography &amp; Autobiography / Historical, Wolseley, Garnet Wolseley</td>
</tr>
<tr>
<td>Description<br />
(amazon.com only)</td>
<td colspan="2"><i>&quot;Before leaving England he placed his finger on a map of Egypt at the        point now known to fame as Tel-El-Kebir, and said &#39;That is where I shall        beat Arabi&#39;&quot;.</i>No Victorian was a greater hero for a longer period than Sir Garnet Wolseley        (1833-1913). The leading British general of the second half of the nineteenth        century, he personally took part in a significantly influenced every campaign        between the Crimea and the Boer War. To Disraeli he was &lsquo;Our Only        General&rsquo;, while to many soldiers and to the public at large he epitomised        the virtues they most admired: exceptional personal bravery and an unshakeable        belief in the virtues of the British Empire. The phrase &lsquo;All Sir Garnet&rsquo;        was a guarantee that everything was under control. Seen from another angle,        Wolseley&rsquo;s career reflects a number of weaknesses. To control a global        empire Britain had a powerful navy but only a small army. Its ability to        deploy a force of limited size throughout the world, almost always against        untrained and underequipped native armies, gave the dangerous and ultimately        disastrous illusion that Britain was as formidable by land as it was by        sea.</td>
</tr>
</table>
<p>Remember, this is the physically identical book. And yet there are significant differences between the entries. Even the number of pages is different!</p>
<p>This is a lesson for anyone planning a system round a database. <b>Never imagine that you can keep the same data in two places.</b> The data will diverge with time. Someone will change one copy and not the other; and then someone else will change the other copy too. After that, it is too late. No-one at Amazon is going to go through hundreds of thousands of inconsistent records, comparing them, checking with the publisher which one is correct, deciding which data to keep. It is simply too expensive. <b>The cost of reuniting disparate data exceeds the cost of entering the data in the first place.</b></p>
<p>Sometimes organisations with several offices optimistically think that they can keep their Cardbox databases synchronized between sites simply by regularly emailing changes to each other. We know from experience that this always fails in the end, when someone forgets to apply an update, or someone edits something he&#39;s not meant to edit. Unless you one site is the &quot;owner&quot; of the data and no-one else is allowed to make any changes at all, the only safe solution is connecting to a <a href="http://www.cardbox.com/cardbox/networking.htm" target="_blank">Cardbox Server</a> somewhere on the Internet. The Cardbox protocol is efficient, we tell them, and even a dial-up line will work&#8230;</p>
<p>Now we can show them that this is not just sales talk. No-one can accuse Amazon of being amateurs but, as this example shows, the hazards of split data afflict even the largest organisations and the damage can be effectively irreparable.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cardbox.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cardbox.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cardbox.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cardbox.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cardbox.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cardbox.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cardbox.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cardbox.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cardbox.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cardbox.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cardbox.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cardbox.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=21&subd=cardbox&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cardbox.wordpress.com/2006/05/09/amazons-inconsistent-databases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e2aed1be59489a1610b340cba3dc73ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cardbox</media:title>
		</media:content>
	</item>
		<item>
		<title>Metał English</title>
		<link>http://cardbox.wordpress.com/2006/04/24/metal-english/</link>
		<comments>http://cardbox.wordpress.com/2006/04/24/metal-english/#comments</comments>
		<pubDate>Mon, 24 Apr 2006 10:22:19 +0000</pubDate>
		<dc:creator>cardbox</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">https://cardbox.wordpress.com/2006/04/24/metal-english/</guid>
		<description><![CDATA[We&#39;re embarking on creating a &#34;polyglot&#34; Cardbox. The idea is that you right-click on the Cardbox title bar and get a list of available languages: pick one, and that&#39;s the language Cardbox will speak to you in from now on.
We&#39;re taking a collaborative route on this. Our idea is that a Latvian-speaking Cardbox user can [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=20&subd=cardbox&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>We&#39;re embarking on creating a &quot;polyglot&quot; Cardbox. The idea is that you right-click on the Cardbox title bar and get a list of available languages: pick one, and that&#39;s the language Cardbox will speak to you in from now on.</p>
<p>We&#39;re taking a collaborative route on this. Our idea is that a Latvian-speaking Cardbox user can get a message file from us (it&#39;s a big Word document) and fill in a blank column with his translations. He saves his work as a simple text file called cbxm0026.txt and gives it to us. We distribute it free&#8230; and suddenly it is possible for any Cardbox user to switch the user interface into Latvian.</p>
<p>There&#39;s a łot of cłeverness &iuml;ns&iuml;de Cardbox that&#39;s needed to make th&iuml;s połygłot user &iuml;nterface work, so we need to test &iuml;t ałł. How to test &iuml;t before any actuał transłat&iuml;ons ex&iuml;st?</p>
<p>Look closely at the question and you&#39;ll see the answer. Putting double dots on &quot;i&quot;s and slashes through &quot;l&quot;s is readable (as long as your browser can display eastern European characters) and it&#39;s a very easy translation to create: just do a couple of search-and-replace commands and you&#39;re there.</p>
<p>Of course, we had to call this new dialect of English something. In the end, remembering M&ouml;t&ouml;rhead and Motley Cr&uuml;e, the name was obvious. If you are a translator working on Cardbox and you right-click on the title bar, you get at least three options: English, English (United States), and English (Metal).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cardbox.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cardbox.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cardbox.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cardbox.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cardbox.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cardbox.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cardbox.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cardbox.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cardbox.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cardbox.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cardbox.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cardbox.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=20&subd=cardbox&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cardbox.wordpress.com/2006/04/24/metal-english/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e2aed1be59489a1610b340cba3dc73ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cardbox</media:title>
		</media:content>
	</item>
		<item>
		<title>How to improve OpenOffice&#8217;s blood supply</title>
		<link>http://cardbox.wordpress.com/2005/12/09/how-to-improve-openoffices-blood-supply/</link>
		<comments>http://cardbox.wordpress.com/2005/12/09/how-to-improve-openoffices-blood-supply/#comments</comments>
		<pubDate>Fri, 09 Dec 2005 11:29:36 +0000</pubDate>
		<dc:creator>cardbox</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://cardbox.wordpress.com/2005/12/09/how-to-improve-openoffices-blood-supply/</guid>
		<description><![CDATA[Writing in The Guardian, Andrew Brown wonders why OpenOffice, one of the flagships of the &#8220;replace Microsoft with open source&#8221; movement, is so bad. It is a question well worth asking, since in most discussions of open source software it is tacitly assumed that we are talking about nothing but a clash of business models [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=14&subd=cardbox&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Writing in The Guardian, <a title="If this suite's a success, why is it so buggy? " href="http://technology.guardian.co.uk/weekly/story/0,16376,1660763,00.html">Andrew Brown</a> wonders why OpenOffice, one of the flagships of the &#8220;replace Microsoft with open source&#8221; movement, is so bad. It is a question well worth asking, since in most discussions of open source software it is tacitly assumed that we are talking about nothing but a clash of business models and that the software that is on offer from both sides is essentially of equal quality &#8211; since if you have enough programmers then they&#8217;re bound to produce a product that works, aren&#8217;t they?</p>
<p><span id="more-14"></span>There is little dispute over the value of open source in tightly circumscribed projects with a well-defined function. If you want to create or display images in JPEG format, you would be mad not to use the <a title="Web site" href="http://www.ijg.org/">Independent JPEG Group</a>&#8217;s software. If you want to encrypt your data link using the Secure Sockets Layer standard, you would have to have a very good reason not to use the <a title="Web site" href="http://www.openssl.org/">OpenSSL</a> implementation. In both cases the projects are run by engineers for engineers and the economics make sense: in exchange for giving away the work I put into identifying and correcting a bug in IJG or OpenSSL, I get everyone else&#8217;s bug corrections free of charge. If I need to move my software project to another kind of computer system altogether then I will find that someone has already done the work for me as far as JPEG or SSL is concerned, or at least that someone is in the middle of the same move and we can share the work between us.</p>
<p>As software manufacturers we would like to sell software with no bugs; or failing that, software where we can find any bug that is reported, understand it and correct it. Using open source components lets us do this without having to worry about the quality control of our suppliers &#8211; or even their continued existence (Cardbox seems to outlive everything).</p>
<p>But as users? As a user of Mozilla Firefox I have no interest in the fact that the source code is available to me and even if I found out how to get it I wouldn&#8217;t help me much. For the inner core who work on the project, open source is a way of transcending corporate boundaries and getting a critical mass of people to work together, but for the people on the periphery the only benefits of open source are the indirect ones: good software, or cheap software, or software that is immune to the whims and fashions of the marketing people.</p>
<p>A living software project, like a living body, has to have a circulation. From the centre outwards, there flow improvements, extensions, corrections of bugs. From the periphery inwards, there flow discontents, complaints, anomalies and reports of bugs. Without both halves of the circulation the organism dies. A small project, like a small organism, can orchestrate this flow by diffusion: insects don&#8217;t need hearts. But when a project gets big then something needs to pump that stuff around, and the best pump is money. If a user whinges, you sympathize; if a paying customer whinges, you jump.</p>
<p>This leads to an apparent paradox: free software stagnates when not enough people pay for it.</p>
<p>Paid-for free software sounds like a contradiction in terms, especially if you have listened to too many Stallmanite zealots; but it is the reality of what is going on. Relatively few people use Linux; many more use Red Hat Linux, Debian Linux, Mandrake Linux, paying (one way or another) for someone else to sift through the various open-source tools and projects, find those that work, put them together, and make them easy to install.</p>
<p>Brown says &#8220;<em>[If OpenOffice 3.1 is a world-beater,] it will be because large companies such as Sun, Google, and IBM have decided that open source is the cheapest way to gang up on Microsoft, because it means they need spend nothing on support.</em>&#8221; Brown is right that big companies are driving the big open-source projects, but the rest is fantasy. What these companies want is what we as software manufacturers also want: a product that is under our control and where we know that we can correct any bug that arises or add any new feature that is needed. Far from &#8220;<em>spending nothing on support</em>&#8220;, the whole point is that open source frees us from the costs of proprietary software development and lets us spend <em>everything</em> on support: it is what differentiates us from our competitors who are selling identical software to us. And our customers don&#8217;t have to worry about us taking a weird strategic direction or just going bust, because even if we do then there will be plenty of other companies around who can support &#8220;our&#8221; software.</p>
<p>So what of OpenOffice? OpenOffice has a difficult task because it is &#8220;big&#8221; in a sense in which even Firefox and Linux aren&#8217;t big: the job of a browser is simple and the job of an operating system is simpler still, but modern office software is exceedingly complex and has a rich set of interactions with its users. But the real reason that OpenOffice has trouble fulfilling this task is that not enough people are <em>buying</em> it, so there is not enough money to drive the all-important &#8220;venous circulation&#8221; that carries complaints and bug reports back to the developers with enough force to get them corrected.</p>
<p>On a corporate level this will change. The more open-source software that Sun and IBM sell, the more incentive they will have for improving its quality and the better OpenOffice will become.</p>
<p>But what&#8217;s more interesting is how OpenOffice could move forward even without the involvement of the big companies. The &#8220;venous circulation&#8221; problem presents an opportunity to design a robust circulatory system that will let even the largest open source projects grow and thrive. Suppose that Andrew Brown identifies his five most irritating OpenOffice bugs and offers $1 for each of them to be solved. Suppose that thousands &#8211; eventually millions &#8211; of OpenOffice users sign up to the &#8220;$1-per-bug&#8221; project. Who can doubt that the oldest and most irritating bugs will get solved very soon indeed?</p>
<p>Microsoft is facing the same problem and it has deliberately strangled its own circulation: short-term survival but long-term suicide. Microsoft has not solved the problem of distinguishing bug reports from support requests &#8211; it is probably insoluble &#8211; and it can&#8217;t afford to give support free so it has to charge for it. Charging for support suppresses the vital flow of information, complaints and bugs without which any software project must eventually stagnate and die. If you don&#8217;t have a support contract then it can cost you as an individual $200 or more just to talk to Microsoft. They say they&#8217;ll refund that if it turns out to be a bug but that still isn&#8217;t much of an incentive for a user of Microsoft software to report anything. You could imagine Microsoft tweaking the figures to increase the incentive (&#8220;if it&#8217;s a new bug then we&#8217;ll pay you $2,000&#8243;) but the numbers are so big and the multiplier effect of those millions of users so enormous that they simply daren&#8217;t do it in case it goes wrong.</p>
<p>The open source world doesn&#8217;t have this kind of money worry. It can experiment with all sorts of ways of managing information flows, of sifting out the real bugs from a mass of misunderstandings or simple user errors (but even a common user error is valuable information for a developer). Above all it can try different ways of injecting just enough money into the system to allow for a strong circulation and healthy growth. The actual money mechanisms are all there already (look at PayPal) &#8211; all that&#8217;s needed is imagination and inventiveness and a willingness to experiment.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cardbox.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cardbox.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cardbox.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cardbox.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cardbox.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cardbox.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cardbox.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cardbox.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cardbox.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cardbox.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cardbox.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cardbox.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=14&subd=cardbox&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cardbox.wordpress.com/2005/12/09/how-to-improve-openoffices-blood-supply/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e2aed1be59489a1610b340cba3dc73ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cardbox</media:title>
		</media:content>
	</item>
		<item>
		<title>Escape from Windows</title>
		<link>http://cardbox.wordpress.com/2005/12/05/escape-from-windows-2/</link>
		<comments>http://cardbox.wordpress.com/2005/12/05/escape-from-windows-2/#comments</comments>
		<pubDate>Mon, 05 Dec 2005 11:20:31 +0000</pubDate>
		<dc:creator>cardbox</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Operating Systems]]></category>

		<guid isPermaLink="false">http://cardbox.wordpress.com/?p=6</guid>
		<description><![CDATA[We live from a Windows-only software product. I own shares in Apple. My dearest wish is that we should have a non-Windows version of Cardbox. Why? - and how can it be done? Apple's move to Intel processors is the key.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=6&subd=cardbox&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>We make our living from a program that runs on Windows. It is my dearest wish to see Cardbox running on something else. Why? &#8211; and how can it be achieved?</p>
<p>I am not actuated by great objections to the Evil Empire&#8217;s business methods (doubtless this is a moral defect in me) but Windows is crumbling under its own weight. Every time something is wrong, or over-complex, or incomprehensible in Windows, Microsoft add another layer of complexity to cover it up. For example, Windows has a way of requiring rebooting after almost any software update, however trivial it is. We are told that Windows Vista will contain additional programming to avoid this. I have seen this happen before and it is like finding a piece of rotten wood in your house and covering it up with waterproof paint. The rot doesn&#8217;t go away but you can&#8217;t see what it&#8217;s doing any more. The remedy for complexity is to paint more complexity on top&#8230; and when Windows finally collapses we don&#8217;t want to be buried in the rubble.</p>
<p>This is why the news that Apple is moving to Intel processors is so interesting to us. Most of the press coverage has been to do with the cost and performance implications of the move but the technical point is the really exciting one. It is already possible to run a limited set of Windows programs on Linux, in a limited way, using a software layer called WINE (I&#8217;m told that Cardbox 2.0 works under WINE but I don&#8217;t know about version 3.0). Now suppose that Apple puts its resources behind its own CIDER project:</p>
<ol>
<li><strong>Bronze Apple</strong>: Get as many Windows programs as you can to run on the Macintosh &#8220;out of the box&#8221; with no changes. When problems occur, cooperate with the manufacturers to find a way round them that doesn&#8217;t harm Windows compatibility. The programs will look more Windows-ish than Mac-ish but at least they&#8217;ll work, and a barrier that stops millions of users from even considering the Macintosh will be gone.</li>
<li><strong>Silver Apple</strong>: Now that software developers know that there&#8217;s a worthwhile market there, put resources into a hand-holding project that will help them produce Mac-aware versions of their programs. No revolutionary rewriting from the ground up, just adaptation to the Mac way of doing things so that a Macintosh user doesn&#8217;t have to make allowances for an alien program&#8217;s origins.</li>
<li><strong>Golden Apple</strong>: Encourage selected developers to go the whole hog and produce dedicated Macintosh versions of their software. The move to Intel makes the move easier technically, and the Silver Apple level will let the developers gauge the market and plan their investments accordingly.</li>
</ol>
<p>Result: insurance against a possible collapse of Windows, the removal of an artificial market barrier, and, once more and more programs stop being dependent on Windows, a big opportunity for Linux as well.</p>
<p>And what about Linux? The Cardbox Server already runs on both Windows and Linux, but there are three problems with moving Cardbox to Linux as well: no-one uses Linux on the desktop; we can&#8217;t write programs for the Linux user interface because there is no <em>one</em> such thing; and no-one wants to pay for Linux software anyway.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cardbox.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cardbox.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cardbox.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cardbox.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cardbox.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cardbox.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cardbox.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cardbox.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cardbox.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cardbox.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cardbox.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cardbox.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=6&subd=cardbox&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cardbox.wordpress.com/2005/12/05/escape-from-windows-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e2aed1be59489a1610b340cba3dc73ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cardbox</media:title>
		</media:content>
	</item>
		<item>
		<title>The 0th rule of bug assessment</title>
		<link>http://cardbox.wordpress.com/2005/12/02/the-0th-rule-of-bug-assessment/</link>
		<comments>http://cardbox.wordpress.com/2005/12/02/the-0th-rule-of-bug-assessment/#comments</comments>
		<pubDate>Fri, 02 Dec 2005 16:41:24 +0000</pubDate>
		<dc:creator>cardbox</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://cardbox.wordpress.com/2005/12/02/the-debugging-rule-that-comes-before-all-the-other-rules/</guid>
		<description><![CDATA[The 0th law of bugs is that most bugs, most of the time, do their damage invisibly.

Rule 0 of quality control is that if you see something go wrong, drop everything and find the underlying bug. If the problem disappears before the bug is found, then panic.
<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=5&subd=cardbox&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://blogs.msdn.com/larryosterman/archive/2005/11/27/497280.aspx">Larry Osterman&#8217;s WebLog</a> at Microsoft refers to an article by Eric Sink called <a href="http://software.ericsink.com/articles/Four_Questions.html">My Life as a Code Economist</a>. Sink&#8217;s thesis (endorsed by Osterman) is that it&#8217;s not always worth correcting bugs, because it may be cheaper or safer to leave them uncorrected.</p>
<p>Sink constructs a beautiful matrix of characteristics that determine whether you should try to correct a bug.</p>
<ol>
<li>Severity &#8211; When this bug happens, how bad is the impact?</li>
<li>Frequency &#8211; How often does this bug happen?</li>
<li>Cost &#8211; How much effort would be required to fix this bug?</li>
<li>Risk &#8211; What is the risk of fixing this bug?</li>
</ol>
<p>In good business school style, you plot each bug on a four-dimensional chart and use the chart to determine which bugs you should correct and which you shouldn&#8217;t.</p>
<p>But the most important question of all is missing:</p>
<p><strong>Question 0. Do you know exactly what is causing the bug, and how?</strong></p>
<p>If the answer is No, do not rest until the answer is Yes.</p>
<p><span id="more-5"></span>Here&#8217;s a really, really low-severity bug according to Sink: <em>“One of the pixels on the splash screen is the wrong shade of gray.�?</em> Too trivial to think about, except&#8230; <strong>why is it wrong?</strong> Perhaps someone clicked the wrong button when designing it. In that case the bug is genuinely unimportant. But suppose that you open up Photoshop and find that the splash screen picture is OK. In that case something is modifying the splash screen after it&#8217;s loaded from the disk but before it&#8217;s displayed on the screen. Some part of your program is modifying a byte in memory that it shouldn&#8217;t be modifying. In that case <em>you have been extraordinarily lucky</em>. A bug that modifies an arbitrary byte could in principle modify anything, anywhere. It could modify a data structure deep inside your program that could make large chunks of user data inaccessible and you wouldn&#8217;t discover the damage for months. You are lucky because right now this bug happens to be modifying something that you can see on the screen. You can notice it and reproduce it now; and having reproduced it, you can kill it.</p>
<p>In the late 1980s there was a bug in one release of Cardbox-Plus that manifested itself only when you were using a template to create mail-merged letters <em>and the last letter of the template was a lower-case letter &#8216;e&#8217;</em> &#8211; in that case, one character might be lost in the mail-merged letter. We could have applied Sink&#8217;s rules and ignored the bug. But we hunted for the underlying bug and it turned out that in other circumstances it could have had much more serious effects.</p>
<p>The 0th law of bugs is that <strong>most bugs, most of the time, do their damage invisibly.</strong></p>
<p>It follows that Rule 0 of quality control is <strong>If you see something go wrong, drop everything and find the underlying bug. If the problem disappears before the bug is found</strong> (for instance, if a modification elsewhere in the program makes it go away), <strong>then panic.</strong></p>
<p>What about Sink&#8217;s rules in general? He has to make sure he&#8217;s got his economics right. It&#8217;s easy to forget that software lasts for decades and the cost of correcting a bug is only incurred once, while the cost of giving users extra support, and explaining to them what is wrong, and helping them out of trouble, is incurred over and over and over again.</p>
<p>Sink&#8217;s question 4 mentions the risks arising from correcting bugs. No doubt he&#8217;s right. But if your program code is so fragile that the smallest correction will make it collapse then you should knock it down and rebuild it <strong>now</strong>, before a mouse making its nest in the rafters suddenly makes the whole thing collapse in dust and rubble.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cardbox.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cardbox.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cardbox.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cardbox.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cardbox.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cardbox.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cardbox.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cardbox.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cardbox.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cardbox.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cardbox.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cardbox.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cardbox.wordpress.com&blog=31341&post=5&subd=cardbox&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cardbox.wordpress.com/2005/12/02/the-0th-rule-of-bug-assessment/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e2aed1be59489a1610b340cba3dc73ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cardbox</media:title>
		</media:content>
	</item>
	</channel>
</rss>