Saturday, October 31, 2026

If this page is useful, please consider donating a coffee

Friday, October 30, 2026

A slightly better ThreadPoolExecutor in Pystd through typesIn the previous post we looked at a simple multithreaded task executor that behaves roughly like its Python standard library counterpart . The biggest missing feature was being able to return values from run tasks via future objects. In a fully dynamic language like Python this is fairly straightforward, whereas in a language with static typing, such as C++, things are trickier. The simplest solution is merely to make your Executor class a template, parameterized by the function you want to run. The obvious downside is code bloat. If your program has an Executor and Executor , all of their code is duplicated in the binary, even though 90% of it is probably the same. Also, due to the magic of template instantiation, compilation is slower. Another downside is that you can't run tasks that do different things, especially having different return value types, with one Executor. I set about trying to solve both of these issues at the same time. It turned out that if you are willing to tolerate just a little bit of OO and one extra malloc per task, one can get a fairly nice solution. As a task executor is used for things that run for a long time and consume a lot of resources, the overhead is insignificant for most use cases. And if it absolutely, positively matters to someone, they are going to roll their own anyway. Trying to cater to those use cases would be a waste of effort in any case. These requirements point to a fairly obvious solution. The executor deals with TypeErasedFuture/Promise types that store all the task metadata via good ol' void pointers and virtual functions. The concrete Future and Promise tasks are just type safe shims on top of them. The entire implementation required the use of only two reinterpret_cast s, which is quite surprising. I would have expected more, but sometimes you get lucky, I guess. The Executor gets to remain a concrete class. The only template in it is the submit method that preserves the type erased task and returns a typed future object. Using this is not quite a simple as its Python counterpart, but still fairly easy. After you have written a class that implements the executor's task interface, submitting work and consuming the results is done like this. If the return value had been something other than void, .get() would return a reference to the result object. The tradeoff between the ease of use provided by maximal templateism and minimal code generation is clearly visible in the extra boilerplate code you need to write to get things going. But in return you get both reduced binary size and faster compile times. Whether that is an improvement or a detriment is up to you. This code is not going to win any robustness prizes (though, in the modern day of AI garbage, you never know), but the end result is more than adequate for a single evening work.๐Ÿ“Nibble Stew
Compromised eMudhra Certificates: Update Your JetBrains IDEs, ReSharper, .NET Tools, Toolbox App, and Gateway NowSummary Available fixed versions The issue is fixed in the following versions: The 2025.2.6.* updates for all IDEs now contain only the JBR fix. They will get a separate hotfix for the JCEF problem. Until then, use a workaround to disable JCEF in your IDE (see instructions below). IDE versions 2025.1 and earlier, and Toolbox [โ€ฆ]๐Ÿ“CLion : A Cross-Platform IDE for C and C++ | The JetBrains Blog

Thursday, October 29, 2026

Kitware Welcomes Dr. Mike Ter Louw as Director of Advanced Cybersecurity ResearchStrategic hire marks Kitwareโ€™s expansion into cybersecurity research and resilience technologies, building on our established defense AI research capabilities to address emerging threats. Clifton Park, N.Y.โ€“ 29 October 2026 โ€“ Kitware is pleased to announce that Mike Ter Louw, Ph.D., has joined the company as Director of Advanced Cybersecurity Research. His appointment marks the launch [โ€ฆ]๐Ÿ“Kitware Inc
Whatโ€™s New in vcpkg (Oct 2026)This blog post summarizes changes to the vcpkg package manager as part of the 2026-10-16 registry release and the 2026-09-26 tool release. These updates include configurable binary-cache compression, improved cache reliability and diagnostics, Boost 1.92, and other improvements and bug fixes. There are now 2,877 total ports available in the vcpkg curated registry. A port [โ€ฆ] The post Whatโ€™s New in vcpkg (Oct 2026) appeared first on C++ Team Blog .๐Ÿ“C++ Team Blog
SEGGER Tools Gain Deeper Integration in CLion with AI-assisted DebuggingAmsterdam, Netherlands โ€” October 29, 2026 SEGGERโ€™s embedded development tools are now more deeply integrated into JetBrains CLion. CLion provides dedicated configuration for J-Link debug probes as well as direct access to SEGGERโ€™s Ozone debugger and SystemView real-time software analysis tool, connecting coding and ultra-fast flash programming with advanced debugging and real-time system analysis. CLionโ€™s [โ€ฆ]๐Ÿ“CLion : A Cross-Platform IDE for C and C++ | The JetBrains Blog
Qt Certification Exams Updated to Qt 6.12 LTSThe Qt Certification program continues to evolve alongside the Qt framework. We are pleased to announce that the Qt certification exams have been updated from Qt 6.8 LTS to Qt 6.12 LTS, ensuring that certified developers are assessed against the latest Qt technologies and best practices. The certification portfolio now consists of four professional certification exams: Qt Foundation Qt Quick Developer Qt Quick Specialist Qt Application Developer Together, these certifications cover a broad range of Qt development skills, from core framework knowledge and application development to advanced Qt Quick and QML expertise. What's New in the Qt 6.12 Update? The certification exams were originally built around Qt 6.8 and have now been updated to reflect the Qt 6.12 LTS release. New questions have been added covering functionality, APIs, development practices, and concepts introduced between Qt 6.9 and Qt 6.12. The goal is simple: certifications should reflect the knowledge and skills that developers use in current Qt projects. To support this, the certification content is regularly reviewed and updated alongside new Qt releases. In addition to updating existing question pools, the certification team has reviewed and refined exam content to ensure alignment with modern Qt development workflows and best practices . Ready for Qt 6.12? Put your knowledge to the test and earn a Qt certification. Learn more and book your exam at the Qt Certification Testing platform . Certification exams are delivered online in scheduled sessions and are available globally in English.๐Ÿ“Qt Blog
Generate BUILD files for new rule sets with Gazelle v2Generate BUILD files for new rule sets with Gazelle v2 This post is based on my lightning talk at BazelCon 2026. You can watch the talk on YouTube below. This talk shows how to support new rule sets by writing an extension with Gazelle's new v2 API , which supports better error handling and dependency resolution. We'll also talk about how Gazelle works with extensions, how to support offline indexing, and how to write extensions in languages other than Go.๐Ÿ“EngFlow Blog

Wednesday, October 28, 2026

Tuesday, October 27, 2026

Persistent Test Runners: How Persistent Workers for Tests Can Cut Test Times by 46%Persistent Test Runners: How Persistent Workers for Tests Can Cut Test Times by 46% This post is based on the BazelCon 2026 talk I gave with Antonio Di Stefano( Frekt.dev ). You can watch the recording on YouTubebelow. Bazel has used persistentworkers for years tomake compilation faster. A persistent test runner applies the same idea totests: keep a long-running test execution process alive and reuse it acrossmultiple tests, instead of paying its warmup cost every time.๐Ÿ“EngFlow Blog

Monday, October 26, 2026

Introducing NetMaestro: Open Source Network Modeling and SimulationNetwork engineers need to evaluate changes to infrastructure without disrupting the systems that depend on it. Testing a new configuration, replacing equipment, or investigating a potential failure can be difficult when physical testbeds are expensive and production networks cannot be used for experimentation. Kitware is developing NetMaestro, an open source network modeling and simulation tool that allows engineers to investigate congestion, compare configurations, and explore what-if scenarios using virtual network models before making changes to production infrastructure.๐Ÿ“Kitware Inc
With Qt 6.12, the SkyMaterial is the limitQt Quick 3D 6.12 introduces a new SkyMaterial QML type, and in this post we will explain what it is, how to use it and why you'd want to. SkyMaterial provides a way of writing custom fragment shader code to render a scene's sky, as well as computing image-based lighting (IBL) from it. This means the same sky acts as both the visible background and a light source for the scene. With it you can create a dynamic sky with a moving sun, day/night cycle, clouds, stars etc. QML properties set on the SkyMaterial type are automatically made available in the custom shader, and whenever a property is updated, the SkyMaterial re-renders itself. This is what makes it possible to have a dynamic sky. Since the rendering is happening on the GPU, the performance cost depends on the complexity of the shader and how often it is updated. It is possible to tweak certain quality and performance properties to fit your performance budget. To use SkyMaterial in your 3D scene you need to point the SceneEnvironment::skyMaterial property to your SkyMaterial object, and set SceneEnvironment::backgroundMode to SceneEnvironment.SkyMaterial .๐Ÿ“Qt Blog

Sunday, October 25, 2026