Tool Building: Becoming a Better Writer

art, programming

When I studied art, I would copy the drawings of the great Renaissance masters like Michaelangelo and Da Vinci.

When I work on my writing, sometimes imitate the style of certain writers like Hemingway or Byron.

Around 13 years ago I had the idea to create an application that would record how people copy a piece of writing.

The application would let you:

– access a work of literature (via Gutenberg)

– see that work in one pane of the application

– in another pane, you type whatever you are copying

– record the timestamp and keystroke and this becomes a “score”

With the score we can:

– playback the writing as the person wrote it (animated) not only the static end product

– interpret as a musical score and map letters or times to notes

– create a film or animation maybe using stable diffusion

– compare how different people type the same manuscript

– understand our writing habits

– other things ? ideas wanted

How quickly do I write certain words or letters? How often do I mistype the letter ‘y’?

We lose these gestures when we only look at the finished piece. Lets treat writing as a performance.

Writing as Gesture is alive for me today so I went back to rebuild the application

The Design and Architecture

There are two modes: writing and playback. Writing mode captures the user, the piece, the keystroke, and the timestamp of the keystroke. I want to capture the data as a log file, but I am using a database for now.

I do not have the concept of an ending. A piece of writing never ends. Each user only has one version of a piece: you can only copy Moby Dick once or recopy it over and over in the same document.

Anyone can write a playback mode since the protocol is public: user, piece, keystroke, timestamp. My first playback mode will probably be straightforward playback, but I may change the colors of the letters depending on how many times they were erased or how long it took the user to write them.

The Stack

I am using preact (typescript) and the front end and python on the backend since they are both languages I am familiar with. Preact is new for me, but react is old for me.

I am hosting with Replit. I use Replit when I teach Python (last at CUNY). I also use Replit with my kids for superhi classes. They have great templates, integration with git, and free hosting, and it takes zero time to set up.

Maybe I’ll move it over to a cloud service provider eventually. I do have some shame that I am not using a CPS, Docker, k8 etc – but not much.

The Hardest Thing

Sometimes the hardest part is just getting started and putting up a blank screen – so I did that

Hopefully, I can move on to the next steps soon.

If this was fun – give me a follow @hackerm0mor and subscribe to the rewrite ttps:// – thanks!

Leave a Reply