Once again, I didn't have much progress to report at the two-week mark, so I skipped that update and it has been about a month since Programming Diary #18: WhaleAlert inspired activity notices. For this interval, my activities mostly shifted from the Steemometer programming to alignment of voting weights with the strength of an author's follower network. I also made some progress towards getting the Steemometer ready to publish as open source.
Here are the two goals that I set for myself in Programming Diary #18: WhaleAlert inspired activity notices.
- Implement algorithm changes in automated voting so that voting percentages start incorporating information about an author's follower network;
- Start preparing the existing Steemometer code for Open Source release by adding comments, removing clutter, and trying to make sure that it doesn't leak details about my development environment.
I expect to revisit the first goal many times in order to continually improve the voting alignment between blockchain content and the human attention that the content receives. I also expect the second goal to take more than 2 weeks of effort.
I made progress on both goals during the last couple of weeks, but as expected, I have work remaining before I can call either one complete.
For the first goal, aligning voting weight in my autovoter with the strength of an author's follower network, here's a visualization of the rules that I implemented. (each line is based on the number of followers that an author has)
Here are some characteristics of the "Follower Score" as implemented:
I don't really like the shape of these curves, but it's a first pass. I ran into trouble with API responsiveness for a few days, so I'm still observing the impact of the changes.
As previously mentioned, once I find a curve that I'm happy with, I'll use that to inform the vote suggestions in the Steemometer tool.
In order to do this, I am leaning about javadoc, and how it is implemented in Netbeans. I also learned about the SLOC maven plugin, so that I can contextualize my progress through the various Java class files. At present, it seems that my project currently contains about 2,790 lines of code.
Package Name | File Name | Type | Blank | JavaDoc | Comment | Code | Total |
---|---|---|---|---|---|---|---|
module-info.java | src | 0 | 0 | 2 | 9 | 11 | |
steemometer | ApiServer.java | src | 7 | 29 | 1 | 52 | 89 |
steemometer | AuthorInfo.java | src | 44 | 61 | 22 | 133 | 260 |
steemometer | CountOps.java | src | 34 | 41 | 34 | 227 | 336 |
steemometer | MedianCalculator.java | src | 20 | 39 | 1 | 108 | 168 |
steemometer | PostDisplayManager.java | src | 15 | 43 | 3 | 91 | 152 |
steemometer | PostInfo.java | src | 42 | 122 | 8 | 227 | 399 |
steemometer | StartPoll.java | src | 6 | 10 | 0 | 21 | 37 |
steemometer | SteemData.java | src | 45 | 112 | 11 | 192 | 360 |
steemometer | SteemPriceFetcher.java | src | 21 | 9 | 12 | 65 | 107 |
steemometer | Steemometer.java | src | 190 | 12 | 121 | 1078 | 1401 |
steemometer | SteemometerConfig.java | src | 14 | 41 | 0 | 50 | 105 |
steemometer | SteemometerController.java | src | 5 | 10 | 1 | 23 | 39 |
steemometer | SystemInfo.java | src | 4 | 12 | 0 | 9 | 25 |
steemometer | TransactionNotifier.java | src | 30 | 60 | 14 | 217 | 321 |
steemometer | UrlValidator.java | src | 16 | 44 | 1 | 68 | 129 |
steemometer | VoteSuggestor.java | src | 5 | 17 | 0 | 15 | 37 |
steemometer | XferMemoInfo.java | src | 23 | 93 | 1 | 126 | 243 |
steemometer | XferMemoManager.java | src | 15 | 42 | 3 | 79 | 139 |
2 package(s) | 19 file(s) | java | 536 | 797 | 235 | 2790 | 4358 |
I learned how to use Netbeans to insert javadoc comments in all files, and I have reviewed the auto-inserted comments in the ApiServer.java file and the AuthorInfo.java file. I also went through all files and removed auto-generated comments that I thought were unnecessary.
Since my goals from the last cycle are still in progress, I plan to continue them for the next two weeks.
As with last time, I don't really expect to finish either goal in the next two weeks.
I want to follow-up on three topics from the Reflections section in Programming Diary #18: WhaleAlert inspired activity notices, and also add a new topic:
The Steem price has now remained above the SBD print threshold for a little more than a month, so I have continued to keep an eye on Steem inflation. The first quarter was deflationary, but the first week of the second quarter reversed that trend. It will be interesting to see what happens in coming weeks since the BTC halving is expected on April 20.
In the last post, I wondered if SBD printing would lead to an increase in blockchain activity. It appears that the answer is "yes". In that post, the blockchain activity was reported at about 185 operations per minute. Now it's up to about 207.
The overall stability problems that were mentioned in Programming Diary #18, have been solved. API reliability still has occasional problems, however. As noted above, my autovoter fell behind by about two days for some reason. I didn't notice it for a while, so I have no idea what the cause might have been. Also, simple python activities are often still blocked by the rate limits that were implemented last fall.
Here's the new topic for today's post. I have some thoughts about witnesses in the Steem environment:
If slow and steady wins the race, then I'm on track for a big programming win. 😉 It seems like publishing the toy Steemometer program as Open Source is in sight now, even if it's still not imminent.
My purpose for breaking out of iterating new features for it was to force myself to develop some other skills that will be useful for eventually implementing a peer to peer social media client. Based on the experiences learning about javadoc and SLOC, that seems to be proceeding as hoped.
I hope to see you in two weeks with Programming Diary #20!
Visit the /promoted page and #burnsteem25 to support the inflation-fighters who are helping to enable decentralized regulation of Steem token supply growth.