• Mostly just refactoring and getting rid of tech debt before I start any new features.
  • The oldest posts started getting auto-deleted last week, so I added a bunch of new identity columns and sequences to keep track of the total numbers of things despite all the deletes. Why not just rely on the values of the primary keys? Because I'm using Snowflake IDs (instead of auto-incrementing integers) with a custom routing converter to translate back and forth between Sqids and Snowflake IDs. This should make it pretty much impossible to guess the primary ID of anything in the database, but just know that the converter accepts both Sqids and Snowflake IDs if you want to try (proof)!
  • Sorting posts by "updated" now takes comment creation/modification times into account, so it should be a lot more useful.

Now I'm taking a short break from cosplaying as a web developer to cosplay as a network engineer while I upgrade my home network with UniFi.

Update: My U6+ was DOA, so I'm taking a break from my break to cosplay as a web developer again.

it'd be pretty sweet to be able to sort posts by recent reply age :^)

oh my god that's already possible. now just let me save updated as my default view :^)

i'm curious about how you're relating users to anonymous identities. literally just had the idea of encrypting foreign key column values, and letting the user generate/regenerate their personal keys to do that to mask that relationship at the database level.

i've been doing a little casual probing on webrtc and peer to peer connectivity via the browser. i like the core user experience of stuff like slack and discord, but i think the service nature of them isn't great, especially since they start to cater to the paying users, and retarded consumer-oriented features start to gain prominence. there are some dead webrtc-based chat source repositories i've seen, but haven't found anything really compelling yet.

the general tech stack that had me interested was tortoiseorm for the 'repository' (e.g. data models and data access objects) using aerich for migrations. for an api layer, i was considering fastapi. i've got the data layer pretty much done and have been slowly messing with the data access objects.

for the api i was just looking at fastapi, because it's python and it's pretty stable now, but maybe something else. i could just pip install the data layer, then import the data access objects, which will have methods precisely created for api purposes.

for webrtc-based peer-to-peer chat, there are a couple options for data storage. what i thought would be interesting is to use localstorage, thus keeping the api bandwidth spent down to being the middleman for communications required to perform ice transactions and identity/access management. i was also thinking it'd be cool to present a service that stores chat history for the user, too, based on some kind of event log/nosql database, but that's really just kind of a cool idea than a desired direction. you can do cool stuff like keep a perpetual event log, but process the data occasionally into materialized views to reduce query times, etc., so it's kind of like i want to do it just because it's cool.

the final piece would be the front end. i've known about things like react native, kotlin, electron, etc., but they're so fucking fat. it's disgusting. chatgpt helped me find tauri, which looks interesting. i'm still not satisfied with the landscape of reactive front end frameworks, though. react is alright to work with, but the library ecosystem is aids (compared to the cancer aids it was 6 years ago). i haven't put as much effort into this as the rest of the design, but i'm trying to keep myself from just picking something.

I had some ideas about encrypting things like that, but the anonymous thing isn't that sophisticated right now. It's just a flag on the post/comment. Then there's a separate table of anonymous usernames that join to the post, so as long as there's an anonymous username in that table, you always get the same one for the entire thread.

So the system always knows your real account, and there's a way for admins (just me at the moment) to see that if needed, but when you use it, there's a warning to remind them that privacy is a core value of this stupid website, and only a total loser would go around peeking at people without a good reason. I hope I never have to use it (I haven't yet), and I'm actually enjoying not knowing who anyone is, as well as finding out what my next anonymous username is going to be. The anonymous idea was less about being truly anonymous and more about keeping the focus on the discussion instead of the users. I wanted people (me included) to feel safe posting whatever they wanted without some loser stalking them through their post/comment histories. Plus it's fun!

that's kinda what i assumed. it's cool, i like it, just had a dumb idea while i was thinking about it.