<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2980675099924708277</id><updated>2012-02-06T04:31:09.197-08:00</updated><category term='DSA website errors'/><category term='find driving test'/><category term='Change Driving Test'/><category term='Micro ISV'/><category term='poem'/><category term='practical driving test'/><category term='stratford software'/><category term='Driving Test Cancellation Checker'/><category term='three changes to driving test'/><category term='customer service'/><category term='driving test scam'/><category term='isv'/><category term='stratford'/><category term='3 changes to driving test'/><category term='wait times'/><category term='Encryption'/><category term='test centres'/><category term='London'/><category term='Google'/><category term='machineKey'/><category term='c#'/><category term='test'/><category term='driving test cancellations'/><category term='fastspring'/><category term='paypal'/><category term='crispy fried software'/><category term='software'/><category term='licensing'/><category term='booking'/><category term='Adwords'/><category term='payment processor'/><category term='number of driving test changes'/><category term='DSA phone number'/><category term='.net'/><category term='invalid navigation'/><category term='earlier driving test'/><category term='scam'/><category term='driving test wait times'/><title type='text'>Driving Test Cancellations Blog</title><subtitle type='html'>Information about finding and booking driving test cancellations</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.drivingtestcancellations.co.uk/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default'/><link rel='alternate' type='text/html' href='http://blog.drivingtestcancellations.co.uk/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>marlint111</name><uri>http://www.blogger.com/profile/18374379465417740764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2980675099924708277.post-2701280258843370684</id><published>2011-12-17T06:46:00.000-08:00</published><updated>2011-12-17T06:46:43.340-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='find driving test'/><category scheme='http://www.blogger.com/atom/ns#' term='Change Driving Test'/><category scheme='http://www.blogger.com/atom/ns#' term='earlier driving test'/><category scheme='http://www.blogger.com/atom/ns#' term='DSA phone number'/><category scheme='http://www.blogger.com/atom/ns#' term='driving test cancellations'/><title type='text'>How do I check for Driving Test Cancellations?</title><content type='html'>There are loads and loads of questions on the internet about how to check for &lt;a href="http://www.changdrivingtest.co.uk/" target="_blank"&gt;driving test cancellations&lt;/a&gt;, so we thought we'd take the time to put together some advice, and weigh up the different ways you can do it, as well as dispelling some myths about the process on the way.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Myth Number 1: There is a 'driving test cancellation' list, you can be put on, or search to let you get an earlier driving test:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Unfortunately, this is simply not true, (although&lt;a href="https://www.drivingtest.ie/ApplicantSelfScheduleTesting/Applicants/ApplicationSignIn.aspx" target="_blank"&gt; it is in Ireland&lt;/a&gt;, maybe this is where the confusion comes from). There is no secret list that you need a special telephone number to access, nor is there a hidden part of the DSA website where all the cancellations are kept.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Myth Number 2: You can only find cancellations by ringing the DSA.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Again, not true. The DSA have told me that their telephone operators have access to exactly the same lists of tests that you see when using the DSA website. And as anyone who's tried to get through on their phone line will know, it can take take hours just to get to talk to anyone. If you do want to ring them though, you can do so on&amp;nbsp;&lt;span style="background-color: white; font-family: verdana, arial, sans-serif; font-size: 13px; text-align: left;"&gt;0300 200 1122. &lt;/span&gt;It's also worth bearing in mind that if you need an extended retest, or are doing an upgrade from automatic to manual, you will not be able to change your test online, so will have to ring the DSA.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Checking yourself:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;If you want to check for driving test cancellations manually, we think that the best way of doing it is using the DSA website. &lt;a href="https://driverpracticaltest.direct.gov.uk/logincheck.aspx" target="_blank"&gt;Log on here&lt;/a&gt;&amp;nbsp;, enter your details, and then search for the closest date at your test centre. If nothing suitable shows up, try again. And again. And again. Cancellations do come up, but you have to be vigilant and quick if you want to change your driving test to a closer date. &lt;a href="http://www.changedrivingtest.co.uk/tips.html" target="_blank"&gt;We've put some stats together&lt;/a&gt; on the best time of day, and best days to check for cancellations, so make sure you check around these times.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Getting us to check for you:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Well, of course we're going to say this is the best option, but let me tell you why...&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Guaranteed, a driving test at a time and place you are happy with, or your money back. No catches, time limits, or small print (unlike all of our competitors).&lt;/li&gt;&lt;li&gt;No hassle. With our &lt;a href="http://www.changedrivingtest.co.uk/" target="_blank"&gt;online driving test finder&lt;/a&gt;&amp;nbsp;there is no software to download, just enter your details and we'll text and email you when dates come up, you just text/email back to book them.&lt;/li&gt;&lt;li&gt;Less than the price of a driving lesson. At under 20 quid, even if you only move your driving test a week earlier, you'll have saved yourself money.&lt;/li&gt;&lt;li&gt;No need to sit in front of the computer, or phone stressing out about finding a test, let us do the work, and you can get on with life.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2980675099924708277-2701280258843370684?l=blog.drivingtestcancellations.co.uk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.drivingtestcancellations.co.uk/feeds/2701280258843370684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2011/12/how-do-i-check-for-driving-test.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/2701280258843370684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/2701280258843370684'/><link rel='alternate' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2011/12/how-do-i-check-for-driving-test.html' title='How do I check for Driving Test Cancellations?'/><author><name>marlint111</name><uri>http://www.blogger.com/profile/18374379465417740764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2980675099924708277.post-8720248296508926162</id><published>2011-08-06T08:31:00.001-07:00</published><updated>2011-08-06T08:36:18.906-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DSA website errors'/><category scheme='http://www.blogger.com/atom/ns#' term='Change Driving Test'/><category scheme='http://www.blogger.com/atom/ns#' term='crispy fried software'/><category scheme='http://www.blogger.com/atom/ns#' term='3 changes to driving test'/><title type='text'>Driving Test Changes- An update from the DSA</title><content type='html'>I've been in touch with the DSA about why they only let you change your test date three times, and why this isn't made clear on the test booking website.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They have told me that the 3 changes to your driving test date rule is to 'prevent abuse by some customers'. The good news is, that this rule is under review, so watch this space.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They've also agreed to my recommendation to make it clearer that you are only allowed to change your driving test date three times.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They have updated&lt;a href="http://www.direct.gov.uk/en/Diol1/DoItOnline/Doitonlinemotoring/DG_197300"&gt; their website &lt;/a&gt; to make the three change limitation clear. It now reads:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="font-family: verdana, arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); "&gt;&lt;blockquote&gt;You can only change your test three times - after that, you need to cancel your test and book a new one.&lt;/blockquote&gt;&lt;/span&gt;This is sure to make things a lot clearer for learners. Lots of the users of our service to find &lt;a href="http://www.changedrivingtest.co.uk"&gt;driving test cancellations&lt;/a&gt; have been caught out by this rule in the past.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2980675099924708277-8720248296508926162?l=blog.drivingtestcancellations.co.uk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.drivingtestcancellations.co.uk/feeds/8720248296508926162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2011/08/driving-test-changes-update-from-dsa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/8720248296508926162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/8720248296508926162'/><link rel='alternate' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2011/08/driving-test-changes-update-from-dsa.html' title='Driving Test Changes- An update from the DSA'/><author><name>marlint111</name><uri>http://www.blogger.com/profile/18374379465417740764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2980675099924708277.post-6703428220578660077</id><published>2011-07-24T08:29:00.000-07:00</published><updated>2011-07-24T08:35:25.414-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='number of driving test changes'/><category scheme='http://www.blogger.com/atom/ns#' term='three changes to driving test'/><category scheme='http://www.blogger.com/atom/ns#' term='Change Driving Test'/><title type='text'>Why does the DSA only let me change my test three times?</title><content type='html'>&lt;div&gt;We hear from learner driver after learner driver who has got absolutely no clue that the Driving Standards Agency (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;DSA&lt;/span&gt;) only let you change your practical test date up to&lt;b&gt; three times&lt;/b&gt;. There is no indication anywhere on their main website, or on the practical test booking website that this is the case (&lt;a href="http://www.direct.gov.uk/en/Diol1/DoItOnline/Doitonlinemotoring/DG_197300"&gt;http://www.direct.gov.uk/en/Diol1/DoItOnline/Doitonlinemotoring/DG_197300&lt;/a&gt; - specifically says you can change your date as long as your instructor is available). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The first time most people realise it, is when they have already changed their practical test date twice, and start seeing a message when they log in to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;DSA&lt;/span&gt; site saying '&lt;i&gt;You can only change your test details one more time'&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The problem is, that if you aren't aware from the start that you can only make three changes to your test date, you may waste two changes (say moving your date earlier by a day or two), and then be &lt;b&gt;stuck with a test many months away&lt;/b&gt;, and only one chance to change it. In this situation, if one comes up a few weeks earlier, it is impossible to know whether to change it, or to hold out for an even closer test.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But fear not. There is a way round the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;DSA's&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;arbitrary&lt;/span&gt; restriction on test date changes (though it is not without a little risk). You need to cancel your current booking, you will receive a full refund from the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;DSA&lt;/span&gt; (as long as your test isn't within the next few days). You can then rebook, and voila, you will have&lt;b&gt; three more changes&lt;/b&gt; to make to your test. The risk is that you won't be able to get the date you've just cancelled when you rebook, and will have to settle (at first) for a more distant date.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lots of people looking for&lt;a href="http://www.changedrivingtest.co.uk/"&gt; driving test cancellations&lt;/a&gt; use this approach, as it gets them a fresh set of three changes, and second time around they will know not to waste them.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I think the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;DSA&lt;/span&gt; needs to do one of the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;1.)&lt;b&gt; Remove&lt;/b&gt; the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;arbitrary&lt;/span&gt; and unnecessary limitation that only allows people to change their practical driving test date three times. It serves no &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;discernible&lt;/span&gt; purpose, and just makes life harder for pupils and instructors who need to change their test date multiple times for perfectly valid reason.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;2.) Put a clear indication, every time you use the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;DSA&lt;/span&gt; test booking service, that &lt;b&gt;you are only allowed to change your test date three times&lt;/b&gt; (don't save this message until you've already done so twice as happens at the moment). Then people are much less likely to get caught by surprise after already having made two changes to their test date, be forced to cancel and rebook their test.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is hard enough trying to find a decent driving test date without silly restrictions being put on the system.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've emailed the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;DSA&lt;/span&gt; asking for why the system works like this, so I'll update when I hear back from them.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2980675099924708277-6703428220578660077?l=blog.drivingtestcancellations.co.uk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.drivingtestcancellations.co.uk/feeds/6703428220578660077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2011/07/why-does-dsa-only-let-me-change-my-test.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/6703428220578660077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/6703428220578660077'/><link rel='alternate' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2011/07/why-does-dsa-only-let-me-change-my-test.html' title='Why does the DSA only let me change my test three times?'/><author><name>marlint111</name><uri>http://www.blogger.com/profile/18374379465417740764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2980675099924708277.post-3074758986865781575</id><published>2011-03-06T08:15:00.000-08:00</published><updated>2011-03-06T08:45:11.209-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DSA website errors'/><category scheme='http://www.blogger.com/atom/ns#' term='machineKey'/><category scheme='http://www.blogger.com/atom/ns#' term='invalid navigation'/><title type='text'>The DSA- and a rather broken website</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;I've been receiving numerous complaints from people over the last couple of months about error messages on the DSA website. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You'll be navigating the website and then suddenly receive a message saying&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;Invalid navigation!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You are attempting to use an invalid path through the booking application&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please click here to return to the booking homepage&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What's even more annoying- is that the link to contact the site administrator goes to "dsawebmaster@driving-tests.info" . Which is just a made up address on a non-existent domain.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If this happens to you- the best way to contact the DSA is by emailing customer.services@dsa.gsi.gov.uk . Though they generally take around 10 days to reply. Hardly sterling customer service.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For those of a more technical bent- I've worked out why their website throws these random errors...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Inspecting the HTTP Response headers I see the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol class="children expanded" style="box-sizing: border-box; position: relative; padding-top: 2px !important; padding-right: 6px !important; padding-bottom: 2px !important; padding-left: 6px !important; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; cursor: default; min-width: 100%; list-style-type: none; -webkit-padding-start: 12px; display: block; font-family: 'Lucida Grande', sans-serif; font-size: 11px; -webkit-text-size-adjust: none; "&gt;&lt;li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; word-wrap: break-word; text-indent: -2px; white-space: nowrap; "&gt;&lt;div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; "&gt;Cache-Control:&lt;/div&gt;&lt;div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; "&gt;private&lt;/div&gt;&lt;/li&gt;&lt;li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; word-wrap: break-word; text-indent: -2px; white-space: nowrap; "&gt;&lt;div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; "&gt;Content-Length:&lt;/div&gt;&lt;div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; "&gt;13044&lt;/div&gt;&lt;/li&gt;&lt;li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; word-wrap: break-word; text-indent: -2px; white-space: nowrap; "&gt;&lt;div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; "&gt;Content-Type:&lt;/div&gt;&lt;div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; "&gt;text/html; charset=utf-8&lt;/div&gt;&lt;/li&gt;&lt;li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; word-wrap: break-word; text-indent: -2px; white-space: nowrap; "&gt;&lt;div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; "&gt;Date:&lt;/div&gt;&lt;div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; "&gt;Sun, 06 Mar 2011 16:25:08 GMT Sun, 06 Mar 2011 16:25:08 GMT&lt;/div&gt;&lt;/li&gt;&lt;li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; word-wrap: break-word; text-indent: -2px; white-space: nowrap; "&gt;&lt;div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; "&gt;X-PoolMember:&lt;/div&gt;&lt;div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; "&gt;2 2&lt;/div&gt;&lt;/li&gt;&lt;li title="" style="box-sizing: border-box; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; margin-top: 1px; margin-bottom: 1px; word-wrap: break-word; text-indent: -2px; white-space: nowrap; "&gt;&lt;div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap; "&gt;X-Powered-By:&lt;/div&gt;&lt;div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px !important; white-space: pre-wrap; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px; "&gt;ASP.NET ASP.NET&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-indent: -2px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-indent: -2px; "&gt;The item of interest here is X-PoolMember. This suggests to me that they are using a number of load balanced webservers. The X-Powered-By header informs us they are using ASP.NET and this is confirmed by the "VIEWSTATE" fields we see on the forms:&lt;/div&gt;&lt;div style="text-indent: -2px; "&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;input type="hidden" name="VIEWSTATE_" value="4"&gt;&lt;br /&gt;&lt;div style="text-indent: -2px; "&gt;ASP.Net uses these viewstate fields to keep track of form state. But in order to prevent tampering by the client, they are encrypted.&lt;/div&gt;&lt;div style="text-indent: -2px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-indent: -2px; "&gt;Now, by default each web server will use its own encryption key to encrypt and decrypt the viewstate (&lt;a href="http://msdn.microsoft.com/en-us/library/ms972427.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms972427.aspx&lt;/a&gt; for details).&lt;/div&gt;&lt;div style="text-indent: -2px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-indent: -2px; "&gt;This means that if you get an HTTP Response from one of the web servers, and your request is handled by a different web server, the second webserver will be unable to decrypt the viewstate fields (as they are using different encryption keys) and will throw an error.&lt;/div&gt;&lt;div style="text-indent: -2px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-indent: -2px; "&gt;To fix this the DSA need to add a setting like this:&lt;/div&gt;&lt;div style="text-indent: -2px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-indent: -2px; "&gt;&lt;pre style="padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: Consolas, Courier, monospace; word-break: break-all; word-wrap: break-word; font-style: normal; font-weight: normal; overflow-x: auto; overflow-y: auto; font-size: 13px; "&gt; machinekey validation="SHA1" validationkey="  F3690E7A3143C185AB1089616A8B4D81FD55DD7A69EEAA3B32A6AE813ECEECD28DEA66A 23BEE42193729BD48595EBAFE2C2E765BE77E006330BC3B1392D7C73F"  &lt;/pre&gt;&lt;span&gt; to all their web.configs, in order to ensure that all the web servers are using the same validation key. &lt;/span&gt;&lt;span&gt;Then we not see quite so many errors being returned quite so much of the time from their website. &lt;/span&gt;&lt;span&gt;&lt;span&gt;DSA Techies- if you read this, feel free to pop a cheque in the post!&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre style="padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: Consolas, Courier, monospace; word-break: break-all; word-wrap: break-word; font-style: normal; font-weight: normal; overflow-x: auto; overflow-y: auto; font-size: 13px; "&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-indent: -2px; -webkit-text-size-adjust: none; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; white-space: pre-wrap; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2980675099924708277-3074758986865781575?l=blog.drivingtestcancellations.co.uk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.drivingtestcancellations.co.uk/feeds/3074758986865781575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2011/03/dsa-and-rather-broken-website.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/3074758986865781575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/3074758986865781575'/><link rel='alternate' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2011/03/dsa-and-rather-broken-website.html' title='The DSA- and a rather broken website'/><author><name>marlint111</name><uri>http://www.blogger.com/profile/18374379465417740764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2980675099924708277.post-461713952174552500</id><published>2011-03-03T23:45:00.001-08:00</published><updated>2011-03-03T23:48:51.783-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='test centres'/><category scheme='http://www.blogger.com/atom/ns#' term='driving test wait times'/><category scheme='http://www.blogger.com/atom/ns#' term='wait times'/><title type='text'>Driving Test Wait Times</title><content type='html'>Just a quick note to say we've just launched (its still a bit rough round the edges), a site to let you look at &lt;a href="http://www.drivingtestwaittimes.com"&gt;driving test wait times&lt;/a&gt; at all the test centres across the country (well- all those we have data for).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can find it here: &lt;a href="http://www.drivingtestwaittimes.com"&gt;http://www.drivingtestwaittimes.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As ever- I'd love to hear feedback on the site, and whether it's useful or not.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll be adding more to it in the coming weeks, so do keep checking back.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2980675099924708277-461713952174552500?l=blog.drivingtestcancellations.co.uk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.drivingtestcancellations.co.uk/feeds/461713952174552500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2011/03/driving-test-wait-times.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/461713952174552500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/461713952174552500'/><link rel='alternate' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2011/03/driving-test-wait-times.html' title='Driving Test Wait Times'/><author><name>marlint111</name><uri>http://www.blogger.com/profile/18374379465417740764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2980675099924708277.post-7972953785609693582</id><published>2011-02-08T13:36:00.000-08:00</published><updated>2011-02-08T13:48:27.934-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Change Driving Test'/><category scheme='http://www.blogger.com/atom/ns#' term='Adwords'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='driving test scam'/><title type='text'>Driving Test Scams Part Two- Google bites back</title><content type='html'>I've been getting increasingly frustrated at the scam sites that exist on the internet to try and con learner drivers out of their precious, and hard earned, money.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;People booking driving tests are often those who can least afford to be conned out of 30 quid, often being students without a full time job, who are struggling to pay for driving lessons, let alone the driving test.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some sites which appear in Google Ads when you search for "book driving test" are scams. They will take your details in exactly the same way as the DSA, fill in the form on the DSA website and charge you 30 quid for the privilege. They trick learner drivers into thinking that theirs is official booking site. Not many people fall for it, but enough to make it worthwhile.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They aren't doing anything illegal, just deeply deeply immoral. So going to the police or trading standards was probably out of the question.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I resolved to try Google. As these people advertise on Google, they surely have some responsibility. I spent an  hour or so trawling through the Adwords content guidelines and found &lt;a href="http://adwords.google.com/support/aw/bin/static.py?hl=en&amp;amp;guide=28435&amp;amp;topic=28436&amp;amp;page=guide.cs&amp;amp;answer=189033"&gt;this (Google.com)&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;i&gt;Examples of &lt;strong&gt;prohibited websites&lt;/strong&gt;:&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family: Arial, Helvetica, sans-serif; "&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;li&gt;&lt;i&gt;Sites that charge for downloads of software that's readily available for free elsewhere&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Sites that charge for government forms that are free or available for a lesser charge from the government sit&lt;/i&gt;e&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It clearly states that sites that charge for government forms that are available for a lesser charge from a government site are prohibited. The driving test booking system is just a collection of forms so I reckon this policy covers what these scam artists are doing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I head over to the &lt;a href="http://adwords.google.com/support/aw/bin/request.py?hl=en&amp;amp;contact_type=feedback&amp;amp;displayed=&amp;amp;origin=cluster&amp;amp;rd=1"&gt;Adwords Content Violation form&lt;/a&gt; and report every one of these dodgy websites.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;No we just wait and see whether these sights disappear from Google....&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just a reminder- if you've been scammed by these sites, get in touch and I'll give you a free copy of our online &lt;a href="http://www.changedrivingtest.co.uk"&gt;Driving Test Cancellation Checker&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2980675099924708277-7972953785609693582?l=blog.drivingtestcancellations.co.uk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.drivingtestcancellations.co.uk/feeds/7972953785609693582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2011/02/driving-test-scams-part-two-google.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/7972953785609693582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/7972953785609693582'/><link rel='alternate' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2011/02/driving-test-scams-part-two-google.html' title='Driving Test Scams Part Two- Google bites back'/><author><name>marlint111</name><uri>http://www.blogger.com/profile/18374379465417740764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2980675099924708277.post-8420970208100397127</id><published>2011-02-06T09:38:00.000-08:00</published><updated>2011-06-08T02:13:09.599-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='booking'/><category scheme='http://www.blogger.com/atom/ns#' term='Driving Test Cancellation Checker'/><category scheme='http://www.blogger.com/atom/ns#' term='scam'/><category scheme='http://www.blogger.com/atom/ns#' term='test'/><title type='text'>Driving Test Scams</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Watch out for Driving Test Scams&lt;br /&gt;&lt;br /&gt;When booking your driving practical test beware!&lt;br /&gt;There are a number of sites out there which say they will book your test for you. There are a number of these that come up when I search Google for "book driving test"&lt;br /&gt;&lt;br /&gt;As far as I can tell (and please let me know if I'm wrong!), all these sites will do is charge an extra fee for booking  your test for you. They won't get you an earlier driving test, and they will charge up to £50.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;They try to look as similar to the official &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;DSA&lt;/span&gt; website as possible in order to trick you into parting with your cash.&lt;br /&gt;&lt;br /&gt;If you're looking for a closer driving test, then I recommend using either &lt;a href="http://www.drivingtestcancellations.co.uk/"&gt;http://www.drivingtestcancellations.co.uk&lt;/a&gt; or our &lt;a href="http://www.changedrivingtest.co.uk/"&gt;online driving &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;test cancellation&lt;/span&gt; checker &lt;/a&gt;, both of which have the price clearly marked, and will constantly monitor the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;DSA&lt;/span&gt; website for you, looking for cancellations and booking them when they come up.&lt;br /&gt;&lt;br /&gt;Have you been scammed? Send me details at enquiries@drivingtestcancellations.co.uk and we'll give you a free license to our software, helping you to find driving test cancellations&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2980675099924708277-8420970208100397127?l=blog.drivingtestcancellations.co.uk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.drivingtestcancellations.co.uk/feeds/8420970208100397127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2011/02/driving-test-scams.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/8420970208100397127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/8420970208100397127'/><link rel='alternate' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2011/02/driving-test-scams.html' title='Driving Test Scams'/><author><name>marlint111</name><uri>http://www.blogger.com/profile/18374379465417740764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2980675099924708277.post-7024077731472108851</id><published>2010-12-19T09:30:00.000-08:00</published><updated>2010-12-19T09:35:15.151-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Change Driving Test'/><category scheme='http://www.blogger.com/atom/ns#' term='Driving Test Cancellation Checker'/><category scheme='http://www.blogger.com/atom/ns#' term='driving test cancellations'/><title type='text'>New web based Cancellation Checker</title><content type='html'>Today I'm delighted to announce the launch of our new online Cancellation Checker. Finally, Mac/Linux users will be able to easily check for driving test cancellations.&lt;br /&gt;&lt;br /&gt;The site can be found at &lt;a href="http://www.changedrivingtest.co.uk"&gt;http://www.changedrivingtest.co.uk&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;This means no need to leave your PC running to check for tests, just sign up, sit back and wait for the texts/emails to come in!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2980675099924708277-7024077731472108851?l=blog.drivingtestcancellations.co.uk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.drivingtestcancellations.co.uk/feeds/7024077731472108851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2010/12/new-web-based-cancellation-checker.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/7024077731472108851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/7024077731472108851'/><link rel='alternate' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2010/12/new-web-based-cancellation-checker.html' title='New web based Cancellation Checker'/><author><name>marlint111</name><uri>http://www.blogger.com/profile/18374379465417740764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2980675099924708277.post-907945717878500588</id><published>2010-08-26T08:14:00.001-07:00</published><updated>2010-08-26T08:24:08.916-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poem'/><title type='text'>Email Poetry</title><content type='html'>I received an email today from an instructor wishing to resell my software. I've removed his details, but it struck me as strangely poetic (I have preserved the original line breaks, and corrected the mistypings...)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Hi&lt;br /&gt;My name is ****&lt;br /&gt;And I am a driving instructor&lt;br /&gt;I am having a website built to check&lt;br /&gt;For test cancellations similar to yours&lt;br /&gt;And wanted to know if I could come&lt;br /&gt;To some agreement with you&lt;br /&gt;To use your software&lt;br /&gt;I understand that you design the application&lt;br /&gt;But it would also benift you as&lt;br /&gt;As I would not be a rival ,&lt;br /&gt;Could I call you to have a chat&lt;br /&gt;My phone number is *************&lt;br /&gt;Look forward to hearing from you&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;I decided I should respond in a similar fashion (choosing the haiku as my lyrical form):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Thanks for your message&lt;br /&gt;I prefer not to partner&lt;br /&gt;But wish you good luck&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I am now trying to resist the urge to answer all support emails in verse&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2980675099924708277-907945717878500588?l=blog.drivingtestcancellations.co.uk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.drivingtestcancellations.co.uk/feeds/907945717878500588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2010/08/email-poetry.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/907945717878500588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/907945717878500588'/><link rel='alternate' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2010/08/email-poetry.html' title='Email Poetry'/><author><name>marlint111</name><uri>http://www.blogger.com/profile/18374379465417740764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2980675099924708277.post-7337336104457918440</id><published>2010-08-12T14:25:00.000-07:00</published><updated>2010-08-12T14:45:48.057-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Driving Test Cancellation Checker'/><category scheme='http://www.blogger.com/atom/ns#' term='customer service'/><category scheme='http://www.blogger.com/atom/ns#' term='isv'/><title type='text'>Customer Service</title><content type='html'>Today, good customer service has made me at least £100.&lt;br /&gt;&lt;br /&gt;Often I get an email, bluntly asking for a refund on Cancellation Checker. When I was starting out- I used to give them a refund straight away, and pat myself on the back - a quick refund when you ask for one is, after all, great customer service.&lt;br /&gt;&lt;br /&gt;I'll let you into a secret though. Giving a refund at this point is not great customer service, its not even average customer service- its awful, atrocious, unspeakably bad customer service?&lt;br /&gt;&lt;br /&gt;Why is giving the customer what they ask for a bad idea?&lt;br /&gt;&lt;br /&gt;Because what the customer asks for is not necessarily what the customer wants.&lt;br /&gt;&lt;br /&gt;Why do customers ask for a refund?&lt;br /&gt;&lt;br /&gt;Most of my customers who want a refund have had a problem getting the software running, or misunderstood how it works, or never downloaded it in the first place.&lt;br /&gt;&lt;br /&gt;If I give these customers a refund how likely are they to recommend Cancellation Checker? Well, there's a chance I guess. They might say to their friends "Well it was too difficult for me to get it working, and I had to ask for a refund". Hardly a ringing endorsement.&lt;br /&gt;&lt;br /&gt;So- I always reply asking politely for a chance to help them solve any problems they are having. There is hardly a single customer who refuses, and around 95% of them we get sorted.&lt;br /&gt;&lt;br /&gt;Each of these customers is worth around 150% of a normal customer (at a guess, not based on solid figures). Why?&lt;br /&gt;&lt;br /&gt;Firstly- by sorting their problem without them needing a refund, you've just added that figure to your bottom line. In fact even more if your payment provider doesn't refund transaction fees. A refund avoided should give you even more satisfaction than a sale.&lt;br /&gt;&lt;br /&gt;Secondly- a customer who uses your software without ever needing any help, may recommend your software, but they can't recommend you. A customer who you've helped through the software, answered their questions, been friendly and polite to, can recommend your software, but much more importantly they can tell people 'Its a great company" or "They helped me out with all my problems". This is really going to help your conversion rates, as it takes some of the risk out of the purchase in the customer's mind.&lt;br /&gt;&lt;br /&gt;Beware though- its a fine line between offering support and not giving a refund when its been asked for. I will always, in my first reply say something along the lines of "If you're sure you want a refund just let me know". Then as soon as that customer says they do want a refund (quite rare), I will do it straight away, without any further correspondence. After all the last thing you want is an angry customer, who just want their money back.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2980675099924708277-7337336104457918440?l=blog.drivingtestcancellations.co.uk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.drivingtestcancellations.co.uk/feeds/7337336104457918440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2010/08/customer-service.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/7337336104457918440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/7337336104457918440'/><link rel='alternate' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2010/08/customer-service.html' title='Customer Service'/><author><name>marlint111</name><uri>http://www.blogger.com/profile/18374379465417740764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2980675099924708277.post-8494644375579564114</id><published>2010-02-20T03:01:00.000-08:00</published><updated>2010-02-20T03:20:41.674-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='licensing'/><category scheme='http://www.blogger.com/atom/ns#' term='Driving Test Cancellation Checker'/><title type='text'>Licensing and Piracy</title><content type='html'>&lt;p class="MsoNormal"&gt;Licensing&lt;/p&gt;&lt;p class="MsoNormal"&gt;No licensing or anti-piracy method is ever going to be 100% effective. In designing or choosing a licensing system, its important to keep your paying customers at the forefront of every decision you make. &lt;/p&gt;&lt;p class="MsoNormal"&gt;It may be heresy to say so- but it really doesn't matter if someone manages to break the anti-piracy measures on your software. So- they got a free copy of the software? But they were never going to buy it anyway, there's no hit to your bottom line. And on the scale most of us micro-ISVers work on, no-one's going to take the effort to distribute cracked versions all over the internet, you're not going to lose any paying customers as a result.&lt;/p&gt;&lt;p class="MsoNormal"&gt;My requirements for the licensing in Cancellation Checker were pretty clear:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div class="MsoNormal"&gt;Must support a trial mode with limited functionality.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="MsoNormal"&gt;Strong preference for client-side checking of license - unreachable activation servers &lt;span style="WHITE-SPACE: pre" class="Apple-tab-span"&gt;&lt;/span&gt;can &lt;span style="mso-tab-count: 1"&gt;&lt;/span&gt;cause a lot of heartache and annoyance.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="MsoNormal"&gt;Activation code linked to driving license number (a unique value for a specific user). &lt;span style="WHITE-SPACE: pre" class="Apple-tab-span"&gt;&lt;/span&gt;This means that having bought the software, they can't use it to find their friends or &lt;span style="WHITE-SPACE: pre" class="Apple-tab-span"&gt;&lt;/span&gt;siblings tests using the same activation code.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="MsoNormal"&gt;Activation code should not be limited to one machine, one install or in any other way.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="MsoNormal"&gt;It should be free- when I went live, I had no idea if I'd even sell one copy of the &lt;span style="WHITE-SPACE: pre" class="Apple-tab-span"&gt;&lt;/span&gt;software, so paying for a licensing system was not an option I wanted to consider.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p class="MsoNormal"&gt;I settled on using a reversal of the normal public/private key encryption scenario:&lt;/p&gt;&lt;p class="MsoNormal"&gt;Normally when Tom wants to send Dick a private message, he can encrypt it using Dick's public (shared) key. This message can then only be decrypted with the use of Dick's private key, which only Dick has access to.&lt;/p&gt;&lt;p class="MsoNormal"&gt;Our scenario is a little different though:&lt;/p&gt;&lt;p class="MsoNormal"&gt; I wanted to sign someone's driving license number using a private key. This would then be verified using my public key inside Cancellation Checker, and checked against the driving license number they enter into the application&lt;/p&gt;&lt;p class="MsoNormal"&gt; This is a bit similar to signing your dll's with a snk file - its a way of ensuring that the activation code came from us and not from anyone else.&lt;p&gt;&lt;p class="MsoNormal"&gt; How to do it:&lt;/p&gt;&lt;p class="MsoNormal"&gt;.NET has some pretty powerful classes built in to deal with these scenarios- unfortunately they are not suitable for use in server side shared hosting environments as they would compromise the server's private keys- try to use them and you'll just see permissions errors.&lt;/p&gt;&lt;p class="MsoNormal"&gt;I found the solution here:&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://www.codeproject.com/KB/security/EZRSA.aspx?fid=473703&amp;amp;df=90&amp;amp;mpp=25&amp;amp;noise=3&amp;amp;sort=Position&amp;amp;view=Quick&amp;amp;select=2292015"&gt;http://www.codeproject.com/KB/security/EZRSA.aspx?fid=473703&amp;amp;df=90&amp;amp;mpp=25&amp;amp;noise=3&amp;amp;sort=Position&amp;amp;view=Quick&amp;amp;select=2292015&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;color:blue;"&gt;public&lt;/span&gt;&lt;span style="font-size:10;"&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; Sign(&lt;span style="color:blue;"&gt;string&lt;/span&gt; plaintext)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;ASCIIEncoding&lt;/span&gt; ByteConverter = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ASCIIEncoding&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;byte&lt;/span&gt;[] sign_this = ByteConverter.GetBytes(plaintext);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;AlpineSoft.&lt;span style="color:#2b91af;"&gt;EZRSA&lt;/span&gt; csp = &lt;span style="color:blue;"&gt;new&lt;/span&gt; AlpineSoft.&lt;span style="color:#2b91af;"&gt;EZRSA&lt;/span&gt;(512);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;csp.GenerateKeyPair(17);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;csp.FromXmlString(GetPrivateKeyFileString());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;byte&lt;/span&gt;[] sign = csp.SignData(sign_this, &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;SHA1CryptoServiceProvider&lt;/span&gt;());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Convert&lt;/span&gt;.ToBase64String(sign);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="LINE-HEIGHT: 115%;font-size:10;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;span style="font-family:georgia;"&gt;Using the AlpineSoft dll, the code is really very simple as you can see above. Then on the client side we just:&lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;color:blue;"&gt;public&lt;/span&gt;&lt;span style="font-size:10;"&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; Validate(&lt;span style="color:blue;"&gt;string&lt;/span&gt; plaintext, &lt;span style="color:blue;"&gt;byte&lt;/span&gt;[] sign)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;ASCIIEncoding&lt;/span&gt; ByteConverter = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ASCIIEncoding&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;byte&lt;/span&gt;[] validate_this = ByteConverter.GetBytes(plaintext);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;AlpineSoft.&lt;span style="color:#2b91af;"&gt;EZRSA&lt;/span&gt; csp = &lt;span style="color:blue;"&gt;new&lt;/span&gt; AlpineSoft.&lt;span style="color:#2b91af;"&gt;EZRSA&lt;/span&gt;(512);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;csp.FromXmlString(GetPublicKeyFileString());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;bool&lt;/span&gt; valid = csp.VerifyData(validate_this, &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;SHA1CryptoServiceProvider&lt;/span&gt;(), sign);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; valid;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="LINE-HEIGHT: 115%;font-size:10;" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;The beauty of this approach is that a user is uniquely identified by their driving license number, and this number is an integral part of the workings of the software. So, everyone in the UK has an activation code that is unique to them.&lt;/p&gt;&lt;p class="MsoNormal"&gt;So far- I've had no complaints, but I'd be interested to hear what approach other micro-ISVers take to protecting their software&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="LINE-HEIGHT: 115%;font-size:10;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="LINE-HEIGHT: 115%;font-size:10;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2980675099924708277-8494644375579564114?l=blog.drivingtestcancellations.co.uk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.drivingtestcancellations.co.uk/feeds/8494644375579564114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2010/02/licensing-and-piracy.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/8494644375579564114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/8494644375579564114'/><link rel='alternate' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2010/02/licensing-and-piracy.html' title='Licensing and Piracy'/><author><name>marlint111</name><uri>http://www.blogger.com/profile/18374379465417740764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2980675099924708277.post-2005186362989930738</id><published>2009-08-18T12:58:00.000-07:00</published><updated>2009-08-18T13:19:41.497-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='payment processor'/><category scheme='http://www.blogger.com/atom/ns#' term='fastspring'/><category scheme='http://www.blogger.com/atom/ns#' term='Driving Test Cancellation Checker'/><category scheme='http://www.blogger.com/atom/ns#' term='paypal'/><category scheme='http://www.blogger.com/atom/ns#' term='stratford software'/><title type='text'>Payment Processors- FastSpring and PayPal</title><content type='html'>Choosing a payment processor for your company is one of the most important decisions you will make. You rely on them keeping the trust of your potential customer who has decided to buy your product. You rely on them to always be available, to deal with any billing problems, to manage chargebacks, refunds and notifications. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And most of all- you rely on them to collect your customers' money.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I can say- without reservation, that I made the right choice in going with FastSpring (&lt;a href="http://www.fastspring.com"&gt;http://www.fastspring.com&lt;/a&gt;):&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Great customer Service- respond to emails very quickly&lt;/li&gt;&lt;li&gt;Good presence in ISV community- e.g. on &lt;a href="http://discuss.joelonsoftware.com/?biz"&gt;Joel on Software Business of Software forum&lt;/a&gt;&lt;/li&gt;&lt;li&gt;No upfront/ongoing charges&lt;/li&gt;&lt;li&gt;Higher transaction charges than other payment processors&lt;/li&gt;&lt;li&gt;Easy to customise payment process- e.g. I send a HTTP notification to my webserver to generate a license key&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;A couple of weeks in however I noticed I was getting hit with VAT on all my transactions. There's nothing FastSpring can do about this- they resell your software, and as a large company are obliged to charge VAT at 15% to their European customers. This is especially painful as all my customers are in the UK- so it applies to every single transaction.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the hope of increasing my profits by 15% I decided to investigate PayPal:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;More difficult to set up- documentation spread all over the place, and forum answers sometimes misleading&lt;/li&gt;&lt;li&gt;Low transaction charges&lt;/li&gt;&lt;li&gt;No support for discount codes/vouchers (this really surprised me)&lt;/li&gt;&lt;li&gt;No experience with customer service yet- but I've heard bad things&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;I now run both side by side- though I try to steer users onto the PayPal payment option rather than FastSpring (&lt;a href="http://www.drivingtestcancellations.co.uk/Buy.aspx"&gt;Buy Page&lt;/a&gt;) as I make over 15% more per PayPal order.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Despite this- I still find that roughly half of my users prefer to use the FastSpring payment option- and I'm not really sure why- I'd be interested if people have any ideas about this.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2980675099924708277-2005186362989930738?l=blog.drivingtestcancellations.co.uk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.drivingtestcancellations.co.uk/feeds/2005186362989930738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2009/08/payment-processors-fastspring-and.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/2005186362989930738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/2005186362989930738'/><link rel='alternate' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2009/08/payment-processors-fastspring-and.html' title='Payment Processors- FastSpring and PayPal'/><author><name>marlint111</name><uri>http://www.blogger.com/profile/18374379465417740764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2980675099924708277.post-4261746313860023019</id><published>2009-08-17T05:50:00.001-07:00</published><updated>2009-08-17T06:02:05.914-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Driving Test Cancellation Checker'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='practical driving test'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>How it all got started</title><content type='html'>Like many of the best things in life- my micro ISV adventure started almost completely by accident.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I failed my driving test. I managed to drive into a bus lane- whoops.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, as anyone who has tried to book a driving test in London will know- the waiting list is about three months (as I write, the closest test in Barking is three months and a week away). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My driving instructor told me that it was possible to get closer tests- all you had to do was check the test booking website non-stop for a few days, and when someone cancelled their test, you could leap in and take their slot.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unfortunately- I have a day job, and understanding as my boss is, I couldn't see him, or the rest of my team putting up with checking the DSA website all day trying to get a driving test.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, I did what any self respecting computer programmer would do- I automated it. Just put together a quick bit of .NET code which would check the website every few minutes for me, and then email me when a new driving test came up. Simple- and it worked, within a couple of days I had a new driving test.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A couple of weeks later, my girlfriend was off work with swine flu, and I was quarantined at home too- with nothing to do. I decided to polish up my solution, knock up a website and see if anyone else was interested...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And so, Driving Test Cancellation Checker (&lt;a href="http://www.drivingtestcancellations.co.uk"&gt;http://www.drivingtestcancellations.co.uk&lt;/a&gt;) was unleashed onto the world.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2980675099924708277-4261746313860023019?l=blog.drivingtestcancellations.co.uk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.drivingtestcancellations.co.uk/feeds/4261746313860023019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2009/08/how-it-all-got-started.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/4261746313860023019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/4261746313860023019'/><link rel='alternate' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2009/08/how-it-all-got-started.html' title='How it all got started'/><author><name>marlint111</name><uri>http://www.blogger.com/profile/18374379465417740764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2980675099924708277.post-7345467963214271890</id><published>2009-08-11T14:27:00.000-07:00</published><updated>2009-08-17T04:12:56.687-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Driving Test Cancellation Checker'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='stratford'/><category scheme='http://www.blogger.com/atom/ns#' term='Micro ISV'/><category scheme='http://www.blogger.com/atom/ns#' term='London'/><title type='text'>Welcome</title><content type='html'>Hi- and welcome to the blog of Stratford Software- a Micro ISV based in London.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My name's Tom Gallard, and I'm the founder of the company (company might be pushing it a bit- its really just me!).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At the moment we've got one product- Driving Test Cancellation Checker (&lt;a href="http://www.drivingtestcancellations.co.uk"&gt;http://www.drivingtestcancellations.co.uk&lt;/a&gt;) which launched just over a month ago, and is doing pretty nicely. In the next few months' blog posts, I'll be talking about some of the following areas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1.) How it all got started&lt;/div&gt;&lt;div&gt;2.) Payment processors- Fastspring and PayPal&lt;/div&gt;&lt;div&gt;3.) License generation&lt;/div&gt;&lt;div&gt;4.) Bug tracking with Fogbugz&lt;/div&gt;&lt;div&gt;5.) Website design, analytics and tracking (Google Analytics, Crazy Egg)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And doubtless, lots more.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll also name a few of the blogs, books and other resources I've found most useful in getting this company up and running.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2980675099924708277-7345467963214271890?l=blog.drivingtestcancellations.co.uk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.drivingtestcancellations.co.uk/feeds/7345467963214271890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2009/08/welcome.html#comment-form' title='27 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/7345467963214271890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2980675099924708277/posts/default/7345467963214271890'/><link rel='alternate' type='text/html' href='http://blog.drivingtestcancellations.co.uk/2009/08/welcome.html' title='Welcome'/><author><name>marlint111</name><uri>http://www.blogger.com/profile/18374379465417740764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>27</thr:total></entry></feed>
