If you're playing the curation game, there are certain strategies to make your vote worth the most. > A human has a better chance of predicting the success of a random post with no votes than a computer algorithm. At best a computer algorithm could use historic performance of the poster to guess. If an algorithm is used, it will have to be a sophisticated algorithm that actually does add some value. After all, the algorithm isnβt able to vote on everything and gets exponentially weaker more it dilutes its vote. *Source: [Curation Rewards - steem.io](https://steem.io/getinvolved/paid-to-curate/)* The blockchain uses some logic create a reverse auction to make voting a little bit bot resistant. #### Vote After 30 Minutes This is not an exact science. Sometimes it's better to vote under 30 minutes if you think a large stakeholder will vote before you. But all things being equal, it's better to wait until 30 minutes have passed. --- In addition to the 30 minute timing, I've added a rule to this script: be within the first 10 votes cast. Often, these two rules are at odds. So ideally, you would want to search for posts that have less than 10 votes but are older than 30 minutes. Below is a script that does just that. However, if you're not into the command line, I've also updated my [Ganymede](https://steemit.com/radiator/@inertia/ganymede-a-growing-collection-of-steem-web-tools) project and added this functionality. To try this logic out yourself, browse to one of these ... * [steem-ganymede.herokuapp.com/discussions](https://steem-ganymede.herokuapp.com/discussions) * [golos-ganymede.herokuapp.com/discussions](https://golos-ganymede.herokuapp.com/discussions) ... then click the `Vote Ready` button. --- As always, we use [Radiator](https://steemit.com/steem/@inertia/radiator-steem-ruby-api-client) with `bundler`. You can get `bundler` with this command: ```bash $ gem install bundler ``` I've tested it on various versions of ruby. The oldest one I got it to work was: `ruby 2.0.0p645 (2015-04-13 revision 50299) [x86_64-darwin14.4.0]` First, make a project folder: ```bash $ mkdir radiator $ cd radiator ``` Create a file named `Gemfile` containing: ```ruby source 'https://rubygems.org' gem 'radiator', github: 'inertia186/radiator' ``` Then run the command: ```bash $ bundle install ``` Create a file named `vote_ready.rb` containing: ```ruby require 'rubygems' require 'bundler/setup' Bundler.require api = Radiator::Api.new options = { limit: 100 } options[:tag] = @ARGV if ARGV.any? response = api.get_discussions_by_created(options) response.result.each do |comment| next if comment.active_votes.size > 9 next if (created = (Time.now - Time.parse(comment.created + ' UTC')).to_i / 60) < 30 puts "#{created} minutes ago, votes: #{comment.active_votes.size}: http://steemit.com#{comment.url}" end ``` Then run it: ```bash $ ruby vote_ready.rb ``` The expected output will be something like this: ``` 34 minutes ago, votes: 9: http://steemit.com/pizzagate/@abortionburger/victim-comes-forward-i-was-sexually-assaulted-by-james-alefantis 38 minutes ago, votes: 9: http://steemit.com/food/@lucki9/various-forms-of-cake-home-industri-2 45 minutes ago, votes: 9: http://steemit.com/sports/@vidsmash/wwe-paige-vs-summer-rae-or-wwe-main-event-15-01-2017 46 minutes ago, votes: 9: http://steemit.com/spanish/@steemalf/si-no-tienes-dinero-para-el-surf-siempre-podras-andorrear 48 minutes ago, votes: 9: http://steemit.com/china/@giova/china-wants-to-build-a-200km-long-undersea-tunnel-to-america 49 minutes ago, votes: 9: http://steemit.com/travel/@johnthmouse/i-would-like-to-say-hi-to-every-one-im-new-to-steemit 53 minutes ago, votes: 8: http://steemit.com/cricket/@vidsmash/cricket-funny-moments-2017 57 minutes ago, votes: 8: http://steemit.com/trump/@chahredine/trump-and-the-titanic-effect 57 minutes ago, votes: 8: http://steemit.com/test/@literature/test 58 minutes ago, votes: 9: http://steemit.com/art/@mariashabbir/clouds-from-the-top-of-sky-plane-view 59 minutes ago, votes: 8: http://steemit.com/offers/@pignol/2svvzz-very-serious-and-good-liver-donation 66 minutes ago, votes: 7: http://steemit.com/philosophy/@panopticalvia/pan-op-update 74 minutes ago, votes: 6: http://steemit.com/fox/@talhaansary/rd-3-fox-ama-supercross-2017-live-stream 75 minutes ago, votes: 9: http://steemit.com/steem/@cata22/alt-coin-market-caps-on-january-20 77 minutes ago, votes: 8: http://steemit.com/technology/@stabilitas/how-security-professionals-can-beat-information-overload ```  See my previous Ruby How To posts in: [#radiator](https://steemit.com/created/radiator) [#ruby](https://steemit.com/created/ruby)
author | inertia |
---|---|
permlink | how-to-find-hidden-gems-with-ruby |
category | radiator |
json_metadata | {"tags":["radiator","ruby","steem","howto","curation"],"image":["http://www.steemimg.com/images/2016/08/24/1024px-Ruby_logo.svgdcc20.png"],"links":["https://steem.io/getinvolved/paid-to-curate/","https://steemit.com/radiator/@inertia/ganymede-a-growing-collection-of-steem-web-tools","https://steem-ganymede.herokuapp.com/discussions","https://golos-ganymede.herokuapp.com/discussions","https://steemit.com/steem/@inertia/radiator-steem-ruby-api-client","https://steemit.com/created/radiator","https://steemit.com/created/ruby"],"app":"steemit/0.1","format":"markdown"} |
created | 2017-01-20 20:12:30 |
last_update | 2017-01-20 20:12:30 |
depth | 0 |
children | 8 |
last_payout | 2017-02-20 20:37:39 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.429 HBD |
curator_payout_value | 0.044 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 4,765 |
author_reputation | 346,568,901,399,561 |
root_title | "How to Find Hidden Gems with Ruby" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 0 |
post_id | 2,299,565 |
net_rshares | 6,075,059,871,764 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
ihashfury | 0 | 287,057,451,955 | 100% | ||
wang | 0 | 151,268,473,344 | 51% | ||
boy | 0 | 3,183,944,499 | 100% | ||
bue-witness | 0 | 3,877,453,699 | 100% | ||
bunny | 0 | 613,654,368 | 100% | ||
bue | 0 | 61,213,746,319 | 100% | ||
mini | 0 | 1,703,740,905 | 100% | ||
moon | 0 | 216,511,315 | 100% | ||
jason | 0 | 45,772,554,832 | 100% | ||
proctologic | 0 | 64,317,846,760 | 100% | ||
healthcare | 0 | 637,403,005 | 100% | ||
daniel.pan | 0 | 1,006,413,197 | 100% | ||
proctologic2 | 0 | 1,022,351,090 | 100% | ||
helen.tan | 0 | 292,565,201 | 100% | ||
proctologic3 | 0 | 806,791,431 | 100% | ||
ervin-lemark | 0 | 29,271,441,375 | 100% | ||
leesunmoo | 0 | 344,950,567,482 | 100% | ||
kingscrown | 0 | 59,912,983,254 | 50% | ||
cryptoctopus | 0 | 925,771,369,333 | 100% | ||
murh | 0 | 880,388,468 | 13% | ||
dragonslayer109 | 0 | 211,814,002,610 | 100% | ||
thecryptofiend | 0 | 322,633,698,025 | 100% | ||
justtryme90 | 0 | 57,833,705,979 | 40% | ||
applecrisp | 0 | 781,197,356 | 20% | ||
juanmiguelsalas | 0 | 37,730,488,190 | 100% | ||
fyrstikken | 0 | 54,707,800,147 | 2% | ||
michaellamden68 | 0 | 2,652,259,496 | 100% | ||
good-karma | 0 | 31,601,242,091 | 16% | ||
roelandp | 0 | 728,376,203,939 | 50% | ||
vi1son | 0 | 35,173,592,696 | 100% | ||
speda | 0 | 31,906,608,507 | 100% | ||
inertia | 0 | 195,877,812,898 | 100% | ||
celsius100 | 0 | 38,576,052,338 | 100% | ||
seb | 0 | 1,143,786,587 | 100% | ||
mysteem | 0 | 1,246,100,081 | 16% | ||
webdeals | 0 | 18,962,484,316 | 100% | ||
jamesbrown | 0 | 184,726,492,504 | 100% | ||
craigslist | 0 | 432,175,866 | 100% | ||
sykochica | 0 | 45,351,817,035 | 100% | ||
transhuman | 0 | 1,700,776,293 | 44% | ||
kurtbeil | 0 | 142,847,219,710 | 100% | ||
thewhitewolf | 0 | 2,686,241,813 | 100% | ||
imarealboy777 | 0 | 238,815,383 | 10% | ||
ioc | 0 | 662,731,138,790 | 100% | ||
sethlinson | 0 | 4,511,112,929 | 20% | ||
hilarski | 0 | 45,519,788,274 | 20% | ||
runridefly | 0 | 8,146,583,720 | 25% | ||
stephenkendal | 0 | 14,349,905,689 | 100% | ||
krnel | 0 | 672,193,384,609 | 100% | ||
ivet | 0 | 12,589,192,334 | 50% | ||
titusfrost | 0 | 22,803,677,382 | 100% | ||
kev7000 | 0 | 5,273,055,224 | 100% | ||
maarnio | 0 | 7,422,715,999 | 100% | ||
finleyexp | 0 | 235,052,882 | 16% | ||
jsg | 0 | 51,313,913,019 | 100% | ||
landofcrypto | 0 | 9,038,369,092 | 100% | ||
bitcoinparadise | 0 | 12,706,543,260 | 100% | ||
dodders007 | 0 | 31,379,095,901 | 100% | ||
blhz | 0 | 1,566,764,053 | 100% | ||
steem-meme | 0 | 1,917,307,382 | 20% | ||
sunscape | 0 | 8,857,381,540 | 20% | ||
meanpeoplesuck | 0 | 139,723,141 | 100% | ||
steemspeak | 0 | 222,793,949 | 2% | ||
fyrst-witness | 0 | 343,980,766 | 2% | ||
lovethepeople | 0 | 133,049,385 | 100% | ||
vladtheimpaler | 0 | 3,130,652,571 | 100% | ||
porco-bastardo | 0 | 129,286,587 | 100% | ||
angel76 | 0 | 7,928,344,183 | 100% | ||
xer | 0 | 1,468,573,650 | 100% | ||
sqube | 0 | 147,544,162,366 | 100% | ||
crowdfundedwhale | 0 | 20,627,046,581 | 50% | ||
trans-juanmi | 0 | 6,059,744,653 | 60% | ||
jfesrom | 0 | 1,319,644,358 | 33% | ||
doodleman | 0 | 14,713,687,048 | 100% | ||
gutzofter | 0 | 40,304,265,476 | 100% | ||
chiliec | 0 | 3,728,488,539 | 16% | ||
spbesner | 0 | 7,355,889,720 | 100% | ||
reisman | 0 | 721,919,234 | 20% | ||
cardboard | 0 | 6,547,423,062 | 100% | ||
mallorcaman | 0 | 100,318,603,236 | 100% | ||
juliosalas | 0 | 798,795,051 | 60% | ||
estibuil | 0 | 3,483,180,909 | 100% | ||
darth-azrael | 0 | 509,982,873 | 33% | ||
cryptocash | 0 | 465,138,141 | 100% | ||
juandemarte | 0 | 480,104,183 | 100% | ||
bitsy | 0 | 417,664,605 | 100% | ||
paullouisbos | 0 | 417,269,941 | 100% | ||
master-yoda | 0 | 417,249,785 | 100% |
Instead of counting votes you can calculate your vote weight before voting:) Here's the algorithm: https://steemit.com/steemit/@burnin/reward-shares-understanding-how-your-votes-affect-a-post
author | cardboard |
---|---|
permlink | re-inertia-how-to-find-hidden-gems-with-ruby-20170121t235310589z |
category | radiator |
json_metadata | {"tags":["radiator"],"links":["https://steemit.com/steemit/@burnin/reward-shares-understanding-how-your-votes-affect-a-post"],"app":"steemit/0.1"} |
created | 2017-01-21 23:53:09 |
last_update | 2017-01-21 23:53:09 |
depth | 1 |
children | 0 |
last_payout | 2017-02-20 20:37:39 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 191 |
author_reputation | 31,522,757,177,122 |
root_title | "How to Find Hidden Gems with Ruby" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 2,309,008 |
net_rshares | 0 |
Hey mate, sorry for gravedigging. I have followed your tutorial and got rid of some errors (ffi make was buggy and so on). Now its seems to work, but after 3-5 sec i wont get a result and no error. Any idea?
author | deradministrator |
---|---|
permlink | re-inertia-how-to-find-hidden-gems-with-ruby-20180218t210649989z |
category | radiator |
json_metadata | {"tags":["radiator"],"app":"steemit/0.1"} |
created | 2018-02-18 21:06:48 |
last_update | 2018-02-18 21:06:48 |
depth | 1 |
children | 4 |
last_payout | 2018-02-25 21:06:48 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 6.252 HBD |
curator_payout_value | 2.082 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 207 |
author_reputation | 1,084,361,388,464 |
root_title | "How to Find Hidden Gems with Ruby" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 38,612,244 |
net_rshares | 1,495,275,591,969 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
inertia | 0 | 1,495,275,591,969 | 100% |
Yep, I think there's a mistake in that script that nobody ever noticed. ```ruby next if (created = (Time.now - Time.parse(comment.created + ' UTC')).to_i / 60) < 30 ``` Should be: ```ruby next if (created = (Time.now - Time.parse(comment.created + ' UTC')).to_i / 60) > 30 ``` You can use this to do the same thing instead: http://steem-ganymede.herokuapp.com/discussions?vote_ready=true The code for that is here, which is correct: https://github.com/steem-third-party/ganymede/blob/master/app/controllers/discussions_controller.rb#L176
author | inertia |
---|---|
permlink | re-deradministrator-re-inertia-how-to-find-hidden-gems-with-ruby-20180218t214944488z |
category | radiator |
json_metadata | {"tags":["radiator"],"links":["http://steem-ganymede.herokuapp.com/discussions?vote_ready=true","https://github.com/steem-third-party/ganymede/blob/master/app/controllers/discussions_controller.rb#L176"],"app":"steemit/0.1"} |
created | 2018-02-18 21:49:45 |
last_update | 2018-02-18 21:49:45 |
depth | 2 |
children | 3 |
last_payout | 2018-02-25 21:49:45 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 548 |
author_reputation | 346,568,901,399,561 |
root_title | "How to Find Hidden Gems with Ruby" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 38,619,521 |
net_rshares | 3,940,570,684 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
deradministrator | 0 | 3,940,570,684 | 100% |
Worked flawless now =) Thank you, couldnt find the error. Alright, seems like my customizing works somehow. Can you explain me this part with the argv?: options[:tag] = @ARGV if ARGV.any? I m trying to wrap my head around ruby as a begginer, buts its kinda hard. Thank you for all your effort with your tutorials. They help me a lot :D
author | deradministrator |
---|---|
permlink | re-inertia-re-deradministrator-re-inertia-how-to-find-hidden-gems-with-ruby-20180218t224627108z |
category | radiator |
json_metadata | {"tags":["radiator"],"users":["argv"],"app":"steemit/0.1"} |
created | 2018-02-18 22:46:27 |
last_update | 2018-02-18 22:46:27 |
depth | 3 |
children | 2 |
last_payout | 2018-02-25 22:46:27 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 339 |
author_reputation | 1,084,361,388,464 |
root_title | "How to Find Hidden Gems with Ruby" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 38,628,897 |
net_rshares | 0 |
Your post has been added to [Steem Data Resources - Collection Of Posts About Steem Bots, Data And Mining, Issue No. 3](https://steemit.com/steem/@ervin-lemark/steem-data-resources-collection-of-posts-about-steem-bots-data-and-mining-issue-no-3). Thank you very much for your work and contribution!
author | ervin-lemark |
---|---|
permlink | re-inertia-how-to-find-hidden-gems-with-ruby-20170125t232702715z |
category | radiator |
json_metadata | {"tags":["radiator"],"links":["https://steemit.com/steem/@ervin-lemark/steem-data-resources-collection-of-posts-about-steem-bots-data-and-mining-issue-no-3"],"app":"steemit/0.1"} |
created | 2017-01-25 23:27:24 |
last_update | 2017-01-25 23:27:24 |
depth | 1 |
children | 0 |
last_payout | 2017-02-20 20:37:39 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 299 |
author_reputation | 469,847,679,370,493 |
root_title | "How to Find Hidden Gems with Ruby" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 2,343,819 |
net_rshares | 226,283,703,077 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
inertia | 0 | 225,785,179,336 | 100% | ||
tamersameeh | 0 | 498,523,741 | 100% |
<p>This post has been ranked within the top 80 most undervalued posts in the second half of Jan 20. We estimate that this post is undervalued by $5.50 as compared to a scenario in which every voter had an equal say.</p> <p>See the full rankings and details in <a href="https://steemit.com/curation/@screenname/the-daily-tribune-most-undervalued-posts-of-jan-20---part-ii">The Daily Tribune: Jan 20 - Part II</a>. You can also read about some of our methodology, data analysis and technical details in <a href="https://steemit.com/curation/@screenname/introducing-the-daily-tribune-most-undervalued-posts-of-nov-04---part-i">our initial post</a>.</p> <p>If you are the author and would prefer not to receive these comments, simply reply "Stop" to this comment.</p>
author | screenname |
---|---|
permlink | re-how-to-find-hidden-gems-with-ruby-20170121t013051 |
category | radiator |
json_metadata | "{"replyto": "@inertia/how-to-find-hidden-gems-with-ruby"}" |
created | 2017-01-21 01:30:51 |
last_update | 2017-01-21 01:30:51 |
depth | 1 |
children | 0 |
last_payout | 2017-02-20 20:37:39 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 765 |
author_reputation | 46,276,338,038,330 |
root_title | "How to Find Hidden Gems with Ruby" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 2,301,545 |
net_rshares | 191,055,643 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
imarealboy777 | 0 | 191,055,643 | 10% |