Programming Diary #18: WhaleAlert inspired activity notices
Summary
The main accomplishment in this interval was linking Steemometer transaction notifications to a URL on the SteemDB blockchain explorer. Transaction notifications now have enough basic functionality so that I can lock the code at version 0.0.6a. (a = "alpha"). After this, rather than adding more features, I intend to start preparing the code for Open Source publication.
Background
Due to some competition for my time from family and other activities, I didn't have a lot of programming time for a while, so I skipped my programming diary post two weeks ago. Thus, it has been 4 weeks since I posted Programming Diary #17: Activity notifications and vote suggestions. Two weeks ago, I had made almost no progress, but this week I have some small gains to write about. In all, I have only made four git commits during the entire four weeks, and I have one more to submit after completing this post.
Here are the goals that I had previously set for myself:
For the next fortnight, then, my goals are:
- Put some more transaction notification details across the top of the window. This could be additional icons and/or text, I'm not sure yet.
- Add the transaction id to the pop-up notification window.
Additionally, if time allows, I might work on some python coding so that my automatic voting will incorporate information about an author's followers, as discussed in Programming Diary #15: Voting suggestions and author incentives. As discussed in that post, I want to give more voting weight to authors with high-quality follower networks and less voting weight to authors who haven't yet built up a strong network of followers. The idea here is to reward authors who focus on audience-building.
Over time, then, I can (hopefully) use what I learn with the automated voting to inform the voting suggestions in the Steemometer tool.
I accomplished the Java goals for the Steemometer tool, but I have not yet achieved the stretch goal of incorporating follower network information into my automated voting.
Progress
The current version of the Steemometer tool can be seen here:
The only thing new here is the clickable text near the top of the window. In the previous post, I had already added the Steemformatics logo as a notification icon whenever a sufficiently large transfer, power-up, power-down, or vesting-withdrawal occurs. Now I have also added the clickable text so that we can see what the notification is for without clicking on anything.
It bears repeating that the idea behind these notifications was inspired by the whale_alert Twitter account from the whale-alert.io web site. The intent is to deliver the same sorts of information about Steem transactions for the Steemometer's users.
After a notification is displayed, the operator has two choices: (i) they can click on the text, itself in order to get redirected to the transaction on the SteemDB block explorer (via browser); or (ii) they can click on the notification icon.
If they click on the notification icon, it does two things.
- It clears the clickable text from the primary dashboard.
- It displays a notification pop-up with all the details of the transaction, along with another link to the block explorer.
Here's what the two panels look like together:
A caveat is that virtual operations don't seem to have transaction identifiers or block explorer links, so I could only link fill_vesting_withdraw
operations to the relevant block number, but not to the specific transaction.
Revisiting my goals, these two images demonstrate that both have been accomplished. The clickable text in the primary dashboard gives additional details without clicking, and the transaction ID now appears in the notification pop-up. (Bonus points, the transaction ID is clickable in the pop-up notification, too.)
Next Up
As alluded to previously, my coming goals are going to shift away from adding features in the Steemometer program. It's a fun project, but remembering that the overarching aspiration here is for skill and knowledge development, I think a new direction is in order. So, here are my goals for the next interval:
- 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. When I eventually release it as Open Source, I will probably start with a new repo. I don't think the whole world needs to see a git history where they can track the steps and missteps that got things to the current state. 😉
Reflections
I have four topics for reflection in this week's post - maybe just a paragraph or two each:
- The use of Java for Steem programming.
- The reemergence of SBD payouts.
- Thinking about interest payments for SBD savings.
- Slowness from hivemind.
Using Java for Steem programming
I've been less than enthusiastic about my choice of Java for a programming language, because it seems out of step with what I know of the blockchain ecosystem. However, I was somewhat reassured when I saw this Twitter post from Daniel Lemire today. In the industry at large, apparently Java is still one of the leading languages. Ultimately, the bottom line is that I want to be able to eliminate web sites as intermediaries so that people can interact directly with the blockchain, and although it seems uncommon in the blockchain space, Java (with JavaFX) seems like a decent choice.
SBD payouts reemerge
With the recent gains in the price of STEEM, we have seen the reemergence of SBD payouts. It will be interesting to see how long this lasts and how it effects the ecosystem. I have posted on it, here and here. One thing that I'm already noticing is that the activity in the Steemometer seems to be a little bit higher in recent days. Between Programming Diary #16 and last week, the operations per minute had decreased from about 220 to about 185, but recently it has clawed its way back up to around 190. I'm curious to see if that reversal continues.
Interest payments for SBD savings
I wrote about this, here and here. The bottom line is that the SBD interest rate might have far-reaching impact, and I have recently become interested in thinking about whether and how it can be used to improve the overall ecosystem. I invite others to join in the thought experiments.
Slowness from hivemind
We're all aware of continuing issues with delayed appearance of votes and posts on the platform. @moecki has opened this github issue on the topic and posted about it here on Steem. Specifically, I'd encourage anyone who's interested to also read this comment, where @moecki mentioned:
I strongly assume that the measures introduced at the API node to prevent the attack now also cause Hivemind not to receive the data reliably.
I really wished there was a way to resteem that comment, but highlighting it here is the best I can do.
And while I'm here, let me ask if you have cast your witness vote for @moecki? In my opinion, his contributions to the ecosystem far outweigh his #59 rank in the witness list, so I'd ask anyone with a vote to spare to please consider voting for his account.
Finally, with the January launch of the Bitcoin ETFs, the last couple of months have been interesting for the crypto ecosystem and with the BTC halving coming, we might anticipate interesting times ahead, too. Those of us with a long term perspective, might want to keep in mind the old adage, Play in summer, starve in winter.
If history is any guide, we can hope for some months of optimism to surround the halving, but that is not the time to coast or to overextend. We also need to prepare for what comes after. This means taking whatever steps we can to protect any gains that do materialize, whether in value or in participation.
Conclusion
And so ends programming diary #18. I set myself conservative goals this time and it still took some extra time to accomplish them.
The Steemometer is still a toy program, and it has tons of room for improvement. It's now at the point, however, where I think other people might also like to be able to run it. I have also reached a point where I think need to shift my own focus in order to change the skills that I'm developing, so now I start thinking about how to move towards open source.
Hope to see you in two weeks for Programming Diary #19!
Thank you for your time and attention.
As a general rule, I up-vote comments that demonstrate "proof of reading".
Steve Palmer is an IT professional with three decades of professional experience in data communications and information systems. He holds a bachelor's degree in mathematics, a master's degree in computer science, and a master's degree in information systems and technology management. He has been awarded 3 US patents.
Pixabay license, source
Reminder
Visit the /promoted page and #burnsteem25 to support the inflation-fighters who are helping to enable decentralized regulation of Steem token supply growth.
Thank you for your kind words :-)
I am following your thoughts on interest payments with great interest, but unfortunately I am not able to take part in the discussion at the moment.
Really wonderful to see a good programmer sharing dairy about programing work .
I try to learn programing in school but fail to learn it, found it really tough 😭
Upvoted. Thank You for sending some of your rewards to @null. It will make Steem stronger.
TEAM 1
Congratulations! This comment has been upvoted through steemcurator04. We support quality posts , good comments anywhere and any tags.