Networking specifics under Java Web Start
This writing will help you overcome several annoyances of Java Web Start in respect to networking.
During my development I hit two major problems doing polite networking when running application under Java Web Start: I couldn’t set correct HTTP “User-Agent” string and I couldn’t make application obey connection and reading timeout settings. According to the SUN’s bug reports database these problems are pretty common and that’s why I wished to share my experience with the rest of community, knowing how important to have networking layer working correctly.
Test Driven Design: Part 1 -- The Basics
Writing tests is usually simple task. When you write tests ahead of code and even ahead of design it becomes really trivial task. Having all tests at hand even before you start coding specific functionality guaranties that you will (a) spend minimum time, (b) implement what’s really necessary, (c) have all documentation and tests ready, (d) sleep well, knowing that you can give the product away in the middle of the night as it’s already tested to be fool proof.
When it comes to testing how you can be sure that the cache releases objects when the VM runs low on memory? This small writing gives some tips about how the running out of memory can be simulated in your test cases safely.
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?