Files
Kathleen Fitzpatrick 4277f0cd61 rebuild 11ty 3.1.0
2025-05-13 11:56:49 -04:00

713 lines
17 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Feeds and Gardens</title>
<meta name="description" content="The long-running and erratically updated blog of Kathleen Fitzpatrick.">
<link rel="alternate" href="feed/feed.xml" type="application/atom+xml" title="kfitz">
<script async="" src="https://talk.hyvor.com/embed/embed.js" type="module"></script>
<link rel="webmention" href="https://webmention.io/kfitz.info/webmention">
<link rel="pingback" href="https://webmention.io/kfitz.info/xmlrpc">
<style>/**
* okaidia theme for JavaScript, CSS and HTML
* Loosely based on Monokai textmate theme by http://www.monokai.nl/
* @author ocodia
*/
code[class*="language-"],
pre[class*="language-"] {
color: #f8f8f2;
background: none;
text-shadow: 0 1px rgba(0, 0, 0, 0.3);
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
font-size: 1em;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
border-radius: 0.3em;
}
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
background: #272822;
}
/* Inline code */
:not(pre) > code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: #8292a2;
}
.token.punctuation {
color: #f8f8f2;
}
.token.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.constant,
.token.symbol,
.token.deleted {
color: #f92672;
}
.token.boolean,
.token.number {
color: #ae81ff;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #a6e22e;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string,
.token.variable {
color: #f8f8f2;
}
.token.atrule,
.token.attr-value,
.token.function,
.token.class-name {
color: #e6db74;
}
.token.keyword {
color: #66d9ef;
}
.token.regex,
.token.important {
color: #fd971f;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
/*
* New diff- syntax
*/
pre[class*="language-diff-"] {
--eleventy-code-padding: 1.25em;
padding-left: var(--eleventy-code-padding);
padding-right: var(--eleventy-code-padding);
}
.token.deleted {
background-color: hsl(0, 51%, 37%);
color: inherit;
}
.token.inserted {
background-color: hsl(126, 31%, 39%);
color: inherit;
}
/* Make the + and - characters unselectable for copy/paste */
.token.prefix.unchanged,
.token.prefix.inserted,
.token.prefix.deleted {
-webkit-user-select: none;
user-select: none;
display: inline-flex;
align-items: center;
justify-content: center;
padding-top: 2px;
padding-bottom: 2px;
}
.token.prefix.inserted,
.token.prefix.deleted {
width: var(--eleventy-code-padding);
background-color: rgba(0,0,0,.2);
}
/* Optional: full-width background color */
.token.inserted:not(.prefix),
.token.deleted:not(.prefix) {
display: block;
margin-left: calc(-1 * var(--eleventy-code-padding));
margin-right: calc(-1 * var(--eleventy-code-padding));
text-decoration: none; /* override del, ins, mark defaults */
color: inherit; /* override del, ins, mark defaults */
}
/* This is an arbitrary CSS string added to the bundle */
/* Defaults */
@font-face {
font-family: "Atkinson Hyperlegible";
src: url('/css/files/atkinson-hyperlegible-latin-400-normal.woff2') format('woff2');
font-display: swap;
}
@font-face {
font-family: "Atkinson Hyperlegible";
font-weight: bold;
src: url('/css/files/atkinson-hyperlegible-latin-700-normal.woff2') format('woff2');
font-display: swap;
}
@font-face {
font-family: "Atkinson Hyperlegible";
font-style: italic
src: url('/css/files/atkinson-hyperlegible-latin-400-italic.woff2') format('woff2');
font-display: swap;
}
:root {
--font-family: "Atkinson Hyperlegible", -apple-system, system-ui, sans-serif;
--font-family-monospace: Consolas, Menlo, Monaco, Andale Mono WT, Andale Mono, Lucida Console, Lucida Sans Typewriter, DejaVu Sans Mono, Bitstream Vera Sans Mono, Liberation Mono, Nimbus Mono L, Courier New, Courier, monospace;
font-size: 18px;
}
/* Theme colors */
:root {
--color-gray-20: #e0e0e0;
--color-gray-50: #C0C0C0;
--color-gray-90: #333;
--background-color: #fff;
--text-color: var(--color-gray-90);
--text-color-link: #d61d4a;
--text-color-link-active: #853439;
--text-color-link-visited: #e8325e;
--syntax-tab-size: 2;
}
@media (prefers-color-scheme: dark) {
:root {
--color-gray-20: #e0e0e0;
--color-gray-50: #C0C0C0;
--color-gray-90: #dad8d8;
/* --text-color is assigned to --color-gray-_ above */
--text-color-link: #1493fb;
--text-color-link-active: #6969f7;
--text-color-link-visited: #a6a6f8;
--background-color: #15202b;
}
}
/* Global stylesheet */
* {
box-sizing: border-box;
}
@view-transition {
navigation: auto;
}
html,
body {
padding: 0;
margin: 0 auto;
font-family: var(--font-family);
color: var(--text-color);
background-color: var(--background-color);
}
html {
overflow-y: scroll;
}
body {
max-width: 40em;
}
/* https://www.a11yproject.com/posts/how-to-hide-content/ */
.visually-hidden {
clip: rect(0 0 0 0);
clip-path: inset(50%);
height: 1px;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}
p:last-child {
margin-bottom: 0;
}
p {
line-height: 1.5;
}
li {
line-height: 1.5;
}
a[href] {
color: var(--text-color-link);
}
a[href]:visited {
color: var(--text-color-link-visited);
}
a[href]:hover,
a[href]:active {
color: var(--text-color-link-active);
}
main,
footer {
padding: 1rem;
}
main :first-child {
margin-top: 0;
}
header {
border-bottom: 1px dashed var(--color-gray-20);
}
header:after {
content: "";
display: table;
clear: both;
}
footer {
border-top: 1px dashed var(--color-gray-50);
}
.links-nextprev {
display: flex;
justify-content: space-between;
gap: .5em 1em;
list-style: "";
border-top: 1px dashed var(--color-gray-20);
padding: 1em 0;
}
.links-nextprev > * {
flex-grow: 1;
}
.links-nextprev-next {
text-align: right;
}
table {
margin: 1em 0;
}
table td,
table th {
padding-right: 1em;
}
pre,
code {
font-family: var(--font-family-monospace);
}
pre:not([class*="language-"]) {
margin: .5em 0;
line-height: 1.375; /* 22px /16 */
-moz-tab-size: var(--syntax-tab-size);
-o-tab-size: var(--syntax-tab-size);
tab-size: var(--syntax-tab-size);
-webkit-hyphens: none;
-ms-hyphens: none;
hyphens: none;
direction: ltr;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
overflow-x: auto;
}
code {
word-break: break-all;
}
/* Header */
header {
display: flex;
gap: 1em .5em;
flex-wrap: wrap;
align-items: center;
padding: 1em;
}
.home-link {
font-size: 1.5em; /* 16px /16 */
font-weight: 700;
margin-right: 2em;
}
.home-link:link:not(:hover) {
text-decoration: none;
}
/* Nav */
.nav {
display: flex;
padding: 0;
margin: 0;
list-style: none;
}
.nav-item {
display: inline-block;
margin-right: 1em;
}
.nav-item a[href]:not(:hover) {
text-decoration: none;
}
.nav a[href][aria-current="page"] {
text-decoration: underline;
}
/* Posts list */
.postlist {
list-style: none;
padding: 0;
padding-left: 1.5rem;
}
.postlist-item {
display: flex;
flex-wrap: wrap;
align-items: baseline;
counter-increment: start-from -1;
margin-bottom: 1em;
}
.postlist-item:before {
display: inline-block;
pointer-events: none;
content: "" counter(start-from, decimal-leading-zero) ". ";
line-height: 100%;
text-align: right;
margin-left: -1.5rem;
}
.postlist-date,
.postlist-item:before {
font-size: 0.8125em; /* 13px /16 */
color: var(--color-gray-90);
}
.postlist-date {
word-spacing: -0.5px;
}
.postlist-link {
font-size: 1.1875em; /* 19px /16 */
font-weight: 700;
flex-basis: calc(100% - 1.5rem);
padding-left: .25em;
padding-right: .5em;
text-underline-position: from-font;
text-underline-offset: 0;
text-decoration-thickness: 1px;
}
.postlist-item-active .postlist-link {
font-weight: bold;
}
/* Archive list */
.archivelist {
padding: 0;
padding-left: 2.5rem;
}
.archivelist-item {
align-items: baseline;
margin-bottom: 1em;
}
.archivelist-item::marker {
text-align: right;
margin-left: -1.5rem;
font-size: 0.8125em; /* 13px /16 */
color: var(--color-gray-90);
}
.archivelist-date {
font-size: 0.8125em; /* 13px /16 */
color: var(--color-gray-90);
word-spacing: -0.5px;
}
.archivelist-link {
font-size: 1.1875em; /* 19px /16 */
font-weight: 700;
flex-basis: calc(100% - 1.5rem);
padding-left: .25em;
padding-right: .5em;
text-underline-position: from-font;
text-underline-offset: 0;
text-decoration-thickness: 1px;
}
.archivelist-item-active .archivelist-link {
font-weight: bold;
}
/* Tags */
.post-tag {
display: inline-flex;
align-items: center;
justify-content: center;
text-transform: capitalize;
font-style: italic;
}
.postlist-item > .post-tag {
align-self: center;
}
/* Tags list */
.post-metadata {
display: inline-flex;
flex-wrap: wrap;
gap: .5em;
list-style: none;
border-top: 1px dashed var(--color-gray-20);
border-bottom: 1px dashed var(--color-gray-20);
padding: 3px 0px 3px 0px;
margin: 0;
font-size: .8em;
}
.post-metadata time {
margin-right: 1em;
}
/* Direct Links / Markdown Headers */
.header-anchor {
text-decoration: none;
font-style: normal;
font-size: 1em;
margin-left: .1em;
}
a[href].header-anchor,
a[href].header-anchor:visited {
color: transparent;
}
a[href].header-anchor:focus,
a[href].header-anchor:hover {
text-decoration: underline;
}
a[href].header-anchor:focus,
:hover > a[href].header-anchor {
color: #aaa;
}
h2 + .header-anchor {
font-size: 1.5em;
font-weight: bold;
}
h1 {
font-weight: bolder;
}
summary {
font-size: 1.5em;
font-weight: bold;
margin-bottom: .5em;
}
img {
display: block;
margin-left: auto;
margin-right: auto;
}
blockquote {
display: block;
margin-left: 2em;
margin-right: 3em;
padding-left: 10px;
border-left: 10px solid var(--text-color-link);
}
hr.new {
border: none;
border-top: 1px dashed var(--color-gray-50);
}
/* Webmention Section */
.webmentions {
display:block;
text-align: left;
}
.webmentions__facepile {
display:flex;
align-items: center;
flex-wrap: wrap;
}
.webmentions__face {
width: 2rem;
height: 2rem;
border-radius: 50%;
object-fit: cover;
flex: none;
}
.webmentions__list {
list-style-type: none;
padding:0;
}
.webmentions__item {
margin-bottom: 2rem;
}
/* Single Webmention */
.webmention {
display:block;
}
.webmention__meta,
.webmention__author {
display: flex;
align-items: center;
flex-wrap: wrap;
}
.webmention__meta {
margin-bottom:.5rem;
}
.webmention__author {
margin-right:.25rem;
}
.webmention__author__photo {
height: 3rem;
width: 3rem;
border-radius: 50%;
object-fit: cover;
margin-right:.5rem;
}
.webmention__pubdate {
font-style: italic;
}
/* Message Box */
.message-box {
--color-message-box: #ffc;
display: block;
background-color: var(--color-message-box);
color: var(--color-gray-90);
padding: 1em 0.625em; /* 16px 10px /16 */
}
.message-box ol {
margin-top: 0;
}
@media (prefers-color-scheme: dark) {
.message-box {
--color-message-box: #082840;
}
}</style>
</head>
<body>
<a href="#skip" class="visually-hidden">Skip to main content</a>
<header>
<a href="/" class="home-link">kfitz</a>
<nav>
<h2 class="visually-hidden" id="top-level-navigation-menu">Top level navigation menu</h2>
<ul class="nav">
<li class="nav-item"><a href="/">Home</a></li>
<li class="nav-item"><a href="/blog/">Archive</a></li>
<li class="nav-item"><a href="/about/">About</a></li>
<li class="nav-item"><a href="/projects/">Projects</a></li>
<li class="nav-item"><a href="/presentations/">Presentations</a></li>
<li class="nav-item"><a href="/teaching/">Teaching</a></li>
<li class="nav-item"><a href="/feed/feed.xml">Feed</a></li>
</ul>
</nav>
</header>
<link href="/pagefind/pagefind-ui.css" rel="stylesheet">
<script src="/pagefind/pagefind-ui.js"></script>
<div id="search"></div>
<script>
window.addEventListener('DOMContentLoaded', (event) => {
new PagefindUI({ element: "#search", showSubResults: true });
});
</script>
<main id="skip">
<heading-anchors>
<h1 id="feeds-and-gardens">Feeds and Gardens</h1>
<ul class="post-metadata">
<li><time datetime="2018-07-23">23 July 2018</time></li>
<li><a href="/tags/networks/" class="post-tag">networks</a></li>
</ul>
<p>My <a href="/connections">last post, Connections</a>, gathered a fair bit of response — enough that you can see a good example of Webmentions in action below it. Theres a little back-and-forth discussion there that mostly took place on Twitter, as well as a lot of likes and mentions that came from there as well.</p>
<p>One important question surfaced in that discussion: <a href="https://twitter.com/readywriting/status/1020377587997200385">Lee Skallerup Bessette asks</a> how we keep in conversation with one another from our separate domains. Webmentions are one part of that equation, but discovery <a href="/connections/#comment-581180">as François notes</a> is another. One thing that Twitter has been pretty good at, after all, is gathering a sense of what people are reading and talking about, or what they ought to be reading and talking about.</p>
<p>Before Twitter, there was RSS. In fact, after Twitter, there still is RSS, a means of sharing information from one service or domain to another whose possibilities have never felt fully explored. I will admit to having all but abandoned my RSS reader some time back; none of the options after Google Reader were quite as satisfying community-wise, and Twitter was directing me to more than enough to read, so I let it go.</p>
<p>But now, as I find myself withdrawing a bit from Twitter and heading toward more intentionally chosen and cultivated spaces, discovery once again becomes an issue. Happily, a Twitter conversation (yes, I know) between <a href="https://twitter.com/samplereality/status/1017023242685513728">Mark Sample and the folks at Reclaim Hosting</a> led to the addition of <a href="https://www.freshrss.org/">FreshRSS</a> to Reclaims Installatron, meaning that in just a few clicks I was able to self-host <a href="https://rss.kfitz.info">my own RSS aggregator</a>. I transferred my subscriptions from my old feed reader, and was back in business.</p>
<p>In the process, I discovered that a lot of folks Id been following hadnt updated in yonks, and that some feeds no longer existed at all. So Ive done a lot of pruning. But having done so, Im ready to start cultivating that garden again, so do let me know if youve got a feed that I ought to be following.</p>
<p>In the meantime, Chris Aldrich indicates (in <a href="https://boffosocko.com/2018/07/21/connections-kathleen-fitzpatrick/">a reply to my post, posted on his site, that appears in my dashboard here as a comment but that for some reason is not appearing on the front end</a>) that there is a forthcoming generation of feed readers that will not only gather in content but also syndicate responses to it, allowing replies (like Chriss to me) to appear both on the comment authors site and on the site of the original post.</p>
<p>This all raises, <a href="https://twitter.com/LibSkrat/status/1020312765175607297">as Dorothea Salo notes</a>, some serious questions about spam and harassment. One of the things about the early community of academic bloggers that Im so nostalgic for (nostalgic enough that I should know to be a little self-critical here) is that it was pretty small, and so could be pretty intentional. And even so, problems arose. Maintaining the care exercised in a known community while remaining open to other voices and inputs is an issue that the next wave of distributed but interconnected communication platforms are going to need to face head-on. The IndieWeb folks are exploring this through <a href="https://indieweb.org/Vouch">Vouch</a>, a protocol for mediating new connections through mutually known community members.</p>
<p>These are real challenges, I think, a few among the many that social media platforms have utterly fumbled: finding ways to be open to the web while safe from harassment; finding ways to maintain ownership of ones content while being open to discussion; finding ways to develop and extend community without endangering the very thing were trying to create. Finding ways to care for ones plot, in other words, without winding up in a walled garden. Im looking forward to seeing how a decentralized, distributed, interconnected web might find new ways to approach these challenges.</p>
<ul class="links-nextprev"><li class="links-nextprev-prev">← Previous<br> <a href="/3234-2/">Connections tweet</a></li><li class="links-nextprev-next">Next →<br><a href="/3243-2/">Feeds and Gardens tweet</a></li>
</ul>
<hyvor-talk-comments website-id="9100" page-id="/feeds-and-gardens/"></hyvor-talk-comments>
<div class="webmentions" id="webmentions">
<h3 id="webmentions-2">Webmentions</h3>
<p>No replies yet.</p>
</div>
</heading-anchors>
</main>
<footer>
<p><em>Built with <a href="https://www.11ty.dev/">Eleventy v3.1.0</a>. All content <a href="https://creativecommons.org/licenses/by/4.0/deed.en">CC BY 4.0</a> if you're human.</em></p><p></p>
</footer>
<script type="module" src="/dist/rJ3_G-2ArF.js"></script>
</body>
</html>