Loqi[preview] [[tantek]] π Admin notice: Due to a Bridgy Fed bug, @tantek.com's "ActivityPub actor" was deleted, notifying every following server which then unfollowed @tantek.com. It was an accident! Feel free to refollow @tantek.com at your discretion. Sorry for the inc...
[snarfed]Admin notice: this account was recently accidentally deleted due to a bug in its fediverse provider, Bridgy Fed, which resulted in fediverse servers removing all of its followers, including you. We've now restored the account, so feel free to re-follow at your discretion. Sorry for the inconvenience!
[Murray]I agree with the analogy. Feels almost self-evident and well labelled. Not sure I agree with a lot of the economics discussed, but that's another matter π
capjamesg[d]I have a question. My document store is thread unsafe, in that if I run it in multiple threads I'll end up needing to index all the data in each thread. But I want to use it with multhreaded Flask. What is my best option?
_pi_r2_0[d]capjamesg[d] how is it thread-unsafe? you can have a multi-reader, single writer lock, or you can do all the lookups and mutations in a dedicated thread, or you can make it thread-safe by storing in an MVCC datastore
_pi_r2_0[d]to get to thread safety in the presence of mutation, the simplest thing to do is to bring something like https://pypi.org/project/rwmutex/ to the equation, to take a read lock on reads and a write lock on writes
_pi_r2_0[d][edit] to get to thread safety in the presence of mutation, the simplest thing to do is to bring something like https://pypi.org/project/rwmutex/ to the equation, to take a read lock on reads and a write lock on writes
_pi_r2_0[d]only one writer is allowed, if there is no writer infinite readers are possible. so make your write sections as small as possible by doing as much work as possible before (rarely, after) the shared state mutation
[tantek]ok so I'm tempted to flip my @-mention autolinker to use xcancel(.com) rather than twitter(.com). Any reasons I shouldn't do that? (like literally for everytime I @-mention someone in all posts 2010 to present)
[tantek][snarfed] minor issue, does the "followers" count (on the BF profile dashboard page) need to be reset as of 2024-09-22 and/or recounted somehow?
[snarfed]I'm a bit reluctant because I can't be sure how different implementations handled the actor delete. I know Mastodon severed following relationships, but others may not have, so ideally I'd keep delivering to them just in case
[tantek]Iβm guessing 90%+ are mastodon so I'd be ok with a onetime follower count reset as of 2024-09-22, even if that undercounts other implementations that were not impacted by the bug
[snarfed]do you have a preference? keep the old stale followers possibly working, and the stale count? or reset and possibly cut off those old still-working followers?
[tantek]oh wait, [snarfed] are you saying that if someone refollows me that they don't add to the overall count because the BF database already thought they were following me?
[snarfed]no, it's not about count, it's about non-Mastodon instances that may have preserved your followers, so when you post now, those old pre-delete followers might be getting your posts again
[snarfed]I can reset all of your pre-delete followers - which will also "fix" your follower count - but that would cut off any of those non-Mastodon followers who are now working again and haven't re-followed
[snarfed](but yes, separate from that, BF de-dupes followers, so if someone re-follows you, they won't add to your current count since it already includes them)
[tantek]Ok, given that refollows are not inflating the follower count, let's leave it as-is and see if it sorts itself out to be vaguely (within 10%) accurate
[0x3b0b]Some of Tantek's stuff showed up for me again from Sunday, to provide that data point. My updated follow request still shows as "follow request sent" rather than "already following" but I don't remember what it looked like before.
[0x3b0b]Hmm, worth trying. Could also be a side effect of my direct actor record editing. Unfollowed; waiting a minute to make sure the new follow request gets a new ID and doesn't throw an error instead... (that's a me thing)