The Tacit Dimension
Christian Ekrem's 'The Tacit Dimension' carries Polanyi's 'we can know more than we can tell' into software engineering. He's right that experience works that way. Knowledge doesn't, and the essay never separates the two.
Author
110 articles
Christian Ekrem's 'The Tacit Dimension' carries Polanyi's 'we can know more than we can tell' into software engineering. He's right that experience works that way. Knowledge doesn't, and the essay never separates the two.
The OpenLiberty project has released OpenLiberty 26.0.0.5, with official support for Jakarta EE 11 across Core, Web, and Platform profiles, and support for Spring Boot 4 JAR files as opposed to WAR files. Jakarta EE 11 adds one important specification: Jakarta Data.
The MetBeans IDE has been updated: NetBeans 30 has been released. This is a regular quarterly update, and includes some useful support for Java 26 and some enterprise features, but is mostly an incremental change.
This is a working example of using red/green testing to fix a bug - one that starts in the issue description and lives in the code. You can fix the issue, but the bug remains because it's part of an unexamined specification. Testing - and caring - are the fix.
Github user asmo0dey has created an application that provides live audience polling for slidev presentations, using docker, Spring, vue, and either PostgreSQL or H2. It's got a lot of benefit for presentations, of course, but it also looks designed well.
Kirk Pepperdine has released gcsee-jma, a GC analysis tool for Java. Kirk's been a leader in performance analysis for Java for decades, and a tool from his work is welcomed. It's got excellent, clear, fast features, and looks to be incredibly useful.
Christian Rackerseder makes the case that developer experience is a performance feature. The stronger version of his claim is that developer experience is an epistemic feature. Good performance is just one of the things that falls out when your team can finally see what it has been shipping.
David M. Lloyd has another piece on modern reflection, this time on VarHandle - and as usual, it's highly informative. It replaces a lot of Unsafe usage, and demonstrates quite a bit of atomic access fundamentals as well, and it opens up offheap access, too.
AI code is not the enemy. Ideas used to be valued against the weeks we'd spend building them, and most got shelved before we ever found out if they were any good. Now we get to find out in an afternoon.
Rasmus Ros wrote "From Stringly to Strongly Typed," an article describing a Kotlin library that solves one half of typed schema access: how to read the data. But data isn't just accessible; it's related to other data, and that half he's deferring to a future post. The deferred half is well-trodden ground, and the reasons we don't tread it are worth knowing.
Alexander Hanff has documented two AI-vendor stealth installs in two weeks: Claude Desktop registering Native Messaging bridges across seven Chromium browsers, and Chrome writing 4GB of Gemini Nano weights to disk on every eligible device.
Simon Willison wrote up a summary of Zig's policy on LLM contribution this morning, suggesting that Zig can afford it because it has PR oversupply and downstream users wealthy enough to fork the project at need. Yet: most communities adopting the same policy don't share those conditions.
Jordan Lord lays out three constraints he applies before building anything: a one-page description that survives without padding, a piece of core tech that can outlive the product, and a single defining constraint that shapes the user experience. Scope, leverage, and identity - one filter each. Great stuff.
Quarkdown, a documentation system using "markdown with superpowers", has been released. Changes include quite a few useful documentation elements (key bindings, path specifications, other useful presentation elements) but the core focus is on the project and its scope.
Dragonfly is a multithreaded ground-up reimplementation of the Redis wire protocol, described as being designed to scale vertically where Redis can't. The interesting thing is that Dragonfly is selling itself as "in-memory infrastructure for caching, feature stores, and job queues," which is the IMDG shape from the cache side of the river and a quiet admission that the cache framing was always too narrow.
JetBrains just published a survey on why AI adoption lags in CI/CD. Their read is that teams are being appropriately cautious; the harder read is that pipelines have no feedback loop for evaluating AI and no outer validator for catching it when it errs. The survey's own numbers quietly confirm this: among teams using AI in CI/CD at all, most aren't delegating. The real split isn't AI versus no-AI. It's passive versus active.
Leaning Technologies released CheerpJ 4.3, a WebAssembly-packaged JVM that runs unmodified Java applications — including applets, JNLP applications, and Oracle Forms — in a browser without a plugin. This release adds ergonomic features like in-window file upload and download, long-press-as-hover for Swing, and stability gains, and sets up a major startup-time improvement for 5.0.
Timefold Solver, OptaPlanner's successor, hits 2.0 with list variables promoted, a new Neighborhoods API, and a quietly consequential license shift: the explainability APIs you built on in 1.x now require a commercial edition. The solving core stays Apache 2.0, but the answer to "why did the solver pick this?" is now a paid feature.
TypeScript 7.0 Beta represents a fundamental architectural shift for the language, with the entire compiler rewritten in Go rather than bootstrapped TypeScript. The rewrite delivers approximately 10x performance improvements over TypeScript 6.0 through native code execution and shared memory parallelism, while maintaining strict semantic compatibility with the previous version.
The "10x engineer" may be a real phenomenon, in that some people really do vastly outperform their peers along certain metrics, but "10x output" is the wrong thing to optimize for: you want to find the people who create exponential output for the whole team. AI makes this kind of optimization urgent, because these people not only help their team members, but curtail the worst aspects of AI aid, too.