Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: adjustable vote weight #91

Closed
abitmore opened this issue Jul 30, 2016 · 29 comments
Closed

Feature request: adjustable vote weight #91

abitmore opened this issue Jul 30, 2016 · 29 comments

Comments

@abitmore
Copy link

If a same request is already here, please mark this issue as duplicate.

James Calfee:
Adjusting vote weight is the kind of thing that can can easily be done in a pull request. I'll be happy to vote for someone who does a good job. As long as it looks good and does not pull in huge libraries I think we can accept it into the code base. Everyone has had higher priority things so we have not been able to do it.

The one who made it would be rewarded imo.

@dv8silencer
Copy link

Do you mean something like when someone votes, they have a choice between -100 to 100%?

@iamsmooth
Copy link

IMO this is an advanced/whale feature and it appears in a GUI at al it should be hidden in a setting, hidden by default, etc. Most users just want to click a button and vote without thinking about picking a weight (thinking much at all) and that is how it should be.

@aaroncox
Copy link
Contributor

aaroncox commented Jul 31, 2016

The above branch on my fork is a concept I threw together for how this could work, would love some feedback. It works pretty well and is hidden by default like @iamsmooth mentioned. The library included is fairly small, I can always work on ripping it down even more if needed.

Here's an animated gif showing the slider in use for 2 votes, you can see how the value changes from $0.07 to $0.10.


steemit-vote-weight


Currently I think there's a few things that need to be solved on it:

  • The button to open it sort of looks like a downvote.
  • If you want to dismiss it, you have to click on the number. Not that obvious.
  • You can't go negative. Deciding if it's able to go to -10000 or is exclusively upvote only button.
  • Adding some verbiage around it so it's a bit more clear what it is.

It may be good enough for beta though, as I know there are people who would like to use it (myself included).

@JasonMcz
Copy link

I personally think this is not a necessary feature -- It adds another layer of complexity to it. Currently a lot of bots or if you know how to interact with the interface you can upvote and downvote only with % of your weight, however, I don't see how normal user would absolutely need a feature like that? For example, my friend who just joined the site probably still have no idea how the whole SP, STEEM and SBD system works now the learning curve will become more steep because he needs to understand the voting weight dynamic.

@aaroncox Nice work on that interface concept!

@aaroncox
Copy link
Contributor

aaroncox commented Aug 1, 2016

Thanks @JasonMcz!

I do agree, it's not _necessary_, but I do think it's a nice power-user feature. I can imagine situations occur where a user with a lot of SP enjoys a post, but doesn't want to throw their full voting power at the post, so currently they don't vote on it at all.

With it being hidden by default (only showing the chevron) I personally don't think it adds any complexity or friction to the base user experience. Users can choose whether or not to use it, if they even find it, nothing forces them to participate.

Stepping back a bit from this specific feature, I'd be interested to know what the consensus is from the development team: do we avoid power-user features on steemit to keep the experience clean or do we add power-user features, as long as they're not impacting the base user experience.

I think I fall into the latter.

@iamsmooth
Copy link

iamsmooth commented Aug 3, 2016

IMO power user features are great but hiding them is also great and I'm not sure a chevron counts as hiding. In discussion of another feature it was proposed to use a secret keystroke (control-shift-something) as a sort of easter egg to activate the feature. Power users are very comfortable with such things in many UIs. Another simple option is a preferences panel to activate these things.

It is very possible accommodate both power users and the desire to keep the experience clean. Done right there is no need for a trade off.

@aaroncox
Copy link
Contributor

aaroncox commented Aug 3, 2016

Above is a new commit that hides the advanced voting features until S + T + E + M are all pressed at the same time. Pressing this 4 character combination toggles a localStorage value called advancedMode between true and false, which is then used to determine whether or not we should show the chevron next to the weight value.


steemit-vote-weight-toggle


I'm not entirely happy with how I achieved the keybindings, I feel they could be in a more global location instead of being part of the Voting.jsx component. If anyone has any guidance about where these bindings to control the advancedMode flag belong, I'd love to hear it.

@JasonMcz
Copy link

JasonMcz commented Aug 3, 2016

@iamsmooth , that's a good idea. Overall I think this is a good idea especially for whales like you or Bernie, your vote has a lot of weight that can change the where the post is going to be in the next few hours.

@aaroncox , saw your commit, did you take a look at @ayrton key-handler?
https://github.com/ayrton/react-key-handler

@aaroncox
Copy link
Contributor

aaroncox commented Aug 3, 2016

@JasonMcz I have now :)

I'd have no problem swapping over to something like this, but I was trying to avoid pulling in new libraries (as the original issue posted hinted). There's a lot already hah. More than happy to go that route, but I'd love some confirmation as to whether adding a 2nd external library for this one feature is worth adding a new library.

I'm still attempting to gauge the philosophy of the core committers using situations like this, as opposed to just making decisions that I may have to back track on.

@Someguy123
Copy link
Contributor

@aaroncox While I like your typing idea, similar to how Google does their YT easter eggs, it would probably make more sense to have a Settings page under your account.

All it would need would be another tab similar to Blog, Posts, Wallet etc. and a simple tick box Enable Vote Slider (control how strong your votes are)

@aaroncox
Copy link
Contributor

aaroncox commented Aug 9, 2016

@Someguy123 With the new changes today to the account page, this should be a lot easier to do than when I started working on this.

Things are moving quick! 👍

@JasonMcz
Copy link

JasonMcz commented Aug 9, 2016

The new changes look quite nice actually!

On Mon, Aug 8, 2016 at 9:12 PM, Aaron Cox notifications@github.com wrote:

@Someguy123 https://github.com/Someguy123 With the new changes today to
the account page, this should be a lot easier to do than when I started
working on this.

Things are moving quick! 👍


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#91 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AR2FcGaK28lM2YK_Lp4xM39Dzm9HoE5Kks5qd9PsgaJpZM4JY53y
.

@aaroncox
Copy link
Contributor

aaroncox commented Aug 9, 2016

I have a rough draft for a preferences screen implemented, as well as improvements mentioned above for the vote weight slider.

This animated gif shows:

  1. enabling the feature
  2. refreshing the other tab to show it visible
  3. disabling the feature
  4. refreshing the other tab to show it removed

steemstats-preferences

I've added a new Preferences tab that shows on the wallet page with the same conditional logic as Password (if you're the owner). This preferences tab has a single option, but could be used in the future for many more options.

The data storage mechanism for preferences is still localStorage, so it's machine specific, but this could be altered and saved somewhere else for portability.

The vote weight slider also got a few changes:

  • No longer displays as weight, but as a whole number percent. This should be easier for users to understand, as opposed to 0 to 10000.
  • Minimum value of 1% (100) has been added. We can alter this number based on whatever is decided with SIP - Add Minimum Vote Weight steem#254.
  • The step increment on the slider is now 100, meaning clean percentages.
  • A close "button" has been added right next to the displayed percent. This button closes the slider and resets the percentage back to 100%. It's essentially a cancel function.

Code is visible in https://github.com/aaroncox/steemit.com/commits/issue-91

@svk31
Copy link
Contributor

svk31 commented Aug 9, 2016

I quite like this and I've been thinking for a time now we need a Preferences tab. I would like to maybe add 'curation mode' to Preferences as well but that's another discussion.

One issue now is that the Profile menu is getting a bit crowded, I will collapse Curation rewards and Author rewards into a dropdown which should help, and we should probably look at organizing the 'Wallet' tab a bit better.

I'm not sure we need the slider to be as fine-grained as 1%, perhaps 5% would be better? Anyway that's something we can tweak as we start to get a feel for using it. We could also let the user set it but perhaps that's overcomplicating things.

@aaroncox
Copy link
Contributor

aaroncox commented Aug 9, 2016

I'm not sure we need the slider to be as fine-grained as 1%, perhaps 5% would be better? Anyway that's something we can tweak as we start to get a feel for using it. We could also let the user set it but perhaps that's overcomplicating things.

I'm personally open for whatever step increment, it's easily tweakable with the slider plugin's "step" value. I like the idea of letting the user tweak it in the preferences as well.

Another setting I was considering adding to the "preferences" section was a default vote weight.

I imagine accounts with larger SP balances could use this feature to specify a low percentage as their default weight reducing the impact they typically have on posts.

One issue now is that the Profile menu is getting a bit crowded, I will collapse Curation rewards and Author rewards into a dropdown which should help, and we should probably look at organizing the 'Wallet' tab a bit better.

I almost took a stab at completely rebuilding that menu. It was driving me crazy that the wallet menu wasn't aligned on the right part of the screen and the spacing was off. I didn't start on it because I was unsure if anyone else was actively working on it, or if it was anyone's project.

Where's the best place to know if someones working on something? Here?

@svk31
Copy link
Contributor

svk31 commented Aug 9, 2016

That would be a nice setting to have for sure!

I noticed the alignment was off all too, not sure when that happened.

I'm afraid there's no easy way to know what's being worked on at the moment, we'll have to look at making things more structured and perhaps creating a new front-end dev channel somewhere.

svk31 added a commit that referenced this issue Aug 9, 2016
jcalfee pushed a commit that referenced this issue Aug 9, 2016
Incorporates react-rangeslider and base styles for a horizontal slider.

Resolves #91
@jcalfee
Copy link
Contributor

jcalfee commented Aug 9, 2016

jcalfee [11:53 AM]
I pushed a branch 91-adjustable-vote-weight .. this has just the "adjustable-vote-weight" without key bindings and preference page. My thinking is key bindings will be fine if we plan to use them for other stuff; let's leave that for another ticket.

Also did not add the preference page, we might end up cherry-picking that too but let's finish the UI and see if we still need it.

a) there is a layout problem when using vote weight on the main post.
image

b) the feature should be hidden for anyone with less than a certain threshold... @roadscape can you recommend a metric and value to use?

c) The down arrow needs to disappear if already voted.

You can reference https://github.com/steemit/steemit.com/issues/91 in the commit message.

jcalfee pushed a commit that referenced this issue Aug 9, 2016
jcalfee pushed a commit that referenced this issue Aug 9, 2016
@aaroncox
Copy link
Contributor

aaroncox commented Aug 9, 2016

I'm looking at the CSS issues with this today, I'll see if I can get em cleaned up. It looks like once the responsiveness starts kicking in, it's position gets wacky. I'll also remove the arrow if you've cast a vote (great ux suggestion @jcalfee).

@valzav
Copy link
Contributor

valzav commented Aug 9, 2016

Experimental vertical slider, check out my last commit.
image
image

@aaroncox
Copy link
Contributor

aaroncox commented Aug 10, 2016

I'm a little torn on the vertical slider for a couple reasons.

The first and foremost being that it makes it so I no longer have a "quick vote" that only takes a single click. Shouldn't there still be a single click action? We could add the downwards chevron back in that triggers the dropdown, while the base button is still a vote button.

The second part is just that it's vertical. I can't describe exactly why, my initial thoughts are that volume sliders on an audio board go up and down, but for some reason 1-100% scales on a website go left to right. That could just be because I'm used to it being horizontal, and this could be my personal preference.

I do like the moving of the percentage and a more clear CTA of "Vote" that appears in the dropdown though. Those are both big positive changes. It's definitely a more clean design than the absolutely positioned div I was dropping on the page.

Look forward as to what others think of the variations.

@valzav
Copy link
Contributor

valzav commented Aug 10, 2016

This drop down will only be shown to a small fraction of users (to whales and dolphins who can move payout by more than $1 with a single vote). Everybody else will have the same one click experience. Also I think the control should remember its last position so if you don't want to change your voting weight just click bit vote button, so it would be two click for whales and one click for everybody else.

@valzav
Copy link
Contributor

valzav commented Aug 10, 2016

If you don't mind I'll continue today working on this control - I want to make it to close when user clicks outside, also for some reason the bottom part (selected) doesn't go blue when I move the slider.

@aaroncox
Copy link
Contributor

Feel free to continue, we had slightly different visions of it's interactivity.

I will say, I'm a little sad that I won't be able to use it, but I understand the priority getting it out for people with much larger weights than myself.

@roadscape
Copy link
Contributor

The cutoff for enabling this feature will need to be closer to 100M VESTS because it takes ~200MV to move the payout by $1 (at current feed price of ~2.05).

@aaroncox after we get a basic stable version out, it would be nice to get community help w/ UX improvements.

@iamsmooth
Copy link

iamsmooth commented Aug 12, 2016

Agree this isn't needed for low SP accounts.

Feedback from people with high SP is still that they still want it to be an option, including an option whether to show the slider every time or have a persistent setting of vote power other than 100% without needing multiple clicks to vote. Some high SPs don't vote that much and have no reason to reduce vote power (in fact they want the maximum vote power per vote to be higher than it is now, but that's a blockchain issue, not UI). The former could probably be done with some UI (long click for example)

@abitmore
Copy link
Author

abitmore commented Aug 14, 2016

@valzav @roadscape Current GUI doesn't save your opinion when you chose to vote with 100% weight, but it does save when you chose other numbers. It annoys since I vote with 100% most time. Now I need to adjust the weight to 100% every time after ever voted with a lower weight once.

Edit: I'm now voting with 99% weight as an alternative.

@abitmore
Copy link
Author

Reported by a nice guy:

There’s a nice feature that allows you to set your voting % on a whale account, log out and into a minnow account and vote with the same %.
Minnow cannot adjust without going back into whale account.

@roadscape
Copy link
Contributor

  • Implemented @iamsmooth's suggestion of aligning the 'Upvote' and 'Confirm Weight' buttons
  • Fixed bug of not saving if you use 100% weight (@abit)
  • Vote weights are now saved per account (@abit)
  • Horizontal layout

image

@roadscape
Copy link
Contributor

The last change I made was to save separate vote weight for top-level posts vs. comments. I suspect this will encourage more voting on comments.

@valzav valzav closed this as completed in 30ce20e Aug 24, 2016
eonwarped pushed a commit to eonwarped/condenser that referenced this issue Aug 18, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants