ProtoSchool / protoschool.github.io

The code that runs the ProtoSchool website. Visit https://proto.school for interactive tutorials on decentralized web protocols. Explore IPFS and Filecoin through code challenges, code-free lessons, and local events.
https://proto.school
Other
165 stars 67 forks source link

ProtoSchool class for RON project #249

Open canadaduane opened 5 years ago

canadaduane commented 5 years ago

I'd love to see some course content on Replicable Object Notation, i.e. https://github.com/gritzko/ron-cxx and https://replicated.cc.

While IPFS is clearly a "keystone" in the peer web, and deserves its place as the first course in ProtoSchool, think CRDTs are even more fundamental to many cooperative systems and I'd like to understand better how to use this powerful abstraction that Protocollabs is sponsoring (i.e. RON).

I'm influenced by ideas like Local-first Software and Distributed Systems and the End of the API. Conversations at the Internet Identity Workshop around "peer-to-peer decentralized identiity" are also motivational.

Some potential course material:

  1. What are CRDTs and how do they relate to distributed systems?
  2. What is RON and why do we need a new notation?
  3. How do you use the "swarmdb" CLI built in to ron-cxx? Sample scenarios and example data.
  4. Let's build a siimple sample application (distributed chat, collaborative doc editor, etc.)

cf. https://twitter.com/NukeManDan/status/1127403350759075841

nuke-web3 commented 5 years ago

@canadaduane - do you think you could take a stab at adding this content? Or are you asking for support in generating a tutorial? Here is the how to :pray:

canadaduane commented 5 years ago

I'd love to help, but I have a few high level questions first:

  1. I can make a "best effort" guess at how to do things with RON, but I am a complete outsider looking in. Is there somewhere that I can go for help and Q&A while building this?

  2. Are there any other potential collaborators I should know about? The content will be short, and probably very me-specific if I don't have anyone else to consider.

  3. AFAIK the Javascript RON was built about a year ago and is no longer maintained. Is there a JS lib available that is more up to date?

  4. How does @gritzko feel about a ProtoSchool course on RON and is he interested in being the consultant sage?

gritzko commented 5 years ago

I can make a "best effort" guess at how to do things with RON, but I am a complete outsider looking in. Is there somewhere that I can go for help and Q&A while building this?

You may create issues in the ron-cxx repo or you may join http://t.me/swarmsync.

AFAIK the Javascript RON was built about a year ago and is no longer maintained. Is there a JS lib available that is more up to date?

RON 2.1 is not available in JS (yet). The plan is to have a webasm engine with a JS interface. Another opportunity is to update the JS impl. Although, the existing JS version is not for production use. It uses JS strings for metadata, so inefficient. The third potential opportunity is to make a binary-based implementation in JS (TypedArrays).

How does @gritzko feel about a ProtoSchool course on RON and is he interested in being the consultant sage?

In half a year maybe? The current goal is to consolidate all docs at http://replicated.cc.

canadaduane commented 5 years ago

Ok, good to know. Thanks @gritzko. I propose waiting a few months then, when the project is a bit more established. For now, I'll work on contributions to the replicated.cc site if I see areas for potential improvement.

terichadbourne commented 5 years ago

Just transferred this over to the appropriate repo for new tutorial suggestions so we can circle back when you’re ready to discuss further.