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…
Category: Software Architecture
System design patterns, architectural decisions, and scalability strategies. Building robust, performant systems that stand the test of time.
RPC versus REST in GWT: Tradeoffs
REST is everywhere in blog chatter, while many GWT teams still ship apps with classic RPC. If you are building a snappy front end on top of Java today, this choice shapes your server code and your day to day debugging. GWT RPC feels like home for a Java shop….
Performance Pitfalls in Collections: Big-O Meets Reality
Performance Pitfalls in Collections: Big-O Meets Reality. Java Collections from a practitioner point of view with timeless lessons. If you have ever picked a structure because the chart said O of one or O of log n, this is for you. Context Sun is on its way into Oracle, Java…
From Servlets to REST: Evolving Endpoints
\n From Servlets to REST: Evolving Endpoints. Servlets from a practitioner’s perspective with timeless lessons. \n\n\n\n Context \n\n\n\n Web teams keep asking the same question in standups and hallway chats. Should we keep pushing everything through Servlets or lean into REST style endpoints with cleaner URLs and plain HTTP? With…
Styling JavaFX: A Practical Look at CSS on the JVM
“Good design is as little design as possible. The same goes for code style. Put style where style belongs.” Why JavaFX CSS on the JVM matters right now Java folks have wanted painless styling for years. Swing gets the job done but dressing it up often means more code than…
From Joda-Time to java.time: Finally Growing Up
Dates in Java have been a long weekend of migraines. We have all wrestled with Calendar, SimpleDateFormat, and time zones until the logs looked like static.There is a way out, and it starts with Joda Time and a maturing effort that the platform calls JSR 310, the future home of…
Versioning APIs without Pulling Rugs
Are you about to ship a fresh REST endpoint and feeling that little twitch of fear? Will your next tweak break someone else’s production at three in the morning? How do you do API versioning without pulling rugs from under your users? Why version at all if REST is supposed…
Oracle Just Bought Sun: What This Means for Java
\n So Oracle just bought Sun. What does that mean for Java? \n\n\n\n First reaction. Breathe. Then ask the only question that matters to most of us who write code in Java every day. What happens to the language and the platform that powers our apps, our servers, and a…
Thread Safety in Servlets: Avoiding Shared State
Thread safety in servlets sounds dry until it costs you a weekend. This is a practitioner’s view on why shared state is a trap, how to avoid it, and how to keep your Java web app sane on Tomcat or Jetty without playing whack a mole with race bugs. The…
Caching with Hibernate: Second-Level Strategies
Your app is fast in dev and then faceplants in prod. You flip on Hibernate SQL logging and the console vomits queries. The database fans whir up like a tiny jet engine. Pages that felt instant take a coffee break. Been there. If that story feels familiar, the next move…