Skip to content
This repository has been archived by the owner on Jun 17, 2020. It is now read-only.

Walkthrough video of the nthCaller game #994

Open
JoshOrndorff opened this issue Oct 5, 2018 · 38 comments
Open

Walkthrough video of the nthCaller game #994

JoshOrndorff opened this issue Oct 5, 2018 · 38 comments
Assignees
Labels
developer-education guide: @JoshyOrndorff cf. #692 Sep 29

Comments

@JoshOrndorff
Copy link

JoshOrndorff commented Oct 5, 2018

Benefit to RChain

Learners who prefer video tutorials over reading text will have a practical hands-on way to start developing dapps on the platform. Video-makers completing the tutorial will also become more skilled rholang developers and more valuable in the ecosystem.

Budget and Objective

Create a tutorial video that takes a new learner through setting up their developer environment, installing npm, writing the code, testing along the way, making incremental progress, and ending at the desired product. Target either linux or osx and point out when things may be different between the two.

The person or people doing the teaching should expect to run through the tutorial 4 or more times throughout the process to get fully comfortable with it and record a few takes.

The video should be in a style similar to https://www.youtube.com/watch?v=Oive66jrwBs https://www.youtube.com/watch?v=gnsO8-xJ8rs . The production value need not be quite as professional, but should be clear and not at all distracting.

Good check-in points are after the first install, after the rough draft video and at the end.

Estimated Budget of Task: $2500
Estimated Timeline Required to Complete the Task: 2-3 weeks
How will we measure completion? 15-30 min video revised draft submitted to youtube and publicized on discord

Legal

Task Submitter shall not submit Tasks that will involve RHOC being transacted in any manner that (i) jeopardizes RHOC’s status as a software access token or other relevant and applicable description of the RHOC as an “asset”—not a security— or (2) violates, in any manner, applicable U.S. Securities laws.

@JoshOrndorff JoshOrndorff added the developer-education guide: @JoshyOrndorff cf. #692 Sep 29 label Oct 5, 2018
@David405
Copy link

David405 commented Oct 5, 2018

@JoshOrndorff do you intend to work on this yourself or is it open to someone else?

@JoshOrndorff
Copy link
Author

It's open. I'm on SOW, so if I propose it, it's for you guys to grab. I will help and give feedback along the way as well as do the check-ins I mentioned. Looking forward to seeing the results.

@Valentine-Mario
Copy link

To create a this kind of video, an elaborate transcript needs to be created. I can also assist in doing that.

@JoshOrndorff
Copy link
Author

I agree with @Valentine-Mario. I'd say build the dApp once or twice first (preferably as a team) then write a script. Once that's ready, build it again following the scirpt and recording. Finally build it one last time to re-take any rough spots in the original recording.

@owans
Copy link

owans commented Oct 5, 2018

I would like to contribute, possibly in building of the transcript.

@motionfactory-digital
Copy link

motionfactory-digital commented Oct 8, 2018

@David405 Once the "screen recording" is done please send to me and @JoshOrndorff to check
@Valentine-Mario if you develop a script, please send to @JoshOrndorff and myself to proof read and try to ensure it lines up with what @David405 may record etc. Thereafter ill do the overall production / Voice over and branding etc etc

@JoshOrndorff
Copy link
Author

Just to clarify, a script should be written before a video is recorded. I recommend the following process.

  1. Build the project once to get familiar
  2. Build the project again while writing the script
  3. Revise the script with my feedback
  4. Build again while recording
  5. Reshoot necessary parts with my feedback.

@Valentine-Mario
Copy link

The script is ready. I followed the steps u suggested by building and getting familiar with it while writing the script.

@JoshOrndorff
Copy link
Author

So where is the script?

@Valentine-Mario
Copy link

I've sent it over to @David405

@JoshOrndorff
Copy link
Author

Please post it here so we can all give feedback.

@Valentine-Mario
Copy link

Valentine-Mario commented Oct 9, 2018

The doc can be found here

@Ojimadu
Copy link
Contributor

Ojimadu commented Oct 9, 2018

@Valentine-Mario and others, I reviewed the document and made some edits as suggestion please go through them and accept, reject or discuss.

@Valentine-Mario
Copy link

I've gone through them @Ojimadu thanks

@motionfactory-digital
Copy link

@JoshOrndorff please read and approve / or edit the script and let me know when you are satisfied?

@JoshOrndorff
Copy link
Author

Thank you for posting the script. I'm excited that we're rolling here! However, I don't have permissions to edit or suggest changes on that doc. Here is my feedback on the first few paragraphs. It should give you a sense of the updates to be made throughout the document.

The opening sentence should be welcoming and explain the exciting things the user can look forward to learning/experiencing during the video. How about something like "Over the next 30 minutes we'll learn how to create a full-stack decentralized application or "dApp" on the RChain platform and deploy it to our own personal testnet." Then you can mention the tools that will be used and show them where they can download and install those tools. It's up to you whether you actually show the process of installing npm, but you need to show how to install RNode, rchain-api, etc because it isn't trivial or documented elsewhere. You might want to say, "If you already have RNode installed skip ahead to 4:35 (or whatever it ends up being).

The second paragraph is pretty good! The game should be demonstrated on screen while reading that paragraph. It may be helpful to actually note in the script (maybe a different color or bold or something) what you're expecting on the screen while reading the script.

You're off to a good start, and I look forward to a few iterations and recording.

Please don't reply by merely saying I have suggest access now. I do need suggest access, but I've also given actionable feedback that is applicable more generally than the first paragraph. Please revise and then I'll give feedback again. Can @jeremybeal11 or someone else with some editorial skills also help revise the copy?

@Valentine-Mario
Copy link

Valentine-Mario commented Oct 10, 2018

Thanks for the feedback. I've added the extra items you suggested which includes installing rnode on linux and you can now add comments to the doc

@motionfactory-digital
Copy link

Right - where are we with this @Valentine-Mario @David405 @JoshOrndorff ?

@JoshOrndorff
Copy link
Author

JoshOrndorff commented Oct 15, 2018

I've made a lot of suggestions on the script. We've still got some writing work to do before this can go to production. Remember the video isn't just someone reading what I wrote in the readme. This should actually show the learner how to build the project. You need to be coding in real-time. We're nearly two weeks into this project that I budgeted 2-3 weeks for. Can anyone help Valentine with this transcript? Who plans to make the recordings? Have you gone through a build or two yet? @David405 @owans

@jimscarver You were asking me what colab could work on. Could you help advise this team on how to write higher quality materials. @ddayan Anything to add?

I really want the bounty system to work and I've argued long and hard with the marketing team that it can work. But we need high quality work. This is your chance to show that you can do good work through the bounty system.

@jeremybeal11
Copy link

i just saw this. I'm in the the now making some edits and suggestions. To everyone involved, can we get this doc done so @JoshOrndorff can finalize it by EOD?

@David405
Copy link

David405 commented Oct 16, 2018

I am done with the video, @sypha999 did the editing, here is the video https://www.youtube.com/watch?v=rEKheMLlNHo&feature=youtu.be, please everyone should watch and give feedback so changes can be made if necessary.

By the way, it is difficult to do a walkthrough tutorial in 15-30 mins, except I wont have to explain the concepts on the way which will defeat the purpose of a tutorial

@motionfactory-digital
Copy link

motionfactory-digital commented Oct 16, 2018

great work @David405 , - @JoshOrndorff what do you feel about this?

@motionfactory-digital
Copy link

@JoshOrndorff should this be sufficiant - ill proceed to complete the editing etc as per me suggestions to you - keep me posted -

@JoshOrndorff
Copy link
Author

👏 @David405 This is overall a wonderful video. Great work! I think @Cryptovideos will be able to cut out silences and maybe just speed the whole thing up 10% or something. I agree that it isn't realistic to have this be 15min. But let's aim to get it under 1 hour at least. Then we can promote is as "Write a Full Stack RChain dApp in Under an Hour".

I do have some detailed feedback and improvement suggestions. Some of them are more important than others. Please let me know what help I can provide moving forward.

  • I love that you introduced colab and whatnot at the beginning. I suggest having all the links you mention available on the screen and in the show notes.
  • We can cut out redundant transition sentences like "Let's move over to what we're gonna learn"
  • Why 0.6.3 when 0.6.4 has been out for a month?
  • One HUGE thing that's missing is showing the user what they're building before you start building
  • rchain API now lives at rchain/RChain-API rather than JoshOrndorff/RChain-API
  • @cryptovideos, can you cut out things like the minor misspelling at 9:00 so it flows better? If not it's fine.
  • 10:25 Might emphasize that each game that gets created will have its own counthCh and rather than calling it the "default count" call it the "starting count"
  • 12:30 writing the new count is not fully indented
  • You've used cryptofex without mentioning it before or saying where to get it.
  • It's good that you've explained there are multiple ways to get a keypair, but please_lead_ with you should never share private keys, but for now we can.
  • Tip for future: When writing your integration test, it might be nice to show the code you're testing side by side
  • 27:00 You've just written a sizeable HTML file. You should show what it looks like in the browser, and note that the buttons don't do anything yet. Then you can say, "So let's go add some functionality in javascript"
  • 32:12 another great time to show what you've done so far. This is my biggest advice. Regularly check on what you've written to make sure it does what you think, and show the learner what they have accomplished.
  • around 33:00 it starts getting pretty confusing because you're calling a REST API that you haven't mentioned or written yet. It may help to show a figure similar to https://joshorndorff.github.io/SFBlockchainWeek-Presentation/#/step-12 at the beginning And it may also be nice to build up the middleware before the UI. That's up to you, but we just need to keep the user oriented.
  • Around 41:00 to 41:30 why are the ternary operators split across two lines? Like shouldn't lines 9 and 10 be a single line?
  • 50:00 Awesome job finding that mistake and making the learner feel like it's okay to make mistakes. This is a great aspect of the video. @cryptovideos, maybe put a notice on screen when he first made that mistake to help learners not also make it.
  • 51:45 Relying on the public infrastructure is beyond the scope here. This project needs to work on a local node. I would be happy to show how you can be a validator on your own local standalone node.
  • Did you ever explain what Date().valueOf() does?
  • Can you recommend a link to "learn more about promises" for people who don't fully understand them?
  • 1:12 You could use more explanation of what blockResults looks like. Can you show that (or at least say) that it's an Array of blocks, and explain what .slice(-1).pop() does? And then explain that the data in the block is also an Array so we use the same trick to grab the last one. Maybe mention that one could also loop through if they wanted to.

@motionfactory-digital
Copy link

@sypha999 @David405 please sort out the above and submit the new version for consideration for us to proceed

@JoshOrndorff
Copy link
Author

@Cryptovideos Some of those bullets are questions for you.

Can you put a notice when a typo first occurred?
Can you make cuts at the 9:00 minute mark?

@David405 What are your preliminary thoughts on fixing some of those things. The code definitely runs on 0.6.4, so maybe you can just say you used that version.

To help prioritize, the most important issues are:

  • Show what you're building before you start.
  • Show what you've built so far as you go
  • Don't require ssh access to rhobot.net.

@sypha999
Copy link

@JoshOrndorff I have made the corrections you pointed out in the bullets and sent to @David405

@JoshOrndorff
Copy link
Author

@sypha999 You mean you re-recorded some content? Did you use a newer node? Looking forward to seeing something.

@David405
Copy link

@JoshOrndorff changing the node version in the video would not be that easy since it will require redoing so many parts

@motionfactory-digital
Copy link

The end product needs to meet the requirements set about by the issue created or it is pointless. i suggest you create the video / record the new parts etc as per @JoshOrndorff suggestions

@sypha999
Copy link

https://youtu.be/LYkEB-TPGFo

@JoshOrndorff thats the link to the end product. We stuck to 0.6.3 for compatibility reasons. @David405 actually said he made those errors purposely because they were common errors. And I believe pointing it out during the video beats the purpose of the errors. I cut out all irrelevant point ti reduce the video length too.

@JoshOrndorff
Copy link
Author

JoshOrndorff commented Oct 24, 2018

Okay, thank you @sypha999. I think the video adds a decent amount of the planned value. Good point about making the common mistakes in the video. I do think we should show how to start a node that runs casper though. Not everyone will be able to deploy javascript code to colab.

Let's leave this open until Friday October 26th to see if anyone else wants to add value by adding demos updating node version, or speeding it up a bit. Otherwise we'll close this one and spin off a new issue to update both the project and the video to node 0.7

@JoshOrndorff
Copy link
Author

I love the debugging David does around the 42-43 minute mark. That's great. I just wish we had instructions to starting a standalone node that will work here. You just need to make sure that you specify a private key from your .rnode/genesis directory.

rnode run --standalone --no-upnp --validator-private-key <whatever>

@David405
Copy link

David405 commented Oct 24, 2018

@JoshOrndorff I actually did try updating the version to 0.6.4 but kept having different errors on each occasion so I had to leave that out.

As regarding a working standalone node instance, I really can't explain why I keep getting an invalid unslashable block error when I added the public key of my validator private key to my bonds.txt file.

I did the video in short clips and I had to redo each clip an average of two/three times to eliminate errors/mistakes so as to get the best possible outcome (This explains why making an update takes a while), each error that occurred in the video was intentionally added so the video feels more natural and also guide end users on how to debug similar errors.

As regarding the speed, I use Brad Traversy videos a lot in learning several technologies since I like his teaching style (I believe you also want this video to have a similar style), @sypha999 actually did increase the speed of the video to x1.5 but I didn't want it to be so fast that end users will find it hard to follow, like Brad does, I wanted end users to be able to write their own code alongside me rather than pausing to type their code.

@David405
Copy link

David405 commented Nov 1, 2018

@JoshOrndorff I added instructions on starting a standalone node that works, check it out https://youtu.be/-9UY5J216cI

I believe this is done.

@JoshOrndorff
Copy link
Author

@David405 That's really wonderful and makes a big difference in the value of this video. Could you please link to the part of the video where that is discussed?

@David405
Copy link

David405 commented Nov 1, 2018

You can see this at https://youtu.be/-9UY5J216cI?t=3979

@David405
Copy link

David405 commented Nov 5, 2018

@JoshOrndorff I believe this is now complete, can you kindly vote on it and possibly @dckc also?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
developer-education guide: @JoshyOrndorff cf. #692 Sep 29
Projects
None yet
Development

No branches or pull requests

8 participants