permacomputing

Source repository for the main permacomputing wiki site
git clone http://git.permacomputing.net/repos/permacomputing.git # read-only access
Log | Files | Refs

WWW.mdwn (4445B)


      1 The **World Wide Web** (**WWW** or simply the **Web**), invented in 1989, is
      2 the dominant way of using the [[Internet]] and also the world's dominant
      3 software platform. It is based on files located on servers and linking to
      4 each other by URLs that usually indicate the [[protocol|protocols]], server
      5 address and the path to the file. The protocol is usually [[HTTP]](S) and
      6 the document format is [[HTML]], but other protocols and document formats
      7 may also be used as long as they support URL-based linking.
      8 
      9 ## Problems
     10 
     11 Problems of WWW from the permacomputing point of view:
     12 
     13 Even though HTTP is a simple protocol and the basic HTML is a simple
     14 format, the current standards are [[bloat]]ed and only a few [[web browser]]
     15 engines are able to support them at the commonly required level.
     16 
     17 A URL only points to a single server (or a cluster that looks like one), so
     18 its usability depends on the availability of that server. When a server is
     19 gone, so are all the links that point to it. If a server is temporarily
     20 offline, there's no backup plan for locating the files elsewhere.
     21 
     22 The design thus discourages small and temporary servers while encouraging
     23 large and centralized servers that maximize their availability. The design
     24 also discourages [[local copies and mirroring|file collection]] (that used to be a common
     25 practice when [[FTP]] was big).
     26 
     27 ## Attempts to fix the problems
     28 
     29 [[Internet Archive]] (which is another centralized service) partially solves
     30 the problem of broken links and vanishing files by sometimes providing
     31 usable copies of the vanished files.
     32 
     33 The [[Smallnet]] movement advocates simpler formats and alternative protocols
     34 (such as [[Gopher]] or [[Gemini]]) as well as small and personal servers,
     35 but hasn't yet done much to address the URL problem that makes those small
     36 servers unappealing.
     37 
     38 [[Web3]] is supposedly an attempt to decentralize the web by using dubious
     39 technologies such as [[blockchain]]. The concept/buzzword has so far
     40 received a lot of criticism.
     41 
     42 [[IPFS]] is a [[peer-to-peer]] protocol that makes it possible to put files
     43 in a decentralized space with no reference to specific servers. The URLs are
     44 monstrous but at least the protocol makes decentralized peer-to-peer
     45 websites technically possible.
     46 
     47 ## Web & Permacomputing
     48 
     49 Overall, the web is not very compatible with permacomputing, particularly
     50 due to its low offline tolerance and its server-specific way of referring to
     51 resources.
     52 
     53 However, its dominant status often justifies its use at least as a way to
     54 ensure some level of cross-platform compatibility and accessibility in
     55 today's computing world. An application that only supports a few platforms
     56 (such as iOS and Android) is usually an even worse idea than a web-only
     57 application. (For using a web browser as a target platform for arbitrary
     58 software, see [[web browser]])
     59 
     60 Some questions to ask when building something on the web:
     61 
     62   * Is this project something that actually needs the web or networking? If it can run locally, support running it locally.
     63   * 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)
     64   * What does the site require on the server side? (Bandwidth, disk space, the memory/cpu requirements of the server-side scripting (if used))
     65   * 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)
     66   * 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)
     67   * Are there ways to use the site with a non-web protocol/client? ([[Permacomputing wiki]] can be edited via [[Git]], for example)
     68   * 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 always a better idea than buying "cloud computing" from a multinational corporation (even if you'll only get 99.9% uptime instead of 99.999%).
     69 
     70 ## Software
     71 
     72 A list of moderate-sized web browsers:
     73 
     74   * [[Dillo]]
     75   * [[Links]]
     76   * [[Lynx]]
     77   * [[W3C]]
     78 
     79 A list of moderate-sized web servers:
     80 
     81   * [[lighttpd]]
     82   * ...
     83 
     84 Common types of web applications:
     85 
     86   * [[wiki]]
     87   * ...