Skip to content

Where I've been

As is to be expected, I did the thing every aspiring blog writer does and started a blog page, only to write three posts and then never touch it again. Truth is, I've been itching to write more, but I both haven't had the time, and everything that I wanted to write about ended up not being worthy of its own entry. Plus, almost all of it has been Matrix-related, and I want my blog to be about more than Matrix. But whatever, here's an overview of everything I've been doing since the start of the year. Some of it's interesting!

Continuwuity

Probably the most notable thing I've been working on recently is Continuwuity. Following the abrupt death of conduwuit, I got together with a few of the other people closely involved in the project, and forked it out into our own continuation. Originally, it was just meant to contain a patchset that would fix a few bugs and hopefully keep the implementation in a relevant state for the foreseeable future. However, immediately after conduwuit archived, I was getting DMs daily from people asking what was going on, and if there were any alternatives or plans. So after a week or so of discussion and planning with the team, we decided to go public with the project, and now we've managed to release two new version of the server, adding a fleet of new features, fixing a ton of bugs, and tracked down countless more.

Continuwuity is rapidly becoming one of the go-to Matrix implementations since the ending of conduwuit, with several hundred members already in the community rooms, and an ever growing number of deployments. To say I never intended to develop a homeserver people actually used, it seems to be going quite well. Huge thanks to everyone involved in this, including (but not limited to) Jade, Tom, Aranjedeath, and Morguldir. If it weren't for this, I'd be back to slogging it out with Synapse, and my dreams of being in far too many rooms simply wouldn't be possible.

Website rewrite

I rewrote my main website! I got bored of just having a txt, and I wanted to fix the webring that I broke, and figured I could also re-add all the 88x31 buttons I loved. So I got to work and rewrote it into some super simple HTML, with a touch of CSS. There isn't even any JavaScript, which is pretty neat. It's still just a glorified web portal, but that's really all I need. I have zero web design skills, evidenced by the fact I just used a text document for so long. There's not much to write home about here, but I plan to add more stuff in future. You can see the source for it on my forge.

New domain

I also went ahead and bought timedout.uk! A lot of people over time have mentioned that the name nexy7574 isn't very memorable, and while it's memorable to me, I can understand why some people would struggle to get it to stick. After a brief brainstorm over what domain name would be meaningful to me, but still memorable, and cheap, I ended up settling on timedout.uk, because I like networking and am also bad at networking, and reputable for causing outages.

I plan to move away from the nexy7574 name over time, gradually switching stuff over to timedout. Stuff like Codeberg has already done this.

Matrix T&S

I've once again found myself where I'm helping to develop trust and safety tooling on a chat platform. If I had a nickel for every time this happened, I'd have three nickels by now, which isn't a whole lot, but it is weird that it has happened thrice now. Of course, any platform is going to get spam - I've noticed an uptick in Email and SMS spam, but there's not much I can do about that. However, with Matrix being an open standard, and interoperable, there are things I can do. So you bet I've been doing them.

Draupnir

Draupnir logo
Draupnir logo

I haven't played a huge role in Draupnir, but I opened a fleet of smaller pull requests at the start of the year to fix some nasty bugs that had been hanging around that the maintainers simply hadn't had the time to get to. Things such as preventing rooms being added as server ACLs, preventing the bot shooting itself when it sends a lot of events (feedback loops), and not re-issuing bans for people who aren't in the room any more (to save on state real-estate). I have since then hung around Draupnir, creating issues when people report bugs, occasionally helping out, and assisting with minor bugfixes where relevant.

If you're looking for a moderation bot to protect your community rooms on Matrix, Draupnir is a good choice - you can spin up an account anywhere and set it up as a Draupnir, and it'll protect your rooms from spam with no fuss. The Matrix room is #draupnir:matrix.org.

Meowlnir

Meowlnir logo
Meowlnir logo

Meowlnir is where I've really spent a lot of time recently. Meowlnir is a new Matrix moderation bot created from scratch by Tulir, who you might recognise as the creator of the mautrix bridges and SDKs, designed to run much closer to the homeserver than Draupnir and Mjolnir. Meowlnir acts as an appservice, meaning it is more efficient than the aforementioned bots, as the server pushes events directly to it, skipping the sync polling loop. Meowlnir is also tightly integrated with Synapse, and directly hooks into the Synapse database, allowing it to find events to redact en-masse almost immediately, can see soft-failed events, and has the capability to un/suspend users, and take down rooms.

While Meowlnir is primarily written by Tulir, I have done a lot of work on the usability (i.e. adding the leave and knock commands), minor but important bugfixes, however most notably, implementing the [MSC4284] policy server. This was a big project, but it resulted in the first open source implementation of policy servers, allowing anyone with a Meowlnir instance to run their own. This was a huge leap forward in enabling proactive moderation on Matrix, which is something the protocol still sorely lacks to this day.

With Meowlnir being primarily designed for Synapse, I have also made efforts to ensure that it works with other implementations, such as Continuwuity, by making sure that appropriate fallback behaviours exist, such as fetching recent events from the timeline when the Synapse database is not available.

(if you're interested, see the docs: https://docs.mau.fi/meowlnir/)

matrix-invite-logger

In light of recent spam attacks via invites on Matrix, I scratched up a quick script called matrix-invite-logger that functions as a manager for invites. Originally it was only meant to log incoming invites, but if armies can strap machine guns to their toyota hiluxes, I can strap one on my logger. Not long after the first few iterations of the logger were made, I quickly added in the capability to contact Meowlnir on incoming invites, allowing Meowlnir to report whether the invite should be allowed or not. If Meowlnir said no, the invite would be automatically rejected with a reason stating why it was rejected. Soon after, I added the ability to follow policy lists first-party, removing the requirement for Meowlnir, and consequently allowing anybody to run the invite logger on their own accounts without needing to be the administrator.

The attacks have since seemingly stopped, so work on the proper non-hacked-together version 2 has effectively stopped, however rest assured should things start getting hot again, I'll finish it off. The current version is still invaluable as a logger.

Gomuks

Recently, I was contracted to work on Gomuks, an esteemed Matrix client written in Go. Around the end of last year, Tulir was fed up of Element Web being slow and laggy, and wanted to create a web client that was actually usable. And such, Gomuks Web was born. Unfortunately, this kinda left the old Gomuks in the dust. Legacy Gomuks is a terminal client, which is what it was renowned for, however it has since fallen behind in maintenance. As such, Gomuks Terminal was something that was on the roadmap anyway, and after an attempt to upgrade the old Gomuks to the new client framework, it was decided that a full rewrite was needed, and Tulir ended up contracting me to work on it. So a lot of my time recently has been spent working on Gomuks Terminal, which has been interesting to say the least.

I'm not proficient in Golang, I just have a fair bit of experience in it, having gone all-in and written loads of my recent projects in it. I understand the language, the syntax, the idioms, etc, but it's still not something I can just bang out at speed like I can with Python. Combined with the fact that I'm working with libraries I've never used before, writing Gomuks Terminal has certainly been a challenge for me, but I'm confident that the end result will be more than satisfactory.

Advocacy

I won't go into too much detail here for a plethora of reasons, but I've also spent a decent amount of time engaging in advocacy for issues facing me and people close to me. This has namely been writing to MPs, pressuring prominent figures to take action, raising awareness of issues, and engaging in protests. I've also done some work engaging with the local community to raise awareness and gain an insight into what people are struggling with, and offering advice where I can.

This hasn't been an easy task and with the current political climate, it's been a bit of a dangerous one too. However, I've been affected by the bystander effect far too much in the past, so I'm quite happy to get my hands dirty. Who knows, maybe I'll get the ball rolling somewhere. Nothing changes if you don't at least try, right?

End of my first year at University

If you've spoken to me personally in the past year, you'll know that I started University in 2024. I've been studying an honours in Cyber Security & Digital Forensics, and it's certainly been interesting. I finished my second semester around the middle of May, and I finally have all of my unmoderated grades back. Unsurprisingly, I managed to pass all five of my modules, with a lowest mark of around 75%, and a high of 93%. Given I faced a lot of adversity this year, one way or another, I'm very proud of myself for doing so well. Excited to see what next year throws at me.

I've also gone and rented a house with a few friends, for the second year, which I'll be moving into very soon. I've got no idea how it's going to go, but I'm glad to finally be out of my parents' house, even if it's some overpriced shitbox.

Job Hunting

This isn't really relevant to me any more thanks to the Gomuks contract, but I've been looking for a job since I came towards finishing college. I had heard that the job market was pretty bad, but oh my, I did not realise just how bad it was. I have so far applied to several hundred jobs, heard back from maybe a couple dozen, had two interviews, and had zero offers. I have over 50 accounts for job application sites in my Keepass database, because for some reason, every business now has their own job application portal, where you need to sign up and fill in all the same details. I have rigorously tinkered with my CV and applied every piece of advice I could get, including from professionals, I have written cover letters, I have recorded stupid videos of myself that I'm not really convinced have ever been watched, I have filled in more "surveys" than I can count, and have done some of the most rediculous "personality tests" FOR A JOB APPLICATION that I have ever seen. I mean, when you're given questions like "which do you agree with the most, a) I often don't learn from my mistakes, b) sometimes I feel lonely", what the hell is possibly the right answer?

And that's before even getting into the fact that most jobs now require that you have a driving license. I am not allowed to get a full driving license on medical grounds, and I likely will never be able to, and as such I rely on public transport that frankly doesn't work (but that will be a separate blog post) to get around, which means something like 8 out of 10 jobs I apply for, I am immediately disqualified from. Others want me to have a Master's degree in mathematics or whatever, or to have 5-10 years of experience (for minimum wage). I've got nowhere to break into, and my options are unbelievably limited. If this keeps up I really don't know how I'll live, since once my student loan runs out, I'll be living off of maybe £30 a week, which just isn't something I can feasibly live off of.

Where next

Honestly, I don't know. I stopped planning for things in early high school, and since then have just gone with the flow. Whatever happens next is simply just where said flow takes me. Either way, I'm hoping to continue working on my open source projects and contributing to other things. I'm immensely thankful to everyone who has supported me in recent times, both financially and otherwise. It really has helped me keep the motiviation to keep going and make stuff the best it can be.

I'm terrible at writing conclusions. If you want to see more of my thoughts live, I tend to just spew stuff on fedi: @nex@fedi.transgender.ing. You can also talk to me on Matrix at #ontopic:timedout.uk.

Until next time, I guess.