I read somewhere that as you get older you don't necessarily get slower, you just trade speed for quality. This sounds about right.
Here is my time with an UI regression in the new version of a large Swing app:
I start investigating the problem manually and look at the code to see what might be the cause.
I find a quick way to duplicate it.
I deduce from the code what might be the cause but I'm wrong, it could be that, but it isn't, because there is extra code to check for that condition.
I start probing with a BTrace script to see the Swing events.
I finally find the actual cause and I'm stupefied - it's a failure of an underlying system and not of the UI.
I make an unit test that fails for the regression. I also find a possible fix.
Since I'm a bit surprised by how that system worked, I go and check the problem in the previous version of the Swing app. The problem is not there! It is a regression indeed.
Now I'm really surprised - what changed?
I start debugging the unit test on the old version in order to figure out what behavior changed and I finally figure it out when I look at the diff between the versions.
This diff gives me a 2nd way to fix the code. I patch the new code but it fails subtly in another way -- it wasn't changed for nothing, after all.
I decide that the initial fix is the right one and I apply it.
I am finally done!
At this point my fix was a few lines of code and a large unit test.
But besides this I have various byproducts: the BTrace script, the 2nd fix that didn't work as well as my notes file with my remarks, various stacktraces from the BTrace script and the debugger and errors.
Investigating, writing little scripts, running in various configurations and on top of various versions then finally checking the final fix and wrapping up took a lot of time.
On June 15th 2017 the EU launched "Roam Like at Home", a set of rules that removed roaming charges. It was a great idea to harmon...
Using the nice META-INF/service, one can declare it's own little status-bar piece by implementing StatusLineElementProvider . You basic...
People will never bother to do anything manual unless absolutely necessary. This is why I believe the current NetBeans "empty" jav...
During my lobby period for the NetBeans Platform at my workplace I did with a coleague a quick port to the NetBeans Platform of a Swing appl...