{"code":0,"result":{"link_id":109414749,"link_status":0,"author_reputation":76.353,"author_status":0,"author_role":"","author_title":"Verified Developer","author":"remlaps","permlink":"programming-diary-24-the-steem","parent_author":"","parent_permlink":"hive-151113","parent_link_id":0,"root_author":"","root_permlink":"","root_title":"","created":1725204831,"last_update":1725211203,"last_sync":1725809677,"cashout_time":0,"payout":73.765,"total_payout_value":32.278,"curator_payout_value":41.487,"pending_payout_value":0,"promoted":9.220625,"net_rshares":239537291067126,"total_vote_weight":0,"max_accepted_payout":1000000,"percent_steem_dollars":10000,"allow_curation_rewards":1,"allow_replies":1,"allow_votes":1,"depth":0,"children":15,"resteem_count":7,"upvote_count":161,"downvote_count":0,"word_count":1535,"is_author_muted":0,"is_muted":0,"is_pinned":0,"category":"hive-151113","community":"Steem Dev","json_images":"[\"https://cdn.steemitimages.com/DQmUKqTGFc9QYij9RPiPZ396BFpw5nPSimdES2nMpUbqpby/image.png\",\"https://cdn.steemitimages.com/DQmRykby84QLo8QUTpYKhjWtepwMJLjpg3jWwrjarRpYuRD/image.png\",\"https://cdn.steemitimages.com/DQmecuMVTfbwNHNL6Ly9zy4MEcH9iZ1ydfKK1m7v44U9sXu/image.png\",\"https://media.licdn.com/mpr/mpr/shrinknp_400_400/p/2/000/028/0bf/04cf437.jpg\",\"https://steemitimages.com/DQmWwM8dKvSHH9cqp2om3L8zU5iovAw4ZZeDvjMAc8DBwdE/image.png\",\"https://cdn.steemitimages.com/DQmVc5QiSemwTgbZBBvWaDjzW3h3PbDhjLTcN3Vq2HeLA4K/image.png\"]","json_metadata":"{\"image\":[\"https://cdn.steemitimages.com/DQmUKqTGFc9QYij9RPiPZ396BFpw5nPSimdES2nMpUbqpby/image.png\",\"https://cdn.steemitimages.com/DQmRykby84QLo8QUTpYKhjWtepwMJLjpg3jWwrjarRpYuRD/image.png\",\"https://cdn.steemitimages.com/DQmecuMVTfbwNHNL6Ly9zy4MEcH9iZ1ydfKK1m7v44U9sXu/image.png\",\"https://media.licdn.com/mpr/mpr/shrinknp_400_400/p/2/000/028/0bf/04cf437.jpg\",\"https://steemitimages.com/DQmWwM8dKvSHH9cqp2om3L8zU5iovAw4ZZeDvjMAc8DBwdE/image.png\",\"https://cdn.steemitimages.com/DQmVc5QiSemwTgbZBBvWaDjzW3h3PbDhjLTcN3Vq2HeLA4K/image.png\"],\"thumbnails\":[\"https://cdn.steemitimages.com/DQmUKqTGFc9QYij9RPiPZ396BFpw5nPSimdES2nMpUbqpby/image.png\",\"https://cdn.steemitimages.com/DQmUKqTGFc9QYij9RPiPZ396BFpw5nPSimdES2nMpUbqpby/image.png\",\"https://cdn.steemitimages.com/DQmRykby84QLo8QUTpYKhjWtepwMJLjpg3jWwrjarRpYuRD/image.png\",\"https://cdn.steemitimages.com/DQmRykby84QLo8QUTpYKhjWtepwMJLjpg3jWwrjarRpYuRD/image.png\",\"https://cdn.steemitimages.com/DQmecuMVTfbwNHNL6Ly9zy4MEcH9iZ1ydfKK1m7v44U9sXu/image.png\",\"https://cdn.steemitimages.com/DQmecuMVTfbwNHNL6Ly9zy4MEcH9iZ1ydfKK1m7v44U9sXu/image.png\",\"https://media.licdn.com/mpr/mpr/shrinknp_400_400/p/2/000/028/0bf/04cf437.jpg\",\"https://steemitimages.com/DQmWwM8dKvSHH9cqp2om3L8zU5iovAw4ZZeDvjMAc8DBwdE/image.png\",\"https://cdn.steemitimages.com/DQmVc5QiSemwTgbZBBvWaDjzW3h3PbDhjLTcN3Vq2HeLA4K/image.png\"],\"tags\":[\"hive-151113\",\"steemtalk\",\"programming\",\"burnsteem25\",\"steemexclusive\"],\"description\":\"SCA: Conversation at the speed of Steem \",\"app\":\"upvu/1.0.1\",\"format\":\"markdown+html\"}","title":"Programming Diary #24: The Steem Conversation Accelerator (SCA) is now Open Source","body":"<h6><b><i>SCA</i></b>: Conversation at the speed of Steem</h6>\n\n### Summary\n\nToday's programming diary post describes the state of the [Steem Conversation Accelerator (SCA)](https://github.com/remlaps/Steem-Conversation-Accelerator) on the day after its release into the public domain. \n\nThe MIT licensed browser extension provides notifications when conversations are happening on the Steem blockchain, and it displays an HTML activity list that lets the browser operator click through to the front-end of choice in order to participate in those conversations.\n\nThis tool is provided in the context of a long-term development vision that focuses on decentralized access to the blockchain; bringing human attention to the blockchain; and creating a value exchange between token-burning and post visibility.\n\nAs with previous programming diaries, the post also includes sections describing recent activities in developing this tool, plans for the future, and a section of reflections.\n\n---\n\n<table>\n<tr><td>\n<h3><center>Developer Delegation Day</center></h3>\n</td></tr><tr><td>\nBefore I move on, have you seen my suggestion for a <A HREF=\"/hive-142124/@remlaps-lite/introducing-developer-delegation-day-ddd\">Developer Delegation Day</A>?<br><br>\nThis is an idea for Steemizens to spur development by delegating 5 SP to a developer of choice on the 5<sup>th</sup> day of every month.  September 5<sup>th</sup> is coming up in 4 days.  Will you participate, and if so, to whom will you delegate?\n</td></tr></table>\n\n---\n\n### Background\n\nNow back to our regularly scheduled programming.\n\nIn my [July 4 programming diary post (#20)](/hive-151113/@remlaps/programming-diary-20-accelerating-organic), I introduced the new browser extension that I had begun working on, the [Steem Conversation Accelerator](https://github.com/remlaps/Steem-Conversation-Accelerator).  The stated goal for the tool was,\n\n<blockquote>\n\nto increase the speed and engagement for organic conversations on the Steem blockchain by notifying the browser operator when conversations are taking place.\n\n</blockquote>\n\nI wrote more about it in [Programming Diary #21](/hive-151113/@remlaps/programming-diary-21-entertainment-and), [22](/hive-151113/@remlaps/programming-diary-22-boosting-organic), and [23](/hive-151113/@remlaps/programming-diary-23-warning-this).\n\nYesterday, after those two months of spare-time updates on nights and weekends, I have opened the repo under the [MIT License](https://opensource.org/license/mit).\n\nAs previously described, the browser extension has three functional components:\n\n- A pop-up window that collects configuration information:\n\n   [![](https://cdn.steemitimages.com/DQmUKqTGFc9QYij9RPiPZ396BFpw5nPSimdES2nMpUbqpby/image.png)](https://cdn.steemitimages.com/DQmUKqTGFc9QYij9RPiPZ396BFpw5nPSimdES2nMpUbqpby/image.png)\n\n- A background script that polls regularly for new activities and delivers browser notifications when they are observed\n\n   [![](https://cdn.steemitimages.com/DQmRykby84QLo8QUTpYKhjWtepwMJLjpg3jWwrjarRpYuRD/image.png)](https://cdn.steemitimages.com/DQmRykby84QLo8QUTpYKhjWtepwMJLjpg3jWwrjarRpYuRD/image.png)\n\n- And an activity list browser tab that is opened when the browser operator clicks on one of the browser notifications:\n\n   [![](https://cdn.steemitimages.com/DQmecuMVTfbwNHNL6Ly9zy4MEcH9iZ1ydfKK1m7v44U9sXu/image.png)](https://cdn.steemitimages.com/DQmecuMVTfbwNHNL6Ly9zy4MEcH9iZ1ydfKK1m7v44U9sXu/image.png)\n\nAnd what are the activities that the background script is looking for?  Right now, those activities are the recent posts, comments and replies from the accounts that an observer account is following.\n\nIf you want to try it out, or if you want to contribute, the [repo is here](https://github.com/remlaps/Steem-Conversation-Accelerator).\n\nThe general principles that are driving pretty-much all of my programming efforts are:\n\n1. For peer to peer transactions on a decentralized network, we want the application to run on the end-user device.\n2. The Steem blockchain is a play for the [attention economy](https://justapedia.org/wiki/Attention_economy), so the most valuable development efforts are those that deliver human attention.\n3. The second-best way for a developer to bring value to the ecosystem is by providing an exchange of value between token-burning and post-visibility.  This gives the token utility, and it also increases scarcity.\n\nAt this point, the browser extension is the most practical way that I have learned for delivering an application on an end-user device.  [SCA](https://github.com/remlaps/Steem-Conversation-Accelerator) is presently being driven by the first two principles, and I eventually intend to also add a [Visibility As A Service (VAAS)](/hive-151113/@remlaps/programming-diary-10-a-focus) component.\n\n### Activity Descriptions\n\nOverall, I completed 20 git commits in the last couple weeks.  I'm not going to paste them here since you can now see them in the repo.\n\nActivities in the last two weeks have been focused in three general areas: (i) Continued troubleshooting of the locking between the background polling and the activity display; (ii) Experimenting with the display format for the activity list; and (iii) Code organization/clean-up in preparation for Open Source publication.\n\nAlso, I created README and LICENSE.txt files for the project, and @cmp2020 stepped through the installation instructions without my assistance in order to make sure that someone can follow them.\n\nHere's a little bit about each aspect.\n\n#### Troubleshooting the locking mechanism\n\nI spent a number of hours again during this cycle trying to figure out why the memory locking was continuing to misbehave.  Eventually, I discovered that the problem wasn't in the logic of the locking, but rather a simple grammar error in the function call to release one of the locks.  Finally, it seems like the locking has been working as expected for about a week.\n\n#### Experimenting with the display format\n\nAs previously mentioned, I'm very-much a \"function over form\" type of person, so making a web page look pretty is definitely a weak point of mine.  I tried a variety of color schemes, though, and eventually came up with one that I think is tolerable.\n\nI had another theme that I liked, too, modeled after the [Philadelphia Eagles](/funny/@cmp2020/superbowl-collusion) colors, but it clashed with the logo and I didn't feel like getting the AI to make another logo for me, so I went back to playing with blue themes.\n\n### Code organization\n\nI went through a bunch of the functions and tried to eliminate extraneous code, and I also created some new files in order to separate functions according to their intended use.  I am now migrating towards the following structure:\n\n- One pair of files for displaying the HTML/CSS activity list (JavaScript and HTML)\n- One pair of files for displaying the pop-up menu (JavaScript and HTML)\n- A file that does the background polling (JavaScript)\n- One file with helper functions for interacting with the Steem blockchain\n- One file with helper functions for managing storage locking\n- One file with with helper functions that might be used in multiple other places.\n\nThere's still a lot of room for improvement with the code organization.\n\n### Next Up\n\nAs previously detailed, my long-term vision for this tool includes notifications from followed accounts, notifications from threads where the observer account has participated, and notifications from posts/comments/replies in communities where the observer account is a subscriber. Additionally, I'm going to add some capabilities so that people can get some extra visibility for post promotion and @null beneficiary reward settings.\n\nMy immediate goals are:\n\n- Validate the observer account when it is entered in the popup configuration window.\n- Add some sort of polling status indicator and pause capability in the popup configuration window. \n- Start working on polling of threads where the observer account has participated.\n- Continue with improvements of existing capabilities.\n\n### Reflections\n\n#### Don't expect too much\n\nWhen @cmp2020 tried out the SCA installation instructions for me, it took him about 3 seconds to start coming up with suggestions for improvement.  So, be forewarned.  This is definitely an amateurish hobby project, and much improvement is still needed.\n\nIf I were starting over, there are already things that I know I would have designed differently (and still may, eventually).\n\nStill, I've been running it daily for a couple months now, so I know that it is useful, and it presents me with blockchain activity that I would not see, otherwise.  In the end, that's the bottom line.  The tool already has the capability to call human eyeballs back to the blockchain from the other sites where we spend our time.\n\nAlso, I happened to notice in comments that Steemit is updating their curation strategy to focus on rewarding organic conversation in the comments sections.  So, coincidentally, this extension arrives at a time when it can offer the browser operator a gateway into this growing curation space.\n\n#### Network speed\n\nThe network polling is currently maxed out at about 5 accounts per second.  This is tolerable, but slow.  Unfortunately, the limit is imposed by [Steemit's API rate limiting](/steem/@ety001/notice-steem-official-api-has-added-some-new-limit-rules), so there's not much I can do about it in short order.\n\nOne possible improvement that I intend to try, eventually, is to adjust the size of the <code>get_account_history</code> call dynamically, in order to take advantage of higher rate limits on other API endpoint devices.\n\nAnother eventual possibility is to split up the polling and make parallel use of multiple API endpoints.\n\n### Conclusion\n\nAnd so goes a milestone.  From concept to reality in about 2 months is not terrible, considering that I had time constraints, very limited experience with javascript and HTML, and 0 experience with CSS.  The amount of improvement that's still needed is daunting, but I'm satisfied with what has been achieved so far.  The tool already provides a view into the Steem blockchain that - as far as I know - is not easily available anywhere else.\n\nI invite anyone in the Steem ecosystem to download it and try it out, and I invite all developers to help me make it better.\n\n<i>Concordia res parvae crescunt</i> - Small things flourish by concord.\n\n<hr>\n\n<h5><div class=pull-left><i><b>Thank you for your time and attention.</b></i></div></h5>\n<h6><div class=pull-right> <b>As a general rule, I up-vote comments that demonstrate \"proof of reading\".</b></div><br><br></h6>\n\n<hr>\n\n<div class=pull-right><a href=\"https://steemit.com/@remlaps\"><img src=\"https://media.licdn.com/mpr/mpr/shrinknp_400_400/p/2/000/028/0bf/04cf437.jpg\"></a></div>\n<br>\n\n<h6>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.<br><br>\n\n<center>https://steemitimages.com/DQmWwM8dKvSHH9cqp2om3L8zU5iovAw4ZZeDvjMAc8DBwdE/image.png</center>\n\n---\n\n<div class=pull-right>\n\n[![image.png](https://cdn.steemitimages.com/DQmVc5QiSemwTgbZBBvWaDjzW3h3PbDhjLTcN3Vq2HeLA4K/image.png)](/promoted)\n<h6><sup>Pixabay license, <A HREF=\"https://pixabay.com/illustrations/statistics-diagram-graphic-bar-76197/\">source</A></sup></h6>\n\n</div>\n\n<div class=phishy><h4>Reminder</h4></div><br>\n\n<b><i>Visit the [/promoted](/promoted) page and [#burnsteem25](/created/burnsteem25) to support the inflation-fighters who are helping to enable decentralized regulation of Steem token supply growth.</i></b>","beneficiaries":[["null",2500]],"votes":{"cols":{"voter":0,"time":1,"percent":2,"weight":3,"rshares":4},"rows":[["kevinwong",1725205029,2800,689,2253239716],["gerber",1725205053,1600,286,1382462849],["ezzy",1725205053,1600,108634,551879983650],["xpilar",1725205086,1000,46172,255851935761],["exyle",1725205053,1600,702,3400724660],["remlaps",1725205860,10000,25232,233385668930],["cmp2020",1725205848,10000,28583,435618832990],["xiaohui",1725205179,631,22,154424582],["jeff-kubitz",1725226371,10000,10619,120609308719],["justyy",1725205167,431,621087,3954509517566],["remlaps1",1725205872,10000,70229,633446340820],["tangmo",1725587073,10000,9468,156200269585],["happyukgo",1725205176,631,74,527098301],["wagnertamanaha",1725251058,5000,4203,47941052453],["irawandedy",1725205134,8300,520948,2703381655482],["denmarkguy",1725205035,5000,37163,124192897040],["lisa.palmer",1725205788,10000,857,12927293839],["cub2",1725205776,10000,6536,98343936366],["astronomyizfun",1725205740,10000,571,8554297302],["roky",1725205230,431,7,43756972],["pennsif",1725554565,10000,412331,6488025824945],["robinlee",1725205185,1031,0,0],["rainyapril",1725205191,1031,0,0],["linux911",1725211932,10000,397,4410804201],["jorgevandeperre",1725205035,10000,43796,142031323182],["ir3k",1725221148,10000,35095,395818963221],["kikima",1725205197,1031,5,34867508],["geass",1725205182,1031,3,23042967],["karja",1725205050,1400,353798,1498168133509],["rpalmer13",1725205827,10000,2528,38182053706],["accelerator",1725205053,1600,4138,22108402360],["acactus1013",1725205173,631,390,2782237047],["rosatravels",1725205179,631,193,1380250826],["superbing",1725205173,631,21,152718497],["dailyfortune",1725205176,631,16,114484243],["dailystats",1725205176,631,20,140124437],["mauromar",1725212652,5000,23046,256577906017],["khaleelkazi",1725205053,1600,145,778369020],["globetrottergcc",1725205227,431,0,0],["jianan",1725205185,631,1131,8091175898],["daxiang",1725205185,1031,0,0],["norat23",1725233865,5000,9934,113023413621],["anxin",1725205194,631,8,53369956],["chriddi",1725252204,10000,540072,6498842871599],["jesusjacr",1725295533,10000,11425,145651540182],["mmmmkkkk311",1725205449,2500,32118,476895997152],["moobear",1725205182,1031,0,0],["nealmcspadden",1725205053,1600,2077,10046091867],["curx",1725205029,2800,73601,233867569123],["nean",1725205185,1031,0,0],["foodielifestyle",1725205185,631,3,23250885],["woolfe19861008",1725205185,631,9,58443770],["dailychina",1725205173,631,22,160575338],["vincenthan",1725205182,1031,0,0],["yuxuan",1725205185,631,144,1033669699],["dongfengman",1725205185,631,75,541358461],["serenazz",1725205182,631,2,19027656],["yedda",1725205185,1031,0,0],["zasilla",1725205185,1031,0,0],["ethanlee",1725205197,631,27,189631053],["twinsnicole",1725205191,1031,0,0],["deepthinking",1725205191,1031,0,0],["wilfredn",1725205230,431,315,2260558631],["fanso",1725205194,631,3,21605881],["atego",1725222648,10000,9399,106537850402],["sofian88",1725210510,10000,9184,95440100585],["lilypang22",1725205191,631,2,15137979],["lilyan",1725205200,1031,0,0],["moecki",1725211158,10000,340502,3664543688655],["marcoteixeira",1725355872,10000,3893,49878932903],["baymaxos",1725205197,1031,0,0],["httr4life",1725239703,10000,5752,65569018414],["soulsdetour",1725207921,10000,22251,213543388403],["zaria56",1725441237,10000,9394,140988582586],["weicomenew",1725205206,1031,0,0],["laiyuehta",1725205197,631,28,199817623],["turtlegraphics",1725205176,631,10,71374565],["lucacroce",1725205218,1031,0,0],["dlike",1725205053,600,13084,70443879300],["evelaurie",1725205218,1031,0,0],["eltonwright",1725205221,1031,0,0],["zorapolly",1725205221,1031,0,0],["yettawild",1725205221,1031,0,0],["bobarchibald",1725205221,1031,0,0],["annasandy",1725205221,1031,0,0],["wyh",1725205215,1031,0,0],["cmp2020-lite",1725205752,10000,69,1034470155],["remlaps-lite",1725205890,10000,27137,246804903573],["wangcheng002",1725205215,1031,0,0],["yuanweiru002",1725205215,1031,0,0],["wancheng001",1725205218,1031,0,0],["claraalbert",1725205218,1031,0,0],["yettareade",1725205218,1031,2,18653377],["witnesstools",1725205176,631,44,317291015],["ilovecoding",1725205176,631,40,285074404],["boya1",1725205227,431,0,0],["jmor",1725205812,10000,1090,16445651645],["steemfuckeos",1725205179,631,15,109222470],["michelangelo3",1725207192,10000,222820,2089658350427],["reflektor",1725205074,1000,161744,906473979620],["bippe",1725205074,1000,55769,285171581122],["ctime",1725206334,2500,52834,483811621301],["hingsten",1725205074,1000,61237,311310335805],["don-t",1725221667,3300,4095,46360959720],["steem.leo",1725205053,1600,158,841410058],["cplusplus",1725205179,631,40,283657197],["leo.voter",1725205053,1600,111,590912146],["justsoso",1725205179,631,4,32299941],["longhash",1725205197,631,3,23966818],["llfestyle",1725205200,1031,0,0],["axel-blaze",1725205053,1400,1894,9142344316],["im-ridd",1725205035,2800,354,1201413589],["maiydue",1725205209,1031,0,0],["wongshiylng",1725205209,1031,0,0],["deepcrypti8",1725205209,1031,0,0],["leodec",1725205206,1031,0,0],["sexybeach",1725205212,631,7,52595622],["suckmydick",1725205212,631,4,25265041],["chromebook",1725205212,631,5,34462350],["ericandryan",1725205212,631,51,363205377],["steemcurator01",1725648216,3900,7218812,170274108556129],["steemcurator03",1725205290,4000,1517388,15584728190135],["steemcurator09",1725418659,5000,742239,10290504085210],["meppij",1725205062,1400,1426,7425940742],["plato2005",1725205230,431,0,0],["justyy222",1725205212,631,15,108433577],["enchanter88",1725205215,631,87,620587693],["brodydung",1725205227,431,0,0],["blues529",1725205227,431,191,1368630829],["prashantkf",1725205230,431,0,0],["cruzamilcar63",1725258711,4000,15098,191955556178],["the-gorilla",1725210399,10000,229375,2332754723374],["haideremtiaz",1725205227,431,22,164965947],["zhengjuan7",1725205230,431,0,0],["arnav-ray",1725205227,431,0,0],["wwaitl",1725205230,431,0,0],["basky14",1725205227,431,0,0],["fajrulakmal99",1725208383,10000,4026,40093871174],["mrpenmind",1725205221,1031,1,3649890],["ubongudofot",1725207849,10000,10368,99221841102],["o1eh",1725207996,10000,195327,1911026751189],["lirvic",1725212946,2500,14891,166369703701],["boylikegirl.wit",1725204957,499,16102,77473580521],["wuland",1725278571,10000,169,2160327168],["jswit",1725205020,24,957,3100676110],["geosciman",1725205230,431,0,0],["cymolan",1725594999,10000,4712,77865569141],["hawkei",1725205227,431,0,0],["suntr",1725205074,1000,473432,2494824607500],["steemgoon.witnez",1725205200,1147,2869,20558150751],["misterajay",1725205032,3200,8677,28014251058],["chriary",1725252315,10000,2308,29294759512],["steemelectricals",1725347751,10000,16948,216684734284],["impersonal",1725205770,5000,3213,48216620782],["soulfuldreamer",1725219249,10000,24601,275905973124],["cur8",1725205044,1400,200717,702350246063],["fangwei",1725205227,631,19,132586528],["kangna",1725205224,631,53,384212428],["yeona",1725211152,10000,14154,147396205585],["dwiearisandi",1725263097,10000,121,1541606679],["philhughes",1725413925,10000,1341,17191720477]]}}}