Ragnar {Groot Koerkamp}
banner
curiouscoding.nl
Ragnar {Groot Koerkamp}
@curiouscoding.nl
PhD on high troughput bioinformatics @ ETH Zurich;
IMO, ICPC, Xoogler, Rust, road-cycling, hiking, wild camping, photography
An average day at the office :)

Currently wishing I could write `Rank` for
Rank usize>, but rust functions cannot be named :(

internals.rust-lang.org/t/pre-rfc-us...
internals.rust-lang.org/t/nameable-f...
November 7, 2025 at 5:38 PM
Wow Rust coroutines are cool!
My little `f(x) { prefetch(x); yield; compute(x); }` benchmark is ~8ns per call with explicit prefetching in a loop, and ~9ns per call when using coroutine abstractions :)

(I first spent a full day struggling with async, which I only got down to 14ns with much pain.)
November 7, 2025 at 9:58 AM
November 6, 2025 at 1:43 PM
protip: don't forget to replace `cargo flamegraph` back to `cargo run` when doing long-running commands ;)
October 31, 2025 at 11:15 AM
Following ish's `filter` and bqtools' `grep`, Sassy now also has initial support for grep and filter!

Grep mode shows all matches, grouped per record, and is meant for human consumption.
Filter mode prints full matching (or non-matching) records to stdout or output files.
October 30, 2025 at 11:46 PM
That reminds me of an interactive BWT searching visualization I made here: (change 'algorithm' to BWT first)

curiouscoding.nl/posts/alg-viz/
October 15, 2025 at 9:43 AM
The fight against the _platform_memset_platform16 continues until all u32x8::splat() have been purged...

(Turns out wide's `transmute([X; 8])` into `[u32x4;2]` has very bad codegen that prevents inlining and loop hoisting 😭)
October 9, 2025 at 11:42 AM
Also note: for comparison speed, 1-bit hashes beat everything else (top-right red line here). Because each bit is an independent sample, the entropy is very high.
(Whereas comparing 8-bit sketches loses some information, because if two 8-bit values differ in the first bit, the other 7 are unused.)
October 1, 2025 at 3:03 PM
FxHashSet::<u32>::contains throughput is wild!

- Up to 4x slowdown for negative queries due to probing.
- Positive queries are fast for small tables, but slow in RAM because they need 2 cache misses.

Lots of variance depending on the load factor, ie whether n is close to 87.5% of a power of 2.
September 28, 2025 at 11:19 PM
Turns out the emacs magit UI moves files to a trash dir instead of deleting them when I press 'x'.

Goodbye 40GB (10% of disk) of `perf.data` files.
September 28, 2025 at 7:55 PM
🥺
September 21, 2025 at 9:49 PM
CPUs are literal black boxes 🤯
September 21, 2025 at 6:34 PM
The average inclination of a climb should not be computed as avg(inclination a_i per km), but instead as sum(a_i^2)/sum(a_i), which is the time-average assuming constant vertical velocity.

I'm consistently annoyed by a short near-flat sections throwing off otherwise 10% averages.
September 16, 2025 at 8:06 PM
The 'career impact' section of my grant:
This grant will allow me to develop fundamental rust libraries for bioinformatics. This will have great impact, with the goal of reaching a bus factor of 1 for the entire ecosystem. Then, there will be no way not to make me a PI.

Am I doing this right?
September 2, 2025 at 10:42 PM
Finally printed and submitted my thesis :)

You may call me Dr. now 🎓

curiouscoding.nl/thesis.pdf
August 26, 2025 at 1:40 PM
Periodic table of amino acids 😍
August 26, 2025 at 11:43 AM
FYI: The hacker scene is actively making fun of us.

www.youtube.com/watch?v=NUUF...

Great talk though :)
August 26, 2025 at 11:26 AM
Box<Cat> &Box<Dorf>
August 23, 2025 at 12:46 PM
Sorry I couldn't break the news.
August 22, 2025 at 2:20 PM
Debugging nthash2 hash collisions with a background of 🌠
August 12, 2025 at 10:22 PM
Context: Realizing that I can do a binary search over the log(n) levels of my heap, for log(log(n)) insertion time.
But better! If the data is random we can instead do interpolation search, for log(log(log(n))) insertions.
Don't you love it?
August 12, 2025 at 12:25 PM
Three log scientist: A rating system for theoretical computer scientists.

curiouscoding.nl/posts/three-...
August 12, 2025 at 12:23 PM
Oh ang UGH, it's not even a clickable link, but only plain text.
Why can't you make it easy for me to use DOI2BIB?
August 12, 2025 at 10:43 AM
So, the heap I invented over the weekend was introduced as the quickheap by Navarro and Paredes around 2006!
Basically: on each pop, do just enough quicksort to find the smallest element.

My implementation (the 1st??) is 2x to 4x faster than d-ary and binary heaps.

curiouscoding.nl/posts/quickh...
August 11, 2025 at 11:32 PM
We should do more curve fitting!

-- Optimal Incremental Sorting, Parades & Navarro '06
August 9, 2025 at 10:15 PM