44 lines
No EOL
43 KiB
HTML
44 lines
No EOL
43 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en-US" dir="ltr">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>Fedi v2 | The Paper Pilot</title>
|
||
<meta name="description" content="The Paper Pilot's Digital Garden">
|
||
<meta name="generator" content="VitePress v1.2.2">
|
||
<link rel="preload stylesheet" href="/assets/style.EyOdsjxW.css" as="style">
|
||
|
||
<script type="module" src="/assets/app.MlBStdJU.js"></script>
|
||
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||
<link rel="modulepreload" href="/assets/chunks/framework.BIC8H_hJ.js">
|
||
<link rel="modulepreload" href="/assets/chunks/theme.D128A_cj.js">
|
||
<link rel="modulepreload" href="/assets/chunks/git.data.CyBiH_4j.js">
|
||
<link rel="modulepreload" href="/assets/garden_fedi-v2_index.md.CbH0Icbw.lean.js">
|
||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Itim&family=Roboto+Mono:ital,wght@0,400;0,600;1,400&display=block">
|
||
<link rel="manifest" href="/site.webmanifest">
|
||
<link rel="alternate" type="text/mf2+html" href="/changelog">
|
||
<link rel="alternate" type="application/rss+xml" title="Changelog" href="/changelog/rss">
|
||
<link rel="alternate" type="application/atom+xml" title="Changelog" href="/changelog/atom">
|
||
<link rel="alternate" type="application/json+xml" title="Changelog" href="/changelog/json">
|
||
<link rel="me" href="mailto:thepaperpilot@incremental.social">
|
||
<link rel="me" href="https://incremental.social/u/thepaperpilot">
|
||
<link rel="me" href="https://matrix.to/#/@thepaperpilot:incremental.social">
|
||
<link rel="me" href="https://code.incremental.social/thepaperpilot">
|
||
<link rel="me" href="https://www.linkedin.com/in/anthony-lawn/">
|
||
<link rel="me" href="https://mastodon.gamedev.place/@thepaperpilot">
|
||
<link rel="me" href="https://beehaw.org/u/thepaperpilot">
|
||
<link rel="me" href="https://www.reddit.com/user/ThePaperPilot/">
|
||
<link rel="me" href="https://github.com/thepaperpilot">
|
||
<link rel="me" href="https://twitter.com/ThePaperPilot">
|
||
<meta name="og:description" content="The Paper Pilot's Digital Garden">
|
||
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
||
</head>
|
||
<body>
|
||
<div id="app"><div class="Layout" data-v-9be2b461 data-v-5d98c3a5><!--[--><!--[--><!--]--><!--]--><!--[--><span tabindex="-1" data-v-0f60ec36></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0f60ec36> Skip to content </a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar has-sidebar top" data-v-ae24b3ad data-v-ccf7ddec><div class="wrapper" data-v-ccf7ddec><div class="container" data-v-ccf7ddec><div class="title" data-v-ccf7ddec><div class="VPNavBarTitle has-sidebar" data-v-ccf7ddec data-v-ab179fa1><a class="title" href="/" data-v-ab179fa1><!--[--><!--]--><!----><span data-v-ab179fa1>The Paper Pilot</span><!--[--><!--]--></a></div></div><div class="content" data-v-ccf7ddec><div class="content-body" data-v-ccf7ddec><!--[--><!--]--><div class="VPNavBarSearch search" data-v-ccf7ddec><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-ccf7ddec data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://moddingtree.com" target="_blank" rel="noreferrer" tabindex="0" data-v-7f418b0f data-v-9c663999><!--[--><span data-v-9c663999>Profectus</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://incremental.social" target="_blank" rel="noreferrer" tabindex="0" data-v-7f418b0f data-v-9c663999><!--[--><span data-v-9c663999>Incremental Social</span><!--]--></a><!--]--><!--]--></nav><!----><!----><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-ccf7ddec data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://code.incremental.social/thepaperpilot" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Forgejo</title><path d="M16.7773 0c1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.1175a7.0759 7.0759 0 0 1 4.148-1.4205l.1176-.001 1.3385.0002c.4973-.8827 1.4434-1.4788 2.5288-1.4788 1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.319c.8827.4973 1.4788 1.4434 1.4788 2.5287 0 1.602-1.2986 2.9005-2.9005 2.9005-1.6018 0-2.9004-1.2986-2.9004-2.9005 0-1.0853.596-2.0314 1.4788-2.5287l-.0002-9.9831c0-3.887 3.1195-7.0453 6.9915-7.108l.1176-.001h1.3385C14.7458.5962 15.692 0 16.7773 0ZM7.2227 19.9052c-.6596 0-1.1943.5347-1.1943 1.1943s.5347 1.1943 1.1943 1.1943 1.1944-.5347 1.1944-1.1943-.5348-1.1943-1.1944-1.1943Zm9.5546-10.4644c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Zm0-7.7346c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Z"/></svg></a><a class="VPSocialLink no-icon" href="https://matrix.to/#/@thepaperpilot:incremental.social" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Matrix</title><path d="M.632.55v22.9H2.28V24H0V0h2.28v.55zm7.043 7.26v1.157h.033c.309-.443.683-.784 1.117-1.024.433-.245.936-.365 1.5-.365.54 0 1.033.107 1.481.314.448.208.785.582 1.02 1.108.254-.374.6-.706 1.034-.992.434-.287.95-.43 1.546-.43.453 0 .872.056 1.26.167.388.11.716.286.993.53.276.245.489.559.646.951.152.392.23.863.23 1.417v5.728h-2.349V11.52c0-.286-.01-.559-.032-.812a1.755 1.755 0 0 0-.18-.66 1.106 1.106 0 0 0-.438-.448c-.194-.11-.457-.166-.785-.166-.332 0-.6.064-.803.189a1.38 1.38 0 0 0-.48.499 1.946 1.946 0 0 0-.231.696 5.56 5.56 0 0 0-.06.785v4.768h-2.35v-4.8c0-.254-.004-.503-.018-.752a2.074 2.074 0 0 0-.143-.688 1.052 1.052 0 0 0-.415-.503c-.194-.125-.476-.19-.854-.19-.111 0-.259.024-.439.074-.18.051-.36.143-.53.282-.171.138-.319.337-.439.595-.12.259-.18.6-.18 1.02v4.966H5.46V7.81zm15.693 15.64V.55H21.72V0H24v24h-2.28v-.55z"/></svg></a><a class="VPSocialLink no-icon" href="https://incremental.social/u/thepaperpilot" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Fediverse</title><path d="M4.589 7.91a2.295 2.295 0 01-2.416 2.166A2.295 2.295 0 01.005 7.66a2.295 2.295 0 012.418-2.167A2.295 2.295 0 014.589 7.91zm1.876 11.995a2.295 2.295 0 01-2.417 2.167 2.295 2.295 0 01-2.166-2.417 2.295 2.295 0 012.416-2.166 2.295 2.295 0 012.167 2.416zm11.993 1.925a2.295 2.295 0 01-2.416 2.167 2.295 2.295 0 01-2.168-2.418 2.295 2.295 0 012.417-2.167 2.295 2.295 0 012.167 2.418zm5.537-10.807a2.295 2.295 0 01-2.417 2.168 2.295 2.295 0 01-2.168-2.418 2.295 2.295 0 012.418-2.165 2.295 2.295 0 012.167 2.415zm-8.57-8.603a2.295 2.295 0 01-2.419 2.168A2.295 2.295 0 0110.84 2.17 2.295 2.295 0 0113.256.003a2.295 2.295 0 012.168 2.418zM4.79 7.407a2.525 2.525 0 01.028.516 2.525 2.525 0 01-.263.99l3.716.595.731-1.425zm6.368 1.022l-.73 1.425 8.777 1.41a2.525 2.525 0 01-.025-.502 2.525 2.525 0 01.27-1.002zm3.118-3.887a2.525 2.525 0 01-1.283.274 2.525 2.525 0 01-.22-.023l.58 3.712 1.58.254zm-.588 6.12l1.37 8.775a2.525 2.525 0 011.245-.254 2.525 2.525 0 01.264.03l-1.296-8.297zm-3.046-7.96L4.098 6.02a2.525 2.525 0 01.688 1.36l6.545-3.317a2.525 2.525 0 01-.688-1.358zm4.725.76a2.525 2.525 0 01-1.08 1.074l5.177 5.197a2.525 2.525 0 011.08-1.075zm4.56 9.23l-3.343 6.524a2.525 2.525 0 011.355.695l3.344-6.525a2.525 2.525 0 01-1.357-.695zm-13.26 6.716a2.525 2.525 0 01.025.51 2.525 2.525 0 01-.266.995l7.243 1.163a2.525 2.525 0 01-.027-.508 2.525 2.525 0 01.267-.997zm-3.245-9.366a2.525 2.525 0 01-1.26.264 2.525 2.525 0 01-.245-.026l1.132 7.244a2.525 2.525 0 011.262-.264 2.525 2.525 0 01.243.025zm7.935-5.954l-3.83 7.474 1.13 1.135 4.055-7.914a2.525 2.525 0 01-1.355-.695zm-4.826 9.418l-1.94 3.786a2.525 2.525 0 011.356.696l1.715-3.348zm12.682-2.2l-3.355 1.7.247 1.583 3.797-1.925a2.525 2.525 0 01-.689-1.36zm-5.305 2.687l-7.935 4.02a2.525 2.525 0 01.69 1.36l7.494-3.797zM4.534 8.95a2.525 2.525 0 01-1.08 1.075l5.93 5.95 1.43-.724zm7.821 7.85l-1.43.724 3.004 3.014a2.525 2.525 0 011.08-1.075z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-ccf7ddec data-v-d0bd9dde data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-b6c34ac9><span class="vpi-more-horizontal icon" data-v-b6c34ac9></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-e7ea1737><!----><!--[--><!--[--><!----><!----><div class="group" data-v-d0bd9dde><div class="item social-links" data-v-d0bd9dde><div class="VPSocialLinks social-links-list" data-v-d0bd9dde data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://code.incremental.social/thepaperpilot" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Forgejo</title><path d="M16.7773 0c1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.1175a7.0759 7.0759 0 0 1 4.148-1.4205l.1176-.001 1.3385.0002c.4973-.8827 1.4434-1.4788 2.5288-1.4788 1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.319c.8827.4973 1.4788 1.4434 1.4788 2.5287 0 1.602-1.2986 2.9005-2.9005 2.9005-1.6018 0-2.9004-1.2986-2.9004-2.9005 0-1.0853.596-2.0314 1.4788-2.5287l-.0002-9.9831c0-3.887 3.1195-7.0453 6.9915-7.108l.1176-.001h1.3385C14.7458.5962 15.692 0 16.7773 0ZM7.2227 19.9052c-.6596 0-1.1943.5347-1.1943 1.1943s.5347 1.1943 1.1943 1.1943 1.1944-.5347 1.1944-1.1943-.5348-1.1943-1.1944-1.1943Zm9.5546-10.4644c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Zm0-7.7346c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Z"/></svg></a><a class="VPSocialLink no-icon" href="https://matrix.to/#/@thepaperpilot:incremental.social" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Matrix</title><path d="M.632.55v22.9H2.28V24H0V0h2.28v.55zm7.043 7.26v1.157h.033c.309-.443.683-.784 1.117-1.024.433-.245.936-.365 1.5-.365.54 0 1.033.107 1.481.314.448.208.785.582 1.02 1.108.254-.374.6-.706 1.034-.992.434-.287.95-.43 1.546-.43.453 0 .872.056 1.26.167.388.11.716.286.993.53.276.245.489.559.646.951.152.392.23.863.23 1.417v5.728h-2.349V11.52c0-.286-.01-.559-.032-.812a1.755 1.755 0 0 0-.18-.66 1.106 1.106 0 0 0-.438-.448c-.194-.11-.457-.166-.785-.166-.332 0-.6.064-.803.189a1.38 1.38 0 0 0-.48.499 1.946 1.946 0 0 0-.231.696 5.56 5.56 0 0 0-.06.785v4.768h-2.35v-4.8c0-.254-.004-.503-.018-.752a2.074 2.074 0 0 0-.143-.688 1.052 1.052 0 0 0-.415-.503c-.194-.125-.476-.19-.854-.19-.111 0-.259.024-.439.074-.18.051-.36.143-.53.282-.171.138-.319.337-.439.595-.12.259-.18.6-.18 1.02v4.966H5.46V7.81zm15.693 15.64V.55H21.72V0H24v24h-2.28v-.55z"/></svg></a><a class="VPSocialLink no-icon" href="https://incremental.social/u/thepaperpilot" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Fediverse</title><path d="M4.589 7.91a2.295 2.295 0 01-2.416 2.166A2.295 2.295 0 01.005 7.66a2.295 2.295 0 012.418-2.167A2.295 2.295 0 014.589 7.91zm1.876 11.995a2.295 2.295 0 01-2.417 2.167 2.295 2.295 0 01-2.166-2.417 2.295 2.295 0 012.416-2.166 2.295 2.295 0 012.167 2.416zm11.993 1.925a2.295 2.295 0 01-2.416 2.167 2.295 2.295 0 01-2.168-2.418 2.295 2.295 0 012.417-2.167 2.295 2.295 0 012.167 2.418zm5.537-10.807a2.295 2.295 0 01-2.417 2.168 2.295 2.295 0 01-2.168-2.418 2.295 2.295 0 012.418-2.165 2.295 2.295 0 012.167 2.415zm-8.57-8.603a2.295 2.295 0 01-2.419 2.168A2.295 2.295 0 0110.84 2.17 2.295 2.295 0 0113.256.003a2.295 2.295 0 012.168 2.418zM4.79 7.407a2.525 2.525 0 01.028.516 2.525 2.525 0 01-.263.99l3.716.595.731-1.425zm6.368 1.022l-.73 1.425 8.777 1.41a2.525 2.525 0 01-.025-.502 2.525 2.525 0 01.27-1.002zm3.118-3.887a2.525 2.525 0 01-1.283.274 2.525 2.525 0 01-.22-.023l.58 3.712 1.58.254zm-.588 6.12l1.37 8.775a2.525 2.525 0 011.245-.254 2.525 2.525 0 01.264.03l-1.296-8.297zm-3.046-7.96L4.098 6.02a2.525 2.525 0 01.688 1.36l6.545-3.317a2.525 2.525 0 01-.688-1.358zm4.725.76a2.525 2.525 0 01-1.08 1.074l5.177 5.197a2.525 2.525 0 011.08-1.075zm4.56 9.23l-3.343 6.524a2.525 2.525 0 011.355.695l3.344-6.525a2.525 2.525 0 01-1.357-.695zm-13.26 6.716a2.525 2.525 0 01.025.51 2.525 2.525 0 01-.266.995l7.243 1.163a2.525 2.525 0 01-.027-.508 2.525 2.525 0 01.267-.997zm-3.245-9.366a2.525 2.525 0 01-1.26.264 2.525 2.525 0 01-.245-.026l1.132 7.244a2.525 2.525 0 011.262-.264 2.525 2.525 0 01.243.025zm7.935-5.954l-3.83 7.474 1.13 1.135 4.055-7.914a2.525 2.525 0 01-1.355-.695zm-4.826 9.418l-1.94 3.786a2.525 2.525 0 011.356.696l1.715-3.348zm12.682-2.2l-3.355 1.7.247 1.583 3.797-1.925a2.525 2.525 0 01-.689-1.36zm-5.305 2.687l-7.935 4.02a2.525 2.525 0 01.69 1.36l7.494-3.797zM4.534 8.95a2.525 2.525 0 01-1.08 1.075l5.93 5.95 1.43-.724zm7.821 7.85l-1.43.724 3.004 3.014a2.525 2.525 0 011.08-1.075z"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-ccf7ddec data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-ccf7ddec><div class="divider-line" data-v-ccf7ddec></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-17a5e62e><button data-v-17a5e62e>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-575e6a36><div class="curtain" data-v-575e6a36></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-575e6a36><span class="visually-hidden" id="sidebar-aria-label" data-v-575e6a36> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-575e6a36><section class="VPSidebarItem level-0" data-v-575e6a36 data-v-b8d55f3b><div class="item" role="button" tabindex="0" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><h2 class="text" data-v-b8d55f3b>Recommended Pages</h2><!----></div><div class="items" data-v-b8d55f3b><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/garden/the-small-web" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>The Small Web</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/garden/guide-to-incrementals" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>Guide to Incrementals</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/garden/my-projects" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>My Projects</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/garden/fedi-v2" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>Fedi v2</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-575e6a36><section class="VPSidebarItem level-0" data-v-575e6a36 data-v-b8d55f3b><!----><div class="items" data-v-b8d55f3b><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/about" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>About Me</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/now" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>/now</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/changelog" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>Site Changelog</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>On this page</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div class="h-entry vp-doc _garden_fedi-v2_" data-v-39a288b8><div><h1 class="p-name">Fedi v2</h1><p>1274 words, ~7 minute read. <span>Planted <a href='https://code.incremental.social/thepaperpilot/pages/commit/fe175090d3fc0cfa81754ec5b19a184005e31d8c' title='Mon Jun 3 22:59:20 2024 -0500'><time class='dt-published' datetime='Mon Jun 3 22:59:20 2024 -0500'>2024-06-03</time></a>
|
||
. Last tended to <a href='https://code.incremental.social/thepaperpilot/pages/commit/14a570c17b9fb881c611ae5e1aad8e4200ca8b30' title='Tue Jun 18 02:32:30 2024 -0500'><time class='dt-updated' datetime='Tue Jun 18 02:32:30 2024 -0500'>2024-06-18</time></a>
|
||
.</span></p><hr><blockquote><p>Referenced by: <a href="/garden/social-media/">Social Media</a>, <a href="/garden/weird/">Weird</a></p></blockquote><p>A placeholder name for a theoretical new federated network that is client-centric, in contrast to the server-centric <a href="/garden/fediverse/">Fediverse</a></p><p>There are further discussions about actually implementing all this within the <a href="/garden/weird/">Weird</a> community</p><h2 id="inspiration" tabindex="-1">Inspiration <a class="header-anchor" href="#inspiration" aria-label="Permalink to "Inspiration""></a></h2><ul><li><a href="https://raphael.lullis.net/a-plan-for-social-media-less-fedi-more-webby/" target="_blank" rel="noreferrer">A Plan for Social Media - Rethinking Federation</a><ul><li>This article doesn't address many implementation details: <ul><li>If the server is a relay, can content not be viewed anonymously?</li><li>How to handle storing large amounts of data on every client?</li><li>Don't you still need to associate with a server for people to direct their messages to?</li></ul></li></ul></li><li><a href="https://mull.net/mastodon" target="_blank" rel="noreferrer">Single-user Mastodon Instance is a Bad Idea</a><ul><li>Focuses on the non-feasibility of self hosting, contributing to <a href="/garden/fediverse/">Federated Social Media</a> not actually having all the upsides it should theoretically have by virtue of being <a href="/garden/decentralized/">Decentralized</a></li></ul></li><li>The <a href="/garden/commune/">Commune</a> community</li><li>Existing protocols: <ul><li><a href="https://nostr.com" target="_blank" rel="noreferrer">Nostr</a><ul><li>Currently suffers a culture problem by being associated with alt right and crypto users, making broad adoption more difficult</li></ul></li><li><a href="https://atproto.com" target="_blank" rel="noreferrer">ATProto</a><ul><li>Focused on a few large instances, to be run by large corporations. Still requires associating your identity with a server you don't own</li></ul></li></ul></li><li>A lot of these ideas are learned lessons from the usenet days</li></ul><h2 id="identity" tabindex="-1">Identity <a class="header-anchor" href="#identity" aria-label="Permalink to "Identity""></a></h2><ul><li><a href="/garden/federated-identity/">Federated Identity</a></li><li>Private and public keys anyone can create and store how they want <ul><li>Fully free to create and store with no server dependencies</li></ul></li><li>Profile information <ul><li>Sent as a signed message through all the relays</li><li>How would you trust a username? <ul><li><a href="https://spritely.institute/static/papers/petnames.html" target="_blank" rel="noreferrer">Petnames</a> could be used to display human readable names via contacts or decentralized "naming hubs"</li><li>In most conversations online, you can trust their display name and add them as a contact as that display name <ul><li>You only need to verify they are the same person you interacted with previously</li><li>You only need to trust people you want to send money to or otherwise "important identities"</li><li>For important identities, you can trust your contacts forming a chain of trust, or a authoritative naming hub <ul><li>E.g. a white house ran naming hub that verifies the identities of the president and people of Congress</li><li>People typically wouldn't reach out to a naming hub, as it's not typically necessary</li></ul></li><li>Contacts supercede naming hubs, so if a naming hub is breached, anyone I've previously added as a contact is still the source of truth <ul><li>This only fails if the private key itself was breached</li></ul></li><li>I'm just thepaperpilot, my display name. For most online communication, this is sufficient <ul><li>My website can have a nameserver saying this publickey is the same as the site owner</li><li>If I write a paper at a scientific journal, they can say the author of x paper is my publickey</li></ul></li></ul></li></ul></li></ul></li><li>How to handle losing your private key <ul><li>If you do have a naming hub you can verify with, they can say the identity has a new publickey</li><li>Contacts can "vouch" for a identity having a new publickey</li><li>Clients can decide to trust the new publickey based on contacts and naming hubs saying to</li><li>Also applies to stolen or compromised keys</li></ul></li></ul><h2 id="servers" tabindex="-1">Servers <a class="header-anchor" href="#servers" aria-label="Permalink to "Servers""></a></h2><ul><li>Act as relays, merely storing messages and sending them to any clients or servers that have subscribed</li><li>May decide to publicly display messages its received <ul><li>These servers are how discovery would work</li><li>Different servers may offer unique displays, filters, etc.</li></ul></li><li>Users can send their content to any server - no authentication or account required, as the identity suffices <ul><li>Even replies can work this way - no need to know from where a given message originated</li></ul></li><li>Private servers could require some password when sending messages or subscribing to things <ul><li>Useful for a school or other entity that wants an internal social network</li></ul></li><li>Different ways to subscribe to a server's messages <ul><li>All messages the relay hears about (new relays essentially subscribe like this to some existing relay)</li><li>All messages from a specific poster ID</li><li>Any replies to a message created with a specific poster ID</li><li>Shallow subscriptions, to lighten the load when subscribing to communities</li></ul></li></ul><h2 id="content" tabindex="-1">Content <a class="header-anchor" href="#content" aria-label="Permalink to "Content""></a></h2><ul><li>Protocol should dictate how to convey text, image, audio, video, and binary content</li><li>Protocol should include reacting to content with arbitrary text, including a URL <ul><li>Upvotes and downvotes are implemented with this system</li></ul></li><li>Each message contains fields for the poster's ID (public key) and a signature that verifies the content was made by that poster <ul><li>That signature serves as an ID for the message itself <ul><li>Anything can be replied to using the ID as the "parent" property in a new post</li></ul></li></ul></li><li>Edits are handled as replies with some flag to indicate it's updating the parent messages' content <ul><li>Naturally, this reply would only be respected if it matches the same creator ID</li><li>Servers should replace the original message entirely with this one and indicate its an edited message <ul><li>Some servers will inevitably keep a full history though</li></ul></li></ul></li><li>Groups/communities are just specially flagged messages <ul><li>Posting to a community is just replying to that message</li><li>Subscribing to a community is just subscribing to that message</li><li>The original message creator effectively owns the group</li></ul></li><li><a href="/garden/the-small-web/">IndieWeb</a> pages could publish these messages as well, effectively serving as clients within the network <ul><li>Perhaps use a bit to actually send those messages to other relays within the network</li></ul></li></ul><h2 id="moderation" tabindex="-1">Moderation <a class="header-anchor" href="#moderation" aria-label="Permalink to "Moderation""></a></h2><ul><li>In general, edits and delete requests are made by replying with a specially flagged message</li><li>Edit and deletion messages are ignored unless they have the correct public key and signature <ul><li>Parent messages form a hierarchy of permission - if someone replies to your message, you can send a delete request for that message</li><li>Relay owners cannot fully delete messages, but can choose to stop relaying replies etc. of messages as the server owner wishes</li></ul></li><li>Posts can be publicly reported with a specially flagged reply <ul><li>How to make anonymous reports?</li></ul></li><li>Users can send deletion or edit messages even without a matching public key, and clients (or relays) can choose to respect those messages if that public key is whitelisted as a moderator <ul><li>Messages (and by extension, groups) can have replies granting or removing permission to other public IDs at that hierarchy level</li><li>People can setup accounts with their desired heuristic for sending delete messages, such as looking at public reports or analyzing the content with AI <ul><li>This way clients can effectively customize their preferred moderation</li></ul></li></ul></li><li>Clients can also choose to add additional rules for hiding content, such as any reports by followed users</li><li>Perhaps delete messages pull double duty as public reports in and of themselves?</li></ul><h2 id="problems-to-solve" tabindex="-1">Problems to solve <a class="header-anchor" href="#problems-to-solve" aria-label="Permalink to "Problems to solve""></a></h2><ul><li>No anonymity <ul><li>All upvotes, downvotes, etc. are linked to your public key</li><li>Perhaps a client could generate new keypairs for every action for anonymity, but then it'd be hard to determine if such an account and action was a genuine user or a bot</li></ul></li><li>Servers could probably determine the identity of clients sending their messages to them <ul><li>A client that only ever sends messages with a specific public key is unlikely to be a server</li><li>A client that doesn't subscribe to all messages is unlikely to be a server</li><li>Perhaps clients and servers can be identified as such, and subscribing to new messages is something you only do to servers, not clients</li></ul></li><li>Illegal material will likely be placed on the hard drive at least temporarily <ul><li>Messages will be downloaded and, even if you follow a moderator bot that looks for illegal material, there's likely to be a delay between receiving the initial message and receiving the bots delete message</li></ul></li><li>You have to download all spam messages <ul><li>For redundancy, you'd likely subscribe to multiple relay servers</li><li>You cannot trust several relay servers to have identical rules on not relaying messages that don't pass whatever moderation heuristic</li><li>Therefore, the filtering out of spam has to be done by the client, after downloading it all</li></ul></li></ul></div></div></main><!----><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><footer class="vp-doc" data-v-9be2b461><div data-v-9be2b461>CC 2024 <a class="h-card" rel="me" href="/about" data-v-9be2b461><img src="/me.jpg" alt="" data-v-9be2b461>The Paper Pilot</a>. <a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/" data-v-9be2b461>CC BY-NC-SA 4.0</a>.</div><div data-v-9be2b461>Any and all opinions listed here are my own and not representative of my employers; future, past and present.</div><div data-v-9be2b461><a href="https://resume.incremental.social/thepaperpilot/thepaperpilot" data-v-9be2b461>Resume</a> (not actively seeking new opportunities).</div><div data-v-9be2b461>Site built from <a href="https://code.incremental.social/thepaperpilot/pages/commit/27c6c23dfc3ab7e10cf3817bc9fe680fbfaf0190" data-v-9be2b461>this commit</a> on <time data-v-9be2b461>Tuesday, June 18, 2024 at 19:07:48</time>.</div></footer><!--]--></div></div>
|
||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"garden_fedi-v2_index.md\":\"CbH0Icbw\",\"garden_fediverse_index.md\":\"wup7DFUP\",\"garden_freeform_index.md\":\"pInKdBMW\",\"garden_freeform-vs-chronological-dichotomy_index.md\":\"CnBt21Gv\",\"garden_garden-rss_index.md\":\"DNabJiFS\",\"garden_guide-to-incrementals_appeal-to-developers_index.md\":\"BTxU4tZF\",\"garden_forgejo_index.md\":\"DuspREZy\",\"garden_game-dev-tree_index.md\":\"CqK59AXb\",\"garden_guide-to-incrementals_navigating-criticism_index.md\":\"DZayBKvJ\",\"garden_incremental-social_index.md\":\"Ci5B6zNg\",\"garden_activitypub_index.md\":\"xXb3KYxg\",\"garden_cinny_index.md\":\"PesSZHlk\",\"garden_digital-gardens_index.md\":\"DXcsBqlU\",\"garden_artificial-intelligence_index.md\":\"DCAk7A6T\",\"garden_chat-glue_index.md\":\"Ct8hR47l\",\"garden_guide-to-incrementals_what-is-content_index.md\":\"BMH-94jG\",\"garden_advent-incremental_index.md\":\"CjWOOmdy\",\"garden_atproto_index.md\":\"Bf4CcRl9\",\"garden_dice-armor_index.md\":\"DF7VFbui\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"B9R3rct9\",\"garden_v-ecs_index.md\":\"Ct-Rvfyx\",\"guide-to-incrementals_ludology_definition_index.md\":\"jfYqtxyx\",\"garden_command-palettes_index.md\":\"LToXmYxG\",\"garden_webrings_index.md\":\"Dvj4THMC\",\"garden_ivy-road_index.md\":\"Bo0rj56a\",\"garden_decentralized_index.md\":\"BNrKx4xJ\",\"garden_babble-buds_index.md\":\"DHYFB3uo\",\"changelog_index.md\":\"Jut0LxqM\",\"garden_guide-to-incrementals_defining-the-genre_index.md\":\"KHo4YLaV\",\"garden_guide-to-incrementals_index.md\":\"Cmakbc4a\",\"about_index.md\":\"DjSStWqg\",\"garden_the-small-web_index.md\":\"DO1eNNcI\",\"garden_profectus_index.md\":\"DNDwVhYD\",\"garden_social-media_index.md\":\"C-EtjrwC\",\"garden_synapse_index.md\":\"BgoRUW7Y\",\"garden_the-beginner-s-guide_index.md\":\"Ua8nldhQ\",\"garden_premium-currency_index.md\":\"DkiPaMt_\",\"public_gamedevtree_changelog.md\":\"BEzzFifp\",\"public_gamedevtree_docs_!general-info.md\":\"BEe1QWpT\",\"garden_davey-wreden_index.md\":\"CgXPBk_2\",\"garden_federated-identity_index.md\":\"MK2Pksig\",\"garden_logseq_index.md\":\"CPRdRSM5\",\"garden_matrix_index.md\":\"DlO__w7G\",\"public_gamedevtree_docs_clickables.md\":\"Dm3kZIsz\",\"public_kronos_old things_2.0-format-changes.md\":\"BtPYjwI8\",\"public_kronos_readme.md\":\"DYr6QcoT\",\"garden_planar-pioneers_index.md\":\"ODGu0wpW\",\"garden_open-source_index.md\":\"DFaw4jk6\",\"public_gamedevtree_docs_achievements.md\":\"Dws6AERf\",\"public_gamedevtree_docs_buyables.md\":\"VV-nsBv-\",\"garden_opti-speech_index.md\":\"jHvJF1fg\",\"public_gamedevtree_docs_bars.md\":\"CH1CktIT\",\"public_lit_docs_milestones.md\":\"BuFl4guY\",\"garden_mbin_index.md\":\"C_7HYqMn\",\"public_kronos_docs_!general-info.md\":\"5rkaQMOp\",\"public_lit_docs_subtabs-and-microtabs.md\":\"C4r4aVZy\",\"public_gamedevtree_docs_milestones.md\":\"D0RVnIvR\",\"public_lit_docs_main-mod-info.md\":\"DINWj5SN\",\"garden_chronological_index.md\":\"C4i2P9BR\",\"public_lit_docs_trees-and-tree-customization.md\":\"xH_hxECk\",\"public_lit_docs_updating-tmt.md\":\"5Wwn7JmT\",\"public_lit_docs_upgrades.md\":\"D5WUVAIu\",\"garden_kronos_index.md\":\"r66f1AZV\",\"public_kronos_docs_achievements.md\":\"DrCW15Xk\",\"garden_life-is-strange_index.md\":\"BhIQG6tl\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"Cb49LWxc\",\"public_gamedevtree_docs_upgrades.md\":\"D8Eo_Cnp\",\"public_gamedevtree_docs_updating-tmt.md\":\"BeVNV-Mx\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"CILgz0_s\",\"public_gamedevtree_docs_infoboxes.md\":\"DnPfTXHt\",\"public_gamedevtree_docs_main-mod-info.md\":\"bkhR0WSc\",\"public_gamedevtree_docs_getting-started.md\":\"CKgytkrs\",\"public_gamedevtree_docs_challenges.md\":\"DVS5W4rR\",\"public_kronos_docs_bars.md\":\"BvYvqoBs\",\"public_kronos_docs_basic-layer-breakdown.md\":\"DGppoFrI\",\"garden_mtx_index.md\":\"miGiVj1t\",\"garden_nostr_index.md\":\"BzYZ3tFO\",\"garden_my-personal-website_index.md\":\"Dyb2N-cK\",\"garden_my-projects_index.md\":\"DcibZ0jU\",\"public_gamedevtree_docs_layer-features.md\":\"BPBdbh-z\",\"garden_capture-the-citadel_index.md\":\"5ZP53JnJ\",\"garden_commune_index.md\":\"O_rk0wNz\",\"garden_guide-to-incrementals_appeal-to-players_index.md\":\"DdJBqVOM\",\"guide-to-incrementals_ludology_appeal-gamers_index.md\":\"C-yq_Mr7\",\"guide-to-incrementals_ludology_content_index.md\":\"dgppcs45\",\"index.md\":\"3muxv5ry\",\"public_kronos_docs_grids.md\":\"dVNUAZqL\",\"public_kronos_docs_clickables.md\":\"D4xqtHCs\",\"public_kronos_docs_layer-features.md\":\"z0yuKiFe\",\"public_kronos_docs_challenges.md\":\"DWFXxR37\",\"public_kronos_docs_infoboxes.md\":\"C8vJg96j\",\"public_kronos_docs_main-mod-info.md\":\"BiS8GkQO\",\"public_kronos_docs_custom-tab-layouts.md\":\"jdv_HNa6\",\"garden_wanderstop_index.md\":\"BdysmYpZ\",\"public_kronos_docs_getting-started.md\":\"D_Kei6xe\",\"public_lit_docs_!general-info.md\":\"D9elUAAf\",\"garden_this-knowledge-hub_index.md\":\"zIVk6ZvO\",\"public_kronos_docs_particles.md\":\"Bl9JEYco\",\"garden_the-cozy-web_index.md\":\"l1jFjYIQ\",\"guide-to-incrementals_index.md\":\"DindWN65\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"xn1GwguC\",\"public_kronos_docs_trees-and-tree-customization.md\":\"BVCDgYnD\",\"public_gamedevtree_2.0-format-changes.md\":\"Ln8OHXLK\",\"garden_video-game-monetization_index.md\":\"2fcCHO0j\",\"public_kronos_docs_upgrades.md\":\"BJh7DmUt\",\"public_lit_docs_achievements.md\":\"6W7i-5zk\",\"garden_the-indieweb_signature-blocks_index.md\":\"Bcm_IItL\",\"public_kronos_docs_updating-tmt.md\":\"D7j5-Gml\",\"public_lit_changelog.md\":\"vHJaqGAk\",\"public_lit_old things_2.0-format-changes.md\":\"D2j9ILHH\",\"public_lit_readme.md\":\"D7v9HqFL\",\"public_lit_docs_challenges.md\":\"CXR-LYbd\",\"public_kronos_docs_milestones.md\":\"EJNENSVA\",\"public_lit_docs_basic-layer-breakdown.md\":\"B9dO-Py7\",\"guide-to-incrementals_design_criticism_index.md\":\"KqwK59ZN\",\"public_lit_docs_bars.md\":\"DUUCdWTB\",\"public_lit_docs_infoboxes.md\":\"D-I-8bE6\",\"public_lit_docs_clickables.md\":\"DOdKRGUh\",\"public_lit_docs_getting-started.md\":\"D0wSP6E1\",\"garden_the-indieweb_amplification_index.md\":\"DqEcHpr5\",\"guide-to-incrementals_ludology_appeal-developers_index.md\":\"DhNXF4Tk\",\"public_lit_docs_buyables.md\":\"B_QAHdTD\",\"garden_pre-order-bonuses_index.md\":\"BOT1cWUG\",\"public_gamedevtree_readme.md\":\"BfpG_Bbp\",\"now_index.md\":\"BW_X-t75\",\"public_kronos_changelog.md\":\"Dvl4pkUG\",\"public_kronos_docs_buyables.md\":\"yYFkZBbk\",\"public_lit_docs_layer-features.md\":\"BDedzAxr\",\"garden_vitepress_index.md\":\"BFZ_VdS3\",\"public_lit_docs_custom-tab-layouts.md\":\"CKAQik3E\",\"garden_weird_index.md\":\"D4cAamzi\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"The Paper Pilot\",\"description\":\"The Paper Pilot's Digital Garden\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":false,\"themeConfig\":{\"search\":{\"provider\":\"local\",\"options\":{}},\"outline\":\"deep\",\"nav\":[{\"text\":\"Profectus\",\"link\":\"https://moddingtree.com\"},{\"text\":\"Incremental Social\",\"link\":\"https://incremental.social\"}],\"socialLinks\":[{\"icon\":{\"svg\":\"<svg role=\\\"img\\\" viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><title>Forgejo</title><path d=\\\"M16.7773 0c1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.1175a7.0759 7.0759 0 0 1 4.148-1.4205l.1176-.001 1.3385.0002c.4973-.8827 1.4434-1.4788 2.5288-1.4788 1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.319c.8827.4973 1.4788 1.4434 1.4788 2.5287 0 1.602-1.2986 2.9005-2.9005 2.9005-1.6018 0-2.9004-1.2986-2.9004-2.9005 0-1.0853.596-2.0314 1.4788-2.5287l-.0002-9.9831c0-3.887 3.1195-7.0453 6.9915-7.108l.1176-.001h1.3385C14.7458.5962 15.692 0 16.7773 0ZM7.2227 19.9052c-.6596 0-1.1943.5347-1.1943 1.1943s.5347 1.1943 1.1943 1.1943 1.1944-.5347 1.1944-1.1943-.5348-1.1943-1.1944-1.1943Zm9.5546-10.4644c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Zm0-7.7346c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Z\\\"/></svg>\"},\"link\":\"https://code.incremental.social/thepaperpilot\"},{\"icon\":{\"svg\":\"<svg role=\\\"img\\\" viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><title>Matrix</title><path d=\\\"M.632.55v22.9H2.28V24H0V0h2.28v.55zm7.043 7.26v1.157h.033c.309-.443.683-.784 1.117-1.024.433-.245.936-.365 1.5-.365.54 0 1.033.107 1.481.314.448.208.785.582 1.02 1.108.254-.374.6-.706 1.034-.992.434-.287.95-.43 1.546-.43.453 0 .872.056 1.26.167.388.11.716.286.993.53.276.245.489.559.646.951.152.392.23.863.23 1.417v5.728h-2.349V11.52c0-.286-.01-.559-.032-.812a1.755 1.755 0 0 0-.18-.66 1.106 1.106 0 0 0-.438-.448c-.194-.11-.457-.166-.785-.166-.332 0-.6.064-.803.189a1.38 1.38 0 0 0-.48.499 1.946 1.946 0 0 0-.231.696 5.56 5.56 0 0 0-.06.785v4.768h-2.35v-4.8c0-.254-.004-.503-.018-.752a2.074 2.074 0 0 0-.143-.688 1.052 1.052 0 0 0-.415-.503c-.194-.125-.476-.19-.854-.19-.111 0-.259.024-.439.074-.18.051-.36.143-.53.282-.171.138-.319.337-.439.595-.12.259-.18.6-.18 1.02v4.966H5.46V7.81zm15.693 15.64V.55H21.72V0H24v24h-2.28v-.55z\\\"/></svg>\"},\"link\":\"https://matrix.to/#/@thepaperpilot:incremental.social\"},{\"icon\":{\"svg\":\"<svg role=\\\"img\\\" viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><title>Fediverse</title><path d=\\\"M4.589 7.91a2.295 2.295 0 01-2.416 2.166A2.295 2.295 0 01.005 7.66a2.295 2.295 0 012.418-2.167A2.295 2.295 0 014.589 7.91zm1.876 11.995a2.295 2.295 0 01-2.417 2.167 2.295 2.295 0 01-2.166-2.417 2.295 2.295 0 012.416-2.166 2.295 2.295 0 012.167 2.416zm11.993 1.925a2.295 2.295 0 01-2.416 2.167 2.295 2.295 0 01-2.168-2.418 2.295 2.295 0 012.417-2.167 2.295 2.295 0 012.167 2.418zm5.537-10.807a2.295 2.295 0 01-2.417 2.168 2.295 2.295 0 01-2.168-2.418 2.295 2.295 0 012.418-2.165 2.295 2.295 0 012.167 2.415zm-8.57-8.603a2.295 2.295 0 01-2.419 2.168A2.295 2.295 0 0110.84 2.17 2.295 2.295 0 0113.256.003a2.295 2.295 0 012.168 2.418zM4.79 7.407a2.525 2.525 0 01.028.516 2.525 2.525 0 01-.263.99l3.716.595.731-1.425zm6.368 1.022l-.73 1.425 8.777 1.41a2.525 2.525 0 01-.025-.502 2.525 2.525 0 01.27-1.002zm3.118-3.887a2.525 2.525 0 01-1.283.274 2.525 2.525 0 01-.22-.023l.58 3.712 1.58.254zm-.588 6.12l1.37 8.775a2.525 2.525 0 011.245-.254 2.525 2.525 0 01.264.03l-1.296-8.297zm-3.046-7.96L4.098 6.02a2.525 2.525 0 01.688 1.36l6.545-3.317a2.525 2.525 0 01-.688-1.358zm4.725.76a2.525 2.525 0 01-1.08 1.074l5.177 5.197a2.525 2.525 0 011.08-1.075zm4.56 9.23l-3.343 6.524a2.525 2.525 0 011.355.695l3.344-6.525a2.525 2.525 0 01-1.357-.695zm-13.26 6.716a2.525 2.525 0 01.025.51 2.525 2.525 0 01-.266.995l7.243 1.163a2.525 2.525 0 01-.027-.508 2.525 2.525 0 01.267-.997zm-3.245-9.366a2.525 2.525 0 01-1.26.264 2.525 2.525 0 01-.245-.026l1.132 7.244a2.525 2.525 0 011.262-.264 2.525 2.525 0 01.243.025zm7.935-5.954l-3.83 7.474 1.13 1.135 4.055-7.914a2.525 2.525 0 01-1.355-.695zm-4.826 9.418l-1.94 3.786a2.525 2.525 0 011.356.696l1.715-3.348zm12.682-2.2l-3.355 1.7.247 1.583 3.797-1.925a2.525 2.525 0 01-.689-1.36zm-5.305 2.687l-7.935 4.02a2.525 2.525 0 01.69 1.36l7.494-3.797zM4.534 8.95a2.525 2.525 0 01-1.08 1.075l5.93 5.95 1.43-.724zm7.821 7.85l-1.43.724 3.004 3.014a2.525 2.525 0 011.08-1.075z\\\"/></svg>\"},\"link\":\"https://incremental.social/u/thepaperpilot\"}],\"sidebar\":[{\"text\":\"Recommended Pages\",\"items\":[{\"text\":\"The Small Web\",\"link\":\"/garden/the-small-web\"},{\"text\":\"Guide to Incrementals\",\"link\":\"/garden/guide-to-incrementals\"},{\"text\":\"My Projects\",\"link\":\"/garden/my-projects\"},{\"text\":\"Fedi v2\",\"link\":\"/garden/fedi-v2\"}]},{\"text\":\"About Me\",\"link\":\"/about\"},{\"text\":\"/now\",\"link\":\"/now\"},{\"text\":\"Site Changelog\",\"link\":\"/changelog\"}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":true,\"contentProps\":{\"class\":{\"h-entry\":true}}}");</script>
|
||
|
||
</body>
|
||
</html> |