Post AlPSBjpKf8R7XCnyRk by trwnh@mastodon.social
 (DIR) More posts by trwnh@mastodon.social
 (DIR) Post #AlPSBZGDwoPYlQInKq by mauve@mastodon.mauve.moe
       2024-08-26T17:26:08Z
       
       0 likes, 0 repeats
       
       Simulating network requests to test a new feature in @distributed You know how when you follow an account on Mastodon you don't get to see any of the users older posts unless someone else on your instance follows them? Well if it's a distributed press site it'll attempt to "backfill" your instance with all the older posts once your follow request is accepted. 😎
       
 (DIR) Post #AlPSBaGcCqJnsvUcaG by thisismissem@hachyderm.io
       2024-08-26T19:58:25Z
       
       0 likes, 0 repeats
       
       @mauve @distributed that might have unintended side-effects
       
 (DIR) Post #AlPSBaTNROWiWVSoTY by mauve@mastodon.mauve.moe
       2024-08-26T17:56:03Z
       
       0 likes, 0 repeats
       
       For the curious: https://github.com/hyphacoop/social.distributed.press/pull/87
       
 (DIR) Post #AlPSBavjjxDBwSjSgC by mauve@mastodon.mauve.moe
       2024-08-26T21:02:41Z
       
       0 likes, 0 repeats
       
       @thisismissem Probably! What sort were you thinking of?
       
 (DIR) Post #AlPSBbaVINozyto1Ds by thisismissem@hachyderm.io
       2024-08-26T21:05:07Z
       
       0 likes, 0 repeats
       
       @mauve like flooding peoples timelines with the backfilling of posts
       
 (DIR) Post #AlPSBc77L7uRc3443c by mauve@mastodon.mauve.moe
       2024-08-26T22:20:45Z
       
       0 likes, 0 repeats
       
       @thisismissem I assumed timelines would sort by published time no? I'm gonna run some tests before deploying this to production ofc
       
 (DIR) Post #AlPSBcyI9QRaGxwWwK by thisismissem@hachyderm.io
       2024-08-26T22:23:50Z
       
       0 likes, 0 repeats
       
       @mauve I think there's a bug to the contrary
       
 (DIR) Post #AlPSBdj5LRsGc5ptsO by mauve@mastodon.mauve.moe
       2024-08-27T02:21:09Z
       
       0 likes, 0 repeats
       
       @thisismissem In mastodon? i'd love to see the source code for it if you know what part of it it'd be in.
       
 (DIR) Post #AlPSBeR2i12IoQP0OO by thisismissem@hachyderm.io
       2024-08-27T10:06:28Z
       
       0 likes, 0 repeats
       
       @mauve I don't have it off top of my head but follow from /app/lib/activitypub/activity/create.rb
       
 (DIR) Post #AlPSBez4fUG4VyKBRA by mauve@mastodon.mauve.moe
       2024-08-27T15:55:43Z
       
       0 likes, 0 repeats
       
       @thisismissem It seems to be taking the created_at part out at least. 🤔 https://github.com/mastodon/mastodon/blob/main/app/lib/activitypub/activity/create.rb#L122C7-L122C17I'll look more after testing. Gonna let my personal instance take the bulk o9f the damage :P
       
 (DIR) Post #AlPSBflHmEp4vUsgaG by thisismissem@hachyderm.io
       2024-08-27T16:30:13Z
       
       0 likes, 0 repeats
       
       @mauve yeah, I've heard of like, birdsite bridge that did similar backfilling clogging up people's timelines, but that might be specific to that implementation.
       
 (DIR) Post #AlPSBgIxl1lGbwda4m by darius@friend.camp
       2024-08-27T16:35:30Z
       
       0 likes, 0 repeats
       
       @thisismissem @mauve so... imo the ActivityPub way of doing this is to publish your last X posts at an "outbox" endpoint specified in your profile. Then a remote server following you can parse the outbox and get some content to fill things with. I did this with some software I was building and Mastodon just... didn't grab any of the outbox posts and I was confused as to why not
       
 (DIR) Post #AlPSBh0v7avIoHCgam by trwnh@mastodon.social
       2024-08-27T16:42:10Z
       
       0 likes, 0 repeats
       
       @darius @thisismissem @mauve yeah the outbox is there to support "web browser" use cases, fetch the latest activities and page through to see historythe thing with mastodon and timeline sorting is that the timeline sorting algorithm isn't using creation date, it's using arrival date. this is so someone can't create a post set in the far future to have it pinned at the top of your timeline.
       
 (DIR) Post #AlPSBhbQvq88dWHqVM by trwnh@mastodon.social
       2024-08-27T16:43:09Z
       
       0 likes, 0 repeats
       
       @darius @thisismissem @mauve so delivering an activity ~now would insert the post at the top of the TL even if it was backdated in the `published` property.
       
 (DIR) Post #AlPSBi3nEOoc3TYUi0 by darius@friend.camp
       2024-08-27T16:43:37Z
       
       0 likes, 0 repeats
       
       @trwnh @thisismissem @mauve Oh interesting. But also: why not use arrival date for future dated posts and creation date for back dated posts? (Genuine question btw. I'm sure I'm missing some weird edge case race condition)
       
 (DIR) Post #AlPSBiXDT0LpWjJzZQ by jenniferplusplus@hachyderm.io
       2024-08-27T16:52:10Z
       
       0 likes, 0 repeats
       
       @darius @trwnh @thisismissem @mauve Because of Announce, as the obvious case. But more generally, when an object was created doesn't have any real connection to when it should be presented to people. Mastodon is doing more or less the right thing, here.I wish mastodon would be more prompt in backfilling from the outbox, so that this wouldn't even seem necessary. But even that is basically the right behavior.
       
 (DIR) Post #AlPSBjBH44OTWy3z0a by darius@friend.camp
       2024-08-27T16:54:45Z
       
       0 likes, 0 repeats
       
       @jenniferplusplus @trwnh @thisismissem @mauve I see what you mean by time created vs when it should be presented. That said, if we consider the context of pulling from an outbox to backfill, then the context seems pretty clearly (to me, I could be wrong) "do not show this in the home timeline, this is just for filling in our database for views more generally"DOES Mastodon pull from the outbox? I didn't observe it doing it at all
       
 (DIR) Post #AlPSBjpKf8R7XCnyRk by trwnh@mastodon.social
       2024-08-27T16:55:45Z
       
       0 likes, 0 repeats
       
       @darius @jenniferplusplus @thisismissem @mauve nope, mastodon p much ignores the outboxand yeah it makes sense to *not* do timeline insertion when backfilling, backfilling seems like the kind of thing that is only/primarily useful for viewing a profile and not keeping up with current activities
       
 (DIR) Post #AlPSBkMIgYo9BSEIpk by trwnh@mastodon.social
       2024-08-27T16:58:34Z
       
       0 likes, 0 repeats
       
       @darius @jenniferplusplus @thisismissem @mauve another way to look at it is that there are really two dates, one is the date the object claims to be published, and the other is the date that the activity arrived in your inbox. most fedi dev is used to thinking in terms of objects, but it would be more technically correct and spec-accurate to think in terms of activities
       
 (DIR) Post #AlPSBl2U9iYHIHxzaS by jenniferplusplus@hachyderm.io
       2024-08-27T17:02:09Z
       
       0 likes, 0 repeats
       
       @trwnh @darius @thisismissem @mauve objects have dereferenceable URIs. Why wouldn't I make that a first class entity in my data model?
       
 (DIR) Post #AlPSBlUqSHEkiFEdn6 by trwnh@mastodon.social
       2024-08-27T17:05:12Z
       
       0 likes, 0 repeats
       
       @jenniferplusplus @darius @thisismissem @mauve activities do too, as well! or they should. activities are also objects.the advantage of thinking in terms of activities is that it's a better representation of reality, with AP serving as a specialization of LDN (Linked Data Notifications), you're basically notifying your followers/audience/recipients that "something happened". it's the reason we POST Create activities and not just raw non-activity objects.
       
 (DIR) Post #AlPSBm8Y4ezohNoLg0 by jenniferplusplus@hachyderm.io
       2024-08-27T17:09:15Z
       
       0 likes, 0 repeats
       
       @trwnh @darius @thisismissem @mauve Unless the activity is intentionally transient. The spec says this twice in two paragraphs. I don't know what it means for an activity to *not* be transient. Activities are actions, not ongoing persistent state. The objects the refer to are the persistent state.
       
 (DIR) Post #AlPSBmjlqGloYpE4h6 by darius@friend.camp
       2024-08-27T17:18:58Z
       
       0 likes, 0 repeats
       
       @jenniferplusplus @trwnh @thisismissem @mauve I see the transient language in the spec but it's about ids and guids and referencing things globally. I don't read it as saying anything about activities being temporary things that can be thrown away (though they allow for the possibility). Every time I've worked with an Event/Object model (at least in years as an MMORPG dev) we consider both Events & Objects to be first-class entities. All of these things should be first-class and treated as such
       
 (DIR) Post #AlPSBnQJI6nWgl8304 by erincandescent@akko.erincandescent.net
       2024-08-27T17:23:39.993494Z
       
       0 likes, 0 repeats
       
       @darius @jenniferplusplus @trwnh @thisismissem @mauve "transient" activities were a bad idea and should never have been allowed :(
       
 (DIR) Post #AlPSBo8yc2WivI1ica by jenniferplusplus@hachyderm.io
       2024-08-27T17:31:41Z
       
       0 likes, 0 repeats
       
       @erincandescent @darius @thisismissem @mauve @trwnh I would argue that about non-transient activities.
       
 (DIR) Post #AlPSBouTlQWZIcFefA by erincandescent@akko.erincandescent.net
       2024-08-27T17:50:33.350700Z
       
       0 likes, 0 repeats
       
       @jenniferplusplus @darius @thisismissem @mauve @trwnh there are so many things which get easier when your activities have IDsFor example, is Undo(Follow) undoing the active follow or is it stale?
       
 (DIR) Post #AlPSBpkwcMUXvKnYRM by jenniferplusplus@hachyderm.io
       2024-08-27T17:58:55Z
       
       0 likes, 0 repeats
       
       @erincandescent @darius @thisismissem @mauve @trwnh undo is also a problem.
       
 (DIR) Post #AlPSBqcpO1aqcS0aQa by erincandescent@akko.erincandescent.net
       2024-08-28T00:50:13.413182Z
       
       0 likes, 0 repeats
       
       @jenniferplusplus @darius @thisismissem @mauve @trwnh I can’t say I’m a big fan of the Undo acitvity in practice, but the problem applies to an Unfollow activity all the same.Having ids makes certain forms of state resolution easier. What would really make them easier is monotonically increasing but otherwise opaque ordering token included in every activity, but I have a hell of a lot more distributed systems experience in 2024 than I did in 2014.