<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" 
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Jason A. Heppler</title>
    <link>https://jasonheppler.org/</link>
    <description>Recent content on Jason A. Heppler</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>jason@jasonheppler.org (Jason Heppler)</managingEditor>
    <webMaster>jason@jasonheppler.org (Jason Heppler)</webMaster>
    <copyright>2008-2024</copyright>
    
    
    <atom:link href="https://jasonheppler.org/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Restoring Old Digital History</title>
      <link>https://jasonheppler.org/2026/03/24/restoring-old-digital-history/</link>
      <pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>digital-history</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2026/03/24/restoring-old-digital-history/</guid>
      <description>&lt;p&gt;If there&amp;rsquo;s one thing I&amp;rsquo;ve come to appreciate about generative AI, it&amp;rsquo;s the ability to automate routine things. One of my digital history sites&amp;mdash;&lt;a href=&#34;http://framingredpower.org/&#34;&gt;the first one I ever made&lt;/a&gt;&amp;mdash;broke at some point. It&amp;rsquo;s an old site that really should&amp;rsquo;ve always been a static site, but static site generators were not quite a thing when I first made this project. Instead, I had a mix of HTML and PHP that assembled the site.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;If there&amp;rsquo;s one thing I&amp;rsquo;ve come to appreciate about generative AI, it&amp;rsquo;s the ability to automate routine things. One of my digital history sites&amp;mdash;&lt;a href=&#34;http://framingredpower.org/&#34;&gt;the first one I ever made&lt;/a&gt;&amp;mdash;broke at some point. It&amp;rsquo;s an old site that really should&amp;rsquo;ve always been a static site, but static site generators were not quite a thing when I first made this project. Instead, I had a mix of HTML and PHP that assembled the site.&lt;/p&gt;
&lt;p&gt;So a few weeks ago, I posed Claude a task: take this site and convert it into Hugo. That work finished within an hour&amp;mdash;a task that most certainly would&amp;rsquo;ve taken me a few weeks to work through, and much of that work pretty tedious. I&amp;rsquo;ve since had Claude&amp;rsquo;s help in converting all of my digital history projects into Hugo sites. They&amp;rsquo;re now easier to maintain, easier to deploy (I&amp;rsquo;ve moved all of my sites to Cloudflare, which deploys from a GitHub commit), and should stick around a lot longer.&lt;/p&gt;
&lt;p&gt;Here are the sites I&amp;rsquo;ve updated in the past month.&lt;/p&gt;
&lt;h2 id=&#34;framing-red-power&#34;&gt;&lt;a href=&#34;https://framingredpower.org&#34;&gt;Framing Red Power&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A companion website I created for my Master&amp;rsquo;s thesis, Framing Red Power sought to analyze media coverage of the Trail of Broken Treaties protest in 1972 that culminated in Indigenous activists occupying the Bureau of Indian Affairs. With Claude&amp;rsquo;s help I fixed up a number of things.&lt;/p&gt;
&lt;p&gt;First, the site had completely broken and was only providing unstyled HTML. As part of the Hugo conversion, I asked Claude to also add in a modern CSS framework and slightly modernized the design. The site, otherwise, remains exactly the same as it did when I launched it in 2009.&lt;/p&gt;
&lt;p&gt;The other big fix was to reconstitute text analysis tools that stopped working ages ago. At one point &lt;a href=&#34;https://cdrh.unl.edu/person/brian-l-pytlik-zillig/&#34;&gt;Brian Pytlik Zillig&lt;/a&gt; at the &lt;a href=&#34;https://cdrh.unl.edu/&#34;&gt;Center for Digital Research in the Humanities&lt;/a&gt; had developed a tool called TokenX (&lt;a href=&#34;https://dh-abstracts.library.virginia.edu/works/751&#34;&gt;for example&lt;/a&gt;) for running text analysis and building visualizations, but it&amp;rsquo;s been offline for quite some time. So, &lt;a href=&#34;https://framingredpower.org/sources/text-analysis/&#34;&gt;I rebuilt the text analysis section&lt;/a&gt; of the site with Observable and recreated some of the visualizations that I&amp;rsquo;d long lost. I also updated &lt;a href=&#34;https://framingredpower.org/sources/protestmap/&#34;&gt;the map interface&lt;/a&gt;, which once relied on Google My Maps but now is self-contained using Leaflet. I created &lt;a href=&#34;https://framingredpower.org/sources/text-analysis-methods/&#34;&gt;a methodologies page&lt;/a&gt; about creating these visualization as well.&lt;/p&gt;
&lt;p&gt;I consider Framing Red Power a completed research project.&lt;/p&gt;
&lt;h2 id=&#34;heading&#34;&gt;&lt;a href=&#34;https://progressivewildwest.org/&#34;&gt;&amp;ldquo;Self-sustaining and a good citizen&amp;rdquo;:  William F. Cody and the Progressive Wild West&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I was once the project manager for the &lt;a href=&#34;https://codyarchive.org&#34;&gt;William F. Cody Archive&lt;/a&gt; and a research affiliate with the &lt;a href=&#34;https://centerofthewest.org/&#34;&gt;Buffalo Bill Center of the West&lt;/a&gt; as Doug Seefeldt, Frank Christianson, Jeremy Johnston, and a few of my graduate school colleagues aimed to launch &lt;a href=&#34;https://www.codystudies.org/&#34;&gt;Cody Studies&lt;/a&gt; to examine the life and legacy of William F. Cody. In this role I pursued research on Indigenous peoples employed by his Wild West exhibition, resulting in the project above. I argued that while other scholars have suggested that employment with Cody allowed Indigenous peoples to continue practicing in cultural and religious traditions otherwise outlawed on reservations, Cody saw his exhibition nevertheless as a potential vehicle for the Progressive project of &amp;ldquo;civilizing&amp;rdquo; Native Americans.&lt;/p&gt;
&lt;p&gt;The first step here was getting the site converted to Hugo from Jekyll, which was pretty straightforward. The bigger task was to update a section of the site I called a &lt;a href=&#34;https://progressivewildwest.org/concept-map/&#34;&gt;concept map of narrative themes&lt;/a&gt;: a way of visualizing &lt;a href=&#34;https://progressivewildwest.org/1913/07/28/letter-from-john-r.-brennan-to-cato-sells/&#34;&gt;annotations&lt;/a&gt; across primary sources that served to collect together pieces of evidence that drove my argument. Here&amp;rsquo;s the kicker, though: this piece of scholarly work was two parts, where annotations existed in the transcribed sources and then the visualization was a hand-coded HTML page of those annotations. Nothing was automated, although that was always the idea; it was a tremendous amount of work.&lt;/p&gt;
&lt;p&gt;Hugo, however, has allowed me to finally automate this visualization. With Claude&amp;rsquo;s assistance, I replaced all my hand annotations with Hugo shortcodes that handled the annotations in the documents and allowed me to derive that data via a Python script. I finally made this work the way I&amp;rsquo;d always wanted to (at the time I&amp;rsquo;d played with ideas of using XML and XSLT but never fully got around to it, thankfully). This has been a tremendously helpful thing to have.&lt;/p&gt;
&lt;p&gt;The site currently exists exactly as it did when I published it in 2012, but I am returning to this project as I do fresh research. Having it in Hugo will make new additions much easier.&lt;/p&gt;
&lt;h2 id=&#34;machines-in-the-valley&#34;&gt;&lt;a href=&#34;https://machinesinthevalley.org&#34;&gt;Machines in the Valley&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Machines in the Valley is a companion website to my book. This one I hand-converted from Jekyll to Hugo myself a couple of years ago, but did turn to Claude recently to just have it do a once-over on the design and CSS work (which did fix a few things that I&amp;rsquo;d broke).&lt;/p&gt;
&lt;p&gt;When I converted this to Hugo in 2024 right as my book was published, I&amp;rsquo;d moved the CSS from Bootstrap to Tailwind in addition to getting things into a new static site generator. Doing that work also meant some slight layout changes that helped let the visualizations take over the browser window in a way that I felt gave readers a better viewport for working with the visualizations. I also took the time to clean up a few visualizations and create two new ones based on data I&amp;rsquo;d collected but never got around to publishing.&lt;/p&gt;
&lt;p&gt;I consider this project done.&lt;/p&gt;
&lt;h2 id=&#34;what-is-digital-humanities&#34;&gt;&lt;a href=&#34;https://whatisdigitalhumanities.com/&#34;&gt;What Is Digital Humanities?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The most popular thing I&amp;rsquo;ve ever made, which takes definitions from past Day of DH events and presents a random definition each time you visit the page or ask for a new definition. Perpetual answers to the perpetual question, as I say.&lt;/p&gt;
&lt;p&gt;No real updates here from coding agents, just a note that a few years ago I rewrote some of the randomization scripts and added a button refresh to get new definitions on demand. This, also, is on Cloudflare now. I guess this project is done?&lt;/p&gt;
&lt;h2 id=&#34;jasonhepplerorg&#34;&gt;&lt;a href=&#34;https://jasonheppler.org&#34;&gt;JasonHeppler.org&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;While we&amp;rsquo;re at it, I&amp;rsquo;ll reiterate that I&amp;rsquo;ve migrated this website to Cloudflare in addition to &lt;a href=&#34;https://jasonheppler.org/2026/03/02/a-new-design-for-readability/&#34;&gt;a pretty major code audit&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;These updates weren&amp;rsquo;t just about tidying up or fixing old projects, though&amp;mdash;they&amp;rsquo;re about the broader challenge of keeping digital work alive. Part of my interest here is related to my work at &lt;a href=&#34;https://rrchnm.org&#34;&gt;RRCHNM&lt;/a&gt;&amp;mdash;we have, after all, thirty-plus years of projects and some subset of those projects are ones we are committed to sustaining. Among the hats I wear at the Center, one is aiding with our sustainability work. As part of that effort we&amp;rsquo;ve &lt;a href=&#34;https://sustainabledh.org/&#34;&gt;tried to make sites static&lt;/a&gt; so they remain accessible and usable: some of those are simple &lt;code&gt;wget&lt;/code&gt; workflows that we lightly clean up and serve, but others are entire conversions from something database-driven like Omeka or Wordpress to Hugo.&lt;/p&gt;
&lt;p&gt;I want my digital history work to stick around, and plain old HTML is the most sustainable format we currently have for the Internet. Getting these old projects into a more modern shape feels great.&lt;/p&gt;
</content:encoded>
      
    </item>
    <item>
      <title>Vibing Digital History</title>
      <link>https://jasonheppler.org/2026/03/09/vibing-digital-history/</link>
      <pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>artificial-intelligence</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2026/03/09/vibing-digital-history/</guid>
      <description>&lt;p&gt;One thing I&amp;rsquo;ve been thinking about is a persistent critique&amp;mdash;one I&amp;rsquo;ve expressed myself and think is completely valid&amp;mdash;that code generated by Claude or Codex immediately becomes technical debt. That is, it&amp;rsquo;s tantamount to producing spaghetti or legacy code that you cannot understand because you did not write it (which, of course, is &lt;a href=&#34;https://jasonheppler.org/2025/12/22/generative-ai-and-the-work-of-history/&#34;&gt;a similar concern&lt;/a&gt; I have about generative AI producing things like historiographical essays).&lt;/p&gt;
&lt;p&gt;But as my pal Lincoln Mullen &lt;a href=&#34;https://lincolnmullen.com/blog/behind-ahead/&#34;&gt;just wrote&lt;/a&gt;, the barrier to entry for most things we do in digital history&amp;mdash;building websites, creating maps, designing data visualizations, preparing data&amp;mdash;can be reduced considerably. I&amp;rsquo;ve spent my career building these kinds of skills to do this kind of work, and now a machine can do them in a fraction of the time it takes me.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; Here&amp;rsquo;s an example.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;One thing I&amp;rsquo;ve been thinking about is a persistent critique&amp;mdash;one I&amp;rsquo;ve expressed myself and think is completely valid&amp;mdash;that code generated by Claude or Codex immediately becomes technical debt. That is, it&amp;rsquo;s tantamount to producing spaghetti or legacy code that you cannot understand because you did not write it (which, of course, is &lt;a href=&#34;https://jasonheppler.org/2025/12/22/generative-ai-and-the-work-of-history/&#34;&gt;a similar concern&lt;/a&gt; I have about generative AI producing things like historiographical essays).&lt;/p&gt;
&lt;p&gt;But as my pal Lincoln Mullen &lt;a href=&#34;https://lincolnmullen.com/blog/behind-ahead/&#34;&gt;just wrote&lt;/a&gt;, the barrier to entry for most things we do in digital history&amp;mdash;building websites, creating maps, designing data visualizations, preparing data&amp;mdash;can be reduced considerably. I&amp;rsquo;ve spent my career building these kinds of skills to do this kind of work, and now a machine can do them in a fraction of the time it takes me.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; Here&amp;rsquo;s an example.&lt;/p&gt;
&lt;p&gt;I am in the throes of a research project for a book on the politics around land, agriculture, environmentalism, and land management on the Great Plains. It occurred to me recently that I need to stretch my timeline backwards a bit to the Bankhead-Jones Act of 1937. I&amp;rsquo;ll save a fuller history for some other time, but in short: Bankhead-Jones empowered the federal government to purchase just over 11 million acres of farmland deemed &amp;ldquo;submarginal.&amp;rdquo; The administration of the program traveled from the Bureau of Agricultural Economics until 1938, to the Soil Conservation Service until 1953, to the U.S. Forest Service which continues the administration of these lands today. Importantly, however, this established a federal presence across a region that had been almost entirely in private hands.&lt;/p&gt;
&lt;p&gt;I wanted to see these lands, in part because one thing that&amp;rsquo;s complicated about writing this regional history I&amp;rsquo;m working on is the quilted patchwork of public and private land ownership and management that happens on the grasslands. So I asked &lt;a href=&#34;https://code.claude.com/docs/en/overview&#34;&gt;Claude&lt;/a&gt;: without any input from me, find the data and make this map. It took about fifteen minutes.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://jasonheppler.org/2026/03/09/vibing-digital-history/bankhead-jones-map.png&#34;
       alt=&#34;Map of land subject to the Bankhead-Jones Farm Tenant Act of 1937&#34;
       width=&#34;2880&#34;
       height=&#34;1488&#34;
       loading=&#34;lazy&#34;
       decoding=&#34;async&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://jasonheppler.org/projects/bankhead/&#34;&gt;Here&amp;rsquo;s the interactive version&lt;/a&gt;. This is the kind of thing I&amp;rsquo;ve been building for years&amp;mdash;an interactive map of data to understand more clearly how something worked or influenced a place. A map of this nature would&amp;rsquo;ve taken me, at best, half a day: finding the data, doing any data formatting necessary for a web map, making the website, making the map filterable or interactive. Claude did everything with no input from me in fifteen minutes.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Generative AI is really bad at doing history. But it &lt;em&gt;can&lt;/em&gt; enable me to do good history.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Back to technical debt. In something like this I think it matters a lot less about whether I know how this was made. First, the code is small enough that it&amp;rsquo;s easy for me to know what it did. And, frankly, generative AI (given the right prompts) is very disciplined about documenting code. Second, this isn&amp;rsquo;t a big system. If I were working on software for a bank, a large Internet service company, or Apple, that&amp;rsquo;d be one thing&amp;mdash;I think the time investment perhaps doesn&amp;rsquo;t pay off as well because you need to really pay attention to what coding agents are doing.&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;The point here is that if these tools are enabling a software developer with a decade of experience in digital humanities to create things in a fraction of the time it once took, then these tools are phenomenally &lt;em&gt;empowering&lt;/em&gt; for someone just starting out or with almost no coding experience at all. In this case I think there really isn&amp;rsquo;t a debt: it&amp;rsquo;s a small or one-off visualization, not a complex system. Rather than a debt, this is an investment in one&amp;rsquo;s intellectual work. The rote or routine work can free up your time to focus on the &lt;em&gt;history&lt;/em&gt; rather than the &lt;em&gt;technology&lt;/em&gt;. Not to speak for my fellow digital historians, but I think that&amp;rsquo;s been the point this whole time: the technology was a means to an end&amp;mdash;of doing new kinds of history that we couldn&amp;rsquo;t do (at least, not as easily) without digital tools. Generative AI has shifted this considerably.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I find this predicament both humbling but also exhilarating. If doing less of the heavy tech work means I can do more of the history work, I think that&amp;rsquo;s a great leap in the right direction.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;If I intend to do more with this map I&amp;rsquo;d probably take over the design work on this since I like doing that sort of thing. But the routine work of setting up the map and data means I can move on to things more intellectually satisfying.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;Coding agents are good, but not great. I still frequently catch things from unused variables it assigned to more efficient ways of achieving a solution. The agents still tend to be rather boilerplate in their solutions&amp;mdash;but that&amp;rsquo;s not always a bad thing.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content:encoded>
      
    </item>
    <item>
      <title>The Obsidian-Hugo Workflow</title>
      <link>https://jasonheppler.org/2026/03/05/the-obsidian-hugo-workflow/</link>
      <pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>tech-life</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2026/03/05/the-obsidian-hugo-workflow/</guid>
      <description>&lt;p&gt;I wanted to jot down my current workflow for this website. I mentioned in my recent post on the redesign of this site that I have a new workflow in place where I can do everything right from the comfort of Obsidian. To get this to work I had a few things to set up first.&lt;/p&gt;
&lt;p&gt;While the following might seem slightly complicated (and certainly it is more techy than just running a WordPress website), it&amp;rsquo;s really just three pieces: an Obsidian vault that just opens my Hugo folder; GitHub for the files; Cloudflare for the deployment and hosting.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;I wanted to jot down my current workflow for this website. I mentioned in my recent post on the redesign of this site that I have a new workflow in place where I can do everything right from the comfort of Obsidian. To get this to work I had a few things to set up first.&lt;/p&gt;
&lt;p&gt;While the following might seem slightly complicated (and certainly it is more techy than just running a WordPress website), it&amp;rsquo;s really just three pieces: an Obsidian vault that just opens my Hugo folder; GitHub for the files; Cloudflare for the deployment and hosting.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Obsidian → GitHub → Cloudflare&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;setting-up-the-vault&#34;&gt;Setting up the Vault&lt;/h2&gt;
&lt;p&gt;To get this system to play nicely with Hugo, I had a few things to adjust. In settings:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Under &lt;strong&gt;Files and Links&lt;/strong&gt;, toggle off wikilinks so you can use standard markdown links.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;New link format&lt;/strong&gt; should be set to &amp;ldquo;Path from current file.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Install the &lt;a href=&#34;https://github.com/Vinzent03/obsidian-git&#34;&gt;Git plugin&lt;/a&gt;. Make sure git is active in your site&amp;rsquo;s folder.&lt;/li&gt;
&lt;li&gt;I use Hugo page bundling to keep images with posts (and take advantage of Hugo&amp;rsquo;s image processing should I need it). In Obsidian, I set the &lt;strong&gt;Default location for new attachments&lt;/strong&gt; to &amp;ldquo;Same folder as current file&amp;rdquo; to make this work.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To keep git (and Hugo) happy, &lt;code&gt;.obsidian/&lt;/code&gt; should be included in your &lt;code&gt;.gitignore&lt;/code&gt;. That directory churns constantly and you don&amp;rsquo;t want git to clobber what&amp;rsquo;s there. Similarly, adding &lt;code&gt;.obsidian&lt;/code&gt; to Hugo&amp;rsquo;s &lt;code&gt;ignoreFiles&lt;/code&gt; configuration means &lt;code&gt;hugo server&lt;/code&gt; doesn&amp;rsquo;t try and constantly render changes in that directory when watching for file changes. If you wanted, you could also exclude some of the other Hugo directories that don&amp;rsquo;t deal with content. For example, you might set Obsidian to exclude &lt;code&gt;layouts/&lt;/code&gt;, &lt;code&gt;assets/&lt;/code&gt;, &lt;code&gt;static/&lt;/code&gt;, and other Hugo directories from the file browser so the vault feels like a writing environment rather than a code project.&lt;/p&gt;
&lt;p&gt;The other change is I had to bulk update all of my tags to use kebab-case since Obsidian doesn&amp;rsquo;t accept tags with spaces in them. This actually works great: I get the auto-complete of Obsidian so I don&amp;rsquo;t duplicate tags, and in the front end of Hugo I can still render the tags with spaces in them.&lt;/p&gt;
&lt;h2 id=&#34;github-and-cloudflare&#34;&gt;GitHub and Cloudflare&lt;/h2&gt;
&lt;p&gt;This couldn&amp;rsquo;t be easier. The Cloudflare integration with GitHub is fantastic. It&amp;rsquo;s just a matter of setting up &lt;a href=&#34;https://pages.cloudflare.com/&#34;&gt;Cloudflare Pages&lt;/a&gt; and directing it to the correct repository. To build the site I pass &lt;code&gt;hugo&lt;/code&gt; as a build command within Cloudflare&amp;rsquo;s Pages settings. Cloudflare does the rest. And Cloudflare fits with one of &lt;a href=&#34;https://jasonheppler.org/2026/03/02/a-new-design-for-readability/&#34;&gt;my other goals&lt;/a&gt;, which was driving down the carbon output of this website. Since Cloudflare is &lt;a href=&#34;https://blog.cloudflare.com/understand-and-reduce-your-carbon-impact-with-cloudflare/&#34;&gt;committed to running their systems on 100% renewable energy&lt;/a&gt;, this helps my goal considerably.&lt;/p&gt;
&lt;p&gt;One of the most satisfying parts of this whole setup is I can publish new posts straight from Obsidian. The Git plugin means I can hit ⌘ + P and choose &lt;strong&gt;Git: Commit&lt;/strong&gt; to prepare a post for deployment, and similarly ⌘ + P and choose &lt;strong&gt;Git: Push&lt;/strong&gt; after a commit to run the actual deployment (or, more simply if I&amp;rsquo;m just ready for a post to go right away, &lt;strong&gt;Git: Commit-and-sync&lt;/strong&gt;). All from the comfort of my Obsidian vault. No terminals, no rsync, no VS Code.&lt;/p&gt;
&lt;p&gt;The slightly scary part of this was moving my DNS records&amp;mdash;especially since my email is tied to my domain, I really didn&amp;rsquo;t want to screw that up. I had to have some conversations with &lt;a href=&#34;https://claude.ai&#34;&gt;Claude&lt;/a&gt; to make sure I understood it all, but it didn&amp;rsquo;t lead me astray and even helped troubleshoot a mistake I made.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: One additional thing I&amp;rsquo;d meant to mention is each of the components of my website that I update exist as their own Hugo folder. So, essays are inside a &lt;code&gt;/blog/&lt;/code&gt; folder, my shorter notes exist in a &lt;code&gt;/notes/&lt;/code&gt; folder, commonplace in my &lt;code&gt;/links/&lt;/code&gt; folder, and my reading log is in my &lt;code&gt;/books/&lt;/code&gt; folder. The books content is quite simple and, really, only reads the YAML content contained in the markdown files unless I&amp;rsquo;ve indicated there exists a review inside the file (in which case, a book gets a &lt;code&gt;reviewed&lt;/code&gt; tag and either points to the external review or opens the page here on the site to read a review.) Treating my Hugo website folder as an Obsidian vault also means I can access all other other pages: my about page, publications, teaching, and so on are all accessible within Obsidian as well.&lt;/p&gt;
</content:encoded>
      
    </item>
    <item>
      <title>Computers Can&#39;t Surprise</title>
      <link>https://jasonheppler.org/2026/03/02/computers-cant-surprise/</link>
      <pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>artificial-intelligence</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2026/03/02/computers-cant-surprise/</guid>
      <description>&lt;p&gt;Richard Beard, &amp;ldquo;&lt;a href=&#34;https://aeon.co/essays/sure-ai-can-do-writing-but-memoir-not-so-much&#34;&gt;Computers Can&amp;rsquo;t Surprise&lt;/a&gt;&amp;rdquo;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To escape the dead man’s handle of cliché, readers live in hope for organic associations, speculative leaps and surprise inferences. Whereas, to an AI, which is fed the answer before the question, ‘surprise’ remains an elusive concept.&lt;/p&gt;
&lt;p&gt;. . .&lt;/p&gt;
&lt;p&gt;An LLM’s calculation of the most likely sequence of words is the &lt;em&gt;least&lt;/em&gt; likely way to create great writing. Anyone working at a more emotionally engaged level than statistical probability, genuinely creating new work, has a better chance of resonating with readers, however that affinity is expressed.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Richard Beard, &amp;ldquo;&lt;a href=&#34;https://aeon.co/essays/sure-ai-can-do-writing-but-memoir-not-so-much&#34;&gt;Computers Can&amp;rsquo;t Surprise&lt;/a&gt;&amp;rdquo;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To escape the dead man’s handle of cliché, readers live in hope for organic associations, speculative leaps and surprise inferences. Whereas, to an AI, which is fed the answer before the question, ‘surprise’ remains an elusive concept.&lt;/p&gt;
&lt;p&gt;. . .&lt;/p&gt;
&lt;p&gt;An LLM’s calculation of the most likely sequence of words is the &lt;em&gt;least&lt;/em&gt; likely way to create great writing. Anyone working at a more emotionally engaged level than statistical probability, genuinely creating new work, has a better chance of resonating with readers, however that affinity is expressed.&lt;/p&gt;
&lt;p&gt;. . .&lt;/p&gt;
&lt;p&gt;. . . the rest of us can defy AI creep by defending and encouraging the human ambition to make art, unassisted, whether successful or otherwise. Art is an affirmation of human existence, the transmission and reception of messages about encounter and connection. One inner life can touch another and, for best results, nurture a creative process that no LLM can imitate.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I keep coming back to this idea: there are things that generative, agentic systems are very good at. But creativity remains one of the things that will likely never be &amp;ldquo;solvable&amp;rdquo; by LLMs because they&amp;rsquo;re only as good as what they&amp;rsquo;re trained on. They cannot create new things because, by definition, their outputs are simply probabilistic orderings of words that I described as &amp;ldquo;&lt;a href=&#34;https://jasonheppler.org/2025/12/22/generative-ai-and-the-work-of-history/&#34;&gt;sentenced shaped&lt;/a&gt;.&amp;rdquo; Those aren&amp;rsquo;t words generated by thought, by feeling, by hours of thinking and deep research. It&amp;rsquo;s just a regurgitation of a training set.&lt;/p&gt;
</content:encoded>
      
    </item>
    <item>
      <title>A New Design for Readability</title>
      <link>https://jasonheppler.org/2026/03/02/a-new-design-for-readability/</link>
      <pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>indie-web</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2026/03/02/a-new-design-for-readability/</guid>
      <description>&lt;p&gt;My website just went through a big re-design and I wanted to document some of the changes here. I entered this design work with some self-imposed constraints:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Reduce the carbon footprint to less than 0.185g of CO2.&lt;/li&gt;
&lt;li&gt;Focus on functionality, get rid of everything else.&lt;/li&gt;
&lt;li&gt;Choose good, readable typefaces that evoke a book. As &lt;a href=&#34;https://www.robinsloan.com&#34;&gt;Robin Sloan says&lt;/a&gt;, this site will aspire to the speed and privacy of the printed page.&lt;/li&gt;
&lt;li&gt;Audit the entire codebase, use more modern tooling to help with maintenance. Cut a bunch of CSS I no longer need or use.&lt;/li&gt;
&lt;li&gt;Ensure functionality without Javascript.&lt;/li&gt;
&lt;li&gt;Use only three typefaces (serif, sans, and mono), ideally hosted locally. Fall back to system fonts.&lt;/li&gt;
&lt;li&gt;Keep the navigation simple.&lt;/li&gt;
&lt;li&gt;Keep the color scheme simple (for some reason I had over twenty different colors defined in my &lt;code&gt;:root&lt;/code&gt; rules before the redesign.)&lt;/li&gt;
&lt;li&gt;Be consistent with headings, layouts, and unified design and typography.&lt;/li&gt;
&lt;li&gt;Set up a blogging environment that connects Obsidian and Hugo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Much of this design work was inspired by some of my favorite sites, like &lt;a href=&#34;https://vhbelvadi.com/&#34;&gt;V.H. Belvadi&lt;/a&gt; (whose sidebar navigation inspired my own), &lt;a href=&#34;https://maggieappleton.com&#34;&gt;Maggie Appleton&lt;/a&gt;, &lt;a href=&#34;https://lincolnmullen.com&#34;&gt;Lincoln Mullen&lt;/a&gt;, &lt;a href=&#34;https://robinrendle.com&#34;&gt;Robin Rendle&lt;/a&gt;, &lt;a href=&#34;https://manuelmoreale.com/?ref=jasonheppler.org&#34;&gt;Manuel Moreale&lt;/a&gt;, &lt;a href=&#34;https://blog.jim-nielsen.com/?ref=jasonheppler.org&#34;&gt;Jim Nielsen&lt;/a&gt;, &lt;a href=&#34;https://gwern.net/?ref=jasonheppler.org&#34;&gt;Gwern&lt;/a&gt;, &lt;a href=&#34;https://aworkinglibrary.com/&#34;&gt;A Working Library&lt;/a&gt;, and &lt;a href=&#34;https://notetoself.studio&#34;&gt;Gina Trapani&lt;/a&gt;. The big purpose of the redesign, aside from major code cleanup, is &lt;em&gt;readability&lt;/em&gt;. This site has gone through several major redesigns (I believe this is Version 9) since its inception nearly twenty years ago, along with countless fiddling and tweaking.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; I wanted to simplify all of this so that the thing that matters for readers arriving on the site is the &lt;em&gt;content&lt;/em&gt;. Everything else gets out of the way: navigation is tucked away in a slide-out rather than in a navigation bar, keyboard shortcuts help users move around easily, and text takes the primary viewing area on all screen sizes.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;My website just went through a big re-design and I wanted to document some of the changes here. I entered this design work with some self-imposed constraints:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Reduce the carbon footprint to less than 0.185g of CO2.&lt;/li&gt;
&lt;li&gt;Focus on functionality, get rid of everything else.&lt;/li&gt;
&lt;li&gt;Choose good, readable typefaces that evoke a book. As &lt;a href=&#34;https://www.robinsloan.com&#34;&gt;Robin Sloan says&lt;/a&gt;, this site will aspire to the speed and privacy of the printed page.&lt;/li&gt;
&lt;li&gt;Audit the entire codebase, use more modern tooling to help with maintenance. Cut a bunch of CSS I no longer need or use.&lt;/li&gt;
&lt;li&gt;Ensure functionality without Javascript.&lt;/li&gt;
&lt;li&gt;Use only three typefaces (serif, sans, and mono), ideally hosted locally. Fall back to system fonts.&lt;/li&gt;
&lt;li&gt;Keep the navigation simple.&lt;/li&gt;
&lt;li&gt;Keep the color scheme simple (for some reason I had over twenty different colors defined in my &lt;code&gt;:root&lt;/code&gt; rules before the redesign.)&lt;/li&gt;
&lt;li&gt;Be consistent with headings, layouts, and unified design and typography.&lt;/li&gt;
&lt;li&gt;Set up a blogging environment that connects Obsidian and Hugo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Much of this design work was inspired by some of my favorite sites, like &lt;a href=&#34;https://vhbelvadi.com/&#34;&gt;V.H. Belvadi&lt;/a&gt; (whose sidebar navigation inspired my own), &lt;a href=&#34;https://maggieappleton.com&#34;&gt;Maggie Appleton&lt;/a&gt;, &lt;a href=&#34;https://lincolnmullen.com&#34;&gt;Lincoln Mullen&lt;/a&gt;, &lt;a href=&#34;https://robinrendle.com&#34;&gt;Robin Rendle&lt;/a&gt;, &lt;a href=&#34;https://manuelmoreale.com/?ref=jasonheppler.org&#34;&gt;Manuel Moreale&lt;/a&gt;, &lt;a href=&#34;https://blog.jim-nielsen.com/?ref=jasonheppler.org&#34;&gt;Jim Nielsen&lt;/a&gt;, &lt;a href=&#34;https://gwern.net/?ref=jasonheppler.org&#34;&gt;Gwern&lt;/a&gt;, &lt;a href=&#34;https://aworkinglibrary.com/&#34;&gt;A Working Library&lt;/a&gt;, and &lt;a href=&#34;https://notetoself.studio&#34;&gt;Gina Trapani&lt;/a&gt;. The big purpose of the redesign, aside from major code cleanup, is &lt;em&gt;readability&lt;/em&gt;. This site has gone through several major redesigns (I believe this is Version 9) since its inception nearly twenty years ago, along with countless fiddling and tweaking.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; I wanted to simplify all of this so that the thing that matters for readers arriving on the site is the &lt;em&gt;content&lt;/em&gt;. Everything else gets out of the way: navigation is tucked away in a slide-out rather than in a navigation bar, keyboard shortcuts help users move around easily, and text takes the primary viewing area on all screen sizes.&lt;/p&gt;
&lt;p&gt;The cleanup of CSS and images was a major help. The CSS cleanup was particularly useful: not only cleaning out a bunch of dead rules I was no longer using that lingered from past redesigns, but I also migrated over to a modern tooling stack (Tailwind) to make layouts and maintenance easier. I also took steps to ensure that any Javascript usage is a progressive enhancement: the site works perfectly well even if &lt;code&gt;noscript&lt;/code&gt; is running in a reader&amp;rsquo;s browser. I reduced the CSS file by a few thousand lines (why I had something like twenty different color variables I&amp;rsquo;m not sure.) As for images, I converted all of them from &lt;code&gt;png&lt;/code&gt; / &lt;code&gt;jpg&lt;/code&gt; to &lt;code&gt;webp&lt;/code&gt; for performance and sustainability. And, to help with performance more generally, I put all of the Hugo posts into page bundles which allows me to use &lt;a href=&#34;https://gohugo.io/content-management/image-processing/&#34;&gt;Hugo&amp;rsquo;s image processing tools&lt;/a&gt; on any image asset on the site.&lt;/p&gt;
&lt;p&gt;I also migrated long-form posts back over from micro.blog after &lt;a href=&#34;https://jasonheppler.org/2025/01/21/friction/&#34;&gt;a year-long experiment&lt;/a&gt;. I&amp;rsquo;ll still be doing micro posts at micro.blog, and the main reason for leaving isn&amp;rsquo;t micro.blog at all&amp;mdash;it&amp;rsquo;s a terrific service and I love the work &lt;a href=&#34;https://www.manton.org&#34;&gt;Manton&lt;/a&gt; has done in creating the platform. I&amp;rsquo;ll still be spending a lot of time there. But I wanted a bit more control over the look and feel of my website, and while I developed a micro.blog theme to mimic my old site design it felt a bit clunky to have two themes. It meant any change I made to my main website I had to go and figure out in a micro.blog theme as well (or vice versa), which was just too much overhead. Maintaining two themes for different platforms is, admittedly, a self-imposed headache&amp;mdash;but, I like having a consistent interface for readers. So I&amp;rsquo;ve moved all my content (except microposts) back into my website. Back home.&lt;/p&gt;
&lt;p&gt;Alongside readability became ease of moving around the site. I added a few keyboard shortcuts to the site that allows you to jump to different pages on the site. These shortcuts should avoid any existing browser shortcuts, but I may have to tweak these a little over time.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Keyboard Shortcut&lt;/th&gt;
          &lt;th&gt;Result&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;/&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Open navigation menu&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;⌘ + E&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Open Essays page&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;⌘ + J&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Open Notes page&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;⌘ + I&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Open Publications page&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;⌘ + Y&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Open Digital History page&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;⌘ + B&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Open Bookshelf page&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;⌘ + /&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Open About page&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;⌘ + K&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Open Search page&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The climate goal was a tough one, made all the harder because I wasn&amp;rsquo;t using a 100% renewable web host. Despite how much I love Reclaim Hosting, I decided to move this website to Cloudflare and &lt;a href=&#34;https://www.cloudflare.com/impact/&#34;&gt;their sustainability goals&lt;/a&gt;. The reduction of file sizes, DOM elements on the page, minimizing energy emitted by your device when visiting my site, and web-friendly images all have a positive impact. I&amp;rsquo;m not quite hitting my 0.185g goal, but I did significantly reduce what this site was measuring before the redesign: I cut this by 80% with these changes. My measurement according to Digital Beacon went from 2.4g to 0.479g. I&amp;rsquo;ll still be working on ways to get that number lower.&lt;/p&gt;
&lt;p&gt;With readability as a key focus came a different way of thinking about the content I have on this site. For a while now I&amp;rsquo;ve felt a kind of constraint over the kinds of things I &lt;em&gt;should&lt;/em&gt; blog about versus using this space as something that can accept any kind of writing. So now this site has three main areas: &lt;a href=&#34;https://jasonheppler.org/blog/&#34;&gt;Essays&lt;/a&gt; for longer-form, argument-driven pieces; &lt;a href=&#34;https://jasonheppler.org/notes/&#34;&gt;Notes&lt;/a&gt; for shorter form pieces, or incomplete thoughts or ideas; and &lt;a href=&#34;https://jasonheppler.org/links/&#34;&gt;Commonplace&lt;/a&gt; as a way to simply collect things I find interesting. The RSS feed currently provides all of these areas in a single stream. One outstanding task is to implement &lt;a href=&#34;https://indieweb.org/POSSE&#34;&gt;POSSE&lt;/a&gt; so posts end up broadcasted out on the fediverse.&lt;/p&gt;
&lt;p&gt;The other big change is the workflow I have now for Obsidian and Hugo. This has been delightful. I mentioned above that I&amp;rsquo;ve migrated this site to Cloudflare, which has a really great integration with Github. In short, what happens is that Cloudflare watches for changes in my &lt;code&gt;main&lt;/code&gt; branch. If it detects a change, Cloudflare will automatically rebuild the site without my having to intervene at all. So when I&amp;rsquo;m writing, it now looks something like this: I&amp;rsquo;ve opened my website folder as its own Obsidian vault, giving me access to all of my posts and pages. Using the &lt;a href=&#34;https://github.com/SilentVoid13/Templater&#34;&gt;Templater plugin&lt;/a&gt;, I create a new post with the structure that Hugo expects and set the draft status to true. When I have a draft post ready to go, I toggle the draft status to false and use the &lt;a href=&#34;https://github.com/Vinzent03/obsidian-git&#34;&gt;Obsidian Git plugin&lt;/a&gt; to run a &lt;code&gt;git commit&lt;/code&gt; then &lt;code&gt;git push&lt;/code&gt; into my &lt;code&gt;main&lt;/code&gt; branch. Cloudflare picks up the commit and deploys the site. All without having left Obsidian. No terminals. No VSCode. No direct git usage. I can do everything right inside of Obsidian (and if I need to preview anything first, running a &lt;code&gt;localhost&lt;/code&gt; side by side with the content I&amp;rsquo;m writing or editing and having it instantly refresh is really nice.)&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; I&amp;rsquo;ve been working with websites for over twenty years and this is maybe the easiest time I&amp;rsquo;ve ever had in creating content for a website.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://code.claude.com/docs/en/overview&#34;&gt;Claude Code&lt;/a&gt; was amazingly helpful in all of this. Like any generative AI, it needs a human. But, like other computational tools we use, it&amp;rsquo;s very good at mechanical or repetitive tasks. Helping me work through converting 200+ images to &lt;code&gt;wepb&lt;/code&gt;, renaming hundreds of files, and massive CSS and HTML auditing is all work that would&amp;rsquo;ve taken me a considerable amount of time. I first thought this redesign and new deployment process would take me at least a month; I finished it in a weekend. It&amp;rsquo;s also much more disciplined about writing good git commits than I am. Yet as I note in the footer to this site, nothing here is AI-generated: by which I mean, the words, thoughts, ideas, philosophies, and research all come from me and it remains so. Same with the design: it took a lot of back and forth with a coding agent to get things how I envisioned them. That all required human judgment, it was never given over to the agentic system to devise on its own.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m really pleased and delighted with the results. As with any of these redesigns, certainly there are things that broke or don&amp;rsquo;t look quite right despite my effort to make sure everything is working and looks good on various screen sizes. If you spot an issue, it&amp;rsquo;d be swell if you&amp;rsquo;d let me know. Find &lt;a href=&#34;https://jasonheppler.org/about/&#34;&gt;my email&lt;/a&gt; or &lt;a href=&#34;https://bsky.app/profile/jasonheppler.org&#34;&gt;hit me up on bsky&lt;/a&gt; or &lt;a href=&#34;https://updates.jasonheppler.org&#34;&gt;micro.blog&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;One of these days I&amp;rsquo;ll try and compile a list of these design changes with the aid of the Internet Archive.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;I have a few settings turned on in Obsidian to make the editing environment more Hugo-friendly. I&amp;rsquo;ll write this up in the future note.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content:encoded>
      
    </item>
    <item>
      <title>My Ideal Library</title>
      <link>https://jasonheppler.org/2026/01/27/my-ideal-library/</link>
      <pubDate>Tue, 27 Jan 2026 14:06:47 -0600</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>personal</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2026/01/27/my-ideal-library/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m in the process of slowly trying to inventory my library using &lt;a href=&#34;https://www.librarything.com/profile/hepplerj&#34;&gt;LibraryThing&lt;/a&gt; (where I&amp;rsquo;ve been for twenty years!). I&amp;rsquo;m mostly focused on physical books&amp;mdash;I don&amp;rsquo;t own many ebooks or audio books, the physical books are most near and dear to me. I estimate so far that my personal library runs around 800 books currently (on top of 50 or so ebooks and maybe 10 audiobooks). These books all reside in my home library, a space I renovated a couple of years ago to be my work-from-home space as well as my general writing studio that I refer to as the Bunkhouse.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;I&amp;rsquo;m in the process of slowly trying to inventory my library using &lt;a href=&#34;https://www.librarything.com/profile/hepplerj&#34;&gt;LibraryThing&lt;/a&gt; (where I&amp;rsquo;ve been for twenty years!). I&amp;rsquo;m mostly focused on physical books&amp;mdash;I don&amp;rsquo;t own many ebooks or audio books, the physical books are most near and dear to me. I estimate so far that my personal library runs around 800 books currently (on top of 50 or so ebooks and maybe 10 audiobooks). These books all reside in my home library, a space I renovated a couple of years ago to be my work-from-home space as well as my general writing studio that I refer to as the Bunkhouse.&lt;/p&gt;
&lt;div class=&#34;microblog_collection&#34;&gt;&lt;img src=&#34;img-4929-m.webp&#34; alt=&#34;A wooden bookshelf is filled with a diverse collection of books on various topics.&#34; data-microblog-lightbox=&#34;img-4929-xl.webp&#34;&gt;&lt;img src=&#34;img-4956-m.webp&#34; alt=&#34;A cozy room features a large wall of bookshelves filled with books, a leather armchair with a pillow, and wall-mounted decorative items like rifles and framed art.&#34; data-microblog-lightbox=&#34;img-4956-xl.webp&#34;&gt;&lt;img src=&#34;img-5059-m.webp&#34; alt=&#34;A stack of books with titles related to American landscapes and cowboy culture is positioned on top of a wooden surface, accompanied by framed art and photographs in the background.&#34; data-microblog-lightbox=&#34;img-5059-xl.webp&#34;&gt;&lt;img src=&#34;img-5061-m.webp&#34; alt=&#34;A bookshelf displays a collection of books alongside an antler and a small stone, with framed photos on the wall behind.&#34; data-microblog-lightbox=&#34;img-5061-xl.webp&#34;&gt;&lt;img src=&#34;img-5062-m.webp&#34; alt=&#34;A small bowl containing pinecones and rocks is placed on a table with a warm brown surface.&#34; data-microblog-lightbox=&#34;img-5062-xl.webp&#34;&gt;&lt;img src=&#34;img-5063-m.webp&#34; alt=&#34;A wall-mounted display features rifles and fishing rods, alongside framed pictures and a floor lamp.&#34; data-microblog-lightbox=&#34;img-5063-xl.webp&#34;&gt;&lt;img src=&#34;img-5064-m.webp&#34; alt=&#34;A wooden plaque with three round meteorological instruments is mounted on a wall beneath a hanging horseshoe, next to a framed picture.&#34; data-microblog-lightbox=&#34;img-5064-xl.webp&#34;&gt;&lt;img src=&#34;img-5066-m.webp&#34; alt=&#34;A wall display features a wooden clock, two cowboy hats, a calendar, and several coiled ropes.&#34; data-microblog-lightbox=&#34;img-5066-xl.webp&#34;&gt;&lt;/div&gt;
&lt;p&gt;One of the things I like to see is see other people&amp;rsquo;s libraries and work spaces. I often clip these into Obsidian or Apple Notes for reference later on as a kind of &amp;ldquo;interior design&amp;rdquo; inspiration. I have lots of these: &lt;a href=&#34;https://jamierubin.net/2025/09/17/cormac-mccarthys-library/&#34;&gt;Cormac McCarthy&lt;/a&gt;, &lt;a href=&#34;https://www.newyorker.com/culture/the-new-yorker-interview/going-home-with-wendell-berry&#34;&gt;Wendell Berry&lt;/a&gt;, &lt;a href=&#34;https://www.kansascity.com/entertainment/books/article102040987.html&#34;&gt;Candice Millard&lt;/a&gt;, &lt;a href=&#34;https://fromabirdseyeview.com/?tag=david-mccullough-writing-shed&#34;&gt;David McCollough&lt;/a&gt;, &lt;a href=&#34;https://messaging-custom-newsletters.nytimes.com/dynamic/render?isViewInBrowser=true&amp;amp;productCode=JBO&amp;amp;uri=nyt%3A%2F%2Fnewsletter%2F02ab91a0-3651-59a3-bf98-26de64b1d5df&#34;&gt;Jamelle Bouie&lt;/a&gt;, &lt;a href=&#34;https://www.nytimes.com/2014/06/19/garden/he-found-his-corner-of-the-sky.html&#34;&gt;Peter Heller&lt;/a&gt;, and many others. I think of these the same way we might look at architectural magazines or (my other favorite) wood shops (like &lt;a href=&#34;https://offermanwoodshop.com/film-photo-rental/&#34;&gt;Nick Offerman&lt;/a&gt; or &lt;a href=&#34;https://parkzer.com/2024/06/15/adam-savage-cave/&#34;&gt;Adam Savage&lt;/a&gt;): they’re creative spaces where people I admire do their work, and I’m always intrigued on how other creatives use their space.&lt;/p&gt;
&lt;p&gt;Heading out to my work space is walking into my ideal library: the design, the book subjects, (the coffee), all tailored to my interests and needs.&lt;/p&gt;
</content:encoded>
      
    </item>
    <item>
      <title>“Fluent and Stranded”</title>
      <link>https://jasonheppler.org/2026/01/11/fluent-and-stranded/</link>
      <pubDate>Sun, 11 Jan 2026 07:13:31 -0600</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>artificial-intelligence</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2026/01/11/fluent-and-stranded/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://davefriedman.substack.com/p/where-large-language-models-break&#34;&gt;Dave Friedman&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Two frontier AIs debated a strategic question and quickly slid from sensible analysis into confident, theatrical nonsense. The collapse revealed a hard limit of today&amp;rsquo;s large language models: they can interpolate beautifully, but they cannot build new world models.&lt;/p&gt;
&lt;p&gt;. . .&lt;/p&gt;
&lt;p&gt;The ending of the exchange felt like Waiting for Godot rewritten in transformer weights: circular, performative, drenched in the style of profundity but detached from any grounding. The models weren’t intentionally imitating Beckett. They arrived there naturally, because absurdist dialogue is what happens when linguistic engines exhaust their epistemic runway. Vladimir and Estragon talk in circles because they have nothing but the talking; the world outside the stage never materializes.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;a href=&#34;https://davefriedman.substack.com/p/where-large-language-models-break&#34;&gt;Dave Friedman&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Two frontier AIs debated a strategic question and quickly slid from sensible analysis into confident, theatrical nonsense. The collapse revealed a hard limit of today&amp;rsquo;s large language models: they can interpolate beautifully, but they cannot build new world models.&lt;/p&gt;
&lt;p&gt;. . .&lt;/p&gt;
&lt;p&gt;The ending of the exchange felt like Waiting for Godot rewritten in transformer weights: circular, performative, drenched in the style of profundity but detached from any grounding. The models weren’t intentionally imitating Beckett. They arrived there naturally, because absurdist dialogue is what happens when linguistic engines exhaust their epistemic runway. Vladimir and Estragon talk in circles because they have nothing but the talking; the world outside the stage never materializes.&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded>
      
    </item>
    <item>
      <title>How I Use Obsidian Redux</title>
      <link>https://jasonheppler.org/2026/01/08/how-i-use-obsidian-redux/</link>
      <pubDate>Thu, 08 Jan 2026 07:53:45 -0600</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>plain-text</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2026/01/08/how-i-use-obsidian-redux/</guid>
      <description>&lt;p&gt;A little over a year ago &lt;a href=&#34;https://jasonheppler.org/2024/07/15/how-i-use-obsidian/&#34;&gt;I wrote about&lt;/a&gt; how I use Obsidian for historical research. While it hasn&amp;rsquo;t changed substantially since I wrote that piece, there are some updates to the system I&amp;rsquo;d been wanting to write up. An email from a friend with questions about that piece, and this is basically the email I wrote back to him.&lt;/p&gt;
&lt;p&gt;The core question my friend asked about was the separation between the two tools I use to manage sources: Tropy, for image management, and Obsidian, for note management (and Zotero, I suppose, for bibliographic management). After &lt;a href=&#34;https://updates.jasonheppler.org/2025/05/27/busy-week-at-the-archives/&#34;&gt;my visit&lt;/a&gt; to the American Heritage Center back in May, I came home with some 4,000-plus photographs to organize. To start, I spent my evenings after the archives closed for the day throwing everything into Tropy and organizing what I&amp;rsquo;d captured: metadata about where the source came from, dates, the type of item, as well as my quick note about what sorts of themes, people, or organizations appeared in these sources (which I used Tropy&amp;rsquo;s tagging system to categorize). But I knew I didn&amp;rsquo;t want to keep all of my notes in Tropy; I wanted those in Obsidian. A couple of months later, I realized how much friction I was feeling trying to keep these two systems in sync.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;A little over a year ago &lt;a href=&#34;https://jasonheppler.org/2024/07/15/how-i-use-obsidian/&#34;&gt;I wrote about&lt;/a&gt; how I use Obsidian for historical research. While it hasn&amp;rsquo;t changed substantially since I wrote that piece, there are some updates to the system I&amp;rsquo;d been wanting to write up. An email from a friend with questions about that piece, and this is basically the email I wrote back to him.&lt;/p&gt;
&lt;p&gt;The core question my friend asked about was the separation between the two tools I use to manage sources: Tropy, for image management, and Obsidian, for note management (and Zotero, I suppose, for bibliographic management). After &lt;a href=&#34;https://updates.jasonheppler.org/2025/05/27/busy-week-at-the-archives/&#34;&gt;my visit&lt;/a&gt; to the American Heritage Center back in May, I came home with some 4,000-plus photographs to organize. To start, I spent my evenings after the archives closed for the day throwing everything into Tropy and organizing what I&amp;rsquo;d captured: metadata about where the source came from, dates, the type of item, as well as my quick note about what sorts of themes, people, or organizations appeared in these sources (which I used Tropy&amp;rsquo;s tagging system to categorize). But I knew I didn&amp;rsquo;t want to keep all of my notes in Tropy; I wanted those in Obsidian. A couple of months later, I realized how much friction I was feeling trying to keep these two systems in sync.&lt;/p&gt;
&lt;p&gt;So I wrestled with the division between Tropy and Obsidian for a while, in part because it got to be a real chore to keep things up to date. In Obsidian, I use properties for primary sources that include metadata about the item (date, location in the archives, people, organizations, locations, themes I identify) and, for a time, kept an &lt;code&gt;item&lt;/code&gt; property that was just a link to the item in Tropy (you can right click on an item in Tropy and copy that item&amp;rsquo;s URL which is something like &lt;code&gt;tropy://tropy_item_path&lt;/code&gt;). Then, if I needed to consult the actual source, I could open up that item in Tropy just by clicking a link.&lt;/p&gt;
&lt;p&gt;That was useful, but the problem was I was trying to keep two sets of metadata: the material in Tropy, and the material in Obsidian. Since Obsidian is my note-taking space, it was there that I identified further details about a source&amp;mdash;people that appeared or were mentioned or related, or themes I felt emerged from reading sources, and so on. I didn&amp;rsquo;t have an easy way to get those back into Tropy to keep all of that data in sync. I played around with some scripting to keep them in sync, but it was more trouble than it was worth. I even made an attempt at writing an Obsidian plugin for Tropy. But then it dawned on me &lt;a href=&#34;https://updates.jasonheppler.org/2025/09/17/it-dawned-on-me-that/&#34;&gt;three months ago&lt;/a&gt; that I actually could do all of this &lt;em&gt;without&lt;/em&gt; Tropy.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;img src=&#34;screenshot-2025-12-16-at-8.55.47am.webp&#34; width=&#34;600&#34; height=&#34;390&#34; alt=&#34;Obsidian displays metadata for a letter sent from Sherlock and Kleckner to Bush on November 30, 1988, including properties like author, recipient, and location.&#34;&gt;
&lt;p&gt;So what I do now is: I collect photographs of sources into a single PDF, which I can drag and drop into Obsidian. Obsidian allows you to set a central location for attachments&amp;mdash;in my case, I created a &lt;code&gt;Miscellaneous/Attachments&lt;/code&gt; folder in Obsidian for these. For that to work, in Obsidian&amp;rsquo;s settings you can set the &amp;ldquo;Default location for new attachments&amp;rdquo; to &amp;ldquo;In the folder specified below&amp;rdquo; which, in my case, is the above folder. This also solves a second problem: occasionally I wanted to look at a source while on my iPad, and since Tropy has no iPad equivalent I couldn&amp;rsquo;t do that. This system solves that problem since the attachments are part of Obsidian Sync. &lt;/p&gt;
&lt;img src=&#34;screenshot-2025-12-16-at-8.55.53am.webp&#34; width=&#34;600&#34; height=&#34;390&#34; alt=&#34;A letter addressed to then-Governor George Bush from the Coalition for Fiscal Responsability is displayed on a computer screen, with a network graph and file directory visible on the left side.&#34;&gt;
&lt;p&gt;I&amp;rsquo;ve also replaced many of the DataView plugin views I was using with Obsidian&amp;rsquo;s new Bases for more easily sorting and filtering my sources (and, I suspect, is more future-proofed). Here, for example, are all correspondence sources sorted by date:&lt;/p&gt;
&lt;img src=&#34;screenshot-2025-12-23-at-8.38.56am.webp&#34; width=&#34;600&#34; height=&#34;379&#34; alt=&#34;Obsidian Bases showing a chronologically sorted list of correspondence.&#34;&gt;
&lt;p&gt;Zotero has been a much easier thing to sync up with Obsidian, thanks to the &lt;a href=&#34;https://github.com/mgmeyers/obsidian-zotero-integration&#34;&gt;Zotero Integration plugin&lt;/a&gt;. Using the plugin I can pull in data from Zotero to Obsidian very easily: the bibliographic information, a link to the Zotero item, and any notes I&amp;rsquo;ve taken in Zotero all get pulled into their own note Obsidian. I use Zotero&amp;rsquo;s PDF reader to highlight material and take notes, all of which sync into Obsidian. This makes it quite nice for building up a historiographic synthesis and incorporating reading notes into the rest of my notes.&lt;/p&gt;
&lt;p&gt;Since folks might be curious, the theme I’m using is &lt;a href=&#34;https://github.com/aaaaalexis/obsidian-baseline&#34;&gt;Baseline&lt;/a&gt;. The full list of plugins I&amp;rsquo;m currently using:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/lukeleppan/better-word-count&#34;&gt;Better Word Count&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/liamcain/obsidian-calendar-plugin&#34;&gt;Calendar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/saml-dev/obsidian-custom-js&#34;&gt;CustomJS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/blacksmithgu/obsidian-dataview&#34;&gt;DataView&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/ycnmhd/obsidian-enhanced-annotations&#34;&gt;Enhanced Annotations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/zsviczian/obsidian-excalidraw-plugin&#34;&gt;Excalidraw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/tmcw/obsidian-freeform&#34;&gt;Freeform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/ryanpcmcquen/obsidian-focus-mode&#34;&gt;Focus Mode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Vinzent03/obsidian-git&#34;&gt;Git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/kevboh/longform&#34;&gt;Longform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/esm7/obsidian-map-view&#34;&gt;Mapview&lt;/a&gt; (I&amp;rsquo;m considering replacing this with &lt;a href=&#34;https://help.obsidian.md/bases/views/map&#34;&gt;the new Bases support for maps&lt;/a&gt;&amp;mdash;this lets me look at my sources in place)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/otaviocc/obsidian-microblog&#34;&gt;Micro.publish&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/KubaMiszcz/MultiStateCheckBoxSwitcher&#34;&gt;Multi State Checkbox Switcher&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/lynchjames/note-refactor-obsidian&#34;&gt;Note Refactor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/isaaclyman/novel-word-count-obsidian&#34;&gt;Novel Word Count&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/scambier/obsidian-omnisearch&#34;&gt;Omnisearch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/vslinko/obsidian-outliner&#34;&gt;Outliner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/OliverBalfour/obsidian-pandoc&#34;&gt;Pandoc Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/michaellee/stille&#34;&gt;Stille&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/mgmeyers/obsidian-style-settings&#34;&gt;Style Settings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/obsidian-tasks-group/obsidian-tasks&#34;&gt;Tasks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/charliecm/obsidian-tidy-footnotes&#34;&gt;Tidy Footnotes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/mgmeyers/obsidian-zotero-integration&#34;&gt;Zotero Integration&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;To be clear, this is not a criticism of Tropy. I think Tropy is a great piece of software (yes I&amp;rsquo;m affiliated with the research center that created it, but I had no hand in it&amp;mdash;it pre-dates my time at RRCHNM). But for the way I work, Tropy fit uneasily into my workflow.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content:encoded>
      
    </item>
    <item>
      <title>Two Quotations on Interfaces</title>
      <link>https://jasonheppler.org/2025/12/27/two-quotations-on-interfaces/</link>
      <pubDate>Sat, 27 Dec 2025 20:41:43 -0600</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>tech-life</category><category>twoquotes</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2025/12/27/two-quotations-on-interfaces/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://wattenberger.com/thoughts/our-interfaces-have-lost-their-senses&#34;&gt;Amelia Wattenberger&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We&amp;rsquo;ve been successfully removing all friction from our apps &amp;ndash; think about how effortless it is to scroll through a social feed. But is that what we want? Compare the feeling of doomscrolling to kneading dough, playing an instrument, sketching&amp;hellip; these take effort, but they&amp;rsquo;re also deeply satisfying. When you strip away too much friction, meaning and satisfaction go with it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://resonantcomputing.org&#34;&gt;The Resonant Computing Manifesto&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Great technology does more than solve problems. It weaves itself into the world we inhabit. At its best, it can expand our capacity, our connectedness, our sense of what&amp;rsquo;s possible. Technology can bring out the best in us. Our current technological landscape, however, does the opposite.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;a href=&#34;https://wattenberger.com/thoughts/our-interfaces-have-lost-their-senses&#34;&gt;Amelia Wattenberger&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We&amp;rsquo;ve been successfully removing all friction from our apps &amp;ndash; think about how effortless it is to scroll through a social feed. But is that what we want? Compare the feeling of doomscrolling to kneading dough, playing an instrument, sketching&amp;hellip; these take effort, but they&amp;rsquo;re also deeply satisfying. When you strip away too much friction, meaning and satisfaction go with it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://resonantcomputing.org&#34;&gt;The Resonant Computing Manifesto&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Great technology does more than solve problems. It weaves itself into the world we inhabit. At its best, it can expand our capacity, our connectedness, our sense of what&amp;rsquo;s possible. Technology can bring out the best in us. Our current technological landscape, however, does the opposite.&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded>
      
    </item>
    <item>
      <title>Generative AI and the Work of History</title>
      <link>https://jasonheppler.org/2025/12/22/generative-ai-and-the-work-of-history/</link>
      <pubDate>Mon, 22 Dec 2025 00:00:00 +0000</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>artificial-intelligence</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2025/12/22/generative-ai-and-the-work-of-history/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;I write entirely to find out what I’m thinking, what I’m looking at, what I see and what it means. &amp;mdash;&lt;a href=&#34;https://lithub.com/joan-didion-why-i-write/&#34;&gt;Joan Didion&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Despite my self-imposed exile from social media, a conversation managed to still reach me from Bluesky over the last few days of my fellow historians making the point (and arguing with generative AI enthusiasts) that generative AI cannot do the work we do. This happens to exactly line up with my point a few months ago at the Western History Association conference: while I find some of the machine learning aspects of generative AI &lt;em&gt;potentially&lt;/em&gt; interesting (if not yet proven actually useful), I in no way see generative AI, broadly, useful for the work we do because it cannot do the work we do.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;</description>
      <content:encoded>&lt;blockquote&gt;
&lt;p&gt;I write entirely to find out what I’m thinking, what I’m looking at, what I see and what it means. &amp;mdash;&lt;a href=&#34;https://lithub.com/joan-didion-why-i-write/&#34;&gt;Joan Didion&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Despite my self-imposed exile from social media, a conversation managed to still reach me from Bluesky over the last few days of my fellow historians making the point (and arguing with generative AI enthusiasts) that generative AI cannot do the work we do. This happens to exactly line up with my point a few months ago at the Western History Association conference: while I find some of the machine learning aspects of generative AI &lt;em&gt;potentially&lt;/em&gt; interesting (if not yet proven actually useful), I in no way see generative AI, broadly, useful for the work we do because it cannot do the work we do.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;At the &lt;a href=&#34;https://westernhistory.org&#34;&gt;Western History Association&lt;/a&gt; in Albuquerque back in October, I head the pleasure of joining Cameron Blevins, Rachel Birch, and Amanda Regan on the topic of generative AI for History. Given that panel and the recent discussions on social media I thought it worth trying to articulate where I stand on this in December 2025, through seven declarative statements. I&amp;rsquo;ve previously written some thoughts about generative AI for History &lt;a href=&#34;https://jasonheppler.org/2022/10/16/ai-art/&#34;&gt;here&lt;/a&gt; and &lt;a href=&#34;https://jasonheppler.org/2024/05/23/made-by-me/&#34;&gt;here&lt;/a&gt;, and, broadly, &lt;a href=&#34;https://jasonheppler.org/tags/artificial-intelligence/&#34;&gt;using this tag&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;1-generative-ai-cannot-understand-context&#34;&gt;1. Generative AI cannot understand context&lt;/h2&gt;
&lt;p&gt;One of my earliest thoughts about generative AI&amp;mdash;in trying to think about how it might be useful&amp;mdash;was to envision a system (&lt;a href=&#34;https://en.wikipedia.org/wiki/As_We_May_Think&#34;&gt;á la Vannevar Bush&lt;/a&gt;) where an AI might be able to suggest connections or patterns among primary sources. I wondered for a time if there couldn&amp;rsquo;t be made a prompt system that allowed me to ask a generative AI a question about my sources (imagine them fully transcribed, and a model trained against them) and receive useful responses in return: that sources A, B, C, F, G, and T speak to Theme 1, while some other collection of sources speak to some other theme, or these few sources seem to related to these other collection of sources.&lt;/p&gt;
&lt;p&gt;In short, I wanted a way to usefully query my notes and have a conversation with them. I do a lot of this sort of thing already, which I suspect many of my colleagues do as well: in my notes that I take, I&amp;rsquo;m often jotting down sources that I think speak to one another or refute one another; and, often, I&amp;rsquo;ll have something like a &amp;ldquo;synthesis&amp;rdquo; note that tries to bring together various sources into some insight or idea that could represent something as small as a paragraph, or a chapter, or even the argument of a book. Could generative AI not so much streamline this process, but provide me another tool as part of this process?&lt;/p&gt;
&lt;p&gt;In my experience, this envisioning has fallen completely flat. I&amp;rsquo;ve not had a good experience in trying to get such a system in place, including training models against some corpus of transcribed sources (what&amp;rsquo;s referred to as &lt;a href=&#34;https://cloud.google.com/use-cases/retrieval-augmented-generation&#34;&gt;Retrieval-Augmented Generation&lt;/a&gt;). It might do decently well in early conversations with a user, but it isn&amp;rsquo;t particularly good at understanding broader contexts and seems, over time, to lose the thread. Plus, not only do &amp;ldquo;hallucinations&amp;rdquo; exist, &lt;a href=&#34;https://openai.com/index/why-language-models-hallucinate/&#34;&gt;they can&amp;rsquo;t be eliminated&amp;mdash;they&amp;rsquo;re mathematically inherent to LLMs&lt;/a&gt;. The work we produce as historians must be 1) trustworthy, and 2) accurately cited. Why would I ever trust a generative AI to achieve those for me?&lt;/p&gt;
&lt;h2 id=&#34;2-generative-ai-cannot-understand-historical-ambiguity&#34;&gt;2. Generative AI cannot understand historical ambiguity&lt;/h2&gt;
&lt;p&gt;Relatedly, generative AI is bad at understanding ambiguity. Since models work by creating text based on what it was trained on, it means that if I feed it my sources to learn from&amp;mdash;incomplete, ambiguous, and biased as they inherently are&amp;mdash;then that&amp;rsquo;s what I&amp;rsquo;m going to get back in return. If I train one model on speeches delivered at Democratic political conventions and another on speeches delivered at Republican political conventions, I will get very different answers if I ask each model questions about cities, women, national security, natural resources, Japan, the role of federal agencies, political parties, and so on. The models can only understand what they were trained upon: ambiguous and biased sources go in, ambiguous and biased content come out. It might pretend to know something about bias if you question it, but it&amp;rsquo;s unlikely to actually wrestle with it in any useful way.&lt;/p&gt;
&lt;p&gt;Nor can generative AI (as we like to say) read against the grain or sit with the silences. Entire books have been written about what&amp;rsquo;s &lt;em&gt;missing&lt;/em&gt; in our archival sources: people, ideologies, events, experiences&amp;mdash;only a fraction of human experience is ever documented anyway, and yet through our scholarly methods, professional ethics, and sophisticated readings of primary and secondary sources can we come to know things about the silences &lt;em&gt;and&lt;/em&gt; the loudness of the archives. Generative AI simply cannot: again, without having something to work with, it cannot give answers. You might press it on such a question (you might ask, for example, why no women are included in a correspondence network of elites and get some reasonable response) but it&amp;rsquo;s not going to consistently return to a consistent answer nor&amp;mdash;and this is key&amp;mdash;suggest some new way of thinking about sources. Thus,&lt;/p&gt;
&lt;h2 id=&#34;3-generative-ai-cannot-generate-new-knowledge&#34;&gt;3. Generative AI cannot generate new knowledge&lt;/h2&gt;
&lt;p&gt;One of the points raised by one of my fellow panelists is that generative AI, with the introduction of &lt;a href=&#34;https://machinelearning.apple.com/research/illusion-of-thinking&#34;&gt;reasoning models&lt;/a&gt;, has gotten pretty-good-to-very-good at writing historiographical essays. That is, if I want a historiographical essay on American environmentalism I can prompt Claude or Gemini or ChatGPT to draft one for me that results in a reasonably good essay in about fifteen minutes that could plausibly pass muster for graduate-level work. That&amp;rsquo;s wild.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s also useless.&lt;/p&gt;
&lt;p&gt;My book wouldn&amp;rsquo;t exist without a historiographical essay. What drew me to write my second book about Silicon Valley was thanks in large part to Professor &lt;a href=&#34;https://www.clemson.edu/cah/about/facultybio.html?id=4341&#34;&gt;Doug Seefeldt&lt;/a&gt; who, in the course of an independent study with him, assigned me the task of writing a historiographical essay on what I called &amp;ldquo;New Economies in the New American West.&amp;rdquo; The assignment introduced me to a body of works and approaches (environmental history, urban history) that I&amp;rsquo;d not really been exposed to previously. In fact, before I took this independent study, I thought my dissertation topic was going to be a continuation of the work I did for my Master&amp;rsquo;s thesis&amp;mdash;to continue exploring the history of the American Indian Movement.&lt;/p&gt;
&lt;p&gt;But in writing this essay Professor Seefeldt introduced me to a variety of new works that completely reshaped my thinking: John Findlay, Margaret O&amp;rsquo;Mara, Gerald Nash, Hal Rothman, Charles Wilkinson, Carl Abbott, Kevin Fernlund, Lisa McGirr, R. Douglas Hurt, Kevin Kruse, Robert Kaplan, Arthur Gómez, Roger Lotchin, and Raye Ringholtz, to name a few, which necessarily spun off into many more authors and their scholarly or popular works. It was in the midst of writing this and thinking about all of these works collectively that I turned to Silicon Valley not as an idea or an economy, but as a &lt;em&gt;place&lt;/em&gt;. &lt;a href=&#34;https://jasonheppler.org/publications/silicon-valley/&#34;&gt;The rest is history, I guess&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;By comparison, I just asked Claude to write me a similar historiographical essay, noting these same historians above and generally on the same topic I wrote my essay about. &lt;a href=&#34;https://claude.ai/chat/725b993f-7165-4724-9631-99860518ce7b&#34;&gt;It did a reasonable job&lt;/a&gt;, in about eight minutes. But it&amp;rsquo;s a lot less helpful than putting the time into reading the books and articles I needed to read in order to write my essay: our brains are orders of magnitude better at handling ambiguity, finding patterns, asking questions, understanding context, remembering, filtering, and synthesizing. Now imagine I didn&amp;rsquo;t write my own essay but instead started here: asking a generative AI to give me an essay to inform me. Even if I wanted to take this as a starting point to understand something about the historiographical debates and evolution of environmental and urban history in the American West, this exercise would still be unhelpful. Setting aside whether it got the details, summaries, and facts correct, I&amp;rsquo;d still be left with the fact that &lt;em&gt;I hadn&amp;rsquo;t read these pieces&lt;/em&gt;&amp;mdash;I can&amp;rsquo;t claim to know them, or understand them, or speak to how they build off or talk to one other, or diverge from their understandings from one another; or, taken collectively, how these scholarly works try to tell us something about historical fact. My own thinking wouldn&amp;rsquo;t be embedded in the writing.&lt;/p&gt;
&lt;p&gt;And, more substantively, let&amp;rsquo;s remember &lt;a href=&#34;https://jasonheppler.org/2024/05/23/made-by-me/&#34;&gt;how generative AI works&lt;/a&gt;: it&amp;rsquo;s trained on what already exists. It cannot create new knowledge&amp;mdash;it&amp;rsquo;s not in the archives, for one matter&amp;mdash;and it will never be in a place to train itself on new knowledge that it itself created. At best, we&amp;rsquo;re talking about software that&amp;rsquo;s very good at making sentences seem sentence-shaped. Historical research, writing, and communication is considerably deeper than that.&lt;/p&gt;
&lt;h2 id=&#34;4-generative-ai-is-toxic-in-classrooms&#34;&gt;4. Generative AI is toxic in classrooms&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m stealing this one from my fellow panelist, Cameron&amp;mdash;I said just a few months ago that generative AI &lt;a href=&#34;https://bsky.app/profile/jasonheppler.org/post/3lvqmu3hrzt2k&#34;&gt;has no place in the classroom&lt;/a&gt; and it&amp;rsquo;s a position I still stick to. Admittedly I don&amp;rsquo;t teach very often, but I have a hard time seeing the application of generative AI in the classroom.&lt;/p&gt;
&lt;p&gt;Part of the issue here is how generative AI undercuts learning&amp;mdash;that is, it removes what in education we refer to as &amp;ldquo;&lt;a href=&#34;https://www.nytimes.com/2022/04/05/science/education-learning-challenge.html&#34;&gt;productive struggle&lt;/a&gt;.&amp;rdquo; In our panel Cameron referred to this as a &amp;ldquo;friction reducer,&amp;rdquo; by smoothing off areas of necessary friction where learning happens. The result, clearly, is learning &lt;em&gt;doesn&amp;rsquo;t&lt;/em&gt; happen. And, as I note below, the entire mode of LLMs is to give you an answer no matter what&amp;mdash;they&amp;rsquo;re designed to be agreeable and follow any line of thought or reasoning you prompt without any pushback.&lt;/p&gt;
&lt;p&gt;Yet that pushback is invaluable in education&amp;mdash;some of my best moments with educators (and my colleagues) throughout my life has been when they disagreed with my ideas or pushed back against some line of thinking. Most certainly I&amp;rsquo;ve found this frustrating at various times, but also productive. It&amp;rsquo;s the kind of thing that sharpens your thinking, or forces you to consider a question or problem from another angle, or wholly toss out ideas or arguments and consider new ones.&lt;/p&gt;
&lt;p&gt;The state of affairs, however, is distressing: anything I can do on a computer a generative AI could probably do as well as (and in some cases, better than) our students: analyzing primary sources, historiography, book reviews, research projects are all within the reach of generative AI. Making assignments genAI-proof is an increasingly difficult task.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The demise of writing matters, because writing is not a second thing that happens after thinking. The act of writing is an act of thinking. This is as true for professionals as it is for students. . . . If reading and writing “rewired” the logic engine of the human brain, the decline of reading and writing are unwiring our cognitive superpower at the very moment that a greater machine appears to be on the horizon. &amp;mdash;Derek Thompson, &lt;a href=&#34;https://www.derekthompson.org/p/the-end-of-thinking&#34;&gt;“The End of Thinking”&lt;/a&gt; (2025)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;5-generative-ai-is-okay-at-summarizing&#34;&gt;5. Generative AI is okay at summarizing&lt;/h2&gt;
&lt;p&gt;There&amp;rsquo;s a key problem in how LLMs operate that make them pretty ill-suited for historical work: they always want to get to &amp;ldquo;yes,&amp;rdquo; even if that &amp;ldquo;yes&amp;rdquo; is wrong. While I have found LLMs generally pretty poor at understanding context or relationships among primary sources or ambiguity, I&amp;rsquo;ll grant that they do a decent job summarizing a document. If I feed a generative AI a set of sources to transcribe (more on that below) and also ask for a summary of the document, I find that the big models (Anthropic, Google, OpenAI) do a reasonably good job at providing me a summary.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s consider an example. Here&amp;rsquo;s a letter I was recently reading over from my archival research in Wyoming this summer.&lt;/p&gt;
&lt;img src=&#34;letter-example.webp&#34; width=&#34;600&#34; height=&#34;636&#34; alt=&#34;Auto-generated description: A letter from the Coalition for Fiscal Restraint, dated November 30, 1988, congratulates Vice President George Bush on his election victory and urges him to focus on decreasing taxes and government spending.&#34;&gt;
&lt;details close&gt; 
&lt;summary&gt;Transcript of the letter&lt;/summary&gt; 
&lt;p&gt;Dear Mr. Vice President:&lt;/p&gt; &lt;p&gt;We are writing on behalf of the Coalition for Fiscal Restraint (COFRE) formed in September for the purpose of promoting economic growth, prosperity and opportunity by opposing any tax increases and by supporting deficit reduction through restraints on the growth of federal spending.&lt;/p&gt; &lt;p&gt;We congratulate you both on your victory and on your position throughout the presidential campaign in opposition to any increase in taxes. It is to this latter point that our letter is addressed.&lt;/p&gt; &lt;p&gt;Our coalition has now grown to over thirty major trade associations, corporations, and citizens groups. We expect our membership to increase considerably between now and the convening of the 101st Congress.&lt;/p&gt; &lt;p&gt;The purpose of this letter is to pledge our support to you in your commitment to oppose any increase in taxes.&lt;/p&gt; &lt;p&gt;Our members do not feel that additional federal revenue would be used to reduce the federal deficit, and we would welcome the opportunity to work with you to restrain the growth of federal spending in order to achieve this objective.&lt;/p&gt; &lt;p&gt;Respectfully,&lt;/p&gt; &lt;p&gt;[Signed] Norman R. Sherlock&lt;br&gt; Norman R. Sherlock&lt;br&gt; President and CEO&lt;br&gt; American Bus Association&lt;/p&gt; &lt;p&gt;[Signed] Dean Kleckner&lt;br&gt; Dean Kleckner&lt;br&gt; President&lt;br&gt; American Farm Bureau Federation&lt;/p&gt; &lt;p&gt;(continued)&lt;/p&gt; 
&lt;/details&gt;
&lt;p&gt;I asked Claude to summarize the document, and it provided this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This is a letter from the Coalition for Fiscal Restraint (COFRE) to President-elect George H.W. Bush dated November 30, 1988, shortly after his election victory. The coalition, comprising over 30 major trade associations and business groups, pledges its support for Bush&amp;rsquo;s campaign promise to oppose tax increases.&lt;/p&gt;
&lt;p&gt;The letter congratulates Bush on his electoral victory and his stance against raising taxes, emphasizing the coalition&amp;rsquo;s commitment to promoting economic growth through deficit reduction via spending restraints rather than tax increases. The signatories represent a broad cross-section of American business interests, including agriculture, transportation, manufacturing, retail, energy, and various trade associations.&lt;/p&gt;
&lt;p&gt;This document reflects the political and economic climate of the late 1980s, when deficit reduction and the &amp;ldquo;no new taxes&amp;rdquo; pledge were central issues in American politics.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Not a bad summary, although the conclusion about &amp;ldquo;reflect[ing] the political and economic climate of the late 1980s&amp;rdquo; is somewhat superficial. What would be the value in having these summaries? For me there are (potentially) two things that are helpful here: 1) it serves as a brief reminder of what the document is about, and 2) it can be resurfaced pretty easily with keyword searching. I often do small summaries in my notes anyway, and this brief overview can be helpful to quickly situate a document as I&amp;rsquo;m going through my notes. The risk here, of course, is that the summary isn&amp;rsquo;t in my own words; not only that, but because I didn&amp;rsquo;t think about how to write the summary it&amp;rsquo;s possible I also didn&amp;rsquo;t &amp;ldquo;cement&amp;rdquo; the document in my mind the same way summarizing something myself could.&lt;/p&gt;
&lt;p&gt;So, the summaries are good. But I&amp;rsquo;m more doubtful about their usefulness.&lt;/p&gt;
&lt;h2 id=&#34;6-generative-ai-is-pretty-good-at-transcription&#34;&gt;6. Generative AI is pretty good at transcription&lt;/h2&gt;
&lt;p&gt;To an extent. Sometimes.&lt;/p&gt;
&lt;p&gt;In some of the experimentation we&amp;rsquo;ve done at &lt;a href=&#34;https://rrchnm.org&#34;&gt;RRCHNM&lt;/a&gt; we&amp;rsquo;ve found that generative AI is pretty good at transcribing images of documents&amp;mdash;I&amp;rsquo;d even go so far as to say it&amp;rsquo;s the best OCR I&amp;rsquo;ve ever used. Some of the models even do a decently good job at both transcribing a foreign language and translating it (my colleague Amanda Madden has been experimenting with this on 16th century Italian records, and it has worked remarkably well). It also does a great job on documents that are structured: with the right amount of instruction, we&amp;rsquo;ve successfully had Claude read Census schedules that are organized as forms and reliably extract data that gets returned as structured data we can then visualize. We&amp;rsquo;re hoping to test this kind of thing at a larger scale over a greater number of documents.&lt;/p&gt;
&lt;p&gt;This seems like a good use for this tool: to handle some of this routine data work that can then free up our time to do more intellectually interesting work. And in this case&amp;mdash;of literally transcribing integers into structured data&amp;mdash;is a different process from, say, transcribing documents by hand (that come with their own details that matter to researchers: the marginalia you might come across, the hand something is written in and if it changes, and so on). This kind of recorded data-to-structured data workflow is the sort of thing I think really could help in historical work.&lt;/p&gt;
&lt;p&gt;But, it comes with a caveat: we&amp;rsquo;ve also seen, as time goes on, that the generative AI seems to &amp;ldquo;forget&amp;rdquo; its earlier work. That is, the longer a chat happens, the less reliable an AI gets from the documents it&amp;rsquo;s been working with. On a technical level, I would assume this is related to the &amp;ldquo;hallucination&amp;rdquo; problem I noted above. And, again, it leads me to wonder about any actual time-saving that happens. Do we see an error rate akin to what we might get from a research assistant? It&amp;rsquo;s hard to say, currently.&lt;/p&gt;
&lt;h2 id=&#34;7-generative-ai-is-pretty-good-at-coding&#34;&gt;7. Generative AI is pretty good at coding&lt;/h2&gt;
&lt;p&gt;Generative AI for programming is kind of remarkable. I&amp;rsquo;ll admit to turning to these coding agents for help when I&amp;rsquo;m stuck on a problem, or need further clarity about documentation, or want the agent to handle some repetitive task. In those contexts I think generative AI works quite well. The problem, though, is turning over the work of programming fully to a generative AI&amp;mdash;what we&amp;rsquo;ve come to call &amp;ldquo;vibe-coding.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;On the one hand, this is incredibly empowering. Students in a digital history course can build things in a semester that could, prior to generative AI, take considerably longer. That means building a prototype or proof of concept for a digital project can come together much more quickly: you don&amp;rsquo;t have to really &lt;em&gt;know&lt;/em&gt; Javascript to make a visualization or a map, and at the end of a semester (heck, even midway through a semester) you can have a working example. But, generative AI for programming offers the same trap that it&amp;rsquo;s application in other facets of work lie: that is, if you are an inexperienced programmer and willingly accept what the AI offers you, you are not bringing the expertise required to know when a coding agent is wrong. Sure, what it offered might give you the desired outcome. But that doesn&amp;rsquo;t necessarily mean it &lt;em&gt;works&lt;/em&gt;. And, like my above examples with writing historiography or productive struggle, what are we losing if we turn over &lt;em&gt;learning&lt;/em&gt; a language to &lt;em&gt;using&lt;/em&gt; a language?&lt;/p&gt;
&lt;p&gt;What worries me too, aside from the apparent disregard for the craft of coding, is the technical debt that comes with vibe-coding. If a developer has allowed a coding agent to take the wheel to produce what the developer prompt engineers&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;, and doesn&amp;rsquo;t take the time to understand what it produced, what happens when something breaks? Or there&amp;rsquo;s a security problem? &lt;a href=&#34;https://en.wikipedia.org/wiki/Technical_debt&#34;&gt;Technical debt&lt;/a&gt; is tricky enough to deal with; technical debt with no human in the mix is utterly terrifying. Computer code, after all, exists not just for the computer to follow a set of instructions. In fact, the design of many high level languages&amp;mdash;Python, Haskell, Ruby&amp;mdash;are designed for readability. We write code &lt;em&gt;for other humans&lt;/em&gt;. Programs are precise; LLMs are inherently not.&lt;/p&gt;
&lt;p&gt;Not to mention the drudgery of prompt-review-accept-revise is to outsource the fun parts of being a programmer. As Simon Højberg &lt;a href=&#34;https://hojberg.xyz/the-programmer-identity-crisis/#user-content-fnref-1&#34;&gt;writes&lt;/a&gt;, &amp;ldquo;It’s disturbing how agreeable we are to the AI hype narrative and actively participate in the planned erasure of our craft, and so willingly offer up our means of thinking.&amp;rdquo; I&amp;rsquo;d hate for my programming work to be reduced to reviewing outputs, refining prompts, and pressing the return key.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Taken together, I cannot envision a future where generative AI and the process of writing prompts can aid our work as researchers, teachers, and communicators. It&amp;rsquo;s a fundamental undervaluing of the labor, craft, and skill of our work. Promoters of generative AI like to suggest that it&amp;rsquo;s here and we must adapt, or be cast aside. Or, that our students are using it (&lt;a href=&#34;https://www.axios.com/2025/10/19/ai-resistance-students-coders&#34;&gt;are they?&lt;/a&gt;) so we &lt;em&gt;must&lt;/em&gt; find ways to incorporate it. That&amp;rsquo;s hogwash.&lt;/p&gt;
&lt;p&gt;The fundamental limit these systems face is that AI cannot bring historical expertise, critical analysis, or methodological sophistication to our work. These systems do two things, and they do them well: First, they give you an answer no matter what, even if it&amp;rsquo;s completely wrong. Second, they predict the next most likely pattern to string together convincing-sounding sentences based on what they&amp;rsquo;ve seen before. That&amp;rsquo;s it. They cannot generate new knowledge. They cannot make arguments that are genuinely surprising or original. They cannot tell you that your question is wrong or that you&amp;rsquo;re looking in the wrong archive or that you&amp;rsquo;ve misunderstood the context. They cannot work with uncertainty the way historians must. They cannot say &amp;ldquo;I don&amp;rsquo;t know&amp;rdquo; or &amp;ldquo;the evidence doesn&amp;rsquo;t support any strong conclusion.&amp;rdquo; They just generate plausible text.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t know any historian who is suggesting we outsource our analysis, our writing, or our teaching (despite what some administrators might hope). Generative AI might help with time-consuming preparatory tasks like data extraction or transcription. But here&amp;rsquo;s what gives me real pause: historical research is fundamentally hands-on work with unreliable sources and incomplete records. &lt;mark&gt;We&amp;rsquo;re trying to understand the truth of something&lt;/mark&gt; by working with unreliable narrators, by sitting with silences and ambiguities, by learning what questions documents can and cannot answer. These AI systems are only as good as their training data. Put unreliable things in, you get unreliable things out&amp;mdash;but without the contextual understanding to know what&amp;rsquo;s unreliable or why it matters.&lt;/p&gt;
&lt;p&gt;I think we need to be asking not &amp;ldquo;how do we adopt AI&amp;rdquo;&amp;mdash;we need to be asking &amp;ldquo;does this actually serve the work of History?&amp;rdquo; Does it make us better historians? Writers? Educators? Does it produce better history? I&amp;rsquo;m not convinced.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;And before some tech bros swoop in to tell me I don&amp;rsquo;t know what I&amp;rsquo;m talking about because I&amp;rsquo;m one of &lt;em&gt;those&lt;/em&gt; humanities &lt;em&gt;nerds&lt;/em&gt;, know that I&amp;rsquo;m also a software developer who thinks about, writes about, reads about, and even sometimes uses generative AI tools every day. I&amp;rsquo;ve also been a digital historian working in the world of machine learning, computation, and data visualization for over a decade. I got it.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;It&amp;rsquo;s a real stretch to call this &amp;ldquo;engineering.&amp;rdquo;&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content:encoded>
      
    </item>
    <item>
      <title>The Christmas Movie Rotation</title>
      <link>https://jasonheppler.org/2025/12/12/the-christmas-movie-rotation/</link>
      <pubDate>Fri, 12 Dec 2025 20:37:17 -0600</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>personal</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2025/12/12/the-christmas-movie-rotation/</guid>
      <description>&lt;p&gt;Every year we have a rotation of Christmas movies that we watch this time of year. We’re kicked off &lt;a href=&#34;https://updates.jasonheppler.org/2025/12/12/watched-klaus/&#34;&gt;with Klaus tonight&lt;/a&gt;, and still have more to go. These are, of course, a mix of things that we watch with the kids or just the adults.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.imdb.com/title/tt4729430/&#34;&gt;Klaus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://m.imdb.com/title/tt2709692/&#34;&gt;Grinch&lt;/a&gt; (2018)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.imdb.com/title/tt0104940/&#34;&gt;The Muppet&amp;rsquo;s Christmas Carol&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.imdb.com/title/tt0097958/&#34;&gt;National Lampoon&amp;rsquo;s Christmas Vacation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=5n7VI0rC8ZA&#34;&gt;Grevinnen og hovmesteren&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.imdb.com/title/tt0033045/&#34;&gt;The Shop Around the Corner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.imdb.com/title/tt0038650/&#34;&gt;It&amp;rsquo;s a Wonderful Life&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In year&amp;rsquo;s past I tried the 1984 George Scott &lt;em&gt;&lt;a href=&#34;https://www.imdb.com/title/tt0087056/&#34;&gt;Christmas Carol&lt;/a&gt;&lt;/em&gt;, but it didn&amp;rsquo;t stick. I worked &lt;em&gt;Die Hard&lt;/em&gt; in last year, I imagine that&amp;rsquo;ll be in for a re-watch this season as well.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Every year we have a rotation of Christmas movies that we watch this time of year. We’re kicked off &lt;a href=&#34;https://updates.jasonheppler.org/2025/12/12/watched-klaus/&#34;&gt;with Klaus tonight&lt;/a&gt;, and still have more to go. These are, of course, a mix of things that we watch with the kids or just the adults.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.imdb.com/title/tt4729430/&#34;&gt;Klaus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://m.imdb.com/title/tt2709692/&#34;&gt;Grinch&lt;/a&gt; (2018)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.imdb.com/title/tt0104940/&#34;&gt;The Muppet&amp;rsquo;s Christmas Carol&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.imdb.com/title/tt0097958/&#34;&gt;National Lampoon&amp;rsquo;s Christmas Vacation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=5n7VI0rC8ZA&#34;&gt;Grevinnen og hovmesteren&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.imdb.com/title/tt0033045/&#34;&gt;The Shop Around the Corner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.imdb.com/title/tt0038650/&#34;&gt;It&amp;rsquo;s a Wonderful Life&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In year&amp;rsquo;s past I tried the 1984 George Scott &lt;em&gt;&lt;a href=&#34;https://www.imdb.com/title/tt0087056/&#34;&gt;Christmas Carol&lt;/a&gt;&lt;/em&gt;, but it didn&amp;rsquo;t stick. I worked &lt;em&gt;Die Hard&lt;/em&gt; in last year, I imagine that&amp;rsquo;ll be in for a re-watch this season as well.&lt;/p&gt;
</content:encoded>
      
    </item>
    <item>
      <title>Two Quotes on the Land</title>
      <link>https://jasonheppler.org/2025/10/25/two-quotes-on-the-land/</link>
      <pubDate>Sat, 25 Oct 2025 00:00:00 +0000</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>twoquotes</category><category>place</category><category>re-placing</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2025/10/25/two-quotes-on-the-land/</guid>
      <description>&lt;p&gt;Aldo Leopold:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What more delightful avocation than to take a piece of land and by cautious experimentation to prove how it works. What more substantial service to conservation than to practice it on one&amp;rsquo;s own land?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Edward Abbey:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;May your trails be crooked, winding, lonesome, dangerous, leading go the most amazing view. May your mountains rise into and above the clouds. It is not enough to fight for the land; it is even more important to enjoy it. While you can.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Aldo Leopold:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What more delightful avocation than to take a piece of land and by cautious experimentation to prove how it works. What more substantial service to conservation than to practice it on one&amp;rsquo;s own land?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Edward Abbey:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;May your trails be crooked, winding, lonesome, dangerous, leading go the most amazing view. May your mountains rise into and above the clouds. It is not enough to fight for the land; it is even more important to enjoy it. While you can.&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded>
      
    </item>
    <item>
      <title>The Farmall H Restoration, February Update</title>
      <link>https://jasonheppler.org/2025/02/27/the-farmall-h-restoration-february/</link>
      <pubDate>Thu, 27 Feb 2025 20:56:28 -0600</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>personal</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2025/02/27/the-farmall-h-restoration-february/</guid>
      <description>&lt;p&gt;With the weather starting to warm up in Nebraska, I&amp;rsquo;ve had a chance to start coming to terms with the Farmall H restoration project. I&amp;rsquo;m starting up a new series on this, and you can follow along in the &lt;a href=&#34;https://jasonheppler.org/tags/restoration/&#34;&gt;restoration category&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In my test drives I&amp;rsquo;ve done since getting it home and some closer inspections across the tractor, I&amp;rsquo;ve come to find a few things to look into. Here&amp;rsquo;s a brief rundown:&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;With the weather starting to warm up in Nebraska, I&amp;rsquo;ve had a chance to start coming to terms with the Farmall H restoration project. I&amp;rsquo;m starting up a new series on this, and you can follow along in the &lt;a href=&#34;https://jasonheppler.org/tags/restoration/&#34;&gt;restoration category&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In my test drives I&amp;rsquo;ve done since getting it home and some closer inspections across the tractor, I&amp;rsquo;ve come to find a few things to look into. Here&amp;rsquo;s a brief rundown:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Second gear of the transmission, or perhaps the final drive, whines a bit. This isn&amp;rsquo;t particularly surprising&amp;mdash;second gear was typically the heavy &amp;ldquo;working&amp;rdquo; gear for pulling plows or other equipment, so having worn down teeth on a gear is to be expected. However, International Harvester didn&amp;rsquo;t make this the &lt;em&gt;easiest&lt;/em&gt; thing to get in to (it&amp;rsquo;ll involve removing the gas tank, seat, steering tree, and of course popping the cover off the housing).&lt;/li&gt;
&lt;li&gt;I want to re-wire everything. A previous owner started this with new headlights, but didn&amp;rsquo;t finish it. I&amp;rsquo;ll likely pick up a new wiring kit and replace everything. Relatedly, I need a new battery box.&lt;/li&gt;
&lt;li&gt;The manifold is in pretty rough shape. Not only is it pretty well worn and pockmarked, but there&amp;rsquo;s a smattering of old welding along the exhaust outlet that must&amp;rsquo;ve come from a prior owner trying to weld on a straight pipe. I&amp;rsquo;ve already picked up a restoration quality muffler, so this project is partially done already. The manifold itself, however, will take some saving up to buy new unless I can find a good one at a swap meet or new old stock.&lt;/li&gt;
&lt;li&gt;The sediment bowl and fuel shutoff leak. And, unfortunately, I discovered the sediment bowl is cracked. Luckily, these things are cheap to replace and I already have one on the way.&lt;/li&gt;
&lt;li&gt;The tires need replacing. The seller I bought the tractor from had a spare set of rear tires, so I&amp;rsquo;m halfway to having this fixed. I&amp;rsquo;ll likely hire a mobile tire repair crew for this work&amp;mdash;I lack the equipment to break and set tire beads, and they&amp;rsquo;ll be able to get it done more quickly and safely than I can.&lt;/li&gt;
&lt;li&gt;A previous owner re-routed the choke rod and installed the on/off switch and a light switch onto the steering tree. I&amp;rsquo;d like to reroute all of this to its original 1946 positions.&lt;/li&gt;
&lt;li&gt;Regarding the driver’s area, I need a new steering wheel, new shifter, replace the seat shock, and replace the seat.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Certainly this list will continue to grow.&lt;/p&gt;
&lt;p&gt;My first step in the past week has been to drain everything: gasoline, oil, transmission fluid, hydraulic fluid, and coolant. The oil was quite dark, leading me to suspect it&amp;rsquo;s been quite a while since it&amp;rsquo;s been changed. Same goes for the transmission fluid: it shouldn&amp;rsquo;t be sludgy and rust colored, as you might see in the pictures. All the more reason I want to open up the transmission casing, both to check the gears closely but also get all the sludge and grime out of there.&lt;/p&gt;
&lt;p&gt;Speaking of which, there are layers of grime, grease, and dirt on this machine that have likely been there for decades. I&amp;rsquo;ve just started the work of trying to clean this up. Even shop-quality de-greaser is struggling to cut through the thick of it. A lot of it will come off as I start stripping off old paint, since one of my plans is to repaint the whole tractor. The good news is I suspect most of the work on the whole tractor is largely cosmetic. I intend to dig into the engine a bit just to check everything over, but the tractor runs great otherwise.&lt;/p&gt;
&lt;div class=&#34;masonry-grid&#34;&gt;
  &lt;img src=&#34;farmall-feb25-1eb7ba065b-2.webp&#34; alt=&#34;A red tractor is parked inside a well-organized garage with various tools and equipment on the walls and workbench.&#34;&gt;
  &lt;img src=&#34;farmall-feb25-de77cf9cd6-2.webp&#34; alt=&#34;A red Farmall tractor is parked in front of an old, weathered red barn surrounded by bare trees and patches of snow on the ground.&#34;&gt;
  &lt;img src=&#34;farmall-feb25-img-5575-2.webp&#34; alt=&#34;Three vintage manuals for Farmall tractors, including a parts catalog, operator&#39;s manual, and serviceman&#39;s guide, are displayed on a leather chair.&#34;&gt;
  &lt;img src=&#34;farmall-feb25-img-6140.webp&#34; alt=&#34;A hammer and a chisel with a yellow handle are placed inside a rusty metal container along with some coiled wires.&#34;&gt;
  &lt;img src=&#34;farmall-feb25-img-6143-2.webp&#34; alt=&#34;Underneath the vehicle, there is a circular metal component attached with supports and surrounded by pipes and tubing, indicating part of an automotive system.&#34;&gt;
  &lt;img src=&#34;farmall-feb25-img-6187.webp&#34; alt=&#34;A partially disassembled mechanical component with exposed gears is shown on a red surface.&#34;&gt;
  &lt;img src=&#34;farmall-feb25-img-6145-2.webp&#34; alt=&#34;An old, worn-out engine with rusted parts and red paint is displayed in a workshop setting.&#34;&gt;
  &lt;img src=&#34;farmall-feb25-img-6158-2.webp&#34; alt=&#34;A vintage red tractor with worn paint is parked inside a corrugated metal shed.&#34;&gt;
  &lt;img src=&#34;farmall-feb25-img-6161-2.webp&#34; alt=&#34;A cat is lounging comfortably on the seat of a red tractor.&#34;&gt;
  &lt;img src=&#34;farmall-feb25-img-6185-2.webp&#34; alt=&#34;A chain is attached to a rusty metal frame above a green container, with cardboard and a white bucket in the background.&#34;&gt;
  &lt;img src=&#34;farmall-feb25-img-6190.webp&#34; alt=&#34;An old, weathered farm tractor is shown in a workshop setting.&#34;&gt;
  &lt;img src=&#34;farmall-feb25-img-6192.webp&#34; alt=&#34;A large tire leans against a white wooden building in bright sunlight.&#34;&gt;
&lt;/div&gt;
</content:encoded>
      
    </item>
    <item>
      <title>Living in the News</title>
      <link>https://jasonheppler.org/2025/02/20/living-in-the-news/</link>
      <pubDate>Thu, 20 Feb 2025 15:38:05 -0600</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>personal</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2025/02/20/living-in-the-news/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://ckarchive.com/b/4zuvhehpp24m4t6ovveola6g9z777s5&#34;&gt;Oliver Burkeman&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[V]arious acquaintances – and me too, in some ways – started doing what I called “living inside the news.” They seemed to view the world they accessed through news sites and social media as somehow more real than their immediate surroundings. The latter was a place they merely dropped into from time to time, before hurrying back to the main event.&lt;/p&gt;
&lt;p&gt;[ . . . ]&lt;/p&gt;
&lt;p&gt;Keeping your centre of gravity immediate and local is the opposite of all that. It means treating the world of national and international events as a place that you visit – to campaign or persuade, donate or volunteer, to do whatever you feel is demanded of you – and that you then return from, in order to gain perspective, and to spend time doing some of the other things a meaningful life is about.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;a href=&#34;https://ckarchive.com/b/4zuvhehpp24m4t6ovveola6g9z777s5&#34;&gt;Oliver Burkeman&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[V]arious acquaintances – and me too, in some ways – started doing what I called “living inside the news.” They seemed to view the world they accessed through news sites and social media as somehow more real than their immediate surroundings. The latter was a place they merely dropped into from time to time, before hurrying back to the main event.&lt;/p&gt;
&lt;p&gt;[ . . . ]&lt;/p&gt;
&lt;p&gt;Keeping your centre of gravity immediate and local is the opposite of all that. It means treating the world of national and international events as a place that you visit – to campaign or persuade, donate or volunteer, to do whatever you feel is demanded of you – and that you then return from, in order to gain perspective, and to spend time doing some of the other things a meaningful life is about.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is why I&amp;rsquo;m trying to keep to &lt;a href=&#34;https://jasonheppler.org/2024/11/08/becoming-newsresilient/&#34;&gt;news-resiliency&lt;/a&gt;: there&amp;rsquo;s too much national and geopolitical news, and too much of it I cannot even meaningfully act on (except in &lt;a href=&#34;https://5calls.org/&#34;&gt;a few ways&lt;/a&gt;). It&amp;rsquo;s not to claim ignorance; rather, it&amp;rsquo;s to reclaim my attention. The whole point of the flurry of terrible news and decisions is to consume all of one&amp;rsquo;s time, energy, and attention. Don&amp;rsquo;t let them take it from you.&lt;/p&gt;
</content:encoded>
      
    </item>
    <item>
      <title>Recovering U.S. Government Data and Websites</title>
      <link>https://jasonheppler.org/2025/02/03/recovering-u.s.-government-data-and-websites/</link>
      <pubDate>Mon, 03 Feb 2025 12:31:40 -0600</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>academia</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2025/02/03/recovering-u.s.-government-data-and-websites/</guid>
      <description>&lt;p&gt;A number of years ago I founded, along with Brandon Locke and Sarah Melton, &lt;a href=&#34;https://endangereddataweek.org&#34;&gt;Endangered Data Week&lt;/a&gt;, designed to highlight threats to publicly available data as well as train folks to work with data. And while EDW wound down in 2020, the work and skills remain essential. The &lt;a href=&#34;https://eotarchive.org/&#34;&gt;End of Term Web Archiving team&lt;/a&gt; has been working hard to archive datasets and government websites that were at risk of being taken offline or have gone offline since January 20, as have the good folks over at &lt;a href=&#34;https://www.reddit.com/r/DataHoarder/&#34;&gt;r/DataHoarder&lt;/a&gt;.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;A number of years ago I founded, along with Brandon Locke and Sarah Melton, &lt;a href=&#34;https://endangereddataweek.org&#34;&gt;Endangered Data Week&lt;/a&gt;, designed to highlight threats to publicly available data as well as train folks to work with data. And while EDW wound down in 2020, the work and skills remain essential. The &lt;a href=&#34;https://eotarchive.org/&#34;&gt;End of Term Web Archiving team&lt;/a&gt; has been working hard to archive datasets and government websites that were at risk of being taken offline or have gone offline since January 20, as have the good folks over at &lt;a href=&#34;https://www.reddit.com/r/DataHoarder/&#34;&gt;r/DataHoarder&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Today, the &lt;em&gt;New York Times&lt;/em&gt; &lt;a href=&#34;https://www.nytimes.com/2025/02/02/upshot/trump-government-websites-missing-pages.html?unlocked_article_code=1.uE4.S5qA.5T9J8TTW9Pxx&amp;amp;smid=url-share&#34;&gt;has a good piece&lt;/a&gt; on the government websites that have gone offline.&lt;/p&gt;
</content:encoded>
      
    </item>
    <item>
      <title>Own Your Turf</title>
      <link>https://jasonheppler.org/2025/01/21/own-your-turf/</link>
      <pubDate>Tue, 21 Jan 2025 22:24:34 -0600</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>indie-web</category><category>twoquotes</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2025/01/21/own-your-turf/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.404media.co/decentralized-social-media-is-the-only-alternative-to-the-tech-oligarchy/&#34;&gt;Jason Koebler&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If it wasn’t already obvious, the last 72 hours have made it crystal clear that it is urgent to build and mainstream alternative, decentralized social media platforms that are resistant to government censorship and control, are not owned by oligarchs and dominated by their algorithms, and in which users own their follower list and can port it elsewhere easily and without restriction.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.mollywhite.net/micro/entry/202501190959&#34;&gt;Molly White&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The TikTok ban, the Musk Twitter takeover, the Facebook moderation policy changes, the Republicans’ rapidly intensifying crackdowns on speech… let these be the proof you needed to move anything you care about online to a space you control.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;a href=&#34;https://www.404media.co/decentralized-social-media-is-the-only-alternative-to-the-tech-oligarchy/&#34;&gt;Jason Koebler&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If it wasn’t already obvious, the last 72 hours have made it crystal clear that it is urgent to build and mainstream alternative, decentralized social media platforms that are resistant to government censorship and control, are not owned by oligarchs and dominated by their algorithms, and in which users own their follower list and can port it elsewhere easily and without restriction.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.mollywhite.net/micro/entry/202501190959&#34;&gt;Molly White&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The TikTok ban, the Musk Twitter takeover, the Facebook moderation policy changes, the Republicans’ rapidly intensifying crackdowns on speech… let these be the proof you needed to move anything you care about online to a space you control.&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded>
      
    </item>
    <item>
      <title>Friction</title>
      <link>https://jasonheppler.org/2025/01/21/friction/</link>
      <pubDate>Tue, 21 Jan 2025 09:36:28 -0600</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>indie-web</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2025/01/21/friction/</guid>
      <description>&lt;p&gt;When it comes to types of work I do, I like a certain amount of friction—what Alan Jacobs calls “&lt;a href=&#34;https://blog.ayjay.org/smooth-things-and-rough-ground/&#34;&gt;constructive friction&lt;/a&gt;.” The friction I mean here are the tools I use and how they can introduce the kind of friction that I find useful. Usually this means I tend to prefer tools that do &lt;em&gt;less&lt;/em&gt;—it’s one of the reasons &lt;a href=&#34;https://updates.jasonheppler.org/2023/11/29/default-apps-for/&#34;&gt;I often stick to default apps&lt;/a&gt;. Sure, I could (and once did, for a &lt;em&gt;long&lt;/em&gt; time) use Omnifocus to set up the perfect GTD environment loaded with perspectives for any possible slicing and dicing I could think of among my task list. But at some point that just became &lt;em&gt;fiddling&lt;/em&gt;, not &lt;em&gt;doing&lt;/em&gt;. I have a similar relationship with &lt;a href=&#34;https://getdrafts.com/&#34;&gt;Drafts&lt;/a&gt;, an app I love using but also has a degree of non-friction that often means the things I put there are often lost in the bucket of, er, drafts.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;When it comes to types of work I do, I like a certain amount of friction—what Alan Jacobs calls “&lt;a href=&#34;https://blog.ayjay.org/smooth-things-and-rough-ground/&#34;&gt;constructive friction&lt;/a&gt;.” The friction I mean here are the tools I use and how they can introduce the kind of friction that I find useful. Usually this means I tend to prefer tools that do &lt;em&gt;less&lt;/em&gt;—it’s one of the reasons &lt;a href=&#34;https://updates.jasonheppler.org/2023/11/29/default-apps-for/&#34;&gt;I often stick to default apps&lt;/a&gt;. Sure, I could (and once did, for a &lt;em&gt;long&lt;/em&gt; time) use Omnifocus to set up the perfect GTD environment loaded with perspectives for any possible slicing and dicing I could think of among my task list. But at some point that just became &lt;em&gt;fiddling&lt;/em&gt;, not &lt;em&gt;doing&lt;/em&gt;. I have a similar relationship with &lt;a href=&#34;https://getdrafts.com/&#34;&gt;Drafts&lt;/a&gt;, an app I love using but also has a degree of non-friction that often means the things I put there are often lost in the bucket of, er, drafts.&lt;/p&gt;
&lt;p&gt;One place where I felt friction getting in the way of what I wanted to do was blogging.&lt;/p&gt;
&lt;p&gt;I moved my website to Hugo years ago; before that it ran on Jekyll, and before that Wordpress. But something happened along the way: my writing in that space dwindled, and you can see it looking over my yearly archives. There are lots of likely reasons: life became busier, especially after having children; social media sucked up time and attention in a way that was detrimental; I had other writing outlets, or other kinds of writing I had to finish (like a dissertation or &lt;a href=&#34;https://www.oupress.com/9780806193748/silicon-valley-and-the-environmental-inequalities-of-high-tech-urbanism/&#34;&gt;book&lt;/a&gt;) that took my attention. But I’ve come to realize lately that the tool itself was also getting in my way.&lt;/p&gt;
&lt;p&gt;I’m someone who spends at least 70% of his workday in the command line. In the process of &lt;a href=&#34;https://rrchnm.org/&#34;&gt;building digital history&lt;/a&gt; I’m doing almost everything there: using &lt;a href=&#34;https://neovim.io/&#34;&gt;vim&lt;/a&gt; for code editing, &lt;a href=&#34;https://github.com/jesseduffield/lazygit&#34;&gt;managing&lt;/a&gt; GitHub Issues and commits, even &lt;a href=&#34;https://neomutt.org/&#34;&gt;email&lt;/a&gt;. I like working from the command line: it’s efficient, it gets out of the way, and it’s powerful. And often, the more I can do from there using just a keyboard the better. But blogging from the command line became one of those things that had more friction than necessary.&lt;/p&gt;
&lt;p&gt;This isn’t to say Hugo is a bad static site generator. We use it at &lt;a href=&#34;https://rrchnm.org&#34;&gt;RRCHNM&lt;/a&gt; for any static site; I continue to use it for my main website and don’t plan on moving anytime soon. But I found myself bumping up against a couple things.&lt;/p&gt;
&lt;p&gt;First: The whole process felt clunky. Or maybe I&amp;rsquo;ve just lost my patience with it. If I had an idea for a post, I had to navigate to my website directory on my computer. Then I had to fire off the bash script I wrote to generate a new markdown file (with some basic YAML metadata). Then I had to open that file, make a few changes to the metadata, and then I could start writing. Once I felt like the draft reached a state of publishable, I removed a &lt;code&gt;draft&lt;/code&gt; flag from the metadata, built the site locally to test things out, then pushed the change to GitHub, &lt;em&gt;then&lt;/em&gt; fired off another custom script that used &lt;code&gt;rsync&lt;/code&gt; to update the live site.&lt;/p&gt;
&lt;p&gt;That’s a lot of steps for one post. And if I was writing more than one thing in a week—let alone in a day—that was a lot of steps to have to repeat.&lt;/p&gt;
&lt;p&gt;I also had a tendency to fiddle—to tweak some aspect of my site design or layout that distracted from actually writing.&lt;/p&gt;
&lt;p&gt;Hugo, in this case, was getting in my way.&lt;/p&gt;
&lt;p&gt;Second: I wanted to be able to write from more than just my laptop. I’m a pretty frequent user of a keyboard and my iPad, but writing for my blog from the iPad was a difficult task. I explored some ways to get around this—things like using GitHub Actions or Netlify to have my website rebuild and redeploy anytime I pushed a change up to GitHub. But, again, that started to feel like a lot of steps just to write a blog post. I wanted to write, not set up technical infrastructure to write.&lt;/p&gt;
&lt;p&gt;So, Hugo from the command line became less of a space for me to write. It was &lt;mark&gt;un-constructive friction&lt;/mark&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Over the holidays, I &lt;a href=&#34;https://updates.jasonheppler.org/2025/01/06/over-the-weekend-i-finished/&#34;&gt;migrated&lt;/a&gt; my blog to Micro.blog. It’s been the perfect remedy: I can use mb’s web editor, or I can write in my preferred text editor, or MarsEdit, or Obsidian. For the first time in a while, I feel &lt;em&gt;compelled&lt;/em&gt; to blog and I can only credit the &lt;em&gt;ease&lt;/em&gt; at which I can now write and publish as the key shift. It&amp;rsquo;s a nice feeling.Micro.blog comes with all sorts of other advantages, including handling things I use to handle on my own:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I continue to own my own turf. While it’s not on my server anymore, the blog does live under my domain. And &lt;a href=&#34;https://www.manton.org/&#34;&gt;Manton&lt;/a&gt; has done a terrific job making it very easy to export the data if I ever decide to move elsewhere or return to Hugo.&lt;/li&gt;
&lt;li&gt;One of the things Micro.blog handles really well is different kinds of post. It handles tweet-length posts with ease, but over 300 characters gives you a title form to turn a short-form piece into something longer.&lt;/li&gt;
&lt;li&gt;It’s a great community, and Micro.blog makes it super simple to find communities. The &lt;a href=&#34;https://micro.blog/discover&#34;&gt;Discover&lt;/a&gt; page is a great way to find folks with similar interests, thanks especially to its emoji system of tagging those interest (🍿 for movies, 📷 for photography, 📚 for books, and more).&lt;/li&gt;
&lt;li&gt;In addition to blogging, Micro.blog supports &lt;a href=&#34;https://www.manton.org/2018/04/12/wavelength-for-microblog.html&#34;&gt;microcasts&lt;/a&gt; for short-form podcasts and, recently, introduced a concept of photo collections to easily make photo grids in posts. If you’re looking for an Instagram replacement, mb has you covered.&lt;/li&gt;
&lt;li&gt;Micro.blog lacks the incentive to shitpost, build your brand, troll, be toxic, or otherwise do things that our algorithmically-driven feeds have amplified on the web.&lt;/li&gt;
&lt;li&gt;Micro.blog has a built-in &lt;a href=&#34;https://micro.blog/books/search&#34;&gt;reading tracker&lt;/a&gt; that allows you to track your reading. But, since these are just posts, you can also easily expand these into long-form thoughts or review of a book.&lt;/li&gt;
&lt;li&gt;Micro.blog has some nice simple apps for working with the service. There’s the &lt;a href=&#34;https://help.micro.blog/t/third-party-apps/46&#34;&gt;official app&lt;/a&gt; itself, but also &lt;a href=&#34;https://epilogue.micro.blog/&#34;&gt;Epilogue&lt;/a&gt; for working with book tracking or &lt;a href=&#34;https://sunlit.io/&#34;&gt;Sunlit&lt;/a&gt; for just scrolling through photos.&lt;/li&gt;
&lt;li&gt;There’s no likes, no follower counts, no re-posts, no algorithms. When folks reply on micro.blog, it’s much more thoughtful and well-intentioned than any comment section you’ll find on the web.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Micro.blog as a place, then, is the right kind of constructive friction: ease of use for me, but also by design discourages the kind of toxicity the web has become. It has removed a piece of un-constructive friction in my digital life: including this piece, I have written three longer-form posts since the start of the year. In all of 2024 on my old blog, I only wrote five things. The ease of writing and the ease of handling different post lengths, at least so far, has helped unlock an outlet for my writing.&lt;/p&gt;
</content:encoded>
      
    </item>
    <item>
      <title>Lamentable Word</title>
      <link>https://jasonheppler.org/2025/01/21/lamentable-word/</link>
      <pubDate>Tue, 21 Jan 2025 08:30:46 -0600</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>writing</category><category>twoquotes</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2025/01/21/lamentable-word/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.antipope.org/charlie/blog-static/2013/10/why-microsoft-word-must-die.html&#34;&gt;Charlie Stross&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The reason I want Word to die is that until it does, it is unavoidable. I do not write novels using Microsoft Word. I use a variety of other tools, from Scrivener (a program designed for managing the structure and editing of large compound documents, which works in a manner analogous to a programmer’s integrated development environment if Word were a basic text editor) to classic text editors such as Vim. But somehow, the major publishers have been browbeaten into believing that Word is the sine qua non of document production systems. They have warped and corrupted their production workflow into using Microsoft Word .doc[x] files as their raw substrate, even though this is a file format ill-suited for editorial or typesetting chores. And they expect me to integrate myself into a Word-centric workflow, even though it’s an inappropriate, damaging, and laborious tool for the job. It is, quite simply, unavoidable. And worse, by its very prominence, we become blind to the possibility that our tools for document creation could be improved. It has held us back for nearly 25 years already; I hope we will find something better to take its place soon.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;a href=&#34;https://www.antipope.org/charlie/blog-static/2013/10/why-microsoft-word-must-die.html&#34;&gt;Charlie Stross&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The reason I want Word to die is that until it does, it is unavoidable. I do not write novels using Microsoft Word. I use a variety of other tools, from Scrivener (a program designed for managing the structure and editing of large compound documents, which works in a manner analogous to a programmer’s integrated development environment if Word were a basic text editor) to classic text editors such as Vim. But somehow, the major publishers have been browbeaten into believing that Word is the sine qua non of document production systems. They have warped and corrupted their production workflow into using Microsoft Word .doc[x] files as their raw substrate, even though this is a file format ill-suited for editorial or typesetting chores. And they expect me to integrate myself into a Word-centric workflow, even though it’s an inappropriate, damaging, and laborious tool for the job. It is, quite simply, unavoidable. And worse, by its very prominence, we become blind to the possibility that our tools for document creation could be improved. It has held us back for nearly 25 years already; I hope we will find something better to take its place soon.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.thenewatlantis.com/text-patterns/no-microsoft-word-really-is-that-bad&#34;&gt;Alan Jacobs&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In every book that I work on, the worst moment of the entire endeavor occurs when I have to convert my plain-text draft into Word format for my editors. I don’t have to open Word to do that, thanks to pandoc, whose use I explain &lt;a href=&#34;http://text-patterns.thenewatlantis.com/2014/07/the-right-tools-for-job.html&#34;&gt;here&lt;/a&gt;; but I know then that I have only a short time before they send me back an edited text which I will &lt;em&gt;have&lt;/em&gt; to open in Word. And from that point on there can be no joy in the labor, only misery. Microsoft Word is not just a terrible program. It is a terrible, horrible, no good, very bad program. It is the program than which no worse can be conceived. We hates it, preciousss. &lt;em&gt;We hates it&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded>
      
    </item>
    <item>
      <title>Two Quotes on Owning Your Turf</title>
      <link>https://jasonheppler.org/2025/01/21/two-quotes-on-owning-your-turf/</link>
      <pubDate>Tue, 21 Jan 2025 00:00:00 +0000</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>twoquotes</category><category>indie-web</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2025/01/21/two-quotes-on-owning-your-turf/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.404media.co/decentralized-social-media-is-the-only-alternative-to-the-tech-oligarchy/&#34;&gt;Jason Koebler&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If it wasn’t already obvious, the last 72 hours have made it crystal clear that it is urgent to build and mainstream alternative, decentralized social media platforms that are resistant to government censorship and control, are not owned by oligarchs and dominated by their algorithms, and in which users own their follower list and can port it elsewhere easily and without restriction.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.mollywhite.net/micro/entry/202501190959&#34;&gt;Molly White&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The TikTok ban, the Musk Twitter takeover, the Facebook moderation policy changes, the Republicans’ rapidly intensifying crackdowns on speech… let these be the proof you needed to move anything you care about online to a space you control.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;a href=&#34;https://www.404media.co/decentralized-social-media-is-the-only-alternative-to-the-tech-oligarchy/&#34;&gt;Jason Koebler&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If it wasn’t already obvious, the last 72 hours have made it crystal clear that it is urgent to build and mainstream alternative, decentralized social media platforms that are resistant to government censorship and control, are not owned by oligarchs and dominated by their algorithms, and in which users own their follower list and can port it elsewhere easily and without restriction.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.mollywhite.net/micro/entry/202501190959&#34;&gt;Molly White&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The TikTok ban, the Musk Twitter takeover, the Facebook moderation policy changes, the Republicans’ rapidly intensifying crackdowns on speech… let these be the proof you needed to move anything you care about online to a space you control.&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded>
      
    </item>
    <item>
      <title>Returning to Firefox</title>
      <link>https://jasonheppler.org/2025/01/19/returning-to-firefox/</link>
      <pubDate>Sun, 19 Jan 2025 19:16:46 -0600</pubDate>
      <author>jason@jasonheppler.org (Jason Heppler)</author>
      
      <category>tech-life</category>
      
      <guid isPermaLink="true">https://jasonheppler.org/2025/01/19/returning-to-firefox/</guid>
      <description>&lt;p&gt;For the &lt;a href=&#34;https://updates.jasonheppler.org/2025/01/16/ive-been-trying-out-the/&#34;&gt;past few weeks&lt;/a&gt; I&amp;rsquo;ve been using the Zen browser, a fork of Firefox that comes with some preference changes and nice interface updates: the vertical tabs are really nice, as is the workspace management. And, since it&amp;rsquo;s a fork of Firefox, all of my usual Firefox add-ons and my Mozilla account can sync with Zen.&lt;/p&gt;
&lt;p&gt;But, there were a few mild annoyances I kept running into, one being that Zen didn&amp;rsquo;t (yet) support Passkeys which I now use for a number of places since I&amp;rsquo;m all-in on Apple Passwords. But I also had some general concerns about Zen not keeping up with the update pace of Firefox itself, especially if security updates were needed. So, I decided to give Firefox a full try again.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;For the &lt;a href=&#34;https://updates.jasonheppler.org/2025/01/16/ive-been-trying-out-the/&#34;&gt;past few weeks&lt;/a&gt; I&amp;rsquo;ve been using the Zen browser, a fork of Firefox that comes with some preference changes and nice interface updates: the vertical tabs are really nice, as is the workspace management. And, since it&amp;rsquo;s a fork of Firefox, all of my usual Firefox add-ons and my Mozilla account can sync with Zen.&lt;/p&gt;
&lt;p&gt;But, there were a few mild annoyances I kept running into, one being that Zen didn&amp;rsquo;t (yet) support Passkeys which I now use for a number of places since I&amp;rsquo;m all-in on Apple Passwords. But I also had some general concerns about Zen not keeping up with the update pace of Firefox itself, especially if security updates were needed. So, I decided to give Firefox a full try again.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been a Safari user for a long while now (I stopped actively using Chrome years ago but Firefox was always around, especially the &lt;a href=&#34;https://www.mozilla.org/en-US/firefox/developer/&#34;&gt;development version&lt;/a&gt; for my day to day work). But Safari worked great, and its seamless syncing between my laptop and iOS devices was an added bonus. Plus I try to keep my apps &lt;a href=&#34;https://updates.jasonheppler.org/2023/11/29/default-apps-for/&#34;&gt;as close to default as I can&lt;/a&gt;, so Safari made sense. But as someone who cares a lot about the open web and the organizations that support it, I&amp;rsquo;ve always had a soft spot for Mozilla (including &lt;a href=&#34;https://foundation.mozilla.org/en/initiatives/mozilla-open-leaders/round-6/mentors/&#34;&gt;working with the Foundation&lt;/a&gt;) and Zen made me realize how much I missed supporting their cause.&lt;/p&gt;
&lt;p&gt;So I had some misgivings about Zen, and I&amp;rsquo;d rather support Firefox itself. So I decided to do some poking around and see how much of Zen&amp;rsquo;s features I liked I could replicate in Firefox. It turns out, I&amp;rsquo;ve basically achieved everything I like about Zen.&lt;/p&gt;
&lt;img src=&#34;screenshot-2025-01-18-at-9.17.53am.png&#34; width=&#34;600&#34; height=&#34;381&#34; alt=&#34;Auto-generated description: A webpage featuring Mozilla&#39;s mission statement about internet privacy, AI trust, and accountability for tech companies, along with grant and fellowship details.&#34;&gt;  
&lt;h2 id=&#34;vertical-tabs&#34;&gt;Vertical Tabs&lt;/h2&gt;
&lt;p&gt;Vertical tabs became a hot thing with the release of Arc: rather than page tabs across the top of your browser window like we&amp;rsquo;ve been doing for the past two decades, tabs are arranged to the left or right of the page viewer. The reason for this seems obvious: the horizontal tabs are limited by space because there&amp;rsquo;s only so much screen width the tabs can occupy before the must start shrinking down into smaller and smaller tabs. But vertical tabs stack, meaning you can scroll through a list instead of scan horizontally. In addition, features like tab grouping in vertical lists means any repeat URLs you have are collected together. For example, if you have multiple tabs open from economist.com, some implementations of vertical tabs will stack all of those open tabs under an Economist header and indent all related URLs to keep things organized. I typically keep my open tabs to a minimum, but on days when I&amp;rsquo;m doing a lot of work in the browser having these tabs grouped this way is a vastly superior experience to a horizontal tab bar.&lt;/p&gt;
&lt;p&gt;Zen implements this feature really well and gives you a few options to how those lay out: you can have a full sidebar that shows you a snippet of a page&amp;rsquo;s title, or you can do compact mode which reduces the vertical tabs to just the side&amp;rsquo;s favicons (this is my preference &amp;ndash; on mouseover, you get a preview of the page which for me mostly negates the need of seeing the title. But popping open the compact view is straightforward if I need to see more information.)&lt;/p&gt;
&lt;p&gt;The good news is that Firefox introduced an experimental version of this about five months ago and it can be easily enabled in the latest release.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to &lt;code&gt;about:config&lt;/code&gt; and tell Firefox you accept the risks.&lt;/li&gt;
&lt;li&gt;In the search bar for the preferences, search for &lt;code&gt;verticalTabs&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;You&amp;rsquo;re looking for the setting called &lt;code&gt;sidebar.verticalTabs&lt;/code&gt;. On that line, double click to set &lt;code&gt;sidebar.verticalTabs&lt;/code&gt; from &lt;code&gt;False&lt;/code&gt; to &lt;code&gt;True&lt;/code&gt; and the window will instantly switch the tabs.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That&amp;rsquo;s it. It&amp;rsquo;s still experimental, which is why we have to go through the &lt;code&gt;about:config&lt;/code&gt; instead of general settings. But so far in my experience it&amp;rsquo;s rock solid.&lt;/p&gt;
&lt;p&gt;Now, there&amp;rsquo;s one missing feature here. Zen has a concept of Workspaces for your tabs, which sort of works how Apple implemented a similar feature in Safari (and, I believe, Microsoft Edge also does). I can have different workspaces, like Work or Home or Research, and throw tabs into those workspaces. When I toggle between these workspaces, only those tabs that belong to that workspace appear in my tab navigation. I find this really helpful for organizing active tabs. It&amp;rsquo;s a feature I only sometimes remembered to use in Safari, but in Zen/Firefox I use it constantly because it&amp;rsquo;s just a click away right alongside the tabs.&lt;/p&gt;
&lt;p&gt;Firefox doesn&amp;rsquo;t have a native way to do this (&lt;a href=&#34;https://news.ycombinator.com/item?id=41307555&#34;&gt;yet&lt;/a&gt;?), but I&amp;rsquo;ve been giving the add-on &lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/simple-tab-groups/&#34;&gt;Simple Tab Groups&lt;/a&gt; a try and it mostly replicates the experience. It&amp;rsquo;s not quite as visually smooth as Zen&amp;rsquo;s implementation, but for now it&amp;rsquo;s close enough for me.&lt;/p&gt;
&lt;h2 id=&#34;firefox-view&#34;&gt;Firefox View&lt;/h2&gt;
&lt;p&gt;One feature I&amp;rsquo;ve not seen any other browser implement is what Mozilla calls Firefox View, and it&amp;rsquo;s really nice. View collects all of your tabs (currently open, recently closed, and tabs from other devices) all in one place in a simple interface. It&amp;rsquo;s a nice way to to fetch something from another device or find something in my browsing history.&lt;/p&gt;
&lt;img src=&#34;screenshot-2025-01-18-at-9.22.47am.png&#34; width=&#34;600&#34; height=&#34;381&#34; alt=&#34;Auto-generated description: A screenshot of the Firefox browser displays the Recent browsing section, showing a list of open and recently closed tabs alongside a sidebar menu with several navigation options.&#34;&gt;  
&lt;h2 id=&#34;ios--ipados&#34;&gt;iOS / iPadOS&lt;/h2&gt;
&lt;p&gt;The one misgiving I have about Firefox is not Mozilla&amp;rsquo;s fault: the iOS/iPadOS app.&lt;/p&gt;
&lt;p&gt;Apple restricts how much third party browsers are able to do, meaning that they are really just wrappers around Safari/WebKit (that is, it&amp;rsquo;s Safari under the hood with different user chrome). This means my plugins are not usable since Apple&amp;rsquo;s WebKit plugin architecture is proprietary and &lt;a href=&#34;https://support.mozilla.org/en-US/kb/add-ons-firefox-ios&#34;&gt;only Safari can install plugins&lt;/a&gt;.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; A potential work-around especially for things like tracking blocking is &lt;a href=&#34;https://www.mozilla.org/en-US/firefox/browsers/mobile/focus/&#34;&gt;Firefox Focus&lt;/a&gt;, but because it&amp;rsquo;s designed to be privacy centric it does not include your Mozilla profile.&lt;/p&gt;
&lt;p&gt;For now that means I&amp;rsquo;m sticking with Safari on my phone and iPad because I still want access to the plugins I use. I might lose some potential helpful integrations this way (like tab syncing), but I&amp;rsquo;m perfectly happy with Safari.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h2 id=&#34;zen-features-ive-ignored&#34;&gt;Zen features I&amp;rsquo;ve ignored&lt;/h2&gt;
&lt;p&gt;There are a few things Zen does that I would place into the realm of &amp;ldquo;window management&amp;rdquo;: things like web panels and split view, which are neat but not things I usually need so they&amp;rsquo;re not coming over to my Firefox. (There are ways to do this through add-ons, though, if you do like these features. Poke around &lt;a href=&#34;https://old.reddit.com/r/firefox/&#34;&gt;the Firefox subreddit&lt;/a&gt; and you can find ways to do these things.)&lt;/p&gt;
&lt;p&gt;I think what Zen is doing is actually very good: innovations in browsers, especially ones not built with Chromium, is a good thing for the web and a good thing for users. And, perhaps, Firefox will &lt;a href=&#34;https://www.npr.org/2024/06/17/g-s1-4912/apple-app-store-obsolete-sherlocked-tapeacall-watson-copy&#34;&gt;sherlock&lt;/a&gt; a few of these features into the core browser. But I want to support Firefox, and I appreciate Zen demonstrating another way to experience how we interact with the web.&lt;/p&gt;
&lt;h2 id=&#34;extensions&#34;&gt;Extensions&lt;/h2&gt;
&lt;p&gt;Here are the current add-ons I have for Firefox:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.zotero.org/download/&#34;&gt;Zotero&lt;/a&gt;: Bibliographic management, and probably the one digital tool I&amp;rsquo;ve been using the longest.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/unpaywall/&#34;&gt;Unpaywall&lt;/a&gt;: Another scholarly tool. An open database of 20+ million scholarly works. If I&amp;rsquo;m on a page for an article, it notifies me if there&amp;rsquo;s a legal open access version and provides a link to it.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/&#34;&gt;uBlock&lt;/a&gt;: The go-to for content blocking.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/ublacklist/&#34;&gt;uBlacklist&lt;/a&gt;: I primarily use this to block AI slop and content farms results in my Google search. Works great.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/chrome-mask/?utm_source=addons.mozilla.org&amp;amp;utm_medium=referral&amp;amp;utm_content=search&#34;&gt;Chrome Mask&lt;/a&gt;: Optionally make Firefox look like Chrome to websites.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/bot-sentinel/?utm_source=addons.mozilla.org&amp;amp;utm_medium=referral&amp;amp;utm_content=search&#34;&gt;Bot Sentinel&lt;/a&gt;: Notify me if an online account is a bot, toxic account, content farm, or toll. Less useful now that I never go on Twitter but I keep it around.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/&#34;&gt;Firefox Multi-Account Containers&lt;/a&gt;: Keep cookies separated by containers.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/?utm_source=addons.mozilla.org&amp;amp;utm_medium=referral&amp;amp;utm_content=search&#34;&gt;Privacy Badger&lt;/a&gt;: An extra layer of tracker blocking on the web.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/simple-tab-groups/&#34;&gt;Simple Tab Groups&lt;/a&gt;: For workspace-like tab management.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/view-page-archive/?utm_source=addons.mozilla.org&amp;amp;utm_medium=referral&amp;amp;utm_content=search&#34;&gt;Web Archives&lt;/a&gt;: Come across a page that no longer exists? This extension looks it up in the Internet Archive and delivers an older version of it.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/udm-14/?utm_source=addons.mozilla.org&amp;amp;utm_medium=referral&amp;amp;utm_content=search&#34;&gt;&amp;amp;udm=14&lt;/a&gt;: I don&amp;rsquo;t Google&amp;rsquo;s AI-generated results helpful in my search results. This lets me avoid it by appending &lt;code&gt;&amp;amp;udm=14&lt;/code&gt; to Google search results.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/adaptive-tab-bar-colour/?utm_source=addons.mozilla.org&amp;amp;utm_medium=referral&amp;amp;utm_content=search&#34;&gt;Adaptive Tab Bar Color&lt;/a&gt;: Color the tab bar the same as a site&amp;rsquo;s theme.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/icloud-passwords/?utm_source=addons.mozilla.org&amp;amp;utm_medium=referral&amp;amp;utm_content=search&#34;&gt;iCloud Passwords&lt;/a&gt;: I use Apple Passwords, and this Apple-created add-on integrates Passwords with Firefox. Not excellent yet, at least not as seamless as using in Safari. Occasionally causes some sites to become slow.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/firefox-translations/?utm_source=addons.mozilla.org&amp;amp;utm_medium=referral&amp;amp;utm_content=search&#34;&gt;Firefox Translations&lt;/a&gt;: Mozilla&amp;rsquo;s implementation of a site translation tool.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/fakespot-fake-reviews-amazon/&#34;&gt;Fakespot&lt;/a&gt;: An excellent tool for spotting bot-manipulated reviews in places like Amazon and other online stores.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;&lt;a href=&#34;https://help.kagi.com/orion/browser-extensions/macos-extensions.html&#34;&gt;The Orion browser&lt;/a&gt; by Kagi can install Chrome and Firefox extensions through what must&amp;rsquo;ve been a monumental amount of engineering work, but I&amp;rsquo;ve not given this a try yet.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;I&amp;rsquo;m of two minds about this restriction. I would love to see more creative approaches to mobile browsing by allowing third party browser engines on iOS devices. On the other hand, not even Android supports Chrome&amp;rsquo;s extensions all that well. So I&amp;rsquo;m also doubtful that extensions will work well on mobile devices with custom browsers, at least not on par with their implementation on desktops.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content:encoded>
      
    </item>
    
  </channel>
</rss>
