Yesterday I had a long overdue catchup with a good friend. At one point the conversation drifted to the question, do we really learn from our failures? While conventional wisdom tells us that we learn more from our failures than from our successes, science tells us quite the opposite. Science also tells us that we learn just as much from the failures of others as we do from others success. How did we get to this topic in our conversation? It’s because we’ve both reached a point in our car...| Random Notes and Cheat Sheets
I started out today on my paddle board session by heading out into the wind. The reason for heading out into the wind is that it makes for an easier trip back. But, as we all know, winds will do as they please and on this day, they decided to change direction and stiffen. The wind got so strong that at times it seemed as if I wasn’t making any forward progress at all. But, I wasn’t worried as I was following the shoreline and so I always had an easy exit. I figured, as long as I’m makin...| Random Notes and Cheat Sheets
Last Thursday night/Friday morning I was out at a nearby beach on the Okanagan lake. As much as I wished the reason for being there was a late night party, what I and the others around me were engaged in was watching in horror as a gigantic wild fire jump up a cliff from behind a ridge line and then start dancing down the mountain. I don’t know how but fire fighters were able to stop the advancing fire as it raced to enter the neighborhoods just below the top of the ridge but they did. The ...| Random Notes and Cheat Sheets
Just recently I’ve in conversations about cycling with a few talking to a few friends and colleagues. Inevitably the topics of how to improve performance, speed and climbing hills always comes up. My answer to any of these questions is that one should focus on spin rate rather than speed. TLDR; My goal is to spin in the range of 60-90 RPMs, aiming mostly towards 80. The trick is to use a gear that comfortably allows you to maintain this cadence given the current wind conditions and gradient...| Random Notes and Cheat Sheets
I recently was cleaning out a filing cabinet when I ran across an article on SIMP tables dated June of 1975. The funny part of this article is that it was written as part of a series called “Department of Golden Oldies”. SMIP tables, also known as semantic tables, can be used to generate random sentences. These sentences look like they should have some meaning but are complete nonsense. When I first ran into this article, I wrote a program that used the Simp tables to generate random sent...| Random Notes and Cheat Sheets
The use of AI in performance diagnostic work isn’t new. We used forms of AI at JClarity and continue to do so within the Java Engineering group inside Microsoft to develop a diagnostic engine. This engine is designed to automate the characterization of performance regressions. The big news is that with ChatGPT and Semantic Kernel, AI is much more accessible. The question that we’re currently trying to answer is can LLMs help us produce a better experience with performance diagnostics. To ...| Random Notes and Cheat Sheets
As mentioned in my previous posting on Unified Logging (UL), messages will be associated with both a level and a tag set. The levels are trace, debug, info, warning, and error. Tags can be listed by running java -Xlog:help. The output from JDK 17 is listed here. add, age, alloc, annotation, arguments, attach, barrier, biasedlocking, blocks, bot, breakpoint, bytecode, cds, census, class, classhisto, cleanup, codecache, compaction, compilation, condy, constantpool, constraints, container, coops...| Random Notes and Cheat Sheets
Unified Logging was introduced in JDK 9. It’s purpose was to offer JVM developers an API and component that was similar to the logging frameworks used by Java developers. My main interest in Unified Logging (UL) is rooted in my need for information about how the garbage collection is behaving. It is this information that allows me to understand how to tune the garbage collector. Prior to UL, the flags of choice were as follows. -Xloggc:gc.log -XX:+PrintGCDetails -XX:+PrintTenuringDistrib...| Random Notes and Cheat Sheets
The performance triangle for runtimes such as Java are based on footprint, throughput, and latency. The premise is, you can only one or two these metrics and that will be at the expense of the others.For example, reducing memory footprint will increase latency. Performance Triangle Although this premise is overwhelmingly accepted, it is rarely questioned. Unsurprisingly, when it is questioned, it generally quickly falls down. This is because the premise fails to fully take into account the li...| Random Notes and Cheat Sheets
In a previous posting I spoke about how GCToolKit had been extracted from Censum, a tool that I had developed and carried with me through JClarity and into Microsoft. We had made the plans to open source Censum but we had to shelve them as we started acquisition talks with Microsoft. Once in Microsoft I was very happy to learn that we could continue our path to open source the internal components. The first step was to, of course, extract the components out of Censum. Having been involved wit...| Random Notes and Cheat Sheets