Browse Source

added list of potential suite inclusions and style guide

main
deicidus 1 year ago
parent
commit
838d198583
  1. 90
      README.md
  2. 24
      style_guide.md

90
README.md

@ -69,3 +69,93 @@ To cast a spell, `cd` into the spells directory. Then, the first time you cast t
To access the mud main menu, run chmod +x mud and then ./mud in this directory.
A tutorial is coming soon. For now, explore the `./spells` directory. Try reading or running the `rosetta-stone` script or the `jump` script.
# Potential Suite Inclusions
This is a list of projects that (as far as we can tell so far) follow free software principles and do something interesting or useful in terms of 1) doing basic computer functions on a UNIX system; 2) making basic computer tasks easier to do or teaching people about UNIX; 3) cryptography: or onboarding people to cryptography and privacy best practices for personal communications; or 4) decentralization: peer-to-peer infrastructure or 5) GUIs for helping people to self-organize politically or organize themselves or their community's information in a post-colonial way; 6) self-host content in an increasingly integrated way; or 7) form ad-hoc mesh networks.
The first projects that will be integrated are: tor, bitcoin, lightning, and SimpleX (in that order). After that, the next features and tools added to the suite will be chosen by popular demand, in close collaboration with specific partner communities.
We are very open to new suggests or critiques or existing items on this list. This is just a public place to collect research on the best free software and non-commercial open-source projects, so that they can be integrated into the ao-bash suite for easy, replicable installation and use by an increasingly large user base.
## Basic Computer Tasks
- [SimpleX Chat](https://github.com/simplex-chat/simplex-chat#zap-quick-installation-of-a-terminal-app) is encrypted chat with no logins at all
* backups - BorgBackup
- [Timeshift](https://github.com/teejee2008/timeshift) for Linux is an application that provides functionality similar to the *System Restore* feature in Windows and the *Time Machine* tool in Mac OS
- [Notational Velocity](https://notational.net/) is an impressive-looking notes-taking app that attempts to optimize the notes-taking interface in ways similar to ao-3.
## UNIX Convenience & Education
- [Umbrel](https://umbrel.com/) is a beautiful personal server OS for self-hosting
- [GNU Guix](https://guix.gnu.org/) is a package manager based on Nix's package manager
- [The New Adventure Shell](http://nadvsh.sourceforge.net/) turns your shell into an adventure game.
- [BashCrawl](https://gitlab.com/slackermedia/bashcrawl) is an interactive bash tutorial.
- [Terminus](https://web.mit.edu/mprat/Public/web/Terminus/Web/main.html) is apparently a web-based game like this
- [The Command Line Murders](https://github.com/veltman/clmystery) looks very fun
- [BashVenture](https://github.com/apetro/BashVenture) looks like a good tutorial game worth trying out
- [trouble-maker](https://trouble-maker.sourceforge.net/) is a command-line app that will cause problems on your system so you can practice troubleshooting them.
## Cryptography & Cryptocurrency
* tor
* SimpleX chat
* bitcoin and lightning (clightning implementation)
- [Dark Crystal](https://darkcrystal.pw/projects/) social key management allows your friends to back up your keys
- [Tribler](https://www.tribler.org) is a tor-onion-routing-like bittorrent client
## Decentralized Hosting Infrastructure
- [Zion](https://guide.getzion.com/) is a bitcoin social network / bitcoin layer three.
- [Matrix-CRDT](https://github.com/YousefED/Matrix-CRDT) allows you to use Matrix as the backend for local-first applications.
- [Aphrodite](https://github.com/aphrodite-sh/aphrodite) is meant to make local software easy to make (project not usable yet)
- [@localfirst/auth](https://github.com/local-first-web/auth) enables decentralized yet local-first auth using a "conflict-free replicated state container based on a signature chain".
- [Solid](https://solidproject.org//self-hosting/css) is a specification for decentralized data storage.
- [The Local-First SDK](https://github.com/cloudpeers/tlfs) is new and not working yet but I like the philosophy.
- [PouchDB](https://pouchdb.com) is a JavaScript that syncs unproblematically.
- [slskd](https://github.com/slskd/slskd) is a self-hosted web-based client for the soulseek p2p network.
- [EarthStar](https://earthstar-project.org/docs/api-tour) is a low-to-the-ground distributed storage protocol
- [CODA Protocol](https://github.com/jakintosh/coalescent-computer-protocol/blob/main/protocols/coda.md) allows truly decentralized computation (not usable yet) ([CCP GitHub](https://github.com/jakintosh/coalescent-computer-protocol))
## Decentralized Social Networking
* AO GUI for community forum and decision making in a way immanent to the UNIX operating system.
- [Crabgrass](https://we.riseup.net/crabgrass/about) is a p2p social networking software
- [Dual Power App](https://dualpower.app/) is a new attempt to create a platform co-op for black communities
- Lemmy and [Ramble](https://ramble.pw/) are quality reddit alternatives.
- [Syndie](https://en.wikipedia.org/wiki/Syndie) is an app to syndicate data that can access I2P, Tor, and Freenet (stalled since 2016)
## Self-Hosting Content
- youtube-dl can download archival copies of videos from YouTube and most other video websites.
- [Mail-in-a-Box](https://mailinabox.email/) is an easy-to-deplay mail server in a box
- [Horahora](https://github.com/horahoradev/horahora) - YouTube alternative - locally archive, browse, and share videos from nearly any site.
- PeerTube is another alternative that includes [plugins](https://framagit.org/framasoft/peertube/official-plugins) and [monetization options](https://github.com/Chocobozzz/PeerTube/issues/1586)
- [Immich](https://geek-cookbook.funkypenguin.co.nz/review/immich/) is a self-hosted Google Photos replacement
- [prose.sh](https://prose.sh/) is a blog platform for hackers
## Ad-Hoc & Mesh Networking
* [tuntox](https://github.com/gjedeer/tuntox) "forwards TCP connections over the Tox protocol, which allows low-latency access to distant machines behind NAT you can't control or with a dynamic IP address."
- [Reticulum](https://old.reddit.com/r/preppers/comments/tqhtgt/i_made_the_prepper_version_of_the_internet/), a [prepper version of the internet](https://old.reddit.com/r/preppers/comments/tqhtgt/i_made_the_prepper_version_of_the_internet/)
- [nostr](https://github.com/nostr-protocol/nostr) is Notes and Other Stuff Transmitted by Relays
- [awesome-nostr](https://github.com/aljazceru/awesome-nostr) is a list of nostr-related software
- [nostrgram](https://github.com/brilliancebitcoin/nostrgram) is a Telegram clone written in plain JavaScript.
- [ArcadeCity](https://github.com/ArcadeCity/app) has a nostr app
- [Lightning.Pub](https://github.com/shocknet/Lightning.Pub) is an LND-based nostr lightning thing
- [bija](https://github.com/BrightonBTC/bija) is a Flask-based nostr client
- [StackerStan](https://stackerstan.org/index.html#home) is a good example of a nostr-based AO-like wiki thing (but written in Go)
- [Nodestr](https://github.com/Dolu89/nodestr-relay) is a nostr relay implementation in Node.js
- [Nvote](https://github.com/rdbell/nvote) is a nostr-powered reddit clone
- [more-speech](https://github.com/unclebob/more-speech) is a desktop Nostr client
## Miscellaneous
- [Project Cambria](https://www.inkandswitch.com/cambria/) translates your data with lenses
- [DeepL](https://www.deepl.com/translator) translator (non-Google)
- [Hypothes.is](https://web.hypothes.is/start/) is an open-source, standards-based web annotations solution!
- [DALLE2-pytorch](https://github.com/lucidrains/DALLE2-pytorch)
- [Podman](https://podman.io/whatis.html) is a drop-in replacement for Docker that doesn't require a background service.
- [CardConjurer](https://github.com/MrTeferi/cardconjurer) is a site and apparently open-source repo to make printable Magic card templates. Art assets in this repo I think.
- [Penpot](https://github.com/penpot/penpot) is a prototyping/diagramming tool
- [Bootstrap](https://github.com/twbs) is a nice set of generic icons and other mobile-first web elements for quickly prototyping a project

24
style_guide.md

@ -0,0 +1,24 @@
# ao-bash Opinionated Code Style Guide
This script is a style guide for the ao-bash / ao-mud project and is not meant to be run. Please examine the file in a text editor.
# File Extensions
Name scripts in the ao-bash suite without the `.sh` file extension. (Reason: When folders of ao-bash spells are added to the $PATH directory, the scripts can simply be called by name, without having to type `.sh` every time.)
# How to print something to the terminal
`say` is an ao-bash command that uses printf to echo a line to a screen (it adds the \n to the end and thus functions like echo).
`printf` is preferred to `echo` because it is more cross-platform, however realistically echo will also be used and should also work in virtually all cases. Note that `printf` needs a \n explicitly at the end of the string, and also includes more advanced options for formatting variables that it displays.
# How to ask the user a question
`ask` is an ao-bash suite command that asks the user an open-ended question, and outputs their response (which can be saved in a variable). Use it like this:
```answer=ask "Please enter your name:"```
`ask_yn` is a similar command that takes a question, plus an optional second argument Y or N that defines the default response if the user presses Enter (if the second argument is not supplied, it defaults to N):
```ask_yn "Would you like a treatment?" Y```
Loading…
Cancel
Save