Steem Curation Extension: New version available with more info for curators

in Steem Dev4 days ago (edited)

The AI coding assistants (Claude, Gemini, ChatGPT, & Leo) and I are happy to advise that there is a new version of the Steem Curation Extension available now for evaluation.

Overview

This "release" (for lack of a better word) introduces two new features:

  1. As shown here there is a new checkbox to toggle the display of resteemed posts in your feed or in someone else's feed.
  2. A new overlay is available with some information for curators, as previously discussed here. You get to it by "mousing over" any of the new "CURATION INFO" labels that the extension now adds to each post/comment/reply summary box.

Of course, the highlighting of /promoted posts and posts with @null beneficiaries is still working as before.

In reverse order, here's what the new items look like:

FeatureDark ModeLight Mode
Curator overlay
Hide Resteems (with resteems)
Hide Resteems (without resteems)

About the new curation information

The new curator's overlay places 16 pieces of information (for now) at the curator's fingertips when deciding whether or not to click into a post. These fields are grouped into five categories. Here's a brief description of each:

Post Information

Word Count / Reading Time

The word count is estimated by removing html & markup formatting from the post and then counting white space. The reading time is calculated at a rate of 200 words per minute, based upon that estimate.

It should be noted that this is probably not very useful for posts in languages like Korean or Bangla, that don't seem to use the same sorts of alphabets as English.

Number of images, links, and tags

I think these labels are self-explanatory. It's up to the individual curator to determine how to weigh these numbers. The one thing I'll note here is this quote from the Steem Whitepaper:

Value is in the Links

The Internet would lose the vast majority of its value if all links among content were removed. It is the relationship among web pages that allows Google to identify the best apple pie recipe among the 16 million results. Without the links the only information Google would have is word frequency.

Links can take many forms and have adapted over time. Every time a user votes on content in a social network they add a connection between themselves and the content. This in turn links the consumer to the producer through the content. The more connections a network has the more valuable the information becomes. It is the relative and intentional connectedness of information that gives it value.

A social network can maximize the value extracted from a set of content by maximizing the quantity and quality of connections.

The underlying point here is that curators may want to consider the effective use of images, links, and tags when ranking the value of a post.

Tags

A list of up to 10 categories and tags in the post (from the post's metadata).

Audience

Resteems

This is the number of times that a post has been resteemed.

Feed-Reach

This is an upper boundary estimate for the total number of accounts where the post will appear in their feed. It's calculated as follows:

# of community subscribers + # of author's followers + # of followers of all resteeming accounts

(Feed-Reach is zero for comments and replies)

It's important to note, however that due to performance constraints there is no deduplication (for now?). If the same account subscribes to the community where a post appears, follows the author, and follows someone who resteems the post, that account will be counted 3 times in the feed reach.

Another limitation is that this doesn't account for inactive followers.

Finally, this is a snapshot at the current point in time. It (obviously) doesn't reflect the feed-reach at the time of posting.

Votes and Values

Number of bot votes

I threw together a small list of probable bid/delegation bots during development. This almost certainly needs to be revised. The aim here is to include bots that provide paid voting services. Curation trails and other unpaid forms of automated voting are considered "organic" votes for this purpose.

It's worth mentioning that some of the bots in the list provide both paid and organic voting. I'm not aware of any way to distinguish those votes, so they are all counted as paid - even though some votes from those accounts were not purchased.

Paid percentage

This is calculated as the number of rshares contributed by bot votes divided by the total number of rshares, then multiplied by 100. Obviously, the same limitations as above apply here, too.

Organic value

The unpaid percentage times the total value.

Author Info (collected from SDS by @steemchiller)

Number of posts

This is the total number of root-level posts that an account has made.

Comments per post

The total number of comments divided by the number of root posts. This was suggested by @michelangelo3 and @moecki.

Replies per post

The total number of replies divided by the number of root posts.

Wallet Info

Account classification
function getVestingLevel(vests) {
    const levels = [
        'nanoplankton',  // < 10K      (log10 < 4)
        'plankton',      // 10K-100K   (log10 < 5)
        'redfish',       // 100K-1M    (log10 < 6)
        'minnow',        // 1M-10M     (log10 < 7)
        'dolphin',       // 10M-100M   (log10 < 8)
        'orca',          // 100M-1B    (log10 < 9)
        'whale',         // 1B-10B     (log10 < 10)
        'blue whale'     // > 10B      (log10 >= 10)
    ];

    const index = Math.min(Math.floor(Math.log10(vests) - 3), 7);
    return levels[Math.max(0, index)];
}


It's worth adding one note here. In the example above, the account size was the same for both owned SP and effective SP (SP after delegations). If the two are different, the overlay will display both. It looks like the image to the right.

Powerdown percentage

I guess this is self-explanatory. The author's pending powerdowns divided by their total SP. This was suggested by @pennsif.

Wrapping up

This is intended to be a first draft at providing this sort of information, so future changes to the browser extension might add/remove or rearrange the metrics in this overlay.

All of these values should be considered as estimates or approximations because the tool is constrained by space and latency. Also, the inclusion of these factors is just intended to arm curators with information for their own decision-making process. Nothing displayed here should be understood as intended to guide curators' voting decisions in any particular direction.

I invite everyone to clone or download the browser extension, try it out, and let me know what you think.

I also invite people to participate in making it better. I have come to realize that this is only scratching the surface of things that are possible. You can check out fbpurity to see a far more sophisticated take on the same concept - as applied to Facebook.


Thank you for your time and attention.

As a general rule, I up-vote comments that demonstrate "proof of reading".




Steve Palmer is an IT professional with three decades of professional experience in data communications and information systems. He holds a bachelor's degree in mathematics, a master's degree in computer science, and a master's degree in information systems and technology management. He has been awarded 3 US patents.


image.png

Pixabay license, source

Reminder


Visit the /promoted page and #burnsteem25 to support the inflation-fighters who are helping to enable decentralized regulation of Steem token supply growth.

Sort:  
 3 days ago 

Very good. It's time I got the latest version :-)

The feed reach is a good idea, even if it is still a little distorted by possible duplication. I'm sure you'll find a way to improve it. In any case, the theoretical reach gives a different perspective on the authors.

I have just one small note:

Replies per post
The total number of replies divided by the number of root posts.

The field count_replies in SDS contains both replies to root posts and comments. Perhaps dividing by the sum of posts and comments would therefore better represent the ratio.

 yesterday 

The field count_replies in SDS contains both replies to root posts and comments. Perhaps dividing by the sum of posts and comments would therefore better represent the ratio.

Thanks! I like that. It's a much better metric for people who comment more and post less. I'll make that update.

First of all, I really like it! I was afraid that the page load would be slower with the new version or that there would be other noticeable effects when the extension is active. But no, as far as I can see, everything is running smoothly 👍

What I noticed, if SHOW RESTEEMS is disabled, posts from accounts I follow will be hidden if they have been resteemed.

image.png

In the example above, your post is hidden (although I follow you) because moecki has resteemed it. The same goes for hillaryonbless, who disappears because of remlaps-lite's resteem. It would be better if posts from followed accounts were not hidden just because they were resteemed.

The solution might be a little time-consuming? Although, it would only require an array with all the followed accounts, I think.

 3 days ago 

Thank you for the feedback!

I hadn't noticed that with the followed resteems, but it makes sense. I agree that they should stay visible. I'll see what I can do. Not sure, but I don't think it'll be too difficult (fingers crossed). I might have some time tomorrow, or else this weekend.

Good luck!

 3 days ago 

I think it's fixed.

  1. For each resteemed post, it now checks if the feed owner follows the author or if the feed owner is the author. If either of those checks is true, the post won't be hidden. I save the following status for 30 minutes in order to minimize web traffic to the Steem API.
  2. While testing that I also noticed that if I scroll down too far in the feed, performance gets really bad, so I put in a limit at 200 posts. After that, the checkbox to toggle resteems disappears.

The second problem was actually pretty bad, so I went ahead and merged it into the main branch.

Looks good, I did some tests on my feed and all the resteems from followed accounts remained visible. The felt page load speed is the same as before. Wonderful, thanks for the fix!

 2 days ago 

While testing that I also noticed that if I scroll down too far in the feed, performance gets really bad, so I put in a limit at 200 posts. After that, the checkbox to toggle resteems disappears.

Why would performance decrease as the number of posts increases? Does the plugin re-evaluate every post at each additional load? Or is it parsing the generated HTML each time?

 yesterday 

Why would performance decrease as the number of posts increases? Does the plugin re-evaluate every post at each additional load? Or is it parsing the generated HTML each time?

It's only when you check/uncheck the box, so I'm not sure if it's really avoidable. In order to hide/show resteems, it has to move all the other posts up or down. When I first encountered the problem, I was on the verge of crashing my browser when I tried to toggle "show resteems" on. Even 200 posts takes 2-3 seconds to rearrange things with my configuration. Tolerable, but slower than I'd like.

 2 days ago 

What I noticed, if SHOW RESTEEMS is disabled, posts from accounts I follow will be hidden if they have been resteemed.

I've just started to implement this for my next condenser release and hadn't considered this. Thanks for highlighting it 🙂 That could be a bugger to fix on condenser... although a simple rule of "don't hide if post author is followed" feels simple in principle... and in theory, this list should be available to the page because the "following list" is required to retrieve the feed 🤔

 yesterday 

in theory, this list should be available to the page because the "following list" is required to retrieve the feed

I don't think that's necessarily available at the condenser layer. I think the following list is sorted out by the blockchain or hivemind, 'cause you can retrieve someone's feed using "curl" or the get_feed API call. If curl doesn't need to know the follower list to show a feed, I guess condenser doesn't either(?).

My work-around was to check if the feed owner follows the resteeming account using the get_following API call, and then to cache the answer for 30 minutes to limit network calls, but I'm not sure if that's really feasible in condenser. I'll be keeping my eye out for a better solution in the browser extension, too.

 yesterday 

Fortunately, it's at condenser level. The component is already calling the "getFollowingAsync" which stores the muted accounts:


const mutes = state.global.getIn(
['follow', 'getFollowingAsync', username, 'ignore_result'],
List()
);

So I can use this to get the accounts followed too:


const following = state.global.getIn(
['follow', 'getFollowingAsync', username, 'blog_result'],
List()
);

Which works great for my own feed...

image.png

But since it's querying the username and not the person's feed... ah... I've thought of the answer whilst typing this (I think)...

 yesterday 

Hivemind has to insert the resteemed posts into the user feed at great effort, and now you want to remove them again at condenser level. That's not nice... ;-D

In my opinion, the most efficient solution would be to introduce a parameter in the feed query that returns the feed without resteems. I don't know right away whether we would then be able to switch quickly. But I would assume so.

 yesterday 

Hivemind has to insert the resteemed posts into the user feed at great effort, and now you want to remove them again at condenser level.

Ha ha! Yes. That's exactly what I want to do 😉

The code's should be pretty quick since the "following feed" appears to be in the state and all I'm doing is adding / removing a CSS class during the render.

I've nearly got it working... hopefully tomorrow I'll be able to complete the task 🙂

Testing, testing, one two, one two...

Sorry if I'm a bit late, but I had to search for the installation instructions one more time... 😇

I am very, very pleased!

However, the ‘resteem problem’ that Michelangelo3 pointed out still exists for me (Brave).
Is the ‘pay-bot’ displayed on my tab SBI? In that case the info is imo a bit irritating. Like a kind of stigma... 😂

Bildschirmfoto 2024-11-11 um 19.00.03.png

Loading...

Greetings @remlaps

As a manual curator, I find it an excellent tool. Plus, I'm used to using the Brave browser.

But, if I tell you that I understand how to install it in my browser, I would be lying to you.

Can you make a tutorial for Dummies, baby boomers and "X generation", what does it cost us to understand so much jargon and technological terms?

What files should I download from Github?
Do you have a video with a step by step? Please 🙏🙏🙏

Thank you

PS:

Would it be possible to adapt the publication editor so that we can place information for Metadata?


image.png

 3 days ago 

Hi, thank you for the reply!

There are some installation instructions on the github page, but I'll try to do a step by step post with screenshots.

I'm not sure, but I think that it would be fairly difficult to add metadata in the post editor via a browser extension. That would probably be better done in condenser, itself.

You are really doing a very great job every blessed day and this is beautiful to see. Thank you and keep doing the great work.. this is a very big initiative and inspiration to many of us

 3 days ago 

Thank you for the feedback!

If it's of interest to you, this user has been taking the piss out of me for some time now. Without this hint from @moecki I would have fallen for him again for now.

Now I'm even thinking about downvoting him next time he comments on one of my posts. Let's see, I don't like downvotes, so I'll stay in ignore mode for now.

 2 days ago 

Now I'm even thinking about downvoting him next time he comments on one of my posts.

Ha ha. Been there. Some idiot kept leaving AI generated comments on my posts and ignored my insistance that they stop. They stopped though... or their reputation became so low that they just stopped appearing!

Coin Marketplace

STEEM 0.19
TRX 0.18
JST 0.034
BTC 89422.86
ETH 3144.72
USDT 1.00
SBD 2.76