I fuckin' told you about the fuckin' undefined behavior, man, I told you the standards committees were legitimately insane. Also apparently clang is written by terrorist pedophiles: https://research.swtch.com/ub . :lookhowtheymassacredmyboy:
:ken: tinycc and kencc are now the only acceptable C compilers. (There have never been any acceptable C++ compilers.) :kenbw:
ken-yshl.jpg
I fuckin' told you about the fuckin' undefined behavior, man, I told you the standards committees were legitimately insane. Also apparently clang is written by terrorist pedophiles: https://research.swtch.com/ub . :lookhowtheymassacredmyboy:
They instance-blocked me, they apparently don't realize that anyone can do this from any instance. There are 2,933 instances with open registrations. Literally anyone can upload this CSV. Picture someone that mechanical-turks themselves into having 3k accounts, finds a list of instances with these blockbots, and then just uploads that file once per account. These bots are a time-bomb.
Here is a periodic reminder that these blockbots allow one action taken by one user on one instance to break the entire instance and they allow someone with a little patience to completely take down your instance. Everyone thank @NEETzsche for writing it and not rate-limiting it (CBA) and making the defaults break your instance (to trigger the libs) and @alex for merging it (because he hates fedi and wants to destroy it), both of whom never listen and both of whom I promised to tag in perpetuity every time there is a complaint about this bot, as well as @kroner for giving me something to click between responding to DMs.
@verita84 has written a version that *doesn't* DoS your instance by making your server flood other instance's timelines. It doesn't even need rate-limiting, it just does a periodic scan of the DB; it's rate-limited by design.
seals.csv ken-yshl.jpg newblockbotjustdropped.png
They instance-blocked me, they apparently don't realize that anyone can do this from any instance. There are 2,933 instances with open registrations. Literally anyone can upload this CSV. Picture someone that mechanical-turks themselves into having 3k accounts, finds a list of instances with these blockbots, and then just uploads that file once per account....
Pete, you're such a little bitch. I have you muted. Your website is irrelevant and your vaporware fedi software is a testament to the fact you can't actually do anything except write walls of text and start drama. You know what's actually bad? Rejecting deletes. That's worth people defederating your server over, not some stupid block bot. I've only ever supported you, and then you decided to make an enemy out of me for no reason. Well, good luck with that. I honestly don't need you.
Except that FSE will be Revolver by then. :revolvertan: I won't be running the box forever, but FSE will become immortal when it is converted. I was saying to someone over DMs yesterday that I love FSE; I might love it more than anyone else on earth. I've tuned the Postgres server, I've written webvac to keep the images up, I've hacked shit into Revolver that allows it to take some of the load off Pleroma (which is why the hellthreads no longer crash FSE), I've hacked Pleroma some, I've learned way more about nginx than I ever expected to. Over this time, FSE developed its own quirks, its own patches, all influenced by people that called this place home. And now FSE runs on its own hardware. This site feels like a living thing to me, a thing I love, like a family pet.
And all of this because FSE is a substrate: it is infrastructure that lets people communicate. I wouldn't have gone to this effort if it was just me, but I went to it because of the people that call this place home, the people that started their own instances after living on FSE, and the people this server can see when it reaches out to the network to say hello and extend a meme to the network.
There are so many people I have met here that I would never have met outside fedi. I can't imagine where I'd be if I didn't know you all. Thank you very much.
:conga_parrot::conga_parrot::conga_parrot: Enough :beeke::eping:, post some tits or fuck off. :custersrevenge::fse_is_officially_endorsed_by_minori_aoi:
:dance_top::mcafeesmug::gayfrog::hacker_h::hacker_a::hacker_p::hacker_p::hacker_y::nixonlol:
:dance_bottom::hacker_b::hacker_i::hacker_r::hacker_t::hacker_h::hacker_d::hacker_a::hacker_y:
:brian3: (three days ago) :audreysplaining:
Hilariously, despite the :revolvertan: test domain not even having a DNS record until very recently, several instances already block it. One guy wrote "free speech / nazis".
There was literally zero software running on it because the domain didn't resolve to anything. That guy blocked it for "free speech / nazis" based on...what, exactly? It was a .club domain that I registered as a joke (hi, :moon:). I posted about it a couple of times and then did nothing with it for like three years. Several people preemptively blocked it by...what, stalking my posts?
Hilariously, despite the :revolvertan: test domain not even having a DNS record until very recently, several instances already block it. One guy wrote "free speech / nazis".
There was literally zero software running on it because the domain didn't resolve to anything. That guy blocked it for "free speech / nazis" based on...what, exactly? It was a .club domain that I registered as a joke (hi, :moon:)....
@p I mean when you're blocking half of fediverse your timeline is probably really boring as shit. So you have all the time in the world to find more shit to block.
Okay, we're back! Box locked up. I would like to get Revolver out the door so that this machine can be retired.
Hilariously, we were only half-up for a while because I forgot to bring up Revolver and nginx sends some of the incoming reqs to Revolver and some of them to Pleroma, like we do with webvac, but webvac starts automatically and Revolver I didn't write an init script for because it's being tested and I'm just running that shit from a screen session (like a :chad:).
Now that I have tamed the part of ActivityPub that was causing me some trouble, I have one or two things to test, and then from there the last bit is hopefully just a matter of doing a bunch of dumb shit to support the frontend. That's a non-trivial amount of work but it's also not difficult work, but I've been doing mostly backend/engine-y stuff because computing is fun and webshit is boring. Anyway, fingers crossed, we may be in the home stretch and I could not be more excited, though hopefully the infrastructure doesn't come crashing down around me before it's able to .
A fun bit, there's a small bug in https://freespeechextremist.com/rvl/stats : the first req after it comes up kicks off a scan of rstore[1], which is all of the data in the system, which apparently takes forever to read, because there's no index yet. (It's about 1GB split into files less than 8kB.)
On another note, somewhat related, during Soapbox's reply brouhaha, I had remarked that FSE remains fully behind the Pleroma project, because the Pleroma developers are good people and (most importantly for the network) they care about the network and ensuring that the fediverse interoperates smoothly. This has not changed, and FSE will continue backing whatever fork is good for the network, which continues to be mainline Pleroma. When Revolver is out, there are some changes that will help, especially smaller instances: I've gone to some effort to make sure the object proxy functionality is usable, meaning that the entire network should have an easier time federating, and I have some planned tweaks to Pleroma to support alternative intake methods for AP objects as well as the media proxy, which should alleviate load on the network as a whole and even allow temporarily dead instances to survive. Any patches I write will be sent upstream to Pleroma, because that is the project where the developers have, repeatedly over the course of years, demonstrated that they care about the network and will guide the project along the course that is best for the fediverse.
More software is good for the network: Honk and Pleroma and PeerTube and Pixiv and even Mastodon, so the forks are fine. Unfortunately, the developers of two of the recent forks of Pleroma appear to have shat the bed completely on the simple principle that all of these instances are useless in isolation and what matters is the network. Not only that, but they have built their software on minimal tweaks to Pleroma's code while trashing the people that did all of the work. Mainline Pleroma has prioritized operating properly with existing deployments, keeping code in working order, even bending over backwards to support Mastodon's loopy nonsense, to stay compatible. This is one of the design principles of the project, per lain: "That’s something I’d recommend to other fediverse projects, too: Write compatible APIs." ( https://medium.com/we-distribute/blushy-crushy-fediverse-idol-a-chat-with-lain-about-pleroma-4ff578b99752 ). Mastodon is terrible and repeatedly done things that break everything that isn't Mastodon while simultaneously pretending it is the entire network, and I have not ever seen vitriol from the Pleroma devs about Mastodon, while the people using Pleroma as the basis for their projects have spent more time trying to spew bile on Pleroma than they have spent hacking. Everyone could do with a little cooling down and being respectful of the people that built this world we inhabit: without all the work that went into Pleroma, most of us wouldn't be here. It is certain that Akkoma and Soapbox would not exist, and to exploit Pleroma this way is disheartening to see from people that are ostensibly hackers. I have more to say, but I had better not, so lemme try to keep it positive:
An AP server tier-list for the shittiness in handling the Accept header:
S-tier: PeerTube
A-tier: Misskey, Pleroma
B-tier:
...
D-tier: Against all odds, *Mastodon* actually does something more or less what you're supposed to do. (Go figure.)
Mastodon probably does it correctly because Rails has facilities that automatically do this because collectively, bullshit feature-factory startups have decided to outsource things like "Read a few paragraphs to understand this plain-text protocol that took off precisely because it's so easy to understand and work with" to framework authors. Don't fall for it, just read the RFC, it's easy, I swear: https://datatracker.ietf.org/doc/html/rfc2616 . (Honk is absent from the list because Honk has yet to cause any problems.)
I'll usually put something on while I eat, watch a little TV and chill, you know? So over the course of a few days, I re-watched this speech Woz gave in 1984 about the early history of Apple and I've seen it before, but the thing that stood out this time was his account of how he designed the floppy drive controller. He sat down, he studied the Shugart specs, he applied what he knew about those and parity bits and he came up with a design that required five chips, at a time when most of them used 10-50; he joked that he didn't know enough to make one that took 50 chips. (Eventually they did custom silicon and moved all five chips onto one chip: https://en.wikipedia.org/wiki/Integrated_Woz_Machine . It would have been prohibitively difficult to integrate a 50-chip design.) This is several miles from the "I slapped the codebase with dependencies it until it worked" style of development most people do: if your codebase acts like you've been getting drunk and battering it, usually it's because you have. (I love you all but please have some goddamn pride as engineers and study the things you have to implement.)
And that concludes a post I am likely to regret because it will upset someone that I don't want to upset and will also come back to bite me when someone has to debug their code and it turns out that the source is a fuckup I have made with Revolver. The former may not occur, but the latter definitely will, with as much certainty as the spelling mistake you will make when criticizing someone else's spelling mistakes (though a spelling mistake in a post someone makes does not tend to result in having to debug your code and then make your code jump through hoops because the bug is in another codebase).
Thank you for reading my blog post.
An AP server tier-list for the shittiness in handling the Accept header:
Intel's microcode has been decrypted. "You can understand how Intel mitigated spectre vulnerability, explore the implementation of Intel TXT, SGX,VT-x technologies!"
COFE IS NOT SUPPOSED TO TASTE LIKE A HAZELNUT YEARS OF FAVORING yet NO REAL-WORLD USE FOUND for cofe additives besides milk and whiskey Want a flavor in your cofe? You have one: it is cofe-flavored. "Irish cream is like regular cream but Irish. Your cofe can taste like aftershave smells." - Statements dreamed up by the utterly Deranged.
LOOK at what food chemists have been demanding your Respect for all this time
COFE IS NOT SUPPOSED TO TASTE LIKE A HAZELNUT YEARS OF FAVORING yet NO REAL-WORLD USE FOUND for cofe additives besides milk and whiskey Want a flavor in your cofe? You have one: it is cofe-flavored. "Irish cream is like regular cream but Irish. Your cofe can taste like aftershave smells." - Statements dreamed up by the utterly Deranged.
Here's a paper about moderation policies on fedi, specifically Pleroma and instance-blocking. "Exploring Content Moderation in the Decentralised Web: The Pleroma Case." It was published six months ago in Proceedings of the 17th International Conference on Emerging Networking Experiments and Technologies.
Some highlights from the paper:
:itscalledwedoalittletrolling: "EmojiReactionsAreRetarded" and "SupSlashB" appear in the appendix, along with @sjw@bae.st's "RacismRemover"
:bwk: freespeechextremist.com now cited in a paper presented to the ACM, along with kiwifarms.cc, spinster.xyz, and bae.st's old domain, neckbeard.xyz.
:shitassdickfuckfluoride: Mechanical estimates for "harmfulness" were used, defined in terms of "toxicity", "profanity", and "sexually explicit material", and calculated by the Google Perspective API.
:chad: Instances that were most likely to be blocked were also the least likely to block other instances.
:bigred: There's no correlation between how many "harmful" posts originate on an instance and how likely that instance is to be blocked.
:icame: Neckbeard somehow had the lowest "Sexually Explicit" score. Poast had the highest, followed by a tie between FSE and KF. (I think this is a side effect of Google Perspective not having a clue what is meant by "bulge uwu" or "feet pix" or "queef".)
Overall, most of their conclusions were reasonable, and although I didn't have data, just observations, it lined up with why I'd seen and what people remark: most of the people on "problematic" instances are just normal posters, people are pretty chill, and the majority of the trouble comes from a handful of people. They quantified it using Google Perspective, and apparently the normal threshold is 0.8, which 95.8% of the people on the most-blocked instances are below. That is, 95.8% of the people on the most often instances are collateral damage for 4.2% of the people that caused trouble. They conclude that this hurts the network and should be finer-grained so as to minimize collateral damage. They have some other ideas that I think would do more harm than good: the "Solution Space" section suggests a cadre of professionals update blocklists, or that posts are routinely delivered to Google Perspective so that people can be algorithmically instance-blocked.
They seem to know a lot about the place and Pleroma in general, I suspect some of the people on the byline are around here. I can't say I agree with all of it, but it's refreshing: the overwhelming case so far is that some snotty kid with mental progeria writes a bunch of boomer words without knowing or caring what room they've walked into (knowing that nobody that reads the paper will verify it) in order to get their publication numbers up and get a cushy job in the sociology department. These people were knowledgeable and thorough.
rejects_not_correlated_with_actual_post_contents.png decentralized_web_moderation.pdf
Here's a paper about moderation policies on fedi, specifically Pleroma and instance-blocking. "Exploring Content Moderation in the Decentralised Web: The Pleroma Case." It was published six months ago in Proceedings of the 17th International Conference on Emerging Networking Experiments and Technologies.
50 days and change the box stayed up, but last time this happened, it didn't stay up long, it was up and down. Needs either a new motherboard or something else, and FSE might have to move. Registrations are going to be closed for now. The box might be up and down. Unfortunately, I don't have time to deal with the flaky hardware unless a bucket of money falls out of the sky. Maybe I'll do that other really stupid plan later (host it out of my house and reverse-proxy it with Tor), but FSE will be horrifyingly slow if that happens.
In the short term, FSE is going to move to Revolver, sooner rather than later. Like, I'm going to see if I can't get it out the door before the next time the box crashes, that's the timeframe I'm talking right now. Until further notice, it's just that and profit-seeking tasks, that's the entirety of what I'm doing.
FSE does not take donations. The reason FSE does not take donations is because I think this causes trouble for administration: you cannot give money to someone that runs the site if you expect the site to run cleanly.
Revolver, however, has no admins. It is software I am writing. I said before that it was not far enough along to take donations; it is now. I wanted to wait until the prototype was out, but if FSE's going to make the transition from routing electrons to emitting smoke, I may as well start the whoring now while it's still up. So, here's a LiberaPay project: https://liberapay.com/Revolver/donate and here's a QR code for sending Bitcoin to 1BZz3ndJUoWhEvm1BfW3FzceAjFqKTwqWV . If you pinged me about helping out with the project, now is a good time to either donate or send me a DM about code you have offered to write. No assistance is required with the backend yet, but if you can figure out what I'm doing just from the cryptic remarks and the Liberapay summary, then maybe we think enough alike to not run into the "three guys digging a 1x1' hole" problem, but until the code's live, that's the problem I'm trying to avoid. Revolver v0.1 is a 1x1' hole and putting more people on it will just make the shovels bang.
revolver_btc.png
:hacker_f::hacker_s::hacker_e:
...Aaaand, we're back. For now.
50 days and change the box stayed up, but last time this happened, it didn't stay up long, it was up and down. Needs either a new motherboard or something else, and FSE might have to move. Registrations are going to be closed for now....
For the first time in the history of FSE, we have a new policy on loli hentai: I no longer give a shit. I'll probably still have to take it down if I see it, but no one will be banned for drawings any more.
:randysavage: If the ref didn't see it, it didn't happen. :hulk:
The reason for the policy change is everyone bitching about it. I'm sick of hearing how much you hate someone else's drawings. Suck my dick.
I refuse to answer any questions about the policy change. Fuck you.
For the first time in the history of FSE, we have a new policy on loli hentai: I no longer give a shit. I'll probably still have to take it down if I see it, but no one will be banned for drawings any more.
Not *super* scientific, but I dug up some old data in a thread about the shittiest instance ever made, and while looking for a graph, I found a screenshot (with query, I think I was probably trying to show people how to do it) listing which instances had sent the largest number of posts to FSE. The timestamp on that image is May 21, 2020, which seems plausible enough to me for the time the screenshot was taken: the instances that no longer exist were all still active those months ago.
The data, as you can see from the query, is a count of all activities of type 'Create' (a post) or 'Announce' (a repost) over the last three days, aggregated by instance. Here's the query, you can do similar if you are running Pleroma (I don't have an equivalent query for Misskey/Masto/etc. but I expect it'd be easy enough):
:mycomputer: select count(split_part(actor, '/', 3)) as count_3day, '72 hours'::interval/count(split_part(actor, '/', 3)) as avg_freq, split_part(actor, '/', 3) as host from activities where data->>'type' in ('Create', 'Announce') and inserted_at > CURRENT_TIMESTAMP - '72 hours'::interval group by split_part(actor, '/', 3) order by count(split_part(actor, '/', 3));
(The reason the count is done by `split_part(actor, '/', 3)` is that Pleroma has an index for that.)
I thought I'd re-run that query, see where things were, how they compared. I didn't have this data at the time, but the fedilist.com crawler lists 7,272 total instances (2,426 of which have open registrations) and 4,388,262 total accounts. Those numbers have been going up steadily. (The crawler finds a little more than 17 new instances a day, on average; a lot of them are short-lived, some are not. Of the 4,413 instances that are newer than the crawler's first crawl, 2,091 are still up.)
At the time, the highest-volume instance was pawoo.net: we got a post from them almost every thirty seconds! Now we get a post from pawoo.net every 19 seconds. Seven instances now have higher volume than the highest-volume instance in May of last year. FSE itself is producing a new post every 24 seconds (up from every 41 seconds), just short of doubling post volume. baraag.net nearly doubled its output, neckbeard.xyz nearly tripled it, and spinster.xyz went from a post every 7m40s (563 over 72 hours) to one every 1m15s (3,412 over 72 hours), and that's just the posts that have federated to FSE. KiwiFarms is more than twice as active as it was.
So it looks like fedi's getting way more active! That's all even without considering the new instances that didn't exist back then, like poa.st sending FSE a poast every 11.7 seconds on average.
Granted, it's got some statistical problems, being two random 3-day slices, sampled when the mood struck me. But it's a really massive upswing in activity, too big and spread across too many servers to just be a blip, and it lines up with the crawler's statistics.
posts_from_instances.png posts_from_instances--2021-10-14.png
Fedi's blowing up.
Not *super* scientific, but I dug up some old data in a thread about the shittiest instance ever made, and while looking for a graph, I found a screenshot (with query, I think I was probably trying to show people how to do it) listing which instances had sent the largest number of posts to FSE. The timestamp on that image is May 21, 2020, which seems plausible enough to me for...
It was surreal seeing a normal-looking boomer talking to anime-girl-avatars about ffmpeg and updating Pleroma and trying out Misskey. Here's a video of him eating a graham cracker.
cracker.mp4
Sad day, pla.social just stopped resolving in the afternoon. The server's been down for a while.