Trusting the Hive Mind: Building My Own Voting Bot for Robinhoodwhale

in #robinhoodwhale8 years ago (edited)

Have you seen @robinhoodwhale's teaser intro post?

The basic idea, as I understand it, is to build out a new whale whose voting tastes and curation habits are determined by a group of people, a hive mind, instead of a single individual. I find this idea fascinating and wanted to support it while also challenging myself to write my own bot in PHP. The bot monitors @robinhoodwhale's voting activity and, if there's a new vote, goes ahead and votes on that same post using piston. The idea being, as more people vote up what @robinhoodwhale votes on, the more curation rewards @robinhoodwhale will make and the more visibility those posts will get (making @robinhoodwhale even more valuable to the community).

I worked on the CopyCatVoter bot yesterday and had it running all night. Here's the output from its first day of life:

➜  Bots git:(master) ✗ php CopyCatVoterTest.php
2016-08-28T02:47:38+00:00
Starting CopyCatVoter for lukestokes who wants to copy robinhoodwhale...


------------ NEW VOTE! -----------
robinhoodwhale/re-kateblack-a-rant-about-a-germ-obsessed-parent-and-outdoor-play-20160827t201239908z
2016-08-27T20:13:54
----------------------------------
Already voted.
......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
------------ NEW VOTE! -----------
kazumba/modern-day-edgar-cayce-nostradamus
2016-08-28T07:12:00
----------------------------------
Voting...
.
------------ NEW VOTE! -----------
robinhoodwhale/re-kazumba-modern-day-edgar-cayce-nostradamus-20160828t071218005z
2016-08-28T07:12:27
----------------------------------
Voting...
.....................................................................................
------------ NEW VOTE! -----------
webosfritos/thoughts-on-steemit-power-distribution-and-steempower-an-anthropology-based-approach
2016-08-28T07:34:21
----------------------------------
Voting...
...
------------ NEW VOTE! -----------
robinhoodwhale/re-webosfritos-thoughts-on-steemit-power-distribution-and-steempower-an-anthropology-based-approach-20160828t073446896z
2016-08-28T07:35:03
----------------------------------
Voting...
............................................
------------ NEW VOTE! -----------
robinhoodwhale/re-picokernel-alpha-squeek-io-twitter-alternative-for-the-steem-blockchain-20160828t074629039z
2016-08-28T07:46:36
----------------------------------
Voting...
...............................................
------------ NEW VOTE! -----------
naquoya/sometimes-we-just-need-to-rage-against-the-machine
2016-08-28T07:58:48
----------------------------------
Voting...
...
------------ NEW VOTE! -----------
robinhoodwhale/re-naquoya-sometimes-we-just-need-to-rage-against-the-machine-20160828t075914448z
2016-08-28T07:59:36
----------------------------------
Voting...
.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
------------ NEW VOTE! -----------
dorit-israeli/experimental-learning-space-education-by-dr-dorit-israeli
2016-08-28T13:11:21
----------------------------------
Voting...
..
------------ NEW VOTE! -----------
robinhoodwhale/re-dorit-israeli-experimental-learning-space-education-by-dr-dorit-israeli-20160828t131146396z
2016-08-28T13:12:03
----------------------------------
Voting...
.....................................
------------ NEW VOTE! -----------
tonypeacock/join-a-niche-online-community-here-s-10-reasons-why
2016-08-28T13:21:48
----------------------------------
Voting...
..
------------ NEW VOTE! -----------
robinhoodwhale/re-tonypeacock-join-a-niche-online-community-here-s-10-reasons-why-20160828t132210398z
2016-08-28T13:22:15
----------------------------------
Voting...
.............................................................................................
------------ NEW VOTE! -----------
jaytaylor/on-international-dog-day-be-more-dog
2016-08-28T13:46:18
----------------------------------
Voting...
..
------------ NEW VOTE! -----------
robinhoodwhale/re-jaytaylor-on-international-dog-day-be-more-dog-20160828t134633948z
2016-08-28T13:47:03
----------------------------------
Voting...
..................................................................................................................
------------ NEW VOTE! -----------
sitaru/yes-you-are-right-to-fear-and-hate-islam-there-are-1-7-billion-potential-criminals-out-there
2016-08-28T14:16:24
----------------------------------
Voting...
.
------------ NEW VOTE! -----------
robinhoodwhale/re-sitaru-yes-you-are-right-to-fear-and-hate-islam-there-are-1-7-billion-potential-criminals-out-there-20160828t141641424z
2016-08-28T14:16:48
----------------------------------
Voting...
...................................................................................................................................................................................................................................................................
------------ NEW VOTE! -----------
anahilarski/graphic-design-and-social-media-pro-from-panama
2016-08-28T15:23:42
----------------------------------
Voting...
.
------------ NEW VOTE! -----------
robinhoodwhale/re-anahilarski-graphic-design-and-social-media-pro-from-panama-20160828t151705067z
2016-08-28T15:23:48
----------------------------------
Voting...
.....................................................................................................................................
------------ NEW VOTE! -----------
owdy/color-for-the-color-blind-the-science-behind-the-enchroma-glasses
2016-08-28T15:58:18
----------------------------------
Voting...
...
------------ NEW VOTE! -----------
robinhoodwhale/re-owdy-color-for-the-color-blind-the-science-behind-the-enchroma-glasses-20160828t155910607z
2016-08-28T15:59:15
----------------------------------
Voting...
.......................................................................................................................................................................................................................................................................................
------------ NEW VOTE! -----------
lukmarcus/wicker-heart-with-roses-made-from-paper-and-ribbon-beautiful-present-from-my-wife-to-hers-grandmother-on-70th-birthday
2016-08-28T17:11:18
----------------------------------
Voting...
.
------------ NEW VOTE! -----------
robinhoodwhale/re-lukmarcus-wicker-heart-with-roses-made-from-paper-and-ribbon-beautiful-present-from-my-wife-to-hers-grandmother-on-70th-birthday-20160828t171141695z
2016-08-28T17:11:48
----------------------------------
Voting...
...............

I just changed the configuration settings this morning so now it will only vote up root posts and not vote on the comments @robinhoodwhale votes on. I'm doing this to conserve some voting power for people in my feed, but will probably change that up based on how active I plan to be on Steemit for a given time period.

All the code for this is on Github here: https://github.com/lukestokes/php-steem-tools. The CopyCatVoter code is here and the code to run it is currently in a test folder. This is basically my embarrassing prototype sandbox play code, but I'm putting it out there publicly in case anyone else wants to play with it also. You'll need to be able to run php and have piston configured with your posting key and have no password on your piston wallet (I hear from @xeroc some changes will be coming in the future to allow for ENV variable for this).

So why did I do this instead of just using my account at https://streemian.com/ and its curation trail feature? Well, mainly because I wanted to challenge myself. I really like the idea of having my own bot I can tweak and adjust, almost like a pet. I'm already thinking of improvements to make, such as ensuring it will unvote a post if @robinhoodwhale removes a vote.

Also, I like to have the output available for me to review. I'm not one to automate social media activities, so it took a while for me to warm up to the idea of trusting others to curate good content. I had to trust the hive mind to promote content which will benefit Steemit as a platform. With it running locally, I can easily review the posts and still use that 24 hour window to remove my vote if it's something I don't personally think is beneficial to the network or if it is contrary to my subjective opinion of what I "like."

If you want to know more about @robinhoodwhale, give them a follow. You can review the list of posts they've already voted for in this spreadsheet which is updated in real time, as far as I understand. Shout out to @kyriacos for the awesome artwork and the robinhood / robinhood-links chat channels.

I hope you're having a great weekend!
Steem On
LukeStokes01712.png

Sort:  

Thanks Luke for creating something to help out the Robin Hood Whale initiative, hopefully in the near future we will have something even simpler.

We would like to inform you that you have been chosen as a featured author by the @robinhoodwhale initiave.

Kudos

I agree, even tho with some googling and some trial/error I could set up that bot to auto vote rhw, I'd appreciate a "noob" guide to set it up. :))

The best approach right now is to probably use https://streemian.com/ to do this for you.

Thanks, but I'm concerned me being featured might upset some people because I've already gathered a bit of a following on my own and am no longer a minnow. Clearly, you're free to promote whoever you want and promoting a post which promotes your initiative makes obvious sense... but yeah. Anyway. Thanks. :)

Update: unfortunately I broke things with a code push yesterday, but it's working now and has unvote support. Additionally (and I think this is really cool), it exports the posts it votes on to a file and has a currationReport() function that will show you how much the bot is earning in terms of curation rewards (Steem Power):

➜  Bots git:(master) ✗ php CopyCatVoterTestCurationReport.php
0.039,kazumba/modern-day-edgar-cayce-nostradamus
0.233,webosfritos/thoughts-on-steemit-power-distribution-and-steempower-an-anthropology-based-approach
0.236,naquoya/sometimes-we-just-need-to-rage-against-the-machine
0.037,dorit-israeli/experimental-learning-space-education-by-dr-dorit-israeli
0.037,tonypeacock/join-a-niche-online-community-here-s-10-reasons-why
0.179,jaytaylor/on-international-dog-day-be-more-dog

So you can support a great initiative and get some love for your wallet as well. Double win!

Also, check out this post by @laonie where he mentions how to get set up. Hopefully I'll have time in the next few days to clean up this code some more.

Thanks! I love the artwork.

Not a whale:

So is "steemjustice" an account which is going to go around telling others they are doing it wrong? Did you bother to bring up this concern with them directly first in the chat room instead of posting about it in an open letter?

There are enough things in this world to complain about. I prefer we spend our energy creating new, valuable things for others to enjoy. Have a nice day.

@lukestokes the point is @dollarvigilante is HER client and the @anahilarski is clearly not a "small fish" in need of help from the @robinhoodwhale as she already is proxy with the most powerfull accounts of steemit.

The open question to the @robinhoodwhale remains unanswered: why are they supporting an account that is clearly NOT a minnow and is already supported by whales, instead of upvoting real unnoticed accounts.

@robinhoodwhale is clearly not helping the minnows with this attitude of empowering the ones which already have power...

A minnow is an account with low Steem Power which is clearly indicated in the image I pasted above. If you continue to make false, accusatory statements in comments on my posts, I'll flag them so others won't have to bother with reading them and can avoid unnecessary drama.

he actually has a point, if you check out her post ... dollarvigilante did vote for her

he seems to think she also controls that account, which is not the case, she just designed the logo, that's it

but ... she did get a vote from jeff = she's already supported by 1 of the whales ... she'll be fine without any help from robin ...

She is not a "small fish" without friends on steemit. Her cleint is the mega-super-empowered @dollarvigilante account and that's a fact. It's clearly not a case of needing help from the @robinhoodwhale as she already has powerfull friends around steemit. Now you may not like my comments, but are facts, flaging or not.

... she'll be fine without any help from robin ...

That's of course the point of our open letter. There is no way our point could be understood in another way.

"I am a graphic designer and do not control the Dollar Vigilante account."
@anahilarski

"So basically @anahilarski manages the @dollarvigilante account."
@steemjustice

You are spreading false information.

@dollarvigilante (the super-empowered steemit account) is @anahilarski's client. Clearly she is not a small fish without powerfull friends on steemit. Remember @robinhoodwhale was suppouse to help small fish withouth powerfull friends on steemit...

This:
robinhoodwhale.jpg

She doesn't need the support of the @robinhoodwhale, that's the point.

You guys are splitting hairs here. Ana does not need help but the RobinHood Whales Initiative liked what they saw. Can you blame them? My wife is pure awesomesauce!

This is awesome! Thank you for your work, Luke!

Thank you, and you're welcome!

Thanks guys for helping out the minnows :) @robinhoodwhale @lukestokes

I hope it works out well!

I'm not sure I get this ... so, we're supposed to run our own bots and follow robin? is that it?

Hey @luminousvisions, thanks for the comment. You're not "supposed" to do anything you don't feel like doing. :) This isn't really a bot for public consumption, as I tried to clarify in my post, it's just my own sandbox code I've been playing around with. If you do want to follow vote what RHW votes on, you can use https://streemian.com/ to do that.

Closed Beta: Streemian.com is currently in closed-beta for testing and improvements. You will require an invitation code to join. Expect things to break any time!

@luminousvisions sorry for my frustrated reply. I have a post I need to write in order to vent a bit. Many in the tech industry spend years figuring things out on their own with no one to help them so we get easily frustrated when (to us) it appears others just want to be shown how to do something instead of investing their own time to figure it out. I'll write more on this later.

@luminousvisions have you checked the menu on Steemit, the one with the "Steemit Chat" link? If getting into the chat and sending me a direct message is a bit much, then you're probably not ready for a beta account on streemian.

breath in ... breath out ...

Thanks @lukestokes for sharing the code and taking all the time to create your robinhoodwhale follow bot. It was interesting to see the underlying code behind a bot :)

It's probably not the best example of bot code as it's just my own playground, but I'm glad you enjoyed looking at it. :)

How do you learn to build bots? Please tell me where to go to learn @lukestokes, cheers!

There isn't a place to go, other than Google, as far as I know. I've been building web stuff since 1996, and it took me over a month of frustration trying to figure out the Steem API enough to start querying it and figuring things out. Sorry I don't have a more cheery answer for you.

Haha, I've been doing web dev since grade school! At the time it was all about Geocities, spacer gifs, Microsoft Frontpage, Java Applets, etc..... oh the nostalgia... =O

Thank You for that:)

It would depend what specifically the bot you want to create will end up doing. Creating a bot to go through a web page and extract all images on it is quite different from say a bot that will buy and sell on a market exchange. In the case of creating an upvote bot for Steemit, I would suggest learning a computer language like Python first, then using a Steemit API for Python, like @xeroc's Piston. There are other libraries for other languages, but Python seems to be the go-to language. Learning computer programming is not something that can be done for the faint of heart. I would suggest going the route of a prepackaged solution like Steemian.com if you're not really into it.

Very cool idea. I wish I knew a bit more about php so I could fiddle around and make a bot. I don't mind bots, but mostly only if the content is reviewed by the owner and not solely upvoting content that will curate the most rewards, but that will make steemit more valuable long term.

I really enjoyed reading all of the posts today which my bot upvoted while I slept last night. I would have voted for them if I had found them myself. So far, 1 day into it, I'm happy about @robinhoodwhale promoting content I like. Trust the hive mind. :)

Maybe something could be created that shows a feed of potential content you may like that doesn't need you to vote on it (so as not to use up your voting power when you may be too busy to check it some nights). I think there was talk of a "suggested feed," but it may have been removed or something

The bot I wrote has a boolean which, if set to false, won't automatically vote but instead give you a link and periodically remind you to go vote for it.

That's very cool! I'm excited to try my hand at it when I have more knowledge. Do you think it will be possible to "learn" what type of content you may like, akin to a amazon or netflix type suggestion someday?

@bendjmiller222 not without building A.I. Netflix has spent a lot of money building what they have. Maybe someday I'll tinker with it though. If I kept feeding it a dataset of posts I've voted on and let it determine some characteristics I like... might be possible. Probably anything with the word "Voluntaryism" would get voted on. Heheh. Then again, once it's coded, someone will game the code.

Absolutely. I know that netflix / amazon /advertisers have invested 100's of millions of dollars into their programs, but wondered whether there was a way to better tailor to individuals without feeding just keywords and such. (I'm sure it's with enough money, but whether or not the ROI would be there or not).

Coin Marketplace

STEEM 0.20
TRX 0.12
JST 0.029
BTC 61740.86
ETH 3453.31
USDT 1.00
SBD 2.51