Around 15 items on my technical to-do list
Last Friday I found myself standing at my computer and staring at it, realising that I have no idea what I should be working on with my precious free time. So I decided to make this unordered list as a bit of a focusing menu of choice.
Many of these I know how to resolve, I just need to actually do it.
1. Resolve issues with images not loading correctly when loaded via Misfed. I have some thoughts I’d like to write down on vibe-coding and how I’m surprised that the AI revolution hasn’t led to literally everyone making their own apps for which they are the only expected user. I’ve made an RSS reader that I don’t intend anyone else to ever use, just throwing instructions for features at ChatGPT and it’s gone quite well. Is the code good? It can’t possibly be. Does it matter? Not really. Are there likely massive security concerns? Likely - have fun inside its non-root container. And again, I’m the only user of it.
Anyway, some websites don’t have RSS feeds, like a certain sports league
who I’ve recently become interested in, and so I had ChatGPT make a scraper for
it, which converts it into an RSS feed, and then I can use it with my feed
reader. Downside is that the images it returns (which it downloads to
ActiveStorage rather than hotlinking) are all output with URLs like
http://localhost/storage/dds8fu3r.png and that hostname is useless.
I don’t want this service to be public (another piece of software I expect to be the only user of) so it shouldn’t have a public hostname.
I need to do some docker network-fu and then figure out what the src of the img tag should be for the RSS reader to download the image too.
2. Tollport needs a way to archive keys. Tollport is a piece of software I wrote by hand (why!) during my sabbatical and one I’m still quite pleased with. I realised there’s no way to remove a personal access token once you’ve created it.
There needs to be an ‘archive key’ button.
3. In the RSS reader, “Themes” need more work to make “Topics” useful. I’m using BERTopic to generate and assign topics to feed entries. There are some problems: the topics are incredibly niche. I need a layer to group topics together, which I’m calling Themes. Additionally, right now, if I retrain a new model (which I desperately need to do following some data quality fixes) then the old topics go away. I’d rather link the old topic to a similar new topic - again, leading to a grouping like Themes.
4. Enable Action workflows on every application. I spent an afternoon really enjoying getting Action pipelines working on my self-hosted forgejo instance. Very pleased! But in my eagerness to get it working for my RSS reader, I built images and configuration that only really work for that one project. The set up should have been Forgejo-wide but was RSS-reader-wide. This needs fixing, and will unblock me moving off of GitHub.
5. Add Mastodon discovery tools to RSS feed reader. If a friend on Mastodon toots about a blog post, that can be used as a signal to boost importance of an entry. It can also find more feeds that way too, suggesting which to follow.
6. Linking authors in the RSS feed reader needs an improved UI. My reader lets users Subscribe to Feeds. The software tries to make webrings too: this blog talks about this blog a lot, you should follow that one. The way it does that is by crawling links in entries in Subscriptions and looking for more RSS feeds. When it does that, it creates new Feeds and new Authors. The current Authors UI links every damn author - thousands of them - rather than just the ones the user is subscribed to, which feels smarter.
7. Identify placeholder or legit author names and make an effort to display the correct name. Often the author in a feed will be “invalid@example.com (chrissy banks)”. As a human, I can see that it should probably be ‘chrissy banks’. The system should take a stab at identifying NotNames and guessing at a BetterName.
8. Publicly accessible homepage for basement.wales. I recently acquired basement.wales for my basement server. I point it at my tailscale IP addresses. I have an idea of something fun to put on the public homepage though: a roguelike which behaves like a dashboard. A room where you can listen to radio.shane.computer or a library where you can look through blog posts. I’m excited about the idea of a room where you can see through the window and see that the indicators are all green, but you need a passkey to get into the room where you can read the Grafana details. (Only I would have the passkey.)
9. Factorypi should recover gracefully when it starts dropping frames. I have The Matrix running on a loop in my studio. After some time, it starts dropping a frame. I have code that should detect this has happened and refresh the page (which fixes it immediately), but that’s not working for some reason. My guess: the setTimeout I have that keeps track of progress is running every 5 milliseconds rather than every 5 seconds.
10. SSL cert management needs automating. That basement.wales set up means that certbot can’t access the server to confirm the SSL cert, so I had to do it manually (with TXT records). I need a way of automating that.
11. dotfiles need to be per machine. My dotfiles were an idealistic dream of a world where one config set would work on Mac OS and Ubuntu and Debian and Raspbian, but that was a folly. A pipe dream. Instead, I should have branches per environment.
12. Resolve 1Password ssh-agent and git signing. Same as above, maybe. In my dotfiles, I have
Host *
IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
which obviously doesn’t work on any other machine than the first one.
13. Forgejo configuration is in the mounted volume. It should be version controlled. I need to split out the important files so I can see what broke when things start failing.
14. Forgejo still refers to basement:222 when it should say git.basement.wales. There must be a second config for what it displays in the ‘copy SSH command’ box.
15. Take another look at envs in 1Password. I need to rethink how I have
passwords in my version controlled configuration for each website. I think
1Password have a solution where you start your server with op run and it
injects the secret envs from 1Password into the container, never needing for
them to be on disk. I need to think about what security I’m trying to keep
though. If someone has access to that server to see the .env files, that’s the
ball game, so who really cares.