RSSAmplifier

Blog

Daniel's Journal

danielraffel.meRSS feed ↗100 posts

Latest posts

Come Look at This

Sometimes the hardest part of exploring new territory isn’t the technology. It’s learning how to separate the work itself from the reactions it creates in other people.

A New Appreciation for How Hard Computers Have Been

Only recently have I started to recognize how much of computer literacy was really learning to navigate unnecessary friction.

Command+Tab Sent Me Looking for a New Remote Desktop Client on macOS

I’ve spent years managing Macs remotely with Apple Remote Desktop. Recently I gave Jump Desktop a try, and a handful of seemingly small features have started to shift my habits.

Pulp: Native GPU UI for Audio Plugins and Apps, with React + AI Design Import

I’ve been wondering what it would look like to build audio software in a world where AI agents exist without turning the whole thing into a soulless plugin factory that mass-produces random ideas.

Hiding in Plain Sight

Anonymity at scale is becoming less a stable state and more an ongoing act of defense against time, data, and attention. As influence grows, so does the public’s rational interest in understanding who is behind it, making “hiding in plain sight” increasingly fragile.

You Don’t Control What Shows Up

I used to think control was mostly about discipline—if something felt off, it meant I hadn’t trained hard enough—but biology doesn’t work that way; what we think and feel emerges from interacting systems shaped by things like stress, sleep, and even the microbes in our bodies.

Shipyard is a cross-platform CI orchestration layer that coordinates validation for AI agents working across parallel worktrees

I’ve been building cross-platform software where every change needs to be validated across Windows, macOS, Linux, Android, and iOS before it can land. The coding is handled by AI agents working in parallel across multiple worktrees. The constraint isn’t codegen; it’s coordinating reliable builds.

How to Install RepoPrompt Globally in Claude Code

By default, Repo Prompt installs its MCP server for Claude Code per-project via .mcp.json files. Here's how I made it available globally in every Claude Code session.

My Oscar 2026 Picks

Every year I make my Oscar predictions. This year I put together a small website with my ballot that updates every five minutes during the awards show using data scraped from the Oscars' realtime feed via Chrome DevTools, published with Claude using the new scheduled tasks /loop feature.

How to Control Ableton Live with Natural Language (MCP Setup)

Today, I stumbled across an Ableton Live MCP server that lets tools like Claude or Codex control Ableton using natural language. Here's how I set it up.

The Hardware Liberation Front

I’ve been spending some of my free time writing software to keep perfectly good hardware from becoming e-waste.

A Claude Code Plugin for Building JUCE Audio Plugins

A while back I wrote about how to start developing audio apps and plugins on macOS using the JUCE-Plugin-Starter I created. I've since turned that workflow into a Claude Code plugin called juce-dev.

How to Sparse Checkout the Claude Code Skill Creator

Anthropic released skill-creator, a skill for creating and iteratively improving other skills. If you’re not familiar with building skills, it’s worth trying out. Here's how to pull just that folder from the GitHub repo without cloning the entire thing using Git’s sparse checkout.

CGEvent Taps and Code Signing: The Silent Disable Race

If you have built a macOS app that intercepts media keys or system-wide keyboard events it can be a nightmare: the tap appears to install successfully, but after re-signing the binary and launching via the Dock or Finder, events never fire. Here’s what was happening to me, and how I fixed it.

Wemo + Google Assistant: Back From the Dead (And Faster Than Before)

I have a house full of Wemo switches, dimmers, and plugs, and I use Google Home speakers in pretty much every room. "Hey Google, turn off the kitchen light" was part of my daily routine — until Belkin pulled the plug. Here's how I restored service.

I Built a WebDriver for WKWebView Tauri Apps on macOS

I've been exploring Tauri lately – the framework for building desktop (and mobile) apps using web technologies with a Rust backend. I built an an open-source W3C WebDriver implementation to make it easy to test Tauri apps on macOS.

XcodeBuildMCP now CLI friendly

XcodeBuildMCP v2.0 was recently released, and it adds two optional skills you can install into supported CLIs (Codex, Claude, and Cursor).

How I Got CodexMonitor Running on My iPhone Over Tailscale

CodexMonitor recently developed an iOS app for connecting to your projects running on your desktop over Tailscale. Until there's a TestFlight / AppStore build you will need to build this yourself if you want to use it. Here's what I did to get it working.

A Hidden Character Can Hide Your Codex Sessions

Today I learned that a single weird Unicode line separator (U+2028) can make Codex.app skip loading session history. I quit and restarted the app and all my sessions vanished, which was alarming. Here's how I fixed it.

How I Got Claude and Codex to Consult Each Other via Skills (and When I Use Them)

Up until recently, getting Claude to collaborate with other agents was…functional, but clunky. Recently, I started using a skill that allows me to just call OpenAI /codex from Claude.

HomeBar: Control Your Smart Home from the Mac Menu Bar

HomeBar sits in your menu bar and lets you toggle lights, switches, and other HomeKit accessories with a single click. No need to open the Home app or pull out your phone.

A Tool for Generating HTML Embeds for asciicinema

Today I wanted to share a screen capture of a terminal project that I’ve been working on, and I wanted something better than a blurry screen recording. I ended up building a tool to set the start/end times and generate the code injection snippets for Ghost.

Learning Claude Code Plugins by Building Two

I wanted to learn how Claude Code plugins work, so I built a couple with plugin-dev: Worktree-Manager for easier git worktrees, and Chainer, which interprets what you want to build and picks + runs the right plugin(s).

I built a VS Code / Cursor extension to open Agents in the Editor Area

I wanted agent terminals to live next to my files, not in a pane. So I built a small extension using Codex that adds status bar buttons (one per agent) to open terminals directly in the editor area.

How I fixed a "content is not valid Base64" Error in n8n v2 GitHub Node

After upgrading from n8n v1 to v2, my workflow that uploads binary files to GitHub suddenly broke. The fix was adding an Extract from File node between the binary source and the GitHub node to manually convert the binary data to Base64.

Why a Purple Dot Appeared in My Mac’s Menu Bar During VLC Playback and How I Fixed It

While watching a full-screen video in VLC on my Mac, I noticed a small purple dot appear in the menu bar—something I’d never seen before. It was distracting, so I set out to disable it.

What’s Inside a Buddha? More Than I Ever Imagined

Today I learned that Buddha statues—yes, even the giant ones—often have scriptures and sacred objects placed inside them.

How to Install an ESP32 NAT Router Config on an M5NanoC6

A friend told me about a firmware called esp32_nat_router_extended, and it turns out you can turn an ESP32 into a cheap, low-power 2.4 GHz travel router pretty easily. Here’s how I got it running on my M5NanoC6 (ESP32-C6) from macOS.

What I Learned from Asking ChatGPT About “Based” — Very Based of Me

I thought it might be fun to start a new series where I share random stuff I ask ChatGPT to explain — tagged accordingly. To kick things off, here’s an unedited “Today I Learned” entry: ChatGPT explaining what “based” means.

I Got Ghosted by Mailgun (So I Built a Fix)

Ghost self-hosters can now send newsletters with Amazon SES! I added multi-provider bulk email support to Ghost, starting with Amazon SES, making it simpler and cheaper for writers to deliver newsletters using Ghost's existing newsletter features.

How I Got Ctrl+K to Work in VS Code on Windows in the Claude Code REPL

If you're using Claude Code's REPL in VS Code on Windows and Ctrl+K isn't working to clear text from the cursor to the end of line (like it does in bash), here's the quick fix.

GitHub Copilot’s “Free Plan Limit” Bug: A Year-Long Oversight?

If you use GitHub Copilot on the free plan, you’ve probably seen this message: “You’ve reached your free plan limit. Your limits will reset on [date].” GitHub, if you really intend to offer a free Copilot tier, please take a look at this bug.

How I Fixed Pelotons "Some information may not load" Warning

Back in August, I began noticing that whenever I started a workout, I received a warning saying, “Some information may not load.” Embarrassingly, the cause turned out to be AdGuard Home. One of my blocklists was preventing the device from connecting properly.

How I Got My Apogee Symphony MKI Working on macOS Tahoe 26.1

After updating to macOS Tahoe 26.1, my Apogee Symphony I/O MK I interface stopped working over USB Audio. Using a Thunderbridge with a Thunderbolt-to-USB-C adapter got it working again.

How I Discovered What Was Eating My Mac’s Storage

I ran into this problem: my 2TB SSD kept filling up at an impossible rate. No matter how much I deleted, the free space would vanish again. After clearing out every obvious file and folder I could find, I finally decided it was time to dig deeper.

How to Use Live Translation with Older AirPods (Yes, It Works!)

Apple recently added an impressive new feature to AirPods — Live Translation — letting you hear real-time translations of in-person conversations straight through your earbuds. Even better, it also works on older AirPods Pro models (2nd and 3rd generation).

How to Restore Broken Geofence Automations in Apple Home

After updating iOS my geofence automations in the Home app stopped working. Here’s what I did to get my iPhone working again after Apple Home geofence automations stopped working.

How I Restored NYTimes iOS Content Updates Blocked by AdGuard Home

I use AdGuard Home with several block lists. Recently, the NY Times iOS app stopped updating content. After checking the logs, I noticed that samizdat-graphql.nytimes.com was being blocked. Once I unblocked it, content updates in the iOS and iPadOS apps started working again.

Ghost GCP Installer and Updater Scripts Now Support Ghost v6

I’ve updated my Ghost updater script to fully support migrating from Ghost 5 to Ghost 6, assuming your Ghost instance was installed using the companion Ghost Google Cloud installer.

How to Automate Git Commits and Checkpoints in Alex Sidebar

I've been using Alex Sidebar for a while for developing macOS and iOS apps. They recently added support for Markdown files. I created a file that helps ensure that checkpoints and commits occur automatically and feature development occurs on branches.

How to Run macOS 26 Tahoe Beta in a VM on Your Mac using UTM

Apple just released the macOS 26 beta at WWDC, and if you're doing any kind of iOS or macOS development, it's a great time to spin up a test environment without risking your main system.

How to Get Sweetpad to Recognize Xcode Project Files in Build Directories

I encountered an issue using Sweetpad with an Xcode project that CMake was generating into a `build/` directory, but I resolved it by adding a simple settings.json file.

How to Start Developing Audio Plugins on macOS

Recently I've been playing around with making audio plugins on macOS using JUCE. I ended up putting together a few simple scripts to make it easier to quickly spin up new audio projects.

How to Setup macOS in a VM on macOS with UTM

I've been experimenting with different autonomous agents lately and I’ve started to sandbox them. When something needs to run on macOS, I’ve found UTM to be the easiest way to spin up a lightweight, isolated macOS instance on Apple Silicon.

How to Begin Piloting Autonomous AI Developer Tools

I recently encouraged a CEO friend to try an autonomous AI coding service—the kind of tool that would’ve seemed like science fiction not long ago. What stood out in our conversation was the complexity of introducing it to a team.

Where Does the Phrase "From Soup to Nuts" Come From?

I was watching a show recently when someone used the phrase "soup to nuts". And even though I understood what it meant — everything from beginning to end — I suddenly realized I had no idea why it meant that.

A macOS Shortcut I Somehow Missed

I’ve been using macOS for years, but only today learned that Command + backtick lets you switch between windows within the same app. Add Shift to go the other direction.

When Your Mac Feels Broken—But Isn’t

Recently, I started noticing that every time I rebooted my Apple Silicon MacBook Pro, I’d get stuck with the dreaded beachball. It wasn’t just a one-off. The issue persisted—even when I booted into Safe Mode.

☀️ Solar Showdown: A Friendly Energy Face-off

Steve—my neighbor and longtime friend—and I have occasionally swapped notes on our energy use. We’ve turned our solar production and energy usage into a daily, automated solar showdown between our homes.

🎛️ How I Installed My Apogee Symphony I/O MKI Without Using Rosetta on My Apple Silicon Mac

After setting up a fresh Apple Silicon MacBook Pro, I decided to take a more intentional approach this time—no Rosetta 2. To get my now-sunset Apogee Symphony I/O MKI working without relying on the official installer, I built an unofficial installation script.