ANN - BM-ActivityStream


SUBMITTED BY: Guest

DATE: Aug. 9, 2013, 1:27 a.m.

FORMAT: Text only

SIZE: 8.2 kB

HITS: 1111

  1. Overview
  2. BM-ActivityStream is an attempt to prove the concept of a social networking website run over BitMessage.
  3. It and a messaging client are accessed through a browser interface.
  4. The social network interface currently allows for users to post text and images to selected users that are following them, or a list of said users that has been previously setup for convenience or to a specially created chan either signed or anonymously which is the equivalent of a public post. Users can comment and like posts and comments that have been shared to them. Comments are threaded. As a default, no anonymously shared content is displayed unless it contains a hashtag that the user has defined that they are following.
  5. Screen shots (html image tags) at
  6. http://bitbin.it/bHXl8fNq
  7. and
  8. http://bitbin.it/ODyEwnJz
  9. The messaging interface allows uses to read, send, delete and organise messages into folders.
  10. It is based on an (mis)interpretation of activity streams as set out at http://activitystrea.ms
  11. Bitmessage is used to distribute updates to the addresses that the person posting has chosen. The updates don't link to the data but instead contain the data which is processed by the locally run website into it's database and displayed in a standardised way.
  12. BM-ActivityStream runs its own http server on port 8000. The PyBitmessage API provides access to bitmessage functions.
  13. Installation
  14. Default bitmessage client from http://bitmessage.org preferably a seperate instance running in portable mode so that if something goes wrong it doesn't affect the one you use normally.
  15. Needs to be configured to run with api activated see https://bitmessage.org/wiki/API_Reference
  16. You need to have an address setup to be used as the 'account' for activity streams which must have the label exactly BM-ActivityStream-User.
  17. You need to join the chan with address BM-2D9jPf5A38dBreFvHy3UAasANrxewm3XtN and password BM-ActivityStream-Chan-General and the label must be changed in the 'Your Identities' tab of the bitmessage client to be exactly BM-ActivityStream-Chan-General. It can't have [chan] in the label. Chans don't appear supported in the API yet so this is manual and seeing as you are doing this then you may as well do the account as well.
  18. Source code from http://bitbin.it/xvXYIKKA
  19. (Like pastebin. Put there because I know nothing about git at the moment and might get some BTC credits for the clicks)
  20. JRE and JDK 6 (1.6) or later from http://www.oracle.com/technetwork/java/javase/downloads/index.html
  21. hsqldb from http://hsqldb.org/
  22. httpcomponents client and core from https://hc.apache.org/
  23. javamail api from http://www.oracle.com/technetwork/java/javamail/index.html
  24. commons io from https://commons.apache.org/proper/commons-io/
  25. commons logging from https://commons.apache.org/proper/commons-logging/
  26. commons codec from https://commons.apache.org/proper/commons-codec/
  27. json-simple from https://code.google.com/p/json-simple/
  28. Once compiled and running it and bitmessage client with api enabled you have to point browser at http://localhost:8000/ and go into Settings->BM API Settings and set the API user and password because until you do you will get errors. By default using as a messaging client is turned off as messages from inbox in bitmessage are trashed when they are copied to the web site database. It can be turned on here. Sending messages can be done with this turned off.
  29. How it works
  30. Messages with a subject of [BM-ActivityStream] are sent from chan/user to user/chan. This subject line is used to identify the ones that are processable by the application. The messages contain xml documents which are processed to provide the content for the web site which runs locally.
  31. Currently messages are checked for whenever one of the options at the top of the screen are clicked.
  32. Activity Stream Usage
  33. In order for content to appear on the home page you have to be following addresses and/or hashtags.
  34. To follow an address go to followers->following and add the address to follow the posts of. Whenever the user of the address posts something to the public chan from their address it will appear on the home page. Whenever the user posts something directly to you it will appear on the home page. When you set an address as one you are following a message is sent to the address notifying them.
  35. To add a hash tag go to settings->hashtags and enter the text including the # into the input box and hit enter. The search for a hashtag is case sensitive and whoever is using it in a post has to ensure that it includes a space at the end. Hashtags cause content to appear on the home page when the address sending the message is not one that you are following. So if it is from a stranger who knows you are following a tag from comments on previous anonymous posts to the chan or a post from the chan containing a tag then it will be displayed.
  36. When you receive a follower notification the 'followers' at the top will turn red and the number received since the last time you clicked the option will be shown when you put you cursor over it. Clicking on it will show all the addresses that are following you that you have received notification of. You can give them labels, notes and add them to lists to organise them.
  37. There is three options when posting content from the home page. You can share with individual followers, share with the followers in lists that you select or share with the public chan (either under your account or anonymously). When sharing with lists you are really are sharing with individual users (a seperate message is sent to each). The lists just make it easier to organise. When sharing with multiple addresses or a list(s) the message that is sent out to each address will have a list of all of the other addresses that the content was sent to. This is so that when people comment or like something the information is shared with all the original recipients and POW is distributed.
  38. Whenever someone likes or comments on a post or comment your account made an alert is created and the 'alerts' at the top turns red. Holding your cursor over it will show how many alerts you have had since the last time you clicked it. Alerts are links to the original message that had the like or comment.
  39. Mail Client Usage
  40. There are three things that are not self explanatory. In order to send a message the address has to be first in the mail contacts. To add one click followers->mail contacts and put the address in the input box. It can be deleted after. Once there though it and multiple other addresses can be selected to send messages to.
  41. There is no spam filter, just a spam folder. You can add stuff to the folder for the future when/if a spam filter is implemented.
  42. You can't save messages to Drafts before sending. There is a folder but no option to do so.
  43. Known Issues
  44. This is not a production or anything like it application. It is pure Frankencode. I have no background in any of the technologies being used. If you think pointing this out without offering solutions will be of any benefit, then, where ever you are in the world you will be able to hear me laughing at you. Continued developement would depend on how much others think something like this would add benefit to the bitmessage ecosystem. Apart from the mail client issues there is:
  45. No real attempt at security.
  46. No validation on inputs from forms.
  47. Nothing is thread safe.
  48. No attempt at cross browser compatability.
  49. Potential Improvements
  50. Add additional applications like events/calendar, polls, the ability to bookmark posts, groups when the api allows through either invitation only or public chans, a button in news to share other file types, a button in news to delete posts, an option in news to dislike posts or comments (because it doesn't have to a be sunshine, lollipops and rainbows everywhere kind of place on here). The ability to play turn based games would be good but I have know idea how this could practically be achieved.

comments powered by Disqus