Compare commits

...

No commits in common. "pages" and "gh-pages" have entirely different histories.

943 changed files with 3407 additions and 21927 deletions

View file

@ -1,5 +0,0 @@
thepaperpilot.org
www.thepaperpilot.org
thepaperpilot.codeberg.page
pages.thepaperpilot.codeberg.page
pages.pages.thepaperpilot.codeberg.page

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
import{_ as T,s as d,p as e,a as n,l as c,D as r,b as s,g as p}from"./index.67298ddd.js";import"./vue.dd1d82d0.js";import{b1 as v}from"./@vue.359f7754.js";/* empty css */import"./nanoevents.1080beb7.js";import"./lz-string.f2f3b7cf.js";import"./is-plain-object.906d88e8.js";import"./@pixi.051d1bd4.js";import"./eventemitter3.dc5195d7.js";import"./earcut.03899505.js";import"./url.1821b64b.js";import"./amator.8216e0d2.js";import"./bezier-easing.a990b400.js";import"./querystring.b35d81f8.js";import"./vue-toastification.7ec3a26c.js";import"./vue-next-select.d15705a0.js";import"./vue-panzoom.f6869ea5.js";import"./panzoom.9e1878dd.js";import"./wheel.f03080ac.js";import"./ngraph.events.083734c6.js";import"./vuedraggable.179e27ef.js";import"./sortablejs.e4e9a931.js";import"./vue-textarea-autosize.35804eaf.js";let o=null,l=null;function a(){const t=Date.now();let i=(t-e.time)/1e3;e.time=t;const m=i;if(n.lastTenTicks.push(m),n.lastTenTicks.length>10&&(n.lastTenTicks=n.lastTenTicks.slice(1)),(l==null?void 0:l.value)&&!e.keepGoing||n.hasNaN||(i=Math.max(i,0),e.devSpeed===0))return;if(c.value=!1,e.offlineTime!=null){if(r.gt(e.offlineTime,s.offlineLimit*3600)&&(e.offlineTime=s.offlineLimit*3600),r.gt(e.offlineTime,0)&&e.devSpeed!==0){const u=Math.max(e.offlineTime/10,i);e.offlineTime=e.offlineTime-u,i+=u}else e.devSpeed===0&&(e.offlineTime+=i);(!e.offlineProd||r.lt(e.offlineTime,0))&&(e.offlineTime=null)}if(i=Math.min(i,s.maxTickLength),e.devSpeed!=null&&(i*=e.devSpeed),Number.isFinite(i)||(i=1e308),r.eq(i,0))return;e.timePlayed+=i,Number.isFinite(e.timePlayed)||(e.timePlayed=1e308);let f=m;for(;f>1;)p.emit("update",i/m,1),f--;p.emit("update",i*f/m,f),d.unthrottled?(requestAnimationFrame(a),o!=null&&(clearInterval(o),o=null)):o==null&&(o=setInterval(a,50))}async function R(){l=(await T(()=>import("./index.67298ddd.js").then(function(t){return t.c}),["assets/index.67298ddd.js","assets/index.49bdd4af.css","assets/@fontsource.c175eac8.css","assets/vue.dd1d82d0.js","assets/amator.8216e0d2.js","assets/bezier-easing.a990b400.js","assets/@vue.359f7754.js","assets/nanoevents.1080beb7.js","assets/lz-string.f2f3b7cf.js","assets/is-plain-object.906d88e8.js","assets/@pixi.051d1bd4.js","assets/eventemitter3.dc5195d7.js","assets/earcut.03899505.js","assets/url.1821b64b.js","assets/querystring.b35d81f8.js","assets/vue-toastification.7ec3a26c.js","assets/vue-toastification.4b5f8ac8.css","assets/vue-next-select.d15705a0.js","assets/vue-next-select.9e6f4164.css","assets/vue-panzoom.f6869ea5.js","assets/panzoom.9e1878dd.js","assets/wheel.f03080ac.js","assets/ngraph.events.083734c6.js","assets/vuedraggable.179e27ef.js","assets/sortablejs.e4e9a931.js","assets/vue-textarea-autosize.35804eaf.js"])).hasWon,v(l,t=>{t&&p.emit("gameWon")}),d.unthrottled?requestAnimationFrame(a):o=setInterval(a,50)}export{R as startGameLoop};
import{_ as T,s as d,p as e,a as n,l as c,D as r,b as s,g as p}from"./index.c658358f.js";import"./vue.dd1d82d0.js";import{b1 as v}from"./@vue.359f7754.js";/* empty css */import"./nanoevents.1080beb7.js";import"./lz-string.f2f3b7cf.js";import"./is-plain-object.906d88e8.js";import"./@pixi.051d1bd4.js";import"./eventemitter3.dc5195d7.js";import"./earcut.03899505.js";import"./url.1821b64b.js";import"./amator.8216e0d2.js";import"./bezier-easing.a990b400.js";import"./querystring.b35d81f8.js";import"./vue-toastification.7ec3a26c.js";import"./vue-next-select.d15705a0.js";import"./vue-panzoom.f6869ea5.js";import"./panzoom.9e1878dd.js";import"./wheel.f03080ac.js";import"./ngraph.events.083734c6.js";import"./vuedraggable.179e27ef.js";import"./sortablejs.e4e9a931.js";import"./vue-textarea-autosize.35804eaf.js";let o=null,l=null;function a(){const t=Date.now();let i=(t-e.time)/1e3;e.time=t;const m=i;if(n.lastTenTicks.push(m),n.lastTenTicks.length>10&&(n.lastTenTicks=n.lastTenTicks.slice(1)),(l==null?void 0:l.value)&&!e.keepGoing||n.hasNaN||(i=Math.max(i,0),e.devSpeed===0))return;if(c.value=!1,e.offlineTime!=null){if(r.gt(e.offlineTime,s.offlineLimit*3600)&&(e.offlineTime=s.offlineLimit*3600),r.gt(e.offlineTime,0)&&e.devSpeed!==0){const u=Math.max(e.offlineTime/10,i);e.offlineTime=e.offlineTime-u,i+=u}else e.devSpeed===0&&(e.offlineTime+=i);(!e.offlineProd||r.lt(e.offlineTime,0))&&(e.offlineTime=null)}if(i=Math.min(i,s.maxTickLength),e.devSpeed!=null&&(i*=e.devSpeed),Number.isFinite(i)||(i=1e308),r.eq(i,0))return;e.timePlayed+=i,Number.isFinite(e.timePlayed)||(e.timePlayed=1e308);let f=m;for(;f>1;)p.emit("update",i/m,1),f--;p.emit("update",i*f/m,f),d.unthrottled?(requestAnimationFrame(a),o!=null&&(clearInterval(o),o=null)):o==null&&(o=setInterval(a,50))}async function R(){l=(await T(()=>import("./index.c658358f.js").then(function(t){return t.c}),["assets/index.c658358f.js","assets/index.88096596.css","assets/@fontsource.c175eac8.css","assets/vue.dd1d82d0.js","assets/amator.8216e0d2.js","assets/bezier-easing.a990b400.js","assets/@vue.359f7754.js","assets/nanoevents.1080beb7.js","assets/lz-string.f2f3b7cf.js","assets/is-plain-object.906d88e8.js","assets/@pixi.051d1bd4.js","assets/eventemitter3.dc5195d7.js","assets/earcut.03899505.js","assets/url.1821b64b.js","assets/querystring.b35d81f8.js","assets/vue-toastification.7ec3a26c.js","assets/vue-toastification.4b5f8ac8.css","assets/vue-next-select.d15705a0.js","assets/vue-next-select.9e6f4164.css","assets/vue-panzoom.f6869ea5.js","assets/panzoom.9e1878dd.js","assets/wheel.f03080ac.js","assets/ngraph.events.083734c6.js","assets/vuedraggable.179e27ef.js","assets/sortablejs.e4e9a931.js","assets/vue-textarea-autosize.35804eaf.js"])).hasWon,v(l,t=>{t&&p.emit("gameWon")}),d.unthrottled?requestAnimationFrame(a):o=setInterval(a,50)}export{R as startGameLoop};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -14,7 +14,7 @@
<title>Advent Incremental</title>
<meta name="description" content="An incremental game you play a day at a time, leading up to Christmas!"/>
<script defer="true" data-domain="thepaperpilot.org" src="https://plausible.io/js/plausible.js"></script>
<script type="module" crossorigin src="./assets/index.67298ddd.js"></script>
<script type="module" crossorigin src="./assets/index.c658358f.js"></script>
<link rel="modulepreload" href="./assets/bezier-easing.a990b400.js">
<link rel="modulepreload" href="./assets/amator.8216e0d2.js">
<link rel="modulepreload" href="./assets/@vue.359f7754.js">
@ -38,7 +38,7 @@
<link rel="modulepreload" href="./assets/vue-textarea-autosize.35804eaf.js">
<link rel="stylesheet" href="./assets/vue-toastification.4b5f8ac8.css">
<link rel="stylesheet" href="./assets/vue-next-select.9e6f4164.css">
<link rel="stylesheet" href="./assets/index.49bdd4af.css">
<link rel="stylesheet" href="./assets/index.88096596.css">
<link rel="stylesheet" href="./assets/@fontsource.c175eac8.css">
<link rel="manifest" href="./manifest.webmanifest"></head>
<body>

View file

@ -1 +1 @@
if(!self.define){let s,e={};const i=(i,l)=>(i=new URL(i+".js",l).href,e[i]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=i,s.onload=e,document.head.appendChild(s)}else s=i,importScripts(i),e()})).then((()=>{let s=e[i];if(!s)throw new Error(`Module ${i} didnt register its module`);return s})));self.define=(l,n)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let u={};const t=s=>i(s,r),o={module:{uri:r},exports:u,require:t};e[r]=Promise.all(l.map((s=>o[s]||t(s)))).then((s=>(n(...s),u)))}}define(["./workbox-7369c0e1"],(function(s){"use strict";self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"assets/@fontsource.c175eac8.css",revision:null},{url:"assets/@pixi.051d1bd4.js",revision:null},{url:"assets/@vue.359f7754.js",revision:null},{url:"assets/amator.8216e0d2.js",revision:null},{url:"assets/bezier-easing.a990b400.js",revision:null},{url:"assets/earcut.03899505.js",revision:null},{url:"assets/eventemitter3.dc5195d7.js",revision:null},{url:"assets/gameLoop.ca22df8f.js",revision:null},{url:"assets/index.49bdd4af.css",revision:null},{url:"assets/index.67298ddd.js",revision:null},{url:"assets/is-plain-object.906d88e8.js",revision:null},{url:"assets/lz-string.f2f3b7cf.js",revision:null},{url:"assets/nanoevents.1080beb7.js",revision:null},{url:"assets/ngraph.events.083734c6.js",revision:null},{url:"assets/panzoom.9e1878dd.js",revision:null},{url:"assets/querystring.b35d81f8.js",revision:null},{url:"assets/sortablejs.e4e9a931.js",revision:null},{url:"assets/url.1821b64b.js",revision:null},{url:"assets/vue-next-select.9e6f4164.css",revision:null},{url:"assets/vue-next-select.d15705a0.js",revision:null},{url:"assets/vue-panzoom.f6869ea5.js",revision:null},{url:"assets/vue-textarea-autosize.35804eaf.js",revision:null},{url:"assets/vue-toastification.4b5f8ac8.css",revision:null},{url:"assets/vue-toastification.7ec3a26c.js",revision:null},{url:"assets/vue.dd1d82d0.js",revision:null},{url:"assets/vuedraggable.179e27ef.js",revision:null},{url:"assets/wheel.f03080ac.js",revision:null},{url:"assets/workbox-window.4a8794bb.js",revision:null},{url:"index.html",revision:"2cbe3b54b19b5ef44c0b546bb0740187"},{url:"favicon.ico",revision:"eead31eb5b19fa3bdc34af83d898c0b7"},{url:"robots.txt",revision:"5e0bd1c281a62a380d7a948085bfe2d1"},{url:"apple-touch-icon.png",revision:"26e53bb981d06c8069ffd9d2a14fce0e"},{url:"pwa-192x192.png",revision:"a16785d9e890858c5b508e0ef6954aaf"},{url:"pwa-512x512.png",revision:"b84004b93fd62ef6599ff179372861a1"},{url:"manifest.webmanifest",revision:"5f32ad2a77eb001e1b6a588835dc1efc"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))}));
if(!self.define){let s,e={};const i=(i,l)=>(i=new URL(i+".js",l).href,e[i]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=i,s.onload=e,document.head.appendChild(s)}else s=i,importScripts(i),e()})).then((()=>{let s=e[i];if(!s)throw new Error(`Module ${i} didnt register its module`);return s})));self.define=(l,n)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let u={};const t=s=>i(s,r),o={module:{uri:r},exports:u,require:t};e[r]=Promise.all(l.map((s=>o[s]||t(s)))).then((s=>(n(...s),u)))}}define(["./workbox-7369c0e1"],(function(s){"use strict";self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"assets/@fontsource.c175eac8.css",revision:null},{url:"assets/@pixi.051d1bd4.js",revision:null},{url:"assets/@vue.359f7754.js",revision:null},{url:"assets/amator.8216e0d2.js",revision:null},{url:"assets/bezier-easing.a990b400.js",revision:null},{url:"assets/earcut.03899505.js",revision:null},{url:"assets/eventemitter3.dc5195d7.js",revision:null},{url:"assets/gameLoop.b97c9727.js",revision:null},{url:"assets/index.88096596.css",revision:null},{url:"assets/index.c658358f.js",revision:null},{url:"assets/is-plain-object.906d88e8.js",revision:null},{url:"assets/lz-string.f2f3b7cf.js",revision:null},{url:"assets/nanoevents.1080beb7.js",revision:null},{url:"assets/ngraph.events.083734c6.js",revision:null},{url:"assets/panzoom.9e1878dd.js",revision:null},{url:"assets/querystring.b35d81f8.js",revision:null},{url:"assets/sortablejs.e4e9a931.js",revision:null},{url:"assets/url.1821b64b.js",revision:null},{url:"assets/vue-next-select.9e6f4164.css",revision:null},{url:"assets/vue-next-select.d15705a0.js",revision:null},{url:"assets/vue-panzoom.f6869ea5.js",revision:null},{url:"assets/vue-textarea-autosize.35804eaf.js",revision:null},{url:"assets/vue-toastification.4b5f8ac8.css",revision:null},{url:"assets/vue-toastification.7ec3a26c.js",revision:null},{url:"assets/vue.dd1d82d0.js",revision:null},{url:"assets/vuedraggable.179e27ef.js",revision:null},{url:"assets/wheel.f03080ac.js",revision:null},{url:"assets/workbox-window.4a8794bb.js",revision:null},{url:"index.html",revision:"b6c8d0288bd0a81cd2804a412e2ff714"},{url:"favicon.ico",revision:"eead31eb5b19fa3bdc34af83d898c0b7"},{url:"robots.txt",revision:"5e0bd1c281a62a380d7a948085bfe2d1"},{url:"apple-touch-icon.png",revision:"26e53bb981d06c8069ffd9d2a14fce0e"},{url:"pwa-192x192.png",revision:"a16785d9e890858c5b508e0ef6954aaf"},{url:"pwa-512x512.png",revision:"b84004b93fd62ef6599ff179372861a1"},{url:"manifest.webmanifest",revision:"5f32ad2a77eb001e1b6a588835dc1efc"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))}));

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View file

@ -1 +0,0 @@
import{_ as e,q as a,p as t,ag as l,af as s}from"./chunks/framework.DvHfxfnp.js";const _=JSON.parse('{"title":"About Me","description":"","frontmatter":{"title":"About Me","prev":false,"next":false},"headers":[],"relativePath":"about/index.md","filePath":"about/index.md"}'),r={name:"about/index.md"},i=l('<h1 id="about-me" tabindex="-1">About Me <a class="header-anchor" href="#about-me" aria-label="Permalink to &quot;About Me&quot;"></a></h1><div class="h-card"><a class="u-url u-uid" style="display:none;"></a><p><span class="p-note">I&#39;m a software developer who likes making games and tools! I have a variety of interests, from <a href="/garden/my-projects#games">game development</a> to the <a href="/garden/fediverse">fediverse</a> to <a href="/garden/digital-gardens">digital gardens</a>.</span></p><div class="img-container"><img class="u-photo" src="'+s+'"></div><p>I live in <span class="p-locality">Dallas</span>, <span class="p-region">Texas</span>, <span class="p-country-name">USA</span> with my wife and baby son. <span class="p-org h-card">I work at <span class="p-name">Topaz Labs LLC</span> as a <span class="p-job-title">Product Engineer</span>. <span class="p-role">I develop their flagship product Topaz Photo AI</span>.</span></p><p>Reach out to me:</p><ul><li>Email: <a class="u-email" href="mailto:thepaperpilot@incremental.social" rel="me">thepaperpilot@incremental.social</a></li><li>Fediverse: <a class="u-url" href="https://incremental.social/u/thepaperpilot" rel="me">thepaperpilot@incremental.social</a></li><li>Matrix: <a class="u-url" href="https://matrix.to/#/@thepaperpilot:incremental.social" rel="me">@thepaperpilot:incremental.social</a></li><li>Forgejo: <a class="u-url" href="https://code.incremental.social/thepaperpilot" rel="me">thepaperpilot</a></li><li>LinkedIn: <a class="u-url" href="https://www.linkedin.com/in/anthony-lawn/" rel="me">Anthony Lawn</a></li></ul><p>These are old accounts I don&#39;t use anymore, but they are me:</p><ul><li>Mastodon: <a class="u-url" href="https://mastodon.gamedev.place/@thepaperpilot" rel="me">@thepaperpilot@mastodon.gamedev.place</a></li><li>Lemmy: <a class="u-url" href="https://beehaw.org/u/thepaperpilot" rel="me">thepaperpilot@beehaw.org</a></li><li>Reddit: <a class="u-url" href="https://www.reddit.com/user/ThePaperPilot/" rel="me">thepaperpilot</a></li><li>Github: <a class="u-url" href="https://github.com/thepaperpilot" rel="me">thepaperpilot</a></li><li>Twitter: <a class="u-url" href="https://twitter.com/ThePaperPilot" rel="me">@thepaperpilot</a></li></ul></div>',2),p=[i];function o(n,c,h,m,d,u){return t(),a("div",null,p)}const g=e(r,[["render",o]]);export{_ as __pageData,g as default};

View file

@ -1 +0,0 @@
import{_ as e,q as a,p as t,ag as l,af as s}from"./chunks/framework.DvHfxfnp.js";const _=JSON.parse('{"title":"About Me","description":"","frontmatter":{"title":"About Me","prev":false,"next":false},"headers":[],"relativePath":"about/index.md","filePath":"about/index.md"}'),r={name:"about/index.md"},i=l("",2),p=[i];function o(n,c,h,m,d,u){return t(),a("div",null,p)}const g=e(r,[["render",o]]);export{_ as __pageData,g as default};

1
assets/app.88fb6cf0.js Normal file
View file

@ -0,0 +1 @@
import{s,Z as i,$ as u,a0 as c,a1 as l,a2 as d,a3 as f,a4 as m,a5 as h,a6 as A,a7 as g,a8 as P,d as v,u as y,j as C,y as w,a9 as _,aa as b,ab as E,ac as R}from"./chunks/framework.1169fbc9.js";import{t as D}from"./chunks/theme.c36cb2db.js";function p(e){if(e.extends){const a=p(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const o=p(D),j=v({name:"VitePressApp",setup(){const{site:e}=y();return C(()=>{w(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),_(),b(),E(),o.setup&&o.setup(),()=>R(o.Layout)}});async function O(){const e=T(),a=S();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",d),a.component("ClientOnly",f),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),o.enhanceApp&&await o.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function S(){return h(j)}function T(){let e=s,a;return A(t=>{let n=g(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=P(()=>import(n),[])),s&&(e=!1),r},o.NotFound)}s&&O().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{O as createApp};

View file

@ -1 +0,0 @@
import{a6 as o,aB as p,aC as u,aD as l,aE as c,aF as f,aG as d,aH as m,aI as h,aJ as A,aK as g,k as P,M as v,o as C,f as w,aL as y,aM as E,aN as R,A as b}from"./chunks/framework.DvHfxfnp.js";import{a as S}from"./chunks/theme.B5qRBxWI.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return C(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&y(),E(),R(),s.setup&&s.setup(),()=>b(s.Layout)}});async function _(){globalThis.__VITEPRESS__=!0;const e=F(),a=D();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return h(T)}function F(){let e=o,a;return A(t=>{let n=g(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&_().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{_ as createApp};

Binary file not shown.

After

Width:  |  Height:  |  Size: 872 KiB

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
import{_ as t,q as e,p as a,ag as s}from"./chunks/framework.DvHfxfnp.js";const m=JSON.parse('{"title":"Garden Changelog","description":"","frontmatter":{"title":"Garden Changelog","prev":false,"next":false},"headers":[],"relativePath":"changelog/index.md","filePath":"changelog/index.md"}'),n={name:"changelog/index.md"},o=s("",1),r=[o];function l(p,d,c,i,y,h){return a(),e("div",null,r)}const g=t(n,[["render",l]]);export{m as __pageData,g as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

Before

Width:  |  Height:  |  Size: 1.8 MiB

After

Width:  |  Height:  |  Size: 1.8 MiB

View file

Before

Width:  |  Height:  |  Size: 4.3 MiB

After

Width:  |  Height:  |  Size: 4.3 MiB

View file

Before

Width:  |  Height:  |  Size: 7 MiB

After

Width:  |  Height:  |  Size: 7 MiB

View file

Before

Width:  |  Height:  |  Size: 669 KiB

After

Width:  |  Height:  |  Size: 669 KiB

View file

Before

Width:  |  Height:  |  Size: 2.8 MiB

After

Width:  |  Height:  |  Size: 2.8 MiB

View file

Before

Width:  |  Height:  |  Size: 6.3 MiB

After

Width:  |  Height:  |  Size: 6.3 MiB

View file

Before

Width:  |  Height:  |  Size: 7.9 MiB

After

Width:  |  Height:  |  Size: 7.9 MiB

View file

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 96 KiB

View file

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View file

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 201 KiB

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
import{d as i}from"./chunks/git.data.Dtx9V2He.js";import{M as r,q as o,Q as e,K as n,u as t,ag as s,p as l}from"./chunks/framework.DvHfxfnp.js";const h=e("h1",{class:"p-name"},"Abolitionism",-1),c=["innerHTML"],p=s("",42),w=JSON.parse('{"title":"Abolitionism","description":"","frontmatter":{"alias":"Police Abolition","public":"true","slug":"abolitionism","title":"Abolitionism","prev":false,"next":false},"headers":[],"relativePath":"garden/abolitionism/index.md","filePath":"garden/abolitionism/index.md"}'),d={name:"garden/abolitionism/index.md"},y=Object.assign(d,{setup(m){const a=r();return(u,f)=>(l(),o("div",null,[h,e("p",null,[n("1493 words, ~8 minute read. "),e("span",{innerHTML:t(i)[`site/${t(a).page.value.relativePath}`]},null,8,c)]),p]))}});export{w as __pageData,y as default};

View file

@ -1 +0,0 @@
import{d as r}from"./chunks/git.data.Dtx9V2He.js";import{M as n,q as s,Q as e,K as a,u as t,p as d}from"./chunks/framework.DvHfxfnp.js";const l=e("h1",{class:"p-name"},"ActivityPub",-1),c=["innerHTML"],o=e("hr",null,null,-1),u=e("details",null,[e("summary",null,"Referenced by:"),e("a",{href:"/garden/fediverse/index.md"},"Fediverse")],-1),p=e("details",null,[e("summary",null,"Tags:"),e("a",{href:"/garden/decentralized/index.md"},"Decentralized")],-1),_=e("p",null,[e("a",{href:"https://activitypub.rocks",target:"_blank",rel:"noreferrer"},"ActivityPub"),a(" is a protocol for "),e("a",{href:"/garden/fediverse/"},"Federated Social Media")],-1),y=JSON.parse('{"title":"ActivityPub","description":"","frontmatter":{"public":"true","slug":"activitypub","tags":["Decentralized"],"title":"ActivityPub","prev":false,"next":false},"headers":[],"relativePath":"garden/activitypub/index.md","filePath":"garden/activitypub/index.md"}'),f={name:"garden/activitypub/index.md"},x=Object.assign(f,{setup(m){const i=n();return(h,v)=>(d(),s("div",null,[l,e("p",null,[a("8 words, ~0 minute read. "),e("span",{innerHTML:t(r)[`site/${t(i).page.value.relativePath}`]},null,8,c)]),o,u,p,_]))}});export{y as __pageData,x as default};

View file

@ -1 +0,0 @@
import{d as r}from"./chunks/git.data.Dtx9V2He.js";import{M as n,q as s,Q as e,K as a,u as t,p as d}from"./chunks/framework.DvHfxfnp.js";const l=e("h1",{class:"p-name"},"ActivityPub",-1),c=["innerHTML"],o=e("hr",null,null,-1),u=e("details",null,[e("summary",null,"Referenced by:"),e("a",{href:"/garden/fediverse/index.md"},"Fediverse")],-1),p=e("details",null,[e("summary",null,"Tags:"),e("a",{href:"/garden/decentralized/index.md"},"Decentralized")],-1),_=e("p",null,[e("a",{href:"https://activitypub.rocks",target:"_blank",rel:"noreferrer"},"ActivityPub"),a(" is a protocol for "),e("a",{href:"/garden/fediverse/"},"Federated Social Media")],-1),y=JSON.parse('{"title":"ActivityPub","description":"","frontmatter":{"public":"true","slug":"activitypub","tags":["Decentralized"],"title":"ActivityPub","prev":false,"next":false},"headers":[],"relativePath":"garden/activitypub/index.md","filePath":"garden/activitypub/index.md"}'),f={name:"garden/activitypub/index.md"},x=Object.assign(f,{setup(m){const i=n();return(h,v)=>(d(),s("div",null,[l,e("p",null,[a("8 words, ~0 minute read. "),e("span",{innerHTML:t(r)[`site/${t(i).page.value.relativePath}`]},null,8,c)]),o,u,p,_]))}});export{y as __pageData,x as default};

View file

@ -1 +0,0 @@
import{d as n}from"./chunks/git.data.Dtx9V2He.js";import{M as r,q as s,Q as e,K as o,u as t,ag as d,p as i}from"./chunks/framework.DvHfxfnp.js";const p=e("h1",{class:"p-name"},"Advent Incremental",-1),c=["innerHTML"],m=d('<hr><details><summary>Tags:</summary><a href="/garden/my-projects/index.md">My Projects</a><a href="/garden/profectus/index.md">Profectus</a></details><p>Play it <a href="https://thepaperpilot.org/advent" target="_blank" rel="noreferrer">here</a>!</p><p>An <a href="/garden/open-source/">Open Source</a> game made in <a href="/garden/profectus/">Profectus</a> over the course of 1 month by myself and other devs I know in the Incremental Games community!</p><p>I had the idea of an advent-style game that unlocked new pieces of content every real-life day a couple days before December started.</p><p>This was one of the most hectic months of my life!</p><p>I&#39;m super happy with how it turned out. It ended up being way more ambitious than I anticipated but the end result is super large and awesome!</p><p>The <a href="https://tvtropes.org/pmwiki/pmwiki.php/VideoGame/AdventIncremental" target="_blank" rel="noreferrer">TV Tropes</a> page on this game mentions some of the cool things about this game</p>',8),v=JSON.parse('{"title":"Advent Incremental","description":"","frontmatter":{"public":"true","slug":"advent-incremental","tags":["My Projects","Profectus"],"title":"Advent Incremental","prev":false,"next":false},"headers":[],"relativePath":"garden/advent-incremental/index.md","filePath":"garden/advent-incremental/index.md"}'),l={name:"garden/advent-incremental/index.md"},y=Object.assign(l,{setup(h){const a=r();return(u,f)=>(i(),s("div",null,[p,e("p",null,[o("104 words, ~1 minute read. "),e("span",{innerHTML:t(n)[`site/${t(a).page.value.relativePath}`]},null,8,c)]),m]))}});export{v as __pageData,y as default};

View file

@ -1 +0,0 @@
import{d as n}from"./chunks/git.data.Dtx9V2He.js";import{M as r,q as s,Q as e,K as o,u as t,ag as d,p as i}from"./chunks/framework.DvHfxfnp.js";const p=e("h1",{class:"p-name"},"Advent Incremental",-1),c=["innerHTML"],m=d("",8),v=JSON.parse('{"title":"Advent Incremental","description":"","frontmatter":{"public":"true","slug":"advent-incremental","tags":["My Projects","Profectus"],"title":"Advent Incremental","prev":false,"next":false},"headers":[],"relativePath":"garden/advent-incremental/index.md","filePath":"garden/advent-incremental/index.md"}'),l={name:"garden/advent-incremental/index.md"},y=Object.assign(l,{setup(h){const a=r();return(u,f)=>(i(),s("div",null,[p,e("p",null,[o("104 words, ~1 minute read. "),e("span",{innerHTML:t(n)[`site/${t(a).page.value.relativePath}`]},null,8,c)]),m]))}});export{v as __pageData,y as default};

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
import{d as i}from"./chunks/git.data.Dtx9V2He.js";import{M as o,q as r,Q as e,K as s,u as a,ag as n,p as l}from"./chunks/framework.DvHfxfnp.js";const c=e("h1",{class:"p-name"},"Anarchism",-1),h=["innerHTML"],d=n("",11),w=JSON.parse('{"title":"Anarchism","description":"","frontmatter":{"alias":"Democracy, Egalitarianism, Anarchist, Democratic, Egalitarian, Anarchistic","public":"true","slug":"anarchism","title":"Anarchism","prev":false,"next":false},"headers":[],"relativePath":"garden/anarchism/index.md","filePath":"garden/anarchism/index.md"}'),m={name:"garden/anarchism/index.md"},v=Object.assign(m,{setup(p){const t=o();return(u,y)=>(l(),r("div",null,[c,e("p",null,[s("966 words, ~5 minute read. "),e("span",{innerHTML:a(i)[`site/${a(t).page.value.relativePath}`]},null,8,h)]),d]))}});export{w as __pageData,v as default};

View file

@ -1 +0,0 @@
import{d as i}from"./chunks/git.data.Dtx9V2He.js";import{M as s,q as r,Q as e,K as t,u as n,p as o}from"./chunks/framework.DvHfxfnp.js";const l=e("h1",{class:"p-name"},"Art is Never Complete",-1),d=["innerHTML"],c=e("hr",null,null,-1),h=e("details",null,[e("summary",null,"Referenced by:"),e("a",{href:"/garden/guide-to-incrementals/what-is-content/index.md"},"Guide to Incrementals/What is Content?")],-1),u=e("blockquote",null,[e("p",null,"Art is never finished, only abandoned. - Leonardo Da Vinci")],-1),m=e("p",null,[t("This quote intrigues me and feels quite relatable. I've struggled with perfectionism (and in fact it's a large theme in Kronos), something Leonardo famously did as well. This quote feels like an exit ticket to getting out of perfectionist thinking - if art is "),e("em",null,"never"),t(` finished, then when its "done" (abandoned) is arbitrary. Perhaps that's why Leonardo left so many WIPs behind in his journal - if the point at which you abandon them is arbitrary, then why not abandon projects early?`)],-1),y=JSON.parse('{"title":"Art is Never Complete","description":"","frontmatter":{"public":"true","slug":"art-is-never-complete","title":"Art is Never Complete","prev":false,"next":false},"headers":[],"relativePath":"garden/art-is-never-complete/index.md","filePath":"garden/art-is-never-complete/index.md"}'),p={name:"garden/art-is-never-complete/index.md"},x=Object.assign(p,{setup(f){const a=s();return(_,g)=>(o(),r("div",null,[l,e("p",null,[t("92 words, ~1 minute read. "),e("span",{innerHTML:n(i)[`site/${n(a).page.value.relativePath}`]},null,8,d)]),c,h,u,m]))}});export{y as __pageData,x as default};

View file

@ -1 +0,0 @@
import{d as i}from"./chunks/git.data.Dtx9V2He.js";import{M as s,q as r,Q as e,K as t,u as n,p as o}from"./chunks/framework.DvHfxfnp.js";const l=e("h1",{class:"p-name"},"Art is Never Complete",-1),d=["innerHTML"],c=e("hr",null,null,-1),h=e("details",null,[e("summary",null,"Referenced by:"),e("a",{href:"/garden/guide-to-incrementals/what-is-content/index.md"},"Guide to Incrementals/What is Content?")],-1),u=e("blockquote",null,[e("p",null,"Art is never finished, only abandoned. - Leonardo Da Vinci")],-1),m=e("p",null,[t("This quote intrigues me and feels quite relatable. I've struggled with perfectionism (and in fact it's a large theme in Kronos), something Leonardo famously did as well. This quote feels like an exit ticket to getting out of perfectionist thinking - if art is "),e("em",null,"never"),t(` finished, then when its "done" (abandoned) is arbitrary. Perhaps that's why Leonardo left so many WIPs behind in his journal - if the point at which you abandon them is arbitrary, then why not abandon projects early?`)],-1),y=JSON.parse('{"title":"Art is Never Complete","description":"","frontmatter":{"public":"true","slug":"art-is-never-complete","title":"Art is Never Complete","prev":false,"next":false},"headers":[],"relativePath":"garden/art-is-never-complete/index.md","filePath":"garden/art-is-never-complete/index.md"}'),p={name:"garden/art-is-never-complete/index.md"},x=Object.assign(p,{setup(f){const a=s();return(_,g)=>(o(),r("div",null,[l,e("p",null,[t("92 words, ~1 minute read. "),e("span",{innerHTML:n(i)[`site/${n(a).page.value.relativePath}`]},null,8,d)]),c,h,u,m]))}});export{y as __pageData,x as default};

View file

@ -1 +0,0 @@
import{d as l}from"./chunks/git.data.Dtx9V2He.js";import{M as r,q as i,Q as e,K as n,u as a,ag as o,p as s}from"./chunks/framework.DvHfxfnp.js";const c=e("h1",{class:"p-name"},"Artificial Intelligence",-1),d=["innerHTML"],p=o('<hr><details><summary>Referenced by:</summary><a href="/garden/command-palettes/index.md">Command Palettes</a></details><p>Catch all term that refers to many different things</p><p>Generative AI</p><ul><li>Models trained on large amounts of existing human made content in order to produce more of that content</li><li>Copyright concerns over how training data is obtained <ul><li><a href="https://nebula.tv/videos/philosophytube-what-ethical-ai-really-means/" target="_blank" rel="noreferrer">What Ethical AI Really Means</a> by Philosophy Tube <ul><li><blockquote><p>Ethical AI cannot exist under Capitalism</p></blockquote></li></ul></li></ul></li><li>Common Examples <ul><li>LLMs like ChatGPT <ul><li>Some also take voice and video input, like <a href="https://gemini.google.com" target="_blank" rel="noreferrer">Gemini</a> or <a href="https://openai.com/index/hello-gpt-4o/" target="_blank" rel="noreferrer">ChatGPT-4o</a></li></ul></li><li>Art generators like <a href="https://openai.com/index/dall-e-3/" target="_blank" rel="noreferrer">Dall-E</a> or <a href="https://www.midjourney.com/home" target="_blank" rel="noreferrer">Midjourney</a></li></ul></li></ul><p>Human + AI cooperation</p><ul><li><a href="https://www.patreon.com/posts/cyborgs-85486143" target="_blank" rel="noreferrer">&quot;Cyborgs&quot;</a> by Nicky Case</li><li>Personal AI assistants <ul><li><a href="https://doc.searls.com/2024/05/10/personal-vs-personalized/" target="_blank" rel="noreferrer">Personal vs Personalized AI</a></li></ul></li><li><a href="https://maggieappleton.com/home-cooked-software" target="_blank" rel="noreferrer">Home-Cooked Software and Barefoot Developers</a> discusses how language models can help individuals build personal specialized software</li></ul>',7),b=JSON.parse('{"title":"Artificial Intelligence","description":"","frontmatter":{"public":"true","slug":"artificial-intelligence","title":"Artificial Intelligence","prev":false,"next":false},"headers":[],"relativePath":"garden/artificial-intelligence/index.md","filePath":"garden/artificial-intelligence/index.md"}'),u={name:"garden/artificial-intelligence/index.md"},k=Object.assign(u,{setup(h){const t=r();return(m,f)=>(s(),i("div",null,[c,e("p",null,[n("101 words, ~1 minute read. "),e("span",{innerHTML:a(l)[`site/${a(t).page.value.relativePath}`]},null,8,d)]),p]))}});export{b as __pageData,k as default};

View file

@ -1 +0,0 @@
import{d as l}from"./chunks/git.data.Dtx9V2He.js";import{M as r,q as i,Q as e,K as n,u as a,ag as o,p as s}from"./chunks/framework.DvHfxfnp.js";const c=e("h1",{class:"p-name"},"Artificial Intelligence",-1),d=["innerHTML"],p=o("",7),b=JSON.parse('{"title":"Artificial Intelligence","description":"","frontmatter":{"public":"true","slug":"artificial-intelligence","title":"Artificial Intelligence","prev":false,"next":false},"headers":[],"relativePath":"garden/artificial-intelligence/index.md","filePath":"garden/artificial-intelligence/index.md"}'),u={name:"garden/artificial-intelligence/index.md"},k=Object.assign(u,{setup(h){const t=r();return(m,f)=>(s(),i("div",null,[c,e("p",null,[n("101 words, ~1 minute read. "),e("span",{innerHTML:a(l)[`site/${a(t).page.value.relativePath}`]},null,8,d)]),p]))}});export{b as __pageData,k as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as o,q as s,Q as e,K as n,u as a,ag as d,p as i}from"./chunks/framework.DvHfxfnp.js";const l=e("h1",{class:"p-name"},"ATProto",-1),p=["innerHTML"],c=d('<hr><details><summary>Referenced by:</summary><a href="/garden/fediverse/index.md">Fediverse</a></details><details><summary>Tags:</summary><a href="/garden/decentralized/index.md">Decentralized</a></details><p>The <a href="https://atproto.com" target="_blank" rel="noreferrer">AT Protocol</a> is a protocol for <a href="/garden/fediverse/">Federated Social Media</a></p><p>Currently only used by <a href="https://bsky.app" target="_blank" rel="noreferrer">Bluesky</a></p><p>In comparison to other <a href="/garden/fediverse/">Fediverse</a> protocols, ATProto is designed for a small number of large instances</p>',6),T=JSON.parse('{"title":"ATProto","description":"","frontmatter":{"alias":"The AT Protocol","public":"true","slug":"atproto","tags":["Decentralized"],"title":"ATProto","prev":false,"next":false},"headers":[],"relativePath":"garden/atproto/index.md","filePath":"garden/atproto/index.md"}'),_={name:"garden/atproto/index.md"},P=Object.assign(_,{setup(m){const r=o();return(f,u)=>(i(),s("div",null,[l,e("p",null,[n("31 words, ~0 minute read. "),e("span",{innerHTML:a(t)[`site/${a(r).page.value.relativePath}`]},null,8,p)]),c]))}});export{T as __pageData,P as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as o,q as s,Q as e,K as n,u as a,ag as d,p as i}from"./chunks/framework.DvHfxfnp.js";const l=e("h1",{class:"p-name"},"ATProto",-1),p=["innerHTML"],c=d("",6),T=JSON.parse('{"title":"ATProto","description":"","frontmatter":{"alias":"The AT Protocol","public":"true","slug":"atproto","tags":["Decentralized"],"title":"ATProto","prev":false,"next":false},"headers":[],"relativePath":"garden/atproto/index.md","filePath":"garden/atproto/index.md"}'),_={name:"garden/atproto/index.md"},P=Object.assign(_,{setup(m){const r=o();return(f,u)=>(i(),s("div",null,[l,e("p",null,[n("31 words, ~0 minute read. "),e("span",{innerHTML:a(t)[`site/${a(r).page.value.relativePath}`]},null,8,p)]),c]))}});export{T as __pageData,P as default};

View file

@ -1 +0,0 @@
import{d as r}from"./chunks/git.data.Dtx9V2He.js";import{M as s,q as o,Q as e,K as n,u as t,ag as i,p as b}from"./chunks/framework.DvHfxfnp.js";const d=e("h1",{class:"p-name"},"Babble Buds",-1),l=["innerHTML"],p=i('<hr><details><summary>Tags:</summary><a href="/garden/my-projects/index.md">My Projects</a></details><p><a href="http://babblebuds.xyz" target="_blank" rel="noreferrer">Babble Buds</a> is a tool for creating puppets and interacting with puppets controlled by others on a shared stage</p><blockquote><p>Note: I need to move the website off replit because of their monetization strategy changing. In the meantime, you can check it out from its <a href="https://github.com/thepaperpilot/babble-buds" target="_blank" rel="noreferrer">github repository</a></p></blockquote><p>Inspired by Puppet Pals by Robert Moran</p><p>Intended for use in RPG Campaigns</p><p>The renderer was separated into its own project, <a href="https://github.com/thepaperpilot/babble.js" target="_blank" rel="noreferrer">babble.js</a>, so it could be used for stuff like cutscenes</p><p>I ported the engine to C# and used it for the cutscenes in <a href="/garden/dice-armor/">Dice Armor</a></p><ul><li>I don&#39;t believe I ever separated it out into its own project, but you can find the code <a href="https://github.com/sreynoldsdesign/dice_armor/tree/master/Assets/Scripts/babble.cs" target="_blank" rel="noreferrer">here</a></li></ul>',9),g=JSON.parse('{"title":"Babble Buds","description":"","frontmatter":{"public":"true","slug":"babble-buds","tags":["My Projects"],"title":"Babble Buds","prev":false,"next":false},"headers":[],"relativePath":"garden/babble-buds/index.md","filePath":"garden/babble-buds/index.md"}'),c={name:"garden/babble-buds/index.md"},y=Object.assign(c,{setup(u){const a=s();return(h,_)=>(b(),o("div",null,[d,e("p",null,[n("113 words, ~1 minute read. "),e("span",{innerHTML:t(r)[`site/${t(a).page.value.relativePath}`]},null,8,l)]),p]))}});export{g as __pageData,y as default};

View file

@ -1 +0,0 @@
import{d as r}from"./chunks/git.data.Dtx9V2He.js";import{M as s,q as o,Q as e,K as n,u as t,ag as i,p as b}from"./chunks/framework.DvHfxfnp.js";const d=e("h1",{class:"p-name"},"Babble Buds",-1),l=["innerHTML"],p=i("",9),g=JSON.parse('{"title":"Babble Buds","description":"","frontmatter":{"public":"true","slug":"babble-buds","tags":["My Projects"],"title":"Babble Buds","prev":false,"next":false},"headers":[],"relativePath":"garden/babble-buds/index.md","filePath":"garden/babble-buds/index.md"}'),c={name:"garden/babble-buds/index.md"},y=Object.assign(c,{setup(u){const a=s();return(h,_)=>(b(),o("div",null,[d,e("p",null,[n("113 words, ~1 minute read. "),e("span",{innerHTML:t(r)[`site/${t(a).page.value.relativePath}`]},null,8,l)]),p]))}});export{g as __pageData,y as default};

View file

@ -1 +0,0 @@
import{M as s,q as n,Q as e,K as t,u as a,ah as i,p as l}from"./chunks/framework.DvHfxfnp.js";import{d as o}from"./chunks/git.data.Dtx9V2He.js";const c=e("h1",{class:"p-name"},"Capture the Citadel",-1),d=["innerHTML"],p=e("hr",null,null,-1),h=e("details",null,[e("summary",null,"Tags:"),e("a",{href:"/garden/my-projects/index.md"},"My Projects")],-1),u=e("p",null,"A 3D VR re-envisioning of a Slay the Spire-style game by Anthony Lawn and Grant Barbee for their VR class in college's final project.",-1),_=e("p",null,[t("For more details, visit "),e("a",{href:"https://grantcbarbee.github.io/conquer-the-citadel.html",target:"_blank",rel:"noreferrer"},"Grant's page on the game"),t(".")],-1),m=e("div",{class:"img-container"},[e("img",{src:i,title:"screenshot.png"})],-1),C=JSON.parse('{"title":"Capture the Citadel","description":"","frontmatter":{"public":"true","slug":"capture-the-citadel","tags":["My Projects"],"title":"Capture the Citadel","prev":false,"next":false},"headers":[],"relativePath":"garden/capture-the-citadel/index.md","filePath":"garden/capture-the-citadel/index.md"}'),g={name:"garden/capture-the-citadel/index.md"},j=Object.assign(g,{setup(f){const r=s();return(b,v)=>(l(),n("div",null,[c,e("p",null,[t("39 words, ~0 minute read. "),e("span",{innerHTML:a(o)[`site/${a(r).page.value.relativePath}`]},null,8,d)]),p,h,u,_,m]))}});export{C as __pageData,j as default};

View file

@ -1 +0,0 @@
import{M as s,q as n,Q as e,K as t,u as a,ah as i,p as l}from"./chunks/framework.DvHfxfnp.js";import{d as o}from"./chunks/git.data.Dtx9V2He.js";const c=e("h1",{class:"p-name"},"Capture the Citadel",-1),d=["innerHTML"],p=e("hr",null,null,-1),h=e("details",null,[e("summary",null,"Tags:"),e("a",{href:"/garden/my-projects/index.md"},"My Projects")],-1),u=e("p",null,"A 3D VR re-envisioning of a Slay the Spire-style game by Anthony Lawn and Grant Barbee for their VR class in college's final project.",-1),_=e("p",null,[t("For more details, visit "),e("a",{href:"https://grantcbarbee.github.io/conquer-the-citadel.html",target:"_blank",rel:"noreferrer"},"Grant's page on the game"),t(".")],-1),m=e("div",{class:"img-container"},[e("img",{src:i,title:"screenshot.png"})],-1),C=JSON.parse('{"title":"Capture the Citadel","description":"","frontmatter":{"public":"true","slug":"capture-the-citadel","tags":["My Projects"],"title":"Capture the Citadel","prev":false,"next":false},"headers":[],"relativePath":"garden/capture-the-citadel/index.md","filePath":"garden/capture-the-citadel/index.md"}'),g={name:"garden/capture-the-citadel/index.md"},j=Object.assign(g,{setup(f){const r=s();return(b,v)=>(l(),n("div",null,[c,e("p",null,[t("39 words, ~0 minute read. "),e("span",{innerHTML:a(o)[`site/${a(r).page.value.relativePath}`]},null,8,d)]),p,h,u,_,m]))}});export{C as __pageData,j as default};

View file

@ -1 +0,0 @@
import{d as s}from"./chunks/git.data.Dtx9V2He.js";import{M as l,q as r,Q as e,K as t,u as a,p as i}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Chat Glue",-1),d=["innerHTML"],c=e("hr",null,null,-1),h=e("details",null,[e("summary",null,"Referenced by:"),e("a",{href:"/garden/commune/index.md"},"Commune"),e("a",{href:"/garden/my-personal-website/index.md"},"My Personal Website"),e("a",{href:"/garden/the-small-web/index.md"},"The Small Web")],-1),u=e("p",null,"A theoretical chat system designed to solve the problems of transcribing branching conversations into linear timelines.",-1),m=e("p",null,[t("Defined by the "),e("a",{href:"https://a9.io/glue-comic/",target:"_blank",rel:"noreferrer"},"Chatting with Glue"),t(" comic.")],-1),v=JSON.parse('{"title":"Chat Glue","description":"","frontmatter":{"public":"true","slug":"chat-glue","title":"Chat Glue","prev":false,"next":false},"headers":[],"relativePath":"garden/chat-glue/index.md","filePath":"garden/chat-glue/index.md"}'),_={name:"garden/chat-glue/index.md"},y=Object.assign(_,{setup(p){const n=l();return(g,f)=>(i(),r("div",null,[o,e("p",null,[t("23 words, ~0 minute read. "),e("span",{innerHTML:a(s)[`site/${a(n).page.value.relativePath}`]},null,8,d)]),c,h,u,m]))}});export{v as __pageData,y as default};

View file

@ -1 +0,0 @@
import{d as s}from"./chunks/git.data.Dtx9V2He.js";import{M as l,q as r,Q as e,K as t,u as a,p as i}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Chat Glue",-1),d=["innerHTML"],c=e("hr",null,null,-1),h=e("details",null,[e("summary",null,"Referenced by:"),e("a",{href:"/garden/commune/index.md"},"Commune"),e("a",{href:"/garden/my-personal-website/index.md"},"My Personal Website"),e("a",{href:"/garden/the-small-web/index.md"},"The Small Web")],-1),u=e("p",null,"A theoretical chat system designed to solve the problems of transcribing branching conversations into linear timelines.",-1),m=e("p",null,[t("Defined by the "),e("a",{href:"https://a9.io/glue-comic/",target:"_blank",rel:"noreferrer"},"Chatting with Glue"),t(" comic.")],-1),v=JSON.parse('{"title":"Chat Glue","description":"","frontmatter":{"public":"true","slug":"chat-glue","title":"Chat Glue","prev":false,"next":false},"headers":[],"relativePath":"garden/chat-glue/index.md","filePath":"garden/chat-glue/index.md"}'),_={name:"garden/chat-glue/index.md"},y=Object.assign(_,{setup(p){const n=l();return(g,f)=>(i(),r("div",null,[o,e("p",null,[t("23 words, ~0 minute read. "),e("span",{innerHTML:a(s)[`site/${a(n).page.value.relativePath}`]},null,8,d)]),c,h,u,m]))}});export{v as __pageData,y as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as r,q as i,Q as e,K as n,u as a,ag as l,p as s}from"./chunks/framework.DvHfxfnp.js";const c=e("h1",{class:"p-name"},"Chronological",-1),d=["innerHTML"],h=l('<hr><details><summary>Referenced by:</summary><a href="/garden/digital-gardens/index.md">Digital Gardens</a><a href="/garden/freeform-vs-chronological-dichotomy/index.md">Freeform vs Chronological Dichotomy</a></details><p>A collection of information that is tied to its creation or edit date</p><p>Part of the <a href="/garden/freeform-vs-chronological-dichotomy/">Freeform vs Chronological Dichotomy</a></p><p>Anything with a &quot;timeline&quot; or &quot;feed&quot; is considered chronological</p><ul><li>Even if there&#39;s algorithmic sortings that take things other than creation or edit date into account!</li></ul><p>Chronological displays are less suitable as stores of knowledge (<a href="/garden/digital-gardens/">Digital Gardens</a>)</p><p>Social media overuses timelines and feeds</p><p>RSS feeds work really well with this form of content</p>',9),v=JSON.parse('{"title":"Chronological","description":"","frontmatter":{"public":"true","slug":"chronological","title":"Chronological","prev":false,"next":false},"headers":[],"relativePath":"garden/chronological/index.md","filePath":"garden/chronological/index.md"}'),g={name:"garden/chronological/index.md"},y=Object.assign(g,{setup(m){const o=r();return(f,p)=>(s(),i("div",null,[c,e("p",null,[n("73 words, ~0 minute read. "),e("span",{innerHTML:a(t)[`site/${a(o).page.value.relativePath}`]},null,8,d)]),h]))}});export{v as __pageData,y as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as r,q as i,Q as e,K as n,u as a,ag as l,p as s}from"./chunks/framework.DvHfxfnp.js";const c=e("h1",{class:"p-name"},"Chronological",-1),d=["innerHTML"],h=l("",9),v=JSON.parse('{"title":"Chronological","description":"","frontmatter":{"public":"true","slug":"chronological","title":"Chronological","prev":false,"next":false},"headers":[],"relativePath":"garden/chronological/index.md","filePath":"garden/chronological/index.md"}'),g={name:"garden/chronological/index.md"},y=Object.assign(g,{setup(m){const o=r();return(f,p)=>(s(),i("div",null,[c,e("p",null,[n("73 words, ~0 minute read. "),e("span",{innerHTML:a(t)[`site/${a(o).page.value.relativePath}`]},null,8,d)]),h]))}});export{v as __pageData,y as default};

View file

@ -1 +0,0 @@
import{d as r}from"./chunks/git.data.Dtx9V2He.js";import{M as s,q as i,Q as e,K as n,u as a,p as l}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Cinny",-1),c=["innerHTML"],d=e("hr",null,null,-1),u=e("details",null,[e("summary",null,"Referenced by:"),e("a",{href:"/garden/incremental-social/index.md"},"Incremental Social")],-1),p=e("p",null,[e("a",{href:"https://cinny.in",target:"_blank",rel:"noreferrer"},"Cinny"),n(" is an "),e("a",{href:"/garden/open-source/"},"Open Source"),n(" web client for the "),e("a",{href:"/garden/matrix/"},"Matrix"),n(" messaging protocol")],-1),x=JSON.parse('{"title":"Cinny","description":"","frontmatter":{"public":"true","slug":"cinny","title":"Cinny","prev":false,"next":false},"headers":[],"relativePath":"garden/cinny/index.md","filePath":"garden/cinny/index.md"}'),_={name:"garden/cinny/index.md"},b=Object.assign(_,{setup(m){const t=s();return(h,f)=>(l(),i("div",null,[o,e("p",null,[n("3 words, ~0 minute read. "),e("span",{innerHTML:a(r)[`site/${a(t).page.value.relativePath}`]},null,8,c)]),d,u,p]))}});export{x as __pageData,b as default};

View file

@ -1 +0,0 @@
import{d as r}from"./chunks/git.data.Dtx9V2He.js";import{M as s,q as i,Q as e,K as n,u as a,p as l}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Cinny",-1),c=["innerHTML"],d=e("hr",null,null,-1),u=e("details",null,[e("summary",null,"Referenced by:"),e("a",{href:"/garden/incremental-social/index.md"},"Incremental Social")],-1),p=e("p",null,[e("a",{href:"https://cinny.in",target:"_blank",rel:"noreferrer"},"Cinny"),n(" is an "),e("a",{href:"/garden/open-source/"},"Open Source"),n(" web client for the "),e("a",{href:"/garden/matrix/"},"Matrix"),n(" messaging protocol")],-1),x=JSON.parse('{"title":"Cinny","description":"","frontmatter":{"public":"true","slug":"cinny","title":"Cinny","prev":false,"next":false},"headers":[],"relativePath":"garden/cinny/index.md","filePath":"garden/cinny/index.md"}'),_={name:"garden/cinny/index.md"},b=Object.assign(_,{setup(m){const t=s();return(h,f)=>(l(),i("div",null,[o,e("p",null,[n("3 words, ~0 minute read. "),e("span",{innerHTML:a(r)[`site/${a(t).page.value.relativePath}`]},null,8,c)]),d,u,p]))}});export{x as __pageData,b as default};

View file

@ -1 +0,0 @@
import{d as n}from"./chunks/git.data.Dtx9V2He.js";import{M as s,q as l,Q as e,K as i,u as a,ag as o,p as r}from"./chunks/framework.DvHfxfnp.js";const m=e("h1",{class:"p-name"},"Command Palettes",-1),c=["innerHTML"],p=o('<hr><p>Command palettes are a design pattern where apps expose functionality through a search bar</p><p>Typing what you want is almost certainly easier and faster than finding the action in some submenu or remembering an arcane hotkey</p><ul><li>Especially with fuzzy search that also looks through descriptions of actions</li><li>Command palettes scale very well with large amounts of actions</li></ul><p><a href="/garden/artificial-intelligence/">Artificial Intelligence</a> will make command palettes increasingly powerful</p><ul><li>Eventually these may become conversational interfaces</li></ul><p>Maggie Appleton discusses this pattern in her article on <a href="https://maggieappleton.com/command-bar" target="_blank" rel="noreferrer">Command K Bars</a></p><ul><li>The name comes from the fact many apps use the ctrl/cmd k shortcut to open the command palette</li></ul><p>Many softwares I use have some form of command palette</p><ul><li>Linear</li><li><a href="/garden/logseq/">Logseq</a></li><li>Visual Studio Code</li></ul>',10),y=JSON.parse('{"title":"Command Palettes","description":"","frontmatter":{"public":"true","slug":"command-palettes","title":"Command Palettes","prev":false,"next":false},"headers":[],"relativePath":"garden/command-palettes/index.md","filePath":"garden/command-palettes/index.md"}'),d={name:"garden/command-palettes/index.md"},T=Object.assign(d,{setup(u){const t=s();return(h,_)=>(r(),l("div",null,[m,e("p",null,[i("117 words, ~1 minute read. "),e("span",{innerHTML:a(n)[`site/${a(t).page.value.relativePath}`]},null,8,c)]),p]))}});export{y as __pageData,T as default};

View file

@ -1 +0,0 @@
import{d as n}from"./chunks/git.data.Dtx9V2He.js";import{M as s,q as l,Q as e,K as i,u as a,ag as o,p as r}from"./chunks/framework.DvHfxfnp.js";const m=e("h1",{class:"p-name"},"Command Palettes",-1),c=["innerHTML"],p=o("",10),y=JSON.parse('{"title":"Command Palettes","description":"","frontmatter":{"public":"true","slug":"command-palettes","title":"Command Palettes","prev":false,"next":false},"headers":[],"relativePath":"garden/command-palettes/index.md","filePath":"garden/command-palettes/index.md"}'),d={name:"garden/command-palettes/index.md"},T=Object.assign(d,{setup(u){const t=s();return(h,_)=>(r(),l("div",null,[m,e("p",null,[i("117 words, ~1 minute read. "),e("span",{innerHTML:a(n)[`site/${a(t).page.value.relativePath}`]},null,8,c)]),p]))}});export{y as __pageData,T as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as i,q as n,Q as e,K as l,u as a,ag as s,p as d}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Commune",-1),m=["innerHTML"],h=s('<hr><details><summary>Referenced by:</summary><a href="/garden/federated-identity/index.md">Federated Identity</a><a href="/garden/my-personal-website/index.md">My Personal Website</a><a href="/now/index">/now</a><a href="/garden/webrings/index.md">Webrings</a><a href="/garden/weird/index.md">Weird</a></details><p>An <a href="/garden/open-source/">Open Source</a> <a href="/garden/matrix/">Matrix</a> web client built to be better for communities than anything else out there</p><ul><li>Currently in development</li><li>Exposes certain channels such that they are web indexable</li><li>Will include features like <a href="/garden/chat-glue/">Chat Glue</a> and communal <a href="/garden/digital-gardens/">Digital Gardens</a></li></ul><p>Created by <a href="https://writing.exchange/@erlend" target="_blank" rel="noreferrer">Erlend Sogge Heggen</a>, a ex-employee from Discourse</p><ul><li>Maintains the <a href="https://blog.commune.sh" target="_blank" rel="noreferrer">Commune Blog</a> with great write ups on the issues of the modern web, social media, etc. and how they can be improved (by Commune or related projects)</li><li>Also maintains a <a href="https://blog.erlend.sh" target="_blank" rel="noreferrer">Personal Blog</a> about similar topics</li></ul><p>The Commune community is very interested in various topics and how they can relate together:</p><ul><li><a href="/garden/federated-identity/">Federated Identity</a></li><li><a href="/garden/the-small-web/">Personal Web</a></li><li><a href="/garden/digital-gardens/">Digital Gardens</a></li><li><a href="/garden/social-media/">Social Media</a></li><li>The common themes here are they want these things <a href="/garden/decentralized/">Decentralized</a> and <a href="/garden/freeform/">Freeform</a></li><li>They&#39;re also building <a href="/garden/weird/">Weird</a> to make several of these more accessible</li></ul><p>Related projects:</p><ul><li><a href="https://tech.lgbt/@laxla" target="_blank" rel="noreferrer">@laxla@tech.lgbt</a> is creating Gimli, a federated discord alternative <ul><li>Built on ActivityPub</li><li>&quot;Guild-based&quot; in ways matrix is not?</li><li>Will integrate with F3 as well</li><li>Wants to handle blogging as well</li><li>Certainly seems similar to Commune&#39;s message gardening concept</li></ul></li></ul>',10),b=JSON.parse('{"title":"Commune","description":"","frontmatter":{"public":"true","slug":"commune","title":"Commune","prev":false,"next":false},"headers":[],"relativePath":"garden/commune/index.md","filePath":"garden/commune/index.md"}'),u={name:"garden/commune/index.md"},y=Object.assign(u,{setup(c){const r=i();return(g,f)=>(d(),n("div",null,[o,e("p",null,[l("144 words, ~1 minute read. "),e("span",{innerHTML:a(t)[`site/${a(r).page.value.relativePath}`]},null,8,m)]),h]))}});export{b as __pageData,y as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as i,q as n,Q as e,K as l,u as a,ag as s,p as d}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Commune",-1),m=["innerHTML"],h=s("",10),b=JSON.parse('{"title":"Commune","description":"","frontmatter":{"public":"true","slug":"commune","title":"Commune","prev":false,"next":false},"headers":[],"relativePath":"garden/commune/index.md","filePath":"garden/commune/index.md"}'),u={name:"garden/commune/index.md"},y=Object.assign(u,{setup(c){const r=i();return(g,f)=>(d(),n("div",null,[o,e("p",null,[l("144 words, ~1 minute read. "),e("span",{innerHTML:a(t)[`site/${a(r).page.value.relativePath}`]},null,8,m)]),h]))}});export{b as __pageData,y as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as o,q as r,Q as e,K as i,u as a,ag as n,p as c}from"./chunks/framework.DvHfxfnp.js";const l=e("h1",{class:"p-name"},"Consensus Democracy",-1),m=["innerHTML"],d=n('<hr><details><summary>Referenced by:</summary><a href="/garden/anarchism/index.md">Anarchism</a></details><p>A form of democracy similar to <a href="/garden/direct-democracy/">Direct Democracy</a> but with higher requirements for passing policies, typically requiring unanimity or near-unanimity. This helps reduce (although doesn&#39;t eliminate) the possibility of a majority group oppressing a minority group.</p><p>Consensus democracy encourages and requires innovative solutions to problems (similar to how <a href="/garden/abolitionism/">Police Abolition</a>) and pragmatic compromises. However, this can make them susceptible to &quot;design by committee&quot; and can make policies impossibly difficult to pass for large groups of people.</p><p>Since consensus democracy doesn&#39;t scale well, larger governments could be structured as a federation of smaller governments. The smaller governments still use consensus democracy, but the federation only adopts policies that a super-majority of the smaller governments have agreed upon. Alternatively, the federation could specifically ask the local governments for policy proposals, then use <a href="/garden/direct-democracy/">Direct Democracy</a> to decide whether to approve it or not, still requiring a super-majority.</p><p>For policies that still are unable to pass federally, local governments could form coalitions that organize larger-scale initiatives between several districts. For example, this could empower efforts like transit systems between districts.</p>',6),_=JSON.parse('{"title":"Consensus Democracy","description":"","frontmatter":{"public":"true","slug":"consensus-democracy","title":"Consensus Democracy","prev":false,"next":false},"headers":[],"relativePath":"garden/consensus-democracy/index.md","filePath":"garden/consensus-democracy/index.md"}'),p={name:"garden/consensus-democracy/index.md"},v=Object.assign(p,{setup(u){const s=o();return(h,g)=>(c(),r("div",null,[l,e("p",null,[i("162 words, ~1 minute read. "),e("span",{innerHTML:a(t)[`site/${a(s).page.value.relativePath}`]},null,8,m)]),d]))}});export{_ as __pageData,v as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as o,q as r,Q as e,K as i,u as a,ag as n,p as c}from"./chunks/framework.DvHfxfnp.js";const l=e("h1",{class:"p-name"},"Consensus Democracy",-1),m=["innerHTML"],d=n("",6),_=JSON.parse('{"title":"Consensus Democracy","description":"","frontmatter":{"public":"true","slug":"consensus-democracy","title":"Consensus Democracy","prev":false,"next":false},"headers":[],"relativePath":"garden/consensus-democracy/index.md","filePath":"garden/consensus-democracy/index.md"}'),p={name:"garden/consensus-democracy/index.md"},v=Object.assign(p,{setup(u){const s=o();return(h,g)=>(c(),r("div",null,[l,e("p",null,[i("162 words, ~1 minute read. "),e("span",{innerHTML:a(t)[`site/${a(s).page.value.relativePath}`]},null,8,m)]),d]))}});export{_ as __pageData,v as default};

View file

@ -1 +0,0 @@
import{d as n}from"./chunks/git.data.Dtx9V2He.js";import{M as t,q as d,Q as e,K as i,u as a,ag as s,p as l}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Davey Wreden",-1),h=["innerHTML"],u=s('<hr><details><summary>Referenced by:</summary><a href="/garden/ivy-road/index.md">Ivy Road</a><a href="/garden/the-beginner-s-guide/index.md">The Beginner&#39;s Guide</a></details><details><summary>Tagged by:</summary><a href="/garden/ivy-road/index.md">Ivy Road</a><a href="/garden/the-beginner-s-guide/index.md">The Beginner&#39;s Guide</a><a href="/garden/wanderstop/index.md">Wanderstop</a></details><p>Projects:</p><ul><li>The Stanley Parable</li><li><a href="/garden/the-beginner-s-guide/">The Beginner&#39;s Guide</a></li><li><a href="/garden/ivy-road/">Ivy Road</a></li></ul><p>Talks and Interviews:</p><ul><li>LATER <a href="https://www.idlethumbs.net/tonecontrol/episodes/davey-wreden-1" target="_blank" rel="noreferrer">Tone Control 20: Davey Wreden</a></li><li><a href="https://www.youtube.com/watch?v=REnFIJhVA-g" target="_blank" rel="noreferrer">I played The Stanley Parable with the game&#39;s creator</a></li><li><a href="https://www.youtube.com/watch?v=bKMAJ8vOMDg" target="_blank" rel="noreferrer">Davey Wreden: Playing Stories - Aalto University Games Now!</a></li></ul>',7),v=JSON.parse('{"title":"Davey Wreden","description":"","frontmatter":{"public":"true","slug":"davey-wreden","title":"Davey Wreden","prev":false,"next":false},"headers":[],"relativePath":"garden/davey-wreden/index.md","filePath":"garden/davey-wreden/index.md"}'),g={name:"garden/davey-wreden/index.md"},f=Object.assign(g,{setup(_){const r=t();return(m,c)=>(l(),d("div",null,[o,e("p",null,[i("37 words, ~0 minute read. "),e("span",{innerHTML:a(n)[`site/${a(r).page.value.relativePath}`]},null,8,h)]),u]))}});export{v as __pageData,f as default};

View file

@ -1 +0,0 @@
import{d as n}from"./chunks/git.data.Dtx9V2He.js";import{M as t,q as d,Q as e,K as i,u as a,ag as s,p as l}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Davey Wreden",-1),h=["innerHTML"],u=s("",7),v=JSON.parse('{"title":"Davey Wreden","description":"","frontmatter":{"public":"true","slug":"davey-wreden","title":"Davey Wreden","prev":false,"next":false},"headers":[],"relativePath":"garden/davey-wreden/index.md","filePath":"garden/davey-wreden/index.md"}'),g={name:"garden/davey-wreden/index.md"},f=Object.assign(g,{setup(_){const r=t();return(m,c)=>(l(),d("div",null,[o,e("p",null,[i("37 words, ~0 minute read. "),e("span",{innerHTML:a(n)[`site/${a(r).page.value.relativePath}`]},null,8,h)]),u]))}});export{v as __pageData,f as default};

View file

@ -1 +0,0 @@
import{d as r}from"./chunks/git.data.Dtx9V2He.js";import{M as i,q as n,Q as e,K as d,u as a,ag as s,p as l}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Decentralized",-1),c=["innerHTML"],m=s('<hr><details><summary>Referenced by:</summary><a href="/garden/commune/index.md">Commune</a><a href="/garden/fedi-v2/index.md">Fedi v2</a><a href="/garden/matrix/index.md">Matrix</a><a href="/garden/social-media/index.md">Social Media</a></details><details><summary>Tagged by:</summary><a href="/garden/atproto/index.md">ATProto</a><a href="/garden/activitypub/index.md">ActivityPub</a><a href="/garden/federated-identity/index.md">Federated Identity</a><a href="/garden/fediverse/index.md">Fediverse</a><a href="/garden/nostr/index.md">Nostr</a></details><p>Something with no central source of authority</p><p>Common examples:</p><ul><li>RSS</li><li>Email</li><li>The <a href="/garden/fediverse/">Fediverse</a></li></ul><p>In practice, the &quot;pick a server&quot; problem causes email and the fediverse to trend towards a handful of large servers that still suffer from some of the issues of centralization</p><p>Advantages over centralization:</p><ul><li>Data ownership</li><li>Increased privacy</li><li>No rules to follow</li><li>Can fully customize your experience</li><li>No single entity can make the experience worse for everyone</li><li>Anyone and everyone can try their hand at improving the ecosystem</li></ul>',9),v=JSON.parse('{"title":"Decentralized","description":"","frontmatter":{"alias":"Federated","public":"true","slug":"decentralized","title":"Decentralized","prev":false,"next":false},"headers":[],"relativePath":"garden/decentralized/index.md","filePath":"garden/decentralized/index.md"}'),u={name:"garden/decentralized/index.md"},x=Object.assign(u,{setup(f){const t=i();return(p,h)=>(l(),n("div",null,[o,e("p",null,[d("80 words, ~0 minute read. "),e("span",{innerHTML:a(r)[`site/${a(t).page.value.relativePath}`]},null,8,c)]),m]))}});export{v as __pageData,x as default};

View file

@ -1 +0,0 @@
import{d as r}from"./chunks/git.data.Dtx9V2He.js";import{M as i,q as n,Q as e,K as d,u as a,ag as s,p as l}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Decentralized",-1),c=["innerHTML"],m=s("",9),v=JSON.parse('{"title":"Decentralized","description":"","frontmatter":{"alias":"Federated","public":"true","slug":"decentralized","title":"Decentralized","prev":false,"next":false},"headers":[],"relativePath":"garden/decentralized/index.md","filePath":"garden/decentralized/index.md"}'),u={name:"garden/decentralized/index.md"},x=Object.assign(u,{setup(f){const t=i();return(p,h)=>(l(),n("div",null,[o,e("p",null,[d("80 words, ~0 minute read. "),e("span",{innerHTML:a(r)[`site/${a(t).page.value.relativePath}`]},null,8,c)]),m]))}});export{v as __pageData,x as default};

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
import{M as i,q as s,Q as e,K as o,u as t,ag as n,p as r,ai as l,aj as d,ak as h,al as c,am as m,an as p,ao as u,ap as g,aq as f}from"./chunks/framework.DvHfxfnp.js";import{d as y}from"./chunks/git.data.Dtx9V2He.js";const b=e("h1",{class:"p-name"},"Dice Armor",-1),v=["innerHTML"],w=n("",25),D=JSON.parse('{"title":"Dice Armor","description":"","frontmatter":{"public":"true","slug":"dice-armor","tags":["My Projects"],"title":"Dice Armor","prev":false,"next":false},"headers":[],"relativePath":"garden/dice-armor/index.md","filePath":"garden/dice-armor/index.md"}'),_={name:"garden/dice-armor/index.md"},B=Object.assign(_,{setup(k){const a=i();return(T,I)=>(r(),s("div",null,[b,e("p",null,[o("963 words, ~5 minute read. "),e("span",{innerHTML:t(y)[`site/${t(a).page.value.relativePath}`]},null,8,v)]),w]))}});export{D as __pageData,B as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as n,q as i,Q as e,K as d,u as a,ag as l,p as o}from"./chunks/framework.DvHfxfnp.js";const s=e("h1",{class:"p-name"},"Digital Gardens",-1),g=["innerHTML"],h=l('<hr><details><summary>Referenced by:</summary><a href="/garden/chronological/index.md">Chronological</a><a href="/garden/commune/index.md">Commune</a><a href="/garden/garden-rss/index.md">Garden-RSS</a><a href="/garden/the-cozy-web/index.md">The Cozy Web</a><a href="/garden/the-small-web/index.md">The Small Web</a><a href="/garden/this-knowledge-hub/index.md">This Knowledge Hub</a></details><p>Digital Gardens are <a href="/garden/freeform/">Freeform</a> collections of information made by an individual or community</p><ul><li>Alternatives to <a href="/garden/chronological/">Chronological</a> personal blogs</li><li>Exist in a middleground between the dark forest and <a href="/garden/the-cozy-web/">The Cozy Web</a></li></ul><p><a href="/garden/this-knowledge-hub/">This Knowledge Hub</a> is a digital garden</p><p>Collections of digital gardens and resources for creating them:</p><ul><li><strong><a href="https://github.com/MaggieAppleton/digital-gardeners" target="_blank" rel="noreferrer">https://github.com/MaggieAppleton/digital-gardeners</a></strong></li><li><a href="https://github.com/lyz-code/best-of-digital-gardens" target="_blank" rel="noreferrer">https://github.com/lyz-code/best-of-digital-gardens</a></li><li><a href="https://github.com/KasperZutterman/Second-Brain" target="_blank" rel="noreferrer">https://github.com/KasperZutterman/Second-Brain</a></li></ul>',7),b=JSON.parse('{"title":"Digital Gardens","description":"","frontmatter":{"alias":"Digital Garden, Second Brain, Personal Knowledge Management, The Zettelkasten Method","public":"true","slug":"digital-gardens","title":"Digital Gardens","prev":false,"next":false},"headers":[],"relativePath":"garden/digital-gardens/index.md","filePath":"garden/digital-gardens/index.md"}'),c={name:"garden/digital-gardens/index.md"},T=Object.assign(c,{setup(m){const r=n();return(u,f)=>(o(),i("div",null,[s,e("p",null,[d("67 words, ~0 minute read. "),e("span",{innerHTML:a(t)[`site/${a(r).page.value.relativePath}`]},null,8,g)]),h]))}});export{b as __pageData,T as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as n,q as i,Q as e,K as d,u as a,ag as l,p as o}from"./chunks/framework.DvHfxfnp.js";const s=e("h1",{class:"p-name"},"Digital Gardens",-1),g=["innerHTML"],h=l("",7),b=JSON.parse('{"title":"Digital Gardens","description":"","frontmatter":{"alias":"Digital Garden, Second Brain, Personal Knowledge Management, The Zettelkasten Method","public":"true","slug":"digital-gardens","title":"Digital Gardens","prev":false,"next":false},"headers":[],"relativePath":"garden/digital-gardens/index.md","filePath":"garden/digital-gardens/index.md"}'),c={name:"garden/digital-gardens/index.md"},T=Object.assign(c,{setup(m){const r=n();return(u,f)=>(o(),i("div",null,[s,e("p",null,[d("67 words, ~0 minute read. "),e("span",{innerHTML:a(t)[`site/${a(r).page.value.relativePath}`]},null,8,g)]),h]))}});export{b as __pageData,T as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as n,q as o,Q as e,K as s,u as a,p as c}from"./chunks/framework.DvHfxfnp.js";const i=e("h1",{class:"p-name"},"Direct Democracy",-1),d=["innerHTML"],l=e("hr",null,null,-1),m=e("details",null,[e("summary",null,"Referenced by:"),e("a",{href:"/garden/anarchism/index.md"},"Anarchism"),e("a",{href:"/garden/consensus-democracy/index.md"},"Consensus Democracy")],-1),u=e("p",null,"A form of democracy where every voter gets to vote on every issue directly, and the majority rules. This form of voting is often criticized for having no safe guards to prevent a majority group from oppressing a minority group.",-1),v=JSON.parse('{"title":"Direct Democracy","description":"","frontmatter":{"alias":"Mob Rule, Tyranny of the Majority","public":"true","slug":"direct-democracy","title":"Direct Democracy","prev":false,"next":false},"headers":[],"relativePath":"garden/direct-democracy/index.md","filePath":"garden/direct-democracy/index.md"}'),p={name:"garden/direct-democracy/index.md"},D=Object.assign(p,{setup(f){const r=n();return(_,h)=>(c(),o("div",null,[i,e("p",null,[s("40 words, ~0 minute read. "),e("span",{innerHTML:a(t)[`site/${a(r).page.value.relativePath}`]},null,8,d)]),l,m,u]))}});export{v as __pageData,D as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as n,q as o,Q as e,K as s,u as a,p as c}from"./chunks/framework.DvHfxfnp.js";const i=e("h1",{class:"p-name"},"Direct Democracy",-1),d=["innerHTML"],l=e("hr",null,null,-1),m=e("details",null,[e("summary",null,"Referenced by:"),e("a",{href:"/garden/anarchism/index.md"},"Anarchism"),e("a",{href:"/garden/consensus-democracy/index.md"},"Consensus Democracy")],-1),u=e("p",null,"A form of democracy where every voter gets to vote on every issue directly, and the majority rules. This form of voting is often criticized for having no safe guards to prevent a majority group from oppressing a minority group.",-1),v=JSON.parse('{"title":"Direct Democracy","description":"","frontmatter":{"alias":"Mob Rule, Tyranny of the Majority","public":"true","slug":"direct-democracy","title":"Direct Democracy","prev":false,"next":false},"headers":[],"relativePath":"garden/direct-democracy/index.md","filePath":"garden/direct-democracy/index.md"}'),p={name:"garden/direct-democracy/index.md"},D=Object.assign(p,{setup(f){const r=n();return(_,h)=>(c(),o("div",null,[i,e("p",null,[s("40 words, ~0 minute read. "),e("span",{innerHTML:a(t)[`site/${a(r).page.value.relativePath}`]},null,8,d)]),l,m,u]))}});export{v as __pageData,D as default};

View file

@ -1 +0,0 @@
import{d as r}from"./chunks/git.data.Dtx9V2He.js";import{M as d,q as i,Q as e,K as n,u as a,ag as l,p as s}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Federated Identity",-1),u=["innerHTML"],c=l('<hr><details><summary>Referenced by:</summary><a href="/garden/commune/index.md">Commune</a><a href="/garden/fedi-v2/index.md">Fedi v2</a><a href="/garden/weird/index.md">Weird</a></details><details><summary>Tags:</summary><a href="/garden/decentralized/index.md">Decentralized</a></details><p>Allow for validating one&#39;s identity without relying on a specific centralized server</p><p>Implementations:</p><ul><li>Private and public keypairs</li><li><a href="https://indieweb.org/IndieAuth" target="_blank" rel="noreferrer">IndieAuth</a> by <a href="/garden/the-small-web/">The IndieWeb</a><ul><li>Supported by <a href="https://github.com/sebadob/rauthy" target="_blank" rel="noreferrer">Rauthy</a> which the <a href="/garden/commune/">Commune</a> community endorses</li></ul></li></ul><p>Self hosted identity providers are NOT enough to be considered federated identity</p><ul><li>OIDC and OAuth require the service owner to have pre-configured with explicitly allowed identity providers</li></ul><p><a href="/garden/incremental-social/">Incremental Social</a> uses Zitadel which does NOT support IndieAuth and probably won&#39;t</p>',9),y=JSON.parse('{"title":"Federated Identity","description":"","frontmatter":{"alias":"Decentralized Identity","public":"true","slug":"federated-identity","tags":["Decentralized"],"title":"Federated Identity","prev":false,"next":false},"headers":[],"relativePath":"garden/federated-identity/index.md","filePath":"garden/federated-identity/index.md"}'),h={name:"garden/federated-identity/index.md"},b=Object.assign(h,{setup(m){const t=d();return(p,f)=>(s(),i("div",null,[o,e("p",null,[n("68 words, ~0 minute read. "),e("span",{innerHTML:a(r)[`site/${a(t).page.value.relativePath}`]},null,8,u)]),c]))}});export{y as __pageData,b as default};

View file

@ -1 +0,0 @@
import{d as r}from"./chunks/git.data.Dtx9V2He.js";import{M as d,q as i,Q as e,K as n,u as a,ag as l,p as s}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Federated Identity",-1),u=["innerHTML"],c=l("",9),y=JSON.parse('{"title":"Federated Identity","description":"","frontmatter":{"alias":"Decentralized Identity","public":"true","slug":"federated-identity","tags":["Decentralized"],"title":"Federated Identity","prev":false,"next":false},"headers":[],"relativePath":"garden/federated-identity/index.md","filePath":"garden/federated-identity/index.md"}'),h={name:"garden/federated-identity/index.md"},b=Object.assign(h,{setup(m){const t=d();return(p,f)=>(s(),i("div",null,[o,e("p",null,[n("68 words, ~0 minute read. "),e("span",{innerHTML:a(r)[`site/${a(t).page.value.relativePath}`]},null,8,u)]),c]))}});export{y as __pageData,b as default};

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
import{d as o}from"./chunks/git.data.Dtx9V2He.js";import{M as s,q as i,Q as e,K as n,u as t,ag as r,p as l}from"./chunks/framework.DvHfxfnp.js";const h=e("h1",{class:"p-name"},"Fedi v2",-1),d=["innerHTML"],c=r("",46),b=JSON.parse('{"title":"Fedi v2","description":"","frontmatter":{"public":"true","slug":"fedi-v2","title":"Fedi v2","prev":false,"next":false},"headers":[],"relativePath":"garden/fedi-v2/index.md","filePath":"garden/fedi-v2/index.md"}'),u={name:"garden/fedi-v2/index.md"},w=Object.assign(u,{setup(p){const a=s();return(m,g)=>(l(),i("div",null,[h,e("p",null,[n("2566 words, ~14 minute read. "),e("span",{innerHTML:t(o)[`site/${t(a).page.value.relativePath}`]},null,8,d)]),c]))}});export{b as __pageData,w as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as i,q as d,Q as e,K as n,u as a,ag as s,p as l}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Fediverse",-1),c=["innerHTML"],m=s('<hr><details><summary>Referenced by:</summary><a href="/garden/atproto/index.md">ATProto</a><a href="/garden/activitypub/index.md">ActivityPub</a><a href="/garden/decentralized/index.md">Decentralized</a><a href="/garden/fedi-v2/index.md">Fedi v2</a><a href="/garden/incremental-social/index.md">Incremental Social</a><a href="/garden/mbin/index.md">Mbin</a><a href="/garden/nostr/index.md">Nostr</a><a href="/garden/social-media/index.md">Social Media</a><a href="/garden/the-small-web/index.md">The Small Web</a><a href="/garden/weird/index.md">Weird</a></details><details><summary>Tags:</summary><a href="/garden/decentralized/index.md">Decentralized</a></details><p>A collection of <a href="/garden/social-media/">Social Media</a> websites that can all talk to each other by virtue of a shared protocol</p><p>Typically refers to sites implementing <a href="/garden/activitypub/">ActivityPub</a></p><p>Implementations:</p><ul><li><a href="/garden/activitypub/">ActivityPub</a></li><li><a href="/garden/atproto/">ATProto</a></li><li><a href="/garden/nostr/">Nostr</a></li></ul>',7),v=JSON.parse('{"title":"Fediverse","description":"","frontmatter":{"alias":"Federated Social Media","public":"true","slug":"fediverse","tags":["Decentralized"],"title":"Fediverse","prev":false,"next":false},"headers":[],"relativePath":"garden/fediverse/index.md","filePath":"garden/fediverse/index.md"}'),f={name:"garden/fediverse/index.md"},x=Object.assign(f,{setup(p){const r=i();return(h,_)=>(l(),d("div",null,[o,e("p",null,[n("29 words, ~0 minute read. "),e("span",{innerHTML:a(t)[`site/${a(r).page.value.relativePath}`]},null,8,c)]),m]))}});export{v as __pageData,x as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as i,q as d,Q as e,K as n,u as a,ag as s,p as l}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Fediverse",-1),c=["innerHTML"],m=s("",7),v=JSON.parse('{"title":"Fediverse","description":"","frontmatter":{"alias":"Federated Social Media","public":"true","slug":"fediverse","tags":["Decentralized"],"title":"Fediverse","prev":false,"next":false},"headers":[],"relativePath":"garden/fediverse/index.md","filePath":"garden/fediverse/index.md"}'),f={name:"garden/fediverse/index.md"},x=Object.assign(f,{setup(p){const r=i();return(h,_)=>(l(),d("div",null,[o,e("p",null,[n("29 words, ~0 minute read. "),e("span",{innerHTML:a(t)[`site/${a(r).page.value.relativePath}`]},null,8,c)]),m]))}});export{v as __pageData,x as default};

View file

@ -1 +0,0 @@
import{d as o}from"./chunks/git.data.Dtx9V2He.js";import{M as n,q as s,Q as e,K as a,u as r,p as l}from"./chunks/framework.DvHfxfnp.js";const i=e("h1",{class:"p-name"},"Forgejo",-1),d=["innerHTML"],c=e("hr",null,null,-1),u=e("details",null,[e("summary",null,"Referenced by:"),e("a",{href:"/garden/incremental-social/index.md"},"Incremental Social")],-1),p=e("p",null,[e("a",{href:"https://forgejo.org",target:"_blank",rel:"noreferrer"},"Forgejo"),a(" is an "),e("a",{href:"/garden/open-source/"},"Open Source"),a(" code repository hosting software")],-1),x=JSON.parse('{"title":"Forgejo","description":"","frontmatter":{"public":"true","slug":"forgejo","title":"Forgejo","prev":false,"next":false},"headers":[],"relativePath":"garden/forgejo/index.md","filePath":"garden/forgejo/index.md"}'),_={name:"garden/forgejo/index.md"},v=Object.assign(_,{setup(g){const t=n();return(f,m)=>(l(),s("div",null,[i,e("p",null,[a("5 words, ~0 minute read. "),e("span",{innerHTML:r(o)[`site/${r(t).page.value.relativePath}`]},null,8,d)]),c,u,p]))}});export{x as __pageData,v as default};

View file

@ -1 +0,0 @@
import{d as o}from"./chunks/git.data.Dtx9V2He.js";import{M as n,q as s,Q as e,K as a,u as r,p as l}from"./chunks/framework.DvHfxfnp.js";const i=e("h1",{class:"p-name"},"Forgejo",-1),d=["innerHTML"],c=e("hr",null,null,-1),u=e("details",null,[e("summary",null,"Referenced by:"),e("a",{href:"/garden/incremental-social/index.md"},"Incremental Social")],-1),p=e("p",null,[e("a",{href:"https://forgejo.org",target:"_blank",rel:"noreferrer"},"Forgejo"),a(" is an "),e("a",{href:"/garden/open-source/"},"Open Source"),a(" code repository hosting software")],-1),x=JSON.parse('{"title":"Forgejo","description":"","frontmatter":{"public":"true","slug":"forgejo","title":"Forgejo","prev":false,"next":false},"headers":[],"relativePath":"garden/forgejo/index.md","filePath":"garden/forgejo/index.md"}'),_={name:"garden/forgejo/index.md"},v=Object.assign(_,{setup(g){const t=n();return(f,m)=>(l(),s("div",null,[i,e("p",null,[a("5 words, ~0 minute read. "),e("span",{innerHTML:r(o)[`site/${r(t).page.value.relativePath}`]},null,8,d)]),c,u,p]))}});export{x as __pageData,v as default};

View file

@ -1 +0,0 @@
import{d as n}from"./chunks/git.data.Dtx9V2He.js";import{M as t,q as l,Q as e,K as o,u as r,p as i}from"./chunks/framework.DvHfxfnp.js";const s=e("h1",{class:"p-name"},"Freeform vs Chronological Dichotomy",-1),c=["innerHTML"],d=e("hr",null,null,-1),m=e("details",null,[e("summary",null,"Referenced by:"),e("a",{href:"/garden/chronological/index.md"},"Chronological"),e("a",{href:"/garden/freeform/index.md"},"Freeform")],-1),h=e("p",null,[o("Describes a dichotomy between displaying information in a "),e("a",{href:"/garden/freeform/"},"Freeform"),o(" vs "),e("a",{href:"/garden/chronological/"},"Chronological"),o(" manner")],-1),y=JSON.parse('{"title":"Freeform vs Chronological Dichotomy","description":"","frontmatter":{"public":"true","slug":"freeform-vs-chronological-dichotomy","title":"Freeform vs Chronological Dichotomy","prev":false,"next":false},"headers":[],"relativePath":"garden/freeform-vs-chronological-dichotomy/index.md","filePath":"garden/freeform-vs-chronological-dichotomy/index.md"}'),f={name:"garden/freeform-vs-chronological-dichotomy/index.md"},x=Object.assign(f,{setup(g){const a=t();return(u,_)=>(i(),l("div",null,[s,e("p",null,[o("10 words, ~0 minute read. "),e("span",{innerHTML:r(n)[`site/${r(a).page.value.relativePath}`]},null,8,c)]),d,m,h]))}});export{y as __pageData,x as default};

View file

@ -1 +0,0 @@
import{d as n}from"./chunks/git.data.Dtx9V2He.js";import{M as t,q as l,Q as e,K as o,u as r,p as i}from"./chunks/framework.DvHfxfnp.js";const s=e("h1",{class:"p-name"},"Freeform vs Chronological Dichotomy",-1),c=["innerHTML"],d=e("hr",null,null,-1),m=e("details",null,[e("summary",null,"Referenced by:"),e("a",{href:"/garden/chronological/index.md"},"Chronological"),e("a",{href:"/garden/freeform/index.md"},"Freeform")],-1),h=e("p",null,[o("Describes a dichotomy between displaying information in a "),e("a",{href:"/garden/freeform/"},"Freeform"),o(" vs "),e("a",{href:"/garden/chronological/"},"Chronological"),o(" manner")],-1),y=JSON.parse('{"title":"Freeform vs Chronological Dichotomy","description":"","frontmatter":{"public":"true","slug":"freeform-vs-chronological-dichotomy","title":"Freeform vs Chronological Dichotomy","prev":false,"next":false},"headers":[],"relativePath":"garden/freeform-vs-chronological-dichotomy/index.md","filePath":"garden/freeform-vs-chronological-dichotomy/index.md"}'),f={name:"garden/freeform-vs-chronological-dichotomy/index.md"},x=Object.assign(f,{setup(g){const a=t();return(u,_)=>(i(),l("div",null,[s,e("p",null,[o("10 words, ~0 minute read. "),e("span",{innerHTML:r(n)[`site/${r(a).page.value.relativePath}`]},null,8,c)]),d,m,h]))}});export{y as __pageData,x as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as o,q as n,Q as e,K as i,u as a,ag as s,p as d}from"./chunks/framework.DvHfxfnp.js";const l=e("h1",{class:"p-name"},"Freeform",-1),m=["innerHTML"],c=s('<hr><details><summary>Referenced by:</summary><a href="/garden/commune/index.md">Commune</a><a href="/garden/digital-gardens/index.md">Digital Gardens</a><a href="/garden/freeform-vs-chronological-dichotomy/index.md">Freeform vs Chronological Dichotomy</a><a href="/garden/garden-rss/index.md">Garden-RSS</a></details><p>A collection of information that is not tied to when it was created or edited</p><p>Part of the <a href="/garden/freeform-vs-chronological-dichotomy/">Freeform vs Chronological Dichotomy</a></p><p>Anything wiki-style is considered freeform</p><ul><li>A collection of living documents</li></ul><p><a href="/garden/garden-rss/">Garden-RSS</a>, a theoretical alternative to RSS that&#39;s better for freeform content</p>',7),v=JSON.parse('{"title":"Freeform","description":"","frontmatter":{"public":"true","slug":"freeform","title":"Freeform","prev":false,"next":false},"headers":[],"relativePath":"garden/freeform/index.md","filePath":"garden/freeform/index.md"}'),f={name:"garden/freeform/index.md"},x=Object.assign(f,{setup(h){const r=o();return(_,g)=>(d(),n("div",null,[l,e("p",null,[i("46 words, ~0 minute read. "),e("span",{innerHTML:a(t)[`site/${a(r).page.value.relativePath}`]},null,8,m)]),c]))}});export{v as __pageData,x as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as o,q as n,Q as e,K as i,u as a,ag as s,p as d}from"./chunks/framework.DvHfxfnp.js";const l=e("h1",{class:"p-name"},"Freeform",-1),m=["innerHTML"],c=s("",7),v=JSON.parse('{"title":"Freeform","description":"","frontmatter":{"public":"true","slug":"freeform","title":"Freeform","prev":false,"next":false},"headers":[],"relativePath":"garden/freeform/index.md","filePath":"garden/freeform/index.md"}'),f={name:"garden/freeform/index.md"},x=Object.assign(f,{setup(h){const r=o();return(_,g)=>(d(),n("div",null,[l,e("p",null,[i("46 words, ~0 minute read. "),e("span",{innerHTML:a(t)[`site/${a(r).page.value.relativePath}`]},null,8,m)]),c]))}});export{v as __pageData,x as default};

View file

@ -1 +0,0 @@
import{d as r}from"./chunks/git.data.Dtx9V2He.js";import{M as s,q as o,Q as e,K as n,u as a,ag as p,p as i}from"./chunks/framework.DvHfxfnp.js";const d=e("h1",{class:"p-name"},"Game Dev Tree",-1),m=["innerHTML"],l=p('<hr><details><summary>Tags:</summary><a href="/garden/my-projects/index.md">My Projects</a></details><p>Play it <a href="https://thepaperpilot.org/gamedevtree" target="_blank" rel="noreferrer">here</a>!</p><p>My first (good) incremental game! (My actual first was <a href="https://thepaperpilot.itch.io/shape-tycoon" target="_blank" rel="noreferrer">Shape Tycoon</a> - I don&#39;t recommend it!)</p><p>It&#39;s <a href="/garden/open-source/">Open Source</a>!</p><p>The <a href="https://tvtropes.org/pmwiki/pmwiki.php/VideoGame/TheGameDevTree" target="_blank" rel="noreferrer">TV Tropes</a> page on this game mentions some of the cool things about this game</p>',6),T=JSON.parse('{"title":"Game Dev Tree","description":"","frontmatter":{"public":"true","slug":"game-dev-tree","tags":["My Projects"],"title":"Game Dev Tree","prev":false,"next":false},"headers":[],"relativePath":"garden/game-dev-tree/index.md","filePath":"garden/game-dev-tree/index.md"}'),c={name:"garden/game-dev-tree/index.md"},v=Object.assign(c,{setup(_){const t=s();return(h,g)=>(i(),o("div",null,[d,e("p",null,[n("34 words, ~0 minute read. "),e("span",{innerHTML:a(r)[`site/${a(t).page.value.relativePath}`]},null,8,m)]),l]))}});export{T as __pageData,v as default};

View file

@ -1 +0,0 @@
import{d as r}from"./chunks/git.data.Dtx9V2He.js";import{M as s,q as o,Q as e,K as n,u as a,ag as p,p as i}from"./chunks/framework.DvHfxfnp.js";const d=e("h1",{class:"p-name"},"Game Dev Tree",-1),m=["innerHTML"],l=p("",6),T=JSON.parse('{"title":"Game Dev Tree","description":"","frontmatter":{"public":"true","slug":"game-dev-tree","tags":["My Projects"],"title":"Game Dev Tree","prev":false,"next":false},"headers":[],"relativePath":"garden/game-dev-tree/index.md","filePath":"garden/game-dev-tree/index.md"}'),c={name:"garden/game-dev-tree/index.md"},v=Object.assign(c,{setup(_){const t=s();return(h,g)=>(i(),o("div",null,[d,e("p",null,[n("34 words, ~0 minute read. "),e("span",{innerHTML:a(r)[`site/${a(t).page.value.relativePath}`]},null,8,m)]),l]))}});export{T as __pageData,v as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as s,q as i,Q as e,K as n,u as a,ag as l,p as d}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Garden-RSS",-1),c=["innerHTML"],f=l('<hr><details><summary>Referenced by:</summary><a href="/garden/freeform/index.md">Freeform</a><a href="/garden/the-small-web/index.md">The Small Web</a><a href="/garden/this-knowledge-hub/index.md">This Knowledge Hub</a></details><p>A theoretical alternative to RSS that&#39;s better for <a href="/garden/freeform/">Freeform</a> websites (and <a href="/garden/digital-gardens/">Digital Gardens</a> specifically )</p><p>Why is it useful?</p><ul><li><a href="https://v5.chriskrycho.com/essays/feeds-are-not-fit-for-gardening/" target="_blank" rel="noreferrer">Feeds are not fit for gardening</a><ul><li>Describes the issues with RSS for <a href="/garden/digital-gardens/">Digital Gardens</a></li><li>Proposes creating an alternative, which they call <code>grdn</code></li></ul></li></ul><p>How should it work?</p><ul><li>Could display changes similar to git diffs</li></ul><p>Existing Work</p><ul><li><a href="https://github.com/chriskrycho/grdn/blob/main/SPEC.md" target="_blank" rel="noreferrer"><code>grdn</code> Specification</a></li><li><a href="https://forum.summerofprotocols.com/t/pig-rss-all-the-things/383" target="_blank" rel="noreferrer">Proposal to build set of extensions to RSS</a></li></ul>',9),S=JSON.parse('{"title":"Garden-RSS","description":"","frontmatter":{"public":"true","slug":"garden-rss","title":"Garden-RSS","prev":false,"next":false},"headers":[],"relativePath":"garden/garden-rss/index.md","filePath":"garden/garden-rss/index.md"}'),g={name:"garden/garden-rss/index.md"},b=Object.assign(g,{setup(h){const r=s();return(u,p)=>(d(),i("div",null,[o,e("p",null,[n("59 words, ~0 minute read. "),e("span",{innerHTML:a(t)[`site/${a(r).page.value.relativePath}`]},null,8,c)]),f]))}});export{S as __pageData,b as default};

View file

@ -1 +0,0 @@
import{d as t}from"./chunks/git.data.Dtx9V2He.js";import{M as s,q as i,Q as e,K as n,u as a,ag as l,p as d}from"./chunks/framework.DvHfxfnp.js";const o=e("h1",{class:"p-name"},"Garden-RSS",-1),c=["innerHTML"],f=l("",9),S=JSON.parse('{"title":"Garden-RSS","description":"","frontmatter":{"public":"true","slug":"garden-rss","title":"Garden-RSS","prev":false,"next":false},"headers":[],"relativePath":"garden/garden-rss/index.md","filePath":"garden/garden-rss/index.md"}'),g={name:"garden/garden-rss/index.md"},b=Object.assign(g,{setup(h){const r=s();return(u,p)=>(d(),i("div",null,[o,e("p",null,[n("59 words, ~0 minute read. "),e("span",{innerHTML:a(t)[`site/${a(r).page.value.relativePath}`]},null,8,c)]),f]))}});export{S as __pageData,b as default};

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
import{d as n}from"./chunks/git.data.Dtx9V2He.js";import{M as o,q as i,Q as e,K as r,u as a,ag as s,p as l}from"./chunks/framework.DvHfxfnp.js";const d=e("h1",{class:"p-name"},"Guide to Incrementals/Appeal to Developers",-1),m=["innerHTML"],c=s("",14),b=JSON.parse('{"title":"Guide to Incrementals/Appeal to Developers","description":"","frontmatter":{"public":"true","slug":"guide-to-incrementals/appeal-to-developers","title":"Guide to Incrementals/Appeal to Developers","prev":false,"next":false},"headers":[],"relativePath":"garden/guide-to-incrementals/appeal-to-developers/index.md","filePath":"garden/guide-to-incrementals/appeal-to-developers/index.md"}'),p={name:"garden/guide-to-incrementals/appeal-to-developers/index.md"},v=Object.assign(p,{setup(h){const t=o();return(u,g)=>(l(),i("div",null,[d,e("p",null,[r("636 words, ~3 minute read. "),e("span",{innerHTML:a(n)[`site/${a(t).page.value.relativePath}`]},null,8,m)]),c]))}});export{b as __pageData,v as default};

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
import{d as n}from"./chunks/git.data.Dtx9V2He.js";import{M as i,q as o,Q as e,K as s,u as a,ag as r,p as l}from"./chunks/framework.DvHfxfnp.js";const h=e("h1",{class:"p-name"},"Guide to Incrementals/Appeal to Players",-1),m=["innerHTML"],g=r("",29),b=JSON.parse('{"title":"Guide to Incrementals/Appeal to Players","description":"","frontmatter":{"public":"true","slug":"guide-to-incrementals/appeal-to-players","title":"Guide to Incrementals/Appeal to Players","prev":false,"next":false},"headers":[],"relativePath":"garden/guide-to-incrementals/appeal-to-players/index.md","filePath":"garden/guide-to-incrementals/appeal-to-players/index.md"}'),d={name:"garden/guide-to-incrementals/appeal-to-players/index.md"},w=Object.assign(d,{setup(c){const t=i();return(p,u)=>(l(),o("div",null,[h,e("p",null,[s("2166 words, ~12 minute read. "),e("span",{innerHTML:a(n)[`site/${a(t).page.value.relativePath}`]},null,8,m)]),g]))}});export{b as __pageData,w as default};

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
import{d as r}from"./chunks/git.data.Dtx9V2He.js";import{M as n,q as o,Q as e,K as i,u as t,ag as s,p as l}from"./chunks/framework.DvHfxfnp.js";const h=e("h1",{class:"p-name"},"Guide to Incrementals/Defining the Genre",-1),m=["innerHTML"],g=s("",65),y=JSON.parse('{"title":"Guide to Incrementals/Defining the Genre","description":"","frontmatter":{"public":"true","slug":"guide-to-incrementals/defining-the-genre","title":"Guide to Incrementals/Defining the Genre","prev":false,"next":false},"headers":[],"relativePath":"garden/guide-to-incrementals/defining-the-genre/index.md","filePath":"garden/guide-to-incrementals/defining-the-genre/index.md"}'),c={name:"garden/guide-to-incrementals/defining-the-genre/index.md"},w=Object.assign(c,{setup(u){const a=n();return(d,p)=>(l(),o("div",null,[h,e("p",null,[i("3429 words, ~19 minute read. "),e("span",{innerHTML:t(r)[`site/${t(a).page.value.relativePath}`]},null,8,m)]),g]))}});export{y as __pageData,w as default};

View file

@ -1 +0,0 @@
import{d as n}from"./chunks/git.data.Dtx9V2He.js";import{M as i,q as o,Q as e,K as r,u as a,ag as s,p as l}from"./chunks/framework.DvHfxfnp.js";const d=e("h1",{class:"p-name"},"Guide to Incrementals",-1),m=["innerHTML"],c=s('<hr><details><summary>Referenced by:</summary><a href="/garden/my-personal-website/index.md">My Personal Website</a></details><p>This is a comprehensive guide to Incremental Games, a genre of video games. It will explore defining the genre, why it&#39;s appealing, and how to design and build your own incremental game. Along the way will be <s>interactive examples</s>, snippets from other creators, and relevant material to contextualize everything.</p><blockquote><p>Note: This is an incomplete document. I want to keep adding opinions and opposing views from other incremental games developers, and add interactive examples to illustrate various points regarding game design and balancing. Consider this a living document - and see the changelog at the end.</p></blockquote><h2 id="why-am-i-making-this" tabindex="-1">Why am I making this? <a class="header-anchor" href="#why-am-i-making-this" aria-label="Permalink to &quot;Why am I making this?&quot;"></a></h2><p>That&#39;s a good question! What authority do I have to be making this guide? I haven&#39;t made the best incremental games, nor the most incremental games, certainly not the most popular ones either. But I do have some formal education in game development, know a lot of incremental game devs (as well as other game devs), and have a passionate interest in ludology, classifying genres, etc. I&#39;ve also made <a href="/garden/my-projects/">a couple of incremental games</a>) myself.</p><p>If you have any additional questions about my credentials or anything on this site, feel free to reach out!</p><h2 id="ludology" tabindex="-1">Ludology <a class="header-anchor" href="#ludology" aria-label="Permalink to &quot;Ludology&quot;"></a></h2><ul><li><a href="/garden/guide-to-incrementals/defining-the-genre/">Guide to Incrementals/Defining the Genre</a></li><li><a href="/garden/guide-to-incrementals/appeal-to-players/">Guide to Incrementals/Appeal to Players</a></li><li><a href="/garden/guide-to-incrementals/appeal-to-developers/">Guide to Incrementals/Appeal to Developers</a></li><li><a href="/garden/guide-to-incrementals/what-is-content/">Guide to Incrementals/What is Content?</a></li></ul><h2 id="making-an-incremental" tabindex="-1">Making an Incremental <a class="header-anchor" href="#making-an-incremental" aria-label="Permalink to &quot;Making an Incremental&quot;"></a></h2><ul><li><a href="/garden/guide-to-incrementals/navigating-criticism/">Guide to Incrementals/Navigating Criticism</a></li></ul>',11),y=JSON.parse('{"title":"Guide to Incrementals","description":"","frontmatter":{"public":"true","slug":"guide-to-incrementals","title":"Guide to Incrementals","prev":false,"next":false},"headers":[],"relativePath":"garden/guide-to-incrementals/index.md","filePath":"garden/guide-to-incrementals/index.md"}'),g={name:"garden/guide-to-incrementals/index.md"},v=Object.assign(g,{setup(h){const t=i();return(u,p)=>(l(),o("div",null,[d,e("p",null,[r("230 words, ~1 minute read. "),e("span",{innerHTML:a(n)[`site/${a(t).page.value.relativePath}`]},null,8,m)]),c]))}});export{y as __pageData,v as default};

View file

@ -1 +0,0 @@
import{d as n}from"./chunks/git.data.Dtx9V2He.js";import{M as i,q as o,Q as e,K as r,u as a,ag as s,p as l}from"./chunks/framework.DvHfxfnp.js";const d=e("h1",{class:"p-name"},"Guide to Incrementals",-1),m=["innerHTML"],c=s("",11),y=JSON.parse('{"title":"Guide to Incrementals","description":"","frontmatter":{"public":"true","slug":"guide-to-incrementals","title":"Guide to Incrementals","prev":false,"next":false},"headers":[],"relativePath":"garden/guide-to-incrementals/index.md","filePath":"garden/guide-to-incrementals/index.md"}'),g={name:"garden/guide-to-incrementals/index.md"},v=Object.assign(g,{setup(h){const t=i();return(u,p)=>(l(),o("div",null,[d,e("p",null,[r("230 words, ~1 minute read. "),e("span",{innerHTML:a(n)[`site/${a(t).page.value.relativePath}`]},null,8,m)]),c]))}});export{y as __pageData,v as default};

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show more