Kids NCurses Messenger |
May 22nd, 2021 |
house, kids, tech |
The laptop is an eeepc 700. It was the first mass produced netbook and I liked it a lot. By 2010 I wasn't using it anymore, and it ended up in the basement. Recently I found it, and noticed that while it is still a ridiculously tiny computer, it is a good size for a child:
It still booted, and was apparently running Debian 7. I'm not
sure where that came from; I had thought it had been in a box since
before Debian 7 came out in 2013, but I guess not. I wasn't entirely
sure what I wanted to do with it, but started by upgrading it to
something recent. It was too old for apt-get dist-upgrade
on its own, but by putting first 8, then 9, then 10 in
/etc/apt/sources.list
I was able to get it up to date
with apt-get update && apt-get upgrade
.
Thinking more about what to do with it, I thought Lily would be excited to have something her size, which might get her more interested in typing and writing. After over a year of remote school (and a bit of parental lessons) she could use the practice!
I started by writing a simple
chat TUI in python with
curses. It has a section at the bottom for input, and the rest is
for the conversation so far. I added exec python3
simplechat/client.py
to the end of her .bashrc
, so
it starts automatically when she logs in.
I initially wanted to make it send texts, but everything seems to cost at least $1/m for a phone number. Thinking over the chat apps already on my computer/phone, Slack would work well: they prioritize making it easy to integrate with.
Posting to Slack directly from the client was straightforward, but there wasn't a great way to receive messages. I decided to write an intermediate server to receive messages with Slack's Events API, and have the client poll it. I didn't use any of their libraries; it was simple enough to send and receive JSON.
Our house Slack now has a
#kids
channel, and any of us who join it can talk to
Lily. I could potentially add external guests, but I'd want to teach
her about @-ing
people first. I could also potentially
build support for other kids to join; perhaps her cousins when they're
literate?
She's pretty happy with it, though I am curious how much she ends up using it.
(The code is on github.)
Comment via: facebook, lesswrong