Thursday, July 23, 2026

The PImpl idiom and the C++26 std::indirect typePImpl (which stands for Pointer to implementation) is a programming tehnicque to remove implementation details from a class by placing them in a separate class that is accessed through an opaque pointer. Its purpose is to separate interfaces and implementations and minimize compile-time dependencies. In this article, we’ll at how the PImpl idiom is typically ... Read more The post The PImpl idiom and the C++26 std::indirect type first appeared on Marius Bancila's Blog .πŸ“Marius Bancila's Blog

If this page is useful, please consider donating a coffee

Wednesday, July 22, 2026

From Institutions to Individuals: the White House Report on Revitalizing U.S. Scientific Leadershipβ€œ`In 1945, Vannevar Bush published a report entitled Science: The Endless Frontier. His thesis was that prosperity follows from basic research. The report was highly influential in the United States and elsewhere. It led to the creation of an entirely new government bureaucracy. With this report, Bush popularized the linear model of innovation: innovation (such … Continue reading From Institutions to Individuals: the White House Report on Revitalizing U.S. Scientific LeadershipπŸ“Daniel Lemire's blog

Tuesday, July 21, 2026

The Portable Way to Extract Date and Time from a File's mtime in C++After I finished my Time in C++ series, a reader asked a seemingly simple question: β€œWhat is the portable way to extract the year, month, day, hour, minute, and second from a file’s modification time? I tried, and I couldn’t get it to work reliably on macOS and Windows.” Fair question. You call std::filesystem::last_write_time(), you get back a time point, and you want the calendar compon...πŸ“Sandor Dargo's Blog
Prefactoring: Clear the Way for Your New Feature@media only screen and (max-width: 600px) { .body { overflow-x: auto; } .post-content table, .post-content td { width: auto !important; white-space: nowrap; } } This article was adapted from a Google Tech on the Toilet (TotT) episode. You can download a printer-friendly version of this TotT episode and post it in your office. By Rahul Singal β€œFirst make the change easy, then make the easy change.” - paraphrased from Kent Beck You're working on a new feature, but the existing code wasn't written with future changes in mind. Trying to force the feature in directly gets complicated fast. One change leads to another, and before you know it you're already a few files deep fixing things you never planned to touch. Prefactoring (short for "preparatory refactoring") is the practice of reworking existing code to make it more suitable for an upcoming change before you actually implement the new functionality. Instead of cleaning up code as an afterthought or trying to force a new feature into an incompatible structure, you restructure the codebase first. Prefactoring helps you: Easily implement new features: Restructuring the codebase first ensures your new feature fits naturally into the code. Speed up reviews: It's easier to review the refactoring and the feature in separate changes. Avoid bugs: Isolating cleanups from functional logic can help prevent bugs . Roll back safely: If you need to roll back, it is much easier to revert small, focused changes. Here is a simplified example of a prefactoring change: Change 1 (Prefactoring) Extract display name helper to remove duplication. Change 2 (Feature) Add middle name support. + def get_display_name(user): + return f"{user.first_name}” {user.last_name} # Profile page - display_name = f"{user.first_name} {user.last_name}" + display_name = get_display_name(user) # Email template - greeting = f"Hi {user.first_name} {user.last_name}, " + greeting = f"Hi {get_display_name(user)}," def get_display_name(user): - return f"{user.first_name} {user.last_name}” + return f"{user.first_name} {user.middle_name} {user.last_name}" You can prefactor a change that is already in review too! If your reviewer suggests a related cleanup during review, you can also extract it into a new base change to keep your current change focused on the feature. Note that not every cleanup needs to be prefactoring: you can do the cleanup in a follow up change if the cleanup doesn’t block your feature, or even in the same change if the cleanup is small enough.πŸ“Google Testing Blog

Monday, July 20, 2026

Sunday, July 19, 2026

Saturday, July 18, 2026

Friday, July 17, 2026

Faster C++ iterative builds with GitHub CopilotSlow builds are a consistent theme of feedback from C++ developers. We built GitHub Copilot build performance for Windows so you can leverage Copilot to optimize your project’s build times. This workflow will find optimizations that bring your build times down. At first, we only measured the impact of build optimizations on full clean builds. […] The post Faster C++ iterative builds with GitHub Copilot appeared first on C++ Team Blog .πŸ“C++ Team Blog
The Case of the Irregular Hanging: A build forensics story from the front lines of remote executionThe Case of the Irregular Hanging: A build forensics story from the front lines of remote execution There is a particular kind of failure that senior infrastructure engineers recognize immediately. Nothing crashes. Nothing spikes. Nothing logs an error. And yet… work simply stops. This is the story of one of those failures and why Build Forensics matters once build systems become production infrastructure.πŸ“EngFlow Blog