Cameo operates in two places:

  • on the server computer
  • in your browser, on your computer

Like most websites, the browser part is written using JavaScript. But Cameo is perhaps a little unusual in that about 75% of the code is browser JavaScript. On the server, if there is a coding error, then it is easy for the code to send me a record of where it happened and keep detailed logs, so I can deal with it. However, until last week, this hasn’t been the case for the majority of the code, the browser JavaScript.

However, I have now added a general purpose error handler to the browser code that also lets me know of any problems. Unfortunately, some of you have already seen this in action. Ideally it would never show up, but when it does it gives me a fighting chance of working out what went wrong and fixing it.

We may see a few false positives out of this. More likely we’ll find bugs that have been there a while and weren’t actually preventing task completion, so you may not have noticed them, but nevertheless should not be happening. Or, should no longer leave you puzzling over why it looks like nothing is happening (which is what used to happen for a serious JavaScript fault).

One part of this work has used a fairly recent addition to JavaScript called promises. This is present in most currently-supported browsers, except Internet Explorer 11. That means if you’re still on Windows 7 and are not using Chrome or Firefox, it is a little unfortunate, as you can’t upgrade to Microsoft Edge. So having had one such “fault” already reported, I’ll look at doing it slightly differently. IE11 is old, slow and buggy and missing many of the more modern features of browsers that are being kept up to date, so I am surprised to find it in use with Cameo. It won’t be supported for much longer, but in the meantime, I’ll avoid promises.