pianist, organist, computer programmer, harpsichord student

Joined January 2025
248 Photos and videos
Pinned Tweet
Replying to @barrowfaustus
We type theory enjoyers have partly earned this reputation through the history of type theory people insisting that computers be bent to fit our toy models even when the impedance mismatch is severe, whether it's obsessing too far over immutability, lazy evaluation, overusing cache-inefficient data structures or patterns that require intrusive garbage collection, etc. I want to use formalisms that meet the computer in the middle: that allow me to reason about and prove statements about the ways that the computers we have can be put to their most effective use while preventing chaotic and intractable behaviour. Not bend the computer to an abstract system whose features that cannot be implemented without crippling its capabilities.
3
2
14
489
“Morning Sir we’ve had reports you’ve been scrolling X without signing in with your Digital ID Sir it’s not mandatory to Sir you are within Your Rights not to Sir just it’s going to be difficult to find gainful employment if you don’t sign in Sir it’s to Protect Our Kids see Sir”
JUST IN: UK Government clarifies adults will still be able to use social media by verifying their identities with digital IDs, facial recognition, passports and credit cards.
22
165
1,626
42,332
"Always profile before optimising" is such a dumb Reddit piece of programming advice that sadly LLMs have memorised too. If speed is remotely relevant to your program and doing the right thing is a couple of extra lines and not complicated, you should do the right thing.
1
20
Will it be material? Who knows, but when you come to profile, at least you haven't committed thousands of small indiscretions throughout the codebase. Classic example of cargo-culting an argument meant for the real case of using more sophisticated data structures or bookkeeping.
15
barafostus dreame retweeted
New post: on why you should not use AI to write.
22
30
322
40,713
According to Labour, 16/17 year olds are independent adults who should have the right to vote but also little babies who need a comprehensive surveillance state to enforce bedtime Actually incoherent ideology
22
Cooking up some float64 abstract interpretation out of a conversation with a colleague about all the implicit assumptions made about valid double values made throughout the codebase. (Choosing to ignore here 1) overflow 2) infs of opposite signs yielding NaN.)
1
1
86
Coming up with the tightest representation possible for each function is pretty fun. For example, getting the non-negative part of a non-positive or negative float is guaranteed to be zero (if non-NaN) and hence you can type the result as non-infinite and even integral.
57
barafostus dreame retweeted
We type theory enjoyers have partly earned this reputation through the history of type theory people insisting that computers be bent to fit our toy models even when the impedance mismatch is severe, whether it's obsessing too far over immutability, lazy evaluation, overusing cache-inefficient data structures or patterns that require intrusive garbage collection, etc. I want to use formalisms that meet the computer in the middle: that allow me to reason about and prove statements about the ways that the computers we have can be put to their most effective use while preventing chaotic and intractable behaviour. Not bend the computer to an abstract system whose features that cannot be implemented without crippling its capabilities.
3
2
14
489
It's a shame how often people consider abstract programming paradigms requiring advanced type system features as at odds with systems programming. I routinely criticise Rust from both directions: it is not low-level enough *and* its type system is not sophisticated enough.
8
2
64
4,769
We type theory enjoyers have partly earned this reputation through the history of type theory people insisting that computers be bent to fit our toy models even when the impedance mismatch is severe, whether it's obsessing too far over immutability, lazy evaluation, overusing cache-inefficient data structures or patterns that require intrusive garbage collection, etc. I want to use formalisms that meet the computer in the middle: that allow me to reason about and prove statements about the ways that the computers we have can be put to their most effective use while preventing chaotic and intractable behaviour. Not bend the computer to an abstract system whose features that cannot be implemented without crippling its capabilities.
3
2
14
489
barafostus dreame retweeted
Jun 9
One of the things that seems so stupid and infantilizing about modern culture is that you can’t just talk to people like an adult now and reason through things and make the case for this or that and encounter people with agency to do anything about it. There’s nobody at the company to whom you can give a firm handshake and the sales pitch. In its place as a process. You follow the process. And then a decision is made in the background. Everything is like applying to college. So for example I ordered a water heater and I guess I didn’t notice that there was a separate option to have the guys carry it in for you. I got one of these fancy new heat pump water heaters and it’s much heavier than a normal water heater, which is already pretty bulky and heavy, and I can’t get it downstairs by myself. So I called to see if we can’t get the guys back out here to get it down into the basement. But of course there’s no making that happen. There’s no amount of money I could offer, no sweet talking. You can’t get anybody on the phone who has any agency to make this happen. There’s a process. And what I want is not part of the process. So instead what we have to do is I’m returning the original water heater and I ordered a new one and this time I checked the box to have the guys carry it into the basement. So later today, some people will come in a truck to take the original, perfectly fine water heater away. And then later different people will deliver a different water heater and carry it into my basement, because this time I checked the box that says they’re allowed to do that. This is all completely absurd. I am capable of understanding that everything is optimized for the more common case and that this is probably more efficient at scale. I can understand the benefits of that just fine. It’s just that the society it creates when things go wrong is one that feels very stupid and unsatisfying to normal people. And that’s a downside that actually does need to be registered.
146
232
4,123
232,481
I like Rust but it is just maddening how sometimes doing basic stuff requires threading the needle between insane amounts of bureaucracy and intractable 9-year-old GitHub issues. This time it's trying to fill an uninitialised byte buffer. How hard can it be?
7
1
220
25,921
which all bit patterns are valid! This latter case was unclear & semantics were debated for years until eventually retconned as UB). There is a 6-year-old RFC to add new traits to the stdlib to handle partially-initialised buffers to fix this problem, which is still not stable.
2
17
2,598
There are real reasons this isn't trivial (for example, uninitialised memory may be different in different contexts, so is not equivalent in optimisation to some fixed unknown value) but one comes away just wondering whether this all has to be so complex and intractable.
15
2,321
Found where TfL get all their tube advert poems from
2
218
The poem Scriabin wrote to accompany his fourth piano sonata:
2
66
barafostus dreame retweeted
There is no demand for huge quantities of slop. More commits / LOC / PRs does not equate to more valuable productivity. Users want fewer, but better, programs.
Massive output uptick due to agentic AI. Complete flat adoption.
35
57
842
26,864
barafostus dreame retweeted
this FAQ entry from the website for the open-source robot vacuum software Valetudo is a beautiful and refreshing thing to see in our degenerate era: valetudo.cloud/pages/faq/#wh…
4
6
39
2,215