472 lines
17 KiB
Plaintext
472 lines
17 KiB
Plaintext
|
Bikeshedding Working Group ~lucidiot, Ed.
|
|||
|
Bikeshed-Draft The Bikeshedding Company
|
|||
|
Intended status: Informational April 1, 2021
|
|||
|
Expires: October 1, 2021
|
|||
|
|
|||
|
|
|||
|
Web Feeds (WEED)
|
|||
|
draft-weed-00
|
|||
|
|
|||
|
Abstract
|
|||
|
|
|||
|
Members of the Tilde Pals mailing list have created a new community
|
|||
|
known as the Weeds. This memo formalizes the practices of this
|
|||
|
community to help The Bikeshedding Company find potential
|
|||
|
bikeshedding opportunities in this new trend.
|
|||
|
|
|||
|
Status of This Memo
|
|||
|
|
|||
|
This Bikeshed-Draft is submitted in full conformance with the
|
|||
|
provisions of BCP 78 and BCP 79.
|
|||
|
|
|||
|
Bikeshed-Drafts are working documents of the Bikeshedding Company
|
|||
|
Working Task Force (BC-WTF). Note that other groups may also
|
|||
|
distribute working documents as Bikeshed-Drafts. The list of current
|
|||
|
Bikeshed-Drafts does not exist.
|
|||
|
|
|||
|
Bikeshed-Drafts are draft documents valid for a maximum of six months
|
|||
|
and may be updated, replaced, or obsoleted by other documents at any
|
|||
|
time. It is inappropriate to use Bikeshed-Drafts as reference
|
|||
|
material or to cite them other than as "work in progress."
|
|||
|
|
|||
|
This Bikeshed-Draft will expire on September 26, 2021.
|
|||
|
|
|||
|
Copyright Notice
|
|||
|
|
|||
|
Copyright (c) 2021 The Bikeshedding Company and the persons
|
|||
|
identified as the document authors. All rights reserved.
|
|||
|
|
|||
|
This document is subject to BCP 78 and the Bikeshedding Company's
|
|||
|
Legal Provisions Relating to Bikeshedding Documents in effect on the
|
|||
|
date of publication of this document. Please review these documents
|
|||
|
carefully, as they describe your rights and restrictions with respect
|
|||
|
to this document.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
~lucidiot Informational [Page 1]
|
|||
|
|
|||
|
Bikeshed-Draft Web Feeds (WEED) April 2021
|
|||
|
|
|||
|
|
|||
|
Table of Contents
|
|||
|
|
|||
|
1. Introduction ....................................................2
|
|||
|
1.1. Notational Conventions .....................................2
|
|||
|
2. Concepts ........................................................2
|
|||
|
2.1. Weed Abbreviation ..........................................2
|
|||
|
2.2. Web Feeds ..................................................3
|
|||
|
2.3. Weed Users .................................................3
|
|||
|
2.4. Weed Ring ..................................................3
|
|||
|
3. Best Practices ..................................................4
|
|||
|
3.1. Linking ....................................................4
|
|||
|
3.2. HTTP Servers ...............................................4
|
|||
|
3.3. Multi-User Unix System Hosting .............................4
|
|||
|
4. Security COnsiderations .........................................5
|
|||
|
5. Internationalization Considerations .............................5
|
|||
|
6. Privacy Considerations ..........................................5
|
|||
|
7. IANA Considerations .............................................5
|
|||
|
8. References ......................................................6
|
|||
|
Appendix A. Warranty Exclusion Statement ...........................7
|
|||
|
Acknowledgements ...................................................8
|
|||
|
Author's Address ...................................................8
|
|||
|
|
|||
|
1. Introduction
|
|||
|
|
|||
|
This Request for Comments (RFC) is a formalisation of the basic
|
|||
|
rules that govern the community known as Weeds, a project developed
|
|||
|
outside of the Bikeshedding Company.
|
|||
|
|
|||
|
This RFC does not define a standard, but only represents the general
|
|||
|
consensus among the Weed Dealers and Consumers, to increase its
|
|||
|
accessibility for newcomers. The Bikeshedding Company believes that
|
|||
|
this project has a lot of potential for producing a high quality of
|
|||
|
bikeshedding in markets the company has not explored before.
|
|||
|
|
|||
|
1.1. Notational Conventions
|
|||
|
|
|||
|
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
|||
|
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
|
|||
|
"OPTIONAL" in this document SHALL NOT be interpreted as described in
|
|||
|
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
|
|||
|
capitals, as shown here.
|
|||
|
|
|||
|
2. Concepts
|
|||
|
|
|||
|
2.1. Weed Abbreviation
|
|||
|
|
|||
|
The users of Project Gemini [GEMINI] have coined the term "gemlog"
|
|||
|
to refer to the Gemini equivalent of a blog, as a "blog" is the
|
|||
|
diminutive of "web log", and a gemlog is not on the web.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
~lucidiot Informational [Page 2]
|
|||
|
|
|||
|
Bikeshed-Draft Web Feeds (WEED) April 2021
|
|||
|
|
|||
|
|
|||
|
Similarly, a Weed is a web feed. A weed allows its creator to
|
|||
|
publish content similar to what would be published on a blog, but
|
|||
|
the content is not intended to be seen in a web browser; instead, it
|
|||
|
should be viewed in a feed reader. The web log is therefore closer
|
|||
|
to a web feed.
|
|||
|
|
|||
|
2.2. Web Feeds
|
|||
|
|
|||
|
A Web Feed is a syndication feed provided in a format such as RDF
|
|||
|
Site Summary [RSS1], Really Simple Syndication [RSS2], Atom
|
|||
|
[RFC4287], Channel Definition Format [CDF], JSON Feed [JSONFEED],
|
|||
|
Meta Content Framework [MCF], Hina-Di [HINA], or Last modified
|
|||
|
Information Relaying Specification [LIRS], over an open HTTP, HTTPS
|
|||
|
[RFC7230] [RFC7231] [RFC7232] [RFC7233] [RFC7234] [RFC7235], Gopher
|
|||
|
[RFC1436] or Gemini [GEMINI] server. This list is not exhaustive.
|
|||
|
|
|||
|
The contents of a Web Feed MUST NOT be easily readable in a web
|
|||
|
browser that does not have built-in support for the weed's format.
|
|||
|
Most modern browsers have removed support for RSS and Atom. CDF has
|
|||
|
been dropped since 2009 and JSON Feed has not seen much adoption.
|
|||
|
|
|||
|
Publishing the contents of a weed to a server such as a version
|
|||
|
control system with a web interface counts as violating the above
|
|||
|
rule. Version control systems without web interfaces, or whose web
|
|||
|
interfaces do not allow access to the weed to users outside of the
|
|||
|
Weed Community, are acceptable.
|
|||
|
|
|||
|
2.3. Weed Users
|
|||
|
|
|||
|
A weed content writer is known as a Weed Dealer, as a reference to
|
|||
|
the recreative substance. Similarly, a reader is known as a Weed
|
|||
|
Consumer. Most Weed users are both Dealers and Consumers, and all
|
|||
|
users are strongly encouraged to interact with each other.
|
|||
|
|
|||
|
2.4. Weed Ring
|
|||
|
|
|||
|
The Weed Ring is a technique allowing Weed Consumers to find other
|
|||
|
Weed Dealers. A Weed Dealer is encouraged to share links to other
|
|||
|
Weed Dealers they know of in their own Weed, allowing Consumers to
|
|||
|
read the feed to find other Dealers and ensure a newcomer to the
|
|||
|
community is not forgotten, or missed, by everyone else.
|
|||
|
|
|||
|
Weed Dealers can share other feeds by many means:
|
|||
|
|
|||
|
- Creating an Outline Processor Markup Language [OPML] file which
|
|||
|
references the feeds in "rss" outline types, then linking to this
|
|||
|
file from inside one of their published articles.
|
|||
|
|
|||
|
- Using the proposed Subscription module [MODSUB] of RSS 1.0 to
|
|||
|
denote other channels in the RSS feed itself.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
~lucidiot Informational [Page 3]
|
|||
|
|
|||
|
Bikeshed-Draft Web Feeds (WEED) April 2021
|
|||
|
|
|||
|
|
|||
|
- Using the "related" link relation type in Atom to link to other
|
|||
|
channels in an Atom feed.
|
|||
|
|
|||
|
- Using the Channel Definition Format's channel nesting feature.
|
|||
|
|
|||
|
- Using the Hina-Di entity block propagation feature.
|
|||
|
|
|||
|
- Linking to the related feeds in an item of a feed of any format,
|
|||
|
in a way that can be read and understood manually by a user.
|
|||
|
|
|||
|
The Weed Ring is also known as the Daisy Chain.
|
|||
|
|
|||
|
3. Best Practices
|
|||
|
|
|||
|
3.1. Linking
|
|||
|
|
|||
|
Linking to weeds, or to files internal to a weed on a medium other
|
|||
|
than another weed, or another file internal to a weed, MUST NOT be
|
|||
|
done without the explicit consent of the Weed Dealer.
|
|||
|
|
|||
|
An exception can be made to this rule if the link is sent to a
|
|||
|
community, or over a technology, where it can only be read by a
|
|||
|
group of Weed users, a group of Weed non-users trusted by both the
|
|||
|
Weed Dealer and the author sharing the link, or a group made of both
|
|||
|
of the aforementioned categories. Examples include the Bikeshedding
|
|||
|
Company, the Tilde Pals, and the Flying Basement.
|
|||
|
|
|||
|
3.2. HTTP Servers
|
|||
|
|
|||
|
The contents of the directory that holds the weed and any of its
|
|||
|
related files SHOULD NOT be listable, to make the discovery of the
|
|||
|
weed less likely.
|
|||
|
|
|||
|
An additional layer of security through obscurity can be achieved in
|
|||
|
servers capable of dynamic webpage generation, for example servers
|
|||
|
using CGI [RFC3875], by applying restrictions on user agents to block
|
|||
|
web browsers.
|
|||
|
|
|||
|
3.3. Multi-User Unix System Hosting
|
|||
|
|
|||
|
Many weeds are hosted on tildes, pubnixes or other multi-user Unix
|
|||
|
or Unix-derived systems. Weeds hosted on those systems SHOULD be
|
|||
|
properly protected against discovery by third parties from inside the
|
|||
|
system to ensure the invisible state of weeds. Such a level of
|
|||
|
protection can be achieved using file permissions and access control
|
|||
|
lists:
|
|||
|
|
|||
|
- Make the weed's parent directory and any of its contents only
|
|||
|
accessible to the owner and the HTTP server.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
~lucidiot Informational [Page 4]
|
|||
|
|
|||
|
Bikeshed-Draft Web Feeds (WEED) April 2021
|
|||
|
|
|||
|
|
|||
|
- Make the weed's directory and any sub-directories readable only by
|
|||
|
the owner; this makes reading a particular file possible, but not
|
|||
|
listing the available files in a directory.
|
|||
|
|
|||
|
4. Internationalization Considerations
|
|||
|
|
|||
|
Many syndication formats that could be used for Weeds use old text
|
|||
|
encodings that may not be displayed properly by modern systems or
|
|||
|
allow encoding any alphabet or any language. When a format uses XML,
|
|||
|
it is RECOMMENDED to specify its encoding using the encoding
|
|||
|
attribute of XML declarations:
|
|||
|
|
|||
|
<?xml version="1.0" encoding="utf-8"?>
|
|||
|
|
|||
|
For text formats, the charset parameter [RFC2046] can be used to
|
|||
|
specify the encoding, if it differs from US-ASCII.
|
|||
|
|
|||
|
UTF-8 is the preferred encoding. If a format's specification allows
|
|||
|
using UTF-8, it SHOULD be used, even if the specification says a
|
|||
|
different encoding is preferred. If a format's specification
|
|||
|
requires a different encoding, that encoding MUST be used.
|
|||
|
If a format's specification does not indicate any encoding, then
|
|||
|
UTF-8 MUST be used.
|
|||
|
|
|||
|
5. Security and Privacy Considerations
|
|||
|
|
|||
|
The Weed community has the potential to create a false sense of
|
|||
|
privacy in inexperienced Weed Dealers, who might think nothing
|
|||
|
published in a weed might ever exit it and might disclose private
|
|||
|
information that they wished to only share to the community and not
|
|||
|
to the rest of the Internet.
|
|||
|
|
|||
|
It is believed that three factors will be able to contribute to
|
|||
|
minimizing those risks without requiring a technical change:
|
|||
|
|
|||
|
- The complexity of writing a syndication feed by hand.
|
|||
|
|
|||
|
- The desire to keep the Tilde Pals community, from which come all
|
|||
|
of the Weed Dealers and Consumers, small enough to remain
|
|||
|
human-sized.
|
|||
|
|
|||
|
- The trust and cooperation encouraged within the Tilde Pals
|
|||
|
community, empowering more privacy-conscious users to warn their
|
|||
|
fellow less-privacy-conscious users.
|
|||
|
|
|||
|
6. IANA Considerations
|
|||
|
|
|||
|
This document has no IANA actions.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
~lucidiot Informational [Page 5]
|
|||
|
|
|||
|
Bikeshed-Draft Web Feeds (WEED) April 2021
|
|||
|
|
|||
|
|
|||
|
7. References
|
|||
|
|
|||
|
[CDF] Ellerman, C., "Channel Definition Format (CDF)", W3C
|
|||
|
Note NOTE-CDFsubmit, March 1997,
|
|||
|
<https://www.w3.org/TR/NOTE-CDFsubmit.html>.
|
|||
|
|
|||
|
[GEMINI] Solderpunk, "Project Gemini", Speculative specification,
|
|||
|
v0.14.3, November 2020, <gemini://
|
|||
|
gemini.circumlunar.space/docs/specification.gmi>
|
|||
|
|
|||
|
[HINA] kohgushi, "Asahina-Antenna meta data format version 2.2
|
|||
|
(HINA/2.2)", Revision 0.13, July 2002,
|
|||
|
<https://envs.net/~lucidiot/hina/hina2_2-rev0_13.html>.
|
|||
|
|
|||
|
[JSONFEED] Simmons, B. and M. Reece, "JSON Feed Version 1.1",
|
|||
|
August 2020, <https://jsonfeed.org/version/1.1>.
|
|||
|
|
|||
|
[LIRS] Hiya, "Last modified Information Relaying
|
|||
|
Specification", Version 2.1, December 2001,
|
|||
|
<http://aniki.haun.org/natsu/LIRS.html>.
|
|||
|
|
|||
|
[MCF] Guka, R. V., and T. Bray, "Meta Content Framework Using
|
|||
|
XML", W3C Note MCF-XML-970624, June 1997,
|
|||
|
<https://www.w3.org/TR/NOTE-MCF-XML-970624/>.
|
|||
|
|
|||
|
[MODSUB] Burton, K., "RDF Site Summary 1.0 Modules:
|
|||
|
Subscription", July 2002,
|
|||
|
<http://web.resource.org/rss/1.0/modules/subscription/>.
|
|||
|
|
|||
|
[OPML] Winer, D., "OPML 2.0", November 2007,
|
|||
|
<http://dev.opml.org/spec2.html>.
|
|||
|
|
|||
|
[RFC1436] Anklesaria, F., McCahill, M., Lindner, P., Johnson, D.,
|
|||
|
Torrey, D., Alberti, B., "The Internet Gopher Protocol
|
|||
|
(a distributed document search and retrieval protocol)",
|
|||
|
RFC 1436, DOI 10.17847/RFC1436, March 1993,
|
|||
|
<https://www.rfc-editor.org/info/rfc1436>.
|
|||
|
|
|||
|
[RFC2046] Freed, N., Borenstein, N., "Multipurpose Internet Mail
|
|||
|
Extensions (MIME) Part Two: Media Types", RFC 2046, DOI
|
|||
|
10.17487/RFC2046, November 1996,
|
|||
|
<https://www.rfc-editor.org/info/rfc2046>.
|
|||
|
|
|||
|
[RFC3875] Robinson, D., Coar, K., "The Common Gateway Interface
|
|||
|
(CGI) Version 1.1", RFC 3875, DOI 10.17487/RFC3875,
|
|||
|
October 2004, <https://www.rfc-editor.org/info/rfc3875>.
|
|||
|
|
|||
|
[RFC4287] Nottingham, M., Sayre, R., "The Atom Syndication
|
|||
|
Format", RFC 4287, DOI 10.17487/RFC4287, December 2005,
|
|||
|
<https://www.rfc-editor.org/info/rfc4287>.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
~lucidiot Informational [Page 6]
|
|||
|
|
|||
|
Bikeshed-Draft Web Feeds (WEED) April 2021
|
|||
|
|
|||
|
|
|||
|
[RFC7230] Fielding, R., Reschke, J., "Hypertext Transfer Protocol
|
|||
|
(HTTP/1.1): Message Syntax and Routing", RFC 7230,
|
|||
|
DOI 10.17487/RFC7230, June 2014,
|
|||
|
<https://www.rfc-editor.org/info/rfc7230>.
|
|||
|
|
|||
|
[RFC7231] Fielding, R., Reschke, J., "Hypertext Transfer Protocol
|
|||
|
(HTTP/1.1): Semantics and Content", RFC 7231,
|
|||
|
DOI 10.17487/RFC7231, June 2014,
|
|||
|
<https://www.rfc-editor.org/info/rfc7231>.
|
|||
|
|
|||
|
[RFC7232] Fielding, R., Reschke, J., "Hypertext Transfer Protocol
|
|||
|
(HTTP/1.1): Conditional Requests", RFC 7232,
|
|||
|
DOI 10.17487/RFC7232, June 2014,
|
|||
|
<https://www.rfc-editor.org/info/rfc7232>.
|
|||
|
|
|||
|
[RFC7233] Fielding, R., Lafon, Y., Reschke, J., "Hypertext
|
|||
|
Transfer Protocol (HTTP/1.1): Range Requests", RFC 7233,
|
|||
|
DOI 10.17487/RFC7233, June 2014,
|
|||
|
<https://www.rfc-editor.org/info/rfc7233>.
|
|||
|
|
|||
|
[RFC7234] Fielding, R., Nottingham, M., Reschke, J., "Hypertext
|
|||
|
Transfer Protocol (HTTP/1.1): Caching", RFC 7234,
|
|||
|
DOI 10.17487/RFC7234, June 2014,
|
|||
|
<https://www.rfc-editor.org/info/rfc7234>.
|
|||
|
|
|||
|
[RFC7235] Fielding, R., Reschke, J., "Hypertext Transfer Protocol
|
|||
|
(HTTP/1.1): Authentication", RFC 7235,
|
|||
|
DOI 10.17487/RFC7235, June 2014,
|
|||
|
<https://www.rfc-editor.org/info/rfc7235>.
|
|||
|
|
|||
|
[RSS1] Beged-Dov, G., Brickley, D., Dornfest, R., Davis, I.,
|
|||
|
Dodds, L., Eisenzopf, J., Galbraith, D., Guha, R. V.,
|
|||
|
MacLeod, K., Miller, E., Swartz, A. and E. van der
|
|||
|
Vlist, "RDF Site Summary (RSS) 1.0", December 2000,
|
|||
|
<http://purl.org/rss/1.0/spec>.
|
|||
|
|
|||
|
[RSS2] RSS Advisory Board, "RSS 2.0 Specification", Version
|
|||
|
2.0.11, March 2009,
|
|||
|
<https://www.rss-board.org/rss-specification>.
|
|||
|
|
|||
|
Appendix A. Warranty Exclusion Statement
|
|||
|
|
|||
|
This document and the information contained herein is provided on an
|
|||
|
"AS IS" basis and TILDE.TOWN DISCLAIMS ALL WARRANTIES, EXPRESS OR
|
|||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
|
|||
|
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
|
|||
|
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
~lucidiot Informational [Page 7]
|
|||
|
|
|||
|
Bikeshed-Draft Web Feeds (WEED) April 2021
|
|||
|
|
|||
|
|
|||
|
Acknowledgements
|
|||
|
|
|||
|
The author would like to thank ~dozens for initiating the Weed
|
|||
|
community.
|
|||
|
|
|||
|
The author would like to thank all subscribers of tildepals for
|
|||
|
participating in, or at least putting up with, the Bikeshedding
|
|||
|
Company's bikeshedding activities, and most importantly thank
|
|||
|
themselves for existing and bringing such great shitposts to the
|
|||
|
greater community.
|
|||
|
|
|||
|
Author's Address
|
|||
|
|
|||
|
~lucidiot (editor)
|
|||
|
The Bikeshedding Company
|
|||
|
m455.casa
|
|||
|
72.137.16.55
|
|||
|
The Internet
|
|||
|
|
|||
|
Email: lucidiot@brainshit.fr
|
|||
|
URI: https://tilde.town/~lucidiot/
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
~lucidiot Informational [Page 8]
|