Can two free tools cut your code review time in half without changing your stack, your habits, or your sanity? If you write Java, the duo is FindBugs and PMD, and they are sitting there waiting to clean up your pull before a single human reads it. With Oracle now…
Magnolia CMS: Light Modules and Editorial Flow
\n It was one of those late afternoon calls. The client had a press release that needed to go live before dinner. Their editor was staring at a WYSIWYG that acted like a flip phone. Every save felt like roulette. We moved the piece into Magnolia CMS, clicked through an…
JPA Essentials: Entities, Repositories, Boundaries
\n I was staring at a log window at midnight, sipping cold coffee, while a web page took forever to load a list of users with their posts. Each user opened a new query. Then another. Then another. It felt like the app was taking a stroll through the database…
Groovy on the JVM: Scripting that Feels Like Home
Last week a teammate pinged me near midnight. A cranky batch job needed a bit of glue around a Java library to massage some CSV files. My eyes did the usual roll when I pictured a wall of boilerplate. Then I reached for Groovy on the JVM. Fifteen minutes later…
Cache Aside versus Read Through: Picking a Pattern
Your database is sweating, the app servers are yawning, and the product owner wants pages to feel instant. That is the moment you stop fiddling with SQL and start thinking cache. With EHCache growing up fast and shipping solid features, two patterns keep popping up in reviews and late night…
Drupal for Communities in : Modules that Matter
Drupal for communities: modules that matter I was sitting with a neighborhood group in a coffee shop, laptops open, arguing about where to host their new community. Someone said Ning. Another said a Facebook Group. The oldest person in the room leaned in and asked a simple thing. Do we…
Index Tuning and Analyzers in Lucene
Search feels fast when the index is honest about what it stores and what it throws away. Lucene gives you all the knobs, but your analyzer and write path decide whether you get speed, recall, or a pile of tiny segments crying for help. Analyzer choice is a product decision…
Android UI Patterns: Lists, Cards, and Gestures
Android feels different this month. The Droid landed on Verizon, Eclair shipped, and the Market is getting crowded with apps that finally look and feel like they belong on a pocket computer. If you are building today, you are probably trying to answer a simple question that turns out to…
Sending Email with JavaMail: Templates and TLS
I once spent a long night hunting a phantom bug. The app said the email was sent. The logs agreed. The mailbox stayed empty. Turned out the SMTP server wanted TLS and I was talking plain old port 25 like it was still dial up time. Switched to STARTTLS on…
Using KDevelop for Java Projects
KDevelop is known as a home base for C and C plus plus, yet I keep coming back to it for Java projects on Linux. With Oracle buying Sun and everyone guessing what that means for NetBeans, and with Eclipse Galileo everywhere, you might wonder why anyone would wire Java…