I’ve been making some progress on my Linux distro that I’ve been working on for about two months at this point. Linux runs td-init, which invokes td-svc, a service manager. It boots directly into a custom wayland compositor td-compositor, opening a td-term with td-sh. The OS is built by td-builder, the rust-based control plane for building recipes. Along the same lines as Guix, it is…
With AI agents being able to write code faster than we can type, writing code is no longer the long pole in software development. That’s the same first sentence I used in my last journal entry. With AI agents orchestrating software development more, the specification is becoming the new source code–and tests are the coded specification. SQLite is semi-famous for its testing. “The…
With AI agents being able to write code faster than we can type, writing code is no longer the long pole in software development. The wikipedia entry for Amdahl’s law says, “the overall performance improvement gained by optimizing a single part of a system is limited by the fraction of time that the improved part is actually used.” This has led me to an interesting realization in…
A couple of weeks ago, around the time of the (first) Claude Fable launch, I upgraded my Claude subscription to the 20x Max one. There had been weeks of discussion on the Guix mailing lists about code contributing guidelines in the age of AI agents, and it wasn’t really looking promising for people that want to contribute to the project using AI. My general feeling was that a lot of people…
Today the Ladybird Browser project announced changes to how they’re developing Ladybird. Basically, they’re going to remain open source but not be open for externally created pull requests. For those of you reading this in 5 years, free open source software projects used to be written by humans, and because writing code took a lot of time, people that wanted to make larger…
Yesterday, I watched a youtube video with Scott Hanselman and Mark Russinovich talking about taste . In the video, Mark makes the insightful comment that taste is essentially experience. The interesting thing about this observation is that usually you think about “taste” as being a developed subjective opinion, but defining it as “experience” means that it’s less…
I recently started trying to shoot video on my Nikon Z8. Because I shoot RAW for still photos, I thought I would try shooting N-Log footage as an equivalent. I quickly discovered the world of color grading, and it’s quite a step up in complexity from processing RAW photos. I started by trying to get a DaVinci Resolve flatpak to work. It’s a little tricky with my Sway/Guix setup because…
A couple of months ago, I started shooting some of my kids soccer games on my Nikon D700 with a 300mm Nikon ED AF 1:4 lens. Maybe just over 10 years ago, I had originally bought the D700 and I was into photography for a while, partially due to my gear acquisition syndrome. When I started shooting with it again, I started to get an itch to upgrade to mirrorless and a zoom lens that would give me a…
A couple of months ago, I stumbled upon some youtube videos praising the new commodore 64 ultimate . It’s a FPGA recreation of the original hardware, with a bunch of convenience features on top. Probably an awesome addition to any retro computing enthusiast or someone that already knows they want a C64, but… I guess I learned the hard way that it wasn’t really for me? I think my…
I’ve noticed myself more and more recently using less libraries and frameworks. I think as AI Agents write more and more code, there is less of a reason to take these sorts of dependencies. There is something to be said for having some “battle tested” dependency you don’t have to write yourself, but if you aren’t writing it anyways (your AI agent is writing it along…
In my last post, I talked about using Claude Opus 4.6 and Codex 5.3 to create a TUI Rust email client . Later on that weekend, I went a step further and created a news client to replace the RSS to email solution I had previously. Now I have a dedicated TUI (called Timmy’s News ) for reading RSS feeds. It’s pretty amazing to see how easy it was to create. While I have looked at the…
There have been some recent artcles in the news about the “SaaSpocalypse”–the devaluation of software as a service companies like SAP and Salesforce. The idea is that AI models can quickly re-create this type of software and that complex software itself is no longer a “moat”. I can see both sides of this argument, but what I really wanted to talk about is more of the…
I’m lucky to have started investing fairly soon after finishing college. They say, “time in market beats timing the market.” So I’m lucky that I have time in the market. But I made the mistake of picking a bunch of stocks instead of investing in the overall market itself. I feel like I’m stuck because while I’ve chosen a lot of stocks that have gone up a lot, I…
Today I was thinking about some of the posts I made previously on bemoaning the web browser as becoming the ubiquitous user interface. I complained the technology was so complicated that it couldn’t be recreated easily–and that’s why there are only a couple of browser implementations. I (probably?) complained that many of the apps we use on computers do rendering with some sort…
A couple of months ago I read the books, “The Psychology of Money: Timeless lessons on wealth, greed, and happiness” and “The Art of Spending Money: Simple Choices for a Richer Life” by Morgan Housel. They are pretty similar, so you’d probably be fine just getting the first one if you just wanted to get an idea. The best part of the book are anecdotes or small stories…
I recently wanted to do a better job sandboxing my AI agent work, so I created an unprivileged user on my machine with their own home and source directories to code. There are better ways to sandbox AI agents, and this is not a guide on that. To illustrate Guix home configuration, I wanted to show custom packages because I believe setting up and maintaining a channel is too much overhead. A couple…
I’m looking back at some of my posts in 2025 and seeing that there is probably more AI-related stuff than I would like. It’s moving so much and having so much impact on the way I personally write code, so I can’t help myself. I feel like even a year ago, if you asked me how I would be writing code, it wouldn’t be through a couple of terminals talking to AI agents. I…
As AI agents become more competent at writing code, the less babysitting they’ll need. If you asked me what software developers needed 5 years ago, I might have said a better IDE than VS Code. My last blog post was about Zed, which is probably around that old. I never really ended up using the editor after I got it working–I’m just sort of used to emacs and feel like I…
While I’m still running GNU Guix as the OS of choice for my personal computer, my patience is wearing thin when it comes to it’s all-or-nothing approach when it comes to running software. For those who don’t use Guix or Nix, the basic idea is that the read-only root filesystem only has /bin/sh -> /gnu/store/p5dap5q3wfdy0h3m31q5hbj3gpbkmrxv-bash-5.2.37/bin/sh and /usr/bin/env ->…
Yesterday, I was doing an Alpine dist upgrade (3.18 to 3.19) to my mail server, which apparently I thought was such a routine job that I didn’t have any backups. Now, imagine my fear after typing reboot and the machine not coming back. I fumbled around the AWS UI trying to find out was going on–I found the serial console and saw this: Loading Linux virt ... error: invalid magic number.…
In a podcast I listened to yesterday, Brian Eno describes the how social media is causing the collapse of democracy. In some ways it feels inevitable–the capitalism operating system prioritizes making money, so the algorithm is optimized to maximize profits. To maximize profits, the algorithm maximizes engagement, to maximize engagement, you end up with “an internet that flourishes on…
I wrote a blog post a little over two years ago about another text editor I started writing in common lisp. In typical fashion, I lost interest around the time I got the basic stuff working. At the time it was something simple–just printing lines on a SDL2 canvas. In somewhat related news, the main developer working on Lem announced he was thinking about the deprecation of the SDL2 frontend…
I finally jumped on the bandwagon of people that are paying for an AI subscription. A couple of days ago I started paying for the $20/month Claude Pro subscription so that I could use Claude Code. I have used various models at work through vscode, and personally through openrouter or a web interface, but this was my first time using a terminal-based CLI experience. For evaluation, there…
My last post was bemoaning the loss traditional websites in favor of AI assistants. This time I’m taking the opposing side when it comes to recipe websites. It felt like anytime I needed to look a recipe up in a pinch on my cellphone, I’d get the worst example of an ad-infested, auto-playing ad video page, where it took a year of scrolling to find the ingredients. Maybe it’s…
I couple of posts ago I talked about the end of the open web–basically how it’s difficult for small players to provide a free-tier web service to the public due to all the bots and abuse traffic. Recently I’ve heard a buzzword called “Agentic Web.” It sort of reminds me of a similar thing. In this future vision, humans don’t browse the web anymore–AI…
I recently finished reading “Digital Minimalism” by Cal Newport. I liked his “Deep Work” book and this one seemed interesting also so I picked it up. I was aware this book didn’t rate as highly going into it, which kept me from being disappointed by the lack of new insights. I asked ChatGPT for a cliff notes-style summary to refresh my memory of the outline of the…
I was recently watching an interview of Tim Sweeney by Lex Fridman where Lex asked Tim about the future of games. Metcalfe’s law is basically a fancy way of saying that the value of a network is proportional to the square of its number of users. In the context of gaming, Tim was saying that if you told everyone to pick a single player game to play, they might choose a different game, but if…
I just finished reading the book “Deep Work” by Cal Newport. Recently it had become more and more apparent in my daily life that I was being sucked into an endless news feed by my smartphone. The youtube algorithm makes incredibly precise video recommendations that pop up at regular intervals, trying to keep me in a state of shallow work. I don’t use any social media accounts and…
Drew DeVault posted a new blog post titled Please stop externalizing your costs directly into my face . He calls out a couple of things that seem to have gotten worse in recent years: bot and abusive traffic. A lot of internet-era businesses are built on the economic model of the user’s being the product rather than the service provides. For example, you have free search engines and various…
For someone looking for an intro to LLMs in 2025, this video is a pretty good introduction. It’s pretty amazing think back 20 years where this sort of knowledge couldn’t be shared so easily over the internet. You could learn from books or journals, but information just didn’t spread as fast. If you wanted to learn something really deeply, you would probably go through a PhD…
A was recently inspired by a talk at emacsconf 2024 about guile-emacs . Rewriting emacs in another lisp language is a topic as old as the editor itself. Many view emacs lisp as a compromised language, put at a further disadvantage that the emacs editor is the only implementation and program written in it. So how could emacs be “modernized”? Well, short of rewriting the whole thing and…
When I think about how I use a computer these days, there are only a handful of user interface technologies. The most pervasive and widespread is probably interfaces rendered through a web browser. I feel like half of my computer usage is through what could be considered a shell , and the other half would be through the browser. Shells like Gnome and KDE each have their own UI toolkits: GTK and…
I recently replaced my GNU Guix-based router with Alpine Linux. I previously ran a small amd64 Guix system router, which boasted an uptime of more than 1000 days. I know that’s not a great security practice and I was setting myself up for failure when it rebooted finally, which it did after a 5+ day power outage in our area. The computer was at the point where both guix pull failed and guix…
Not Just Bikes ( on YouTube , on Nebula ) just released a new video about self-driving cars and how they will destroy cities. Cars have already destroyed cities, so this is more about how self-driving cars will make them even worse. There is so much history we can use to compare how automobiles have affected cities, and I feel like we can rely on capitalism (topic of my last blog post) to predict…
I was watching an interview with Ezra Klein and Jon Stewart yesterday, and Jon Stewart made an interesting comment about someone being cancelled for a moral lapse of judgement. He said that the real reason was because their segment didn’t bring in enough ad revenue. It’s sad to think, at the end of the day, capitalism drives people and companies to make decisions that favor money over…
A couple of weeks ago I read a new book called: “A Mathematician’s Lament: How school cheats us out of our most fascinating and imaginative art form.” It was a short and sweet critique of how math is taught in schools today. I don’t know if I have the right words to do it justice, but I can attempt to summarize some of my thoughts. The gist of it is that the math is taught…
I thought read a comment on Hacker News a while back that said something like “Macros are why Common Lisp failed to attain mass adoption as a general purpose programming language.” It was sort of thought provoking because many people think of S-expressions and macros to be one of the standout features of Common Lisp. I wish I could find the comment again but it doesn’t come up…
There is a nice website at https://go-proverbs.github.io , which introduces Go Proverbs. Here are a couple favorites (some are rephrased): Share memory by communicating The bigger the interface, the weaker the abstraction A little copying is better than a little dependency Clear is better than clever Reflection is never clear Just yesterday, I was dealing with a bug in a library that was due to a…
Continuing my trend of ebike related blogging (I’m hoping for a future world with more transportation infrastructure enabling bike-based travel), I came across some Youtube videos featuring bikes with Pinion’s Motor.Gearbox.Unit (MGU). Simply put, it combines the ebike motor and gearing into one unit, which could greatly simplify the rest of the bike build and reduce service intervals…
I recently purchased and took delivery of a cargo ebike. I got the Benno Boost 10D EVO5 Easy-On. While it’s not a full car replacement, I should be able to use it for short rides in the area when I need to take a kid or two with me. So, one less excuse to take the car and one step closer to a more active lifestyle. Related YouTube link . When I visited the bike shop originally, I thought I…
I believe one of the unfortunate things that happened in the computer world is the prevalence of HTML email. Perhaps this is not as bad as web browsers becoming complicated super apps that do everything, but HTML email borrows the same rendering technology as the web browser, so maybe I should consider them the same thing. Ultimately, with email, I want to control how the content is displayed to…
Here’s a recipe that I believe our family has been using as long as I have lived. I’m not sure where it came from. Mix in bowl (stand mixer with paddle): 1/2 cup melted butter (I use salted) 3/4 cup brown sugar 1 tsp baking soda 1/2 tsp salt 2 eggs 4 or 5 over-ripe bananas Then mix in (only needs a few seconds): 1.5 cups all-purpose flour chopped walnuts (optional) Bake at normal…
I was reading a nice blog post yesterday about passkeys . It’s a story about a up and coming web technology that has the potential to solve the “password problem”, yet the tech companies that control the web and web browsers made decisions that would essentially help keep the user’s locked into their ecosystems. It’s sad to hear, but didn’t trigger me to write…
Last weekend was our kid’s spring break and we travelled to Nashville for the week. I made a bad gaming decision: I had a couple of hours left before beating FF7 Rebirth and I tried to finish it the same day I had an afternoon plane flight. To my future self: don’t try to rush the ending of a video game. It was one of my most frustrated gaming experiences ever. The short version is…
I’m trying to write something every month but I’m having trouble coming up with original ideas for these journal posts. Earlier this week I bought a yubikey fido edition and played around with passkeys. Passkeys are a passwordless approach to logging into accounts. I think of it as a certificate-based authentication with some improvements to usability. Unfortunately it seems that the…
OpenAI revealed Sora, a text-to-video model about a week ago. It might be even more amazing than watching ChatGPT generate text and has the potential to forever change video creation or film making. With some more tweaks to the output format, it could probably generate some pretty cool video game worlds as well. If this takes off, does it even render actors obsolete? Famous ones can command a…
CGI (Common Gateway Interface) was one of the first methods for serving dynamic content from web servers. When the web server gets a request to a CGI executable, it would invoke the executable and pass information about the request in environment variables and over standard input. The web page content would be printed over standard output and fed back to the user by the web server. CGI feels like…
I got my wife a Meta Quest 3 for Chirstmas last year and I thought I’d write up some quick thoughts about it. It’s much better than the Quest 2–almost to the point of classifying the previous generation of products as e-waste. I suppose the first couple iterations of smart phones suffered the same fate. I think the two biggest things I noticed was the color, high-fidelity…
I have wanted to learn Hare since it was announced and took the opportunity to write my first program yesterday. Hare is marketed as a simple and boring language, and something that you might use as an alternative to C. It fixes some of C’s issues while not trying to do anything too ambitious with any of its other features. One of the aspects that appeals to me is how quickly it compiles…
I recently finished playing Starfield. It’s a spiritual successor to Skyrim, so in that sense it was an AAA game where one might have high expectations. Unfortunately, making a space game is a challenging genre because space is vast and boring. The long and short of it is that it’s a flawed game. On one hand, it’s crashed on me more than any game I’ve played in modern…