~hedy's blogroll - BlogFlock The blogroll listed on my website. https://home.hedy.dev/blogroll/ 2026-04-17T04:03:54.039Z BlogFlock Seirdy, erock, James' Coffee Blog, Manuel Moreale RSS Feed, Sloum, Protesilaos Stavrou: Master feed with all updates, Ploum.net, ~hedy, Baty.net Denote -> Obsidian - Baty.net https://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.net https://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 Feed https://manuelmoreale.com/@/page/czgbhkddhzgrkoai 2026-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 updates https://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.net https://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&#39;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.net https://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.net https://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: &quot;Installing Linux on an old Thi…&quot; - 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 &amp; 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 devlog https://bower.sh/zmx-ai-portal 2026-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&#39;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 &lt;session&gt; &lt;cmd...&gt;</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 &lt;session&gt; &lt;file_path&gt;</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 &lt;session&gt;</pre> </div> <div role="listitem"> <div class="listitem-bullet">•</div> <div class="listitem-text">This let&#39;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&#39;s SSH [dev] &gt; ssh kings # let&#39;s run a container inside of an ssh session kings &gt; podman run --rm -it alpine:latest sh / # echo &#34;lets go!&#34; / #</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&#39;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&#39;t always available. For example scratch containers aren&#39;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&#39;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&#39;s it. Let me know if you use it with code agents, I&#39;m curious to see how people use these new features.</div> </div> </div> Tuesday, April 14, 2026 - Baty.net https://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 Feed https://manuelmoreale.com/@/page/xcv6gqkfeyqjb0ve 2026-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.net https://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.net https://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.net https://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 &quot;Design fluency for AI harnesses&quot;.</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> &quot;Permalink #&quot; 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 &quot;blog template&quot; rather than a specific design with personality.</p> <p>Automated scan flagged one issue — &quot;single font family&quot; — 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>&lt;!-- more --&gt;</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.net https://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&#39;s%20scary%20about%20LLM%20use">✍️ Reply by email</a></p> Monday, April 13, 2026 - Baty.net https://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 updates https://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.net https://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.net https://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 updates https://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 updates https://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>