Blog
Ruby On Rails developers often find themselves creating migrations with columns that need to be non-nullable, but the standard migration generator creates nullable columns by default. Instead of generating a migration and then manually editing the file to add null: false, you can specify this constraint right from the command line (thanks to this PR...
Today the team at Basecamp released Action Native Push. Action Native Push brings a much-needed boost to Hotwire Native developers by enabling seamless integration of push notifications directly from Rails. Previously, sending notifications involved complex infrastructure like Amazon SNS or Pinpoint, but this gem simplifies the process by connecting directly to Apple’s APNs and Google’s...
Recently, we ran into a usability issue in our app. When customers archived Widgets, the interface gave no indication that anything was happening until the process was fully complete. This caused confusion for our users, and in many cases they attempted to archive the same Widget more than once. Without any visual feedback...
Our friends over at thoughtbot have just released Top Secret. Top Secret is a Rubygem that redacts sensitive information from free text before that text gets sent off to an AI LLM for processing. For example: raw_text = "My SSN is 123-45-6789 and my name is Keyser Soze" filtered_text = TopSecret::Text.filter(raw_text) filtered_text.output # => "My...
If you are anything like me, you don't like screenshots cluttering your desktop. Unfortunately, the desktop is the default place to store screenshots in macOS, so this has to be changed. Our plan here is to create a screenshots folder on our Mac, then have macOS save screenshots there. Next up, we want to have...
Model Context Protocol servers represent a significant leap forward in AI tooling. Rather than operating in isolation, Claude Code can now access your filesystem, control web browsers, analyze websites, and perform complex data processing tasks. This integration creates a seamless workflow where your AI assistant becomes an active participant in your development process rather than...
I've been using Claude Code lately, and I found myself wanting a simple way to know when Claude finished a task. Instead of watching the terminal, I figured a quick notification sound would do the trick. Luckily, Claude supports hooks, which are customizable actions that run when certain events occur. By editing the settings.local.json file...
I have been unhappy with the UI of Apple's emoji selector on macOS for a long time, so in a moment of inspiration I built my own! Introducing QuackQuack!, the emoji selector that lives in your menubar! The concept is extremely simple: You click the duck in your menubar which exposes a small window with...
Claude.md files are special Markdown files used by Claude Code, an AI-powered coding assistant by Anthropic. A Claude.md file serves as a "control panel" or "pre-flight briefing" for Claude, providing project-specific context and instructions to guide its behavior. Most projects that utilize claude code or other agentic AI tools use a version of this claude.md
Ruby's Enumerable#partition method is one of those hidden gems that can dramatically simplify your Rails code. This method splits any enumerable collection into two arrays based on a block condition, returning both the elements that match the condition and those that don't in a single operation. Instead of filtering your data multiple times or writing...