<!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, and</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>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>