Archive for the 'reviews' Category



Programming with your feet

footI started feeling a mild burning sensation in my left wrist a few weeks ago. This is a classic early sign of Repetitive Strain Injury.  Uh-oh. I had an email exchange not long ago with someone who now has to use voice activation because typing is too painful. I can’t imagine how frustrating that must be. I decided to ignore Jane Fonda’s advice to “feel the burn” and looked for a way to alleviate the problem.

One approach is to reduce the amount of typing I do. But that is tough when you are running a microISV and writing a blog. I already use the text expander capabilities of the excellent Direct Access software to save a lot of typing (it tells me that it has saved me 51 hours of typing so far). I decided to try an ergonomic keyboard.

I bought myself a Microsoft 4000 Ergonomic keyboard. This is shaped to allow more natural positioning of the forearms and elbows.

microsoft_natural_keyboard_4000

Microsoft Natural Ergonomic Keyboard 4000

For more comfortable wrist positioning it also has a built-in wrist rest and the front of the keyboard is higher than the back.

microsoft_natural_keyboard_4000

Note the front of the keyboard (right) is higher than the back (left)

I was quite surprised how physically large it was when it turned up. The shape of the keyboard felt very strange to start with and it took me a few days of slow typing to get used it. The feel of the keys is nothing special and I haven’t yet used the extra gizmos, such as the integral zoom button. But I feel it is an improvement in comfort over the conventional keyboard I had before.

An unexpected advantage of the new keyboard is that it has improved my typing. If you watch a good touch typist, their hands hardly move. I (unfortunately) never learnt to touch type, I just didn’t have the patience. The clearer separation between keys for the left hand and keys for the right hand on the new keyboard made me realise that I was moving both hands left and right, more like a concert pianist than a touch typist. I am now moving my hands less and I think my typing speed has improved as a consequence.

I didn’t feel the new keyboard on it’s own was going to solve my impending RSI problems though. The major problem seems to be the continual Ctrl-C, Ctrl-V, Ctrl-A, Windows-D, Windows-E and Alt-Tab key combinations I do with my left hand, hundreds of times a day. Using the right hand Ctrl key instead of the left one helped a bit. But it occurred to me – why are my hands doing all the work? My legs are doing so little that I often feel stiff when I stand up from a long programming session. Why not put them to use?

I Googled for foot pedals for computers. After wading through lots of hits for music and dictation foot pedals I finally found the Savant Elite Triple Foot Switch. This is a programmable 3-pedal foot-switch that plugs into a USB port.

savant_elite_foot_switch

Savant Elite Triple Foot Switch

At £86.00+VAT it isn’t cheap. But what price do you put on your health? I ordered one.

When it arrived I wanted to program the pedals to map to the Ctrl, Shift and Windows keys. But I couldn’t install the device driver to program the pedals. After a call to the retailer it turns out the device driver doesn’t work on Vista, despite assurance on the website that the pedals could be used with “virtually any computer”[1]. Grrrrr. How long has Vista been out? I finally managed to program the pedals using my wife’s laptop – my last remaining XP box.

So now I can type using my feet for most of the modifier keys. I am using the pedals as I type this. I am still getting used to them, but the burning in my left wrist has definitely reduced. I think I can also type a little faster, but I am too lazy to do the speed tests with and without the pedals to verify this.  On the negative side:

  • Working out where to put your feet when you aren’t typing can be a little awkward.
  • The pedals tend to move around the carpet, despite being metal and quite heavy. Some small spikes might have helped.
  • Although the travel on the pedals is small, they are surprisingly stiff.

When I told a friend about the pedals he asked – why stop there? I could also be using my elbows, knees and head like a one-man-band. I could be working-out and typing at the same time. It is an intriguing prospect.

I just hope I don’t end up with burning ankles.

[1] System requirements have since been added to the website.

Getting website feedback with Kampyle

kampyleGetting good feedback from customers and prospective customers is essential to any business. I think I already do quite a good job of getting feedback from paying customers. But what about visitors who click around my site for a few minutes and then leave, never to return? I would love to know why they didn’t buy. This sort of feedback is much harder to come by, so I was interested to read about Kampyle in the article 14 free tools that reveal why people abandon your website.

Kampyle adds a clickable image to a designated corner of your webpage. If a user clicks on this image they are shown a simple (and customisable) feedback form. Any feedback is collected by Kampyle and presented through a dashboard on their website. All you have to do is register, customise your feedback form and add some javascript inside the <head> and <body> tags of each page. Best of all, the service is free. You can see it in action on Kampyle’s own website.

kampyle1

Click the floating image in the bottom-right corner to show the feeback form

kampyle2

Leave feedback

You can also have Kampyle pop-up a survey question for a given percentage of users as they leave your site. I find such surveys annoying and never fill them in, so I haven’t felt inclined to try this yet.

Kampyle sounds great. Users have a simple way to supply feedback which doesn’t distract them from my key goal (buying my software). Sadly, very few visitors actually supplied feedback through Kampyle. I ran it for a month on some of the highest traffic pages on my Perfect Table Plan site and got a grand total of 4 comments from 3 visitors. Only two of these comments had any really useful feedback and both were from a single paying customer who probably would have emailed support anyway. I don’t feel the feedback justified the ‘cost’, in terms of the potential distraction of visitors and another potential failure mode for my website. Consequently I am now only running Kampyle on a couple of peripheral pages. Maybe the results would be better for different types of site. It only takes 10 minutes of so to set up, so it might be worth a try.

Blog Blazers : 40 top bloggers share their secrets

blog-blazers

I have just finished reading “Blog Blazers, 40 top bloggers share their secrets to creating a high-profile, high-traffic and high-profit blog” the new book by the indefatigable Stephane Grenier of followsteph.com.

The bloggers interviewed are a diverse group, blogging on everything from personal finance to fashion. It also includes interviews with a number of software-related bloggers: Jeff Atwood, Ian  Landsman, Patrick McKenzie, Dharmesh Shah[sic], Eric Sink, Rob Walling, Bob Walsh and yours truly. Stephane also interviews himself, which must have been a strange experience.

Each of the interviewees was asked a standard list of questions. Some of the questions are more interesting than others. For example the question “What makes a blog successful according to you” resulted in 40 minor variations on “It depends”. But there is a wealth of useful information for bloggers, beginner or veteran. It will take me a long time to work my way through the many links and digest it all. I might even end up buying The elements of style by Strunk and White, which is recommended several times.

Stephane has done a great job of pulling together interviews from such a wide range of bloggers, including A-list blogging celebrities such as Seth Godin. I was very flattered to be included. At $16.95 I would certainly recommend this book to anyone who writes a blog, or is thinking of writing a blog. You can buy the book and/or ebook online from blogblazers.com. The book is also available from amazon.com.

As an interviewee I received some free copies and I am giving away two of them. If you would like one, please add your email address in a comment below. I suggest you obfuscate it to avoid spam-bot harvesting e.g. me [at] domain.com . I will pick two at random on Friday 21st Nov.

CoverageValidator v3

The nice folk at Software Verification have done a major new release of Coverage Validator, and the new version fixes many of the issues I noted in a previous post. In particular:

  • The instrumentation can use breakpoint functionality to get better line coverage on builds with debug information enabled.
  • Previous sessions can be automatically merged into new sessions.
  • The default colour scheme has been toned down.
  • The flashing that happened when you resized the source window has gone.
  • It is now possible to mark sections of code not to be instrumented. I haven’t had time to try this yet, as it was only introduced in v3.0.4. But it should be very useful as currently I have a lot of defensive code that should never be reached (see below). Instrumenting this code skews the coverage stats and makes it harder to spot lines that should have been executed, but weren’t.

There are still a few issues:

  • I had problems trying to instrument release versions of my code.
  • It still fails to instrument some lines (but not many).
  • I had a couple of crashes during testing that don’t seem to have been caused by my software (although I can’t prove that).

But the technical support has been very responsive and new versions are released fairly frequently. Overall version 3 is a major improvement to a very useful tool. Certainly it helped me find a few bugs during the testing of version 4 of Perfect Table Plan on Windows. I just wish there was something comparable for MacOSX.

Virus Total

Virus Total is a free service that gives you aggregate results from 36 different malware scanners. Just browse to the file you want to check on your PC and click ‘Send file’. It will quickly return the results of all the scans, hash sizes and a list of Windows system calls that the software makes.

This is a great resource for checking software you are about to install doesn’t contain malware. It is also useful for checking that your own download files haven’t been tampered with and don’t trigger false positives. Note that some software protection systems have been known to trigger false positives from malware scanners.

Thanks to a poster on this BOS thread for bringing it to my attention.

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 landlordmax.com .

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.

code_coverage_small.gif

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.

Codekana

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.

« Previous Page


Enter your email address to follow this blog and receive notifications of new posts by email.

Join 503 other followers

Blog Stats

  • 1,441,463 hits
When you are developing a software product it can be hard to
"see the forest for the trees"
see the forest for the trees
Do you need some affordable, independent advice on where to go next with your product?

Categories

Creative Commons License
This work is licenced under a Creative Commons Licence.

Follow

Get every new post delivered to your Inbox.

Join 503 other followers