💾 Archived View for soviet.circumlunar.space › rwl › gemlog › 2021-03-16-noradraw.gmi captured on 2023-03-20 at 18:25:48. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-12-03)
-=-=-=-=-=-=-
I have a niece named Nora. She just turned three. We live in different
countries and, despite the ease of international video calling these
days, the time difference and the attention span of a three year old
mean that we don't see much of each other.
I'm still figuring out how to be an uncle. Nora is the first of her
generation in my family. It's been a while since I've had to have any
kind of meaningful relationship with someone who does not have at
least a high school education. I'm out of practice, to say the least.
I like kids! Or so I always thought. But somehow interacting with them
doesn't seem to work. Like there's a part of my brain that has long since
switched off, and now simply sputters and recoils a little when it has
to respond to this person who can't sit still long enough to finish a
thought more complicated than "I want X NOW".
Unless there's a book. Or a screen with a story on it.
https://git.sr.ht/~wyleyr/noradraw
I tried to solve the problems of being an uncle recently by writing a
program. It is called noradraw. It's a drawing program for the
terminal. You move the cursor to draw lines. You can use eight colors,
and a variety of ASCII characters for textures. You can save a drawing
that you made, or load a saved drawing. And that's about it. My stroke
of brilliance was adding a feature that plays back a drawing exactly
as it was drawn. Whenever you load a drawing, it feels like the person
who drew it is drawing it again. This, at least, is fascinating for kids.
I tried to make the interface as simple as possible, but I don't think
I made it simple enough for a three year old to use unattended. The
limitations of keyboard input mean that one needs at least some
conception of the alphabet and the mappings between letters, sounds,
and words, which is tough for a person who cannot read on her own. The
upside is that it can run over ssh from a very minimal server. So it's
great for interacting with someone nine timezones away.
The program is, at the moment, about 300 lines of Python 3. It uses
the ncurses library to do all the terminal interaction. The code is
hacked together and needs cleanup.
And it's fun.