Recently, we experienced some excessive memory consumption that was leading our servers into an out-of-memory (OOM) condition. To troubleshoot the issue, we needed a way to identify any large objects that were filling up the heap. As it turns out, there’s a JVM argument for this.
If you set this option, whenever an allocation request is made for an object greater than or equal to the given size, the Java stack trace corresponding to the thread requesting the allocation is printed into the standard error log. From this stack trace, you can easily see which actual Java class is eating up all your memory. For example, the following setting will print the stack information for all allocations over 10 megabytes to the native_stderr.log:
You can also view an allocation within a certain range of values. The following, for example, will print the stack information for all allocations between 2m and 4m to the native_stderr.log
You can read more about this in the following IBM technote:
I’ve had a love/hate relationship with UML. For most of my career, I think there may have been more hate than love; frustration, at least. Usually, I get frustrated when trying to use some kind of tool to draw a diagram. If the tool is too automated, I never get what I really want out of it. If the tool has too little automation, I find myself having to refer to a reference book (I forget if it’s an open arrow, closed arrow, dotted line, whatever).
But more and more, recently, I’ve been learning that UML can be a great way to troubleshoot and analyze code if you just forget all the rules and whip that shit out with good old fashioned pen and paper. Maybe this is not an effective tool for communication, but it can be an effective tool for thinking.
I find that when I’m just writing UML just for myself, it helps me think and keep track of where I’m at in the code (especially complex code or spaghetti code).
Recently, Mike Minardi, our CEO at Base22 sent an email to the staff providing tips on how to build enduring, long term, and trusting relationships. I wanted to share his list with the rest of the world because I thought it was pretty good one – the kind that’s worth reviewing from time to time. Whether it’s a personal or professional relationship doesn’t matter; his recommendations work for every kind.
Enabling SEO Friendly URLs in WebSphere Portal
I always like the products of Michele Buccarello’s studies on IBM Digital Experience software. You may recall previously that I wrote about his Step by step guide to create a custom theme in WebSphere Portal 8.5. Whether or not you approach a solution exactly as he prescribes, you can always learn something useful from his work. When it comes to friendly URLs in WebSphere Portal, things are definitely getting better, but they’ve always been a source of contention. This latest publication from Michele has some informative gems on the subject, so check it out.
If you plan to attend IBM’s ConnectED conference this year, you may be interested in a talk by Dan Makuch, an Enterprise Solution Architect and Project Manager from Base22. The new Digital Data Connector technology in WebSphere Portal provides a host of capabilities to do deep integration of social content with a traditional portal front end. Base22 recently completed one of the first production implementations of this technology for a client in the digital imaging industry. In his session, Dan will take you under the covers to show you how we built some of the more interesting aspects of the site. He’ll share lessons learned and offer some tips that should enable your future efforts to go more smoothly.
Recently, I worked on an image for Base22’s quarterly email newsletter. In order to use a group shot of our team, I needed to isolate them from the warehouse setting in which they were photographed. I thought I’d take the opportunity to record the job in case my technique is useful to anybody else. In this video, I demonstrate one of several techniques for image isolation in Adobe Photoshop. This particular technique allows you to erase or reapply image pixels by painting greyscale values on a layer mask. A layer mask is essentially an alpha mask applied to a given layer that you can paint on. Wherever you paint black, the pixels in the layer become transparent. Wherever you paint white, they become opaque.There are many cool tricks you can do with layer masks once you understand how to use them, so it’s good ground to cover – even if you prefer to use other techniques for isolation.
Disclaimer: If I sound slightly weird in this video, it’s because it was so damned long and boring, I sped it up by 120% in the talking parts in order to get to the point faster. I sped up working segments as much as 1000% to get the overall job (about 1 hour’s worth of work) down to 16 minutes in overall video.