Web applications

I'm pretty excited about the potential for websites to provide rich platform independent web applications. They're inefficient - requiring massive overheads - and the differences between Javascript implementations can be frustrating, but they can still provide some of the best end-user experiences and allow for rapid development.

Given this, it seemed like a good idea to get in on the act, and learn about some new technologies at the same time.

You can try some (actually, at the moment only two) of the results of my efforts below. They're only here for fun and will inevitably suffer from bugs and glitches, but if you have any comments please do let me know.

Regrexit Map

On 23rd June the British public voted with a majority of 51.9% to 48.1% to leave the EU. Many were shocked at the result, expressing what has now been called "regrexit" for the outcome.

In response, over four million people signed a petition calling for a second chance at the referendum.

Even though there was never going to be any chance of a second referendum, I felt the petition provided an interesting set of data to compare against the voting distribution from the original referendum vote. The result of my curiosity can be seen in, an interactive explorable map that shows which parts of the UK felt more or less regret compared to the others.

Celtic Knot Generator

Celtic knot Another simple tool that's basically a doodle for generating Celtic knots. You can specify various parameters such as the size, rope thickness and whether it's symmetrical.

The knot is generated using a technique proposed by Andy Sloss in his book "How to Draw Celtic Knotwork - A Practical Handbook". The only difference is that instead of using a set of pre-generated tiles, the generator here uses Bézier curves to render the rope on-the-fly.

I haven't yet figured out any particular use for this, so let me know if you can think of anything!

So go on through to the Celtic Knot Generator page to create some random knotwork.

iCalendar Generate

iCalendar Generator diary This is a very quick and simple tool for generating iCalendar files. You can use it to create files that can be used to add entries to a diary, such as Outlook, iCal, or on a phone.

I use it on this site to create diary entries for lectures and tutorials, such as on my Teaching page. One of the nice things about it is that you can set up URLs to generate dynamic iCalendar files that'll automatically updated themselves. For example, files that always point to "next Wednesday", rather than a specific date.

To use it, just fill out the fields on the iCalendar Generator page.

Mandelbrot Explorer

Mandelbrot Explorer screenshotYou can dive deep into the Mandelbrot set and explore its infinite patterns with this interactive Mandelbrot set renderer. It uses the Common Gateway Interface (CGI) for rendering, so the computing power comes mainly from the server, with the front end using Javascript if it's available to make it easier to navigate around the set.

There's more help available from the Mandelbrot Explorer page itself.


NodiadNodiad is my first attempt at some sort of web application that might actually (possibly) be useful. It's a little and entirely web-based application that allows you to add notes to any webpage at all. Not just your own webpage, but almost any webpage you care to visit.

It does this using a mixture of AJAX, and a special 'web scraping' type technology (I'm not sure what the correct terminology should be), so that you can stick notes to pretty much any page for future reference.

You can also share notes with other people, so they can see what you thought about a site, or add tags to notes so that only certain notes are visible on a particular occasion.

Nodiad was written as a research tool and for teaching purposes, so that I could add notes to a page before passing the URL on to students. It's still a bit flakey and doesn't cope with all pages well, but it may be useful to some people.

Please take a look at the Nodiad site if you're interested, where you can also sign up for a free account.