OSGi Services in Sling: Clean Boundaries. Apache Sling from a practitioner’s perspective with lessons that stick. If you are building content apps on top of Sling and Jackrabbit, keeping logic in tidy units pays off like compound interest. Dialogue intro Dev: My Sling servlet is a thousand lines. It touches…
Building Rich Clients on the NetBeans Platform
Last night a feature request landed at 5 PM. The kind that sounds small during standup and turns into a mini rewrite after dinner. Our Swing app had grown into a ball of listeners and wizards. Adding one more screen felt like threading a cable through a crowded server rack….
Software Engineering : People, Process, Code
Timeless Software Engineering Lesson 6. This one is about the old triangle that never gets old. People, Process, Code. In that order. We ship features, fix bugs, and buy pizza, but the long game is built on those three words. Where do we start? Start with people. The smartest process…
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…
Jacoco and Friends: Wiring Coverage into CI
\n \n\n\n\n Created: 2011 12 03 00 59 46 \n\n We keep shipping faster and the walls between commit and prod keep moving closer. Jenkins grew out of Hudson and is now everywhere on the floor. GitHub is where half of our code lives and pull requests are the new…
Google Analytics Setup that Sticks
Google Analytics just leveled up. The new interface is rolling out, Real Time is in beta, Multi Channel Funnels just showed up in the sidebar, and a growing slice of organic keywords is now hidden behind that not provided label for signed in users. If your setup is a quick…
Event-Driven Thinking on the JVM
Are you still thinking in request and response when your work really looks like a stream of facts? When a customer signs up, a payment clears, stock runs out, or an email bounces, that is an event. On the JVM we have a trusty tool for this kind of flow….
Debugging Faster in NetBeans: Little Things that Matter
Ever felt like the NetBeans debugger is slowing you down, even when you know exactly what you want to see? The truth is the debugger is fast enough. It is us clicking too much, stepping where we should not, and ignoring a handful of tiny toggles that quietly shave minutes…
Squirrel My Go To Database Controller
“The best database tool is the one you actually open every day. For me that is Squirrel.” Why Squirrel stuck with me I keep a lot of tools around for data work. MySQL Workbench looks nice, psql is always there, and on the Mac side Sequel Pro is friendly. Still,…