419 lines
20 KiB
HTML
419 lines
20 KiB
HTML
<!DOCTYPE html>
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<title>Small-Net</title>
|
|
</head>
|
|
<body>
|
|
<main>
|
|
<article>
|
|
<h1>Small-Net</h1>
|
|
<section>
|
|
<address class="h-card">
|
|
by
|
|
<a rel="author" class="u-url" href="http://changelog.ca/"><span class="p-given-name">Charles</span> <span class="p-additional-name">Iliya</span> <span class="p-family-name">Krempeaux</span></a>
|
|
</address>
|
|
</section>
|
|
<section>
|
|
<p>
|
|
<strong>Small-Net</strong> is a social-movement born in the late 2010s and early 2020s focused on using & creating technology that serve and to put the needs of individuals first, before everything else
|
|
—
|
|
and in particular:
|
|
</p>
|
|
<ul>
|
|
<li>the needs of the individual with respect to his or her active relationship with his or her friends and family, and</li>
|
|
<li>the needs of the individual with respect to joining and actively participating in one or more (usually <em>smaller</em>) communities.</li>
|
|
</ul>
|
|
<p>
|
|
"<strong>Small-Net</strong>" is also sometimes written (without the hyphen) as "<strong>smallnet</strong>", and (with "small" written as "smol") as "<strong>smolnet</strong>".
|
|
</p>
|
|
<p>
|
|
Related to <strong>small-net</strong> is "<strong>small-web</strong>", which is also sometimes written (without the hyphen) as "<strong>smallweb</strong>", and (with "small" written as "smol") as "<strong>smolweb</strong>".
|
|
"<strong>Small-Web</strong>", in some contexts, can be be considered a sub-set of <strong>small-net</strong>; and in other contexts can be considered more or less synonymous with <strong>small-net</strong>.
|
|
</p>
|
|
</section>
|
|
<section>
|
|
<h2>Motivation</h2>
|
|
<p>
|
|
The <strong>small-net</strong> social-movement (as well as some other social-movements) was born out of a feeling that the modern (2010s and 2020s era) Internet, Web, and social-media are <em>broken</em>.
|
|
</p>
|
|
<p>
|
|
Reasons for feeling that the modern (2010s and 2020s era) Internet, Web, and social-media is broken include the ubiquity of individuals:
|
|
</p>
|
|
<ul>
|
|
<li>getting spied on,</li>
|
|
<li>getting tracked,</li>
|
|
<li>having their privacy taken away from them,</li>
|
|
<li>getting turned into a product, and sold,</li>
|
|
<li>getting their online identity taken away from them,</li>
|
|
<li>getting censored,</li>
|
|
<li>getting manipulated,</li>
|
|
<li>getting their source of income taken from them because it suits someone else's interests, and</li>
|
|
<li>getting controlled.</li>
|
|
</ul>
|
|
<p>
|
|
In addition to this, other reasons for feeling that the modern (2010s and 2020s era) Internet, Web, and social-media is broken include the ubiquity of and obtrusiveness of:
|
|
</p>
|
|
<ul>
|
|
<li>advertisements,</li>
|
|
<li>GDPR cookie consent pop-ups,</li>
|
|
<li>join-newsletter pop-ups, and</li>
|
|
<li>allow-notification pop-ups.</li>
|
|
</ul>
|
|
<p>
|
|
<strong>Small-Net</strong> is partially an attempt to fix these things by using and even creating alternatives to the modern (2010s and 2020s era) Internet, Web, and social-media.
|
|
</p>
|
|
</section>
|
|
<section>
|
|
<h2>Vintage Protocols</h2>
|
|
<p>
|
|
<strong>Small-Net</strong> enthusiasts are sometimes attracted to <em>vintage</em> computer networks protocols.
|
|
The <em>vintage</em> computer network protocols that tend to get a lot of attention from <strong>small-net</strong> enthusiasts include:
|
|
</p>
|
|
<ul>
|
|
<li>the <strong>finger</strong> protocol,</li>
|
|
<li>the <strong>gopher</strong> protocol, and</li>
|
|
<li>the <strong>telnet</strong> protocol.</li>
|
|
</ul>
|
|
<p>
|
|
With the <strong>gopher</strong> computer network protocol probably being the most popular of the three among <strong>small-net</strong> enthusiasts.
|
|
</p>
|
|
<p>
|
|
Some other <em>vintage</em> computer network protocols that also sometimes get attention from <strong>small-net</strong> enthusiasts include:
|
|
</p>
|
|
<ul>
|
|
<li>the <strong>active users protocol</strong> (IETF RFC-866),</li>
|
|
<li>the <strong>character generator protocol</strong> (<abbr title="character generator">CHARGEN</abbr>) (IETF RFC-864),</li>
|
|
<li>the <strong>daytime protocol</strong> (IETF RFC-867),</li>
|
|
<li>the <strong>discard protocol</strong> (IETF RFC-863),</li>
|
|
<li>the <strong>echo protocol</strong> (IETF RFC-862),</li>
|
|
<li>the <strong>network news transfer protocol</strong> (<abbr title="network news transfer protocol">NNTP</abbr>) (IETF RFC-977, RFC-1036, RFC-2980, RFC-3977, RFC-4642),</li>
|
|
<li>the <strong>post office protocol</strong> (<abbr title="post office protocol">POP</abbr>),</li>
|
|
<li>the <strong>quote of the day protocol</strong> (IETF RFC-865),</li>
|
|
<li>the <strong>simple mail transfer protocol</strong> (<abbr title="simple mail transfer protocol">SMTP</abbr>),</li>
|
|
<li>the <strong>time protocol</strong> (IETF RFC-868), and</li>
|
|
<li>the <strong>UUCP</strong> protocol.</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h2>Vintage Data Formats</h2>
|
|
<p>
|
|
Some <em>vintage</em> file data formats have also attracted the attention of <strong>small-net</strong> enthusiasts; namely:
|
|
</p>
|
|
<ul>
|
|
<li>the <strong>ANSI</strong> text format,</li>
|
|
<li>the <strong>ASCII</strong> text format,</li>
|
|
<li>the <strong>Code Page 437</strong> (<abbr title="code page 437">CP437</abbr>) text format,</li>
|
|
<li>the <strong>Mattel Aquarius</strong> text format,</li>
|
|
<li>the <strong>PETSCII</strong> text format,</li>
|
|
<li>the <strong>Teletext</strong> text format,</li>
|
|
<li>the <strong>TRS-80</strong> text format,</li>
|
|
<li>the <strong>Videotex</strong> text format,</li>
|
|
<li>the <strong>XSL</strong> style format,</li>
|
|
<li>the <strong>XSLT</strong> style format,</li>
|
|
<li>the <strong>XHTML</strong> document format,</li>
|
|
<li>the <strong>XML</strong> data format,</li>
|
|
<li>the <strong>ZX80</strong> text format, and</li>
|
|
<li>the <strong>ZX81</strong> text format.</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h2>"Modernization"</h2>
|
|
<p>
|
|
Although many <strong>small-net</strong> enthusiasts are attracted to <em>vintage</em> protocols, some have found those <em>vintage</em> protocols difficult to work with and lacking features they feel as important.
|
|
</p>
|
|
<p>
|
|
A reaction to this is that there have been attempts to create "modernized" versions of these <em>vintage</em> protocols, while trying to avoid the mistakes of the modern (2010s and 2020s era) Internet, Web, and social-media.
|
|
</p>
|
|
<p>
|
|
"Modernization" can include:
|
|
</p>
|
|
<ul>
|
|
<li>including support for Unicode <abbr title="Unicode Transformation Format — 8-bit">UTF-8</abbr>,</li>
|
|
<li>including support for <abbr title="Uniform Resource Locator">URL</abbr>s and <abbr title="Uniform Resource Identifier">URI</abbr>s,</li>
|
|
<li>including support for hypertext,</li>
|
|
<li>including support for rich-text, and</li>
|
|
<li>including support for media.</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h2>Retro Protocols</h2>
|
|
<p>
|
|
Some <em>retro</em> protocols — that are attempts to "modernize" specific <em>vintage</em> protocols — that have come out of the <strong>small-net</strong> communities include:
|
|
</p>
|
|
<ul>
|
|
<li>the <strong>gemini</strong> protocol,</li>
|
|
<li>the <strong>mercury</strong> protocol,</li>
|
|
<li>the <strong>nex</strong> protocol, and</li>
|
|
<li>the <strong>spartan</strong> protocol.</li>
|
|
</ul>
|
|
<p>
|
|
With —
|
|
</p>
|
|
<ul>
|
|
<li>the <strong>gemini</strong> protocol being an attempt to "moderize" the <strong>gopher</strong> protocol, while not enabling the same mistakes of the Web,</li>
|
|
<li>the <strong>mercury</strong> protocol more or less being the <strong>gemini</strong> protocol without TLS encryption,</li>
|
|
<li>the <strong>spartan</strong> protocol being an alternative to the <strong>gemini</strong> protocol that does less "modernizations", and</li>
|
|
<li>the <strong>nex</strong> protocol being an attempt to be even simpler than and even fixing some aspects of the <strong>gemini</strong> protocol.</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h2>Retro Data Formats</h2>
|
|
<p>
|
|
Some other <em>retro</em> file data formats — that are attempts to "modernize" specific <em>vintage</em> file data formats — that either have come out of the <strong>small-net</strong> communities or have drawn the attention of people in the <strong>small-net</strong> communities include:
|
|
</p>
|
|
<ul>
|
|
<li>the <strong>gemtext</strong> format,</li>
|
|
<li>the <strong>json feed</strong> format,</li>
|
|
<li>the <strong>markdown</strong> format,</li>
|
|
<li>the <strong>nex directory</strong> format, and</li>
|
|
<li>the <strong>twtxt</strong> format.</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h2>Other Protocols and Formats</h2>
|
|
<p>
|
|
Although <em>not</em> generally considered part of <strong>small-net</strong>, these protocols and file data formats are also often of interest to <strong>small-net</strong> enthusiasts:
|
|
</p>
|
|
<ul>
|
|
<li>acct-URI,</li>
|
|
<li>hash-URI,</li>
|
|
<li>magnet-URI,</li>
|
|
<li>the <strong>ActivityPub</strong> protocol,</li>
|
|
<li>the <strong>ActivityStream</strong> protocol,</li>
|
|
<li>the <strong>at-protocol</strong>,</li>
|
|
<li>the <strong>BitTorrent</strong> protocol,</li>
|
|
<li>the <strong>kademlia</strong> protocol,</li>
|
|
<li>the <strong>gnutella</strong> protocol,</li>
|
|
<li>the <strong>node to node copy</strong> protocol (NNCP),</li>
|
|
<li>the <strong>nostr</strong> protocol,</li>
|
|
<li>the <strong>secure scuttlebutt</strong> protocol, and</li>
|
|
<li>the <strong>WebFinger</strong> protocol.</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h2>Small-Net Goals</h2>
|
|
<p>
|
|
There are a loose collection of <em>goals</em> that seem to be commonly desired by <strong>small-net</strong> enthusiasts.
|
|
These goals in part explain why certain protocols and file data formats are of interest.
|
|
</p>
|
|
<p>
|
|
Not all <strong>small-net</strong> enthusiasts desire all of these <em>goals</em>.
|
|
And some of these <em>goals</em> are even in conflict with each other.
|
|
</p>
|
|
<p>
|
|
But one does not have to satisfy all of these <em>goals</em> in the same protocol.
|
|
</p>
|
|
<p>
|
|
And also, noting all these different <em>goals</em> is important to understanding the <strong>small-net</strong> social-movement, even if some are in conflict.
|
|
</p>
|
|
<p>
|
|
These <em>goals</em> seem to be (in alphabetical order based on category):
|
|
</p>
|
|
<section>
|
|
<h3>Alternative</h3>
|
|
<ul>
|
|
<li>be an alterative platform for cross-platform application development,</li>
|
|
<li>be an alterative platform for static files (rather than applications),</li>
|
|
<li>be an alterative to BBS,</li>
|
|
<li>be an alterative to the e-mail protocols,</li>
|
|
<li>be an alterative to the finger protocol,</li>
|
|
<li>be an alterative to the gopher protocol,</li>
|
|
<li>be an alterative to big social-media,</li>
|
|
<li>be an alterative to the telnet protocol,</li>
|
|
<li>be an alterative to the modern Web,</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h3>Archivism</h3>
|
|
<ul>
|
|
<li>be accommodating to servers with intermittent up-time,</li>
|
|
<li>(also) be available via non-Internet means in a seamless way,</li>
|
|
<li>be aware of archives,</li>
|
|
<li>be aware of mirrors,</li>
|
|
<li>be easy to archive,</li>
|
|
<li>be easy to mirror,</li>
|
|
<li>be off-line first,</li>
|
|
<li>be resistant to censorship,</li>
|
|
<li>be resistant to Internet domain-name expiration,</li>
|
|
<li>be resistant to Internet domain-name seizure,</li>
|
|
<li>be resistant to link-rot,</li>
|
|
<li>be resistant to server seizure,</li>
|
|
<li>be resistant to server termination,</li>
|
|
<li>be servable from the most common computers — mobile phones, tablets, and laptops,</li>
|
|
<li>encourage archiving,</li>
|
|
<li>encourage mirroring,</li>
|
|
<li>include support for a single complete download of "everything",</li>
|
|
<li>include support for downloading just the "latest" updates,</li>
|
|
<li>make archiving automatic,</li>
|
|
<li>make mirroring automatic,</li>
|
|
<li>make it so a 'response' can be a full resource for a single request (ex: don't have to go download extra images, pages, CSS, JS, etc),</li>
|
|
<li>support a single download of many files,</li>
|
|
<li>support a an archival download of many files,</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h3>Better</h3>
|
|
<ul>
|
|
<li>be faster,</li>
|
|
<li>be more private,</li>
|
|
<li>be more secure,</li>
|
|
<li>support 'directories' (of files),</li>
|
|
<li>support machine-legible semantics,</li>
|
|
<li>support 'partials',</li>
|
|
<li>support parameterized 'partials',</li>
|
|
<li>support 'slots',</li>
|
|
<li>support the separation of content from navigation/UI,</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h3>Fix</h3>
|
|
<ul>
|
|
<li>be a "fixed" version of the e-mail protocols,</li>
|
|
<li>be a "fixed" version of the gopher protocol,</li>
|
|
<li>be a "fixed" version of the gemini protocol,</li>
|
|
<li>fix identity,</li>
|
|
<li>be a "fixed" version of the NNTP protocol,</li>
|
|
<li>fix payments,</li>
|
|
<li>fix the Internet,</li>
|
|
<li>be a "fixed" version of social-media,</li>
|
|
<li>be a "fixed" version of the Web,</li>
|
|
<li>be a "fixed" version of Usenet,</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h3>Legibility</h3>
|
|
<ul>
|
|
<li>the protocol should be programmer-legible,</li>
|
|
<li>the protocol should be simple enough for a competent software developer of 3 to 10 years of experience to be able to create a (simple) working <em>client</em> as a weekend project,</li>
|
|
<li>the protocol should be simple enough for a competent software developer of 3 to 10 years of experience to be able to create a (simple) working <em>server</em> as a weekend project,</li>
|
|
<li>the protocol should be simple enough for a competent software developer of 3 to 10 years of experience to successively add advanced features to their <em>client</em> as a series a weekend projects,</li>
|
|
<li>the protocol should be simple enough for a competent software developer of 3 to 10 years of experience to successively add advanced features to their <em>server</em> as a series a weekend projects,</li>
|
|
<li>the default file data format to be easy enough to parse for a software developer of 3 to 10 years of experience,</li>
|
|
<li>the default file data format should be human-legible — i.e., legible by humans who aren't programmers,</li>
|
|
<li>the default file data format to be writable by the average computer-literate (non-programmer) person using just a text-editor (for some definition of "text),</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h3>Lifeboat</h3>
|
|
<ul>
|
|
<li>be a viable lifeboat for evacuees from big social-media,</li>
|
|
<li>be a viable lifeboat for evacuees from the Web,</li>
|
|
<li>be a viable lifeboat for micro-blogging,</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h3>Modernizations</h3>
|
|
<ul>
|
|
<li>be a "modernized" version of <strong>BBS</strong> protocol (for some definition of "modernized"),</li>
|
|
<li>be a "modernized" version of the <strong>finger</strong> protocol (for some definition of "modernized"),</li>
|
|
<li>be a "modernized" version of the <strong>gopher</strong> protocol (for some definition of "modernized"),</li>
|
|
<li>be a "modernized" version of the <strong>telnet</strong> protocol (for some definition of "modernized"),</li>
|
|
<li>include support for content-addressing,</li>
|
|
<li>include support for hypertext,</li>
|
|
<li>include support for media (audio, images, video, etc),</li>
|
|
<li>include support for rich-text,</li>
|
|
<li>include support for Unicode <abbr title="Unicode Transformation Format — 8-bit">UTF-8</abbr>,</li>
|
|
<li>include support for <abbr title="Uniform Resource Locator">URL</abbr>s and <abbr title="Uniform Resource Identifier">URI</abbr>s,</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h3>Nostalgia</h3>
|
|
<ul>
|
|
<li>be nostalgic to those who were on-line (on the Internet, BBS, or elsewhere) in the 2000s</li>
|
|
<li>be nostalgic to those who were on-line (on the Internet, BBS, or elsewhere) in the 1990s</li>
|
|
<li>be nostalgic to those who were on-line (on the Internet, BBS, or elsewhere) in the 1980s</li>
|
|
<li>be nostalgic to those who were on-line (on the Internet, BBS, or elsewhere) in the 1970s</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h3>Revive</h3>
|
|
<ul>
|
|
<li>revive ASCII-art,</li>
|
|
<li>revive ANSI-art,</li>
|
|
<li>revive blogging,</li>
|
|
<li>revive the blogosphere,</li>
|
|
<li>revive blogrolls,</li>
|
|
<li>revive link directories,</li>
|
|
<li>revive long-form writing,</li>
|
|
<li>revive personal home-pages,</li>
|
|
<li>revive personal wikis,</li>
|
|
<li>revive self-contained sites,</li>
|
|
<li>revive something like the (pre-JavaScript pre-CSS) Web of the 1990s,</li>
|
|
<li>revive 'surfing' — going from page to page or site to site via one page or site linking to another page or site,</li>
|
|
<li>revive vlogging,</li>
|
|
<li>revive web-rings,</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h3>Perma-Computing</h3>
|
|
<ul>
|
|
<li>be resistant to software-rot,</li>
|
|
<li>support programming,</li>
|
|
<li>support setting pixels,</li>
|
|
<li>support Unix/Linux style piping,</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h3>Privacy</h3>
|
|
<ul>
|
|
<li>support anonymous usage,</li>
|
|
<li>support pseudononymous usage,</li>
|
|
<li>make spying (that feels ubiquitous on the Web) difficult if not impossible,</li>
|
|
<li>make tracking (that feels ubiquitous on the Web) difficult if not impossible,</li>
|
|
<li>prevent spying on what 'pages' you view or read,</li>
|
|
<li>prevent spying on what 'sites' you access content from (ex: being able to tell what Internet domain-names you resolve),</li>
|
|
<li>prevent web-bugs,</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h3>Take-Over Resistance</h3>
|
|
<ul>
|
|
<li>be decentralized,</li>
|
|
<li>be difficult to embrace-extend-extinguish (<abbr title="embrace-extend-extinguish">EEE</abbr>),</li>
|
|
<li>be distributed,</li>
|
|
<li>don't make Internet domain-names mandatory,</li>
|
|
<li>encourage multiple client software implementations,</li>
|
|
<li>encourage multiple server software implementations,</li>
|
|
<li>encourage a large number of client software implementations,</li>
|
|
<li>encourage a large number of server software implementations,</li>
|
|
<li>make creating <em>client</em> software a good learning exercise for students,</li>
|
|
<li>make creating <em>server</em> software a good learning exercise for students,</li>
|
|
<li>make creating your own <em>client</em> software easy to do for a a competent software developer of 3 to 10 years of experience,</li>
|
|
<li>make creating your own <em>server</em> software easy to do for a a competent software developer of 3 to 10 years of experience,</li>
|
|
<li>try to make it so multiple client software exists and new client software keeps on getting created, so that a malicious party doesn't have a single point of attack (i.., a single client) that if they compromise to compromise users' privacy,</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h3>Trust</h3>
|
|
<ul>
|
|
<li>avoid certificate authorities,</li>
|
|
<li>prevent or make 3rd-party content-modification detectable if not very difficult,</li>
|
|
<li>prevent or make man-in-the-middle (<abbr title="man-in-the-middle">MITM</abbr>) attacks very difficult,</li>
|
|
<li>prevent someone else from adding to your trusted keys,</li>
|
|
<li>prevent someone else deciding what your trusted keys are,</li>
|
|
<li>prevent someone else from replacing one or more of your trusted keys,</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h3>Unobtrusiveness</h3>
|
|
<ul>
|
|
<li>prevent or make advertisements very difficult,</li>
|
|
<li>prevent pop-ups,</li>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h3>User-Experience</h3>
|
|
<ul>
|
|
<li>get rid of the need for passwords,</li>
|
|
<li>be able to (also) be viewed from a terminal-emulator,</li>
|
|
<li>be able to (also) be viewed and used without (necessarily) needing a mouse,</li>
|
|
<li>have the default file data format be easy enough that an average person could learn to write it using just a text-editor (for some definition of “text”).</li>
|
|
</ul>
|
|
</section>
|
|
</section>
|
|
</article>
|
|
</main>
|
|
</body>
|
|
</html>
|