<rss version="2.0">
  <channel>
    <title>mr's Preposter.us Blog</title>
    <link>http://preposter.us/single-michigan-helium-network</link>
    <description>mr's blog on preposter.us</description>
  <item><title>Modern Computers Can't Be Trusted</title><link>http://preposter.us/single-michigan-helium-network/modern-computers-can-t-be-trusted.html</link><guid>http://preposter.us/single-michigan-helium-network/modern-computers-can-t-be-trusted.html</guid><pubDate>Tue, 07 Sep 2021 12:57:04 -0500</pubDate><description>a post about Modern Computers Can't Be Trusted by mr</description></item><item><title>Object of my dZire</title><link>http://preposter.us/single-michigan-helium-network/object-of-my-dzire.html</link><guid>http://preposter.us/single-michigan-helium-network/object-of-my-dzire.html</guid><pubDate>Thu, 16 Sep 2021 00:29:23 -0500</pubDate><description>a post about Object of my dZire by mr</description></item><item><title>RAIN-PSP 0.1</title><link>http://preposter.us/single-michigan-helium-network/rain-psp-0-1.html</link><guid>http://preposter.us/single-michigan-helium-network/rain-psp-0-1.html</guid><pubDate>Fri, 12 Nov 2021 22:58:43 -0600</pubDate><description>a post about RAIN-PSP 0.1 by mr</description></item><item><title>Cray Cray</title><link>http://preposter.us/single-michigan-helium-network/cray-cray.html</link><guid>http://preposter.us/single-michigan-helium-network/cray-cray.html</guid><pubDate>Mon, 06 Sep 2021 14:41:16 -0500</pubDate><description>a post about Cray Cray by mr</description></item><item><title>Ghost Trap</title><link>http://preposter.us/single-michigan-helium-network/ghost-trap.html</link><guid>http://preposter.us/single-michigan-helium-network/ghost-trap.html</guid><pubDate>Sun, 12 Feb 2023 10:32:24 -0600</pubDate><description>a post about Ghost Trap by mr</description></item><item><title>The most preposterous thing I could do</title><link>http://preposter.us/single-michigan-helium-network/the-most-preposterous-thing-i-could-do.html</link><guid>http://preposter.us/single-michigan-helium-network/the-most-preposterous-thing-i-could-do.html</guid><pubDate>Sun, 12 Feb 2023 12:21:41 -0600</pubDate><description>a post about The most preposterous thing I could do by mr</description></item><item><title>Good Enough Software</title><link>http://preposter.us/single-michigan-helium-network/good-enough-software.html</link><guid>http://preposter.us/single-michigan-helium-network/good-enough-software.html</guid><pubDate>Tue, 14 Feb 2023 05:45:56 -0600</pubDate><description>a post about Good Enough Software by mr</description></item><item><title>Move On</title><link>http://preposter.us/single-michigan-helium-network/move-on.html</link><guid>http://preposter.us/single-michigan-helium-network/move-on.html</guid><pubDate>Tue, 14 Feb 2023 09:13:42 -0600</pubDate><description>a post about Move On by mr</description></item><item><title>Getting Real</title><link>http://preposter.us/single-michigan-helium-network/getting-real.html</link><guid>http://preposter.us/single-michigan-helium-network/getting-real.html</guid><pubDate>Tue, 21 Feb 2023 09:05:35 -0600</pubDate><description>a post about Getting Real by mr</description></item><item><title>SyncThing -&gt; rsync</title><link>http://preposter.us/single-michigan-helium-network/syncthing-rsync.html</link><guid>http://preposter.us/single-michigan-helium-network/syncthing-rsync.html</guid><pubDate>Fri, 24 Feb 2023 08:41:15 -0600</pubDate><description>a post about SyncThing -&gt; rsync by mr</description></item><item><title>Restoring posts the Hitchcock way</title><link>http://preposter.us/single-michigan-helium-network/restoring-posts-the-hitchcock-way.html</link><guid>http://preposter.us/single-michigan-helium-network/restoring-posts-the-hitchcock-way.html</guid><pubDate>Fri, 24 Feb 2023 15:50:25 -0600</pubDate><description>a post about Restoring posts the Hitchcock way by mr</description></item><item><title>Grado GW100x</title><link>http://preposter.us/single-michigan-helium-network/grado-gw100x.html</link><guid>http://preposter.us/single-michigan-helium-network/grado-gw100x.html</guid><pubDate>Thu, 09 Mar 2023 10:41:21 -0600</pubDate><description>a post about Grado GW100x by mr</description></item><item><title>SE/3D - Introduction</title><link>http://preposter.us/single-michigan-helium-network/se-3d-introduction.html</link><guid>http://preposter.us/single-michigan-helium-network/se-3d-introduction.html</guid><pubDate>Thu, 09 Mar 2023 15:27:17 -0600</pubDate><description>a post about SE/3D - Introduction by mr</description></item><item><title>The Human Web</title><link>http://preposter.us/single-michigan-helium-network/the-human-web.html</link><guid>http://preposter.us/single-michigan-helium-network/the-human-web.html</guid><pubDate>Fri, 24 Mar 2023 06:51:55 -0500</pubDate><description>a post about The Human Web by mr</description></item><item><title>Personal Virtual Machines</title><link>http://preposter.us/single-michigan-helium-network/personal-virtual-machines.html</link><guid>http://preposter.us/single-michigan-helium-network/personal-virtual-machines.html</guid><pubDate>Sat, 1 Apr 2023 06:42:52 -0500</pubDate><description>a post about Personal Virtual Machines by mr</description></item><item><title>If you want to end crime, end law</title><link>http://preposter.us/single-michigan-helium-network/if-you-want-to-end-crime-end-law.html</link><guid>http://preposter.us/single-michigan-helium-network/if-you-want-to-end-crime-end-law.html</guid><pubDate>Mon, 3 Apr 2023 07:07:06 -0500</pubDate><description>a post about If you want to end crime, end law by mr</description></item><item><title>Note to self 1 - Things to read when time allows</title><link>http://preposter.us/single-michigan-helium-network/note-to-self-1-things-to-read-when-time-allows.html</link><guid>http://preposter.us/single-michigan-helium-network/note-to-self-1-things-to-read-when-time-allows.html</guid><pubDate>Thu, 13 Apr 2023 08:00:24 -0500</pubDate><description>a post about Note to self 1 - Things to read when time allows by mr</description></item><item><title>The Small Computing Congress</title><link>http://preposter.us/single-michigan-helium-network/the-small-computing-congress.html</link><guid>http://preposter.us/single-michigan-helium-network/the-small-computing-congress.html</guid><pubDate>Thu, 27 Apr 2023 06:20:14 -0500</pubDate><description>a post about The Small Computing Congress by mr</description></item><item><title>Links 052023</title><link>http://preposter.us/single-michigan-helium-network/links-052023.html</link><guid>http://preposter.us/single-michigan-helium-network/links-052023.html</guid><pubDate>Tue, 30 May 2023 06:19:46 -0500</pubDate><description>a post about Links 052023 by mr</description></item><item><title>Carbonite control panels</title><link>http://preposter.us/single-michigan-helium-network/carbonite-control-panels.html</link><guid>http://preposter.us/single-michigan-helium-network/carbonite-control-panels.html</guid><pubDate>Thu, 15 Jun 2023 07:09:45 -0500</pubDate><description>a post about Carbonite control panels by mr</description></item><item><title>The big plan</title><link>http://preposter.us/single-michigan-helium-network/the-big-plan.html</link><guid>http://preposter.us/single-michigan-helium-network/the-big-plan.html</guid><pubDate>Fri, 16 Jun 2023 06:40:23 -0500</pubDate><description>a post about The big plan by mr</description></item><item><title>Random Halloween 2023 Hacking</title><link>http://preposter.us/single-michigan-helium-network/random-halloween-2023-hacking.html</link><guid>http://preposter.us/single-michigan-helium-network/random-halloween-2023-hacking.html</guid><pubDate>Thu, 22 Jun 2023 10:16:26 -0500</pubDate><description>a post about Random Halloween 2023 Hacking by mr</description></item><item><title>The past and future of Free Software</title><link>http://preposter.us/single-michigan-helium-network/the-past-and-future-of-free-software.html</link><guid>http://preposter.us/single-michigan-helium-network/the-past-and-future-of-free-software.html</guid><pubDate>Mon, 26 Jun 2023 10:27:53 -0500</pubDate><description>a post about The past and future of Free Software by mr</description></item><item><title>Appless monitoring and control of the Bluetti EB3A</title><link>http://preposter.us/single-michigan-helium-network/appless-monitoring-and-control-of-the-bluetti-eb3a.html</link><guid>http://preposter.us/single-michigan-helium-network/appless-monitoring-and-control-of-the-bluetti-eb3a.html</guid><pubDate>Wed, 02 Aug 2023 15:47:45 -0500</pubDate><description>a post about Appless monitoring and control of the Bluetti EB3A by mr</description></item><item><title>Jason Wants to Start a Car Company</title><link>http://preposter.us/single-michigan-helium-network/jason-wants-to-start-a-car-company.html</link><guid>http://preposter.us/single-michigan-helium-network/jason-wants-to-start-a-car-company.html</guid><pubDate>Wed, 06 Sep 2023 10:26:15 -0500</pubDate><description>a post about Jason Wants to Start a Car Company by mr</description></item><item><title>Speederbike</title><link>http://preposter.us/single-michigan-helium-network/speederbike.html</link><guid>http://preposter.us/single-michigan-helium-network/speederbike.html</guid><pubDate>Thu, 14 Sep 2023 22:44:14 -0500</pubDate><description>a post about Speederbike by mr</description></item><item><title>=?utf-8?Q?Leia=E2=80=99s_Blaster?=</title><link>http://preposter.us/single-michigan-helium-network/utf-8-q-leia-e2-80-99s-blaster.html</link><guid>http://preposter.us/single-michigan-helium-network/utf-8-q-leia-e2-80-99s-blaster.html</guid><pubDate>Thu, 14 Sep 2023 22:56:44 -0500</pubDate><description>a post about =?utf-8?Q?Leia=E2=80=99s_Blaster?= by mr</description></item><item><title>Antifacist Torches</title><link>http://preposter.us/single-michigan-helium-network/antifacist-torches.html</link><guid>http://preposter.us/single-michigan-helium-network/antifacist-torches.html</guid><pubDate>Thu, 14 Sep 2023 23:04:47 -0500</pubDate><description>a post about Antifacist Torches by mr</description></item><item><title>Training Pendant</title><link>http://preposter.us/single-michigan-helium-network/training-pendant.html</link><guid>http://preposter.us/single-michigan-helium-network/training-pendant.html</guid><pubDate>Mon, 18 Sep 2023 09:42:01 -0500</pubDate><description>a post about Training Pendant by mr</description></item><item><title>Laserdisc adventure part 1</title><link>http://preposter.us/single-michigan-helium-network/laserdisc-adventure-part-1.html</link><guid>http://preposter.us/single-michigan-helium-network/laserdisc-adventure-part-1.html</guid><pubDate>Thu, 21 Sep 2023 18:54:12 -0500</pubDate><description>a post about Laserdisc adventure part 1 by mr</description></item><item><title>Type-O</title><link>http://preposter.us/single-michigan-helium-network/type-o.html</link><guid>http://preposter.us/single-michigan-helium-network/type-o.html</guid><pubDate>Thu, 5 Oct 2023 09:34:43 -0500</pubDate><description>a post about Type-O by mr</description></item><item><title>NaBloPoMo</title><link>http://preposter.us/single-michigan-helium-network/nablopomo.html</link><guid>http://preposter.us/single-michigan-helium-network/nablopomo.html</guid><pubDate>Wed, 1 Nov 2023 22:21:07 -0500</pubDate><description>a post about NaBloPoMo by mr</description></item><item><title>Writing Prompts </title><link>http://preposter.us/single-michigan-helium-network/writing-prompts.html</link><guid>http://preposter.us/single-michigan-helium-network/writing-prompts.html</guid><pubDate>Thu, 2 Nov 2023 20:04:50 -0500</pubDate><description>a post about Writing Prompts  by mr</description></item><item><title>Type-O Prototype Hardware</title><link>http://preposter.us/single-michigan-helium-network/type-o-prototype-hardware.html</link><guid>http://preposter.us/single-michigan-helium-network/type-o-prototype-hardware.html</guid><pubDate>Fri, 3 Nov 2023 22:45:10 -0500</pubDate><description>a post about Type-O Prototype Hardware by mr</description></item><item><title>Type-O Case</title><link>http://preposter.us/single-michigan-helium-network/type-o-case.html</link><guid>http://preposter.us/single-michigan-helium-network/type-o-case.html</guid><pubDate>Sat, 4 Nov 2023 20:28:39 -0500</pubDate><description>a post about Type-O Case by mr</description></item><item><title>Race To The Bottom</title><link>http://preposter.us/single-michigan-helium-network/race-to-the-bottom.html</link><guid>http://preposter.us/single-michigan-helium-network/race-to-the-bottom.html</guid><pubDate>Sun, 5 Nov 2023 20:51:55 -0600</pubDate><description>a post about Race To The Bottom by mr</description></item><item><title>The Skinny</title><link>http://preposter.us/single-michigan-helium-network/the-skinny.html</link><guid>http://preposter.us/single-michigan-helium-network/the-skinny.html</guid><pubDate>Mon, 6 Nov 2023 20:33:38 -0600</pubDate><description>a post about The Skinny by mr</description></item><item><title>=?utf-8?Q?Photodump:_Luke=E2=80=99s_Lightsaber?=</title><link>http://preposter.us/single-michigan-helium-network/utf-8-q-photodump-luke-e2-80-99s-lightsaber.html</link><guid>http://preposter.us/single-michigan-helium-network/utf-8-q-photodump-luke-e2-80-99s-lightsaber.html</guid><pubDate>Tue, 7 Nov 2023 23:34:29 -0600</pubDate><description>a post about =?utf-8?Q?Photodump:_Luke=E2=80=99s_Lightsaber?= by mr</description></item><item><title>Photodump: Luke Lightsaber</title><link>http://preposter.us/single-michigan-helium-network/photodump-luke-lightsaber.html</link><guid>http://preposter.us/single-michigan-helium-network/photodump-luke-lightsaber.html</guid><pubDate>Tue, 7 Nov 2023 23:37:57 -0600</pubDate><description>a post about Photodump: Luke Lightsaber by mr</description></item><item><title>Type-O Prototype Progress</title><link>http://preposter.us/single-michigan-helium-network/type-o-prototype-progress.html</link><guid>http://preposter.us/single-michigan-helium-network/type-o-prototype-progress.html</guid><pubDate>Wed, 8 Nov 2023 21:58:47 -0600</pubDate><description>a post about Type-O Prototype Progress by mr</description></item><item><title>Seeing Red</title><link>http://preposter.us/single-michigan-helium-network/seeing-red.html</link><guid>http://preposter.us/single-michigan-helium-network/seeing-red.html</guid><pubDate>Thu, 9 Nov 2023 22:26:54 -0600</pubDate><description>a post about Seeing Red by mr</description></item><item><title>Ethical AI</title><link>http://preposter.us/single-michigan-helium-network/ethical-ai.html</link><guid>http://preposter.us/single-michigan-helium-network/ethical-ai.html</guid><pubDate>Fri, 10 Nov 2023 00:01:16 -0600</pubDate><description>a post about Ethical AI by mr</description></item><item><title>Reopening the Library</title><link>http://preposter.us/single-michigan-helium-network/reopening-the-library.html</link><guid>http://preposter.us/single-michigan-helium-network/reopening-the-library.html</guid><pubDate>Sat, 11 Nov 2023 21:50:18 -0600</pubDate><description>a post about Reopening the Library by mr</description></item><item><title>Type-O First Keystrokes</title><link>http://preposter.us/single-michigan-helium-network/type-o-first-keystrokes.html</link><guid>http://preposter.us/single-michigan-helium-network/type-o-first-keystrokes.html</guid><pubDate>Sun, 12 Nov 2023 20:30:16 -0600</pubDate><description>a post about Type-O First Keystrokes by mr</description></item><item><title>Tonight</title><link>http://preposter.us/single-michigan-helium-network/tonight.html</link><guid>http://preposter.us/single-michigan-helium-network/tonight.html</guid><pubDate>Mon, 13 Nov 2023 22:52:25 -0600</pubDate><description>a post about Tonight by mr</description></item><item><title>Halloween 2024 Hint</title><link>http://preposter.us/single-michigan-helium-network/halloween-2024-hint.html</link><guid>http://preposter.us/single-michigan-helium-network/halloween-2024-hint.html</guid><pubDate>Wed, 15 Nov 2023 22:50:48 -0600</pubDate><description>a post about Halloween 2024 Hint by mr</description></item><item><title>The Producer</title><link>http://preposter.us/single-michigan-helium-network/the-producer.html</link><guid>http://preposter.us/single-michigan-helium-network/the-producer.html</guid><pubDate>Thu, 16 Nov 2023 21:18:57 -0600</pubDate><description>a post about The Producer by mr</description></item><item><title>A Deer Hunter</title><link>http://preposter.us/single-michigan-helium-network/a-deer-hunter.html</link><guid>http://preposter.us/single-michigan-helium-network/a-deer-hunter.html</guid><pubDate>Sat, 18 Nov 2023 21:11:20 -0600</pubDate><description>a post about A Deer Hunter by mr</description></item><item><title>Type-O All Keys On-Board</title><link>http://preposter.us/single-michigan-helium-network/type-o-all-keys-on-board.html</link><guid>http://preposter.us/single-michigan-helium-network/type-o-all-keys-on-board.html</guid><pubDate>Sun, 19 Nov 2023 20:42:51 -0600</pubDate><description>a post about Type-O All Keys On-Board by mr</description></item><item><title>Typo-O Asynchronicity </title><link>http://preposter.us/single-michigan-helium-network/typo-o-asynchronicity.html</link><guid>http://preposter.us/single-michigan-helium-network/typo-o-asynchronicity.html</guid><pubDate>Mon, 20 Nov 2023 23:24:35 -0600</pubDate><description>a post about Typo-O Asynchronicity  by mr</description></item><item><title>Honey I shrunk the lcd</title><link>http://preposter.us/single-michigan-helium-network/honey-i-shrunk-the-lcd.html</link><guid>http://preposter.us/single-michigan-helium-network/honey-i-shrunk-the-lcd.html</guid><pubDate>Tue, 21 Nov 2023 22:23:49 -0600</pubDate><description>a post about Honey I shrunk the lcd by mr</description></item><item><title>The halting problem</title><link>http://preposter.us/single-michigan-helium-network/the-halting-problem.html</link><guid>http://preposter.us/single-michigan-helium-network/the-halting-problem.html</guid><pubDate>Wed, 22 Nov 2023 22:55:56 -0600</pubDate><description>a post about The halting problem by mr</description></item><item><title>Why write a search engine</title><link>http://preposter.us/single-michigan-helium-network/why-write-a-search-engine.html</link><guid>http://preposter.us/single-michigan-helium-network/why-write-a-search-engine.html</guid><pubDate>Sun, 26 Nov 2023 05:17:22 -0600</pubDate><description>a post about Why write a search engine by mr</description></item><item><title>Chuck Marten</title><link>http://preposter.us/single-michigan-helium-network/chuck-marten.html</link><guid>http://preposter.us/single-michigan-helium-network/chuck-marten.html</guid><pubDate>Mon, 27 Nov 2023 23:25:34 -0600</pubDate><description>a post about Chuck Marten by mr</description></item><item><title>Aleph</title><link>http://preposter.us/single-michigan-helium-network/aleph.html</link><guid>http://preposter.us/single-michigan-helium-network/aleph.html</guid><pubDate>Sun, 10 Dec 2023 07:10:54 -0600</pubDate><description>a post about Aleph by mr</description></item><item><title>Baby Telepathy </title><link>http://preposter.us/single-michigan-helium-network/baby-telepathy.html</link><guid>http://preposter.us/single-michigan-helium-network/baby-telepathy.html</guid><pubDate>Sun, 10 Dec 2023 07:56:15 -0600</pubDate><description>a post about Baby Telepathy  by mr</description></item><item><title>Universal Stompbox</title><link>http://preposter.us/single-michigan-helium-network/universal-stompbox.html</link><guid>http://preposter.us/single-michigan-helium-network/universal-stompbox.html</guid><pubDate>Tue, 2 Jan 2024 15:54:25 -0600</pubDate><description>a post about Universal Stompbox by mr</description></item><item><title>NETBACK</title><link>http://preposter.us/single-michigan-helium-network/netback.html</link><guid>http://preposter.us/single-michigan-helium-network/netback.html</guid><pubDate>Wed, 31 Jan 2024 09:50:30 -0600</pubDate><description>a post about NETBACK by mr</description></item><item><title>Markdown With Verbs</title><link>http://preposter.us/single-michigan-helium-network/markdown-with-verbs.html</link><guid>http://preposter.us/single-michigan-helium-network/markdown-with-verbs.html</guid><pubDate>Sun, 11 Feb 2024 08:30:06 -0600</pubDate><description>a post about Markdown With Verbs by mr</description></item><item><title>DONOR-1 Resurrection</title><link>http://preposter.us/single-michigan-helium-network/donor-1-resurrection.html</link><guid>http://preposter.us/single-michigan-helium-network/donor-1-resurrection.html</guid><pubDate>Sun, 18 Feb 2024 08:32:29 -0600</pubDate><description>a post about DONOR-1 Resurrection by mr</description></item><item><title>The Journal</title><link>http://preposter.us/single-michigan-helium-network/the-journal.html</link><guid>http://preposter.us/single-michigan-helium-network/the-journal.html</guid><pubDate>Tue, 27 Feb 2024 08:26:28 -0600</pubDate><description>a post about The Journal by mr</description></item><item><title>Progress and patience </title><link>http://preposter.us/single-michigan-helium-network/progress-and-patience.html</link><guid>http://preposter.us/single-michigan-helium-network/progress-and-patience.html</guid><pubDate>Thu, 21 Mar 2024 00:31:17 -0500</pubDate><description>a post about Progress and patience  by mr</description></item><item><title>Automation is anticapitslist</title><link>http://preposter.us/single-michigan-helium-network/automation-is-anticapitslist.html</link><guid>http://preposter.us/single-michigan-helium-network/automation-is-anticapitslist.html</guid><pubDate>Sun, 24 Mar 2024 07:52:43 -0500</pubDate><description>a post about Automation is anticapitslist by mr</description></item><item><title>Automation is anticapitalist</title><link>http://preposter.us/single-michigan-helium-network/automation-is-anticapitalist.html</link><guid>http://preposter.us/single-michigan-helium-network/automation-is-anticapitalist.html</guid><pubDate>Sun, 24 Mar 2024 11:20:06 -0500</pubDate><description>a post about Automation is anticapitalist by mr</description></item><item><title>Preposterous as community media engine</title><link>http://preposter.us/single-michigan-helium-network/preposterous-as-community-media-engine.html</link><guid>http://preposter.us/single-michigan-helium-network/preposterous-as-community-media-engine.html</guid><pubDate>Thu, 28 Mar 2024 06:12:17 -0500</pubDate><description>a post about Preposterous as community media engine by mr</description></item><item><title>The distributed video streaming idea</title><link>http://preposter.us/single-michigan-helium-network/the-distributed-video-streaming-idea.html</link><guid>http://preposter.us/single-michigan-helium-network/the-distributed-video-streaming-idea.html</guid><pubDate>Fri, 29 Mar 2024 15:07:57 -0500</pubDate><description>a post about The distributed video streaming idea by mr</description></item><item><title>Reducing the compute-memory bottleneck with JSFSX</title><link>http://preposter.us/single-michigan-helium-network/reducing-the-compute-memory-bottleneck-with-jsfsx.html</link><guid>http://preposter.us/single-michigan-helium-network/reducing-the-compute-memory-bottleneck-with-jsfsx.html</guid><pubDate>Fri, 05 Apr 2024 09:48:12 -0500</pubDate><description>a post about Reducing the compute-memory bottleneck with JSFSX by mr</description></item><item><title>The Next Thing</title><link>http://preposter.us/single-michigan-helium-network/the-next-thing.html</link><guid>http://preposter.us/single-michigan-helium-network/the-next-thing.html</guid><pubDate>Thu, 18 Apr 2024 23:56:57 -0500</pubDate><description>a post about The Next Thing by mr</description></item><item><title>Forevernote II </title><link>http://preposter.us/single-michigan-helium-network/forevernote-ii.html</link><guid>http://preposter.us/single-michigan-helium-network/forevernote-ii.html</guid><pubDate>Mon, 22 Apr 2024 08:44:51 -0500</pubDate><description>a post about Forevernote II  by mr</description></item><item><title>The History of Cyberspace Part One</title><link>http://preposter.us/single-michigan-helium-network/the-history-of-cyberspace-part-one.html</link><guid>http://preposter.us/single-michigan-helium-network/the-history-of-cyberspace-part-one.html</guid><pubDate>Tue, 23 Apr 2024 00:06:18 -0500</pubDate><description>a post about The History of Cyberspace Part One by mr</description></item><item><title>An Operating System for the Web</title><link>http://preposter.us/single-michigan-helium-network/an-operating-system-for-the-web.html</link><guid>http://preposter.us/single-michigan-helium-network/an-operating-system-for-the-web.html</guid><pubDate>Sun, 5 May 2024 23:46:13 -0500</pubDate><description>a post about An Operating System for the Web by mr</description></item><item><title>JS/OS Graphical User Interfaces</title><link>http://preposter.us/single-michigan-helium-network/js-os-graphical-user-interfaces.html</link><guid>http://preposter.us/single-michigan-helium-network/js-os-graphical-user-interfaces.html</guid><pubDate>Sat, 25 May 2024 00:10:14 -0500</pubDate><description>a post about JS/OS Graphical User Interfaces by mr</description></item><item><title>Ergonomics</title><link>http://preposter.us/single-michigan-helium-network/ergonomics.html</link><guid>http://preposter.us/single-michigan-helium-network/ergonomics.html</guid><pubDate>Sat, 1 Jun 2024 10:28:15 -0500</pubDate><description>a post about Ergonomics by mr</description></item><item><title>EmailiOS</title><link>http://preposter.us/single-michigan-helium-network/emailios.html</link><guid>http://preposter.us/single-michigan-helium-network/emailios.html</guid><pubDate>Fri, 14 Jun 2024 06:29:59 -0500</pubDate><description>a post about EmailiOS by mr</description></item><item><title>Membership Card Part 1</title><link>http://preposter.us/single-michigan-helium-network/membership-card-part-1.html</link><guid>http://preposter.us/single-michigan-helium-network/membership-card-part-1.html</guid><pubDate>Mon, 17 Jun 2024 18:46:31 -0500</pubDate><description>a post about Membership Card Part 1 by mr</description></item><item><title>The future is not an aesthetic</title><link>http://preposter.us/single-michigan-helium-network/the-future-is-not-an-aesthetic.html</link><guid>http://preposter.us/single-michigan-helium-network/the-future-is-not-an-aesthetic.html</guid><pubDate>Fri, 05 Jul 2024 10:55:21 -0500</pubDate><description>a post about The future is not an aesthetic by mr</description></item><item><title>The simplest thing that could possibly play WPR</title><link>http://preposter.us/single-michigan-helium-network/the-simplest-thing-that-could-possibly-play-wpr.html</link><guid>http://preposter.us/single-michigan-helium-network/the-simplest-thing-that-could-possibly-play-wpr.html</guid><pubDate>Thu, 11 Jul 2024 08:22:47 -0500</pubDate><description>a post about The simplest thing that could possibly play WPR by mr</description></item><item><title>Micro Channel Architecture</title><link>http://preposter.us/single-michigan-helium-network/micro-channel-architecture.html</link><guid>http://preposter.us/single-michigan-helium-network/micro-channel-architecture.html</guid><pubDate>Sat, 27 Jul 2024 07:46:35 -0500</pubDate><description>a post about Micro Channel Architecture by mr</description></item><item><title>More thoughts on starting a car company</title><link>http://preposter.us/single-michigan-helium-network/more-thoughts-on-starting-a-car-company.html</link><guid>http://preposter.us/single-michigan-helium-network/more-thoughts-on-starting-a-car-company.html</guid><pubDate>Wed, 21 Aug 2024 13:02:01 -0500</pubDate><description>a post about More thoughts on starting a car company by mr</description></item><item><title>People post the weirdest shit on their blogs</title><link>http://preposter.us/single-michigan-helium-network/people-post-the-weirdest-shit-on-their-blogs.html</link><guid>http://preposter.us/single-michigan-helium-network/people-post-the-weirdest-shit-on-their-blogs.html</guid><pubDate>Sun, 8 Sep 2024 07:24:56 -0500</pubDate><description>a post about People post the weirdest shit on their blogs by mr</description></item><item><title>Changes 2024</title><link>http://preposter.us/single-michigan-helium-network/changes-2024.html</link><guid>http://preposter.us/single-michigan-helium-network/changes-2024.html</guid><pubDate>Sun, 15 Sep 2024 07:14:18 -0500</pubDate><description>a post about Changes 2024 by mr</description></item><item><title>Greetings from ElementaryOS</title><link>http://preposter.us/single-michigan-helium-network/greetings-from-elementaryos.html</link><guid>http://preposter.us/single-michigan-helium-network/greetings-from-elementaryos.html</guid><pubDate>Sun, 24 Nov 2024 08:38:02 -0600</pubDate><description>a post about Greetings from ElementaryOS by mr</description></item><item><title>OSW - Operating System for the Web</title><link>http://preposter.us/single-michigan-helium-network/osw-operating-system-for-the-web.html</link><guid>http://preposter.us/single-michigan-helium-network/osw-operating-system-for-the-web.html</guid><pubDate>Sun, 24 Nov 2024 09:46:05 -0600</pubDate><description>a post about OSW - Operating System for the Web by mr</description></item><item><title>As the dust settles</title><link>http://preposter.us/single-michigan-helium-network/as-the-dust-settles.html</link><guid>http://preposter.us/single-michigan-helium-network/as-the-dust-settles.html</guid><pubDate>Tue, 10 Dec 2024 09:12:33 -0600</pubDate><description>a post about As the dust settles by mr</description></item><item><title>And now for a brief media test</title><link>http://preposter.us/single-michigan-helium-network/and-now-for-a-brief-media-test.html</link><guid>http://preposter.us/single-michigan-helium-network/and-now-for-a-brief-media-test.html</guid><pubDate>Tue, 10 Dec 2024 09:39:58 -0600</pubDate><description>a post about And now for a brief media test by mr</description></item><item><title>Still buggin</title><link>http://preposter.us/single-michigan-helium-network/still-buggin.html</link><guid>http://preposter.us/single-michigan-helium-network/still-buggin.html</guid><pubDate>Sun, 15 Dec 2024 21:12:27 -0600</pubDate><description>a post about Still buggin by mr</description></item><item><title>Gave Up</title><link>http://preposter.us/single-michigan-helium-network/gave-up.html</link><guid>http://preposter.us/single-michigan-helium-network/gave-up.html</guid><pubDate>Mon, 16 Dec 2024 07:00:03 -0600</pubDate><description>a post about Gave Up by mr</description></item><item><title>ElementaryOS - Photos plus iPhone</title><link>http://preposter.us/single-michigan-helium-network/elementaryos-photos-plus-iphone.html</link><guid>http://preposter.us/single-michigan-helium-network/elementaryos-photos-plus-iphone.html</guid><pubDate>Wed, 18 Dec 2024 06:46:44 -0600</pubDate><description>a post about ElementaryOS - Photos plus iPhone by mr</description></item><item><title>Tangara - First Impressions</title><link>http://preposter.us/single-michigan-helium-network/tangara-first-impressions.html</link><guid>http://preposter.us/single-michigan-helium-network/tangara-first-impressions.html</guid><pubDate>Wed, 18 Dec 2024 23:01:19 -0600</pubDate><description>a post about Tangara - First Impressions by mr</description></item><item><title>Sunset </title><link>http://preposter.us/single-michigan-helium-network/sunset.html</link><guid>http://preposter.us/single-michigan-helium-network/sunset.html</guid><pubDate>Thu, 9 Jan 2025 15:39:12 -0600</pubDate><description>a post about Sunset  by mr</description></item><item><title>Server Migration 2025</title><link>http://preposter.us/single-michigan-helium-network/server-migration-2025.html</link><guid>http://preposter.us/single-michigan-helium-network/server-migration-2025.html</guid><pubDate>Fri, 10 Jan 2025 06:36:03 -0600</pubDate><description>a post about Server Migration 2025 by mr</description></item><item><title>Server Migration 2025 Part 2</title><link>http://preposter.us/single-michigan-helium-network/server-migration-2025-part-2.html</link><guid>http://preposter.us/single-michigan-helium-network/server-migration-2025-part-2.html</guid><pubDate>Fri, 10 Jan 2025 06:44:13 -0600</pubDate><description>a post about Server Migration 2025 Part 2 by mr</description></item><item><title>Server Migration 2025 Complete</title><link>http://preposter.us/single-michigan-helium-network/server-migration-2025-complete.html</link><guid>http://preposter.us/single-michigan-helium-network/server-migration-2025-complete.html</guid><pubDate>Fri, 10 Jan 2025 07:01:21 -0600</pubDate><description>a post about Server Migration 2025 Complete by mr</description></item><item><title>Tangara after about a month</title><link>http://preposter.us/single-michigan-helium-network/tangara-after-about-a-month.html</link><guid>http://preposter.us/single-michigan-helium-network/tangara-after-about-a-month.html</guid><pubDate>Mon, 13 Jan 2025 05:24:29 -0600</pubDate><description>a post about Tangara after about a month by mr</description></item><item><title>Dad</title><link>http://preposter.us/single-michigan-helium-network/dad.html</link><guid>http://preposter.us/single-michigan-helium-network/dad.html</guid><pubDate>Sun, 19 Jan 2025 10:27:29 -0600</pubDate><description>a post about Dad by mr</description></item><item><title>Smartphones were a mistake</title><link>http://preposter.us/single-michigan-helium-network/smartphones-were-a-mistake.html</link><guid>http://preposter.us/single-michigan-helium-network/smartphones-were-a-mistake.html</guid><pubDate>Wed, 12 Feb 2025 11:07:16 -0600</pubDate><description>a post about Smartphones were a mistake by mr</description></item><item><title>Orangestorm Giga</title><link>http://preposter.us/single-michigan-helium-network/orangestorm-giga.html</link><guid>http://preposter.us/single-michigan-helium-network/orangestorm-giga.html</guid><pubDate>Tue, 4 Mar 2025 15:50:27 -0600</pubDate><description>a post about Orangestorm Giga by mr</description></item><item><title>Tesla Minus Tesla</title><link>http://preposter.us/single-michigan-helium-network/tesla-minus-tesla.html</link><guid>http://preposter.us/single-michigan-helium-network/tesla-minus-tesla.html</guid><pubDate>Wed, 05 Mar 2025 09:37:24 -0600</pubDate><description>a post about Tesla Minus Tesla by mr</description></item><item><title>12 Inch Discs</title><link>http://preposter.us/single-michigan-helium-network/12-inch-discs.html</link><guid>http://preposter.us/single-michigan-helium-network/12-inch-discs.html</guid><pubDate>Wed, 05 Mar 2025 18:35:43 -0600</pubDate><description>a post about 12 Inch Discs by mr</description></item><item><title>Prepping as Retirement Plan</title><link>http://preposter.us/single-michigan-helium-network/prepping-as-retirement-plan.html</link><guid>http://preposter.us/single-michigan-helium-network/prepping-as-retirement-plan.html</guid><pubDate>Wed, 5 Mar 2025 23:19:47 -0600</pubDate><description>a post about Prepping as Retirement Plan by mr</description></item><item><title>RSScue Me</title><link>http://preposter.us/single-michigan-helium-network/rsscue-me.html</link><guid>http://preposter.us/single-michigan-helium-network/rsscue-me.html</guid><pubDate>Thu, 6 Mar 2025 08:45:22 -0600</pubDate><description>a post about RSScue Me by mr</description></item><item><title>Installing Klipper on the Ender 5 Plus</title><link>http://preposter.us/single-michigan-helium-network/installing-klipper-on-the-ender-5-plus.html</link><guid>http://preposter.us/single-michigan-helium-network/installing-klipper-on-the-ender-5-plus.html</guid><pubDate>Thu, 6 Mar 2025 11:53:06 -0600</pubDate><description>a post about Installing Klipper on the Ender 5 Plus by mr</description></item><item><title>The Do Programming Language (DRAFT)</title><link>http://preposter.us/single-michigan-helium-network/the-do-programming-language-draft.html</link><guid>http://preposter.us/single-michigan-helium-network/the-do-programming-language-draft.html</guid><pubDate>Fri, 07 Mar 2025 07:45:54 -0600</pubDate><description>a post about The Do Programming Language (DRAFT) by mr</description></item><item><title>Bamboo Construction Set</title><link>http://preposter.us/single-michigan-helium-network/bamboo-construction-set.html</link><guid>http://preposter.us/single-michigan-helium-network/bamboo-construction-set.html</guid><pubDate>Sat, 8 Mar 2025 07:16:31 -0600</pubDate><description>a post about Bamboo Construction Set by mr</description></item><item><title>The lunch tray project management system</title><link>http://preposter.us/single-michigan-helium-network/the-lunch-tray-project-management-system.html</link><guid>http://preposter.us/single-michigan-helium-network/the-lunch-tray-project-management-system.html</guid><pubDate>Sun, 16 Mar 2025 23:22:59 -0500</pubDate><description>a post about The lunch tray project management system by mr</description></item><item><title>Thanos</title><link>http://preposter.us/single-michigan-helium-network/thanos.html</link><guid>http://preposter.us/single-michigan-helium-network/thanos.html</guid><pubDate>Wed, 19 Mar 2025 08:31:12 -0500</pubDate><description>a post about Thanos by mr</description></item><item><title>KGL Mainframe</title><link>http://preposter.us/single-michigan-helium-network/kgl-mainframe.html</link><guid>http://preposter.us/single-michigan-helium-network/kgl-mainframe.html</guid><pubDate>Thu, 03 Apr 2025 09:20:42 -0500</pubDate><description>a post about KGL Mainframe by mr</description></item><item><title>Zen and the Art of Software Maintenance</title><link>http://preposter.us/single-michigan-helium-network/zen-and-the-art-of-software-maintenance.html</link><guid>http://preposter.us/single-michigan-helium-network/zen-and-the-art-of-software-maintenance.html</guid><pubDate>Fri, 04 Apr 2025 08:28:56 -0500</pubDate><description>a post about Zen and the Art of Software Maintenance by mr</description></item><item><title>Windows95</title><link>http://preposter.us/single-michigan-helium-network/windows95.html</link><guid>http://preposter.us/single-michigan-helium-network/windows95.html</guid><pubDate>Sun, 06 Apr 2025 09:40:37 -0500</pubDate><description>a post about Windows95 by mr</description></item><item><title>Digital Casting</title><link>http://preposter.us/single-michigan-helium-network/digital-casting.html</link><guid>http://preposter.us/single-michigan-helium-network/digital-casting.html</guid><pubDate>Mon, 07 Apr 2025 07:57:57 -0500</pubDate><description>a post about Digital Casting by mr</description></item><item><title>Private, High-Quality Web Search with Kiwix</title><link>http://preposter.us/single-michigan-helium-network/private-high-quality-web-search-with-kiwix.html</link><guid>http://preposter.us/single-michigan-helium-network/private-high-quality-web-search-with-kiwix.html</guid><pubDate>Thu, 10 Apr 2025 09:34:31 -0500</pubDate><description>a post about Private, High-Quality Web Search with Kiwix by mr</description></item><item><title>Programming in a human language </title><link>http://preposter.us/single-michigan-helium-network/programming-in-a-human-language.html</link><guid>http://preposter.us/single-michigan-helium-network/programming-in-a-human-language.html</guid><pubDate>Fri, 25 Apr 2025 08:00:23 -0500</pubDate><description>a post about Programming in a human language  by mr</description></item><item><title>The end of the world as we know it</title><link>http://preposter.us/single-michigan-helium-network/the-end-of-the-world-as-we-know-it.html</link><guid>http://preposter.us/single-michigan-helium-network/the-end-of-the-world-as-we-know-it.html</guid><pubDate>Thu, 1 May 2025 07:40:05 -0500</pubDate><description>a post about The end of the world as we know it by mr</description></item><item><title>Electrons for peace</title><link>http://preposter.us/single-michigan-helium-network/electrons-for-peace.html</link><guid>http://preposter.us/single-michigan-helium-network/electrons-for-peace.html</guid><pubDate>Fri, 16 May 2025 08:42:06 -0500</pubDate><description>a post about Electrons for peace by mr</description></item><item><title>Typewriter Bar</title><link>http://preposter.us/single-michigan-helium-network/typewriter-bar.html</link><guid>http://preposter.us/single-michigan-helium-network/typewriter-bar.html</guid><pubDate>Wed, 21 May 2025 12:17:24 -0500</pubDate><description>a post about Typewriter Bar by mr</description></item><item><title>Weird in Public</title><link>http://preposter.us/single-michigan-helium-network/weird-in-public.html</link><guid>http://preposter.us/single-michigan-helium-network/weird-in-public.html</guid><pubDate>Thu, 22 May 2025 08:23:32 -0500</pubDate><description>a post about Weird in Public by mr</description></item><item><title>Things I wish I could get done for Preposter.us</title><link>http://preposter.us/single-michigan-helium-network/things-i-wish-i-could-get-done-for-preposter-us.html</link><guid>http://preposter.us/single-michigan-helium-network/things-i-wish-i-could-get-done-for-preposter-us.html</guid><pubDate>Thu, 22 May 2025 08:35:15 -0500</pubDate><description>a post about Things I wish I could get done for Preposter.us by mr</description></item><item><title>What's Next? 2025</title><link>http://preposter.us/single-michigan-helium-network/what-s-next-2025.html</link><guid>http://preposter.us/single-michigan-helium-network/what-s-next-2025.html</guid><pubDate>Sat, 24 May 2025 10:13:10 -0500</pubDate><description>a post about What's Next? 2025 by mr</description></item><item><title>Traditional CPU vs. DASL Machine</title><link>http://preposter.us/single-michigan-helium-network/traditional-cpu-vs-dasl-machine.html</link><guid>http://preposter.us/single-michigan-helium-network/traditional-cpu-vs-dasl-machine.html</guid><pubDate>Wed, 28 May 2025 07:44:19 -0500</pubDate><description>a post about Traditional CPU vs. DASL Machine by mr</description></item><item><title>Seymour Mark I Hardware</title><link>http://preposter.us/single-michigan-helium-network/seymour-mark-i-hardware.html</link><guid>http://preposter.us/single-michigan-helium-network/seymour-mark-i-hardware.html</guid><pubDate>Thu, 29 May 2025 07:54:05 -0500</pubDate><description>a post about Seymour Mark I Hardware by mr</description></item><item><title>Re-testing Elementary Mail</title><link>http://preposter.us/single-michigan-helium-network/re-testing-elementary-mail.html</link><guid>http://preposter.us/single-michigan-helium-network/re-testing-elementary-mail.html</guid><pubDate>Tue, 17 Jun 2025 08:00:38 -0500</pubDate><description>a post about Re-testing Elementary Mail by mr</description></item><item><title>Dr. StrangeLLM or: How I learned to stop worrying and love the bomb</title><link>http://preposter.us/single-michigan-helium-network/dr-strangellm-or-how-i-learned-to-stop-worrying-and-love-the-bomb.html</link><guid>http://preposter.us/single-michigan-helium-network/dr-strangellm-or-how-i-learned-to-stop-worrying-and-love-the-bomb.html</guid><pubDate>Fri, 27 Jun 2025 09:00:50 -0500</pubDate><description>a post about Dr. StrangeLLM or: How I learned to stop worrying and love the bomb by mr</description></item><item><title>Framework 12 and ElementaryOS</title><link>http://preposter.us/single-michigan-helium-network/framework-12-and-elementaryos.html</link><guid>http://preposter.us/single-michigan-helium-network/framework-12-and-elementaryos.html</guid><pubDate>Fri, 04 Jul 2025 09:38:52 -0500</pubDate><description>a post about Framework 12 and ElementaryOS by mr</description></item><item><title>The Pager</title><link>http://preposter.us/single-michigan-helium-network/the-pager.html</link><guid>http://preposter.us/single-michigan-helium-network/the-pager.html</guid><pubDate>Sat, 05 Jul 2025 08:41:47 -0500</pubDate><description>a post about The Pager by mr</description></item><item><title>Focus on writing with Apostrophe</title><link>http://preposter.us/single-michigan-helium-network/focus-on-writing-with-apostrophe.html</link><guid>http://preposter.us/single-michigan-helium-network/focus-on-writing-with-apostrophe.html</guid><pubDate>Thu, 10 Jul 2025 09:05:43 -0500</pubDate><description>a post about Focus on writing with Apostrophe by mr</description></item><item><title>Thought amplification vs. thought trampflication</title><link>http://preposter.us/single-michigan-helium-network/thought-amplification-vs-thought-trampflication.html</link><guid>http://preposter.us/single-michigan-helium-network/thought-amplification-vs-thought-trampflication.html</guid><pubDate>Wed, 23 Jul 2025 07:02:20 -0500</pubDate><description>a post about Thought amplification vs. thought trampflication by mr</description></item><item><title>The autonomous solar-powered Universal Basic Income thing</title><link>http://preposter.us/single-michigan-helium-network/the-autonomous-solar-powered-universal-basic-income-thing.html</link><guid>http://preposter.us/single-michigan-helium-network/the-autonomous-solar-powered-universal-basic-income-thing.html</guid><pubDate>Sun, 27 Jul 2025 09:57:18 -0500</pubDate><description>a post about The autonomous solar-powered Universal Basic Income thing by mr</description></item><item><title>Why our technology is so harmful</title><link>http://preposter.us/single-michigan-helium-network/why-our-technology-is-so-harmful.html</link><guid>http://preposter.us/single-michigan-helium-network/why-our-technology-is-so-harmful.html</guid><pubDate>Thu, 28 Aug 2025 07:21:16 -0500</pubDate><description>a post about Why our technology is so harmful by mr</description></item><item><title>Shooting</title><link>http://preposter.us/single-michigan-helium-network/shooting.html</link><guid>http://preposter.us/single-michigan-helium-network/shooting.html</guid><pubDate>Mon, 13 Oct 2025 07:49:47 -0500</pubDate><description>a post about Shooting by mr</description></item><item><title>The Last Laptop</title><link>http://preposter.us/single-michigan-helium-network/the-last-laptop.html</link><guid>http://preposter.us/single-michigan-helium-network/the-last-laptop.html</guid><pubDate>Mon, 27 Oct 2025 10:41:01 -0500</pubDate><description>a post about The Last Laptop by mr</description></item><item><title>Cancer</title><link>http://preposter.us/single-michigan-helium-network/cancer.html</link><guid>http://preposter.us/single-michigan-helium-network/cancer.html</guid><pubDate>Wed, 31 Dec 2025 05:12:01 -0600</pubDate><description>a post about Cancer by mr</description></item><item><title>New Year</title><link>http://preposter.us/single-michigan-helium-network/new-year.html</link><guid>http://preposter.us/single-michigan-helium-network/new-year.html</guid><pubDate>Thu, 01 Jan 2026 06:58:25 -0600</pubDate><description>a post about New Year by mr</description></item><item><title>Making circuit boards with a 3018 Mill</title><link>http://preposter.us/single-michigan-helium-network/making-circuit-boards-with-a-3018-mill.html</link><guid>http://preposter.us/single-michigan-helium-network/making-circuit-boards-with-a-3018-mill.html</guid><pubDate>Fri, 02 Jan 2026 08:39:17 -0600</pubDate><description>a post about Making circuit boards with a 3018 Mill by mr</description></item><item><title>New board who dis?</title><link>http://preposter.us/single-michigan-helium-network/new-board-who-dis.html</link><guid>http://preposter.us/single-michigan-helium-network/new-board-who-dis.html</guid><pubDate>Sat, 3 Jan 2026 10:47:21 -0600</pubDate><description>a post about New board who dis? by mr</description></item><item><title>Moar RSS</title><link>http://preposter.us/single-michigan-helium-network/moar-rss.html</link><guid>http://preposter.us/single-michigan-helium-network/moar-rss.html</guid><pubDate>Sun, 04 Jan 2026 15:10:13 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;The point of this post is to test my initial attempt at including the full body of these posts in the RSS feed generated by Preposter.us.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Since I don't have a proper testing environment configured, &lt;i&gt;we're doing it live!&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/77-cray-wires.jpg"&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;If this doesn't work, I'll probably put more effort into setting up such an environment, but I'd love to avoid it as I'd rather spend any energy directect toward Preposter.us into a rewrite.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Dem Bones</title><link>http://preposter.us/single-michigan-helium-network/dem-bones.html</link><guid>http://preposter.us/single-michigan-helium-network/dem-bones.html</guid><pubDate>Mon, 5 Jan 2026 18:49:49 -0600</pubDate><description>
&lt;a href='assets/78-image0.jpeg'&gt;&lt;img src='assets/78-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>Register Duct</title><link>http://preposter.us/single-michigan-helium-network/register-duct.html</link><guid>http://preposter.us/single-michigan-helium-network/register-duct.html</guid><pubDate>Tue, 06 Jan 2026 07:58:28 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;We have a forced-air HVAC system and two of the registers (the hole where the air comes out) are placed almost directly below outside windows. &amp;nbsp;It's helpful to deflect this air away from the cold window in the winter, so we bought some injection-molded plastic adjustable baffles and those worked fine for a couple years.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Last year both of them broke; one salvageable and the other, not.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Instead of just buying more I decided to design some of my own, since it's more fun for me to make things than to buy things, and since I'm custom designing it they can be made to fit just right.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/79-preview.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The basic design is similar to the store-bought models with the difference of being a single piece of plastic and having a complete base instead of having no base on the side where the air comes out. &amp;nbsp;I think both of these changes will make the part a bit stronger than the original.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The other difference is that the new model will be printed in white whereas the original was transparent.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Both are attached to the grate using magnets, but I plan to use somewhat stronger metallic magnets embedded in the printed part as opposed to the flexible kind found on the original unit.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This sort of thing is one of my favorite types of 3D printing, &lt;i&gt;making parts for an old house that fit just right&lt;/i&gt;. &amp;nbsp;It's a subset of &lt;i&gt;making parts that no longer/never did exist&lt;/i&gt;, and it's beautiful.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Jason J. Gullickson, 2026&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Bad Baby Beaver</title><link>http://preposter.us/single-michigan-helium-network/bad-baby-beaver.html</link><guid>http://preposter.us/single-michigan-helium-network/bad-baby-beaver.html</guid><pubDate>Thu, 8 Jan 2026 07:52:55 -0600</pubDate><description>
&lt;a href='assets/80-image0.jpeg'&gt;&lt;img src='assets/80-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>GitPrintable</title><link>http://preposter.us/single-michigan-helium-network/gitprintable.html</link><guid>http://preposter.us/single-michigan-helium-network/gitprintable.html</guid><pubDate>Fri, 9 Jan 2026 00:21:00 -0600</pubDate><description>&lt;html&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;/head&gt;&lt;body dir="auto"&gt;Way back when&amp;nbsp;&lt;a href="https://www.thingiverse.com/"&gt;Thingiverse&lt;/a&gt;&amp;nbsp;was pretty much the only game in town for sharing 3D models for printing. &amp;nbsp;When the printer company that owned it started to do uncool things, the site got uncool as well and a bunch of us who used it started thinking about how important it was to have something like this and how dangerous it was to trust it to a single company.&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There were some experiments in creating something else, but in the end we mostly ended-up with more sites run by different printer companies.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;One of the ideas I had at the time was to make something based on&amp;nbsp;&lt;a href="https://git-scm.com/"&gt;Git&lt;/a&gt;, so that it could be distributed instead of being a single site under the control of a single entity. &amp;nbsp;Of course the extent of most people's experience with Git (if they have any at all) comes from&amp;nbsp;&lt;a href="https://github.com/"&gt;Github&lt;/a&gt;&amp;nbsp;which erases the naturally distributed nature of Git.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I've been revisiting these ideas as of late for various reasons and thinking about what I'd want out of something like this today. &amp;nbsp;Of course what matters to me probably doesn't overlap with the majority of people using 3D printers anymore, but that's OK. &amp;nbsp;You can't please everyone and when you try you often please no one.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When I think about the way I work I often start by "sketching-out" a new design in a so gle&amp;nbsp;&lt;a href="https://openscad.org/"&gt;OpenSCAD&lt;/a&gt;&amp;nbsp;file and either drop it into an existing general-purpose Git repository for models or create a new repo specifically for the project. &amp;nbsp;For me, the least disruptive way to interact with a website for sharing models would simply be to add the site as a git remote and push a branch to it whenever I want to publish or re-publish something, kinda like&amp;nbsp;&lt;a href="https://www.heroku.com/"&gt;Heroku&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The receiving server could then render some HTML based on the contents of the repository and add it to a search index others can use to find models on the site. &amp;nbsp;It could be as simple as that.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If you wanted to get fancy, you could establish some conventions around how the repository is laid-out, placing printable files in a designated directory and design/source files in another, parsing OpenSCAD files to provide parametric customization, etc. &amp;nbsp;You could even parse slicer setting files to create printer profiles for each member and even generate gcode directly. &amp;nbsp;The possibilities are almost endless.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It poses a somewhat high technical barrier for publishers, but for people looking for models it could be as easy as using any other site. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm going to start experimenting with this locally and see how hard it is to get a basic publishing/indexing server running. &amp;nbsp;If I can get that far maybe I'll setup a public server for others to experiment with. &amp;nbsp;I want to retain the distributed nature of git, which I think means mostly providing a means for linking the search index of multiple sites. &amp;nbsp;I have a few ideas for this but exactly how it will work will depend on what I use to implement the index.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</description></item><item><title>Spangly</title><link>http://preposter.us/single-michigan-helium-network/spangly.html</link><guid>http://preposter.us/single-michigan-helium-network/spangly.html</guid><pubDate>Sat, 10 Jan 2026 14:06:44 -0600</pubDate><description>
&lt;a href='assets/82-image0.jpeg'&gt;&lt;img src='assets/82-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>Alpha Bits</title><link>http://preposter.us/single-michigan-helium-network/alpha-bits.html</link><guid>http://preposter.us/single-michigan-helium-network/alpha-bits.html</guid><pubDate>Sun, 11 Jan 2026 15:19:53 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;We do a lot of printing at KGL and over the years we've experimented with using 3D printing to make parts for 2D printing. &amp;nbsp;In the last couple years we've done some 2D printing with LEGO, but didn't find existing LEGO parts that could be used to print text.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So we started by taking a printable brick and trying to turn it into "type".&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Using &lt;a href="https://openscad.org"&gt;OpenSCAD&lt;/a&gt; it was fairly straightforward to take an existing model of a LEGO-compatible part and subtract the letter "A" from it to test the idea. &amp;nbsp;After a print or two, we had something that looked like it might work.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The next step was to 3D print a set so we could 2D print a test sheet. &amp;nbsp;We didn't sweat the details such as alignment, etc. because the goal here was just to see how the transfer worked. &amp;nbsp;If it appeared to have potential, we'd work on refinement next.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Jamie annotated the proof and I took that back to OpenSCAD for refinement.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/83-lego-letter-stamp-feedback.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Since I generated the set algorithmicly I didn't want to tweak the position of each letter by hand. &amp;nbsp;I did some digging and learned about the &lt;a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Text#textmetrics()"&gt;textmetrics() function&lt;/a&gt; which gives you the dimensions (among other things) of the object that will be generated by a given invocation of the &lt;a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Text"&gt;text()&lt;/a&gt; function. &amp;nbsp;With this, it would be fairly straightforward to center each letter on it's LEGO tile.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;However, this function isn't currently available in the release builds of OpenSCAD, so I had to get my hands on a nightly/development-snapshot build. &amp;nbsp;I was kind of dreading this because I've built OpenSCAD from scratch before and at least back then, it wasn't fun.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Fortunately I found that this is no longer needed. &amp;nbsp;You can &lt;a href="https://openscad.org/downloads.html#snapshots"&gt;install it via flatpak&lt;/a&gt; (which is the prefered way to install things on &lt;a href="https://elementary.io/"&gt;ElementaryOS&lt;/a&gt;) and so in a few minutes I was ready to go.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As it turns out I didn't need the textmetrics() function after all. &amp;nbsp;After cleaning-up my code from various experiments I found that simply specifying the alignment of the text manually moved all the letters damn close to center. &amp;nbsp;This is a major improvement, so for now I'm going to leave it as-is until we do another test (2D) print.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/83-lego-2x2-f-r-a.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The other tweak was reducing the height of the part slightly. &amp;nbsp;I don't know if the model we're using is just a little different from the real LEGO part, or if it's a matter of (3D) printing tolerance, but the printed parts were just a little taller than the off-the-shelf parts which is a big deal when (2D) printing something this way. &amp;nbsp;I'm not sure exactly how much we need to shave off, so I created a 0.25mm disc and subtracted it from the top of the part.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Finally, there's one remaining improvement needed. &amp;nbsp;The print bed I used for these has a texture to it, and that texture is visible on the (2D) print. &amp;nbsp;I tried to address this by switching back to the original glass bed on my Ender 5+ (Tony), but this only reminded me of why I stopped using that bed (bad adhesion). &amp;nbsp;So before I print another run of these parts I'm going to pick-up a smooth PEI bed for Tony.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;More to come.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>This Coffee Is Good</title><link>http://preposter.us/single-michigan-helium-network/this-coffee-is-good.html</link><guid>http://preposter.us/single-michigan-helium-network/this-coffee-is-good.html</guid><pubDate>Mon, 12 Jan 2026 07:56:12 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I make my coffee at home with a &lt;a href="https://www.bialetti.com/"&gt;Bialetti&lt;/a&gt; coffeemaker. &amp;nbsp;I tried a "&lt;a href="https://en.wikipedia.org/wiki/Moka_pot"&gt;moka pot&lt;/a&gt;"-style coffeemaker from another brand back in the 90's and found it made strong but bitter and very inconsistent coffee. &amp;nbsp;This turned me off to the moka pot, but my friend Tristan mentioned his Bialetti one day a couple years ago and I decided to give it another try.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/84-bialetti.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm glad I did because the results are excellent, and I haven't looked back once. &amp;nbsp;I still have my vintage Braun on stand-by (I'm afraid to use it daily because it's become something of a collector's item and spare carafes are a fortune), but I've donated every other coffeemaker I had and completely switched to the Bialetti.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I use &lt;a href="https://www.nunatakcoffee.com/collections/frontpage/products/raven-espresso"&gt;Raven Espresso&lt;/a&gt; from our local roaster &lt;a href="https://www.nunatakcoffee.com"&gt;Nunatak Coffee&lt;/a&gt;. &amp;nbsp;I grind this medium-fine in a nice burr grinder I picked-up a few years back and I usually use tap water. &amp;nbsp;The result is a potent but smooth cup, really a half or third "American" cup of coffee, but each sip explodes into gallons of flavor.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I still enjoy regular coffee when I'm out-and-about and of course love a good cappuccino or other concoction when I'm somewhere with a trusted barista, but at home it's always the Bialetti.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The only challenge has been the rare occasion where we have guests who drink coffee too. &amp;nbsp;This almost never happens, but when it does the limited capacity of the Bialetti does mean I spend a lot of time making each cup. &amp;nbsp;This isn't the worst thing that could happen, as it gives me time for a little needed mindfulness when we have company. &amp;nbsp;Also Bialetti coffee, which is similar to espresso, isn't everyone's cup of tea, but I've found cutting it with equal-to-double parts hot water produces something like an Americano which most coffee drinkers find acceptable.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>That Secret Book Project</title><link>http://preposter.us/single-michigan-helium-network/that-secret-book-project.html</link><guid>http://preposter.us/single-michigan-helium-network/that-secret-book-project.html</guid><pubDate>Tue, 13 Jan 2026 14:45:54 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Over winter break I finished the first draft of a book I'm writing about software (and eventually, hardware I guess). &amp;nbsp;I haven't said a lot about it publicly because I want the book to speak for itself.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That said, it's been really hard not talking about something that I've spent so much time working on, so I decided it was OK to talk about writing the book instead of talking about the book itself.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think I started working in earnest back in November of 2025 but the ideas for the book have been percolating for years. &amp;nbsp;Last year I started experimenting with the ideas that would eventually find their way into the book, spurred-on by both other books I'd been reading and conversations with others, Primarily Preston, about programming, about computers and the roller-coaster of working in this field (long before I was even "working"). &amp;nbsp;I took the excuse of NaNoWriMo to force myself to write a little of the book virtually every day in November, and while I didn't complete it by the end of the month, I had enough done that it had enough momentum behind it to carry the work through the first draft.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It was hard to decide what exactly would amount to finishing the first draft. &amp;nbsp;On one hand, I considered it to be whatever it was when I reached the last page, since I deliberately refused to do any editing until the first draft was complete. &amp;nbsp;On the other hand, there's a lot of "holes" left behind from the process of avoiding editing, which means the first draft isn't complete in the sense that someone else could read it from start to finish and know everything that will eventually be in there.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So maybe I cheated? &amp;nbsp;I dunno.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The next task is to decide when the first edit should be complete. &amp;nbsp;I deliberately took a break from the project for a couple weeks to clear my head, but I'm considering setting a deadline for that edit at the end of January 2026 (about two/three weeks). &amp;nbsp;This would normally seem too soon, but I might have some time to write near the end of the month so it's not impossible.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Since I don't know how much work the editing will be, it's hard to say if this is realistic. &amp;nbsp;I suppose I could just treat it like a timebox and consider whatever shape it is at the end of the month to be the first edit. &amp;nbsp;I don't know if there's strict rules for this, I haven't really reached the editing stage of book project before, so this is kind of new. &amp;nbsp;I also don't know how many edits I should expect, but my current plan is to do two edit passes and then produce pre-release edition that I can circulate to a small, diverse group of readers who are willing to help me figure out what might remain before committing to a larger release.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>The Last Linux</title><link>http://preposter.us/single-michigan-helium-network/the-last-linux.html</link><guid>http://preposter.us/single-michigan-helium-network/the-last-linux.html</guid><pubDate>Wed, 14 Jan 2026 07:57:55 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;a href="https://elementary.io/"&gt;ElementaryOS&lt;/a&gt; will probably be the last version (distro, etc.) of Linux (GNU/Linux, yes I know) I use. &amp;nbsp;It is, in my opinion the best Linux for personal computers and while I will run Linux on other things (servers, embedded devices, etc.), Elementary will be the Linux I myself use on a personal computer until I'm done using Linux this way.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't want to seem unappreciative for what Linux and Free Software have done for computing. &amp;nbsp;I'm keenly aware of what it was like before we had a free and open source alternative to proprietary commercial operating systems. &amp;nbsp;But I'm just as familiar with what came before all that, when a personal computer was something you could buy (or build!), for the cost of something like a single car payment, and once you had it you had everything you needed to begin making it into exactly what &lt;b&gt;you&lt;/b&gt; needed. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;My work, when I'm able to choose it, is now focused on resuming that path of personal computing, and I don't see Linux as a part of that. &amp;nbsp;It is simply too big, too complicated and is, let's face it, "owned" by the exact same type of people it was created to free us from in the first place.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It will take time to bring us back on the personal computing path we had before it was appropriated by capitalists in the 80's. &amp;nbsp;In the meantime, ElementaryOS is a fine place to work, made by fine people who understand that personal computers are more about people that computers, and appear (at least to me) to be one of the very few groups of people producing technology at the moment who are not willing to sell-out the people who use their software for some small profit or temporary security.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Seiko SRPG33</title><link>http://preposter.us/single-michigan-helium-network/seiko-srpg33.html</link><guid>http://preposter.us/single-michigan-helium-network/seiko-srpg33.html</guid><pubDate>Thu, 15 Jan 2026 15:24:19 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I decided to start looking for a new mechanical watch when I got fed-up with my &lt;a href="https://support.withings.com/hc/en-us/articles/4406164458385-ScanWatch-Discover-Horizon"&gt;Withings Scanwatch Horizon&lt;/a&gt;. &amp;nbsp;Like many things made today, the Withings is a beautiful piece of hardware crippled by mediocre-to-bad software.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I started by making a wishlist. &amp;nbsp;I knew for sure that I wanted something that didn't need batteries (let alone a smartphone), but I thought a lot about what I really needed from a watch beyond that and came up with this list.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* Self-winding ("Automatic")&lt;/div&gt;&lt;div&gt;* Alarm&lt;/div&gt;&lt;div&gt;* Rotating bezel&lt;/div&gt;&lt;div&gt;* Water resistant&lt;/div&gt;&lt;div&gt;* Numeric dial&lt;/div&gt;&lt;div&gt;* Illuminated hands&lt;/div&gt;&lt;div&gt;* Durable (not a "fashion watch")&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I spent about a year looking for a watch like this with no luck. &amp;nbsp;There was one or two that had these features, but they had a lot more and were very expensive which I felt disqualified them from the "durable" requirement.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This made me reflect on the list and really think about what I need. &amp;nbsp;The first thing to go was the alarm since we have a dog and he's always awake earlier than I need to be.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Next to go was the bezel. &amp;nbsp;This was a harder cut because I really use the heck out of the bezel on the Withings to measure elapsed time, but I just couldn't find a watch that had one that wasn't a "diver's watch" or missing one of the other more important items on the list (usually the numeric dial). &amp;nbsp;Weirdly I found a watch similar to the one I finally settled on that had a rotating bezel but it wasn't for measuring time but orientation. &amp;nbsp;Neat, but I'd rather use a full-blown compass.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;By making those two cuts I was able to find a perfect match in the &lt;a href="https://seikousa.com/products/srpg33"&gt;Seiko SRPG33&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/88-seiko.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Jamie bought me one for xmas, and I have to say that I absolutely love it. &amp;nbsp;It is the first watch I've owned with a NATO band. &amp;nbsp;The band is extremely comfortable and might double as a small tourniquet. &amp;nbsp;The only complaint I have about the band is that due to the way it mounts, it blocks the little window on the back of the watch where you could otherwise marvel at it's clockwork.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The dial is very easy to read even when it's on the nightstand and the illumination is sufficient even for my 50+ year old eyes. &amp;nbsp;It's heavy enough to feel like a quality piece of machinery but light enough to wear comfortably all the time.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I wasn't sure if I'd move enough to keep it wound (especially in the winter), but so far that has not been a problem. &amp;nbsp;I gave the crown a few twists when I first set the time and date and I haven't wound it since. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Speaking of date, the day/date is large and crisp and I especially like how high-contrast it is to the subdued dial. &amp;nbsp;I panicked when I first set it thinking it was a non-English version but as it turns out, it's multilingual. &amp;nbsp;One downside is that so far I haven't had to adjust the date (31 days in December) so hopefully I remember how to set it when we get to the shorter months.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;One minor disappointment is that I thought it might tick. &amp;nbsp;I'm not sure if that would just drive me crazy but I had kind of expected to hear or feel that and thought it might be relaxing. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I haven't tested the water resistance beyond some light splashing (not really the time of year for submersion) but I will say that I prefer the feel of the NATO band when it's wet compared to the metal or leather bands on my other watches.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm glad I took the time to find the right watch. &amp;nbsp;It's something that is very intimate for me, and while I had to forego some features, I think in the end the result is better for it. &amp;nbsp;This probably has influenced my thinking about features in other realms as well, and reinforces for me the joy of simple tools.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>SE/3D 2026</title><link>http://preposter.us/single-michigan-helium-network/se-3d-2026.html</link><guid>http://preposter.us/single-michigan-helium-network/se-3d-2026.html</guid><pubDate>Fri, 16 Jan 2026 10:47:00 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I was going to write more about &lt;a href="https://jasongullickson.com/making-circuit-boards-with-a-3018-mill.html"&gt;making circuit boards using the little CNC mill&lt;/a&gt; today but as I was working on a new board design in KiCAD I got excited about my idea for a tiny, integrated, portable maching for making such things, &lt;a href="https://jasongullickson.com/se-3d-introduction.html"&gt;SE/3D&lt;/a&gt;.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/89-screenshot from 2026-01-16 09.29.32.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;This was the start of today's post, but you can see it has strayed a bit...&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I wrote about SE/3D &lt;strike&gt;last year&lt;/strike&gt; a few years ago, and had hoped I might at least get it working as a 3D printer in time to go to the Midwest Reprap Festival. &amp;nbsp;As usual, I got sidetracked/re-prioritized/etc. and didn't make a lot more progress after that post. &amp;nbsp;Today I'm reinvigorated, partially by doing the sort of work I want to do on such a machine, but probably also due to some beautiful work I've seen lately by people recreating the SE/30, even building completely new machines.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I will admit that part of my passion for the SE/3D design comes from feelings I can't explain about the SE/30. &amp;nbsp;Maybe it's simply nostalgia, but I think there's more to it than that. &amp;nbsp;I didn't own one when it was "contemporary", I only worked on one occasionally while in school (most of my time there was spent inside Boarland Turbo C++ on a 386DX40). &amp;nbsp;Years later I bought one off Ebay and used it to run an Internet site (DNS, Mail, Web) to prove it could be done, but it wasn't something I used for everyday work. &amp;nbsp;Yet I've always been drawn to the machine, the form-factor, the operating system and it's applications...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So there is for sure something "romantic" about my desire to use that same form to build my personal universal fabrication machine.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Something I'm reconsidering for SE/3D is the operating system. &amp;nbsp;By default I had assumed this would be some form of Linux, or maybe something new I create myself, but I'm wondering if in 2026,&amp;nbsp;&lt;a href="https://www.haiku-os.org/"&gt;HaikuOS&lt;/a&gt; might be an option?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I love Haiku, and I think it would be a perfect fit for such a machine, but for a long time the only CPU it worked with was X86, and for many reasons I won't be using an X86 processor in SE/3D. &amp;nbsp;But last year I started hearing that someone is working on getting &lt;a href="https://www.haiku-os.org/blog/kallisti5/2021-11-07_booting_our_risc-v_images/"&gt;Haiku running on RISC-V&lt;/a&gt;, and I just happen to have a nice little RISC-V SBC sitting on the workbench...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If that works, I would be very happy to base the machine on HaikuOS. &amp;nbsp;Many of the tools I rely on in Linux run on Haiku (I don't completely understand how, but I'll take it) so I don't think application software will be a major barrier, and if it is well then I'll have an excuse to play with writing Haiku/BeOS software again I guess...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Downlink 2006-01-16</title><link>http://preposter.us/single-michigan-helium-network/downlink-2006-01-16.html</link><guid>http://preposter.us/single-michigan-helium-network/downlink-2006-01-16.html</guid><pubDate>Fri, 16 Jan 2026 15:26:56 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;"Downlink" was a regular feature of my blog years (decades?) ago. &amp;nbsp;At the end of each week I close things out by posting all the open pages in my browsers. &amp;nbsp;For 2026 I'm going to try to bring it back, assuming I don't forget...&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;(note: some of these may only be reachable from the KGL LAN)&lt;br&gt;&lt;/i&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://3dp.kratzgullicksonlabs.com/?printer=4104c56ab8a91f385eb6019bc277a9d0#/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://flatcam.org/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/mikelachaine/flatcam-2025&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.circuitsnips.com/circuit/rp2350-microcontroller-core-circuitry-bread-modular-2&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.opensubtitles.com/en/subtitles/5695922-x-men-2000-dvdrip-axxo-avi&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.printables.com/model/1234213-cable-spool-holder-gridfinity&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://blog.prusa3d.com/adrian-bowyer_127066/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://pine64.org/documentation/STAR64/_full/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://forum.pine64.org/showthread.php?tid=18276&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.armbian.com/star64/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.bluettipower.com/products/ac200l&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.bluettipower.com/products/b300&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.electricaltechnology.org/2025/12/wire-30a-125v-nema-tt-30-receptacle-rv.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://hackaday.com/2025/01/14/new-frontiers-for-nissan-leaf-motor/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://learn.adafruit.com/esp32-s3-reverse-tft-feather/storage&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://learn.adafruit.com/esp32-s3-reverse-tft-feather/advanced-serial-console-on-linux&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.circuitpython.org/en/latest/shared-bindings/displayio/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.circuitpython.org/en/latest/shared-bindings/terminalio/index.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://learn.adafruit.com/adafruit-max17048-lipoly-liion-fuel-gauge-and-battery-monitor/python-circuitpython&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.circuitpython.org/projects/max1704x/en/latest/api.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Floating_Point_Systems&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://code.kratzgullicksonlabs.com/jason/the-convivial-codeworker/src/branch/main/projects/whom.py&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/elementary/mail&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://theanarchistlibrary.org/library/anonymous-desert&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://commandmasters.com/commands/yt-dlp-common/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/TheRealBolle/SE30&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://tinkerdifferent.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.harborfreight.com/20-gallon-parts-washer-with-high-flow-pump-58679.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.printables.com/model/444111-snail-lamp&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.whambamsystems.com/products/flexi-plate-with-pre-installed-pex-build-surface-377-x-370-creality-ender-5-plus_&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://tonsky.me/blog/tahoe-icons/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://stackoverflow.com/questions/73863407/how-do-i-format-time-in-micropython&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ammoman.com/blog/category/guns-101/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://code.kratzgullicksonlabs.com/jason/cnc_pcb_tools&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.haiku-os.org/blog/kallisti5/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/chrisdiana/TinyCity&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?q=techno-viper&amp;amp;kd=-1&amp;amp;t=epiphany&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ebay.com/sch/i.html?_nkw=techno+viper&amp;amp;_sacat=0&amp;amp;_from=R40&amp;amp;_trksid=p2332490.m570.l1313&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://makertube.net/w/qamYNF1Pqcw7iWrHxVznuC&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://bandcamp.com/the_rectifier&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://learn.adafruit.com/adafruit-si4713-fm-radio-transmitter-with-rds-rdbs-support/python-circuitpython&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/library/framebuf.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/library/asyncio.html#tcp-stream-connections&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/library/machine.ADC.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/library/machine.RTC.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/library/time.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/esp8266/tutorial/ssd1306.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/reference/packages.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/library/machine.html#machine.lightsleep&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://randomnerdtutorials.com/micropython-oled-display-esp32-esp8266/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/stlehmann/micropython-ssd1306&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://raw.githubusercontent.com/micropython/micropython-lib/refs/heads/master/micropython/drivers/display/ssd1306/ssd1306.py&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.fredscave.com/32-micropython-working-with-files.html#opening-a-file&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/dhylands/rshell&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.pythontutorials.net/blog/micropython-repl-run-file/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.geeksforgeeks.org/python/constructors-in-python/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/jjg/t5fyntmbta/tree/main&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://codeberg.org/jjg/cnc3-3018pro&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Axial_flux_motor&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://spectrum.ieee.org/axial-flux-motor&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://cults3d.com/en/3d-model/gadget/axial-flux-motor&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://mecrisp.sourceforge.net/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://pandoc.org/MANUAL.html#pandocs-markdown&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.python.org/3/tutorial/classes.html#a-first-look-at-classes&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://blog.tommy.sh/posts/quick-tip-hone-in-on-the-perfect-fit-with-a-goldilocks-array/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://learn.adafruit.com/circuitpython-text-editor-on-the-go/code-walkthrough&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://oshpark.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.consoleroms.com/roms/sega-genesis/sonic-the-hedgehog/download&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.nature.com/articles/s44184-025-00171-5&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Preferential_attachment&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://mymissionspecific.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ducati.ms/threads/supermono-build.755313/?nested_view=1&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.youtube.com/watch?v=VgEOeogf_cs&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://t0mg.github.io/tinytron/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#section-generic-threading&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://gbppr.net/2600/v42n2-library.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://iffybooks.net/25-projects-in-2025/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.amazon.com/BIQU-Frostbite-235x235mm-Temperature-Removable/dp/B0FG328QPT?s=industrial&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/schollz/croc&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://music.kratzgullicksonlabs.com/web/index.html#!/details?id=26309f0f2892dc96b9adabd3dbbf94f5&amp;amp;serverId=2fa1d671443b466e87f1f55f4955a739&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.youtube.com/watch?v=zc3sPoqOFG8&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.opensubtitles.com/en/subtitles/7469743-jurassic-world&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://us.elegoo.com/cart&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Something New Is happening</title><link>http://preposter.us/single-michigan-helium-network/something-new-is-happening.html</link><guid>http://preposter.us/single-michigan-helium-network/something-new-is-happening.html</guid><pubDate>Sun, 18 Jan 2026 00:55:38 -0600</pubDate><description>
&lt;a href='assets/91-image0.jpeg'&gt;&lt;img src='assets/91-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>The General-Purpose Communicator</title><link>http://preposter.us/single-michigan-helium-network/the-general-purpose-communicator.html</link><guid>http://preposter.us/single-michigan-helium-network/the-general-purpose-communicator.html</guid><pubDate>Mon, 19 Jan 2026 09:46:11 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I think it might be time to create a general-purpose communicator. &amp;nbsp;A as-simple-as-possible device capable of communicating as reliably as possible with other devices like itself as well as ideally other types of communications devices.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There's many things like this, but in my opinion they have unacceptable limitations.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm thinking something based around a &lt;a href="https://en.wikipedia.org/wiki/Software-defined_radio"&gt;software-defined radio&lt;/a&gt; (SDR) so that it can adapt to communicate with most any sort of wireless system. &amp;nbsp;In the most extreme scenarios I think that good-old-fashioned analog voice communications (CB/ham radio, etc.) are always going to hold the line so whatever this is and whatever sort of "digital" capabilities it might provide should be supplemented with the ability to fall-back to these methods of communication.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't know much about SDR, so I don't know how reasonable it is to have a device that can reconfigure itself like this without the need for a full-blown general-purpose computer and the associated software, etc. &amp;nbsp;If possible the ideal would be to make all that's necessary self-contained within the device, but if that means cramming a whole computer with associated screen/keyboard/etc. and the power demands all that places on such a system then I'm not sure that's the way to go. &amp;nbsp;Alternatively if it's possible to store several configurations that have been built in advance that allow the device to reconfigure itself in a self-contained way, that might be good enough.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;On top of the SDR and basic analog voice radio capabilities I'd put some level of digital communication facility as well. &amp;nbsp;If possible this would re-use the SDR hardware for other types of wireless communication (WiFi, etc.) but again I don't know the practical limits of this technology. &amp;nbsp;Digital modes open up the possibility for store-and-forward based networks which have advantages over the "realtime" nature of analog voice comms, and of course there's options for keeping messages more private as well (although I wouldn't recommend relying on this, nothing beats a one-time-pad). &amp;nbsp;Something along the lines of a microcontroller running Micropython should be more than enough for this task and easily fit within any imaginable power budget.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Something that might be helpful is a way to share location information among devices. &amp;nbsp;I'm not sure if this means including a GPS receiver (maybe another thing that the SDR could do?). &amp;nbsp;There's lots of imaginable applications for this but if it adds too much complexity it's not a requirement.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Other nice-to-haves would be a case big enough to house a solar panel capable of topping-up the battery and sturdy enough for field use. &amp;nbsp;Something as large as an old-fashioned Walkie-Talkie handset would be fine for this and provide plenty of room for batteries and excess case material.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Me Mail</title><link>http://preposter.us/single-michigan-helium-network/me-mail.html</link><guid>http://preposter.us/single-michigan-helium-network/me-mail.html</guid><pubDate>Tue, 20 Jan 2026 08:12:06 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;A lot of my "personal workflow" is built around Internet Email. &amp;nbsp;Maybe it's old-fashioned, but I prefer it for a lot of reasons both technical and others.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;However, as email has fallen out of favor the range and quality of email software has decreased. &amp;nbsp;I thought maybe I could personally invest in the ElementaryOS Mail application (potentially in money and labor) but I'm starting to wonder if maybe it's time for me to write my own email client? &amp;nbsp;Doing so would allow me to try a few things that I've always wanted in a mail client, and also means I could build it using whatever tool I want without inheriting a "tech stack", codebase, features I don't want, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The first thing I would do is separate authoring and reading mail so that when I want to write a message I am not first confronted with my inbox. &amp;nbsp;This sort of distraction is exactly the opposite of what I want when I'm trying to initiate a communication, but virtually every piece of communications software works this way.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The next thing I might do is decouple any sort of technical troubleshooting from the authoring process. &amp;nbsp;When I send a message I don't want to be forced to immediately fight with the underlying email system if something goes wrong. &amp;nbsp;Conversely, I want it to be obvious and trivial to dive-into that problem at a later time when I'm up for fighting with it. &amp;nbsp;Most mail programs present a dialog when mail fails to send, and if you don't address the problem immediately, it can be very hard to find your way back after dismissing this message.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Let's consider format for a moment. &amp;nbsp;Both plain text and HTML email should be possible, but both should be cleanly constructed and properly encoded. &amp;nbsp;Working on &lt;a href="https://preposter.us/"&gt;Preposter.us&lt;/a&gt;, I've seen the "raw" form of email messages sent from many clients and the amount of nesting/nasty HTML and missing plain text is a source of frustration for me trying to parse these messages. &amp;nbsp;I might even consider authoring all messages in plain text, and allow markup to be entered directly as HTML tags...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;What else?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Obviously all the cleverness seen in contemporary "email" like Googles gmail are out. &amp;nbsp;No AI (unless you consider spell check to be intelligent), no moving mail around automatically, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Some sort of simple and obvious mechanism for moving any "local" data would be important. &amp;nbsp;I'd prefer to avoid that altogether and keep any "state" in IMAP structures but minimally things like unsent mail might need to be stored locally and therefore should be easy to discover, move to another computer and access there without complex and deliberate export/import tools.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't think I want any anti-spam or other safety/security features in the client itself. &amp;nbsp;I think those things are best left to the mail network. &amp;nbsp;I'm a bit torn about handling inbound HTML email because so many nasty things can be embedded in it. &amp;nbsp;My first thought is to present it raw, and make it easy to open the message in a separate web browser which can more thoroughly implement the various protections needed when opening any HTML content. &amp;nbsp;I think this is both more robust and less redundant than rendering HTML inside the email application.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't know off-hand how I'd go about building this unless I write it as a console/terminal application. &amp;nbsp;If I'm to forgo rendering HTML as described above, this might be an option. &amp;nbsp;I do feel like it would be preferable to have a GUI application when such an interface is available, but right now I don't have a programming environment for GUI applications that I want to work in. &amp;nbsp;I suppose I could start in the console and then re-write for the GUI if something I like comes along.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Phonodex</title><link>http://preposter.us/single-michigan-helium-network/phonodex.html</link><guid>http://preposter.us/single-michigan-helium-network/phonodex.html</guid><pubDate>Wed, 21 Jan 2026 10:36:43 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I have a small collection of vinyl records, but even with a small collection it's hard for me to keep track of what I have, and suffer the tyranny of choice when I'm trying to select something to play.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;With electronic media it's easy to solve these problems, and at one time I started keeping a list of my records so I could at least remember what I have, but that doesn't help me find what I'm looking for.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This inconvenience is compounded by where I store my records, a very nice looking cabinet but low to the ground. &amp;nbsp;Additionally, the spines of the sleeves are often in shadow and hard to read (if they can be read, some of my records are pretty old).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/94-records.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So in addition to some sort of searchable database of albums I need a way to find the one I'm looking for in the physical world.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The idea I came up with is pretty simple, and probably easy to implement but I haven't gotten around to it yet. &amp;nbsp;I want to install a high-density LED strip in the record cabinet on the bottom of the shelf above the records. &amp;nbsp;This strip is then connected to the database software, and when an album is selected in the software, the LED nearest the physical record illuminates.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I doubt there is an LED strip with sufficient "resolution" to illuminate each record on the shelf individually, but that's OK. &amp;nbsp;Even getting close is sufficient to narrow the search enough to quickly select the title.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This of course depends on the physical records being in predictable locations. &amp;nbsp;This is handled by the same mechanism. &amp;nbsp;When a record is selected for play, its marked as "off the shelf", and when it is to be returned, "return it" is selected in the software and the LED indicating the correct position is illuminated. &amp;nbsp;My records are sorted by genre, then alpha by artist and finally by release date. &amp;nbsp;Again even though the LED can't precisely select the location I can place it precisely within the nearby records.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Aside from this basic mode of operation, this automation opens the door for additional modes. &amp;nbsp;For example, a "shuffle" mode could randomly select a record to play (a clever shuffle could keep track of what was listened to any only suggest fresh albums). &amp;nbsp;A "collection" mode could select titles based on various groupings (for example, showing other records by artists on a compilation). &amp;nbsp;The possibilities are somewhat endless.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Implementation-wise there's may ways to actually build this, which is probably why I haven't started yet. &amp;nbsp;The hardware side is pretty simple, although I want to make sure that the selection of the LED strip controller doesn't over-constrain software implementation options. &amp;nbsp;The harder part to decide on is the software side, it could be nothing more than a REST API that other tools talk to, or something using parts of &lt;a href="https://www.home-assistant.io/"&gt;HomeAssistant&lt;/a&gt;, or maybe my primary digital media management software &lt;a href="https://jellyfin.org/"&gt;Jellyfin&lt;/a&gt;. &amp;nbsp;I'm just not exactly sure which way I want to go with it yet.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Friendly Finder</title><link>http://preposter.us/single-michigan-helium-network/friendly-finder.html</link><guid>http://preposter.us/single-michigan-helium-network/friendly-finder.html</guid><pubDate>Thu, 22 Jan 2026 15:42:43 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;WARNING: Potential spoilers for One Battle After Another ahead!&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In the film &lt;a href="https://en.wikipedia.org/wiki/One_Battle_After_Another"&gt;One Battle After Another&lt;/a&gt; the characters use devices to identify people they can trust. &amp;nbsp;I'll try not to give too much away, but the basic idea is that if your device plays a certain tune, you can trust the person you're talking to.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I thought this was a clever idea and wondered if it was based on a real thing. &amp;nbsp;So far I've had no luck finding such a thing.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I put the question to the Fediverse and someone pointed out the similarity to the COVID infection tracking apps from the pandemic. &amp;nbsp;This reminded me that I had already designed a device like this and got me thinking maybe it could be "refactored" to serve this new purpose.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Sadly, I'm unable to find a repository for that project. &amp;nbsp;It might have been mixed-into some other general-purpose repo, or worse some random "projects" folder that wasn't checked into source control.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That's OK, because I remember the basics of the hardware (it was based on a particular ESP32 dev board) and chances are the firmware was probably obsolete by now anyway. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So how might this work? &amp;nbsp;If I start from the ESP32, it seems logical that the radio communication be Bluetooth (probably BLE). &amp;nbsp;I don't remember exactly how BLE works but I seem to recall that a device can scan for other devices and get a list of MACs (or some other physical address), so this might be a basis of trust, if these addresses are stored in a "trusty" list on each parties device.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This probably isn't enough to establish trust since these things can likely be faked, but it might serve as a first step in establishing that (and also avoid having conversations with every toaster and dishwasher in the room). &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So if the address is on your list, maybe you exchange a message with a key, and the other does the same, and if they match a "lock" on the other's side, we start to think this person might be OK.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But I think there needs to be something more, something that isn't entirely contained in the device lest someone simply steal the device and appear trusted.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In the film I think there was a verbal password exchange. &amp;nbsp;This is probably sufficient, but I feel like it's kind of risky because it relies on human memory, which at least in my case has limits, especially in times of stress.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>(a little) Power to the People</title><link>http://preposter.us/single-michigan-helium-network/a-little-power-to-the-people.html</link><guid>http://preposter.us/single-michigan-helium-network/a-little-power-to-the-people.html</guid><pubDate>Fri, 23 Jan 2026 09:42:47 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;A couple years ago we decided to give our parents small Bluetti "solar generators" for xmas. &amp;nbsp;At the time I'm not sure they really saw the value in it. &amp;nbsp;We said "just leave it plugged-in and if the power goes out you can use it to charge your phone and run some lights".&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The motivation for these gifts came from talking to my cousins who live in North Carolina about their experience during a hurricane. &amp;nbsp;They live in the mountains and were not terribly impacted directly by the storm, but their power was out as well as any land-based communications. &amp;nbsp;They wanted to keep in touch to let people know they were OK, and stay abreast of developments with the recovery efforts in the valley. &amp;nbsp;Their phones worked, but because modern phones suck, they ran out of battery power within 24 hours. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;They were also without electric light and heat, but most of these folks have candles and wood stoves so that wasn't the problem it otherwise might have been.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So people like them in the mountains drove down into the valley to charge their phones and see what was going on and in the process go caught-up in the disaster.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Hearing these stories I realized that while these small "solar generators" would not provide complete standby power for a household, they could easily provide power to keep phones running for days (some weeks) as well as provide electricity for other niceties like lights, tools and other things. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In my cousin's case, this would have made a huge difference.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So we decided to get some of these units for our folks, the &lt;a href="https://www.bluettipower.com/products/ac2a?variant=44389797789915"&gt;smallest unit Bluetti made at the time&lt;/a&gt; (we chose Bluetti because we have some and are familiar with how to use them) and figured worst case they wouldn't need it, but if they liked them they could always add more capacity, or add solar panels, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Two or so years passed and I more or less forgot about all this, but then I got a text from my mom this morning with a photo of the little unit with an electric blanket and her phone plugged into it. &amp;nbsp;She said that she was so excited because the power went out and she got a chance to try this thing out.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Bear in mind that this morning it is -18F here, and loosing power under these condition would normally be terrifying, but here she is appreciating it because it gave her a chance to appreciate a gift from years ago.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;You might expect this story to have a point, and maybe it does, but I don't have a specific one in mind. &amp;nbsp;It just made me really happy to see that this made her happy, kept her a little safer and turned something that might have been scary into something fun. &amp;nbsp;I think there are ways to make scary things fun, and a little preparedness is often a part of that.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Downlink 2006-01-24</title><link>http://preposter.us/single-michigan-helium-network/downlink-2006-01-24.html</link><guid>http://preposter.us/single-michigan-helium-network/downlink-2006-01-24.html</guid><pubDate>Sat, 24 Jan 2026 11:13:51 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;i&gt;A day late because yesterday was an arctic adventure.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* https://www.bluettipower.com/products/ac2a?variant=46297958416603&lt;/div&gt;&lt;div&gt;* https://sendcutsend.com/&lt;/div&gt;&lt;div&gt;* https://www.police1.com/legal/articles/the-castle-doctrine-and-indianas-controversial-new-law-FRxbimuYLTKSgBFB/&lt;/div&gt;&lt;div&gt;* https://www.grievelaw.com/wisconsingun/laws/castledoctrineexplained/&lt;/div&gt;&lt;div&gt;* https://app.leg.wa.gov/rcw/default.aspx?cite=9A.16.110&lt;/div&gt;&lt;div&gt;* https://blog.adafruit.com/2026/01/22/autodesk-burns-the-village-to-feed-ai-and-the-cloud-cuts-7-of-workforce/&lt;/div&gt;&lt;div&gt;* https://www.theguardian.com/commentisfree/2026/jan/21/ice-minnesota-trump&lt;/div&gt;&lt;div&gt;* https://bsky.app/profile/margaret.bsky.social/post/3mcyca2lhmy2j&lt;/div&gt;&lt;div&gt;* https://crimethinc.com/2026/01/21/from-rapid-response-to-revolutionary-social-change-the-potential-of-the-rapid-response-networks&lt;/div&gt;&lt;div&gt;* https://en.wikipedia.org/wiki/Family_Radio_Service&lt;/div&gt;&lt;div&gt;* https://risingsun4x4club.org/xf/threads/frs-base-station.29672/&lt;/div&gt;&lt;div&gt;* http://code.kratzgullicksonlabs.com/&lt;/div&gt;&lt;div&gt;* https://en.wikipedia.org/wiki/One_Battle_After_Another&lt;/div&gt;&lt;div&gt;* https://palmettostatearmory.com/1000-rounds-of-pmc-bronze-9mm-fmj-124-grain-ammo.htm&lt;/div&gt;&lt;div&gt;* https://www.investigativepost.org/2026/01/16/buffalo-mayor-to-ban-city-cooperation-with-ice-others/&lt;/div&gt;&lt;div&gt;* https://en.wikipedia.org/wiki/Transponder&lt;/div&gt;&lt;div&gt;* http://www.runoffgroove.com/littlegem.html&lt;/div&gt;&lt;div&gt;* https://github.com/miguelgrinberg/microdot&lt;/div&gt;&lt;div&gt;* https://en.wikipedia.org/wiki/Modern_technique#External_links&lt;/div&gt;&lt;div&gt;* https://f3d.app/&lt;/div&gt;&lt;div&gt;* http://3dp.kratzgullicksonlabs.com/?printer=8ce580623bed8e5f9fe2b7a43c0179e4#/&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Another Project</title><link>http://preposter.us/single-michigan-helium-network/another-project.html</link><guid>http://preposter.us/single-michigan-helium-network/another-project.html</guid><pubDate>Sun, 25 Jan 2026 18:28:37 -0600</pubDate><description>&lt;html&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=us-ascii"&gt;&lt;/head&gt;&lt;body dir="auto"&gt;&lt;img alt="image0.jpeg" src="assets/98-image0.jpeg"&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</description></item><item><title>The KGL Multidimensional Print Shop</title><link>http://preposter.us/single-michigan-helium-network/the-kgl-multidimensional-print-shop.html</link><guid>http://preposter.us/single-michigan-helium-network/the-kgl-multidimensional-print-shop.html</guid><pubDate>Mon, 26 Jan 2026 18:47:25 -0600</pubDate><description>&lt;html&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=us-ascii"&gt;&lt;/head&gt;&lt;body dir="auto"&gt;To celebrate Jamie &amp;amp; I's 25th anniversary we decided to get a space for our printing activities. &amp;nbsp;At KGLMPS we'll be working with printing technologies that span centuries.&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt="image0.jpeg" src="assets/99-image0.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Now seemed like a good time to do this.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'll have a lot more to say about this soon.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</description></item><item><title>The Interenet Is Slow</title><link>http://preposter.us/single-michigan-helium-network/the-interenet-is-slow.html</link><guid>http://preposter.us/single-michigan-helium-network/the-interenet-is-slow.html</guid><pubDate>Tue, 27 Jan 2026 07:56:19 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;The Internet isn't slow, but it often &lt;i&gt;feels&lt;/i&gt; slow because websites are slow.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Websites are slow because... well I honestly don't know all the reasons but I do know how they are slow, and I know they don't have to be. &amp;nbsp;Allow me to show you.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Search&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Searching the web is probably one of the fastest of the slow websites. &amp;nbsp;The results are somewhat fast, but finding what you want might not be. &amp;nbsp;Most contemporary "search engines" are not search engines at all but "suggestion engines", or more honestly "marketing engines". &amp;nbsp;They will make it easy and quick to find what they want you to find, what makes the the most money, but if what you really want is something else, you will have to work for it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A fast search website would quickly connect you with what you asked for and nothing you didn't ask for. &amp;nbsp;This involves asking in a more specific way, but you'll find that once you're used to it finding what you're actually looking for is so much quicker and so much less distracting that you'll wonder how you ever tolerated using the marketing engine to find things.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Shopping&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Online shopping, when it's serving the interest of the shopper is really a specialized subset of Search, and a shopping experience which builds on the person-orientation of the search engine described above feels much faster than what we're used to now. &amp;nbsp;It requires far less software and therefore far less hardware than contemporary shopping websites therefore reducing operating costs and at least theoretically reducing the costs of goods.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Some will say that there is value to shopping that isn't "laser-focused" on immediately finding exactly what you're looking for, and perhaps this is true. &amp;nbsp;However I don't think it's good to add drag to people who are shopping for what they need just to make the experience more valuable to those who are shopping as a form of entertainment itself. &amp;nbsp;Separating these activities would allow people to complete the needful tasks with minimum time and expense, and I think it could improve the "shopping as entertainment" activity as well if it were carried-out in a way divorced from shopping for necessities.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;Let's get technical for a moment...&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;A transactional, relational database is the ideal tool for building an online store. &amp;nbsp;A catalog of products from a collection of vendors selected by a list of customers integrated through purchase transactions, it's hard to thing of a better use for an RDBMS. &amp;nbsp;Several performant RDBMS's are available and the best in my opinion is &lt;a href="https://www.postgresql.org/"&gt;PostgreSQL&lt;/a&gt;.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A PostgreSQL database housing the data can be made interactive with a fairly simple web application written only in &lt;a href="https://en.wikipedia.org/wiki/HTML"&gt;HTML&lt;/a&gt; and &lt;a href="https://www.php.net/"&gt;PHP&lt;/a&gt;. &amp;nbsp;It could amount to perhaps as few as six pages. &amp;nbsp;For the customer: &lt;i&gt;Catalog&lt;/i&gt;, &lt;i&gt;Cart&lt;/i&gt;, &lt;i&gt;Orders&lt;/i&gt; and &lt;i&gt;Account&lt;/i&gt;; for the Shopkeeper: &lt;i&gt;Orders&lt;/i&gt; and &lt;i&gt;Customers&lt;/i&gt;. &amp;nbsp;These pages could be served using the &lt;a href="inx.org/en/"&gt;NGINX&lt;/a&gt; web server, and the entire thing could run with an average sub-second response time with a catalog of thousands of items on a server the equivalent of a &lt;a href="https://www.raspberrypi.com/"&gt;Raspberry Pi&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Media/Entertainment&lt;/b&gt;&lt;/div&gt;&lt;div&gt;This might seems like a challenging thing to make fast, but those of you who know me know that this is an area where I've done some of my best work. &amp;nbsp;A media website, be it music, videos, photos or what have you can be another simple database coupled with a large-capacity storage system and a means of conforming the stored media to the needs of the web browser reproducing them (this is often called "transcoding"). &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As always we start with PostgreSQL to store the data, mostly "metadata" (information about the media) but also typical "account" information for the people using the website, their relationship to the media files and perhaps albums/playlists/etc. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;To interact with this data I propose three pages: &lt;i&gt;Account&lt;/i&gt;, &lt;i&gt;Collection&lt;/i&gt; and &lt;i&gt;Search&lt;/i&gt;. &amp;nbsp;There may be a need for an "administrator" interface, but I don't want to jump to that conclusion.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Socializing&lt;/b&gt;&lt;/div&gt;&lt;div&gt;As of late my belief is that online systems whose primary purpose is social interaction were a mistake, so I don't really want to help make more of them. &amp;nbsp;Some might consider this a cop-out and argue that there's something about online social networks that requires complex software and large, scalable infrastructure that would make them incompatible with the rest of the systems described here. &amp;nbsp;I of course disagree, and one need only look at the size and scope of the &lt;a href="https://en.wikipedia.org/wiki/Fediverse"&gt;Fediverse&lt;/a&gt; for an example.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The Fediverse runs on software capable of good performance on the Raspberry Pi-scale hardware I'm using for these examples, and I think compatible software could be written even leaner than what's out there today (although I could be wrong, there are some pretty extreme examples already). &amp;nbsp;So I won't pursue an example here, but when I build the rest of the software described in this post, maybe I'll throw it in just for fun.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Reference&lt;/b&gt;&lt;/div&gt;&lt;div&gt;By reference I'm referring to storing, locating, retrieving and maintaining finished documents. &amp;nbsp;This is distinct from more dynamic systems where change is constant but there is some overlap.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This sort of system is one where an RDBMS like PostgreSQL doesn't make a lot of sense, and historically consumes more resources than simply serving the documents from disk. &amp;nbsp;So what I propose here is a hybrid, which uses PostgreSQL for any necessary administrative data, and perhaps as a search index (although I'm not completely sure about that) and then uses a standard filesystem the documents. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The more I think about this one, the more I think it might just be another form of Media. &amp;nbsp;I'm going to leave this here for now and consider combining those two.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Banking&lt;/b&gt;&lt;/div&gt;&lt;div&gt;What do we want out of online banking? &amp;nbsp;To check account balances, to view transactions, to transfer money between accounts and perhaps manage account information or other "metadata".&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This is another choice application for an RDBMS. &amp;nbsp;Most banks don't actually use their websites or apps to directly manipulate account data (that is done by more trustworthy systems) so most of the data stored in the website's database will be limited to what's needed to display the pages, authenticate members, etc. &amp;nbsp;Perhaps this database will be used as a "caching" layer between the website and the real back-end systems to limit their workloads, but for the most part what's needed to provide a fast banking website is simple.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Four pages: &lt;i&gt;Accounts&lt;/i&gt; (the bank kind like checking, savings, etc.), &lt;i&gt;Transactions&lt;/i&gt;, &lt;i&gt;Statements&lt;/i&gt; and &lt;i&gt;Account&lt;/i&gt; (the website kind). &amp;nbsp;For the bankers I can see three pages: &lt;i&gt;Customers&lt;/i&gt;, &lt;i&gt;Accounts&lt;/i&gt; and &lt;i&gt;Transactions&lt;/i&gt;. &amp;nbsp;I don't know much about being a banker, but here again I imagine the "real" banking stuff will be handled within the real back-end system.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;What Else?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;There are probably billions of websites, and while I think the categories above cover a lot of them I'm sure there's other types that I've overlooked. &amp;nbsp;If I add "personal websites" to the list, I think this list covers most of the websites I use on a daily basis, so I think it's a good start. &amp;nbsp;That said, if there's something important that I left out that doesn't roughly fit into one of the categories above, let me know and I'll think about it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What I want to do next is implement working examples of each type of website described above running on hardware equivalent of a Raspberry Pi and see if I can prove that they can be fast. &amp;nbsp;I've got more ideas to follow, but one step at a time.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Online Social Networks with a Purpose</title><link>http://preposter.us/single-michigan-helium-network/online-social-networks-with-a-purpose.html</link><guid>http://preposter.us/single-michigan-helium-network/online-social-networks-with-a-purpose.html</guid><pubDate>Wed, 28 Jan 2026 08:03:33 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Yesterday while I was writing about rewriting the web, I kind of glossed-over (online) social networks because I thought they did more harm than good. &amp;nbsp;I qualified this by referring specifically to websites with no purpose other than socializing. &amp;nbsp;I gave that more thought overnight and I'd like to explore it a bit further because I think there's some good that can come of it.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I often draw an analogy between Facebook and "the bar nobody likes but everyone can agree on". &amp;nbsp;This is more of an explanation as to why anybody continues to use Facebook, but the bar analogy is interesting in the context of places of social intercourse and purpose.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;Note:&lt;/b&gt; Feel free to substitute "bar" with coffeeshop, bowling alley, shopping mall or any other physical location where people meet that has a purpose other than being only a place for people to meet.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Where the bar analogy falls-down as a comparison to Facebook is that a bar has a purpose: &lt;b&gt;to sell hooch&lt;/b&gt;. &amp;nbsp;People congregate, meet, become friends, start fights, share experiences and all sorts of other things at the bar, but the bar would cease to exist if it wasn't able to make money selling drinks.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Having a purpose also constrains who you might be socializing with. &amp;nbsp;People in any bar are either: people who like alcoholic drinks or people who are friends with people who like alcoholic drinks. &amp;nbsp;In many cases the filtering is even more specific, selecting for a specific range of drinks (beers vs. cocktails), activities (watching sports, playing pool, etc.) and atmosphere. &amp;nbsp;This "pre-selection" process matters as it increases the potential for compatibility between patrons as well as reducing the chances of conflict.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think this purpose is &lt;i&gt;critical&lt;/i&gt;, and explains why such online meeting places become toxic when they have no &lt;b&gt;obvious&amp;nbsp;and visible&lt;/b&gt; purpose.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Don't get me wrong, I know Facebook has a purpose in this sense, one that pays the bills, but it's never been honest and up-front about this purpose because if it had, nobody would have ever walked through the front door. &amp;nbsp;Facebook's purpose is to spy on the people who go there, and it stays in business by selling the information about you that it secretly gathers. &amp;nbsp;Would you go to a bar if there was a sign on the door that said:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;"Drinks are free so long as you give us permission to sell everything about you and your friends to people who want to take everything you have, your mind, body, soul and treasure, many of which want to imprison or kill you"&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I wouldn't, and I don't think most people would.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But that's Facebook's purpose, and how Facebook pays the bills. &amp;nbsp;The same is essentially true for all websites whose only purpose is to be a "social network", it appears to be the best way to cover the costs of running a singular planet-scale site.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Contrast this to websites that serve a more obvious purpose in addition to being a place to hang-out. &amp;nbsp;Special-interest forums, for example, can become "spicy" but general the conflicts tend to self-correct when everyone involved remembers why they are there in the first place (a common interest). &amp;nbsp;These conflicts are at times severe, and occasionally do fracture personal relationships but as far as I know they have never led to the installation of fascist dictators or the fall of democracy.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;At least not yet.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;All this is to say that I don't think online spaces for socialization are harmful or worthless. &amp;nbsp;I myself have benefited greatly from such spaces, but when I reflect on something close to four decades of interacting with people in cyberspace the good ones have always been places that had a purpose other than simple congregating people for not other reason than congregating them, and the absolute best have been where we were working together on something to benefit the common good.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>ghost.town</title><link>http://preposter.us/single-michigan-helium-network/ghost-town.html</link><guid>http://preposter.us/single-michigan-helium-network/ghost-town.html</guid><pubDate>Thu, 29 Jan 2026 07:57:16 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Somewhere around the end of the 1990's a friend told me a story about someone having a conversation with their email autoresponder. &amp;nbsp;As the story goes, my friend gave somone his email address one night when he was on vacation. &amp;nbsp;When he returned from the trip a week later, he found a series of emails from this person, the first sent the day after he shared his email address. &amp;nbsp;The amusing part was that when his autoresponder responded to the first email, the other person responded to this response without realizing that it was a machine. &amp;nbsp;Bizzarely this process repeated several times before the person on the other end finally figured out what was going on.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This got me thinking: given the great volumes of correspondence stored in an email archive, could an autoreponder mine this data to produce an even more convincing, perhaps even useful response?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What I came-up with was a simple algorithm that would examine the inbound message and then piece-together a response by searching for similarities in previous email conversations (of which Gmail users had years worth of stored in an "archive" folder by then). &amp;nbsp;This resembled what would now be called a &lt;a href="https://en.wikipedia.org/wiki/Markov_chain"&gt;Markov Chain&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I never built this, not for any particular reason other than I didn't think the results would be useful beyond being amusing.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Over the years I revisited the idea and considered it in different contexts. &amp;nbsp;The most intriguing to me was the idea of ingesting historical correspondence to generate theoretical replies to contemporary questions from historical figures. &amp;nbsp;Again I didn't pursue it, because it seemed to be distasteful, as it felt like waking the dead.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Of course today something like this would be trivial to implement using an &lt;a href="https://en.wikipedia.org/wiki/Large_language_model"&gt;LLM&lt;/a&gt; trained on the letters and other communications. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This leads to a very weird thought: what if you created a number of such creatures, perhaps hundreds or thousands and gave them their own social network in which to communicate with each other?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The network would be composed of such "digital ghosts" only, no interaction with the living (although the living could observe). &amp;nbsp;It would, of course require some "stimulation" as such models do not normally engage in spontaneous action, but it's not hard to imagine how to simulate the type of stimulus one of these individuals might experience in the physical realm (reading a newspaper, consuming a meal, etc.). &amp;nbsp;With an appropriate set of stimuli applied to each entity on a regular basis a steady stream of emissions would be fed into the network.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Like any social network these ghosts would have "friend/follow" relationships, resulting in the output of one being fed into the input of others, resulting in a continuous cascade of conversation. &amp;nbsp;Some relationships might be "seeded" (for example, I'm sure that Thomas Jefferson would follow Ben Franklin) and others might happen organically through network interactions.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;One thing I'm not sure about is allowing the output of each ghost to be fed back to itself as input, allowing it to evolve. &amp;nbsp;This seems like a reasonable step, but also, these are ghosts, and maybe they should stop learning after death.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Like the other ideas in this train of thought I'm never going to build this. &amp;nbsp;The most obvious reason is that &lt;a href="https://jasongullickson.com/dr-strangellm-or-how-i-learned-to-stop-worrying-and-love-the-bomb.html"&gt;I find LLM's abhorrent&lt;/a&gt;. &amp;nbsp;There's probably lots of other reasons these ideas are bad as well, otherwise why wouldn't I have realized them in the past? &amp;nbsp;Regardless of my own personal reasons, I respect that nature has a reason for creating us to die, and far be it for me to second-guess her judgment.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>CybreCredit</title><link>http://preposter.us/single-michigan-helium-network/cybrecredit.html</link><guid>http://preposter.us/single-michigan-helium-network/cybrecredit.html</guid><pubDate>Fri, 30 Jan 2026 07:09:16 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Ever since I wrote &lt;a href="https://jasongullickson.com/the-interenet-is-slow.html"&gt;that post about making the web fast&lt;/a&gt; I've been running thought experiments for the various websites I described and for many of them there is a shared keystone: the banking site.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In the original post I assumed that a banking site would be a thin veneer over the top of an existing, traditional, banking system but when I started thinking about building some of the other websites I found that I need a way to provide that banking function and I don't happen to operate a bank that I can "skin" with a website and electronic interface.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So I started thinking about how I would implement such a thing "from scratch", and came-up with &lt;b&gt;CybreCredit&lt;/b&gt;. &amp;nbsp;The most obvious way for me to describe it is to walk-through the process of using it, so here we go...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;To begin, you visit the website of a CybreCredit branch and enter your email address. &amp;nbsp;You'll receive an email with a link you can click to log-in.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;This email-based, passwordless authentication is used throughout all of the websites I'll be describing in this series. &amp;nbsp;I hate passwords, and authentication itself is something I want to eliminate as much as possible and the only complication I can see to this mechanism is handling email address changes smoothly.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Since this is your first time logging-in a new account will be created for you with a &lt;a href="https://en.wikipedia.org/wiki/Monopoly_(game)"&gt;$200.00&lt;/a&gt; credit limit. &amp;nbsp;You'll be prompted to enter a PIN which will you'll be required to present for any transaction that places a charge against your account. &amp;nbsp;Once you select a PIN you'll be taken to the Transactions page. &amp;nbsp;This page displays your remaining credit at the top along with a list of transactions for the current month. &amp;nbsp;It also contains a "New" button you can use to create a new transaction for things like sending money to a friend, transferring funds to another account, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Selecting a transaction from the transaction list displays the Transaction Detail page which includes the transaction date, amount, account the transaction was made with and detailed information about the transaction provided by the person or system who created it. &amp;nbsp;This page also includes a "Dispute" button that can be used to challenge transactions that you're not sure about (transactions can only be disputed during the month in which they take place, after that they are permanent).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In addition to the Transaction List and Transaction Detail pages there is an Account page where you can provide additional details about yourself as well as download statements and find information about to paying-off your balance.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;At this point you're ready to buy some things!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When you visit an ecommerce site and make a purchase, you need only provide:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* Your CyberCredit account name (branchname@your.email@yourdomain.com)&lt;/div&gt;&lt;div&gt;* Your PIN&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The ecommerce site will then process the sale like so:&lt;/div&gt;&lt;div&gt;1. Check your available credit to make sure you have enough for the purchase&lt;/div&gt;&lt;div&gt;2. Fulfill the purchase&amp;nbsp;&lt;/div&gt;&lt;div&gt;3. Charge the final purchase amount against your account&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Steps 1 and 2 are simple &lt;a href="https://en.wikipedia.org/wiki/REST"&gt;REST&lt;/a&gt;-style HTTP requests against the branch's CybreCredit API. &amp;nbsp;Two requests are needed in case something goes wrong during the fulfillment process to prevent getting charged for something that wasn't delivered, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The final transaction amount will include a 1% transaction fee that goes to an account owned by the branch. &amp;nbsp;CybreCredit doesn't charge interest because &lt;a href="https://en.wikipedia.org/wiki/Usury"&gt;charging interest is a sin&lt;/a&gt;, so operating costs are covered by a simple, flat fee applied to all transactions. &amp;nbsp;Whether this is presented as a fee to the buyer or "baked-in" to the price of goods is up to the vendor's discretion, but it will always be 1% forever.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Back at the branch, the requests are displayed as a transaction in the transaction list. &amp;nbsp;Only one transaction is displayed as the initial "auth" request will be replaced by the actual charge request once it's completed.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Once a month all transactions are rolled-up into a statement that is available for download from the Account page and the transaction list is cleared. &amp;nbsp;After the statement is generated you'll get an email indicating that the statement is available and a request to pay your outstanding balance. &amp;nbsp;There is no penalty for unpaid balances other than the fact that the balance is carried-over into the next month, reducing the available credit. &amp;nbsp;Each time you pay-off the balance, your credit limit will be increased by the amount of the payment.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I find this interest-free/debt-oriented approach interesting because it allows people to dip their toes into the system without having to invest any real currency. &amp;nbsp;You can try things out with little risk beyond spending some of your time. &amp;nbsp;It is a little tricky because of course there is a high likelihood that accounts will accumulate debt that is never paid-off, but as far as I can tell it's only ever the branch's problem (buyers get their goods, sellers get their payment) and by keeping the initial credit limit fixed and somewhat low the risk is somewhat predictable. &amp;nbsp;This, coupled with the fact that I imagine at least the early shopping experiences in this experiment will be digital goods with at least potentially zero costs after producing the first unit make the whole gamble somewhat safe (I think).&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;How do you pay-off your balance? &amp;nbsp;The simplest way is to remit a payment to the branch in whatever currency they accept. &amp;nbsp;Another way is to provide services to other members who compensate you by transferring funds to your account. &amp;nbsp;You could also open an ecommerce site and sell products.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;"just open an ecommerce site" might sound like I'm ignoring the significance of the cost of such an endeavor but I have some ideas about how to make that a lot more accessible that I'll talk more about in a future post about &lt;b&gt;CybreMall&lt;/b&gt;.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The last thing I'll mention about CybreCredit in this post is branches. &amp;nbsp;In order to keep scale in check, the system is designed so that the size of a given server is limited. &amp;nbsp;I'm not exactly sure what this limit is yet but it will be a matter of how many accounts or transactions-per-minute the reference hardware can reliably sustain. &amp;nbsp;My &lt;a href="https://en.wikipedia.org/wiki/Scientific_wild-ass_guess"&gt;SWAG&lt;/a&gt; is 1000 accounts. &amp;nbsp;So CybreCredit is designed to work in a distributed fashion, and by including the branch name in account names it's fairly simple to determine which branch should process a given transaction. &amp;nbsp;Exactly how two branches coordinate such a transfer is something I need to think about more (I have a few ideas but I want to simulate things a bit more), but this allows the system to grow without a huge up-front investment and reduces the "blast radius" of outages or failures.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I must admit that this kind of feels like it might be illegal, or at least be subject to some sort of regulation, but on the other hand I don't see how it's any different from the "in-game" currencies used by things like Fortnite or any other game in which you can buy in-game credit using meat-world currency. &amp;nbsp;For now I'm not going to worry about it because at this point it's all theoretical, but if someone knows more about this than I do I'd love to hear from them.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Downlink 2026-01-30</title><link>http://preposter.us/single-michigan-helium-network/downlink-2026-01-30.html</link><guid>http://preposter.us/single-michigan-helium-network/downlink-2026-01-30.html</guid><pubDate>Fri, 30 Jan 2026 07:17:16 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;i&gt;Damn I just noticed I totally butchered the title of the last Downlink... I need to pay more attention to what I'm doing...&lt;/i&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://jasongullickson.com/downlink-2006-01-24.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.reddit.com/r/turntables/comments/1d7060j/teac_tn180_or_audio_technica_atlp60x/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://teacusa.com/products/tn-180bt-a3-turntable&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?q=AT-LP60X&amp;amp;kd=-1&amp;amp;t=epiphany&amp;amp;ia=shopping&amp;amp;iax=shopping&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.turntablelab.com/products/teac-tn-180bt-semi-automatic-turntable-w-bluetooth-cherry&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.turntablelab.com/search?options%5Bprefix%5D=last&amp;amp;q=AT-LP60X&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://pypi.org/project/printguard/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://lithub.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://mplsintheblind.org/posts/2026-01-26/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.php.net/manual/en/install.unix.debian.php&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://stackoverflow.com/questions/19674456/run-postgresql-queries-from-the-command-line&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.w3tutorials.net/blog/systemd-start-service-at-boot-time-after-network-is-really-up-for-wol-purpose/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html?__goaway_challenge=meta-refresh&amp;amp;__goaway_id=a05dffc318a6f60efffeb7d6b93b654b&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://stackoverflow.com/questions/58577325/how-to-automatically-restart-systemd-service-on-failure&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://bandcamp.com/the_rectifier&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://3dp.kratzgullicksonlabs.com/?printer=8ce580623bed8e5f9fe2b7a43c0179e4#/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://code.kratzgullicksonlabs.com/jason/universal-combat&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://mainframe.kratzgullicksonlabs.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.youtube.com/watch?v=efozROpM-vE&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://kyoshoamerica.com/rccar/miniz/mini-z%20awd%20subaru%20impreza%20wrc%202008%20readyset%2032657wr.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://cults3d.com/en/3d-model/game/subaru-alcyone-svx-hamzaf3d&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://cults3d.com/en/3d-model/various/subaru-svx-pre-supported&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://cults3d.com/en/3d-model/art/96-subaru-svx-acylone-miniz-xmod-body-shell&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://cults3d.com/en/users/printinghub/received-makes&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://cults3d.com/en/3d-model/game/subaru-svx-1992-printable-car-in-separate-parts&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://cults3d.com/en/3d-model/game/subaru-svx-gauderio&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://cults3d.com/en/3d-model/home/subaru-svx-wheels-shop&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://cults3d.com/en/search?q=subaru%20svx&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>31 days, 31 posts</title><link>http://preposter.us/single-michigan-helium-network/31-days-31-posts.html</link><guid>http://preposter.us/single-michigan-helium-network/31-days-31-posts.html</guid><pubDate>Sat, 31 Jan 2026 14:23:52 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Sometime near the end for 2025 I was talking with Jamie about how there's nowhere to go on the Web to learn about new or cool things or to find inspiration without being bombarded by the hellish state of the world. &amp;nbsp;Don't get me wrong, we both understand the importance of being aware of these things, but we also deeply value consent, and sometimes you need to learn about something cool without having &lt;a href="https://www.cnn.com/2026/01/31/politics/new-documents-trump-epstein"&gt;Donald Trump forced down your throat&lt;/a&gt; so you can rechage your batteries and have capacity to do constructive things about what is happening to us all.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So at the end of December I decided that I would try to write at least one post per day in January, and they would all be something fun or cool or at least constructive. &amp;nbsp;There were a few days where it was impossible for me to say anything positive, so I doubled-up on other days to reach the final count of 31.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Today I'm writing this from downtown Beaver Dam rom what I refer to as The Kratz-Gullickson Laboratories Multi-Dimensional Print Shop (KGLMDPS). &amp;nbsp;I'm surrounded by ways to print things: a &lt;a href="https://www.provisionalpress.com/"&gt;Provisional Press&lt;/a&gt; making &lt;a href="https://www.lego.com/en-us"&gt;Lego&lt;/a&gt; prints, a &lt;a href="https://www.speedballart.com/product/woodzilla-presses/"&gt;Woodzilla&lt;/a&gt; press making lino prints, an &lt;a href="https://calliger.com/"&gt;old-fashioned washing mangle&lt;/a&gt; making... I'm not sure what to call them but also a photocopier, a &lt;a href="https://www.creality.com/products/ender-5-plus-3d-printer"&gt;Creality Ender 5+&lt;/a&gt;&amp;nbsp;3D printer and soon an &lt;a href="https://us.elegoo.com/pages/elegoo-orangestorm-giga"&gt;OrangeStorm Giga&lt;/a&gt; (once I can get some help moving it out of the lab...). &amp;nbsp;It's an eclectic mix of old and new, well-defined and hybrid processes and all of it creative and invigorating.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/105-signal-2026-01-31-141126.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This is a commercial space, smack dab in the middle of downtown and it really hit me today what a difference it makes to be working in a place where you can walk to everything you need. &amp;nbsp;At home we are walking distance from some essentials, and overall Beaver Dam is a small enough town that you can get around on foot for the most part, but being right downtown is different.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/105-img_9100.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Just across the atrium is &lt;a href="https://www.bonesinjars.com/"&gt;Bones in Jars&lt;/a&gt; (we're in the same building), across the street is my favorite book and antique store (the same place I scored a nice set of &lt;a href="https://www.hifi-classic.net/review/advent-baby-440.html"&gt;Baby Advents&lt;/a&gt; and learned how to re-foam loudspeakers), next door to that is our friend's shop knitting supply shop &lt;a href="https://fireflyfibers.com/"&gt;Firefly Fibers&lt;/a&gt;, then a Mexican grocery and around the corner is our indie bookstore &lt;a href="https://rosaleebooksbd.com/"&gt;Rosalie Book Boutique&lt;/a&gt;, &lt;a href="https://www.oogabrewing.com/"&gt;Ooga Brewing Company&lt;/a&gt;, &lt;a href="https://www.nunatakcoffee.com/"&gt;Nunatak Coffee&lt;/a&gt;, the list goes on.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There's also a lovely river walk and a small park on the corner just downstream from the dam, and even on winter days like this there's locals and visitors strolling the walks. &amp;nbsp;Yesterday there was a vigil/protest for the victims and against the occupation of ICE and all of this is food for creative thought. &amp;nbsp;It's not hard to think about things we can do in our little space to help everyone.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>The Garbage Movie</title><link>http://preposter.us/single-michigan-helium-network/the-garbage-movie.html</link><guid>http://preposter.us/single-michigan-helium-network/the-garbage-movie.html</guid><pubDate>Sun, 01 Feb 2026 08:41:36 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;This morning I was talking with Wes about how what I love about making art films is that it removes most of the barriers that get in the way when making non-art films. &amp;nbsp;I remarked that even the budget and equipment barriers are gone now because you could literally&lt;i&gt; dig through the garbage and find the equipment you need&lt;/i&gt; to meet the minimum criteria for an art film: &lt;b&gt;moving pictures&lt;/b&gt;.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Then the though occurred that you could not only get the equipment for free from the trash, but you could probably get people to &lt;i&gt;pay you to take it&lt;/i&gt;. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The idea is this:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Setup an e-waste collection event that requires a payment of $5 per piece of e-waste. &amp;nbsp;Only accept e-waste that includes the things you need to shoot the film (cameras, computers, monitors, lights, etc.). &amp;nbsp;Announce this via some form of online thing (Craigslist, Facebook Marketplace, etc.) and run it for a half a day or whatever it takes to get the equipment you need. &amp;nbsp;By the end of the day you'll have not only the gear you need to shoot but a budget as well. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Open-source software plays a big role in this, because virtually any junk computers can run the software you need to edit, mix, master and release a digital film. &amp;nbsp;This would have not been possible if you had to somehow pay for the software you need to install on the garbage computers. &amp;nbsp;It also allows you to use footage captured on virtually any available camera, write the script, print the cue cards, make movie posters, master DVD's, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Bonus points&lt;/b&gt;, film the e-waste event itself as a documentary to show other filmmakers how it's done; maybe write a book, or perhaps even begin a new filmmaking movement.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Double-bonus points&lt;/b&gt; if you actually shoot the film you set-out to shoot in the first place.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;We'll give this a shot sometime in the future, but if you decide to give this a try I would love to hear about it and promote your project.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>White Fire</title><link>http://preposter.us/single-michigan-helium-network/white-fire.html</link><guid>http://preposter.us/single-michigan-helium-network/white-fire.html</guid><pubDate>Mon, 02 Feb 2026 07:47:41 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;I was going to start a new tradition of posting a song on the first of each month, but then I forgot about that yesterday.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Better late than never.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;a href="https://jasontiffany.bandcamp.com/"&gt;Jason Tiffany&lt;/a&gt;, 2020&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


&lt;audio controls&gt;&lt;source src='assets/107-white-fire.mp3'&gt;&lt;/audio&gt;</description></item><item><title>jmail</title><link>http://preposter.us/single-michigan-helium-network/jmail.html</link><guid>http://preposter.us/single-michigan-helium-network/jmail.html</guid><pubDate>Tue, 03 Feb 2026 07:25:59 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Yesterday I was reaching-out to an old friend who I've lost contact with over the last few years. &amp;nbsp;Our primary method of contact was Facebook, and I've since been locked-out, so that was that. &amp;nbsp;Then I was listening to some of his music and realized I might be able to contact him via Bandcamp, and sent him a message.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I didn't hear back, and I have no way of knowing if it's because his contact info at Bandcamp is out-of-date, or maybe he doesn't want to write me back, or maybe he sent me an email and it was eaten by the beast...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This got me thinking about how much I wish Internet email still worked. &amp;nbsp;I've complained about this a million times so I won't go deep into it again, but tl;dr Google destroyed it with Gmail.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There are of course other ways to communicate electronically but they are all so fractured and incompatible and faction-developing and hardware-intensive that there's still nothing like Internet email used to be: universal, usable from anywhere, on virtually any computer or device, across the shittiest of networks, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I could propose creating something new to take its place, but how would that be any different from all the other things I just complained about in the previous paragraph? &amp;nbsp;I guess I could make a list and check it off...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* Works on virtually anything&lt;/div&gt;&lt;div&gt;* Works over even the shittiest network&lt;/div&gt;&lt;div&gt;* Universal (should probably define this more)&lt;/div&gt;&lt;div&gt;* Compatible despite factions&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Let's start at the top&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Works on virtually anything&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Whatever this is, it needs to have low enough hardware requirements that it can work on anything. &amp;nbsp;What does that mean? &amp;nbsp;Right off the top of my head the best fit I can think of for that is Micropython, since it has both incredibly low hardware requirements and enough features to write a network application. &amp;nbsp;That's still a higher than ideal bar (not likely to work on 8-bit micros... I don't think at least) but it's pretty low, and should work on most of the things that people connect to the Internet these days.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Works over even the shittest network&lt;/b&gt;&lt;/div&gt;&lt;div&gt;To me this means compact messages (in terms of data size), possibly "chunkable" (so the whole thing doesn't need to be delivered at once) and probably a store-and-forward network so messages can "hopscotch" their way across the network even when connectivity is intermittent. &amp;nbsp;This is how Internet email originally worked (and maybe does to some extent still, but I don't think so). &amp;nbsp;It's also how Meshtastic works (although I'm not sure it uses any sort of "chunking"). &amp;nbsp;Meshtastic might seem like exactly what I'm looking for but it fails a number of the other criteria because it always requires some specialized hardware even if you use it with a "commodity" device*. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What I have in mind would be designed for TCP/IP networks, at least initially, but it would be smart to keep alternatives in mind so that it's easy to add support for other networks, or at least easily create "bridges" that could allow messages to traverse other types of networks or transports**.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Universal&lt;/b&gt;&lt;/div&gt;&lt;div&gt;What I mean by this is the ability to send messages to other people regardless of choices like computer and phone brands, operating systems or even "client applications". &amp;nbsp;For example Signal is great, but you can't send messages to people using Signal from anything but Signal, which means you can only use devices Signal supports. &amp;nbsp;This limits the use of Signal to a prescribed set of devices, and leaves you at the mercy of Signal's developers to keep things up-to-date, to implement Signal in a way that's reasonable for you, etc. &amp;nbsp;Consider Internet email on the other hand: there's a million different email clients and they could all sent messages to one-another (back when most people used Internet email). &amp;nbsp;Part of this is designing a "protocol" that can be implemented by anyone, and part of it is including a universal addressing scheme to direct messages in a way that isn't tied to a specific piece of client, server or networking.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Compatible despite factions&lt;/b&gt;&lt;/div&gt;&lt;div&gt;This is somewhat addressed by using a public, shared protocol as described above, but it might need to go further than that. &amp;nbsp;The purpose of this requirement is to design the system in a way so that it can't be co-opted by one person or one company the way that Google co-opted Internet email. &amp;nbsp;This might be the hardest requirement because it can't simply be designed to defend against a known threat but must anticipate potential future threats to sovereignty of the system. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't have a perfect answer to this off the top of my head, but making it easy to make clients and other software that are compatible with the protocol might go a long way to "outrun" anyone trying to capture the system, and actively avoiding "profit centers" (ways to make money off controlling the system) might help as well. &amp;nbsp;Keeping the resource requirements low might help as well, because if it's easy to use the system yourself then you're less likely to want to delegate that to some third party. &amp;nbsp;Other conveniences like keeping spam and other abuses at bay might help as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Solution Time!&lt;/b&gt;&lt;/div&gt;&lt;div&gt;One possible system could be built on JSFS federation. &amp;nbsp;Messages are composed however you like and POSTed to a local JSFS instance at the JSFS address of the recipient:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;POST http://localhost:7301/.com.jasongullickson/inbox/&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The local instance attempts to push the jnode change and message data as jblocks to its' known peers. &amp;nbsp;If this fails due to the network being down or the peers being unreachable, it retries***.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;JSFS authentication, federation (especially propagation) has been discussed in detail elsewhere, so I won't go into much more detail than this here.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;On the recipient side, the client polls the "inbox" at whatever frequency the person running the client feels is appropriate. &amp;nbsp;Since it's polling against another local JSFS instance, polling frequency has no impact on the network.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;GET http://localhost:7301/.com.jasongullickson/inbox&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Is it really that simple? &amp;nbsp;Let's work the list&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;[X] Works on virtually anything&lt;/b&gt;&lt;/div&gt;&lt;div&gt;A Micropython implementation of JSFS with federation is in the works, which as discussed earlier would run on almost any piece of hardware with network capabilities. &amp;nbsp;A client capable of sending and receiving messages in the way described above using such a JSFS instance is easily within the capabilities of being realized in Micropython as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;[X] Works over even the shittiest network&lt;/b&gt;&lt;/div&gt;&lt;div&gt;JSFS federation natively provides store-and-forward functionality which should be suitable for any type of network connectivity no matter how intermittent, and the block-orientation of JSFS storage (as well as deduplication) should function well even over high-latency and low-bandwidth networks as well as fast, always-on connections.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;[X] Universal&lt;/b&gt;&lt;/div&gt;&lt;div&gt;JSFS addresses do not depend on any external infrastructure for resolution. &amp;nbsp;They bear a resemblance to DNS names (and are compatible with them), but by no means are they dependent on DNS. &amp;nbsp;JSFS federation automatically circulates the jnode structures which are used by JSFS to resolve addresses to data in the form of jblocks, and anything capable of running a JSFS instance can participate in the network.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;[?] Compatible despite factions&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Certainly the proposed implementation traverses factorization in the form of device or operating system fractures, but I'm not sure exactly how it repels other types of attack on the network. &amp;nbsp;I think by running locally via Micropython the technical and administrative overhead is low enough to avoid the trap of delegating this to a corporation, and given the meager resources needed to run a functional communications system (even large message size and volume would be fairly reasonable by contemporary hardware and networks) things like "free hosting" traditionally used to capture systems like this have less appeal.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The big hole I see is any active form of defending against abuse. &amp;nbsp;It seems like I've solved this to some degree before with JSFS but I don't recall the details off-hand. &amp;nbsp;This would need to be addressed if this solution is going to be resistant to companies or other entities which would use providing these features as a way to compel people to delegate hosting, etc. to a third party.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;What's Next(tm)?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;I think I've made a reasonable case for using JSFS to build a new communications system to provide a means of communication akin to that we once enjoyed via Internet email. &amp;nbsp;I still don't think it's quite as good (if nothing else it won't solve the problem for existing devices that only support Internet email) but it addresses all of the things that I personally find limiting about other electronic forms of communication.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Given this I think it's worth experimenting with. &amp;nbsp;First I will need to complete the implementation of JSFS with federation for Micropython, but after that a simple proof-of-concept should be fairly straightforward to construct.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* I could certainly be ignorant to things about Meshtastic that invalidate this claim.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;** Technically, a store-and-forward system would allow for lots of physical transports since a node could store a message in one physical location and then travel physically to a different location to connect to a separate network and forward the message, essentially a physical transport or "automatic sneakernet".&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;*** How long it retries could be client-selected, or a network default or both, I haven't thought it through enough yet to say for sure what's best.&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Universal Combat</title><link>http://preposter.us/single-michigan-helium-network/universal-combat.html</link><guid>http://preposter.us/single-michigan-helium-network/universal-combat.html</guid><pubDate>Wed, 04 Feb 2026 06:18:46 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I think we've all wondered at one point or another &lt;i&gt;"Who would win a fight between X and Y?"&lt;/i&gt;. &amp;nbsp;&lt;b&gt;Universal Combat &lt;/b&gt;is a computer game that simulates a fight between any two combatants*&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The game is text-based. &amp;nbsp;The player can select from a number of pre-defined combatants or add new ones by filling out a simple form.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The form consists of the following questions:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* Name&lt;/div&gt;&lt;div&gt;* Pronoun (how they announcer will refer to them if not by name)&lt;/div&gt;&lt;div&gt;* How strong are they compared to an average human?&lt;/div&gt;&lt;div&gt;* How smart are they compared to an average human?&lt;/div&gt;&lt;div&gt;* How emotional are they compared to an average human?&lt;/div&gt;&lt;div&gt;* Are they an inanimate object?&lt;/div&gt;&lt;div&gt;* When were they born/created?&lt;/div&gt;&lt;div&gt;* List some of their parts (optional)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Some of this is self-explanatory but I'll go into detail about a few of them.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The "stats" (strength, smarts and emotion) are expressed as a multiple of the combatants traits compared to an average human. &amp;nbsp;For example, an average human has a strength of 1, so a heavyweight boxer might have a strength of 1.8 or 2. &amp;nbsp;A human's level of emotion is 1, a brick's level of emotion is maybe -10. &amp;nbsp;These are not intended to be precise and the person adding the combatant to the game shouldn't stress over it too much. &amp;nbsp;If all else fails use the weight of the new combatant relative to the weight of an average human for its strength.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Combatants can be inanimate objects just as in real life you can fight a brick. &amp;nbsp;The brick won't fight back, but if you keep punching it you'll certainly get hurt, and if you keep going, chances are you won't win.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Parts is a list of parts that will be used to describe the fight in more detail. &amp;nbsp;It's entirely optional as the announcer can simply say &lt;i&gt;"Joan Rivers punches the chair"&lt;/i&gt;, but it's more fun if to say &lt;i&gt;"Joan Rivers uses her hand to hit the chair on the seat"&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'll point out that these fights are entirely hand-to-hand and while you could certainly add something like a Sherman Tank as a combatant, it will just sit there and do nothing since you can't combine it with a tank pilot to make it do something. &amp;nbsp;You can also create an Army Sniper combatant but during the fight they will not be a thousand yards away with a rifle but standing next to their opponent in the arena with little more than perhaps gloved hands.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As you may have gathered the fight is described blow-by-blow in a way that resembles a radio broadcast of a boxing match or football game. &amp;nbsp;Combat happens second-by-second and the action of the combatants happens simultaneously as in a real fight (as opposed to turn-based with some sort of initiative determining who goes first). &amp;nbsp;The combat algorythm determines who strikes when and how and what the effects are. &amp;nbsp;A fight ends when one combatant is physically destroyed or so emotionally devastated that they loose the will to fight.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The algorithm is not random and the outcome of each fight is deterministic, but not necessarily predictable. &amp;nbsp;I'm not going to give it all away yet because I don't want to spoil the fun, but what I'll say is that it doesn't involve "rolling dice" like other simulations and uses something that I think it unique in the realm of combat simulation or role playing games.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* ...and maybe more?&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>The Digital Bug-Out Box</title><link>http://preposter.us/single-michigan-helium-network/the-digital-bug-out-box.html</link><guid>http://preposter.us/single-michigan-helium-network/the-digital-bug-out-box.html</guid><pubDate>Thu, 05 Feb 2026 07:20:59 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;i&gt;I could have sworn that I've written about this before, but looking back over the posts in this blog, I don't see it....&lt;/i&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Most people have a fire safe for their important papers where they keep things like passports, titles, diplomas, small valuables, irreplaceable photos and family memories etc. &amp;nbsp;These are often small boxes that are designed to survive a fire and can easily be taken with you should you need to suddenly leave your home due to some emergency.n&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The &lt;b&gt;Digital Bug-Out Box&lt;/b&gt; (DBOB) is a version of this for your electronic valuables. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Think about how many of the things you hold dear or depend on exist in electronic form. &amp;nbsp;Photos, home movies, financial statements, medical information, etc. &amp;nbsp;What would happen to these things if you suddenly had to leave your house, apartment, etc.? &amp;nbsp;Maybe some of these things are in "the cloud", but I think all of us are starting to doubt trusting cloud providers completely to take care of our precious, personal or private information.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Beyond these obvious things, there's a lot of other data we cherish and depend on. &amp;nbsp;Music collections, books, films, personal projects and even video games often exist now online in the form of electronic files.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Imagine if you could have something like a fire safe that automatically kept these electronic things safe.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This idea came to me when I was using a Raspberry Pi to monitor one of my Bluetti solar generators. &amp;nbsp;It was awkward having the little computer board just sort of dangling off one of the USB ports of the Bluetti for power, and I thought that maybe there's enough room inside the case to cram it inside there. &amp;nbsp;Once I thought about this, I realized that if I crammed the Raspberry Pi inside the case, I would have a self-contained, portable general-purpose computer or "server" that could be used when the power goes out or taken almost anywhere. &amp;nbsp;So I started thinking about what I might do with such a thing and the idea of using it to preserve precious electronic files was born.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Since then I've experimented with designs that go much further than simply slapping two off-the-shelf components together. &amp;nbsp;The current design is modular, allowing the amount of backup power, storage and computing resources to be customized to some degree. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The most basic configuration consists of a roughly 300Wh of standby capacity, DC output via USB-A and C, 100W solar charging input and maybe an inverter for AC output (I'm not 100% sure this is worth it). &amp;nbsp;On the compute side a single board computer with a multicore RISC-V processor with WiFi and Bluetooth connectivity and 1TB of redundant storage would be standard. &amp;nbsp;Physically, the device resembles a large lunchbox or small cooler with a sturdy case and an integrated handle. &amp;nbsp;Weight is around 15lbs depending on exactly what components are used. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I've considered making it fire-resistant but there are some very hard problems combining useful levels of fire resistance with a device that has electrical and radio connections, so for now I'm setting that aside. &amp;nbsp;If there is a demand for it, a variant could be designed that provides fire resistance perhaps at the cost of loosing some connectivity options.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Under normal conditions the device works similar to a &lt;a href="https://en.wikipedia.org/wiki/Network-attached_storage"&gt;NAS&lt;/a&gt;. &amp;nbsp;While atached to utility power, it maintains it's internal charge and connects to the local WiFi network. &amp;nbsp;To other devices on the network it looks like a regular storage device (a network drive), and a "client" application is available that can be installed on computers and phones to automatically back them up to the device.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In addition to simple file storage, the device also appears as a network printer. &amp;nbsp;When you print to the device, it stores the document as a PDF. &amp;nbsp;This allows virtually any type of information to be stored on the device in format that can later be read by almost any type of computer. &amp;nbsp;These files can be accessed directly via the network drive, or though a web-based search interface hosted by the device. &amp;nbsp;The device also provides other web-based applications for viewing photos, watching videos and listening to music. &amp;nbsp;It's possible to provide other applications although I'm cautious about this because the applications must be written to run efficiently, otherwise they could jeopardize the primary utility of the device.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When the power goes out, or when you have to hit the road, the device can provide it's own WiFi network you can connect to. &amp;nbsp;Once connected, you can continue to use the device just like before.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I've considered some additional functionality as well that would allow these devices to work together. &amp;nbsp;It's not hard to imagine a scenario where several groups of people come together with these devices and could benefit from being able to share resources and/or expand their network coverage across a larger area. &amp;nbsp;So long as measures are taken to ensure the privacy of personal data, there's no reason this sort of collaboration couldn't be part of the system, and I have several designs in mind for implementing just such a thing.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When time allows I'll complete a prototype unit and do some field testing. &amp;nbsp;Personally, I think the most challenging part for me is creating the device and os-specific client software since I long ago gave-up mobile device application development. &amp;nbsp;I'd like to think there is some "universal" application interace I could target to develop these programs, but given that they will, by their nature, need access to most of the data on the devices I don't think that's an option. &amp;nbsp;The network filesharing and "printer" interfaces for storing files on the DBOB could cover a lot of this, but they require conscious effort on the part of the person using it and that feels less than ideal for a device that is intended to be as helpful as possible in an emergency.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Stone Soupercomputer II</title><link>http://preposter.us/single-michigan-helium-network/stone-soupercomputer-ii.html</link><guid>http://preposter.us/single-michigan-helium-network/stone-soupercomputer-ii.html</guid><pubDate>Fri, 06 Feb 2026 07:13:30 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;The &lt;a href="https://en.wikipedia.org/wiki/Stone_Soupercomputer"&gt;Stone Soupuercomputer&lt;/a&gt; was an early &lt;a href="https://en.wikipedia.org/wiki/Beowulf_cluster"&gt;Beowulf-class&lt;/a&gt; cluster assembled from whatever way laying-around. &amp;nbsp;It's name is a reference to the story about a &lt;a href="https://en.wikipedia.org/wiki/Stone_soup"&gt;soup made from a stone&lt;/a&gt; (and whatever else the village had available). &amp;nbsp;At the time, the primary motivation for creating this system was a lack of budget, but since then it's also been a way to make hardware that would otherwise be destined for the dump useful again.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I built a similar system out of scrap machines in the 90's when I was working as a consultant and it not only taught me a lot about high-performance computing, it also ran a few practical applications at speeds higher than any of the single high-end servers we had at the time.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Over the year's I've experimented with building various HPC clusters, perhaps the largest of my own was an 8-node, 32-core machine built out of discarded &lt;a href="https://support.hpe.com/connect/s/product?language=en_US&amp;amp;kmpmoid=1121486&amp;amp;tab=driversAndSoftware"&gt;G5 ProLiant DL360&lt;/a&gt;'s.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The downside to these scrap supercomputers is primarily the cost to operate them. &amp;nbsp;Older hardware tends to be less energy-efficient, which tends to add-up when you start building clusters. &amp;nbsp;For example, that DL320-based system could theoretically pull about 6KW running at full speed, and idled around 1KW. &amp;nbsp;When we were using this system to &lt;a href="https://foldingathome.org/diseases/infectious-diseases/covid-19/"&gt;help find a vaccine for COVID-19&lt;/a&gt;, my utility bills doubled.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I have &lt;a href="https://hackaday.com/2018/03/21/everyone-needs-a-personal-supercomputer/"&gt;experimented with using ARM&lt;/a&gt; and other lower-power machines but that gets into the real of "new" hardware, which defeats the purpose of the Stone Soupercomputer. &amp;nbsp;Not only this, these devices are simply not as well-made as discarded workstations or enterprise equipment and while the old machines tend to have slower processors our outdated GPU's, etc. they are often equipped with good amounts of RAM and solid I/O subsystems, both key to high-performance applications.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;After talking with my friend Matt (and the the fediverse) about the trade-offs of designing &amp;amp; building new laptops vs. reviving old ones, I started to think about ways to use old hardware in general, and specifically how I might make a cluster built from older, less energy-efficient hardware use less power.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Here's what I've come-up with so far:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Modern Software&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Contemporary Linux distros provide a lot more in the way of power management than the old versions did. &amp;nbsp;Some energy-efficiency gains could be had simply by upgrading the operating system on these old machines and putting some work into tuning these settings. &amp;nbsp;There may be limits due to older machines having less hardware support for power management, but I think you could knock the numbers down a bit just by spending time tuning the software.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Coordinate software power management with workload scheduling&lt;/div&gt;&lt;div&gt;The way clusters like this are used is very different from how you use a personal computer or even a server. &amp;nbsp;They tend to run large, scheduled jobs that run for a long time. &amp;nbsp;To do this they employ cluster management software that keeps track of the overall system's capacity, health and schedules where the individual tasks that make-up the overall job will run.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Normally power management software has to "guess" when you will need the most power from your computer but on a supercomputing cluster this is usually well-known in advance. &amp;nbsp;Minimally we can assume that if the job scheduler doesn't have a job running, the system can essentially be "parked". &amp;nbsp;This knowlege could be used to put nodes in the cluster to sleep or even turn them completely off (if it's possible to wake them back up again from the scheduler). &amp;nbsp;Given that these jobs run for days or weeks, the small amount of latency associated with booting-up a node won't have a large impact on the overall time the job takes. &amp;nbsp;At the other end of the job, nodes can be powered-off as the work for the job winds-down, and there may be even more efficiency to be found in how the work is structured.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;For example: a large simulation might distribute "chunks" of the world being simulated to each node in the network. &amp;nbsp;As these nodes complete their work they might write-out the results to their local disk, where at the end of the job the results are collected and collated. &amp;nbsp;If instead each node moved it's output to a central location, it could power-down sooner than it could if it had to wait until the entire job was complete.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There are countless ways to optimize hardware utilization when it is an objective in designing HPC workloads. &amp;nbsp;Much of the software in this space (not only the jobs themselves but the infrastructure software) is designed for an always-on environment, so I think there's a lot of room for improvement here.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;External Power Management&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Building on the last section, what about hardware that can't turn itself off, or be turned back on by the scheduler? For this I'm imagining simple software-controlled outlets that can physically remove power from the nodes (or even other equiptment like switches) in the cluster. &amp;nbsp;Versions of this capable of handling 15A are very inexpensive and can be controlled via a simple REST interface. &amp;nbsp;Most bring the additional advantage of providing power useage data, so it would be possible to know exactly how much electricity is being used.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The scheduler could use these outlets to coordinate safely shutting-down equiptment with removing power altogether, allowing the cluster to idle-down to amost zero energy use. &amp;nbsp;Even machines capable of wake-on-lan can't reach zero.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Another option is to involve a standby power source that can be controlled by the scheduler. &amp;nbsp;Aside from preventing work from being lost during power outages, even an off-the-shelf Bluetti power station could be used to enhance power management.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For example, such a device could intelligently switch between running the cluster on grid power to battery power to "time shift" drawing power from the grid to times when demand is lower. &amp;nbsp;This not only reduces the cost of electricity but could also be used to draw power when renewable energy is most avaliable.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Another option is to add solar panels to the mix and power the cluster directly from the sun when it's available.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A third way that a device like this could be helpful is by allowing "oversubscription" of a lower-power circuit by the cluster. &amp;nbsp;For jobs that the scheduler knows won't last longer than the available standby power, the cluster could draw more amps from the battery than the circuit supplying it would allow. &amp;nbsp;For example, if the power station has a 10KWh capacity, it could deliver 2KW to the cluster for for a five hours job even if it's fed by a 15A (1800W) circuit. &amp;nbsp;The power station can do this because it can "backfill" the additional power from the energy stored in the battery, then replenish this after the job is complete. &amp;nbsp;The net energy consumed is the same but by allowing a lower-power circuit to be used the cluster can operate in more common environments and possibly from lower-energy sources like solar, wind, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Coordination with HVAC&lt;/b&gt;&lt;/div&gt;&lt;div&gt;The last thing I'll mention is that net energy use could be lowered by coordinating the clusters activities with broader environmental effects related to heating and air conditioning. &amp;nbsp;The most obvious form of this is offsetting the need for heating a space by reclaiming the heat generated by the cluster. &amp;nbsp;To a degree this happens automatically as a thermostat will turn a furnace on less often if the cluster is heating the air in the same room. &amp;nbsp;A step further would design the system such that the heat from the cluster is more evenly distributed (perhaps vented into the intake side of a forced-air heating system) and ensuring that the thermostat is able to take this secondary heat generation into consideration.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A more advanced form of this might more directly integrate the HVAC with the cluster. &amp;nbsp;For example, consider a liquid-cooled system that places it's radiator in the HVAC system stream or maybe even integrates in a direct way with a heatpump system to re-use the existing plumbing. &amp;nbsp;It's not hard to imagine how the heat differentials produced in a predictable way by such a system might be used to offset energy use elsewhere in the broader system.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Another option is to move that heat outdoors, in climates where outdoor temperatures are low enough to make a difference. &amp;nbsp;The bluntest way to do this would be to move the cluster to a non-climate-controlled space outdoors in the winter, but it's not hard to imagine slightly more convenient ways to accomplish the same thing.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;What's Next(tm)?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;This is just a few things that came to mind when I started to reconsider using old hardware again. &amp;nbsp;I've used these things most of my life but at some point I stopped because I thought the ecological impact of increased energy use justified discarding the old equipment in favor of new hardware and new designs. &amp;nbsp;But now I'm reconsidering this, because there is simply a lot of this old stuff around, and while it is recycled to some degree, there's still a lot of waste.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This is compounded by the processes used to create new things. &amp;nbsp;A friend who worked at a scrap yard referred to it as an "above-ground mine". &amp;nbsp;She often mused about how wasteful it is in terms of both finance and life to dig metals out of the ground when all the metal we'd ever need has already been dug up, refined and is now sitting on the ground waiting to be used.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Maybe the same applies to computing hardware. &amp;nbsp;Maybe all the compute we'll ever really need has already been made, and we simply need to find ways to re-use it? &amp;nbsp;I think reviving The Stone Soupercomputer as a proof of concept is one way I can help test this theory.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Downlink 2026-02-06</title><link>http://preposter.us/single-michigan-helium-network/downlink-2026-02-06.html</link><guid>http://preposter.us/single-michigan-helium-network/downlink-2026-02-06.html</guid><pubDate>Fri, 06 Feb 2026 07:20:41 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;i&gt;Right day, right title this time!&lt;/i&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.turntablelab.com/products/teac-tn-180bt-semi-automatic-turntable-w-bluetooth-cherry&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://pine64.org/documentation/STAR64/_full/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#module-threaded_rod&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/BelfrySCAD/BOSL2/wiki/constants.scad#constant-slop&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.turntablelab.com/collections/portable-turntables/products/audio-technica-at-sb727-sound-burger-turntable?variant=40264679653466&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.turntablelab.com/search?q=The+Dead+Milkmen&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?q=10t85+microswitch+metal+roller+right+angle+spdt&amp;amp;iar=images&amp;amp;kd=-1&amp;amp;t=epiphany&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?q=robie+sr+robot+omnibot&amp;amp;kd=-1&amp;amp;t=epiphany&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://omnibot2k.com/omnibot/omniinfo.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://omnibot2k.shop/index.php?main_page=index&amp;amp;cPath=3&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Omnibot&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://daboodesigns.com/collections/robotics&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://www.theoldrobots.com/zpr.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?q=unaibomber%5C&amp;amp;t=epiphany&amp;amp;kd=-1&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Network-attached_storage&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?q=omnibot+tape+programming&amp;amp;t=epiphany&amp;amp;kd=-1&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.theoldrobots.com/prog2.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/jkoets/robot-tape-command&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://code.kratzgullicksonlabs.com/jason/robot-tape-command/src/branch/main/USER_GUIDE.md&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/charmbracelet/wish&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://codeberg.org/jjg/viperboard&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://store.micro-swiss.com/products/micro-swiss-ng-revo-direct-drive-extruder-for-creality-ender-5?_pos=4&amp;amp;_sid=138a5f672&amp;amp;_ss=r&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?q=e3d+revo+parts&amp;amp;t=epiphany&amp;amp;kd=-1&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?q=e3d+revo+parts&amp;amp;t=epiphany&amp;amp;kd=-1&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.filastruder.com/products/revo-cr-heatercore?_pos=19&amp;amp;_sid=63a8bada9&amp;amp;_ss=r&amp;amp;variant=39740011184199&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.filastruder.com/products/e3d-revo-sprite-for-creality-printers-heatercore?_pos=57&amp;amp;_sid=63a8bada9&amp;amp;_ss=r&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Stone_Soupercomputer&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Beowulf_cluster&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?q=proliant+dl360+g5&amp;amp;kd=-1&amp;amp;t=epiphany&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://foldingathome.org/diseases/infectious-diseases/covid-19/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://hackaday.com/2018/03/21/everyone-needs-a-personal-supercomputer/&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Early Birthday</title><link>http://preposter.us/single-michigan-helium-network/early-birthday.html</link><guid>http://preposter.us/single-michigan-helium-network/early-birthday.html</guid><pubDate>Sat, 7 Feb 2026 19:27:48 -0600</pubDate><description>&lt;html&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=us-ascii"&gt;&lt;/head&gt;&lt;body dir="auto"&gt;Thanks ma!&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt="image0.jpeg" src="assets/113-image0.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</description></item><item><title>The Print Shop</title><link>http://preposter.us/single-michigan-helium-network/the-print-shop.html</link><guid>http://preposter.us/single-michigan-helium-network/the-print-shop.html</guid><pubDate>Sun, 08 Feb 2026 14:42:17 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;A friend on the fediverse asked me a very good question during a discussion about work, and the problems of doing quality work when you're abstracted-away from the people who actually need and use the things you make:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;"What kind of things do you envision building for direct customers?"&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This seemed like a question that I should have an immediate answer for, but I no longer do. &amp;nbsp;The reason is that so many of the things I would have responded with have been well... &lt;a href="https://en.wikipedia.org/wiki/Enshittification"&gt;enshitified&lt;/a&gt;, and while I could try to do unshitified work in these areas, I don't think I could escape the gravity well of the enshitifiers, especially if I were doing so in the sort of professional or commercial setting necessary for it to be a way to make a living.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I spent almost a week thinking about this before I had any new ideas. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;During that time I worked on other things and tried to pay attention to what I enjoyed doing that wasn't squarely in the cross-hairs of enshitification. &amp;nbsp;The activity that stood-out was spending time at &lt;a href="https://jasongullickson.com/the-kgl-multidimensional-print-shop.html"&gt;The KGLMPS&lt;/a&gt;, designing things to print and working on the machines.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;During this time I talked to a number of friends who have complemented the design and fabrication work that Jamie and I have done together, much of it involving 3D printing but including related work as well with electronics and such to produce decorative items, furniture, props, etc. &amp;nbsp;Some of these friends have purchased some of the things we've created and others have commissioned us to help them produce things of their own design, desire or interest.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;All this got me thinking that maybe this is the answer to my friend's question about work. &amp;nbsp;But what exactly is "&lt;b&gt;this&lt;/b&gt;"?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/114-tps-scaled.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;You could call it "3D printing", but I don't think that's it. &amp;nbsp;It's not only an oversimplification, but saying "I want to be a professional 3D printer" doesn't convey the range of design, engineering, testing and finishing that goes into this work. &amp;nbsp;It often includes elements of drafting, CAD, CAM, mechanical, software and electrical engineering.. &amp;nbsp;I think it also limits the imagination of people who I'd like to work with because I wouldn't want them to think we could only realize things through a single process.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So what I need to think of is a name for the service of helping produce something someone wants or needs, with a narrow enough scope to limit it to things we can enjoy producing but wide enough to let people's imagination run wild enough to get excited about what we can do. &amp;nbsp;I want to find a term for this that conveys the excitement, the creativity and the collaborative nature of what we do as well. &amp;nbsp;I also want to frame it in such a way as to make it clear that it's a dynamic thing, something that can't really be captured and enshittified. &amp;nbsp;If the process becomes something that can be turned into something that doesn't require creativity and care then it's not something we'd likely continue to do.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm not sure what to call it, but I'm sure that it happens to fit-in with what we've stared at KGLMPS. &amp;nbsp;This could be a coincidence or it could be a self-fulfilling prophecy, but regardless of what you call it I think it's awesome.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;We're going to be on a little trip for the next week or so and one of the things I'm going to noodle-on while in new, stimulating environments is what the next step looks like along this path. &amp;nbsp;When we return I plan to start implementing whatever we manage to come-up with.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;Related&lt;/b&gt;: Don't expect to see much here other than weird photos until we get back.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>CA 1</title><link>http://preposter.us/single-michigan-helium-network/ca-1.html</link><guid>http://preposter.us/single-michigan-helium-network/ca-1.html</guid><pubDate>Mon, 9 Feb 2026 16:57:54 -0800</pubDate><description>
&lt;a href='assets/115-image0.jpeg'&gt;&lt;img src='assets/115-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>Consent-Based Authorization</title><link>http://preposter.us/single-michigan-helium-network/consent-based-authorization.html</link><guid>http://preposter.us/single-michigan-helium-network/consent-based-authorization.html</guid><pubDate>Wed, 11 Feb 2026 20:13:16 -0800</pubDate><description>&lt;html&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;/head&gt;&lt;body dir="auto"&gt;&lt;div dir="ltr"&gt;&lt;i&gt;Forgive me, I'm typing this one with my thumbs.&lt;/i&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;b&gt;Consent-Based Authorization&lt;/b&gt; (CBA) is a means of requiring consent in order to access a resource. &amp;nbsp;This differs from other schemes which require separate authentication and authorization steps in a number of important ways. &amp;nbsp;It provides a number of advantages over existing schemes which will become more apparent as I describe a real-world scenario:&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;An author publishes a document which requires consent to the system and shares the URI for this document.&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;A reader accesses this URI and receives a prompt that access requires consent. &amp;nbsp;Consent can be requested by providing one of several communications methods (email address, SMS number, etc.). &amp;nbsp;The reader provides an email address and requests consent.&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;The system sends a message to the author via a communication method provided by the author when the document was published. &amp;nbsp;The message indicates that this is a consent request for a specific URI and includes metadata about the reader's request that the author can use to decide whether or not they consent to the access. &amp;nbsp;Once the author decides, the reader is notified via the communications method they provided and if consent is granted this message contains a augmented version of the URI that includes a token. &amp;nbsp;This new URI is refereed to as a Consent URI or CURI (pronounced "curry").&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;If consent was granted, the reader now has 24 hours to access the document via the CURI. &amp;nbsp;If the CURI is accessed after 24 hours have passed, the reader will again be prompted for a communications method to request consent. &amp;nbsp;If the reader provides the same method as before, they will be able to access the document immediately. &amp;nbsp;If not, the author is contacted to provide consent and the cycle begins again.&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;i&gt;Why is this better than current approaches?&lt;/i&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;b&gt;Consent is an agreement between two people.&lt;/b&gt; &amp;nbsp;CBA involve third-parties, it doesn't require the reader to create an account on the system storing the document nor does it delegate this authentication to "yet another system".&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;b&gt;Consent must be reaffirmed.&lt;/b&gt; &amp;nbsp;Just because it was OK for the reader to access the document now doesn't mean it will be OK tomorrow. &amp;nbsp;It can also be revoked immediately if the Author deems it necessary.&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;b&gt;Consent cannot be delegated.&lt;/b&gt; &amp;nbsp;CURI's can be shared, but can only be used by others if the details of the readers communication method are shared as well. &amp;nbsp;This requires a significant amount of trust and discourages sharing with just anyone.&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;b&gt;CBA respects privacy.&lt;/b&gt; &amp;nbsp;The only communications information "permanently" stored in the system is the Author's, and even this is deleted if the document is removed. &amp;nbsp;Readers communication information is stored only long enough to send the consent response (24 hours max), after that it is deleted. &amp;nbsp;Anywhere else a reader's communications information is needed (for example, accessing the CURI) a cryptographic hash of the data is used instead. &amp;nbsp;Passwords are never used, let alone stored.&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;The idea for CBA came to me when thinking about ways to continue publishing things on the web and sharing links that are accessible by people but resistant to unwanted advances in web scraping for the purpose of training LLM's. &amp;nbsp;There's been a few attempts at this, but all of the ones I've seen rely on either client-side programmatic things that only work in certain browsers or delegating the task to some (usually private, corporate) third party. &amp;nbsp;The blunt solution is to make the resources "private" but that requires either creating a new authority yourself (and requiring readers to create yet another username and password) or again delegating that authority to and trusting a third party,&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;CBA does away with authentication and focuses only on authorization and to the &amp;nbsp;best of my knowledge is the only mechanism that does this. &amp;nbsp;By doing so it provides both the ability to share URL's publicly that are durable as well as protection from access by random traffic. &amp;nbsp;It makes granting access a personal choice between two people, a human-scale operation.&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;CBA is also fairly easy to implement. &amp;nbsp;I've already started figuring out how to implement it in JSFS, but it could be implemented in other HTTP services as well. &amp;nbsp;I won't try to explain the technical details until I have a real keyboard handy but I'll post a follow-up once I can demonstrate it in JSFS and provide pointers to how it might be implemented in other HTTP-based services.&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</description></item><item><title>CA 4</title><link>http://preposter.us/single-michigan-helium-network/ca-4.html</link><guid>http://preposter.us/single-michigan-helium-network/ca-4.html</guid><pubDate>Thu, 12 Feb 2026 17:08:30 -0800</pubDate><description>
&lt;a href='assets/117-image0.jpeg'&gt;&lt;img src='assets/117-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>CA 5</title><link>http://preposter.us/single-michigan-helium-network/ca-5.html</link><guid>http://preposter.us/single-michigan-helium-network/ca-5.html</guid><pubDate>Fri, 13 Feb 2026 15:51:09 -0800</pubDate><description>
&lt;a href='assets/118-image0.jpeg'&gt;&lt;img src='assets/118-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>CA 6</title><link>http://preposter.us/single-michigan-helium-network/ca-6.html</link><guid>http://preposter.us/single-michigan-helium-network/ca-6.html</guid><pubDate>Sat, 14 Feb 2026 19:04:55 -0800</pubDate><description>
&lt;a href='assets/119-image0.jpeg'&gt;&lt;img src='assets/119-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>Hello, Operator</title><link>http://preposter.us/single-michigan-helium-network/hello-operator.html</link><guid>http://preposter.us/single-michigan-helium-network/hello-operator.html</guid><pubDate>Sun, 15 Feb 2026 05:47:38 -0800</pubDate><description>&lt;html&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;/head&gt;&lt;body dir="auto"&gt;&lt;div dir="ltr"&gt;&lt;font face="Courier New"&gt;hello-operator&lt;/font&gt; is a command-line file sharing tool. &amp;nbsp;Using it looks like this:&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;$ hello-operator&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;Operator &amp;gt; what's your number?&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;&amp;lt; T-6-5000&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;Operator &amp;nbsp;&amp;gt; what city are you calling from?&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;&amp;lt; madison, wi&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;Operator &amp;gt; and what city are you calling?&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;&amp;lt; green bay, wisconsin&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;Operator &amp;gt; ok hon, what number do you want to call?&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;&amp;lt; k-1640&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;Operator &amp;gt; one moment please...&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;Operator &amp;gt; your call has been connected, have a nice day!&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;&amp;lt; ?&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;say: send text&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;package: send a file&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;goodbye: hang-up&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;&amp;lt; say hi&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;k-1640 &amp;gt; hello, joe!&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;&amp;lt; package&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;&amp;gt; What's the filename?&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;&amp;lt; ~/Music/satisfaction.flac&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;k-1640 &amp;gt; Receiving .................... Done!&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;&amp;lt; goodbye&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;font face="Courier New"&gt;dialtone&lt;/font&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;When Hello, Operator starts, it attempts to connect to a "&lt;b&gt;switchboard&lt;/b&gt;": a known server on a public Internet address. &amp;nbsp;If a switchboard cannot be reached it says "we're sorry, your call cannot be completed at this time. &amp;nbsp;Please try again later".&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;Once it connects to a switchboard it asks for your number, city and state name. &amp;nbsp;This is what it will use to uniquely identify your node (if the city-state are already taken it will say "that line is in use, try another"). &amp;nbsp;Once an unused city-state combo is found it is written to a local config file and the "calling from" question won't be asked again.&amp;nbsp;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;Next it asks for the "number", this is used to encrypt the data sent over the connection. &amp;nbsp;Technically this can be anything, but it's more fun (and easier to remember) if you use a phone number.&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;At this point the switchboard attempts to connect the two nodes. &amp;nbsp;If the connection is successful, commands can be used to send text and files directly and securely between the two nodes. &amp;nbsp;If not, the operator responds with "Your call cannot be completed as dialed, please check the number and dial again".&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;b&gt;How does this work?&lt;/b&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;When the operator connected to the switchboard, the switchboard noted the IP address you are connecting from and the random network port that was opened by your router/firewall for incoming connections (this is how any webserver/etc. sends data back to your computer). &amp;nbsp;When you gave the operator your city-state, this IP-Port combination was stored in a database in the switchboard under that name. &amp;nbsp;The same thing happened when the person you want to send files to ran hello-operator.&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;Once you provided the "number" you want to call to the operator, it looked-up the IP-Port for the city-state you requested in the switchboard database. &amp;nbsp;If found, the operator attempts to send a message to the address associated with the city-state over its network port in the database, encrypted using the number you provided. &amp;nbsp;If the message is able to reach the node, this "destination node" then attempts to decrypt the message. &amp;nbsp;It should decrypt to a special "line test" message that the operator on the other end will use to repeat a similar test in the other direction. &amp;nbsp;If this conversation is successful in both directions the call is considered connected.&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;At this point commands like "say" and "package" send data directly to the receiving node as if the two machines were on the same routable network until one sends the "goodbye" command.&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;b&gt;Why?&lt;/b&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;I've been frustrated for a long time by the fact that something as simple as sharing a file has become so difficult, and in most cases requires setting up an account with and trusting a third-party. &amp;nbsp;There are some tools that are supposed to work without doing that, but they often require messing with your router/firewall (which for me isn't an option) or they simple fail to work for mysterious reasons.&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;I think hello-operator will traverse most firewalls automatically and while it requires a you to use a public "switchboard", the switchboard doesn't require an account and stores no data of significance. &amp;nbsp;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;i&gt;I have some more thinking to do about how the city-state naming could be abused, but if it becomes a problem storing it is a convenience that could be eliminated.&lt;/i&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;Once the call is connected the switchboard is out of the picture, but if you want total control you can run your own switchboard as the system requirements would be incredibly low and it could be run on the tiniest of ISP/VPS providers. &amp;nbsp;The only really valuable thing it needs is a known, public IP address and port.&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;There is no transport security per-se, but any data transferred between the nodes is encrypted on the sending node using the "phone number" key. &amp;nbsp;This key is never stored on either device, only in the caller's mind (which is why something memorable like a phone number is used). &amp;nbsp;Not that privacy is the primary objective, but because the key is never stored electronically, this may be more secure than any other electronic filesharing system that (at least that I'm aware of). &amp;nbsp;This also makes the switchboard simpler as it doesn't need to do the CPU-intensive work of encrypting/decrypting data and doesn't even require an SSL/TLS certificate.&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;br&gt;&lt;/div&gt;&lt;div id="AppleMailSignature" dir="ltr"&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</description></item><item><title>CA 7</title><link>http://preposter.us/single-michigan-helium-network/ca-7.html</link><guid>http://preposter.us/single-michigan-helium-network/ca-7.html</guid><pubDate>Mon, 16 Feb 2026 15:30:17 -0800</pubDate><description>


&lt;a href='assets/121-img_0263.jpg'&gt;&lt;img src='assets/121-img_0263.jpg'&gt;&lt;/a&gt;</description></item><item><title>CA 8</title><link>http://preposter.us/single-michigan-helium-network/ca-8.html</link><guid>http://preposter.us/single-michigan-helium-network/ca-8.html</guid><pubDate>Tue, 17 Feb 2026 17:28:24 -0800</pubDate><description>


&lt;a href='assets/122-img_0359.jpg'&gt;&lt;img src='assets/122-img_0359.jpg'&gt;&lt;/a&gt;</description></item><item><title>CA 9</title><link>http://preposter.us/single-michigan-helium-network/ca-9.html</link><guid>http://preposter.us/single-michigan-helium-network/ca-9.html</guid><pubDate>Wed, 18 Feb 2026 11:48:44 -0800</pubDate><description>


&lt;a href='assets/123-img_0364.jpg'&gt;&lt;img src='assets/123-img_0364.jpg'&gt;&lt;/a&gt;</description></item><item><title>My Pong</title><link>http://preposter.us/single-michigan-helium-network/my-pong.html</link><guid>http://preposter.us/single-michigan-helium-network/my-pong.html</guid><pubDate>Fri, 20 Feb 2026 18:16:45 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;pong&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I've always loved Italian design and wondered why it seems like everything designed in Italy is beautiful. I've started to study this and along the way got distracted by early videogame consoles. &amp;nbsp;I of course knew about &lt;a href="https://en.wikipedia.org/wiki/Pong#Home_version"&gt;Pong&lt;/a&gt;, but I didn't know that there were numerous Pong-like games designed and sold around the world in the pre-cartridge days.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This fascination started with the &lt;a href="https://en.wikipedia.org/wiki/Ping-O-Tronic"&gt;ping-o-tronic&lt;/a&gt;, which I ran across during my aforementioned studies of Italian design. &amp;nbsp;The games themselves are the sort of ball-and-paddles games you'd expect but the external design of the hardware is quintessentially Italian.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/125-ping-o-tronic.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Under the hood the original version was built from a little discreet 7400 series logic and a lot of analog electronics. &amp;nbsp;Later iterations used a sort of "pong-system-on-a-chip", the &lt;a href="https://en.wikipedia.org/wiki/AY-3-8500"&gt;AY-3-8500&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There were a number of game systems based around this chip (chipset?), but my favorite turns out to be the East German &lt;a href="https://en.wikipedia.org/wiki/BSS_01"&gt;Bildschirmspiel 01&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/125-tv-spiel.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Not only does it have an awesome name, but there's just something about the "German-ness" of a machine intended for entertainment that I love.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For reasons I can't explain this has inspired me to take a swing at designing my own take of game console based on these chips. &amp;nbsp;I haven't settled on a design just yet, but I want to do something whose physical form draws from my own culture and put a spin on the standard games that reflects something personal as well. &amp;nbsp;If this infatuation lasts long enough to yield any results, I'll certainly share them.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Soundburger</title><link>http://preposter.us/single-michigan-helium-network/soundburger.html</link><guid>http://preposter.us/single-michigan-helium-network/soundburger.html</guid><pubDate>Sat, 21 Feb 2026 16:16:25 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;We needed some music at the print shop and vinyl didn't seem practical but Jamie correctly pointed-out that listening to vinyl would force us to take a break occasionally. &amp;nbsp;How could I argue with this wellness advice?&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I wanted something compact and self-contained, but I've found most portables and all-in-one record players to be bad, not only from a sonic perspective but they are also hard on records. &amp;nbsp;This is fine but I've grown picky and if it's something I'm going to spend hours listening to I'd need to find something better. &amp;nbsp;After an exhaustive search I found one all-in-one player that I thought would be perfect (&lt;a href="https://www.turntablelab.com/products/andover-spinplay-all-in-one-turntable-w-speaker"&gt;Andover SpinPlay&lt;/a&gt;) but at over $700 it's beyond what I could justify spending.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I considered restoring some vintage gear since you get a lot more quality for the money (especially when it comes to listening to vinyl), but given that I still havent finished restoring the yard sale turntable I picked-up last summer, I didn't think anyone would be happy with waiting an infinite amount of time for me to finish such a project.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So back to the Internet I go hunting for something that will fit the physical and budgetary needs and also not sound terrible and also not ruin our records.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I initially didn't consider component systems because I didn't want to waste too much space with a sprawling web of gear (we need the room for printing after all) but then I remembered that I had another (vintage) &lt;a href="https://tivoliaudio.com/pages/experience-model-one-classic-retro-am-fm-table-radio"&gt;Model One&lt;/a&gt; that is mostly unused in the library. &amp;nbsp;These little radios sound surprisingly good for the tiny amount of room they occupy, so if I could couple this with a turntable (ideally without needing an external preamp) that might be constrained to consuming an acceptable amount of space.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I still didn't want to spend a fortune on the turntable, which meant making some compromises. &amp;nbsp;I'm very spoiled to have a restored vintage Marantz at home so I had to accept that I wasn't going to find something approaching that level of quality without creeping-up on the amount I already rejected for the all-in-one. &amp;nbsp;After more searching I narrowed it down to two contenders which might not seem to be remotely related, the &lt;a href="https://www.turntablelab.com/collections/turntables-under-350-alpha/products/teac-tn-180bt-semi-automatic-turntable-w-bluetooth-cherry"&gt;Teac TN-180BT&lt;/a&gt; and the &lt;a href="https://www.turntablelab.com/collections/turntables-under-350-alpha/products/audio-technica-at-sb727-sound-burger-turntable"&gt;Audio-Technica Soundburger&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The Teac had a few things going for it including a wood deck that would be a close match for the cabinet on the Model One. &amp;nbsp;On the other hand, it's fairly large, and for a number of reasons I wasn't sure about the sound quality.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The Soundburger on the other hand was a complete wildcard. &amp;nbsp;It was lacking almost anything I'd look for in a decent turntable but it was also tiny, and interesting, which made me more excited about taking a chance on it than the more traditional xyz.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Since I was compromising on quality anyway I decided it wouldn't make much difference in that department between the two decks, so I decided to gamble on the 'burger. &amp;nbsp;Having listened to it for a couple days now, I have to say I'm happy with that decision.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/126-soundburger.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Let me start by saying that from a sound quality perspective, I'm unable to hear the 'burger's limits within the limits of the Model One. &amp;nbsp;That may be due to the Model One's sonic envelope as much as anything, but for the types of music we listen to at the shop this is a totally satisfying level of quality. &amp;nbsp;I had concerns that it might sound as bad as some of the cheap portables I've had before and I can say that with this combination that is not the case. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The only audible deficit I could find was during the last track of &lt;a href="https://www.turntablelab.com/products/the-crow-soundtrack-vinyl-2lp"&gt;The Crow soundtrack&lt;/a&gt; (side C) where it seemed like maybe the 'burger wasn't able to hold the playback speed constant and correct. &amp;nbsp;I'm not sure what exactly the cause of this was (I thought maybe the battery was dying but that wasn't it), and I haven't noticed this on any of the other dozen or so records we've listened to, but I thought it was worth mentioning.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So it sounds as good as anything else I could have hooked-up to the Model One, and if I was going to take the Model One out of the picture the cost goes up about $500. &amp;nbsp;That's a fair deal IMHO.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Now on to how the Soundburger is different from every other record player or turntable I've ever owned.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As you can see it doesn't have a normal 12" platter but instead a tiny (4 inch?) platter that the record balances on and hangs waaaay over on the edges. &amp;nbsp;The player sort-of "clamps" around the record during playback. &amp;nbsp;A small "open" lever is pressed to open the clamp revealing the tone arm and platter.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I put "clamps" in quotes because it doesn't actually apply any pressure to the top of the record but only surrounds it. &amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Before loading a record the tone arm needs to be swung out of the way. &amp;nbsp;At the end of the swing the tonearm will "click" into a parking position leaving room to load an LP. &amp;nbsp;The arm is small and light and feels fragile so the first time I did this I was overly-cautious, but if you persist you'll feel a solid "click" as the arm depresses a switch which disables the spindle motor and locks safely into place.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The tonearm rests on a round rubber "puck" when stored. &amp;nbsp;This puck doubles as both an adapter for 45's and a record clamp for LP's. &amp;nbsp;In either case it needs to be removed from it's storage place before a record can be loaded.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Once the arm and puck are out of the way you drop a disc onto the spindle like any other turntable. &amp;nbsp;Then the puck is slid snugly onto the spindle clamping the record in place and finally the lid can be closed and locked back into position.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A press of the "power" button turns the LED next to it from red to white and moving the tonearm out of it's "parked" position sets the record spinning. &amp;nbsp;At this point you drop the needle in the groove like any other turntable.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The 'burger is not an automatic so the record just keeps spinning when you get to the end of a side. &amp;nbsp;Lifting the needle and moving the tonearm back to its parking position stops the turntable motor and you can open the lid, remove the puck and flip the record.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There are other features. &amp;nbsp;It has two speeds, it has Bluetooth, but I haven't tested either of these yet and probably won't. &amp;nbsp;The line-out is analog and fed directly to the line-in jack of the Model One creating a perfect analog signal path from groove to speaker, what else could you want?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It will be interesting to see how it holds up over time. &amp;nbsp;It is sturdier than I expected it to be, but it's still pretty delicate compared to the Marantz. &amp;nbsp;It doesn't have a removable cartridge but it does have a replaceable needle, so baring any major accidents I expect it will be around for awhile.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Growing Solar</title><link>http://preposter.us/single-michigan-helium-network/growing-solar.html</link><guid>http://preposter.us/single-michigan-helium-network/growing-solar.html</guid><pubDate>Mon, 23 Feb 2026 08:33:15 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;This morning I was looking at our expenses and our energy bills have gone berserk over the last year while our consumption has actually gone down. &amp;nbsp;I have a number of theories that explain this, but I'll set that aside for now.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This has me thinking the time may have come to get serious about getting the house off-the-grid since that's the only way we'll have any control/predictability around these costs. &amp;nbsp;Of course there's lots of other good reasons to do this, so it's not a hard case to make, but this one might be the easiest to justify financially.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That said I really don't know how much it would cost to do such a thing, especially if it was purchased "off-the-shelf" and the installation was hired-out. &amp;nbsp;Normally I'd love doing something like this myself but there are codes and also roof work and if you've seen our roof you'll understand why nobody (myself included) wants me working up there.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It does make me wonder though if there could be an incremental path for this though. &amp;nbsp;To some degree I've experimented with this by adding some standby capacity in the form of homebrew solutions and off-the-shelf Bluetti "solar generators", but having done this for a few years it begins to feel a bit like "building a ladder to the moon". &amp;nbsp;There's a lot to love about the Bluetti devices, but after some inconvenient issues I'm not ready to trust them with the day-to-day operation of the house, especially because when things go wrong with them the answer is "ship it to us" which isn't really going to fly when we start talking about 10's of killowatt hours worth of batteries and roof-mounted solar panels...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Another hard part about implementing such a system is sizing. &amp;nbsp;A lot of people simply look at their current usage and then try to scale an off-grid system to match that and wind-up disappointed by the cost. &amp;nbsp;Others try to cut their usage to the bone and design the system around that, but that isn't likely to lead to satisfaction in the long run. &amp;nbsp;An incremental approach might solve both these problems by reducing the initial cost to something small and adding cost incrementally to scale the system up. &amp;nbsp;At the same time, it gives you an opportunity to learn about how you really use electricity and make more informed decisions about where you can reduce usage. &amp;nbsp;I've done some of this playing with the solar generators I have, and I've found a lot of power going into things that I don't want/need so dropping those KW was virtually painless.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This also can inform other decisions over time as opposed to making all these choices and trade-offs at once when designing and installing a system in one shot. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For example: maybe you decide to part with some enterprise networking gear and replace it with something low-power and focus your work elsewhere when it becomes apparent that the short-term cost outweighs long-term operating costs...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Taking all this into consideration I'm led to think that something like &lt;a href="https://jasongullickson.com/the-digital-bug-out-box.html"&gt;The Digital Bug-Out Box&lt;/a&gt; could be the starting point for such an incremental system. &amp;nbsp;I've always intended for the design of that box to be parametric so I could experiment to find the right size, but maybe that could be more than just an experimental aspect of the project. &amp;nbsp;This might simply sound like recreating the solar generator incremental pattern, but the key difference is that my design is open which minimally mitigates the maintenance problem. &amp;nbsp;Being open also makes deeper and more flexile integration possible than with an off-the-shelf, proprietary and closed design.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This does nothing to address the input side of the problem though, and no matter what I come-up with I don't think I can eliminate the use off-the-shelf panels and mount them on the roof. &amp;nbsp;Of course this can be done in an incremental fashion, but the overhead of setting-up and tearing-down to do the work is non-trivial, especially if hiring someone else to do it. &amp;nbsp;I suppose as expensive as the panels are, they don't make up the bulk of the cost in an off-grid system (that would be the batteries), so maybe going "whole hog" on the panels is a wise trade-off? &amp;nbsp;Perhaps for people that don't have an alpine cabin-style roofline could take the incremental option here.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Another design I've considered &lt;a href="https://jasongullickson.com/the-autonomous-solar-powered-universal-basic-income-thing.html"&gt;incorporates a number of features directly into the panel itself&lt;/a&gt;; not only batteries but compute and storage as well. &amp;nbsp;This sort of fully-integrated design might fit the role of incremental implementation, especially for people who are unable to deploy a large number of panels on a roof, etc. &amp;nbsp;I haven't actually experimented with/prototyped this design yet, but maybe I should. &amp;nbsp;There's some very interesting dynamics that could be played with here...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;All of this tells me that maybe I should be focusing some more time on the projects and ideas I've had in this area. &amp;nbsp;I'm currently in the process of figuring out what to do with my life as my current profession is questionable for a number of bummer reasons I won't drag us all down with right now. &amp;nbsp;Of the things I've considered, tackling this problem incorporates some of my favorites and of course has the added benefit of maybe being useful to help others as well. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Penguin</title><link>http://preposter.us/single-michigan-helium-network/penguin.html</link><guid>http://preposter.us/single-michigan-helium-network/penguin.html</guid><pubDate>Tue, 24 Feb 2026 11:25:43 -0600</pubDate><description>
&lt;a href='assets/128-image0.jpeg'&gt;&lt;img src='assets/128-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>Reprap 2026</title><link>http://preposter.us/single-michigan-helium-network/reprap-2026.html</link><guid>http://preposter.us/single-michigan-helium-network/reprap-2026.html</guid><pubDate>Tue, 24 Feb 2026 11:26:50 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;/div&gt;
    
    &lt;div dir="auto"&gt;I've been working more and more with off-the-shelf 3D printers but I haven't forgotten the importance of the &lt;a href="https://www.reprap.org/wiki/RepRap"&gt;Reprap project&lt;/a&gt;. &amp;nbsp;Some will say that the proliferation of inexpensive consumer-grade 3D printers are proof that the project has served its purpose and run its course, but I couldn't disagree more.&lt;br&gt;&lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Those working on Repraps continue to push the state-of-the-art of 3D printing forward and many of the things we take for granted from off-the-shelf printers came from the continuing evolution of Reprap machines.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For my part I continue to work on my own Reprap design, &lt;a href="https://jasongullickson.com/se-3d-introduction.html"&gt;SE/3D&lt;/a&gt;. &amp;nbsp;The areas I'm seeking to improve is reducing dependencies on non-printed parts ("minerals") and integrating additional CNC processes (milling, lasering and potentially, assembly), but I'm wondering if I should be focusing elsewhere as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;One area where I see a lot of potential is in feedstock, or the input material to the machine. &amp;nbsp;Most designs assume the availability of prepared filament, but that's a risky assumption outside of major metropolitan areas or where mail-order supplies are not an option, so I've been thinking about ways to extend what a Reprap is to include accepting input material from less refined sources.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The easiest (and one we experimented with in the early days) are existing materials used for other purposes such as line trimmer ("Weed Eater") spools. &amp;nbsp;I don't know exactly what this material is so there may be saftey concerns, but it's a fairly straightforward option.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Another I've seen in the last few years are machines that can "peel" a plastic bottle to turn it into a sort of ribbon that can be fed into an extruder (I'm not sure I've seen this done directly, but I think it's possible). &amp;nbsp;A Reprap design that incorporated something like this could be quite amazing and would definitely expand the range of places such a machine could be operated.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The holy grail of course is a machine that can take chunks of plastic, grind them up or whatever and re-use it for input. &amp;nbsp;Even if it were limited to processing plastics that are commonly used for printing (PLA for example) it would be useful in recycling cast-off failed prints or support material and would result in a lot less waste.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That last one I know folks have been working-on for a long time and at the moment I haven't seen a setup that could be tightly integrated, especially at the scale of a portable machine like the one I'm designing (of course I could have missed such a project if it's out there). &amp;nbsp;So I think for my part I'm most interested in the second option, the bottle peeler.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Coincidentally this solves a couple of problems I've had with the SE/3D design. &amp;nbsp;The first is: where to stick the filament spool. &amp;nbsp;With a bottle peeler it feels more reasonable to just have somewhere to stick a bottle (or two?) on the outside, maybe a couple of pop-out clamps that hold the bottles?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The second has to do with hot-end/extruder selection. &amp;nbsp;It's tempting to use a well-known design but to me that feels a bit like cheating (since again I'm trying to optimize for reproducability) and also my design has some special needs like interchangeable tool heads that might be better addressed with a custom hot-end design. &amp;nbsp;I think that an extruder/hot-end with a design optimized for consuming bottle peels might have advantages over an off-the-shelf design.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'd love to bring something like this to the &lt;a href="https://reprapfest.com/reprap-festival-map/"&gt;Midwest Reprap Fest&lt;/a&gt;, time to figure out exactly when that is this year...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


&lt;/div&gt;


</description></item><item><title>1000-ish True Fans for a Non-AI Tech Company</title><link>http://preposter.us/single-michigan-helium-network/1000-ish-true-fans-for-a-non-ai-tech-company.html</link><guid>http://preposter.us/single-michigan-helium-network/1000-ish-true-fans-for-a-non-ai-tech-company.html</guid><pubDate>Wed, 25 Feb 2026 08:20:58 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;About a week ago I launched a &lt;a href="https://masto.hackers.town/@requiem/116089640817267012"&gt;poll on the fediverse&lt;/a&gt; to gauge interest in a company that produces technology without the use of "AI"*.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;"OK, so let's say me and some friends started a tech company/consultancy that refused to use "AI", would this encourage you choose us over others?&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;(boosts welcome)"&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The results were surprising. &amp;nbsp;First off, it's easily the most boosted toot I've ever crafted. &amp;nbsp;Secondly the results are &lt;i&gt;incredibly&lt;/i&gt; asymmetric. &amp;nbsp;Third, the comments were overwhelmingly helpful and encouraging.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Popularity&lt;/b&gt;&lt;/div&gt;&lt;div&gt;This toot was boosted 215 times. &amp;nbsp;I know that doesn't sound like a lot from a traditional social media perspective, but it's significant in the fediverse, especially if you consider that it's not a meme, photo of a cute animal or a snarky joke. &amp;nbsp;It's topical for sure but it also requires a little thought, and in my experience that's not the sort of thing that gets a wide-range of attention.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Results&lt;/b&gt;&lt;/div&gt;&lt;div&gt;I expected there to be more support for a company that rejects AI in the fediverse than there may be in other social networks, but I didn't expect it to be so extremely lopsided. &amp;nbsp;60-40 would have been expected, 92-8? &amp;nbsp;Wow.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/130-screenshot from 2026-02-25 08.09.10.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Comments&lt;/b&gt;&lt;/div&gt;&lt;div&gt;There were a handful of confusing-to-disparaging remarks but nothing like what I normally experience from botlickers elsewhere. &amp;nbsp;Most of the comments were overwhelmingly supportive, and several commentators were ready to sign-up!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;"I think that "No AI here!" companies are actually a hot, hot thing now. Especially for medical devices or airplanes / flight control. If someone is doing that and is supportive of remote work for software, let me know: I would like to work at such a place. (Preferably if we're making highly reliable insulin-related products.) #getfedihired" - &lt;a href="https://mastodon.de/@phf/116092731971793267"&gt;@phf@mastodon.de&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There were a number of comments concerned with bias, given that the people of the fediverse may be more sympathetic toward resistance to "AI". &amp;nbsp;I don't see this as a problem, because I would be perfectly happy to serve such a subset of humanity (most of the joy in my life has come at times when I had a say in who I make things for).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Given the strong emotions (and money) involved this subject I was definitely expecting some harsher responses, even if I anticipated the reactions to be mostly positive.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;What's Next?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;I subscribe to the &lt;a href="https://kk.org/thetechnium/1000-true-fans/"&gt;1000 True Fans&lt;/a&gt; theory and if nothing else the results of this poll prove that there's at least &lt;i&gt;close&lt;/i&gt; &lt;i&gt;to&lt;/i&gt; 1000 people out there who want to get their technology from people who refuse to use "AI" to make it. &amp;nbsp;That to me is very encouraging, because it at least hints at the possibility of being able to survive being a person who makes things this way.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Figuring out exactly &lt;i&gt;what&lt;/i&gt; to make might be the next step, and I think it would be fun to do that in a similarly democratic fashion. &amp;nbsp;What comes to mind immediately is a Ranked-Choice poll listing a number of fixed choices (maybe all software, maybe other tech.?), or maybe make it completely open-ended (although I'd have to somehow limit that to things I know I can assemble a team to make). &amp;nbsp;In either case I'd like a community to decide on what we tackle and what the priority is instead of making all these decisions ourselves.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Once it's know what technology is needed it will be easier to assemble a team to make it, although I don't want to completely commit to that sort of logic. &amp;nbsp;For me the highest priority is philosophical alignment because the rest of the needful things can be taught.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>One hand</title><link>http://preposter.us/single-michigan-helium-network/one-hand.html</link><guid>http://preposter.us/single-michigan-helium-network/one-hand.html</guid><pubDate>Thu, 26 Feb 2026 11:44:18 -0600</pubDate><description>This is going to be more work than expected...


&lt;a href='assets/131-image0.jpeg'&gt;&lt;img src='assets/131-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>You wouldnt download a human...</title><link>http://preposter.us/single-michigan-helium-network/you-wouldnt-download-a-human.html</link><guid>http://preposter.us/single-michigan-helium-network/you-wouldnt-download-a-human.html</guid><pubDate>Fri, 27 Feb 2026 09:31:52 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;While we were in California I was reading random books I downloaded during the pandemic and got sucked into a book about bioinformatics, (Applied Bioinformatics, Paul M. Selzer). &amp;nbsp;It was way over my head in many ways, but one thing I did understand is that there are a number of public databases of genetic data, some of which are hosted by the U.S. government.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Given the state of things, I thought it would be prudent to back these up.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Starting with &lt;a href="https://www.ncbi.nlm.nih.gov/"&gt;www.ncbi.nlm.nih.gov&lt;/a&gt; I found that all of this data is available via FTP, which makes the process of backing it up very simple, however after I started I ran into a snag: it's huge.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I assumed it would be a lot of data but I didn't expect &lt;b&gt;terabytes&lt;/b&gt;. &amp;nbsp;I couldn't even pull-down the first directory with the space I had on my laptop, and I'm not sure I even have enough room on the pod for it. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Looks like it's time to grow the pod.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I've been using 1TB SATA SSD's to rebuild the pod. &amp;nbsp;I could have sworn that the last one I bought was under $100, but right now the cheapest I can find is $125, not bad but surprising. &amp;nbsp;This has me questioning the choice to use only SSD in this pod.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The rationale behind going pure SSD is that they use less power, make less noise and in general put less stress on the system than mechanical drives. &amp;nbsp;They have less capacity, but I figured that 45TB raw capacity would be enough for anything I'm doing in the lab.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But if the price keeps going up (perhaps driven indirectly by AI datacenter demands?) maybe I should reconsider mechanical drives.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Then there's the matter of expanding the pod on the software size. &amp;nbsp;I'm using ZFS, but it is an old version so not all the options available today are on the table. &amp;nbsp;My understanding is that I'll need to create a new raidz vdev, which means getting at least three new disks before I can do anything.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Getting enough disks for a new pool gets me thinking about the potential of sending the existing pool over to the new one and fixing a lot of problems with the current setup. &amp;nbsp;The pod is running an ancient version of Debian, for long boring reasons. &amp;nbsp;I had intended to remedy this before putting it into production use but well... didn't. &amp;nbsp;Now it is storing about 2TB of data, too much to simply copy to any other single machine that I have online, so I don't want to go messing-around with upgrading the operating system and all that.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But if I had a second pool that I could send this one to, I could safely rebuild it, and even rebuild the ZFS setup so that it's more amicable to being expanded, etc., maybe even experiment with compression, deduplication and all the other cool ZFS stuff.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;...of course, this makes me think maybe it's time to finally go beyond ZFS and use JSFS... but that means getting JSFS up-to-date, and probably writing a FUSE or some other sort of thing that will let me mount it like a normal filesystem for the applications I run that can't be adapted to a REST filesystem...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What a rabbit hole.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think what I might do today is simply park the effort to backup the genome and come up with a plan to build a new storage array big enough to back the current contents of the pod up to. &amp;nbsp;The outcome of that projet will inform all these other choices, and might move a few other efforts forward as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Downlink 2026-02-27</title><link>http://preposter.us/single-michigan-helium-network/downlink-2026-02-27.html</link><guid>http://preposter.us/single-michigan-helium-network/downlink-2026-02-27.html</guid><pubDate>Fri, 27 Feb 2026 09:38:31 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/BelfrySCAD/BOSL2/wiki/gears.scad&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.nexprint.com/en/collection/G8416619&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://jcs.org/2011/08/29/an_ecobee_automation_hack&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://jcs.org/bluescsi&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://bluescsi.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://bluescsi.com/docs/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://bluescsi.com/docs/BlueSCSI-Images&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://mega.nz/folder/8hA3AQCJ#pWUq92L70yDXlogy9lk5Dg&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://eric.scsi.blue/checkout/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://jcs.org/subtext&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/jcs/siriproxy-ecobee&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/plamoni/SiriProxy&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.chase-small-craft.com/ebds&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://dnr.wisconsin.gov/topic/lands/turtleflambeau/recreation/water&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://smallboatsmonthly.com/article/the-turtle-flambeau/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.opencentauri.cc/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Thermoelectric_heat_pump#Strengths_and_weaknesses&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://standardebooks.org/ebooks&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.bluettipower.com/products/ac180?variant=44099774480603&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.harborfreight.com/100-watt-amorphous-solar-panel-kit-63585.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://deepbluembedded.com/esp32-sleep-modes-power-consumption/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://kk.org/thetechnium/1000-true-fans/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://academic.oup.com/nar/issue/54/D1&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://academic.oup.com/nar/article/54/D1/D20/8378181&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ncbi.nlm.nih.gov/home/download/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://ftp.ncbi.nlm.nih.gov/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://marmaladehandmade.com/policy&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://mcyoung.xyz/2024/12/12/go-abi/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.amazon.com/Seagate-Skyhawk-Video-Internal-House/dp/B0B1JPYH2Z?s=electronics&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.amazon.com/Crucial-BX500-NAND-2-5-Inch-Internal/dp/B07YD579WM?s=electronics&amp;amp;ufe=app_do%3Aamzn1.fos.9fe8cbfa-bf43-43d1-a707-3f4e65a4b666&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://code.kratzgullicksonlabs.com/jason/record-table&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ametsoc.org/ams/advocacy-policy/ncar-information-and-support/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.freebsd.org/en/books/handbook/zfs/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://forum.proxmox.com/threads/adding-more-disks-to-an-already-exist-zfs-raidz1.88652/&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Handsy</title><link>http://preposter.us/single-michigan-helium-network/handsy.html</link><guid>http://preposter.us/single-michigan-helium-network/handsy.html</guid><pubDate>Fri, 27 Feb 2026 19:33:49 -0600</pubDate><description>
&lt;a href='assets/134-image0.jpeg'&gt;&lt;img src='assets/134-image0.jpeg'&gt;&lt;/a&gt;&lt;a href='assets/134-image1.jpeg'&gt;&lt;img src='assets/134-image1.jpeg'&gt;&lt;/a&gt;&lt;a href='assets/134-image2.jpeg'&gt;&lt;img src='assets/134-image2.jpeg'&gt;&lt;/a&gt;&lt;a href='assets/134-image3.jpeg'&gt;&lt;img src='assets/134-image3.jpeg'&gt;&lt;/a&gt;</description></item><item><title>Elegoo Centauri Carbon Review</title><link>http://preposter.us/single-michigan-helium-network/elegoo-centauri-carbon-review.html</link><guid>http://preposter.us/single-michigan-helium-network/elegoo-centauri-carbon-review.html</guid><pubDate>Sun, 01 Mar 2026 09:35:14 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;img src="assets/135-img_0427.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;About a year ago I picked-up an &lt;a href="https://jasongullickson.com/orangestorm-giga.html"&gt;Elegoo OrangeStorm Giga&lt;/a&gt; and I was knocked-out by it's quality and capability. &amp;nbsp;We've since put at least 50kg of plastic through it with only one significant breakdown that required maintenance.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;This is a major improvement over my preview 3D printing experiences.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This made me wonder if the Giga is an anomaly, or if other Elegoo printers are made this well. &amp;nbsp;When it came time to pick-up a small, fast printer for &lt;a href="https://jasongullickson.com/the-kgl-multidimensional-print-shop.html"&gt;KGLMDPS&lt;/a&gt; I decided to find out and picked-up the &lt;a href="https://us.elegoo.com/products/centauri-carbon"&gt;Centauri Carbon&lt;/a&gt;. &amp;nbsp;The "&lt;a href="https://us.elegoo.com/pages/elegoo-centauri-carbon-2-combo"&gt;Combo&lt;/a&gt;" model had just been released so the standard model was on sale. &amp;nbsp;Between that and a monthly "live your best live" benefit we get at work it cost me about $60 out of pocket, not too big of a gamble.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I won't replicate the information you can find on the website but stick to the things I learned about the machine myself.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Shipping was pretty fast and the machine arrived within a week. &amp;nbsp;Assembly amounted to unboxing it, removing a few shipping screws and installing the display. &amp;nbsp;Once assembled and turned-on the printer walks you through a self-calibration process that takes awhile (30 minutes maybe) and makes a lot of fun sounds.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/135-img_0396.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;At this point you're ready to print, and to keep the variables as few as possible I printed one of the models that was already loaded on the machine. &amp;nbsp;It printed a &lt;a href="https://www.printables.com/model/2236-3dbenchy-the-jolly-3d-printing-torture-test-by-cre"&gt;3DBenchy&lt;/a&gt; faster than anything I've ever seen and the quality was decent.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/135-img_0399.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The next thing I did was connect it to the network and check for new firmware (there was none), then try to connect to it with &lt;a href="https://docs.fluidd.xyz/"&gt;Fluidd&lt;/a&gt;, the software I use to remotely manage my other printers. &amp;nbsp;I was introduced to Fluidd by the Giga, then switched my Ender 5+ to use &lt;a href="https://jasongullickson.com/installing-klipper-on-the-ender-5-plus.html"&gt;Klipper firmware&lt;/a&gt; so I could run it with Fluidd as well. &amp;nbsp;Fluidd couldn't connect to the Carbon, so I pointed a web browser directly at it's IP address to see if something was wrong.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The browser loaded a web-based controller for the Carbon and I was able to manage it from there with no problems. &amp;nbsp;As it turns out, the firmware on the Carbon doesn't provide an API compatible with Fluidd (maybe the same API as &lt;a href="https://octoprint.org/"&gt;Octoprint&lt;/a&gt;?), but instead is something different. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Indeed, there is &amp;nbsp;some controversy about the Carbon's firmware, and I found that there are Fluidd-compatible open-source alternatives so I'll have to explore that at some point.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Next I used the standard Carbon profiles provided by &lt;a href="https://github.com/OrcaSlicer/orcaslicer"&gt;Orca Slicer&lt;/a&gt; to try printing a few reliable models to test it with my normal workflow and then push the speed and see what happens.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This all went off without a hitch. &amp;nbsp;The only hang-up was that I wasn't able to change the speed on the machine to override the slicing settings the same way I have on other printers. &amp;nbsp;In this case there's a menu with four presets instead of a mm/s adjustment. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/135-img_0400.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The other weird thing is that you can't set it unless a print is in progress. &amp;nbsp;I guess the idea is that it prevents you from accidentally leaving it in a non-default mode, but I wish there was a way to override it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Next it was time to try something more challenging. &amp;nbsp;I fed it a tray of parts for the &lt;a href="https://en.wikipedia.org/wiki/Terminator_(character)"&gt;T-800&lt;/a&gt; I've been working on. &amp;nbsp;These are small, detailed parts that require support and have particularly challenging small and thin sections. &amp;nbsp;They are printed in a metallic "Silk" type of filament which in my experience can be brittle and have layer adhesion issues.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/135-img_0412.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The first plate came out perfect. &amp;nbsp;The hardest part was finding a way to keep the parts organized after removing them from the build plate (note to self: order more build plates). &amp;nbsp;Once those parts were off I queued-up the next set of even more challenging parts.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The Carbon did a fine job on most of these but struggled some with the last row of parts. &amp;nbsp;What's interesting is that those parts are not a lot more difficult to print than the ones in rows closer to the front, so I'm wondering if position on the build plate made a difference? &amp;nbsp;I'm going to re-run those pieces alone in a more midline position and see what happens.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/135-img_0430.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Overall I'm impressed with the output. &amp;nbsp;With nothing but default settings and automatic configuration it printed almost every tricky part I threw at it as well as I've seen any FDM printer make parts like these. &amp;nbsp;It is literally easier to use and more reliable than a 2D printer (which I know isn't saying much, but...). &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Based on the experience so far, I feel like I could recommend this printer to someone with no interest in learning much about 3D printers themselves and they could just design &amp;amp; print things without having to do much more than follow the instructions. &amp;nbsp;There's a number of printers that fall into this category, and what I've heard and seen from people who use them is that they work great until they don't, at which point fixing them is much more difficult than fixing a more "DIY" printer. &amp;nbsp;This could be because you simply know more about your printer when you DIY it, but it also can be due to the more closed and proprietary nature of these machines. &amp;nbsp;It will be interesting to see how the Carbon holds up in this regard, how easy it is to maintain and how repairable it is when something inevitably breaks, how hard it is to get parts, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;A few random notes:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Even with the enclosed cabinet and the lids and doors all closed, it can be loud when it gets going. &amp;nbsp;It has a "silent" mode that might help, but I haven't tested that yet. I think most of the noise comes from the cabinet vent fan, which surprises me because on the Giga it's the parts cooling fans that make all the noise.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Speaking of the cabinet, the directions don't recommend using the top cover when printing PLA, but it really cuts-down on the noise so I'm using it anyway. &amp;nbsp;Doing so doesn't appear to have any negative effects so far.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I've read complaints about the interior lighting, but it seems fine to me. &amp;nbsp;I suppose their could be more, but maybe I'm just not that picky? &amp;nbsp;It seems sufficient for time-lapse videos.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


&lt;video controls&gt;&lt;source src='assets/135-t-800_fingers_l.mp4'&gt;&lt;/video&gt;</description></item><item><title>The Typing Machine</title><link>http://preposter.us/single-michigan-helium-network/the-typing-machine.html</link><guid>http://preposter.us/single-michigan-helium-network/the-typing-machine.html</guid><pubDate>Sun, 01 Mar 2026 16:57:10 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;We're planning a trip to Alaska in the fall and I'm thinking about how it might be a great time to do some writing. &amp;nbsp;Writing by hand isn't an option for me because it's slow, painful and sometimes indecipherable, so I'm thinking about what I'd bring that I can type on.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The obvious answer is the laptop that I'm writing this post on right now, but there's a number of reasons I'm opposed to this.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* This laptop needs to be charged daily&lt;/div&gt;&lt;div&gt;* It does a lot of things I don't want to be distracted by&lt;/div&gt;&lt;div&gt;* If something happens to it, it's very expensive to replace*&lt;/div&gt;&lt;div&gt;* "Software is shit", which means that I can't depend on it if I'm off-the-grid for an extended period&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This has me thinking about what I could bring instead that doesn't have these problems, simply put, a "&lt;b&gt;Typing Machine&lt;/b&gt;".&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I worked on such a machine awhile ago that I called "&lt;a href="https://jasongullickson.com/type-o.html"&gt;Type-0&lt;/a&gt;". &amp;nbsp;I made some decent progress on that project before getting hung-up on something (maybe a problem with the &lt;a href="https://codeberg.org/jjg/type-o/src/branch/main/journal.md#2023-11-22"&gt;display&lt;/a&gt;?) and then set it aside and got distracted by other things. &amp;nbsp;I could revisit that as a solution to this problem, and maybe I will, but I also enjoy going back to the drawing board and coming up with something fresh. &amp;nbsp;Type-0 grew into something a little more complex than what I have in mind now, and while cool I'm concerned that this additional complexity might have played a role in my lack of attention to resuming the project.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There are of course lots of off-the-shelf answers to a question like this, especially in 2026. &amp;nbsp;I've looked at many of them and have discarded them for various reasons, the most being that they are too complex, too clever or just too expensive.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So I have about five months to figure this out. &amp;nbsp;Could this be the motivation I need to finish a maybe paired-back Type-0, or something entirely new? &amp;nbsp;A lot of interesting tech has come-along since the last time I worked on it and maybe there's something that will get me over whatever hump was in the way at the time?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Still, it's probably a good idea to "timebox" the work somewhat so I can figure out an alternative if the clock starts to run out. &amp;nbsp;Doing so might also encourage me to actually start on it sooner than later. &amp;nbsp;Done right, it's something that could likely find use over the summer as well if it's useful outdoors because this laptop is not.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Hmm... it could also fit-in with my work on the book, because based on what I currently have in mind for the hardware it will have a lot in common with the ideas I'm writing about in there and runs the language I use for the examples in the book. &amp;nbsp;It may very well be the "convivial computer" that I'm considering for the subject of the next book...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Let's make it &lt;a href="https://en.wikipedia.org/wiki/May_Day"&gt;May Day&lt;/a&gt;. &amp;nbsp;Lots of reasons to celebrate on that day, so I'll aim for producing a usable typing machine before that date. &amp;nbsp;If I fail, well then I'll have to look into alternatives.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Joy</title><link>http://preposter.us/single-michigan-helium-network/joy.html</link><guid>http://preposter.us/single-michigan-helium-network/joy.html</guid><pubDate>Mon, 02 Mar 2026 07:18:59 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Last night I read &lt;a href="https://unsung.aresluna.org/our-programs-are-fun-to-use/"&gt;this post about Beagle Bros software&lt;/a&gt; and it reminded me of the most important thing to me about work: &lt;b&gt;joy&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Without joy, what is there? &amp;nbsp;Working out of necessity is, well, often a necessity and this work does not &lt;i&gt;require&lt;/i&gt; joy because the discipline is external. &amp;nbsp;But there's no natural law that prevents necessary work from being joyful, that mechanism is a purely unnatural, human-invented behavior.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I believe that &lt;b&gt;care&lt;/b&gt; is a prerequisite for joy, which means that it is impossible to find joy in work that you don't care about. &amp;nbsp;Care is a complicated subject on it's own, but it's also simple when you don't try to think about it and instead simply &lt;i&gt;feel&lt;/i&gt; it. &amp;nbsp;When you are actually doing something, ask your self "do I care about this?". &amp;nbsp;If the answer is indeterminate, try "why do I care about this?". &amp;nbsp;If you don't have a positive answer to these questions, it's unlikely that you will find any joy in what you are doing, or at least in how you're currently doing it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There's a lot of money to be made by coercing people to do work they don't care about, in fact you could say that might be the foundation of the entire industrial revolution: &lt;b&gt;increase profit by decreasing care&lt;/b&gt;. &amp;nbsp;It's not hard to see how in an environment like that the joy of work was slowly extinguished over the last century or two.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Many have found a route around this by striking-out into new fields on or just beyond the reach of pure industrialization. &amp;nbsp;This is where I was for quite awhile writing software for personal computers. &amp;nbsp;At the moment that once new pasture has been fenced-in by industrialization, and it has been awhile since I have been able to make a living working on something I care about.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;No Joy.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But I have reasons to believe that there is a way out of this trap. &amp;nbsp;Writing the book and discussing the ideas behind it with a handful of friends has given me some hope that there are still people in the world who want the personal computing experience that I grew up with. &amp;nbsp;The result of &lt;a href="https://jasongullickson.com/1000-ish-true-fans-for-a-non-ai-tech-company.html"&gt;last week's poll&lt;/a&gt; have also boosted my spirits and encouraged me to pursue this, and the reflections on the Beagle Bros. from the post that kicked this whole thing off has added more fuel to the fire.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Each of these things reminds me of why I care about personal computers, and making things for the people who work with them. &amp;nbsp;From that care springs joy, and in my experience, joyful work can accomplish anything.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Type-0 Mark II</title><link>http://preposter.us/single-michigan-helium-network/type-0-mark-ii.html</link><guid>http://preposter.us/single-michigan-helium-network/type-0-mark-ii.html</guid><pubDate>Mon, 02 Mar 2026 08:18:02 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Now that the &lt;a href="https://codeberg.org/jjg/type-o"&gt;Type-0 project&lt;/a&gt; has my attention again I've been revisiting it's design and applying everything I've learned since the last time I worked on it to a new iteration. &amp;nbsp;There's a lot to consider, especially given how much progress I've made on the software side in the process of working on the book for computing devices such as this.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm calling this iteration &lt;b&gt;Type-0 Mark II&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think I'll keep the basic form-factor since I see no reason to change it and I chose it in the first place because I like the simplicity of it. &amp;nbsp;I might streamline it a little because it would be nice if it were easier and more comfortable to tuck it away and carry it. &amp;nbsp;I'm considering allowing the display angle to be adjusted, or maybe to add some "kickstand" feet to allow it to sit at an angle on a table, but I'm not ready to commit to any of that just yet.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm going to keep the mechanical ortholinear keyboard. &amp;nbsp;A quality mechanical keyboard is essential, and the ortholinear layout is simply the most compact option. &amp;nbsp;I also like the ortholinear layout and the main thing holding me back from using it full-time is that right now I can only use them with a stationary setup. &amp;nbsp;That said, I'm going to try to keep the design parametric enough so it's possible to use a QWERTY keyboard should someone else want to go that way.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The display is another matter. &amp;nbsp;Here I'm torn because I like the theoretical simplicity of a character display but reviewing the journal (and revisiting my own memories) working with this display was a significant source of difficulty the last time I tried to work on Type-0. &amp;nbsp;I think the reason is simple: this isn't a popular way to do things. &amp;nbsp;I will probably take another stab at using the character display, but I'm going to timebox it so wrestling with it doesn't derail progress on the entire project again.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If I decide to give-up on the character display, what will I use instead? &amp;nbsp;My first though is one of the commonly available long rectangular graphic LCD's with an i2c interface. &amp;nbsp;I'd prefer something that works better in sunlight that most TFT/LCD displays, which would put e-ink at the top of the list, but I don't think the commonly available e-ink displays are usable for fast typing, and I'm also not sure if they are available in this desired form-factor. &amp;nbsp;There may be another option that is more ideal, but I'll defer the search for when I know I have to perform it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For the primary CPU I'm going to switch from the RP2040 to something ESP32-based. &amp;nbsp;This has a number of advantages like WiFi/Bluetooth support but more importantly it aligns with the hardware I'm standardizing on for my Micro/CircuitPython projects making it easier to share software and simply make things easier for my brain. &amp;nbsp;The ESP32 is so cheap, so common and found in so many devices that I'm comfortable accepting some of the trade-offs until I get around to designing my own chip and building factories to produce it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm considering adding an additional MCU dedicated to the keyboard. &amp;nbsp;I like how the direct GPIO approach reduces the part count, but in practice it creates some serious challenges on the software side and it also just gobbles-up GPIO pins that might be fun to use for other things. &amp;nbsp;It might even be impossible when I switch to an ESP32 board (I'm not sure it will have enough available pins). &amp;nbsp;I really don't like the idea of having to stick another chip/board in there with it's own separate firmware, etc. but on-the-other-hand if I do so, I could standardize all the peripheral I/O on i2c which makes for a much tidier architecture.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Another option if I go this way is to manage the keyboard and the display as a unit and treat them more like a serial terminal. &amp;nbsp;This is interesting in that it's a long-established pattern, but it also feels like it might be overly-constraining and I don't want to make any hardware-level decisions that put more constraint than necessary on how the software works.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Oh what else?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't plan on changing the power supply any more than is needed if I decide to add a dedicated MCU for the keyboard. &amp;nbsp;I'm toying with the idea of supporting replaceable dry cells, or adding solar charging, but I'm not ready to commit to any of that yet. &amp;nbsp;I think if I could add a compartment for replaceable batteries that is optional, but retain the internal rechargeables that would be cool, but I don't want to give-up the rechargeable batteries for replaceable ones. &amp;nbsp;The only reason I'm considering replaceable batteries is for the exceptional situation where USB power is unavailable. &amp;nbsp;I suppose another option would be to expose a port or some terminals that an external power source or battery box could be attached in such an unusual situation, but that will depend on what ESP32 board is selected and what (if any) on-board charging/power management is available.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I had a lot of other cute/clever ideas for the original Type-0 that I'm going to set-aside this time around because I really want to get to something usable that I can take with on a trip this fall. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That's enough for now, I don't want to spend too much time in my head on this before laying my hands on it. &amp;nbsp;With any luck I'll carve-out some time this week to start gathering parts and maybe take a pass at updating the printable parts...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>New repo test</title><link>http://preposter.us/single-michigan-helium-network/new-repo-test.html</link><guid>http://preposter.us/single-michigan-helium-network/new-repo-test.html</guid><pubDate>Mon, 02 Mar 2026 15:06:40 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;Just a quick test after switching the upstream.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Hows the hints working?</title><link>http://preposter.us/single-michigan-helium-network/hows-the-hints-working.html</link><guid>http://preposter.us/single-michigan-helium-network/hows-the-hints-working.html</guid><pubDate>Mon, 02 Mar 2026 15:52:53 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;Another short post to test the freshly-added RSS-hints tags to see if they are going to work without a fight, or if it's going to get messy.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Pepper's First Mistake</title><link>http://preposter.us/single-michigan-helium-network/pepper-s-first-mistake.html</link><guid>http://preposter.us/single-michigan-helium-network/pepper-s-first-mistake.html</guid><pubDate>Tue, 03 Mar 2026 06:41:18 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;So far I've had pretty good luck with the &lt;a href="https://jasongullickson.com/elegoo-centauri-carbon-review.html"&gt;new printer&lt;/a&gt; (Pepper), but this one got away from her.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 20206&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


&lt;video controls&gt;&lt;source src='assets/141-t-800_skull-622811761.mp4'&gt;&lt;/video&gt;</description></item><item><title>Chores</title><link>http://preposter.us/single-michigan-helium-network/chores.html</link><guid>http://preposter.us/single-michigan-helium-network/chores.html</guid><pubDate>Tue, 03 Mar 2026 08:13:02 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;My friend &lt;a href="https://mastodon.social/@gl33p"&gt;Preston&lt;/a&gt; gave me a great bit of advice yesterday:&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;"I've done the dishes and made the bed as a preemptive strike against accomplishing nothing today - so no matter what happens now I have at least that going for me"&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This might sound trite or silly but I think it's &lt;b&gt;genius&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm often left at the end of the day feeling like I've accomplished nothing, or even moved in reverse from where I was the day before. &amp;nbsp;It's exhausting and demoralizing. &amp;nbsp;But a simple practice like this can really make a difference.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;During the pandemic Jamie &amp;amp; I started making the bed on a daily basis for the first time in as long as I can remember. &amp;nbsp;I'm not sure what sparked it off, but it was very helpful because it was one constant during an incredibly chaotic time. &amp;nbsp;Today doesn't feel a lot less chaotic to be honest, so adding a few more rituals to the mix might be just what's needed.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When the weather becomes less obstructive I might add a walk to the lake to the list. &amp;nbsp;I think I could really use to hear some waves before I engage with capitalism each day.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Instigator</title><link>http://preposter.us/single-michigan-helium-network/instigator.html</link><guid>http://preposter.us/single-michigan-helium-network/instigator.html</guid><pubDate>Tue, 03 Mar 2026 09:42:41 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I'm not sure if that's the right word for it, but I'm learning that my role, at this point of my life, might be to show a glimpse of &lt;i&gt;what is possible,&lt;/i&gt; as an antidote to the status quo.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The solutions I propose are often described "&lt;i&gt;extreme&lt;/i&gt;", "&lt;i&gt;impractical&lt;/i&gt;" or "&lt;i&gt;overkill&lt;/i&gt;". &amp;nbsp;They are often misunderstood or ignored by the people who seem to need them most and as such, are rarely fully realized.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Over the course of my career I've made attempts to adapt myself to meet other's expectations or accommodate them, but it never works out. &amp;nbsp;No matter how hard I try to reel myself in, my ideas are almost always still too "&lt;i&gt;far-out&lt;/i&gt;", and the process makes me miserable as well. &amp;nbsp;This used to frustrate me, but now I'm starting to wonder if it's &lt;b&gt;OK&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Maybe my role is to share and demonstrate ideas so far out that nobody will consider using them immediately, but knowing they exist might cause them to push themselves a little further outside of their comfort zone than they would otherwise do? &amp;nbsp;Or maybe they won't accept my ideas now, but maybe in the future they won't seem quite so unreasonable and the memory of the idea will inspire them to try something new.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;With this framing, the experience is less frustrating but it begs the question: who is going to pay for this? &amp;nbsp;Personally I have no mercenary desires, but I do have to find some way to keep paying for food, shelter, etc. &amp;nbsp;Perhaps my more clever employers understood this value before I ever did and kept me around for just this reason, while others chose not to.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Type-0 Mark II: Display Choices</title><link>http://preposter.us/single-michigan-helium-network/type-0-mark-ii-display-choices.html</link><guid>http://preposter.us/single-michigan-helium-network/type-0-mark-ii-display-choices.html</guid><pubDate>Tue, 03 Mar 2026 15:58:16 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;As I dive into the &lt;a href="https://jasongullickson.com/type-0-mark-ii.html"&gt;Mark II&lt;/a&gt; changes the choice of display is at the top of my list. &amp;nbsp;Why? &amp;nbsp;Because the dimensions of the device dictate a lot about the case dimensions and until that's sorted I can't complete the design of the printable parts.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What I know for sure is that I want something with an i2c interface. &amp;nbsp;I learned the hard way that adapting an i2c "backpack" to a display it wasn't designed for is not the path to happiness and while it might be possible, solving that particular problem isn't something I want on the short path I have to getting to something that works (May 1st!).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Another constraint I'm throwing-in is that the display be compatible with Micro/CircuitPython, because as much fun as writing drivers for either of those is (I've done a few), it's time-consuming and if I need to purchase a display anyway, why make it any harder on myself than it has to be?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What I haven't decided is whether or not this should be a character or graphical display. &amp;nbsp;My instinct is to go with a character display like the one I already have because it seems like this would put far less demand on the limited resources of the CPU/memory of the main processor, but my initial searches for parts is indicating that my options for a character display with the dimensions I'm interested in may be limited.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Not so fast...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Maybe I can use the LCD I already have if I skip using i2c and go direct. &amp;nbsp;I just found this example of using such a display with an Arduino and it only takes one more GPIO to drive the 4x40 display than it does to drive the smaller ones, something like a total of seven lines?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://forum.arduino.cc/t/info-on-how-to-use-40x4-lcd/537453"&gt;https://forum.arduino.cc/t/info-on-how-to-use-40x4-lcd/537453&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If that's right, it's not a lot more than the i2c backpack I've been using which only provides a single enable line (which is probably why I couldn't get it to work).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I might try this out and see if I can get the original LCD to work. &amp;nbsp;The only kink I can think of is voltage mismatch between the ESP32 board and the LCD (I can't remember off-hand if the LCD is 5V or 3.5V).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Something's Different Around Here</title><link>http://preposter.us/single-michigan-helium-network/something-s-different-around-here.html</link><guid>http://preposter.us/single-michigan-helium-network/something-s-different-around-here.html</guid><pubDate>Wed, 04 Mar 2026 07:05:17 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;You may have noticed a change in tone in this blog since the first of the year. &amp;nbsp;That's a deliberate thing, here's the story behind it.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Near the end of 2025 I was talking to Jamie about how inescapable the horror of what has become of America is. &amp;nbsp;I'm not someone who wants to stick their head in the sand and in fact I spend a lot of time studying, fighting against and working to build solutions to these problems. &amp;nbsp;But even I need a break and one place I used to be able to get that was in the &lt;i&gt;fun and weird and beautiful corners of the web.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As the web receded into a handful of systems controlled by the same people destroying America (and the rest of the world, but I can't speak from experience there) it became impossible to spend five minutes on the Internet without being forced to think about them, what they are doing and how you are going to stop them.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Something I've learned a lot about over the last few years is control. &amp;nbsp;As someone who primarily works with things and systems made by people, I was able to spend most of my life believing that if you learned the system you could control it, and if you were in control, you were safe. &amp;nbsp;What has become abundantly clear to me in these later years of my life is that outside of extremely narrow, artificial environments control is an illusion. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This is a good thing, because the desire for control is the root of many evils, and the belief that you can somehow coerce the natural world to be under your control is not only wrong but a dangerous disease of the mind.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;So what to do? &amp;nbsp;How to find reliable pockets of joy where one can rest, recover and restore capacity to continue working on a better world?&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;While there's very little I can control (and there's many good reasons not to even try) this blog, and particularly the writing that appears on it is something I have a lot of control over (at least as much as I have any control over myself). &amp;nbsp;So I decided that in 2026 this would be &lt;b&gt;one place on the Internet where people could go to see something cool or fun or interesting (or maybe confusing) without being subjected to the horrors of reality&lt;/b&gt;. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I didn't stop thinking about these things, I didn't stop writing about them and I certainly haven't stopped working on ways to make them better, but for at least one year I'm going to do all of that somewhere else, and if it goes well maybe I'll keep it this way.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Miniblogging</title><link>http://preposter.us/single-michigan-helium-network/miniblogging.html</link><guid>http://preposter.us/single-michigan-helium-network/miniblogging.html</guid><pubDate>Wed, 04 Mar 2026 07:36:14 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Something else that I decided to do for 2026 is write one post per day. &amp;nbsp;This is turning out to be more of an average as opposed to a single post every day because frankly, there's been a few days this year that I just couldn't write anything &lt;i&gt;good&lt;/i&gt;.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Before this change my posts were a mix of longer posts describing a project in detail (often step-by-step) or posts that were a single photo or a couple lines of text. &amp;nbsp;As I embarked on this one-post-a-day journey I noticed some changes in my writing here.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The first thing that became clear was that long, detailed, heavily-edited posts were not likely to fit into the limited time I have to write each day and I had to quickly abandon the standards I had when it came to writing those. &amp;nbsp;What was more of a surprise is that the posts that would have been short notes became longer, because when I relaxed my standards for writing more, I found that I could write more freely about thoughts and ideas that were not fully-formed or realized with a project or experiment, etc. &amp;nbsp;I also cut myself some slack on proof or references, not that I can't produce these but I'm leaving that for more formal documents like project plans, code repositories, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Now that I'm into the third month of writing like this a unique (at least to me) and somewhat consistent form is beginning to emerge. &amp;nbsp;It's shorter and looser than what I'd consider an essay or a blog, but it's more than a tweet or a toot (microblogging), so let's call it a &lt;b&gt;miniblog&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;This is of course a reference to the often overlooked class of computers called "&lt;a href="https://en.wikipedia.org/wiki/Minicomputer"&gt;minicomputers&lt;/a&gt;", which are loosely defined as "smaller than a &lt;a href="https://en.wikipedia.org/wiki/Mainframe_computer"&gt;mainframe&lt;/a&gt;, bigger than a &lt;a href="https://en.wikipedia.org/wiki/Microcomputer"&gt;microcomputer&lt;/a&gt;".&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="cid:d780c39a-48df-4812-a4a4-6f91d51907eb"&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;The PDP-8, one of the most iconic minicomputers&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm sure I'm not the first person to use the term miniblog but without having even done a web search it's not a term I've heard used before, and as a term for the form that is evolving here, it's a very nice fit for the &lt;a href="https://preposter.us/"&gt;Preposter.us&lt;/a&gt; blog system.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I wrote Preposter.us for a lot of reasons, almost entirely personal, so it fits the way I want to work very well but I will admit that there were times in the past where it's workflow gave me some headaches when working on longer, detailed posts that would have benefited from more editing, structure, formatting and tighter control over how media is integrated into the layout. &amp;nbsp;Writing like that pushes Preposter.us out of it's comfort zone and it becomes less fun.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;At the other end of the spectrum, "microblog" posts are so small that Preposter.us's automatic formatting leaves much to be desired. &amp;nbsp;Two sentences don't really need a two or three-column layout, and I'm not good enough with CSS to fix that.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But in-between those extremes Preposter.us really shines!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Over the years I've daydreamed about making Preposter.us better and finding an audience for it who would make it a project that might help me get out from under the boot of the tech industry. &amp;nbsp;While I've met some people who "&lt;i&gt;get it&lt;/i&gt;", I've had a hard time articulating why it's an alternative to the heavy-duty blogging systems like &lt;a href="https://wordpress.com/"&gt;Wordpress&lt;/a&gt; or &lt;a href="https://ghost.org/"&gt;Ghost&lt;/a&gt; or the microblogging platforms like &lt;a href="https://mastodon.social/explore"&gt;Mastodon&lt;/a&gt;. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This realization of the form that I'm deveoping in 2026 and the term &lt;b&gt;miniblogging&lt;/b&gt; might be a piece of that puzzle.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>ESP32 Dual-Mode WiFi</title><link>http://preposter.us/single-michigan-helium-network/esp32-dual-mode-wifi.html</link><guid>http://preposter.us/single-michigan-helium-network/esp32-dual-mode-wifi.html</guid><pubDate>Thu, 05 Mar 2026 09:14:31 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;While brushing-up on the capabilities of the ESP32 module and Micropyhon I ran across a surprise: The ESP32 can function as both the client of an existing WiFi network (ST mode) and a WiFi access point for other devices (AP mode), and &lt;a href="https://github.com/orgs/micropython/discussions/18135"&gt;Micropython provides support&lt;/a&gt; for this.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I could be wrong, but I'm pretty sure this is new with the ESP32 (when I've worked with older ESP devices I thought you had to choose one more or the other). &amp;nbsp;Maybe the ESP32 has multiple radios or something?&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In any event this solves a problem I've had with designing devices around these chips in the past. &amp;nbsp;AP mode is a somewhat convinient way to solve the chicken-and-egg problem of getting these things on an existing WiFi network, because you can create a "fixed" network on the device that you can then connect to from a laptop, phone, etc. to configure it, then switch it over to be a client of the established network without having to try and configure it using controls on the device itself (I'm sure you've used a printer or thermostat or something that is setup this way).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The problem is that with the either/or mode you have to connect to the device's access point, configure it, then cross your fingers and hope it connects to the shared access point. &amp;nbsp;If it fails you have to start over and on many devices this requires several steps. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Dual-mode solves this by allowing the device to try connecting to the shared network without disconnecting you from the device's "private" network. &amp;nbsp;This way it can try connecting and if it fails, provide immediate feedback so you can keep trying until it works.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This capability opens the door for other applications as well. &amp;nbsp;I've worked on several projects where having "private" network for a few devices and a shared "public" network would be helpful. &amp;nbsp;I'm often designing devices and systems that I want to be useful without an Internet connection, but that can also make use of an Internet connection when one is available. &amp;nbsp;With Dual-mode, I could have one or more devices connect to a single device in AP mode normally, and when an Internet network is available, that device can connect to the Internet as well, allowing the devices on the private network to exchange data with Internet hosts without having to be reconfigured.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I feel like I'm doing a poor job of explaining this, partially because I'm deliberately avoiding talking about a specific example because I'm not yet ready to talk about it. &amp;nbsp;More to come!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Preparing Bruce</title><link>http://preposter.us/single-michigan-helium-network/preparing-bruce.html</link><guid>http://preposter.us/single-michigan-helium-network/preparing-bruce.html</guid><pubDate>Fri, 6 Mar 2026 12:35:08 -0600</pubDate><description>&lt;html class="apple-mail-supports-explicit-dark-mode"&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=us-ascii"&gt;&lt;/head&gt;&lt;body dir="auto"&gt;&lt;img alt="image0.jpeg" src="assets/148-image0.jpeg"&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</description></item><item><title>Downlink 2026-03-06</title><link>http://preposter.us/single-michigan-helium-network/downlink-2026-03-06.html</link><guid>http://preposter.us/single-michigan-helium-network/downlink-2026-03-06.html</guid><pubDate>Fri, 06 Mar 2026 14:34:11 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.youtube.com/watch?v=sN9quQ-ox2U&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://ministryband.bandcamp.com/album/trax-box&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://social.coop/@coopcloud/116108321969101076&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://tv.lumbung.space/w/nzuB248U2LQA1LCn7vYmER&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://rasterweb.net/music/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://simonrepp.com/faircamp/linux.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://codeberg.org/simonrepp/faircamp&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.waveshare.com/wiki/LCD1602_I2C_Module&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://chrysalide-fr.bandcamp.com/album/personal-revolution&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://marchintosh.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://jasongullickson.com/the-typing-machine.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/TRS-80_Model_100&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?t=ffab&amp;amp;q=Olivetti%20M-10&amp;amp;ia=images&amp;amp;iax=images&amp;amp;iai=https%3A%2F%2Fceis.be%2Fwp-content%2Fuploads%2F2022%2F04%2F3_olivetti_m10gauche.jpg&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.historybit.it/timeline/olivetti-m10/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://codeberg.org/jjg/type-o&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ebay.com/sch/i.html?_nkw=wide%20display%20module&amp;amp;_sacat=0&amp;amp;LH_TitleDesc=0&amp;amp;_odkw=wide%20tft%20i2c&amp;amp;_osacat=0&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ebay.com/itm/305674804407?_skw=wide%20display%20module&amp;amp;itmmeta=01KJTSMWA5JWTPX1SKJVQ7GTFT&amp;amp;itmprp=enc%3AAQALAAAA0GfYFPkwiKCW4ZNSs2u11xA12zKH5j2V%2B4IZ16X5AQhiNIfnU6epsRkF1wbuXJUuNGKOVJT5RYPe%2BgFGyY0ybXgFflIoYJIG%2FTQC5UiuKqWyOXL%2BqmTkPSIgCNjq9%2BBIq0bgLzplBRO9Idb2rwzHFpnJu1j1NJ3RMG%2BURpbCqERFcpnhbbfJkOKsPVutvwZfDVHoPR783ldiddGE9qwkegs5zJppB8c9dvl4ddJxr3XnV5Bt%2F8XZbWXLF6Ps14d%2Fbac7wpHbV%2BEwTq%2FCcw%2B5MWU%3D%7Ctkp%3ABk9SR6jF09mWZw&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ebay.com/itm/286012008851?_skw=wide%20display%20module&amp;amp;itmmeta=01KJTSMWA43KHNQTSMK0P9NTG1&amp;amp;itmprp=enc%3AAQALAAAA0GfYFPkwiKCW4ZNSs2u11xD87OCfaj673aNwFi4BXPKPfFPEMkmn6ZlxoXEW%2FbxOACLyP0aQ%2FqTpYXMOBPdaVOSzUO68f%2F0AE4F4Ld4TUmi7e5t7Y0e2AxaEAeUMZGp0lI9z0EoxR125ahytvNK6HiV856Hj8zJhXAGl%2FHsFWKVyk3Riga1ZlbXW4NFBP8o%2FoBvZlmFkK3r1wYvSrH4X%2BTXd%2BKuf8V1bopqFUgC5dcTLxcFRSd0SI%2FvDlIBopVKhnwAB8gyfcVYCiZGNE%2B%2FhdYE%3D%7Ctkp%3ABk9SR6jF09mWZw&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/miniflux/v2&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://miniflux.app/docs/binary_installation.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://evilgeniuschronicles.org/posts/2026/02/27/evil-genius-chronicles-podcast-for-february-27-2026-how-clean-can-your-hands-be-in-this-dirty-dirty-world/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://html.spec.whatwg.org/dev/links.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://codeberg.org/jjg/preposter.us&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.kickstarter.com/projects/sc96/3d-printable-arduino-cnc-plotter&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://merveilles.town/about&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://wiki.xxiivv.com/site/discourse.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://jobs.wisc.edu/jobs/research-systems-engineer-madison-wisconsin-united-states-7b625d6a-e753-459c-abf3-4a389ba253fc&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://forum.arduino.cc/t/info-on-how-to-use-40x4-lcd/537453&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/PDP-8&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://terminator.fandom.com/wiki/Nuclear_power_cell&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://jobs.qpsemployment.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://jobs.qpsemployment.com/jb/CNC-Set-Up-Machinist-Jobs-in-Whitewater-WI/13704494&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://qpsemployment.com/about-staffing-recruiting/join-our-internal-team/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://picoide.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/BelfrySCAD/BOSL2/wiki/hinges.scad&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://cs.stanford.edu/~knuth/papers/claude-cycles.pdf&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Three_Chords_and_the_Truth&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://innovationyourself.com/esp32-wifi-sta-and-ap-mode/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?t=ffab&amp;amp;q=esp32%20ap%20and%20station%20mode%20simultaneously&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?t=ffab&amp;amp;q=esp32%20micropython%20wifi%20dual%20mode&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/orgs/micropython/discussions/18135&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Useless_machine&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Bruno_Munari&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Futurism&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Manifesto_of_Futurism&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?t=ffab&amp;amp;q=claude%20shannon%20useless%20machine&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://la-machine.fr/en/history&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://futurismo.commons.gc.cuny.edu/from-ideas-to-manifestation-how-words-changed-a-nation/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://bylinetimes.com/2025/12/05/how-epstein-channelled-race-science-and-climate-culling-into-silicon-valleys-ai-elite/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://grith.ai/blog/clinejection-when-your-ai-tool-installs-another&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?t=ffab&amp;amp;q=twisted%20sister%20under%20the%20blade%20lyrics&amp;amp;ia=web&amp;amp;iax=lyrics&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://jkflesh.bandcamp.com/album/im-your-beggar&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/ArmaLite#Products&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Irish_Republican_Army&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>The Heart</title><link>http://preposter.us/single-michigan-helium-network/the-heart.html</link><guid>http://preposter.us/single-michigan-helium-network/the-heart.html</guid><pubDate>Sat, 07 Mar 2026 08:35:14 -0600</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I've had &lt;a href="https://jasongullickson.com/se-3d-introduction.html"&gt;more&lt;/a&gt; &lt;a href="https://jasongullickson.com/growing-solar.html"&gt;than&lt;/a&gt;&amp;nbsp;&lt;a href="https://jasongullickson.com/type-0-mark-ii.html"&gt;a&lt;/a&gt; &lt;a href="https://jasongullickson.com/the-digital-bug-out-box.html"&gt;few&lt;/a&gt; &lt;a href="https://jasongullickson.com/the-general-purpose-communicator.html"&gt;ideas&lt;/a&gt; which share the common attribute of being "smart devices", and in general I've treated them as individual efforts with no deliberate shared components. &amp;nbsp;Lately I've been digging-deeper into a specific project and it's evolving into more of a system of components that work together to for different shapes of useful things.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This is the "product" view, or whatever you want to call the perspective of a person who is working with the thing.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As I see it more as a system from the product perspective I start to see how from a technical or hardware perspective the pieces have similarities that could be shared as well. &amp;nbsp;It's a little different because from this perspective, the similarities are not &lt;i&gt;parallel&lt;/i&gt; to the product similarities but often &lt;i&gt;orthogonal&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;By default I have an aversion to this sort of thinking, because it has a whiff "industrial efficiency", which is responsible for so many evils of our time. &amp;nbsp;So I'm taking this slowly and cautiously to make sure any choices I make are firmly rooted in producing a superior tool of the highest quality and not simply a way to make things cheaper/easier/faster/etc.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;At the center of this is the &lt;a href="https://en.wikipedia.org/wiki/ESP32"&gt;ESP32&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/MicroPython"&gt;Micropython&lt;/a&gt;. &amp;nbsp;As much as I'd prefer a more open piece of hardware there's no denying the availability of the ESP line of MCU's. &amp;nbsp;Not only are they cheap and plentiful now, if the supply of new chips becomes threatened there are countless consumer devices containing these modules. &amp;nbsp;At one time I was deeply invested in the &lt;a href="https://collapseos.org/"&gt;CollapseOS&lt;/a&gt; project which was built around the &lt;a href="https://en.wikipedia.org/wiki/Zilog_Z80"&gt;Z80&lt;/a&gt; microprocessor for similar reasons, but at this point I'd be willing to bet there are more salvageable ESP modules out there than Z80's.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Something else the ESP has going for it is the recent switch to the &lt;a href="https://en.wikipedia.org/wiki/RISC-V"&gt;RISC-V&lt;/a&gt; ISA, which means that it has a CPU core that can be synthesized in relatively small &lt;a href="https://en.wikipedia.org/wiki/Field-programmable_gate_array"&gt;FPGA&lt;/a&gt; fabrics. &amp;nbsp;Using Micropython provides a much higher-level portable abstraction but for me it's encouraging that even though the ESP itself is proprietary, some of it could be recreated out of generic logic if it came to that.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The last thing I'll say about the ESP is that it's often used as a module that can be used in one project and "recycled" into another fairly easily. &amp;nbsp;This makes it particularly attractive to designers like me who aim for &lt;a href="https://en.wikipedia.org/wiki/Cradle-to-cradle_design"&gt;cradle-to-cradle&lt;/a&gt; hardware.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Micropython pairs well with the ESP by providing a consistent and portable layer over the top of the ESP's proprietary hardware. &amp;nbsp;If I had to move everything from the ESP to another device it is at worst an exercise in porting only Micropython and at best simply copying the firmware from one device to another.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;There are, of course, potential exceptions if I use hardware features of the ESP that simply don't exist on other devices, but I do my best to avoid those.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I spent a lot of time considering this layer of the system and very seriously considered writing a new programming language for it. &amp;nbsp;That may still happen someday, but right now Micropython strikes a solid balance between the type of stability and dynamism I want at this layer of the system. &amp;nbsp;Unlike regular Python, Micropython has a narrow and stable language surface area and an integrated module/package system whose modules are more like device drivers than the vast library of overlapping packages available for standard Python.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Micropython also provides a &lt;a href="https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop"&gt;REPL&lt;/a&gt;, a user interface not unlike the 8-bit microcomputers I grew-up with which ran &lt;a href="https://en.wikipedia.org/wiki/BASIC"&gt;BASIC&lt;/a&gt;. &amp;nbsp;It's hard to explain this to people who grew-up with seeing programming distinct from using a computer but on something like a &lt;a href="https://en.wikipedia.org/wiki/VIC-20"&gt;VIC-20&lt;/a&gt; when you turn it on the first thing you see is a prompt looking for you to write some BASIC code. &amp;nbsp;This code can be a complete program or it can be a simple as a few functions that well... &lt;i&gt;function&lt;/i&gt; like what most people would call commands like loading a file from tape or changing the video mode.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;An ESP running Micropython functions almost exactly like this, and provides what could be called an operating system for the MCU. &amp;nbsp;With no software other that Micropython you can list the files in a directory, run a program, join a WiFi network, etc. &amp;nbsp;It's just like the old 8-bit machines except with Python instead of BASIC. &amp;nbsp;Having this fundamental foundation available no matter what other software or role the ESP plays in the device is incredibly enabling and gives the person using the device much more power than typical consumer hardware.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Having this combination at the heart of a system of devices creates a broad range of possibilities, but what's most exciting to me are the ones that I haven't yet or simply cannot imagine. &amp;nbsp;The idea of producing a range of devices that are useful out-of-the-box, but contain the potential to be combined and customized in ways that I would have never considered is very exciting to me, and I think could help address some of the worst problems we have with the way these devices are used to limit and abuse humanity.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>PAVE Sweet Thanks 2026</title><link>http://preposter.us/single-michigan-helium-network/pave-sweet-thanks-2026.html</link><guid>http://preposter.us/single-michigan-helium-network/pave-sweet-thanks-2026.html</guid><pubDate>Sun, 8 Mar 2026 15:57:58 -0500</pubDate><description>


&lt;a href='assets/151-img_0234_snapseedcopy.jpg'&gt;&lt;img src='assets/151-img_0234_snapseedcopy.jpg'&gt;&lt;/a&gt;</description></item><item><title>Mr Blowey</title><link>http://preposter.us/single-michigan-helium-network/mr-blowey.html</link><guid>http://preposter.us/single-michigan-helium-network/mr-blowey.html</guid><pubDate>Mon, 09 Mar 2026 19:08:14 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;We have an air cleaner that makes a lot of white noise at home, so when we travel we have a hard time falling asleep without it. &amp;nbsp;Out of desperation we found an app that generates various fan noises but I was shocked to realize that it requires a subscription, and that &lt;b&gt;the subscription is $30&lt;/b&gt;!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So instead I recorded our air cleaner, and tidied up the ends so it should loop OK. &amp;nbsp;I haven't even listened to this yet so you might hear it before I do.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


&lt;audio controls&gt;&lt;source src='assets/152-mr-blowey.mp3'&gt;&lt;/audio&gt;</description></item><item><title>Small Fixes</title><link>http://preposter.us/single-michigan-helium-network/small-fixes.html</link><guid>http://preposter.us/single-michigan-helium-network/small-fixes.html</guid><pubDate>Tue, 10 Mar 2026 06:50:06 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I wrote a little daemon that collects data from our backyard weather station and stores it in a local database. &amp;nbsp;The station has it's own cloud service that does this, but I feel like weather data is precious enough to keep a local copy.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Sometimes the daemon stops running. &amp;nbsp;I don't know exactly why, and I could probably add some logging to find out, but right now I don't have time so I needed to do something quickly to avoid loosing data silently.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm using &lt;a href="https://systemd.io/"&gt;Systemd&lt;/a&gt; to run the daemon which gives you a lot of options when it comes to how to start, stop and restart something so I spent the five spare minutes I had this morning looking to see if there was something I could fiddle with to resolve this for now. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I know that when the daemon is stopped, restarting it has always worked, so it surpried me that the original unit file wasn't sufficient:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;[Unit]&lt;/div&gt;&lt;div&gt;Description=Logs weather data from AmbientWeather stations to a database&lt;/div&gt;&lt;div&gt;After=multi-user.target&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;[Service]&lt;/div&gt;&lt;div&gt;User=jason&lt;/div&gt;&lt;div&gt;ExecStart=/usr/local/bin/awnet-receiver&lt;/div&gt;&lt;div&gt;Type=simple&lt;/div&gt;&lt;div&gt;Restart=always&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;[Install]&lt;/div&gt;&lt;div&gt;WantedBy=multi-user.target&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;With this file in place I'd still find the service stopped, so why didn't Systemd restart it?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Looking more closely at the logs I noticed that Systemd was restarting it, but after restarting and failing a certain number of times, Systemd gave up. &amp;nbsp;These restarts were happening very quickly (many times a second), so if the problem was connecting to the database it's easy to imagine that the problem wasn't resolved within less than a second.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I reviewed the Systemd docs and found a few more parameters that might help, here's the updated [Service] section of the unit file:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;[Service]&lt;/div&gt;&lt;div&gt;User=jason&lt;/div&gt;&lt;div&gt;ExecStart=/usr/local/bin/awnet-receiver&lt;/div&gt;&lt;div&gt;Type=simple&lt;/div&gt;&lt;div&gt;Restart=always&lt;/div&gt;&lt;div&gt;RestartSec=15&lt;/div&gt;&lt;div&gt;StartLimitBurst=20&lt;/div&gt;&lt;div&gt;StartLimitIntervalSec=300&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I added the following parameters to see if it helps:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;RestartSec&lt;/b&gt; - The number of seconds to wait before restarting&lt;/div&gt;&lt;div&gt;&lt;b&gt;StartLimitBurst&lt;/b&gt; - The maximum number of times to try restarting&lt;/div&gt;&lt;div&gt;&lt;b&gt;StartLimitIntervalSec&lt;/b&gt; - The maximum amount of time to allow for restarts&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't know what the default values for these are, but based on what I saw in the logs this should spread-out the restart attempts a lot more. &amp;nbsp;Given that I suspect database connectivity to be the problem, this should give that connectivity a lot more time to resolve before giving-up on starting the service.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I put-off doing anything about this for awhile because I wanted to take a more surgical approach to understanding exactly what is wrong and learning more about Systemd to see if there's more sophisticated ways of addressing it, but in the process I lost almost a month of data. &amp;nbsp;Sometimes a tactical approach is better, especially if time is a factor, and you can always improve things once you've bought yourself more time.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Solar Surveyor</title><link>http://preposter.us/single-michigan-helium-network/solar-surveyor.html</link><guid>http://preposter.us/single-michigan-helium-network/solar-surveyor.html</guid><pubDate>Wed, 11 Mar 2026 07:14:14 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I make a lot of experimental solar-powered things and one part about it that is hard is knowing if there will be enough sunlight to effectively power a device. &amp;nbsp;There are tools and such for figuring out the amount of sun that might hit a particular spot, but in the wild there's a lot of other factors like trees and buildings and such that these tools can't accurately model.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The most reliable way I've found to determine the viability of a solar-powered setup is to over-provision or to just set up up and see how it goes. &amp;nbsp;Both of these can be wasteful and expensive if things don't go your way.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The solution I've come up with is the &lt;b&gt;Solar Surveyor&lt;/b&gt;. &amp;nbsp;A small solar panel with an embedded computer that you can place anywhere you are considering gathering sunlight for a solar-powered project. &amp;nbsp;The surveyor gathers sunlight and records data over an (ideally extended) period of time and produces a report to determine the feasibility of the site and help you correctly configure an efficient system for use on that site.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ideally the surveyor is small and light so that it is easily deployed in a wide-range of areas. &amp;nbsp;I'm thinking around 6x6" square and as thin as is practical. &amp;nbsp;It will need some method of attachment, perhaps magnetic in addition to mechanical such as a hanging hook, mounting holes, etc. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The solar panel is of either &lt;a href="https://en.wikipedia.org/wiki/Crystalline_silicon"&gt;crystalline&lt;/a&gt; or &lt;a href="https://en.wikipedia.org/wiki/Amorphous_silicon"&gt;amorphous&lt;/a&gt; type (one of each would be useful, maybe double-sided?) rated for somewhere around 500mA and 5-12 VDC. &amp;nbsp;These requirements are flexible but they should be consistent and sufficient to power the device.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The panel is connected to an &lt;a href="https://en.wikipedia.org/wiki/Maximum_power_point_tracking"&gt;MPPT&lt;/a&gt; charge controller which charges a lithium-ion battery and provides power to the computer and it's perephreals. &amp;nbsp;The charge controller provides power in/out and state-of-charge information via i2c to the computer. &amp;nbsp;Depending on the output this power supply may include a buck/boost converter). &amp;nbsp;The computer is a common &lt;a href="https://jasongullickson.com/the-heart.html"&gt;ESP32&lt;/a&gt; development board with an SD card slot and realtime clock.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A handful of sensors round-out the hardware configuration and these include accurate temperature sensors arranged to capture front-side, back-side and ambient temperatures as well as humidity. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I'm not sure how much of a factor humidity is in solar power system efficiency but I seem to remember something about this and sensors are cheap.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;An accelerometer might be a good idea as well to easily capture both the position of the panel as well as any shock or movement it's subjected to during the survey.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;On the software side Micropython is installed on the ESP32 and a custom Python program monitors and records charge controller and sensor array data to the SD card. &amp;nbsp;Optionally the ESP32 can be configured to connect to a nearby WiFi network to synchronize this data periodically when sufficient power is avaliable.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In addition to gathering raw data the software can begin producing a suitability report after the first 24 hours of deployment. &amp;nbsp;The first report provides a simple Watt-hour budget that can be used to determine if the site can produce enough electricity in a day to power your project. &amp;nbsp;If the surveyor is left for a week it will produce a more detailed report with daily and weekly averages, and if left deployed long enough the report will include seasonal impacts as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Beyond the basic power budget report, additional analysis is provided:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* The most suitable panel type for the site&lt;/div&gt;&lt;div&gt;* The temperature changes and physical shock a panel array will be subjected to&lt;/div&gt;&lt;div&gt;* The acceptable battery chemistries based on temperature and power input characteristics&lt;/div&gt;&lt;div&gt;* Realistic runtime measurements for a lightweight digital computing system&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There's probably more that could be derived from the data but I don't want to overcomplicate things or put too much load on the device (deeper analysis could be done offline). &amp;nbsp;The primary goal of the device is to make it easy to decide whether or not a site is suitable to provide solar power to a project and what amount of power production can be depended on. &amp;nbsp;Exactly how this is communicated should be as simple as possible, and beyond the raw numbers I can think of a couple of fun ways to allow someone to plug-in various variables and configuration options for their project to get immediate feedback on the design.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Good Tools</title><link>http://preposter.us/single-michigan-helium-network/good-tools.html</link><guid>http://preposter.us/single-michigan-helium-network/good-tools.html</guid><pubDate>Thu, 12 Mar 2026 08:22:21 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I'll admit that I'm probably pickier about tools than I need to be. &amp;nbsp;I've owned and worked with plenty of tools, both good and bad, but I can't say I've ever regretted investing in a good tool.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The thing about good tools is that you can trust them, and when you can trust a tool, you can push both the tool and yourself a &lt;i&gt;lot&lt;/i&gt; further. &amp;nbsp;It's not just that a good tool is physically capable of more but also, and perhaps more importantly, you don't waste your time and energy worrying about and preparing for the tool to fail. &amp;nbsp;A bad tool &lt;i&gt;might&lt;/i&gt; not fail, but you waste a lot of time and energy compensating for that "might"" by both taking it easy on the tool while working with it and preparing yourself to deal with the fallout should the bad tool fail.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When I'm working with a good set of tools I can easily achieve a "flow state" because my mind is occupied only with the task at hand and the tools become invisible, or maybe a better way to put it is the tools &lt;i&gt;become a part of me&lt;/i&gt;. &amp;nbsp;I'm not preoccupied with what I'm going to do if the tool fails. &amp;nbsp;I push the tools as hard as I can because I don't have to be afraid of bashing my knuckles or ruining the workpiece when a driver strips or a bit breaks. &amp;nbsp;When I feel something push-back I know it's the material and not the tool and I can listen to and respond to this feedback knowing that it's &lt;b&gt;what the material demands, not a limitation of the tool&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Working like this is a &lt;b&gt;deeply satisfying&lt;/b&gt; experience and produces work of the &lt;b&gt;highest Quality&lt;/b&gt;. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;How can you tell the difference between a good tool and a bad tool before you choose it? &amp;nbsp;Good tools &lt;i&gt;do&lt;/i&gt; tend to cost more (although this isn't the most reliable way to choose). &amp;nbsp;There's two things that bad tools will often claim to do, regardless of what they're used for:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* Do everything&lt;/div&gt;&lt;div&gt;* Do it faster&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I could probably write a book about why anything that makes those two claims is something to avoid, but I'll leave that for another time. &amp;nbsp;Suffice it to say if you avoid tools with words like those on the package, your chances of getting a good tool are much better.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It might surprise you to learn you don't have to spend a lot on good tools. You can save some money buying used tools, and if you can find a really old one, they're often very good because &lt;b&gt;bad tools don't last&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;But can't good tools fail?&lt;/i&gt; &amp;nbsp;I suppose they can, but in my experience it's so incredibly rare that it never crosses my mind while working. &amp;nbsp;More often it is I who fails when working with good tools and that's OK because when I fail I can &lt;i&gt;learn from the experience&lt;/i&gt;. &amp;nbsp;When I fail, it can make me better but when a bad tool fails it's just another piece of broken junk that I have to clean-up after.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>The Humane (network service) Interface</title><link>http://preposter.us/single-michigan-helium-network/the-humane-network-service-interface.html</link><guid>http://preposter.us/single-michigan-helium-network/the-humane-network-service-interface.html</guid><pubDate>Fri, 13 Mar 2026 09:12:43 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;All network services I'm aware of speak a language that is geared towards machines. &amp;nbsp;Some are pure binary protocols that are indecipherable to (most) humans without translation while others (REST, SMTP) are a bit more readable, but they are all intended for machine consumption.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A &lt;b&gt;Humane Network Service Interface&lt;/b&gt; (HNSI) flips this script and is designed to be used primarily by humans with provisions to support machine consumption.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;What do I mean by network service? &amp;nbsp;A network service is a computer program that is shared on a network for others to use. &amp;nbsp;A webserver provides a network service over the HTTP protocol, an email server provides a network service over the SMTP protocol. &amp;nbsp;There are many other types of services and protocols, and programmers do interact with them directly using tools like curl and jq, but most people never interact directly with these services but instead use software like web browsers and mail clients to communicate with these shared network services.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Interacting with a HNSI is essentially like interacting with any text-oriented program or command, the only difference is that you must connect to the service on a shared system as opposed to running a program or command on your own computer. &amp;nbsp;Once a connection is made there's two primary modes of interaction:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* One-shot&lt;/div&gt;&lt;div&gt;* Conversation&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A one-shot service accepts everything it needs to provide the service at once, and provides it's reply in a single response. &amp;nbsp;A conversational service expects there to be some back-and-forth, accepting a piece of input from you and providing a piece of output back, along with a prompt or some other form of follow-up request for input until one side of the conversation disconnects. &amp;nbsp;Some services will function in both ways, behaving in a one-shot fashion if all the input it needs is provided up-front while behaving in a conversational fashion if additional input is needed.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In this way these services function much like many unix programs, a pattern adopted by my own set of Pouch tools as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;With no additional work a HNSI can be used by a person as-is, connecting to the service from a terminal and using it directly. &amp;nbsp;Where these services &lt;i&gt;really&lt;/i&gt; shine is when they are integrated with other software to do things they were never designed to do, things that you in particular want to use them for.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Programming with a HNSI is simply a matter of "recording" a direct interaction and playing it back from your own program. &amp;nbsp;This might not sound like a big deal, but compare it to the experience of integrating with a typical network service.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In a typical networked application, any network service is completely distinct from the normal user interface. &amp;nbsp;For example, let's say you use a website to keep track of recipes. &amp;nbsp;You interact with this via a web browser and add recipes by clicking a button that opens a new recipe card where you type the ingredients and steps and then click another button to save it. &amp;nbsp;To view your recipes you click a menu and select an item from a list and a table of recipe names is displayed.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If this application provides any network service to integrate with at all, it will likely be in the form of a REST API. &amp;nbsp;Adding a recipe via the API has nothing in common with how a recipe is added via the normal application, instead you assemble the recipe in a particular data structure format (probably JSON), then you send that data to a specific URL using the HTTP protocol. &amp;nbsp;This HTTP request likely requires authentication, so before you can send this HTTP request you'll likely have to make a request to authenticate some credentials (often against a completely unrelated network service with it's own data formats and address schemes) to get a token you can use to get authorization to perform your HTTP request to store the recipe data.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Before you can do any of that you'll need to study the documentation for the REST API, because using the application teaches you nothing about using the API. &amp;nbsp;This is the case for all network services I'm aware of, the service and the usage of it are two completely separate concerns and working with one provides virtually no knowledge of working with the other.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So how would this example differ with an HNSI?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Your first experience would likely conversational. &amp;nbsp;After connecting to the service and identifying yourself, a list of recipes is displayed and you are prompted for what you'd like to do:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;1. Pizza&lt;/div&gt;&lt;div&gt;2. Cake&lt;/div&gt;&lt;div&gt;3. Lasagna&lt;/div&gt;&lt;div&gt;4. Sandwich&lt;/div&gt;&lt;div&gt;(a)dd, (r)emove, (v)iew, (q)uit &amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Typing "a" and pressing enter returns a series of prompts to create a new recipe:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;New Recipe&lt;/div&gt;&lt;div&gt;(n)ame, (i)ngredient, (s)tep, (d)escription, (c)complete&amp;gt; Mac and Cheese&lt;/div&gt;&lt;div&gt;Mac and Cheese&lt;/div&gt;&lt;div&gt;(n)ame, (i)ngredient, (s)tep, (d)escription, (c)complete &amp;gt; i&lt;/div&gt;&lt;div&gt;ingredient name: salt&lt;/div&gt;&lt;div&gt;ingredient unit: tsp&lt;/div&gt;&lt;div&gt;ingredient amount: 1&lt;/div&gt;&lt;div&gt;Mac and Cheese&lt;/div&gt;&lt;div&gt;Ingredients:&lt;/div&gt;&lt;div&gt;1 tsp Salt&lt;/div&gt;&lt;div&gt;(n)ame, (i)ngredient, (s)tep, (d)escription, (c)complete &amp;gt; c&lt;/div&gt;&lt;div&gt;1. Pizza&lt;/div&gt;&lt;div&gt;2. Cake&lt;/div&gt;&lt;div&gt;3. Lasagna&lt;/div&gt;&lt;div&gt;4. Sandwich&lt;/div&gt;&lt;div&gt;5. Mac and Cheese&lt;/div&gt;&lt;div&gt;(a)dd, (r)emove, (v)iew, (q)uit &amp;gt; q&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Now let's say you want to write a little program to import all of your existing recopies from a file on your computer. &amp;nbsp;Once you've read a recipe from the file you'll need to create a new recipe using the service and upload the recipe data. &amp;nbsp;Uploading this data is virtually identical to using the service directly, so you already know what to do so there's no need to learn a completely unrelated way of interacting with the service as is the case with the web-based application and it's REST API.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This not only makes integrating with the service simpler, it encourages services to be simpler as well. &amp;nbsp;Combining the user interface with the machine interface places some back-pressure on complications. &amp;nbsp;Nobody wants to use a piece of software that is hard to use or tries to do so much that it's impossible to remember how to use it. &amp;nbsp;Services that accommodate the humans that work with them also accommodate the humans who program with them creating a beneficial relationship for everyone involved.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I could write more about this but I think I'll wait until I experiment with it a bit and confirm my suspicions and assumptions.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Downlnk 2026-03-13</title><link>http://preposter.us/single-michigan-helium-network/downlnk-2026-03-13.html</link><guid>http://preposter.us/single-michigan-helium-network/downlnk-2026-03-13.html</guid><pubDate>Fri, 13 Mar 2026 14:02:28 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;*&amp;nbsp;https://www.alphadrome.net/forums/topic/25876-3d-printed-remote-control-killbot-from-the-movie-chopping-mall/&lt;div&gt;*&amp;nbsp;https://www.thingiverse.com/thing:6868048/files&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://flowercityarts.org/classes/letterpress-angle-chas-summer-2024/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://dry-inc.com/products/dry-inc-angle-chase?variant=42198811181221&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.unitconverters.net/length/pica-to-millimeter.htm&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://fairplayer.band/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://systemd.io/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/mastodon/.github/blob/main/AI_POLICY.md&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://goodinternetmagazine.com/18-lessons-from-18-years-of-blogging/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://rocketffl.com/ap-ammo-are-armor-piercing-bullets-legal/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://rocketffl.com/ffl-cost/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.tindie.com/products/globoy/mppt-solar-charger-for-intelligent-devices/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://learn.adafruit.com/adafruit-bq24074-universal-usb-dc-solar-charger-breakout/pinouts&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/DOT_(graph_description_language)&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://sightlessscribbles.com/posts/the-colonization-of-confidence/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Zersetzung&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.x-plane.com/desktop/buy-it/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://rottenlibrary.net/library/culture/cola-wars/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://hackaday.com/2026/03/11/3d-printing-a-harmonic-pin-ring-gearing-drive/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/RaphTronic/Miscellaneous_Projects_3DP/tree/main&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.moryan.com/an-open-letter-to-grammarly-and-other-plagiarists-thieves-and-slop-merchants/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.404media.co/developer-creates-infinite-maze-to-trap-ai-crawlers-in/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://zadzmo.org/code/nepenthes/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://zadzmo.org/code/nepenthes/install-debian&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ranker.com/list/friday-the-13-memes/erin-maxwell&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Citadel_(software)&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://matduggan.com/i-sold-out-for-200-a-month-and-all-i-got-was-this-perfectly-generated-terraform/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://hbr.org/2026/03/when-using-ai-leads-to-brain-fry&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Brother DCP-L2640DW</title><link>http://preposter.us/single-michigan-helium-network/brother-dcp-l2640dw.html</link><guid>http://preposter.us/single-michigan-helium-network/brother-dcp-l2640dw.html</guid><pubDate>Sat, 14 Mar 2026 13:37:04 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I wanted a copier for the print shop because I like to make zines the old-fashioned way, but it's hard to get a plain-old copier these days. &amp;nbsp;Most copiers are leased, and huge so the only option I could find in a desktop-sized copier was to buy an old one and restore it. &amp;nbsp;That's cool but I have enough projects that are a stack of dependent projects and if I'm ever going to actually finish the zine I want to make with this thing I probably shouldn't start with a broken old copier that I have to make my own parts for.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The closest thing I could find to what I was looking for are laser printers that are really more of a printer/scanner combo than a proper copier, but I found a Brother for about $200 and decided to give it a shot.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's a surprisingly compact machine which is nice because we want room for more interesting things in the print shop.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/158-img_0496.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Brother &lt;a href="https://www.brother-usa.com/products/dcpl2640dw"&gt;DCP-L2640DW&lt;/a&gt; (&lt;a href="https://us.elegoo.com/products/centauri-carbon"&gt;ELEGOO Centauri Carbon&lt;/a&gt;&amp;nbsp;for scale)&lt;/i&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/158-img_0498.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Maybe it's dumb, but I love helpful legends like this, I can never remember which way I'm supposed to feed things into a printer/scanner.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It was very easy to unbox and setup, and once it was plugged in I could stick a piece of paper in it, drop a piece of art on the glass and hit the green button to produce a B&amp;amp;W copy, beaute!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The controls are basic and very copier-like, and if this was all it could do I'd be perfectly satisfied. &amp;nbsp;That said, it's also a printer and a scanner so I set it up on the network to see if all that would work as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/158-signal-2026-03-14-132315.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Getting it connected to the WiFi network was simple even using the small display and limited buttons on the control panel, no apps, no setup programs, yay!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Printing from &lt;a href="https://elementary.io/"&gt;ElementaryOS&lt;/a&gt; pretty much worked like magic. &amp;nbsp;The printer showed-up on it's own in the Printers control panel, and I was able to print a page from LibreOffice with little more than pressing CTRL-P and clicking "Print".&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/158-screenshot from 2026-03-14 13.29.52.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;One weird caveat:&lt;/b&gt; I wasn't able to get a "Test Page" from the Printers control panel to print. &amp;nbsp;The job simply never completes. &amp;nbsp;I wasn't able to figure out why, but I know that I've had problems printing graphics from some programs (in particular some PDF's) so maybe it has something to do with that?&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I was able to print single-sided and double-sided with equal ease. &amp;nbsp;I haven't tried manually feeding anything like envelopes through the slot in the front but other than that printing is as trouble-free as I've ever seen it from Linux. &amp;nbsp;I was also able to print from my phone (iOS), so that's a nice bonus.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What about scanning? &amp;nbsp;I wasn't even sure what to use to scan something from Linux over the network because I don't think I've ever used a scanner from Linux since the days when they were tethered directly to the computer. &amp;nbsp;I did some poking-around in Elementary's AppCenter and found a program called "Document Scanner" that looked simple enough, so I gave it a shot.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/158-screenshot from 2026-03-14 13.33.01.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;a href="https://apps.gnome.org/SimpleScan/"&gt;Document Scanner&lt;/a&gt; (aka Simple Scan) by Bartosz&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It started-up and found the Brother automatically. &amp;nbsp;I threw the printout from an earlier test on the glass, clicked "Scan" and in a few seconds I had a scan of the page. &amp;nbsp;This worked so slick that I decided to push it and loaded the page into the auto-feeder thing on top of the Brother. &amp;nbsp;Clicking "Scan" again did nothing, but looking under the "hamburger menu" I found an option labled "All Pages From Feeder". &amp;nbsp;With that option selected clicking "Scan" grabbed the page from the feeder and scanned it in one step.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I know that this is what these machines are supposed to do, but I'm so used to them failing to do anything that I'm completely amazed that it does anything beyond the most fundamental things. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There's more to explore with this machine but as I said at the beginning, all I really need is a copier and it looks like this Brother fits the bill. &amp;nbsp;What's left is to see how it holds up over time, but based on my experience with other basic Brother printers I expect it will at least outlive the software that it depends on.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>What do you want to do with (the rest of) your life?</title><link>http://preposter.us/single-michigan-helium-network/what-do-you-want-to-do-with-the-rest-of-your-life.html</link><guid>http://preposter.us/single-michigan-helium-network/what-do-you-want-to-do-with-the-rest-of-your-life.html</guid><pubDate>Sun, 15 Mar 2026 08:55:04 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;For the last couple years I've been thinking about this a lot as the clock runs-down and the field I used to call my own dissolves. &amp;nbsp;I've had a number of ideas that I think could find an audience, and some of them are things that I think could help people out, especially now.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* A nice table radio that doubles as a home digital media and &lt;a href="https://jasongullickson.com/forevernote-ii.html"&gt;personal information library&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://jasongullickson.com/the-digital-bug-out-box.html"&gt;The digital bug-out box&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* A privacy-respecting personal computer&lt;/div&gt;&lt;div&gt;* &lt;a href="https://jasongullickson.com/the-typing-machine.html"&gt;The typing machine&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://jasongullickson.com/the-pager.html"&gt;The pager&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* A &lt;a href="https://jasongullickson.com/what-s-next-2025.html"&gt;new form of high-performance computing&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://jasongullickson.com/the-general-purpose-communicator.html"&gt;Something&lt;/a&gt; to replace phones&lt;/div&gt;&lt;div&gt;* Something to &lt;a href="https://jasongullickson.com/the-autonomous-solar-powered-universal-basic-income-thing.html"&gt;replace the cloud&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Any one of these seems like something I could be happy bringing into the world and sharing with others, and I've had conversations around all of them with other people who would find value in using them.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Something that I think is particularly important at this time is that all of these things involve a hardware concern and can benefit from skilled work. &amp;nbsp;Few could be quickly replicated in a fully mechanized fashion and none of them are pure software which can now so easily be copied, captured and enshitified.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Another important thing to me is that anything I get into involving physical goods be something whose manufacture can easily be distributed. &amp;nbsp;This is opposed to something that is centrally manufactured and shipped to where it's used. &amp;nbsp;Distributed manufacturing has many advantages, some obvious (reduced environmental harm) and some more subtle (building local autonomy).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Anything I do will incorporate cradle-to-cradle design to some extent, ideally to a great extent. &amp;nbsp;I don't want to put anything into this world unless some part of it can be reused, and in the most direct way possible.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Finally, I want to avoid anything that "scales". &amp;nbsp;The "scalability" requirement has been used to justify some of the most heinous harms against people and life in general over the course of my lifetime, and "scalable" products attract the attention of the worst kind of people I've ever met. &amp;nbsp;"Scalable" is a code word for the worst type of profitability and I think the best way to avoid all of these traps is to simply focus on making things that won't attract these predators.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The tools and technologies I choose to work with support the needs expressed above. &amp;nbsp;3D printing allows small-scale, flexible manufacturing to happen almost anywhere and can be used to produce a wide-range of goods (including the printers themselves). &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Other small-scale automation is good, but it is a slippery slope. &amp;nbsp;I don't have a good heuristic yet for where this line is, but "don't depend on a machine you can't lift" has treated me well so far.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For electronics, I'm very excited about the potential for FPGA's to replace the need to manufacture a wide-range of specialized integrated circuits. &amp;nbsp;We can now synthesize devices as complex as CPU's using relatively inexpensive FPGA chips using open-source tools, if we can find a way to distribute the manufacturing of FPGA chips in small-to-medium-scale fabs we could eliminate countless supply chain risks and spread this knowledge and these skills out to a wide-range of communities.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Outside of that very narrow ranges of automated tooling, human-scale, hand crafting is preferred. &amp;nbsp;This not only produces a superior, artistic product but it increases skill in people and populations. &amp;nbsp;This crafting isn't limited to the physical nature of the product but also to it's design, documentation and software.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Nowhere in this mix will you find dependencies on systems or institutions that are outside of the control of the people who make these things, and this especially includes LLMs or so-called "AI". &amp;nbsp;Just as the world does not need more physical junk designed for obsolescence it also does not need work that causes more harm than good or leaves people worse-off than when they started. &amp;nbsp;We need work that makes us happy, whether that is smarter, stronger, more empathetic or just makes us laugh. &amp;nbsp;The age of alienating work has itself become obsolete, and if it ever had any value to begin with, that time has passed.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Weather Beaver</title><link>http://preposter.us/single-michigan-helium-network/weather-beaver.html</link><guid>http://preposter.us/single-michigan-helium-network/weather-beaver.html</guid><pubDate>Mon, 16 Mar 2026 16:54:32 -0500</pubDate><description>


&lt;a href='assets/160-img_0509.jpg'&gt;&lt;img src='assets/160-img_0509.jpg'&gt;&lt;/a&gt;</description></item><item><title>Take II</title><link>http://preposter.us/single-michigan-helium-network/take-ii.html</link><guid>http://preposter.us/single-michigan-helium-network/take-ii.html</guid><pubDate>Tue, 17 Mar 2026 08:59:02 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Last night I was up late volunteering and it was a pretty quiet night, so I spent a lot of time reading about operating systems and weirdly, the &lt;a href="https://www.apple2history.org/"&gt;Apple II&lt;/a&gt;.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The Apple II series sold for 16 years. &amp;nbsp;In this time there were several models, but the most popular (Apple II, Apple II Plus, Apple //e) were very similar and in many ways virtually identical to the first Apple II.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;The only other personal computer I can think of that maintained that sort of popularity might be the &lt;a href="https://en.wikipedia.org/wiki/IBM_Personal_Computer"&gt;IBM PC&lt;/a&gt;, although I would argue that even the move from the 8086 to the 80286 broke that chain.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What was more eye-opening than the lifetime of the Apple II was the fact that Apple tried to abandon it more than once, essentially ignoring it in Apple marketing and literally canceling all active engineering efforts for it at various points in it's lifetime in favor of new computers they thought would replace the Apple II.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Regardless of this people still wanted more Apple II's, and I'd like to really understand &lt;b&gt;why&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;From what I learned last night, I think the simplicity and openness played a major role, and specifically the combination of these two things. &amp;nbsp;If the hardware or operating system were complex, it wouldn't matter how open it was, there would still be a high bar people would have to clear to make the machine their own and produce products for it. &amp;nbsp;If it were simple but closed it would have been much harder for people to do anything new with it, especially anything the original designers never imagined.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think targeting the education market was an important part as well. &amp;nbsp;By having Apple II's in classrooms, many kids first experience with a computer was with an open, flexible machine that you could learn to program using the small book that came with it. &amp;nbsp;The built-in programming language was simple enough to get you writing your own programs in an afternoon but at the same time provided access to almost all of the capabilities the machine had available (unlike other computers where more advanced languages or expensive development tools were required). &amp;nbsp;I think this may have planted the seeds that grew into a diverse array of software and hardware vendors for the Apple II down the road.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Open enough, simple, and &lt;b&gt;fun&lt;/b&gt;.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In many ways that Apple II's limitations are what made it easy to work with for both "users" and "programmers" (which more often than not were the same people).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Something else that surprised me was how expensive it was, you could have bought a car for the price of an Apple II system. &amp;nbsp;Given that, it really surprises me how many people I knew who had them given that I grew-up in a very small, mostly blue-collar town. &amp;nbsp;Maybe it was a simple as wanting the same computer at home that the kids were learning on at school, but I find it hard to believe that was all there was to it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;All that said I have a lot more to learn about the subject.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm very interested to understand it though, because I think we are at a time where the path of mainstream computing is failing for more and more people. &amp;nbsp;This, coupled with a myriad of associated fallout from this path makes me believe that it might be the right time for something not only new, but &lt;b&gt;different&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Take II Part II</title><link>http://preposter.us/single-michigan-helium-network/take-ii-part-ii.html</link><guid>http://preposter.us/single-michigan-helium-network/take-ii-part-ii.html</guid><pubDate>Tue, 17 Mar 2026 14:39:54 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Two more things that I think made the Apple II last:&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The hardware wasn't designed as a product, but instead it was mostly, simply, what Woz wanted. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;"...a lot of these features that really made the Apple II stand out in its day came from a game, and the fun features that were built in were only to do one pet project, which was to program a BASIC version of Breakout and show it off at the club"&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;-Steve Wozniak, &lt;a href="https://www.apple2history.org/history/ah03/"&gt;apple2history.org&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think the reason the Apple II hardware had such appeal, and therefore such longevity might simply be because he cared about it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;AppleWorks. &amp;nbsp;I'm not even sure where to begin with this other than to say that an Apple II with AppleWorks was a complete productivity workstation and immediately useful in ways few other such systems are.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So what's my version of this?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's certainly centered on an FPGA, possibly multiple FPGAs. &amp;nbsp;I've talked about this a lot and I've been talked-out of it a lot, but I keep coming back to the idea of a machine that is truly dynamic, and right now the most dynamic piece of electronics is the FPGA. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A simple and effective bus architecture that allows for flexible expansion is (equally?) important. &amp;nbsp;I don't want to jump to any conclusions here but something like i2c comes to mind unless I can find something simpler. &amp;nbsp;It only needs to be as fast as it needs to be, and I'd need to do some math to figure out if i2c is fast enough, but my gut says yes.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If the bus is flexible enough what else needs to be defined before we can get started? &amp;nbsp;I believe strongly in the importance of "self-hosting", the ability for a general-purpose computer to be capable of writing software for itself, so I guess the "minimum package" would be something that has enough peripherals to pull this off. &amp;nbsp;Unless something changes radically that means the ability to enter code and see what it does, so some sort of keyboard and display are probably essential. &amp;nbsp;Beyond that I want to be very careful about prescribing things, and even these things I might waffle on if some other path towards self-hosting reveals itself.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But what to do with it beyond write software yourself? &amp;nbsp;I think something like AppleWorks is in order soon if not immediately after making such a new machine available. &amp;nbsp;Fortunately I've been working on something called "Pouch" which is not entirely unlike such a "works" package. &amp;nbsp;The tools it's currently composed of are designed to meet my specific needs, but I would imagine my needs are shared by others and with a little collaboration the set could be rounded-out nicely to make the new machine useful to someone while they're still learning to program it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'll keep pulling on this thread, maybe it will unravel something...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Perfection</title><link>http://preposter.us/single-michigan-helium-network/perfection.html</link><guid>http://preposter.us/single-michigan-helium-network/perfection.html</guid><pubDate>Wed, 18 Mar 2026 22:20:57 -0500</pubDate><description>


&lt;a href='assets/163-img_0518.jpg'&gt;&lt;img src='assets/163-img_0518.jpg'&gt;&lt;/a&gt;</description></item><item><title>It's not all about you, Jason</title><link>http://preposter.us/single-michigan-helium-network/it-s-not-all-about-you-jason.html</link><guid>http://preposter.us/single-michigan-helium-network/it-s-not-all-about-you-jason.html</guid><pubDate>Thu, 19 Mar 2026 07:05:46 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Something I realized in the last 24 hours or so is that for this new computer project, I don't need to find the perfect balance of things I want and things other people want. &amp;nbsp;It's as easy as &lt;i&gt;letting go&lt;/i&gt;.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As I dive deeper into Apple II history and documentation I'm uncovering things that I knew already but had mostly forgotten about. &amp;nbsp;One of the most exciting things to me in this category is the &lt;a href="https://ia601203.us.archive.org/9/items/swyftcard_manual/swyftcard_manual_text.pdf"&gt;SwyftCard&lt;/a&gt; (I'll let &lt;a href="https://ia601203.us.archive.org/9/items/swyftcard_manual/swyftcard_manual_text.pdf"&gt;the manual&lt;/a&gt; explain it).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This type of text-based interface really appeals to me, and there's not many things I need to do with a computer that don't fit into that model, but I know other people have other needs and for a long time I tried to find a way to design things that accommodated everyone.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But there's a simpler, and I think &lt;b&gt;better&lt;/b&gt;, option.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Make a machine that is simple enough for anyone to make their own. &amp;nbsp;Limit the number of "pieces" that the machine is made out of so that you don't have to be (or pretend to be) and engineer to change it. &amp;nbsp;Don't make it so complex that it requires destroying humanity just so someone can write a program.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In practical terms what this means is that I don't need to figure everything out before I start connecting the logic gates of the thing. &amp;nbsp;Instead of applying my design philosophy to the entire system, hardware and software, the philosophy can be applied to each layer of the system. &amp;nbsp;Existing computers, operating systems, programming languages, etc. do this to varying degrees but I'm not aware of a contemporary system that does it everywhere.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Branagan, VM again</title><link>http://preposter.us/single-michigan-helium-network/branagan-vm-again.html</link><guid>http://preposter.us/single-michigan-helium-network/branagan-vm-again.html</guid><pubDate>Thu, 19 Mar 2026 07:30:13 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;A few years back I wrote about &lt;a href="https://jasongullickson.com/personal-virtual-machines.html"&gt;Personal Virtual Machines&lt;/a&gt; as a way to write software that doesn't go obsolete when the hardware it was written for does. &amp;nbsp;Since that time I've found a number of other problems this approach solves and I think it should be a part of the new computer I'm designing.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This time around I want to stress the importance of portability even more. &amp;nbsp;The VM itself needs to be so trivial to implement that anyone familiar with the target "host" can &amp;nbsp;create it without being an expert in the VM itself. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Simplifying and/or automating the process of the VM could even be a feature of the VM itself...&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This might sound like it shovels all of the work and complexity onto the person working inside the VM, but I don't think that has to be the case, or at least I don't think it has to be as bad as it might seem. &amp;nbsp;If you're thinking about contemporary processor design and layer-after-layer of operating system/system library/external dependencies/application code/etc. then yes, this is a burden but remember that we are starting from scratch here and we can apply everything we've learned to reducing the need for all that.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Since we are designing the machine all the way down to the instruction set, we can design instructions that reduce the need for all of the layers of code that are typically required for a contemporary application. &amp;nbsp;We can also constrain the set of instructions so there is only one way to do things. &amp;nbsp;I think between these two imperatives we need a lot less code to get the same job done.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;We can also discard limits that real machines have in order to simplify the programming model. &amp;nbsp;For example, we could discard the split between memory and storage and instead adopt a model where everything is an address. &amp;nbsp;This is possible because in a VM we're not constrained by the physical limits on address spaced imposed on a physical CPU. &amp;nbsp;Those limits (might) still exist in the underlying hardware, but they are abstracted away by the VM.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's hard to imagine how a little change like this alters how we write software. &amp;nbsp;Think about all of the code that goes into dealing with that difference: filesystems, databases, ORMs, cloud services... the list is endless and often one of these is layered on top of the other.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Consider also how this impacts other forms of I/O and peripheral access. &amp;nbsp;A display becomes a range of memory addresses you write values into with no need of a video driver or a myriad of display interfaces, keyboard input simply pours into another location.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This sort of thing isn't new (many computers use memory-mapped I/O at some level) but it's rarely taken to this extreme due to limitations imposed by the hardware.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;These are just the simplest examples I can provide of the sort of complexity-decimating simplicity possible through the VM approach. &amp;nbsp;I have a lot more ideas, some that I think might be truly novel but I wanted to select examples that might be more immediately relatable.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Downlink 2026-03-20</title><link>http://preposter.us/single-michigan-helium-network/downlink-2026-03-20.html</link><guid>http://preposter.us/single-michigan-helium-network/downlink-2026-03-20.html</guid><pubDate>Fri, 20 Mar 2026 14:49:43 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Citadel_(software)&lt;div&gt;*&amp;nbsp;https://www.arcanoae.com/shop/arcaos-5-1-personal-edition/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.arcanoae.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.punkt.ch/products/mp02-4g-minimalist-phone&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.punkt.ch/pages/our-story&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.apostrophy.ch/resources/faq/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.androidpolice.com/apostrophy-os-guide/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?t=ffab&amp;amp;q=diy%20bullet%20resistant%20door&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.waxtrax.org/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://support.signal.org/hc/en-us/search?utf8=%E2%9C%93&amp;amp;query=location+sharing&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://support.signal.org/hc/en-us/articles/360007062172-Signal-Permissions-OS-Notification-Settings&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://tecnobits.com/en/how-to-share-your-location-in-real-time-by-signal/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.reddit.com/r/signal/comments/12p3juz/feature_to_share_live_location/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://community.signalusers.org/t/live-location-sharing/2564/173&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://support.signal.org/hc/en-us/sections/360001602792-Signal-Messenger-Features?page=2#articles&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://support.signal.org/hc/en-us/articles/6829998083994-Phone-Number-Privacy-and-Usernames-Deeper-Dive&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://support.signal.org/hc/en-us/articles/360044640011-Broadcast-Media&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/RsyncProject/rsync/commit/aa142f08ef31d3ffa8d6b3b8af16d00324a98c1b&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://codeberg.org/small-hack/open-slopware&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://fenrus75.github.io/FenrusCNCtools/javascript/stl2png.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Threads_(1984_film)&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/The_War_Game#External_links&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Mondo_film&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://web.archive.org/web/20051016134931/http://www.filmint.nu/pdf/special/watkins.pdf&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.indiewire.com/features/interviews/criterion-collection-testament-jane-alexander-1983-movie-1235183313/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.apple2history.org/?s=SwyftCard&amp;amp;submit=Go&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.apple2history.org/history/ah06/#Brian&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://apple2history.org/dl/Apple_II_Redbook.pdf&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Apple_II&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/IBM_Personal_Computer&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?q=gwar%20gor%20gor%20lyrics&amp;amp;t=ffab&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ebay.com/sch/i.html?_nkw=apple%20ii&amp;amp;_sacat=0&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ebay.com/itm/137118256880&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ebay.com/itm/137111272837&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://archive.org/details/a2_AppleWorks_3.0_8-bit&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.reactivemicro.com/product/mockingboard-assembled-or-kit/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.willegal.net/appleii/appleii-first_page.htm&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://ia601203.us.archive.org/9/items/swyftcard_manual/swyftcard_manual_text.pdf&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?t=ffab&amp;amp;q=SwyftCard&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://digibarn.com/collections/systems/swyft/index.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://digibarn.com/collections/systems/swyft/index.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.falvotech.com/kes2ex/index.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://itsfoss.com/news/ageless-linux/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.cs.columbia.edu/~sedwards/apple2fpga/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.cs.columbia.edu/~sedwards/papers/edwards2009retrocomputing.pdf&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://nandland.com/fpga-101/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.adafruit.com/product/2674&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.adafruit.com/product/4741&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://archive.org/details/canoncat&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://dn710709.ca.archive.org/0/items/CatWorkshopManual/Cat%20Workshop%20Manual.pdf&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://archive.org/details/jefraskin?page=2&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://archive.org/details/tForthManual/page/n23/mode/2up&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://dn721604.ca.archive.org/0/items/CatReferenceGuide/Cat%20Reference%20Guide%20Color.pdf&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?t=ffab&amp;amp;q=canon%20cat%20emulator&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://www.canoncat.net/cat/Swyft%20and%20the%20Cat.pdf&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.turntablelab.com/products/syitren-r300-portable-bluetooth-cd-player&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.crowdsupply.com/mnt/mnt-reform-next#products&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://palmettostatearmory.com/auto-ordnance-1927a-1c-deluxe-45-acp-semi-automatic-carbine-brown-t5100d.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?q=elegoo%20centauri%20carbon%20api&amp;amp;t=ffab&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/RemmyLee/carbon&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/elegooofficial/CentauriCarbon&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.reddit.com/r/ElegooOrangeStormGiga/comments/1n3cark/dual_printhead_with_orca/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/OpenNeptune3D/OpenOrangeStorm&lt;/div&gt;&lt;div&gt;*&amp;nbsp;duckduckgo.com/?t=ffab&amp;amp;q=orangestorm giga add files to menu&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?t=ffab&amp;amp;q=lego_flat.stl&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://machineblocks.com/docs/get-started&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Drone Off</title><link>http://preposter.us/single-michigan-helium-network/drone-off.html</link><guid>http://preposter.us/single-michigan-helium-network/drone-off.html</guid><pubDate>Sat, 21 Mar 2026 06:42:28 -0500</pubDate><description>&lt;html class="apple-mail-supports-explicit-dark-mode"&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;/head&gt;&lt;body dir="auto"&gt;The other day I was helping load a car and heard the distinct whine of a quadcopter. &amp;nbsp;I looked up and saw a small quadcopter approaching overhead at what I would guess to be about 50 feet of altitude. &amp;nbsp;It flew directly over us and then just hovered there, apparently watching us.&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It could have been a kid playing with a toy, or it could have been a realtor taking photos, but I also know it could have been a lot of other, far more nefarious things.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What I do know is that it was flying over private property, and I was standing on private property, and I confirmed that it wasn't being flown by the owner of the property. &amp;nbsp;I also know that it made us all feel unsafe, and if it continued to watch us we'd begin to fear for our lives.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The only idea I could come up with to get rid of it was to unzip my jacket, reach inside and pretend like I was drawing a pistol. &amp;nbsp;I was wearing black leather gloves and at that range I figured I could make a convincing pistol silhouette with my fingers.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I drew my hands out slowly and aimed them at the drone using proper technique. &amp;nbsp;I held a bead on it for about 15 seconds and it sped-off into the distance.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This experience got me thinking about how I can be ready for the next time this happens. &amp;nbsp;I'm going to read-up on how the law applies (do things like Castle doctrine and Stand Your Ground apply to airspace?), but I'm also thinking about practical countermeasures.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Of course a firearm will bring any quadcopter down, but there's lots of reasons that's not my first choice, especially outside of your own property.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;These machines are very easy to bring down if you can interfere with their rotors, so things entanglement hazards like string or monofilament come to mind, &amp;nbsp;Other ideas are liquids or foams that can gunk up the works (imagine hitting one with a stream of&amp;nbsp;&lt;a href="https://www.greatstuff.dupont.com/products/multipurpose-black-insulating-foam-sealant-smart-dispenser.html"&gt;Great Stuff&lt;/a&gt;), but you'd have to get close enough or somehow propel these things to reach the drone.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This got me thinking about a discussion I recently had about home-made guided missiles. &amp;nbsp; I was doing some reading on homing missiles (specifically early heat-seeking anti-aicraft missiles) and the mechanisms were fairly simple. &amp;nbsp;A lock is achieved by essentially aiming a detector at the heat source and when the sensor can confirm the signature the missile is launched. &amp;nbsp;As it flies, it measures changes in the signature and interprets these as the missile going off-course and it uses it's control surfaces to adjust course in the opposite direction.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Quadcopter drones don't produce a strong heat signature, but they do produce distinctive radiation in the form of &lt;i&gt;sound&lt;/i&gt;. &amp;nbsp;Maybe you could make a seeking mechanism that homes-in on that distinctive whine?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If so, you could create a "warhead" containing one of the mostly-harmless entanglement agents we discussed earlier, and combine it with the sonic homing mechanism and a simple rocket. &amp;nbsp;If you could keep the weight of all this low enough a basic off-the-shelf solid rocket motor should be sufficient to reach a target within visual range.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Such a guided missile would easily outpace even the fastest quadcopter and bring it down with no explosion or other danger beyond the kinetic energy the drone already has. &amp;nbsp;You could increase safety more by disarming the warhead of the lock is lost, and even use the control surfaces to bleed-off energy before landing in the event of a target miss.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I would have to do some more design and research to confirm it, but I imagine something like this could easily be contained in a small-ish portable package, maximally something the size of a shotgun or telescope (forms that would aid in initial target sighting and lock). &amp;nbsp;It might be possible to go even smaller depending on how heavy the warhead needs to be to be effective (I'm not concerned about the weight of the homing device, it could be tiny).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Now that I think about it, it might even be possible to propel such a missile using a bow instead of a rocket motor. &amp;nbsp;This has several advantages and is safer as well. &amp;nbsp;Has anyone made a guided arrow before?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</description></item><item><title>Rib Rub</title><link>http://preposter.us/single-michigan-helium-network/rib-rub.html</link><guid>http://preposter.us/single-michigan-helium-network/rib-rub.html</guid><pubDate>Sun, 22 Mar 2026 08:51:36 -0500</pubDate><description>&lt;html class="apple-mail-supports-explicit-dark-mode"&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;/head&gt;&lt;body dir="auto"&gt;&lt;div&gt;I'm going to start posting my recipes here so I can always find them.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;* 1/4 cup dark brown sugar&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div&gt;* 1 tbsp coarse sea salt&lt;/div&gt;&lt;div&gt;* 2 tsp black pepper&lt;/div&gt;&lt;div&gt;* 2 tsp smoked paprika&lt;/div&gt;&lt;div&gt;* 2 tsp garlic powder&lt;/div&gt;&lt;div&gt;* 2 tsp onion powder&lt;/div&gt;&lt;div&gt;* 1/2 tsp cayenne pepper&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</description></item><item><title>Cartesia Part I</title><link>http://preposter.us/single-michigan-helium-network/cartesia-part-i.html</link><guid>http://preposter.us/single-michigan-helium-network/cartesia-part-i.html</guid><pubDate>Mon, 23 Mar 2026 15:50:22 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;The idea for Cartesia started as a cross between a &lt;a href="https://en.wikipedia.org/wiki/Bulletin_board_system"&gt;BBS&lt;/a&gt;&amp;nbsp;and a &lt;a href="https://en.wikipedia.org/wiki/Interactive_fiction"&gt;text adventure&lt;/a&gt;. &amp;nbsp;You could probably classify it as a &lt;a href="https://en.wikipedia.org/wiki/Multi-user_dungeon"&gt;MUD&lt;/a&gt;, but that doesn't feel quite right to me.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The need for this arose from a group chat on Signal where we lamented the need for something both richer and simpler. &amp;nbsp;Richer in that it could support a wider variety of uses and conversation styles and simpler in that it could be accessed via a text interface on any device. &amp;nbsp;The idea of creating a good-old-fashioned BBS was floated several times, so I started to think about my own experiences with BBS's as well as researching the history of the BBS. &amp;nbsp;After several mental iterations on the idea and discovering the origin of BBS "rooms" (attributed to the &lt;a href="https://en.wikipedia.org/wiki/Citadel_(software)"&gt;Citadel BBS&lt;/a&gt;), the idea started to merge with others I've had about text adventure games, interactive fiction, virtual reality, programming languages and operating systems.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In my opinion, the best things that came from the Internet are the things that were created by the people who use them, the very best being things referred to as "user-generated". &amp;nbsp;I don't like the term "user", but my favorite experiences have come from hanging-out in spaces that were built by the people who use them. &amp;nbsp;For example, the most well-known features of Twitter (hashtags, @ mentions, etc.) were not created by the Twitter company but by the people who used it (although they were appropriated by the company later). &amp;nbsp;I think what made Twitter so much fun in the beginning is that it was simple and flexible which led the people who used it to create the features they needed organically instead of being forced down a path planned by committees inside a company (I'm looking at you Zuck).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Given this, anything that I help create that involves other people is going to be designed to give those people the most ability to create what they need and avoid my prescribing it to them as possible. &amp;nbsp;This led to the primary requirements of Cartesia being: &lt;b&gt;joy&lt;/b&gt;, &lt;b&gt;care&lt;/b&gt;, &lt;b&gt;autonomy&lt;/b&gt; and &lt;b&gt;self-actualization&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Cartesia also has the (perhaps seemingly contradictory) goals of open-endedness and implementation simplicity. &amp;nbsp;The implementation will be correct when it is flexible enough that most of it's functionality is created by the people using it from within Cartesia itself but simple enough that the underlying implementation can run on and be ported to a wide range of the most inexpensive hardware.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Finally, Cartesia will qualify as a &lt;a href="https://en.wikipedia.org/wiki/Tools_for_Conviviality"&gt;convivial tool&lt;/a&gt;, growing only large enough to achieve it's initial goals and then halting advancement, changing only to address bugs.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For many reasons now is a good time to be looking into ways to utilize computing hardware more efficiently, and I've often reflected on how much of what computers are used for (especially in social and networked contexts) is little more than written text. &amp;nbsp;Capturing, processing, storing and moving text around doesn't require a lot of hardware so I think this is the right time for a project like Cartesia.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Fixin' stuff for the neighbors</title><link>http://preposter.us/single-michigan-helium-network/fixin-stuff-for-the-neighbors.html</link><guid>http://preposter.us/single-michigan-helium-network/fixin-stuff-for-the-neighbors.html</guid><pubDate>Mon, 23 Mar 2026 19:12:07 -0500</pubDate><description>&lt;html class="apple-mail-supports-explicit-dark-mode"&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=us-ascii"&gt;&lt;/head&gt;&lt;body dir="auto"&gt;I've earned a reputation in the neighborhood as something of a tinkerer, so occasionally someone drops a dead device at our doorstep.&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt="image0.jpeg" src="assets/170-image0.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The fix is almost always simple or hopeless. &amp;nbsp;This time it was just a bad solder joint that failed.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It might seem silly to fix this stuff, but it makes my neighbors happy, and it feels good to be able to fix something these days.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson. 2026&lt;/i&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</description></item><item><title>Cartesia Part II</title><link>http://preposter.us/single-michigan-helium-network/cartesia-part-ii.html</link><guid>http://preposter.us/single-michigan-helium-network/cartesia-part-ii.html</guid><pubDate>Tue, 24 Mar 2026 07:50:46 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;i&gt;This is Part II of a series on the Cartesia project. &amp;nbsp;Part I can be found &lt;a href="https://jasongullickson.com/cartesia-part-i.html"&gt;here&lt;/a&gt;.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Cartesia is a virtual place made out of rooms that are connected in a hypercube structure. &amp;nbsp;Each room is connected to the others through six exits: north, south, east, west, up and down.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;(I'm not sure if I want to use cardinal terms like north, south, etc.)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Rooms&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Rooms are also directly addressable using an address format of w.x.y.z. &amp;nbsp;x, y and z are traditional Cartesian coordinates, w is the "world" address.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The number of rooms limited only by the available hardware resources* however the w portion of the address allows Cartesia to span physical machines. &amp;nbsp;The w portion is translated to (or can be substituted for) the IP address of the machine a portion of Cartesia is running on. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Examples Addresses:&lt;/div&gt;&lt;div&gt;0.0.0 - origin room on current World (shortcut)&lt;/div&gt;&lt;div&gt;1.10.0 - The room ten rooms north, one room east on the current World&lt;/div&gt;&lt;div&gt;0.0.0.0 - origin room on localhost World&lt;/div&gt;&lt;div&gt;6.0.0.0 - origin room on World 6&lt;/div&gt;&lt;div&gt;10.4.4.1:0.0.0 - origin room of a World running on IP 10.4.4.1&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Cartesia rooms can contain items and people. &amp;nbsp;The people in those rooms can interact with eachother (primarily through text chat) as well as the objects in the rooms. &amp;nbsp;The discussion or chats that happen in a room are similar to the discussion at a party or a meeting: individuals can be addressed directly but all of this is mixed into the general conversation with no expectation of privacy (a private discussion is best had in a private room). &amp;nbsp;Conversations are ephemeral and a person entering a room will only hear what is said after they arrive (Cartesia keeps no records of conversations). &amp;nbsp;A person in a room could record what they hear, but they cannot record anything that was said when they are not present.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Rooms are created by the people who occupy Cartesia. &amp;nbsp;There are no administrators, no authorities. &amp;nbsp;When a room is created it is the responsibility of it's creator**. &amp;nbsp;Creating a room requires little more than selecting an unused address and giving it a name, in fact leaving an existing room through an exit that leads to an unused address will prompt you to create a new room.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Rooms can be locked, but they can only be locked or unlocked by their creator. &amp;nbsp;When a room is locked a key object appears in the inventory of the creator. &amp;nbsp;The creator can share this key with another person or leave it in another room. &amp;nbsp;Keys, like any object in Cartesia can be duplicated. &amp;nbsp;The room's creator can also remove the locks from rooms they create or change them, rendering the original keys (and any copies) essentially useless.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The creator of a room can also change who is responsible for it. &amp;nbsp;This requires that both the creator and the person who responsibility is being transferred to agree to this, and of course it is reversible. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Rooms have other properties in addition to a name. &amp;nbsp;A room can have a description as well as a set of rules. &amp;nbsp;The description is displayed the first time a person enters the room, but the rules are displayed when someone look at the door to a room, akin to a sign on the door. &amp;nbsp;If rules are present, they must be positively accepted before someone can enter the room. &amp;nbsp;If the rules change in the future, the new rules must be accepted before entry as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Objects&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Objects can be created by anyone, anywhere and require nothing more than a name to be created. &amp;nbsp;Objects can be examined or used (the results of these actions vary from object to object). &amp;nbsp;Objects can be taken or duplicated.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In addition to a name all objects can have a description and an open-ended number of stats and attributes. &amp;nbsp;Stats are named numeric values that can be referenced or modified by usage of the object. &amp;nbsp;Attributes are another open-ended list of names, but in this case the values are text values and can only be modified by their creator***. &amp;nbsp;Objects also have a programmatic nature, which can be used to make them do things when they are used by a person.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's worth pointing-out that Object properties can store encoded binary values**** as well, allowing an Object to represent non-textual things like images, audio, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;People&lt;/b&gt;&lt;/div&gt;&lt;div&gt;A person is you, a real human person. &amp;nbsp;There can also be what might be referred to as "non-player characters" or "bots", but these are simply another type of object in Cartesia. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;To be clear, people in Cartesia must be living people, not scripts or programs or any other non-living thing. &amp;nbsp;All those things can exist in Cartesia, but they must exist as objects. &amp;nbsp;Any non-living thing masquerading as a person in Cartesia is a fundamental violation of Cartesia's definitions and anyone operating a Cartesia world who allows this to continue will be shunned.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;People in Cartesia are created via invitation. &amp;nbsp;An existing person generates an invitation which can be sent to another person via any means, but there's no way for someone to "sign-up" without an invitation. &amp;nbsp;The only exception to this is the first person that is created when a new Cartisia world is created.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Minimally, people have a name and ideally, a description. &amp;nbsp;Other attributes and stats like those discussed above in the objects section can be added which are &amp;nbsp;useful for games or other activities. &amp;nbsp;There are also several automatic things that each person has that the system maintains like inventory and a map.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When you take an object it is added to your inventory and removed from wherever it came from. &amp;nbsp;Alternatively, you can duplicate the object, leaving the original where you found it. &amp;nbsp;Your inventory is limited only by how much memory you are allotted, and the number of objects you can carry depends on their memory size, not their physical dimensions, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Your map is automatically maintained of the rooms you've visited, indexed by name. &amp;nbsp;This makes it easy to teleport to a room you've previously discovered. &amp;nbsp;You can also teleport to any room's address but the map makes it easy to find your way back to places you've been.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Cartesia Part III</title><link>http://preposter.us/single-michigan-helium-network/cartesia-part-iii.html</link><guid>http://preposter.us/single-michigan-helium-network/cartesia-part-iii.html</guid><pubDate>Wed, 25 Mar 2026 06:58:58 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;div&gt;&lt;i&gt;This is Part III of a series on the Cartesia project. &amp;nbsp;Part II can be found &lt;a href="https://jasongullickson.com/cartesia-part-ii.html"&gt;here&lt;/a&gt;.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Interface&lt;/b&gt;&lt;/div&gt;&lt;div&gt;As mentioned earlier, the primary interface to Cartesia is text-based. &amp;nbsp;It is a simple "conversational" interface that can be displayed on virtually any terminal or console.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;(interface example)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The interface has essentially two "modes", one for conversation and another for everything else. &amp;nbsp;These two modes are selected by specifying a "prompt" character, a double-quote for conversation and an asterix for the rest.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The interface is primarily designed for direct use by a person but is also implemented as an &lt;a href="https://jasongullickson.com/the-humane-network-service-interface.html"&gt;HSNI&lt;/a&gt; to reserve(?) the potential for consumption by other types of interface. &amp;nbsp;The primary objective is to make Cartesia more accessible via unanticipated interfaces but this also opens the door for other types of interface as well (graphical, immersive, etc.). &amp;nbsp;The key requirement is that the interface never compromise it's usability as directly human-usable interface regardless of what other types of interfaces consume it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Protocol*&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Cartesia Worlds provide a standard protocol for interacting with their Rooms that is used to make connections between Worlds. &amp;nbsp;For example, if you are logged-on to the Interface of World 1 and enter a Room on World 2, the protocol is used to get information about the room and the people and objects it contains from the hardware running World 2. &amp;nbsp;Like the Interface, the protocol is also an HSNI so it is possible to interact with it directly, but it is a more streamlined experience... hmm...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;VM&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Most of Cartesia is implemented in a purpose-built virtual machine. &amp;nbsp;The language of this virtual machine is the same language used to add programatic behaviors to objects. &amp;nbsp;This means most of Cartesia is written in the same programming language as the objects inside Cartesia, and learning how to program objects is a stepping-stone to learning how to maintain and modify Cartesia itself.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The VM not only provides some safety in the form of isolation between the programs Objects run, but also makes Cartesia as portable as possible. &amp;nbsp;This allows Cartesia to run on a wide-range of hardware but also provides protection from hardware obsolescence.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In addition to the above the VM tracks resource utilization and provides capacity information about the underlying hardware. &amp;nbsp;When the VM is initialized it establishes how much of each resource it has been allocated and conveys the utilization of these capacities in the form of budgets that can be allocated to Rooms, Objects and People. &amp;nbsp;As the World grows these budgets shrink and this information is conveyed to the People inside the World in a transparent way, allowing them to take appropriate actions. &amp;nbsp;If the budgets are exausted, the VM prevents any further expansion to preserve the stability of the World until resources are freed-up or reallocated.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Examples&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Rooms&lt;/i&gt;&lt;/div&gt;&lt;div&gt;Room 0.0.0 is often a "lobby" as this is the first place most people will experience in a given world. &amp;nbsp;It is likely to have a set of rules for the World that must be accepted and a detailed description about the types of Rooms and Objects that exist in this World as well as information about the People who regularly inhabit it. &amp;nbsp;It might even include a directory of the World, Objects that might be useful there, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Another likely room is a library. &amp;nbsp;This contains Objects that function like books, with attributes like "Author", "Table of Contents" and "Chapters" containing the text of the book. &amp;nbsp;A library could contain other types of media as well, although it might require special Interfaces to access them.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Objects&lt;/i&gt;&lt;/div&gt;&lt;div&gt;Simple objects that serve as decoration for rooms is expected. &amp;nbsp;These consist of little more than a name and perhaps a description.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As described in the Rooms section, a book object could be created by adding attributes such as "Author" and chapters containing the text.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A "concierge" that uses the programmatic features of Objects to produce a menu of services which can be selected providing details, or other forms of simple, interactive conversations.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A "pet" that purrs and increases a person's "calm" stat (if they have one).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;An instrument that can be played by consuming conversation keystrokes like buttons pressed on a keyboard, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Footnotes&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;* I'm not sure if there's a need for this, could we just "bridge" the HSNI of the regular Interface instead?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>What's up, Jet?</title><link>http://preposter.us/single-michigan-helium-network/what-s-up-jet.html</link><guid>http://preposter.us/single-michigan-helium-network/what-s-up-jet.html</guid><pubDate>Wed, 25 Mar 2026 07:55:50 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I've noticed that there's been a sharp decrease in the use of my journaling tool "Jet" since I began the &lt;a href="https://jasongullickson.com/31-days-31-posts.html"&gt;blog-post-a-day regimen&lt;/a&gt; at the beginning of this year. &amp;nbsp;I guess this is OK, but I really did like having a simple, reliable private journal that I knew would be reliably archived and always available to me in the future.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;During the transition I would sometimes start writing as a journal entry and when it grew into something I felt like sharing it would "graduate" to a blog post. &amp;nbsp;Reflecting on this now, I'm thinking it might make sense to make it easier to make that transition.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Currently I use both a Markdown editor (&lt;a href="https://apps.gnome.org/Apostrophe/"&gt;Apostrophe&lt;/a&gt;) and an email client (ElementaryOS's &lt;a href="https://github.com/elementary/mail"&gt;built-in client&lt;/a&gt;) to author posts that are then posted to this blog software (&lt;a href="https://codeberg.org/jjg/preposter.us"&gt;Preposter.us&lt;/a&gt;). &amp;nbsp;The reason for this is kind of dumb.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I started using Apostrophe because ElementaryOS's mail client has no spell check. &amp;nbsp;I know this might seem impossible, but if it exists, I can't find it. &amp;nbsp;So I compose in Apostrophe mainly so I have access to a spell checker. &amp;nbsp;This is even dumber because Apostrophe's spell check doesn't understand contractions and marks them as spelling errors.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So today if I were to always use Jet as the starting point I'd need five separate pieces of software to make a blog post, which is ultimately is nothing more than a text file on a filesystem served by a completely basic webserver.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This works, but it seems kind of silly.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It might be time to add a new tool to the Pouch, something that can be used to pluck passages out of Jet's journal file and ultimately publish them to the web. &amp;nbsp;Somewhere in-between the text needs to be transformed to HTML, and yes, spellchecked.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I have thought some about a tool like this but haven't done much more than think about it because it's very easy to come-up with something that feels like it violates the principles of the Pouch tools. &amp;nbsp;Up until recently I was really struggling with imagining an interface that can be used to select and re-arrange blocks of text into a new document without going beyond the very basic (essentially serial output/input) text interface I've limited Pouch tools to so far. &amp;nbsp;I definitely don't want to get into anything that relies on features of a particular terminal or console that would require creating dependencies on external libraries or limit portability, so I've just sort of been sitting with this to see if a solution presents itself.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Lately my interest in &lt;a href="https://en.wikipedia.org/wiki/Jef_Raskin"&gt;Raskin's&lt;/a&gt; work on text-based interfaces has been reinvigorated and I'm wondering if there's some answers there. &amp;nbsp;Because I like to start at the root, I'm in the process of getting my hands on a &lt;a href="https://ia601203.us.archive.org/9/items/swyftcard_manual/swyftcard_manual_text.pdf"&gt;SwyftCard&lt;/a&gt; setup so I can both study and use it on a regular basis and really get to know it. &amp;nbsp;I figure anything that can work on an Apple II in text mode can probably be made to fit within the constraints of conviviality that I place on Pouch.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;My expectation is that this might cover the editing part, but not publishing. &amp;nbsp;I don't have any immediate plans to replace Preposter.us so perhaps the extent of these new tools will be to stop at the ability to send an HTML-formatted email? &amp;nbsp;Sending email feels like something that is going to push or exceed the limits I've placed on Pouch tools so far but maybe I'm jumping to conclusions there? &amp;nbsp;While I've relied on external library to communicate with mailservers in the past, maybe simple sending an email is simple enough that I could implement that within the current Pouch constraints?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Another possibility is to add a simpler (in terms of programmatic access) interface to Preposter.us. &amp;nbsp;Perhaps a write-only HTTP endpoint that receives the same data as would normally be read from the mailserver when processing a new post. &amp;nbsp;This is the first time I've ever even considered such a thing so there'd be a lot of concerns to work-out, and if I'm being completely honest it feels kind of "gross" to depart from the email-only way of interacting with Preposter.us historically, but it's worth thinking about or at least having in mind should it turn out to be too difficult or too much of a compromise to send an email from a Pouch tool.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Other People's Tools</title><link>http://preposter.us/single-michigan-helium-network/other-people-s-tools.html</link><guid>http://preposter.us/single-michigan-helium-network/other-people-s-tools.html</guid><pubDate>Wed, 25 Mar 2026 09:04:46 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;This morning I've had one of those revelations that seems totally obvious once you see it.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I've struggled over the last few years with being coerced into working with LLM's and the products of LLM's beginning with being treated like an ignorant old man up to now where I'm forced to use them to remain employed. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I won't elaborate on why I struggle with this here. &amp;nbsp;I've been writing about it here for years, just scroll-back before 2026.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The revelation is simple: make my relationship to these tools the same as a plain craftsman's relationship to power tools.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;"plain" here refers to plain cultures such as the Amish, Quakers, etc.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;These workers will use power tools but they will not own them. &amp;nbsp;They will work with them as other people's tools on other people's projects, but they will not own them nor work with them on their own projects.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;To explain &lt;i&gt;why&lt;/i&gt; they work this way is a longer discussion I won't try to capture in a single blog post, but one important aspect is that relying on tools like this threatens their autonomy, which is what allows them to choose their way of life.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When I'm coerced into working with LLM's and their byproducts, I feel like I'm doing something that I know is wrong. &amp;nbsp;I feel the harm that comes from these tools emanating from my hands out into the world and back up through my arms, harming myself as well. &amp;nbsp;It feels like poison spreading through my bloodstream, and I am in desperate need of an antidote.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When it becomes possible to make a living without working with these tools I will happily and immediately do so, but at the moment there appears no escape within my profession. &amp;nbsp;Until then, I'll find what comfort I can in adopting the plain person's relationship to antisocial technology and refuse it when I have the choice and accept what I cannot change when I have no other choice.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;"In this world but not of this world"&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Do It Ourselves</title><link>http://preposter.us/single-michigan-helium-network/do-it-ourselves.html</link><guid>http://preposter.us/single-michigan-helium-network/do-it-ourselves.html</guid><pubDate>Thu, 26 Mar 2026 15:19:18 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I was raised in a very DIY (Do It Yourself) household. &amp;nbsp;We had lots of DIY books and my parents were always making DIY repairs, remodels and upgrades to our home&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;My friends called it "the house of perpetual remodeling".&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I eagerly adopted this attitude and doubled-down on it when I was introduced to the DIY ethos of punk rock. &amp;nbsp;It is a skill and an attitude that has served me and many of those around me well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A few years back I brought-up DIY in a conversation with someone I didn't know and they pointed out &lt;i&gt;"yes but what if you can't do it yourself?"&lt;/i&gt;. &amp;nbsp;This never occurred to me because my experience with DIY was always communal, and when I used the term DIY I was almost always working with others, supplementing eachothers abilities to get it done together.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But I guess there's a faction of DIY people who don't do it that way. &amp;nbsp;To them, DIY is just another part of the "&lt;i&gt;up-by-your-own-bootstraps"&lt;/i&gt; mythos. &amp;nbsp;It's about "rugged individualism" and other such nonsense.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For me that's &lt;b&gt;never&lt;/b&gt; been what DIY was about, but now I can see how that's literally what it spells-out, and I don't want anything to do with &lt;i&gt;that&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So I'm making an effort to be explicit about this and use DIO (Do It Ourselves) in place of DIY. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Who is "ourselves"? &amp;nbsp;Well, that would be you and me friend.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Deep Future</title><link>http://preposter.us/single-michigan-helium-network/deep-future.html</link><guid>http://preposter.us/single-michigan-helium-network/deep-future.html</guid><pubDate>Thu, 26 Mar 2026 15:53:43 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;i&gt;(not to be confused with the techbro book Deep Future which should more accurately be titled Shallow Past because it's filled with pilfered ideas from the 1950's and 60's)&lt;/i&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's easy to get down about the near-to-medium future. &amp;nbsp;I'm not making light of the threats, I'm keenly aware of them and doing what I can to mitigate the harms but personally I need something to look forward to in order to maintain the gumption to make it through &lt;i&gt;"the now"&lt;/i&gt; and help whoever I can in the process.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So I spend time thinking about, planning for and making things for the time after the collapse, a time I decided last night to call the &lt;b&gt;Deep Future&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Thinking about the Deep Future is easier than thinking about the near future because right now the near future is very unstable. &amp;nbsp;I can't say for sure what is going to happen next, and I can't say exactly what is going to be the thing that finally pushes all the old gods off the cliff, but regardless of what and when, it's safer (and more &lt;i&gt;fun&lt;/i&gt;) to think about what we'll be building afterward.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As hard as it may be, it's also an opportunity to use everything we've learned up to this point to do things better, without the baggage and artificial justifications that got us here.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm not going to spend any more time speculating about the future in this post. &amp;nbsp;I'd much rather talk to you about what you want to do, how you want to live and how you want to help in the Deep Future.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Fixin stuf</title><link>http://preposter.us/single-michigan-helium-network/fixin-stuf.html</link><guid>http://preposter.us/single-michigan-helium-network/fixin-stuf.html</guid><pubDate>Sun, 29 Mar 2026 22:16:39 -0500</pubDate><description>


&lt;a href='assets/177-img_0581.jpeg'&gt;&lt;img src='assets/177-img_0581.jpeg'&gt;&lt;/a&gt;</description></item><item><title>Horicon Marsh in March</title><link>http://preposter.us/single-michigan-helium-network/horicon-marsh-in-march.html</link><guid>http://preposter.us/single-michigan-helium-network/horicon-marsh-in-march.html</guid><pubDate>Mon, 30 Mar 2026 14:04:15 -0500</pubDate><description>


&lt;a href='assets/178-img_0605.jpg'&gt;&lt;img src='assets/178-img_0605.jpg'&gt;&lt;/a&gt;</description></item><item><title>How I Accidentally Bought an Apple //e</title><link>http://preposter.us/single-michigan-helium-network/how-i-accidentally-bought-an-apple-e.html</link><guid>http://preposter.us/single-michigan-helium-network/how-i-accidentally-bought-an-apple-e.html</guid><pubDate>Tue, 31 Mar 2026 15:19:51 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;As I've mentioned before, I've been &lt;a href="https://jasongullickson.com/take-ii.html"&gt;studying the Apple II&lt;/a&gt; as an inspiration for work on my own future computing designs. &amp;nbsp;I've also been revisiting the work of Jef Raskin, and the earliest implementation of these ideas that I think I can get my hands on is the &lt;a href="https://jasongullickson.com/it-s-not-all-about-you-jason.html"&gt;SwyftCard&lt;/a&gt;, which of course requires an Apple ][ to stick it in.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/179-img_0682.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;It needs a bath, but honestly it's in better shape than I thought from the listing&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I've been surfing Ebay among other places on the lookout for such a host machine but most of them are priced out of my budget for this project. &amp;nbsp;About a week ago I came across an interesting listing though, interesting because the seller did not seem interested in shipping it (shipping was offered but 2x more than any other //e I'd seen). &amp;nbsp;The seller offered free pick-up, and they were somewhat nearby, so I wanted to keep an eye on this one.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I tried to click the "watch" button, but it wouldn't stay clicked. &amp;nbsp;I tried reloading the page, etc. but no matter what I did I couldn't add it to the watch list. &amp;nbsp;Out of desperation I decided to try placing a bid, assuming that based on the asking price the auction would definitely go up (it was about half the price of other //e's "buy it now" price). &amp;nbsp;For whatever reason this worked, and it gave me a way to keep track of the auction.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/179-img_0683.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I assumed that someone would outbid me, but as the week wore on there was no action. &amp;nbsp;There were a few watching (why did the watch button work for them?) but no additional bids. &amp;nbsp;I figured they were waiting for the last minute and someone would "snipe" it and get me off the hook.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That did not happen, and later that night I received an email indicating that I had won the auction.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A surprise for sure but not necessarily a bad one. &amp;nbsp;This kind of forces my hand to setup a working Swyft environment and I'll take it as a sign that picking-up Raskin's work is the right direction for me to go.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/179-signal-2026-03-31-151644.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Coincidentally, I got an email from a person who recreated the SwyftCard as a kit. &amp;nbsp;I wasn't sure if I'd hear back, but sure enough they still have the parts and a kit is now on it's way to me. &amp;nbsp;Once that's put together I'll write a follow-up post about my first experience using the real deal.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Heirloom Computing</title><link>http://preposter.us/single-michigan-helium-network/heirloom-computing.html</link><guid>http://preposter.us/single-michigan-helium-network/heirloom-computing.html</guid><pubDate>Wed, 01 Apr 2026 07:32:43 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Yesterday, Jamie was transplanting plants she sprouted indoors and planting a few new seeds as well. &amp;nbsp;Some of the seeds came from a bag that was a gift from a friend and neighbor, seeds from the plants that have grown in this neighbor's garden.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Seeds like, the kind that a plant produces that can be used to grow the same plant again are referred to around here as "heirloom seeds". &amp;nbsp;It struck me as weird that there was a special name for the normal reproductive cycle of a plant so out of curiosity I started looking into the history of this term.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As it turns out, it's quite controversial. &amp;nbsp;Not only is the proper use of the term "heirloom" in reference to seeds a matter for debate, people have been fined and jailed over their use and distribution. &amp;nbsp;Seed libraries have been shut-down and their seeds destroyed due to the threat such seeds pose to industry and the state.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This was a lot more dramatic than what I was expecting.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I won't try to enumerate all the explanations for this fear of plants reproducing and the humans with the audacity to help them (Wikipedia is a good &lt;a href="https://en.wikipedia.org/wiki/Heirloom_plant"&gt;starting point&lt;/a&gt; for that), but what I will dive into is how these ideas might apply to computing.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When I leaned about heirloom seeds I immediately drew parallels to the technology we depend on. &amp;nbsp;Like food, many of us depend on some form of computer every day for our current mode of survival. &amp;nbsp;Like a lot of food, we have little control over the computers we depend on. &amp;nbsp;That control is delegated to a small group of private companies who mediate this access through the system of capitalism. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Computers are not able to reproduce in the same way as plants, but there's are ways of making computers, and especially software that could produce machines that can be rejuvenated generation over generation. &amp;nbsp;In the hardware realm, computers can (and have) been designed to use components that can be reconfigured to meet the need of unexpected future generations. &amp;nbsp;On the software side the type of reproduction we see in the natural world is even more possible as the copying and mutation of software distributed in source-code form consumes virtually no resources and unlimited potential forms.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Some might say that &lt;a href="https://en.wikipedia.org/wiki/Free_and_open-source_software"&gt;Free and Open Source Software&lt;/a&gt; achieves this goal, but I don't think you have to look too far into what FOSS has become to see that this is no longer true (if it eve was to begin with).&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;All this makes me wonder &lt;b&gt;what "heirloom computing" would look like?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Certainly it means creating computers unencumbered by artificial legal constraints like licensing, copyright, etc. &amp;nbsp;Modularity, in the form of making computers out of interchangeable, long-lasting parts is another component.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Something that I think is often ignored when discussing these things are the people who will be working with these computers, and in the heirloom model, the people who will be shepherding-in each generation. &amp;nbsp;When I look to the heirloom seed for inspiration I see that this requires heirloom technology to be much simpler than what we have today. &amp;nbsp;It must be as reproducible as planting and nurturing a seed. &amp;nbsp;This isn't an oversimplification, anyone who's grown a garden from heirloom seeds knows that it can be tricky work, but this work can be written-down and even discovered through trial-and-error.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Additionally, like the seeds we received from our neighbor an heirloom technology is likely to have a regional dimension. &amp;nbsp;This negates the need for modern global high-speed communication to share the knowledge needed to perpetuate each generation, and it reduces the energy expended to move the physical components of the technology from place to place. &amp;nbsp;I also believe that a technology cultivated regionally will naturally evolve to suit the people and conditions of that region, diverging significantly from it's copies of itself in other regions over time. &amp;nbsp;Beyond the advantages of being tailored for a time and place, such evolution allow the generational perpetuation to become easier over time, like the seed which is the descendant from generations of plants which faired well in local growing conditions.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;To sum it up, and heirloom technology needs to be:&lt;/div&gt;&lt;div&gt;* Unencumbered by artificial constraints&lt;/div&gt;&lt;div&gt;* Simple enough for amateur cultivation&lt;/div&gt;&lt;div&gt;* Composed of durable, interchangeable parts (ideally heirloom themselves)&lt;/div&gt;&lt;div&gt;* Cultivated locally over generations&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't know if that's everything, or exactly right, but it's a start. &amp;nbsp;Off the top of my head I don't have an exact example of such technology, but I think many of the building blocks have been discussed elsewhere on this blog. &amp;nbsp;Going forward, I'll keep these in mind as I design and build new things, and see if I can discover more of the answers.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Printable Lunch Tray System?</title><link>http://preposter.us/single-michigan-helium-network/printable-lunch-tray-system.html</link><guid>http://preposter.us/single-michigan-helium-network/printable-lunch-tray-system.html</guid><pubDate>Wed, 01 Apr 2026 19:53:19 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/181-screenshot from 2026-04-01 19.52.07.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Cartesia Part IV</title><link>http://preposter.us/single-michigan-helium-network/cartesia-part-iv.html</link><guid>http://preposter.us/single-michigan-helium-network/cartesia-part-iv.html</guid><pubDate>Thu, 02 Apr 2026 06:31:59 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;i&gt;I've been thinking about the architecture of the Cartesia software a bit and trying to reduce it to the simplest possible form. &amp;nbsp;In this post I'm going to attempt to summarize where I'm at.&lt;/i&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There's two distinct pieces or modes of the software, one that a Person interacts with directly called the Deck and a second that is used to run shared Worlds, which we'll just call the World software.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The Deck software consists two event-driven loops: one that consumes input and updates local state (the Input-Update Loop or IUL) and a separate loop that renders the room.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The World software is the same as the Deck software, but only the first loop is used.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When the Deck is started the Person appears in Room 0.0.0.0. &amp;nbsp;This is the Origin room in the Local World which is contained on the computer that the Deck software is running on. &amp;nbsp;Initially this Room contains nothing but the Person.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The Person creates the World by providing input to the IUL. &amp;nbsp;The loop is triggered by the end of the input and begins to parse it into Events. &amp;nbsp;Two things happen at this point:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* Events are parsed into updates to the Local State&lt;/div&gt;&lt;div&gt;* Events are broadcast to other People and Objects in the Room&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I suppose a cleaner way to look at it is that the Events are Broadcast, and that the Room is just another Object, and that the Local State is a Property of the Room that can be modified by the Events.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The important thing is that there is a narrowing pipeline of data between the Person and the World. &amp;nbsp;A Person can input anything, and that input is turned into a limited number of known Event types at which point the Events are shared with Objects which in turn pass the Events to a limited number of Handlers which in turn modify a limited number of States. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If at any point along this pipeline the input from the original Person can't be interpreted automatically it is treated as Speech, something a Person is saying and delegated to more sophisticated interpreters: the other People in the room.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In a way this is similar to how the &lt;a href="https://en.wikipedia.org/wiki/Forth_(programming_language)"&gt;Forth&lt;/a&gt; language parses input:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* If the input is a number, treat it like a number&lt;/div&gt;&lt;div&gt;* If it's not a number, look it up in the dictionary&lt;/div&gt;&lt;div&gt;* If it's not in the dictionary, it's a string.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I may be oversimplifying Forth here, but that's how I remember it at least&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This process repeats as long as the Person in Room 0.0.0.0 continues to talk to themselves, creating new Objects that become part of the Room's State.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When another Person enters the Room, two things happen:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* The Room's current state is described to the new Person's Deck as a series of Events&lt;/div&gt;&lt;div&gt;* The IUL of the new Person's Deck is attached to the Room's live Event stream&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The IUL of the new Person's Deck processes first set of Events just like the original Person's Deck would and passes the Events to Handlers which in turn update the Room's State as stored in the memory of the new Person's Deck. &amp;nbsp;Anything that falls-through the parsing pipeline gets rendered as Speech.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;It seems unlikely/impossible that any of this would be rendered as such, since these events are derived directly from the State of the Room, but maybe in the case of a parser version mismatch, etc. this could happen?&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Once this initial set of Events has been parsed the Render loop of the new Person's Deck will describe the Room, at which point the new Person will be caught-up and begin processing the live Event stream as it comes, just like the original Person in the room.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's important to understand that all of this communication adheres to &lt;a href="https://jasongullickson.com/the-humane-network-service-interface.html"&gt;HNSI&lt;/a&gt; protocol and is essentially Human-readable. &amp;nbsp;You can imagine interacting with these Worlds akin to reading a book. &amp;nbsp;You read a sentence and in your mind you interpret it as either speech exchanged between characters or descriptions of the world inside the book that your mind turns into images and memories about what is happening. &amp;nbsp;As you progress through the book you may refer to memories created earlier without having to literally re-read the descriptions of things and this functions akin to the State maintained in a Room. &amp;nbsp;What's interesting to me about this analogy is that when you're reading, there are subconcious procsses that decide how much of this State you maintain and I think there is room for this sort of dynamism in the Deck software.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;By treating the exchange of information as a Human-readable stream, processing of that information can be fluidly transferred between the machine and the Human based on a balance of where the best place to process it happens to be. &amp;nbsp;I'm not sure about the exact mechanisms of this yet but the beauty of HNSI is that I don't have to know or decide that now (or ever). &amp;nbsp;The simplest Deck imaginable could simply pass the raw communications stream to the eyes of a Person reading it, and the State of the Room, Objects and People could be completely in that Human's head. &amp;nbsp;This allows for a huge range of Deck implementations based on whatever is avaliable and whatever skills the Deck builders may happen to have.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>RadioShack</title><link>http://preposter.us/single-michigan-helium-network/radioshack.html</link><guid>http://preposter.us/single-michigan-helium-network/radioshack.html</guid><pubDate>Fri, 03 Apr 2026 08:27:26 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I knew the name &lt;a href="https://en.wikipedia.org/wiki/RadioShack"&gt;RadioShack&lt;/a&gt; long before I ever visited the store. &amp;nbsp;My first memory of the name was seeing it on the little cards with a bubble of plastic containing some magical little component hanging from the pegboard behind my dad's workbench.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/183-rad-shack-logo.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm sure I heard the words before I could read them, but I don't remember it that way.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;My father, my grandfather (who turned-out not to be my grandfather but that's another story) and my family friends, a surprising amount of them were RadioShack regulars. &amp;nbsp;Dad, grandpa, friends Rich and Clayton in particular tweaked on radios and then computers, amassing walls of those little component packages, testing equipment and tools from the 'Shack.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/183-rad-shack-components.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The next memory I have of RadioShack itself is looking at the catalog. &amp;nbsp;I think this was still before I ever entered the store. &amp;nbsp;Looking back on it, the Radio Shack catalog was sort of a strange collection of curated electronic curious. &amp;nbsp;Electronic components, yes, pages of tables containing components but also what can only be described as strange household appliances, electronic toys and games and a few ...scientific? oddities like the solar-powered cigarette lighter.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/183-radio-shack-solar-cigarette-lighter_1_797ff557d7eb029e30111ed0dc8e0f41-2191151415.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What was so unique about RadioShack was that it wasn't just a place you bought things, it was also a place that helped you make things. &amp;nbsp;It was the only place I knew of where I could get new electronic components (although as a kid I had to harvest most of the parts I used, I could only afford new parts after paying holidays), but they also had books and guides, many written by my favorite childhood author, &lt;a href="https://en.wikipedia.org/wiki/Forrest_Mims"&gt;Forrest M. Mims III&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When I was a kid I felt like I could build anything with nothing more than a break from school and a Radio Shack gift card.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As I discovered programming my interest in electronics began to wane. &amp;nbsp;Not because I became less interested in it per-se, but because of the economics of it. &amp;nbsp;To build physical devices I needed parts and tools but to build software all I needed was a computer. &amp;nbsp;Once I had a computer of my own I did a lot less with electronics and my obsession with RadioShack faded as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When I got into making music I started making regular trips to the 'Shack again. &amp;nbsp;In the small towns I spent my time in in my youth there were very few places you could get parts for electric instruments and my childhood of tinkering with electronics left me well-suited for hacking and repairing audio equipment into frugal musical gear. &amp;nbsp;Our bands "PA" system was composed of modified HiFi equipment sourced from thrift stores and garage sales and modified &amp;amp; maintained by me. &amp;nbsp;Parts from the 'Shack (mostly 1/4" plugs, teenagers are especially hard on guitar cables) kept us tearing-up garages and VFW's for years.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When I moved-on to the professional stage of my life I once again left the 'Shack behind except for the occasional cable or adapter for my home theater setup. &amp;nbsp;Ironically I finally had some money to spend on parts but no longer the time or space to use them. &amp;nbsp;Many years later I would get a chance to return to this work, accelerated by Jamie's interest in building props and sets for Halloween. &amp;nbsp;This, coupled with the "maker movement" launched me back into collecting components, huffing solder smoke and dusting-off my copy of &lt;a href="https://archive.org/details/getting-started-in-electronics/Getting%20Started%20in%20Electronics"&gt;Getting Started in Electronics&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Sadly this renaissance coincided with the death of RadioShack. &amp;nbsp;I visited a store during the final days and snapped-up a few boxes of parts. &amp;nbsp;It seemed bizarre to me that they somehow survived the doldrums of electronic hobbies only to be snuffed-out during the hobby's resurrection, but that's capitalism for you.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Part of me would love to do something to provide others with the inspiration I got from that place as a child. &amp;nbsp;I imagine others have had a similar experience as well. &amp;nbsp;I have a couple of ideas for this but nothing that I'm sure about quite yet, but if one of them begins to take shape you'll hear about it on this blog.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Stranger Fiction</title><link>http://preposter.us/single-michigan-helium-network/stranger-fiction.html</link><guid>http://preposter.us/single-michigan-helium-network/stranger-fiction.html</guid><pubDate>Sat, 04 Apr 2026 07:59:26 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I'm writing a new story. &amp;nbsp;It's based on a nightmare I had recently that was quite terrifying. &amp;nbsp;The story on the other hand is turning-out to be more of a black comedy, and for the first time in as long as I can remember I'm enjoying writing fiction.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;My primary storytelling medium is film, so I see the story in my head as a movie. &amp;nbsp;Because of this I'm often pre-preempted by the Producer in my brain who stops me from writing something because it's going to be impossible to shoot on an indie budget, or be too dangerous, etc. &amp;nbsp;It's funny how much effort goes into silencing this irrelevant voice.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I've tried writing fiction before, mostly during NaNoWriMo. &amp;nbsp;I tend to get off to a good start but after a thousand words or so I run out of steam. &amp;nbsp;It's weird because it's not just exhaustion (although that can be part of it) but I tend to write in circles, or loose track of the overall plot and then the whole story just seems kind of boring to me and I never get much further after that.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This time is a bit different. &amp;nbsp;I'm not sure if it's because the dream left me with a tremendous emotional charge or if it's something else, but I'm excited that it at least feels like I have enough... &lt;i&gt;something&lt;/i&gt; to actually finish it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I also did something I've never tried before: I wrote the ending almost immediately after starting the first chapter. &amp;nbsp;This wasn't completely intentional, I started at the beginning the morning after I had the dream and then I sketched-out an outline so I wouldn't forget any of the parts I didn't have time to write that morning. &amp;nbsp;A day or two passed and I thought of a couple of new things to add, so this morning I added the new stuff to the outline and then started to move the outline around a bit to make everything fit and flow. &amp;nbsp;In the process something accidentally ended-up at the bottom of the list and when I read it in order it jumped-out at me that this might make a perfect ending.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So I ran with it and just wrote-out the final scene, and I have to say, I'm really happy with it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Now that I have the beginning and the end filling-in the middle feels much more achievable than any other time I've tried to write something fictional before. &amp;nbsp;Maybe this is just how other people do it and I'm too ignorant about the process of writing fiction to know?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Either way, I'm a lot more confident that I'll finish it this time since in a way, I kinda already have.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Downlink 2026-04-04</title><link>http://preposter.us/single-michigan-helium-network/downlink-2026-04-04.html</link><guid>http://preposter.us/single-michigan-helium-network/downlink-2026-04-04.html</guid><pubDate>Sat, 04 Apr 2026 12:07:38 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;This should have been posted yesterday, but I got busy...&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://bookshop.org/p/books/danny-dunn-and-the-homework-machine-danny-dunn-3-jay-williams/12b56398f1a5e726?ean=9781479460816&amp;amp;next=t&amp;amp;next=t&amp;amp;affiliate=93920&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/pks5/machineblocks&lt;/div&gt;&lt;div&gt;* https://duckduckgo.com/?t=ffab&amp;amp;q=cartisian&amp;amp;ia=web&lt;br&gt;&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Self-actualization&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://jasongullickson.com/the-humane-network-service-interface.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?t=ffab&amp;amp;q=magnum%20opus&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://blog.adafruit.com/2026/03/24/fcc-just-banned-the-import-of-all-new-foreign-made-routers-heres-what-you-can-do-about-it/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://timereshared.com/tops-10-programming/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.404media.co/this-company-is-secretly-turning-your-zoom-calls-into-ai-podcasts/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.upi.com/Top_News/World-News/2026/03/23/craftsman-traditional-handicrafts-disappearing/1291774311771/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://hackaday.com/2026/03/23/acoustic-drone-detection-on-the-cheap-with-esp32/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/batear-io/batear&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://theicelist.org/index.php/Main_Page&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.bleepingcomputer.com/news/security/teampcp-deploys-iran-targeted-wiper-in-kubernetes-attacks/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.hollywoodreporter.com/tv/tv-news/starfleet-academy-canceled-1236544496/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://hackaday.com/2026/03/23/build-this-open-source-graphics-calculator/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/El-EnderJ/NeoCalculator?tab=readme-ov-file#hardware&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.olleewatch.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://toot.cafe/@reconbot/116275998271249885&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?t=ffab&amp;amp;q=the%20old%20psychiatrists%20club&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://orgivemedeath.substack.com/p/in-search-of-the-old-psychiatrists&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Gene_Roddenberry&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Andrija_Puharich&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Pan_Am_Flight_121&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Horatio_Hornblower&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Star_Trek:_The_Motion_Picture&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Star_Trek:_The_Original_Series_season_1&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Z-machine&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/SCUMM&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.w3schools.com/python/python_lists_add.asp&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/genrst/core_language.html#f-strings&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://jasongullickson.com/cartesia-part-i.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/Crosstalk-Solutions/project-nomad&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://rasterweb.net/raster/2017/04/09/apple-wait/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.reddit.com/r/VintageApple/comments/15uh67r/any_tips_on_the_restoration_of_a_couple_of_apple/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://asciiexpress.net/diskserver/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://apple2online.com/?page_id=2590&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://tinkerdifferent.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.openstreetmap.org/node/153660123#map=19/43.421054/-88.340865&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://ia601203.us.archive.org/9/items/swyftcard_manual/swyftcard_manual_text.pdf&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.willegal.net/swyft/swyftcard.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://palmettostatearmory.com/cmmg-mk4-dl-44-blaster-22lr-5-10rds.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.adtpro.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.summitcreditunion.com/bank/money-market-account/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.txdpscu.org/education/dividend-rate-vs-apy-whats-the-difference/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.nerdwallet.com/banking/learn/money-market-vs-cd&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.bluettipower.com/products/apex-300-home-battery-backup?variant=68804e7e63e18b529ef2604a&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://codeberg.org/positionhigh/MicroDexed-touch&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.openstreetmap.org/relation/8353666#map=9/46.145/-90.775&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://luckyslakeside.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.northwoodsmfg.net/about-us&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Tracy_Kidder#Career&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://makerworld.com/en/models/2459767-garden-gnome-with-shovel#profileId-2700742&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.printables.com/model/900605-blank-tombstone&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://codeberg.org/jjg/cartesia&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://jasongullickson.com/cartesia-part-iii.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?t=ffab&amp;amp;q=heirloom&amp;amp;ia=web&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.landsnail.com/a2ref.htm&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Apple_80-Column_Text_Card&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://retrocomputing.stackexchange.com/questions/19681/apple-ii-toggles-between-40-and-80-columns-in-assembly-language-apple-iic&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://cowaymega.com/products/mighty-ap-1512hh?variant=33436620783751&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.lego.com/en-us/product/concorde-10318&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Forrest_Mims&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://archive.org/details/getting-started-in-electronics/Getting%20Started%20in%20Electronics&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ebay.com/sch/i.html?_nkw=apple%20super%20serial%20card&amp;amp;_sacat=11189&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ebay.com/str/aple2plusparts&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Apple_II_serial_cards&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wiktionary.org/wiki/zealot&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Hey U</title><link>http://preposter.us/single-michigan-helium-network/hey-u.html</link><guid>http://preposter.us/single-michigan-helium-network/hey-u.html</guid><pubDate>Sun, 5 Apr 2026 19:50:39 -0500</pubDate><description>
&lt;a href='assets/186-image0.jpeg'&gt;&lt;img src='assets/186-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>Lifeboat</title><link>http://preposter.us/single-michigan-helium-network/lifeboat.html</link><guid>http://preposter.us/single-michigan-helium-network/lifeboat.html</guid><pubDate>Mon, 06 Apr 2026 07:29:03 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;This post is about a new virtual machine I'm calling "&lt;i&gt;Lifeboat&lt;/i&gt;" (at least for now). &amp;nbsp;This isn't a specification, so be prepared for it to wander around a bit.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The primary goal of Lifeboat is portability. &amp;nbsp;I've talked about why this is important &lt;a href="https://jasongullickson.com/personal-virtual-machines.html"&gt;before&lt;/a&gt;. &amp;nbsp;Lifeboat should be simple enough that an expert in programming any given piece of hardware could port it (and therefore all software that runs on it) to a new piece of hardware in a weekend.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Lifeboat consists of three primary components:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* A central processor (CPU) loop&lt;/div&gt;&lt;div&gt;* Random-access memory&lt;/div&gt;&lt;div&gt;* Device driver loops&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;These names may change.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The layout of Lifeboat is simple. &amp;nbsp;It consists primarily of a linear range of memory addresses. &amp;nbsp;Both the CPU and driver loops have access to this memory for read and write operations. &amp;nbsp;As you might guess, the CPU does most of the work, moving data from one memory location to another and performing basic mathematical and logical operations. &amp;nbsp;The driver loops are allocated sections of memory which they read and/or write to depending on the nature of the device they interface with.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Whether these loops are implemented as discrete processes running on dedicated hardware "cores" or as one big cooperative loop on a single processor is completely up to the discretion of the implementer.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think the easiest way to continue is to use an example program, and yes, you know it's going to be "&lt;b&gt;Hello, World!&lt;/b&gt;". &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I'm going to use &lt;a href="https://en.wikipedia.org/wiki/BASIC"&gt;BASIC&lt;/a&gt; for the language of the example as the default high-level language of Lifeboat will probably be something like BASIC.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;10 PRINT "HELLO, WORLD!"&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The interpreter translates this into just two, repeated Lifeboat &lt;a href="https://en.wikipedia.org/wiki/Opcode"&gt;opcodes&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;LOAD A 1000&lt;/div&gt;&lt;div&gt;STORE A 5000&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;(repeat once for each character in the string, incrementing each location by 1)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The first opcode loads the value at memory address 1000 into CPU register A, and the second opcode stores the value just loaded into register A into a new memory location, 5000. &amp;nbsp;These two opcodes are repeated once for each character in the string. &amp;nbsp;This might not seem like much, but it results in printing the words "HELLO, WORLD!" on the display.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The interpreter knows that the letters in-between the quotation marks on line 10 are stored in RAM beginning at location 1000. &amp;nbsp;It also knows that the RAM associated with the display driver begins at location 5000. &amp;nbsp;It knows that any character placed in display memory will be rendered to the display by the display device driver loop, so all it needs to do to PRINT a string is copy that string into the memory allocated to the display device driver.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;At the same time, the device driver loop for the display reads each memory location that is allocated to it and renders the value in that location on a display screen. &amp;nbsp;Exactly how it translates the values stored in memory to a visual image is entirely up to the driver. &amp;nbsp;In this case, the driver scans it's memory range sequentially and selects a glyph from a table that matches the value in each memory location. &amp;nbsp;It then draws the glyph on the display, one after another in the same order as they appear in memory.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As a result of these two simple loops, the words "HELLO, WORLD!" appear on the display screen.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This example might seem too basic to be valuable, but a more complex program and a even a more sophisticated computer (with multiple input/output devices, etc.) requires nothing more than additional opcodes, additional lines of instructions and additional device driver loops. &amp;nbsp;Any additional complexity is pushed-up to the language and application software layers to keep the VM itself as simple as possible (remember the primary goal is portability).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;...and of course there are devils in the details. &amp;nbsp;The most obvious is the potential risk of two loops accessing the same memory location at the same time. &amp;nbsp;However, I'm deliberately deferring decisions on how to manage risks like this until I observe them happening in a real implementation. &amp;nbsp;I don't want to over-complicate the VM through premature optimization, and I have a hunch that problems like these might be best left to the implementer who can, at their discretion, leverage features of their chosen hardware to handle such cases in the best way for their given device.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>It's Swyfty Time Today</title><link>http://preposter.us/single-michigan-helium-network/it-s-swyfty-time-today.html</link><guid>http://preposter.us/single-michigan-helium-network/it-s-swyfty-time-today.html</guid><pubDate>Wed, 8 Apr 2026 12:55:52 -0500</pubDate><description>
&lt;a href='assets/188-image0.jpeg'&gt;&lt;img src='assets/188-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>Synchronized Remote State Machines</title><link>http://preposter.us/single-michigan-helium-network/synchronized-remote-state-machines.html</link><guid>http://preposter.us/single-michigan-helium-network/synchronized-remote-state-machines.html</guid><pubDate>Thu, 09 Apr 2026 07:52:01 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Synchronized Remote State Machine (&lt;b&gt;SRSM&lt;/b&gt;) is a software development pattern for keeping multiple objects in sync between multiple machines across a network. &amp;nbsp;Changes made to the object on one machine are automatically reflected on the others, regardless of what machine the change originates on.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Some advantages over other synchronization methods:&lt;/div&gt;&lt;div&gt;* Transparent operation&lt;/div&gt;&lt;div&gt;* Implementation agnostic&lt;/div&gt;&lt;div&gt;* Unassisted firewall traversal&lt;/div&gt;&lt;div&gt;* Rapid synchronization&lt;/div&gt;&lt;div&gt;* Graceful degradation&lt;/div&gt;&lt;div&gt;* Flexible network configuration&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Background&lt;/b&gt;&lt;/div&gt;&lt;div&gt;This idea came to me while thinking about how I'd write the software for a website where I could upload work for the 3D printers at the shop. &amp;nbsp;The website would need to know when the printers were ready to receive more work, and the printers would need to know when new work was available.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There's many ways to write such a piece of software but the most common ones are problematic because of differences between computers, programming languages, etc. &amp;nbsp;The other more significant problem is that bi-directional communications between computers on public and private networks are difficult or impossible due to the current architecture of networks, routers, firewalls, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Beyond these implementation concerns there's also the problem of deciding up-front how the application will communicate over the network. &amp;nbsp;This process is typically accomplished by designing an "API", a process which is done at the beginning of the design process. &amp;nbsp;It presents something of a chicken-and-egg problem because to design the API right you need to know in advance everything you're going to need to communicate between the systems before you make any of the things that will be using the API. &amp;nbsp;The result is that the API often has to change over time, breaking things that were designed for it's original form and leading to bugs, rework, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;While I was mulling all this over the basic idea of SRSM popped into my head, and after thinking about it for awhile it evolved into something that I think solves all these problems quite well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Theory of Operation&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Programmer-defined object classes (or their equivalent) are derived from a base SRSM class which contains the following components: an ordered incoming event queue (&lt;b&gt;IQ&lt;/b&gt;), an ordered outgoing event queue (&lt;b&gt;OQ&lt;/b&gt;), an object-to-event translator (&lt;b&gt;O2ET&lt;/b&gt;) and an event-to-object translator (&lt;b&gt;E2OT&lt;/b&gt;). &amp;nbsp;The final component of the base class is a communications channel (&lt;b&gt;CC&lt;/b&gt;) formed from a medium common to all systems and languages that will host synchronized objects.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When properties of the inheriting class are modified, these changes are detected by the O2ET and placed in the OQ. &amp;nbsp;That's all that really happens when there's only one SRSM object on the scene.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When the same object is instantiated on another machine that should be synchronized with the first, an optional address parameter is passed during initialization which contains a routable address (IP address, DNS name, etc.) for the machine hosting the object to be synchronized with.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Initialization is similar to above with the exception that before the values of the properties of the inheriting class are initialized the CC connects to the CC of the SRSM at the supplied object. &amp;nbsp;Once connected, it receives events from the remote objects OQ into the local objects IQ. &amp;nbsp;The local objects E2OT, attached to the local objects IQ, applies the events to the properties of the local object. &amp;nbsp;Once synchronized, the reverse happens and the remote object receives any events that are in the local objects OQ. &amp;nbsp;This bi-directional connection remains in place for the lifetime of the object or until the CC is disrupted.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;At this point both objects are synchronized and any further changes to either will be reflected in the other as quickly as the CC can transmit the events.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Since event data is only transmitted across the CC when something changes there is a periodic heartbeat sent across the CC so that objects on either side can tell the difference between lack of activity and a broken CC.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Implementation Details&lt;/b&gt;&lt;/div&gt;&lt;div&gt;I'm still working on a reference implementation now, but here's a few key implementation details that might help answer some questions until that's ready.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The CC can be anything but will most often be a Websocket. &amp;nbsp;This provides the most cross-language and cross-platform compatibility and is what provides the firewall traversal features of SRSM. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Heartbeats are sent once per second and include a time synchronization signal to cancel-out any time drift between remote objects (essential for proper event sequencing).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Events in ordered queues are timestamped to the microsecond. &amp;nbsp;This allows them to be replayed in the correct order regardless of almost any imaginable CC latency. &amp;nbsp;Latest event always wins.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ordered queue lengths are technically limited only by available memory but sane defaults based on the implementation target are required.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Queue "roll-ups" are being considered (perhaps triggered by heartbeats) to automatically manage queue length when the CC is down.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;SRSMs can be chained, with multiple remote objects connected to a single routable object and network-local-only objects descending from the remotes (in a star or snowflake fashion) if desired. &amp;nbsp;This could be used to create dynamic and/or resilient networks of objects, and precise ordered events should remove any risk of data damage from mistakes like routing loops (although such loops might be wasteful of computing and CC resources).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>The Monofile Manifesto</title><link>http://preposter.us/single-michigan-helium-network/the-monofile-manifesto.html</link><guid>http://preposter.us/single-michigan-helium-network/the-monofile-manifesto.html</guid><pubDate>Thu, 09 Apr 2026 10:48:53 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Everyone knows the benefits of moving all your code into a single, gigantic Git repository with millions of files, hours-long CI runs and the joy of making one unrelated change and breaking the entire build, but the time has come for the next step in the evolution of DX: &lt;b&gt;Monofile&lt;/b&gt;.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Monofile provides all the benefits of Monorepo with the added benefit of only having to work with a single file! &amp;nbsp;No more burdensome searching across the millions of files in your Monorepo, no more flipping between tabs in your IDE, just one continuous stream of text, millions (billions?) of lines long.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Using a single language like JavaScript? &amp;nbsp;Good news! &amp;nbsp;Your development environment looks just like your runtime environment with all the source code concatenated compiled into a single file you pass to Node.js!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Using more than one language? &amp;nbsp;Just insert a Markdown-style language separator between sections and use our patented pre-processor to compile everything "correctly" into a single "binary" you upload directly to your production server.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;```sql&lt;/div&gt;&lt;div&gt;SELECT * FROM PUBS&lt;/div&gt;&lt;div&gt;```&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;```typescript&lt;/div&gt;&lt;div&gt;let foo = bar + baz;&lt;/div&gt;&lt;div&gt;console.log(foo);&lt;/div&gt;&lt;div&gt;```&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;```js&lt;/div&gt;&lt;div&gt;query = db_select + rawUserInput;&lt;/div&gt;&lt;div&gt;runQuery(query);&lt;/div&gt;&lt;div&gt;```&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Other benefits include:&lt;/div&gt;&lt;div&gt;* Now the same lint rules can apply to every language you use!&lt;/div&gt;&lt;div&gt;* CI is a single, hours-long step!&lt;/div&gt;&lt;div&gt;* No more complicated build system, containers etc.!&lt;/div&gt;&lt;div&gt;* No need for a memory-hogging IDE!&lt;/div&gt;&lt;div&gt;* One easy payment!&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;You might be worried that Monofile isn't compatible with LLM coding tools but don't worry, it works as well or better than any previous methods.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;How to get started&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Contact sales to get a schedule of our professional training sessions where you'll get the training, tools and psychotropic drugs you'll need to get started with Monofile. &amp;nbsp;Book soon, sessions are filling-up fast!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 20206&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Quality Time</title><link>http://preposter.us/single-michigan-helium-network/quality-time.html</link><guid>http://preposter.us/single-michigan-helium-network/quality-time.html</guid><pubDate>Fri, 10 Apr 2026 06:55:47 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I was going to give-up on working with the ESP32 because I found-out that Micropython became infected with LLM code. &amp;nbsp;This meant I couldn't rely on Micropython even if it's fine for now, because it's too complex for me to replace it if and when things go south.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Without Micropython the ESP32 becomes unusable to me because the device itself as well as it's native programming environment are closed, proprietary things that present the same sort of "lock-in" I'm trying to avoid with Micropython.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This is a bummer because while I can easily come-up with ways around this (&lt;a href="https://jasongullickson.com/lifeboat.html"&gt;Lifeboat&lt;/a&gt;&amp;nbsp;being the first that comes to mind), that takes more time, and time is something I have precious little of at the moment.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But all is not lost.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There's a relationship between what I'm working on and how much time I have. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I should qualify that by saying "Quality time", because for me there is a big difference between an hour when I'm feeling great and an hour at the end of the work day when I'm completely fried.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If temporarily compromising and working with the foul fruit of the LLM allows me to transition my professional work (i.e., making a living) from an environment where I'm forced to spend eight hours a day working with LLM's on OPP (other people's products/other people's profits) that frees-up and increases the amount of Quality time I have available. This in turn makes it easier to pursue things like Lifeboat, which in turn make it possible to escape dependency on code and systems which may at any time become unviable.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This attitude, aligned with the practice described in &lt;a href="https://jasongullickson.com/other-people-s-tools.html"&gt;Other People's Tools&lt;/a&gt; gives me a bit longer lever to leverage myself out of the current technology trap.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The key is to be sure to build in a way that doesn't close-off the exits to this escape plan. &amp;nbsp;A simple example of this would be to construct new, valuable things that depend on language features of Micropython so much that when something like Lifeboat becomes viable it's practically impossible to jump into it. &amp;nbsp;This requires discipline, preferably internal, on the part of myself and the people I'm working with. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So long as I have a choice in who I work with on these projects I don't think that will be a problem. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Xteink X4 Research</title><link>http://preposter.us/single-michigan-helium-network/xteink-x4-research.html</link><guid>http://preposter.us/single-michigan-helium-network/xteink-x4-research.html</guid><pubDate>Fri, 10 Apr 2026 07:20:37 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;b&gt;Hardware&lt;br&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;* ESP32-C3&lt;/div&gt;&lt;div&gt;* SSD1677 compatible display driver&lt;/div&gt;&lt;div&gt;* Hard to find out exactly what display is used...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;After reading about the limitations of the ESP32-C3 I don't know if this device is worth investing time in. &amp;nbsp;It's really cool, and has a lot of attractive hardware features but the single-core, small memory and limited connectivity of the C3 variant will make it hard to do the things I want to do with it&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A better option would be assemble a similar platform based on the ESP32-S3. &amp;nbsp;In addition to dual-cores and more connectivity, the S3 is interesting because of the vector hardware, and while I don't care about "AI" in the contemporary use of the term, that hardware could make it possible to do useful things on-device that would otherwise require depending on an external service.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That said, it might be possible to use this device to feel-out the limits of using an inexpensive e-ink display like this for interactive applications, specifically typing text. &amp;nbsp;So to this end, using it with something like Adafruit's CircuitPython (which &lt;a href="https://learn.adafruit.com/circuitpython-on-the-xteink-x4-ereader/overview"&gt;appears to be at a usable stage&lt;/a&gt;) to see how realistic using the Circuit/Micropython+ESP32+e-ink stack is for an interactive, text-based interface.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;References&lt;/b&gt;&lt;/div&gt;&lt;div&gt;* https://github.com/sunwoods/Xteink-X4&lt;/div&gt;&lt;div&gt;* https://learn.adafruit.com/circuitpython-on-the-xteink-x4-ereader/overview&lt;/div&gt;&lt;div&gt;* https://www.espressif.com/en/products/socs/esp32-c3&lt;/div&gt;&lt;div&gt;* https://tinkeriot.com/esp32-variant-guide-c3-c5-s2-s3/&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Gettin' Swyfty Part II</title><link>http://preposter.us/single-michigan-helium-network/gettin-swyfty-part-ii.html</link><guid>http://preposter.us/single-michigan-helium-network/gettin-swyfty-part-ii.html</guid><pubDate>Sun, 12 Apr 2026 13:28:40 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I got a chance to assemble and test Mike's&amp;nbsp;&lt;a href="https://www.willegal.net/appleii/appleii-first_page.htm"&gt;SwytftCard replica kit&lt;/a&gt; today. &amp;nbsp;The kit is great and only took about a half-hour to solder it up.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/193-swyftcard-bare.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The kit comes with a little booklet with both assembly and usage instructions. &amp;nbsp;On the assembly side it's very complete and easy to follow, my only suggestion would be to add the schematic component keys (R1, C2, etc.) to the parts list. &amp;nbsp;For the most part it's pretty obvious which parts go where but I did find myself second-guessing the very first component in the build because it was the first of four resistors to be installed but this first part is actually R4 on the circuit board.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/193-swyftcard-populated.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I must admit I was a little nervous about the first power-up since there's a chance that if I did something wrong I'd not only smoke the SwytftCard but possibly my whole Apple //e as well...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/193-swyftcard-installed.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Fortunately applying power released no blue smoke and I was greeted with a "beep", a flash of a startup message and an empty document!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/193-swyftcard-screen.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The basic guide included with the kit has most of what you'll need to get started with the SwyftCard with one exception. &amp;nbsp;Unless you happen to have a blank 5.25" floppy disk, you'll need to initialize an existing one before the SwyftCard will let you save your work. &amp;nbsp;The process for doing so is documented in the full &lt;a href="https://ia601203.us.archive.org/9/items/swyftcard_manual/swyftcard_manual_text.pdf"&gt;SwyftCard manual&lt;/a&gt;, but I think this would make a good addition to the kit's included guide as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;FOLLOWING THESE STEPS WILL DESTROY ANYTHING ON THE DISK YOU STICK IN THE FLOPPY DRIVE. &amp;nbsp;YOU HAVE BEEN WARNED!&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;1. Insert the disk you want to format into the first floppy drive&lt;/div&gt;&lt;div&gt;2. Type the following (I used all caps, I'm not 100% sure matters):&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;CALL 3600&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;3. Highlight the text by pressing both LEAP keys (open-apple and closed-apple, the keys on the left and right of the space bar) at the same time&lt;/div&gt;&lt;div&gt;4. Hold USE FRONT (Control) and press CALC (the letter G)&lt;/div&gt;&lt;div&gt;5. Delete CALL 3600&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That's it. &amp;nbsp;Now after typing some stuff press USE FRONT (Control) + DISK (L) and whatever you typed will be saved to disk. &amp;nbsp;If you boot the machine with this disk in the drive, the text will load automatically and you can start working exactly where you left off.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;What's Next?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;I can't convey how excited I am to start working with this system. &amp;nbsp;There are still a few more steps I need to complete before I can really do that, the main one being swapping the TV set I'm using for a monitor with a "real" composite monitor that can correctly display 80-column text (the TV works well enough to confirm things are working, but it's not very readable).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/193-swyft-system.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The second thing I'd like to do is add a serial card to the Apple //e so I can experiment with the other I/O features (other than disk I/O) of the SwyftCard. &amp;nbsp;These were originally intended for printing and communicating with other systems (both other SwyftCard systems and other types, such as BBS's reachable by serial or modem connections). &amp;nbsp;There are a lot of devices and services that are accessible via serial-type connections that I'd like to experiment with using from the SwyftCard environment.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Lone Goose</title><link>http://preposter.us/single-michigan-helium-network/lone-goose.html</link><guid>http://preposter.us/single-michigan-helium-network/lone-goose.html</guid><pubDate>Mon, 13 Apr 2026 23:36:59 -0500</pubDate><description>


&lt;a href='assets/194-img_0770.jpg'&gt;&lt;img src='assets/194-img_0770.jpg'&gt;&lt;/a&gt;</description></item><item><title>My next version of Preposter.us won't be Preposter.us</title><link>http://preposter.us/single-michigan-helium-network/my-next-version-of-preposter-us-won-t-be-preposter-us.html</link><guid>http://preposter.us/single-michigan-helium-network/my-next-version-of-preposter-us-won-t-be-preposter-us.html</guid><pubDate>Tue, 14 Apr 2026 07:55:18 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;This morning I'm thinking about the successor of my current blog software, &lt;a href="https://preposter.us/"&gt;Preposter.us&lt;/a&gt;. &amp;nbsp;It has been a reliable collaborator for many years (at least &lt;a href="https://codeberg.org/jjg/preposter.us/commit/613817320e719dc9c30faf1041f090085ebd4922"&gt;twelve&lt;/a&gt;) but this morning I realized that what comes next will be something completely different.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I love Preposter.us, and I honestly believe that with a little work it could be perfect within itself, but what's happened to Internet Email is something that I can't fix, no matter how good Preposter.us is.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What I can do is make something &lt;b&gt;better&lt;/b&gt;, and right now that better is a new kind of personal computer that works in a much different way than the computers I've used for email in the past, and very different from how most people use computers altogether today.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So the way I publish this blog will change radically once this new personal computer is good enough for me to use on a daily basis.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't know how soon that will be, it could very well be a long-ways off, and I could be using Preposter.us for years to come. &amp;nbsp;But I'm writing this now if for no other reason to cement in my mind that the new thing is coming.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Even when that day comes I don't plan to shut-down Preposter.us. &amp;nbsp;I will continue to pay for and operate the website, and I may even continue to work on the software. &amp;nbsp;I'd love to find others who are as passionate as myself to take the reigns and continue the work (ideally people with more time to spend on it) but even if that doesn't happen I don't see myself shutting it down anytime in the foreseeable future.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I should write more about what the next thing will be, but I kind of want to experiment with actually making it before talking too much about it. &amp;nbsp;I don't want to get painted into a corner.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Anarchy at Work</title><link>http://preposter.us/single-michigan-helium-network/anarchy-at-work.html</link><guid>http://preposter.us/single-michigan-helium-network/anarchy-at-work.html</guid><pubDate>Tue, 14 Apr 2026 09:30:09 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;A few days ago I read &lt;a href="https://eli.li/the-seed-beneath-the-snow"&gt;The Seed Beneath the Snow&lt;/a&gt;, then I read the linked posts and then a few days later there was a re-org at work that triggered a lot of conversations about how the changes might impact Quality, and I not only referenced ideas from all three posts but even shared a link to the first with a select few co-workers who I could trust.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Reflecting on these events brought something to mind that you would expect to be obvious to me but in all honestly never really occurred to me:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;The same practice of being an anarchist in the world might be applied to work as well.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Just saying that "out loud" feels crazy, but I think it's literally the point of the first post, and when I reflect on what has worked and what hasn't in my career, it is the times in which I naturally, unconsciously worked this way.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Some might frame this as "&lt;b&gt;asking forgiveness instead of permission&lt;/b&gt;", which I suppose is part of it, and even the wretched "&lt;b&gt;move fast and break things&lt;/b&gt;" might intersect with this in some sort of Venn diagram but what I see as the essential difference between these practices and what I'm talking about is where the original motivation comes from and what results are acceptable.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;An effective anarchism at work will begin and end with &lt;b&gt;care&lt;/b&gt;. &amp;nbsp;Care for co-workers, care for the people who use the things you make, perhaps care for the work itself but that's certainly the lowest priority of the three.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;While recent mandates may feel like the most repressive, I have always been subjected to them in one form or another when working as a "professional". &amp;nbsp;In order to remain employed, the mandates must be conformed to, but only to the extent that this conformity can be measured. &amp;nbsp;It can be difficult to discern exactly how conformance is measured and crafty bosses have certainly devised difficult to observe measurements, but performing conformance with a wide enough margin of safety often still leaves room for cooperation and collaboration with co-workers in the care-centered way of mutual aid and other diverse tactics.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;All of this has me thinking about how more deliberately cultivate these autonomous zones, both for the purpose of personal heath but also to build solidarity and subvert efforts to dissolve it and pit workers against one-another. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The more I think about it the more this seems like a way to survive until we can build the new world, which is probably the most constant theme I've experienced in all of my anarchist studies.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Elbow</title><link>http://preposter.us/single-michigan-helium-network/elbow.html</link><guid>http://preposter.us/single-michigan-helium-network/elbow.html</guid><pubDate>Thu, 16 Apr 2026 07:23:44 -0500</pubDate><description>
&lt;a href='assets/198-image0.jpeg'&gt;&lt;img src='assets/198-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>Inky</title><link>http://preposter.us/single-michigan-helium-network/inky.html</link><guid>http://preposter.us/single-michigan-helium-network/inky.html</guid><pubDate>Fri, 17 Apr 2026 08:18:59 -0500</pubDate><description>
&lt;a href='assets/199-image0.jpeg'&gt;&lt;img src='assets/199-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>RSD 2026</title><link>http://preposter.us/single-michigan-helium-network/rsd-2026.html</link><guid>http://preposter.us/single-michigan-helium-network/rsd-2026.html</guid><pubDate>Sat, 18 Apr 2026 22:27:46 -0500</pubDate><description>Four shops, four towns, 350 miles and way too many records.


&lt;a href='assets/200-image0.jpeg'&gt;&lt;img src='assets/200-image0.jpeg'&gt;&lt;/a&gt;&lt;a href='assets/200-image1.jpeg'&gt;&lt;img src='assets/200-image1.jpeg'&gt;&lt;/a&gt;&lt;a href='assets/200-image2.jpeg'&gt;&lt;img src='assets/200-image2.jpeg'&gt;&lt;/a&gt;&lt;a href='assets/200-image3.jpeg'&gt;&lt;img src='assets/200-image3.jpeg'&gt;&lt;/a&gt;&lt;a href='assets/200-image4.jpeg'&gt;&lt;img src='assets/200-image4.jpeg'&gt;&lt;/a&gt;&lt;a href='assets/200-image5.jpeg'&gt;&lt;img src='assets/200-image5.jpeg'&gt;&lt;/a&gt;&lt;a href='assets/200-image6.jpeg'&gt;&lt;img src='assets/200-image6.jpeg'&gt;&lt;/a&gt;</description></item><item><title>The Seed</title><link>http://preposter.us/single-michigan-helium-network/the-seed.html</link><guid>http://preposter.us/single-michigan-helium-network/the-seed.html</guid><pubDate>Sun, 19 Apr 2026 11:37:08 -0500</pubDate><description>
&lt;a href='assets/201-image0.jpeg'&gt;&lt;img src='assets/201-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>CircuitPython on the XTEINK X4</title><link>http://preposter.us/single-michigan-helium-network/circuitpython-on-the-xteink-x4.html</link><guid>http://preposter.us/single-michigan-helium-network/circuitpython-on-the-xteink-x4.html</guid><pubDate>Tue, 21 Apr 2026 07:06:13 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I've been considering using an &lt;a href="https://www.xteink.com/"&gt;XTEINK X4&lt;/a&gt; as a "test mule" for some &lt;a href="https://jasongullickson.com/deep-future.html"&gt;deep future&lt;/a&gt; computing experiments and although I've &lt;a href="https://jasongullickson.com/xteink-x4-research.html"&gt;ruled it out for the long-run&lt;/a&gt;, the board I prefer is out-of-stock until October so I needed something to work with until then. &amp;nbsp;While I was researching the XTEINK I found an &lt;a href="https://learn.adafruit.com/circuitpython-on-the-xteink-x4-ereader/"&gt;Adafruit tutorial&lt;/a&gt; for installing CircuitPython on it and that clinched the deal.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/202-img_0819.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Getting CircuitPython installed was trivial once I decided to stop doing it the hard way. &amp;nbsp;This meant installing a web browser that supports &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API"&gt;Web Serial&lt;/a&gt;, and &lt;a href="https://en.wikipedia.org/wiki/Chromium_(web_browser)"&gt;Chromium&lt;/a&gt; fit the bill.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;After that the next hardest part is getting the device connected and having a serial port show-up. &amp;nbsp;I found the most reliable way to do this was to connect the device, turn it off and then turn it on again and not touch it. &amp;nbsp;Right after it started I could see &lt;b&gt;/dev/ttyACM0&lt;/b&gt;. &amp;nbsp;For some reason that port will disappear occasionally, or sometimes the device will appear as &lt;b&gt;/dev/ttyACM1&lt;/b&gt;. &amp;nbsp;Computers, so non-deterministic...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Anyway, once the port is visible you can start the web flashing process (after backing-up the original firmware as instructed) and in a couple minutes you'll have CircuitPython installed. &amp;nbsp;From this point the tutorial takes you through the process of getting it on the network, accessing the various web interfaces, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/202-img_0818.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I was able to spent a few hours over the last few days experimenting with this setup and while it's a bit more complex than what I like to work with, it worked pretty well. &amp;nbsp;I was able to figure out how to use the &lt;a href="https://docs.circuitpython.org/en/latest/shared-bindings/terminalio/index.html"&gt;terminalio module&lt;/a&gt; to display text on the e-ink screen, work with files on the filesystem, etc. &amp;nbsp;I even managed to port one of the Pouch tools (Jet, a journaling tool) to the device, write some journal entries and have them rendered on the e-ink.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/202-img_0905.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Along the way I uncovered some limitations or hang-ups of this setup for the type of work I have in mind. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The first is that there doesn't seem to be a way to use the e-ink display as a regular terminal. &amp;nbsp;The only way I found to update it is to refresh() the entire screen which is slow (like, seconds). &amp;nbsp;I know there must be a way to do partial updates to the screen (the original firmware did this) but even then it's never going to work for things like scrolling text. &amp;nbsp;This isn't a complete deal-breaker, I have some ideas for how to work with these limitations but it does mean that I can't simply use the tools I've written with this display the way I'd used them with a regular terminal.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The second is how CircuitPython expects to be accessed over a network. &amp;nbsp;This is very handy if you use only one WiFi network but if you were to say, take the setup to the coffee shop there's no way to switch networks without resorting to using a physical serial connection. &amp;nbsp;Again this isn't a deal-breaker (I usually carry all the cables I need and I don't mind using a serial console) but as-is it would be a serious limitation for using the device outside of experimental environments. &amp;nbsp;That said software could be written to compensate for this so it's not a dead-end.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The third is the lack of a real-time clock. &amp;nbsp;Most of the programs I want to run on this device produce files with date stamps which requires the device to know the current date. &amp;nbsp;I was able to work-around this by manually setting the software RTC to the current date/time, but this will certainly drift, and of course will need to be reset anytime the device is restarted. &amp;nbsp;I can work around this for experiments but it would be frustrating for long-term use.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The more serious limitation is how the buttons on the device are connected to the embedded processor. &amp;nbsp;There are several buttons on the device, but they are connected to only three GPIO pins on the microcontroller and none seem to be connected to the reset pin. &amp;nbsp;Not only does this limit the things you can do with these buttons, it also means that you can get the device into a "stuck" state which may not be recoverable, like I did.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/202-img_0909.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I tried a number of things to get the device out of "safe mode" but no matter what I do it insists that the BOOT button is being held-down at startup. &amp;nbsp;My guess is that whatever pin is normally connected to the BOOT button on CircuitPython devices is permanently pulled high or low on the XTEINK X4, forcing it into safe mode potentially forever. &amp;nbsp;I have an open question on the &lt;a href="https://forums.adafruit.com/viewtopic.php?t=223516"&gt;Adafruit forums&lt;/a&gt; to see if there is a way out of this, and I'm also going to re-flash the CircuitPython firmware to see if that works as well, but re-flashing the firmware every time it cold-boots isn't going to work for a platform for experimentation.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If I can find a way to resolve the safe mode issue without resorting to prying the device apart, I think I can work-around the rest of the limitations well enough to keep the software work rolling until I can get the right hardware for the job at the end of the year. &amp;nbsp;If not, this thing will probably have to go back to being just a tiny e-reader.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>One step closer to perfection </title><link>http://preposter.us/single-michigan-helium-network/one-step-closer-to-perfection.html</link><guid>http://preposter.us/single-michigan-helium-network/one-step-closer-to-perfection.html</guid><pubDate>Wed, 22 Apr 2026 18:27:16 -0500</pubDate><description>


&lt;a href='assets/203-img_0912.jpg'&gt;&lt;img src='assets/203-img_0912.jpg'&gt;&lt;/a&gt;</description></item><item><title>Wine Cooler</title><link>http://preposter.us/single-michigan-helium-network/wine-cooler.html</link><guid>http://preposter.us/single-michigan-helium-network/wine-cooler.html</guid><pubDate>Sun, 26 Apr 2026 07:49:09 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I spent a couple hours last night in the lab working on a friend's specialized refrigerator made for chilling wine (probably called a "wine cooler" but every time I say that I can't help but think Bartles &amp;amp; James). &amp;nbsp;It stopped working, and when he pulled it apart noticed that the fan on one end wasn't spinning and turned with some resistance. &amp;nbsp;When he showed it to me it was apart on a counter and I offered to take it home to the lab for some measurements.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/204-img_0923.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's a fairly simple device, little more than a &lt;a href="https://en.wikipedia.org/wiki/Thermoelectric_heat_pump"&gt;Peltier cooler&lt;/a&gt;, power supply and thermostat. &amp;nbsp;There's two of these Peltier/power supplies pairs, one on each end of the cabinet and both are controlled by a single board that provides buttons to set the desired temperature and turn the internal lights on-and-off.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Taking voltage measurements at the various connection points of the power supply board on the misbehaving end confirmed that it wasn't putting any power out to the fans, and temp measurements on the hot and cold sides of the Peltier showed virtually no change. &amp;nbsp;I compared this to power and temperature measurements on the other end and things were more of what you'd expect.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/204-img_0929.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Given this I'm fairly confident that the power supply is shot, and at least one of the fans are bad. &amp;nbsp;I'm guessing that the bearings are failed on one of the fans, and either the fan or the Peltier or both pulled too much current and overloaded the supply. &amp;nbsp;I would expect this to trip a breaker or blow a fuse, so I went hunting for such things on the power supply board.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I located two fuses but they were both intact. &amp;nbsp;Hmm... &amp;nbsp;It would not be out of the question for something else to fail on a board like this, and after a few web searches I found a lot of similar stories about coolers like this failing. &amp;nbsp;Some had detailed technical discussions and &lt;a href="https://forum.allaboutcircuits.com/threads/success-stories-repair-thermoelectric-cooler.101748/page-3"&gt;even successful repairs&lt;/a&gt;, most repairs consisting of replacing some or all of the electrolytic capacitors and/or the power transistors.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So chances are that replacing or repairing that power supply board is all that is needed, but something that bugged me the entire time is that the control panel never lights-up. &amp;nbsp;It has a two-digit LED display for the set temperature, and one of the buttons should toggle the internal lighting and neither of these things lights-up when power is applied. &amp;nbsp;Since this board appears to contain the thermostat function it's possible that it could be malfunctioning and sending the wrong signals to the power supply that appears to be failing. &amp;nbsp;My confusion is compounded by the wiring to this control panel because it's not crystal clear to me where it's power comes from. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/204-img_0926.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There's a connector that goes to the temperature sensor, two that appear to go to the internal LED's and then two more, each connected to a 3-pin connector on each power supply which I assume controls the cycling of each Peltier. &amp;nbsp;So where does the power for the control panel itself and the interior LED's come from? &amp;nbsp;It must come from the power supplies, but there's no clear positive/negative connection to one of the supplies, just these two three-pin connectors. &amp;nbsp;It's possible the control board gets it's power from these 3-pin connections but if that's true why isn't it lighting-up if one of the power supplies appears to work?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Without knowing the answer to this I can't be 100% sure replacing the dubious power supply will fix the cooler, so I started thinking about ways I could isolate the control board from the equation and at least increase my confidence that the power supply in question is bad and it's not just getting bad instructions from a faulty controller.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This was fairly easy because I was able to confirm that the "working end" continued to behave the same even if I removed the connection to the controller board. &amp;nbsp;I also noticed at this time that there's two LED's on the power supply board (red and green) and that they both light-up on the working supply. &amp;nbsp;When I repeat the same test on the questionable end, there's still no power at the outputs, no temp change across the Peltier and neither of the LED's illuminate.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;At this point I'm confident the power supply is toast. &amp;nbsp;This doesn't tell me anything certain about the control panel board though, and it still leaves me puzzled at to why the controller doesn't light-up.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I was able to find replacement power supplies that look to be similar for around $100 delivered. &amp;nbsp;This would be the easiest thing to try to fix the cooler (coupled with at least one replacement fan), and I'm confident that the power supply needs to be fix/replaced, but even with a new supply I can't be 100% sure the unit will work because I don't know what is up with that control panel board. &amp;nbsp;My biggest concern is that something in that controller is bad and when I attach a new power supply to it, the new supply will get damaged by a fault in the controller. &amp;nbsp;I'd really like to see the controller work before advising my friend to spend $100 on a new part.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/204-img_0932.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This is complicated by the fact that I can't locate a drop-in replacement for the controller board, so even if the new power supply isn't ruined by a faulty controller, I can't simply say "spend another $x dollars to finish the job", and if I can't repair the controller board it might just be a waste of money to replace the power supply.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The whole time I've been working on this my mind wanders-off designing replacement electronics instead of trying to understand/diagnose the broken ones. &amp;nbsp;I'm sure I could design a replacement that would be more serviceable and probably less expensive than the replacement parts I've been able to find (not to mention the parts I can't find). &amp;nbsp;But that is a much more time-intensive project, something I don't honestly see me finding time to complete until next winter.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I could also try repairing the faulty power supply first, which might only require a few dollars worth of parts (most or all I probably have on-hand somewhere). But here again there's a significant time bump involved in that approach that I don't know I'll have, and it's entirely possible that the repair will fail and we'll be back at ordering a $100 part.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I didn't like any of these options so I decided to sleep on it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In the morning I had one more idea as to how to test the control panel board. &amp;nbsp;Maybe it gets it's power from just one of the 3-pin leads coming from one of the power supplies, and maybe it's the connector that is connected to the bad supply? &amp;nbsp;This seems weird to me but honestly there's a lot of things about this device that seem weird, and I seem to remember that the two 3-pin connectors were labeled A and B or 1 and 2 or something that indicates that the connector that goes to the dead supply is the "first" one. &amp;nbsp;So if the controller gets it's power from only one of the supplies, then it seems reasonable that it would be getting it from the dead one.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So I'm thinking my next step is to swap the 3-pin connectors and see if the control panel lights-up. &amp;nbsp;If that happens I can be a lot more confident that swapping the bad supply and fan will fix the thing. &amp;nbsp;If not, then maybe I can try to learn more about the controller board (maybe just manually trace it out) and find some way to reliably test it. &amp;nbsp;Until I know it's condition (or can find a replacement) I just don't feel comfortable recommending my friend throw any money at the thing.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;(in the meantime I'll keep dreaming-up an open replacement as well)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Stay the course</title><link>http://preposter.us/single-michigan-helium-network/stay-the-course.html</link><guid>http://preposter.us/single-michigan-helium-network/stay-the-course.html</guid><pubDate>Wed, 29 Apr 2026 07:14:30 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;I have to keep reminding myself to focus on the future and not the past.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This morning I tried to use one of my old projects to setup a simple filesharing site and I was reminded of what a disaster contemporary computing is. &amp;nbsp;I started to go down a rabbithole of fixing this, if only so I could run my own software and 30 minutes later I lost all my gumption and wanted to go dig ditches.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Then I saw a toot from a friend who is working on a new computer, and thought about how we might collaborate to build the new computer I'm working on, and all was right with the world.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't know why I have to keep re-learning this the hard way, but I guess so long as I keep re-learning it somehow, that's OK.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Dreams</title><link>http://preposter.us/single-michigan-helium-network/dreams.html</link><guid>http://preposter.us/single-michigan-helium-network/dreams.html</guid><pubDate>Wed, 29 Apr 2026 07:53:49 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;As I spend more time with the Apple //e Swyft machine I'm inspired by the joy it brings me to create something like this myself. &amp;nbsp;Maybe a direct descendant from Raskin's work, maybe a "spiritual successor", or maybe something entirely different so long as it captures whatever it is that makes the SwyftCard system so enjoyable to me.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm trying hard not to jump to any conclusions about exactly what that is and instead focusing on just using the thing and noticing what feels good. &amp;nbsp;There is always a temptation to make it do more, but I've found that it's very easy to curb that by paying close attention to how things feel, and when they stop feeling good, I stop going in that direction.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As it stands today it's a fully functional stand-alone system that I use daily in place of my other electronic journal (Jet) when I happen to be at the desk which the Apple //e sits on. &amp;nbsp;When I'm elsewhere I have to use something else, which is a bummer.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It doesn't feel good.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So something that I'm certain will be a part of the new machine is portability. &amp;nbsp;This isn't a surprise, but I'm glad to have it confirmed through experience.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Another thing that is simply amazing about Swyft is how fast you can get to work. &amp;nbsp;If I left the data disk in the disk drive after my last session, the machine is ready for me to start typing before the CRT monitor can even warm-up. &amp;nbsp;I would guess (I haven't timed it precisely) that it has loaded the text from the disk and is ready for input in about five seconds. &amp;nbsp;This is pretty miraculous for a machine of such meager resources and a storage device that transfers data slower than any modem I've ever used.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This "readiness" makes a huge difference for me, because it's very easy for a thought to slip from my mind through distractions or just because something else takes its place in my head. &amp;nbsp;The ability to have a thought and begin tapping it into my journal with no time for it to dissipate is very important to me and is probably one of the reasons working with Swyft feels so good.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Another things I've noticed is how foolproof persisting the text is. &amp;nbsp;There is no Open/Load/Save/Save As/.etc. commands but only only one disk command, the "DISK" key (CTRL-L). &amp;nbsp;If you have a text loaded, it saves the text to disk, if you don't have a text loaded, CTRL-L loads it. &amp;nbsp;There's no way to screw this up. A disk is a unit of text, and the system is smart enough to prevent you from overwriting the text of one disk over the text of another (it will simple "beep" at you if you try to do something destructive). &amp;nbsp;It's simple and works flawlessly. &amp;nbsp;One of (perhaps the first) rules of user interface design is to never loose someone's work, and this simple mechanism obeys that rule splendidly.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm in the process of connecting the machine to the outside world and I'm being very careful to avoid falling into the traps or default behavior that makes contemporary connected machines destructive to work and creativity. &amp;nbsp;Perhaps surprisingly the SwyftCard provides communications facilities but of course they are radically different from anything we're used to in the 21 century. &amp;nbsp;As I sort-out the way to make this work with modern networks I'm treading very lightly to preserve the well-thought-out nature of these communications tools so that even once it's connected to the network the joy of working with the machine is preserved.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Jason J. Gullickson, 2026&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Papercuts</title><link>http://preposter.us/single-michigan-helium-network/papercuts.html</link><guid>http://preposter.us/single-michigan-helium-network/papercuts.html</guid><pubDate>Thu, 30 Apr 2026 06:31:42 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I don't remember if I've written about this before but one of the most useful things I've learned about at my job is the idea of "papercuts" as an analogy to small problems that don't seem to justify a solution but are just painful enough to be distracting.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;At work this term was used in conjunction with "incident" in the context of "developer experience" (which is just a trendy way to say programming tools). &amp;nbsp;The "papercut incidents" channel was a place to bring-up problems with the development tools that were not serious enough to call for a formal intervention but were annoying nonetheless. &amp;nbsp;Having a place to discuss these gave everyone a chance to see what little things were causing problems for everyone and address them together.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This is a powerful idea. &amp;nbsp;Most of us spend at least some time each day living with such papercuts and while they are usually easy to ignore, they still have a cost and if left unresolved, that cost can compound.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;By acknowledging and sharing these papercuts we not only have a way to help each-other out, but I've found that these small injuries are often more dangerous in the long run that the major ones. &amp;nbsp;Major injuries are visible, they are talked about, and they draw attention that makes it easier to heal them. &amp;nbsp;Papercuts go unnoticed, but if we create a place and a way for them to be noticed they are often easy to solve or compensate for, making a way for real and regular improvement in life.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Daydreaming about my next computer</title><link>http://preposter.us/single-michigan-helium-network/daydreaming-about-my-next-computer.html</link><guid>http://preposter.us/single-michigan-helium-network/daydreaming-about-my-next-computer.html</guid><pubDate>Thu, 30 Apr 2026 07:24:59 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I'm planning to spend a lot more time with the SwyftCard before I start building anything, but if I was going to build my descendant of the Swyft today, what would it be?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Physically, it would be inspired by the &lt;a href="https://duckduckgo.com/?t=ffab&amp;amp;q=Olivetti%20M-10&amp;amp;ia=images&amp;amp;iax=images"&gt;Olivetti M-10&lt;/a&gt;. &amp;nbsp;The "slab" form-factor is the simplest thing that can work for this IMHO and the Olivetti improves on the &lt;a href="https://en.wikipedia.org/wiki/TRS-80_Model_100"&gt;TRS-80 Model 100&lt;/a&gt; by allowing the display to be adjusted which is simply more ergonomic. &amp;nbsp;It's also got that "it" factor of Italian design so until I can come up with something better, I think that's the place to start.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It would use an ortholinear keyboard layout with LEAP keys on either side of the space bar. &amp;nbsp;That might mean moving the "layer" keys needed to get a full character set out of the ortholinear arrangement but that's OK.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think the DISK key could be eliminated (it's probably OK to passively persist the text to storage automatically) but the rest of the special keys used by the SwyftCard would remain.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The electronics utilize &lt;a href="https://en.wikipedia.org/wiki/Field-programmable_gate_array"&gt;FPGA&lt;/a&gt; for most major functions. &amp;nbsp;Whether this is a single large FPGA or several connected by a bus (probably &lt;a href="https://en.wikipedia.org/wiki/I3C_(bus)"&gt;i3c&lt;/a&gt;) will come down to the number of &lt;a href="https://en.wikipedia.org/wiki/Field-programmable_gate_array#Logic_blocks"&gt;LUTs&lt;/a&gt; needed to implement the components and the avaliable capacit of open FPGA chips of reasonable cost.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The CPU is possibly a &lt;a href="https://en.wikipedia.org/wiki/Motorola_68000_series"&gt;Motorola 68k&lt;/a&gt; core, possibly a custom processor designed to run Forth, or someting even stranger. &amp;nbsp;This will depend on the software, which is discussed later.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If possible, RAM is implemented in an FPGA as well (possibly as&lt;a href="https://nandland.com/lesson-15-what-is-a-block-ram-bram/"&gt; block RAM&lt;/a&gt;) on the same chip as the CPU or separate if necessary. &amp;nbsp;Maybe this will prove to be impossible but I don't think so.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I/O controllers are FPGA as well (again preferably on-chip but OK if not due to insufficient LUTs or &lt;a href="https://en.wikipedia.org/wiki/General-purpose_input/output"&gt;GPIO&lt;/a&gt;). &amp;nbsp;Major controllers I anticipate needed are for keyboard, display, storage, network and power management.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The keyboard controller manages a matrix of keyboard keys and produces output via i2c bus.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The display controller drives a outdoor-viewable display (possibly &lt;a href="https://en.wikipedia.org/wiki/Electronic_paper"&gt;epaper&lt;/a&gt; if a responsive enough display can be found, otherwise probably &lt;a href="https://en.wikipedia.org/wiki/Transflective_liquid-crystal_display"&gt;transflective LCD&lt;/a&gt;) and connects to the CPU via i3c.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The storage controller manages removable flash storage contained in pocket-sized modules and communicates with the CPU via i3c.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For networking, an &lt;a href="https://en.wikipedia.org/wiki/ESP32"&gt;ESP32&lt;/a&gt; module will be used for both complexity and compliance reasons. &amp;nbsp;This might be replaced by a an FPGA dedicated to communications in the future so it is on a removable board or card.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The power management controller is responsible for battery charge management, charging the battery itself and communicating with the CPU about the battery state and other power supply statistics. &amp;nbsp;The power supply is a fairly straightforward (probably using an off-the-shelf chip for compliance reasons) lithium-chemistry charger supporting both USB-C and &lt;a href="https://en.wikipedia.org/wiki/Maximum_power_point_tracking"&gt;MPPT&lt;/a&gt; DC input (allowing the machine to easily be charged via solar, hand-crank, etc.).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The hardware is rounded-out by a handful of standard physical connectors (USB-C for power, 1/8" headphone jack, etc.) in addition to a specialized BeBox-inspired "&lt;a href="https://en.wikipedia.org/wiki/BeBox#GeekPort"&gt;GeekPort&lt;/a&gt;" which is essentially a number of GPIO's pulled from the CPU's FPGA with protection and isolation circuitry. &amp;nbsp;Being nothing more than FPGA pins this connector could be used for just about anything.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;On the software side I'm leaning toward a fully custom implementation of the Swyft environment written in Forth, running on a custom CPU designed for this purpose. &amp;nbsp;However, to expedite things there's two other options:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;1. Run a modified version of the &lt;a href="https://en.wikipedia.org/wiki/Canon_Cat"&gt;Cat&lt;/a&gt; software on a 68k FPGA core&lt;/div&gt;&lt;div&gt;2. Run the ROM code from the &lt;a href="https://en.wikipedia.org/wiki/Jef_Raskin#Pioneering_the_information_appliance"&gt;SwyftCard&lt;/a&gt; on a FPGA implementation of the Apple //e&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think the hardware described is capable of all three options so if desired a phased approach could be taken where the original Swyft software could be used until a new implementation is ready. &amp;nbsp;In fact, this would allow the new implementation to be built using one of the existing implementations. &amp;nbsp;Using one of the existing implementations would require some hacking to make the old code work with the new hardware, but the FPGA-based design provides a lot of flexibility to customize how the hardware appears to the software that wouldn't be an option in a more traditionally-designed system. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In a perfect world, the code that is used to synthesize the FPGAs themselves would be written and used from within the Swyft environment, making the machine self-hosting to a level that few (if any) computers have been so far.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Downlink 2026-04-30</title><link>http://preposter.us/single-michigan-helium-network/downlink-2026-04-30.html</link><guid>http://preposter.us/single-michigan-helium-network/downlink-2026-04-30.html</guid><pubDate>Thu, 30 Apr 2026 07:52:27 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;I'm a couple weeks behind on Downlinks so I decided to catch-up on this last day of the month...&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://archive.org/details/musopen-lossless-dvd&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://musopen.org/music/2571-symphony-no-9-in-d-minor-op-125/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://gist.github.com/kerma/c52e93eef3b3e50d7237&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.howtogeek.com/how-to-bulk-convert-audio-files-in-the-linux-terminal/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://linuxize.com/post/how-to-find-files-in-linux-using-the-command-line/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.lego.com/en-us/product/nasa-artemis-space-launch-system-10341&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.nasa.gov/blogs/missions/2026/04/05/artemis-ii-flight-day-5-crew-demos-suits-readies-for-lunar-flyby/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Opcode&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.fredscave.com/40-micropython-looping-for.html#micropython-range-function&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://techtutorialsx.wordpress.com/2017/09/29/esp32-esp8266-micropython-string-split-method/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.fredscave.com/23-micropython-data-types-dictionary.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ebay.com/sch/i.html?_nkw=5.25%20cleaning%20disk&amp;amp;_sacat=0&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://asciiexpress.net/diskserver/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.crowdsupply.com/krakenrf/discovery-dish&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Apollo_13&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://libcsp.github.io/libcsp/basic.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.smithsonianmag.com/history/real-story-football-follows-president-everywhere-180952779/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://concretedog.blogspot.com/2026/04/xteink-x4-with-open-source-firmware.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://learn.adafruit.com/circuitpython-on-the-xteink-x4-ereader/back-up-the-firmware&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/sunwoods/Xteink-X4&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.circuitpython.org/projects/xteink_x4/en/latest/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/open-x4-epaper/community-sdk&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://platformio.org/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://tinkeriot.com/esp32-variant-guide-c3-c5-s2-s3/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.adafruit.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.amazon.com/XTEINK-Page-Turn-Ultra-Thin-Magnetic-Ready-Distraction-Free/dp/B0GR4BCJK3&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.waveshare.com/catalogsearch/result/?q=epaper+development+board&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.waveshare.com/esp32-s3-epaper-3.97.htm?sku=33552&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.waveshare.com/ESP32-S3-ePaper-3.97/Resources-And-Documents&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.amazon.com/s?k=db9%20to%20db25&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/waveshareteam/ESP32-S3-ePaper-3.97&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.repaircafe.org/en/join/start-your-own/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.willegal.net/appleii/appleii-first_page.htm&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.willegal.net/blog/?page_id=2&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/SCELBI&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.xteink.com/products/xteink-x4&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.tindie.com/search/?q=apple+ii&amp;amp;p=1&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://codeberg.org/jjg/preposter.us/commit/613817320e719dc9c30faf1041f090085ebd4922&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://eli.li/the-seed-beneath-the-snow&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.applefritter.com/content/iie-keyboard-help&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.applefritter.com/content/cleaning-apple-e-case-what-solution-would-you-recommend&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.applefritter.com/content/what-are-your-methods-cleaning-your-apple-ii-inside-outside&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://techcrunch.com/2026/04/13/thousands-of-rare-concert-recordings-are-landing-on-the-internet-archive-listen-now/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://archive.org/details/aadamjacobs&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.applefritter.com/search/node/keyboard%20dishwasher&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.applefritter.com/content/nonworking-apple-iie-help&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.applefritter.com/content/basic-page-keyboardswitches-and-keyboard-topics&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://www.willegal.net/appleii/early-a2-keyboards.htm&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/EPUB#History&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://realpython.com/intro-to-pyenv/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.iso.org/standard/53255.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.baeldung.com/linux/python-multiple-versions#bd-2-virtual-environments-with-tools-from-the-standard-library&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.python.org/3/library/venv.html#creating-virtual-environments&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.applefritter.com/aup&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.urbandictionary.com/define.php?term=Carerist&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.python.org/3/library/venv.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://learn.adafruit.com/circuitpython-on-the-xteink-x4-ereader/setting-up-web-workflow&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://learn.adafruit.com/magtag-weather/project-code-2&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://open-meteo.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.circuitpython.org/en/latest/shared-bindings/wifi/index.html#module-wifi&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.circuitpython.org/en/latest/shared-bindings/terminalio/index.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.circuitpython.org/en/latest/shared-bindings/displayio/index.html#module-displayio&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://learn.adafruit.com/circuitpython-display-support-using-displayio/epaperdisplay&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://learn.adafruit.com/welcome-to-circuitpython/interacting-with-the-serial-console&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.linuxquestions.org/questions/linux-desktop-74/usb-is-not-a-mtp-device-4175463715/?__cf_chl_tk=l9FTK.8K0jHgwHigJ6myVHUgUbPrj0h8IuDln0N2Bk4-1776362653-1.0.1.1-C05MjHsvs1NwzmDewWIwk.CA.83LznKPBs66Voj7mkg&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://concretedog.blogspot.com/2026/04/xteink-x4-with-open-source-firmware.html?m=1&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/crosspoint-reader/crosspoint-reader&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/crosspoint-reader/crosspoint-reader/blob/master/USER_GUIDE.md#power-on--off&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/crosspoint-reader/crosspoint-reader/releases&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://xteink.dve.al/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/crosspoint-reader/xteink-flasher/issues/4&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.myminifactory.com/object/3d-print-skull-drake-hand-puppet-personal-use-690894&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/zephyr/tutorial/repl.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://latitude.to/map/us/united-states/cities/beaver-dam-wisconsin&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/servo/servo/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.thatprivacyguy.com/blog/anthropic-spyware/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://forums.adafruit.com/viewtopic.php?p=1086785#p1086785&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/netham45/esp32-rtp&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/pyboard/tutorial/repl.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://makertube.net/a/jjg/video-channels&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://makertube.net/w/k9EzH4bnR61d45XSuB5KPF&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://www.hanny.com.cn/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://forum.allaboutcircuits.com/threads/how-to-repair-a-thermoelectric-wine-cooler.176296/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://forum.allaboutcircuits.com/threads/success-stories-repair-thermoelectric-cooler.101748/page-3&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://dicasdozebio.com/2013/12/01/1547/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://dicasdozebio.com/wp-content/uploads/2013/12/fig20-adega-primario.jpg&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://dicasdozebio.com/wp-content/uploads/2013/12/fig21-adega-secundario.jpg&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ebay.com/sch/i.html?_nkw=pcb140411k2%20110&amp;amp;_sacat=0&amp;amp;_odkw=pcb140411k2&amp;amp;_osacat=0&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ebay.com/itm/316006045908?_skw=pcb140411k2%20110&amp;amp;itmmeta=01KQ3M2FJ6WAEMG978MNSD9X5Y&amp;amp;itmprp=enc%3AAQALAAAA8GfYFPkwiKCW4ZNSs2u11xB5QJH7kmdI53e1wNtL0ItIHsP39sZJNSu7GBLIsTVqKaEPW2tGlt08K1MEUVSed59TXW4MX41oDWadxAAAAv7yCxvYbwn3zDn84%2Bn17gt1oO0zYwFn1LAGzhyNGAiVnBdsB9%2BrnNdYATYkcWsG2kY0v7mA71k%2F7hzBbCBv3bjhRVt6HU1eR%2BIeyjN8T98Wn2hKWabBLy24rooHa4ewJlRHdhc%2BGz81rLyaiLs4wHLxlPDWdTwQ%2F%2B9%2FHjIbSJ9%2FCynRhGWPyETsdSRCwrBJdXtckv3ErgLlkgtecCvj7vAw9A%3D%3D%7Ctkp%3ABk9SR5T6ifS4Zw&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ebay.com/itm/405198619819?_skw=pcb140411k2%20110&amp;amp;itmmeta=01KQ3M2FJ675VX1TM1W5060XCZ&amp;amp;itmprp=enc%3AAQALAAAA8GfYFPkwiKCW4ZNSs2u11xDoCjRj6u2WE1mQXVXzpI2dsN%2BxY470Hj0q1LxgJLWO30L2YBecVOZzq3cjhOR2pnALmiTQ7tDNx6qhXZDabf1APJnzkXbiJa3o7fKiuzsfVVBb3NTgax9D6T2%2BA8lMCtj9ISpLE3rlgXWaZm%2Bg2lupukL67WUI8Bc1GclauPFm0%2BaRZzX2hECx4fXTtow4hsdwI7Fn4vVBFSI6%2B%2B%2F9M7or6GibhMWm%2Bc0R3T9qVzpLTQ7IS0dC6IHCBlEGOzg%2FV9GoX71y%2BUSMGSnaJkRemaLXoCUUV4BfZPYwaG3E1RU7sA%3D%3D%7Ctkp%3ABFBMlPqJ9Lhn&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.ebay.com/itm/405660205555?_skw=pcb140411k2%20110&amp;amp;itmmeta=01KQ3M2FJ6PMT4R8AKPN3DTGEK&amp;amp;itmprp=enc%3AAQALAAAA8GfYFPkwiKCW4ZNSs2u11xCa2aJLPN3ecS0bf2IoNuPgoFi7lUnOTIZuoMpggOQ9JrqLYgjX0xLx3wO9ZNIjfanJTj4uphLAR3XLgnYuIWjIZJk3JCv38Br0waaAiayN0mMkRqWpIja0tmRL3zywBpHfjXo3ZUKktDjdz86PI%2BOkQe0YmDICIHvtmpekFxDeoO4ZR8Ftm%2FNSxF3rGBEdoKFAei2CbkASsRHNGKBl9j4zVl1YrGVtNKKxJOgTWmXaDFUrkSvLBOLSVcARze%2FuzxWIAHpt1u742HegoK974b9%2FhufiuqGbooQYr7R9eSt--g%3D%3D%7Ctkp%3ABk9SR5T6ifS4Zw&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Thermoelectric_heat_pump&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://ntrs.nasa.gov/api/citations/20250001849/downloads/NASA-TM-20250001849.pdf&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://praesidiumparamedics.com/shop/kits?ss_source=sscampaigns&amp;amp;ss_campaign_id=69ea2d645d0ec66232be9c38&amp;amp;ss_campaign_name=New+Jump+Bags&amp;amp;ss_campaign_sent_date=2026-04-23T16%3A28%3A24Z&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://knowyourmeme.com/memes/your-scientists-were-so-preoccupied-with-whether-or-not-they-could-they-didnt-stop-to-think-if-they-should&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://lectronz.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.falvotech.com/Kestrel-2EX.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://nandland.com/lesson-15-what-is-a-block-ram-bram/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?t=ffab&amp;amp;q=Olivetti%20M-10&amp;amp;ia=images&amp;amp;iax=images&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/BeBox#GeekPort&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Jef_Raskin#Pioneering_the_information_appliance&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>A Drug Against War</title><link>http://preposter.us/single-michigan-helium-network/a-drug-against-war.html</link><guid>http://preposter.us/single-michigan-helium-network/a-drug-against-war.html</guid><pubDate>Fri, 01 May 2026 07:38:27 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;Happy May!&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A Drug Against War&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;KMFDM, 1993&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


&lt;audio controls&gt;&lt;source src='assets/210-adaw.mp3'&gt;&lt;/audio&gt;</description></item><item><title>Lick</title><link>http://preposter.us/single-michigan-helium-network/lick.html</link><guid>http://preposter.us/single-michigan-helium-network/lick.html</guid><pubDate>Sat, 2 May 2026 20:50:53 -0500</pubDate><description>


&lt;a href='assets/211-img_0950.jpg'&gt;&lt;img src='assets/211-img_0950.jpg'&gt;&lt;/a&gt;</description></item><item><title>Bialetti Moka Induction Rossa</title><link>http://preposter.us/single-michigan-helium-network/bialetti-moka-induction-rossa.html</link><guid>http://preposter.us/single-michigan-helium-network/bialetti-moka-induction-rossa.html</guid><pubDate>Sun, 03 May 2026 08:07:20 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I dropped my &lt;a href="https://www.bialetti.com/it_en/moka-express.html"&gt;Bialetti Moka Express&lt;/a&gt; and the handle broke-off. &amp;nbsp;I thought about fixing it (and I still might), but the handle has the combined requirements of tolerating very high temperatures and also remaining cool which is something I don't know exactly how to replicate myself, so for now I decided to pick-up a new one.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I recently purchased a single-burner induction "hot plate" for both emergency use and also just to see what working with an induction stove-top would be like should we decide to go that way in the future. &amp;nbsp;Since I can't imagine an emergency that wouldn't be improved with hot coffee, I decided to try giving an induction-compatible Moka pot a shot.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I was surprised by how much more expensive the 4-cup Moka Induction was from what I paid for the Moka Express, but looking at current prices for both I guess the bump to get something that works with induction isn't that severe. &amp;nbsp;All of these things have gotten a lot more expensive lately...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/212-img_0952.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I got red because it cost the same as the other option (black), and we all know red is faster.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="https://www.bialetti.com/it_en/moka-induction-rossa.html"&gt;Moka Induction&lt;/a&gt; is unsurprisingly a lot heavier than the all-aluminum Express. &amp;nbsp;This isn't all bad, it feels a lot more stable than the Express, especially on our gas range. &amp;nbsp;Working-through the "seasoning" process (essentially running three rounds through the machine, one with water-only and two more with coffee)&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/212-img_0951.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I noticed the steel base of the induction-compatible version holds a lot more heat for a much longer time. &amp;nbsp;Again not a complete surprise, but it does mean making back-to-back servings is a little trickier than just running the Express under cold water for a few seconds before you can handle it safely.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The funnel/filter is a bit different two, again a different metal than the Express, shiner and with a different shape. &amp;nbsp;It also seems to hold-on to water more than the old funnel (which seems true for the rest of the coffeemaker) and requires a bit more shaking and turning-around to get all the water out of it after cleaning.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/212-img_0953.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The induction version seems to take the same amount of time to make coffee as the Express, maybe a little faster (the larger boiler surface area perhaps?) but the difference, if any, is small enough that I don't notice.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What I do notice is that when pouring from the new pot a lot more steam/vapor is released toward my hand and the first time I poured a cup from it I managed to burn myself. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/212-img_0956.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Hard to get a photo, but the steam leaks out the hinge-side of the lid when pouring...&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Interestingly enough, the induction version has a very different handle from the Express, it feels a bit more rubbery (maybe less likely to shatter like the Express did when I dropped it?). &amp;nbsp;The material and shape seem to do a worse job of remaining cool than the original, and I find I have to use a sleeve or a pot holder to pick-up and pour the thing.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I also got a chance to try the new pot with an induction cook-top (the one I mentioned earlier).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/212-img_0959.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Rossa on the ~$100, 1800W induction hot-plate. &amp;nbsp;I'll probably write a post about this thing in the future&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I was a little concerned because I'd read that some induction stoves won't work with a small pot on a large "burner", but the plate detected the pot just fine, and with the power set to 1000W (roughly 50%, the recommended power level as per the instructions) it started boiling in about half the time it took on the gas range.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The good news is that the results (the coffee itself) are, as far as I can tell, identical to my original Moka Express. &amp;nbsp;The first few cups were inconstant even after the "seasoning" process but I'm happy to say now that I'm at least ten cups in that the flavor, body, etc. are indistinguishable.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So there are some trade-offs to the induction version of the Bialetti Moka pot, and if you were sure you'd never need to make coffee on an induction cook top I would recommend sticking with the less-expensive Express. &amp;nbsp;But if like me there's a chance you might need something induction-compatible the extra cost and minor inconveniences of the induction version are worth it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>One Step Closer</title><link>http://preposter.us/single-michigan-helium-network/one-step-closer.html</link><guid>http://preposter.us/single-michigan-helium-network/one-step-closer.html</guid><pubDate>Mon, 4 May 2026 12:51:31 -0500</pubDate><description>
&lt;a href='assets/213-image0.jpeg'&gt;&lt;img src='assets/213-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>Movie Cameras</title><link>http://preposter.us/single-michigan-helium-network/movie-cameras.html</link><guid>http://preposter.us/single-michigan-helium-network/movie-cameras.html</guid><pubDate>Tue, 05 May 2026 07:03:02 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I've worked with a few digital video cameras over the years, and for whatever reason I don't like making movies with cameras that don't feel designed for the job.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;During the DV "revolution" of the 2000's there were many pro-sumer-to-pro cameras that were like grown-up camcorders with some of the trappings of professional video cameras. &amp;nbsp;These cameras were excellent for indie filmmaking, the most well-known being the &lt;a href="https://en.wikipedia.org/wiki/Panasonic_AG-DVX100"&gt;DVX-100&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Today the standard is &lt;a href="https://en.wikipedia.org/wiki/Digital_single-lens_reflex_camera"&gt;DSLR&lt;/a&gt; still cameras with video capability. &amp;nbsp;They can get some great shots, but I don't like working with them. &amp;nbsp;The ergonomics don't fit the way I like to shoot, the controls are aligned with my still-shooting muscle memory and for whatever reason I just have a hard time getting good shots with them. &amp;nbsp;I know there's all sorts of accessories that are supposed to address this but it seems like a better solution is to start with a better design in the first place.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If you travel up the price scale a bit ($10k+) you can get into some cameras that are closer to what I'm talking about, but to kit them out into a complete setup you could take in the field you get start sailing well over that $10k mark and for lots of reasons (including fear of breaking it) I'm not ready to go there.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Many years back I took a trip in the opposite directly and started experimenting with &lt;a href="https://en.wikipedia.org/wiki/Super_8_film"&gt;Super-8 film&lt;/a&gt;. &amp;nbsp;Shooting on film is a completely different thing, and I really enjoyed it, but again the cost, when you count the film, lab, transfer, etc. is beyond what I'm going to budget for a feature project.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But I really liked the "feel" of shooting with film. &amp;nbsp;The cameras I picked-up (one from a thrift store, another borrowed from a friend) are high-quality units with nice glass and feel as solid in the hand as a firearm. &amp;nbsp;When you pull the trigger you feel it, not just a little "beep", and when it's shooting there is physical, tactile feedback that you are doing something.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So I started experimenting with combining the cost-effectiveness of digital video with the experience of shooting Super-8 film and designed a 3D-printable Super-8 cartridge to house enough electronics to replace the regular film.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/214-super8_cart.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I seem to have misplaced all the photos and videos I made with the DV8 project at the time, but luckily I still have the CAD files.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I had some initial success using a Raspberry Pi Zero and it's camera module (one of the first such modules) but there was a lot left to be desired. &amp;nbsp;I really wanted the film cartridge to work with the camera in all the same ways as the real thing, including things like variable frame rate. &amp;nbsp;At the time I didn't know enough about controlling the camera module to even begin to do something like this, and since it required interfacing with tiny parts of the camera (the little pawl or hook that advances the film) it felt out-of-reach for my mechanical engineering capabilities at the time as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Since then I've thought about the project occasionally, usually when I'm shooting with the DSLR. &amp;nbsp;I've seen a few &lt;a href="https://hackaday.com/2021/05/04/soviet-super-8-camera-hides-raspberry-pi-zero/"&gt;other people&lt;/a&gt; try to use Super-8 cameras for video, and they are really cool, but I haven't seen one that prioritizes getting the details like the shutter, aperture, etc. right.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Because of this, I'm considering reviving my DV8 project. &amp;nbsp;I have an idea for a mechanism that not only solves the frame rate interface but would also solve a focus problem I ran into in a way that I think will produce a very "filmic" look as well. &amp;nbsp;It's more complicated than what I've done before, but I've learned a lot since my last attempt almost ten years ago. &amp;nbsp;Knowing that I'm not the only person who things this is an interesting idea helps as well, because it's a lot easier to get and stay motivated when someone else might make use of what you're making. &amp;nbsp;Finally, there's a lot more to choose from on the electronics side now when it comes to digital camera hardware, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Artificial</title><link>http://preposter.us/single-michigan-helium-network/artificial.html</link><guid>http://preposter.us/single-michigan-helium-network/artificial.html</guid><pubDate>Wed, 06 May 2026 07:24:06 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Why would you choose something artificial over something natural?&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't know how others would answer this question so I have to guess. &amp;nbsp;When I think about artificial ingredients, the primary reason for choosing them over the real thing is probably cost, followed by (in no particular order) availability, handling convinience and side-effects.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;"Side-effects" here hides a lot but one example is artificial sweeteners. &amp;nbsp;An artificial sweetener might be selected over a natural sweetener like sugar to reduce the amount of calories in a food. &amp;nbsp;Another would be artificial ingredient like &lt;a href="https://en.wikipedia.org/wiki/Olestra"&gt;Olestra&lt;/a&gt; which replace natural fats.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I've been very frustrated with the use of the term "Artificial Intelligence" by the AI Industry because what they are selling has nothing in common with natural intelligence (or simply "intellegence" as you don't need to qualify a word when you're talking about the real thing). &amp;nbsp;But for whatever reason I was focusing on the "intelligence" part and not the "artificial" part.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When considered in the context of how the word "artificial" is used elsewhere, the phrase "artificial intelligence" really does describe the products of the AI Industry. &amp;nbsp;Like an artificial sweetener, it can trick a person into thinking they are tasting real sugar when what they are really consuming &lt;a href="https://en.wikipedia.org/wiki/Acesulfame_potassium"&gt;acesulfame potassium&lt;/a&gt;. &amp;nbsp;Like Olestra, a person using AI feels like they are consuming the thing it replaces, but the result in both cases is something &lt;a href="https://en.wikipedia.org/wiki/Olestra#Side_effects"&gt;less desirable&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But I think the more important question is &lt;b&gt;"why"&lt;/b&gt;. &amp;nbsp;A person choosing to consume a product with an artificial ingredient because that artificial ingredient is better for them than the real thing is an act of choice and personal agency, but when people are coerced into consuming artificial ingredients, either by obscuring their presence or by making the real thing unavailable, that's another matter. &amp;nbsp;That is &lt;b&gt;no choice at all.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think in most cases we use and consume artificial things because of choices others have made. &amp;nbsp;The choice to replace something natural with something artificial because it was more profitable to do so. &amp;nbsp;This could be a direct reduction of cost, or a reduction of operational costs (simplified manufacturing, etc.) or a reduction of loss (artificial things tend to stay "fresh" longer) but they are all permutations of increasing profit.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Turning this lens on the AI Industry, I think it's obvious why so many CEOs are jumping on the AI Industry's bandwagon. &amp;nbsp;For them, or perhaps for their bosses and bosses bosses, AI is a way to replace natural intelligence with something cheaper, and they have so little respect for their customers that they don't think it will make a difference. &amp;nbsp;They also have so little respect for their source of natural intelligence that they are excited about replacing them with something artificial, based on (unproven) promises that it will increase profits.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So the term "artificial intelligence" is perfect for what the AI Industry produces: &lt;i&gt;a cheap substitute for the real thing whose primary value is the promise of increased profit and whose output is inferior at best and produces unwanted-to-dangerous side-effects in the people who use and consume it.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There have been many times in the past where a new artificial ingredient was celebrated as a revolutionary achievement, only to fail to achieve what it's creators claimed it would. &amp;nbsp;When you think about what artificial things are and why they exist, this outcome is no surprise. &amp;nbsp;The people incapable of observing this pattern are those who are blinded by their desire for what the makers of artificial things promise.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;With this understanding I no longer hesitate and in fact embrace the use of the phrase "artificial intelligence" for the products of the AI Industry. &amp;nbsp;Their claims of it being the same or better than the real thing are just as absurd as they were before, but I now see how this phrase perfectly describes this absurdity, and I hope others will too.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>First Furniture</title><link>http://preposter.us/single-michigan-helium-network/first-furniture.html</link><guid>http://preposter.us/single-michigan-helium-network/first-furniture.html</guid><pubDate>Thu, 7 May 2026 16:28:05 -0500</pubDate><description>
&lt;a href='assets/216-image0.jpeg'&gt;&lt;img src='assets/216-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>Downlink 2026-05-08</title><link>http://preposter.us/single-michigan-helium-network/downlink-2026-05-08.html</link><guid>http://preposter.us/single-michigan-helium-network/downlink-2026-05-08.html</guid><pubDate>Fri, 08 May 2026 06:27:39 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/History_of_water_supply_and_sanitation&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Cloaca_Maxima&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://spectrum.ieee.org/the-italian-computer-olivettis-elea-9003-was-a-study-in-elegant-ergonomic-design&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.nytimes.com/2013/02/11/arts/design/olivettis-artful-breakthroughs.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://spectrum.ieee.org/when-the-history-of-computing-comes-alive&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://spectrum.ieee.org/the-silicon-dioxide-solution&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.moma.org/calendar/exhibitions/2741?&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Olivetti_Elea&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Adriano_Olivetti#From_the_Post-World_War_I_period_to_the_years_of_Fascist_consensus&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Altiero_Spinelli&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Community_Movement&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://mntre.com/media/reform_md/2026-01-31-dec-jan-update.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.crowdsupply.com/mnt/mnt-reform-next#products&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://shop.mntre.com/products/mnt-pocket-reform&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Super_8_film&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/DarkZeros/LightInk&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.mayoclinic.org/healthy-lifestyle/nutrition-and-healthy-eating/in-depth/artificial-sweeteners/art-20046936&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Acesulfame_potassium&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Conditional_and_Iterator_Functions&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Text&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.xda-developers.com/i-tried-multi-color-3d-printing-with-the-ams-like-canvas-module/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://openelab.io/blogs/learn/difference-between-elegoo-centauri-carbon-and-elegoo-centauri-carbon-2&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://learn.adafruit.com/micropython-hardware-sd-cards/circuitpython&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.circuitpython.org/en/latest/shared-bindings/sdcardio/index.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.circuitpython.org/en/latest/shared-bindings/busio/index.html#busio.SPI&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://learn.adafruit.com/circuitpython-on-the-xteink-x4-ereader/pinouts&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.circuitpython.org/projects/xteink_x4/en/latest/api.html#implementation-notes&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://learn.adafruit.com/circuitpython-basics-i2c-and-spi/spi-devices&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/adafruit/circuitpython/issues/10419&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/adafruit/Adafruit_Learning_System_Guides/pull/3061&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.luisllamas.es/en/micropython-cheatsheet/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://learn.adafruit.com/micropython-hardware-sd-cards/hardware&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Maybe I'm over-thinking this?</title><link>http://preposter.us/single-michigan-helium-network/maybe-i-m-over-thinking-this.html</link><guid>http://preposter.us/single-michigan-helium-network/maybe-i-m-over-thinking-this.html</guid><pubDate>Sun, 10 May 2026 06:29:11 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Maybe it's as simple as taking a single FPGA and connecting it to the desired peripherals? &amp;nbsp;No controllers, no interfaces, nothing. &amp;nbsp;Connect the GPIO of the chip directly to the keyboard matrix, directly to the display bus, directly to the SD card, the headphone jack, etc.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Take for example the upcoming &lt;a href="https://www.crowdsupply.com/tinyfpga/tinyfpga-ex"&gt;TinyFPGA EX&lt;/a&gt;. &amp;nbsp;It has over 50 usable GPIO's. &amp;nbsp;That's plenty to drive a keyboard, any number of displays, SPI, i2c, etc. devices. &amp;nbsp;It makes me wonder how far you could take it, maybe even the power management bus?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The point is maybe you can just build a whole damn computer out of a single piece of dynamic logic. &amp;nbsp;It might not be the fastest or easiest way, and some would say it's not the smartest way, but a lot of people said the same thing about building a general-purpose computer out of a calculator chip and that turned out to be worth a shot anyway.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A computer built this way could become any kind of computer. &amp;nbsp;It could be a recreation of a historical machine or something completely new, and it can all be done by writing code.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's true that such a machine built around the TinyFPGA EX and it's Lattice ECP5 chip isn't going to rival a machine with the latest Intel or AMD CPU at running things like Windows or Linux, but as for myself (and I think a growing number of others) the time has come to explore alternatives to those over complicated systems with their endless hunger for hardware, continuous stream of security breaches and deliberate incursions into personal privacy.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A computer that can be synthesized from scratch, where it's possible to know exactly what it's doing, made out of simple parts that anyone with the desire can learn to understand would be a radical departure from what we have available today.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If I can carve-out a little time this summer I'm going to try to piece something like this together out of the parts I have on-hand. &amp;nbsp;With any luck I'll know what I'm doing by the time the EX ships in the fall and I can produce a standard machine around that board. &amp;nbsp;If there's any interest shown by others along the way, maybe I'll get a kit ready in time for Xmas...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Non-verbal Processing</title><link>http://preposter.us/single-michigan-helium-network/non-verbal-processing.html</link><guid>http://preposter.us/single-michigan-helium-network/non-verbal-processing.html</guid><pubDate>Mon, 11 May 2026 07:09:17 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;At first I thought that so much of the new computer company has little to do with computers, and I suppose that's technically true, but what it has a lot to do with is people, and that's really what the computer is about. &amp;nbsp;So in a roundabout way, it's all about the computer because it's all about people.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The things I've been thinking about over the last couple of days are the ways to make the company viable, and the crux of that is finding ways to put them into the hands of the people who can use them most. &amp;nbsp;It's an odd machine, because the two groups of people who come to mind are people who want a reliable tool and people who want to tweak endlessly. &amp;nbsp;I thought this was a dichotomy, and maybe a sign that I was on the wrong track, but then I realized that this perfectly describe *me*. &amp;nbsp;While I may be a human dichotomy, this realization alleviated any fears I had that the machine I have in mind is too unfocused to meet the needs of at least one group of people, and I think that maybe it could reach both; but how to &lt;i&gt;communicate&lt;/i&gt;&amp;nbsp;that?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I do have a fair amount of connections in the hacker/maker/hobbyists communities and when I've talked about the *implementation* of such a machine this is where most of the interest lies. &amp;nbsp;I can think of ways to engage these communities and find individuals who might be interested in such a machine, and in many ways it's the perfect group to share a new computer with. &amp;nbsp;They are open-minded, creative, have the background to understand what is novel and exciting about the design and are in general more tolerant of the inevitable "growing pains" that are part of a new thing.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The other group might be a little harder for me to reach. &amp;nbsp;My experience over the last month or so of working daily with the SwyftCard-equipped Apple //e has really driven-home for me how a simple, reliable machine can make working with a computer a joy again. &amp;nbsp;While it might appear crude superficially, and there is a learning curve to making use of it when you're coming from contemporary machines the beauty of it becomes quickly apparent after spending only a few days with it, and after a week I didn't want to ever give it up.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I believe the computer I'm designing can achieve both of these things, but what I'm struggling with is how to demonstrate this to these two very different groups of people. &amp;nbsp;&lt;b&gt;There I go making that same mistake again; it's not necessarily two different groups (remember, I'm both), but it's two distinct ...&lt;i&gt;perspectives&lt;/i&gt;?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When I'm using the //e as a tool, I want to turn it on and work. &amp;nbsp;I don't care about how flexible or dynamic or simple or whatever about the hardware, the firmware, or even the software, I just want to sit down and start typing. &amp;nbsp;In this "mode" (for lack of a better term) I don't mind learning something new if it will be directly applicable to what I'm working on, but I don't want that to take so long that I loose my groove, and I especially don't want to get side-traced or distracted in the process. &amp;nbsp;While the SwyftCard can do a bunch of things that I've not yet committed to muscle memory, when I decide I need something new I grab the manual (a PDF, but ideally it would be a printed hard-copy) and look it up. &amp;nbsp;This makes the manual, and it's indexing critical to preserving my flow, because if I had to use some web site or search engine or otherwise engage with my "regular" computer, all that dramatically increases the chances that I'll get off-task and loose the momentum I need to do the work I set out to do in the first place.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That first-hand experience, more than anything else leading-up to it (researching the SwyftCard, reading the documentation, reviews, discussing it with others online, etc.) is what really drove home the power of using it. &amp;nbsp;I spend decades not deciding to assemble a machine to use it because none of that stuff provided enough motivation to spend the time and money necessary to make it happen, and it took a complete collapse of the world around the computers I depend on to push me over that line.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't want it to take that long or cost that much for people to buy one of my computers.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So maybe the takeaway from all this is that I probably won't have to worry as much about reaching the hackers, since they (like I) are likely to do the work to get what they want out of something like this because we are excited and motivated to study something indirectly. &amp;nbsp;No doubt we want to get it into our hot little hands and take it apart but I think we can also get over that acquisition hump by learning about something before we have direct experience with it. &amp;nbsp;To put it another way, what makes the machine I'm designing exciting to the hackers can be communicated more easily (or at least it's easier for me to understand how to communicate it).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But what makes this machine compelling to the other side of me, the side that wants a computer that is a tool I can trust is the &lt;i&gt;experience&lt;/i&gt;&amp;nbsp;of it. &amp;nbsp;To reach people looking for this, I'm just now realizing, is using the machine to do some real work. &amp;nbsp;In my case it took a lot of motivation to commit to this and I'm a little intimidated by recognizing that fact. &amp;nbsp;However, this realization is already sparking new ideas about how to provide and facilitate that experience and just imagining those things is nothing short of titillating.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This learning process, the one I just experienced is one of the greatest things about writing this blog. &amp;nbsp;It's a form of writing that for me sits in a sweet spot between my internal dialog and publishing polished work. &amp;nbsp;The process of it, the &lt;i&gt;experience&lt;/i&gt;&amp;nbsp;allows me to work a problem in a way that the other two methods don't, and as shown above it makes it possible for me to solve problems that would otherwise be intractable. &amp;nbsp;If I can make a tool that helps others experience such joy, I'll have achieved success.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Micro(computer)agressions</title><link>http://preposter.us/single-michigan-helium-network/micro-computer-agressions.html</link><guid>http://preposter.us/single-michigan-helium-network/micro-computer-agressions.html</guid><pubDate>Tue, 12 May 2026 07:31:01 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I was going to write about something much more interesting but then my screen went blank. &amp;nbsp;It went blank right after I opened the Preferences dialog of the Markdown editor I use to write these posts. &amp;nbsp;I open the Preferences dialog every time I start the editor because I have to toggle the "Large Type" switch of and on again because when I open the editor the type is microscopic even though the Preferences toggle for Large Type is enabled. &amp;nbsp;When I disable it, the type gets somewhat larger and then when I re-enable it the type regains its full size.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The reason I use the editor is because my mail client stopped having spellcheck. &amp;nbsp;It used to underline misspelled words, but then one day it didn't. &amp;nbsp;I tried to find the history of the various upgrades that were applied to see where it went away but I was unable. &amp;nbsp;I tried to file a bug with the team who writes the mail client, but I couldn't because I wasn't logged-into Github.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I tried to log into Github, but I couldn't because something had changed since the last time I used it. &amp;nbsp;I stopped using Github for my personal work completely when they started using my work to destroy people like me and well, the entire world really and inbetween now and then something changed and I can't log-in.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I tried using a different mail client, but I couldn't because the only one I could find that was compatible with the various layers of software that make-up my laptop's operating system are not quite compatible with any except one. &amp;nbsp;That one won't work with my email server for reasons I can't divine.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Because of that, I'm writing this post instead of one about new ideas I have about human-computer interfaces, but I suppose that is what this is about as well. &amp;nbsp;Every day I work with this computer, and the computer I use for work, and the computer that I call a phone, and pretty much every other computer I work with on a daily basis is a story like this, and often many stories like this. &amp;nbsp;Tiny bits of drag slowing down or stopping the work I'm trying to do. &amp;nbsp;I can't compute the cost of this over the course of a lifetime, but what I can say is that as I get older the cost gets higher. &amp;nbsp;The amount of time I have between when an idea solidifies in my imagination and when it returns to the mist grows shorter every day. &amp;nbsp;Even ounces of additional drag now reduce my thoughts to dust.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If the Jobsian ideal of a personal computer is a &lt;i&gt;"bicycle for the mind"&lt;/i&gt;, what would you call what has become of them today? &amp;nbsp;I can't think of a perfect metaphor but at the moment a wood chipper comes to mind.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;But there is hope&lt;/b&gt; (remember, no total bummer posts this year).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The SwyftCard-equipped Apple //e I've been using the last month exhibits none of these drag-inducing behaviors. &amp;nbsp;It is the fastest, most reliable and lowest-drag computing tool I use by far and possibly as far as I can remember. &amp;nbsp;It is ancient by technology standards and is far from "restored", yet it works more reliably than the $1200 new-last year laptop I'm writing this on. &amp;nbsp;It's also faster, ready to work within five seconds of power-on (my laptop can't even wake-up from sleep and unlock that fast). &amp;nbsp;It is ready to work as soon as I am and has no problem keeping-up with me.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If I can help others perceve this sort of drag that their computers put on their work, and how the computer I'm building can eliminate it, I don't think I'll have any trouble making a living at making them.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So why am I not using it right now? &amp;nbsp;That's a fair question and the answer is fairly simple: I haven't connected it to the outside world yet. &amp;nbsp;I'd like to say I have some lofty reason for this but it's really simply a matter of getting my hands on the right cables. &amp;nbsp;You see, I thought about making a cable but then thought I'd try to be more "practical" and order one...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;J&lt;i&gt;ason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;(as if to have the last laugh, when I went to copy-and-paste this text from the Markdown editor into my email client, CTRL-A stopped working to select-all...)&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Putting the Cyber in the Cyberdeck</title><link>http://preposter.us/single-michigan-helium-network/putting-the-cyber-in-the-cyberdeck.html</link><guid>http://preposter.us/single-michigan-helium-network/putting-the-cyber-in-the-cyberdeck.html</guid><pubDate>Wed, 13 May 2026 07:26:33 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Don't get me wrong, I think the custom computers that are &lt;a href="https://hackaday.com/blog/?s=cyberdeck"&gt;referred to as "cyberdecks"&lt;/a&gt; are cool, and I've even built some myself, but I've always been irked by the use of that term to refer to machines that have a regular indirect human-computer interface in the form of a keyboard, screen, etc.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;My first exposure to that word came from reading &lt;a href="https://en.wikipedia.org/wiki/William_Gibson"&gt;Gibson&lt;/a&gt;, and in Gibsons work there is a very clear line between "terminals" (regular computers) and "cyberdecks" and that is that a cyberdeck connects &lt;i&gt;directly to the brain&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Maybe these custom computers should be called "cybredecks". &amp;nbsp;I don't know the actual definition of "cybre", but my first exposure to the word (misspelling?) was in the fediverse and it was used in reference to things with the cyberpunk aesthetic.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So when I see a cool custom, often hand-made computer without a neural interface I involuntarily roll my eyes a little.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But what would it take to do it right? &amp;nbsp;I know what you're thinking, you're thinking &lt;i&gt;"well Jason, not &lt;b&gt;everyone&lt;/b&gt; is going to drill a hole in their head or even attach electrodes to it like you did when you were 13 to try to control their computer with their mind..."&lt;/i&gt;, but maybe they &lt;i&gt;should&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There's been a fair amount of invasive work in this area since the mid-to-late 1900's but most of it involves surgery. &amp;nbsp;That was a line I've never really crossed because honestly it's messy and complicated if you don't have access to the right tools, facilities and staff. &amp;nbsp;It's also largely irreversible which is something I try to avoid. &amp;nbsp;But since my early experiments I've learned a lot and I think there's some non-invasive ways to make such a thing, some of which I'm not sure have been tried yet.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A neural interface has an input and an output component like most any computer interface. &amp;nbsp;To keep things straight I'm going to refer to I/O from the computer's perspective, input being the control signals sent to the computer from the person and output being the data sent form the computer to the person.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The input side has some well-established and easy answers. &amp;nbsp;An &lt;a href="https://en.wikipedia.org/wiki/Electroencephalography"&gt;EEG&lt;/a&gt;-type device uses electrodes attached to the skin to detect brainwaves that can be display and recorded (this is what I was experimenting with using my &lt;a href="https://en.wikipedia.org/wiki/VIC-20"&gt;VIC-20&lt;/a&gt; when I was 13). &amp;nbsp;Various numbers of electrodes have been used but even just a few can produce a usable control signal as demonstrated by several games and children's toys. &amp;nbsp;Most of the cost and complexity of the EEG hardware comes from the precision amplifiers needed to boost the weak signals, but all of that has become very common and inexpensive in the last decade or two. &amp;nbsp;The rest of the work is in analyzing the signals but here again this is something that can now be done with commodity hardware and open-source algorithms.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The output side is where things get tricky. &amp;nbsp;Traditionally feeding any sort of electrical signal *into* the brain involves surgically-implanted electrodes that stimulate the brain tissue directly. &amp;nbsp;There have been sophisticated demonstrations of this, some recently but the work of literally "drawing images on the brain" goes &lt;a href="https://en.wikipedia.org/wiki/William_H._Dobelle#Career_and_artificial_vision"&gt;much further back&lt;/a&gt; than any contemporary self-proclaimed genius wants you to know. &amp;nbsp;This approach has potential but it's not something you should try at home.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;However there is a non-invasive way to put a signal into the brain called &lt;a href="https://en.wikipedia.org/wiki/Transcranial_magnetic_stimulation"&gt;transcranial magnetic stimulation&lt;/a&gt;&amp;nbsp;(TMS). &amp;nbsp;This technique uses a process similar to how an electric current can be induced in a wire without touching it using a magnetic field. &amp;nbsp;A TMS device is capable of stimulating brain cells without direct contact with the brain, so this is the starting point of the output side of our cyberdeck interface.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;*This is where we get into things that I don't know the research status of.*&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The first thing that comes to mind is to use an array of TMS fields to "draw" on the brain similar to the invasive techniques, and perhaps something like beam-forming could be used to do this with some level of precision, but I have another idea that is both simpler and I think better.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Instead of attempting to simply paint an image on the brain what I propose is using TMS to stimulate a single point with precision in a reliable fashion. &amp;nbsp;To transmit information into the brain, the information is serialized and then signaled into this single area in the same way that a single wire can be used to transmit data by encoding and decoding it on either end. &amp;nbsp;This single point could use a digital or analog encoding (experimentation would be needed to determine which works best), and there is a wide-range of existing encoding techniques that could be explored.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In order for this to work the brain would need to be trained to decode a serial data stream. &amp;nbsp;This might sound far-fetched but most of us do this all the time in the form of reading written language. &amp;nbsp;*Writing is a very low-fidelity encoding of one person's thoughts into a stream of characters that is then deserialized and decoded by another persons brain.* &amp;nbsp;If our brains are capable of learning to do this using a visual data channel, I don't see why they couldn't do the same using a TMS-induced signal which essentially creates a new sensory channel.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It would take training to learn how to use this new "sense", and it might take a long time (how long does it take an illiterate adult to learn to read?), but I don't see any reason to believe that it's impossible, and if it could be done, it would make a non-invasive direct neural interface not only possible, it could be produced inexpensively and used by virtually anyone.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Aside from being the right interface for a cyberdeck, such a device could also be the most accessible computer interface ever made, since it would allow working with a computer regardless of other sensory impairments.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There are of course risks involved in developing such a device even if it doesn't involve surgery and I would have to think about it more and do more research to devise a plan for conducting the experiments to develop it in as safe a way as possible. &amp;nbsp;It's also possible that there's something I don't know about that would invalidate the approach altogether. &amp;nbsp;But given the potential, I think it's worth throwing some brainpower at.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Plus, then I could submit a cyberdeck project to Hackaday without cringing.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Getting there from here</title><link>http://preposter.us/single-michigan-helium-network/getting-there-from-here.html</link><guid>http://preposter.us/single-michigan-helium-network/getting-there-from-here.html</guid><pubDate>Thu, 14 May 2026 06:29:42 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;i&gt;I feel like I write about this a lot, but maybe because it's something I'm always doing?&lt;/i&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The last two days I've opened my (regrettable) Framework laptop, log-in and about five seconds after starting to work the screen goes black and I have to close the lid, count to ten and then open it and log-in again. &amp;nbsp;I haven't even bothered to look into it because it's just another in a long list of papercuts that come with working with a modern computer.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I've been talking about a replacement for the modern computer, sort of hinting at it in increasing levels of detail and while I don't have the entire thing figured-out, I know where I'm going.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But the distance between my shitty Framework/Linux laptop and the computer I want to share with the world is real. &amp;nbsp;Some days it feels close and some days it feels miles away.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I could cut some corners and possibly shorten that distance, but I've learned over and over the hard way that shortcuts don't get you where you're going and most of the time they lead you right back to where you started.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So what are some steps I can take to make real progress toward &lt;i&gt;there&lt;/i&gt;?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I could start by making a list. &amp;nbsp;The wondering prose and sketches I've been creating are good and should continue, but something concrete like a list would not only organize my thoughts but also provide some evidence that I've made real progress.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;On that list might be simulation. &amp;nbsp;I seem to remember my friend &lt;a href="https://masto.hackers.town/@vertigo"&gt;Vertigo&lt;/a&gt; mentioning that using a simulation of the hardware design he's working on accelerated his work on the software because a simulation can function as the ideal form of the hardware until you can get the hardware right. &amp;nbsp;Aside from stability this allows for testing that would be much harder on real hardware and helps define what the final specs for the hardware should be. &amp;nbsp;A simulator also makes it easier to work on the hardware and the software in parallel.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;To that point (parallelism) I should really find some other people to work with. &amp;nbsp;Most of my life I've not so much actively avoided this as I have gravitated toward work that doesn't seem to require it. &amp;nbsp;It's really more about me than it is about others, but it's also about the work. &amp;nbsp;While there are things about a project like this that I'm flexible about and would welcome the help of others skilled in the areas that I am not, there are other parts where I've spent years or decades cultivating what I think is best and when I work alone I don't have to defend or justify inflexibility in these areas. &amp;nbsp;Saying it out loud, it sounds bad, but it's literally that I've thought very hard about these things and spent years experiencing them and I only have so much energy, I want to focus it on realizing the promise of that work and experience and not arguing about it. &amp;nbsp;This makes it hard to collaborate without being a tyrant, and I refuse to do &lt;i&gt;that&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But the fact is that if I'm going to do this, if I'm going to turn these ideas into a way to make a living I'm going to have to get help, which means getting-over this ...well let's call it what is is: *fear*. &amp;nbsp;If what I'm proposing is as good as I say it is then the quality of the ideas it's based on must be observable by others. &amp;nbsp;When I was writing the other day about how to reach an audience for the machine (I can't remember if I blogged that or just wrote it in my journal?) those same techniques or processes should apply to assembling a team to make the machine as well, right? &amp;nbsp;The nut of that idea was to facilitate giving people a chance to &lt;b&gt;experience&lt;/b&gt;&amp;nbsp;what it's like to work with a machine like this, which is the same thing that cemented it for me. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I haven't used this future machine yet, but I've worked with pieces of hardware and software that have inspired the design of the new machine, and the daily use of these things convinced me that they were the right way to go. &amp;nbsp;If I can find a way to share this experience with others, and if it resonates with them as well, I probably don't need to worry about explaining it. &amp;nbsp;In fact having gone through the experience the team would have their own internal compass for staying on that path, no coercion required.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That's a much more anarchist way to approach such an endeavor, and just writing it takes a lot of weight off my shoulders.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Looks like I have some specific work to do, and at least one thing I can finish today. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Pump it</title><link>http://preposter.us/single-michigan-helium-network/pump-it.html</link><guid>http://preposter.us/single-michigan-helium-network/pump-it.html</guid><pubDate>Sat, 16 May 2026 17:10:09 -0500</pubDate><description>


&lt;a href='assets/223-img_1018.jpg'&gt;&lt;img src='assets/223-img_1018.jpg'&gt;&lt;/a&gt;</description></item><item><title>Shop time</title><link>http://preposter.us/single-michigan-helium-network/shop-time.html</link><guid>http://preposter.us/single-michigan-helium-network/shop-time.html</guid><pubDate>Sun, 17 May 2026 17:10:34 -0500</pubDate><description>


&lt;a href='assets/224-img_1024.jpg'&gt;&lt;img src='assets/224-img_1024.jpg'&gt;&lt;/a&gt;</description></item><item><title>The Public Library</title><link>http://preposter.us/single-michigan-helium-network/the-public-library.html</link><guid>http://preposter.us/single-michigan-helium-network/the-public-library.html</guid><pubDate>Mon, 18 May 2026 07:48:34 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I've decided that the most important thing I can work on to bring the new computer to life is a piece of software called the Public Library (PL). &amp;nbsp;In the world of the new computer, information is exchanged in the form of Books (these take the place of floppy disks in Swyft machines) and the PL is a place where Books can be published and shared with others.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Now that I'm using the &lt;a href="https://jasongullickson.com/gettin-swyfty-part-ii.html"&gt;SwyftCard-equipped Apple //e&lt;/a&gt; for a significant portion of my writing, I need a way to exchange that work with my other computers so I can continue working when I'm not at the desk where the //e lives. &amp;nbsp;Building the Public Library will close that gap.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For this initial version it will be quite simple: A &lt;a href="https://jasongullickson.com/the-humane-network-service-interface.html"&gt;HNSI&lt;/a&gt; with the option to search, list, publish and check-out books. &amp;nbsp;For now, Books are raw text so they can be stored in regular text files with file names based on their titles, with spaces replaced with hyphens.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In the new computer, the Public Library will complement a Private Library which is where non-shared Books live, stored on a local device. &amp;nbsp;This makes it very easy to know what work is public and what work is private. &amp;nbsp;On a &lt;a href="https://en.wikipedia.org/wiki/Jef_Raskin#Pioneering_the_information_appliance"&gt;Swyft&lt;/a&gt; device, floppy disks serve the same role as the Private Library and the Public Library is interacted with using the SEND command. &amp;nbsp;This requires a modem-like device connected to the serial port that allows the machine to "dial-into" the Public Library (such devices already exist, but I'll probably make my own since I have all the parts). &amp;nbsp;Books ("Texts" in Swyft vernacular) are published by adding the dialing and HNSL commands for publishing to the top of a Text, highlighting it and using the SEND command. &amp;nbsp;Similarly, Books are checked-out into an empty Text by dialing the Public Library using the SEND command, searching or browsing using the HNSI and optionally saving the downloaded Book as a new Text to a floppy.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;On "regular" computers, the Public Library can be accessed via any telnet-like client and Books are downloaded and uploaded to and from text files on the local filesystem. &amp;nbsp;I'm not sure if it makes sense to write a specialized client for this or if an existing tool will be sufficient (I need to experiment with transferring files using telnet or something similar).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm planning to write at least this initial version of the Public Library in Python, specifically MicroPython. &amp;nbsp;The primary reason for this is that I don't expect it to be complex and it's very likely that the "modem" I make for the //e will run MicroPython as well, so I could theoretically edit, test and debug the code on the //e if I want to. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I'm trying to avoid MicroPython now that I've learned that the project has been &lt;a href="https://github.com/micropython/micropython/wiki/ContributorGuidelines#generative-ai-policy"&gt;infected with AI&lt;/a&gt;, which is why this is only temporary, but right now I don't have a better option. &amp;nbsp;Worst-case scenario this will be re-written in whatever becomes the base language for the new computer once that is implemented.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Future versions of the Public Library will be a little more complex, but I do want to keep it as simple as possible, especially the interface. &amp;nbsp;There will be a need for consistent metadata to keep track of authors, genres, etc. and I'm hoping to avoid any sort of traditional "authentication" by leveraging this metadata but for now none of this is necessary for me to share Books with other trusted people so that's a future Jason problem.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Oh one more thing: I'm referring to the new computer as &lt;i&gt;"The Beaver"&lt;/i&gt; for now. &amp;nbsp;More on that later as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Back on the chain gang</title><link>http://preposter.us/single-michigan-helium-network/back-on-the-chain-gang.html</link><guid>http://preposter.us/single-michigan-helium-network/back-on-the-chain-gang.html</guid><pubDate>Mon, 18 May 2026 18:34:54 -0500</pubDate><description>
&lt;a href='assets/226-image0.jpeg'&gt;&lt;img src='assets/226-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>The Public Library Part II</title><link>http://preposter.us/single-michigan-helium-network/the-public-library-part-ii.html</link><guid>http://preposter.us/single-michigan-helium-network/the-public-library-part-ii.html</guid><pubDate>Thu, 21 May 2026 07:51:54 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Over the last few days I've had a few minutes here-and-there to work on the &lt;a href="https://jasongullickson.com/the-public-library.html"&gt;Public Library&lt;/a&gt; and I have to say, I'm really happy with how it's going.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In total I've probably spent an hour to an hour and a half working on it, and it's already at a point where it can do the essentials: publish a book, checkout a book and list the books in the Library.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I started writing this using the same pattern as the Pouch tools with deliberate attention to creating a &lt;a href="https://jasongullickson.com/the-humane-network-service-interface.html"&gt;HNSI&lt;/a&gt;. &amp;nbsp;As a result I was able to quickly iterate through implementing the essential functions and shoring-up the interface before getting the complication of networking involved. &amp;nbsp;Once I had something that worked in a local terminal, I was able to add network support and focus on that specific task knowing that the primary functionality was solid.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm really happy with the simplicity of the tools I've written this way so I had some apprehension about getting networking involved. &amp;nbsp;I've written countless network services before but they were almost always built with the networking implementation first and often built on top of networking-specific libraries, frameworks, etc. &amp;nbsp;In this case networking came after implementing and testing the actual functionality and I was worried that adding network code would make a mess of things.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So I took an approach that simply replaced the existing input/output functions I was using to communicate with the local terminal (print() and input()) with network-aware alternatives (net_print() and net_input()). &amp;nbsp;I wrote these functions in a separate program so I could work out the kinks before bringing them into the working Public Library code. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/227-screenshot from 2026-05-21 07.48.36.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/227-screenshot from 2026-05-21 07.48.01.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;From there it was a simple matter of replacing print() with net_print() and input() with net_input() anywhere I wanted the I/O to go to the network (essentially anywhere other than local debugging output).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As a result I was able to quickly turn a local console tool into a network tool.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;At this point the PL works over the network and I can access it from a regular computer using a telnet client. &amp;nbsp;The next step will be to get the //e connected to the network and try interacting with the Public Library using the SwyftCard's SEND command. &amp;nbsp;I've ordered yet another serial cable for this so with any luck it will be the right one and maybe I'll have time this weekend to give that a shot.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Experimenting with the $150 Harbor Freight Solar Kit</title><link>http://preposter.us/single-michigan-helium-network/experimenting-with-the-150-harbor-freight-solar-kit.html</link><guid>http://preposter.us/single-michigan-helium-network/experimenting-with-the-150-harbor-freight-solar-kit.html</guid><pubDate>Sun, 24 May 2026 11:56:36 -0500</pubDate><description>&lt;html class="apple-mail-supports-explicit-dark-mode"&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=us-ascii"&gt;&lt;/head&gt;&lt;body dir="auto"&gt;Just playing-around with a cheap-ish solar kit from Harbor Freight. &amp;nbsp;I put two of these on my father-in-law's hunting cabin ages ago and with an i expensive German charge controller (the included unit was not great back then) it served us for years of deer seasons.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt="image0.jpeg" src="assets/228-image0.jpeg"&gt;&lt;br&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The current kit comes with a controller that seems more usable.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt="image2.jpeg" src="assets/228-image2.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;You need to have a battery attached to see anything happen on the controller so I grabbed this battery the Outback killed to see if it was good enough; it's good enough.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt="image1.jpeg" src="assets/228-image1.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It will be interesting to see if it can still hold a charge...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The point of this is to see how the array performs under less than ideal conditions, including shadows and other inclusions. &amp;nbsp;So far it's doing fine.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt="image3.jpeg" src="assets/228-image3.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm planning to mount these on the upstairs balcony railing, inspired by an article I read about German apartment dwellers deploying solar on their balconies.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</description></item><item><title>Sidequests</title><link>http://preposter.us/single-michigan-helium-network/sidequests.html</link><guid>http://preposter.us/single-michigan-helium-network/sidequests.html</guid><pubDate>Mon, 25 May 2026 07:21:10 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I can't decide if it's good or bad that it's really hard for me to focus on one thing and see it through. &amp;nbsp;For example, I really want to work on The Beaver, I'm really excited about it and there's a lot to do. &amp;nbsp;But for whatever reason I got obsessed with 1980's Tamiya RC buggies the other day and I spent a couple hours yesterday researching suspension systems and designing my own printable buggy.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I feel like if I could stay focused on one thing I could get it done faster, but on the other hand I feel like my brain knows what it's doing, and maybe it sends me on these "side-quests" for a good reason.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In some cases I learn things on the side-quests that I need for the main quest. &amp;nbsp;Other times getting distracted seems to help me get unstuck, or find a way around a problem that I couldn't see when I was completely focused on it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Other times, like yesterday, don't feel particularly valuable at all.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I could try to apply some discipline to these moments of distraction, and I have done so in the past. &amp;nbsp;There's plenty of other things in life, and a case could be made that The Beaver itself is a side-quest, so deciding what the main quest is and ignoring everything else is not as straightforward as it might seem.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For a long time I've been using the feeling of Joy as a compass, and as it gets harder and harder to know what will be important in the future, Joy seems more and more like the wind to follow.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So I guess it's OK that I want to design and build an RC buggy, even if I don't do it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>MVP</title><link>http://preposter.us/single-michigan-helium-network/mvp.html</link><guid>http://preposter.us/single-michigan-helium-network/mvp.html</guid><pubDate>Mon, 25 May 2026 07:58:27 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;We used to talk about the "minimum-viable-product" or MVP back in the 2000's. &amp;nbsp;I'm not sure where the term comes from (maybe the &lt;a href="https://agilemanifesto.org/"&gt;Agile manifesto&lt;/a&gt;?) but the idea is, what is the least you can build to have something that does whatever you're trying to do. &amp;nbsp;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'd further qualify that it has to be truly useful to the person you're making it for (even if that's yourself). &amp;nbsp;That's important for the "product" part, IMHO.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Like many useful heuristics I've seen the term abused as a way to do a half-assed job, but I do think that it's useful as a test or metric, or a way to get yourself un-stuck.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm thinking about the MVP of The Beaver this morning and how I can "scope" the project in a way that it feels more tractable. &amp;nbsp;Something I'm coming to terms with is that if I'm going to make a commercial venture out of the thing I'm going to need help from other people, but it's very tempting to hold-off on that until I have some kind of prototype that they can use to get a taste of the experience. &amp;nbsp;&lt;a href="https://jasongullickson.com/getting-there-from-here.html"&gt;I've written before about why I think that's important&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I suppose that was what the SwyftCard was about, a way to give people a taste of what a complete Swyft computer would feel like using a single printed circuit board compatible with the millions of Apple //e's already out there. &amp;nbsp;Taking that as a clue the first thought that comes to mind is to focus on creating the software side of The Beaver, and an emulator that would allow it to be used on an existing, common computer. &amp;nbsp;Taken to the extreme, it would be delivered via web browser, resulting in virtually universal compatibility.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But how much of The Beaver Experience (TBX) can be conveyed via a web browser? &amp;nbsp;This is a good question because answering it requires reflection on what is most important about TBX, and when I think about that, I think about how I sold myself on the idea.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Setting-aside the hardware, what makes TBX compelling to me is flow. &amp;nbsp;Working with The Beaver provides the benefits of an electronic workspace without the drag caused by contemporary computers. &amp;nbsp;That drag comes in the form of interruptions, unreliability, untrainability and simply being slow computers. &amp;nbsp;The Beaver lets you work, by not getting in the way but also by not trying to do your work for you. &amp;nbsp;The Beaver lets you work and work-out your mind, it lets you get smarter the more you work with it. &amp;nbsp;It lets you get faster, by being fully keyboard-focused and controlled by a handful of keyboard commands that you can commit to muscle memory. &amp;nbsp;It keeps your work safe so you don't need to be preoccupied about loosing it. &amp;nbsp;It provides the dynamism and acceleration of being programmable without requiring you to become a "programmer". &amp;nbsp;It provides a way to share your work without making it impossible to understand what is public and what is private. &amp;nbsp;The bottom line is that when you have time to work with The Beaver, you can get more work done and come-away from the experience healthier.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So how much of this experience could be shoehorned into something that runs in a web browser?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;We can't do much about the drag. &amp;nbsp;A browser runs on a computer that has all the interruptions, unreliability, untrainability and slowness we're trying to get away from. &amp;nbsp;It might be possible to achieve some of this by prescribing a process to prepare the computer for the experience, but even if someone tries to configure a contemporary computer this way, there's only so much you can do. &amp;nbsp;If that drag could be overcome, some of the other benefits of the experience are easier to implement, and while not using a custom keyboard will limit some of the ability to attain muscle memory for all of The Beaver's features, something close to it could be possible. &amp;nbsp;Keeping work safe is not as sure as it will be on the real thing, but it could be better than the alternatives, and the dynamism of being able to write and run executable code, etc. inline is achievable as well. &amp;nbsp;Sharing work should also be possible (although it might require an additional interface/translation layer on top of the current Public Library implementation).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Some of the drag could be eliminated by taking a slightly different route, by providing a stand-alone executable instead of something that runs in a browser at the cost of compatibility and distributability. &amp;nbsp;I think this is particularly problematic when it comes to a Beaver display with graphics capability.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A step further would be to make a bootable version of The Beaver software that could be used with contemporary machines. &amp;nbsp;This could be accomplished using something like an existing Linux distro that boots directly into a VM running The Beaver's native software, but this further narrows the number of people who can easily experience it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's tough to slide the scale to the sweet-spot with this, and to be honest the more I think about it the more it just feels like compromise. &amp;nbsp;It seems like pursuing the software separately from the hardware makes sense, and that waiting for the hardware to be ready means waiting a long time before I can share the experience, but is the hardware really that "hard"? &amp;nbsp;I could be shielded by the comfort of naivete but I'm not sure that realizing the hardware (at least in a bespoke prototype form) is any harder than realizing the software, and I think that the hardware is a very important part of the experience. &amp;nbsp;I would argue that using The Beaver as a proof-of-concept for the FPGA-based general-purpose computer is maybe more important than The Beaver itself.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So maybe all the practicality of creating an easily distributable software-only version of The Beaver is not as practical as it might seem, when you consider the overarching goals I have for the project. &amp;nbsp;While I genuinely believe that experiencing The Beaver will be pivotal to creating the kind of demand necessary to create a sustainable living out of it, I'm not convinced that there's a shortcut to providing that experience that doesn't involve working the hardware and software together.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Sesquicentennial</title><link>http://preposter.us/single-michigan-helium-network/sesquicentennial.html</link><guid>http://preposter.us/single-michigan-helium-network/sesquicentennial.html</guid><pubDate>Mon, 25 May 2026 08:37:56 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Yesterday, Jamie summarized a book she just finished reading ("&lt;a href="https://www.penguinrandomhouse.com/books/760844/when-no-thing-works-by-norma-kaweloku-wong/"&gt;When No Thing Works&lt;/a&gt;") and it has a lot of great ideas for living through an apocalypse. &amp;nbsp;One I've been thinking about a lot is the idea of imagining an ideal future 150 years from now.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Imagining the future is not something I'm unfamiliar with, and thinking decades out is something I spent plenty of time doing but 150 years? &amp;nbsp;I can't say I've done much thinking that far out. &amp;nbsp;That scale brings into focus something that at least I don't usually consider when thinking about the future: I won't be here to see it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The 150 year forecast is a lot more fun than the shorter term in a number of ways. &amp;nbsp;The sorts of things that seem like hard problems now seem less so that far out, if they are relevant at all. &amp;nbsp;The limitations of technology can essentially be ignored (consider how impossible the technology we have now would have seemed in 1876) and even the social limitations we are under are likely to be less simply through the turnover of a few generations (while we have so far to go, consider the social progress the world has experienced over the last century and a half).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;One of the most powerful things about this for me is that it takes me out of the picture. &amp;nbsp;I often struggle with determining if what I plan for the future is good for everyone or just good for me. &amp;nbsp;Thinking about the future beyond your certain demise makes it easier to determine this because you won't be there to enjoy it. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;While the extreme distance from here to there forces you to think about more abstract predictions, applying this as a filter or test to decisions you make today is surprisingly useful. &amp;nbsp;When you have a clear vision of the ideal world of 2176 you can ask yourself today "which choice gets us closer to that future?". &amp;nbsp;I imagine the answer is often "I don't know", but that's useful information as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Something we talk about often is how the surface impression of our little city is one stuck in the past. &amp;nbsp;A few years back there were a number of beautiful murals painted around the city, but they all featured subjects of the past, often industries that no longer exist. &amp;nbsp;There is one that is a sort of exception, and while it depicts something from the past (the work of a local author) it's a sci-fi scene based on the author's futuristic fiction. &amp;nbsp;It's the only one of these murals that I find any inspiration in, and it makes me wonder what the impact might have been if all the murals were depictions of the future?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What if we started to think about this collectively, what could Beaver Dam be like in 2176 if we started to work together today to define a shared vision of what an ideal future would be? &amp;nbsp;What if we used this shared vision to shape current decisions? &amp;nbsp;Could the abstraction of a time beyond the end of all our lives allow us to envision a shared future that includes what is most important to all of us?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think it could. &amp;nbsp;I don't think it will be simple, but I honestly beleive that if we can carefully curate such a group and such a plan and do so in a way that everyone involved understands the goal from the perspective I'm describing, I think such a shared collective vision is possible. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I will admit, it feels impossible saying that in a time of such extreme divisiveness, but if we think about what is good regardless of whether or not we get to experience it ourselves, I think we can come up with a list that all of us can agree on.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>KGL Zine WIP</title><link>http://preposter.us/single-michigan-helium-network/kgl-zine-wip.html</link><guid>http://preposter.us/single-michigan-helium-network/kgl-zine-wip.html</guid><pubDate>Mon, 25 May 2026 10:36:03 -0500</pubDate><description>


&lt;a href='assets/232-img_1068.jpg'&gt;&lt;img src='assets/232-img_1068.jpg'&gt;&lt;/a&gt;</description></item><item><title>EVs</title><link>http://preposter.us/single-michigan-helium-network/evs.html</link><guid>http://preposter.us/single-michigan-helium-network/evs.html</guid><pubDate>Wed, 27 May 2026 06:47:02 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Ever since I read "Electric Vehicles" by Sheldon R. Shacket around age 10 I knew I wanted an electric car. &amp;nbsp;When it came time to get my first car that wasn't an option, as at the time the most common way to get an electric car was to replace the gasoline engine in a regular car with an electric motor, and I did't have the money to do that.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/233-img_1050.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When I got my first full-time job I was planning to move to Madison and Saturn was planning to bring an electric car to market. &amp;nbsp;I was totally ready to lease (they were only going to lease them) one of those beauties but we all know &lt;a href="https://en.wikipedia.org/wiki/Who_Killed_the_Electric_Car%3F"&gt;what happened next&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I have been pining for an EV ever since, and in the last decade or two there's been a growing number of them becoming available as well as gradually expanding charging infrastructure that makes owning one far less of an adventure than the second book I read about EV's. &amp;nbsp;I've tried many times to procure one of these easy EV's but each time something expected &lt;a href="https://en.wikipedia.org/wiki/Elon_Musk_salute_controversy"&gt;or unexpected&lt;/a&gt; got in the way.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Yesterday the planets aligned and we brought-home a &lt;a href="https://en.wikipedia.org/wiki/Kia_EV9"&gt;Kia EV9&lt;/a&gt;. &amp;nbsp;We've only put about 100 miles on it so far, but it's been a lot of fun. &amp;nbsp;There's still a little "EV adventure" to be had (it took some tweaking to get the L1 charger to cooperate with our garage wiring and we spent a solid 20 minutes figuring-out our first public charging station), but it's a lot like a gas car in all the ways that you'd want it to be. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/233-img_1109.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'll probably write more about it after we've spent more time with it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm very excited to have finally found a way to get my hands on an electric car. &amp;nbsp;Aside from all the practical reasons, it's really given me some hope that even after 40 years I'm able to accomplish this simple dream. &amp;nbsp;It really makes me feel like some of the others I've had might still happen, even if they're taking far more longer than I ever could have imagined.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Once more with feeling (did I break it part two)</title><link>http://preposter.us/single-michigan-helium-network/once-more-with-feeling-did-i-break-it-part-two.html</link><guid>http://preposter.us/single-michigan-helium-network/once-more-with-feeling-did-i-break-it-part-two.html</guid><pubDate>Sat, 30 May 2026 16:53:25 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;Just another post to see if I fixed this thing.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>We return to our regularly-scheduled programming (already in
 progress)</title><link>http://preposter.us/single-michigan-helium-network/we-return-to-our-regularly-scheduled-programming-already-in-progress.html</link><guid>http://preposter.us/single-michigan-helium-network/we-return-to-our-regularly-scheduled-programming-already-in-progress.html</guid><pubDate>Sat, 30 May 2026 16:57:13 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;I knew this, but this latest tantrum is real proof (and hopefully sufficient motivation) that I need to re-write &lt;a href="https://preposter.us/"&gt;preposter.us&lt;/a&gt;.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Maybe I should park a few other projects just for a bit and finally finish that job.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Everything I know (so far) about running your house off of your car</title><link>http://preposter.us/single-michigan-helium-network/everything-i-know-so-far-about-running-your-house-off-of-your-car.html</link><guid>http://preposter.us/single-michigan-helium-network/everything-i-know-so-far-about-running-your-house-off-of-your-car.html</guid><pubDate>Mon, 01 Jun 2026 08:51:21 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;One of the selling points of the Kia EV9 is that it supports "&lt;a href="https://en.wikipedia.org/wiki/Vehicle-to-grid#Bidirectional_local_V2G_(V2H,_V2L,_V2B,_V2X)"&gt;Vehicle to Load&lt;/a&gt;" or "V2L". &amp;nbsp;I didn't know exactly what this meant when I read about it on the website, but I knew for a long time in Japan that EV chargers could flow electricity both ways, and you could store power from the grid in your car and use it when needed. &amp;nbsp;I figured V2L was something like that finally coming to America. &amp;nbsp;There's even a system advertised on the Kia site that does this automatically, just plug in to charge and the system will power your house when the lights go out, etc.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The catch is that system costs a lot, as far as I could tell, around $10,000. &amp;nbsp;So I thought I'd try to learn more about V2L and see if there are other options.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As it turns out, there's a few terms surrounding the ability to use the battery in a car for things other than turning the wheels. &amp;nbsp;While not all companies stick to the same definitions, it mostly breaks down like this:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* Vehicle-to-load uses on-board inverters to power external AC devices&lt;/div&gt;&lt;div&gt;* Vehicle-to-home or &lt;a href="https://en.wikipedia.org/wiki/Vehicle-to-grid"&gt;Vehicle-to-grid&lt;/a&gt; use external inverters and draw DC power from the vehicle&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As you might guess, V2H and V2G are capable of delivering more power, because the invert isn't limited to something that reasonably fits inside the car. &amp;nbsp;In the case of the Kia EV9, V2L is limited to 30 amps, and the&lt;a href="https://a2zev.com/products/v2l-nacs"&gt; adapters I've found so far&lt;/a&gt; that connect to the charging port are only good for 20 amps.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I clearly need to do more research on the capabilities of the NACS port on the EV9, because any product that claims to power a house from the EV9 is going to need more than 20 amps. &amp;nbsp;That said, 20 amps isn't bad for emergency standby, and with almost 100KWh on tap, that's a few days worth of standby power at 20A.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So on the car side a ~$100 adapter turns the EV9 into a 100KWh &lt;a href="https://www.bluettipower.com"&gt;Bluetti&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This makes the house side fairly simple: it's no different than connecting any other generator. &amp;nbsp;To do this right means using a transfer switch, or possibly a "lock out" on the circuit breaker panel to ensure no backfeeding the grid when powering the panel from the car. &amp;nbsp;With 20A avaliable I'm not going to power the whole house, but that's probably enough to keep the refrigerator &amp;amp; deep freeze cool, along with powering a few lights and keeping phones charged.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What I really wish I could do is run the heat pump, but aside from needing more than 20 amps, it also needs 240 volts.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;One thought I've had is to "buffer" the 20 amp V2L supply with something like the &lt;a href="https://www.bluettipower.com/products/apex-300-home-battery-backup"&gt;Bluetti Apex 300&lt;/a&gt;. &amp;nbsp;The Apex 300 can provide 240VAC at up to 50 amps, and while it's built-in battery can't do that for long, it might be enough to absorb the initial draw of big devices like the heat-pump even if it's being charged by a 20A supply from the car.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This is an interesting design, because it would allow me to use the EV9's battery without resorting to anything too exotic, and in the event that I don't want to use the car's battery (or the car is elsewhere), I can easily fall-back to another generator (a solar generator, gas generator, etc.) outside the house to keep the Apex 300 inside topped-up. &amp;nbsp;Additionally, the Apex's battery can be expanded, allowing both more runtime and more "shock absorption". &amp;nbsp;The Apex itself can of course take power from solar as well so it could become the foundation of a longer-term project to add some solar capacity to the house.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The total power available at the panel is still limited by the capacity of the Apex 300, but 50A at 240VAC is plenty for stand-by, and even a good goal for the long run (bear in mind there are still homes here with a 60A service...).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Before I commit to running a generator circuit I want to do some more research to see if I can find a 30 amp V2L adapter for the EV9. &amp;nbsp;The cars documentation indicates that it can provide 30 amps, so my guess as to why the adapters I've found do not is simply to keep the outlet something compatible with most appliances instead of the more unusual 30 amp receptacles.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>The Month of Zig</title><link>http://preposter.us/single-michigan-helium-network/the-month-of-zig.html</link><guid>http://preposter.us/single-michigan-helium-network/the-month-of-zig.html</guid><pubDate>Mon, 01 Jun 2026 09:18:13 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Every day in the month of June, 2026 I'm going to spend at least one hour learning &lt;a href="https://ziglang.org"&gt;Zig&lt;/a&gt;.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Why?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Zig is the only programming language that I've used that has taken a s&lt;a href="https://ziglang.org/code-of-conduct/"&gt;trong position on keeping AI out of the language&lt;/a&gt;. &amp;nbsp;I don't want any of the work I choose to do to be infected by AI at any level. &amp;nbsp;I thought this would require using a language of my own creation, but it looks like the Zig team feels the same way I do, so going forward all of my programs are going to be written in Zig until something changes and that includes &lt;i&gt;porting the programs I've already written&lt;/i&gt; that I use every day to Zig.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In order to do this, I need to get good with the Zig language, and the only way I know how to do that is to &lt;b&gt;use it&lt;/b&gt;. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A couple years ago I played with Zig, and while there were some features that I thought were really cool (like built-in SIMD support), it wasn't enough for me to really get into it when I could do most of what it did in languages I was already proficient with. &amp;nbsp;But things are different in 2026, and Zig has grown as well, and I think it's time for a change.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So for the month of June I'm going to invest at least an hour a day and hopefully by the end of the month I'll be proficient enough to do some real work.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I probably won't write about this every day (I just don't think I'll have the time), but I plan to post updates as I make make meaningful progress and share any ideas or experiments that go beyond the exiting documentation and published writing on the subject. &amp;nbsp;I'll be porting code from Python, Golang, Node.js and maybe others, so there should be a little something for everybody.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Personal Search Engines</title><link>http://preposter.us/single-michigan-helium-network/personal-search-engines.html</link><guid>http://preposter.us/single-michigan-helium-network/personal-search-engines.html</guid><pubDate>Tue, 02 Jun 2026 08:12:37 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;A Personal Search Engine (PSE) is a search engine that specializes in &lt;b&gt;your&lt;/b&gt;&amp;nbsp;interests. &amp;nbsp;It provides personalized search results by indexing only the things you are interested in, not by spying on you. &amp;nbsp;Instead of crawling the entire Web and &lt;i&gt;then&lt;/i&gt;&amp;nbsp;looking for what you've searched for, A PSE crawls &lt;b&gt;only the parts of the Web you are most interested in&lt;/b&gt; and looks for what you're searching for there. &amp;nbsp;The result is a list of hits that are relevant to your interests that point to websites you are more likely to know and trust.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A PSE can run &lt;i&gt;locally&lt;/i&gt; (on the same computer you use to browse the web) and in fact I expect this is how most of them will be used. &amp;nbsp;A local PSE is &lt;i&gt;exceptionally fast&lt;/i&gt;&amp;nbsp;and by it's nature &lt;i&gt;exceptionally &lt;b&gt;private&lt;/b&gt;&lt;/i&gt;. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;There are reasons you might consider deploying a PSE to a public server, but I'll get into later.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A PSE starts with an empty index and will need to be "seeded" before it can return any results on it's own. &amp;nbsp;The simplest form of seeding is feeding the PSE the domain names of a websites you trust. &amp;nbsp;Other sources of trusted domains can be fed to the PSE, such as a list of bookmarks or a collection of RSS feeds.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Any source of trusted domains can be used to seed or add to the index. &amp;nbsp;The important thing is to tailor this list to websites that focus on your interests, the types of things **you** want to see in the results. &amp;nbsp;If you don't want spam or ads or computer-generated content in your results, don't add domains with that sort of thing to your PSE. &amp;nbsp;Additionally, the more specialized the domain the better; a website like "vintageapplecomputers.com" is more likely to provide high-quality results to a search like "Macintosh SE/30" than "facebook.com", etc.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Once a PSE is seeded it can begin returning search results. &amp;nbsp;The act of searching causes the PSE to "self-seed" by crawling for more domains to index within the pages you select from the results. &amp;nbsp;These additional domains could be added to the index automatically, or they could be curated in a list of "discovered" domains for later manual review.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When what you're looking for can't be found in the local index, a PSE can "federate" with the PSE's of people you trust to broaden the search. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;This could continue, with PSE's calling "friends of friends" to build a wider network but I'm not sure this is necessary and there are some undesirable side-effects to this sort of multi-hop federation.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When you reach the end of the local search results, results from the PSE's you federate will follow. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Federation can also be used to "bootstrap" a new PSE. &amp;nbsp;If a list of trusted PSE's is provided, searching the federation will provide results even before the local index is seeded. &amp;nbsp;Selecting websites from these results will begin the self-seeding process described earlier.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Using federation this way has benefits beyond increasing search results. &amp;nbsp;It spreads the work of searching, storing, maintaining indexes out across many independent nodes, making the cost of operating a large search index lower (low enough for individuals to contribute meaningfully to a global index). &amp;nbsp;It also makes the system fast without having to run on expensive hardware.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Any PSE can &lt;i&gt;utilize&lt;/i&gt;&amp;nbsp;the federated network, (i.e.: use it to get results) but in order to &lt;i&gt;contribute&lt;/i&gt;, a PSE needs to be reachable from the nodes it federates with. &amp;nbsp;In a perfect world, PSE's running locally would be able to talk to other PSE's running on other people's computers, but right now it's more likely that a fully-federated PSE will need to run on a publicly-addressable server. &amp;nbsp;A well-designed PSE will be capable of "graduating" from running locally on someone's computer to a publicly-hosted node capable of contributing to the federation.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Publicly-hosted PSE's could lead to a handful of servers handling all requests, and that would undermine the purpose of PSE's. &amp;nbsp;Ideally there is a 1:1 ratio between people and PSE's. &amp;nbsp;This keeps the local results tightly bound to a given person's interests and keeps the computing resources required for an individual node light. &amp;nbsp;I'm not sure how to avoid this other than the "natural consequences" of running such a large node which include less-relevant search results, slower searching and increased resource consumption. &amp;nbsp;Hopefully pain like that is enough to keep this risk at bay.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I've built a prototype PSE based on the description above and used it for about a week to guage both it's usefulness and to understand how much effort is required to create it. &amp;nbsp;I'm excited to say that the results are positive on both accounts.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/241-spore-search-results.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The prototype was used to index a few hundred domains locally (seeded from my RSS feeds) and both the speed (&amp;lt;4ms average) and quality of the results were exceptional. &amp;nbsp;Resource consumption of the prototype is quite reasonable, using less than 10MB of memory to search and maintain a 5GB index. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/241-spore-status.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I also tested federated modes (LAN only, nothing deployed publicly yet) and it works surprisingly well with a very simple federation implementation. &amp;nbsp;Federated result latency will of course be greater across the Internet, but they are capped at a (configurable) 3 seconds so that would be the worst-case regardless of network and remote node latency.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/241-spore-discover.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I had planned to setup a public node and share the prototype with some friends this week, but due to &lt;a href="https://jasongullickson.com/the-month-of-zig.html"&gt;The Month of Zig&lt;/a&gt; I'm going to delay that in order to rewrite the prototype in Zig. &amp;nbsp;I don't know how long this will take, but I wouldn't expect it this month, and probably not until after July. &amp;nbsp;If you're interested in helping experiment with the prototype when it's ready, get in touch.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>The Month of Zig - Day Three</title><link>http://preposter.us/single-michigan-helium-network/the-month-of-zig-day-three.html</link><guid>http://preposter.us/single-michigan-helium-network/the-month-of-zig-day-three.html</guid><pubDate>Wed, 03 Jun 2026 07:35:04 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I've been working my way through &lt;a href="https://zig.guide/"&gt;zig.guide&lt;/a&gt; the last two days, one hour a day and today I'm going to try and write my first program from scratch.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm going to attempt to write a port of Jet, a journaling tool I use daily that I've written and re-written in several languages. &amp;nbsp;It requires little more than terminal and file I/O, and it's usually realized in less than 50 lines of code.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The first thing I need to do is figure out how to get input from the terminal. &amp;nbsp;I found an example of this in zig.guide, but &amp;nbsp;Weirdly it doesn't work so I guess it's time to reach for the standard lib docs.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://ziglang.org/documentation/0.16.0/std/"&gt;https://ziglang.org/documentation/0.16.0/std/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Hmm... seems I'm too green to glean what I need from this.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I did some web searches to find an example and they were all over the place. &amp;nbsp;I learned that the reason the example in zig.guide doesn't work is that a chunk of the standard library (std.fs.File) was just removed in the current version of Zig (although I can find no explanation as to why). &amp;nbsp;I suppose that's to be expected in something that is still in it's sub-v1 stage but still...&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's easy to get discouraged at this stage. &amp;nbsp;The tension of the feeling like you're trying to do something trivial against having a not-even-tenuous grasp of what you are working with is a very uncomfortable feeling and often enough to make you abandon your beliefs and ambitions and send you running-back to something comfortable. &amp;nbsp;This is especially hard for me because I don't often find myself in this situation (probably because I'm very good at "cultivating naivete"), so when it does happen to me, it's debilitating.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For example, right now my brain is coming-up with lots of justifications for giving-up on Zig and falling-back to what I know to write a new language or something equally asymmetric to my goal of breaking-free of AI-poisoned languages by learning the only one that both exists and is committed to rejecting AI.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;To counter this I'm trying to remember what it was like to push-through this feeling before. &amp;nbsp;I start with thinking about similar contexts; other programming languages I've learned. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For many there's no equivalent. &amp;nbsp;BASIC, Hyperscript, Dylan, VBscript, Javascript, PHP, Python, Lua all these were trivial to learn incrementally, even in the case of BASIC which I learned before I knew how to program at all. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What about assembly, the first "language" I learned after BASIC? &amp;nbsp;Honestly I'm not sure I ever "learned assembly" as much as I learned what I needed of the instruction set of the various CPU's I've written assembly for. &amp;nbsp;I don't think I've ever written an entire stand-alone program in assembly, just the parts that demanded maximum performance or a feature of the CPU I couldn't reach from the higher-level programming language I was working in at the time.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The next language I learned was C and C++. &amp;nbsp;I first learned C using Borland Turbo C++ for DOS, and C is well-equipped for doing terminal input/output so here again it was fairly easy to get started writing programs like the ones I wrote in BASIC. &amp;nbsp;C is very procedural, so it was not hard to "get productive" using the same sort of programming I learned in BASIC, and once I understood that functions were similar to BASIC's subroutines, I was off to the races. &amp;nbsp;The main thing I got hung-up on were pointers (doesn't everyone?), but once I really understood they were just addresses I thought about them the way I thought about memory when working in assembly and I did fine. &amp;nbsp;C++ on the other hand, I don't think I really learned it at the time, it wasn't until I was working with graphical environments that I really felt the need for something like C++ so to the extend that I dabbled in classes, etc. was very rudimentary when I was writing my own projects in C every day.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;From there most of the "language learning" I did next was really learning about their libraries/toolkits/etc. &amp;nbsp;Objective-C, C#, Java, most of the work was remembering what library the thing you wanted to do lived in and which of the several similar functions/classes/objects you should use. &amp;nbsp;I suppose I have to mention Visual Basic here but again there wasn't a lot about the language itself to learn.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;SQL, hmm... learning that might apply to my current condition. &amp;nbsp;Rudimentary SQL ("&lt;b&gt;SELECT * FROM PUBS&lt;/b&gt;"*) is trivial but really understanding how SQL works and how to write it in ways that make the most of it is very different from the types of programming I had done up to this point. &amp;nbsp;I was "productive" in SQL long before I really knew what I was doing, and it wasn't until I spent a week in a SQL class with a bunch of Oracle DBA's being forced to switch to MS SQL Server that it really sunk-in. &amp;nbsp;Thinking-back to climbing that mountain, the fundamental shift of understanding was a much bigger jump than what I'm tackling now with Zig. &amp;nbsp;The challenge with Zig isn't a fundamental thing like SQL (it's still a procedural language) but more so just the verbosity and breadth of knowledge needed to do what seem to me like basic things.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So how did I cross the Rubicon with SQL?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm not really sure. &amp;nbsp;I don't remember having any pressure to do so (I wasn't trying to solve a problem or meet a customer's need), and I'm not sure I was particularly driven by curiosity (I was more focused on the things I was building than what I was building them out of at the time). &amp;nbsp;I guess it could have been immersion, I was taking a class in Chicago with people I didn't know in a town I wasn't familiar with, so I spent all day with the material and had nothing to do at night so I experimented with what I learned each day for hours. &amp;nbsp;I didn't know anybody, but the instructor and everyone in the class was already very familiar with using the SQL language in far-more-complex ways than I ever had (or probably ever will), so every conversation was with an expert.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This sort of classroom-oriented, institutional way of learning is something that normally never works for me, but in this one case it was very effective. &amp;nbsp;I returned from that training with a completely different way of looking at and working with SQL, and this informed my work with other languages and tools as well. &amp;nbsp;In fact it's probably what helped me understand other languages and forms of logic that have the same sort of immediate/parallel execution that SQL has running on an RDBMS.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What I'm bumping-up against in Zig is nothing like the shift I needed to undergo to understand SQL, so I don't know that a week of deep immersion is necessary (although given the condition my brain is in now, maybe?) but reflecting on what it took to gain that understanding of SQL puts what I'm struggling with now into perspective and makes it feel a lot less overwhelming. &amp;nbsp;In this light, I think what I need to do is simply accept that what it takes to read and write input from a person at the console in Zig is a lot more groundwork than it is in pretty much every other language I've learned, and that there's probably a good reason for this, I just don't know enough about the language to understand that reason yet.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;After all, it's only been three hours...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* this is an inside joke from the I2 Team days...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>The Month of Zig - Day Five: Ask For Help</title><link>http://preposter.us/single-michigan-helium-network/the-month-of-zig-day-five-ask-for-help.html</link><guid>http://preposter.us/single-michigan-helium-network/the-month-of-zig-day-five-ask-for-help.html</guid><pubDate>Fri, 05 Jun 2026 06:05:34 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;After posting a link to &lt;a href="https://jasongullickson.com/the-month-of-zig-day-three.html"&gt;The Month of Zig - Day Three&lt;/a&gt; to the fediverse I received a number of replies, one from &lt;a href="https://mastodon.social/@alexey88008"&gt;Alexey&lt;/a&gt; that was little more than a code snippet:&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/244-tmoz-3-help-1.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Yesterday, I tried pasting this code into the file where I'm trying to write my first new Zig program. &amp;nbsp;It didn't compile, so I asked a follow-up question and received another terse-but-helpful response:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/244-tmoz-help-2.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Turns out that &lt;a href="https://ziglang.org/download/0.16.0/release-notes.html#Juicy-Main"&gt;this link&lt;/a&gt; was the key to what I was looking for on day three: a current example of basic terminal I/O and an explanation of how it's supposed to be done in the current version of Zig.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Through all the searching on day three I never ran across this. &amp;nbsp;An argument could be made that I probably should have read the release notes for the version of the language I was working with, but I didn't because I didn't expect to find what I was looking for there. &amp;nbsp;It was only through a feedback loop that included communicating with others who are working with the language that I was able to write a program (that wasn't just compiling an example) that runs and does something that I want it to do.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This was a reminder about the importance of&amp;nbsp;&lt;b&gt;community&lt;/b&gt;. &amp;nbsp;I don't really involve myself in the communities around the other languages I program in, at least not directly. &amp;nbsp;I don't exactly know why; maybe its because I've learned most of these languages before I had access to such communities, or have learned them in the workplace from coworkers who are a kind of community but not &lt;i&gt;the&lt;/i&gt; community for a given language. &amp;nbsp;If I'm being completely honest, I've kind of been turned-off by programming language-centered communities because I've never identified with any specific language, and a lot of these communities involve identity in a way that I don't relate to.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But learning a new language from scratch, on my own and seeing how hard it can be to begin to do anything no matter how simple, I can see how people who have learned a programming language (especially if it's their first) through participation in the language's community can become attached to both in a way that I've never been attached to a programming language. &amp;nbsp;It's probably not the &lt;i&gt;language&lt;/i&gt; that they are attached to but the &lt;i&gt;experience of community,&lt;/i&gt; and things that threaten that (like other programming languages) are something they might buck, consciously or unconsciously.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This was a revelation to me because it helps me understand and navigate situations where the solution to someone's software problem is "simply" a matter of using the wrong tool (programming language) for the job, but they refuse to consider a different tool, or provide irrational arguments against it. &amp;nbsp;In these situations, maybe I'm not simply proposing the use of a different tool, but a &lt;b&gt;disconnection from a community&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The lesson here for me is that whether I like it or not, the community that forms around a language matters.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That would explain a lot of the struggles I've had "helping" people in this area.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The other lesson for me here is to consider asking for help sooner and more directly. &amp;nbsp;This time I received help out of pure luck, I didn't intend to ask for it and I have no idea how ... found my toot and decided to take the time to help me out. &amp;nbsp;I am very grateful because this morning I have a working program because of their help. &amp;nbsp;Maybe if I had learned this lesson sooner I could be a little further along by now, maybe even have finished my Zig port of Jet?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;...but I guess it's only been five hours, so maybe I should relax.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Downlink 2026-06-05</title><link>http://preposter.us/single-michigan-helium-network/downlink-2026-06-05.html</link><guid>http://preposter.us/single-michigan-helium-network/downlink-2026-06-05.html</guid><pubDate>Fri, 05 Jun 2026 06:27:33 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;I've skipped a couple of weeks and switched browsers as well, so &lt;b&gt;prepare yourself&lt;/b&gt;.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Compatible_Time-Sharing_System&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.cozx.com/dpitts/ibm7090.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.cozx.com/dpitts/ctss_recover.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://timereshared.com/ctss/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://timereshared.com/reconstructing-joseph-weizenbaums-opl/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Computer_Power_and_Human_Reason&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/ELIZA&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.jstor.org/stable/43852815&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://www.maschafilm.de/en/dvd_plug_pray.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.computerhistory.org/collections/catalog/102683842/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.amazon.com/Computer-Power-Human-Reason-Calculation/dp/0716704633&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://archive.org/details/computerpowerhum0000weiz_v0i3/page/10/mode/2up&lt;br&gt;&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://tinyfpga.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.crowdsupply.com/tinyfpga/tinyfpga-ax-bx&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://prjicestorm.readthedocs.io/en/latest/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.crowdsupply.com/tinyfpga/tinyfpga-ex&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://nandland.com/fpga-101/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://nandland.com/book-getting-started-with-fpga/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/FPGAwars/icestudio&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/FPGAwars/icestudio/wiki#organization-of-the-collection&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.amazon.com/Carlisle-CT121623-Caf%C3%A9-Standard-Cafeteria/dp/B0018OZBT2&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Transcranial_magnetic_stimulation#Criticism_of_FDA_regulatory_procedures_for_medical_devices&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/William_Gibson&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Electroencephalography&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/VIC-20&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://hackaday.com/blog/?s=cyberdeck&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/William_H._Dobelle#Career_and_artificial_vision&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://arstechnica.com/gadgets/2025/09/your-very-own-humane-interface-try-jef-raskins-ideas-at-home/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://arstechnica.com/gadgets/2025/09/jef-raskins-cul-de-sac-and-the-quest-for-the-humane-computer/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.kia.com/us/en/ev9&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://wallbox.com/en_us/kia-ev9-quasar-2&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/oozebot/preFlight/releases&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/OrcaSlicer/OrcaSlicer/releases/tag/v2.3.2&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.printables.com/model/927316-slide-box-pocket-sized&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://shop.wallbox.com/products/quasar2-backup-power&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://support.mozilla.org/en-US/kb/firefox-new-tab-widgets&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://rasterweb.net/raster/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.printables.com/@jjg_239369/collections/liked&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://git.sr.ht/~vertigo/kestrel-2/tree/master?__goaway_challenge=meta-refresh&amp;amp;__goaway_id=f3576859ae534e34185bf07e05d8f841&amp;amp;__goaway_referer=https%3A%2F%2Fgit.sr.ht%2F~vertigo%2Fkestrel-2%2Ftree%2Fmaster%2Fitem%2Fcores&lt;/div&gt;&lt;div&gt;*&amp;nbsp;http://kratzgullicksonlabs.com/spore.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://300mpg.org/2024/08/29/vehicle-to-load-v2l-bare-board-experimentation/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://numberconvert.com/blog/points-picas-pixels-typography-guide/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Text&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Em_(typography)&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Sort_(typesetting)&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/User-Defined_Functions_and_Modules&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Wood_type&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Movable_type&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Letterpress_printing&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;~~~ goodbye Firefox, hello &lt;a href="https://librewolf.net/"&gt;LibreWolf&lt;/a&gt;! ~~~&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://press.stripe.com/the-dream-machine&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Joseph_Weizenbaum#Difference_between_deciding_and_choosing&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Jef_Raskin#Pioneering_the_information_appliance&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/micropython/micropython/wiki/ContributorGuidelines#generative-ai-policy&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.sunfounder.com/projects/thales-kit/en/latest/micropython/python_start/syntax/while_loops.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://us.elegoo.com/products/pre-owned-centauri-carbon?variant=51638643654837&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://tabs.ultimate-guitar.com/tab/slayer/dead-skin-mask-tabs-27938&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://gamerant.com/twilight-zone-most-controversial-episodes/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/esp8266/tutorial/filesystem.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/library/os.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://siytek.com/micropython-networking-web-server/#Opening-a-new-socket&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://awesome-micropython.com/#telnet&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/gitcnd/telnetd&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/orgs/micropython/discussions/10438&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://randomnerdtutorials.com/micropython-esp32-esp8266-access-point-ap/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/library/socket.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/library/asyncio.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/peterhinch/micropython-async/blob/master/v3/docs/TUTORIAL.md&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://linux.die.net/man/1/minicom&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.telnetbbsguide.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://syncterm.bbsdev.net/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/mkrueger/icy_tools&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://mysticbbs.com/downloads.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://subethasoftware.com/2018/02/28/wire-up-your-own-rs-232-wifi-modem-for-under-10-using-esp8266-and-zimodem-firmware/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/bozimmerman/Zimodem&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/mecparts/RetroWiFiModem&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/stardot/esp8266_modem&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://mrshu.github.io/github-statuses/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.micropython.org/en/latest/esp32/tutorial/intro.html#troubleshooting-installation-problems&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/orgs/micropython/discussions/10697&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/peterhinch/micropython-nano-gui&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://wiki.heltec.org/docs/devices/open-source-hardware/esp32-series/three-platform/Micropython/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.espressif.com/projects/esptool/en/latest/esp32/esptool/basic-commands.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://docs.espressif.com/projects/esptool/en/latest/esp32/troubleshooting.html#troubleshooting&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.robmiles.com/journal/2025/1/29/setting-up-esptool-in-a-python-virtual-environment-1&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/meshtastic/firmware/issues/5080&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Supersonic_transport&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Boeing_2707&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Lockheed_L-2000&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Tupolev_Tu-144&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://nandland.com/blocking-vs-nonblocking-in-verilog/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://agilemanifesto.org/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.falvotech.com/Kestrel-2EX.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://codewithrockstar.com/tutorial&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://dylanbeattie.net/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Mikoyan-Gurevich_MiG-25&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://a2zev.com/products/v2l-nacs&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Vehicle-to-grid&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.bluettipower.com/products/apex-300-home-battery-backup&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://ziglang.org/code-of-conduct/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://ziglang.org/learn/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://ziglang.org/documentation/0.16.0/std/#std.Io.Reader&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://ziglang.org/learn/samples/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://pedropark99.github.io/zig-book/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://zig.guide/standard-library/readers-and-writers&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://zig.guide/getting-started/hello-world/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://ziggit.dev/t/right-way-to-read-user-input-from-stdin-in-zig-0-15-2/13623&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://ziggit.dev/t/fs-file-and-io-file/13362/11&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://ziglang.org/download/0.16.0/release-notes.html#Juicy-Main&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://ziglang.org/documentation/master/#Comments&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Do It Right</title><link>http://preposter.us/single-michigan-helium-network/do-it-right.html</link><guid>http://preposter.us/single-michigan-helium-network/do-it-right.html</guid><pubDate>Sat, 06 Jun 2026 07:13:20 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;There's no shortage of excuses to do things the wrong way. &amp;nbsp;"Excuses" sounds harsh but I mean it in the least judgmental way possible, an excuse is just a reason, and I wouldn't fault anyone for doing something the wrong way, especially right now, because there's an endless stream of reasons for doing things any way you can manage to get them done.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But I'm trying to do a better job when I can and the thing that has been working for me lately (when I can remember to do it) is thinking about the people who will have to live with what I leave behind. &amp;nbsp;On a larger scale, this is things like the state of the house I plan to leave to my son, but on a smaller scale it's the work I do every day, even the work that I don't want to do, like the work I do while forced to work with AI.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This work may be the most toxic of all the work I've done in my life, and for many reasons I won't enumerate here, it may be impossible to do it right.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But I think about the other programmers I work with who will inherit this code, and the people who will use the software that this code is a part of and I try to do the work in a way to produce something that will at least be better than it was when I found it. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;I want to make it better for having had me there.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't think any of us can do this all the time. &amp;nbsp;There are simply too many demands on our attention, our patience, our bodies and our minds not to mention whatever resources we've managed to scavenge together and none of this is our fault (or at least I don't think it's your fault, I doubt many billionaires read this blog). &amp;nbsp;It's perfectly OK if you can't find a way to do things right when you're just trying to survive in this world.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But if you can find a way to do one thing, anything the way you think is right, the mental health benefits are tremendous. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Printable Type</title><link>http://preposter.us/single-michigan-helium-network/printable-type.html</link><guid>http://preposter.us/single-michigan-helium-network/printable-type.html</guid><pubDate>Sun, 07 Jun 2026 07:14:55 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;We've been collecting wood and metal type for use at the KGLMDPS. &amp;nbsp;Antique type is so cool, but also expensive and not always what you need. &amp;nbsp;While I plan to learn how to make our own wood type, in the meantime we wanted the ability to make custom type sooner so we decided to experiment with 3D printed type.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;We've (2D) printed with 3D printed things before, but I've never set-out to make a proper "set" of type that is made to any sort of standard, so this time I wanted to come-up with a way to 3D print some type that would work as much like the antique wood type we have.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I started by measuring a piece of wood type with the intention of producing printable type that is as compatible with the wood type as possible. &amp;nbsp;The ultimate goal would be to mix-and-match printed type with woodtype. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/247-img_1133.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; // Fixed dimensions (measured from actual wood type)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; OVERALL_DEPTH = 23.5;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; BLOCK_DEPTH = 19.5;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; GLYPH_DEPTH = OVERALL_DEPTH - BLOCK_DEPTH;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I sunk a few hours into this and learned the hard way that while the terms and metrics of wood and digital type overlap, there's historic reasons that they are not exactly compatible. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/247-img_1144.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I might take-up this quest again someday, but in the interest of getting something done now I switched-gears and focused on making printable type that was at least compatible with itself.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Those hours spent researching the history of type were not a complete waste though, and helped me understand how to properly generate the parts of the type so that the printable type at least works the same as the wood type even if there's not an easy way to mix and match them.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The result is an OpenSCAD file that generates a set of type by simply specifying the desired font and size (in points). &amp;nbsp;This even works with OpenSCAD's "customizer" feature so you don't need to modify the code to change these parameters.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/247-printable-type-openscad.png"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The OpenSCAD file is limited to either rendering a single letter/glyph or a semi-hardcoded set of letters (I couldn't find a way to paramaterize the list) and the font has to be specified as a string (no way to connect it to a font picker yet) but even so it's fairly easy to work with and I'm sure if I do some homework there's probably someone who has made an improved interface to the customizer features that could make this easier for others to use.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/247-img_1145.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;We did a few single-letter tests and the results were better than expected! &amp;nbsp;I'm running a full set of type now and when that finishes we'll do some more realistic tests and see how things turn out.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/247-signal-2026-06-06-154509.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The ultimate version would be something that integrates both the STL generation and the slicing, etc. so someone could simply select the parameters they want and print the type. &amp;nbsp;I can imagine a web interface that uses this file and the OpenSCAD command line to generate the STL's, and I'm pretty sure I could upload and print a sliced Gcode file through the API's provided by Klipper and/or the proprietary firmware on my Centauri Carbon, I'm just not sure about the slicing part (I use OrcaSlicer and I've never looked into using it from the command line). &amp;nbsp;Something to consider for the future.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For now this should accelerate our use of printable type at KGLMDPS and open up a few new doors for creativity.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I've published the code for &lt;a href="https://codeberg.org/jjg/printable-type"&gt;Printable Type in it's current state to Codeberg&lt;/a&gt;. &amp;nbsp;I have a number of improvements planned and will be adding those features as well as any improvements we find needed after doing some more testing.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Try, Try Again...</title><link>http://preposter.us/single-michigan-helium-network/try-try-again.html</link><guid>http://preposter.us/single-michigan-helium-network/try-try-again.html</guid><pubDate>Mon, 8 Jun 2026 20:56:04 -0500</pubDate><description>


&lt;a href='assets/248-img_1165.jpg'&gt;&lt;img src='assets/248-img_1165.jpg'&gt;&lt;/a&gt;</description></item><item><title>Innovation Through Constraint</title><link>http://preposter.us/single-michigan-helium-network/innovation-through-constraint.html</link><guid>http://preposter.us/single-michigan-helium-network/innovation-through-constraint.html</guid><pubDate>Tue, 09 Jun 2026 06:46:23 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;This being &lt;a href="https://jasongullickson.com/the-month-of-zig.html"&gt;The Month of Zig&lt;/a&gt;, I started thinking about how I would port my &lt;a href="https://jasongullickson.com/personal-search-engines.html"&gt;Personal Search Engine&lt;/a&gt; (PSE) prototype to &lt;a href="https://ziglang.org/"&gt;Zig&lt;/a&gt;. &amp;nbsp;As I worked through the prototype code one of the challenges to porting it is that the Go version depends on Go's built-in HTML parser, but there's no HTML parser in Zig's standard library (yet?). &amp;nbsp;The PSE's web crawler needs an HTML parser to read the HTML documents it crawls and get things like the page title, body and links that go into the PSE index.&amp;nbsp;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I found some third-party HTML parsers, but the ones I found are incomplete or have limited testing and crawling is both critical to the functionality of the PSE (probably the second most important thing) and also where most of the work happens so it needs to be accurate, reliable and efficient. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I could have &lt;i&gt;written&lt;/i&gt; an HTML parser (or at least enough of one to get the things the PSE needs out of an HTML page) but that's a nontrivial amount of work and I'm already chomping at the bit to get this prototype into other people's hands for testing. &amp;nbsp;HTML is also a moving target, which means that a home-grown parser will require ongoing maintenance. &amp;nbsp;Also this would have all the downsides of using one of the current third-party HTML parsers.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But being forced to think about HTML parsing gave me a new idea: what if I &lt;b&gt;don't&lt;/b&gt; parse the HTML pages to extract what I need for the index? &amp;nbsp;What if instead I just read through the data and grab the things I need? &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This "streaming" approach gets me everything I need without the complexity and overhead of parsing each entire HTML document into an object. &amp;nbsp;Aside from eliminating all the problems above, this approach requires significantly less resources of processing all that data and then throwing-away most of it. &amp;nbsp;It also makes it possible to predict how much memory will be needed because you can control how much data you need to work with at a time. &amp;nbsp;In retrospect, it's a much better solution to the specific problems I need to solve than a full-blown parser.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I took this knowledge gained from working on the Zig port and "backported" it to the Golang prototype and the results are really amazing. &amp;nbsp;Not only does it work, but it's faster and much more memory-efficient while producing the exact same output I used from the parser. &amp;nbsp;Not only that, but I was able to implement it in a generic enough way that I was able to re-use this "streaming extractor" module to eliminate parsers elsewhere (notably some of the import code), further reducing dependencies in the code.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I might even re-use it in other projects...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't think it ever would have crossed my mind to question the use of an HTML parser in a web crawler used to generate a search index of web pages. &amp;nbsp;The only way it might have would have been if a performance problem had emerged while using the system in production, at which point solving it would have been an emergency. &amp;nbsp;Instead, by attempting to port the prototype to a different, more constrictive programming language I not only reconsidered this but came up with a superior implementation. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Even if I never complete the Zig port of the PSE prototype, the porting effort will have paid major dividends. &amp;nbsp;This is a very practical example of the value of learning something new, even when there isn't an immediate "practical" reason to do so.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Sometimes that's all you can do</title><link>http://preposter.us/single-michigan-helium-network/sometimes-that-s-all-you-can-do.html</link><guid>http://preposter.us/single-michigan-helium-network/sometimes-that-s-all-you-can-do.html</guid><pubDate>Wed, 10 Jun 2026 16:48:22 -0500</pubDate><description>


&lt;a href='assets/250-img_1162.jpg'&gt;&lt;img src='assets/250-img_1162.jpg'&gt;&lt;/a&gt;</description></item><item><title>The Environment</title><link>http://preposter.us/single-michigan-helium-network/the-environment.html</link><guid>http://preposter.us/single-michigan-helium-network/the-environment.html</guid><pubDate>Thu, 11 Jun 2026 06:42:51 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;This morning has been really frustrating. &amp;nbsp;I tried so many times to work on something and my computer just kept getting in the way. &amp;nbsp;Instability, slowness, broken tools, distractions; a constant stream of events bent on breaking my concentration, trying my patience and evaporating gumption.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;All rather discouraging.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I need a place to work where this doesn't happen.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The Swyft environment on my Apple //e is a place like this, but I can't take it with me. &amp;nbsp;The Beaver computer I'm working on will be a place like this, but it doesn't exist yet. &amp;nbsp;The chicken-and-egg problem of finishing The Beaver is that I have to work on it in this disruptive place, with so little time and capacity to work on it and on mornings like this one I wonder how I'll ever get there.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A while back I wrote about "&lt;a href="https://jasongullickson.com/mvp.html"&gt;how to get there from here&lt;/a&gt;" and talked myself out of using emulation or something akin to it to bootstrap The Beaver, but this morning I'm warming-up to that, or something like it. &amp;nbsp;If I have to wait until I finish the hardware and the software to start working in a less disruptive environment... it's going to take a long time and more energy that I probably have.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So right about now I'm considering alternatives.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The one that feels most attractive is something I'm calling "The Environment". &amp;nbsp;Not a virtual machine or emulator in the traditional or strictest sense but more like a virtual space to work in that is isolated from the hardware/software/etc. where it is running. &amp;nbsp;This is like a virtual machine, but not strictly from the computer-science perspective, more like from the personal perspective. &amp;nbsp;It doesn't have to be made of the same things as a VM or provide the same sort of technical isolation from the host but simply isolate the person working in it from these outside influences.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This is interesting to me because it could be composed of things that might already exist, may be temporary and don't need to fit into a strict linear path between where we are and what I want to accomplish with The Beaver. &amp;nbsp;The important thing is that they provide an environment in which to do the work and that can evolve over time to utilize the product of the work as it becomes available.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The other thing that is important about The Environment is that it is portable. &amp;nbsp;I already have a non-portable version of this in the Swyft-powered Apple //e, and when I can work on it, it's incredibly productive. &amp;nbsp;But as I said before, I can't take it with me, not even to another room in the same house, and this puts a serious damper on how much time I have to work there. &amp;nbsp;So whatever The Environment is, it needs to be portable enough that I can use it from whatever machine I have available.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This makes me lean toward something networked, but that puts a lot of encumbrances on the thing right out of the gate. &amp;nbsp;I'm not ruling this out, but it definitely gives me pause.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It could be something that lives on a flash drive, built into multi-platform/architecture binaries that use shared data (this is essentially how my Pouch tools work). &amp;nbsp;This is interesting but it probably limits The Environment to a terminal-based text-only thing. &amp;nbsp;This is true for the Swyft //e as well, and might be good enough for awhile.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It could be a bootable environment, something like a Linux-based bootable USB that transitions into The Environment. &amp;nbsp;That would allow the portability of the flash drive without the complexity of working with multiple operating systems and make it easier to do something graphics-based. &amp;nbsp;It also means that while The Environment is running there's no interference from an underlying host operating system (instability, slowness or distracting notifications, etc.). &amp;nbsp;It kind of feels like a lot to have to reboot the machine into The Environment, and creating such a bootable thing means fooling around with Linux a bit (probably), but of the options so far it feels like the most interesting one.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;None of these feel quite right to me but this train of thought does feel right, so I'm going to keep riding it. &amp;nbsp;Maybe I'll do a little homework and experimentation with creating a bootable flash drive and see how far I can get; maybe it's easier than it used to be? &amp;nbsp;If nothing else the act of doing the work often results in more ideas to choose from and explore whereas talking about it too long tends to just get me stuck.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>NAS-T</title><link>http://preposter.us/single-michigan-helium-network/nas-t.html</link><guid>http://preposter.us/single-michigan-helium-network/nas-t.html</guid><pubDate>Sat, 13 Jun 2026 08:26:45 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;a href="https://en.wikipedia.org/wiki/Terra"&gt;Terra&lt;/a&gt;-distributable personal data storage.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The idea is pretty simple: a little box you put on your network where you can store your electronic files and not worry about losing them. &amp;nbsp;These have been around for ages and come in all sorts of shapes and sizes. &amp;nbsp;Many have some form of redundancy so that if something breaks (a disk fails, etc.) the data they store is not lost, but if something happens to the entire device (like a house fire, or it walks out the door) everything is gone.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The standard response to this is to back up the NAS somewhere "offsite", typically some cloud service. &amp;nbsp;This works, but it usually involves paying rent, and trusting your most precocious, personal, private bits to companies who frequently loose track of such things is risky.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So the idea behind NAS-T is to solve the offsite backup problem through backing-up to &lt;b&gt;OPT&lt;/b&gt;: &lt;b&gt;O&lt;/b&gt;ther &lt;b&gt;P&lt;/b&gt;eople's NAS-&lt;b&gt;T&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The device allocates some percentage of the total &lt;i&gt;physical&lt;/i&gt; storage to store encrypted backups from other NAS-T devices (I'm still noodling on the exact amount).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;For example, if you were to purchase a NAS-T with 10TB of storage, you could store 10TB of data on it, but the physical storage medium inside the device would have a capacity of maybe 15TB.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As soon as you connect a NAS-T device to your network and grant it access to the Internet it begins to store backup data from other NAS-T devices. &amp;nbsp;Once you start copying data of your own to the device, that data is automatically encrypted and transmitted to other NAS-T devices across the Internet.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;From your perspective it's no different than any other network storage device. &amp;nbsp;You mount it on your computer like a network drive, you copy and delete files, etc. &amp;nbsp;The only point where things change are in the event that you loose your device. &amp;nbsp;If this happens, you can take a new NAS-T, configure it just like you did the original and once it is connected to the Internet, your files will begin to reappear.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I have a few ideas for the implementation of this but I'm trying to decide how deep I want to dive into that in this post. &amp;nbsp;This is a topic I love to think and talk about, which means that if I get started this could be a really long post.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;You've been warned, &lt;i&gt;"here there be dragons"&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It will surprise no-one that the way I'd implement this starts with something like &lt;a href="https://codeberg.org/jjg/jsfs"&gt;JSFS&lt;/a&gt;, using one of the distributed blockstore designs I've experimented with. &amp;nbsp;JSFS provides the foundational file store, defaults to encrypting jblocks and jnodes and distributes them to peers with a 1:3 replication ratio.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;1:2 is safe, 1:3 is probably sufficient for most personal-use scenarios I can imagine. &amp;nbsp;It could be higher, but I need to work the math more.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The real question is how to expose the JSFS API in a way that can be directly consumed by typical clients. &amp;nbsp;A web UI is of course an option but something like SMB/CIFS (or whatever they call a "Windows share" now) is needed to fit into NAS expectations.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;There are some unanswered questions here about discovery, firewall traversal, etc. but I've covered those topics extensively elsewhere with regard to JSFS federation so I won't go into that here. &amp;nbsp;This application makes some of that easier because having some sort of coordination server(s) on the public Internet is not as unsavory as it is to me for general-purpose JSFS use.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This could be done a few different ways. &amp;nbsp;The off-the-shelf-ish way would be to finish writing the JSFS FUSE driver and then use Samba/etc. on Linux to re-share the FUSE mount as a Windows network drive. &amp;nbsp;This is probably the "right" way to do it but if you know me, you know &lt;b&gt;I like doing things the hard way&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A more direct approach would be to write a driver that serves the Windows share directly from JSFS, possibly even bypassing the JSFS REST API and connecting to the underlying storage primitives. &amp;nbsp;I've never written something like this for JSFS, but it's easy to imagine being a modular/pluggable part, especially in the Golang port.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Having a "slot" like this in the architecture opens the door for exposing other interfaces in a modular fashion; in fact the REST API could be the first of these modules...&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Taking this route opens the door for getting rid of Linux entirely using something like &lt;a href="https://gokrazy.org/"&gt;gokrazy&lt;/a&gt; or a &lt;a href="https://en.wikipedia.org/wiki/Unikernel"&gt;unikernel&lt;/a&gt;, making the device not only more resource efficient but also more stable, secure and eliminating the need to update it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I've been looking for something to motivate me to complete the Golang port of JSFS and a project like this, if there's some interest from other people might be compelling enough to get me to do it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>A good thought spoiled?</title><link>http://preposter.us/single-michigan-helium-network/a-good-thought-spoiled.html</link><guid>http://preposter.us/single-michigan-helium-network/a-good-thought-spoiled.html</guid><pubDate>Sun, 14 Jun 2026 09:58:55 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Something I don't understand about myself is how I can get really excited about an idea, think about it intensely and even build-out part of it one day and then the next day I'm almost completely disinterested in it, and in extreme cases sort of disgusted by the idea of working on it.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's very weird.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When this happens it's almost like upon reflection it's a bad idea, or something that seems like I was deluding myself into thinking it's valuable and when this feeling hits I feel really stupid or silly for thinking it was worth the effort I was putting into it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What's very weird about this is that the feeling isn't the result of any actual conscious evaluation. &amp;nbsp;It's not the product of negative feedback or realizing that there's something fundamentally wrong or evil about the idea. &amp;nbsp;It's never even a matter of some experiment proving the idea is flawed (as far as I can remember), it's just the bad feeling in my gut when I try to work on it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I can't say for sure whether or not this feeling has ever been right about anything. &amp;nbsp;I can't recall an idea that turned-out to be actually bad after experiencing this reaction to continuing to work on it. &amp;nbsp;That's not evidence against it's accuracy, because there's lots of projects I haven't finished (yet), so I can't say with any confidence that some of the ideas that this feeling applies to turned-out to be good in spite of this reaction. &amp;nbsp;Off-hand I can't think of a project I completed with good results that experienced this sensation at some point along their road to completion. &amp;nbsp;That's just as likely the result of my faulty memory as it could be of things actually having gone that way.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's all subjective, based on no evidence; certainly not factual.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I guess the smart thing to do would be to start keeping track of when this feeling slams-down and note what idea or project it applies to so I can review the history of projects that reach completion (or at least get released to the wild) and see if they ever hit this wall. &amp;nbsp;Then I could have some evidence on which to base a decision about how seriously I consider this feeling.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Give 'em the (big) finger</title><link>http://preposter.us/single-michigan-helium-network/give-em-the-big-finger.html</link><guid>http://preposter.us/single-michigan-helium-network/give-em-the-big-finger.html</guid><pubDate>Tue, 16 Jun 2026 08:01:49 -0500</pubDate><description>&lt;html class="apple-mail-supports-explicit-dark-mode"&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=us-ascii"&gt;&lt;/head&gt;&lt;body dir="auto"&gt;One of the fun things we realized could be done with the&amp;nbsp;&lt;a href="https://jasongullickson.com/printable-type.html"&gt;Printable Type&lt;/a&gt;&amp;nbsp;script is making type using "symbol" fonts.&lt;div&gt;&lt;br&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt="image1.jpeg" src="assets/254-image1.jpeg"&gt;&lt;br&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;We first ran a partial set, but when printed at the same size (24 points) as the alphabet set we ran earlier, the details of some of the symbols got pretty gummed-up by support.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Rerunning them at about 3x that size made a "big" difference.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt="image2.jpeg" src="assets/254-image2.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;At first this was a somewhat manual process because the symbols we're interested &amp;nbsp;in go beyond the regular 26 codepoints that make up the english alphabet, so the script had to be modified to render the whole set. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I modified the&amp;nbsp;&lt;a href="https://codeberg.org/jjg/printable-type"&gt;script&lt;/a&gt;&amp;nbsp;to make working with these fonts a little easier (you can now specify a particular codepoint in the customizer) but it still could use some work to make rendering a full set automatic.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Printing at larger point sizes also revealed some aberrations in the finished product around the edges of the (2D) print.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt="image4.jpeg" src="assets/254-image4.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This could be considered charming, but I'm curious to see if I can eliminate it if desired by tweaking some printing settings. &amp;nbsp;My first guess is that the first layer "squish" might be to blame, and perhaps reducing that or decreasing the overlap between the infill and the outside wall might clean it up.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</description></item><item><title>The gift of deadlines</title><link>http://preposter.us/single-michigan-helium-network/the-gift-of-deadlines.html</link><guid>http://preposter.us/single-michigan-helium-network/the-gift-of-deadlines.html</guid><pubDate>Tue, 16 Jun 2026 10:31:26 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Jamie and I are going to Alaska this fall and I'm hoping to do some writing while we are there. &amp;nbsp;I imagine it will be a place where some inspiration might occur. &amp;nbsp;I don't want to bring my regular laptop for many reasons, so I plan to bring something else instead.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Earlier this year I decided that I was going to bring something I built for this, and that something was The Beaver (even though I wasn't calling it that at the time). &amp;nbsp;The trip is in August, and it's now mid-June. &amp;nbsp;That leaves me roughly two months to have The Beaver ready.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Based on my current designs, that's not likely to happen.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That's OK, because realizing this deadline this morning, I'm immediately thrust into "what &lt;i&gt;can&lt;/i&gt;&amp;nbsp;I do in time" thinking, which for me makes it a lot easier to make decisions.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The first step is to think if there &lt;i&gt;is&lt;/i&gt;&amp;nbsp;something that exists that I could take with that would fulfill the role. &amp;nbsp;I can't really think of anything, but the baseline of what I want is the SwyftCard-equipped Apple //e. &amp;nbsp;I can't take the //e to Alaska but what if I could?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Emulation is certainly an option on this compressed timeline. &amp;nbsp;I don't know off-hand what it would take to get an Apple //e emulator to emulate the SwyftCard, but if it hasn't already been done, it seems like something I could figure out.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That takes care of a lot of things but there's still a hardware problem to solve. &amp;nbsp;If emulation is the way I'm going to go, any random piece of hardware could probably fit the bill, but again I don't want to take my laptop, and I'd prefer something more compact.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's not incomprehensible to consider fabbing a piece of custom hardware using off-the-shelf modules. &amp;nbsp;I even have a suitable keyboard (I think I can make the PLANCK I built for &lt;a href="https://hackaday.io/project/183330-rain-psp"&gt;RAIN-PSP&lt;/a&gt; for this...). &amp;nbsp;I'm pretty sure that I've seen Apple //e emulators for the ESP-32, so a "slab" consisting of the RAIN-PSP keyboard, a microcontroller running some keyboard firmware, an ESP-32 emulating an Apple //e + SwiftCard and some generic TFT display seems reasonable. &amp;nbsp;Couple it with a regular USB power bank and I could even forgo the charging circuitry...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Another option would be to use my "Game Dad", a handheld Game Boy-like video game device that is used exclusively for emulation. &amp;nbsp;I haven't tried emulating an Apple //e on it yet, but I know it works with a USB keyboard from trying one to program PICO-8 on the device. &amp;nbsp;It might not be as integrated as a custom piece of hardware, but it's definitely closer to working, and might be fun to have along anyway.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If I go *that* route, here's what I need to do before August:&lt;/div&gt;&lt;div&gt;* Find a suitable USB keyboard for use with the SwyftCard&lt;/div&gt;&lt;div&gt;* Find an Apple //e emulator for the Game Dad&lt;/div&gt;&lt;div&gt;* Figure out how to get the //e emulator to emulate the SwyftCard&lt;/div&gt;&lt;div&gt;* Maybe design something to hold the Game Dad and keyboard together in a convenient way&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think that's about it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Aside from meeting the needs for this particular trip, this would also give me a portable Swyft setup. &amp;nbsp;On the surface this doesn't seem to make much progress toward realizing The Beaver, but it might. &amp;nbsp;It will definitely get me more "yoke time" with Swyft, which will help me know more about what it's limits are and what will need to be expanded for The Beaver. &amp;nbsp;It will also give me two Swyft machines to work with which will give me a stronger reason to get The Public Library working. &amp;nbsp;Finally, this emulation approach could also be used to emulate The Cat, giving me a chance to both gain some experience with that Swyft-like system and also test interop between the SwyftCard and The Cat via The Public Library.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So it's real progress toward the goal as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I will have a little time to play this weekend so I might take a swing at that short list above and see how far I can get.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Margo give me strength</title><link>http://preposter.us/single-michigan-helium-network/margo-give-me-strength.html</link><guid>http://preposter.us/single-michigan-helium-network/margo-give-me-strength.html</guid><pubDate>Tue, 16 Jun 2026 20:20:33 -0500</pubDate><description>
&lt;a href='assets/256-image0.jpeg'&gt;&lt;img src='assets/256-image0.jpeg'&gt;&lt;/a&gt;</description></item><item><title>Now we just need something to plug it into...</title><link>http://preposter.us/single-michigan-helium-network/now-we-just-need-something-to-plug-it-into.html</link><guid>http://preposter.us/single-michigan-helium-network/now-we-just-need-something-to-plug-it-into.html</guid><pubDate>Wed, 17 Jun 2026 10:30:22 -0500</pubDate><description>


&lt;a href='assets/257-img_1224.jpg'&gt;&lt;img src='assets/257-img_1224.jpg'&gt;&lt;/a&gt;</description></item><item><title>Kitty Steps</title><link>http://preposter.us/single-michigan-helium-network/kitty-steps.html</link><guid>http://preposter.us/single-michigan-helium-network/kitty-steps.html</guid><pubDate>Sun, 21 Jun 2026 07:22:48 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;In my continuous process of finding a path to the Swyft-like computer to replace the computers I use now uncovered an even finer-grained way to get to something usable quicker. &amp;nbsp;It's quite simple: use the tools I have to make a smaller version of the Canon Cat.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A "&lt;i&gt;kitten&lt;/i&gt;"&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The hardware spec for &lt;b&gt;The Kitten&lt;/b&gt; is pretty simple:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* A Quality keyboard with LEAP keys&lt;/div&gt;&lt;div&gt;* A single-board computer (SBC)&lt;/div&gt;&lt;div&gt;* A display&lt;/div&gt;&lt;div&gt;* A battery&lt;/div&gt;&lt;div&gt;* A "beeper"&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The software spec is even simpler:&lt;/div&gt;&lt;div&gt;* A &lt;a href="https://en.wikipedia.org/wiki/Canon_Cat"&gt;Canon Cat&lt;/a&gt; emulator&lt;/div&gt;&lt;div&gt;* Just enough of an operating system to boot the emulator&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In addition to emulation of The Cat, The Kitten software will be tweaked just enough to be able to exchange data via &lt;a href="https://jasongullickson.com/the-public-library.html"&gt;The Public Library&lt;/a&gt; and possibly expose some of the other interesting resources provided by the SBC.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The beauty of this approach is that I should be able to get most of the software side of it figured-out using my regular Linux laptop. &amp;nbsp;To kick this off I started experimenting with an Apple //e emulator and SwyftWare because right now I'm more familiar with that then I am the Cat, and I figured general-purpose Apple //e emulation was more sorted than the single Cat emulator I found.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The emulator I decided to try is &lt;a href="https://github.com/linappleii/linapple/tree/master"&gt;LinApple&lt;/a&gt;. &amp;nbsp;Aside from running on Linux, it works full-screen with framebuffer video which means I should be able to run it without a "Desktop Environment", window manager, etc.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I was really excited to see the SwyftCard tutorial boot-up and go full-screen, but I was just as quickly disappointed when I tried to use it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/258-swyftware-on-rework.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;After a few keystrokes the emulator appeared to stop responding. &amp;nbsp;I'm not sure if it actually froze or if it just stopped accepting input. After a few forced restarts it became clear that I wasn't able to find a few of the keys essential to using the SwyftCard (the apple keys that stand-in for LEAP, etc.) so I thought maybe the problem is just a matter of adjusting the keyboard mappings.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Other than picking the overall keyboard/language there wasn't a lot in the configuration file to address this, and as I read the code I realized that I'm not even sure what keys on my laptop I'd expect to map to the open and closed Apple keys used for LEAP. &amp;nbsp;Left and right Alt seemed like the obvious choice, but it wasn't clear to me while reading the code how those could even be captured, and there were a lot of comments and even a Github issue about waiting to address issues with keyboard mapping until a much more significant change was made to the codebase, so this wasn't looking like a simple fix anymore.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I tried experimenting with the emulator a bit more to see if I could work-around this, but it became clear that there might be larger problems as well. &amp;nbsp;I can't say for sure, but it seems like maybe it does lock-up when the "beep" in SwyftWare is triggered, and I'd read somewhere that another emulator struggles when this occurs (it may have been a Cat emulator, but something in the ballpark).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;All of this is complicated by the fact that I'm not using an actual SwyftCard emulation but a special disk image that was made to allow Apple //e's with no SwyftCard to run the Swyft environment. &amp;nbsp;Maybe the way this works contributes to the struggles of the emulator? &amp;nbsp;I don't know.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I considered trying other emulators but since this was intended to be the simplest first step and it turned out not to be, maybe it makes more sense just to move-on to emulating the Cat instead?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The only source of Cat emulation I was able to find is via &lt;a href="https://en.wikipedia.org/wiki/MAME"&gt;MAME&lt;/a&gt;. &amp;nbsp;It has noted limitations with the serial port which is something I'm going to need, but after reading-through the MAME &lt;a href="https://github.com/mamedev/mame/blob/master/src/mame/canon/cat.cpp"&gt;driver code for that Cat&lt;/a&gt; it looks like something that &lt;i&gt;might not be impossible&lt;/i&gt; for me to help get sorted. &amp;nbsp;I don't know a lot about MAME, but it's a mature emulator that seems capable of emulating just about anything somehow so I feel more confident that problems like keyboard mapping have solutions and if I need some help with it there's probably a vibrant community to tap-into.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Plus I could use an excuse to spend some time and get familiar with The Cat.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Hopefully I'll get some time later today to experiment with this and see if I can make some progress on the softer side of &lt;b&gt;The Kitten&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Going directly to the source</title><link>http://preposter.us/single-michigan-helium-network/going-directly-to-the-source.html</link><guid>http://preposter.us/single-michigan-helium-network/going-directly-to-the-source.html</guid><pubDate>Tue, 23 Jun 2026 07:03:07 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I'm spending the morning reading the MAME Canon Cat "driver" &lt;a href="https://github.com/mamedev/mame/blob/master/src/mame/canon/cat.cpp"&gt;sourcecode&lt;/a&gt; to see if I can figure out how to use it. &amp;nbsp;Simply running it, I can't figure out where essential things like the LEAP keys are.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The code is well commented, which is fortunate because my C++ is rusty, and I don't even know how to &lt;i&gt;configure&lt;/i&gt;&amp;nbsp;MAME let alone write drivers for it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As I read through the code I feel like I'm starting to get the hang of how MAME models things, and I'm realizing that learning the fundamentals of that would have made understanding this much easier.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm also remembering a book I read about &lt;a href="https://www.fpgarelated.com/books/745.php"&gt;recreating video game hardware using FPGA&lt;/a&gt;s and realizing that the approaches outlined in that book might apply well to the task at hand.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There's a lot of `TODO`s in this code, and it's clear that there's a lot of work to be done before I could use it on a regular basis for real work. &amp;nbsp;Maybe I could help cross some of those off the list, but clearly the author has done a &lt;i&gt;lot&lt;/i&gt;&amp;nbsp;of homework on this machine and I'm starting to wonder why the last commit is from two years ago...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Honestly this reads a lot how the VHDL code I've read is structured.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There seems to be a fair amount of code compensating for the differences between the behavior of the simulated hardware and the real thing.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;AH, here we go, the keyboard map!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;```&lt;/div&gt;&lt;div&gt;PORT_START("Y0")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR(0xA2)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_START("Y1")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('n') PORT_CHAR('B')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('&amp;lt;')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&amp;amp;')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_START("Y2")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('&amp;gt;')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) // totally unused&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_START("Y3")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left USE FRONT") PORT_CODE(KEYCODE_LCONTROL)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('"')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) // totally unused&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_START("Y4")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right USE FRONT") PORT_CODE(KEYCODE_RCONTROL)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right Shift") PORT_CODE(KEYCODE_F2) // intl only: latin diaresis and latin !; norway, danish and finnish * and '; others&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@')&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_START("Y5")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR(0xBD) PORT_CHAR(0xBC) //PORT_CHAR('}') PORT_CHAR('{')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_START("Y6")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left Shift") PORT_CODE(KEYCODE_F1) // intl only: latin inv ? and inv !; norway and danish ! and |; finnish &amp;lt;&amp;gt;; others&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left LEAP") PORT_CODE(KEYCODE_LALT)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('[')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TAB) PORT_CHAR('\t')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+')&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) // totally unused&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_START("Y7")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_RSHIFT) PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right Leap") PORT_CODE(KEYCODE_RALT)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Page") PORT_CODE(KEYCODE_PGUP) PORT_CODE(KEYCODE_PGDN)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift Lock") PORT_CODE(KEYCODE_CAPSLOCK)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Erase") PORT_CODE(KEYCODE_BACKSPACE)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) // totally unused&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UNDO") PORT_CODE(KEYCODE_BACKSLASH)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR(0xB1) PORT_CHAR(0xB0) // PORT_CHAR('\\') PORT_CHAR('~')&lt;/div&gt;&lt;div&gt;```&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So it looks like the "alt" keys are supposed to work as the LEAP keys. &amp;nbsp;I tried this while running the emulator in a browser but maybe something "ate" them before they could get to the emulator? &amp;nbsp;I guess the next logical step is to try running MAME properly on my laptop and see if the results are different.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That said, a close reading of this code reveals a lot of serious gaps in the emulation, essential things like disk I/O that will prevent me from using it until they are sorted. &amp;nbsp;I'm tempted to try and fix/implement these things myself, but given the original authors familiarity with the subject I'm going to guess that adding any of the missing parts isn't going to be easy, and I need to consider the trade-offs of pursuing that path vs. alternatives. &amp;nbsp;Remember, my &lt;a href="https://jasongullickson.com/kitty-steps.html"&gt;original motivation&lt;/a&gt; for taking the emulation path was to save time.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The other thing that comes to mind as I read this code is that it might be easier (for me at least) to recreate the experience of these machines than it will be to learn enough about their internals and the internals of the emulators to piece-together a complete emulation. &amp;nbsp;Since my objective isn't to create a "screen-accurate" replica, recreation is fine if not ideal for my purposes, but it raises a serious question: is it legal?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Building &lt;b&gt;The Kitten&lt;/b&gt; around an emulation of The Cat is pretty straightforward from a legal perspective in that it's no more or less legal than the existing emulation. &amp;nbsp;In most cases this is legal so long as the code (typically ROMs) are sourced legally. &amp;nbsp;I don't know the legal status of the Cat's code, but if I built The Kitten out of readily-available emulation parts I'd at least know I'm not doing anything more illegal than what others have already done.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;However, if I recreate it by writing my own version that legal status is less clear. &amp;nbsp;IANAL but using things that are explicitly called-out as copyright, trademark, etc. in the manual like the term "LEAP" definitely raises some flags. &amp;nbsp;I could be cute or clever and try to side-step this by renaming things, but I doubt that's a completely defensible thing legally and it would be doubly sad to resort to such chicanery and still get sued.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The ideal solution would be to figure out who, if anyone still holds these rights and get proper permission.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Of course all of this is predicated on me actually creating any of these things, so perhaps the best approach is to cross the legal bridge when I come to it. &amp;nbsp;If I recreate the Swyft environment "from scratch" for my own personal use there's little chance of inviting litigation, and if by some chance it does, then at least I'll know who to talk to about getting permission to take it any further.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>The Machine Room</title><link>http://preposter.us/single-michigan-helium-network/the-machine-room.html</link><guid>http://preposter.us/single-michigan-helium-network/the-machine-room.html</guid><pubDate>Tue, 23 Jun 2026 15:16:49 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;KGLMDPS is moving, and part of that move includes moving the 3D printers into an enclosed space (an office separate from the rest of the open area). &amp;nbsp;This has me thinking about how I want to arrange things, and while I'll probably start by simply "lifting-and-shifting" the current setup, maybe it's time to think about how I can improve things based on the few months of practical experience we've had at the original location. &amp;nbsp;Notably, the closed-off space allows for the potential of slightly more disruptive machines like my tiny CNC mill, so I want to consider expanding the robot army as a possibility.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Right now I have two 3D printers at the shop, both Elegoos, one &lt;a href="https://us.elegoo.com/products/orangestorm-giga"&gt;OrangeStorm Giga&lt;/a&gt; and one &lt;a href="https://us.elegoo.com/products/centauri-carbon"&gt;Centauri Carbon&lt;/a&gt;. &amp;nbsp;Minimally, I'm planning to add a second Carbon (maybe the Carbon 2?). &amp;nbsp;I bought the first one as an experiment and it has earned it's keep over the last few months. &amp;nbsp;The only issue I've had with the Carbon is that it's almost always busy, so a second machine seems like a rational choice.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I considered moving our small laser to this space, but it takes up a fair amount of horizontal room and it also requires ventilation. &amp;nbsp;While I &lt;i&gt;think&lt;/i&gt;&amp;nbsp;this room has an outside wall, I don't think there's any windows and I'm not ready to start punching-holes in the brick exterior (at least not yet).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But the mill is a possibility, and bringing it into the mix creates some very cool possibilities. &amp;nbsp;I've written before about my attempts to manufacture circuit boards at home using this mill, and while I still don't have a completely functional workflow for this, I think I'm pretty close. &amp;nbsp;If I could throw another day or two at it, I could probably be able to reliably fabricate 2-layer boards which would be plenty for most of the things I design (especially if I take the leap into more surface-mount work).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm also interested in using the mill for more "traditional" things like milling parts that are hard to print (or out of materials I can't print with) and of course creating real wood type.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If I manage to pull that off, I could outfit one of the workbenches with some soldering/assembly equipment and I think I'd have everything I need to realize a lot of the devices I've designed over the years.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Of course this all requires a software "stack" to go along with all this hardware, and I've got a few tools that have worked so far with these printers and this mill, but if I really want to make the most out of the limited time I have to play at the shop I'll need to streamline all that a bit. &amp;nbsp;Honestly I think the solution is a full-blown CAD/CAM system. &amp;nbsp;Of course I use tools that could be classified as CAD but I've never really thought about the whole thing as a "system", and never really looked closely at CAM; but maybe it's time to do that?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't know yet if there's existing open-source CAM software or if it's all commercial or all bespoke, but I'll see what I can find. &amp;nbsp;Maybe if it exists it's completely overkill for this application, but even so it wouldn't be the first time I've used industrial products at home. &amp;nbsp;In addition to surveying what's available, I need to document what I really want and need to get out of such a system in order to evaluate the options. &amp;nbsp;It might simply be the case that what I need is a custom implementation, which of course is something else I'm no stranger to.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But I do want to be careful not to loose track of the real objective: making things. &amp;nbsp;To this end I should probably timebox the research and experimentation and maybe establish a few "checkpoints" where I can stop and use the system if and when I run out of time to play.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I also need to think about some "infrastructure" concerns, like the power supply (I assume this room only has access to a single circuit) and waste management (if the mill joins the mix, it makes a mess, especially if wood is involved). &amp;nbsp;None of these seem overwhelming but still need to be considered.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Could I make a Laserdisc Player?</title><link>http://preposter.us/single-michigan-helium-network/could-i-make-a-laserdisc-player.html</link><guid>http://preposter.us/single-michigan-helium-network/could-i-make-a-laserdisc-player.html</guid><pubDate>Thu, 25 Jun 2026 05:57:22 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I'm somewhat obsessed with &lt;a href="https://en.wikipedia.org/wiki/LaserDisc"&gt;Laserdiscs&lt;/a&gt;. &amp;nbsp;As my collection grows so does my fear that my player will fall apart. &amp;nbsp;I've already fixed it once, and I have two of the same model so I have some amount of spare parts, but eventually something unrecoverable will happen and I'll have to find a new one. &amp;nbsp;The problem is: there's no &lt;i&gt;new&lt;/i&gt; Laserdisc players.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This morning I woke-up thinking about what it would take to make a Laserdisc player myself. &amp;nbsp;The electronics are certainly possible, it's the mechanical and optical part that is more tricky.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But is it really?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Historically the most expensive part of the Laserdisc player was the laser. &amp;nbsp;This is evident in the lengths my "auto-reversing" player takes to play both sides of the disc automatically. &amp;nbsp;Instead of having two "pickups", it employs gears and motors to move the pickup head from one side of the disc to the other. &amp;nbsp;This makes a lot of racket and takes about 10 seconds. &amp;nbsp;This is also the part of the machine that I had to fix.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Today lasers are incredibly cheap, and while I don't know off-hand exactly what the sensor side of the pickup is, it's hard to imagine it being any piece of electronics that couldn't be had for a few dollars. &amp;nbsp;Perhaps there's some cost or complexity to the optics (lenses, mirrors, etc.) in the pickup head but regardless I can't imagine it's anything that would be so expensive at this time as to warrant the complexity of flipping the entire thing around vs. simply having two heads.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That leaves spinning the disc and scanning the head across it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Laserdiscs use a few different physical methods of encoding video and data on a disc. &amp;nbsp;The simplest (and coincidentally, highest-quality) is &lt;a href="https://en.wikipedia.org/wiki/Constant_angular_velocity"&gt;Constant Angular Velocity&lt;/a&gt; of CAV. &amp;nbsp;In this mode the disc spins at a constant speed (1800RPM if I remember correctly) and the speed of the pickup head changes in step with the increasing or decreasing diameter of the portion of the disc being read. &amp;nbsp;This mode allows lots of neat features and higher-quality video at the cost of requiring more "sides" to hold a complete film, so a movie that is entirely encoded in CAV will usually require two discs.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The alternative is &lt;a href="https://en.wikipedia.org/wiki/Constant_linear_velocity"&gt;Constant Linear Velocity&lt;/a&gt; (CLV) where the speed of the disc's rotation changes to compensate for the changing diameter of the disc. &amp;nbsp;This mode (sometimes referred to as "Extended Play") makes it possible for most films to fit on a single disc, and if you have a player that can automatically "flip" the disc like mine, you don't have to manually intervene to watch an entire film.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;To build a "transport" capable of playing CAV discs is, in my opinion simpler than building one to do CLV, and I prefer the CAV discs anyway (I'm not into Laserdisc for the convenience). &amp;nbsp;Any practical player needs to support both, but I'm fine with the first iteration of my DIY Laserdisc Player only working with CAV.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think I could build the CAV transport using the same sort of parts and techniques that I've used to build 3D printers. &amp;nbsp;A spindle that spins the disc at a constant speed shouldn't need anything more than a way to clamp the disc to a wheel attached to a motor. &amp;nbsp;It might be possible to use a standard stepper motor for this and use information from the pickup head to create a feedback loop to control the pulse rate to the motor to maintain the right speed, or it might just be simpler to use a beefy brushed/brushless DC motor with an encoder (like the setup I used for the "Blood Elevator" last Halloween). &amp;nbsp;Once the disc is spinning, the pickup head needs to move above the surface in a straight line at a changing velocity, which can certainly be accomplished with a stepper motor and a linear axis akin to those in a 3D printer.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A frame to hold all this together will be needed but this, along with all the individual parts should be printable with a regular 3D printer (so long as it's large enough to print parts for a machine that handles 12" discs).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think the part that requires the most work is the pickup. &amp;nbsp;I'm going to do some reading to see how these have been made in the past and see what is the most reasonable way to realize one in a DIY context. &amp;nbsp;Designing an optical pickup like this reminds me of something else a friend mentioned to me the other day: there are optical pickups for analog records now as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That's interesting.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If I could design a pickup that is capable of reading both Laserdisc "pits and lands" and vinyl record "grooves", the rest of the transport is virtually the same. &amp;nbsp;An LP is essentially CAV encoded so the only real hardware change would be to design a flexible enough clamping mechanism for the drive spindle. &amp;nbsp;Both LP's and Laserdiscs are the same size, so a player so designed could play both.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This is worth spending a little time on...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Textmode</title><link>http://preposter.us/single-michigan-helium-network/textmode.html</link><guid>http://preposter.us/single-michigan-helium-network/textmode.html</guid><pubDate>Thu, 25 Jun 2026 06:05:19 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Lately my Framework laptop running ElementaryOS has been flaking-out, glitching in some way that causes the cursor to randomly move around in my editor (&lt;a href="https://micro-editor.github.io/"&gt;Micro&lt;/a&gt;) when I'm trying to write and doing other weird things like selecting menus and dragging things around when I'm using the GUI.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This morning when I was writing about the &lt;a href="https://jasongullickson.com/could-i-make-a-laserdisc-player.html"&gt;DIY Laserdisc player&lt;/a&gt; this caused me to loose a lot of work because while I was typing I wasn't looking at the screen and the glitch selected random blocks of text which were then erased and replaced with whatever I was typing next and all the while I was reflexively saving my work, ironically, destroying it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I don't know if this is a hardware or a software problem, the complexity of both on this machine make it impossible to tell without lengthy chains of process-of-elimination and when I only have about 30 minutes a day to use my own brain, it's a shame to waste it on that.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But of course it's not a waste because as long as it's broken, I can't reliably do anything with the machine.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;All of this heavily underscores the importance of replacing this setup with something simpler and more reliable. &amp;nbsp;Such a replacement I spend a lot of time writing about (and even some time working on!), but there is a chicken-and-egg problem in having to use such an unreliable machine to complete this work.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Out of frustration with all this I remembered something from my early Linux days. &amp;nbsp;When X11 flaked-out, or you just got sick of it you could easily flip over to the text-mode console using some key combination and X would go away and you'd be working directly with the "native" text interface of the PC. &amp;nbsp;I assumed that this was something that had been taken-away in the effort to make Linux more usable, but as it turns out, it's still there even in something like ElementaryOS.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;ctrl+alt+F4&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In the old days, even without X11 alt + a function key would give you a new terminal. &amp;nbsp;This was the primary way of doing more than one thing at a time before you could get X to work, and when X broke (as it frequently did back then) it was a way to get out, or switch to something more stable where you could work on getting X un-stuck.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This morning it's letting me work-around whatever the problem is with my laptop since there's no mouse or touchpad or touchscreen to get in the way.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's a remarkably pleasant place to work, and provides a number of the things I want the computer I'm designing to provide. &amp;nbsp;Of course it has none of the Swyfty things, but it's a step in the right direction, and provides a little shelter from the mess I normally have to deal with on this computer.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Just saying this sounds kind of stupid and obvious. &amp;nbsp;No shit, a Linux computer has a textmode terminal, and if you use it, you avoid all the bullshit associated with "Desktop Environments", etc. &amp;nbsp;Yes it's obvious once you're using it, but when you've spent years living in a prison you forget what the fresh air smells like, and sometimes that it exists at all.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;Epilogue&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;After writing this, I tried to return to the GUI and it didn't go as planned. &amp;nbsp;I thought alt+F1 or alt+F2 would do it, but it was more like alt+F7 (I just kept trying things). &amp;nbsp;Worse though was the fact that when I got there, everything that had been running when I left was gone. &amp;nbsp;This isn't how I remember it working back in the day, where you could flip between X11 and the text console with all your programs still running. &amp;nbsp;I'm not sure what changed, but it was disappointing and something I thought I should warn others about.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Swyft-Inspired?</title><link>http://preposter.us/single-michigan-helium-network/swyft-inspired.html</link><guid>http://preposter.us/single-michigan-helium-network/swyft-inspired.html</guid><pubDate>Thu, 25 Jun 2026 07:03:40 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Last weekend I &lt;a href="https://jasongullickson.com/kitty-steps.html"&gt;tried a few times&lt;/a&gt; to use both SwyftCard and Canon Cat emulators and in both cases didn't have a lot of success. &amp;nbsp;This could be attributed to my ignorance of the emulators involved, but it made me second-guess my assumption that emulation would be the "easy way" to get to a Swyft-like machine I could take on the road.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But emulation isn't turning out to be the shortcut I expected it to be. &amp;nbsp;It was a reminder of why &lt;b&gt;I like to do things the hard way&lt;/b&gt;, and got me thinking about what it would take to write something of my own instead. &amp;nbsp;Not as ambitious as an entire new computer, but a piece of software that I could run on whatever computer that had the essential things I've learned to love about the Swyft machines. &amp;nbsp;Aside from being a stop-gap measure between having nothing and something, it might serve as an alternative to using an emulator for The Kitten, and while not likely to be directly usable for something like The Beaver, could help me work-out some of the design and conceptual ideas that would carry-over to a more complete project like either of them.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Also, it would be fun; more fun than fighting with &lt;i&gt;other people's code&lt;/i&gt;&amp;nbsp;that doesn't quite work for me.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This doesn't solve the other problems with using a contemporary computer, but after being reminded of textmode, I'm thinking if nothing else I could boot up into that and use a program like the one I'm talking about now and eliminate a lot of the instability, distractions and other disruptions to work that are provided by the "Desktop Environment".&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So what would something like this look like?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The obvious answer would be to simply copy the features of the SwyftCard environment that I've been using for the last few months, and in effect that might be what happens, but I think it's worthwhile to look a little deeper into what makes these features so powerful and useful on a daily basis. &amp;nbsp;It is these *ideas* that are where the inspiration should come from not simply their literal interpretation into the hardware and software of the Apple //e + SwyftCard. &amp;nbsp;Aside from missing the point, simply blindly copying these things is likely to bring both the good, intentional behavior along with the baggage that exists in the SwyftCard implementation that was due to the nature and limitations of the hardware available at the time.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The ideas that stand-out to me, really the central idea is that Swyft alters the traditional relationship between applications and data. &amp;nbsp;Instead of having multiple programs or applications to serve specific purposes Swyft is essentially a single program that provides an handful of parts that can be used to realize the functionality of several different applications. &amp;nbsp;Several is an understatement as several examples are provided&amp;nbsp;in the documentation but any number of existing or new applications can be &lt;i&gt;realized&lt;/i&gt;&amp;nbsp;through the use of the Swyft software.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This is a little bit like &lt;a href="https://en.wikipedia.org/wiki/HyperCard"&gt;Hypercard&lt;/a&gt;, or a spreadsheet, or a database like &lt;a href="https://en.wikipedia.org/wiki/Microsoft_Access"&gt;Microsoft Access&lt;/a&gt; or maybe even something like a &lt;a href="https://en.wikipedia.org/wiki/Project_Jupyter"&gt;Jupyter&lt;/a&gt; Notebook but much more open-ended because the provided components are far more general-purpose: &lt;b&gt;text data&lt;/b&gt;, &lt;b&gt;fast universal search&lt;/b&gt;, &lt;b&gt;integrated I/O&lt;/b&gt; (including communications) and a &lt;b&gt;simple, embedded programming language&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Out of these building blocks many applications can be made. &amp;nbsp;The examples provided in the documentation include a notebook, a journal, an address book and mail merge. &amp;nbsp;Applications I've realized include a recipe database, a todo list, a calendar/datebook and various financial and electrical simulations.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A Swyft-inspired environment that provided these four components would match the capability of the SwyftCard that I've been working with these last few months, and should be fairly realizable in a text-mode program written in any of the languages I regularly use. &amp;nbsp;Of course the devil is always in the details.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;To live-up to it's inspiration this program needs ensure that all of these features are fast and that accessing them can become reflexive. &amp;nbsp;That means they have one way to be accessed and always work as expected. &amp;nbsp;No modes or other surprises. &amp;nbsp;They all need to be accessible from the keyboard as well (something amazing about working with the SwyftCard is how I never have to take my hands off the keys). &amp;nbsp;Something else the above doesn't capture is how all of this is realized with very few "commands"; for example, saving and loading a text from disk uses the same key combination; this is only possible because the software is smart enough to know automatically which way the data should be flowing, making it virtually impossible to loose work. &amp;nbsp;That level of intelligence requires putting a lot of thought into the design of the software and the way it will be used and is not a trivial task for the designer and programmer.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Something else that this short list of features glosses over is the subtle details of inputting and working with text using the SwyftCard. &amp;nbsp;The cursor/insertion point, the ways that text can be selected and moved and other aspects of manipulating text differ from every "text editor" that I've used and they take some getting used to, but once you get the hang of it you don't want to go back. &amp;nbsp;For example, cut, paste and delete are simplified into deletion and insertion. &amp;nbsp;Selecting and deleting text always preserves the deleted text in a buffer, which can then be inserted anywhere eise. &amp;nbsp;This eliminates both a key command mapping and a mental decision point while working and while it might not sound like much, removing any amount of friction from the creative process means more of your mind doing what it does best.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There's numerous things like this that sand-down the surface of the tool and let you move through the work with less effort than anything else I've worked with, and it's speed and reliability let you develop the trust necessary to let go and flow without constantly stopping to make sure it's safe.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This is getting longer than I expected... I think I've done an OK job of identifying the key components and providing some examples that help convey the experience I want to recreate. &amp;nbsp;I'll try to sharpen some of the more loosely-defined things about the experience into descriptions that are precise enough to be implemented and then take a whack at some sort of prototype.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Six posts in two days</title><link>http://preposter.us/single-michigan-helium-network/six-posts-in-two-days.html</link><guid>http://preposter.us/single-michigan-helium-network/six-posts-in-two-days.html</guid><pubDate>Mon, 29 Jun 2026 06:33:24 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I got a little behind this month so I'm going to have to catch-up over the next two days (today and tomorrow). &amp;nbsp;I'll probably post a few half-baked drafts I have in the hopper, but maybe I'll have time for one or two fresh ones as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Back In Time</title><link>http://preposter.us/single-michigan-helium-network/back-in-time.html</link><guid>http://preposter.us/single-michigan-helium-network/back-in-time.html</guid><pubDate>Mon, 29 Jun 2026 06:53:38 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;Ever since I was a wee child I was fascinated with developing a handful of technologies. &amp;nbsp;I've worked on these things on-and-off over the course of my life, sometimes professionally, but more often on my own.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Heartbreakingly, I've seen most of the co-opted by industry and evil men and twisted into things that not only fail to live up the standards I held my own work to, but become actively harmful. &amp;nbsp;The most recent is of course Artificial Intelligence, but before that Virtual Reality befell a similar fate which leaves only one thing that I've worked on since childhood which has not yet (to the best of my knowledge) been taken over by evil men.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Time travel&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The last time I worked actively on time travel was probably the first year of my short high school career. &amp;nbsp;I remember it distinctly because I woke-up with my head on the table in the study hall that started an hour ago to the sound of the bell. &amp;nbsp;The last thing I remember before falling asleep (really passing-out) was the sense that I was experiencing a breakthrough.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I never recovered exactly what that breakthrough was, but over the years I've pieced-together the things I was studying and working on that led up to that moment. &amp;nbsp;I've also read a few books and papers and performed some though experiments but I've largely left the subject alone because other topics have kept me occupied and as we all know from science fiction, &lt;i&gt;time travel is problematic&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But as I try to work on other things I'm surrounded on all sides by the necrotic realization of the tools I depend on. &amp;nbsp;Everything involving a computer is becoming corrupted by AI slop, and the amount of things I can work on without a computer (or at least without relying on a contemporary computer) narrows to hobbies or other activities that so far I have not found a way to make a living with.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Computers may be involved in the work of time travel but they don't need to be the kind of computers we use every day. &amp;nbsp;As you can imagine, much of the work involves custom hardware and while this includes computing capacity it is by it's nature easier to keep the botlickers away.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's also a notoriously bad investment, doesn't scale and can't be mass-produced so it's quite repulsive to the types of people who have spoiled the other subjects that have captured my imagination since childhood.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So it feels like a safe space, and probably a hard enough problem (and set of sub-problems) to keep my occupied for the time I have left.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Since it is impossible to even begin to imagine how this work could support me and my family financially there's no distraction of trying to make that happen, and there's no justification of investing too much time or money into it because it's going to "pay off". &amp;nbsp;The most likely outcome will be a body of knowledge on the subject that won't get realized within my lifetime. &amp;nbsp;In other words, &lt;b&gt;time well spent&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2226&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Downlink 2026-06-29</title><link>http://preposter.us/single-michigan-helium-network/downlink-2026-06-29.html</link><guid>http://preposter.us/single-michigan-helium-network/downlink-2026-06-29.html</guid><pubDate>Mon, 29 Jun 2026 07:23:40 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;Always an easy way to squeak-out one more post before the end of the month...&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Conditional_and_Iterator_Functions&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://stackoverflow.com/questions/77737306/openscad-syntax-modify-value-in-vector-list-array&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/WIP/Text_Metrics#fontmetrics&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://openscad.org/cheatsheet/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/String_Functions#chr&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/User-Defined_Functions_and_Modules#Functions&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Customizer&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Vectors&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://zig.guide/language-basics/integer-rules/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://codeberg.org/jjg?page=2&amp;amp;sort=recentupdate&amp;amp;q=&amp;amp;tab=repositories&amp;amp;language=&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://grizzl-e.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://grizzl-e.com/products/grizzl-e-classic?v=variant_01GR8W84MV4EMXCF7FDC3GSX0K&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://grizzl-e.com/products/grizzl-e-classic-connect?v=variant_01K77JZJ655SKAE1Q9NS4E5Y1P&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://grizzl-e.com/collections/pcol_01GRK0KSNNGBQ3EP8BRAPBH4GD&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/micro-editor/micro/blob/master/runtime/help/tutorial.md&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/micro-editor/micro/blob/master/runtime/help/plugins.md&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/priner/micro-aspell-plugin/blob/master/help/aspell.md&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/micro-editor/micro/blob/master/runtime/help/copypaste.md&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://hifibuys.com/optical-phono-cartridges-the-ultimate-analog-listening-experience/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://veilid.org/about-us/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.eff.org/nominate-next-eff-award-honoree-2026&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://loriemerson.net/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://loriemerson.net/category/other-networks/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://insideevs.com/features/436525/grizzl-e-ev-home-charging-station-discount/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://duckduckgo.com/?q=no+one+is+free+until+we+are+all+free&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://dn42.dev/Home&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Dn42&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.themoviedb.org/search/movie?query=friday%20the%2013th&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/jellyfin/jellyfin/issues/13656&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://jellywatch.app/blog/jellyfin-metadata-fix-tmdb-nfo-artwork-guide-2026&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://dokku.com/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://gokrazy.org/platforms/index.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Terra&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://codeberg.org/jjg/printable-type/src/branch/main/typeset-generator.scad&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.instructables.com/Table-Saw-for-Kids/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.lego.com/en-us/themes/speed-champions&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/List_of_missions_to_Mars&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Titan_IIIE&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/Helios_(spacecraft)&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.diyelectriccar.com/threads/fiero-based-conversion-rebuild-underway.30722/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://openinverter.org/forum/viewtopic.php?p=70860#p70860&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.marklines.com/en/report/rep1879_201906&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/mamedev/mame/blob/master/src/mame/canon/cat.cpp&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://en.wikipedia.org/wiki/MAME&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://arstechnica.com/gadgets/2025/09/your-very-own-humane-interface-try-jef-raskins-ideas-at-home/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://archive.org/details/swyftware-a2r-woz&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://archive.org/details/swyft-ware-swyft-card-user-manual-2nd-ed-apple-ii-1986&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/linappleii/linapple/tree/master&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.printables.com/model/1389388-statues-mega-pack-68-models/files&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://gokilo.github.io/raw-input-and-output.html&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://hackaday.com/2022/04/09/lora-powered-birdhouses-enable-wireless-networking-when-the-internets-down/&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://github.com/brucemack/microlink&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://cults3d.com/en/3d-model/art/blessed-virgin-mary-statue-3d-printable-religious-figurine-detailed-holy-mot-mrarundavis&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.printables.com/model/1737816-mini-trophy-print-in-place&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.printables.com/model/1761231-pill-dispenser-fridge-magnet-pokemon&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.printables.com/model/1703739-cable-mount&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.printables.com/model/927248-fan-folding-fan&lt;/div&gt;&lt;div&gt;*&amp;nbsp;https://www.printables.com/model/738026-holy-virgin-mary-3d-scan-of-real-statue-reworked-a&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Learing at Work</title><link>http://preposter.us/single-michigan-helium-network/learing-at-work.html</link><guid>http://preposter.us/single-michigan-helium-network/learing-at-work.html</guid><pubDate>Mon, 29 Jun 2026 07:54:05 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I used to learn a lot at work.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;One of the most expensive things about being forced to use AI is that I no longer do.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For decades I would learn new things and hone my existing skills during the thousands of hours I spent making other people rich. &amp;nbsp;I got to keep these skills when I punched-out at the end of the day and use them to do the things I like. &amp;nbsp;Now I spend my days coaxing, babysitting and correcting the output of a bullshit generator.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's kind of devastating.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But things could be worse.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The experience has given me a lot of perspective. &amp;nbsp;While my professional life has not always been easy, it's never been as harmful to myself or others as it is now. &amp;nbsp;I know now what it feels like to have a job that ruins your body and your mind and damages your community and the world. &amp;nbsp;I feel a kinship with the coal miner, the oil field worker, the defense contractor. &amp;nbsp;I consider myself fortunate to have made it this far before finding myself in this situation.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It provides a level of motivation to find a way out far greater than I've ever felt before. &amp;nbsp;Not just a way out for myself, but a way out for everyone.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Something I've been chewing on with &lt;a href="https://mastodon.social/@gl33p"&gt;Preston&lt;/a&gt; for quite some time is the idea of positive liberty and how it applies to the way I work, the way I live and the impact that I and the things I make have on the world. &amp;nbsp;I've struggled to articulate these thoughts for a number of reasons but the biggest reason might be that they could be seen as a threat to institutions that I appreciate and have benefited from, and have helped many others.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;But &lt;i&gt;nothing lasts forever&lt;/i&gt;, especially in nature, and nature is my &lt;b&gt;favorite&lt;/b&gt; teacher.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;One of the ideas that has fallen out of these trains of thought is refereed to as FOSS+. &amp;nbsp;FOSS+ is a &lt;a href="https://en.wikipedia.org/wiki/Positive_liberty"&gt;positive liberty&lt;/a&gt; implementation of &lt;a href="https://en.wikipedia.org/wiki/Free_and_open-source_software"&gt;Free and Open Source Software&lt;/a&gt;. &amp;nbsp;It's really more of a test than a process or recipe, and the simplest expression of the test is &lt;b&gt;&lt;i&gt;"It doesn't work until it works for everyone"&lt;/i&gt;&lt;/b&gt;. &amp;nbsp;FOSS+ builds on FOSS by doing what is necessary for &lt;b&gt;everyone&lt;/b&gt; to use the freedoms that free software enables. &amp;nbsp;Those of us who create free software have enjoyed these freedoms for decades, but they are often beyond the reach of people who are not themselves programmers or engineers or skilled in whatever specialty is needed to make, modify, extend and deploy free software. &amp;nbsp;As with positive liberty, the + in FOSS+ is &lt;b&gt;whatever it takes to allow everyone to utilize and enjoy these freedoms&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;FOSS+ is a manifestation of the idea that "&lt;a href="https://www.azquotes.com/quote/8574"&gt;The truth is, no one of us can be free until everybody is free.&lt;/a&gt;"&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What this means in practice is much harder to define than the software license that defines regular FOSS. &amp;nbsp;I'm not sure that something like a license or other document can really do it. &amp;nbsp;I think that for something to achieve FOSS+ status is more of a process than compliance. &amp;nbsp;As someone involved with establishing the standard I look at existing FOSS projects as a starting point (negative liberty being somewhat of a prerequisite for positive liberty) and then look at what those projects do to enable everyone to use the freedoms the project provides. &amp;nbsp;I don't have any specific examples that I think achieve this, but that has as much to do with how hard I've looked as it does with whether or not they exist.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think project-level granularity is probably the smallest level on which FOSS+ applies because it's hard to see how a single program or piece of code could achieve what FOSS+ requires. &amp;nbsp;It's hard to see how a piece of software on it's own could enable anyone with any level of skill or experience or any amount of access to equipment, networks, etc. to utilize the freedom the software provides unless that freedom is incredibly small. &amp;nbsp;Maybe such a thing could exist, but it's much easier to see how a project composed of people who want to work with the people who use the results of the project and enable them to utilize the freedoms this output can achieve FOSS+ status.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;By now you've probably noticed that FOSS+ is about &lt;b&gt;people more than anything else&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I think there's a lot to learn about how to create things that can honestly be labeled FOSS+, and maintaining that label is a continuous process. &amp;nbsp;This is not easy, but I think it's what we need if we want to escape the trap that the current way we work with software has created. &amp;nbsp;Free and Open Source Software has in many ways changed the world for the better, and it has allowed many of us to experience a level of freedom unimaginable in the time before FOSS was available. &amp;nbsp;Many of us are old enough now to remember what those "before times" were like, and we do not want to go back. &amp;nbsp;But the time has come to take the next step and do the work to allow everyone to enjoy the freedoms that have liberated us from the tyranny of proprietary software.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;FOSS+&lt;/b&gt; gives this work a name, and a label people can use to find it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Ribs</title><link>http://preposter.us/single-michigan-helium-network/ribs.html</link><guid>http://preposter.us/single-michigan-helium-network/ribs.html</guid><pubDate>Tue, 30 Jun 2026 06:07:22 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I made my first rack of pork ribs on the &lt;a href="https://pitbarrelcooker.com/"&gt;Pit Barrel&lt;/a&gt; last night for dinner. &amp;nbsp;I've made country-style ribs many times with varying degrees of success, but I'd never tried "regular" ribs until last night.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As it turns out, they turned-out pretty good!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Using the &lt;a href="https://pitbarrelcooker.com/blogs/food/award-winning-pork-ribs-1"&gt;basic recipe on the Pit Barrel site&lt;/a&gt; and the same rub I've put-together at home for the county-style ribs there's really not a lot to it. &amp;nbsp;The process is much simpler than the one I've used for country-style ribs and amounts to little more than lighting the cooker, seasoning the meat and hanging it for a couple hours.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There's really only two things I plan to do differently next time:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;1. Split the rack: the full rack was too long and was almost in the fire&lt;/div&gt;&lt;div&gt;2. Push the finish temp a little higher, maybe five degrees&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm not sure why I waited so long to try making these. &amp;nbsp;I think in my mind I had some idea that they were fancy or hard to make, probably based on having very few great experiences with them in restaurants. &amp;nbsp;I've tried them many times but really can only remember having what I'd call "great" ribs twice, so I assumed it was difficult or expensive or both. &amp;nbsp;I still have a long way to go to "great", but I thought for sure I'd have to work through some "terrible" before I'd have even "edible" results.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As it turns out, not only was it not hard to get good result it wasn't expensive either. &amp;nbsp;I shouldn't have let my assumptions hold me back.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Next time, I won't wait so long to try something.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Wine Cooler Part II</title><link>http://preposter.us/single-michigan-helium-network/wine-cooler-part-ii.html</link><guid>http://preposter.us/single-michigan-helium-network/wine-cooler-part-ii.html</guid><pubDate>Tue, 30 Jun 2026 07:26:27 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;&lt;i&gt;Continuation of the &lt;a href="https://jasongullickson.com/wine-cooler.html"&gt;Wine Cooler&lt;/a&gt; saga.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The parts I needed for the wine fridge showed-up about a month ago, but I couldn't find time to work on it again until last weekend. &amp;nbsp;Summer is not a great time to get things done that need to be done indoors.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/270-img_1252.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Once I unpacked the parts (replacement power supply and four replacement fans) I had to get my bearings again as to how the thing goes together and comes apart. &amp;nbsp;I wanted to take it a little more carefully this time and avoid having to repeat steps as well as avoid getting shocked.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As you'll recall from last time, the cooler's electronics consist of a power supply and a Peltier device sandwiched between two fans. &amp;nbsp;There's two of these complete assemblies, one at each end and then a small control panel to set the thermostat, monitor the current temperature and turn the lights on and off.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I started by replacing the fans on the end with the bad power supply. &amp;nbsp;I had left the machine disassembled with the bad supply removed and replacing the "hot side" fan was simple because it happens to use the same type of connector that the fan comes from the factory with.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/270-img_1253.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Replacing the cold-side fan was a little more work. &amp;nbsp;That fan connects to a pair of wires that goes back to the other side of the cooler and uses a different connector. &amp;nbsp;I would have considered moving this connector to the new fan, but it had been exposed to water (I'm guessing condensation) and was severely corroded. &amp;nbsp;I don't like making more work for the next person to work on this, but I decided to hardwire the fan in since the old connector is unusable and I didn't have anything suitable on-hand to replace it. &amp;nbsp;I also think the hard-wired option might be more reliable given what this connection is exposed to (based on the condition of the original connector), and if someone in the future has to replace this fan, they would get stuck modifying the connection anyway.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/270-img_1256.jpg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Once the fans were replaced I installed the new power supply. &amp;nbsp;The Peltier was hardwired to the original supply and I had desoldered these leads when I removed the failed supply but the new supply has blade connectors for the Peltier power so I rummaged round in the bins to find some crimp-on removable connectors to use with the blades. &amp;nbsp;As luck would have it, I found the connectors but couldn't find my crimper. &amp;nbsp;I'm pretty sure I gave it to Wes with the idea that I'd get myself a better one, but I apparently never got around to doing that. &amp;nbsp;I was able to make-do with some blunt-nosed pliers, but I really need to pick-up another crimper before I forget.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The rest of the power supply install went off without a hitch other than having to refer to the other, working supply to double-check some connections (the power supply has more connectors than needed so I wanted to make sure I was using the right ones).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I powered-on the cooler to test my work and noticed the cold-side fan I just replaced wasn't turning. &amp;nbsp;Since this was the fan I just hard-wired into the system the problem wasn't that I plugged it into the wrong place on the power supply or didn't seat the connector properly, and the cold-side fan on the other end was turning so it didn't appear to be a deliberate action on the part of the thermostat, etc. &amp;nbsp;Time to take it apart again...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I cut the soldered connection out and measured the voltage going to the fan to make sure that there was some and that I had the polarity right. &amp;nbsp;The polarity was correct, and there's voltage on the wires that go to this fan. &amp;nbsp;Weirdly the voltage is 18VDC and change, which is notable because all the fans in this thing (original and replacements) are rated for 12VDC. &amp;nbsp;I imagine there's enough margin designed into these fans that this isn't going to present any danger, but it may have been a contributing factor in the death of the original hot-side fan.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Next I reconnected the fan with some jumper wires to make sure it works before making a more permanent connection. &amp;nbsp;The fan spun-up when power was applied so it appears to be working just fine. &amp;nbsp;The only explanation I can come up with for the earlier failure is that my soldered connections were faulty. &amp;nbsp;This is a surprise, but I see no other explanation.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This time I repeat the power-on test after each step, soldering one wire, testing, soldering the other wire, testing, heat-shrink one, test, etc. &amp;nbsp;I work this way through completing the connection and the fan continues to operate as expected. &amp;nbsp;Problem solved.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;Lesson: test as you go&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;At this point I've spent a bit more time than I had planned due to the re-work and I'm considering my options. &amp;nbsp;I bought four fans because I thought it was prudent to replace all four while I had the machine apart and the cost of two additional fans was marginal. &amp;nbsp;Now that replacing the cold-side fan proved a nuisance and ate-up a lot of the time I had to work, I'm second-guessing replacing the fans on the end of the cooler that worked when it arrived. &amp;nbsp;I decide to split the difference and replace the hot-side fan because it plugs directly into the power supply using the connector already installed on the fan but leave the old cold-side fan alone; this should leave me enough time to do some testing before I have to work on something else.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Now it was time to button-up the chassis enough to do a temperature-holding test and I realize that I've never seen this thing completely assembled (it came to me in pieces). &amp;nbsp;I assumed there was a door on it but as it turns out there's not. &amp;nbsp;Instead, there is a panel with eight wine bottle-sized holes. &amp;nbsp;Bottles to be chilled are inserted into these holes and an elastic grommet of sorts seals the gaps to prevent air exchange between the cooler chamber and the environment. &amp;nbsp;This is clever, but I don't have eight bottles of wine in the lab to plug these holes and while the grommet is somewhat self-sealing, it's far from air-tight and I assume that in normal use all eight holes need to be plugged with bottles.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="assets/270-signal-2026-06-30-054539.jpeg"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The best idea I can come-up with is to lay some books over the holes and give it a shot. &amp;nbsp;I popped a lab thermometer in the chamber so I could compare it's measurement with the readings on the LED display and see if the indicated temp is anywhere near the actual chamber temp.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I set the thermostat at 50F and monitored the cooler for about fifteen minutes. &amp;nbsp;Starting with about 66F as measured by the cooler's thermostat (same as ambient temp), the temperature dropped about five degrees during the test period. &amp;nbsp;During this period the cooler was drawing about 250 watts as measured by the Bluetti I use on the workbench to test AC-powered things. &amp;nbsp;I left this run while I cleaned-up the workbench and it steadily declined until the display reached the set temp of 50F. &amp;nbsp;At this point the current draw dropped to around 100 watts and for the most part stayed there.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Since I don't know much about chilling wine (I drink mostly reds) I texted Jim to see what they normally set the thermostat to on a cooler like this so I could test it under real-world conditions. &amp;nbsp;He said he thought it went down to 47, which I took to mean "we run it as cold as it goes" so I cranked the thermostat down as far as it would go to see if it could hold this temp.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I was concerned about how thermal mass might impact the performance of the cooler and tried to find something more realistic to simulate a full set of wine bottles than my books simply blocking the holes. &amp;nbsp;I realized that maybe bottled water would be closer so I popped eight bottles of water in the holes. &amp;nbsp;These are not quite the right size and shape, and as such don't close off the holes as well as I'd like, but I figured it was better than nothing. &amp;nbsp;With this configuration I left the cooler running overnight to see how it performed with the thermostat set to it's lowest setting of 47F.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I occasionally checked the Bluetti to see how many watts the cooler was drawing as a way to see if it hit the set temp without having to run down to the lab (figuring the current draw would drop to around 100W once set temp was achieved). &amp;nbsp;Every time I checked it was still drawing around 250W.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The next day I went down to the lab to do something else and peeked-in on the cooler. &amp;nbsp;It was making an unusual noise, and I could tell it was coming from the cold-side fan that I didn't replace. &amp;nbsp;When I pulled the bottles and cover off I could see the cold-side of the Peltier heat sink was completely iced-up! &amp;nbsp;The ice was interfering with the fan blades which is what was creating the new noise. &amp;nbsp;I unplugged the cooler and left it to defrost.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm very curious as to why the Peltier with the cold-side fan I didn't replace iced-up but the other side didn't. &amp;nbsp;I'm also surprised that the Peltiers are capable of getting cold enough to ice-up at all. &amp;nbsp;The cooler does have a drain path and sort of spigot for draining liquid from the chamber so I assume that this sort of condensation is expected, but from everything I've seen so far I don't think there's any provisions for automatic defrosting (although with the right power supply it's easy to imagine how this might work, as reversing the polarity of a Peltier reverses the flow of heat). &amp;nbsp;I think it's safe to assume that this sort of freezing-up isn't normal, although if it had happened in the past that would explain the corrosion I noticed on the cold-side fan connector.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;As much as I want to answer all those questions I think the most obvious thing this points to is that I should replace the last original fan. &amp;nbsp;That is the only difference I'm aware of between the two ends of the cooler, and it seems reasonable that a performance difference between the two cold-side fans might cause one side to exhibit a different behavior than the other. &amp;nbsp;Plus, it's just the right thing to do and the only reason I didn't do it was because I was in a hurry.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;Lesson: take time to do it right&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm not sure if replacing the last fan will solve the "icing problem" or not, and my guess is that the poor air seal of the water bottles is a contributing factor. &amp;nbsp;That said, I'm going to try to replace that fan and run another extended test before I return the cooler just to see what happens.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;While the test results are mixed I think it's safe to say that the repair itself is complete. &amp;nbsp;There's a lot of things I'd love to improve while I have the cooler but at some point I have to choose to stop or it will never be done. &amp;nbsp;I've had this thing for a couple months now and while I've only spent a few hours working on it, it has a job to do and even though I'm sure I could improve it further, it's probably good enough to go back to work.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>The Month of Zig - Conclusion</title><link>http://preposter.us/single-michigan-helium-network/the-month-of-zig-conclusion.html</link><guid>http://preposter.us/single-michigan-helium-network/the-month-of-zig-conclusion.html</guid><pubDate>Tue, 30 Jun 2026 15:03:24 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I'm tempted to call the &lt;a href="https://jasongullickson.com/the-month-of-zig.html"&gt;MoZ&lt;/a&gt; a failure, but even though I didn't successfully create any new programs, I learned a few things and learning is always a valid outcome.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The main thing I learned was: I don't like writing programs in Zig. &amp;nbsp;I really want to support the Zig developers stance against AI contributions to the language, and maybe I should send them a few bucks, but compared to other languages I work in I just didn't find Zig to be very much fun.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I tried to chalk that up to familiarity but that didn't compute when compared to other languages I came to completely green (Go, Forth, etc.) and still enjoyed working with. &amp;nbsp;I'm still basically hopeless at Forth but every time I have a chance to play with it, I have a good time.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This isn't Zig's problem. &amp;nbsp;I'm sure some people love it for the same reasons some people hate the languages I enjoy working in. &amp;nbsp;It's essentially a matter of taste, and outside of professional environments that's a fine reason to make a language choice.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's a bummer because there are things I conceptually like about the way Zig works, and I was especially stoked about built-in SIMD support, but that excitement wasn't enough to overcome the drag of how it feels to me to work with it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I stayed the course pretty well the first couple weeks of June, but after about the third week I found it very hard to invest an hour a day in the language. &amp;nbsp;I still did it, but I spent more and more time sifting through unofficial documentation and such to figure out why things didn't work the way they were explained in the various guides I was following. &amp;nbsp;I will admit that I had a number of unpleasant interactions with existing Zig programmers which didn't help.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;On the upside I learned a lot about what I *do* like in a programming language and especially the impact the people who use the language have on someone interested in learning how to use it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I look forward to applying all of this to my own projects going forward.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So while I'm not planning to port any of my projects to Zig, and probably won't start any new projects in it anytime soon, the exercise was very worthwhile and gave me a lot of ideas about what I want to do next and especially *how* I want to do it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Over the Sea</title><link>http://preposter.us/single-michigan-helium-network/over-the-sea.html</link><guid>http://preposter.us/single-michigan-helium-network/over-the-sea.html</guid><pubDate>Wed, 01 Jul 2026 06:12:26 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;b&gt;&lt;i&gt;"In every revolution, there's one man with a vision!"&lt;/i&gt;&lt;/b&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Information Society, 1988&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    
    


&lt;audio controls&gt;&lt;source src='assets/272-ots.mp3'&gt;&lt;/audio&gt;</description></item><item><title>Fresh</title><link>http://preposter.us/single-michigan-helium-network/fresh.html</link><guid>http://preposter.us/single-michigan-helium-network/fresh.html</guid><pubDate>Wed, 01 Jul 2026 07:06:23 -0500</pubDate><description>
    &lt;div style="height: initial;" dir="auto"&gt;&lt;div&gt;I used to format and re-install the operating system on my laptops frequently. &amp;nbsp;Way back when I ran Classic MacOS or Windows this was at least four times a year, then when I started using Linux it became less frequent, but I did a fresh install at least once or twice a year and most of the time I experimented with different Linux distros. &amp;nbsp;As operating systems became more reliable I got out of this habit.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;After struggling with a number of things in ElementaryOS recently I'm going to revisit this hygiene and install something else on my laptop. &amp;nbsp;I'm not exactly sure what I'm going to land on, but there's a few things I want to try.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm going to give HaikuOS another shot. &amp;nbsp;I can't remember if I ever tried to run it on the Rework, so maybe it won't "work", but since it's easy to test from a USB flash drive I'll give that a shot first.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If that doesn't pan-out I'm going to try a stock Debian install. &amp;nbsp;I use Debian on a lot of my server projects so it's familiar, and I'm fairly confident that I can manage it well enough to customize it into whatever I want. &amp;nbsp;The only real question is whether or not I'm going to run into issues with non-open drivers for the Rework's hardware.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If that doesn't go my way I might try KDE Neon. &amp;nbsp;I used Neon for years when I was allowed to install Linux on my work laptops and I like it in general. &amp;nbsp;I don't like what Ubuntu has become (never really loved it in the first place) and since Neon is built on Ubuntu I'm worried about some friction there, but it's another one that is easy enough to test-drive so it's on the list.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm wondering what other operating systems I might try. &amp;nbsp;My application requirements are fairly simple, the essentials being:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* Librewolf&lt;/div&gt;&lt;div&gt;* OrcaSlicer&lt;/div&gt;&lt;div&gt;* OpenSCAD&lt;/div&gt;&lt;div&gt;* Signal&lt;/div&gt;&lt;div&gt;* LibreOffice&lt;/div&gt;&lt;div&gt;* Micro&lt;/div&gt;&lt;div&gt;* Golang&lt;/div&gt;&lt;div&gt;* Git&lt;/div&gt;&lt;div&gt;* rsync&lt;/div&gt;&lt;div&gt;* An email client&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I could probably forgo some of these for my laptop and use them on dedicated machines or elsewhere if needed.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'm certainly not opposed to trying something unusual, and I'm seriously interested in looking at alternatives to Linux (MacOS and Windows need not apply).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Jason J. Gullickson, 2026&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
    
    


</description></item><item><title>Nowhere To Go But Up</title><link>http://preposter.us/single-michigan-helium-network/nowhere-to-go-but-up.html</link><guid>http://preposter.us/single-michigan-helium-network/nowhere-to-go-but-up.html</guid><pubDate>Sat, 04 Jul 2026 11:42:25 +0000</pubDate><description>&lt;div class="iw_mail" dir="ltr" style="font-size: 1rem;"&gt;&lt;div&gt;I've been &lt;a href="https://jasongullickson.com/fresh.html" rel="noopener noreferrer" style="" target="_blank"&gt;meticulously rebuilding&lt;/a&gt; my laptop over the last few days, installing only a handful of pieces of software. &amp;nbsp;I was really heartbroken to find that one of my favorite pieces of open-source software, one that I depend on almost daily, has become infected with the AI virus.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;It's become clear to me that at this point, any corporate or otherwise closed piece of software must be assumed to contain AI slop but the sadder and more surprising realization is that the same is true for open source software as well.&amp;nbsp; Any open source project that doesn't boldly claim to be AI-free in the project description is likely to contain AI-written code as well as AI features.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;This left me distraught for a few days, but this morning I'm starting to sort things out.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;First, I'm not going to escape using and depending on things that use AI today, tomorrow and probably not for awhile.&amp;nbsp; If keeping it out of my tiny list of software necessities isn't possible, what hope is there?&amp;nbsp; Even Linux itself is falling into this trap, so there's no obvious, immediate way out through the existing open-source ecosystem.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Until I can resolve my dependency on these things, I'm going to have to find a way to accept them.&amp;nbsp; That doesn't mean giving-up or becoming complacent, it's just means that this is the way it is until I can do something about it.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;I've thought of two things I can do about it.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;In the short-term, it's possible to utilize the openness of open-source to go back in time to a point before this nightmare began.&amp;nbsp; It is possible to fork the open-source projects I depend on at a point in time before they became tainted.&amp;nbsp; It's not easy to tell exactly when this happened so I'm going to do a little homework on when LLM-generated code became a thing and then fork all the projects I need on the same date.&amp;nbsp; This means I'll be running "out of date" code and that's fine, right now my favorite computer is from 1983 and runs "software" (firmware?) from 1985.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;The long-term solution is to depend on things that are made by people I trust.&amp;nbsp; That trust includes a commitment to making the things themselves which by nature excludes the use of AI.&amp;nbsp; Surprisingly I only know a couple of people like this, at least in the software development space.&amp;nbsp; Effectively this means I'm doing it alone for now, but I'm hopeful that there will be others who want to join me soon.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;It's very hard to let-go of the feeling that all of this is unnecessary, that it could easily be avoided. &amp;nbsp;It's really a blow to my respect for open-source software that so many projects have taken this path. &amp;nbsp;Anyone who bothers to look can see that AI (and especially LLM's) is a &lt;a href="https://bristoluniversitypress.co.uk/resisting-ai" rel="noopener noreferrer" style="" target="_blank"&gt;fundamentally and irredeemably fascist technology&lt;/a&gt; and once you have this knowledge continuing to use it can be interpreted as nothing other than being complicit with fascism. &amp;nbsp;I can't believe that some of the developers I've grown to love and respect are fascists, so I can only hope that they have been keeping themselves in the dark.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;The good news is that there are at least two paths forward, and I think both are complimentary.&amp;nbsp; The result will be a big step forward, one that we've needed to take for awhile.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;em&gt;Jason J. Gullickson, 2026&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;

</description></item><item><title>KGLMDPS: The Move</title><link>http://preposter.us/single-michigan-helium-network/kglmdps-the-move.html</link><guid>http://preposter.us/single-michigan-helium-network/kglmdps-the-move.html</guid><pubDate>Sat, 4 Jul 2026 07:28:53 -0500</pubDate><description>


&lt;a href='assets/275-img_1265.jpg'&gt;&lt;img src='assets/275-img_1265.jpg'&gt;&lt;/a&gt;</description></item><item><title>Letting The Work Do The Work</title><link>http://preposter.us/single-michigan-helium-network/letting-the-work-do-the-work.html</link><guid>http://preposter.us/single-michigan-helium-network/letting-the-work-do-the-work.html</guid><pubDate>Sun, 05 Jul 2026 12:27:35 +0000</pubDate><description>&lt;div class="iw_mail" dir="ltr" style="font-size: 1rem;"&gt;&lt;div&gt;I've thought a lot about &lt;a href="https://jasongullickson.com/nowhere-to-go-but-up.html" rel="noopener noreferrer" style="" target="_blank"&gt;yesterday's post&lt;/a&gt; over the last 24 hours and realized a few things. &amp;nbsp;One is that focusing on this problem, the slopocalypse if you will, is making it impossible for me to make any progress on the things that I want to be working on, the things I need to do to find a way out of the coercive way of life that forces me to use AI in the first place.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;There's a lot of things that I want to work on that people seem to want and that can contribute to a brighter future. &amp;nbsp;A subset of these things are, by their nature, projects I can pursue that are not squarely in the cross-hairs of the AI industry. &amp;nbsp;They don't need to integrate into "&lt;em&gt;ecosystems&lt;/em&gt;" where the AI Industry is unavoidable. &amp;nbsp;These are what I should be focusing on.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;It means biting the bullet and depending on tools I can't trust, tools that are likely already infected by AI slop and maintained by people who don't yet understand (or care) about what this means to the world or even their own work. &amp;nbsp;I will try to help them when I can, but if I keep using all of my free time for this I'll never make any of the tools that can be used to break the dependence on the willfully ignorant or just plain evil people that so many of us are currently under the boot of.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;It's hard for me to let this go, and it's going to take daily discipline to do so. &amp;nbsp;It feels wrong even writing it, but right now it's consuming me and while some progress is being made, I don't think how I've been doing this so far will be sustainable for much longer.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;I've also realized that I hold myself to standards that are probably not healthy. &amp;nbsp;I'm not trying to rationalize giving-up on things that matter, I'm recognizing my limits as a single human. &amp;nbsp;I'm writing this post as much as a reminder to me as anything else: &lt;strong&gt;make things first and let the things change minds&lt;/strong&gt;.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;em&gt;Jason J. Gullickson, 2026&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;

</description></item><item><title>Power Games</title><link>http://preposter.us/single-michigan-helium-network/power-games.html</link><guid>http://preposter.us/single-michigan-helium-network/power-games.html</guid><pubDate>Mon, 06 Jul 2026 15:35:57 +0000</pubDate><description>&lt;div class="iw_mail" dir="ltr" style="font-size: 1rem;"&gt;&lt;div&gt;I have some time to myself this morning as electricians upgrade the service at the house. &amp;nbsp;This had me thinking about off-grid power and I spent a couple hours diving deep into making something convenient and durable for monitoring, controlling and integrating various power supplies and consumers. &amp;nbsp;I was focused on Bluetti, because that's what I have to play with and really rooting-around in the Bluetooth Low Energy (BLE) interface.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;At first it looked promising. &amp;nbsp;Building off the Python-based setup I &lt;a href="https://jasongullickson.com/appless-monitoring-and-control-of-the-bluetti-eb3a.html" rel="noopener noreferrer" style="" target="_blank"&gt;experimented with earlier&lt;/a&gt; and some Go-based BLE experiments this morning, I was hopeful that I might be able to pull something together and started digging back into the repositories and forum posts where I found the original Python implementation.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;There was a lot more info since the last time I visited the &lt;a href="https://diysolarforum.com/threads/monitoring-bluetti-systems.37870/page-12" rel="noopener noreferrer" style="" target="_blank"&gt;forum&lt;/a&gt; and it looked like development was increasingly active, so I jumped to the last page of the thread to see what's happening now. &amp;nbsp;When I got there, I learned two things that really took the wind out of my sails.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;The first was that there was a cloud outage that impacted the Bluetti devices, and the company didn't come-clean about it for awhile.&amp;nbsp; I don't know the total impact of the outage, but it was a reminder that relying on the cloud for critical systems like this is a mistake.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;More disconcerting was learning that newer Bluetti devices appear to be encrypting the data they send over BLE, making it impossible to monitor or control the devices without using the apps and cloud software that Bluetti provides.&amp;nbsp; I'm sure the justification for this is "security", but given that any phone with the app in range of the device can control it, encrypting the packets doesn't really provide any additional security at that point.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;So my idea of making a tool that could be used to integrate these devices with other things like Home Assistant (and ideally, other solar, battery, inverter, etc. devices) in a heterogeneous way is essentially dead due to this.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;I'm not particularly frustrated by this because while it's a bummer, it just reminds me of the risks of being dependent on things you have no control over. &amp;nbsp;I'm trying to be more accepting of the fact that I can't do everything myself, but I guess that has to be a dynamic negotiation. &amp;nbsp;Something like backup power isn't really something I can just roll-over and compromise on, especially when it means that it might not work when the "internet is down". &amp;nbsp;Maybe some things are so critical that it's not unreasonable to &lt;a href="https://jasongullickson.com/do-it-ourselves.html" rel="noopener noreferrer" style="" target="_blank"&gt;do them ourselves&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;This isn't the first time I've considered designing &lt;a href="https://jasongullickson.com/the-digital-bug-out-box.html" rel="noopener noreferrer" style="" target="_blank"&gt;such things&lt;/a&gt; myself and it's certainly something that more and more people are becoming interested in. &amp;nbsp;There may still be an incremental path forward, perhaps making a modification for an existing product? &amp;nbsp;I'm going to explore this option a bit, but I'll keep "doing it from scratch" in my back pocket just in case.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;em&gt;Jason J. Gullickson, 2026&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
</description></item><item><title>Juicy</title><link>http://preposter.us/single-michigan-helium-network/juicy.html</link><guid>http://preposter.us/single-michigan-helium-network/juicy.html</guid><pubDate>Tue, 7 Jul 2026 07:44:30 -0500</pubDate><description>


&lt;a href='assets/279-img_1291.jpg'&gt;&lt;img src='assets/279-img_1291.jpg'&gt;&lt;/a&gt;</description></item><item><title>Bugs</title><link>http://preposter.us/single-michigan-helium-network/bugs.html</link><guid>http://preposter.us/single-michigan-helium-network/bugs.html</guid><pubDate>Wed, 08 Jul 2026 11:53:00 +0000</pubDate><description>&lt;div class="iw_mail" dir="ltr" style="font-size: 1rem;"&gt;&lt;div&gt;If you're subscribed to the feed (or visited the &lt;a href="https://jasongullickson.com/" rel="noopener noreferrer" style="" target="_blank"&gt;index&lt;/a&gt;) you may have noticed some anomalies over the last day or so. &amp;nbsp;Those are bugs.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It's a good reminder that I need to re-write &lt;a href="//Preposter.us" rel="noopener noreferrer" target="_blank"&gt;Preposter.us&lt;/a&gt; in something that is maintained, and then maintain it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;With any luck wrestling with this will provide the motivation I need to do just that.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;em&gt;Jason J. Gullickson, 2026&lt;/em&gt;&lt;/div&gt;&lt;/div&gt;

</description></item><item><title>Grizz</title><link>http://preposter.us/single-michigan-helium-network/grizz.html</link><guid>http://preposter.us/single-michigan-helium-network/grizz.html</guid><pubDate>Thu, 09 Jul 2026 14:48:27 +0000</pubDate><description>
&lt;div class="iw_mail" dir="ltr" style="font-size: 1rem;"&gt;&lt;div&gt;I spent a lot of time deciding what L2 charging station to buy for the EV9. &amp;nbsp;I thought my requirements were pretty basic:&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;* Tough enough to live outside through Wisconsin winters (getting easier every year)&lt;/div&gt;&lt;div&gt;* NACS connector for the vehicle&lt;/div&gt;&lt;div&gt;* Plug-in (so if it breaks I can swap it out without cutting the power)&lt;/div&gt;&lt;div&gt;* 40A or more&lt;/div&gt;&lt;div&gt;* Doesn't require the Internet to work&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;I thought I could take advantage of our utility companies offers to get a discount but they offer a limited selection and of the two that met my requirements, neither was in stock. &amp;nbsp;On the up-side, I had a lot more devices to choose from, even if I was going to have to pay full price.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;I decided to go with &lt;a href="https://grizzl-e.com/products/grizzl-e-classic-connect" rel="noopener noreferrer" target="_blank"&gt;Grizzl-E&lt;/a&gt;, and after using it for about a week, I'm very satisfied with this choice.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img id="img-3314466729564368001783608290585" src="assets/281-grizzoutside.jpeg" style="max-width: 100%;" class="fr-draggable"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;As you can see, physically you couldn't get much simpler. &amp;nbsp;It is a sturdy metal box with one indicator. &amp;nbsp;It comes from Canada so while I'll have to wait a few months to see how it holds-up in the winter myself, I'm pretty confident that anything which can endure Canada's winters will do fine here.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;I was planning to get the non-connected "&lt;a href="https://grizzl-e.com/products/grizzl-e-classic" rel="noopener noreferrer" target="_blank"&gt;Classic&lt;/a&gt;", but they don't offer it with a NACA connector. &amp;nbsp;Since I don't want to have to deal with an adapter at my own charger I bit the bullet and went with the "Classic Connect", figuring that if I don't want to deal with the "Connect" part I could just refuse to give it access to the network.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Installing the charger was straightforward and configuring it for charging was simple. &amp;nbsp;All the necessary hardware was included and the hardest part was deciding on exactly where to put it. &amp;nbsp;Once it was on the wall the electrical task amounted to plugging it into the outlet we had installed as part of a larger service upgrade. &amp;nbsp;Configuring the device for charging amounts to unscrewing four hex bolts and setting a DIP switch to set the maximum charging current.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;That's all you need to do to start using the charger, and it works great this way.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Of course I got curious about the "connected" part so I worked-through the process of getting it on the network and used the provided app for monitoring. &amp;nbsp;The app is surprisingly simple and easy to use, but you want to play with it when it's OK to interrupt charging because some actions will do that.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;This got me wondering if anyone has experimented with connecting this to Home Assistant, and sure enough, &lt;a href="https://github.com/mclare/grizzl_e-for-HA" rel="noopener noreferrer" target="_blank"&gt;someone has&lt;/a&gt;. &amp;nbsp;I can't use their integration due to limitations of how I have HA setup (that's a whole 'nother post) but I did learn that it's trivial to get data out of the charger, and you can do it using curl.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;curl -sS -X POST -H 'Authorization: Basic '"$(printf %s '&amp;lt;username&amp;gt;:&amp;lt;password&amp;gt;' | base64)" http://&amp;lt;EVSE_IP&amp;gt;/main&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Not only does this give you data, it's a nice JSON structure that is easy to parse instead of some proprietary thing stuffed with crud you need to ignore/discard!&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "verFWMain": &amp;nbsp; &amp;nbsp;"GRS077L-01.07.1 ",&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "verFWWifi": &amp;nbsp; &amp;nbsp;"USGRW070L-03.15.3",&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "serialNumCPU": "",&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "serialNum": &amp;nbsp; &amp;nbsp;"redacted",&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "stationId": &amp;nbsp; &amp;nbsp;"redacted",&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "fwCRC32": &amp;nbsp; &amp;nbsp; &amp;nbsp;"14DACCDC",&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "broadcastMode": &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "switchState": &amp;nbsp;14,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "verFWStatus": &amp;nbsp;1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "pilot": &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "state": &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "subState": &amp;nbsp; &amp;nbsp; 9,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "currentSet": &amp;nbsp; 40,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "curDesign": &amp;nbsp; &amp;nbsp;40,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "minCurrent": &amp;nbsp; 7,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "minVoltage": &amp;nbsp; 175,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "gridRange": &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "typeEvse": &amp;nbsp; &amp;nbsp; 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "typeRelay": &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "aiModecurrent": &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "aiStatus": &amp;nbsp; &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "aiVoltage": &amp;nbsp; &amp;nbsp;200,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "aiVoltageStart": &amp;nbsp; &amp;nbsp; &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "aiVoltageDrop": &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "aiPowerDrop": &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "SNflag": &amp;nbsp; &amp;nbsp; &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ground": &amp;nbsp; &amp;nbsp; &amp;nbsp; 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "groundCtrl": &amp;nbsp; 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tarif": &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;100,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "activeTarif": &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tarifAEnable": 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tarifBEnable": 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tarifAValue": &amp;nbsp;100,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tarifBValue": &amp;nbsp;100,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tarifAStart": &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tarifAStop": &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tarifBStart": &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tarifBStop": &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "timerType": &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "timeZone": &amp;nbsp; &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "systemTime": &amp;nbsp; 1783605937,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "timeMsg": &amp;nbsp; &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "timeLimitS": &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "energyLimitS": 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "moneyLimitS": &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "evseEnabled": &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "suspendErrors": &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "suspendLimits": &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "oneCharge": &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "delayedLimit": 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "timeLimit": &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "energyLimit": &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "moneyLimit": &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sh1Enabled": &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sh1Start": &amp;nbsp; &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sh1Stop": &amp;nbsp; &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sh1CurrentEnable": &amp;nbsp; &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sh1CurrentValue": &amp;nbsp; &amp;nbsp; &amp;nbsp;12,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sh1EnergyEnable": &amp;nbsp; &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sh1EnergyValue": &amp;nbsp; &amp;nbsp; &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sh2Enabled": &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sh2Start": &amp;nbsp; &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sh2Stop": &amp;nbsp; &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sh2CurrentEnable": &amp;nbsp; &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sh2CurrentValue": &amp;nbsp; &amp;nbsp; &amp;nbsp;12,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sh2EnergyEnable": &amp;nbsp; &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sh2EnergyValue": &amp;nbsp; &amp;nbsp; &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "totalEnergy": &amp;nbsp;25.346000671386719,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sessionTime": &amp;nbsp;36528,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sessionEnergy": &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;11.772000312805176,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sessionMoney": 11.7790002822876,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sessionStarted": &amp;nbsp; &amp;nbsp; &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "IEM1": 25.346000671386719,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "IEM2": 25.346000671386719,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "IEM1_money": &amp;nbsp; 25.3390007019043,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "IEM2_money": &amp;nbsp; 25.3390007019043,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "curMeas1": &amp;nbsp; &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "curMeas2": &amp;nbsp; &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "curMeas3": &amp;nbsp; &amp;nbsp; 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "voltMeas1": &amp;nbsp; &amp;nbsp;249,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "voltMeas2": &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "voltMeas3": &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "powerMeas": &amp;nbsp; &amp;nbsp;0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "temperature1": 23,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "temperature2": 23,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "leakValue": &amp;nbsp; &amp;nbsp;18,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "leakValueH": &amp;nbsp; 15,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "vBat": 3.0799999237060547,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "adapter": &amp;nbsp; &amp;nbsp; &amp;nbsp;255,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "scanComplete": 0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "lang": 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ocppConnected": &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ocppEnabled": &amp;nbsp;1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ocppVendor": &amp;nbsp; 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ocppOfflineAva": &amp;nbsp; &amp;nbsp; &amp;nbsp; 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "thirdPartyBackends": &amp;nbsp; 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "STA_IP_Addres": &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;"192.168.68.73",&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "RSSI": -61,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "model": &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;"GRC 40A 2025"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New,Courier,Monospace;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;I was very hesitant to get a charger with any "cleverness" because I didn't want to rely on it and I definitely didn't want to be locked-in to using some cloud/app/etc. to charge the car. &amp;nbsp;If they offered the "Classic" with a NACA connector I probably would still have gone that way, but it's pretty awesome that they make it this easy to interface with the unit, and with a little more digging I'm sure I could control it as well.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;em&gt;Jason J. Gullickson, 2026&lt;/em&gt;&lt;/div&gt;&lt;/div&gt;

</description></item><item><title>Downlink 2026-07-10</title><link>http://preposter.us/single-michigan-helium-network/downlink-2026-07-10.html</link><guid>http://preposter.us/single-michigan-helium-network/downlink-2026-07-10.html</guid><pubDate>Fri, 10 Jul 2026 11:04:21 +0000</pubDate><description>&lt;div class="iw_mail" dir="ltr" style="font-size: 1rem;"&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://en.wikipedia.org/wiki/Single-board_computer" rel="noopener noreferrer" target="_blank"&gt;https://en.wikipedia.org/wiki/Single-board_computer&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://en.wikipedia.org/wiki/Apple_II#Apple_IIe" rel="noopener noreferrer" target="_blank"&gt;https://en.wikipedia.org/wiki/Apple_II#Apple_IIe&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://www.willegal.net/appleii/appleii-first_page.htm" rel="noopener noreferrer" target="_blank"&gt;https://www.willegal.net/appleii/appleii-first_page.htm&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="http://willegal.net/superproto/SuperProto.htm" rel="noopener noreferrer" target="_blank"&gt;http://willegal.net/superproto/SuperProto.htm&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://www.willegal.net/blog/?cat=15" rel="noopener noreferrer" target="_blank"&gt;https://www.willegal.net/blog/?cat=15&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="http://www.myapplecomputer.net/mimeo-reproduction.html" rel="noopener noreferrer" target="_blank"&gt;http://www.myapplecomputer.net/mimeo-reproduction.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://www.willegal.net/appleii/apple1-process.htm" rel="noopener noreferrer" target="_blank"&gt;https://www.willegal.net/appleii/apple1-process.htm&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://tinygo.org/docs/reference/microcontrollers/featured/" rel="noopener noreferrer" target="_blank"&gt;https://tinygo.org/docs/reference/microcontrollers/featured/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://en.wikipedia.org/wiki/Openbox" rel="noopener noreferrer" target="_blank"&gt;https://en.wikipedia.org/wiki/Openbox&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://openbox.org/help/Installing" rel="noopener noreferrer" target="_blank"&gt;https://openbox.org/help/Installing&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://grizzl-e.com/products/grizzl-e-classic-connect?v=variant_01K77JZJ655SKAE1Q9NS4E5Y1P" rel="noopener noreferrer" target="_blank"&gt;https://grizzl-e.com/products/grizzl-e-classic-connect?v=variant_01K77JZJ655SKAE1Q9NS4E5Y1P&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://nyc3.digitaloceanspaces.com/ecommerce-space/Grizzl_E_Connect_User_Guide_v1_2_0_71ed8ea28a.pdf" rel="noopener noreferrer" target="_blank"&gt;https://nyc3.digitaloceanspaces.com/ecommerce-space/Grizzl_E_Connect_User_Guide_v1_2_0_71ed8ea28a.pdf&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://ecommerce-space.nyc3.digitaloceanspaces.com/User_Manual_and_Installation_Guide_V1_2_d913985fe5.pdf" rel="noopener noreferrer" target="_blank"&gt;https://ecommerce-space.nyc3.digitaloceanspaces.com/User_Manual_and_Installation_Guide_V1_2_d913985fe5.pdf&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://www.home-assistant.io/installation/linux/" rel="noopener noreferrer" target="_blank"&gt;https://www.home-assistant.io/installation/linux/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://computingforgeeks.com/install-kvm-centos-rhel-ubuntu-debian-sles-arch/" rel="noopener noreferrer" target="_blank"&gt;https://computingforgeeks.com/install-kvm-centos-rhel-ubuntu-debian-sles-arch/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://computingforgeeks.com/managing-kvm-network-interfaces-in-linux/" rel="noopener noreferrer" target="_blank"&gt;https://computingforgeeks.com/managing-kvm-network-interfaces-in-linux/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://www.suse.com/c/kvm-networking-a-simple-way-to-manage-port-forwards-and-configuration/" rel="noopener noreferrer" target="_blank"&gt;https://www.suse.com/c/kvm-networking-a-simple-way-to-manage-port-forwards-and-configuration/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://help.ubuntu.com/community/KVM/Networking" rel="noopener noreferrer" target="_blank"&gt;https://help.ubuntu.com/community/KVM/Networking&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://jamielinux.com/docs/libvirt-networking-handbook/" rel="noopener noreferrer" target="_blank"&gt;https://jamielinux.com/docs/libvirt-networking-handbook/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://github.com/mclare/grizzl_e-for-HA" rel="noopener noreferrer" target="_blank"&gt;https://github.com/mclare/grizzl_e-for-HA&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://github.com/stefanthoss/ocpp-grizzl-e" rel="noopener noreferrer" target="_blank"&gt;https://github.com/stefanthoss/ocpp-grizzl-e&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://home-assistant-ocpp.readthedocs.io/en/latest/installation.html#configure-your-charger" rel="noopener noreferrer" target="_blank"&gt;https://home-assistant-ocpp.readthedocs.io/en/latest/installation.html#configure-your-charger&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://en.wikipedia.org/wiki/Open_Charge_Point_Protocol" rel="noopener noreferrer" target="_blank"&gt;https://en.wikipedia.org/wiki/Open_Charge_Point_Protocol&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://pkg.go.dev/github.com/emersion/go-imap/v2/imapclient#example-Client.Fetch-ParseBody" rel="noopener noreferrer" target="_blank"&gt;https://pkg.go.dev/github.com/emersion/go-imap/v2/imapclient#example-Client.Fetch-ParseBody&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://github.com/emersion/go-message/" rel="noopener noreferrer" target="_blank"&gt;https://github.com/emersion/go-message/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://godocs.io/github.com/emersion/go-message/mail#example-Reader" rel="noopener noreferrer" target="_blank"&gt;https://godocs.io/github.com/emersion/go-message/mail#example-Reader&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://pkg.go.dev/io#ReadAll" rel="noopener noreferrer" target="_blank"&gt;https://pkg.go.dev/io#ReadAll&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://rasterweb.net/raster/2026/07/08/light-up-film-prop-buttons/" rel="noopener noreferrer" target="_blank"&gt;https://rasterweb.net/raster/2026/07/08/light-up-film-prop-buttons/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;* &lt;a href="https://grizzl-e.com/collections/pcol_01GRK5JVF8SP7Z62N9PKR8CPHD" rel="noopener noreferrer" target="_blank"&gt;https://grizzl-e.com/collections/pcol_01GRK5JVF8SP7Z62N9PKR8CPHD&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;em&gt;Jason J. Gullickson, 2026&lt;/em&gt;&lt;/div&gt;&lt;/div&gt;

</description></item></channel></rss>