Programming Leftovers
-
Buttondown LLC ☛ Five Kinds of Nondeterminism
When specifying systems, I may not encounter nondeterminism more often than in real systems, but I am definitely more aware of its presence. Modeling nondeterminism is a core part of formal specification. I mentally categorize nondeterminism into five buckets. Caveat, this is specifically about nondeterminism from the perspective of system modeling, not computer science as a whole. If I tried to include stuff on NFAs and amb operations this would be twice as long.1
-
Unmitigated Risk ☛ From Perimeter to Patterns: Envisioning Security a Decade from Now | UNMITIGATED RISK
In industries like automotive and aerospace, every piece is built to perform—and to fail without falling apart. Cars layer airbags, antilock brakes, and sensors; airplanes stack redundant systems to keep flying when one falters. Nuclear plants and space missions go deeper, with containment designs and fail-safes that tame the unthinkable. My father’s satellite work ran on this: three layers of backup meant a glitch wouldn’t kill the mission. The takeaway? Strength comes from managing risk, not avoiding it. That mindset, forged in physical systems, would be our starting point for tackling the wild unknowns ahead.
-
Port.io ☛ 2025 State of Internal Developer Portals
Only 3% of engineers feel the data quality of their metadata repository is completely trustworthy and 50% have doubts about its accuracy. Trust in metadata is crucial, as without it, developers are unlikely to rely on it and will turn to DevOps, SREs, or other colleagues for information. This reliance on institutional knowledge is something engineering teams are striving to move away from. The ideal would be to have a single source of truth for this metadata.
This trust gap may stem from infrequent metadata updates: 53% of teams update their software asset metadata no more than once per week, potentially leading to outdated or inaccurate information that undermines reliability.
-
Julia Programming Language ☛ Julia’s Alternative to C-Code Generation for Model-Based Engineering
For years, a sort of dogma has prevailed in the world of embedded systems and real-time control: if you're using a high-level language like Python or R for modeling and simulation, you must rewrite your code in C for deployment. But what if there was a better way? What if you could leverage the productivity of high-level languages without sacrificing performance?
Julia is redefining this landscape. As a powerful language for technical computing, it is renowned for its model-based engineering (MBE). And advances in Julia’s compiler technology are eliminating the need for C-code generation, enabling a more seamless and efficient path from modeling to deployment.
-
Python
-
Justin Duke ☛ YOLO-squashing our Django repository
This time, I went with a different tactic: just delete the damn things and start over. (This is something that is inconsiderate if you have lots of folks working on the codebase or you're letting folks self-host the codebase; neither of these apply to us.)
-
-
Shell/Bash/Zsh/Ksh
-
ID Root ☛ Bash Case Statement
The Bash case statement is a powerful tool in shell scripting that simplifies the process of handling multiple conditions. Unlike traditional conditional statements like if..else, the case statement provides a cleaner, more readable way to execute different blocks of code based on the value of a variable.
-
-
Java
-
Frank Delporte ☛ Demo Application with CRaC and Loading Data in Memory
Coordinated Restore at Checkpoint (CRaC) is a JDK project, initiated by Azul. With CRaC, you can start Java programs with a shorter time to first transaction, combined with less time and resources to achieve full code speed. This is achieved by taking a snapshot (checkpoint) of a fully warmed-up Java process and launching one or more new JVMs from that snapshot.
I have been experimenting with CRaC on a Raspberry Pi in 2023 and blogged about, first when it didn’t work yet, and a second time when it did work perfectly.
-
Scoop News Group ☛ Java security: If you ain’t cheatin,’ you ain’t tryin’
Rigging the odds in your favor is the only way security practitioners can go.
-
-
Rust
-
Rust Weekly Updates ☛ This Week In Rust: This Week in Rust 587
Hello and welcome to another issue of This Week in Rust!
-
-
SaaS/Back End/Databases
-
Geoffrey Copin ☛ Build your own SQLite, Part 5: Evaluating queries
In the previous posts, we've explored the SQLite file format and built a simple SQL parser. It's time to put these pieces together and implement a query evaluator! In this post, we'll lay the groundwork for evaluating SQL queries and build a query evaluator that can handle basic SELECT statements. While our initial implementation won't support filtering, sorting, grouping, or joins yet, it will give us the foundation to add these features in future posts.
-