Events Dispatch Thread (EDT) lockup detection
What to do when user interface becomes unresponsive or locks up? How to find out why, when and where? The answer was always near us and as you will see from the article it’s relatively simple. Make a step towards improving the performance of your developments with this revolutionary new watchdog-like performance monitor and detector. No SDK or VM patching. Everything can be done on application level.
Soft property change listeners
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.
Caching asynchronous calculations
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.
Simple cross-thread locks
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?