Category Archives: reviews

How to generate traffic to your website

Fellow software entrepreneur and blogger Stephane Grenier sent me a review copy of his “How to generate traffic for your website” ebook a while back. I have finally had time to read it. It is an introduction to marketing your website, covering a wide range of topics, including: SEO, Google Adwords, social news sites, blogging, directories and PR.

On the whole I think it is a very good introduction to marketing websites. At 136 pages there is plenty of ‘meat’ and a good balance between depth and breadth of coverage. Steph illustrates many of the topics with his own real-world experience with .

There is less there for experienced marketers, but I still picked up some useful tips and there were links to resources I hadn’t come across before. I found his illustration of optimising a Google ad particularly interesting. But I disagree with his recommendation to allow Google Adwords to optimise which ads are shown most. The problem with this is that Google may choose to show ads which are making lots of money for them, but not much for you (e.g. high clickthrough, low conversion). I prefer to show all ads equally and then kill off the under-performers myself.

I have a couple of quibbles:

  • Some of the writing isn’t as polished as the prose in Steph’s blog and there were a fair number of typos. I have pointed some of them out to the author, so they should hopefully be fixed in the next version. Also some of the screen captures looked a bit mangled. But this may be due to the vagaries of PDF formatting.
  • I am not keen on the use of undisclosed affiliate links in a paid-for ebook. Affiliate links call the impartiality of the author into question. Is he sending me to this site because it is a useful resource, or just for the commission? I feel that any affiliate links should at least be clearly marked as such. But this is a grey area and that is just my opinion.

You can read the first chapter for free here and purchase a copy here.

Full disclosure: I received a complimentary review copy.

Coverage Validator

coverage_validator.pngThe sink is full of washing, I am wearing odd socks and I haven’t been out of the house in days. It must be time to put out that new release. But how can I be sure my testing hasn’t missed a hideously embarrassing bug? Maybe I introduced a major bug when I made that ‘cosmetic’ change at 2am?

In an ideal world I would just run a comprehensive automated regression test suite. Unfortunately it is difficult to automate graphical user interface (GUI) testing and the majority of lines of code in most applications are GUI. I estimate that the code for my own table planner software is at least 75% GUI code (not including generated code, which would push it even higher).

So I try to manually execute every line of my application before I release it. If I have to make any changes to the code, I start over again. This is very dull, but at least I have a tool to help me: Coverage Validator. Coverage Validator instruments code and shows, in real time, which lines have been executed. Click a few buttons on your application and watch the executed lines of code change colour from pink to yellow. Execute every line in the file and all the lines change colour to cyan. No recompilation or relinking is required and it doesn’t slow down the tested application too much. This real-time feedback is incredibly powerful for testing.


Unfortunately it also has a lot of shortcomings:

  • The usability isn’t great. There is a confusing plethora of options for instrumenting your code that I would rather not have to know about.
  • It isn’t able to ‘hook’ (instrument) all the lines of code. Whole blocks get missed out for reasons I don’t fully understand. Single line branches are particularly likely to be missed.
  • The GUI isn’t great. For example, the display flashes horribly if you resize it.
  • The automatic results merging is just plain weird. At the end of a session it can merge your coverage results into a previous session. This information isn’t much use to me at the end of a session. I want to merge previous results at the start of a session so I know which lines I haven’t tested.
  • The GUI is quite ugly. They really need to update those tired old icons.

However being able to see line coverage information in real time is just so incredibly useful that I am prepared to put up with the many shortcomings. I just run my application alongside Coverage Validator and, file-by-file and function-by-function, I try to turn the lines of code yellow (or, better still, cyan). Every time I have used Coverage Validator I have found at least one potentially embarrassing bug that I hadn’t discovered by any other means. The support has also been responsive. It is just a pity about the flaws, without them this would be a ‘killer app’ for testing.

Coverage Validator works with C++, Delphi and VB on Windows NT4, 2000, 2003 and XP[1]. A single licence costs $199. A free 30-day evaluation licence is available.

[1]I am using it on Vista currently, and it seems to work fine.

MicroISV Sites that Sell!

47hats.pngI have belatedly got around to reading Bob Walsh’s new e-book: “MicroISV Sites that Sell! Creating and Marketing Your Unique Selling Proposition”. This is the first in a series of e-books for microISVs that allows Bob to go into selected subjects in more depth than was possible in his book “Micro-ISV: From Vision to Reality“.

The e-book is aimed very specifically at microISVs looking to create a website to sell their software effectively. It has a lot of detailed advice that I think will be invaluable to anyone creating their first microISV website. I have lost count of the number of microISV sites that make some of the mistakes Bob identifies, including:

  • it isn’t immediately clear what the product does
  • selling on features instead of benefits
  • too much text
  • inappropriate use of technical jargon

The content will inevitably be less useful for established microISVs, but you only need to find one useful idea to justify the cost of the e-book. My only real gripe is the comparison between programming patterns and marketing. I didn’t find this a helpful comparison. Marketing is a very different beast to programming and the sooner we face up to it, the better.

You can get a copy for $19 here.

Full disclosure: I got a free review copy of this e-book.

Mobile Internet access

3-mobile-broadband.pngI try to check my sales and support emails at least twice a day, every day. I managed this 362 days in 2007 (I took a break for Christmas day and 2 days I was in Germany at a conference). But providing this level of service can prove to be a problem for a one-man software company when it comes to taking holidays. Last year I restricted holidays to places with broadband Internet access. But finding child-friendly accommodation with broadband access proved to be quite a headache.

I have considered getting a Blackberry, but I really need something that can run my application to do proper support.

After some dithering I have now finally got mobile Internet access for my laptop through 3 Networks at £10/month. This provides 1GB per month of free data in the UK. You can get a higher data allowance with a more expensive contract, or a pay-as-you-go contract. But 1GB/month will hopefully be sufficient for my needs. Data costs outside the UK are a frightening £6/MB, so I will probably have to look for alternative arrangements if I take a holiday abroad. Vodaphone offer contracts with more reasonable roaming rates, but the contracts are much more expensive (£25 – £99/month).

Installation of the USB mobile modem and software was very easy – it took me about 5 minutes from opening the packaging to being connected. Only time will tell how good the coverage and service are. Watch this space.

Having mobile Internet access could also be a useful back-up if I lose my landline broadband connection. This is quite reassuring after several website outages and a failed harddisk in the last couple of weeks.


codekanaI don’t remember when or where I first saw an editor with syntax highlighting. But I do remember that I was ‘blown away’ by it. It was immediately obvious that it was going to make code easier to understand and syntax errors easier to spot. I would now hate to have to program without it. So I was interested to try version 1.1of CodeKana, a recently released C/C++/C# syntax highlighting add-in for Visual Studio.

Codekana features include:

  • Finer grained syntax highlighting than VS2005 provides.
  • Highlighting of non-matching brackets and braces as you type.
  • Easy switching between header and body files.

In the code below Codekana colours the if/else/while blocks differently and visually pairs the braces:

syntax highlighting

I have only been using Codekana a few hours, but I am already impressed. I find the ability to quickly switch between C++ header and body files particularly useful. VS2005 only appears to allows switching body to header, not header to body (doh!). You need the dexterity of a concert pianist for the default Codekana keyboard shortcut (Ctrl-Shift-Alt-O), but it can be customised. I changed it to Ctrl+. (dot) .

Codekana also has other features, such as the ability to zoom in/out on code. This is quite ‘cool’, but I’m not sure yet whether it will be of much use. Time will tell.

I am new to VS2005 and I have yet to try out other add-ins, such as Visual Assist, but Codekana certainly seems to have a lot of potential and is excellent value at $39. I look forward to seeing what other features get added in future versions. Find out more and download the free trial here.

Disclosure: The author of Codekana is a JoS regular who I have corresponded with in the past and was kind enough to send me a complimentary licence.