<?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>This page intentionally left Frank &#187; fiddling details</title>
	<atom:link href="http://blog.frankwales.com/category/fiddling-details/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.frankwales.com</link>
	<description></description>
	<lastBuildDate>Sat, 16 Jul 2011 19:49:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.frankwales.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>This page intentionally left Frank &#187; fiddling details</title>
		<link>http://blog.frankwales.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.frankwales.com/osd.xml" title="This page intentionally left Frank" />
	<atom:link rel='hub' href='http://blog.frankwales.com/?pushpress=hub'/>
		<item>
		<title>Give me space</title>
		<link>http://blog.frankwales.com/2009/07/15/give-me-space/</link>
		<comments>http://blog.frankwales.com/2009/07/15/give-me-space/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 17:22:49 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[communcation tips]]></category>
		<category><![CDATA[fiddling details]]></category>
		<category><![CDATA[software ungeneering]]></category>

		<guid isPermaLink="false">http://blog.frankwales.com/?p=354</guid>
		<description><![CDATA[If you ever enter credit card information online, you&#8217;ll undoubtedly encounter the peculiar request to omit spaces from credit card numbers, such as on this fairly typical form: Now, as an actual programmer of computery software, I see such requests as completely bizarre. There is absolutely no reason whatsoever why you, the human, should have [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.frankwales.com&amp;blog=3915354&amp;post=354&amp;subd=frankwales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you ever enter credit card information online, you&#8217;ll undoubtedly encounter the peculiar request to omit spaces from credit card numbers, such as on <a href="https://www.billpayment.co.uk/glasgowcc/scripts/nr_billpay.asp" target="_blank">this fairly typical form</a>:</p>
<p><img class="alignleft size-full wp-image-355" title="Excluding spaces" src="http://frankwales.files.wordpress.com/2009/07/highlit-excluding-spaces.gif?w=450&#038;h=169" alt="Excluding spaces" width="450" height="169" /></p>
<p>Now, as an actual programmer of computery software, I see such requests as completely bizarre. There is absolutely no reason whatsoever why you, the human, should have to carefully avoid pressing the space bar while entering a credit card number. Since the bank, to whom this data will shortly be delivered, is <em>expecting</em> a credit card number, and since the bank defines what those look like, they can scrupulously throw away everything else you, or your space-loving cat, types that isn&#8217;t <em>1, 2, 3, 4, 5, 6, 7, 8, 9</em> or <em>0</em>.</p>
<p>It&#8217;s <em>so</em> easy, that I&#8217;d expect any competent programmer to be able to immediately write a piece of code to do this, off the top of their head, with no bugs. If they couldn&#8217;t do this in, say, a technical interview for a programming job at bank, they shouldn&#8217;t be hired.</p>
<p>In fact, it&#8217;s highly likely that the amount of time and effort necessary to place the warning &#8220;(excluding spaces)&#8221; in the web page is more than the effort required to adjust the software to remove the spaces for you.</p>
<p>Cleaning up the data you receive, such as removing unnecessary spaces from it, is known as <em>sanitizing</em> the data, and it&#8217;s not only trivial, but essential if the bank is to have a chance of running a secure and reliable operation.</p>
<p>In my more cynical moods [not at all encouraged by having actually worked in banking operations, he said rolling his eyes], I see the &#8220;<em>excluding spaces</em>&#8221; request as meaning &#8220;<em>our programmers aren&#8217;t so good with the sanitizing and the programming and the stuff, so please help them, thanks so much</em>&#8220;.</p>
<p>So, with all that in mind, here are not one, but two, stories of what happens when banks apparently fail to remove spaces from a critical value, with hilarious consequential overdrafts.</p>
<ul>
<li><a href="http://consumerist.com/5314246/unruly-teen-charges-23-quadrillion-at-drugstore" target="_blank">Unruly Teen Charges $23 Quadrillion At Drugstore</a></li>
<li><a href="http://news.bbc.co.uk/1/hi/world/americas/8152278.stm" target="_blank">Price of habit chokes US smoker</a></li>
</ul>
<p>If you look at both these stories, the amounts of money the poor saps&#8217; credit cards were charged are suspiciously identical: $23,148,855,308,184,500.00. This is the kind of stupid number that immediately makes me want to view it in base 16 (a technically useful way of representing data), in case that provides a clue as to what&#8217;s going on.</p>
<p>In base 16, <strong>2314885530818450000</strong> (with the extra <strong>00</strong> on the end meaning cents) is <strong>2020202020201250</strong>. That looks a lot to me as if it&#8217;s really meant to be <strong>1250</strong> (for example, meaning $12.50 in binary-coded decimal, commonly used in financial systems to represent numbers precisely), but somehow with a pile of spaces stuck on the front (since <strong>20</strong> is a common computer code for <em>space</em>). This is almost certainly the work of a piece of software between the retailer and the bank, which is wrongly padding the value out to fit a fixed-size field for transport (and probably also wrongly changing the type of it too).</p>
<p>But it&#8217;s also a sterling example (<em>sic</em>) of why the receiving system should remove unexpected spaces from something that&#8217;s intended to be a number, rather than just passing it on to a program that will mishandle it gloriously.</p>
<p>Of course, it would also, maybe, perhaps, be a good idea to make sure that the withdrawal request doesn&#8217;t exceed the size of the world economy. But that&#8217;s actually harder than just excluding spaces, since the banks think they can get <em>you</em> to do that for them.</p>
<br />Posted in communcation tips, fiddling details, software ungeneering  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/frankwales.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/frankwales.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/frankwales.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/frankwales.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/frankwales.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/frankwales.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/frankwales.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/frankwales.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/frankwales.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/frankwales.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/frankwales.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/frankwales.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/frankwales.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/frankwales.wordpress.com/354/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.frankwales.com&amp;blog=3915354&amp;post=354&amp;subd=frankwales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.frankwales.com/2009/07/15/give-me-space/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/48bb79c418352c74324f659b295c3592?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">fcw</media:title>
		</media:content>

		<media:content url="http://frankwales.files.wordpress.com/2009/07/highlit-excluding-spaces.gif" medium="image">
			<media:title type="html">Excluding spaces</media:title>
		</media:content>
	</item>
		<item>
		<title>The Future of Web Proof-reading</title>
		<link>http://blog.frankwales.com/2008/10/09/the-future-of-web-proof-reading/</link>
		<comments>http://blog.frankwales.com/2008/10/09/the-future-of-web-proof-reading/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 22:42:16 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[fiddling details]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://frankwales.wordpress.com/?p=38</guid>
		<description><![CDATA[For better or worse, I&#8217;m cursed with the ability to spot typos and spelling errors that normal people miss. For example, this one on the home page of the Future of Web Apps conference that I&#8217;m somehow not attending: But is it really so hard to see the &#8216;The The&#8216; in this rather large graphic? [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.frankwales.com&amp;blog=3915354&amp;post=38&amp;subd=frankwales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;">For better or worse, I&#8217;m cursed with the ability to spot typos and spelling errors that normal people miss.</p>
<p style="text-align:left;">For example, this one on the home page of the <a href="http://www.futureofwebapps.com/"><em>Future of Web Apps</em></a> conference that I&#8217;m somehow not attending: <a href="http://frankwales.files.wordpress.com/2008/10/fowa-the-the-red.jpg"><img class="size-full wp-image-37 aligncenter" title="Future of Web Apps should include proof-reading" src="http://frankwales.files.wordpress.com/2008/10/fowa-the-the-red.jpg?w=450&#038;h=322" alt="" width="450" height="322" /></a></p>
<p>But is it <em>really </em> so hard to see the &#8216;<strong>The The</strong>&#8216; in this rather large graphic?</p>
<div id="attachment_39" class="wp-caption aligncenter" style="width: 435px"><a href="http://frankwales.files.wordpress.com/2008/10/fowa-the-the-red-close.jpg"><img class="size-full wp-image-39" title="The The" src="http://frankwales.files.wordpress.com/2008/10/fowa-the-the-red-close.jpg?w=450" alt=""   /></a><p class="wp-caption-text">The offending extra article</p></div>
<p>Personally, I think that somewhere in the actual future of web apps, there ought to be something that can help with proof-reading as least as well as desktop apps of the actual past can.</p>
<br />Posted in English, fiddling details, web development  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/frankwales.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/frankwales.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/frankwales.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/frankwales.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/frankwales.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/frankwales.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/frankwales.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/frankwales.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/frankwales.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/frankwales.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/frankwales.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/frankwales.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/frankwales.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/frankwales.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.frankwales.com&amp;blog=3915354&amp;post=38&amp;subd=frankwales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.frankwales.com/2008/10/09/the-future-of-web-proof-reading/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/48bb79c418352c74324f659b295c3592?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">fcw</media:title>
		</media:content>

		<media:content url="http://frankwales.files.wordpress.com/2008/10/fowa-the-the-red.jpg" medium="image">
			<media:title type="html">Future of Web Apps should include proof-reading</media:title>
		</media:content>

		<media:content url="http://frankwales.files.wordpress.com/2008/10/fowa-the-the-red-close.jpg" medium="image">
			<media:title type="html">The The</media:title>
		</media:content>
	</item>
	</channel>
</rss>
