commit 80c90646c6f01bbddc9acdbb94699cfbf85f6ea7
parent 1de29178dc8f3f92ca625345da4119604a77246a
Author: Ville-Matias Heikkila <viznut@low.fi>
Date: Wed, 8 Jun 2022 13:19:30 +0300
Add protocols & www
Diffstat:
| A | WWW.mdwn | | | 86 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | protocols.mdwn | | | 45 | +++++++++++++++++++++++++++++++++++++++++++++ |
2 files changed, 131 insertions(+), 0 deletions(-)
diff --git a/WWW.mdwn b/WWW.mdwn
@@ -0,0 +1,86 @@
+The **World Wide Web** (**WWW** or simply the **Web**), invented in 1989, is
+the dominant way of using the [[Internet]] and also the world's dominant
+software platform. It is based on files located on servers and linking to
+each other by URLs that usually indicate the [[protocol|protocols]], server
+address and the path to the file. The protocol is usually [[HTTP]](S) and
+the document format is [[HTML]], but other protocols and document formats
+may also be used as long as they support URL-based linking.
+
+## Problems
+
+Problems of WWW from the permacomputing point of view:
+
+Even though HTTP is a simple protocol and the basic HTML is a simple
+format, the current standards are [[bloat]]ed and only a few [[web browser]]
+engines are able to support them at the commonly required level.
+
+A URL only points to a single server (or a cluster that looks like one), so
+its usability depends on the availability of that server. When a server is
+gone, so are all the links that point to it. If a server is temporarily
+offline, there's no backup plan for locating the files elsewhere.
+
+The design thus discourages small and temporary servers while encouraging
+large and centralized servers that maximize their availability. The design
+also discourages local copies and mirroring (that used to be a common
+practice when [[FTP]] was big).
+
+## Attempts to fix the problems
+
+[[Internet Archive]] (which is another centralized service) partially solves
+the problem of broken links and vanishing files by sometimes providing
+usable copies of the vanished files.
+
+The [[SmolNet]] movement advocates simpler formats and alternative protocols
+(such as [[Gopher]] or [[Gemini]]) as well as small and personal servers,
+but hasn't yet done much to address the URL problem that makes those small
+servers unappealing.
+
+[[Web3]] is supposedly an attempt to decentralize the web by using dubious
+technologies such as [[blockchain]]. The concept/buzzword has so far
+received a lot of criticism.
+
+[[IPFS]] is a [[peer-to-peer]] protocol that makes it possible to put files
+in a decentralized space with no reference to specific servers. The URLs are
+monstrous but at least the protocol makes decentralized peer-to-peer
+websites technically possible.
+
+## Web & Permacomputing
+
+Overall, the web is not very compatible with permacomputing, particularly
+due to its low offline tolerance and its server-specific way of referring to
+resources.
+
+However, its dominant status often justifies its use at least as a way to
+ensure some level of cross-platform compatibility and accessibility in
+today's computing world. An application that only supports a few platforms
+(such as iOS and Android) is usually an even worse idea than a web-only
+application. (For using a web browser as a target platform for arbitrary
+software, see [[web browser]])
+
+Some questions to ask when building something on the web:
+
+ * What does the site require on the client side? (The size and system requirements of the smallest browser it can be used with, the energy requirements of the client-side scripting (if used), bandwidth requirements)
+ * What does the site require on the server side? (Bandwidth, disk space, the memory/cpu requirements of the server-side scripting (if used))
+ * How easy is it to use the resources offline? (If the site consists of multiple static files, think about giving the option of downloading the content as a single file)
+ * Are you fine with the idea of people sharing your content on their own sites? (If yes, put it available under a free content licence and encourage people to spread it)
+ * Are there ways to use the site with a non-web protocol/client? ([[Permacomputing wiki]] can be edited via [[Git]], for example)
+ * What are you planning to use as a server? Purchasing of dedicated hardware should be avoided, but using something your community already has is a good idea. Using a time-sharing account to a small, local webhotel is usually a better idea than buying "cloud computing" from a multinational corporation.
+
+## Software
+
+A list of moderate-sized web browsers:
+
+ * [[Dillo]]
+ * [[Links]]
+ * [[Lynx]]
+ * [[W3C]]
+
+A list of moderate-sized web servers:
+
+ * [[lighttpd]]
+ * ...
+
+Common types of web applications:
+
+ * [[wiki]]
+ * ...
diff --git a/protocols.mdwn b/protocols.mdwn
@@ -0,0 +1,45 @@
+When assessing networking protocols, we should pay attention to at least:
+
+* Simplicity of implementation
+* Resource use (e.g. how much bandwidth is used compared to the actual amount of transferred information)
+* Offline tolerance (Does it depend on constant connectivity? How well does it work in a local network that has no world connectivity?)
+* Decentralization (How well does it tolerate small servers/peers that are not always online? Does the design encourage large centralized servers?)
+
+Some protocols:
+
+* [[WWW]]
+ * [[HTTP]]/[[HTML]]
+ * [[Gopher]]
+ * [[Gemini]]
+* Offline-tolerant messaging protocols
+ * [[Email]]
+ * [[Usenet]]
+ * [[Fidonet]]
+* Offline-intolerant messaging protocols
+ * [[IRC]]
+ * [[XMPP]]
+ * [[ActivityPub]]
+* Peer-to-peer
+ * [[BitTorrent]]
+ * [[IPFS]]
+* Encryption
+ * [[SSL]]
+* Remote access
+ * [[ssh]]
+ * [[mosh]]
+ * [[VNC]]
+ * [[X11]]
+* Wired device-to-device communication
+ * [[USB]]
+ * [[RS232]]
+ * [[Hayes command set]]
+* Character-based terminal connections
+ * [[ANSI X3.64]]
+ * [[RTTY]]
+* Packet networking
+ * [[Ethernet]]
+ * [[TCP/IP]]
+* Wireless networking
+ * [[Wi-Fi]]
+ * [[GSM]] and its successors (xG)
+ * [[AX.25]]