1
0
Fork 0
mirror of https://git.sr.ht/~seirdy/seirdy.one synced 2024-11-23 21:02:09 +00:00

Compare commits

..

6 commits

Author SHA1 Message Date
Rohan Kumar
dbde071af0
Typo 2022-06-28 17:44:53 -07:00
Rohan Kumar
d0e25a68d3
New note: feed-based social media 2022-06-28 17:33:14 -07:00
Rohan Kumar
6e6706af83
Add IndieWeb notes to site design doc 2022-06-28 17:31:29 -07:00
Rohan Kumar
3ce86a6750
Sitewide advertising industry opt-out
See https://iabtechlab.com/wp-content/uploads/2022/04/Ads.txt-1.1.pdf
and https://grapheneos.org/articles/sitewide-advertising-industry-opt-out
2022-06-28 08:59:07 -07:00
Rohan Kumar
05dbdb7748
Add CSS for <mark> elements.
Will be using them in a future post.
2022-06-28 08:52:07 -07:00
Rohan Kumar
b7e11852b6
Forgot to add gemtext output format 2022-06-28 08:45:13 -07:00
6 changed files with 63 additions and 2 deletions

View file

@ -18,6 +18,11 @@
color: #e6e6e6; color: #e6e6e6;
} }
mark {
color: #000;
background-color: #eee7b2;
}
/* Only color <a> if it's a link; if href is empty, let it be. */ /* Only color <a> if it's a link; if href is empty, let it be. */
a:link { a:link {
color: #eee7b2; color: #eee7b2;

View file

@ -324,6 +324,7 @@ pre {
* This is Technique C25 of SC 1.4.8 */ * This is Technique C25 of SC 1.4.8 */
input, input,
img, img,
mark, /* borders provide a distinguishing factor besides color */
pre, pre,
summary { summary {
border: 1px solid; border: 1px solid;

View file

@ -0,0 +1,16 @@
---
title: "Feed-based social media"
date: 2022-06-28T17:33:14-07:00
---
The core elements of a people-focused (as opposed to a community-focused) social network are subscribing to people for content and interacting with their content. Atom (and RSS) feeds already provide "subscription" functionality; what if we went further?
Atom feeds can serve as the foundation for distributed social media. The [OStatus protocol suite](https://en.wikipedia.org/wiki/OStatus) describes how Salmon, ActivityStreams, and threading extensions can turn an Atom feed into a "social media feed" that people can interact with. Throw in [WebSub](https://www.w3.org/TR/websub/) for real-time push-based updates. This OStatus + WebSub system was the precursor to the current ActivityPub-based [Fediverse](https://en.wikipedia.org/wiki/Fediverse).
[The IndieWeb](https://indieweb.org/) has similar concepts. The IndieWeb community uses [microformats](https://microformats.org/wiki/microformats2) for metadata, including the `h-feed` feed format. It also uses [Webmentions](https://webmention.net/) for interaction between sites.
Just out of curiosity, I implemented everything except for the Salmon protocol and WebSub. I prefer Webmentions to Salmon, though [extensions to the former seem to overlap with the latter](https://indieweb.org/Salmention). I've tried and failed to get WebSub working in the past; I might have to run my own hub (perhaps using [the websub-server Go package](https://github.com/tystuyfzand/websub-server)).
The best part of this approach is the simplicity. Besides a Webmention receiver and a WebSub hub, all you need is a static server to deliver markup files. A separate program on your machine (i.e. not necessarily your server) can ping your WebSub hub and send Webmentions; I happen to like the command-line program [Pushl](https://github.com/PlaidWeb/Pushl/). Once all the pieces come together, you start to wonder why we let social media companies flourish instead of lowering the barrier to join something like the IndieWeb. This is what the Web is made for.
I wrote more about this site's social features in [a section of the site design page]({{<relref site-design.md>}}#static-indieweb).

View file

@ -12,6 +12,7 @@ tags:
- accessibility - accessibility
outputs: outputs:
- html - html
- gemtext
--- ---
This began as a reply to another article by Lucas F. Costa; it lists practices to improve user-experience (<abbr title="User Experience">UX</abbr>) of command-line interfaces (<abbr title="Command-Line Interface">CLIs</abbr>). It comes from a good place, and has some good advice: I particularly like its advice on input-validation and understandable errors. Unfortunately, a number of its suggestions are problematic, particularly from an accessibility perspective. This began as a reply to another article by Lucas F. Costa; it lists practices to improve user-experience (<abbr title="User Experience">UX</abbr>) of command-line interfaces (<abbr title="Command-Line Interface">CLIs</abbr>). It comes from a good place, and has some good advice: I particularly like its advice on input-validation and understandable errors. Unfortunately, a number of its suggestions are problematic, particularly from an accessibility perspective.

View file

@ -94,9 +94,9 @@ Some engines I have not yet tested, but hope to try in the future:
Machine-friendliness Machine-friendliness
-------------------- --------------------
I think making a site machine-friendly is a great alternative perspective to traditional SEO, the latter of which I think tends to incentivise low-quality content and makes searching difficult. I think making a site machine-friendly is a great alternative perspective to traditional SEO, the latter of which I think tends to incentivise low-quality content and makes searching difficult. It's a big part of what I've decided to call ["agent optimization"](http://seirdy.one/notes/2022/06/23/agent-optimization/).
This site is **parser-friendly.** It uses polygot (X)HTML5 markup containing schema.org microdata, microformats2, and legacy microformats. Microformats are useful for IndieWeb compatibility; schema.org microdata is useful for various forms of content-extraction (such as "reading mode" implementations). I've also sprinkled in some Creative Commons vocabulary using RDFa syntax. This site is **parser-friendly.** It uses polygot (X)HTML5 markup containing schema.org microdata, microformats2, and legacy microformats. Microformats are useful for IndieWeb compatibility; schema.org microdata is useful for various forms of content-extraction (such as "reading mode" implementations) and search engines. I've also sprinkled in some Creative Commons vocabulary using RDFa syntax.
I make Atom feeds available for articles and notes, and have a combined Atom feed for both. These feeds are enhanced with Ostatus and ActivityStreams XML namespaces. I make Atom feeds available for articles and notes, and have a combined Atom feed for both. These feeds are enhanced with Ostatus and ActivityStreams XML namespaces.
@ -114,6 +114,43 @@ This site works well in the Diffbot article extractor. Diffbot powers a variety
This site does not work well in Chromium's DOM Distiller. DOM Distiller removes all level-2 headings in article bodies. This is likely because they appear alongside section permalinks, which combines poorly with a DOM-Distiller heuristic that strips out sections with a high link-density. DOM Distiller also does not show footnotes, and sometimes cuts off final sections (acknowledgements, conclusions). This site does not work well in Chromium's DOM Distiller. DOM Distiller removes all level-2 headings in article bodies. This is likely because they appear alongside section permalinks, which combines poorly with a DOM-Distiller heuristic that strips out sections with a high link-density. DOM Distiller also does not show footnotes, and sometimes cuts off final sections (acknowledgements, conclusions).
Static IndieWeb
---------------
One of my goals for this site was to see just how far I could take IndieWeb concepts on a fully static site with ancillary services to handle dynamism. Apart from the search-results page, this site is static on the back-end (all pages are statically-generated). All pages, including the search-results page, are fully static on the front-end (no JS).
[The IndieMark page](https://indieweb.org/IndieMark) lists all the ways you can "IndieWeb-ify" your site.
### Features I have already implemented
- IndieAuth compatibility
- Microformats: representative `h-card`, in-text `h-card` and `h-cite` when referencing works, `h-feed`.
- Sending and receiving Webmentions
- Displaying Webmentions in the form of link-backs and likes (inspired by Tumblr).
- Backfeeding content from silos: I'm only interested in backfilled content containing discussion, not "reactions" or "likes". Powered by Brid.gy
### Features I am not interested in
- Authoring tools, either through a protocol (e.g. MicroPub) or a dynamic webpage: I prefer writing posts in my `$EDITOR` and deploying with `git push`, letting a CI job build and deploy the site with `make deploy-prod`. This allows me to participate with the social Web using the same workflow I use for writing code.
- Full silo independence: I want to treat my site as a "filtered" view of me that I want to keep searchable and public. On other silos I might shitpost or make low-effort posts. These aren't private, but I want them to remain less prominent. I POSSE content to other places, but I don't exclusively use POSSE.
- Sharing my likes, favorites, reposts: I find these a bit too shallow for seirdy.one. I prefer "bookmarks" where I can give an editorialized description of the content I wish to share along with any relevant tags. I'll keep simple likes and reposts to silos.
- Rich reply-contexts: I'd rather have users click a link to visit the reply and use quoted text to respond to specific snippets, similar to interleaved-style email quoting.
### Features I am interested in
- WebSub. Had some issues with Superfeedr; I think I'll resort to running my own single-user hub.
- Automatic POSSE to the Fediverse (would be difficult with reply-contexts).
- Tags and topics.
- Displaying (truncated) Webmention entry contents instead of just titles and timestamps.
### Low-priority features I have some interest in
- RSVPs: I don't attend many events, let alone events for which I would broadcast my attendance. A page for this would be pretty empty.
- Event posts: same reason as above.
Privacy Privacy
------- -------

1
static/ads.txt Normal file
View file

@ -0,0 +1 @@
placeholder.example.com, placeholder, DIRECT, placeholder