This commit is contained in:
Joshua Seigler 2025-07-04 10:11:35 -04:00
parent b51f5fcc3c
commit e71ad6bb3b
52 changed files with 203 additions and 26 deletions

128
feed.xml
View file

@ -10,6 +10,14 @@
<author>
<name></name>
</author>
<entry>
<title>Link: htmz - a low power tool for html</title>
<link href="https://leanrada.com/htmz/" />
<updated>2025-07-01T19:01:52Z</updated>
<id>https://leanrada.com/htmz/</id>
<content type="html">&lt;div class=&quot;markdown&quot;&gt;&lt;p&gt;Super clever approach for putting HTML into other HTML. &amp;quot;Is it a framework? It&#39;s a snippet.&amp;quot;&lt;/p&gt;&lt;/div&gt;
</content>
</entry>
<entry>
<title>Recipe: Chicken Chili Verde</title>
<link href="https://joshua.seigler.net/recipes/chicken-chili-verde/" />
@ -52,6 +60,26 @@
Original recipe from &lt;a href=&quot;https://www.tiktok.com/@oldscoolkevmo/video/7520712000826133791&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Kevin Ashton&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;nutrition-information&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://joshua.seigler.net/recipes/chicken-chili-verde/#nutrition-information&quot; aria-hidden=&quot;true&quot;&gt;&lt;/a&gt; Nutrition Information&lt;/h2&gt;
&lt;p&gt;Makes 6 389g servings. Each serving: &lt;strong&gt;Calories&lt;/strong&gt;: 558kcal (26%), &lt;strong&gt;Protein&lt;/strong&gt;: 28.18g (52%), &lt;strong&gt;Total Fat&lt;/strong&gt;: 11.64g (24%), Cholesterol: 64mg, Saturated Fat: 3g, Trans Fat: 0.11g, &lt;strong&gt;Carbohydrates&lt;/strong&gt;: 82.35g (34%), Dietary Fiber: 3.9g (16%), Sugars: 3.11g, &lt;strong&gt;Calcium&lt;/strong&gt;: 45mg (5%), &lt;strong&gt;Iron&lt;/strong&gt;: 2.72mg (15%), &lt;strong&gt;Potassium&lt;/strong&gt;: 474mg (10%), &lt;strong&gt;Sodium&lt;/strong&gt;: 584mg (39%)&lt;/p&gt;
</content>
</entry>
<entry>
<title>Link: Speed Catan - seanmcp.com</title>
<link href="https://www.seanmcp.com/board-games/speed-catan/" />
<updated>2025-06-29T03:05:58Z</updated>
<id>https://www.seanmcp.com/board-games/speed-catan/</id>
<content type="html">&lt;div class=&quot;markdown&quot;&gt;&lt;blockquote&gt;
&lt;p&gt;Speed Catan is a variation of the popular board game Catan that emphasizes game speed and simplicity for younger (or impatient) players.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;
</content>
</entry>
<entry>
<title>Link: How to Surf the Web in 2025, and Why You Should</title>
<link href="https://www.raptitude.com/2025/06/how-to-surf-the-web-in-2025-and-why-you-should/" />
<updated>2025-06-28T22:20:45Z</updated>
<id>https://www.raptitude.com/2025/06/how-to-surf-the-web-in-2025-and-why-you-should/</id>
<content type="html">&lt;div class=&quot;markdown&quot;&gt;&lt;blockquote&gt;
&lt;p&gt;Just as its still possible (though seldom necessary) to ride a horse, it is still possible to surf the internet. Its a thrill not yet lost to time.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;
</content>
</entry>
<entry>
@ -68,6 +96,14 @@ Original recipe from &lt;a href=&quot;https://www.tiktok.com/@oldscoolkevmo/vide
&lt;p&gt;There is more than one strategy here. Fast and furious can win but also just making long words and as few as possible can win too, if you want to push your luck. I have seen games won where the person had 8 tiles left over (+16) but only had 3 words (+9) and ended up with the longest word (-4) and won the game. Played this way the game is fun, tense and addicting.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Reproduced with light editing from &lt;a href=&quot;https://boardgamegeek.com/thread/563175/article/5516061#5516061&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Houserule Jay @ BoardGameGeek&lt;/a&gt;&lt;/p&gt;
</content>
</entry>
<entry>
<title>Link: Comic Helvetic Font | dafont.com</title>
<link href="https://www.dafont.com/comic-helvetic.font" />
<updated>2025-06-26T14:29:51Z</updated>
<id>https://www.dafont.com/comic-helvetic.font</id>
<content type="html">&lt;div class=&quot;markdown&quot;&gt;&lt;p&gt;I don&#39;t understand why this feels ok but Comic Sans makes my skin crawl.&lt;/p&gt;&lt;/div&gt;
</content>
</entry>
<entry>
@ -132,6 +168,22 @@ Original recipe from &lt;a href=&quot;https://www.tiktok.com/@oldscoolkevmo/vide
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
</entry>
<entry>
<title>Link: NIKA:&#92;git-revise&#92;&gt;</title>
<link href="https://mystor.github.io/git-revise.html" />
<updated>2025-06-18T16:18:36Z</updated>
<id>https://mystor.github.io/git-revise.html</id>
<content type="html">&lt;div class=&quot;markdown&quot;&gt;&lt;p&gt;git-revise is a history editing tool designed for the patch-stack workflow. It&#39;s fast, non-destructive, and aims to provide a familiar, powerful, and easy to use re-imagining of the patch stack workflow.&lt;/p&gt;&lt;/div&gt;
</content>
</entry>
<entry>
<title>Link: Markdown Code Blocks With a Title / Filename - Lusitos Tech Blog</title>
<link href="https://blog.lusito.info/markdown-code-blocks-with-a-title-filename.html" />
<updated>2025-06-15T02:28:23Z</updated>
<id>https://blog.lusito.info/markdown-code-blocks-with-a-title-filename.html</id>
<content type="html">&lt;div class=&quot;markdown&quot;&gt;&lt;p&gt;Smart alternative to immediately using some kind of markdown extension or plugin. Good perspective.&lt;/p&gt;&lt;/div&gt;
</content>
</entry>
<entry>
@ -328,6 +380,14 @@ Branch filter: &lt;code&gt;gh-pages&lt;/code&gt;&lt;/p&gt;
Here is &lt;a href=&quot;https://git.apps.seigler.net/joshua/marklink.pages.seigler.net&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;the marklink repo in my Forgejo instance&lt;/a&gt; and &lt;a href=&quot;https://marklink.pages.seigler.net/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;its contents on my Caddy server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;That repo is just HTML and JS with only a gh-pages branch, but for repos with npm build scripts, I use &lt;a href=&quot;https://www.npmjs.com/package/gh-pages&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;gh-pages @ npm&lt;/a&gt; to push the build to a gh-pages branch and up to the server.&lt;/p&gt;
&lt;p&gt;Im putting off rolling my own CI server, but I imagine thats the next stage here. Stay tuned.&lt;/p&gt;
</content>
</entry>
<entry>
<title>Link: MidWord! The world&#39;s favorite word guessing game</title>
<link href="https://midword.com/" />
<updated>2025-06-14T04:28:49Z</updated>
<id>https://midword.com/</id>
<content type="html">&lt;div class=&quot;markdown&quot;&gt;&lt;p&gt;Just found my new favorite long-car-ride verbal game!&lt;/p&gt;&lt;/div&gt;
</content>
</entry>
<entry>
@ -361,6 +421,22 @@ We also usually brown some canned chicken and add it at the same time as the but
&lt;h2 id=&quot;nutrition-information&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://joshua.seigler.net/recipes/amish-egg-noodles/#nutrition-information&quot; aria-hidden=&quot;true&quot;&gt;&lt;/a&gt; Nutrition Information&lt;/h2&gt;
&lt;p&gt;Makes 6 servings. Each serving:&lt;br&gt;
&lt;strong&gt;Calories&lt;/strong&gt; 328kcal (16%), &lt;strong&gt;Total Fat&lt;/strong&gt; 14g (22%), Saturated Fat 7g (44%), Cholesterol 77mg (26%), &lt;strong&gt;Sodium&lt;/strong&gt; 758mg (33%), &lt;strong&gt;Total Carbohydrates&lt;/strong&gt; 41g (14%), Dietary Fiber 2g (8%), Sugar 1g (1%), &lt;strong&gt;Protein&lt;/strong&gt; 9g (18%), &lt;strong&gt;Vitamin C&lt;/strong&gt; 10.3mg (12%), &lt;strong&gt;Vitamin A&lt;/strong&gt; 400IU (8%), &lt;strong&gt;Iron&lt;/strong&gt; 1.5mg (8%), &lt;strong&gt;Calcium&lt;/strong&gt; 41mg (4%), &lt;strong&gt;Potassium&lt;/strong&gt; 266mg (8%)&lt;/p&gt;
</content>
</entry>
<entry>
<title>Link: Verissimo Monthly - May 2025 - by Binyamin Grobman</title>
<link href="https://verissimo.substack.com/p/verissimo-monthly-may-2025" />
<updated>2025-06-03T17:39:50Z</updated>
<id>https://verissimo.substack.com/p/verissimo-monthly-may-2025</id>
<content type="html">&lt;div class=&quot;markdown&quot;&gt;&lt;p&gt;The Unreliability of LLMs &amp;amp; What Lies Ahead&lt;/p&gt;&lt;/div&gt;
</content>
</entry>
<entry>
<title>Link: Keeping up appearances | deadSimpleTech</title>
<link href="https://deadsimpletech.com/blog/keeping_up_appearances" />
<updated>2025-05-31T04:02:35Z</updated>
<id>https://deadsimpletech.com/blog/keeping_up_appearances</id>
<content type="html">&lt;div class=&quot;markdown&quot;&gt;&lt;p&gt;The only reason that LLMs took root in the first place was because our societies in the anglosphere have already developed cultures solely devoted to gaining status and keeping up the appearance of doing things rather than actually doing them. All other values, increasingly including even the accumulation of wealth (while this is still very much a thing that people pursue, wealth is increasingly becoming a proxy for status more than something desired in itself) are becoming subordinated to symbolic status games completely detached from anything real.&lt;/p&gt;&lt;/div&gt;
</content>
</entry>
<entry>
@ -569,32 +645,6 @@ We also usually brown some canned chicken and add it at the same time as the but
&lt;/ul&gt;
&lt;h2 id=&quot;nutrition-information&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://joshua.seigler.net/recipes/luther-salad/#nutrition-information&quot; aria-hidden=&quot;true&quot;&gt;&lt;/a&gt; Nutrition Information&lt;/h2&gt;
&lt;p&gt;This is less a recipe and more a category of foods. It has a pound of pasta, a good amount of oil, and some protein. So, kinda high on carbs but not the worst thing. No label for this one.&lt;/p&gt;
</content>
</entry>
<entry>
<title>Recipe: Corn Casserole</title>
<link href="https://joshua.seigler.net/recipes/corn-casserole/" />
<updated>2025-04-24T00:00:00Z</updated>
<id>https://joshua.seigler.net/recipes/corn-casserole/</id>
<content type="html">&lt;h2 id=&quot;ingredients&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://joshua.seigler.net/recipes/corn-casserole/#ingredients&quot; aria-hidden=&quot;true&quot;&gt;&lt;/a&gt; Ingredients&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;1 can of corn drained&lt;/li&gt;
&lt;li&gt;1 can of creamed corn&lt;/li&gt;
&lt;li&gt;1 stick melted butter 1/2 cup&lt;/li&gt;
&lt;li&gt;1 box of Jiffy Corn Muffin mix&lt;/li&gt;
&lt;li&gt;1 cup sour cream&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;instructions&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://joshua.seigler.net/recipes/corn-casserole/#instructions&quot; aria-hidden=&quot;true&quot;&gt;&lt;/a&gt; Instructions&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Preheat the oven to 350 degrees.&lt;/li&gt;
&lt;li&gt;In a bowl, mix all of the ingredients together in order, then pour into a greased 8&amp;quot;x8&amp;quot; baking pan.&lt;/li&gt;
&lt;li&gt;Cook uncovered for 45-50 minutes or until lightly browned.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;notes&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://joshua.seigler.net/recipes/corn-casserole/#notes&quot; aria-hidden=&quot;true&quot;&gt;&lt;/a&gt; Notes&lt;/h2&gt;
&lt;p&gt;Vegan substitutions: almond milk instead of sour cream, vegetable butter or neutral oil instead of butter. Made this way, the result will be less bready but still excellent. Increase cooking time slightly.&lt;/p&gt;
&lt;p&gt;Doubling: if the pan size makes the uncooked mix more than about an inch deep, you will need extra cooking time. Cover it with foil and cook another 20 minutes or so.&lt;/p&gt;
&lt;h2 id=&quot;nutrition-information&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://joshua.seigler.net/recipes/corn-casserole/#nutrition-information&quot; aria-hidden=&quot;true&quot;&gt;&lt;/a&gt; Nutrition Information&lt;/h2&gt;
&lt;p&gt;Makes 15.5 100g servings. Each serving: &lt;strong&gt;Calories&lt;/strong&gt;: 167g (8%), &lt;strong&gt;Protein&lt;/strong&gt;: 2.82g (5%), &lt;strong&gt;Total Fat&lt;/strong&gt;: 9.35g (19%), Cholesterol: 31g, Saturated Fat: 5.2g, Trans Fat: 0.24g, &lt;strong&gt;Carbohydrates&lt;/strong&gt;: 20g (8%), Dietary Fiber: 1.1g (4%), Sugars: 2.05g, &lt;strong&gt;Calcium&lt;/strong&gt;: 36mg (4%), &lt;strong&gt;Iron&lt;/strong&gt;: 0.6mg (3%), &lt;strong&gt;Potassium&lt;/strong&gt;: 137mg (3%), &lt;strong&gt;Sodium&lt;/strong&gt;: 346mg (23%)&lt;/p&gt;
</content>
</entry>
<entry>
@ -626,6 +676,32 @@ We also usually brown some canned chicken and add it at the same time as the but
&lt;a href=&quot;https://hbr.org/2023/04/generative-ai-has-an-intellectual-property-problem&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Generative AI Has an Intellectual Property Problem&lt;/a&gt;, &lt;em&gt;Harvard Business Review&lt;/em&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;I dont think I am wise enough to safely use a genie in a bottle. And I dont want to outsource my creative efforts to an addictive, bullshitting alien intellect, even if it might save time and effort in the short term.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://joshua.seigler.net/2025-04-24--end-of-line.jpg&quot; alt=&quot;End of line&quot;&gt;&lt;/p&gt;
</content>
</entry>
<entry>
<title>Recipe: Corn Casserole</title>
<link href="https://joshua.seigler.net/recipes/corn-casserole/" />
<updated>2025-04-24T00:00:00Z</updated>
<id>https://joshua.seigler.net/recipes/corn-casserole/</id>
<content type="html">&lt;h2 id=&quot;ingredients&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://joshua.seigler.net/recipes/corn-casserole/#ingredients&quot; aria-hidden=&quot;true&quot;&gt;&lt;/a&gt; Ingredients&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;1 can of corn drained&lt;/li&gt;
&lt;li&gt;1 can of creamed corn&lt;/li&gt;
&lt;li&gt;1 stick melted butter 1/2 cup&lt;/li&gt;
&lt;li&gt;1 box of Jiffy Corn Muffin mix&lt;/li&gt;
&lt;li&gt;1 cup sour cream&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;instructions&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://joshua.seigler.net/recipes/corn-casserole/#instructions&quot; aria-hidden=&quot;true&quot;&gt;&lt;/a&gt; Instructions&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Preheat the oven to 350 degrees.&lt;/li&gt;
&lt;li&gt;In a bowl, mix all of the ingredients together in order, then pour into a greased 8&amp;quot;x8&amp;quot; baking pan.&lt;/li&gt;
&lt;li&gt;Cook uncovered for 45-50 minutes or until lightly browned.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;notes&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://joshua.seigler.net/recipes/corn-casserole/#notes&quot; aria-hidden=&quot;true&quot;&gt;&lt;/a&gt; Notes&lt;/h2&gt;
&lt;p&gt;Vegan substitutions: almond milk instead of sour cream, vegetable butter or neutral oil instead of butter. Made this way, the result will be less bready but still excellent. Increase cooking time slightly.&lt;/p&gt;
&lt;p&gt;Doubling: if the pan size makes the uncooked mix more than about an inch deep, you will need extra cooking time. Cover it with foil and cook another 20 minutes or so.&lt;/p&gt;
&lt;h2 id=&quot;nutrition-information&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://joshua.seigler.net/recipes/corn-casserole/#nutrition-information&quot; aria-hidden=&quot;true&quot;&gt;&lt;/a&gt; Nutrition Information&lt;/h2&gt;
&lt;p&gt;Makes 15.5 100g servings. Each serving: &lt;strong&gt;Calories&lt;/strong&gt;: 167g (8%), &lt;strong&gt;Protein&lt;/strong&gt;: 2.82g (5%), &lt;strong&gt;Total Fat&lt;/strong&gt;: 9.35g (19%), Cholesterol: 31g, Saturated Fat: 5.2g, Trans Fat: 0.24g, &lt;strong&gt;Carbohydrates&lt;/strong&gt;: 20g (8%), Dietary Fiber: 1.1g (4%), Sugars: 2.05g, &lt;strong&gt;Calcium&lt;/strong&gt;: 36mg (4%), &lt;strong&gt;Iron&lt;/strong&gt;: 0.6mg (3%), &lt;strong&gt;Potassium&lt;/strong&gt;: 137mg (3%), &lt;strong&gt;Sodium&lt;/strong&gt;: 346mg (23%)&lt;/p&gt;
</content>
</entry>
<entry>

1
index-2RMOr2Q9.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-2RMOr2Q9.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-A-9Vye7_.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-A-9Vye7_.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-B3ecJ9e2.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-B3ecJ9e2.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-B5iPic6z.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-B5iPic6z.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-BG-lcn9n.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-BG-lcn9n.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-BLAF5kJW.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-BLAF5kJW.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-BW2mT_S4.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-BW2mT_S4.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-Ba5LfgSK.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-Ba5LfgSK.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-Bc_jSuOu.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-Bc_jSuOu.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-BfTwRc7d.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-BfTwRc7d.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-Bl65228e.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-Bl65228e.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-BrgBBnTS.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-BrgBBnTS.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-Bzbr9uPB.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-Bzbr9uPB.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-CFOLOr5i.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-CFOLOr5i.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-CM-khksQ.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-CM-khksQ.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-CO3tbmJQ.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-CO3tbmJQ.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-CUdnII1n.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-CUdnII1n.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-CfkUbjco.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-CfkUbjco.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-CmtSCGs9.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-CmtSCGs9.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-Cn8mIN7n.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-Cn8mIN7n.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-CnLT93xE.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-CnLT93xE.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-Cx7FU-Kk.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-Cx7FU-Kk.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-CxrYU2FU.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-CxrYU2FU.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-D5tbkTUK.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-D5tbkTUK.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-D8jAnGMW.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-D8jAnGMW.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-DA4n2FyV.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-DA4n2FyV.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-DAQkIjdr.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-DAQkIjdr.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-DB2mH9R1.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-DB2mH9R1.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-DFm9YjKL.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-DFm9YjKL.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-DMXJKDHm.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-DMXJKDHm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-Da3-DJMS.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-Da3-DJMS.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-Ddd_AE1v.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-Ddd_AE1v.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-DkaLIRNQ.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-DkaLIRNQ.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-Dplo4rSs.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-Dplo4rSs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-DrluYGri.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-DrluYGri.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-DwBz1rda.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-DwBz1rda.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-Xf-WNv48.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-Xf-WNv48.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-c7JIa5GN.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-c7JIa5GN.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-guThsnJ5.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-guThsnJ5.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-hp_c-EJg.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-hp_c-EJg.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-igPmbwsN.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-igPmbwsN.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-k8pjui_3.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-k8pjui_3.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-lrtphMbO.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-lrtphMbO.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
index-sLlaIS_a.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-sLlaIS_a.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

3
index-sx-6F2ub.js Normal file

File diff suppressed because one or more lines are too long

1
index-sx-6F2ub.js.map Normal file

File diff suppressed because one or more lines are too long

1
index-vTgSl9R1.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index-vTgSl9R1.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

2
main-Dgy1RdwV.js Normal file
View file

@ -0,0 +1,2 @@
(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))n(e);new MutationObserver(e=>{for(const o of e)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&n(i)}).observe(document,{childList:!0,subtree:!0});function s(e){const o={};return e.integrity&&(o.integrity=e.integrity),e.referrerPolicy&&(o.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?o.credentials="include":e.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(e){if(e.ep)return;e.ep=!0;const o=s(e);fetch(e.href,o)}})();function l({target:t}){const r=document.querySelector("#effects");if(r==null)return;Array.from(r.children).filter(n=>n.__effectParent===t).forEach(n=>{n.getAnimations().forEach(e=>{if(+(e.currentTime??0)<100){e.pause(),r.removeChild(n);return}e.pause(),e.updatePlaybackRate(-.25),e.play(),e.addEventListener("finish",()=>{r.contains(n)&&r.removeChild(n)})})})}function u(t){return t!==null&&typeof t.matches=="function"}function d({target:t}){const r=document.querySelector("#effects");if(!u(t)||!t.matches("a[href],.nav-toggle-button,button,input[type='radio']"))return;const s=window.getComputedStyle(t).getPropertyValue("--glowColor"),n=Array.from(t.getClientRects());Array.from(t.children).forEach(e=>{n.push(...Array.from(e.getClientRects()))}),n.forEach(e=>{const{top:o,left:i,width:a,height:m}=e,c=document.createElement("div");c.__effectParent=t,c.classList.add("effect-instance");const f="10rem";c.style.top=`calc(${o+window.scrollY}px - ${f})`,c.style.left=`calc(${i+window.scrollX}px - ${f})`,c.style.width=`calc(${a}px + 2 * ${f})`,c.style.height=`calc(${m}px + 2 * ${f})`,c.style.setProperty("--glowColor",s),r==null||r.appendChild(c)})}function p({target:t}){!u(t)||!t.matches("a[href][target=_blank]")||umami==null||umami.track(`Link: ${t.innerText??t.getAttribute("href")}`,{from:document.location.href,destination:t.getAttribute("href")})}document.addEventListener("mouseenter",d,!0);document.addEventListener("focus",d,!0);document.addEventListener("mouseleave",l,!0);document.addEventListener("blur",l,!0);document.addEventListener("click",p,!0);
//# sourceMappingURL=main-Dgy1RdwV.js.map

1
main-Dgy1RdwV.js.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"main-Dgy1RdwV.js","sources":["../../.11ty-vite/scripts/main.ts"],"sourcesContent":["/** @param {Event} evt */\nfunction removeEffect({ target }) {\n const effectsLayer = document.querySelector(\"#effects\")\n if (effectsLayer == null) {\n return\n }\n const effects = Array.from(effectsLayer.children).filter(\n (e) => e[\"__effectParent\"] === target\n )\n effects.forEach((e) => {\n e.getAnimations().forEach((anim) => {\n if (+(anim.currentTime ?? 0) < 100) {\n anim.pause()\n effectsLayer.removeChild(e)\n return\n }\n anim.pause()\n anim.updatePlaybackRate(-0.25)\n anim.play()\n anim.addEventListener(\"finish\", () => {\n if (effectsLayer.contains(e)) {\n effectsLayer.removeChild(e)\n }\n })\n })\n })\n}\n\nfunction isElement(target: EventTarget | null): target is Element {\n return target !== null && typeof target[\"matches\"] === \"function\"\n}\n\nfunction addEffect({ target }: UIEvent) {\n const effectsLayer = document.querySelector(\"#effects\")\n if (\n !isElement(target) ||\n !target.matches(\"a[href],.nav-toggle-button,button,input[type='radio']\")\n ) {\n return\n }\n const color = window.getComputedStyle(target).getPropertyValue(\"--glowColor\")\n const rects = Array.from(target.getClientRects())\n Array.from(target.children).forEach((child) => {\n rects.push(...Array.from(child.getClientRects()))\n })\n rects.forEach((rect) => {\n const { top, left, width, height } = rect\n const newEffect = document.createElement(\"div\")\n newEffect[\"__effectParent\"] = target\n newEffect.classList.add(\"effect-instance\")\n const padding = \"10rem\"\n newEffect.style.top = `calc(${top + window.scrollY}px - ${padding})`\n newEffect.style.left = `calc(${left + window.scrollX}px - ${padding})`\n newEffect.style.width = `calc(${width}px + 2 * ${padding})`\n newEffect.style.height = `calc(${height}px + 2 * ${padding})`\n newEffect.style.setProperty(\"--glowColor\", color)\n effectsLayer?.appendChild(newEffect)\n })\n}\n\nfunction attend({ target}: UIEvent) {\n if (!isElement(target) || !target.matches(\"a[href][target=_blank]\")) {\n return\n }\n umami?.track(`Link: ${target['innerText'] ?? target.getAttribute('href')}`, {\n from: document.location.href,\n destination: target.getAttribute('href'),\n })\n}\n\ndocument.addEventListener(\"mouseenter\", addEffect, true)\ndocument.addEventListener(\"focus\", addEffect, true)\n\ndocument.addEventListener(\"mouseleave\", removeEffect, true)\ndocument.addEventListener(\"blur\", removeEffect, true)\n\ndocument.addEventListener(\"click\", attend, true)\n"],"names":["removeEffect","target","effectsLayer","e","anim","isElement","addEffect","color","rects","child","rect","top","left","width","height","newEffect","padding","attend"],"mappings":"ssBACA,SAASA,EAAa,CAAE,OAAAC,GAAU,CAChC,MAAMC,EAAe,SAAS,cAAc,UAAU,EACtD,GAAIA,GAAgB,KAClB,OAEc,MAAM,KAAKA,EAAa,QAAQ,EAAE,OAC/CC,GAAMA,EAAE,iBAAsBF,CAAA,EAEzB,QAASE,GAAM,CACrBA,EAAE,cAAA,EAAgB,QAASC,GAAS,CAClC,GAAI,EAAEA,EAAK,aAAe,GAAK,IAAK,CAClCA,EAAK,MAAA,EACLF,EAAa,YAAYC,CAAC,EAC1B,MAAA,CAEFC,EAAK,MAAA,EACLA,EAAK,mBAAmB,IAAK,EAC7BA,EAAK,KAAA,EACLA,EAAK,iBAAiB,SAAU,IAAM,CAChCF,EAAa,SAASC,CAAC,GACzBD,EAAa,YAAYC,CAAC,CAC5B,CACD,CAAA,CACF,CAAA,CACF,CACH,CAEA,SAASE,EAAUJ,EAA+C,CAChE,OAAOA,IAAW,MAAQ,OAAOA,EAAO,SAAe,UACzD,CAEA,SAASK,EAAU,CAAE,OAAAL,GAAmB,CACtC,MAAMC,EAAe,SAAS,cAAc,UAAU,EACtD,GACE,CAACG,EAAUJ,CAAM,GACjB,CAACA,EAAO,QAAQ,uDAAuD,EAEvE,OAEF,MAAMM,EAAQ,OAAO,iBAAiBN,CAAM,EAAE,iBAAiB,aAAa,EACtEO,EAAQ,MAAM,KAAKP,EAAO,gBAAgB,EAChD,MAAM,KAAKA,EAAO,QAAQ,EAAE,QAASQ,GAAU,CAC7CD,EAAM,KAAK,GAAG,MAAM,KAAKC,EAAM,eAAA,CAAgB,CAAC,CAAA,CACjD,EACDD,EAAM,QAASE,GAAS,CACtB,KAAM,CAAE,IAAAC,EAAK,KAAAC,EAAM,MAAAC,EAAO,OAAAC,GAAWJ,EAC/BK,EAAY,SAAS,cAAc,KAAK,EAC9CA,EAAU,eAAoBd,EAC9Bc,EAAU,UAAU,IAAI,iBAAiB,EACzC,MAAMC,EAAU,QAChBD,EAAU,MAAM,IAAM,QAAQJ,EAAM,OAAO,OAAO,QAAQK,CAAO,IACjED,EAAU,MAAM,KAAO,QAAQH,EAAO,OAAO,OAAO,QAAQI,CAAO,IACnED,EAAU,MAAM,MAAQ,QAAQF,CAAK,YAAYG,CAAO,IACxDD,EAAU,MAAM,OAAS,QAAQD,CAAM,YAAYE,CAAO,IAC1DD,EAAU,MAAM,YAAY,cAAeR,CAAK,EAChDL,GAAA,MAAAA,EAAc,YAAYa,EAAS,CACpC,CACH,CAEA,SAASE,EAAO,CAAE,OAAAhB,GAAkB,CAC9B,CAACI,EAAUJ,CAAM,GAAK,CAACA,EAAO,QAAQ,wBAAwB,GAGlE,mBAAO,MAAM,SAASA,EAAO,WAAgBA,EAAO,aAAa,MAAM,CAAC,GAAI,CAC1E,KAAM,SAAS,SAAS,KACxB,YAAaA,EAAO,aAAa,MAAM,CAAA,EAE3C,CAEA,SAAS,iBAAiB,aAAcK,EAAW,EAAI,EACvD,SAAS,iBAAiB,QAASA,EAAW,EAAI,EAElD,SAAS,iBAAiB,aAAcN,EAAc,EAAI,EAC1D,SAAS,iBAAiB,OAAQA,EAAc,EAAI,EAEpD,SAAS,iBAAiB,QAASiB,EAAQ,EAAI"}

1
main-DsU4YhGH.css Normal file

File diff suppressed because one or more lines are too long

View file

@ -120,6 +120,54 @@
<loc>/tags/pages/</loc>
<lastmod>2025-06-26T23:35:15.839Z</lastmod>
</url>
<url>
<loc>/tags/ethos/</loc>
<lastmod>2025-06-26T23:35:15.839Z</lastmod>
</url>
<url>
<loc>/tags/learning/</loc>
<lastmod>2025-06-26T23:35:15.839Z</lastmod>
</url>
<url>
<loc>/tags/how-to/</loc>
<lastmod>2025-06-26T23:35:15.839Z</lastmod>
</url>
<url>
<loc>/tags/communication/</loc>
<lastmod>2025-06-26T23:35:15.839Z</lastmod>
</url>
<url>
<loc>/tags/faith/</loc>
<lastmod>2025-06-26T23:35:15.839Z</lastmod>
</url>
<url>
<loc>/tags/technical/</loc>
<lastmod>2025-06-26T23:35:15.839Z</lastmod>
</url>
<url>
<loc>/tags/zeitgeist/</loc>
<lastmod>2025-06-26T23:35:15.839Z</lastmod>
</url>
<url>
<loc>/tags/ai/</loc>
<lastmod>2025-06-26T23:35:15.839Z</lastmod>
</url>
<url>
<loc>/tags/software/</loc>
<lastmod>2025-06-26T23:35:15.839Z</lastmod>
</url>
<url>
<loc>/tags/selfhosting/</loc>
<lastmod>2025-06-26T23:35:15.839Z</lastmod>
</url>
<url>
<loc>/tags/ffmpeg/</loc>
<lastmod>2025-06-26T23:35:15.839Z</lastmod>
</url>
<url>
<loc>/tags/boardgames/</loc>
<lastmod>2025-06-26T23:35:15.839Z</lastmod>
</url>
<url>
<loc>/unoffice-hours/</loc>
<lastmod>2025-06-26T23:35:15.839Z</lastmod>