~hedy's blogroll - BlogFlockThe blogroll listed on my website.
https://home.hedy.dev/blogroll/2026-04-17T04:03:54.039ZBlogFlockSeirdy, erock, James' Coffee Blog, Manuel Moreale RSS Feed, Sloum, Protesilaos Stavrou: Master feed with all updates, Ploum.net, ~hedy, Baty.netDenote -> Obsidian - Baty.nethttps://baty.net/notes/2026/04/denote-obsidian/2026-04-16T13:59:32.000Z<p>Uh oh:</p>
<p><img src="/img/2026/20260416-superpowers-plan.png" alt=""></p>
<p><img src="/img/2026/20260416-superpowers-run.png" alt=""></p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Denote%20-%3E%20Obsidian">✍️ Reply by email</a></p>Matcha email TUI - Baty.nethttps://baty.net/notes/2026/04/matcha-email-tui/2026-04-16T09:27:09.000Z<p><a href="https://github.com/floatpane/matcha">Matcha</a>:</p>
<blockquote>
<p>A beautiful and functional email client for your terminal, built with Go and the charming Bubble Tea TUI library. Never leave your command line to check your inbox or send an email again!</p>
</blockquote>
<p>I'm a sucker for anything TUI. Matcha was easy enough to install and configure, but it doesn't feel ready quite yet. Something to keep an eye on if you're looking for a terminal-based email client. I'll stick with Mutt or Aerc for now, though.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Matcha%20email%20TUI">✍️ Reply by email</a></p>Nuances - Manuel Moreale RSS Feedhttps://manuelmoreale.com/@/page/czgbhkddhzgrkoai2026-04-16T09:15:00.000Z
<p>I realised that the thing that bothered me the most about that stupid tabs discussion was the shallowness. Vertical vs horizontal tabs in a browser is not a deep philosophical topic worth of major explorations, that goes without saying, but you can still approach it with some nuances. And that’s the main issue with most of modern discourse: everything is—or tries to be—some sort of hot-take. Because being reasonable is boring. Being reasonable and working through a topic doesn’t generate strong reactions. And you don’t go viral for having a reasonable opinion.</p>
<p>Take <a href="https://www.theverge.com/tech/907998/google-chrome-vertical-tabs">this piece for example</a>, titled “Vertical browser tabs are better and you should use them”. There’s an immediate question that needs to be answered there: better based on what? In David’s case, the argument boils down to essentially this:</p>
<blockquote>
<p>It’s a simple matter of screen real estate. Virtually every modern computer display is widescreen, which is to say it’s wider than it is tall. Websites and web apps, meanwhile, are practically always vertical experiences.</p>
</blockquote>
<p>This is as reasonable as it is wrong. I am staring at a 32-inch 4k monitor at this very moment. My browser window is almost always either square-ish or vertical. Because most sites are not designed to scale above a certain width in pixels, so there’s no point in wasting horizontal screen real estate. But it does make sense to use vertical space since I can read more text at once without having to scroll. So in my case, having tabs on the side makes absolutely no sense.</p>
<figure class="media-container" data-template="with"><div class="media-content"><img class="media-img" loading="lazy" src="https://manuelmoreale.com/media/pages/thoughts/nuances/5b9d553099-1776330896/screen.jpg" style="aspect-ratio:1000 / 563"></div></figure>
<p>And mine is just one potential use case that throws the entire “vertical browser tabs are better” argument out the window. I’m sure there are plenty more. And this is not just true for this pointless “debate”. It’s true for most things. But modern discourse moves too fast to go deep into anything. Discussions tend to stay surface level with hot takes flying left and right. You see it in tech, you see it in politics—especially in politics—you see it everywhere.</p>
<p>There’s also people who think that taking nuances into consideration is a bad thing altogether, because the only reason why someone might want to drill down into a topic is to drag a discussion into the mud and stop progress, obviously. We can ignore the fact that complexity hides in the details, while agreeing on something at a surface level is as easy as it is pointless. But maybe that’s the goal sometimes: to agree on something at a surface level, feel all good about ourselves and achieve absolutely nothing in the process.</p>
<p>The overwhelming majority of ideas and opinions exist on a spectrum. And I am of the belief that sharing and debating where we should position ourselves, on that spectrum, is important. And if you disagree, you're wrong.</p> <hr>
<p>Thank you for keeping RSS alive. You're awesome.</p>
<p><a href="mailto:hello@manuelmoreale.com">Email me</a> ::
<a href="https://manuelmoreale.com/guestbook">Sign my guestbook</a> ::
<a href="https://ko-fi.com/manuelmoreale">Support for 1$/month</a> ::
<a href="https://manuelmoreale.com/supporters">See my generous supporters</a> ::
<a href="https://buttondown.email/peopleandblogs">Subscribe to People and Blogs</a></p>
That which is inescapable - Protesilaos Stavrou: Master feed with all updateshttps://protesilaos.com/commentary/2026-04-16-that-which-is-inescapable/2026-04-16T00:00:00.000Z<p>This is an excerpt from my journal in which I comment about processes
in our world that do not fit into some neat divide between right or
wrong.</p>
<hr />
<p>Twenty minutes to midnight. I am back from the nightly hike. As
always, I have my four dogs for company. Hoot… Hoot… Hoot… The
owl is nearby. It is here to hunt and kill for its survival. There is
no point in arguing whether this is right or wrong. Those are narrow
categories that apply to a subset of human affairs. The owl simply
acts. Even though there is some variability to its behaviour, it is
framed by an overarching constraint that it cannot modify. To be a
bird of prey is the predicament its nature makes unavoidable.</p>
<p>The same is true for human volition. Whatever manoeuvring space is
available is ultimately delineated by a prior condition that the
individual cannot escape from. Like the birds of prey, human has to
kill in order to live; kill at all times. Whether this is meat or
vegetables is secondary to the fact that some form of life has to be
consumed.</p>
<p>For the cosmos as a whole, there is no loss. These are the workings of
transfiguration. The same star dust continues to shape-shift,
sometimes as a galaxy, at others as a puppy. What comes goes, only to
come again. A circular motion that does not repeat itself in exact
copies. An everlasting helix.</p>
<p>A dog with sufficient size, strength, and drive, such as any of my
dogs, will attack and eliminate cats. Not out of hunger, but to
preemptively reduce the number of competitors. It does not matter that
I am the guarantor of food. They are still hardwired to treat “others”
with extreme prejudice.</p>
<p>Plants are no different. It is only after I clearer the bramble from
most of my land, and kept the space open, that almond trees and
blackthorns, among others, started to grow. Some forms of vegetable
life cooperate with each other, while others compete for land, water,
air, and sunshine.</p>
<p>Everywhere I look, I find tension and release, attraction and
repulsion, friendship and enmity, leadership and subservience. All
nested towards infinity. None of this is specific to human beings. Yet
many think they are above the rest. They fancy themselves are purely
spiritual beings who occupy some higher moral ground when, in reality,
we are all governed by the same forces that non even the sun can defy.</p>
<p>Our world, the small milieu of human affairs, is heading full speed
towards a planet-wide conflagration. The Europeans are shifting to a
militarised economy as they remain committed to their forever war
against Russia. The Japanese are casting aside whatever nominal
pacifism they were once committed to in their renewed ambition to
control larger parts of east Asia while providing an antipode to the
Chinese. China will eventually transmogrify into what Westerners think
it already is. And so on.</p>
<p>It is understandable why we want to find someone to blame for all
this. A person or group has to be responsible and there must be some
grand plan behind it all. We cannot accept that we have no control
over the framework we operate in. Even in our darkest hours, we search
for a good story with unlikely heroes and shady characters. Whether it
is the imperialists, the globalists, the nationalists, the
militarists, the fundamentalists, the Zionists, the Jihadis, and more,
each adds a layer of explanatory narrative on top of processes that
are decisively beyond their reach.</p>
<p>Humans are compelled into action by powerful drives they cannot opt
out of. To survive, which entails cooperation and competition.
Instrumental are the forces that lead humans to pursue conquest,
glory, and domination. Even the otherwise innocuous outlook of the
explorer, be it in physical or mental space, bestows some kind of
advantage vis-à-vis one’s competition; an advantage that can be
exploited when necessary. Necessity guides us.</p>
<p>Even when there is no warfare, society at-large experiences the
incessant transfiguration that creates some and annihilates others.
From employment to unemployment, success to failure, enrichment to
impoverishment. It flows, it comes, it goes. A macro view of history
exposes the same patterns, of shifting political geographies, of
alliances that evolve, of enemies that become friends before
squabbling again, of intellectuals who believe they learn from the
past as they boldly move ever closer to some supposed enlightenment
only to repeat the mistakes of their predecessors.</p>
<p>There is no rest. No form of life stays in place. An individual
person, which in actuality is a system of systems, also changes
continuously: eating, moving, sleeping, ageing… The entropy of our
entire reality is the precondition for its configuration anew. It does
not come from nothing and will not go towards nothing. It simply is.</p>
<p>Yet I cannot help but recognise my emotions. I feel disappointed that
we cannot rely on our common sense to manage our affairs. It is not
“common”, alas! The distribution of character traits and talents is
such. Some have a more pronounced rational side. Others are led by
emotion. There is no right or wrong, no better or worse. This may even
be the optimal arrangement if we think of it in terms of economising
resources at scale: have few that are inventors and pioneers, and let
the many be capable of replicating the results. An expensive
computation, which amounts to some discovery, need only be performed
once before it is reproduced much more cheaply through imitation.</p>
<p>I learnt how to program, for example. I merely follow in the footsteps
of others who had to do all the hard work of inventing the relevant
paradigms and clearing the path as it were. If so, I cannot bemoan the
distribution of skills among our kind. It ultimately is what defines
life as we experience it, both for the parts we cherish and those we
loath.</p>
<p>Some will try to remake people in a certain image, such as through
indoctrination, religious absolutism, or even eugenics and designer
babies. This is the exploratory part, underpinned by the want for
safety. The uniform or the homogeneous is that which can be predicted
and, thus, that which can be measured and guarded against. Yet the
explorer is at odds with the underlying motivation to find a
totalising integrating force. They need sufficient openendedness to
make excursions that others have not even fathomed.</p>
<p>Perhaps we can have different types of people with a distribution
unlike what we are used to. It might even be viable. Though it may
also reveal to those daring souls that they did not know what they
were wishing for.</p>
<p>Who is to blame? Nobody. Every form of life does that which its
condition renderes inescapable.</p>Wednesday, April 15, 2026 - Baty.nethttps://baty.net/journal/15Apr26/2026-04-15T08:51:30.000Z<figure><img src="https://baty.net/img/2026/20260415-seagull.webp" alt="Black and white film photo of seagull at the beach"><figcaption>Sitting in the car, eating Wendy's, watching Lake Michigan (2026). Leica MP.</figcaption></figure><p>There are a lot of things I should be doing today, but I don't feel like doing any of them.</p>
<p>Speaking of not feeling like doing something. Taxes are due today. I have a service take care of the heavy lifting, which is great. All I needed to do was write checks, put them in envelopes, and get them to the post office in time. I owed much more than expected, and the 2026 estimates are shocking. I felt blindsided, but looking through the documents I can see why. Then, while putting the paperwork away, I noticed that the copy of the check (yes, I still send them checks) was missing the dollar amount. I wrote the long form, just not the number in the box. That's going to come back and bite me. Time for some bourbon.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Wednesday%2C%20April%2015%2C%202026">✍️ Reply by email</a></p>Paul Ford - Inviting the Aliens - Baty.nethttps://baty.net/notes/2026/04/paul-ford-inviting-the-aliens/2026-04-15T08:41:02.000Z<p><a href="https://ftrain.com/inviting-the-aliens">Inviting the Aliens, by Paul Ford (Ftrain)</a></p>
<blockquote>
<p>I’ve been vibe-coding proofs of concepts at work to help things along. I’ve never thought harder or more densely and to less effect.</p>
</blockquote>
<p>I also have been vibe-coding a bunch of little utilites and whatnot. It can be exhilerating or exhausting, depending on the day. Most days it's both.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Paul%20Ford%20-%20Inviting%20the%20Aliens">✍️ Reply by email</a></p>Installing Linux on a ThinkPad is... - Baty.nethttps://baty.net/notes/2026/04/installing-linux-on-a-thinkpad-is/2026-04-15T08:23:53.000Z<p><a href="https://social.lol/@mph@hachyderm.io/116406408717396527">mike: "Installing Linux on an old Thi…" - social.lol</a>:</p>
<blockquote>
<p>Installing Linux on an old Thinkpad is “middle aged dad decides to get fit by doing toe touches in his boxers” except you don’t get disgusted & give up. Instead you blog about how awesome it is until it’s not and then you stop blogging for six months in hopes everyone forgets.</p>
</blockquote>
<p>That's not me. At all. Nope.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Installing%20Linux%20on%20a%20ThinkPad%20is...">✍️ Reply by email</a></p>zmx - ai portal - erock's devloghttps://bower.sh/zmx-ai-portal2026-04-15T00:00:00.000Z
<div role="list">
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">zmx is a zero-config cli tool that handles detach/attach of terminal processes and uses libghostty for terminal restoration.</div>
</div>
<div role="list">
<div role="listitem">
<div class="listitem-bullet">•</div>
<a class="listitem-text" href="https://zmx.sh">https://zmx.sh</a>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<a class="listitem-text" href="https://github.com/neurosnap/zmx">https://github.com/neurosnap/zmx</a>
</div>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">With the recent release of v0.5.0 we've added some features to zmx that makes it easier than ever to send commands through zmx sessions. Want to have your local code agent execute commands on remote system? Want to run commands in a persistent session and monitor the results?</div>
</div>
</div>
<h2 class="text-xl font-bold"> run cmd</h2>
<div role="list" aria-label=" run cmd">
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">At the core of this new release is the run command:</div>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<pre class="listitem-text">
zmx run <session> <cmd...></pre>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">This will run the command inside the session and immediately tail the output until the command is complete. Then it will exit with the exit code of the command that was sent. The command sends bytes into the zmx session and adds a completion marker so we know when the command is done. Whatever you send through zmx run gets interpreted by your shell.</div>
</div>
</div>
<h2 class="text-xl font-bold"> write cmd</h2>
<div role="list" aria-label=" write cmd">
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">We also provide the ability to write files through the session:</div>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<pre class="listitem-text">
cat local_file.txt | zmx write <session> <file_path></pre>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">This will base64 encode, chunk, and pipe the content across the zmx session and on the receiving end use base64 to decode and store the file. All the receiving end needs is base64 and printf to work.</div>
</div>
</div>
<h2 class="text-xl font-bold"> tail cmd</h2>
<div role="list" aria-label=" tail cmd">
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">We now support connecting to zmx sessions with a read-only client:</div>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<pre class="listitem-text">
zmx tail <session></pre>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">This let's you save the output of a session into a file:</div>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<pre class="listitem-text">
zmx tail dev | tee dev_output.log</pre>
</div>
</div>
<h2 class="text-xl font-bold"> ai portal</h2>
<div role="list" aria-label=" ai portal">
<div role="listitem">
<div class="listitem-bullet">•</div>
<a class="listitem-text" href="https://youtu.be/CV3skPYHP4Q">DEMO VIDEO</a>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">These features are perfectly useful to humans, but they are also useful to code agents. All you need to use zmx with code agents is a single prompt:</div>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<blockquote class="listitem-text"> DO NOT RUN TOOLS LOCALLY. Use zmx to run all commands: `zmx help` to learn more. Use session name: XXX</blockquote>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<pre class="listitem-text">
zmx a dev
# let's SSH
[dev] > ssh kings
# let's run a container inside of an ssh session
kings > podman run --rm -it alpine:latest sh
/ # echo "lets go!"
/ #</pre>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">Then run your local code agent with a simple prompt:</div>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<pre class="listitem-text">
claude --dangerously-set-permissions
DO NOT RUN TOOLS LOCALLY. Use zmx to run all commands: `zmx help` to learn more. Use session name: dev
Print some stats about the environment inside of the zmx dev session</pre>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">The wonderful part about using zmx is it doesn't matter where the shell is running on the other end. It could be a local container, a remote SSH session, or even a production kubernetes pod. The agent stays local, with access to configured mcp, skills, tools, etc., and it sends commands through zmx to any shell: welcome to an ai portal.</div>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">The other awesome part about using zmx is you can attach to the session and audit the agent commands, you can even up-arrow and re-run them at will.</div>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">There are some minimal requirements:</div>
</div>
<div role="list">
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">You need the tool commands the agent normally uses (e.g. ls, grep, git)</div>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">You need base64 and printf for zmx write</div>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">The shell needs $? or $status so we can track when the command finishes</div>
</div>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">These are very common tools, but aren't always available. For example scratch containers aren't going to work.</div>
</div>
</div>
<h2 class="text-xl font-bold"> prior art</h2>
<div role="list" aria-label=" prior art">
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">Tmux also supports the ability to send commands through sessions, but it's tricky to get the output of those commands or know when the command has finished with an exit code. This makes it more tedious to send commands and tail the output, especially for code agents.</div>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">Claude code and codex both have SSH integrations to allow users to remotely run commands over ssh. This works but requires setup and is limited to just SSH session.</div>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">Most of the other similar tools are MCP servers which require configuration and is kind of a pain to get started.</div>
</div>
<div role="list">
<div role="listitem">
<div class="listitem-bullet">•</div>
<a class="listitem-text" href="https://github.com/ShawnPana/smux">https://github.com/ShawnPana/smux</a>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<a class="listitem-text" href="https://github.com/tufantunc/ssh-mcp">https://github.com/tufantunc/ssh-mcp</a>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<a class="listitem-text" href="https://github.com/rusiaaman/wcgw">https://github.com/rusiaaman/wcgw</a>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<a class="listitem-text" href="https://github.com/yiwenlu66/PiloTY">https://github.com/yiwenlu66/PiloTY</a>
</div>
<div role="listitem">
<div class="listitem-bullet">•</div>
<a class="listitem-text" href="https://github.com/raychao-oao/pty-mcp">https://github.com/raychao-oao/pty-mcp</a>
</div>
</div>
</div>
<h2 class="text-xl font-bold"> fin</h2>
<div role="list" aria-label=" fin">
<div role="listitem">
<div class="listitem-bullet">•</div>
<div class="listitem-text">That's it. Let me know if you use it with code agents, I'm curious to see how people use these new features.</div>
</div>
</div>
Tuesday, April 14, 2026 - Baty.nethttps://baty.net/journal/14Apr26/2026-04-14T17:32:39.000Z<figure><img src="https://baty.net/img/2026/20260414-cards.webp" alt="Index cards on bulletin board"><figcaption>Bulletin board status</figcaption></figure><p>I can't find my activation code for Davinci Resolve Studio and I'm furious with myself about it. I tried the new <a href="https://www.blackmagicdesign.com/products/davinciresolve/photo">v21 beta</a> with built-in RAW photo editing. It's a bit primitive now, but it will improve. If I were primarily a videographer, this would be a welcome addition. Also, it's one more option for photo editing on Linux, which is nice.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Tuesday%2C%20April%2014%2C%202026">✍️ Reply by email</a></p>Vertical Tabs - Manuel Moreale RSS Feedhttps://manuelmoreale.com/@/page/xcv6gqkfeyqjb0ve2026-04-14T14:15:00.000Z
<p>The other day, as I was driving home, I had the bad idea of listening to the most recent <a href="https://podcasts.voxmedia.com/show/waveform-the-mkbhd-podcast">Waveform podcast</a>, where they were discussing vertical vs horizontal tabs in browsers (and many other things). The whole discussion was truly painful to listen to, you’d hope people who talk tech for a living have some more elaborate takes on this kind of stuff, and yet, the whole discussion was very, very dumb.</p>
<p>I am not going to discuss the merits of vertical vs horizontal tabs, but I am going to say that if you are a fan of vertical tabs, you probably want to check out <a href="https://browser.horse/">browser.horse</a>, which has, in my opinion, the best take on vertical tabs I’ve seen so far.</p>
<p>It’s obviously not for everyone, especially because it’s a browser with a subscription—for what should probably be an add-on on top of your regular browser—but still, it is a clever idea, that goes beyond simply putting tabs on the side.</p> <hr>
<p>Thank you for keeping RSS alive. You're awesome.</p>
<p><a href="mailto:hello@manuelmoreale.com">Email me</a> ::
<a href="https://manuelmoreale.com/guestbook">Sign my guestbook</a> ::
<a href="https://ko-fi.com/manuelmoreale">Support for 1$/month</a> ::
<a href="https://manuelmoreale.com/supporters">See my generous supporters</a> ::
<a href="https://buttondown.email/peopleandblogs">Subscribe to People and Blogs</a></p>
SilverBullet+ - Baty.nethttps://baty.net/notes/2026/04/silverbullet/2026-04-14T13:23:51.000Z<p><a href="https://silverbullet.plus/">SilverBullet+: The Programmable Personal Knowledge Management Platform</a></p>
<blockquote>
<p>SilverBullet+ is a knowledge management platform (fancy term for a “notes app on steroids”) built on markdown files. It combines a live-preview editor with wiki-style linking, a built-in database and query language, and a fully integrated Lua scripting environment — turning your notes into a programmable system that grows with you. It is private by default: your data lives on your machine as plain markdown files, always portable, always yours.</p>
</blockquote>
<p><a href="https://silverbullet.md/">SilverBullet</a> is cool, and turning it into an app makes it more accessible to people who don't want to self-host a web app.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: SilverBullet%2B">✍️ Reply by email</a></p>Davinci Resolve for RAW photo editing - Baty.nethttps://baty.net/notes/2026/04/davinci-resolve-for-raw-photo-editing/2026-04-14T09:46:23.000Z<p><a href="https://social.lol/@ewen@social.ewenbell.com/116402240059223821">Ewen Bell about Davinci Resolve as a photo editor</a>:</p>
<blockquote>
<p>This little bit of news is going to be a huge moment in digital photography, and another blow to Adobe.</p>
<p>Davinci is powerful and complex to learn. I think this will make it unwieldy for MOST photographers.</p>
</blockquote>
<p>Pretty cool, but if I wanted to use something complex and unwieldy to edit photos, I already have Darktable. What slice of the market would use this? I can't imagine it being more than a sliver. You know I'll try it anyway.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Davinci%20Resolve%20for%20RAW%20photo%20editing">✍️ Reply by email</a></p>Some design improvements here at baty.net - Baty.nethttps://baty.net/posts/2026/04/some-design-improvements-here-at-baty-net/2026-04-13T15:58:11.000Z<figure><img src="https://baty.net/img/2026/posts-before-after-impeccable.webp" alt="Screenshot before and after"><figcaption>Before and after</figcaption></figure><p>⚠ <strong>Content warning</strong> I talk about using AI to do stuff in this post. I know some of you want nothing to do with that. The parts actually written by AI are indicated.</p>
<p>I worked with Claude Code, using the amazing <a href="https://impeccable.style">Impeccable</a> skills, to clean up the layout and typography here. We spent about an hour and a half and I'm pleased with the results. Things are cleaner and more consistent.</p>
<!-- more -->
<p>After asking Impeccable for a /critique, it presented a list of issues and suggestions. We spent a few rounds reviewing and trying things. Claude would edit templates and CSS on the fly and I'd watch the (11ty) page reload and update in real time. Impeccable is geared specifically toward design. It's "Design fluency for AI harnesses".</p>
<p>I found the entire process to be a delight. I was giddy at times. It makes me feel like I can do anything.</p>
<p>Here's what it came up with (copied and pasted as is). It's long, but damn:</p>
<hr>
<p><em>Claude Code's critique</em>...</p>
<h3>Design Health Score</h3>
<ul>
<li><strong>Visibility of System Status</strong> (Score: 3)<br>
Pagination state is clear; nothing else needed</li>
<li><strong>Match System / Real World</strong> (Score: 2)<br>
"Permalink #" is developer-speak; content types not visually distinct</li>
<li><strong>User Control and Freedom</strong> (Score: 3)<br>
RSS, search, pagination all present</li>
<li><strong>Consistency and Standards</strong> (Score: 2)<br>
<code>--color-muted</code> and <code>--font-size-md</code> referenced but undefined; cover images lose styling outside <code>.post-body</code></li>
<li><strong>Error Prevention</strong> (Score: 3)<br>
Static blog, minimal to prevent</li>
<li><strong>Recognition Rather Than Recall</strong> (Score: 2)<br>
Notes look like broken posts, not a distinct type</li>
<li><strong>Flexibility and Efficiency</strong> (Score: 2)<br>
Welcome block repeated on every page-1 visit for returning readers</li>
<li><strong>Aesthetic and Minimalist Design</strong> (Score: 2)<br>
Welcome header competes with content; uniform card treatment flattens everything</li>
<li><strong>Error Recovery</strong> (Score: 3)<br>
N/A mostly</li>
<li><strong>Help and Documentation</strong> (Score: 3)<br>
Social links and bio help new visitors</li>
</ul>
<hr>
<h3>Anti-Patterns Verdict</h3>
<p>Not AI slop. The page is clean and doesn't trigger the obvious AI tells — no gradient text, no glassmorphism, no hero metrics, no glowing dark cards. The problem is the opposite: too generic in the direction of "blog template" rather than a specific design with personality.</p>
<p>Automated scan flagged one issue — "single font family" — which is a false positive. It analyzed the <code>.njk</code> files, saw only Hanken Grotesk referenced explicitly, and missed that Vollkorn is applied via CSS classes. Both fonts are active.</p>
<h3>Overall Impression</h3>
<p>The page does what it needs to do, but it makes no choices about how the three content types <em>feel</em> differently from one another. Posts, journal entries, and notes all render in the same container with the same spacing and the same treatment. That works structurally, but misses the character of each type. The biggest win available here is giving notes especially a visual identity that's distinct from posts.</p>
<hr>
<h3>What's Working</h3>
<ol>
<li><strong>The excerpt pattern.</strong> Using <code><!-- more --></code> to let the author control what shows in the feed is smart and produces a natural-feeling stream, not a wall of truncated cards.</li>
<li><strong>Post meta.</strong> Date + tags at the top of each card is clean and well-weighted — it doesn't compete with the title.</li>
<li><strong>Content routing.</strong> The three-way <code>if/elif/elif</code> in the template is handled correctly, including suppressing note titles on the feed. Good information architecture underneath.</li>
</ol>
<p>/ <em>end of Claude Code's critique</em></p>
<hr>
<p>Then it listed what needed fixing and how we'd fix it. We decided to do the following:</p>
<ul>
<li>Welcome header: removed entirely</li>
<li>Social links: relocated to footer (permanent, visible on all pages)</li>
<li>Footer: restructured to 3-column layout (copyright / social icons / nav links)</li>
<li>Notes: compact card — smaller meta (0.72rem, 70% opacity), smaller body (font-size-sm), narrower measure (52ch), tighter separator (space-md vs space-xl)</li>
</ul>
<p>I mean, there's no way I could do this on my own. I wouldn't even try. And I would not have hired a professional to do it. It's just my blog. The world is different now. It's equal parts exhilerating and scary.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Some%20design%20improvements%20here%20at%20baty.net">✍️ Reply by email</a></p>What's scary about LLM use - Baty.nethttps://baty.net/notes/2026/04/what-s-scary-about-llm-use/2026-04-13T15:11:29.000Z<p>The thing that scares me about how good LLMs are getting, is that before long, everything is going to look good, and sound good. Everything will be well-written. The world is gonna be boring as hell.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: What's%20scary%20about%20LLM%20use">✍️ Reply by email</a></p>Monday, April 13, 2026 - Baty.nethttps://baty.net/journal/13Apr26/2026-04-13T11:39:10.000Z<figure><img src="https://baty.net/img/2026/20260413-contact-prints.webp" alt="Contact sheets hanging to dry in my shower"><figcaption>Contact sheets (2026).</figcaption></figure><p>I used Kevin's <a href="https://weather.humdrum.one/">Boring Weather</a> app instead of my janky shell script for annotating today's image. It's 90% of what I need. I might beg for the remaing 10%.</p>
<p>I'm a little ashamed to admit that I may have finally done it. I've been using Obsidian for notes/planning for a couple of weeks and it's working really well. I don't love the UI or editing a lot of text there, but the tooling around it makes it quicker and easier to get to useful than Emacs and Org mode. For me, anyway. Although I'm writing this in Emacs, so I'm obviously still working through the details :).</p>
<p>I'm testing <a href="https://goodsnooze.gumroad.com/l/macwhisper">MacWhisper</a> for dictation and translations. Sometimes I don't feel like typing. You're soaking in it.</p>
<p>I really need to clean up some of the typography and layout around here. It feels off in a bunch of small ways. Remember that time like a week ago when I completely rebuilt this blog and then stopped posting here? That was pretty much the definition of me.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Monday%2C%20April%2013%2C%202026">✍️ Reply by email</a></p>Emacs: new modus-themes-exporter package live today @ 15:00 Europe/Athens - Protesilaos Stavrou: Master feed with all updateshttps://protesilaos.com/codelog/2026-04-13-emacs-live-develop-modus-themes-exporter-package/2026-04-13T00:00:00.000Z<p>[ The stream will be recorded. You can watch it later. ]</p>
<p>Today, the 13th of April 2026, at 15:00 Europe/Athens I will do a live
stream in which I will develop the new <code class="language-plaintext highlighter-rouge">modus-themes-exporter</code> package
for Emacs.</p>
<p>The idea for this package is based on an old experiment of mine: to
get the palette of a Modus theme and “export” it to another file
format for use in supported terminal emulators or, potentially, other
applications.</p>
<p>My focus today will be on writing the core functionality and testing
it with at least one target application.</p>
<p>Prior work of mine from my pre-Emacs days is the
<code class="language-plaintext highlighter-rouge">tempus-themes-generator</code>, which was written in Bash:
<a href="https://gitlab.com/protesilaos/tempus-themes-generator">https://gitlab.com/protesilaos/tempus-themes-generator</a>.</p>Sunday, April 12, 2026 - Baty.nethttps://baty.net/journal/12Apr26/2026-04-12T11:40:38.000Z<figure><img src="https://baty.net/img/2026/20260412-bamboo.webp" alt="Black and White film photo of bamboo sculpture"><figcaption>Bamboo Sculpture (2026). Yashica-Mat LM / HP5</figcaption></figure><p>I guess I'm posting this here, today. The past few days have been all about Ghost over at <a href="https://copingmechanism.com">Coping Mechanism</a> so that's enough of that, right?</p>
<p>I don't suffer from burnout, but I might die from fizzle-out, though.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Sunday%2C%20April%2012%2C%202026">✍️ Reply by email</a></p>Ghost theme editor - Baty.nethttps://baty.net/notes/2026/04/ghost-theme-editor/2026-04-12T10:47:52.000Z<p><a href="https://github.com/synapsmedia/ghost-theme-editor">synapsmedia/ghost-theme-editor</a>:</p>
<blockquote>
<p>Edit theme files directly inside Ghost Admin with a completely client-side editor.</p>
</blockquote>
<p>This solves a real problem with running a Ghost blog and just wanting to make a few little tweaks to the theme.</p>
<p><a href="mailto:jack@baty.net?subject=[Baty.net] Re: Ghost%20theme%20editor">✍️ Reply by email</a></p>A lunch without alcohol - Protesilaos Stavrou: Master feed with all updateshttps://protesilaos.com/commentary/2026-04-12-lunch-without-alcohol/2026-04-12T00:00:00.000Z<p>This is an entry from my journal. I describe a small part of life in
the mountains as well as my experience at an Easter celebration.</p>
<hr />
<p>On Sundays it is common for people here to prepare <em>souvla</em> (barbecued
meat on a long skewer), if the weather is good enough. Other dishes
are also available, so there is something for everyone. Though meat is
the main serving. Winter in the mountains is usually too cold or rainy
for souvla. But the other months provide ample opportunities.</p>
<p>Today was one such day. I was invited to attend a lunch not too far
from my house. Nominally, it was about celebrating Easter. Though in
practice we were all there for the food and the companionship. Few
ever bring up religious topics on such occasions.</p>
<p>There were lots of people present, all of which I have met before in
other gatherings. Last time I was there all the people around me
consumed vast quantities of alcohol. Beer, wine, zivania, and whiskey.
I abstain from alcohol, though I never tell anyone in person why. When
somebody asks if I want some, I simply respond with something like
“no, I quit long ago—thank you!”.</p>
<p>What helps my case is that the tone of my voice and body language
communicate an unequivocal view. This is basically the opposite of how
a shy person responds, where they say one thing while they invite
others to tease out something else.</p>
<p>People are respectful when you draw clear boundaries. Those who are
not qualify as bullies, which you can then deal with more forcefully.
That I do with alacrity. But in the vast majority of cases everybody
means well.</p>
<p>When someone appears pushy yet has no obvious bad intention, it is
because they get mixed signals from you. They will nudge you to answer
affirmatively, perhaps by appealing to your sense of camaraderie:
“here, have a shot in the name of our newfound friendship”. And if you
do not know how to respond firmly, you will eventually yield, thus
positively reinforcing the original push.</p>
<p>I do not talk about my life choices. I am not interested in converting
anyone to my views and the manner of my living. Why I abstain from
alcohol is my own business: in short, I prioritise longer-term health
over scoring meaningless points at the lunch table. Plus, I am
perfectly sociable without pampers. If others choose to consume it, I
respect their choices. I was a bartender for many years, after all.</p>
<p>The table today had all the usual offerings of alcoholic beverage.
There were bottles of wine, cans of beer, a freezer packed with
zivania, and plenty of ice cubes for those who wanted to blend whiskey
with cola. Some folks who were sitting further away from me were
drinking as usual. Though those around me chose to abstain for once.
Someone remarked that “we are already having a good time, we do not
need the drinks”. I nodded without saying a word.</p>
<p>My lifestyle can be summed up as “do, not tell” or, better, “master it
first, teach it afterwards”.. If I believe in something, I embed it in
my activities. And if it is benign, then I am the embodiment of its
efficacy. I do not need to preach what is obvious. Others will notice
the effects and try the same. And if they do not discern the pattern,
then they are not ready for it, anyway. I find talk that is devoid of
action to be disempowering. It inevitably devolves into a vicious
cycle of overthinking and attendant restlessness.</p>
<p>There are no deep conversations at such gatherings. Topics range from
political commentary, to one’s adventures at the hunt, to matters of
farming, to some construction work that is being planned. Whatever
lacunae are filled in by blanket generalisations. You learn to not
take anything seriously. It is innocuous chit-chat. Its function is to
strengthen the sense of trust among those present. Anyone who has a
strong urge to be pedantic will suffer at such an event.</p>
<p>Even though I am on good terms with everyone here, I do not have any
friends. Nobody knows exactly what my interests are and how much
in-depth I am willing to go in any given exchange. They have a vague
sense of what I do, but are otherwise not curious to learn more. I
have long accepted that my interests lead me down the path of
loneliness. It is virtually impossible to meet like-minded people in a
sparsely populated region. This is partly why I spend more time hiking
than mingling with the locals.</p>
<p>I am also dismayed to observe, time and again, that the local
communities are dying of old age. There are no young people here and
no prospect of there being any in the foreseeable future. The women I
met an aeon ago gave me lectures about baby machines and the familiar
talking points. To think of the greatest power of all, to birth a new
form of life, in such demeaning terms… I remained silent and left.</p>
<p>Millenials in my part of the world grew up with the promise of the
comfortable life, having been fed the tale of inexorably expanding
economic prosperity. Well, except those of us who were already
poor—we were earmarked for the meat-grinder. When the 2008+
financial crisis hit them, they joined the various Occupy/Indignados
movements to announce to the world how angry they were for not getting
what they thought was their birthright.</p>
<p>We are still reeling from that crisis. It was, at its core, a
dismantling of the underlying value system and the expectations that
went along with it. Many of those people never moved on. They were
broken and defeated; a “lost generation” as the media was correctly
portraying it.</p>
<p>I am a man of action. With severely limited means, yes, but with the
attitude to fight until the bitter end. I like to make things happen
and get bored when thinking leads to nowhere. In this case, however, I
have no solution. Maybe I have not been daring or creative enough in
my approach, in which case I shall change my ways and try anew.</p>There goes another Easter - Protesilaos Stavrou: Master feed with all updateshttps://protesilaos.com/commentary/2026-04-11-there-goes-another-easter/2026-04-11T00:00:00.000Z<p>This is an entry from my journal.</p>
<hr />
<p>The church bells were ringing in the distance. The first explosions
echo in the valley. It is almost Easter in this part of the world. In
about ten minutes there will be fireworks. I finished a long day’s
work and then went for the nightly hike with my dogs. Walking with my
canine friends is among my favourite activities.</p>
<p>The season is pleasant in secular terms. We are at the tail end of
winter in the mountains. It is still cold during daytime, though it
starts to get sunnier. The last heavy rainfall was on Thursday.
Another is expected next week, as days become more dry. Flowers are
popping up everywhere, while the grass reaches its maximum height at
about half a metre tall. Most trees need a few more weeks to blossom.
The oak trees take their turn fairly late at around May.</p>
<p>In religious terms, however, we are asked to go through induced grief.
All around us there is life yet our mental state revolves around
death. The week of Easter is about pretending to suffer along with
Jesus. “Pretending” is the operative term. If you are actually
suffering, you do not have to wait for this time of the year to go
through the torment. And, conversely, if you are not suffering, then
you likely have the luxury to put on a show.</p>
<p>Unlike Christmas, Easter has always had a more religious undertone in
my experience. Christmas is practically not a religious period. There
is the myth of the flying grandpa who brings gifts galore, trolls that
seek to cut down the tree of life only to be lured away from their
mischief by treats, and children going around the neighbourhood
singing songs in exchange for pocket money. In short, it is whimsical
and fun. I love it!</p>
<p>As for the religious story, it essentially is about a child being
born. Every stable family considers that a gift from the heavens.
Theodoros and all such variations (Diodoros, Diogenis, Herodotos,
Apollodoros, etc.) are ancient names, after all, describing the
newborn as a gift from a certain deity or the divine at-large. This
goes back millennia. We do not need to search much further than the
gratitude of the parents to appreciate the symbolism of baby Jesus.</p>
<p>By comparison, Easter is the reign of darkness. The social pressure to
behave in certain ways is much more pronounced. It starts fourty days
in advance and culminates on this day. There is increased church-going
or, at least, exhortations to that effect, and the emphasis is on
doctrine. There exists the Easter bunny and such lighthearted elements
but their role is marginal. The focus is on propriety and the
correctness of the creed.</p>
<p>It must be nice to be part of a group. To not push back and simply go
with the rest. You always have friends and attend all the parties. I
cannot be that person. I tried it once and it almost broke me. Part of
my personality is to not give in to social pressure. If I do not feel
a certain way, and if the matter affects me personally, I will not do
it solely to please others.</p>
<p>Fundamentally, nobody has control over me. This goes back to when I
was a child, though a more poignant example comes from my teenage
years. All my friends and virtually every boy my age was a smoker. I
did not try it once. Not even out of curiosity. My mates never
attempted to pressure me into smoking because they knew it was a lost
cause.</p>
<p>I am the same with the performative aspects of religiosity. I will not
pretend to feel pain when I am not. I cannot act like I am suffering
when I am feeling as energetic as ever. And, more importantly, I do
not check the calendar to decide when to do what I consider right: I
just do it without exceptions.</p>
<p>I am, nevertheless, considerate enough to not argue for the sake of
arguing. Intellectual matters require a level of commitment to the
topic that the vast majority of people do not have. For those cases, I
remain silent, wish everybody all the best, and mind my business.</p>
<p>My attention is on the here-and-now. The temperatures will rise next
week before dropping back to normal for the foreseeable future. I have
lots of plans for my land and am confident that my hard work will be
fruitful. The only pain I feel is the one I bring unto myself by
committing many hours of my day to manual labour. I find it empowering
to witness the compounding effects of my industry; to know that I can
rely on the infrastructure I have set up and to continuously build on
top of what I already did.</p>
<p>I have done so much already and am eager to continue with the same
intensity. However, the rapidly deteriorating economic situation has
hindered my house-related initiatives. I will not do anything here at
least for another year or two. It is a pity, though I must wait for
the next opportunity. Such is life. We deal with the circumstances as
they evolve. Our duty, in the meantime, is to retain our vitality and
be poised to act.</p>
<p>As for Easter, everybody will revert to business as usual within a few
hours. We all know it is a shadow play of spirituality, yet find it
expedient to act as if something grand is happening.</p>