-
Notifications
You must be signed in to change notification settings - Fork 67
[WIP] Data-structures tutorial (closes #57) #59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
example in JS.This comment was generated by todo based on a
|
I've read through the markdown files and I don't have more to say than: great work! |
Addresses issue #57 |
I'd love to discuss this in more detail with you when you're back, @mikeal, but here are some first impressions and questions after a quick read-through of the current draft of this workshop, shared in the interest of making this content as beginner-friendly as possible:
Happy to answer any questions about my questions when you're back. |
Just spotted your convo with Paul about decentralized data structures and there may be some language there that we could pull in as well: https://twitter.com/pfrazee/status/1054431271986913280 |
Note that due to a change I'm making elsewhere, we'll need to update the last lesson in your series (once we know which that is) as follows to ensure it links to the workshop list instead of a non-existent subsequent lesson:
|
@mikeal How would you like to approach finishing up this lesson? Do you want to hop on a call and chat through the first impressions I've shared here? |
With a revision I'm making today in PR #83, you'll no longer have to add |
Pushed some new stuff. Responses to your earlier points:
|
- Resolving merge conflicts to get the data structures lesson into the new site format
- Pulling in latest update removing dummy chapters
- Refactor lessons / components / routes included in tutorial - Add more pages to better section the content - Pass lesson titles to Lesson.vue - Add content on traditional location-based addressing
- Add a new section that appears when no exercise is present and use it to display a conditional button that shows "Next" or "More Tutorials" depending whether it's the last lesson in the tutorial. - TODO: Fix page formatting so button is aligned with right edge of text
- Center content to match rest of site - Put the question link in a new footer - Other layout tweaks
- Move `issueUrl` from `data` to `computed` in `Lesson.vue` and make it return a string with spaces instead of dashes (Eg "Data structures") - This also fixes the titles of issues opened by clicking the question link in the footer
- Update data structures tutorial to be more beginner-friendly
- Fix a typo that was making the submit button invisible
@mikeal I've gone through and reworked the existing lesson structure and content to something that feels more beginner-friendly to me. Could you please take a look to make sure I haven't introduced any inaccuracies? We had discussed the possibility of adding a final lesson introducing IPFS and IPLD, but I think you should be the one to do the first stab at that if we want to add it. I feel like the linking stuff is clear now, and it's obvious what content addressing has to do with the distributed web, but it's not super obvious why we're talking about merkle trees and DAGs. If you have ideas for fixing that, let me know! There's not currently much of a conclusion here, but that's in part due to my finding the last section the least easy to explain the importance of in this context. I'm comfortable merging this tutorial now, but after the holidays I'd like to ask the non-developers in the company to read through this whole tutorial and tell me what's confusing. I did my best to keep the language accessible to non-programmers. |
- Add customized nav to lesson component. This special one loads if the current path isn't one of the ones in the nav bar (not a long term solution) but currently accurate for judging that it is a lesson page - New nav shows breadcrumb-style access to home and tutorials and displays workhopShortname
- If there's no exercise, the next or more tutorials buttons will mark the lesson complete
@mikeal This PR to finish off milestone 1.0 is awaiting your approval. I'd appreciate you checking to ensure I haven't introduced any inaccuracies while trying to simplify the content of the new tutorial. Thanks! |
This also now closes #107 |
src/lessons/Data-Structures/01.md
Outdated
or on disc. But in a decentralized system you have less, or possibly zero, trust among peers. | ||
|
||
Also, large data structures need to be able to be spread out among peers and <strong>linked together</strong> | ||
in order to be decentralized. In the same way that any web page on the web can link to another web page |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can just say "any web page," "any web page on the web" is a bit redundant.
src/lessons/Data-Structures/03.md
Outdated
of those two photos is identical. | ||
|
||
<strong>Cryptographic hashes are also unique</strong>. That means that if Jess uses Photoshop to remove a | ||
single whisker from that kitty, the udpated image will have a new hash, and it will |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
single whisker from that kitty, the udpated image will have a new hash, and it will | |
single whisker from that kitty, the updated image will have a new hash, and it will |
src/lessons/Data-Structures/03.md
Outdated
access to that image. | ||
|
||
The decentralized web works differently. When we want a specific photo of an adorable pet, we ask for it | ||
by its content address (hash). Who do we ask? The whole network! If Kyle is online, we'll see that he has |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At this point I completely had forgotten about Jess and Kyle and had to scroll up to remember.
src/lessons/Data-Structures/04.md
Outdated
A `CID` is a single identifier that contains a cryptographic hash **and** | ||
information about how to interpret that data called a "codec." (Codecs encode, | ||
decode, compress, and decompress data in certain formats. You use them every time | ||
you stream a YouTube video of an adorable beagle.) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Video codecs, like those on YouTube, are a different beast, so I'd leave this out.
In fact, we already have be aware of video codecs when encoding files in IPFS, just at a different layer (chunking).
src/lessons/Data-Structures/04.md
Outdated
giraffes. The possiblities are endless!) All the way down this tree we | ||
have cryptographic hashes that allow us to distribute and link the data. | ||
|
||
Why is important to link between different data structures? Every day on the centralized web, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is important to link between different data structures? Every day on the centralized web, | |
Why is it important to link between different data structures? Every day on the centralized web, |
This is great! I'd say that the changes you made have made this tutorial 8-13x better than the original :) I've added a bunch of small comments in-line as well as a few suggestions. |
- Address typos - Change HTML to markdown formatting - Remove reference to compression/decompression and videos in explanation of codecs
- Edit character names in decentralized data structures tutorial
This is not finished but feedback is welcome.