diff --git a/composer.json b/composer.json index ed8bfd9..d4e5740 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,12 @@ { "require": { "mnapoli/front-yaml": "^1.6", - "michelf/php-markdown": "^1.8" + "michelf/php-markdown": "^1.8", + "erusev/parsedown-extra": "^0.7.1" + }, + "autoload": { + "psr-4": { + "Wiki\\": "src/" + } } } diff --git a/composer.lock b/composer.lock index bf2ce88..db8dcdc 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f693531fd51bd92297c17d6a290a6f16", + "content-hash": "13a716a34a8e3fc115a70dcb60a721c4", "packages": [ { "name": "erusev/parsedown", @@ -52,6 +52,50 @@ ], "time": "2018-03-08T01:11:30+00:00" }, + { + "name": "erusev/parsedown-extra", + "version": "0.7.1", + "source": { + "type": "git", + "url": "https://github.com/erusev/parsedown-extra.git", + "reference": "0db5cce7354e4b76f155d092ab5eb3981c21258c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/erusev/parsedown-extra/zipball/0db5cce7354e4b76f155d092ab5eb3981c21258c", + "reference": "0db5cce7354e4b76f155d092ab5eb3981c21258c", + "shasum": "" + }, + "require": { + "erusev/parsedown": "~1.4" + }, + "type": "library", + "autoload": { + "psr-0": { + "ParsedownExtra": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Emanuil Rusev", + "email": "hello@erusev.com", + "homepage": "http://erusev.com" + } + ], + "description": "An extension of Parsedown that adds support for Markdown Extra.", + "homepage": "https://github.com/erusev/parsedown-extra", + "keywords": [ + "markdown", + "markdown extra", + "parsedown", + "parser" + ], + "time": "2015-11-01T10:19:22+00:00" + }, { "name": "michelf/php-markdown", "version": "1.8.0", diff --git a/index.php b/index.php index 017ee16..e3818d3 100755 --- a/index.php +++ b/index.php @@ -1,7 +1,7 @@
@@ -15,14 +15,34 @@ $parser = new Mni\FrontYAML\Parser();
+

a digital community for socializing, learning, and making cool stuff

-

tilde.team is a shared system that provides an inclusive, non-commercial space for teaching, learning, practicing and enjoying the social medium of unix.

-

i created this tilde after hearing about paul ford's tilde.club. when i was unable to join due to the waitlist, i decided to create my own tilde.

+

+ tilde.team is a shared system that provides an inclusive, + non-commercial space for teaching, learning, practicing and + enjoying the social medium of unix. +

+

+ i created this tilde after hearing about paul ford's + tilde.club. when i was unable + to join due to the waitlist, i decided to create my own tilde. +

+

thanks for stopping by!

-

tilde.team is a founding member of tildeverse.org, which is a collaborative effort among several other tilde servers.

-

hosting and domains are paid out-of-pocket. tilde.team will always be free to use. however, if you are able and willing to pitch in, you can donate here.

+ +

+ tilde.team is a founding member of tildeverse.org, + which is a collaborative effort among several + other tilde servers. +

+

+ hosting and domains are paid out-of-pocket. tilde.team will always + be free to use. however, if you are able and willing to pitch in, + you can donate here. +

+

~ben


@@ -44,20 +64,25 @@ $parser = new Mni\FrontYAML\Parser();

~news~

- parse(file_get_contents($page)); $yaml = $parsed->getYAML(); if (!$yaml["published"]) continue; ?> +

- "> - /"> + + "> + - /"> +

getContent()?>

+ +

news archive here...

@@ -116,4 +141,3 @@ $parser = new Mni\FrontYAML\Parser();
- diff --git a/news/index.php b/news/index.php index a09ed2c..593e8a1 100644 --- a/news/index.php +++ b/news/index.php @@ -15,20 +15,7 @@ $additional_head = " "; -class MDParser implements Mni\FrontYAML\Markdown\MarkdownParser { - public function __construct() { - $this->mdparser = new Michelf\MarkdownExtra(); - $this->mdparser->header_id_func = function ($header) { - return preg_replace('/[^a-z0-9]/', '-', strtolower($header)); - }; - } - - public function parse($markdown) { - return $this->mdparser->transform($markdown); - } -} - -$parser = new Mni\FrontYAML\Parser(null, new MDParser()); +$parser = Wiki\MDParser::factory(); if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) { @@ -80,7 +67,7 @@ if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {

- /">~


- getContent())?> + getContent()?>
.md"> diff --git a/services.php b/services.php index 258314a..e639ee7 100644 --- a/services.php +++ b/services.php @@ -1,18 +1,16 @@ ['fa' => 'code-fork', 'url' => 'https://tildegit.org'], + 'gitea' => ['fa' => 'code-fork', 'url' => 'https://tildegit.org/team/'], 'forum' => ['fa' => 'comment', 'url' => 'https://bbj.tilde.team'], - 'wiki' => ['fa' => 'book', 'url' => '/wiki/'], 'mastodon' => ['fa' => 'retweet', 'url' => 'https://tilde.zone'], 'chat' => ['fa' => 'comments-o', 'url' => '/wiki/?page=irc'], 'nextcloud' => ['fa' => 'cloud', 'url' => 'https://cloud.tilde.team/'], - 'webmail' => ['fa' => 'envelope', 'url' => 'https://mail.tilde.team'], + 'webmail' => ['fa' => 'envelope', 'url' => 'https://mail.tilde.team/'], 'cryptpad' => ['fa' => 'sticky-note', 'url' => 'https://pad.tildeverse.org'], 'pastebin' => ['fa' => 'paste', 'url' => 'https://paste.tildeverse.org/'], 'termbin' => ['fa' => 'terminal', 'url' => 'https://bin.tilde.team/'], 'nullpointer' => ['fa' => 'file-code-o', 'url' => 'https://ttm.sh'], - 'gopher' => ['fa' => 'floppy-o', 'url' => 'https://gopher.tilde.team'], + 'gopher' => ['fa' => 'floppy-o', 'url' => 'https://gopher.tildeverse.org/tilde.team'], ]; $nav = isset($navbar); @@ -23,4 +21,3 @@ foreach ($services as $name => $service) { ?> > ~~ '; ?> mdparser = new WikiParsedown(); + } + + public function parse($markdown) { + return $this->mdparser->text($markdown); + } + + public static function factory() { + return new FrontYAML\Parser(null, new MDParser()); + } +} + +class WikiParsedown extends \ParsedownExtra { + protected function blockHeader($line) { + $header = parent::blockHeader($line); + + if (!isset($header)) { + return null; + } + + $id = preg_replace('/[^a-z0-9]/', '-', strtolower($header['element']['text'])); + $header['element']['attributes']['id'] = $id; + + $header['element']['text'] = + ' ' + . $header['element']['text']; + + return $header; + } + + protected function blockTable($line, array $block = null) { + $table = parent::blockTable($line, $block); + + if (!isset($table)) { + return null; + } + + $table['element']['attributes']['class'] = "table table-striped"; + + return $table; + } +} diff --git a/wiki/index.php b/wiki/index.php index a89f30a..962e66c 100644 --- a/wiki/index.php +++ b/wiki/index.php @@ -15,20 +15,7 @@ $additional_head = " "; -class MDParser implements Mni\FrontYAML\Markdown\MarkdownParser { - public function __construct() { - $this->mdparser = new Michelf\MarkdownExtra(); - $this->mdparser->header_id_func = function ($header) { - return preg_replace('/[^a-z0-9]/', '-', strtolower($header)); - }; - } - - public function parse($markdown) { - return $this->mdparser->transform($markdown); - } -} - -$parser = new Mni\FrontYAML\Parser(null, new MDParser()); +$parser = Wiki\MDParser::factory(); if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) { @@ -77,7 +64,7 @@ if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) { < ~wiki
- getContent())?> + getContent()?>
.md"> source diff --git a/wiki/pages/administration.md b/wiki/pages/administration.md index aa9939f..8a1a3ae 100644 --- a/wiki/pages/administration.md +++ b/wiki/pages/administration.md @@ -122,6 +122,8 @@ Here's how to fix it: ## lxd +> we're not provisioning lxd containers for users at this time + this is the process that i use to create lxd containers for users. you need two things from the user: an ssh public key (on their ~team shell) and a [distro choice](https://us.images.linuxcontainers.org/) diff --git a/wiki/pages/gopher.md b/wiki/pages/gopher.md index 9f99e8d..ad29299 100644 --- a/wiki/pages/gopher.md +++ b/wiki/pages/gopher.md @@ -3,44 +3,56 @@ author: ~ben published: true title: gopher description: gopher server and proxy -category: +category: - main --- # gopher -the [gopher protocol](http://en.wikipedia.org/wiki/Gopher_(protocol)) was created in 1991. it didn't survive long due to [draconic licensing](http://www.nic.funet.fi/pub/vms/networking/gopher/gopher-software-licensing-policy.ancient). +the [gopher protocol](http://en.wikipedia.org/wiki/Gopher_(protocol)) was +created in 1991. it didn't survive long due to [draconic licensing]( + http://www.nic.funet.fi/pub/vms/networking/gopher/gopher-software-licensing-policy.ancient). -we're trying to keep this cool corner of the web alive. +we're trying to keep this cool corner of the web alive. ## add and create your gophersite to add your own gopher site, run the following command: +this is created along with your account. to get listed on the [main gophermap](gopher://tilde.team), +make some changes to your root gophermap. the listing script diffs against the default gophermap. ```bash mkdir -p -m 755 ~/public_gopher ``` -(this presumes you don't already have a public_gopher dir in your $HOME. new users from here on out will have a public_gopher by default) +(this presumes you don't already have a public_gopher dir in your $HOME. +new users from here on out will have a public_gopher by default) -if a file called `gophermap` exists in the directory you're currently browsing to in gopher, it will get processed and displayed. +if a file called `gophermap` exists in the directory you're currently +browsing to in gopher, it will get processed and displayed. -see [this example](https://github.com/prologic/gophernicus/blob/master/README.Gophermap) for more information on file types and special chars. +see [this example](https://github.com/gophernicus/gophernicus/blob/master/README.Gophermap) +for more information on file types and special chars. + +one of the coolest item types supported in gophernicus is `=` which allows you +to include other gophermaps or the output of executables. + +you can even make your whole gophermap executable and it will be run through +whatever interpreter you specify in the shebang. --- ## browse gophersites -if you're currently connected from a tilde.team shell, you can use the [`lynx`](https://lynx.browser.org/) browser. +if you're currently connected from a tilde.team shell, you can use the +[`lynx`](https://lynx.browser.org/) browser. ```bash lynx gopher://tilde.team ``` -if you want to access the gophersite in your public_gopher dir, use the following link structure: -[gopher://tilde.team/1/~username](gopher://tilde.team/1/~username) +if you want to access the gophersite in your public_gopher dir, use the following +link structure: [gopher://tilde.team/1/~username](gopher://tilde.team/1/~username) you can install it on your local machine too :) -otherwise, you can use our [http proxy](https://gopher.tilde.team) to browse the gophernet. +otherwise, you can use our [http proxy](https://gopher.tildeverse.org/tilde.team) to browse the gophernet. hope to see you on there soon! - -(addendum by ~khuxkm: remember to leave the number off when using the proxy (i.e; [https://gopher.tilde.team/tilde.team/~username](https://gopher.tilde.team/tilde.team/~username))) \ No newline at end of file diff --git a/wiki/pages/irc.md b/wiki/pages/irc.md index 18b6674..fa38d10 100644 --- a/wiki/pages/irc.md +++ b/wiki/pages/irc.md @@ -33,7 +33,7 @@ weechat introduced [unix socket relays]( https://weechat.org/files/doc/stable/weechat_user.en.html#relay_unix_socket) in version 2.5 which is a much easier way to offer per-user relay access. -.ttm.sh/weechat is configured to proxy to the default unix relay socket +username.ttm.sh/weechat is configured to proxy to the default unix relay socket location (`~/.weechat/relay_socket`). to get started using it, follow these steps. 1. in weechat: diff --git a/wiki/pages/mailing_lists.md b/wiki/pages/mailing_lists.md index 76faf0d..0c6f194 100644 --- a/wiki/pages/mailing_lists.md +++ b/wiki/pages/mailing_lists.md @@ -9,44 +9,44 @@ category: # mailing lists netiquette -The tildeverse has now its own mailing list service. You can take a look at: +the tildeverse has now its own mailing list service. you can take a look at: [lists.tildeverse.org](https://lists.tildeverse.org/) -This is a description of the basic *netiquette* rules for this service. Most of +this is a description of the basic *netiquette* rules for this service. most of the text is taken shamelessly from [man.sr.ht/lists.sr.ht/etiquette.md](https://man.sr.ht/lists.sr.ht/etiquette.md) with some adaptations and a couple more suggestions taken from other lists out there. -Some email clients have popularized email usage patterns which are considered -poor form on many mailing lists. Please review some of our suggestions for -participating more smoothly in discussions on the tildeverse. This advice will +some email clients have popularized email usage patterns which are considered +poor form on many mailing lists. please review some of our suggestions for +participating more smoothly in discussions on the tildeverse. this advice will likely serve you well outside of the tildeverse as well. -If you have any troubles following this guides or don't know how to configure -your email client for this purpose, ask on IRC (#meta or #team), you'll find +if you have any troubles following this guides or don't know how to configure +your email client for this purpose, ask on irc (#meta or #team), you'll find always somebody willing to help. -## Plain text +## plain text -Please make sure that your email client is configured to use plain text emails. -By default, many email clients compose emails with HTML, so you can use rich -text formatting. Rich text is not desirable for mailing lists. Keep in mind that -some people uses console email clients without html rendering support. Also, +please make sure that your email client is configured to use plain text emails. +by default, many email clients compose emails with HTML, so you can use rich +text formatting. rich text is not desirable for mailing lists. keep in mind that +some people uses console email clients without html rendering support. also, people with high volume of emails may pre-process them and html is not good for -that. So you should disable this feature and send your email as "plain text". -Every email client is different, you should research the options for your +that. so you should disable this feature and send your email as "plain text". +every email client is different, you should research the options for your specific client. -## Top-posting +## top-posting -Some email clients will paste the entire email you're replying to into your -response and encourage you to write your message over it. This behavior is +some email clients will paste the entire email you're replying to into your +response and encourage you to write your message over it. this behavior is called "top posting" and is discouraged on the tildeverse lists (or on any -mailing list really). Instead, cut out any parts of the reply that you're not -directly responding to and write your comments inline. Feel free to edit the -original message as much as you like. In other words, keep the relevant context -for your reply and delete the rest. This makes cleaner emails that are easier to +mailing list really). instead, cut out any parts of the reply that you're not +directly responding to and write your comments inline. feel free to edit the +original message as much as you like. in other words, keep the relevant context +for your reply and delete the rest. this makes cleaner emails that are easier to read, even if the reader jumps in the middle of a thread. For example, if I emailed you: @@ -76,45 +76,45 @@ You might respond with: - A: Because it reverses the logical flow of conversation. - Q: Why is top posting frowned upon? -## Wrap lines +## wrap lines -Please wrap lines in your email at 72 columns. Many people use email readers +please wrap lines in your email at 72 columns. many people use email readers designed to faithfully display plain text and won't break lines at a width which is comfortable for reading, or won't break lines at all, which is useful when -reviewing patches. Some readers also have many things open in addition to their +reviewing patches. some readers also have many things open in addition to their mail client, and may not allocate as much screen real-estate to email as you do. -If you're curious about why this arbitrary column count. "Regular" terminals +if you're curious about why this arbitrary column count. "regular" terminals have 80 columns, and 8 characters less gives you some room for the response prefix ('> ') making threads with nested replies more readable. -Don't worry about re-wrapping lines written by anyone you're quoting unless you +don't worry about re-wrapping lines written by anyone you're quoting unless you want to. -## PGP Signatures +## pgp signatures -If you use PGP, please attach your signature to the message instead of using an -inline signature. Look in your local PGP implementation's documentation for +if you use pgp, please attach your signature to the message instead of using an +inline signature. look in your local pgp implementation's documentation for `PGP/MIME` options. -## Attachments +## attachments -Try not to send attachment to the list or, if you do it, make sure they are -small files. Think about people with bad internet connection or limited -resources. It's better to send a link to download whatever you want to share. -If you send links, it's a good practice to describe the content and the size, -so the reader can choose to download it or not before following the link. For +try not to send attachment to the list or, if you do it, make sure they are +small files. think about people with bad internet connection or limited +resources. it's better to send a link to download whatever you want to share. +if you send links, it's a good practice to describe the content and the size, +so the reader can choose to download it or not before following the link. for example, you can upload a file to [ttm.sh](https://ttm.sh) or drop it in your `~/public_html` directory and then send the link to the list like so: https://ttm.sh/mydocument.pdf (pdf, 3,5MB) -# Conclusion +# conclusion -Whatever you send to a mailing list gets forwarded to an unknown number of email -accounts. You cannot know beforehand the quality of connection, resources, +whatever you send to a mailing list gets forwarded to an unknown number of email +accounts. you cannot know beforehand the quality of connection, resources, operating systems or really anything else the people that owns those accounts -have. So, try to stick to the principles here stated to make the whole list +have. so, try to stick to the principles here stated to make the whole list communication easier for all. -Thank you for taking the time to adjust your habits! +thank you for taking the time to adjust your habits! diff --git a/wiki/pages/manifesto.md b/wiki/pages/manifesto.md index 39d4f46..8a6db64 100644 --- a/wiki/pages/manifesto.md +++ b/wiki/pages/manifesto.md @@ -9,22 +9,38 @@ category: # tilde.team manifesto -> tilde.team is a shared system that provides an inclusive, non-commercial space for teaching, learning, practicing and enjoying the social medium of unix. +> tilde.team is a shared system that provides an inclusive, non-commercial space +> for teaching, learning, practicing and enjoying the social medium of unix. here are some of our most important values: -1. tilde.team is an alternative social environment for the technically-inclined; specifically, a non-commercial alternative to the mainstream, corporate-owned media and social media. we aim to put the users in control of the tools of communication that are currently being neutered by corporate commodification of the www. +1. tilde.team is an alternative social environment for the technically-inclined; +specifically, a non-commercial alternative to the mainstream, corporate-owned +media and social media. we aim to put the users in control of the tools of +communication that are currently being neutered by corporate commodification +of the www. -1. provide tools, resources and encouragement for users to develop ideas and best practices for the next generation of public access unix systems. the "next generation" is always ahead of the present, so this implies that the system is in a constant state of development and self-improvement, with a continually rolling set of goals, and regular testing and evaluation of experimental projects. --all of which is powered by user involvement in a brainstorming/experimenting/teaching/learning/doing model. +1. provide tools, resources and encouragement for users to develop ideas and +best practices for the next generation of public access unix systems. the +"next generation" is always ahead of the present, so this implies that the +system is in a constant state of development and self-improvement, with a +continually rolling set of goals, and regular testing and evaluation of +experimental projects. --all of which is powered by user involvement in a +brainstorming/experimenting/teaching/learning/doing model. -1. serve partly as a meta-community among other tildes and pubnixes, both sharing best practices and learning from their experiences. +1. serve partly as a meta-community among other tildes and pubnixes, both +sharing best practices and learning from their experiences. -1. last but absolutely not least --> MAKE IT FUN! it should not be a bitter place to sulk or rant about mainstream culture. it should be a social environment in which users can go wild and push their creative skills to the limit. it should be a place to appreciate what does not exist in other exploitative commercial environments. +1. last but absolutely not least --> MAKE IT FUN! it should not be a bitter +place to sulk or rant about mainstream culture. it should be a social +environment in which users can go wild and push their creative skills to the +limit. it should be a place to appreciate what does not exist in other +exploitative commercial environments. --- -this document is still a work in progress. if you have any ideas or suggestions, [send a pr](https://tildegit.org/team/site/src/branch/master/wiki/pages/manifesto.md)! +this document is still a work in progress. if you have any ideas or +suggestions, [send a pr](https://tildegit.org/team/site/src/branch/master/wiki/pages/manifesto.md)! [living draft of this document here](https://pad.tilde.team/code/#/2/code/edit/RFBUqXec+9+MlZzx4mnhU3ps/) - diff --git a/wiki/pages/other-tildes.md b/wiki/pages/other-tildes.md index f68adea..b029e6d 100644 --- a/wiki/pages/other-tildes.md +++ b/wiki/pages/other-tildes.md @@ -12,7 +12,7 @@ category: if you're starting a tilde and want to be added to this list, [open a PR :)](https://tildegit.org/team/site) | tilde name | description | where to join | notes | -|---|---|---|---| +| --- | --- | --- | ---| | [rawtext.club](https://rawtext.club) | rawtext.club (RTC) is an experimental public access shell server with a focus on use of collaborative projects for gnu/linux skill building. Projects include simple, command line social tools and utilities, or whatever lightweight programs users are interested in. RTC does not use IRC, and instead focuses on other slower and more thoughtful forms of user interaction. | Send email to admin@rawtext.club with your ssh pubkey, desired username, and a statement describing your interest in joining. | | | [tilde.institute](https://tilde.institute) | Provides a space dedicated to the OpenBSD operating system. Includes a functional BCHS stack for users to experiment with and use to create web applications. | [signup form](https://tilde.institute/signup) | | | [tilde.center](https://tilde.center) | A public unix server focused around decentralization, federation, and home-brewed open source projects. | [signup form](https://tilde.center/signup.php) | | @@ -30,8 +30,8 @@ if you're starting a tilde and want to be added to this list, [open a PR :)](htt | [protocol.club](http://protocol.club) | protocol.club explores the fundamental and unique learning opportunities provided by the implementation of standardized protocols. It is a place for curious minds to explore and experiment, to educate and be educated about protocols and implementations old and new alike. While inspired by tilde.club and federated with the rest of the tildeverse via NNTP (et cetera), protocol.club has a stronger focus on its particular mission and has several differences from other tilde boxes, namely: we have a Code of Conduct, and we have some resources available locally to aid development of protocol implementations and new draft protocols. We also serve pages over HTTPS. | [signup form](https://docs.google.com/forms/d/11sJKpZnqaqNVR-rYRfCxKl05iSpjJa85XbigY8xbzBM/viewform?c=0&w=1) | | | [palvelin.club](http://palvelin.club) | Finnish language tilde server. | [signup form](https://docs.google.com/forms/d/1tTGiOU0z3M92nCb5Lv3Tv_sJXGLh8kj5Gl79Gx4ZOdM/viewform) | | | [skylab.org](http://skylab.org) | An open-source community co-operative with ~150 members that has existed since 1997. Based in Portland, Oregon, United States with a userbase across the world, we have quietly existed. Featuring geektalk community chat, a variety of tools and hosting running on FreeBSD. | Email [skylabstatus@gmail.com](mailto:skylabstatus@gmail.com) with subject line SKYLAB.ORG and an email containing your desired username, full name, public SSH key and an acknowledgement to play nice. | | -| [remotes.club](https://remotes.club) | Anyone who works remotely is welcome. | [signup form](https://www.remotes.club/request.php) | -| [tilde.cat](https://tilde.cat) | This is (or rather might be) public shell server like [the club](https://tilde.club), [the town](https://tilde.town), or other ~ servers. | [signup form](http://signup.tilde.cat) | | +| [remotes.club](https://remotes.club) | Anyone who works remotely is welcome. | [signup form](https://www.remotes.club/request.php) | | +| [tilde.cat](https://tilde.cat) | This is (or rather might be) public shell server like [the club](https://tilde.club), [the town](https://tilde.town), or other ~ servers. | [signup form](http://signup.tilde.cat) | down | | [tilde.pink](gopher://tilde.pink) | A gopher only tilde, providing shell acounts with email and gopher services running on a DragonflyBSD server. The site is accessable via [web proxy](https://proxy.tilde.pink) | [signup form](gopher://tilde.pink/1/signup.gph) | | -| [rw.rs](http://rw.rs) | An experimental software community with a 199X aesthetic. | [signup via pull request](https://github.com/adsr/rw.rs/) | -| [theasylum] (https://theasylum.team) | invite-only tilde catering to programmers of all languages | join #theasylum on tilde.chat, and let us get to know you | +| [rw.rs](http://rw.rs) | An experimental software community with a 199X aesthetic. | [signup via pull request](https://github.com/adsr/rw.rs/) | | +| [theasylum](https://theasylum.team) | invite-only tilde catering to programmers of all languages | join #theasylum on tilde.chat, and let us get to know you | | diff --git a/wiki/pages/ssh.md b/wiki/pages/ssh.md index d4c08f5..c7a2ff4 100644 --- a/wiki/pages/ssh.md +++ b/wiki/pages/ssh.md @@ -13,7 +13,10 @@ _or, how to tell other computers to do cool things_ --- -> all users are required to use an ssh keypair for login, or will be required to proceed with manual account recovery with [~ben](/~ben/) or another admin. drop a line to [sudoers@tilde.team](mailto:sudoers@tilde.team) or hop on [irc](https://web.tilde.chat/?join=sudoers) for assistance. +> all users are required to use an ssh keypair for login, or will be required +to proceed with manual account recovery with [~ben](/~ben/) or another admin. +drop a line to [sudoers@tilde.team](mailto:sudoers@tilde.team) or hop on +[irc](https://web.tilde.chat/?join=sudoers) for assistance. ## tilde.team details @@ -34,34 +37,62 @@ ssh user@tilde.team # this uses port 22, which can be blocked on some networks ## intro -** if you just want to get right to a tutorial you can [skip over this background info](#how-to-make-an-ssh-key)** +** if you just want to get right to a tutorial you can +[skip over this background info](#how-to-make-an-ssh-key)** -while [tilde.team](https://tilde.team) is accessible on the web and features lovely web pages written by its users, most interaction with tilde.team takes place **inside the machine** that runs tilde.team as opposed to via web forms that have an effect from **outside** tilde.team's computer. +while [tilde.team](https://tilde.team) is accessible on the web and features +lovely web pages written by its users, most interaction with tilde.team takes +place **inside the machine** that runs tilde.team as opposed to via web forms +that have an effect from **outside** tilde.team's computer. -this is what sets tilde.team apart from most other online communities. you connect directly to another computer from yours alongside other people and then write your web pages, chat, and play games all via text-based interfaces right on tilde.team's computer. +this is what sets tilde.team apart from most other online communities. you +connect directly to another computer from yours alongside other people and then +write your web pages, chat, and play games all via text-based interfaces right +on tilde.team's computer. -prior to the web (which debuted in 1995) this is how pretty much all computer stuff got done. you connected directly to a machine (usually over a direct, physical phone line) and did your work there. +prior to the web (which debuted in 1995) this is how pretty much all computer +stuff got done. you connected directly to a machine (usually over a direct, +physical phone line) and did your work there. -for a long time, people used a tool called [`telnet`](https://en.wikipedia.org/wiki/telnet) to connect to other computers. these days we use a tool called **ssh**. +for a long time, people used a tool called +[`telnet`](https://en.wikipedia.org/wiki/telnet) to connect to other computers. +these days we use a tool called **ssh**. -`ssh` is a text-based tool that provides a direct connection from your computer to another. ssh is an acronym that stands for secure shell. the _shell_ part refers to the fact that it's a text-based tool; we use the word shell to refer to a text-based interface that you give commands to. the _secure_ part refers to the fact that, when you're using ssh, no one can spy on your connection to another computer (unlike the old `telnet` command). +`ssh` is a text-based tool that provides a direct connection from your computer +to another. ssh is an acronym that stands for secure shell. the _shell_ part +refers to the fact that it's a text-based tool; we use the word shell to refer +to a text-based interface that you give commands to. the _secure_ part refers +to the fact that, when you're using ssh, no one can spy on your connection to +another computer (unlike the old `telnet` command). -**why bother with all of this?** passwords are really insecure and hard to manage. using keys makes life easier for you, fair user (your account is less likely to be hacked) and for me, your humble sysadmin (less administration than passwords). +**why bother with all of this?** passwords are really insecure and hard to manage. +using keys makes life easier for you, fair user (your account is less likely to +be hacked) and for me, your humble sysadmin (less administration than passwords). --- ## how to make an ssh key -SSH supports a handful of types of cryptographic keys. The most used are [RSA]() and the more modern [Ed25519](https://en.wikipedia.org/wiki/EdDSA#Ed25519). +SSH supports a handful of types of cryptographic keys. The most used are [RSA]( + ) and the more modern [Ed25519]( + https://en.wikipedia.org/wiki/EdDSA#Ed25519). -RSA is the de-facto standard and is supported everywhere (just choose a big enough key like 4096bits to be secure). Ed25519 is designed to be faster and smaller withouth sacrificing security, so is best suited for embedded devices or machines with low resources. It's supported on tilde (and really on anymodern system) but you may find older systems which do not support it. +RSA is the de-facto standard and is supported everywhere (just choose a big +enough key like 4096 bits to be secure). Ed25519 is designed to be faster and +smaller withouth sacrificing security, so is best suited for embedded devices +or machines with low resources. It's supported on tilde (and really on any +modern system) but you may find older systems which do not support it. Below you'll find instructions to generate either type (or both if you want). -Keep in mind that these instructions leave your private keys unencrypted in your local hard disk. So keep them private; never share them. -A good solution is to provide a password for them at creation time, but this implies entering a password any time you used them (impractical) or use something like [ssh-agent](https://man.openbsd.org/ssh-agent.1) (a bit more complex) +Keep in mind that these instructions leave your private keys unencrypted in +your local hard disk. So keep them private; never share them. A good solution +is to provide a password for them at creation time, but this implies entering +a password any time you used them (impractical) or use something like [ssh-agent]( + https://man.openbsd.org/ssh-agent.1) (a bit more complex) -We don't have documentation for this [(yet)](https://tildegit.org/team/site/src/branch/master/wiki) so either go with no password keys, or ask on IRC ([#team](https://web.tilde.chat/?join=team)) for help. +We don't have documentation for this [(yet)](https://tildegit.org/team/site/src/branch/master/wiki) +so either go with no password keys, or ask on IRC ([#team](https://web.tilde.chat/?join=team)) for help. pick your fighter: [[mac](#mac)] | [[windows](#windows)] | [[linux](#linux)] @@ -93,11 +124,14 @@ for dd25519 keys: ssh-keygen -t ed25519 -a 100 ``` -1. if you press enter to accept the defaults, your public and private key will be located at `~/.ssh/id_rsa.pub` and `~/.ssh/id_rsa` respectively (or `~/.ssh/id_ed25519.pub` and `~/.ssh/id_ed25519` if you chose ed25519 type) +1. if you press enter to accept the defaults, your public and private key will +be located at `~/.ssh/id_rsa.pub` and `~/.ssh/id_rsa` respectively (or +`~/.ssh/id_ed25519.pub` and `~/.ssh/id_ed25519` if you chose ed25519 type) 1. `cat ~/.ssh/id_rsa.pub` (or `cat ~/.ssh/id_ed25519.pub` for ed25519) -1. copy the output of the last command and paste it in the sshkey field on the signup form (or email it to [~sudoers](mailto:sudoers@tilde.team) if you already have an account) +1. copy the output of the last command and paste it in the sshkey field on the +signup form (or email it to [~sudoers](mailto:sudoers@tilde.team) if you already have an account) #### using your keypair @@ -119,7 +153,8 @@ where username is your username (~ben would use `ssh ben@tilde.team`) ### windows -there are a couple options for using ssh on windows these days. i like to use [git bash](https://git-scm.com). +there are a couple options for using ssh on windows these days. +i like to use [git bash](https://git-scm.com). #### generating your keypair @@ -151,11 +186,14 @@ for ed25519 keys: ssh-keygen -t ed25519 -a 100 ``` -1. if you press enter to accept the defaults, your public and private key will be located at `~/.ssh/id_rsa.pub` and `~/.ssh/id_rsa` respectively (or `~/.ssh/id_ed25519.pub` and `~/.ssh/id_ed25519` if you chose ed25519 type) +1. if you press enter to accept the defaults, your public and private key will +be located at `~/.ssh/id_rsa.pub` and `~/.ssh/id_rsa` respectively (or +`~/.ssh/id_ed25519.pub` and `~/.ssh/id_ed25519` if you chose ed25519 type) 1. `cat ~/.ssh/id_rsa.pub` (or `cat ~/.ssh/id_ed25519.pub` for ed25519) -1. copy the output of the last command and paste it in the sshkey field on the signup form (or email it to [~sudoers](mailto:sudoers@tilde.team) if you already have an account) +1. copy the output of the last command and paste it in the sshkey field on the +signup form (or email it to [~sudoers](mailto:sudoers@tilde.team) if you already have an account) #### using your keypair @@ -177,7 +215,8 @@ where username is your username (~ben would use `ssh ben@tilde.team`) ### linux -there are a lot of linux distros, but `ssh` and `ssh-keygen` should be available in almost all cases. if they're not, look up how to install ssh for your distro. +there are a lot of linux distros, but `ssh` and `ssh-keygen` should be available +in almost all cases. if they're not, look up how to install ssh for your distro. #### generating your keypair @@ -201,11 +240,14 @@ for ed25519 keys: ssh-keygen -t ed25519 -a 100 ``` -1. if you press enter to accept the defaults, your public and private key will be located at `~/.ssh/id_rsa.pub` and `~/.ssh/id_rsa` respectively (or `~/.ssh/id_ed25519.pub` and `~/.ssh/id_ed25519` if you chose ed25519 type) +1. if you press enter to accept the defaults, your public and private key will +be located at `~/.ssh/id_rsa.pub` and `~/.ssh/id_rsa` respectively (or +`~/.ssh/id_ed25519.pub` and `~/.ssh/id_ed25519` if you chose ed25519 type) 1. `cat ~/.ssh/id_rsa.pub` (or `cat ~/.ssh/id_ed25519.pub` for ed25519) -1. copy the output of the last command and paste it in the sshkey field on the signup form (or email it to [sudoers@tilde.team](mailto:sudoers@tilde.team) if you already have an account) +1. copy the output of the last command and paste it in the sshkey field on the +signup form (or email it to [sudoers@tilde.team](mailto:sudoers@tilde.team) if you already have an account) #### using your keypair diff --git a/wiki/pages/teaching-and-learning.md b/wiki/pages/teaching-and-learning.md index 9471a08..124d184 100644 --- a/wiki/pages/teaching-and-learning.md +++ b/wiki/pages/teaching-and-learning.md @@ -2,42 +2,70 @@ author: ~cmccabe published: true title: teaching and learning on tilde.team -description: -category: +description: +category: - main --- # teaching and learning on tilde.team -**tl;dr** bring project ideas. bring your skills. learn by doing. help others who are trying to learn. share what you're working on. +**tl;dr** bring project ideas. bring your skills. learn by doing. +help others who are trying to learn. share what you're working on. ## 1. start learning, start teaching! -an important goal of tilde.team is to help you learn linux, programming, and general computing skills through the command line interface. we think it is important that this happens in a fun social environment. for this reason we encourage users to meet each other, to collaborate, to ask questions when you're stuck on something, and to offer help to others who are learning. +an important goal of tilde.team is to help you learn linux, programming, and +general computing skills through the command line interface. we think it is +important that this happens in a fun social environment. for this reason we +encourage users to meet each other, to collaborate, to ask questions when +you're stuck on something, and to offer help to others who are learning. -stuck for ideas? or looking for a bigger challenge? tilde.team also maintains a [list of internship opportunities and code challenge websites](https://tilde.team/wiki/?page=learning-opportunities). this list is a new feature of the site, so please contribute by letting us know (by email, IRC or pull request) of any other opportunities you know of. +stuck for ideas? or looking for a bigger challenge? tilde.team also maintains +a [list of internship opportunities and code challenge websites]( + https://tilde.team/wiki/?page=learning-opportunities). this list is a new + feature of the site, so please contribute by letting us know (by email, + IRC or pull request) of any other opportunities you know of. ## 2. learning resources -tilde.team's IRC server is the social hub around which a lot of learning occurs. [log on](https://tilde.team/wiki/?page=irc) and get to know some people. +tilde.team's IRC server is the social hub around which a lot of learning +occurs. [log on](https://tilde.team/wiki/?page=irc) and get to know some people. -we have numerous compilers and interpreters installed in the shell, including g++, python, ruby, perl and many others. if you need something that is not currently installed, just ask ~ben or any admin on IRC. +we have numerous compilers and interpreters installed in the shell, including +g++, python, ruby, perl and many others. if you need something that is not +currently installed, just ask ~ben or any admin on IRC. -in addition to the specific programming utilities, remember that *NIX itself is a platform designed for communal programming. if you are working with others, you have several tools at your disposal. you can, of course, share files with each other. and you can communicate through private messages on IRC, through email, or using the shell-based 'talk' or 'write' utilities. +in addition to the specific programming utilities, remember that *NIX itself +is a platform designed for communal programming. if you are working with others, +you have several tools at your disposal. you can, of course, share files with +each other. and you can communicate through private messages on IRC, through +email, or using the shell-based 'talk' or 'write' utilities. ## 3. resource limits and performance profiling -good code is efficient code, and part of learning to be a good programmer is learning how to develop elegant solutions that use the minimum system resources necessary. this is hard! but it is even more important on a multi-user system like tilde.team. +good code is efficient code, and part of learning to be a good programmer is +learning how to develop elegant solutions that use the minimum system resources +necessary. this is hard! but it is even more important on a multi-user system +like tilde.team. -some resource limits are established through /etc/security/limits.conf --you can read this file yourself to see what they are. +some resource limits are established through /etc/security/limits.conf - you can +read this file yourself to see what they are. -beyond those limits, we simply ask that you monitor your code and be considerate of others on the system. +beyond those limits, we simply ask that you monitor your code and be considerate +of others on the system. -as we develop more learning resources on the tilde.team wiki, we will provide some guidance about how to profile your code. of course, a quick web search for "code profiling [your language]" will give you a lot of help as well. +as we develop more learning resources on the tilde.team wiki, we will provide +some guidance about how to profile your code. of course, a quick web search +for "code profiling [your language]" will give you a lot of help as well. ## 4. learning how to build a learning environment -the number one thing we know about learning is that being able to socialize with other learners and teachers is useful. but beyond this, we are working all the time to build and improve the other supporting resources on tilde.team. +the number one thing we know about learning is that being able to socialize with +other learners and teachers is useful. but beyond this, we are working all the +time to build and improve the other supporting resources on tilde.team. -you can help! if you have suggestions about other resources or ways to help people practice programming or other linux skills, pop in to IRC and talk about it. many of the ideas that have already helped make this place better came from people like you. everybody is learning here; including the admins! \ No newline at end of file +you can help! if you have suggestions about other resources or ways to help +people practice programming or other linux skills, pop in to IRC and talk +about it. many of the ideas that have already helped make this place better +came from people like you. everybody is learning here; including the admins! \ No newline at end of file diff --git a/wiki/pages/tildeblogs.md b/wiki/pages/tildeblogs.md index c066680..ed6e949 100644 --- a/wiki/pages/tildeblogs.md +++ b/wiki/pages/tildeblogs.md @@ -13,7 +13,8 @@ bashblog is available system-wide as `bb` tildeblogs can be built with [bashblog](https://tildegit.org/team/bashblog) -change to your ~/public_html/blog directory: `cd ~/public_html/blog` (bashblog will do this for you if you forget) +change to your ~/public_html/blog directory: `cd ~/public_html/blog` +(bashblog will do this for you if you forget) --- @@ -32,7 +33,8 @@ change to your ~/public_html/blog directory: `cd ~/public_html/blog` (bashblog w edit the `.config` file to change the name and url and other settings for your blog -for an example of customization, see [~ben's blog](https://tilde.team/~ben/blog/) ([config source](https://tildegit.org/ben/tilde/src/branch/master/blog/.config)). +for an example of customization, see [~ben's blog](https://tilde.team/~ben/blog/) +([config source](https://tildegit.org/ben/tilde/src/branch/master/blog/.config)). for more details: see [the bashblog repo](https://tildegit.org/team/bashblog) diff --git a/wiki/pages/tildepages.md b/wiki/pages/tildepages.md index 0f7ba92..5e5986f 100644 --- a/wiki/pages/tildepages.md +++ b/wiki/pages/tildepages.md @@ -10,7 +10,8 @@ category: # tildepages -because [~ben](https://tilde.team/~ben/) hoards domain names, you can use the following domains with your tildepage: +because [~ben](https://tilde.team/~ben/) hoards domain names, you can +use the following domains with your tildepage: see also the [master list of domains](?page=domains). @@ -24,7 +25,8 @@ see also the [master list of domains](?page=domains). * tilde.team * tildeteam.org -this means you can access your user page from any of the following url formats, substituting domain and username: +this means you can access your user page from any of the following +url formats, substituting domain and username: * `https://domain.tld/~username/` * `https://domain.tld/u/username/` diff --git a/wiki/pages/tos.md b/wiki/pages/tos.md index 8f4b318..5985ea3 100644 --- a/wiki/pages/tos.md +++ b/wiki/pages/tos.md @@ -9,9 +9,11 @@ category: # terms of service -tilde.team relies on the common courtesy and consideration of users to make its services fair for everyone. the following offences will result in a service ban: +tilde.team relies on the common courtesy and consideration of users to make +its services fair for everyone. the following offences will result in a service ban: -tl;dr: don't do anything illegal or harmful, especially anything that could [anger the hosting company](https://www.hetzner.com/rechtliches/root-server/) +tl;dr: don't do anything illegal or harmful, especially anything that could +[anger the hosting company](https://www.ovh.com/world/support/terms-and-conditions/) here are some things that we don't allow: @@ -30,7 +32,14 @@ here are some things that we don't allow: outgoing net- and portscanning is prohibited on tilde.team. -after the [major outage](/~ben/blog/november-13-post-mortem.html) of november 13th, we have run in to the clause in the [hetzner tos](https://www.hetzner.com/rechtliches/root-server/) that prohibits net- and portscanning. please don't try to reach anything in the [RFC1918](https://tools.ietf.org/html/rfc1918) private address space. for some reason, packets sent there will end up at the default gateway and may be interpreted as an attack. +> this is outdated now that tilde.team lives on ovh + +after the [major outage](/~ben/blog/november-13-post-mortem.html) of november 13th, +we have run in to the clause in the [hetzner tos]( +https://www.hetzner.com/rechtliches/root-server/) that prohibits net- and +portscanning. please don't try to reach anything in the [RFC-1918]( +https://tools.ietf.org/html/rfc1918) private address space. for some reason, +packets sent there will end up at the default gateway and may be interpreted as an attack. i've added firewall rule to prevent outgoing requests to these subnets: diff --git a/wiki/pages/user-units.md b/wiki/pages/user-units.md index fa09c2a..7d5292d 100644 --- a/wiki/pages/user-units.md +++ b/wiki/pages/user-units.md @@ -17,7 +17,8 @@ tmux or screen session. let's use systemd user units to manage it! mkdir -p ~/.config/systemd/user/ ``` -1. create a basic service. save something like this in ~/.config/systemd/user/my-new-service.service (adjusting where necessary) +1. create a basic service. save something like this in +`~/.config/systemd/user/my-new-service.service` (adjusting where necessary) ```bash [Unit] Description=foo @@ -44,3 +45,5 @@ done! you can now use `systemctl --user` to manage your daemonized process. +pro-tip: add `alias sysu='systemctl --user'` to your shell's configuration +for a handy shortcut (or any other alias as you choose)