Laurence Tratt

@ltratt.bsky.social

Shopify / Royal Academy of Engineering Research Chair in Language Engineering. https://tratt.net/laurie/

On my list of things to learn today was not "for tight loops on modern x64 CPUs, I can observe a ~1.5% win to aligning the loop to the end of a cache line on AMD and a ~0.1% win on Intel aligning to the start of a cache line", but I have.

An unexpected outcome (to me): it seems that I might be able to work out what things current LLMs don't know about, and perhaps can't even work out, by the LLM-generated "please answer this for me" questions I'm now getting.

For those wondering, yk is chugging away: support is broadening and in the last couple of days I've merged things which speed up interpreters by at least 5% (some by quite a bit more). There is a lot more juice to be squeezed, of course, but every little helps!

One thing that has long bedevilled software is that we have to make choices now knowing that they might be bad in the long run. One way of using LLMs is to look into the future: rapidly prototype a change, imperfect though it may be, to understand what choices might bite later.

A couple of months ago I mangled together a sequence of parametric EQ settings that corrected my (horrible) office acoustics. It turns out that what I really wanted was DRC, which creates an impulse response, which is far more complete! The before/after is quite astonishing.

Bild

I needed to upgrade my Samsung SSD's firmware. The ISO didn't work when written to a USB disk. Fortunately formatting the disk as MSDOS and copying files from the ISO straight to the USB worked a charm. The firmware upgrade itself took under a second!

Music can become over familiar; a break of a few years allows a fresh look. Nevermind popped up this morning, and within 4 tracks I heard rhythmic variations (SLTS) and brilliantly bonkers panning (Breed, and not the obvious solo!) I had never previously noticed. A new treat!

Just pointed at this HN comment: no, I haven't ever taken over LuaJIT! We did have a project some years ago to look at extending LuaJIT on which Tom Fransham did excellent work. Alas, the funder's priorities moved on (as is their right!), so we didn't get to finish it.

Bild

A confluence of events meant that, unusually, I've travelled three times to the EU in the last month. The new Entry & Exit System has failed 5 times out of 6. Each country/airport implements it differently, some comically incompetently. One, clearly, was ignoring it.

This weekend I visited The Herschel Museum of Astronomy in Bath: a small but perfectly formed museum in the building where he discovered Uranus. What I did not know is that he discovered infrared; if I had known, I still would not have expected to see the actual device he used!

Bild

My simple shell version of "ETA for rsync" found more users than I expected. After some useful suggestions, I've rewritten it in Rust, and it now shows sends (green)/dels (red) as it progresses, doesn't stall on big files, and has a (better) sliding-window ETA.

I haven't worked out a reliable way of detecting "AI writing", but there is one thing I really notice about "AI code": lots more error checks. This is, mostly, not bad, but some of the checks clearly can't trigger because of invariants elsewhere.

rsync is great but doesn't provide ETAs. rsyncp is a simple tool to do just that: it remembers the previous rsync's elapsed time and total files and reuses those on the next run. Here's an example: on the first run it has no idea how long things might take but it does thereafter.

C interpreters underlie many of our most widely used language implementations -- but they're slow. Wouldn't it be great if we could turn them into JIT compiling VMs? This video shows what happens when we do just that to the normal Lua VM (first) and "yklua" (Lua w/JIT, second).

Last week I upgraded the encryption I use to be post-quantum. I then realised that if enough people do the same, "using quantum f/decryptt" probably becomes a meaningless use case. Is there a word which captures the concept of "changing X effects the future of Y, even though X and Y seem distinct"?