• Andrew@piefed.social
    link
    fedilink
    arrow-up
    3
    ·
    22 days ago

    Re: votes and comments for old content - you’ve noticed the same problems on PieFed as on smaller Lemmy instances, because they have the same root cause: we can only get what Lemmy will give us.

    The ‘retrieve remote post’ function was originally written for PeerTube integration. If you fetch a post from there, you can then query the ‘favorites’ outbox to get voting info, and the ‘replies’ outbox to get comments. You can’t do that with Lemmy - it considers voting data to be private, and it doesn’t provide a ‘replies’ outbox. The only outbox that Lemmy provides is for posts, that provides the text for the most recent 50 posts, but nothing else (FWIW, the posts outbox for PieFed communities includes the replies along with each post, but - again - not the votes).

    When a PieFed or other Lemmy instance first becomes aware a community that’s hosted on a remote Lemmy instance, it processes the posts outbox. The ‘retrieve remote post’ function is there for if you want a post that’s older than the ones provided in the outbox, or if someone before you discovered that community but didn’t subscribe (the remote community won’t send anything to piefed.social if no-one there is subscribed to it, so we can end up with a situation where we have the old posts but not the newer ones).

    For votes: the hypothetical scenario of a post having +1000 on its home instance, but -4 on a remote one, is a real possibility, but that’s a bigger problem than just PieFed. Using ActivityPub, Lemmy doesn’t provide a post score, and even if it did (or you grabbed it using their API), it doesn’t say where the votes have come from. You need to know this, because otherwise you’ve no idea what a future vote will mean (is a ‘downvote’ reversing a previous downvote, or is it a new downvote?). There’s an inconsistency in PieFed, whereby a post retrieved from an outbox starts at +0, but a manually retrieved one starts at +1, but it doesn’t really matter that much, because they’re both as wrong as the other (we’ve no idea whether the OP kept the automatically assigned upvote that they got with a new post).

    For comments: old ones are a lost cause (even for admins). Lemmy is a bit better at backfilling these - if it receives a vote for a missing comment, it’ll fetch it. I’d imagine though there’s a complexity limit to this (it’ll get a comment if it’s in reply to comment or a post it already has, but it’s not going to recursively climb up the parent tree to resolve everything if it doesn’t already have it). Also, it depends on votes coming through - lemmy.ml probably has about 3 years of comments that lemmy.world will never get, because nobody is going to vote on them. Again, it’s a bigger problem than just PieFed.

    For UI stuff: I’m not the best person to talk to - I’ve only just found out that you can swipe about on a Mac desktop, and that’s because you’ve told me. The main websites of PieFed instances are deliberately old-skool (mostly just HTML and CSS) - this is what a chuck of the Fediverse says they want, but also what a chunk trips up on, because they’ve been spoiled by the conveniences provided by more modern web interfaces. That’s not to say that the problems you’ve mentioned are insurmountable, it’s just that they are best posted as an Issue on codeberg or in a community like [email protected], where folks who’ve much more web development experience than me will see them.

    • OpenStars@piefed.social
      link
      fedilink
      arrow-up
      4
      ·
      22 days ago

      That’s very interesting, thank you for taking the time to explain!

      Votes: yes I’ve noticed that a good deal of what I see has +1 vote added to it - including your comment here. In one case it was so deep and delivered within seconds before I saw it that it convinces me that it is due to a systemic bug. Also when I return to a page after making a comment, sometimes I see replies that I could swear that I had upvoted, but it does not show the green indicator for that, and it allows me to vote again. Fwiw, I have “vote privately” set to OFF.

      Separately for voting, I would hope to see both up and downvotes displayed - I often have replies at “1”, and I have to go to the source Lemmy to get the information as to whether it is truly just unvoted on entirely or more likely it was a balance of +1 and -1, sometimes +2 and -2, and more rarely but definitely happens that sometimes it’s +3 and -3. Or other similar scenarios like +7 and -5, for a certain award-winning video I shared but that people did not universally seem to enjoy. The downvotes are still “information” and present a form of “active engagement” that merely showing the total score hides away.

      Old posts: if I could suggest something, maybe it would be better to only “view” an older post - so like retrieve it only into a temporary location, and then discard later - without trying to retain it and present it to users as if it were really there. Perhaps that would increase consistency and therefore build more trust in the system, when information is not there sometimes and not there other times, but consistently absent always prior to a certain date and then afterwards always there and up to date. Though that seems to go beyond Lemmy’s functionality, and yet being better is the point:-).

      Anyway, I hope this was interesting and it may help me work out the language on some of these issues before I post them in piefed_meta, so it’s definitely interesting and helpful for me:-).

      Now to press the “Comment” button and hope that I don’t accidentally hit the Leave button instead, thereby discarding all that I typed as well as kicking me out of this community, as I did earlier today somewhere, whoopsie!:-)

      • Andrew@piefed.social
        link
        fedilink
        arrow-up
        3
        ·
        22 days ago

        You can see the upvotes vs downvotes if you hover your cursor over the score. The old layout displayed both, but there’s pros and cons to combined vs. separate vote info. Videos pretty much always attract a disproportionate amount of downvotes, btw - it’s just one of those Lemmy things.

        I don’t know how technically viable a temporary-only retrieval of a post would be. If you look at any given post across multiple instances, every one has its “own truth” for one reason or another, and it’s just something that I’ve started to accept comes with the territory.

        • OpenStars@piefed.social
          link
          fedilink
          arrow-up
          2
          ·
          22 days ago

          Oh that’s neat! Can I see the downvotes on a mobile? Long press or … doesn’t seem to do anything and I’m out of ideas to try.

          The difference between PieFed’s approach and Lemmy’s, especially after the upcoming 0.19.6, is that Lemmy seems to catch up eventually, whereas PieFed never will no matter how much time passes - is that correct?

          So if what is desired is a “search for existing post”, that function would go better into the search box, while if what is desired is “import existing post”, yet that is impossible then perhaps simply not offer that rather than confuse people by offering a halfway measure, thereby leaving only the “find non-existing post”, which now that I think about it, especially since it needs an external URL to trigger it, is that really even something that anyone would want? i.e. if the goal is to “view” it, and someone must go to Lemmy in order to do so, then so be it (it is the same on smaller, newer Lemmy instances too), but since it cannot be imported (properly/fully), then don’t? Well, it’s a thought anyway!:-)

            • OpenStars@piefed.social
              link
              fedilink
              arrow-up
              2
              ·
              22 days ago

              iirc, the way it is now, every action e.g. vote counts as a single event, and is sent out across the Fediverse at a rate limited to one event per second. In 0.19.6 there was chatter about expanding the implementation of the ActivityPub protocol to allow parallel sending of activities. It could cause mayhem, or perhaps be only optional? https://github.com/LemmyNet/lemmy/pull/4623

              • OpenStars@piefed.social
                link
                fedilink
                arrow-up
                2
                ·
                22 days ago

                That’s so odd - here my own comment immediately got displayed as having 2 vote counts. IMMEDIATELY. Other times when I post that doesn’t happen, and still other times I see my replies from minutes, hours, and days older but still with =1 vote count. It seems random?

                • Andrew@piefed.social
                  link
                  fedilink
                  arrow-up
                  3
                  ·
                  22 days ago

                  The vote count for comments is something I’ll work on next. The idea is that if you have a high reputation (your stuff if upvoted more than downvoted), then you get an extra one (your comments start at 2, because it’s one from you, and one bonus one). But you’re not the first person to question it, and find it counter-intuitive. So I’ll probably change it so that a high reputation effects the internal score (which is used for ranking) but not the visible upvotes.

                  p.s. Lemmy’s changes re: batching are to fix its own problems with queues over long geographical distances. It’s unrelated to backfilling content from other instances: that’ll stay the same - every instance on every software platform will have some stuff missing compared to where it’s originally hosted (if it’s not because the content pre-dates the federation, it’ll be because of de-federation, or bans, or timeouts, or some activitypub mystery (someone was asking the other day about why a post from feddit.org hadn’t made it to lemmy.world and there was no real satisfactory answer to my mind)).

                  • OpenStars@piefed.social
                    link
                    fedilink
                    English
                    arrow-up
                    1
                    ·
                    edit-2
                    22 days ago

                    Part 2 of 2 - again, oops.

                    re: batching - ah, that makes sense:-(. About the scenario of the post not showing up - perhaps nobody on Lemmy.World was subscribed to that community? I see my replies instantly on Lemmy.World, so indeed there seems to be no real “problem” between it and piefed.social (though ofc feddit.org is a different server), except as you say the high amount of complexity via what is vs. is not federated.

                    BUT, that is why I was thinking: if people were prevented from forcibly bringing in posts, then that actually solves a lot of the issue. As it is now, if I go to https://lemmy.dbzer0.com/c/yepowertrippinbastards there are… well I don’t want to count them but there are an awful lot of posts there - multiple pages at least. Whereas here on piefed.social, at [email protected] I see… well there are some, though not all, and the most recent is a day, while the one furthest back is from 2 months ago. At first glance, without getting into the details, I deluded myself into thinking “this community seems to have all the posts until about 2 months ago, though it may have none before that” (b/c this is the chief explanation that would have been true on Lemmy). In actual fact though, it is missing many posts from that timeframe, it is missing votes for those exact posts, and also those posts all have zero comments from them. So these “ghost” posts aren’t really there, not really, or at least not “fully”, and others from the same timeperiod also are not there, however, posts from now on likely will show up there, b/c I subscribed to it - so as long as I keep my account active here, new posts, along with all of their votes, and all of the comments associated with such, should show up? This is happening with that “So I was just banned from [email protected] for no apparent reason?” post, with 49 comments and 43 overall votes, which on the original server shows… yup, 49 comments and 42 overall votes.

                    So my idea here is that if there were no posts prior to this one (not that I am advocating for actively removing them - that seems to take effort and anyway it’s a corner case that doesn’t really matter), then people would not get confused by these “ghost” postings - there would simply be all the posts that are “real”, and there would be no such “ghosts”. And to enact such in the future, the “Retrieve a post from the original server” would have to be disabled. But, it’s just a thought, and like I have no idea what all that would “break” in terms of other functionality, so it’s just something that we are enjoying talking about here - unless you want to take it forward somehow, or eventually I’ll put it as a suggestion into the meta community. But do you see what I mean, especially why that would help avoid confusion, by keeping things simple? That community for instance would contain only one post, the one from yesterday, which reveals that “hard” cutoff between posts that are actually there vs. only partially so, and it matches the existing behavior of Lemmy. Not that we need to always follow that as a guide, but when possible that does help ease transition as people come here from there, e.g. significantly lessening the need for a FAQ or meta post providing an explanation.

                    Although hopefully we can get more mainstream people here that have or would never have even used Lemmy before, b/c of all the toxicity and extremist postings that turn away literally everyone that I’ve ever mentioned Lemmy to irl. Whereas here, we can dare to be different, and hold ourselves to a higher standard! (which many people WILL like, I am certain of that:-D - though ofc not all, and ironically that will help too, by keeping those who do enjoy such “disruption” out).

                    I hope I am not barraging you with too much text! Rather, it is a lot but I hope it helps to have a sounding board for those ideas of yours, and to see some other alternatives that probably you’ve already considered as well but perhaps in a new light or at least fresher due to potentially different verbiage:-).

                  • OpenStars@piefed.social
                    link
                    fedilink
                    English
                    arrow-up
                    1
                    ·
                    edit-2
                    22 days ago

                    What caused me to start questioning it is when I went to another instance and saw a different vote count, so it was the mismatch, plus this behavior where it occurred too quickly to be due to human intervention, thus not matching my naive “expectations”.

                    That doesn’t make it “bad” imho, though it does take some getting used to. Now that you’ve explained it I even like the idea - I’ve had similar thoughts in the past, like Wikipedia and “web of trust” that weights more highly those who contribute more whereas those who contribute the opposite of more (not just less but fully anti) could get downweighted. Obviously all the notes of due caution apply, where you don’t want like a mod to outweigh 100 normal users, but you’ve considered that I’m certain:-). And just 1 extra I don’t feel like is excessive at all.

                    Another alternative as you said would be to have the sorting algorithm use it without displaying the individual voting differently. I am not sure I would like that though - the way it is now provides transparency, whereas that would “hide” it. Perhaps if there’s a FAQ that explained it, that would help people get over the counter-intuitiveness of it all? Even if writing that might be better saved for another day.

                    Still another alternative would be to not change the individual vote counts (not even just how they appear but the actual underlying counts, as affecting sorting) but display the “high value” badge next to the name. I’ve seen the low value badges, even doubled ones. Mine has a non-spinning in-progress one so I presume that means that it is still assessing, with it being so new. Edit: oh wait, no this is not well-thought-out, sorry - this would only work to identify posters/commenters with a high reputation score, but it would do nothing to help their votes on other posts/comments. So ignore this.

                    But the idea that immediately pops out of my head that I already like the best is to display (1) the user valuation badges next to the name, and (2) show the up & down-vote counters separately (b/c it’s information - ah, and I see the hover effect now, on my laptop! though it does take nearly a whole second to appear, so most people aren’t likely to find that just by poking around I would guess; therefore thanks again to cluing me in on it!:-)), plus possibly also (3) the combined score - and the latter could take into account all the various “weighting” factors. e.g. if I were an account that is high-value, yet I received 2 downvotes from likewise high-value accounts, plus 2 more from normal, plus 10 upvotes from normal, then it would put it all into the algorithm that could spit out a score closer to zero than to 7. The reason I like it is that while it did not immediately dawn on me, coming from Lemmy, before that Kbin, and before that Reddit, that an “upvote” would be anything other than an “upvote”, yet it doesn’t seem counter-intuitive to me at all that a “weighted total score” would not be a simple sum of the up and down votes. This provides full transparency, full consistency with other servers and approaches (Lemmy, eventually Sublinks, etc.), and also the exact number that is used in the sorting, with the algorithm that generates that explainable elsewhere. The downside is that it is the busiest display of all - though for those of us who enjoy “information”, we will love it! Perhaps a Theme or other Setting could hide a great deal of it for those who do not enjoy such.

                    I hope you like the idea to think about, whatever you end up doing!:-)

                    And I seem to have hit a text limit. Oops. Well, I will need to hold myself back in the future but for now, if you are okay with it, this will be part 1 of 2.