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.
Laurence Tratt
@ltratt.bsky.social
Shopify / Royal Academy of Engineering Research Chair in Language Engineering. https://tratt.net/laurie/
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.
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!
New post: Local Reasoning for Global Properties. Could programming language design come to the rescue? tratt.net/laurie/blog/...
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.
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...
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.
I'll be speaking at London Systems on Jul 2nd. Attendance is free, and you get a lightning talk or two as a bonus!
Seeding systems meetups everywhere we go! The next London Systems meetup will be on July 2, and it'll feature a lightning talk by David de Rosier on RISC-V, and a presentation by @ltratt.bsky.social of King's College London on Retrofitting JIT Compilers into C Interpreters. Come one, come all!
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/...
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.
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...
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!
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.
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.
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.
New version of hk: now with a test suite! tratt.net/laurie/src/hk/
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.
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...
Dr Johnson on what made universities so effective (quote circa 1768).
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...
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.
x.com
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".
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"?
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!
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.
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...
Yesterday’s #STEM4Brit26 showcased the best of UK research, giving MPs a first-hand look at the innovation and talent driving our future. Congratulations to Joni Wildman, Tian Yuan, and Goronwy Tawy on receiving engineering awards from our judging panel for their exceptional early-career research.
----- "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
pizauth-1.0.11 is out, and ensures it keeps retrying in the face of transitory HTTP errors tratt.net/laurie/src/p...