Announcing Steem-Index: Determine How Consistently Popular Your Writing Is
steemit·@geoffrey·
0.000 HBDAnnouncing Steem-Index: Determine How Consistently Popular Your Writing Is
## Also view your full post history in tabulated form! My new App, [Steem-Index](http://seed.zapto.org/hindex/) tells you two values: your V-index and P-index. If you're an academic, you might think these terms sound familiar. [You'd be right!](https://en.wikipedia.org/wiki/H-index) <br> <center><a href="http://seed.zapto.org/hindex/"><img src="http://i.giphy.com/l0MYQDcB5n145bUZy.gif"></a></center> <br> # Background H-index is a measure of how productive a researcher is, based on their publication record. It is a function of both the number of papers they've published, and how many citations each paper received. To calculate it, you just need to sort their papers by the number of citations each paper has received, and find the maximum value for which the number of citations is greater than or equal to the paper number. Simple, right? Well, now you can calculate that value for your Steemit posts! Instead of citations, we use either the rewards your posts have received (Steem Power; Post Value), or the popularity of your posts (Total Votes; Post Popularity). **I call these two measures V-index and P-index, respectively.** # Usage Fill in the form on [Steem-Index](http://seed.zapto.org/hindex/) for either your **quick calculation** (based on top-level posts that haven't paid out yet, i.e., posts less than 30 days old), or your **full calculation** (your entire post history, including replies to other posts). While the full calculation is more extensive, and more representative of the impact you've had during your tenure as a Steemian, it can take considerably longer to generate. It also doesn't include how many votes each of your posts received, unfortunately, so you are limited to the V-index in this case. # Under The Hood The website is a flask-app (source available at: [github/geoffrey-steem](https://github.com/geoffrey-steem/steem-index)). Unlike my earlier app, this one is less ad-hoc in implementation, querying the Steem blockchain directly using @xeroc's excellent python library. While the quick method uses the get_state() command to find each of a user's recent posts, the results are limited to posts which haven't paid out for their 30-day period, yet. The /full/ method uses get_transaction_history() to iterate over every transaction a user has made on the blockchain. This is quite slow, so I store the results to a "database" (read python dictionary written to file), which can only be updated for a particular user once a day (to speed-up repeated access; and limit wasted bandwidth). The quick method uses websocket to communicate with steemit.com, but the /full/ method requires thousands of requests, so a local copy of cli_wallet has to be ran with 'account_history' enabled (this necessitated increasing the ram on my seed node which I host the website off of). # Limitations Both methods have their ups and downs. Neither is perfect (yet). ### Method Advantages: * [Quick](http://seed.zapto.org/hindex/): * Speedier * Doesn't need a local instance of cli_wallet or blockchain download * Contains both price and vote data * This allows for both the V-index and P-index to be calculated * Posts link properly to their threads * [Full](http://seed.zapto.org/hindex/full/): * Considers all comments by a user ever made on Steem * Stores tabulated results for access outside of the website * Reward measure is accurate to what the post actually paid out* <hr> <p align="right">*: The reward for the quick method is estimated based off of author_rewards, a value for which I could not find the exact calculation. Empirically it seemed to vary between 1800-2000 author_rewards / Steem Power, so I used that range in my calculations. While get_state() reports rshares, which other posts suggest should correspond to rewards based on rshares^2 / total_daily_vshares = Vests, with total_daily_vshares = 10^24, this didn't seem to be the case. Alternatively, rewards could be estimated from 1/2 the SBD payout (which get_state() reports), but that involves calculating the 7-day median price on the date of the post, something I'm not readily equipped to do. </p> But don't be afraid to try both. # Future Efforts The ultimate goal is to create a high-score list of users with the highest impact. This will allow you to at-a-glance figure out who is really worth following! I'll have to iterate over all user accounts (there are 50,000+ now) of them, and keep it updated as new blocks are pushed. This will take me considerable time to implement and run, so for now enjoy the app manually, and give feedback while I flesh out the concept further. Also, I'd like the fuller page to incrementally fill the table. I'm told this could be done using websockets, so I'll have to research that further. For now, it just continues to show the page as loading while it tears through the blockchain. I'd also like to get more stats to play with. Since I'm becoming better at using the RPC client for blockchain analysis, it shouldn't be too long before I provide measures based on number of followers, reputation, frequency of posting... all kinds of cool stats! Finally, kind of simple, but I'd like to allow the viewer to sort by different columns. Right now I manually generate the html for the table, so that'll require a little bit of rework. # Some Users of Interest: Perhaps you're wondering how the whales score? Here are some of the ones I've looked up based on them hitting the trending page and having high reputation. *Feel free to post more interesting or surprising users in the comments.* <br> # <center>V-index</center> <center>[Gavvet](http://seed.zapto.org/hindex/full/gavvet) - 92</center> <center>[Dantheman](http://seed.zapto.org/hindex/full/dantheman) - 72 </center> <center>[Fyrstikken](http://seed.zapto.org/hindex/full/fyrstikken) - 50</center> <center>[Andrarchy](http://seed.zapto.org/hindex/full/andrarchy) - 42</center> <center>[Arhag](http://seed.zapto.org/hindex/full/arhag) - 38</center> <center>[Ericvancewalton](http://seed.zapto.org/hindex/full/ericvancewalton) - 23</center> <br> What do you think? Would you rank the prolificness of each author the same way? In case what these values mean wasn't clear. Gavvet has 92 posts which have received over 92 Steem Power at payout. That's quite impressive! # Closing Thoughts As is readily apparent, I'm not a web developer. I just really like Steemit, and am doing everything I can to take advantage of the idea of an open blockchain. This allows me to experiment with developing apps, and grow my expertise. This specific app is a considerable improvement over my first app, which dumbly scraped steemit.com user pages to get account balances. It also has a much nicer and cleaner layout, though there is still considerable room for improvement. I hope to continue to evolve my skills, and am very open to hearing any feedback you may have. <center>**[Like all of my work, Steem-Index is open source!](https://github.com/geoffrey-steem/steem-index/)**</center> <hr> <p><a href="http://steemit.com/@geoffrey" rel="noopener"><img src="https://img1.steemit.com/0x0/http://i.imgur.com/rrmzxfp.png"></a></p>
👍 geoffrey, skeptic, someguy123, venuspcs, egjoshslim, fubar-bdhr, deviedev, owdy, driv3n, fjccoin, justme, magnebit, jesta, runridefly, dennygalindo, xeldal, enki, rainchen, karen13, taker, jl777, proto, yefet, murh, bue-witness, bue, mini, boy, healthcare, mark-waser, bunny, daniel.pan, fintech-jesus, moon, helen.tan, pkattera, steemorama, lukestokes, teamsteem, simon.braki.love, trendwizard, midnas-howler, eileenbeach, luisucv34, harmonicsir0421, mrainp, kevinwong, beowulfoflegend, jassyt91, royaltiffany, hilarski, spookypooky, borran, acassity, jeremyfromwi, brendio, ratel, cronk, mrosenquist, pal, mynameisbrian, avecaesar, trending, grolelo, mustafaomar, arhag, anonymous, gbert, nastrom, daut44, sykochica, kurtbeil, unrealisback, picokernel, ace108, coinbitgold, glongsword, samupaha, soupernerd, weenis, domavila, thecryptodrive, steemdrive, rainman, svk, witness.svk, metaflute, rawnetics, steevc, rushd, rwgunderson, bitland, ben99, igster, crossroads, xtester, sephiroth, jparty, the-future, wrightlabs, sebastien, smailer, btotherest, idealist, aleco, inertia, brunopro, ezrabcs,