I've been back at it with the FitBit development. I created a new watch-face similar to my previous binary face and it looks like this, can you tell the time from it?
This has given me an idea for a new project where I fill the screen with 1x1 pixel squares and write a rasterizer.
I have been doing some bot development as well. Nothing too fancy, just the functionality to assign a role to a user when they react to a message, and remove it when they remove their reaction. It was a little bit interesting in that you have to fetch the message if it's not cached, and you should emit the add reaction event manually in this case. Perhaps what's more interesting is that the user object cannot be given a role, it has to be a guild member object, which you have to get from the message not the user, then you get the guild from that, then you search the members for one that has the same ID as the user. Seems pretty obtuse, I wonder if it's a quirk of the library or of the Discord API - I wouldn't be surprised either way. It has reminded me that I still need to make my own library for it in C++.
The most fun part of that exercise was getting the Pi up and running again; in a way that I can access it without it being plugged into anything except power.
On another project I have been helping a friend create a utility for automatically cropping webtoons. Webtoons are a series of images presented in a long column. Occasionally, when they are downloaded, you come across bubbles that are cut so that the top is on one page and the bottom is on another. Characters can also get cut this way. We also have the constraint that our images should not exceed 1200px in height. So we have to join up all the images (well we don't have to, we could check if it's cropped improperly before we join) then we decide where new cuts should be made.
It's a useful tool to have, what used to take minutes now takes seconds. Of course pages still need to be cleaned manually. Even if we could search an image for text (like Google), current content-aware fill technology is not quite good enough to fill in what the text was covering up. It does well if it's a flat colour, gradient or pattern, but it struggles with line drawings of objects - hands, trees, buildings, furniture, and doors are the things it struggles most with.