0.0.6 • Published 2 years ago

@chromatic-systems/rho v0.0.6

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

Rho

Publish Computational Media to the Planet edit example

A Peet-to-Peer Network for Geospatial Media

  1. Learn to write software in the context of a Geospatial Publishing System
  2. A school built on mesh networks
  3. End to End encrypted video and data
  4. Integrated Machine Learning and AI like code assist
  5. Move computation & data from the Cloud to Bookshelf
  6. Publish and distribute your work worldwide in seconds
  7. Team of alumni, mentors, and friends
  8. Funding system for data journalism & high impact projects
  9. Punches through firewalls and torrents data by key

Overcomes legacy Education Tech system limitations

  1. Centralized certification
  2. Censorship
  3. High cost content providers
  4. Centralized data storage
  5. Data transfer costs
  6. A company or school owns your work

edit example

Live in browser edit example

Geospatial Web Dev School & P2P mesh

  1. Directed graph of components via meta keys
  2. Many examples with code to learn from
  3. End to End UX Testing
  4. ML code assistant
  5. Web Crawler
  6. hackable default UI
  7. no trackers
  8. no PII

Start

To install the program

npx chromatic-systems/rho 8080 ram write swarm
npx chromatic-systems/rho 8081 ram read swarm <64 byte key from a writer>
npx chromatic-systems/rho <port> [ ram | disk ] [ write | read ] [ swarm | local ] <public key>

Open the browser

  1. http://localhost:8080

Optional tunnel on the open web

  1. optionally tunnel over cloudflare to connect the old world to the peer-to-peer world
cloudflared tunnel --name dev --hostname dev.yourdomain.io

Test

npm test

To run with the debugger

npm run test:i

dev log update

Dev log update

Milestone 1: Peer-to-peer mesh

  • npx to p2p mesh working!
  • web editor working!
  • p2p keystore working!

Milestone 2: Codex integration

  • codex basic library working, need integration
  • navigation basic page enabled, need user interface
  • self hosting shadow chrome tab host is working see browser.js, need to replace browser that starts from start.test.js

Milestone 3: Full Text Search

Why are you building this?

The New Learning Economy: It’s Time To Build in Education

As we enter the third school year of the Covid era, a disturbing new normal is settling over the country. Students continue to be chronically absent; nearly 50,000 Los Angeles public school students failed to show up on the first day of school. Nine-year-olds’ math and reading levels have dropped to 20-year lows, and the dip in reading scores is the steepest decline in more than 30 years. Teacher vacancies are reaching crisis levels. Schools are even resorting to bringing back retirees and loosening basic teaching requirements to fill gaps.

Why is this so important? Education is a $1.8 trillion-dollar industry in the U.S. More importantly, our education system shapes who our future leaders and builders will be—more than 1 in 5 people in the U.S. are current K–12 and college students.

The pandemic catalyzed big shifts at all levels of education, in some cases upending what were previously slow, decade-long trends. Technology adoption in classrooms accelerated; parents pulled their kids out of public schools by the millions after seeing firsthand the inadequacies of our current education system; teens became study influencers on TikTok and made learning cool again (aka #studytok); and the government stepped in with hundreds of billions of dollars for public education. These shifts are driving an expansion of EdTech beyond lecture halls and classrooms, beyond K–12 schools and colleges, to lifelong learning and what we call the Learning Economy.

Naysayers may note that education venture funding returns have trailed the returns generated by other markets, or that only three companies (Coursera, Duolingo, and Udemy) have gone public in the last year. But we believe that the Learning Economy is a much broader sector—and one that spans a longer timeframe—than most people think. The Learning Economy doesn’t just refer to academic tools and student/teacher-facing technologies. Rather, it encompasses all the different ways we develop as human beings, be it picking up a hobby or learning to be a better boss, parent, or friend.

To read more

see strategy

Roadmap

  1. fix THREE.SphereBufferGeometry has been renamed to THREE.SphereGeometry. warning
  2. load fulltext from hyperbee stream
  3. code assist with OpenAI Codex started
  4. handle etags / caching started and testing
  5. add a lock public key sig
  6. add api/esm backend then cache to hyperbee
  7. accessible multi language, alt text, tap to use, audio-alts, tab targets
  8. MMO Live coding
  9. fuzz testing

Architecture

  1. http server on top of hyperbee
  2. share public key to replicate
  3. add a public route and now you have a CDN
  4. symbols are stored as key[ meta, data, ... ] in a hyperbee
  5. symbols store a few keys with different types
  6. These are meta icon data lock
  7. These types are stored as sub keyspace in hyperbee
  8. a http server proxies requests to the symbol keyspace
  9. changes live refresh the system
  10. watches /public and loads into the symbol keyspace
  11. runs chromium browser as the test client
  12. all logs are piped togther for devUX
  13. routes are defined in http.js
  14. templates are optionally applied transforms to symbols on a HTTP GET request, the current example is article which is a template on the edit page selector

Recently Added

  1. add template selector to edit page
  2. auto reload on sse event
  3. peer replication

Install

npm install

Test

npm test

test with debugger

npm run test:i

Run the server

note the port and key printed to the console

npm start
or
node src/start.js port ram|disk write|read public-key

Optional Dependencies

  1. OpenAi Codex API key https://beta.openai.com/docs/guides/code

Priorites

  1. Tests run first
  2. Dont break the build
  3. Test the live system
  4. Clean up as you go
  5. Getting started over perfecting the system

Cloudflare Tunnel Getting Started

cloudflared tunnel list
cloudflared tunnel --name dev --hostname dev.yourdomain.io --hello-world true
cloudflared tunnel list
cloudflared tunnel cleanup dev
cloudflared tunnel delete dev
cloudflared tunnel list

Symbol Templates

  1. Article:
  2. Text:
  3. HTML:
  4. Map: https://deck.gl/
  5. Markdown: https://github.com/showdownjs/showdown
  6. Canvas: https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial
  7. Globe: https://chromatic.systems/h3
  8. Tree: https://chromatic.systems/dag
  9. Graph: https://chromatic.systems/dag
  10. CAD & BIM: https://ifcjs.github.io/info/
  11. CSG: https://github.com/gkjohnson/three-bvh-csg
  12. Timeline:
  13. Table:
  14. cryptography: https://github.com/openpgpjs/openpgpjs
  15. combinatorics: https://github.com/N8Brooks/combinatorics
  16. Mathematica: https://reference.wolfram.com/language/ref/program/wolframscript.html
  17. Image:
  18. Video:
  19. Audio: https://github.com/chaosprint/glicol
  20. Code: https://chromatic.systems/e/1
  21. Form:
  22. List:
  23. Grid:
  24. Body Track: https://www.tensorflow.org/lite/examples/pose_estimation/overview
  25. Paint: https://github.com/CompVis/stable-diffusion
  26. Payments: https://github.com/holepunchto/invoices
  27. Calendar:
  28. Chat:
  29. Email https://www.mailgun.com/
  30. Phone https://www.twilio.com/
  31. OCR https://github.com/naptha/tesseract.js
  32. Map Directions https://github.com/headwaymaps/headway

Tooling and Development

Patch

https://www.npmjs.com/package/patch-package

# fix a bug in one of your dependencies
vim node_modules/some-package/brokenFile.js

# run patch-package to create a .patch file
npx patch-package @popeindustries/lit-html-server

# commit the patch file to share the fix with your team
git add patches/some-package+3.14.15.patch
git commit -m "fix brokenFile.js in some-package"

  "scripts": {
    "postinstall": "patch-package",

npm i patch-package

Applying patches

Run patch-package without arguments to apply all patches in your project.