Sign in

rntz

@rntz.net
390 followers 175 following 384 posts

Michael Arntzenius irl. Postdoc at UC Berkeley doing PL + DB + incremental computation. PL design, math, calligraphy, idle musings, &c. rntz.net 🐘 @rntz@recurse.social 🐦 @arntzenius Attempting to use bsky more now that people are showing up.

PostsRepliesMedia
rntz @rntz.net · 15/09/2026
book haul book haul (moe's books, berkeley)
five books:
Osamu Dazai - No Longer Human
Iain M Banks - The Hydrogen Sonata
Jacqueline Harpman - I Who Have Never Known Men
Bejamín Labatut - When We Cease to Understand the World
Ursula K Le Guin - Changing Planes
170
rntz @rntz.net · 23/07/2026
aaahhh, much better
the same diagram, arranged differently, looking much more visually symmetric
020
rntz @rntz.net · 22/07/2026
cursed diagrams
tikzcd diagram generated by q.uiver.app showing a rather tangled collection of nodes, some labeled with letters a,b,c,d,s,t,r, others with either + or x (times).
130
rntz @rntz.net · 30/06/2026
my younger self is horrified rn
screenshot of a code editor showing six closing braces/dedents in a row each on separate lines
120
rntz @rntz.net · 29/06/2026
back to my favorite medium for thought
290
rntz @rntz.net · 09/05/2026
added a cute little prime sieve
000
rntz @rntz.net · 16/03/2026
A little haskell command-line script to calculate good, small rational approximations of real numbers. Eg: approximating 0.13 yields 1/7 ≈ 0.1429, 1/8 = .125, 3/23 ≈ 0.1304, 13/100 = 0.13 in that order. Useful more often than I expected. gist.github.com/rntz/6713db2...
171
rntz @rntz.net · 02/03/2026
behold the quality of my commit messages
* 1e3b8d6 work
* be68869 work
* f78da1b work
* 7f85b0b work
* f145b04 Update on Overleaf.
* 751966e work
* 7e34a6c work
* 9cbac47 work
* a037082 work
* ec99d61 work
* b292429 work
* 908f2fe work
* f02ff83 work
* 2b7dd67 work
* e6d36af work
* 570e91a work
* c458a82 work
* 78966a5 work
* dbc0cd6 work
* 09f6b18 work
* 43e4d6c work
* 0ec0ce8 work
* bdcdadb rm sections.tex
* 9f9e18e add sections.tex
* 47f8674 work
* aa3b55e work
* 7ec0caf work
4100
rntz @rntz.net · 02/02/2026
the atreus keyboard layout I've landed on as a {emacs,mac,latex,lisp} user
layer 0layer 1layer 2
010
rntz @rntz.net · 19/01/2026
are enclose.horse puzzles getting easier or am I just gitting gud?
a screenshot of "past puzzles" page from enclose.horse, showing my performance. the exact scores are censored out but days 13-21 are all diamond (perfect); before that is a mix of gold and occasional diamond.
020
rntz @rntz.net · 28/12/2025
(Martinique is part of France fyi) I suspect overzealous enforcement by the airline. I couldn't find any info about this on their website but did later get pointed to a Facebook post (!?!) that looked like the thing the airline rep briefly waved in my face to justify it.
010
rntz @rntz.net · 13/12/2025
I have decided to have fun with the section titles in my paper-to-be, at least while I'm writing it.
1 Logic programming is (not) functional programming
2 Support, pointedly
3 Why not just...?
4 A finitely supported map from examples to booleans
5 The relevance of being relevant
6 Context hopping
7 Curing maybe-addiction with class
8 What does it all mean?
060
rntz @rntz.net · 16/11/2025
a geometric visualization of factorized delta queries by @jcreed.bsky.social, representing Δ(R ∧ S ∧ T) = (ΔR ∧ S ∧ T) ∨ (R' ∧ ΔS ∧ T) ∨ (R' ∧ S' ∧ ΔT) where R' = R ∨ ΔR etc.
030
rntz @rntz.net · 16/11/2025
a numbered heading from a pdf document:

1 Logic Programming is (not) Functional Programming
171
rntz @rntz.net · 31/10/2025
My miniKanren 2025 paper, "Fair intersection of seekable iterators", about an efficient, compositional way to implement relational joins on sorted data structures, and how it (sorta) requires "fairness", is now on arXiv: arxiv.org/abs/2510.26016 talk slides: www.rntz.net/files/minika...
160
rntz @rntz.net · 13/10/2025
Slides for my HOPE 2025 presentation, "Finite Functional Programming via Graded Effects & Relevance Types": www.rntz.net/files/hope-2...
a handwritten slide, saying:

lambda: the ULTIMATE RELATION!

-> RELATIONS = FUNCTIONS + SUPPORT

-> FINITE support = DATALOG.
ENUMERABLE " = PROLOG ??

-> naturally handles:
{ WEIGHTED logic programming
{ AGGREGATIONS

-> type system is UGLY but I love it <3
GRADED (CO)MONAD
+ ADJUNCTION
+ RELEVANT TYPES
+ HAX
3143
rntz @rntz.net · 11/10/2025
i go halfway around the world for a conference in a famous tourist city and first day what do I do? go to a bookstore
two books lying on top of one another:
Driftglass by Samuel R. Delany
The Murderbot Diaries, Vol. 1 by Martha Wells
010
rntz @rntz.net · 04/10/2025
Cryptoconchoidsyphonostomata
or
WHILE IT'S TO BE HAD.
000
rntz @rntz.net · 27/09/2025
guess the subject of the paper
220
rntz @rntz.net · 25/09/2025
just a bit onward Hansen cites Dijkstra 1971b, "Hierarchical Ordering of Sequential Processes", which invokes a fairness property ("each process... is guaranteed to proceed with some unknown, but finite speed") but reserves the actual term "fair" only for a much stronger property
010
rntz @rntz.net · 15/09/2025
I got irritated at how tightly spaced EB Garamond 08 (the version intended for use at smaller sizes) is, so I tried my hand at re-spacing the 26 lower-case letters manually in FontForge. Here's the result (original spacing first, then my adjustments). github.com/georgd/EB-Ga...
000
rntz @rntz.net · 10/09/2025
I repeat: computers are mostly about sorting
flamegraph of a Rust program computing the transitive closure of the wiki-Vote.txt SNAP dataset. 80% of its time is spent sorting.
260
rntz @rntz.net · 09/09/2025
the All-Seeing Eye has fallen up on my work and deemed it good (implications status: uncomfortable. spotted by @mwillsey.com.)
020
rntz @rntz.net · 30/08/2025
new book haul
a stack of books:

Charles Darwin - On The Origin of Species
Philip K Dick - The Man in the High Castle
Andy Weir - The Martian
Haruki Murakami - Hard-Boiled Wonderland and the End of the World
Norman Maclean - A River Runs Through It
020
rntz @rntz.net · 09/08/2025
btw, the "better version" of the linear merge-intersection is leapfrog intersection: keep pointers into each list, starting at front. repeatedly "leapfrog" the pointer whose element is smaller by searching it forward toward the larger element. binary search will work, but galloping search is better.
120
rntz @rntz.net · 07/08/2025
I do not understand inlining in Rust. Even with #[inline(always)], I get worse performance than if I inline manually. Wat?
110
rntz @rntz.net · 07/08/2025
full code, including the seekable iterators with worst-case optimal/fair intersection, here: gist.github.com/rntz/9c10db3...
010
rntz @rntz.net · 07/08/2025
I tried optimizing my worst-case optimal seekable iterators in Rust and thought I did pretty good. Then I tried hand-optimizing a little "count the intersection" loop and discovered it's 2x as fast as the iterators. Feh!
140
rntz @rntz.net · 27/07/2025
the four genders: Twitter, Discord, Github, Lichess
We compare the two algorithms on a significant fragment of web layout that includes line
breaking, flex-box, intrinsic sizes, and many other features, benchmarking 50 real-world web pages
like Twitter, Discord, Github, and Lichess. Across 2216 frames, Spineless Traversal is 1.80× times
faster on average. Speedups are concentrated in the most latency-critical frames: on the 65.6% of
052
rntz @rntz.net · 17/06/2025
signature of elements for completeness: fn elements<X: Ord + Copy>(elems: &[X]) -> Elements<X>
000
rntz @rntz.net · 17/06/2025
I figured it out by blindly stumbling around until I added the right lifetime annotations to seek().
200
rntz @rntz.net · 17/06/2025
ran into my first true Rust borrow-checker head-scratcher, trying to implement transitive closure in my nascent query engine...
110
rntz @rntz.net · 14/06/2025
I was told Rust's declarative macros had hygiene. I was lied to. I seriously can't export a declarative macro that uses other un-exported declarative macros and have it work? wtf?
160
rntz @rntz.net · 12/06/2025
I have spent entirely too much time this week writing sorted list search algorithms (>2x speedup over binary search on triangle-finding with this one, though!). Time to go write some parsers instead.
000
rntz @rntz.net · 07/06/2025
triangle query goes brrrrrrr github.com/rntz/dijkstr...
260
rntz @rntz.net · 07/06/2025
triangle query goes brrrr github.com/rntz/dijkstr...
000
rntz @rntz.net · 04/06/2025
> error[E0277]: the trait bound `!: iter::Seek` is not satisfied cursed error messages
cargo run 
   Compiling dijkstralog v0.1.0 (/Users/marntzenius/research/dijkstralog)
error[E0277]: the trait bound `!: iter::Seek` is not satisfied
   --> src/iter.rs:159:62
000
rntz @rntz.net · 23/05/2025
🏌 27 lines github.com/rntz/dijkstr...
040
rntz @rntz.net · 22/05/2025
unifying inner, outer, left outer, and right outer joins; credit to @mwillsey.com for the idea. source at github.com/rntz/dijkstr...
020
rntz @rntz.net · 21/05/2025
I'll start using code autoformatters when code autoformatters can actually align parallel constructions
Rust code, with very careful cross-line alignment of a complex pattern matching block.
150
rntz @rntz.net · 21/05/2025
reimplemented this in Python using coroutines because why not: gist.github.com/rntz/4c012fc...
130
rntz @rntz.net · 20/05/2025
even simpler outerJoin for Position
instance Ord k => OuterJoin (Position k) where
  outerJoin l r b p q = case (bound p `compare` bound q, p, q) of
      (LT, Found k x, _)         -> Found k (l x)
      (GT, _,         Found k y) -> Found k (r y)
      (EQ, Found k x, Found _ y) -> Found k (b x y)
      _                          -> Bound (bound p `min` bound q)
010
rntz @rntz.net · 20/05/2025
Seekable sorted iterators with worst-case optimal intersection and union in ~60 lines of Haskell. Gist: gist.github.com/rntz/da1f004... more commented & complete version in repo: github.com/rntz/dijkstr...
Screenshot of Haskell code. You can find it at https://gist.github.com/rntz/da1f004b2bd2f4268c626c5d6ef8acb4
2101
rntz @rntz.net · 15/05/2025
the good shit
Haskell code
040
rntz @rntz.net · 08/05/2025
@nsaphra.bsky.social saw this on birdsite and thought of you
twitter thread:

A: the ideal speculative fiction novel has a political affiliation so confusing no one can tell if they want to cancel it or not

B: <image of cover of Too Like the Lightning by Ada Palmer>
020
rntz @rntz.net · 08/05/2025
why does this need UndecidableInstances? class Seek iter k v | iter -> k, iter -> v where ... data Merge iter = ... instance Seek iter k v => Seek (Merge iter) k v where ... ghc claims Merge iter doesn't determine the type k. But it does, since iter -> k in (Seek iter k v).
000
rntz @rntz.net · 03/05/2025
today's ride: up into the Berkeley hills, down through twisty Pinehurst Road, east to Mount Diablo and up up up to the summit. The road to the top is very fun, highly recommend.
View from Mount Diablo summit looking north by north-east. You see hiking trails tracing a path down and then up to Mount Olympia; beyond it there are hills rolling down to Antioch and Pittsburg, and beyond that the Sacaramento River.A burst of yellow flowers is center frame, with some trees in the background and far too much lens flare because I'm not a good photographer.A red motorbike (my Honda CRF300L Rally) in a parking lot next to a ranger station (I think?) halfway up Mount Diablo.A bunch of red-orange nasturtiums growing near where I'm living at the moment. Not related to the motorbike trip.
050
rntz @rntz.net · 17/02/2025
Today's ride: over the Richmond Bridge to San Rafael, grab bagel at Pink Owl Cafe & read paper. Finish reading at Bon Tempe lake. Twisty Fairfax-Bolinas Road to Highway 1, south to Stinson Beach; buy these postcards at bookshop. Hwy 1 to Sausalito then back over the bridge & home.
030
rntz @rntz.net · 15/02/2025
obviously you just need to fully commit to the bit and buy this $1000 pre-computer-age adjustable-height adjustable-tilt reading/writing desk www.etsy.com/listing/1766...
110
rntz @rntz.net · 07/02/2025
fast approaching the funkiest set of typing rules in the history of PL theory...
050