Hibernate is everywhere in server side Java right now. Teams are shipping on Tomcat and JBoss, Spring is the glue, and JPA 2 support in Hibernate 3.5 and 3.6 feels solid. We keep hearing the same story in standups: the demo ran smooth, then production got slow, memory spiked, and…
Year: 2011
Apache Geronimo: What We Tried and What Worked
GlassFish 3.1 just shipped with clustering, JBoss AS 6 is everywhere on mailing lists, and Tomcat holds steady for teams that want lean and fast. In the middle of that talk sits Apache Geronimo. We spent real cycles putting it through its paces on a couple of apps and promised…
JSP Includes and Tag Files: Templating That Works
\n Templating in JSP does not need to hurt.Between includes and tag files you can get clean pages, fast builds, and zero drama. \n\n When people say JSP is messy, they are usually fighting the wrong battle. The quick wins sit right in front of us with JSP includes: the…
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…
Java Collections in Practice: Choosing the Right List or Map
Java Collections in Practice: Choosing the Right List or Map Picking the right collection is not a theory exercise. It decides how many servers you need, how long a page takes to render, and whether a late night pager wakes you up. I keep seeing the same mistakes in code…
Testing OSGi Bundles: Isolation that Helps
Why does testing an OSGi bundle feel trickier than testing a plain JAR? OSGi bundle testing has a reputation for being hard because the thing you ship is not a jar that sits alone. It joins a living world with a service registry, dynamic lifecycle, and class loaders that do…
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….
Graceful Degradation for Legacy Browsers
Graceful degradation is back on my mind tonight. Everyone is shipping shiny AJAX features, yet support tickets still come from people stuck on legacy browsers. If you build for the top of the market only, you will pay for it with every deploy. So let us talk about building cool…
Versioning and Dependencies in OSGi
New year. Quiet office. The build light was green for days and I thought we were ready to ship our OSGi based app on Monday. I pulled a last minute update for a library that fixed one tiny bug in our billing module. Dropped the new bundle in the Equinox…