← Back to Kevin's newslettersPublished: 2018 Jun 11

Hi friends,

Sketch.systems: A playground for designing behavior

I first learned about statecharts while developing embedded software for my artisinal cell phone. Since then have found statecharts immensely useful for designing and understanding complex behavior.

However, many of my designer friends and collaborators found the notation difficult to internalize and understand. Even if they thought they understood, their statecharts would be full of syntax and other conceptual errors. (Turns out — not everyone is great at internalizing and precisely executing formal semantics in their head!)

Working with my friends, we decided that it’d help to have an interactive playground that visualized and executed statecharts. This would make the design process a friendlier, more tangible two-way “conversation” with the medium, rather than a purely abstract, cold, mathematical synthesis.

We’ve just released that tool, free for everyone to use: Sketch.systems

So far, the reception from devs and product designers has been fantastic, so check it out!

Aside: Yes, “.systems” is a top level domain. Not only that, but Twitter automatically hyperlinks it — so everyone who tweets the name also includes a link! I wish I could say we were smart enough to anticipate that, but it was a total accident =P

A 7,220 character long regex

As I mentioned last time, my favorite thing about releasing projects is hearing from folks all over the world. Sketch.systems was no exception — we immediately heard from someone who wanted to define states and transitions in Cyrillic.

I was surprised that it wasn’t already allowed, since I didn’t recall explicitly excluding non-ASCII characters anywhere. Looking into it, though, I discovered that the \w “word characters” regex escape is merely [0-9a-zA-Z_], not actually, uh, “all word characters”, which I (a naive, only-speaks-English programmer) had assumed.

The solution required me to finally understand Unicode and the limitations of JavaScript’s UTF-16 strings, and culminated in the deployment of a glorious, 7,220 character regex.

Read the full story here.

Kevin’s in Edinburgh!

Despite an excellent showing in the gritty hipster and industrial textile departments, I’ve moved on from Manchester and am now settled in Edinburgh, land of superb greenery and Scotch (both crucial programming inputs).

As usual, just reply to this email if you want to grab a coffee or nearby-time-zone Skype — I’m always happy to chat about your projects, work, consulting advice, etc.