A Java Geek weekly 85

Exploring the OpenTelemetry Collector

The OpenTelemetry Collector sits at the center of the OpenTelemetry architecture but is unrelated to the W3C Trace Context. In my tracing demo, I use Jaeger instead of the Collector. Yet, it’s ubiquitous, as in every OpenTelemetry-related post. I wanted to explore it further.

Ajoutez des badges dynamiques à vos pull requests et gagnez en productivité !

While the video is in French, Badgetizr is 100% English.

Badgetizr is a tool that will add badges to your pull requests to increase your team’s productivity. It is fully customizable and you can add (almost) as many badges as you want. With Badgtizr on your CI, you will be able to save time by:

  • Stop adding a link to your ticket in the description of the PR if you add the id of it in the title of the PR.
  • Reminding that some tasks are still missing to do in the PR.
  • Stop adding a visual indicator if your PR is a WIP.
  • Having a badge to know the status of the CI pipeline without having to click on it, scrolling down to the bottom of the page (coming soon).
A Critical Look at MCP

[…​] I’m astonished by the apparent lack of mature engineering practices. All the major players spend billions of dollars on training and tuning their models, only to turn around and, from what I can tell, have an interns write the documentation, providing subpar SDKs and very little in terms of implementation guidance.

This trend seems to have continued with MCP, resulting in some very strange design decisions, poor documentation, and an even worse specification of the actual protocols.

My conclusion is that the whole suggested setup for HTTP transport (SSE+HTTP and Streamable HTTP) should be thrown out and replaced with something that mimics stdio…​ Websockets.

Kro vs Helm: Is It Time to Ditch Helm Charts?

As usual, Viktor does a good job of explaining concepts.

How to find dead code in your Java services

The blog post was mentioned was Gerrit Grunwald during his talk at [GeeCon]. The talk goes a long way beyond. Stay tune for when it’s published!

Getting AI to write good SQL: Text-to-SQL techniques explained

Disambiguation involves getting the system to respond with a clarifying question when faced with a question that is not clear enough (in the example above of "What is the best selling shoe?" should lead to a follow-up question like "Would you like to see the shoes ordered by order quantity or revenue?" from the text-to-SQL agent). Here we typically orchestrate LLM calls to first try to identify if a question can actually be answered given the available schema and data, and if not, to generate the necessary follow-up questions to clarify the user’s intent.

Can we get this in all LLMs please?

SSL/TLS Certificate Lifespans to Shrink to 47 Days by 2029

It’s going to be an interesting ride for sure. I wonder how many companies will fail at automating their renewal pipeline(s).

Deep Dive into uv Dockerfiles by Astral: Image Size, Performance & Best Practices

Great exercise! You can learn quite a bit of Python. It also made me ponder about --mount=type=bind. In the single-stage Dockerfile, instead of COPY’ing uv.lock and pyproject.toml, they use a bind mount. It has two advantages: the file is not present in the final image and it doesn’t invalidate layers when they change. It has some security implications (host access), but I find it an interesting approach.

GitHub Copilot coding agent in public preview

You can now assign issues to Copilot.

Copilot excels at low-to-medium complexity tasks in well-tested codebases, from adding features and fixing bugs to extending tests, refactoring, and improving documentation.

France Becomes First Government to Endorse UN OpenSource Principles, Joined by 19 Organizations

Reminder of the UN Open Source principles:

  1. Open by default: Making Open Source the standard approach for projects.
  2. Contribute back: Encouraging active participation in the Open Source ecosystem.
  3. Secure by design: Making security a priority in all software projects.
  4. Foster inclusive participation and community building: Enabling and facilitating diverse and inclusive contributions.
  5. Design for reusability: Designing projects to be interoperable across various platforms and ecosystems.
  6. Provide documentation: Providing thorough documentation for end-users, integrators and developers.
  7. RISE (recognize, incentivize, support and empower): Empowering individuals and communities to actively participate.
Nicolas Fränkel

Nicolas Fränkel

Nicolas Fränkel is a technologist focusing on cloud-native technologies, DevOps, CI/CD pipelines, and system observability. His focus revolves around creating technical content, delivering talks, and engaging with developer communities to promote the adoption of modern software practices. With a strong background in software, he has worked extensively with the JVM, applying his expertise across various industries. In addition to his technical work, he is the author of several books and regularly shares insights through his blog and open-source contributions.

Read More
A Java Geek weekly 85
Share this