<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:base="https://erikvorhes.com/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Erik Vorhes</title>
    <link>https://erikvorhes.com/</link>
    <atom:link href="https://erikvorhes.com/feed.rss.xml" rel="self" type="application/rss+xml" />
    <description>Ideas and things from my personal site.</description>
    <language>en-US</language>
    <item>
      <title>The horror.</title>
      <link>https://erikvorhes.com/notes/2026-10-horror-reading/</link>
      <description>
&lt;p&gt;It’s &lt;a href=&quot;https://en.wikipedia.org/wiki/Indigenous_Peoples%27_Day_%28United_States%29&quot;&gt;Indigenous Peoples’ Day&lt;/a&gt;, and we’re in what the kids are calling “spooky season.” (&lt;em&gt;Do&lt;/em&gt; the kids call it this, or am I just getting old?) In a happy coincidence I happen to have been reading some fantastic horror by Blackfeet author Stephen Graham Jones.&lt;/p&gt;
&lt;h2 id=&quot;the-buffalo-hunter-hunter&quot;&gt;&lt;cite&gt;The Buffalo Hunter Hunter&lt;/cite&gt;&lt;/h2&gt;
&lt;p&gt;If I’ve interacted with you at all in real life, I’ve probably tried to slip &lt;cite&gt;The Buffalo Hunter Hunter&lt;/cite&gt; into conversation. Way back when it was announced, I put it on hold at the library; various folks whose opinions I respect seemed very excited by this book. Once my turn in line came up and I started reading it, I understood why they’d recommended it. I won’t go into much detail here, because it’s probably worth knowing very little about it before you start reading it. The novel involves the discovery of an old journal and large excerpts from that journal, including a story related to the journal-keeper and his encounters with a member — or perhaps former member — of the Blackfeet people. It’s a doubly-nested story, and Jones sticks the landing. As much as the novel itself is entertaining, it’s also deeply profound and deftly indicts the reader in the many supernatural and human horrors.&lt;/p&gt;
&lt;h2 id=&quot;the-only-good-indians&quot;&gt;&lt;cite&gt;The Only Good Indians&lt;/cite&gt;&lt;/h2&gt;
&lt;p&gt;I read this novel partly because I had just read &lt;cite&gt;The Buffalo Hunter Hunter&lt;/cite&gt;, and I wanted even more. &lt;cite&gt;The Only Good Indians&lt;/cite&gt; is a wild, hallucinatory study of generational trauma, secrets, and misdeeds. If you appreciate body horror and stories like &lt;a href=&quot;https://en.wikipedia.org/wiki/Deer_Woman&quot;&gt;the Deer Woman&lt;/a&gt;, you’re in for a treat.&lt;/p&gt;
&lt;h2 id=&quot;see-also&quot;&gt;See also&lt;/h2&gt;
&lt;p&gt;Christopher Buehlman isn’t an indigenous author, but his &lt;cite&gt;The Lesser Dead&lt;/cite&gt; appears in Jones’ acknowledgements for &lt;cite&gt;The Buffalo Hunter Hunter&lt;/cite&gt;,&lt;a href=&quot;https://erikvorhes.com/notes/2026-10-horror-reading/#fn1&quot; id=&quot;fnref1&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;footnote &lt;/span&gt;&lt;sup class=&quot;footnote__ref&quot;&gt;1&lt;/sup&gt;&lt;/a&gt; and it’s a fantastic, grisly vampire novel set in New York City in 1978. It’s the kind of book that really needs to be read twice. Alas, my “to read” pile grows daily, so I’m not sure when that second read-through will happen for me. I’m reminded of the words of the Teacher:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Of making many books there is no end, and much study is a weariness of the flesh. (Ecclesiastes 12.12, &lt;abbr title=&quot;New Revised Standard Version (Updated Edition)&quot;&gt;NRSV&lt;/abbr&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Here are links to the books, if you want to track them down. They should hopefully be available in your local library, too, and if they aren’t, see whether your library system allows you to request the acquisition of books. (This is one of the many things I love about our local library.)&lt;/p&gt;
&lt;script src=&quot;https://bookshop.org/widgets.js&quot; data-type=&quot;list&quot; data-list-slug=&quot;the-horror&quot;&gt;&lt;/script&gt;
&lt;footer class=&quot;footnotes flow&quot;&gt;
&lt;h2 id=&quot;footnotes&quot;&gt;Footnotes&lt;/h2&gt;
&lt;ol&gt;
&lt;li class=&quot;flow&quot; id=&quot;fn1&quot;&gt;&lt;p&gt;To any authors who read this, note that at least one person will read your acknowledgements and follow some of the threads they offer. &lt;a href=&quot;https://erikvorhes.com/notes/2026-10-horror-reading/#fnref1&quot; class=&quot;footnote__backref&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;back to link to footnote 1&lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;↩&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/footer&gt;
</description>
      <pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Erik Vorhes</dc:creator>
      <guid>https://erikvorhes.com/notes/2026-10-horror-reading/</guid>
    </item>
    <item>
      <title>Twenty-five years after September 11, 2001</title>
      <link>https://erikvorhes.com/notes/twenty-five-years/</link>
      <description>&lt;p&gt;Imagine a world where the response to “they hate us because of our freedoms” had been a celebration of those freedoms, where the response to violence had been confident solidarity instead of fear. What if we had embraced our vulnerability and worked to lift everyone up and to &lt;em&gt;welcome&lt;/em&gt; the stranger?&lt;/p&gt;
&lt;p&gt;Instead we chose to respond to violence with violence — and to use the attack as pretext for unending war. We chose to respond in fear, to embrace nationalist codewords like “Homeland,” to build a sprawling and massive police and surveilance state. We’ve chosen concentration camps and arrests and deportations. There is a direct line from September 11, 2001, to &lt;a href=&quot;https://erikvorhes.com/notes/send-help/&quot;&gt;Operation Metro Surge&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I think about a lot of things on September 11. Today I’m thinking at least a bit on this famous line from Benjamin Franklin:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Those who would give up essential Liberty, to purchase a little temporary Safety, deserve neither Liberty nor Safety.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
      <pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate>
      <dc:creator>Erik Vorhes</dc:creator>
      <guid>https://erikvorhes.com/notes/twenty-five-years/</guid>
    </item>
    <item>
      <title>Accelerant</title>
      <link>https://erikvorhes.com/notes/accelerant/</link>
      <description>&lt;p&gt;There’s a constant flood of &lt;abbr title=&quot;artificial intelligence&quot;&gt;AI&lt;/abbr&gt;-related stuff in my world right now — both material generated by &lt;abbr title=&quot;large language models&quot;&gt;LLMs&lt;/abbr&gt; and all kinds of thoughts from people. I’m not sure what I have to add to the conversation that hasn’t already been said, but here are a few things anyway, as I contend with a present and future that affects my own work, not to mention the livelihoods of many others or the moral and ecological harms that the relentless pursuit of LLM-enabled technologies is causing and may bring about.&lt;/p&gt;
&lt;p&gt;When I was in college, ska was having a moment. One of the bands on the scene was Blue Meanies, an edgy ska-core group from Chicago. They had just released &lt;cite&gt;Kiss Your Ass Goodbye!&lt;/cite&gt; — which opens with “Acceleration 5000,” an angry song with intense percussion and aggressive horns. I was hooked. Take a listen:&lt;a href=&quot;https://erikvorhes.com/notes/accelerant/#fn1&quot; id=&quot;fnref1&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;footnote &lt;/span&gt;&lt;sup class=&quot;footnote__ref&quot;&gt;1&lt;/sup&gt;&lt;/a&gt;&lt;/p&gt;
&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; frameborder=&quot;0&quot; height=&quot;150&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/acceleration-5000/320897772?i=320897774&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;Until recently I thought this song had pretty run-of-the-mill “get excited” lyrics, stuff about the listener needing to get energy and the singer presenting the possibility of resistance, of having to “slow down,” to “dig … tracks into the ground.” And maybe that’s really all there is to it; songs don’t need to be profound. But then we get to a kind of bridge:&lt;a href=&quot;https://erikvorhes.com/notes/accelerant/#fn2&quot; id=&quot;fnref2&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;footnote &lt;/span&gt;&lt;sup class=&quot;footnote__ref&quot;&gt;2&lt;/sup&gt;&lt;/a&gt;&lt;/p&gt;
&lt;pre class=&quot;verse&quot;&gt;Why see you stand, frightened
You’re not your dog, frightened
Your stomach pulls, tightens
I think you’re mine&lt;/pre&gt;
&lt;p&gt;What’s going on here? We have animalistic fear, a tightening stomach and the revelation that the singer considers the listener a possession of some kind — given even more force by by the sudden move into a chant to “move like machine momentum.” There’s something uncomfortable here.&lt;/p&gt;
&lt;p&gt;The text is pretty sparse, and really I’m thinking about this song these days for reasons that were the purview of science fiction when the album was released. In an age of technological advancement that appears to be approaching terminal velocity, where venture capitalists are eager to extract everything for themselves and too many of us are willing to abet them (despite or because of our fears), what does it mean to “move like machine momentum / into the ground”? Can we slow down this thing? What if we don’t &lt;em&gt;want&lt;/em&gt; to slow it down? Will we burn?&lt;a href=&quot;https://erikvorhes.com/notes/accelerant/#fn3&quot; id=&quot;fnref3&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;footnote &lt;/span&gt;&lt;sup class=&quot;footnote__ref&quot;&gt;3&lt;/sup&gt;&lt;/a&gt;&lt;/p&gt;
&lt;footer class=&quot;footnotes flow&quot;&gt;
&lt;h2 id=&quot;footnotes&quot;&gt;Footnotes&lt;/h2&gt;
&lt;ol&gt;
&lt;li class=&quot;flow&quot; id=&quot;fn1&quot;&gt;&lt;p&gt;If you can’t access Apple Music, &lt;a href=&quot;https://youtu.be/PWrIJK34Xjs?si=rZK64XqrIUmAyHem&quot;&gt;the song is also available on YouTube&lt;/a&gt;. &lt;a href=&quot;https://erikvorhes.com/notes/accelerant/#fnref1&quot; class=&quot;footnote__backref&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;back to link to footnote 1&lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;↩&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class=&quot;flow&quot; id=&quot;fn2&quot;&gt;&lt;p&gt;I’m not sure I have the lyrics quite right here. Consulting the internet gives conflicting results, and my days of doing the bibliographic work to figure it out are years behind me; this is my best guess. &lt;a href=&quot;https://erikvorhes.com/notes/accelerant/#fnref2&quot; class=&quot;footnote__backref&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;back to link to footnote 2&lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;↩&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class=&quot;flow&quot; id=&quot;fn3&quot;&gt;&lt;p&gt;I’m not sure I have a consistent attitude towards LLMs. They’re incredibly useful for certain kinds of tedious, programmatic tasks, but they are far from useful for everying, even if we limit their use to the building of software and the analysis of data. Having to use them at work has forced me to think more carefully about planning and coordination — and communicating with my teammates and colleagues about what we want to do. I’m discoving that several skills I used to feel confident using have atrophied. So maybe it’s not all bad — but that could also be something I’m just telling myself. I wonder what and how much I’m losing and whether I’ll recognize it before it’s gone. Whatever I lose, will I gain anything in return? Will the cost be worth it? &lt;a href=&quot;https://erikvorhes.com/notes/accelerant/#fnref3&quot; class=&quot;footnote__backref&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;back to link to footnote 3&lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;↩&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/footer&gt;
</description>
      <pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator>Erik Vorhes</dc:creator>
      <guid>https://erikvorhes.com/notes/accelerant/</guid>
    </item>
    <item>
      <title>Beginning again, again</title>
      <link>https://erikvorhes.com/notes/beginning-again-again/</link>
      <description>&lt;p&gt;It’s been over a decade since I’ve written anything much longer than a tweet.&lt;a href=&quot;https://erikvorhes.com/notes/beginning-again-again/#fn1&quot; id=&quot;fnref1&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;footnote &lt;/span&gt;&lt;sup class=&quot;footnote__ref&quot;&gt;1&lt;/sup&gt;&lt;/a&gt; This is entirely my own doing; something always felt more important, or I convinced myself that writing my thinking down was not worth the trouble. There are so many lost thoughts, and I’d like to apologize to them, wherever they’ve gone.&lt;/p&gt;
&lt;p&gt;Times — and my own determination to write things down — have changed. The push to rely on generating everything through LLMs has reminded me that the act of writing is itself an important mode of thinking,&lt;a href=&quot;https://erikvorhes.com/notes/beginning-again-again/#fn2&quot; id=&quot;fnref2&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;footnote &lt;/span&gt;&lt;sup class=&quot;footnote__ref&quot;&gt;2&lt;/sup&gt;&lt;/a&gt; and there’s no better way to learn something than to attempt to write about it. This thing should be about the journey &lt;em&gt;and&lt;/em&gt; the destination.&lt;/p&gt;
&lt;p&gt;To kick things off, I ported a bunch of things over from &lt;a href=&quot;https://erikanderica.org/&quot;&gt;the family website&lt;/a&gt;, and I might consult &lt;a href=&quot;https://web.archive.org&quot;&gt;the wayback machine&lt;/a&gt; for things I’ve lost. I’ve also  included a few things I’ve thought about elsewhere, roughly in time with when I originally wrote them.&lt;a href=&quot;https://erikvorhes.com/notes/beginning-again-again/#fn3&quot; id=&quot;fnref3&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;footnote &lt;/span&gt;&lt;sup class=&quot;footnote__ref&quot;&gt;3&lt;/sup&gt;&lt;/a&gt; The site itself is (and probably always will be) a work in progress. I know there are rough edges, but it’s better to start and refine than to wait any longer.&lt;/p&gt;
&lt;p&gt;I can’t promise that anything on this little site will be any good, but then again, I’m doing this thing for &lt;em&gt;me&lt;/em&gt;. If you enjoy any of it, too? All the better.&lt;/p&gt;
&lt;footer class=&quot;footnotes flow&quot;&gt;
&lt;h2 id=&quot;footnotes&quot;&gt;Footnotes&lt;/h2&gt;
&lt;ol&gt;
&lt;li class=&quot;flow&quot; id=&quot;fn1&quot;&gt;&lt;p&gt;RIP, Twitter. &lt;a href=&quot;https://erikvorhes.com/notes/beginning-again-again/#fnref1&quot; class=&quot;footnote__backref&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;back to link to footnote 1&lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;↩&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class=&quot;flow&quot; id=&quot;fn2&quot;&gt;&lt;p&gt;With apologies to and appreciation of &lt;a href=&quot;https://www.jstor.org/stable/356095&quot;&gt;Janet Emig’s classic article on composition&lt;/a&gt;. &lt;a href=&quot;https://erikvorhes.com/notes/beginning-again-again/#fnref2&quot; class=&quot;footnote__backref&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;back to link to footnote 2&lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;↩&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class=&quot;flow&quot; id=&quot;fn3&quot;&gt;&lt;p&gt;It felt good to extract a couple things from the social media gardens. &lt;a href=&quot;https://erikvorhes.com/notes/beginning-again-again/#fnref3&quot; class=&quot;footnote__backref&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;back to link to footnote 3&lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;↩&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/footer&gt;
</description>
      <pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate>
      <dc:creator>Erik Vorhes</dc:creator>
      <guid>https://erikvorhes.com/notes/beginning-again-again/</guid>
    </item>
    <item>
      <title>On atrocities</title>
      <link>https://erikvorhes.com/notes/atrocities/</link>
      <description>&lt;p&gt;It’s hard to know what to say about all the terrible things happening in or created by the United States these days — disappearing immigrants in Minnesota and everywhere, covering up for years of sexual abuse, stripping trans people of their rights in Kansas, or bombing schools in Iran; the list goes on and on and on. I’m reminded of a quiet conversation from &lt;cite&gt;Andor&lt;/cite&gt;,&lt;a href=&quot;https://erikvorhes.com/notes/atrocities/#fn1&quot; id=&quot;fnref1&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;footnote &lt;/span&gt;&lt;sup class=&quot;footnote__ref&quot;&gt;1&lt;/sup&gt;&lt;/a&gt; between Karis Nemik and Cassian Andor:&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://erikvorhes.com/notes/atrocities/hS-XR9unyV-1280.avif 1280w&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://erikvorhes.com/notes/atrocities/hS-XR9unyV-1280.webp 1280w&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; data-pagefind-index-attrs=&quot;alt&quot; src=&quot;https://erikvorhes.com/notes/atrocities/hS-XR9unyV-1280.jpeg&quot; alt=&quot;Karis Nemik tells our hero what&#39;s up.&quot; width=&quot;1280&quot; height=&quot;536&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The pace of repression outstrips our ability to understand it. And that is the real trick of the Imperial thought machine. It’s easier to hide behind 40 atrocities than a single incident.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;footer class=&quot;footnotes flow&quot;&gt;
&lt;h2 id=&quot;footnotes&quot;&gt;Footnotes&lt;/h2&gt;
&lt;ol&gt;
&lt;li class=&quot;flow&quot; id=&quot;fn1&quot;&gt;&lt;p&gt;“The Axe Forgets” (season 1, episode 5) &lt;a href=&quot;https://erikvorhes.com/notes/atrocities/#fnref1&quot; class=&quot;footnote__backref&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;back to link to footnote 1&lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;↩&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/footer&gt;
</description>
      <pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate>
      <dc:creator>Erik Vorhes</dc:creator>
      <guid>https://erikvorhes.com/notes/atrocities/</guid>
    </item>
    <item>
      <title>Send help, quick</title>
      <link>https://erikvorhes.com/notes/send-help/</link>
      <description>&lt;p&gt;I was hoping I’d have this site up and running early this month, but I’ve been preoccupied with the occupation of Minneapolis, Saint Paul, and the rest of Minnesota. We’re doing our best to stand up to fascism, but it’s exhausting work, and we can use all the help we can get. Fortunately &lt;a href=&quot;https://naomikritzer.com/2026/01/21/how-to-help-if-you-are-outside-minnesota/&quot;&gt;Naomi Kritzer has guidance on how you can help&lt;/a&gt; our friends and family and neighbors.&lt;/p&gt;
</description>
      <pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate>
      <dc:creator>Erik Vorhes</dc:creator>
      <guid>https://erikvorhes.com/notes/send-help/</guid>
    </item>
    <item>
      <title>Focus!</title>
      <link>https://erikvorhes.com/notes/focus/</link>
      <description>&lt;p&gt;One of the cool things about &lt;a href=&quot;https://www.w3.org/Addressing/URL/4_2_Fragments.html&quot;&gt;the hash at the end of a URL&lt;/a&gt; is that it can target an ID on the current page and auto-scroll the window to that point on the page. You can even use CSS to style it with &lt;a href=&quot;https://w3c.github.io/csswg-drafts/selectors/#the-target-pseudo&quot;&gt;the &lt;code&gt;:target&lt;/code&gt; pseudo-class&lt;/a&gt;. This is a nice thing, especially on long or complicated pages.&lt;/p&gt;
&lt;p&gt;But it’s not perfect. If the target of the hash can’t receive focus&lt;a href=&quot;https://erikvorhes.com/notes/focus/#fn1&quot; id=&quot;fnref1&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;footnote &lt;/span&gt;&lt;sup class=&quot;footnote__ref&quot;&gt;1&lt;/sup&gt;&lt;/a&gt; and you hit &lt;kbd&gt;Tab&lt;/kbd&gt;, you won’t go to the next focusable element on the page after the thing you scrolled to.&lt;a href=&quot;https://erikvorhes.com/notes/focus/#fn2&quot; id=&quot;fnref2&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;footnote &lt;/span&gt;&lt;sup class=&quot;footnote__ref&quot;&gt;2&lt;/sup&gt;&lt;/a&gt; Instead, you’ll go to the &lt;em&gt;first&lt;/em&gt; thing on the page that can receive focus. This can be pretty disorienting!&lt;/p&gt;
&lt;p&gt;There are ways to fix the problem, though! The first is by tweaking your HTML to add a &lt;a href=&quot;https://html.spec.whatwg.org/multipage/interaction.html#attr-tabindex&quot;&gt;&lt;code&gt;tabindex&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h2&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;footnotes&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;tabindex&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;-1&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Footnotes&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here I’ve added &lt;code&gt;tabindex=&amp;quot;-1&amp;quot;&lt;/code&gt; to the &lt;code&gt;h2&lt;/code&gt; element so that the heading &lt;em&gt;programmatically&lt;/em&gt; focusable.&lt;a href=&quot;https://erikvorhes.com/notes/focus/#fn3&quot; id=&quot;fnref3&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;footnote &lt;/span&gt;&lt;sup class=&quot;footnote__ref&quot;&gt;3&lt;/sup&gt;&lt;/a&gt; The browser will focus the heading if the URL hash is &lt;code&gt;#footnotes&lt;/code&gt;. Now when you hit &lt;kbd&gt;Tab&lt;/kbd&gt;, you’ll focus on the next focusable element after the heading, and all is right with the world.&lt;/p&gt;
&lt;p&gt;We can enhance this approach by introducing a little JavaScript. There are plenty of instances where you might forget to include that handy &lt;code&gt;tabindex=&amp;quot;-1&amp;quot;&lt;/code&gt; &lt;em&gt;or&lt;/em&gt; you’re afraid you’ll override an already-focusable element’s &lt;code&gt;tabindex&lt;/code&gt; value. And if you’re working with a CMS or writing in a format that gets converted to HTML later, you might not have a straightforward way to do that work. To handle those scenarios, you can use something like this:&lt;a href=&quot;https://erikvorhes.com/notes/focus/#fn4&quot; id=&quot;fnref4&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;footnote &lt;/span&gt;&lt;sup class=&quot;footnote__ref&quot;&gt;4&lt;/sup&gt;&lt;/a&gt;&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/**
 * Focuses an element even if it isn&#39;t focusable.
 * @param {HTMLElement} target - element to focus
 */&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;focusTarget&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;// If the element already has focus&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;// we don&#39;t need to do anything&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;activeElement &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; target&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token comment&quot;&gt;// By default an element will have a `tabIndex` of -1&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;// but if it isn&#39;t explicitly set, it can&#39;t be focused&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;target&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;tabIndex &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;target&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getAttribute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;tabIndex&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    target&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setAttribute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;tabIndex&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;-1&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  target&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;focus&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;focusHash&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; hash &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; window&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;location&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;hash&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; target &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; hash &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;hash&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;target&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;focusTarget&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;target&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// If there&#39;s already a hash, let&#39;s focus it.&lt;/span&gt;
window&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;DOMContentLoaded&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; focusHash&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// If the hash changes, let&#39;s focus the new one.&lt;/span&gt;
window&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;hashchange&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; focusHash&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Several years ago I remember seeing something like this, but when I needed it again, I couldn’t find it. I hope I don’t lose it again this time!&lt;/p&gt;
&lt;footer class=&quot;footnotes flow&quot;&gt;
&lt;h2 id=&quot;footnotes&quot;&gt;Footnotes&lt;/h2&gt;
&lt;ol&gt;
&lt;li class=&quot;flow&quot; id=&quot;fn1&quot;&gt;&lt;p&gt;Which is the case for most HTML elements aside from &lt;code&gt;a&lt;/code&gt; and form controls, sigh. &lt;a href=&quot;https://erikvorhes.com/notes/focus/#fnref1&quot; class=&quot;footnote__backref&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;back to link to footnote 1&lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;↩&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class=&quot;flow&quot; id=&quot;fn2&quot;&gt;&lt;p&gt;And in some browsers, if focus can’t be set, it won’t even scroll you to the right point on the page. &lt;a href=&quot;https://erikvorhes.com/notes/focus/#fnref2&quot; class=&quot;footnote__backref&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;back to link to footnote 2&lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;↩&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class=&quot;flow&quot; id=&quot;fn3&quot;&gt;&lt;p&gt;You could even use &lt;code&gt;tabindex=&amp;quot;0&amp;quot;&lt;/code&gt; if you want to ensure that the element is always focusable by keyboard. &lt;a href=&quot;https://erikvorhes.com/notes/focus/#fnref3&quot; class=&quot;footnote__backref&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;back to link to footnote 3&lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;↩&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class=&quot;flow&quot; id=&quot;fn4&quot;&gt;&lt;p&gt;I’ve also made this available as a &lt;a href=&quot;https://gist.github.com/erikvorhes/2ceb77788b9db10c89fd7200440f2de8&quot;&gt;GitHub Gist&lt;/a&gt;. &lt;a href=&quot;https://erikvorhes.com/notes/focus/#fnref4&quot; class=&quot;footnote__backref&quot;&gt;&lt;span class=&quot;visually-hidden&quot;&gt;back to link to footnote 4&lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;↩&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/footer&gt;
</description>
      <pubDate>Sat, 25 Feb 2023 00:00:00 GMT</pubDate>
      <dc:creator>Erik Vorhes</dc:creator>
      <guid>https://erikvorhes.com/notes/focus/</guid>
    </item>
    <item>
      <title>Contagion</title>
      <link>https://erikvorhes.com/notes/contagion/</link>
      <description>&lt;p&gt;I still remember September 11, 2001, and its aftermath vividly; hell, we’re still dealing with the fallout of a response shrouded in fear and endless revenge. But these days I’m much more concerned about how around 3,000 people are dying every couple days in large part because our president* has repeatedly lied about the pandemic and hampered our ability to deal with it effectively.&lt;/p&gt;
&lt;p&gt;But what would you expect from a guy who almost 19 years ago publicly boasted (and lied) that now he had the tallest building in Manhattan and who not even 6 months ago said, “I don’t take any responsibility at all,” for his administration’s failed response to the pandemic?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://erikvorhes.com/notes/lycidas/&quot;&gt;Once again&lt;/a&gt; I am reminded of Milton’s “Lycidas”:&lt;/p&gt;
&lt;pre class=&quot;verse&quot;&gt;The hungry sheep look up and are not fed,
But swoll’n with wind, and the rank mist they draw,
Rot inwardly, and foul contagion spread.&lt;/pre&gt;
</description>
      <pubDate>Fri, 11 Sep 2020 00:00:00 GMT</pubDate>
      <dc:creator>Erik Vorhes</dc:creator>
      <guid>https://erikvorhes.com/notes/contagion/</guid>
    </item>
    <item>
      <title>Cosmic ray detection</title>
      <link>https://erikvorhes.com/notes/cosmic-rays/</link>
      <description>&lt;p&gt;One of my favorite things about Abram &amp;amp; Zora’s school is that students are encouraged to develop Personal Learning Projects. This year Abram was interested in cosmic rays, partly inspired by our listening to the “&lt;a href=&quot;https://radiolab.org/podcast/bit-flip&quot;&gt;Bit Flip&lt;/a&gt;” episode of &lt;cite&gt;Radiolab&lt;/cite&gt;. So we used a bunch of household materials to build a cloud chamber, acquired some dry ice, found the darkest room in the house, and set to recording. The following video is the part that’s easy to share.&lt;/p&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/LFq3Crbh6bI?si=PU8Y8Ott0EbvrWqs&quot; title=&quot;Cosmic Rays (YouTube video player)&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;All told we observed: 8 &lt;a href=&quot;https://en.wikipedia.org/wiki/Muon&quot;&gt;muons&lt;/a&gt;, 3 &lt;a href=&quot;https://en.wikipedia.org/wiki/Alpha_particle&quot;&gt;alpha particles&lt;/a&gt;, 3 &lt;a href=&quot;https://en.wikipedia.org/wiki/Particle_decay&quot;&gt;particle decays&lt;/a&gt;, and 6 &lt;a href=&quot;https://en.wikipedia.org/wiki/Electron&quot;&gt;electrons&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://en.wikipedia.org/wiki/Positron&quot;&gt;positrons&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Tue, 28 May 2019 00:00:00 GMT</pubDate>
      <dc:creator>Erik Vorhes</dc:creator>
      <guid>https://erikvorhes.com/notes/cosmic-rays/</guid>
    </item>
    <item>
      <title>They are sped</title>
      <link>https://erikvorhes.com/notes/lycidas/</link>
      <description>&lt;p&gt;Fifteen years ago I worked as an administrative assistant at an aerospace company in Grand Rapids, Michigan, while Erica was studying to become a pastor. I supported the division that wrote software for flight management computers, including the Boeing 737. It was just a job; I aspired to other things. I wanted to teach literature. So in an effort to make myself appear more well-rounded for graduate school applications, I had enrolled in an advanced undergrad class on John Milton’s poetry that met Tuesday and Thursday evenings at Michigan State University.&lt;/p&gt;
&lt;p&gt;Around this time fifteen years ago, I would’ve arrived home after class, which we still had because (in the worlds of our professor) we shouldn’t let fear dominate what we did with our lives. Most of that day was a fog. I remember that morning frantically trying to confirm what we’d heard, that planes had been flown into both towers of the World Trade Center, that another plane had crashed into the Pentagon, and realizing that our infrastructure couldn’t handle the information demand. I remember crowding with my coworkers into conference rooms, watching the fruits of our labor having been used for destructive ends. I remember learning which of my colleagues had family in New York, whose children had promising careers in the World Trade Center, who could not be reached. I remember cries of horror as the towers collapsed before our eyes.&lt;/p&gt;
&lt;p&gt;And so I ended up going to class, probably learned some insightful things about Milton’s poetry and the period leading up to the English Revolution. I’m pretty sure we didn’t read “Lycidas” that day, but it’s what sticks with me when I think about September 11, 2001, and its aftermath. The poem is an elegy for one of Milton’s classmates, who died young. It’s a pretty standard poem for the period, elevated by Milton’s near-sublime ability to craft poetry. But near the end of the poem, something weird happens: St. Peter arrives — and he doesn’t mourn Lycidas. Instead he excoriates the Church of England and the monarchy for their failings and warns of existential threats to Christianity in England.&lt;/p&gt;
&lt;p&gt;I think of St. Peter’s words in relationship to September 11, 2001, not because of the threat to a Christian nation, however. The United States isn’t a Christian nation, even if its origins can be traced to something more than nominally Christian. Instead, this Peter’s words come to me because of what has happened since. The tragedy of fifteen years ago has been used to justify an unjust war, to create ineffective security theater, and to consolidate power. Meanwhile we have failed to meet the needs of the people. We’ve claimed to do the right thing while we’ve done the wrong thing. It’s hard to keep track of all the misdeeds we’ve justified in the name of 9/11.&lt;/p&gt;
&lt;p&gt;Originally I was going to post these lines without context, but there you go.&lt;/p&gt;
&lt;pre class=&quot;verse&quot;&gt;Last came, and last did go,
The pilot of the Galilean lake,
Two massy keys he bore of metals twain,
(The golden opes, the iron shuts amain)
He shook his mitred locks, and stern bespake,
How well could I have spared for thee, young swain,
Enow of such as for their bellies’ sake,
Creep and intrude, and climb into the fold?
Of other care they little reckoning make,
Than how to scramble at the shearers’ feast,
And shove away the worthy bidden guest;
Blind mouths! that scarce themselves know how to hold
A sheep-hook, or have learned aught else the least
That to the faithful herdman’s art belongs!
What recks it them? What need they? They are sped;
And when they list, their lean and flashy songs
Grate on their scrannel pipes of wretched straw,
The hungry sheep look up, and are not fed,
But swoll’n with wind, and the rank mist they draw,
Rot inwardly, and foul contagion spread:
Besides what the grim wolf with privy paw
Daily devours apace, and nothing said,
But that two-handed engine at the door,
Stands ready to smite once, and smite no more. (108–131)&lt;/pre&gt;
</description>
      <pubDate>Sun, 11 Sep 2016 00:00:00 GMT</pubDate>
      <dc:creator>Erik Vorhes</dc:creator>
      <guid>https://erikvorhes.com/notes/lycidas/</guid>
    </item>
  </channel>
</rss>