Kids NCurses Messenger

May 22nd, 2021
house, kids, tech
Yesterday I wrote a program that lets me and Lily (7y) send messages back and forth:

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.)

Referenced in:

Comment via: facebook, lesswrong

Recent posts on blogs I like:

In Defense of Mystery's Hat

only the most up-to-date discourse takes here on Thing of Things

via Thing of Things December 16, 2024

Developing the middle ground on polarized topics

Avoiding false dichotomies The post Developing the middle ground on polarized topics appeared first on Otherwise.

via Otherwise November 25, 2024

How to eat vegan on Icon of the Seas

Royal Caribbean has a new giant cruise ship, Icon of the Seas, which has a large selection of food options.

via Home November 21, 2024

more     (via openring)