It has been a loooong day! Somehow, I’m also signed up for a session starting at 10PM!! What was I thinking? I am thinking I am going to go to a movie to turn my brain off for a bit, yet stay nearby… Or maybe I should just go home, and watch a Netflix movie there… ? We’ll see how I feel in a little bit…
Anywhoo… On to the other sessions I went to today:
Innovative Ways to Find Memory-Related Bugs and Bottlenecks (TS-21935)
This was a decent presentation by a couple of guys from SAP. They saw a need when debugging huge memory dumps from their servers, so they wrote an Eclipse plugin that will help them analyze the dumps. They identified a type of object graph called "dominator tree". I am interested to know if they got that idea from anywhere else, or if they invented it… (Wikipedia didn’t bring up anything for that term…?)
They had a 4-step process using their tool for identifying problem spots. They also said that they were able to automate that process as well. This all depends on core dumps, and at the beginning of the presentation they said that in some versions you could choose to trigger the core-dump in real-time. (Without stopping the JVM though?)
I really liked their process. I learned a lot about the JVM and memory stuff just from their presentation. I don’t think I’d like to be doing memory analysis all the time, but their little tool would definitely have been helpful on a couple of projects at my last job.
Overall, this was a pretty great session, even if it didn’t specifically apply to me. (At least not right now…)
Closures for Java (TS-2294)
This was a presentation by Neal Gafter from Google (formerly of Sun?). He is leading the JCP/Spec for putting closures into Java. I never really identified "closures" as something I’ve used in the past, since they are mostly a dynamic programming artifact. However, thinking back on my Java experience and now knowing what a closure is, there was a couple of times that I did want closures in the past.
It was really pretty informative on how a compiler-type of guy would look at the challenges of adding it to the language, but as far as really learning the depth and breadth of how useful closures can be, it felt a little lacking. So, I guess I am saying it was appropriate for what it was, but I’ll need to do some self-study with some dynamic programming languages to "get" closures.
JPA: Best Practices & Tips
This session kinda rubbed me the wrong way. Maybe it was late and I was just tired, but I left ½ way through.
It wasn’t obvious from the slides that the presenters were Sun people. Again, like with JSF, Sun is pushing conformance to a spec that is pretty incomplete, and talking out of the sides of their mouths about vendors’ implementations. Yeah, I get portability, and I support it… But I don’t think you should get your panties in a knot for using an open-source solution and using that "vendor’s proprietary" enhancements when the spec comes up short.
I am realizing that Sun specs are kinda weird. Implementations and the specs seem to have a mutually affective relationship. Almost a chicken-and-the-egg kinda lifecycle.
Anywhoo, this session’s slides were bad. (Too dense with text, and not enough diagrams to explain the more complex scenarios. Also, the diagrams they did have weren’t very "dynamic", and by that I mean they didn’t change colors over multiple slides to show conceptual focus. I noticed that the SAP guys did have really dynamic slides, and they were really effective for my understanding.) And, it assumed you were in the middle of implementing JPA, with a strong bent toward EJB3 as well. It was a little too overly-specific for me, so I took off…
Maybe I’ll post again tonight, but it will likely be tomorrow.