Bits and Behavior
Published in

Bits and Behavior

Amy smiling with her hair down with a a sunset and beach in the background.
Amy on Kaimana Beach in Honolulu, HI, USA, maximally reinforcing sabbatical stereotypes.

Winter sabbatical update: Code, community, huakaʻi


Screenshot of a chapter editor, with a toolbar, a title “What is a book?” and text that says “I’ve never really thought about what a book is. To me, its always seemed like a physical object, with textures, smell, and weight, a personal artifact to be carried, annotated, and shared. And I like this conception of a book. But with the advent of the internet, books have taken a strange form.”
The Bookish press chapter editor, a WYSIWYGT way of writing long-form content.
A code editor showing a dozen lines of code, a preview window that says “WhatWord”, and a few play/pause buttons.
A very early prototype of Wordplay, a creative coding platform for creating interactive text-based media.
  • Wordplay has a strongly typed, purely functional programming language that uses no words, only symbols, but looks typographically clean, legible, and terse. Names are the only things that can optionally use natural language, but name localization is built in, with every name optionally having multiple language-tagged aliases. This design has the advantage of being something that can be laid out left-to-right, right-to-left, top-to-bottom, or bottom-to-top, since there are no natural language dependencies that dictate a particular direction, aside from names.
  • I’ve built a code editor that combines text-editing, drag and drop, and menu-based editing into a single interface. This diversity of interactions is essential for accessibility, as no one editing interface is sufficiently accessible on its own. Drag and drop assumes use of a mouse, text editing requires fine-motor control over keyboards and screen reader complexities, and menus can be slow to navigate, and so supporting all of them (and more in the future) is key. There’s a lot to sort out about how these interact, and a lot to polish, but I’m pleased so far with how all of these models are integrating seamless.
  • The Wordplay runtime that centers streams, where all external input to the program is a sequence of inputs that drive reevaluation of a program. This model has the benefit of making time travel debugging relatively trivial: in Wordplay, it’s easy to step back and forward through the entire execution history, and see the output at any point in that history, by simply scrubbing alone a timeline with a mouse or using the keyboard to step back and forward through steps in the program or inputs in a stream. This really transforms the experience of debugging: when there’s an exception, I can just step back a few steps and see what happened, freely going backwards and forwards to see what caused it. (And the cause is usually obvious, because nearly all runtime exceptions are caught at compile time, due to strong typing, and so the cause is already highlighted). It also enables a lot of interesting tutorial possibilities that I hope to explore.
  • Wordplay output is a scene of typographic phrases that can be styled, animated, and grouped, enabling anything from static layouts with subtle animations to highly interactive visual scenes composed of Unicode glyphs. There’s a lot of work to do on this to refine the API, so I expect much of the next three months will be building lots of examples to refine requirements.

Community and Huakaʻi



This is the blog for the Code & Cognition lab, directed by professor Amy J. Ko, Ph.D. at the University of Washington. Here we reflect on our individual and collective struggle to understand computing and harness it for justice. See our work at

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Amy J. Ko

Professor of programming + learning + design + justice at the University of Washington Information School. Trans; she/her. #BlackLivesMatter.