Snapshots and rollbacks are insurance for engineers. Not fancy. Not new. Just a quiet switch that lets you take two steps forward without the fear of falling into a pit. In the last few months I have watched friends upgrade kernels inside VirtualBox, push MySQL migrations on EC2, and test…
Category: General Software
Industry trends, platform evaluations, migration strategies, and systems thinking. The broader context of software development and technology choices.
Batch Inserts and the Art of the Flush
Hibernate batch inserts look simple on a slide, then your app crawls the moment you try to push a few hundred thousand rows. I spent a late night nudging a job while watching chatter about new features on Google Plus, and the culprit was not the database. It was the…
Multi-Module Projects: Structure for the Long Haul
Maven multi module projects are not shiny. They are not new. They are the plumbing that lets a codebase grow without turning into spaghetti. If your repo already has a few folders with random build files, or you are shipping more than one app that shares the same core classes,…
FXML and MVC: Structuring JavaFX UIs
\n I was staring at a messy controller at midnight and coffee number four was losing the fight. The app worked, sure, but the UI code had crawled into every corner of the class like ivy. Every tweak was a scavenger hunt. That was the night I split the screen…
Cross-Platform Consistency: Swing Themes in Practice
Everyone building desktop apps right now is juggling the same thing: we promise a cross platform story with Java Swing, then ship, and the screenshots from Windows 7, Snow Leopard, and fresh Ubuntu 11.04 look like cousins that barely talk to each other. Oracle now stewards Java, Apple has its…
Polling, Comet, Long-Running Requests
\n \n\n Polling, Comet, Long Running Requests: AJAX from a practitioner perspective with timeless lessons. \n\n The late night ping that would not stop \n\n Last night I had that classic support ping. The new activity widget we shipped was eating sockets like popcorn. Tabs open. Team chat running. Music…
Custom Reports for Product Questions
\n Last week a product manager asked me a simple question at 6 pm. Which product page sends the most people to checkout when they arrive from our own site search. I opened Google Analytics, clicked through three reports, and still had that look that says I am guessing. We…
JasperReports for Operations Dashboards
Creation date: 2011 01 11T01:53:25 Late last night the pager did its song and dance while Twitterrific kept buzzing about Verizon and the iPhone. Our ops channel was trying to calm a spike on a checkout flow and I was staring at a wallboard that looked like a Christmas tree….
Filters and Listeners: Cross-Cutting the Right Way
Filters and Listeners: Cross Cutting the Right Way. Servlets from a practitioner view with lessons you can reuse. The Problem We Keep Repeating Every Java web app I see starts clean and ends with controllers doing everything. Authentication checks. Log noise. Timing. A bit of compression. Some cookie dance. It…
Exporting to PDF and XLS: Tuning for Speed
\n \n\n\n\nI was on pager duty and a user hit Export to Excel right before a big meeting. The spinner felt like a staring contest. Tomcat was fine, CPU was bored, yet the report took ages. I cracked open the logs, watched JasperReports fill pages like a careful scribe, and…