
James Edwards

James describes a simple but surprisingly effective technique for synchronising multiple media sources in order to add accessible audio descriptions to an existing video.Read More

James looks at three cunning things you can do with regular expressions, that provide neat solutions to some very sticky problems.Read More

James Edwards looks at some DOM3 properties that simplify node relationships, by focusing only on element nodes and ignoring other types.Read More

James Edwards gets excited about the new MutationObserver API, and talks about how and why it's come to replace Mutation Events.Read More

James Edwards looks at two JavaScript shorthand expressions that rely on automatic type conversion, and discusses when they are - and are not - a good idea.Read More
For the eighth article in this small-and-sweet functions series, I’ll be looking at a function called ancestor(). As the name suggests, this function gets a reference to a given node’s... Read More
How do you take a nebulous idea and turn it into a game — to get from technical details, to something interesting and challenging? Well recently, I found myself wondering whether CSS transitions... Read More
For the seventh article in the small-and-sweet functions series, I’d like you show you a function called abbreviate() — the main purpose of which I’m sure you can guess! It abbreviates... Read More
HTML5 introduces a couple of new attributes for implementing browser-based form validation. The pattern attribute is a regular-expression that defines the range of valid inputs for textarea elements... Read More
Welcome to another article in the small and sweet functions series, in which I’d like to show you a neat abstraction called domStorage(), that provides a set of convenient functions for... Read More
The HTML5 <details> element is a very neat construct, but it also has quite a serious usability problem – what happens if you follow a hash-link which targets inside a collapsed... Read More
The fifth article in the small-and-sweet functions series is a follow up to the previous article, which showed you a simple function for creating an ISO datestamp. The previous article noted that... Read More
Some of the things being done with JavaScript today are truly amazing. The Internet itself is still young, yet it’s been through several evolutions in its short history – most... Read More
The fourth article in the small-and-sweet functions series introduces a function called datestamp(), which uses various JavaScript Date methods to produce a UTC date-string in the ISO 8601 format,... Read More



