Photo by Pawel Czerwinski / Unsplash

PlayTime 008 – Imagining Questions

Feb 26, 2025 (Feb 27, 2025) Loading...

We'll gather on Zoom / Miro, on Friday 28 February at 3:00pm London time (local time for you) for this weeks' Workroom PlayTime, which is Imagining Questions.

Regulars should note another shift in time. Also, I'll need to put a hard end on this one, as I'm due in a parent / kid art thing at 3:30.

I change as I learn: As we're a couple of months in, here are some changes to the format:

  • I'm going to lengthen the time from 15 to 20 minutes. I find it hard to build something that works well in 15 minutes, and 20 minutes is a standard 'set'.
  • I'm going to move it from Friday afternoons. I imagine that I'll run it midweek afternoons.
  • We'll try using the same Zoom room for all Workroom PlayTimes – and it's kind-of-on all the time so we can drop in.
  • I'm going to schedule (at least) 4 weeks in advance, and move them if I need to (or run them in different timezones if you need to), rather than announce less than 48 hours before (which is satisfying for nobody).

Help me by letting me know what day / time might work well for you.

These exercises are for everyone, for free. Paying Subscribers get to play together every week.


To play with this week:

After too many promises over the last few weeks, it's time for me to give you an example of a generated exploratory interface.

As context, here's a one-page toy called CadenceKeeper. CadenceKeeper uses several JavaScript source files – a central one is Timer_v2.js. I wanted to explore that unit on its own; I had an impression that the timers didn't always change their behaviour as they aged, and preferred to experiment and play rather than to predict and observe. (note: if you had this post as an email, I sent it with the wrong link at the start of the § – fixed now)

Anthropic's Claude-3.5-sonnet built me this exploratory interface for Timer_v2.js. I gave it the code, and asked for an HTML page which:

  • shows the constants in use
  • lets me construct new objects (that's what the code does) with parameterised and default values
  • lets me select from objects I've made, and shows me its values in real time
  • lets me trigger and monitor events described in the code
  • gives me a simple UI for any callable method in the code

If memory serves, I had to ask a few times before I had something I felt I could use.

Using my cheap new tool, I mucked about with the working code, found a couple of handy bugs, fixed them and moved on. I found it swift and interesting to prompt for the interface, dig for the problems, write the right tests to expose them and then fix the problems. I found it particularly helpful, when making code-based confirmatory tests, that I had already understood how to trigger the problem and how to look for its symptoms. I would have been unlikely to write an interface like this by hand, because it would have been a yak (and a half).

Next time I do this interestingly, I'll capture the details so I can write about them with clarity. And there's an exercise coming, so that you can build your own interfaces. Indeed, work is afoot with several valued colleagues to do this in public at an event near you...

If you want to encourage me to keep going, switch to the paid subscription – and that means you can be sure of a weekly invite to come and play.

Cheers –

James

🫣
Aside: don't expect the code or story above to be static. This promised content is delayed because my notes got disorganised and because my memory is flaky. I've posted what I've got and I'll replace and change if I find that I've uploaded something broken or if my story doesn't reflect how I did it. In particular, I want to post the prompt.

Member reactions

Reactions are loading...

Sign in to leave reactions on posts

Tags

Comments

Sign in or become a Workroom Productions member to read and leave comments.

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.