<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>baty.net</title>
  <link href="https://baty.net/index.xml" rel="self"/>
  <link href="https://baty.net/"/>
  
  <updated>2026-05-20T08:51:38Z</updated>
  
  <id>https://baty.net/</id>
  <author><name>Jack Baty</name><email>jack@baty.net</email></author>
  
  <entry>
    <title>Virtual OS Museum</title>
    <link href="https://baty.net/notes/2026/05/virtual-os-museum/"/>
    <id>https://baty.net/notes/2026/05/virtual-os-museum/</id>
    <updated>2026-05-20T08:51:38Z</updated>
    <content type="html"><![CDATA[<p><a href="https://virtualosmuseum.org/">The Virtual OS Museum</a></p>
<blockquote>
<p>Want to see the earliest resident monitors? The ancestor of all modern OSes (CTSS)? The earliest versions of Unix? The first OS with a desktop metaphor GUI (Xerox Star Pilot/ViewPoint)? Early versions of mainstream OSes? If you want to explore historical OSes and platforms without having to worry about configuring/installing emulators and OSes or corrupting emulated installations, you’ve come to the right place.</p>
</blockquote>
<p>Amazed that this exists. I'm not an OS nerd, but maybe I will be after downloading this.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Virtual%20OS%20Museum">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>The Emacsification of Software</title>
    <link href="https://baty.net/notes/2026/05/the-emacsification-of-software/"/>
    <id>https://baty.net/notes/2026/05/the-emacsification-of-software/</id>
    <updated>2026-05-19T09:39:22Z</updated>
    <content type="html"><![CDATA[<p><a href="https://sockpuppet.org/blog/2026/05/12/emacsification/">The Emacsification of Software — Quarrelsome</a></p>
<blockquote>
<p>If you look at /r/emacs, it’s 0% Product Hunt, 100% show-and-tell.</p>
</blockquote>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: The%20Emacsification%20of%20Software">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Monday, May 18, 2026</title>
    <link href="https://baty.net/journal/18May26/"/>
    <id>https://baty.net/journal/18May26/</id>
    <updated>2026-05-18T10:42:18Z</updated>
    <content type="html"><![CDATA[<figure><img src="https://baty.net/img/2026/20260518-scooter.webp" alt="Black and white film photo of a scooter"><figcaption>Scooter (2009). Leica M6 TTL</figcaption></figure><p>It's getting to the point where many of the blog posts I read all say the same things. Whether it's about A.I. being good/evil, how everything is being enshittified, using the word &quot;enshittified&quot;, that film photography slows me down and feels more real, how the &quot;Smol web&quot; will save us (It's spelled &quot;small&quot; btw), that Apple isn't what it used to be, billionaires are terrible, and so on. I often stop reading posts the minute I recognize a trope. It's not fair to the authors, really, but for now I've had my fill.</p>
<hr>
<p>Hurray: <a href="https://github.com/fasheng/elfeed-protocol/commit/1bce941d8cb68a31cf2c2db46c91331d9bb3c0e4">elfeed: Fix compatibility with latest elfeed (#73)</a>. Elfeed-protocol stopped working after recent Elfeed updates. It's been fixed.</p>
<hr>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Monday%2C%20May%2018%2C%202026">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Sunday, May 17, 2026</title>
    <link href="https://baty.net/journal/17May26/"/>
    <id>https://baty.net/journal/17May26/</id>
    <updated>2026-05-17T11:20:14Z</updated>
    <content type="html"><![CDATA[<figure><img src="https://baty.net/img/2026/20260517-fire-chief.webp" alt="Me as child in a Fire Chief wagon"><figcaption>Me in Fire Chief wagon (1970s)</figcaption></figure><p>I made a few improvements to the home page layout. Earlier attempts at distinguishing post types only made things worse and more cluttered. Now, spacing and typography is similar for all types. I think it looks less staggered. I moved metadata beneath titles and made tag links more subtle. Removed the date on Journal posts, since it was redundant. It's fun making little tweaks like this.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Sunday%2C%20May%2017%2C%202026">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Unsocial Sundays</title>
    <link href="https://baty.net/notes/2026/05/unsocial-sundays/"/>
    <id>https://baty.net/notes/2026/05/unsocial-sundays/</id>
    <updated>2026-05-17T09:57:50Z</updated>
    <content type="html"><![CDATA[<p>Thinking of starting a routine of &quot;Unsocial Sundays&quot; during which I avoid all social media. Today is Sunday, it's 05:52 AM, and I'm already twitchy about it. Worth a try, though.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Unsocial%20Sundays">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Stick with it</title>
    <link href="https://baty.net/posts/2026/05/stick-with-it/"/>
    <id>https://baty.net/posts/2026/05/stick-with-it/</id>
    <updated>2026-05-16T13:49:26Z</updated>
    <content type="html"><![CDATA[<p>A link from <a href="https://baty.net/notes/2026/05/dave-gauer-on-ascetic-computing/">an earlier note</a> lead me to:</p>
<p><a href="https://blog.avas.space/you-can-stick-with-it/">you can stick with it | ava's blog</a></p>
<blockquote>
<p>Trying out new tools and things is generally cool and I love reading the hands-on experiences, but in this case, I just see people running through things anxiously with no direction seeming stressed and sad.</p>
</blockquote>
<p>The behavior Ava describes fits me, but only to a point. I'll tell you why.</p>
<!-- more -->
<p>Sure, I try new tools and things all the time, but my motivation is different. I don't try them because I'm unhappy and looking for the perfect tool. OK, sometimes that's part of it, but mostly I do it because I'm curious and I enjoy the process of learning about new software, processes, etc. I go in knowing it may only last a few weeks. So what? I learned something and had fun doing it.</p>
<p>There's also the boredom factor. Since &quot;retiring&quot;, I have a lot of time on my hands, much of which is spent staring at a computer screen and wondering, &quot;Hmmm, what should I play with, today?&quot; Then it begins.</p>
<p>A side effect of all this causes me to say, &quot;Where did I write/post/record/put that?&quot; much too often. It can get frustrating. Fumbling around with keyboard shortcuts because every app is different can be crazy-making. Things break because I changed them again. It's anything <em>but</em> productive.</p>
<p>I must think that switching things up regularly is worth the trouble, since I keep doing it.</p>
<p>Honestly, I often wish I wasn't like this. My ideal self is someone who started using Emacs in 1995 and has never tried anything else. I wish I was still posting on a Wordpress blog from 2005 that never changes. I wish I kept my original Leica M camera, used it for everything all the time, and never considered others. I wish I'd have used the same form of journaling since high</p>
<p>But, I <em>am</em> like this, and haven't done any of the things my ideal self wants. Like sticking with it.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Stick%20with%20it">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Dave Gauer on Ascetic Computing</title>
    <link href="https://baty.net/notes/2026/05/dave-gauer-on-ascetic-computing/"/>
    <id>https://baty.net/notes/2026/05/dave-gauer-on-ascetic-computing/</id>
    <updated>2026-05-16T13:39:40Z</updated>
    <content type="html"><![CDATA[<p><a href="https://ratfactor.com/ascetic-computing">Ascetic Computing - ratfactor</a> by Dave Gauer resonated with me. I have
been unable to &quot;Reduce &amp; Simplify&quot; or &quot;Use What I Have&quot;, even after
years of trying. My definition of what &quot;simple&quot; means changes daily. Still working on it.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Dave%20Gauer%20on%20Ascetic%20Computing">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Saturday, May 16, 2026</title>
    <link href="https://baty.net/journal/16May26/"/>
    <id>https://baty.net/journal/16May26/</id>
    <updated>2026-05-16T11:30:30Z</updated>
    <content type="html"><![CDATA[<figure><img src="https://baty.net/img/2026/20260516-snout.webp" alt="Pig snout sticking through fence"><figcaption>Snout (2007)</figcaption></figure><p>I changed the body font here to Instrument Sans. For some reason, I find that serif fonts in blog posts feel pretentious. It's not me.</p>
<hr>
<p>I asked Claude Code to convert my entire denote directory to use Org-roam style links. I wanted to try Org-roam again, but without losing work. Took Claude 20 minutes.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Saturday%2C%20May%2016%2C%202026">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Logging life in Tinderbox</title>
    <link href="https://baty.net/posts/2026/05/logging-life-in-tinderbox/"/>
    <id>https://baty.net/posts/2026/05/logging-life-in-tinderbox/</id>
    <updated>2026-05-13T15:37:20Z</updated>
    <content type="html"><![CDATA[<p>Dave wrote about <a href="https://nice-marmot.net/Archives/2026/May_2026.html#note_3649">his Captain's Log</a>, into which he logs information &quot;too trivial to remember, but too important to forget.&quot; It's a <a href="https://eastgate.com/Tinderbox">Tinderbox</a> document.</p>
<p>A later <a href="https://jacobevans.net/linked/2026/05/dave-s-captain-s-log.html">post from Jacob Evans</a> described his own &quot;LifeBox&quot; kept in Tinderbox.</p>
<p>These two posts resonated with me, as I've used Tinderbox for the same thing since 2008. See my post, <a href="https://archive.baty.net/2008/tinderbox-as-a-daybook/">Tinderbox as a Daybook</a>, from that year.</p>
<p>Last year I revamped the Daybook and went all in.</p>
<!-- more -->
<p>I now call it my &quot;LifeBook&quot; and it's awesome.</p>
<figure>
<img src="/img/2026/20260513-tinderbox-lifebook.webp">
<figcaption>My Tinderbox "LifeBook"</figcaption>
</figure>
<p>Unfortunately, I have been inconsistent in its use. I blame Emacs, and more recently, Linux. Tinderbox is macOS only, so my foray into using Linux has made me second guess using any tools that are Mac only. Even great ones like Tinderbox. Maybe it's time for a third guess.</p>
<p>Last week I started logging there again because I missed it. The posts from Dave and Jacob have inspired me to continue.</p>
<p>One thing that has always held me back is difficulty with managing files (images and PDFs) related to my notes. Tinderbox doesn't excel at file management, so I took what I learned from using org mode and tried <a href="https://baty.net/posts/2024/11/forging-org-attach-features-into-tinderbox/">Forging org-attach features into Tinderbox</a>. It's a messy work in process, but it works. I'm only using it for  PDFs, now, because Tinderbox's performance has improved and WebP images are quite small. It should be fine embedding those. If only tinderbox better handled paths relative to the current document, I wouldn't need all this. Oooh, or even if .tbx files could become bundles that automatically managed attachments. Maybe one day.</p>
<p>If I were to decide to stop using Tinderbox and use, say Org Mode instead, it's not a problem because Tinderbox's export features can get me anything I want out of it.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Logging%20life%20in%20Tinderbox">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Sunday, May 10, 2026</title>
    <link href="https://baty.net/journal/10May26/"/>
    <id>https://baty.net/journal/10May26/</id>
    <updated>2026-05-10T10:21:18Z</updated>
    <content type="html"><![CDATA[<figure><img src="https://baty.net/img/2026/20260510-desk.webp" alt="Black and white film photo of my desk"><figcaption>Workin&#39;?</figcaption></figure><p>This morning started off as another &quot;Emacs tripped me up again so I should use something else.&quot; mood. It passed, because everything else is worse in more ways.</p>
<p>I don't mind tinkering with Emacs, but I can't stand <em>fixing</em> Emacs when something goes pear-shaped. It seems like something is always going pear-shaped.</p>
<hr>
<p>My corner of the internet this morning is nothing but navel gazing and hand wringing. I may need to go do something else for a while.</p>
<hr>
<p>What a day for networks. My UGREEN NAS suddenly dropped off the network. Reboots didn't help, so I moved ethernet cables around. It works now, but I wish I understood why. Mostly I either jiggled or restarted everything and it started working. You just know this is going to blow up again some day.</p>
<p>Then, while at my parents' celebrating Mother's Day, we noticed his internet was down. Turns out his WiFi had stopped working, so Xfinity sent a new router. It seemed like the network was insisting that he set it up. So I did. Different network name/password, which meant updating every wifi-dependent device in the house. I'm just glad my dad isn't a nerd. It was mostly iPhones, the TV, and a camera. Still took an hour and a half.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Sunday%2C%20May%2010%2C%202026">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>How Chris Aldrich uses his typewriters</title>
    <link href="https://baty.net/notes/2026/05/how-chris-aldrich-uses-his-typewriters/"/>
    <id>https://baty.net/notes/2026/05/how-chris-aldrich-uses-his-typewriters/</id>
    <updated>2026-05-09T11:16:00Z</updated>
    <content type="html"><![CDATA[<p><a href="https://boffosocko.com/2026/05/07/faq-how-do-you-use-your-typewriters/">FAQ: How do you use your typewriters? | Chris Aldrich</a></p>
<blockquote>
<p>Below are some various recent uses I’ve made of my typewriter collection</p>
</blockquote>
<p>I have a handful of nice typewriters that sit unused. I would really like to change that. Chris' list gives me a few ideas.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: How%20Chris%20Aldrich%20uses%20his%20typewriters">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Taken</title>
    <link href="https://baty.net/notes/2026/05/taken/"/>
    <id>https://baty.net/notes/2026/05/taken/</id>
    <updated>2026-05-09T10:39:24Z</updated>
    <content type="html"><![CDATA[<p><a href="https://sinceyouarrived.world/taken">taken. — Since You Arrived Vol. IV</a></p>
<blockquote>
<p>You opened this page. It already knows the following.</p>
</blockquote>
<p>I already knew most of this, but it's still alarming to see it all at once.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Taken">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Thursday, May 7, 2026</title>
    <link href="https://baty.net/journal/07May26/"/>
    <id>https://baty.net/journal/07May26/</id>
    <updated>2026-05-07T16:39:49Z</updated>
    <content type="html"><![CDATA[<figure><img src="https://baty.net/img/2026/20260507-dogs.webp" alt="Black and white photo of two dogs facing each other"><figcaption>My Dogs (2009)</figcaption></figure><p>I get a lot of newsletters, the traditional way, via email. Those newsletters often contain links to interesting things. Unfortunately, people <em>love</em> metrics, causing many of those newsletters to obfuscate the URLs with tracking links. I don't usually bother clicking those, because I can't hover over a link and see where it's really going. The ones I <em>do</em> click are usually blocked by my network filters. I'm not paranoid as much as just annoyed. Parannoyed?</p>
<hr>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Thursday%2C%20May%207%2C%202026">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Wednesday, May 6, 2026</title>
    <link href="https://baty.net/journal/06May26/"/>
    <id>https://baty.net/journal/06May26/</id>
    <updated>2026-05-06T16:11:01Z</updated>
    <content type="html"><![CDATA[<p>I gotta start bugging Claude Code to help me make adding images here easier, before I'm sucked backed into Ghost.</p>
<hr>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Wednesday%2C%20May%206%2C%202026">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Monday, May 4, 2026</title>
    <link href="https://baty.net/journal/04May26/"/>
    <id>https://baty.net/journal/04May26/</id>
    <updated>2026-05-04T16:19:25Z</updated>
    <content type="html"><![CDATA[<figure><img src="https://baty.net/img/2026/20260504-sansui.webp" alt="Closeup of Sansui Integrated Amplifier"><figcaption>Sansui AU 6900 Integrated amplifier</figcaption></figure><p>I have many ways to listen to music. Vinyl, cassette, streaming, etc. Lately I haven't been listening to much music. I don't know why.</p>
<hr>
<p>I cut myself on both edges of the Emacs sword. Even so, I've been having so much fun with Emacs I can hardly stand it.</p>
<hr>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Monday%2C%20May%204%2C%202026">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Grove.el</title>
    <link href="https://baty.net/notes/2026/05/grove-el/"/>
    <id>https://baty.net/notes/2026/05/grove-el/</id>
    <updated>2026-05-04T11:12:24Z</updated>
    <content type="html"><![CDATA[<p><a href="https://github.com/jonathanchu/grove">Grove.el</a> is &quot;An Obsidian-like note-taking mode for Emacs&quot;. I'm already overloaded with note-taking tools, but Grove is an interesting take on the idea.</p>
<p>It's from <a href="https://jonathanchu.is/">Jonathan Chu</a>. Here's the <a href="https://jonathanchu.is/posts/introducing-grove/">introductory post</a>.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Grove.el">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Sunday, May 3, 2026</title>
    <link href="https://baty.net/journal/03May26/"/>
    <id>https://baty.net/journal/03May26/</id>
    <updated>2026-05-03T14:14:40Z</updated>
    <content type="html"><![CDATA[<figure><img src="https://baty.net/img/2026/20260503-phat-farm.webp" alt="Black and white film photo of old Phat Farm shoes"><figcaption>Phat Farms (2012). Hasselblad 500C/M | Delta 100 | Zeiss 150 Sonnar | Rodinal 1:50</figcaption></figure><p>I'm on my own this weekend, which isn't good for being productive in real life. I am on such a roll cleaning things up, digitally. My Emacs config, my <a href="https://baty.net/posts/2026/05/from-web-page-to-nice-printable-pdf-for-reading-later/">Read Later</a> process. Next up, backups. Or maybe more Emacs! I did make time for laundry, a water change in the fish tank, and cleaning the interior of my wife's car. Not a lot, but enough for me to finish the day doing some guilt-free farting around.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Sunday%2C%20May%203%2C%202026">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>From web page to printable PDF for reading later</title>
    <link href="https://baty.net/posts/2026/05/from-web-page-to-nice-printable-pdf-for-reading-later/"/>
    <id>https://baty.net/posts/2026/05/from-web-page-to-nice-printable-pdf-for-reading-later/</id>
    <updated>2026-05-03T13:06:57Z</updated>
    <content type="html"><![CDATA[<figure><img src="https://baty.net/img/2026/20260503-example-pdf.png" alt="Screenshot of PDF"><figcaption>Sample PDF output</figcaption></figure><p>Rather than using a normal-person's &quot;Read Later&quot; service, I print long-form web articles for reading later. I print them, pile them up, and read them all when I have some time away from the computer. It's the only way I can truly pay attention to them.</p>
<p>The process took some work to dial in, but I've gotten it close to how I like it. It goes like this:</p>
<ol>
<li>Save the page as Markdown using the <a href="https://obsidian.md/clipper">Obsidian Web Clipper</a></li>
<li>Convert the Markdown to PDF using <a href="https://pandoc.org">Pandoc</a></li>
<li>Print!</li>
</ol>
<!-- more -->
<p>First, the Obsidian Web Clipper. I have a custom &quot;template&quot; configured for this. The template doesn't use Properties. I put the entire block of front matter into the Content field, using variables to insert the specifics, so no need to worry about the way the clipper renders properties...</p>
<pre><code class="language-yaml">---
title: &quot;{{title}}&quot;
author: &quot;{{author|safe_name}}&quot;
source: {{url}}
created: {{date}}
published: {{published|date:&quot;YYYY-MM-DD&quot;}}
---

&gt; ## Excerpt
&gt; {{description}}

{{content}}
</code></pre>
<p>A copy of the template for importing directly into the web clipper is <a href="https://static.baty.net/code/obsidia-web-clipper-for-pandoc.json">here</a></p>
<p>The magic comes from Pandoc. I convert the Markdown to PDF via LaTeX. The <code>default.latex</code> template that ships with Pandoc works well. It uses all sorts of variables that can be passed in via YAML front matter or via a defaults file. I only just learned about the default file option, so that cleaned up the front matter dramatically. Here's my ~/.pandoc/defaults/article.yaml defaults file:</p>
<pre><code class="language-yaml">pdf-engine: xelatex
template: ~/.pandoc/templates/default.latex

variables:
  documentclass: scrartcl
  mainfont: XCharter
  sansfont: Playfair Display
  linestretch: 1.15
  header-includes:
    - \setkomafont{title}{\sffamily\bfseries}
    - \setkomafont{section}{\sffamily\bfseries}
    - \setkomafont{subsection}{\sffamily\bfseries}
  classoption:
    - DIV=14
    - twocolumn 
</code></pre>
<p>This sets fonts, sizes, document class, etc. The <code>DIV=14</code> is new to me. With KOMA classes, it sets the text width, taking font size into account. This is easier than including specific geometry. Smaller numbers = narrower text. Drop the <code>twocolumn</code> line to print full-width.</p>
<p>I could create separate default files for different layouts and styles. Use the -d option, e.g. <code>pandoc -d article</code>. I might make one for use on the Remarkable tablet, which likes a larger font and wider body.</p>
<p>A shell script, <code>md2pdf.sh</code> does the conversion for me. The script used to be about 10 lines of sloppy bash with a bunch of stuff hard-coded. I had Claude help me make it more robust, and here's the latest version:</p>
<pre><code class="language-bash">#!/bin/sh
set -eu

DEFAULT_DEFAULTS_FILE=&quot;$HOME/.pandoc/defaults/article.yaml&quot;

usage() {
    cat &gt;&amp;2 &lt;&lt;EOF
Usage: $(basename &quot;$0&quot;) [OPTIONS] FILE

Convert a Markdown file to PDF with pandoc and open it.

Options:
  -o DIR    Output directory (default: same directory as FILE)
  -d FILE   Pandoc defaults file (default: $DEFAULT_DEFAULTS_FILE)
  -n        Don't open the PDF after creating it
  -h        Show this help
EOF
    exit 1
}

output_dir=&quot;&quot;
defaults_file=&quot;$DEFAULT_DEFAULTS_FILE&quot;
open_after=1

while getopts &quot;o:d:nh&quot; opt; do
    case &quot;$opt&quot; in
        o) output_dir=&quot;$OPTARG&quot; ;;
        d) defaults_file=&quot;$OPTARG&quot; ;;
        n) open_after=0 ;;
        h) usage ;;
        *) usage ;;
    esac
done
shift $((OPTIND - 1))

[ $# -ge 1 ] || usage

input=&quot;$1&quot;

if [ ! -f &quot;$input&quot; ]; then
    echo &quot;Error: input file '$input' not found&quot; &gt;&amp;2
    exit 1
fi

if [ ! -f &quot;$defaults_file&quot; ]; then
    echo &quot;Error: defaults file '$defaults_file' not found&quot; &gt;&amp;2
    exit 1
fi

# Default output dir to source dir
[ -n &quot;$output_dir&quot; ] || output_dir=$(dirname &quot;$input&quot;)
mkdir -p &quot;$output_dir&quot;

stem=$(basename &quot;$input&quot;)
stem=&quot;${stem%.*}&quot;
output=&quot;$output_dir/$stem.pdf&quot;

# Capture pandoc stderr so we can report it clearly on failure
log=$(mktemp)
trap 'rm -f &quot;$log&quot;' EXIT

if ! pandoc --defaults &quot;$defaults_file&quot; &quot;$input&quot; -o &quot;$output&quot; 2&gt;&quot;$log&quot;; then
    echo &quot;pandoc failed converting '$input'&quot; &gt;&amp;2
    echo &quot;----- pandoc output -----&quot; &gt;&amp;2
    cat &quot;$log&quot; &gt;&amp;2
    echo &quot;-------------------------&quot; &gt;&amp;2
    echo &quot;Command: pandoc --defaults '$defaults_file' '$input' -o '$output'&quot; &gt;&amp;2
    exit 1
fi

# Surface warnings even on a successful run
[ -s &quot;$log&quot; ] &amp;&amp; cat &quot;$log&quot; &gt;&amp;2

echo &quot;Created: $output&quot;

if [ &quot;$open_after&quot; -eq 1 ]; then
    xdg-open &quot;$output&quot; &gt;/dev/null 2&gt;&amp;1 &amp;
fi

</code></pre>
<p>So the simple version (assuming md2pdf.sh is in your path) is:</p>
<p><code>md2pdf.sh my-article.md</code></p>
<p>It's not quite cross-platform (e.g xdg-open on Linux vs open on macOS) but that shouldn't be to difficult to do.</p>
<p>This seems like a lot, but once it's in place it's a couple of clicks and a quick shell command.</p>
<p>Let me know if there's anything unclear or incorrect here. Or if you have suggestions for improvements.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: From%20web%20page%20to%20printable%20PDF%20for%20reading%20later">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Saturday, May 2, 2026</title>
    <link href="https://baty.net/journal/02May26/"/>
    <id>https://baty.net/journal/02May26/</id>
    <updated>2026-05-02T11:09:35Z</updated>
    <content type="html"><![CDATA[<figure><img src="https://baty.net/img/2026/20260502-zim.webp" alt="Black and white photo of dog carrying a giant stick"><figcaption>Zim (2009). Olympus OM-2n / Zuiko 85mm f/2</figcaption></figure><p>Could I just scroll your web page without shit moving all over the place, please?</p>
<hr>
<p>The last couple days have been a whirlwind of changes to my Emacs config. I have to admit that Claude Code made quick work of things I've been avoiding for too long. My config is now cleanly cross-platform. I've removed hundreds of lines of unnecessary lisp. I removed the complexities around using the minimal-emacs starter kit. My fonts work correctly. I cut startup time in half. Tons more. I'm pretty happy with it.</p>
<hr>
<p>I was going to post something cool I did with Claude Code's help on Mastodon but the Never LLM! hoards would scold me and I don't want to deal with it.</p>
<hr>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Saturday%2C%20May%202%2C%202026">✍️ Reply by email</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Wednesday, April 29, 2026</title>
    <link href="https://baty.net/journal/29Apr26/"/>
    <id>https://baty.net/journal/29Apr26/</id>
    <updated>2026-04-29T16:02:58Z</updated>
    <content type="html"><![CDATA[<figure><img src="https://baty.net/img/2026/20260429-phone.webp" alt="An orange rotary phone"></figure><p>Someone mentioned <a href="https://www.orgroam.com/">org-roam</a> and it reminded me how cool it is. I moved away from org-roam a couple years ago, shortly after <a href="https://github.com/protesilaos/denote">denote</a> was released. Denote felt lighter and less dependent on Emacs-ey stuff. Denote is great and I'm happy with it, but that didn't stop me from digging up my old org-roam config today, just to play around with it. That was 3 hours ago and I've not slowed down. I may need to revisit <a href="http://localhost:8080/posts/2023/08/using-both-denote-and-org-roam/">Using both Denote and Org-roam</a>.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Wednesday%2C%20April%2029%2C%202026">✍️ Reply by email</a></p>]]></content>
  </entry>
  
</feed>
