A quick story At two in the morning our office file box started beeping like a smoke alarm. The cheap NAS that held design files, exports, and a decade of random PDFs decided it had lived a full life. We did the usual dance with spare disks and prayers. I…
Category: General Software
Industry trends, platform evaluations, migration strategies, and systems thinking. The broader context of software development and technology choices.
Retry, Backoff, and Bounces: Making Email Reliable
The inbox looked quiet which is never a good sign on a launch night. We had queued a tidy welcome batch and watched connections spin up to Gmail, Yahoo, and Hotmail. Then the logs started to sing. 421 temp fails. Connection timeouts. A sprinkle of greylisting from a few small…
Virtual Machines for Repeatable Environments
Virtual Machines for repeatable environments sound like a mouthful, but the idea is simple. I want my app to run the same on my laptop, your laptop, the staging server, and that demo box in a conference room that still has Flash. Last week a gem update worked on my…
-Factor Thinking for Hosted Apps
Cloud hosting is the new shared office for our apps. You bring your laptop, plug into power, and get to work. Git push to Heroku feels normal now. AWS is the data center you rent by the hour. Google App Engine, Cloud Foundry, AppFog, Azure Websites, they all promise less…
Right-to-Left Support: Layout Realities for Desktop and Web
Right to left support is not a checkbox. It is a set of layout choices that show up in your UI every minute a user spends with your product. If you are shipping to Arabic or Hebrew readers this season, you have seen the tiny surprises. An arrow that points…
Input Validation Patterns that Work
Every nasty breach starts with a tiny text box. The scary part is it often looks like a normal form field you ship every day. If you build for the web or mobile today, input validation is the fence between a quiet night and a pager at 3 am. We…
Event Taxonomies: Measuring What Matters
Everyone tells you to measure everything. Then you launch, stare at a flashing dashboard, and realize you do not know what to do next. That was me last week at 1 a.m. Two laptops open, coffee gone cold, and a brand new feature that was supposed to move signups. Pageviews…
Resource Overcommit: When It Works and When It Bites
Resource overcommit feels like free pizza until you realize who is paying the tab.In the lab it looks like magic. In production it works until it does not, and that moment arrives fast when the mix changes. Resource overcommit is the promise that sells virtualization. Run more guests than you…
Commons IO and Lang: Everyday Helpers
Some days Java feels like groundhog day. Copy a directory. Read a stream into a String. Check if a value is blank. Build a decent toString and equals without turning your class into a festival of boilerplate. Then you remember Apache Commons IO and Apache Commons Lang. These two sit…
Little Libraries that Save Days: Apache Commons
Stop writing plumbing. Grab a tiny jar and ship. someone on a late night build I keep running into the same quiet hero in Java projects. It is not a shiny framework. It is not a new trend on Hacker News. It is a folder of small jars that do…