In some cases you will wish to have the cache of objects, but what if these objects are registered listeners of some other objects? This hard link between the cached items and persistent ones will not let the first to be garbage collected. The article shows how this misbehavior can be easily avoided using soft-referenced wrapper for your listeners.
Font for text and font for date are both fonts. Colors for corresponding elements are both colors. Colors and fonts are properties of some theme. You need some constants to read out properties (i.e. fonts or colors) from the theme. The safest and clearest way to have them broken into hierarchy of sub-types. The article is not only about fonts and colors, it’s about general approach to enumeration sub-types and testing of their applications.
Have you ever seen how file managers preparing the thumbnails in background while you are browsing some folder on your drive? If you will switch to the other folder and then get back to first you will see the thumbnails almost instantly. They were calculated asynchronously and cached. Here’s what the text is about.
What to do when you wish to lock something in one thread, but unlock it in the other? Smells bad? No. Smells a bit unsafe? Yes. But how on earth it can be done if standard locks can be unlocked only from the threads they were locked at?
For the last two weeks I’ve been writing a database editor application with JSP / Servlets. I’m a returning JSP / Servlet programmer with a 7+ year background, but with a 1 year Rails pause. Now that I finished the task, I can share my feelings. Sorry, Java world. It’s not your day.
Today, as I was playing with ideas after a big chunk of work, one interesting thought came, and it’s worth sharing. Everybody likes when the job is simple, straightforward and easy to do. Sometimes though times come when an assignment is … well, different.