news
Programming Leftovers
-
Jussi Pakkanen ☛ In C++ modules globally unique module names seem to be unavoidable, so let's use that fact for good instead of complexshittification
Writing out C++ module files and importing them is awfully complicated. The main cause for this complexity is that the C++ standard can not give requirements like "do not engage in Vogon-level stupidity, as that is not supported". As a result implementations have to support anything and everything under the sun. For module integration there are multiple different approaches ranging from custom on-the-fly generated JSON files (which neither Ninja nor Make can read so you need to spawn an extra process per file just to do the data conversion, but I digress) to custom on-the-fly spawned socket server daemons that do something. It's not really clear to me what.
Instead of diving to that hole, let's instead approach the problem from first principles from the opposite side.
-
Jim Nielsen ☛ Running Software on Software You’ve Never Run
This idea allows us to create automated build systems that resolve to an artifact whose dependencies have never existed before in that given combination — let alone tested and executed together in that combination.
-
MaskRay ☛ Remarks on SFrame
SFrame employs a unified indexed format across both relocatable files (linking view) and executable files (execution view). While this design consistency appears elegant, it introduces significant complications in toolchain implementation.
-
Sean Goedecke ☛ What is "good taste" in software engineering?
Technical taste is different from technical skill. You can be technically strong but have bad taste, or technically weak with good taste. Like taste in general, technical taste sometimes runs ahead of your ability: just like you can tell good food from bad without being able to cook, you can know what kind of software you like before you’ve got the ability to build it. You can develop technical ability by study and repetition, but good taste is developed in a more mysterious way.
Here are some indicators of software taste: [...]
-
Adam Thalhammer ☛ Priorities
Bringing it back to building software, many of us have been confronted with a similar challenge: how do we decide what to work on? If we strictly work on the most urgent task, then less urgent (but still important) items such as bugs, technical debt, etc. will never get fixed, just like noise laws never get enforced, rendering them effectively non-existent. And just like in the real world, this can have unintended consequences -- development velocity stalls as engineers get stuck in a quagmire of unresolved technical debt, customers get fed up with all the bugs and churn.
What can be done to prevent this? We have two options: accept it and live with the consequences, or adopt a portfolio strategy that focuses most of our resources on the most valuable problem to be solved, while reserving some capacity for important, but lower priority, items.
-
Sanix-Darker ☛ How I Accidentally Created the Fastest CSV Parser Ever Made
SIMD (Single Instruction, Multiple Data) is like having 64 workers all performing the exact same task simultaneously, rather than one worker doing 64 tasks sequentially. As brilliantly explained by Aarol in their Zig SIMD substring search article, the key insight is that modern CPUs can perform the same operation on multiple data elements in parallel using vector registers.
-
Giovanni Dicanio ☛ Linus Torvalds and the Supposedly “Garbage Code”
Linus Torvalds criticized a RISC-V Linux kernel contribution from a Google engineer as “garbage code.” The discussion focuses on the helper function make_u32_from_two_u16() versus Linus’s proposed explicit code. Let’s discuss the importance of using proper type casting, bit manipulation, and creating a safer, reusable macro or function for clarity and bug reduction.
-
Java/Golang
-
Anton Zhiyanov ☛ Go proposal: Hashers
The ComparableHasher type is the default hasher implementation for comparable types, like numbers, strings, and structs with comparable fields.
-
The New Stack ☛ Go Experts: 'I Don't Want to Maintain AI-Generated Code'
“I’ve been building software systems for the last two decades,” writes Quebec-based programmer Dominic St-Pierre, who, according to his website, heads the business software consultancy Focus Centric. But with an interest in teaching, he’s also launched a YouTube channel of programming tutorials — mostly Go — and also a Go podcast with over 800 subscribers. For years, he’s been sharing the joy of programming…
He asked: How should he react to the AI-generated code now appearing at the businesses where he consults?
-