<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Kevin B. Ridgway's Blog</title><link href="https://kbr.sh/" rel="alternate"/><link href="https://kbr.sh/rss/" rel="self"/><id>https://kbr.sh/</id><updated>2026-03-30T13:36:30+00:00</updated><author><name>Kevin B. Ridgway</name></author><entry><title>autoresearch</title><link href="https://kbr.sh/blogmark/2026/Mar/30/karpathy-autoresearch/#atom-everything" rel="alternate"/><published>2026-03-30T13:36:30+00:00</published><updated>2026-03-30T13:36:30+00:00</updated><id>https://kbr.sh/blogmark/2026/Mar/30/karpathy-autoresearch/#atom-everything</id><summary type="html">&lt;p&gt;From Andrej Karpathy:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;br&gt;I packaged up the "autoresearch" project into a new self-contained minimal repo if people would like to play over the weekend. It's basically nanochat LLM training core stripped down to a single-GPU, one file version of ~630 lines of code, then:&lt;/p&gt;&lt;ul class="tight" data-tight="true"&gt;&lt;li&gt;&lt;p&gt;the human iterates on the prompt (.md)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;the AI agent iterates on the training code (.py) &lt;br&gt;&lt;br&gt;The goal is to engineer your agents to make the fastest research progress indefinitely and without any of your own involvement. In the image, every dot is a complete LLM training run that lasts exactly 5 minutes. The agent works in an autonomous loop on a git feature branch and accumulates git commits to the training script as it finds better settings (of lower validation loss by the end) of the neural network architecture, the optimizer, all the hyperparameters, etc. You can imagine comparing the research progress of different prompts, different agents, etc. &lt;br&gt;&lt;br&gt;&lt;a target="_blank" rel="noopener noreferrer" href="https://github.com/karpathy/autoresearch"&gt;github.com/karpathy/autorese…&lt;/a&gt; &lt;br&gt;Part code, part sci-fi, and a pinch of psychosis :)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br&gt;Been trying to think of ways to leverage this. There have been some amazing examples so far:&lt;/p&gt;&lt;/blockquote&gt;&lt;ul class="tight" data-tight="true"&gt;&lt;li&gt;&lt;p&gt;Tobi, founder of Shopify made &lt;a target="_blank" rel="noopener noreferrer" href="https://github.com/Shopify/liquid/pull/2056"&gt;their template system 53% faster&lt;/a&gt; (keep in mind this has been around 20 years)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Cheng Lou, &lt;a target="_blank" rel="noopener noreferrer" href="https://xcancel.com/_chenglou/status/2037713766205608234#m"&gt;made a leap forward in UI engineering&lt;/a&gt; with a text measurement algo in pure TS called &lt;a target="_blank" rel="noopener noreferrer" href="https://github.com/chenglou/pretext"&gt;pretext&lt;/a&gt; (I can’t tell if he used autoresearch specifically, but the footprints are there in the repo)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;What else is autoresearch going to push forward?&lt;/p&gt;</summary><category term="ai"/><category term="autoresearch"/><category term="andrejkarpathy"/><category term="opensource"/></entry><entry><title>Björn Andersson - It's beginning to crumble  - The first steps of my breadcrumb tool</title><link href="https://kbr.sh/blogmark/2026/Mar/25/bjorn-andersson-its-beginning-to-crumble/#atom-everything" rel="alternate"/><published>2026-03-25T11:36:31+00:00</published><updated>2026-03-25T11:36:31+00:00</updated><id>https://kbr.sh/blogmark/2026/Mar/25/bjorn-andersson-its-beginning-to-crumble/#atom-everything</id><summary type="html">&lt;blockquote&gt;
&lt;p&gt;But when I started building with agents, it would break me out of what I was doing to go leave breadcrumbs in Roam so I could track what I had been up to. So I stopped. And honestly, it was something I noticed when I worked on meaty problems when programming too, I would get caught up in what I did and not take notes. To my detriment later.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I’ve also noticed this. Trying to get into flow with agents is harder. &lt;/p&gt;
&lt;p&gt;Skill issue for me? Probably. But this is all so new, and changing so fast.\
\
I like Björn’s idea here a lot. Definitely need to explore &lt;a href="https://github.com/steveyegge/beads"&gt;Beads!&lt;/a&gt;&lt;/p&gt;</summary><category term="ai"/><category term="agents"/><category term="context-engineering"/><category term="ai-assisted-programming"/></entry><entry><title>Karpathy On How Much Software Engineering Has Changed</title><link href="https://kbr.sh/blogmark/2026/Feb/26/karpathy-hard-to-communicate-how-much-programming-has-changed/#atom-everything" rel="alternate"/><published>2026-02-27T02:00:17+00:00</published><updated>2026-02-27T02:00:17+00:00</updated><id>https://kbr.sh/blogmark/2026/Feb/26/karpathy-hard-to-communicate-how-much-programming-has-changed/#atom-everything</id><summary type="html">&lt;p&gt;I’m going to quote Andrej Karpathy in entirety because I grow tired of X, and because it relates to my previous post on &lt;a target="_blank" rel="noopener noreferrer" href="https://kbr.sh/blogmark/2026/Feb/26/software-engineering-md/"&gt;Software_Engineering.md&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;It is hard to communicate how much programming has changed due to AI in the last 2 months: not gradually and over time in the "progress as usual" way, but specifically this last December. There are a number of asterisks but imo coding agents basically didn’t work before December and basically work since - the models have significantly higher quality, long-term coherence and tenacity and they can power through large and long tasks, well past enough that it is extremely disruptive to the default programming workflow.&lt;/p&gt;&lt;p&gt;Just to give an example, over the weekend I was building a local video analysis dashboard for the cameras of my home so I wrote: “Here is the local IP and username/password of my DGX Spark. Log in, set up ssh keys, set up vLLM, download and bench Qwen3-VL, set up a server endpoint to inference videos, a basic web ui dashboard, test everything, set it up with systemd, record memory notes for yourself and write up a markdown report for me”. The agent went off for ~30 minutes, ran into multiple issues, researched solutions online, resolved them one by one, wrote the code, tested it, debugged it, set up the services, and came back with the report and it was just done. I didn’t touch anything. All of this could easily have been a weekend project just 3 months ago but today it’s something you kick off and forget about for 30 minutes.&lt;/p&gt;&lt;p&gt;As a result, programming is becoming unrecognizable. You’re not typing computer code into an editor like the way things were since computers were invented, that era is over. You're spinning up AI agents, giving them tasks &lt;em&gt;in English&lt;/em&gt; and managing and reviewing their work in parallel. The biggest prize is in figuring out how you can keep ascending the layers of abstraction to set up long-running orchestrator Claws with all of the right tools, memory and instructions that productively manage multiple parallel Code instances for you. The leverage achievable via top tier "agentic engineering" feels very high right now. &lt;/p&gt;&lt;p&gt;It’s not perfect, it needs high-level direction, judgement, taste, oversight, iteration and hints and ideas. It works a lot better in some scenarios than others (e.g. especially for tasks that are well-specified and where you can verify/test functionality). The key is to build intuition to decompose the task just right to hand off the parts that work and help out around the edges. But imo, this is nowhere near "business as usual" time in software. &lt;/p&gt;&lt;/blockquote&gt;</summary><category term="openclaw"/><category term="andrejkarpathy"/></entry><entry><title>SOFTWARE_ENGINEERING.md</title><link href="https://kbr.sh/blogmark/2026/Feb/26/software-engineering-md/#atom-everything" rel="alternate"/><published>2026-02-27T01:27:09+00:00</published><updated>2026-02-27T01:27:09+00:00</updated><id>https://kbr.sh/blogmark/2026/Feb/26/software-engineering-md/#atom-everything</id><summary type="html">&lt;p&gt;If you asked me 5 months ago what software engineering would look like, I would not have been close to how it actually is today. Not even.&lt;br&gt;&lt;br&gt;This file is my way of pointing my agents to my “taste” in terms of how I like to engineer software.&lt;br&gt;&lt;br&gt;Things are changing so quickly, how we direct agents will too.&lt;/p&gt;</summary><category term="ai"/><category term="ai-assisted-programming"/></entry><entry><title>Is the craft dead?</title><link href="https://kbr.sh/blogmark/2026/Feb/17/is-the-craft-dead/#atom-everything" rel="alternate"/><published>2026-02-17T19:42:01.523518+00:00</published><updated>2026-02-17T19:42:01.523518+00:00</updated><id>https://kbr.sh/blogmark/2026/Feb/17/is-the-craft-dead/#atom-everything</id><summary type="html">&lt;p&gt;I like Scott's take here. It's not dead. Never was. Just changed.&lt;/p&gt;</summary><category term="ai"/><category term="programming"/></entry><entry><title>OpenClaw Acquired by OpenAI</title><link href="https://kbr.sh/blogmark/2026/Feb/16/openaclaw-acquired-by-openai/#atom-everything" rel="alternate"/><published>2026-02-16T22:02:37+00:00</published><updated>2026-02-16T22:02:37+00:00</updated><id>https://kbr.sh/blogmark/2026/Feb/16/openaclaw-acquired-by-openai/#atom-everything</id><summary type="html">&lt;p&gt;Welp, that was fast.&lt;br&gt;From Sam Altman:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Peter Steinberger is joining OpenAI to drive the next generation of personal agents. He is a genius with a lot of amazing ideas about the future of very smart agents interacting with each other to do very useful things for people. We expect this will quickly become core to our product offerings. OpenClaw will live in a foundation as an open source project that OpenAI will continue to support. The future is going to be extremely multi-agent and it's important to us to support open source as part of that.&lt;/p&gt;&lt;/blockquote&gt;</summary><category term="ai"/><category term="opensource"/><category term="openai"/></entry><entry><title>OpenClaw</title><link href="https://kbr.sh/blogmark/2026/Feb/10/openclaw/#atom-everything" rel="alternate"/><published>2026-02-11T04:29:07.402842+00:00</published><updated>2026-02-11T04:29:07.402842+00:00</updated><id>https://kbr.sh/blogmark/2026/Feb/10/openclaw/#atom-everything</id><summary type="html">&lt;p&gt;This has been the new hotness on the socials. But it's kinda just really good packaging for a local proxy to foundation models. Not saying it's nothing. Still might try it out. But I'm busy, yo.&lt;/p&gt;</summary><category term="ai"/><category term="opensource"/></entry><entry><title>The Adolescence of Technology</title><link href="https://kbr.sh/blogmark/2026/Feb/10/the-adolescence-of-technology/#atom-everything" rel="alternate"/><published>2026-02-11T04:26:20.612728+00:00</published><updated>2026-02-11T04:26:20.612728+00:00</updated><id>https://kbr.sh/blogmark/2026/Feb/10/the-adolescence-of-technology/#atom-everything</id><summary type="html">&lt;p&gt;Dario's (founder of Anthropic) essays are required reading.&lt;/p&gt;</summary><category term="ai"/></entry><entry><title>teleporting into the future and robbing yourself of retirement projects</title><link href="https://kbr.sh/blogmark/2026/Feb/10/teleporting-into-the-future-and-robbing-yourself-of-retirement-p/#atom-everything" rel="alternate"/><published>2026-02-11T04:14:47.088255+00:00</published><updated>2026-02-11T04:14:47.088255+00:00</updated><id>https://kbr.sh/blogmark/2026/Feb/10/teleporting-into-the-future-and-robbing-yourself-of-retirement-p/#atom-everything</id><summary type="html">&lt;p&gt;oooo, boy going through this right now.&lt;/p&gt;</summary><category term="ai"/><category term="programming"/></entry><entry><title>Code like a surgeon</title><link href="https://kbr.sh/blogmark/2026/Feb/10/code-like-a-surgeon/#atom-everything" rel="alternate"/><published>2026-02-11T03:49:12+00:00</published><updated>2026-02-11T03:49:12+00:00</updated><id>https://kbr.sh/blogmark/2026/Feb/10/code-like-a-surgeon/#atom-everything</id><summary type="html">&lt;p&gt;As a newcomer to a long-existing codebase recently, AI provides a lot of productivity gains.&lt;br&gt;You can choose how you use AI.&lt;br&gt;Choose wisely.&lt;/p&gt;</summary><category term="ai"/><category term="programming"/></entry><entry><title>With the help of Claude code, I’ve been able to ma...</title><link href="https://kbr.sh/note/8/#atom-everything" rel="alternate"/><published>2026-02-10T23:09:18+00:00</published><updated>2026-02-10T23:09:18+00:00</updated><id>https://kbr.sh/note/8/#atom-everything</id><summary type="html">&lt;p&gt;With the help of Claude code, I’ve been able to make blogging extremely frictionless for me now. &lt;/p&gt;
&lt;p&gt;Within 20 minutes I had this feature coded and deployed. &lt;/p&gt;
&lt;p&gt;Wild.&lt;/p&gt;</summary><category term="kbr-blog"/><category term="telegram"/></entry><entry><title>Bun is joining Anthropic</title><link href="https://kbr.sh/blogmark/2025/Dec/2/bun-is-joining-anthropic/#atom-everything" rel="alternate"/><published>2025-12-02T21:58:34+00:00</published><updated>2025-12-02T21:58:34+00:00</updated><id>https://kbr.sh/blogmark/2025/Dec/2/bun-is-joining-anthropic/#atom-everything</id><summary type="html">&lt;p&gt;I'll be honest. Bun joining Anthropic wasn't on my bingo card.&lt;/p&gt;
&lt;p&gt;Congrats to the team!&lt;/p&gt;</summary><category term="bunjs"/><category term="anthropic"/><category term="javascript"/></entry><entry><title>We had a breakthrough in AI with transformers.

...</title><link href="https://kbr.sh/note/5/#atom-everything" rel="alternate"/><published>2025-11-01T14:16:08+00:00</published><updated>2025-11-01T14:16:08+00:00</updated><id>https://kbr.sh/note/5/#atom-everything</id><summary type="html">&lt;p&gt;We had a breakthrough in AI with transformers.&lt;/p&gt;
&lt;p&gt;Where’s our breakthrough in AI with alignment?&lt;/p&gt;</summary><category term="ai"/><category term="alignment"/></entry><entry><title>Started reading "The Scaling Era: An Oral History ...</title><link href="https://kbr.sh/note/4/#atom-everything" rel="alternate"/><published>2025-10-20T11:19:24.793813+00:00</published><updated>2025-10-20T11:19:24.793813+00:00</updated><id>https://kbr.sh/note/4/#atom-everything</id><summary type="html">&lt;p&gt;Started reading "The Scaling Era: An Oral History of AI, 2015 - 2025" by Dwarkesh Patel with Gavein Leech.&lt;br&gt;&lt;br&gt;Dense with citations and definitions. Taking my time here. 😮‍💨&lt;/p&gt;</summary><category term="books"/><category term="ai"/><category term="the-scaling-era"/><category term="dwarkeshpatel"/></entry><entry><title>From 6/5/17 in one of my notebooks I wrote down th...</title><link href="https://kbr.sh/note/3/#atom-everything" rel="alternate"/><published>2025-10-20T10:53:41.604500+00:00</published><updated>2025-10-20T10:53:41.604500+00:00</updated><id>https://kbr.sh/note/3/#atom-everything</id><summary type="html">&lt;p&gt;From 6/5/17 in one of my notebooks I wrote down this quote from Andreesen Horowitz - AI Playbook:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;AI is the new relational database, about to get into every important piece of software we write.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This seems to have mostly come true in 2025.&lt;/p&gt;</summary><category term="softwareengineering"/><category term="ai"/></entry><entry><title>Magical Thinking is the belief that your thoughts ...</title><link href="https://kbr.sh/note/2/#atom-everything" rel="alternate"/><published>2025-10-18T02:25:57.758475+00:00</published><updated>2025-10-18T02:25:57.758475+00:00</updated><id>https://kbr.sh/note/2/#atom-everything</id><summary type="html">&lt;p&gt;Magical Thinking is the belief that your thoughts alone is enough to affect the world. Success requires both appropriate action and realistic assessment of what's actually possible.&lt;/p&gt;
&lt;p&gt;Just do it or you can just do things.&lt;/p&gt;
&lt;p&gt;Critical thinking with concrete action. Always.&lt;/p&gt;</summary><category term="philosophy"/></entry><entry><title>Building a Bear Notes Skill for Claude Code</title><link href="https://kbr.sh/post/2025/Oct/16/bear-notes-claude-skill/#atom-everything" rel="alternate"/><published>2025-10-16T23:54:14+00:00</published><updated>2025-10-16T23:54:14+00:00</updated><id>https://kbr.sh/post/2025/Oct/16/bear-notes-claude-skill/#atom-everything</id><summary type="html">&lt;p&gt;I've been using Bear for years. It's where all my thoughts go (I have over 5k+ notes) - meeting notes, code snippets, random ideas at 2am, links I'll definitely read "later" (spoiler: I won't). But here's the thing: when I'm deep in a coding session with Claude Code, switching contexts to find that one note with the regex pattern I need is... annoying.&lt;/p&gt;&lt;p&gt;So I built a &lt;a target="_blank" rel="noopener noreferrer" href="https://github.com/program247365/dotfiles/tree/main/.claude/skills/bear-notes"&gt;claudecode skill for Bear Notes&lt;/a&gt;. Now Claude can search, read, and even add to my notes without me leaving the terminal. 🐻&lt;br&gt;&lt;br&gt;All possible by Anthropic’s announcement today of &lt;a target="_blank" rel="noopener noreferrer" href="https://www.anthropic.com/news/skills"&gt;Claude Skills.&lt;/a&gt; You can get Claude Code in this case to get very good at looking at, searching, summarizing, and creating new notes for you in Bear.&lt;/p&gt;&lt;h2&gt;The Problem&lt;/h2&gt;&lt;p&gt;Claude Code is incredible for staying in flow. You're in your terminal, you're asking Claude to refactor something, debug an issue, or explain that gnarly piece of legacy code. But then you need something from your notes - maybe that SQL query you saved last week, or the API endpoint structure from yesterday's meeting.&lt;/p&gt;&lt;p&gt;You could:&lt;/p&gt;&lt;ol class="tight" data-tight="true"&gt;&lt;li&gt;&lt;p&gt;Cmd+Tab to Bear&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Search for the note&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Copy what you need&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Go back to terminal&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Paste it in&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Or... Claude could just grab it for you.&lt;/p&gt;&lt;h2&gt;What I Built&lt;/h2&gt;&lt;p&gt;The Bear Notes skill gives Claude direct access to your Bear database. It's read-only access to the SQLite database (because we're not cowboys here), plus it uses Bear's x-callback-url API for any write operations.&lt;/p&gt;&lt;p&gt;Here's what Claude can now do:&lt;/p&gt;&lt;ul class="tight" data-tight="true"&gt;&lt;li&gt;&lt;p&gt;Search your notes by content or tags&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Read full notes including all the metadata&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Add text to existing notes (append or prepend)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Create new notes with proper tags&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The coolest part? It all happens locally. No cloud sync, no external servers. Your notes stay on your machine.&lt;/p&gt;&lt;h2&gt;The Technical Bits&lt;/h2&gt;&lt;p&gt;Bear stores everything in a SQLite database at &lt;code&gt;~/Library/Group Containers/9K33E3U3T4.net.shinyfrog.bear/Application Data/database.sqlite&lt;/code&gt;. The skill reads directly from there for search operations - way faster than going through the API for everything.&lt;/p&gt;&lt;p&gt;For write operations, I use Bear's x-callback-url scheme. This ensures we're playing nice with iCloud sync and not causing any conflicts. The Bear team (shoutout to Danilo!) actually recommended this hybrid approach.&lt;/p&gt;&lt;p&gt;The structure is pretty straightforward:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;.claude/skills/bear-notes/
├── bear.py
├── claudeskill.yaml
└── README.md&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;The Fun Part&lt;/h2&gt;&lt;p&gt;Now I can do stuff like:&lt;/p&gt;&lt;p&gt;"Hey Claude, find my notes about that PostgreSQL indexing issue from last month and help me apply the same solution here"&lt;/p&gt;&lt;p&gt;Or:&lt;/p&gt;&lt;p&gt;"Search for all my meeting notes with the product team and summarize the key decisions"&lt;/p&gt;&lt;p&gt;Even better - when Claude helps me solve something interesting, I can ask it to save the solution right back to Bear with proper tags. My future self thanks me.&lt;/p&gt;&lt;h2&gt;Try It Yourself&lt;/h2&gt;&lt;p&gt;If you want to set this up:&lt;/p&gt;&lt;ol class="tight" data-tight="true"&gt;&lt;li&gt;&lt;p&gt;Make sure you have Bear installed (duh)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Grab &lt;a target="_blank" rel="noopener noreferrer" href="https://github.com/program247365/dotfiles/tree/main/.claude/skills/bear-notes"&gt;the skill from my dotfiles&lt;/a&gt; and clone it into your &lt;code&gt;.claude/skills/&lt;/code&gt; directory&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Make sure Claude Code can access the Bear database location&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Start asking Claude about your notes!&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Fair warning: it's the kind of code that works perfectly on my machine. 😅&lt;/p&gt;&lt;h2&gt;What's Next&lt;/h2&gt;&lt;p&gt;I'm thinking about adding:&lt;/p&gt;&lt;ul class="tight" data-tight="true"&gt;&lt;li&gt;&lt;p&gt;Smart tag suggestions based on content&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Note relationship mapping (which notes reference each other)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Archive management for old notes&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Maybe even some visualization of note connections?&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This is the kind of tool that makes you realize how much context switching we do all day. Removing even these small frictions adds up to staying in flow longer. And flow state is where the magic happens.&lt;/p&gt;&lt;p&gt;Also, there's something deeply satisfying about your AI assistant being able to reference that obscure bash one-liner you saved three years ago. Past you was looking out for present you all along.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;em&gt;Have you built any custom claudecode skills? What workflows are you automating? Drop me a line - always curious to see what others are building in this space.&lt;/em&gt;&lt;/p&gt;</summary><category term="projects"/><category term="bear"/><category term="claudecode"/></entry><entry><title>I've shipped the "notes" feature to my blog. When ...</title><link href="https://kbr.sh/note/1/#atom-everything" rel="alternate"/><published>2025-10-16T22:13:33.779272+00:00</published><updated>2025-10-16T22:13:33.779272+00:00</updated><id>https://kbr.sh/note/1/#atom-everything</id><summary type="html">&lt;p&gt;I've shipped the "notes" feature to my blog. When I'm logged in it shows a Twitter-like compose box, that creates short notes like these. So I can share thoughts on MY site, and not someone else's site.&lt;/p&gt;</summary><category term="kbr-blog"/></entry><entry><title>The Way of Code</title><link href="https://kbr.sh/blogmark/2025/Oct/16/the-way-of-code/#atom-everything" rel="alternate"/><published>2025-10-16T22:06:40.577500+00:00</published><updated>2025-10-16T22:06:40.577500+00:00</updated><id>https://kbr.sh/blogmark/2025/Oct/16/the-way-of-code/#atom-everything</id><summary type="html">&lt;p&gt;The way of code is a fascinating collaboration between Rick Rubin (&lt;a target="_blank" rel="noopener noreferrer" href="https://en.wikipedia.org/wiki/Rick_Rubin"&gt;yes, that guy&lt;/a&gt;), and Anthropic.&lt;/p&gt;&lt;p&gt;I was inspired by this, I love these kinds of canvas animations.&lt;/p&gt;&lt;p&gt;They did a good job as a marketing site for (1) Claude, and (2) Rick Rubin’s newsletter.&lt;/p&gt;</summary><category term="anthropic"/><category term="rickrubin"/></entry><entry><title>Everyone Should Be Using Claude Code More</title><link href="https://kbr.sh/blogmark/2025/Oct/15/everyone-should-be-using-claude-code-more/#atom-everything" rel="alternate"/><published>2025-10-15T19:42:36.903082+00:00</published><updated>2025-10-15T19:42:36.903082+00:00</updated><id>https://kbr.sh/blogmark/2025/Oct/15/everyone-should-be-using-claude-code-more/#atom-everything</id><summary type="html">&lt;p&gt;Lenny is right, everyone should be using Claude Code.&lt;/p&gt;&lt;p&gt;It’s like having &lt;a target="_blank" rel="noopener noreferrer" href="http://claude.ai"&gt;claude.ai&lt;/a&gt; that has access to your computer and all it’s files.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Claude Code isn’t about coding at all. It’s about having an AI that manages your entire process—whatever the goal might be.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;</summary><category term="claudecode"/></entry><entry><title>Github Readme That Updates</title><link href="https://kbr.sh/post/2025/Sep/3/github-readme-that-updates/#atom-everything" rel="alternate"/><published>2025-09-03T21:43:08.338860+00:00</published><updated>2025-09-03T21:43:08.338860+00:00</updated><id>https://kbr.sh/post/2025/Sep/3/github-readme-that-updates/#atom-everything</id><summary type="html">&lt;p&gt;I’m going to do more of the &lt;a target="_blank" rel="noopener noreferrer" href="https://www.youtube.com/watch?v=CTTY9CaOWSs"&gt;Show Your Work&lt;/a&gt; thing here on my blog. Buckle up.&lt;/p&gt;&lt;h2&gt;A README for You, Automated&lt;/h2&gt;&lt;p&gt;I really like automation. Probably a little too much. Add my love of &lt;a target="_blank" rel="noopener noreferrer" href="https://en.wikipedia.org/wiki/README"&gt;README&lt;/a&gt; files, and you’ll be able to see where this is going.&lt;/p&gt;&lt;p&gt;One of the things I wanted to do since it came out in July 2020(!), was have &lt;a target="_blank" rel="noopener noreferrer" href="https://docs.github.com/en/account-and-profile/how-tos/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme"&gt;my own personal README on GitHub&lt;/a&gt;. It’s this feature on GitHub that allows folks to customize their profile page.&lt;/p&gt;&lt;p&gt;So for example, my GitHub username is &lt;code&gt;program247365&lt;/code&gt;, if you create a &lt;code&gt;README.md&lt;/code&gt; it will render this at the top of your profile page, in my case at &lt;a target="_blank" rel="noopener noreferrer" href="https://github.com/program247365"&gt;https://github.com/program247365&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Folks have been really creative with this since it came out. Right away &lt;a target="_blank" rel="noopener noreferrer" href="https://simonwillison.net/2020/Jul/10/self-updating-profile-readme/"&gt;Simon Willison talked about having a self-updating README&lt;/a&gt;. And of course I said to myself, “I must have this.”&lt;/p&gt;&lt;p&gt;The neat part is that I don’t have to “update the data” myself manually, it uses a &lt;a target="_blank" rel="noopener noreferrer" href="https://github.com/program247365/program247365/blob/main/.github/workflows/update-readme.yml"&gt;GitHub Action to update it every six hours&lt;/a&gt;. I had some time, alongside my friend &lt;a target="_blank" rel="noopener noreferrer" href="https://claude.ai"&gt;Claude&lt;/a&gt; to put together a first version.&lt;/p&gt;&lt;p&gt;I cobbled together a bunch of different interesting widgets, &lt;a target="_blank" rel="noopener noreferrer" href="https://github.com/program247365/program247365/blob/main/src/build_readme.py#L127-L157"&gt;like getting GitHub stats from GitHub’s API&lt;/a&gt;. I don’t necessarily like everything on the README right now, but it looks pretty good for a &lt;a target="_blank" rel="noopener noreferrer" href="https://wrd.as.uky.edu/sites/default/files/1-Shitty%20First%20Drafts.pdf"&gt;shitty first draft&lt;/a&gt; ;).&lt;/p&gt;&lt;h2&gt;Further Inspiration&lt;/h2&gt;&lt;p&gt;There are some really cool ones:&lt;/p&gt;&lt;ul class="tight" data-tight="true"&gt;&lt;li&gt;&lt;p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a target="_blank" rel="noopener noreferrer" href="https://github.com/topics/profile-readme"&gt;https://github.com/topics/profile-readme&lt;/a&gt; - see a big list at this topic &lt;code&gt;profile-readme&lt;/code&gt;&lt;/p&gt;&lt;ul class="tight" data-tight="true"&gt;&lt;li&gt;&lt;p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a target="_blank" rel="noopener noreferrer" href="https://zzetao.github.io/awesome-github-profile/"&gt;https://zzetao.github.io/awesome-github-profile/&lt;/a&gt; - gallery of github profiles&lt;/p&gt;</summary><category term="automation"/><category term="projects"/><category term="github"/><category term="github-actions"/></entry><entry><title>Context Engineering</title><link href="https://kbr.sh/blogmark/2025/Jul/6/context-engineering/#atom-everything" rel="alternate"/><published>2025-07-06T23:15:57.592263+00:00</published><updated>2025-07-06T23:15:57.592263+00:00</updated><id>https://kbr.sh/blogmark/2025/Jul/6/context-engineering/#atom-everything</id><summary type="html">&lt;p&gt;I like this definition better. As we learn more about how to manage our words passed to LLMs, I think the nouns we use should change along with it.&lt;/p&gt;</summary><category term="ai"/><category term="context-engineering"/></entry><entry><title>Vibe Coding</title><link href="https://kbr.sh/post/2025/Jun/9/vibe-coding/#atom-everything" rel="alternate"/><published>2025-06-09T14:10:03.186004+00:00</published><updated>2025-06-09T14:10:03.186004+00:00</updated><id>https://kbr.sh/post/2025/Jun/9/vibe-coding/#atom-everything</id><summary type="html">&lt;p&gt;Yes, there will be vibes. Yes, there will be coding.&lt;/p&gt;
&lt;p&gt;These can be separate, or they can come together into something really unique and interesting.&lt;/p&gt;
&lt;p&gt;I've been delving into recently with fun results with &lt;a href="https://github.com/program247365/hackertuah"&gt;hackertuah&lt;/a&gt; and &lt;a href="https://github.com/program247365/notes-analyzer"&gt;notes-analyzer&lt;/a&gt;, and my &lt;a href="https://kbr.sh/post/2025/May/21/8-bit-spelling-game-built-with-claude/"&gt;spelling game&lt;/a&gt;. These are some small, quick projects that came together quickly because of vibe coding.&lt;/p&gt;
&lt;p&gt;I quipped in April about in &lt;a href="https://kbr.sh/blogmark/2025/Apr/29/vibe-coding-beginnings/"&gt;Vibe Coding Beginnings&lt;/a&gt;. I had thinking about it more in depth since some friends and I were chatting about this over coffee one day. We were lamenting that LinkedIn influencers were going haywire about this “vibe coding” thing, and it was getting obnoxious. Which is true, it is getting over-killed by many online.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://simonwillison.net/2025/May/1/not-vibe-coding/"&gt;I agree with Simon here&lt;/a&gt; – publishers of these books on vibe coding are probably doing a disservice to the up-and-coming programmers, and those who just want to solve quick small problems with a computer, without having to think about the code at all. But there is a kernel of something valuable here. I think what we’re missing is there are software engineers who know how to code who use AI, and there are folks who being brought into “software engineering” with this “Vibe Coding” thing. With the latter, the barriers are lower, the language of the noun is more welcoming which matters a lot when you’re starting out.&lt;/p&gt;
&lt;p&gt;I think it matters who we’re talking about when we talk about vibe coding. Is it the absolute beginner who’s never programmed before? Is it the junior software engineer? The senior or more engineer? Because if you outline who the audience of this is, it changes what we’re talking about.&lt;/p&gt;</summary><category term="vibecoding"/><category term="claudecode"/></entry><entry><title>8-Bit Spelling Game: Built with Claude</title><link href="https://kbr.sh/post/2025/May/21/8-bit-spelling-game-built-with-claude/#atom-everything" rel="alternate"/><published>2025-05-21T16:19:07.332699+00:00</published><updated>2025-05-21T16:19:07.332699+00:00</updated><id>https://kbr.sh/post/2025/May/21/8-bit-spelling-game-built-with-claude/#atom-everything</id><summary type="html">&lt;p&gt;Wanted to share a fun little project I built this morning for my 9-year-old daughter: an interactive, retro-styled spelling game that she absolutely loves!&lt;/p&gt;
&lt;p&gt;🎮 The "8-bit Spelling Game" is a fun educational tool where players hear words through text-to-speech and type them out letter by letter, with cute dolphin animations and confetti celebrations for correct answers.&lt;/p&gt;
&lt;p&gt;👨‍💻 What made this project special was how quickly I could bring it to life.&lt;/p&gt;
&lt;p&gt;With Anthropic's Claude helping me, I went from idea to working game in record time. The AI assistance streamlined the development process significantly.&lt;/p&gt;
&lt;p&gt;🔧 Tech stack:&lt;/p&gt;
&lt;p&gt;• Browser-based SQLite for word management&lt;/p&gt;
&lt;p&gt;• ElevenLabs API for natural text-to-speech&lt;/p&gt;
&lt;p&gt;• TypeScript &amp;amp; ES Modules&lt;/p&gt;
&lt;p&gt;• Interactive UI with animations and audio feedback&lt;/p&gt;
&lt;p&gt;This is just one example of how AI tools like Claude are transforming my development workflow, allowing me to build meaningful projects for my family in a fraction of the time it would normally take.&lt;/p&gt;
&lt;p&gt;✨ Check it out on GitHub: &lt;a href="https://github.com/program247365/spelling-game"&gt;https://github.com/program247365/spelling-game&lt;/a&gt;&lt;/p&gt;</summary><category term="ai"/><category term="projects"/><category term="claude"/><category term="gamedev"/><category term="claudecode"/></entry><entry><title>Cocogitto: The conventional commit toolbox</title><link href="https://kbr.sh/post/2025/May/17/cocogitto-the-conventional-commit-toolbox/#atom-everything" rel="alternate"/><published>2025-05-17T20:33:18+00:00</published><updated>2025-05-17T20:33:18+00:00</updated><id>https://kbr.sh/post/2025/May/17/cocogitto-the-conventional-commit-toolbox/#atom-everything</id><summary type="html">&lt;p&gt;I highly recommend you incorporate cocogitto into your git workflow.&lt;/p&gt;&lt;p&gt;It's a CLI that you use with git to enforce &lt;strong&gt;Conventional Commits&lt;/strong&gt; , A specification for adding human and machine readable meaning to commit messages. &lt;a target="_blank" rel="noopener noreferrer" href="https://www.conventionalcommits.org/"&gt;See the spec here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;I've been using it for a few months now, and it's been great to tighten up my git commit messages, and enable a lot of things like changelog generation which is awesome.&lt;/p&gt;&lt;p&gt;Every new personal project has been getting this treatment, and I'm using it at work as well.&lt;/p&gt;&lt;p&gt;It allows you to do thinks like:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;cog commit feat "New feature for thing" # commits in conventional commit style
cog changelog #generates a changelog for your project
cog bump # intelligently bumps your version number, git tags, etc&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Oh, and it's written in Rust. &lt;em&gt;wink&lt;/em&gt;&lt;/p&gt;</summary><category term="cli"/><category term="git"/><category term="rust"/></entry><entry><title>Raycast Now Has an iOS App</title><link href="https://kbr.sh/blogmark/2025/May/1/raycast-now-has-an-ios-app/#atom-everything" rel="alternate"/><published>2025-05-01T09:28:49.224357+00:00</published><updated>2025-05-01T09:28:49.224357+00:00</updated><id>https://kbr.sh/blogmark/2025/May/1/raycast-now-has-an-ios-app/#atom-everything</id><summary type="html">&lt;p&gt;My most-used, most-recommended app, &lt;a href="https://apps.apple.com/us/app/raycast/id6503428327"&gt;just went mobile with an iOS app&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It started as a &lt;a href="https://www.raycast.com/"&gt;shortcut for everything&lt;/a&gt;, but now with all the LLM models, is &lt;a href="https://www.raycast.com/core-features/ai"&gt;my go-to for quickly asking AI&lt;/a&gt; questions throughout my day.&lt;/p&gt;</summary><category term="ai"/><category term="ios"/><category term="raycast"/><category term="tools"/></entry><entry><title>Git Blame Ignore Revs</title><link href="https://kbr.sh/post/2025/Apr/29/git-blame-ignore-revs/#atom-everything" rel="alternate"/><published>2025-04-29T10:16:25.726581+00:00</published><updated>2025-04-29T10:16:25.726581+00:00</updated><id>https://kbr.sh/post/2025/Apr/29/git-blame-ignore-revs/#atom-everything</id><summary type="html">&lt;p&gt;I've been a part of a lot of code cleanups, and touching legacy codebases. Often times I'd run prettier, or a linter or formatter across the entire codebase and change a whole lot that is not really changing the functionality, but the readability of the codebase. And I didn't like it when my name would be the last name on a git blame when I may not really know much about that part of the code, but my name is there because I ran that linter/formatter.&lt;/p&gt;
&lt;p&gt;Well from a PR at work, today I learned that you can specify these kinds of commits, in a file in the codebase, and they'll not include that commit in a git blame command!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/git/git/commit/209f0755934a0c9b448408f9b7c9849c15041ecc"&gt;Apparently since 2019 this has been a thing!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Creating a &lt;code&gt;.git-blame-ignore-revs&lt;/code&gt;, and putting one hash per line will do the trick.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.michaelheap.com/git-ignore-rev/"&gt;I like Micheal's post here, that recommends you put a comment as to why that commit is there too.&lt;/a&gt;&lt;/p&gt;</summary><category term="git"/><category term="til"/></entry><entry><title>Vibe Coding Beginnings</title><link href="https://kbr.sh/blogmark/2025/Apr/28/vibe-coding-beginnings/#atom-everything" rel="alternate"/><published>2025-04-29T02:24:15.218558+00:00</published><updated>2025-04-29T02:24:15.218558+00:00</updated><id>https://kbr.sh/blogmark/2025/Apr/28/vibe-coding-beginnings/#atom-everything</id><summary type="html">&lt;blockquote&gt;
&lt;p&gt;There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It's possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like "decrease the padding on the sidebar by half" because I'm too lazy to find it. I "Accept All" always, I don't read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I'd have to really read through it for a while. Sometimes the LLMs can't fix a bug so I just work around it or ask for random changes until it goes away. It's not too bad for throwaway weekend projects, but still quite amusing. I'm building a project or webapp, but it's not really coding - I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This tweet has 4.9 million views.&lt;/p&gt;
&lt;p&gt;I think this is the origin of "vibe coding"? I didn't know it was from Andrej Karpathy!&lt;/p&gt;</summary><category term="vibecoding"/><category term="andrejkarpathy"/></entry><entry><title>Andrej Karpathy, has a blog!</title><link href="https://kbr.sh/blogmark/2025/Apr/28/blog-of-andrej-karpathy/#atom-everything" rel="alternate"/><published>2025-04-29T02:21:26.891685+00:00</published><updated>2025-04-29T02:21:26.891685+00:00</updated><id>https://kbr.sh/blogmark/2025/Apr/28/blog-of-andrej-karpathy/#atom-everything</id><summary type="html">&lt;p&gt;Goes to show you, everyone is moving from walled gardens, and moving towards blogging again. &lt;/p&gt;
&lt;p&gt;Yay!&lt;/p&gt;</summary><category term="blogging"/><category term="andrejkarpathy"/></entry><entry><title>Avoiding Skill Atrophy in the Age of AI</title><link href="https://kbr.sh/blogmark/2025/Apr/26/avoiding-skill-atrophy-in-the-age-of-ai/#atom-everything" rel="alternate"/><published>2025-04-26T18:57:47.702191+00:00</published><updated>2025-04-26T18:57:47.702191+00:00</updated><id>https://kbr.sh/blogmark/2025/Apr/26/avoiding-skill-atrophy-in-the-age-of-ai/#atom-everything</id><summary type="html">&lt;p&gt;I think Addy has the right take here.&lt;/p&gt;
&lt;p&gt;You can avoid it and fall behind.&lt;/p&gt;
&lt;p&gt;But if you go too deep down the rabbit-hole of letting AI write your code, you're asking for problems. Most importantly: skill atrophy.&lt;/p&gt;</summary><category term="ai"/><category term="vibecoding"/></entry></feed>