Dougall

@dougall
2.9K Followers
304 Following
1,063 Posts

Low-level systems stuff. Reverse engineering, security research, bit twiddling, optimisation, SIMD, uarch. 64-bit ARM enthusiast.

he/they

Bloghttps://dougallj.wordpress.com
Twitterhttp://twitter.com∕dougallj∕status∕1590357240443437057.ê.cc/twitter.html
Githubhttps://github.com/dougallj
Cohosthttps://cohost.org/dougall
What is abs(x - y)

What is abs(x - y) , why do I even bother asking a question like that, much less answer it? Trust me, it's more interesting than it look...

Pivco-Huffman https://marcinzukowski.github.io/pivco-huffman/paper-1.0/ph.html IMO, very interesting.

(Marcin contacted me asking to get a version of Oodle's Huffman and TANS coders for testing and we had a long email exchange over the last several weeks.)

PivCo-Huffman

New (small) blog post: "Why does ASTC use ISE when almost nothing else does?" https://fgiesen.wordpress.com/2026/05/29/why-does-astc-use-ise-when-almost-nothing-else-does/
Why does ASTC use ISE when almost nothing else does?

The ASTC texture compression format has its “integer sequence encoding” to send small integers with a uniform probability distribution within their range. When that value range is [0,2k…

The ryg blog
New blog post: "Simple batch decoding of unary codes" https://fgiesen.wordpress.com/2026/05/30/simple-batch-decoding-of-unary-codes/

new yaxpeax-x86!! 2.1.0 adds information for instruction behavior: operand read/writes, implicit operands, preliminary support for expected privilege levels and possible exceptions. https://docs.rs/yaxpeax-x86/latest/yaxpeax_x86/long_mode/behavior/index.html

including a small book of "bonus weird instructions in x86": https://docs.rs/yaxpeax-x86/latest/yaxpeax_x86/long_mode/behavior/enum.ComplexOp.html

yaxpeax_x86::long_mode::behavior - Rust

behavior information for x86-64 instructions.

I finally reverse engineered the entire ProRes RAW decoder and display pipeline. You don't need to use Windows or OSX plus Resolve just to view, edit or process your camera raws!

My talk on "New Mathematical Workflows" at Stanford last week is now online: https://www.youtube.com/watch?v=Uc2zt198U_U

One key recommendation in the talk is to now de-prioritize the historical emphasis on competing to be the first to provide a proof for a given unsolved mathematical problem. When we were in the proof scarcity era, the "local" goal of obtaining any proof at all for a problem was fairly well aligned with the more "global" goal of collectively advancing our understanding of mathematics as a community. However, now that the ability to optimize this local goal has increased rapidly to the point of "proof abundance", we have now reached the point where Goodhardt's law https://en.wikipedia.org/wiki/Goodhart%27s_law has kicked in, and further unrestricted overoptimization of this goal will no longer create genuine mathematical progress, and may in fact inhibit it in various ways. However, there is scope for more controlled, and still meaningful, optimization in this direction along carefully chosen workflows (such as mathematics competitions) that are specifically designed to accommodate heavy AI use.

Terence Tao: New mathematical workflows | Future of Mathematics

YouTube

this sounds exciting, nice that AMD found it:
https://www.amd.com/en/resources/product-security/bulletin/amd-sb-7052.html

AMD has identified a vulnerability in the CPU operation (op/µop) cache on Zen 2‑based products that can cause incorrect instructions to be executed at a higher privilege level.
[...]
Improper isolation of shared resources within the CPU operation cache on Zen 2-based products could allow an attacker to corrupt instructions executed at a different privilege level, potentially resulting in privilege escalation.

Some reading for the weekend:

Implementation details of Apple's lossy texture compression format.
https://www.ludicon.com/castano/blog/2026/04/metal-lossy-compression-format/

Enjoy!

Metal Lossy Compression Format

The Apple Lossy compression format was introduced in the A15 and M2 chipsets (which share the same GPU generation) and it enables sampling and rendering to textures with a 1:2 compression ratio. The format is transparent to the application: the GPU handles compression and decompression automatically

Ignacio Castaño
I summarized some of what I’ve been posting about here for the last year. I hope someone finds it interesting! https://monoids.net
Slava's Monoid Zoo