Giter Club home page Giter Club logo

tomeshnet / p2p-internet-workshop Goto Github PK

View Code? Open in Web Editor NEW
99.0 99.0 17.0 33.39 MB

Building the Peer-to-Peer Internet workshop series

Home Page: https://tomeshnet.github.io/p2p-internet-workshop/

License: Creative Commons Attribution Share Alike 4.0 International

Shell 0.48% CSS 13.13% Ruby 0.59% HTML 4.49% JavaScript 81.32%
education internet mesh-networks p2p participants peer peer-internet raspberry-pi toronto workshop workshop-materials workshop-series

p2p-internet-workshop's People

Contributors

benhylau avatar darkdrgn2k avatar dcwalk avatar dependabot[bot] avatar shrinks99 avatar uditvira avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

p2p-internet-workshop's Issues

Re-Style Course Website

The course website currently does not match the style of the new slides (#44). This issue tracks the switch over to a new theme that will match the slides and provide a better overall user experience.

  • Typographical system in-line with presentation theme
  • Colours in line with presentation theme
  • New, better emphasized course download button

Review Articles for use in Modules

From the original planning cryptpad, additional resources in #reading-networks:tomesh.net:

Internet Infrastructure & Digital Justice

Building a Better Internet

Mesh Networks of the World - Local Efforts, Internationalist Collaborations

Integrate new Remark presentations into build.sh

Decktape is used to convert the Remark slideshows into PDFs that can be packaged (#41) and also integrated into the website placed into the handouts folder so they can be distributed to students.

The command for Decktape is decktape remark file/path/name.html file/path/name.pdf --chrome-arg=--allow-file-access-from-files.

Curriculum collaborations

Collaboration Opportunities

Organization Toronto Mesh contact Status
Toronto Public Library @benhylau @dcwalk @darkdrgn2k Completed pilot, interested in next iteration
Florida Polytechnic @Shrinks99 @darkdrgn2k @benhylau Agreement to collaborate, shipped some parts to Florida and got the group set up to facilitate module-1
Guifi.net @benhylau Completed module-1 facilitation + helped translate worksheet to es, discuss future opportunities
Palo Alto Library @benhylau Introduction via Wendy (Internet Archive), had a first call
NYU Abu Dhabi @benhylau Discussed with Michael about using syllabus at the university during Radical Networks 2018

Toronto Mesh Capacities

Name Status
@benhylau Available
@darkdrgn2k Available
@makeworld-the-better-one Interested
@turco32 Interested

@benhylau suggests we do some internal facilitation early November so people interested can start taking on more responsibilities if they want.

Add past iterations of the workshop to course website

Toronto Public Library in Toronto:

Decentralized Web Summit in San Francisco (module-1):

eXO.cat in Barcelona (module-1):

NUUG and Hackeriet in Oslo (module-1):

Radical Networks in Berlin (module-1):


Some of these links may go dead over time. Not sure how to handle.

Goodbye GitBook!

Officially get rid of GitBook. This issue is completed once all slides and assets are packaged and on the website with Remark.

  • Ensure all modules have been converted to Remark slideshows and that GitBook is no longer needed for presentations.
  • Remove gitbook-cli from install-dependencies.sh
  • Remove GitBook from readme.md
  • Remove GitBook from build.sh

Hardware budget

One of the main difficulty in having other groups facilitate this workshop is hardware requirements:

With the IPFS Research grant, we can have some hardware budget, and I propose to have two pools:

CAD 1700 to stock currently-working devices

Item Units Cost (CAD) Total (CAD) Use
Raspberry Pi 3B+ with power 6 70 420 Shared resource for local facilitators
Toplinkst TOP-S5 + accessories (pigtails, antennas, USB header) 60 11 660 Shared resource and give/sell to collaborators
Samsung Evo Plus 32 GB 24 11 264 Shared resource and pre-image SDs to give/sell to collaborators if needed
LoRa hardware 20 15 300 Shared resource and give/sell to collaborators who run Module 6

Edited (25 Sep 2018): Added link to buy USB headers for wireless adapters.

According to this article the Samsung Evo Plus 32 GB seems like a good choice for write performance since we are likely going to be swapping a lot on the disk. The option with the case for $0.01 is also useful for labelling purposes.

CAD 300 to explore new devices

There are other radios that are interesting and it'd be great to have a budget to purchase some to explore. Current vendors we have a relationship with are Toplinkst, Dragino, and newly Alfa. The TOP-S5 satisfies most of our requirements (i.e. dual-band, 802.11s, external antennas, Linux drivers, cost) but there are still attributes that can be improved (e.g. range, stability, speeds, packaging, global availability, etc.) and it would be nice to not be completely dependent on one model.

We should also use this budget to explore the class of SBCs that:

  • Cost < CAD 15 (that's where it makes sense to start stocking them, sending out samples, sell in bulk for an entire class)
  • CPU processing power comparable to a Raspberry Pi 3B
  • RAM above 1 GB, even better if 2 GB
  • On-board WiFi we can configure as AP
  • e.g. Orange Pi Zero, NanoPi NEO (but these boards are currently 512 MB RAM and may not have on-board WiFi)

Investigate Markdown --> PDF Slide Tools

GitBook is a great content serving tool but not such a great presentation tool. In order to deliver the best experience for both instructors and students we should ideally deliver our slides in a presentation friendly format.

Currently everything is written as markdown files and we would like to keep it that way. Markdown is just text and makes everything very flexible and open in ways that dedicated presentation software (Keynote, Powerpoint, etc.) is not. Presentations should ideally be written as markdown files and output as a multi-page PDF presentation, each page being one slide.

So far I have been real impressed with Remark and Backslide for the PDF conversion. I think with a little formatting (in the same style as the website) we will be able to create nice engaging slide decks!

Host Fonts Locally

Fonts are not hosted locally for the markdown to PDF conversion or Remark. This should really be done to allow everything to be built without internet access.

Add ssb + patch* as activity to Module 1

Use ssb social network UX as default activity for Module 1. Move ipfs activity to a secondary option. Deliverables include:

  • ssb Dockerfile and tar archive so it can be loaded locally without Internet (like current ipfs docker archive)
  • Worksheet that starts at sbot cli interactions on rpi, then participants form a local area social network (discovery over LAN ideally avoiding key exchange)
  • Instructions to prepare this workshop with mesh-orange img

Node gets brought up with missing configurations and files

Node starts up without completing all configurations in the conf.d. Observations during workshops:

  • ipfs.tar EOF (missing half the file size) and ssb.tar is just missing
  • www/bunny.mp4 is missing (because it's the last one to copy over)
  • node comes up with test2 as AP (this has happened for a long time)

Upon node restart, these problems may just go away, definitely timing related. We started piling large files like ssb.tar and bunny.mp4 only recently, and observed this more ge

I assume it is during 35-copy-home.sh that this happens.

Package course material for distribution

Course material should be packaged into a .zip and .tgz for distribution to presenters.

Each Module Contains:

  • A presentation to give and the associated files
  • A handouts folder containing printed documents to give to the class
  • Presenter instructions

All applicable written / visual material should be presented as a Remark HTML presentation.
Presenters should not be required to interface with anything used to build those resources!

Software resources should be packaged into separate .zip and .tgz files.

License

No idea why we forgot to stick a license on this.

I think Attribution-ShareAlike 4.0 International is appropriate here?

If we end up moving software to this repository, we can license that under GNU General Public License v3.0 as with other Toronto Mesh software?

Website GitBook Integration

Content

The workshop material formatted nicely for GitBook. This is not meant as a presentation tool, just an online resource to allow students and instructors to view the course material.

Design

Hopefully we can create a nice theme for the GitBook that is in line with that of the homepage.

Convert all workshop slides over to Remark presentations

Conversion tracking of presentation slides from GitBook to the Remark format as outlined in #44. Ideally we freeze all content for modules that are checked off here on the main branch? It doesn't have to be done but would make my life easier. Work will be started with Module 1 and once the build process is fully finished everything else will be handled.

  • Module 1
  • Module 2
  • Module 3
  • Module 4
  • Module 5
  • Module 6

Create Handout with equipment for mesh nodes

This feedback came up at the install night Mar 22 and workshop run through briefly Apr 5!
Would also be good to list places where they can buy locally (Creatron! Online):

@benhylau can you clarify my ambiquity?
I can draft this for Tuesday.

Investigate ssb clients and how they interact with sbot

  • Over plain http, https, or websocket?
  • Does an "app" need to be installed on client?
  • How to pass identities?
  • How to share a sbot instance among multiple identities?
  • How do invites work with IPs over LAN? How about a cjdns address?
  • Do nodes run a pub?
  • How does LAN discovery work?

Website Homepage

Content

  • Download link for the course material (both software and instructional material, see #41 )
  • Summary of the course and what is generally covered in it
  • Link section for Toronto Mesh and related websites
  • Link to the course Github if people wish to adapt or contribute to the workshop

2018 IPFS Research grant

@benhylau just received the IPFS Research grant we submitted to fund some workshop work for the remainder of 2018 ๐ŸŽ†

Sep 17, 2018  Payment fee -$17.00
Sep 17, 2018  Incoming wire payment $6,268.27

The scope for this grant is the following, which is not overlapping with our earlier SSBC grant:

  • Remaining work to package workshop for non-technical facilitator that is outside of SSBC grant scope
  • Making hardware easily accessible (e.g. support cheaper/readily available hardware, investigate selling as package on Tindie, etc.)
  • Curriculum collaborations with other third-parties (e.g. follow up with a couple organizations who has gotten in touch to collaborate on integrating components of this into their curriculum)

I also had to submit a W-8BEN form which basically means PL does not need to withhold taxes, but I am personally liable for filing and paying taxes on this money to the Canadian government. So I imagine the grant money to be split into:

Use Amount (CAD)
Taxes x
Hardware y
Salary z
Total 6,251.27

x and y will be held in CAD, and if we use the exact same process as ssbc-grants-scuttlemesh, z will need to be converted to Ethereum. I am a little uncomfortable converting grant money from CAD into a volatile asset even though I really like the simplicity and transparency of how we are disbursing the SSBC grant. Active contributors to this repository should consense on these items.

Update pdf.css with new workshop style

pdf.css should be brought in line with the new workshop style.

  • New typography
  • Update a mesh graphics used in PDFs
  • New style for in-line and blocks of code

All content is intended for printing in black and white but colour can still be used here and there as long as enough contrast is provided.

Temporary steps to get hardware set up

  1. Follow:
    https://github.com/benhylau/ssbc-grants-scuttlemesh/blob/master/project/README.md#setting-up-mesh-orange

  2. Get IPFS docker from here instead:
    https://deprecated.systems/static/tomeshnet-ipfs-0.1.tar

  3. Go through this to familiarize with general Linux networking tools:
    https://github.com/benhylau/mesh-workshop#what-does-it-do

  4. Go through this worksheet with two Raspberry Pis

* If you do not have compatible adapters you can use an ethernet cable and modify steps accordingly.

Module Modularization

As discussed in our first workshop call we are ditching the fixed six-week structure of the workshop allowing for new modules to be created without the constraints that a fixed length of time creates.

Each module should be:

  • Independent of other modules in its function & instructional content
  • Ordered based on difficulty level

As the difficulty levels increase it is not unreasonable to expect people to have some prior knowledge about parts of the topics discussed.

This issue will probably be updated later for tracking and with additional steps to complete

Hardware availability

Having a Hardware Budget allows us to stock devices that are difficult / costly to purchase in small quantities. For example, the Toplinkst adapter is a direct purchase from manufacturer usually in 30+ pcs. We also had to solder USB headers on them.

Once we have the workshop content well organized, and website ready, I think we should start getting in touch with groups that indicated interest in facilitation / curriculum integration, and ship them packages (ready adapters + pre-loaded SD cards, tested) that can get them started with a couple nodes. In parallel we can explore:

  • Taking payments from these organizations to:

    • Cover baseline cost (so our hardware stock does not run out)
    • As contributions to purchase additional hardware for future collaborations
  • How to advise larger quantity purchases, if a partner wants to purchase many WiFi adapters for example

  • Start looking into whether Tindie will be beneficial, and at what stage (once we have a well-packaged kit it makes sense to reach larger audiences, but currently we just need a tool to facilitate the process of order + payment which can be done manually, we don't necessarily need to link to a shop yet)

Add Facilitation Guidelines for Session leaders

We talked about a couple techniques we will adopt for the workshop, these guidelines/notes need to be added:

  • Signalling volunteers for hands-on sections
  • "Pair teaching" (with someone observing and providing feedback after
  • Shared notepad
  • "Ticket out the door"
  • Jargon-busting

Design and mockup for course website

Resources are spread across many repositories. In the current state it is very difficult for someone unfamiliar to gather everything to facilitate even a single module of the workshop.

Hardware:

  • Raspberry Pi 3s
  • or Raspberry Pi 2s (with extra USB adapter)
  • USB WiFi adapters supporting mesh point and ad-hoc
  • SD cards
  • Materials for LoRa (Module 6 cc. @uditvira)

Software:

Workshop Materials:

Facilitation Guidelines:

  • There are a bunch of optional tools, some of them not being used

External Assets:

  • Hosted content on YouTube and other sites, especially for Homework, require internet to access, we should indicate which pieces need internet

We need to design how to present this in a way that others can easily gather everything and facilitate in a no Internet setting.

translation tool

I like how it looks weblate.org

but keep in mind also this review I copied in libremesh-dev chat probably:

I looked at Weblate when deciding what platform to use, and it seems to work for some projects. Our reasons to use TranslateWiki instead of Weblate include:

  • Someone else hosts it, so we don't have to do server admin.
  • The hosting is free (doesn't cost money), although we may donate some money.
  • There are other open source projects that use TranslateWiki as their platform (including MediaWiki), so there are many translators who use the platform and can easily contribute translations to LibreMesh. This makes it more likely that we'll get high-quality translations into many languages.
  • Maybe it seems like a lot of hassle to get the connection set up between LibreMesh and TranslateWiki, but I think it's worth the effort.

Auto deploy website and assets

Push assets to gh-pages branch on tag as part of Travis flow:

  • Unzipped course assets
  • Static website

Currently we have deploy-on- tag to GitHub Releases.

Participant feedback tracking

Feedback about module-1 slides

Feedback about module-1 IPFS worksheet

  • The fc00::/8 notation is confusing, it is unclear that a cjdns address of the form fc7d:1633:... is a match

  • Line breaks on the sheet is still a little confusing

  • This step in module-1 needs some example:

    Now let's add some content on example2, then type exit twice to return to example, and try to read that text back on example and from your browser. It may take a while after you first establish peering, but eventually the content will become available across the network.

  • Can we hide the docker layer? The SSH layer + docker layer is confusing. (e.g. hide it behind a program, not use docker altogether)

  • A cooler app (e.g. text chat with pubsub), note that SSB + Patchfoo integration is already underway

  • The need to add a bootstrap peer is helpful in learning that a connection is made, but the flow of SSH-ing into another device to copy its key, exit, then paste it in your device, is a little awkward, and further complicated by the docker layers

Known issues that occasionally occur and can be addressed by node reboot

  • Node boots up with Access Point name as test2 (will be addressed by current mesh-orange work)

  • One incident with EOF error when loading ipfs docker (will be addressed by current mesh-orange work)

Add template for shared notepad to repo

Stable pad address is: https://pad.riseup.net/p/peer-to-peer-internet

This should cover the following (per 2018-04-05 runthrough):

Integrate Remark presentations into the course website

Remark presentations, all displayed in the browser in a similar fashion to how GitBook is used to display content presently. Once this is done all content should have been converted and GitBook should be fully removed as per #79.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.