113 Followers
20 Following
277 Posts

Hi, I'm a chronically online weeb software developer. :)

Seasonal Weeb (I watch seasonal anime)
Rhythm Games enjoyer 🎡 - osu!, Arcaea, WACCA, Pump It Up, Rotaeno
Advocate of FOSS, Rust enjoyer πŸ¦€
I make everything from scratch when I have the opportunity

Personal Websitehttps://speykious.dev/
GitHubhttps://github.com/Speykious
YouTubehttps://youtube.com/@Speykious
Anilisthttps://anilist.co/user/Speykious/animelist
@jann @siguza me neither
@krille Oh ok! Thank you
@krille for some reason I cannot join the FluffyChat room on Matrix. It loads indefinitely :(

Been using Matrix more lately, I set up my own instance using Tuwunel.

As clunky as the experience is right now between all the different clients that have somewhat bad UX (Element) or are incomplete (everything else), I'd rather go there instead of Stoat, because a project that is both open-source and federated is pretty much the only thing that is enshittification-proof at this point.

On desktop, despite being incomplete, Cinny is an awesome client! It looks quite similar to Discord compared to Element, but still feels like Matrix imo, which is nice. I look forward to it implementing more features and becoming more stable.

On mobile, I went with FluffyChat. It looks amazing and it seems to have the best UX for manual key verification in DM rooms. My only problem is the chat bubble design, but I hope they eventually make that customizable.

Update: They're removing the CLA!! https://www.reddit.com/r/FluxerApp/comments/1r8724q/heads_up_fluxer_has_a_big_red_flag_it_requires/o62u82f/

Fluxer keeps coming up as a Discord alternative. It looks good, but it has one major problem: It's AGPL and it requires a CLA.

That is an enshittification time bomb. I personally will not contribute to projects using that combination, it's gone wrong way too many times.

That's not to say it's bad to use as a hosted service, it being open source at all is better than Discord.

But from an open source point of view, it's not a good licensing setup. It basically creates a system where the project owners have more rights than other contributors. It's not fair.

Edit: For ref, this is the formal CLA:

https://cla-assistant.io/fluxerapp/fluxer

TL;DR "We can do whatever we want with your code, and license it under any license".

During setbacks, I find it very comforting to reflect that every conservative policy in history has failed eventually.

Progress is inevitable not because the world is naturally good, but because good people work hard to make it better.

This is as true in politics as it is in the #Linux kernel.

Thank you for reading my one (1) hot take of the year, I will be taking no questions at this time.

@tudbut Just replace "wanting to be the opposite gender" with "writing with my left hand instead of my right" and the exact same thing happens, from discrimination to denial to statistics to a sudden "increase" in left hand writers. Gender dysphoria is not a widespread thing, there are just a lot of eggs in the closet.

I think people really don't appreciate just how incomplete Linux kernel API docs are, and how Rust solves part of the problem.

I wrote a pile of Rust abstractions for various subsystems. For practically every single one, I had to read the C source code to understand how to use its API.

Simply reading the function signature and associated doc comment (if any) or explicit docs (if you're lucky and they exist) almost never fully tells you how to safely use the API. Do you need to hold a lock? Does a ref counted arg transfer the ref or does it take its own ref?

When a callback is called are any locks held or do you need to acquire your own? What about free callbacks, are they special? What's the intended locking order? Are there special cases where some operations might take locks in some cases but not others?

Is a NULL argument allowed and valid usage, or not? What happens to reference counts in the error case? Is a returned ref counted pointer already incremented, or is it an implied borrow from a reference owned by a passed argument?

Is the return value always a valid pointer? Can it be NULL? Or maybe it's an ERR_PTR? Maybe both? What about pointers returned via indirect arguments, are those cleared to NULL on error or left alone? Is it valid to pass a NULL ** if you don't need that return pointer?

more books need catgirls on the cover