Silencing Claude Code Sounds During Meetings
A tiny bash script that detects if you're in a meeting and skips Claude Code notification sounds. Six lines, no external dependencies. Continue reading…
A tiny bash script that detects if you're in a meeting and skips Claude Code notification sounds. Six lines, no external dependencies. Continue reading…
After 7 years and nearly 8 million processed jobs, I removed Sidekiq and Redis from Causey. Here's why, and how the migration to GoodJob went. Continue reading…
The 30-Second Screenshot Trick That Makes AI Coding Tools Way More Useful Continue reading…
A journey through Rails view rendering evolution: from ERB partials to HAML, ViewComponent, and finally Phlex. Learn the trade-offs and benefits of each approach with real-world examples. Continue reading…
Learn how to build flexible Domain Specific Languages in Ruby that accept content in multiple formats. Explore a real-world markdown generator that handles strings, blocks, and complex nesting patterns. Continue reading…
A deep dive into different CSS architecture approaches: utility-first frameworks like Tailwind, component libraries like Bootstrap, and custom DIY solutions. Learn the trade-offs and when to use each approach. Continue reading…
A practical guide to optimizing PostgreSQL JSONB queries through strategic indexing. Learn when to use GIN indexes, expression indexes, and partial indexes with real-world performance examples. Continue reading…
Learn how to effectively query PostgreSQL JSONB columns in Rails applications, from basic operations to advanced scoping patterns. Includes real-world examples from a production application. Continue reading…
A deep dive into creating robust Stimulus controllers that handle edge cases, provide fallbacks, and maintain clean separation of concerns. Learn from a real-world timezone formatting example. Continue reading…
A tribute to my grandfather, Paul Bemer, who passed away at 99. Through a poem co-written with my sister, we remember his craft, his love, and the joyful traditions that shaped our lives. Continue reading…
We often want the world to match our ideals, but ignoring reality only leads to frustration. Lasting change comes from first accepting things as they are, then working patiently and persistently to shape a better future. Continue reading…
We’re planning to build a garden and have been gathering ideas, documenting our dreams, and refining the design process as we go. Our goal is to create a space that reflects our vision while evolving through thoughtful planning and creativity. Continue reading…
In my last blog post, I talked about how to [Deploy Unity 5]({% post_url 2015-05-07-deploying-unity-5 %}). While working on that project, I uncovered a small, but important attack vector that should be fixed by Unity.
As I describe in the ...
Continue reading…
Note: You should also read the [Unity 5 Security Concerns]({% post_url 2015-05-07-deploying-unity-5 %})
The Scripps College of Communication teaches Unity for game development. Over the past few years, we’ve been able to download ...
Continue reading…
This Winter Break, some colleagues and I at Ohio University decided to embark on a completely modular workflow for faculty/lab/staff machines. We know that this will be a time consuming, tedious process, but totally worth it. This will ultim...
Continue reading…
Our university is in the process of making our Mac OS X installs a little more enterprise-y with AD authentication, management via MCX, centralized software update servers, and Apple Software Updates on a regular basis. In our journey to do the l...
Continue reading…
Sometimes, it’s nice to add local users to a computer via a script or the command line via ARD instead of the GUI. In the middle of the quarter, I needed to add a local user to each computer in our lab that would have no password and be a standar...
Continue reading…