RSSAmplifier

Blog

Michael Welford

its.mwRSS feed ↗10 posts

Latest posts

<![CDATA[Who took ma focus? _lsappinfo_ with the assist]]>

For over two weeks, I found that the front application would, every hour or so, lose focus to&hellip; something . No obvious culprit made itself known, so I asked an agent to write me a script to figure it out and it came up with: #!/bin/zsh # Logs every change of the frontmost (focused) app with a timestamp. PREV="" while true; do FRONT=$(lsappinfo info -only name $(lsappinfo front) 2>/dev/null |…

<![CDATA[Signs of AI writing]]>

One has to be aware that human speech and writing is being influenced by LLMs, and thus they are becoming more similar. This was already evident in 2024, as shown by a study that detected a significant LLM influence in spoken content (e.g. conversational podcasts). Further studies seem to confirm this influence on language, including semantics and word choices. As a programmer who reads a lot of…

<![CDATA[Ignoring local changes to lines in Git]]>

As a special snowflake, one tends to want to make modification to tool configuration without messing with colleagues or make those changes a part of the project. For example, let&rsquo;s say you have a pyrightconfig.json file in your project, slurped up by your editor&rsquo;s Python Language Server Protocol (LSP): { "typeCheckingMode": "strict" } When what you need for your environment looks like:…

<![CDATA[Mapping commands in Tmux to a secondary prefix]]>

If you customise Tmux a lot , inevitably you will run out of ways to cleanly map keys (or they have become a mess) and you will yearn for another &ldquo;leader&rdquo; or &ldquo;prefix&rdquo; to bind to moar mappings. For some, it&rsquo;s a case of when , not if . My current 1 recommendation: meta + key . By &ldquo;meta&rdquo; I mean option / alt and by &ldquo;key&rdquo; I mean whatever you have…

<![CDATA[Turbo Encabulator]]>

&hellip;The original machine had a base-plate of prefabulated aluminite, surmounted by a malleable logarithmic casing in such a way that the two main spurving bearings were in a direct line with the pentametric fan. The latter consisted simply of six hydrocoptic marzlevanes, so fitted to the ambifacient lunar waneshaft that side fumbling was effectively prevented. The main winding was of the…

<![CDATA[Parsing Zsh options]]>

Whilst re-instating rsync in my blog publishing script (static IP! Hurray!), I came across the well named zparseopts that, surprise, simplifies script options parsing in Zsh. Immensely. Check it: zparseopts -D -E -F -- \ {M,-message}::=message \ {S,-sync}=sync MESSAGE=${${${message#-M}#--message}:-"default"} SYNC_ENABLED=${#sync} Then if I run the script via either of these: ./script.sh --message…

<![CDATA[Thanks AI!]]>

How shall I thank thee, let me count the ways: Should I thank you for pirating the entire historical output of creative humanity and then asserting ownership of your loot? For destroying education? For raising utility rates and killing the environment? &hellip; Rich Hickey lists all the ways.

<![CDATA[Site stats for 2025]]>

Stats time! Last year I crafted a script to generate basic plots in the terminal using Git commit data. This year, we take that a little further by automating the image generation part using VHS . Lo and behold, now via a little ./yearly.sh , we get this PNG file: In fairness, I got this to 98% 1 automated due to image height tweaking. But as long as I run this script in week 3 of December it will…

<![CDATA[Blog rebuild V2.1.56]]>

Yes yes. I know, I know . Did the previous blog design need anything? Was any of it that bad? Well just like a marriage, familiarity breeds contempt and the rough edges started to grate. Although unlike a marriage I have complete control to fix all the things without negotiation! Let&rsquo;s dive in. Grievances The previous design looked fine . See &rsquo;ere, starting with the home page: Then a…

<![CDATA[Fave new shortcut: tab to new window]]>

When working with web apps (boo) such as Confluence and Jira one occasionally wants to grab a tab and have that side by side with another tab. Yes you can drag it free with a mouse (yuck) but that can be fiddly when you have a window manager running. It can throw a wobbly and do a weird flicky thing. Chrome, for example, supports this action with a menu item under the Tab menu cleverly labeled…