I recently found myself wanting to automate a tedious task in a UI application. Working on a Mac, I started out looking at AppleScript and HammerSpoon, but eventually settled on writing a small Swift app. Here’s what I learned! What The task I was looking to automate is really simple – click a few buttons, […] The post UI Automation with (AX)Swift (and AI) appeared first on Atomic Spin.| Atomic Spin
Imagine walking into a high-end Brazilian steakhouse. You sit down, ready for a mouthwatering parade of grilled meats, expertly carved at your table. But something’s… off. The servers are hesitant. They don’t seem to know the difference between flank steak and filet mignon. The chef recommends the vegan house dressing for your ribeye. And when […] The post Why Using Software Is Like Eating at a Brazilian Steakhouse Run by Vegans appeared first on Atomic Spin.| Atomic Spin
Over the past two years, I’ve been building tools with AI and for AI (agents, automation, machine learning, computer vision, data labeling for model training)—sometimes for companies, sometimes for internal products, sometimes for experiments that are never meant to see the light of day. And somewhere along the way, my entire approach to product design […] The post Two Years Designing with AI: How My Process Completely Changed appeared first on Atomic Spin.| Atomic Spin
If you’re a developer, your inbox is probably drowning in notifications from GitHub, JIRA, and other development tools. While these notifications can be useful, the sheer volume often makes it impossible to spot truly important messages. The solution isn’t to turn off notifications entirely – it’s to use Gmail filters to organize them automatically so […] The post Tame JIRA and GitHub Email Spam with Gmail Filters appeared first on Atomic Spin.| Atomic Spin
I'll introduce a set of utility types and functions that make deep promise handling more ergonomic and type-safe.| Atomic Spin
Here's how and why you should log your ZSH History. Use a zsh hook to save commands to daily log files, allowing for easy searching.| Atomic Spin
Blog posts on developer tools, from the makers at Atomic Object.| Atomic Spin
Blog posts on techniques and tools user experience and design, written by makers at Atomic Object.| Atomic Spin
Blog posts development practices, techniques, and tools, from the makers at Atomic Object.| Atomic Spin
Because loving software, hacking, and Agile thinking don’t stop when we leave the office.| Atomic Spin
Blog posts about how we manage our projects and teams, written by makers at Atomic Object.| Atomic Spin
Blog posts on software development practices, from the makers at Atomic Object.| Atomic Spin
Blog posts about the software life, written by makers at Atomic Object.| Atomic Spin
Blog posts about becoming better, smarter human beings, written by makers at Atomic Object.| Atomic Spin
Blog posts sharing cool things we've learned through maker groups, presentations, etc., written by makers at Atomic Object.| Atomic Spin
As secret handling gets sophisticated, applications must ensure secrets are secure and easily managed. One method is using HashiCorp Vault.| Atomic Spin