Over at The Daily WTF, one of the authors, Remy Porter likes to add a certain amount of bonus content to the posts. Specifically – Remy’s articles always have a bunch of HTML comments with extra details or jokes, and clicking somewhere in the article produces unicorns.

Well, there’s no sense in letting unicorns go unclicked! That’s why I wrote unremyfy, a script to display the HTML comments inline and highlight where you need to go to get unicorns. What a useful script!

Install unremyfy


Moving the skeptics.se caveat banner

One change requested on the Skeptics Stack Exchange is to make the “rapidly changing” caveat on questions like this one more prominent. I liked the idea, so I wrote a user script in the mean time to do it. It adds a border around the right and bottom of the post, leading to the notification.

This will work either in Firefox (with Greasemonkey installed), Chrome (with restart) or Opera. There are extensions for other browsers (GreaseKit for Safari, Trixie for IE), but I haven’t tested with them.

What it does:

  • Adds a border leading to notices (like bounties, current events and lack of references)
  • Makes all notices bold

Download now!


  • 1.1: Removed moving to top, using border now
  • 1.0: Original version

Andtunes and RegexTester

In a sudden bout of motivation, I’ve finished up a couple of little applications. They’re both free software.


Andtunes is a music playlist manager primarily aimed at Android phones. It makes it easy to manage, sort and shuffle your playlists.
Andtunes screenshot
Download Andtunes


RegexTester makes it easy to test a series of regular expressions all at once. You give it a list of regular expressions and a list of test data (one per line) and it will check each line to see if one of the regular expressions matches it.
RegexTester screenshot
Download RegexTester

So, if you’re interested, go and download them!

Tech.Ed: Pimp my app

Twitter love: #auteched #arc202

If you read my Twitter feed (and, let’s be honest, it’s not like I’ve put any effort into promoting it), you may have noticed that, last week, I was at Tech.Ed. Anyway, I’ve got notes on a number of the sessions and I figured I may as well post write them up in some sort of coherent format. Some sort of coherent format – I’m working from some fairly disconnected dot points here.

The first session will be Pimp My App, presented by Shane Morris.

The user experience of an application is defined not so much by the designers as by the developers and their time frames. The specification usually defines the features – and if the user experience is simply one line in the spec – “and it should be usable”, that will define how much attention it gets during development.

One trick that designers use is the “squint” test – you squint at the page, and see what draws your eye. This should, ideally, be what your users are supposed to find.

User experience design is not primarily about graphics – graphics can set the tone, but they are the last part of the UX design.

All user interface elements need to be processed by the user, so remove all unnecessary elements – it makes it easier for the user to understand the page. Unlike in school essays, variation should be limited – the more consistent the user interface is, the easier it will be for your users to deal with it.

How many colours should you use. Scott suggested this simple test: rate your graphic design skills on a scale of one to five. Now use that many colours. Background colours should be neutral colours – white, grey, black, navy, blue or brown are good choices. Cool colours appear to recede in the user’s vision, hot colours pop forward. One good way of adding colour is to pick new shades of the same colour. Another trick is to pick an image that expresses the right sort of feeling, and select colours from that.

Some useful sites for colour selection:

Kuler, ColourLovers
These allow you to select and search colour pallets. If you select “Create” it will allow you to upload an image and select colours from that, or from a base colour.

Vischeck shows your UI (or image) as it would be seen by a colour-blind user – a useful check to have.

Scott also suggested a simple test for how many fonts you should use. First, rate your graphic design skills on a scale of one to five. Now, use one font.

Unwanted relationships and JPEG artifactsAlignments between document elements create relationships. This is a useful thing – but it’s no good if you create relationships between the wrong things.

There are several ways you can group elements besides groupboxes – proximity, similarity, alignment and even just by surrounding them with whitespace. You can add visual weight to an element with the use of colour, size, constrast, irregular shape, and misalignment.

This was a deservedly popular session – both the presenter and his content was great. I enjoyed it greatly and I’ve got to recommending watching Shane Morris give a talk if you ever get the chance.

New software

I’m a software developer, and I tend to solve problems (in so far as they are so solvable) by writing software. As I do like to share it, I’ve created a little website for my programs. The Seraphiel website is now updated to take of advantage the new site, and I’ll be adding new programs over the next few days.

Ministry of Stochastic Walks

Every time someone writes a post about random walks, I feel somewhat motivated to write a little program to generate a few (with adjustable parameters, of course). Anyway, Tamino’s recent discussion motivated me enough to write one.

You can see, for example, the difference between a proper random walk:
Random walk
And a walk that’s been bounded on one side:
Bounded stochastic walk

The code is written in .NET (C#) and licensed under the GPL. The binaries are built for the .NET Framework 2.0, so you’ll need that.

And, of course, because it’s the only reason why anyone clicked on this link:

Review: Team Foundation Server

Until a few months or so ago, the policy where I worked was to use Microsoft’s Visual Source Safe (VSS) for source control. Now, granted, VSS does have something of a reputation for corrupting your repository, which is generally considered to be an unforgivable sin for a source control system. That, however, never happened to me, and VSS wasn’t particularly unusable. However, my current employer has started using Microsoft’s newer source control system, Team Foundation Server (TFS), which, I can honestly say is the first source control system to ever make me wish desperately for the sweet release of a corrupted repository.

Many issues are related to the plugin, which crashes my development environment several times each day, and takes agonisingly long to do anything successfully (I have time to read the newspaper while waiting for my code to finish checking in. When checking in doesn’t cause it to crash). But, still…

Getting code out of the repository can be a problem. Sometimes, I only get the solution file and the directory structure (but no code files). Other times, I get the code, except for a handful of (as near as I can tell) random files which have been left behind. Granted, on rare occasions, I am able to retrieve the files I need.

Some more complex operations can get a little hairier. For example, I once spent the best part of a day fighting against TFS with the unreasonable goal of moving a folder. A colleague has been trying to set up daily builds, and TFS seems to have a peculiar habit of using old versions of some files for no apparent reason. Other files are unaccountably missing for the use of these builds.

There are random “features” a-plenty too. One time I deleted a project (from my local computer) that had a few changes, after which checking that project out from TFS it would come, but not have any source control bindings. I don’t think I ever bothered trying to deal with that; luckily, I didn’t need that project any more.

TFS takes the VSS’ working paths to stupid extremes with workspaces, creating a system that behaves according to a hierarchy of configuration-heavy and hard to determine rules. Certain actions, like retrieving a project you haven’t accessed before, can alter your workspace configurations without troubling to let you know about it. And why have workspaces in the first place? I’m yet to see any useful feature they add that wasn’t done better by, say, Subversion, a usable source control system, without an unmanageable mess of configuration and a nightmarish cacophony of bugs (in some situations, for example, which I have yet to isolate, it doesn’t put a project into the workspace it is logically supposed to go to, but place them… somewhere else, typically Visual Studio’s projects folder).

Over the last few months, every single developer on our team has spent at least a week fighting against TFS. That said, TFS has its advantages – for example, it’s quite possibly useful as a treatment for hypotension. Unfortunately, I can’t think of any others at the moment.