CamShow – a new utility for document visualising

I’ve just released the first version of my new app, CamShow.

CamShow is a simple desktop application for teachers, lecturers or anyone who wants to demonstrate little things up on a big screen.

Screenshot of CamShow in action
Screenshot of CamShow in action

The short version is this- it’s a little app that lets you use a webcam to show real, physical documents on your PC (and therefore your smartboard), and it has a vertical flip option in case you want to mount the camera at the rear of your table.


One of the aspects of XP that also shows up in related styles of development, such as agile, is pair programming.

This is where you work as a team of two, at the same workstation. One of you is the pilot, operating the keyboard. The other is the co-pilot or navigator, and they sit off to the side, observing. Every so often, you switch roles.

Programmers working as a pair
Two programmers at work, pair programming. The pilot on the right, at the keyboard, with the navigator to the left. CC BY 2.0

Continue reading “Pair…configuring?”

My favourite regexp

Do you have a favourite regular expression? That might be a tricky question for some- like the benighted masses who haven’t yet heard the gospel of regular expressions. Or maybe you have so many dear to your heart, a real Sophie’s Choice? For me, it is easy, the first non-trivial one I wrote, for a task management system called TOM. Take a look and see if you can sell what it does- to help you out (?) I have left it in the context of the line of Perl it came from.

$string =~ s/(?=.{79,})((.{0,77}[\-,;:\/!?.\ \t])|(.{78}))/$1\r\n/g;

Continue reading “My favourite regexp”

Homebrew Intervalometer

I wanted an intervalometer for my Canon DSLR, which at the time, rather miserly did not contain. An intervalometer is a device to take exposures at regular periods. It’s great for time-lapse work. Their own add-on was quite pricey. Even knock-offs were more than I thought was worth it. And besides, I wanted a project where I could make my own printed circuit board, or PCB.

Continue reading “Homebrew Intervalometer”

HexGame v1.2

The SVG+JS game with quite a lot of hexagons, but not as many as some, has been improved. Challenge your students to come up with answers to questions like “What does T in TCP/IP stand for?”, or “What R is a device that chooses where to send packets, according to a set of rules?”. If you have an interactive whiteboard, let them press on the tiles to select their next letter.

hexgame screetshot

Improvements: It has a prettier win-screen, with an actual visual interface for setting the letters on the hex tiles.

Check it out- HexGame

Randomness – C# mini tutorial

Note: This was some teaching material I used on the degree and professional courses to explain a little about using randomness- why and how -in your applications. The courses were based around C#, but are easily adapted to many other languages, including Java and Javascript. Just ask for a translation! Because they were slides used as part of an in-class tutorial, some parts may raise questions as much as answer them…

Note 2: A Visual Studio project is available with some starting code, and some questions (in the form of comments) for you to try to answer, available here:


  • What is randomness?
  • Where can we use it in our programs?
  • How can we acquire random values?
  • How can we make some values more likely than others (weighting/non-uniform distribution)?

Continue reading “Randomness – C# mini tutorial”