590 lines
21 KiB
Plaintext
590 lines
21 KiB
Plaintext
Bikeshedding Working Group ~lucidiot, Ed.
|
||
Request for Bikeshedding: 3 The Bikeshedding Company
|
||
Category: Informational April 4, 2021
|
||
|
||
|
||
Web Feeds (WEED)
|
||
|
||
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 document is not a Bikeshedding Standards Track specification; it
|
||
is published for informational purposes.
|
||
|
||
This document is a product of the Bikeshedding Company Working Task
|
||
Force (BC-WTF). It represents the consensus of the Bikeshedding
|
||
community. It has received public review and has been approved for
|
||
publication by the Bikeshedding Engineering Steering Group (BESG).
|
||
Not all documents approved by the BESG are a candidate for any level
|
||
of Internet Standard; see Section 2 of RFC 7841.
|
||
|
||
Information about the current status of this document, any errata,
|
||
and how to provide feedback on it may be obtained on the tildepals
|
||
mailing list.
|
||
|
||
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]
|
||
|
||
RFB 3 Web Feeds (WEED) April 2021
|
||
|
||
|
||
Table of Contents
|
||
|
||
1. Introduction ....................................................2
|
||
1.1. Notational Conventions .....................................2
|
||
2. Concepts ........................................................3
|
||
2.1. Weed Abbreviation ..........................................3
|
||
2.2. Web Feeds ..................................................3
|
||
2.3. Weed Users .................................................3
|
||
2.4. Weed Ring ..................................................3
|
||
2.5. Sprout .....................................................4
|
||
3. Best Practices ..................................................4
|
||
3.1. Linking ....................................................4
|
||
3.2. HTTP Servers ...............................................4
|
||
3.3. Multi-User Unix System Hosting .............................5
|
||
3.4. Threading ..................................................5
|
||
3.5. RSS Considerations .........................................5
|
||
4. Internationalization Considerations .............................5
|
||
5. Security and Privacy Considerations .............................6
|
||
6. BANANA Considerations ...........................................6
|
||
6.1. Registration of an E-mail Signature Protocol Abbreviation ..6
|
||
6.2. Creation of Known Weeds Registry ...........................6
|
||
7. References ......................................................7
|
||
7.1. Normative References .......................................7
|
||
7.2. Informative References .....................................7
|
||
Appendix A. Warranty Exclusion Statement ...........................9
|
||
Acknowledgements ...................................................9
|
||
Author's Address ..................................................10
|
||
|
||
1. Introduction
|
||
|
||
This Request for Bikeshedding (RFB) 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.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
~lucidiot Informational [Page 2]
|
||
|
||
RFB 3 Web Feeds (WEED) April 2021
|
||
|
||
|
||
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.
|
||
|
||
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:
|
||
|
||
|
||
|
||
~lucidiot Informational [Page 3]
|
||
|
||
RFB 3 Web Feeds (WEED) April 2021
|
||
|
||
|
||
- 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.
|
||
|
||
- 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.
|
||
|
||
Weed Dealers that share other feeds SHOULD include all the weeds of
|
||
the Known Weeds BANANA registry.
|
||
|
||
The Weed Ring is also known as the Daisy Chain.
|
||
|
||
2.5. Sprout
|
||
|
||
A Sprout is a single weed post, item, article, published in a Weed.
|
||
|
||
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.
|
||
|
||
|
||
|
||
~lucidiot Informational [Page 4]
|
||
|
||
RFB 3 Web Feeds (WEED) April 2021
|
||
|
||
|
||
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.
|
||
|
||
- 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.
|
||
|
||
3.4. Threading
|
||
|
||
As Weeds form a rather tight-knit community, using a Sprout to reply
|
||
to another Sprout is a common and generally encouraged practice.
|
||
|
||
Most syndication formats do not specify ways to indicate a sprout
|
||
that another sprout replies to, or ways to refer to a single sprout
|
||
in a weed when sprouts do not have permalinks. Most formats will
|
||
usually refer to the HTML page that an item links to, but most weeds
|
||
do not have any links since everything is syndication-only.
|
||
|
||
The Atom Threading extensions [RFC4685] SHOULD be used in all
|
||
XML-based syndication formats that allow namespace extensions to
|
||
specify replies.
|
||
|
||
3.5. RSS Considerations
|
||
|
||
Weeds using the Really Simple Syndication or RDF Site Summary formats
|
||
SHOULD include the <guid> tag to allow other Weed Dealers to reply to
|
||
their sprouts or to avoid issues when an existing sprout is updated.
|
||
|
||
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 [RFC3629] is the preferred encoding. If a format's
|
||
specification allows using UTF-8, it SHOULD be used, even if the
|
||
|
||
|
||
~lucidiot Informational [Page 5]
|
||
|
||
RFB 3 Web Feeds (WEED) April 2021
|
||
|
||
|
||
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. BANANA Considerations
|
||
|
||
6.1. Registration of an E-mail Signature Protocol Abbreviation
|
||
|
||
This document registers a new item to the "E-mail Signature Protocol
|
||
Abbreviations" registry:
|
||
|
||
Abbreviation: WEED
|
||
|
||
Protocol name: Web Feeds
|
||
|
||
Protocol specification: This RFC
|
||
|
||
6.2. Creation of Known Weeds Registry
|
||
|
||
This document creates a new BANANA registry entitled "Known Weeds".
|
||
|
||
The policy for future assignments to this registry is First Come
|
||
First Served [RFC8126]. This registry has three fields: the Weed
|
||
URL, the syndication format, and the change controller.
|
||
|
||
The BANANA SHOULD notify the Bikeshedders of any updates to the
|
||
registry by sending an e-mail to the Tilde Pals mailing list along
|
||
with a reminder of the registration process.
|
||
|
||
The Weed URL MUST be unique, and MUST be a valid URL pointing to a
|
||
|
||
|
||
~lucidiot Informational [Page 6]
|
||
|
||
RFB 3 Web Feeds (WEED) April 2021
|
||
|
||
|
||
Weed. The syndication format is an arbitrary string, meant for Weed
|
||
Consumers to more easily tell which Weeds they can follow depending
|
||
on their own feed reader's supported formats when accessing the
|
||
registry. The Change Controller is the only person allowed to
|
||
contact BANANA and request a later change to a Known Weed.
|
||
|
||
The initial values for this registry are specified below:
|
||
|
||
URL Format Change Controller
|
||
------------------------------------------- ------ -----------------
|
||
[REDACTED] RSS2 ~dozens
|
||
[REDACTED] RSS2 ~lucidiot
|
||
[REDACTED] ATOM ~acdw
|
||
|
||
7. References
|
||
|
||
7.1. Normative References
|
||
|
||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||
Requirement Levels", BCP 14, RFC 2119,
|
||
DOI 10.17487/RFC2119, March 1997,
|
||
<https://www.rfc-editor.org/info/rfc2119>.
|
||
|
||
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
|
||
10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November
|
||
2003, <https://www.rfc-editor.org/info/rfc3629>.
|
||
|
||
[RFC4685] Snell, J., "Atom Threading Extensions", RFC 4685,
|
||
DOI 10.17487/RFC4685, September 2006,
|
||
<https://www.rfc-editor.org/info/rfc4685>.
|
||
|
||
[RFC8126] Cotton, M., Leiba, B. and Narten, T., "Guidelines for
|
||
Writing an IANA Considerations Section in RFCs", BCP 26,
|
||
RFC 8126, DOI 10.17487/RFC8126, June 2017,
|
||
<https://www.rfc-editor.org/info/rfc8126>.
|
||
|
||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
|
||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
|
||
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
|
||
|
||
7.2. Informative 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>.
|
||
|
||
|
||
|
||
|
||
|
||
~lucidiot Informational [Page 7]
|
||
|
||
RFB 3 Web Feeds (WEED) April 2021
|
||
|
||
|
||
[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>.
|
||
|
||
[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>.
|
||
|
||
|
||
|
||
|
||
~lucidiot Informational [Page 8]
|
||
|
||
RFB 3 Web Feeds (WEED) April 2021
|
||
|
||
|
||
[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.
|
||
|
||
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.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
~lucidiot Informational [Page 9]
|
||
|
||
RFB 3 Web Feeds (WEED) April 2021
|
||
|
||
|
||
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 10]
|