Sign in

Laurence Tratt

@ltratt.bsky.social
1.7K followers 88 following 489 posts

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

PostsRepliesMedia
Laurence Tratt @ltratt.bsky.social · 21/09/2026
It was amusing to read that the current "AI makes lectures irrelevant" debate has echos from 1781 as related by Boswell.
083
Laurence Tratt @ltratt.bsky.social · 15/09/2026
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.
0141
Laurence Tratt @ltratt.bsky.social · 05/09/2026
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.
040
Laurence Tratt @ltratt.bsky.social · 28/08/2026
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!
031
Laurence Tratt @ltratt.bsky.social · 06/08/2026
The video of my QCon talk from this March is now up www.infoq.com/presentation...
041
Laurence Tratt @ltratt.bsky.social · 04/08/2026
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.
050
Laurence Tratt @ltratt.bsky.social · 18/07/2026
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.
110
Laurence Tratt @ltratt.bsky.social · 11/07/2026
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!
000
Laurence Tratt @ltratt.bsky.social · 08/07/2026
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!
100
Laurence Tratt @ltratt.bsky.social · 30/06/2026
New post: Local Reasoning for Global Properties. Could programming language design come to the rescue? tratt.net/laurie/blog/...
1172
Laurence Tratt @ltratt.bsky.social · 25/06/2026
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.
070
Laurence Tratt @ltratt.bsky.social · 24/06/2026
This morning I am noticing 20-30 minute delays on well-known sites _sending_ emails. That makes email login codes problematic when they have a 5-15 minute timeout...
030
Laurence Tratt @ltratt.bsky.social · 18/06/2026
Linux sometimes surprises me.
020
Laurence Tratt @ltratt.bsky.social · 15/06/2026
One of my favourite pages on the internet, to which I've returned often over many years, is www.greenend.org.uk/rjk/tech/pol.... I sent a small comment to its author at the weekend and, within an hour, the page was improved further! We are so lucky to benefit from this community spirit.
040
Laurence Tratt @ltratt.bsky.social · 10/06/2026
I'll be speaking at London Systems on Jul 2nd. Attendance is free, and you get a lightning talk or two as a bonus!
040
Laurence Tratt @ltratt.bsky.social · 09/06/2026
New post: Test-case Reducers Are Underappreciated Debugging Tools. The more I've used these tools, the more ways I realise they can be used! This post starts at the basics and works up to things like reducing on properties other than just the length of the input. tratt.net/laurie/blog/...
0242
Laurence Tratt @ltratt.bsky.social · 08/06/2026
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.
220
Laurence Tratt @ltratt.bsky.social · 06/06/2026
pizauth-1.1.0 out with a number of features: systemd users will want to enable the `systemd` feature. I've also updated my web site with signed ssh signatures, so you can tell that I did (or didn't!) make a given release. tratt.net/laurie/src/p...
040
Laurence Tratt @ltratt.bsky.social · 01/06/2026
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!
1272
Laurence Tratt @ltratt.bsky.social · 23/05/2026
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.
151
Laurence Tratt @ltratt.bsky.social · 19/05/2026
As a long-term sceptic of debuggers, I am still astonished at how often, when I have a weird problem, two minutes of rr (the reverse debugger) pinpoints the problem.
180
Laurence Tratt @ltratt.bsky.social · 15/05/2026
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.
191
Laurence Tratt @ltratt.bsky.social · 14/05/2026
New version of hk: now with a test suite! tratt.net/laurie/src/hk/
010
Laurence Tratt @ltratt.bsky.social · 11/05/2026
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.
181
Laurence Tratt @ltratt.bsky.social · 10/05/2026
I've used rsync for many years, and these days use it heavily. Astonishingly today is the first time I've encountered an actual bug in it: it's excellent software (albeit with enough flags to sink a ship)! github.com/RsyncProject...
080
Laurence Tratt @ltratt.bsky.social · 09/05/2026
Dr Johnson on what made universities so effective (quote circa 1768).
020
Laurence Tratt @ltratt.bsky.social · 27/04/2026
Fundamentally, our software security setup has focussed on stopping external attackers, not autonomous actors already on the inside. I fear that we'll see more and more of this sort of thing occurring until we address that fact. x.com/lifeof_jer/s...
x.com
JER on X: "An AI Agent Just Destroyed Our Production Data. It Confessed in Writing." / X
An AI Agent Just Destroyed Our Production Data. It Confessed in Writing.
251
Laurence Tratt @ltratt.bsky.social · 24/04/2026
I am not quite sure what I did before `shellcheck`, but I think the answer is "a lot of my shell scripts were subtly broken".
060
Laurence Tratt @ltratt.bsky.social · 15/04/2026
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).
13514
Laurence Tratt @ltratt.bsky.social · 10/04/2026
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"?
020
Laurence Tratt @ltratt.bsky.social · 29/03/2026
At Wells this morning, we saw a Palm Sunday procession that - to the extent anything can trace itself back this far - seems to have started around 800 years ago, including hidden singers in the Cathedral's front. There was certainly plenty of incense which was distributed around by the strong winds!
000
Reposted by Laurence Tratt
Hila Peleg @hilacodes.bsky.social · 18/03/2026
We're running a user study, maybe you can help! We're studying the effect of new ways to show code diffs to programmers, and looking for participants for a 1-1.5hr virtual user study. In the study you will be shown several diffs and asked questions about them.
12121
Laurence Tratt @ltratt.bsky.social · 18/03/2026
I was a judge for STEM for Britain yesterday, and I have to say: I was genuinely impressed by what I saw. Much was in fields I have no expertise in, but I still ended up learning things, because the explanations were so good. The winners are thoroughly deserving! bsky.app/profile/raen...
040
Reposted by Laurence Tratt
Hillel @hillelwayne.com · 18/03/2026
----- "Automatically Retrofitting JIT Compilers", @ltratt.bsky.social, #QConLondon About taking existing language implementations and automatically generating just-in-time compilers for improved performance. Demoing a Mandelbrot in Lua, which takes 3.2 seconds, on standard impl
121
Laurence Tratt @ltratt.bsky.social · 10/03/2026
pizauth-1.0.11 is out, and ensures it keeps retrying in the face of transitory HTTP errors tratt.net/laurie/src/p...
021
Laurence Tratt @ltratt.bsky.social · 05/03/2026
Sometimes the best way to predict the future is to wait and see what happens.
170
Laurence Tratt @ltratt.bsky.social · 04/03/2026
One of the interesting consequences of LLMs/agents is that the short-term costs of boilerplate in code have plummeted. An interesting question is whether those costs are simply shunted to the future or whether they are permanently reduced.
180
Laurence Tratt @ltratt.bsky.social · 26/02/2026
It seems that I have been blessed with my first clawdbot (or similar) interactions on one of my repositories. I really hope this sort of noise doesn't end up (a) wasting maintainer's time (b) putting people off trying the underlying technology where it's actually useful.
110
Laurence Tratt @ltratt.bsky.social · 13/02/2026
In the futurementary Terminator, I don't remember Skynet starting off with open-source repositories theshamblog.com/an-ai-agent-... (I also strongly suggest following the link to the GitHub PR, because it makes much more sense with that as context).
theshamblog.com
An AI Agent Published a Hit Piece on Me
Summary: An AI agent of unknown ownership autonomously wrote and published a personalized hit piece about me after I rejected its code, attempting to damage my reputation and shame me into acceptin…
041
Laurence Tratt @ltratt.bsky.social · 09/02/2026
In the past fortnight, 50% of my conversations have seen me say "today's AI cannot do that and we have no idea if and when it will". In the other 50% I've said "today's AI can do that, really, and you just need to try it". Our collective calibration is currently very wonky!
2130
Laurence Tratt @ltratt.bsky.social · 29/01/2026
Scratched a Rust itch with an experimental new crate `test_stubs`. I have traits with lots of methods. "Proper" code should implement all methods, but test code need not. `test_stubs` means that test code doesn't have to manually create `todo!()` methods.
140
Laurence Tratt @ltratt.bsky.social · 26/01/2026
There's nothing more surprising than an agent, in the middle of doing some useful refactoring, asking if it can run a Python script which solely prints "HI" (yes, in uppercase) to stdout.
180
Laurence Tratt @ltratt.bsky.social · 22/01/2026
If you're thinking of applying to PLISS, you've got three days left! pliss.org/2026/registr...
063
Laurence Tratt @ltratt.bsky.social · 20/01/2026
A first: I awoke to a PR on one of the Rust projects I maintain that results from a proposed fix to a rustc oversight. Our code should never have compiled, IMHO, so the rustc fix is a good one! For those interested in the rustc change: github.com/rust-lang/ru...
030
Laurence Tratt @ltratt.bsky.social · 19/01/2026
When I read Walter Bagehot's (d. 1877) "The English Constitution" years ago, I was surprised at how much time he spent contrasting it to the US constitution. I now realise he had thought deeply about the plausible futures of both and how they could adapt and/or go wrong.
130
Laurence Tratt @ltratt.bsky.social · 15/01/2026
I've never been a fan of debuggers. Examining the state at the point of a crash rarely helps me: the problem is nearly always earlier in time. `printf` is more useful to follow the trail forwards.
360
Laurence Tratt @ltratt.bsky.social · 15/01/2026
A reminder for those interested in PLISS 2026: there are 10 days left to register your interest. pliss.org/2026/registr...
062
Laurence Tratt @ltratt.bsky.social · 14/01/2026
Even though I know from past experience how important it can be to avoid small memory allocations in performance critical code, the measurable effect of removing them still often surprises me.
060
Laurence Tratt @ltratt.bsky.social · 12/01/2026
I was recently asked how I choose what podcasts I listen to, and paused. Then I realised it's similar to how I choose what to read. In particular, for current affairs, I actively try to avoid just reinforcing my current opinions. I think this has helped make me wrong less often!
120
Laurence Tratt @ltratt.bsky.social · 09/01/2026
Low-needle-drop Christmas trees are willing to delay their revenge: they wait until you remove them from the house before dropping dry, sharp, needles everywhere.
120