news
Programming Leftovers
-
Mira Welner ☛ The Software of Science
It is not due to lack of skill or care, but rather because their focus is the science, not the code that serves the science. There is a difference between code written by people who don't care about their job, and code written by people who care a whole lot about their job, but their job is the science, not the code.
Now you could argue that the point of code is never really the code itself, but the thing that the code does. This doesn't change the fact that quality code is always important because it ensures that the codebase is easy to maintain. And this is all very true.
-
Brian Callahan ☛ The GNU D compiler has been broken on FreeBSD 14 for over a year and no one noticed, or, why operating system package maintainers matter
The problem runs a little deeper. Turns out that GNU as cannot assemble a huge amount of code that is output by FreeBSD's clang. On FreeBSD 14, every piece of code that includes <stdlib.h> ends up including this line of assembly: [...]
-
LWN ☛ Go 1.25 released
Version 1.25 of Go has been released. Notable changes include support for generating debug information in the DWARF 5 format, "container awareness" when setting the maximum number of CPUs to be used, and a new testing/synctest package with support for testing concurrent code. See the release notes for a comprehensive list of changes in 1.25.
-
Ubuntu Handbook ☛ Golang 1.25 Released with New Garbage Collector & New Packages
Go programming language released new 1.25 version on Tuesday after another 6 months of development. The new release introduced new Go command options, runtime and compiler changes, some new packages, and platform changes.
-
Daniel Hooper ☛ Snooping On Slow Builds (Using Syscalls)
Many software projects take a long time to compile. Sometimes that’s just due to the sheer amount of code, like in the LLVM project. But often a build is slower than it should be for dumb, fixable reasons.
I’ve had the suspicion that most builds are doing dumb stuff, but I had no way to see it. So I’ve been working on a cross-platform tool to help speed up builds (you can try it, see below). It works with any build system or programming language. Its timeline looks like this: [...]
-
Sandor Dargo ☛ Use concepts with std::remove_cvref_t
Let’s talk about templates, constraints, and concepts. We’ll start with a quick reminder of why concepts are essential when working with templates. Then we’ll dive into the challenge posed by reference-qualified types and finish with a practical solution.
-
Python
-
Akseli Lahtinen ☛ Kate and Python Language Server: Basedpyright
This post is somewhat an update for my older post: Kate and Python language server
There seems to be a lot of different Python language servers.. And I just want one that does all and stays out of the way.
So after moaning about that I was pointed towards basedpyright on Fedi.
-
Ned Batchelder ☛ Starting with pytest’s parametrize
Writing tests can be difficult and repetitive. Pytest has a feature called parametrize that can make it reduce duplication, but it can be hard to understand if you are new to the testing world. It’s not as complicated as it seems.
-
-
Shell/Bash/Zsh/Ksh
-
The Mill Build Engineering Blog ☛ Writing Your Own Simple Tab-Completions for Bash and Zsh
Shell tab-completions can be very handy, but setting them up is complicated by the fact that half your users would be using Bash-on-Linux, while the other half will be using Zsh-on-OSX, each of which has different tab-completion APIs. Furthermore, most users exploring an unfamiliar CLI tool using tab completion appreciate showing a description along with each completion so they can read what it is, but that’s normally only available on Zsh and not on Bash.
But with some work, you can make your tab-completions work on both shells, including nice quality-of-life features like completion descriptions. This blog post will explore how it can be done, based on our recent experience implementing this in the Mill build tool version 1.0.3, providing the great tab-completion experience you see below in a way that works across both common shells. Hopefully based on this, you will know enough and have enough reference examples to set up Bash and Zsh completions for your own command-line tooling.
-
-
Java
-
Venture Beat ☛ The NYSE sped up its realtime streaming data 5X with Redpanda
NYSE's deployment of Redpanda's data streaming platform achieved 4-5x performance gains over Java-based Kafka, exposing critical limitations that affect enterprise Hey Hi (AI) scaling and real-time analytics capabilities.
-
-
Rust
-
Rust Weekly Updates ☛ This Week In Rust: This Week in Rust 612
Hello and welcome to another issue of This Week in Rust!
-