news
Programming and Standards
-
Daniel Stenberg ☛ Developer of the year
This year, I was graciously nominated as, and subsequently, awarded Developer of the year at the award gala on September 12, 2025.
-
Robin Rendle ☛ Ditch those words!
Over the past couple of years I’ve noticed that 90% of my design feedback comes down to these three things: [...]
-
Adam Silver ☛ “Your” vs “My” in user interfaces
It’s a trick question because often you don’t need any prefix and can just use: [...]
-
Modus Create LLC ☛ Qualified Imports and Alias Resolution in Liquid Haskell
Liquid Haskell (LH) is a formal verification tool for Haskell programs, with the potential to prove correctness with considerably less friction than approaches that aim to make code correct by construction using dependent types—often at the cost of heavy refactoring (as argued in a previous post). It has come a long way towards becoming a usable tool by adding quality-of-life features to foster its adoption. Think optimization of spec verification and improved user experience.
During my GSoC 2025 Haskell.org project with Tweag, I worked on a seemingly small but impactful feature: allowing LH’s type and predicate aliases to be written in qualified form. That is, being able to write Foo.Nat instead of only just Nat, like we can for regular Haskell type aliases.
In this post, I introduce these annotations and their uses, walk through some of the design decisions, and share how I approached the implementation.
-
Avinash Sajjanshetty ☛ Setsum - order agnostic, additive, subtractive checksum
One naive (rather horrible) approach is to dump both states and compare them directly. It’s expensive, impractical, and doesn’t scale. Instead, you can maintain checksums that update with each operation. When you’re done, just compare the checksums; if they match, you’re in sync. That’s why distributed databases like Cassandra use Merkle trees for the same purpose.
Setsum is similar but has some nice properties that make it attractive over Merkle trees. They can be computed incrementally; the cost only depends on the change being applied, not the whole dataset. I also find them attractive because they let you remove items as well.
-
Perl / Raku
-
The Weekly Challenge ☛ 2025-09-03 [Older] CVE-2025-40927
-
The Weekly Challenge ☛ 2025-09-08 [Older] Caching using CHI
-
Perl ☛ 2025-09-05 [Older] A Quiz about Operator Priorities
-
-
Python
-
ID Root ☛ How To Delete Characters from String in Python
String manipulation stands as one of the most fundamental operations in Python programming. Whether working with data cleaning, text processing, or user input validation, the ability to delete characters from strings efficiently remains essential for developers.
-
-
Golang
-
David Gerrells ☛ how fast is go? simulating millions of particles on a smart tv
The industry then figured out how to decouple polygon count from lighting by using a graphics buffer and deferred shading. The details are heavy but the important part is that the cost of lighting is no longer proportional to number of polygons in the scene. Instead, it is based on a “fixed” g-buffer size. The buffer is proportional to the render resolution.
-
-
Standards/Consortia
-
The Register UK ☛ CISA attempts to assert control over CVE in vision outline
CISA published a two-page summary of its vision board for CVE's future this week, talking it up like a Taylor Swift tour: 2025, according to CISA, is the year CVE leaves its "growth era" for a "quality era" that CISA appears intent on dominating. Nicholas Andersen, CISA's recently appointed Executive Assistant Director for Cybersecurity, made the agency's vision for CVE's future clear in a blog post published alongside the vision document: It's a CISA joint.
-
Vishnu Haridas ☛ UTF-8 is a Brilliant Design
The first time I learned about UTF-8 encoding, I was fascinated by how well-thought and brilliantly it was designed to represent millions of characters from different languages and scripts, and still be backward compatible with ASCII.
-