A promotional video by KeebMaker that outlines the ways an ergonomic keyboard is better than a conventional one. 5 minutes.
Reads JFR recordings from remote or local Java virtual machines. A programmatic interface to what you can do with jcmd
.
If I understand correctly this is not based on and unrelated to JFR Event Streaming.
Summary: Only log errors that require intervention, nothing else.
In general thatβs reasonable advice and the article makes some good points, which are:
- logging is not free; it has a non-negligible performance impact
- there are better tools for most of the problems that people tend to use logs to solve
I would add:
- logs are a user interface; it is important to keep them minimal so that they stay usable
But some of the details donβt really make sense.
The article suggests using plain println
in order to avoid overhead, but in fact access to stdout
/stderr
is typically whatβs most expensive about logging, which actual logging frameworks mitigate by offloading it to a worker thread.
The author recommends not to log progress but to use metrics instead. Surely having metrics is a good idea, but in batch processing, logging progress can make sense because it gives more immediate feedback after the rollout of a new version than metrics collection, which tends to be laggy.
There is also the implied assumption that you have a whole host of infrastructure at your fingertips that you can make use of to replace your logging, such as trace collection, metrics collection, and so on. That may be true in a Cloud environment, but in other environments such things may be more expensive to maintain.
Overall I agree with the notion that you should err on the side of logging less rather than more. But if you do have something to log, then (1) do it freely and (2) use a proper logging framework.
My build recipe for a runtime container image based on UBI Micro1 and the latest feature release of OpenJDK.
Small, secure, and tracks OpenJDK upstream. If you like to be on the latest OpenJDK (rather than some vendorβs LTS), this is for you.
I use it for this website and am very happy with it.
Footnotes:
A general-purpose physics simulation library with a focus on both speed and accuracy. Suitable for biomechanical, robotic, and other research-related simulations as well as graphics animation (such as in video games).
Has a C API, which makes it easy to bind to from any language.
A Java library for event sourcing. Based on the Cloud Events specification and designed to be a library of utilities rather than a framework.
A CNCF specification for the format of event-like messages.
Paste Japanese text into the text box and receive a pitch outline.
Official builds of OpenJ9, an alternate implementation of the JVM, from IBM.
While OpenJ9 is not OpenJDK, Semeru does use the OpenJDK class libraries.
Political slogans should target the center. But more importantly, the agenda should target the center. The Median Voter Theorem applies.
The package manager used by RedHat UBI Minimal container images. Like dnf, but written in C rather than Python.
Proposed to target JDK 19.
This is shaping up to be an interesting release (assuming you find preview features interesting).
A public API that you can query for available OpenJDK distributions and download links.
Ready-made container images for use with kubectl debug. There are images for Node, Python, Go, and Java.
A way to spin up ephemeral containers in a running Kubernetes pod that have access to the same process namespace as the running ones. Used to run debugging tools in production.
A bot that creates pull requests for project dependency updates. Supports multiple target languages.
A container system for GNU/Linux applications.
A free-as-in-freedom RHEL derivative similar to what CentOS was before it was converted into the CentOS Stream rolling release distribution, called into life by the original founder of CentOS.
A free-as-in-freedom RHEL derivative similar to what CentOS was before it was converted into the CentOS Stream rolling release distribution, by the people behind the commercial CloudLinux OS.
A collection of notes on application security (mostly web and mobile applications).
Highlight: cheat sheets related to the OWASP Top Ten web application security risks.
A CI-agnostic build and deployment pipeline definition tool. Works locally, too.