Show newer

RK3588 CPU has been picked up by Radxa, Orange Pi, and Firefly, and it pushes **serious** numbers on the CPU benchmarks, almost 4x better than the Raspberry Pi 4. Comes in 8GB and 16GB RAM flavors.

Show thread

Listening to *It's all about the Pentiums* by Wierd Al Yankovic while obsessively researching the newest SBC releases of the year

ESRB rating: Blood and Violence (of software) 

Wow this is an incredibly long and detailed read, great for desktop / integrated software developers like me to understand how these kind of attacks work and how to prevent them

emily.id.au/tailscale

So I see two ways forward for the fediverse, either:

A. Mastodon has to be refactored / rewritten to use Ruby Fibers, the non-blocking concurrency feature for Ruby

OR

B. We have to switch to a different Fediverse software that is based on a more modern software development framework.

Personally I think B might be the best option, and my money is on GoToSocial!!

These days pretty much every modern web server framework or library is based on the same non-blocking IO primitives that `nginx` invented. But Mastodon is still lagging behind on thread pools where each thread blocks while it's waiting for the remote client or server.

Mastodon doesn't fork off a new process or spawn a new thread for every request, but it's darn close to it.

How did the web evolve past this scalability challenge? It didn't necessarily involve buying a faster computer. The developers of the venerable `nginx` web server famously struck first blood when they cracked what they called the "c10k" problem for the first time. (handling 10 thousand simultaneous connections to the same server application).

This happened in the early 2000s, and the nginx server in question was consuming only about 2.5MB of RAM during the load test.

This style of client and server application has its roots in things like `inetd` (internet daemon) and CGI (common gateway interface). Benno Rice explains in a section of his excellent presentation covering the history of linux and unix:

video.strongthany.cc/watch?v=o

> [Then things changed...] the internet happened. That inetd model was great when [you were dealing with a small amount of stuff going on], like, [only a few users would have telnet connections] ...The web looked like it would work that way too, and then it became really really popular. And so you end up with situations where forking off a process to handle every single connection doesn't really scale that well.

Many Mastodon server users and admins have mentioned that the load from all the new users is causing a strain on the system -- large outbound queues, delays on messages, slow page load times, etc.

The good news is that these problems don't have to be solved by buying a more powerful computer.

The Mastodon software uses an old (circa 90s and earlier) way of organizing its code, which I like to call "one-thread-per-request with blocking IO"

One of them is GoToSocial, which I see as a dark horse poised to surpass Mastodon and become the best general purpose Fediverse server implementation.

nlnet.nl/project/GoToSocial/

Congrats to everyone who has worked incredibly hard to make that project a reality!

Show thread

Look at all the cool projects that NLNet is funding right now !!! 😮​

nlnet.nl/project/current.html

Forest boosted

Can I get some voluntary load testing from #fediverse users lol, please boost/interact with this post.

Forest boosted

You know what, I'm realizing that maybe the correct implementation for a fedi client has **a freakin <em>URL BAR</em>** at the top o' the page like its its own browser

I created an account for my dogs to try out pixelfed: @fedipugs

So far its been a bit rough (no video support, hyperlinks get broken 🪦)

But if you like cute pet pictures maybe it could be worth a follow, I'll try to post when I can and occasionally maybe repost older stuff from the instagram that my partner made in the past.

```
Updating crates.io index
Fetch [===================> ] 82.56%, (163401/213323) resolving deltas
```

Show thread

Ok, tinygo is definitely not stable enough for this, moving on to trying rust instead docs.rs/age/latest/age/ 👀

Show thread

Streaming again, getting to work on running FiloSottile/age to run in the web browsa (compile golang to WASM with tinygo compiler)

music rn: 🎸🎺 Less Than Jake 🧨🍺

stream.sequentialread.com/

Show older
Pixietown

Small server part of the pixie.town infrastructure. Registration is closed.