Show newer
John Young boosted

If you look carefully just before Wallace answers the door to the police in the new film, you can see Cleggy’s hat and coat from Last Of The Summer Wine hanging up next to Gromit’s rainwear from The Wrong Trousers. A lovely nod to the late Peter Sallis, the original voice of Wallace.

John Young boosted

You can use this game to narrow down 30 monospaced typefaces to find your favorite font for coding. I somehow ended up with Courier Prime (🤔) and promptly sent myself to my room for the rest of the day. (I use Menlo in VSCode.) codingfont.com/

John Young boosted

On 25th December, a child was born who would change the world forever.

Happy birthday Isaac Newton.

John Young boosted

Love it when bookshops or libraries arrange their books appropriately...

@2tone4real.bsky.social‬ #bookshops #libraries #Musk

John Young boosted

I finally turned off GitHub Copilot yesterday. I’ve been using it for about a year on the ‘free for open-source maintainers’ tier. I was skeptical but didn’t want to dismiss it without a fair trial.

It has cost me more time than it has saved. It lets me type faster, which has been useful when writing tests where I’m testing a variety of permutations of an API to check error handling for all of the conditions.

I can recall three places where it has introduced bugs that took me more time to to debug than the total time saving:

The first was something that initially impressed me. I pasted the prose description of how to communicate with an Ethernet MAC into a comment and then wrote some method prototypes. It autocompleted the bodies. All very plausible looking. Only it managed to flip a bit in the MDIO read and write register commands. MDIO is basically a multiplexing system. You have two device registers exposed, one sets the command (read or write a specific internal register) and the other is the value. It got the read and write the wrong way around, so when I thought I was writing a value, I was actually reading. When I thought I was reading, I was actually seeing the value in the last register I thought I had written. It took two of us over a day to debug this. The fix was simple, but the bug was in the middle of correct-looking code. If I’d manually transcribed the command from the data sheet, I would not have got this wrong because I’d have triple checked it.

Another case it had inverted the condition in an if statement inside an error-handling path. The error handling was a rare case and was asymmetric. Hitting the if case when you wanted the else case was okay but the converse was not. Lots of debugging. I learned from this to read the generated code more carefully, but that increased cognitive load and eliminated most of the benefit. Typing code is not the bottleneck and if I have to think about what I want and then read carefully to check it really is what I want, I am slower.

Most recently, I was writing a simple binary search and insertion-deletion operations for a sorted array. I assumed that this was something that had hundreds of examples in the training data and so would be fine. It had all sorts of corner-case bugs. I eventually gave up fixing them and rewrote the code from scratch.

Last week I did some work on a remote machine where I hadn’t set up Copilot and I felt much more productive. Autocomplete was either correct or not present, so I was spending more time thinking about what to write. I don’t entirely trust this kind of subjective judgement, but it was a data point. Around the same time I wrote some code without clangd set up and that really hurt. It turns out I really rely on AST-aware completion to explore APIs. I had to look up more things in the documentation. Copilot was never good for this because it would just bullshit APIs, so something showing up in autocomplete didn’t mean it was real. This would be improved by using a feedback system to require autocomplete outputs to type check, but then they would take much longer to create (probably at least a 10x increase in LLM compute time) and wouldn’t complete fragments, so I don’t see a good path to being able to do this without tight coupling to the LSP server and possibly not even then.

Yesterday I was writing bits of the CHERIoT Programmers’ Guide and it kept autocompleting text in a different writing style, some of which was obviously plagiarised (when I’m describing precisely how to implement a specific, and not very common, lock type with a futex and the autocomplete is a paragraph of text with a lot of detail, I’m confident you don’t have more than one or two examples of that in the training set). It was distracting and annoying. I wrote much faster after turning it off.

So, after giving it a fair try, I have concluded that it is both a net decrease in productivity and probably an increase in legal liability.

Discussions I am not interested in having:

You are holding it wrong. Using Copilot with this magic config setting / prompt tweak makes it better. At its absolute best, it was a small productivity increase, if it needs more effort to use, that will be offset.
This other LLM is much better. I don’t care. The costs of the bullshitting far outweighed the benefits when it worked, to be better it would have to not bullshit, and that’s not something LLMs can do.
It’s great for boilerplate! No. APIs that require every user to write the same code are broken. Fix them, don’t fill the world with more code using them that will need fixing when the APIs change.
Don’t use LLMs for autocomplete, use them for dialogues about the code. Tried that. It’s worse than a rubber duck, which at least knows to stay silent when it doesn’t know what it’s talking about.

The one place Copilot was vaguely useful was hinting at missing abstractions (if it can autocomplete big chunks then my APIs required too much boilerplate and needed better abstractions). The place I thought it might be useful was spotting inconsistent API names and parameter orders but it was actually very bad at this (presumably because of the way it tokenises identifiers?). With a load of examples with consistent names, it would suggest things that didn't match the convention. After using three APIs that all passed the same parameters in the same order, it would suggest flipping the order for the fourth.

#GitHubCopilot #CHERIoT

John Young boosted

I propose we replace semantic versioning with pride versioning

John Young boosted

The dangers of “mirror life” 🦠🪩

Many molecules are chiral & come in left or right-handed versions 👈👉

All DNA & RNA in life on Earth uses right-handed molecules 🧬; all proteins use left-handed ones 🥚

In principle, you could make artificial bacteria using the opposite handness molecules 🧑‍🔬

But that would be a dangerously stupid thing to do, as those bacteria could cause havoc, evading the immune systems of humans, animals, & plants 🙀

theguardian.com/science/2024/d

John Young boosted

Possibly controversial opinion: I've always hated the phrase “science communicator”. We don’t have “history communicators”, there is always a more fundamental base expertise: science, performance, teaching, writing - and it devalues science teachers, who have done this job with huge skill for years.

John Young boosted
John Young boosted

#ClimateDiary An Eastbourne friend just told us about how he went to hear Simon Reeve at the Congress theatre on Friday. He showed us this image he had taken from Reeve’s talk: “this amount of ice melts every HOUR. You could hear a pin drop in the audience. When you see it like that it really brings it home.”

Well done Simon Reeve for talking about climate change in the Eastbourne Congress theatre (not a climate activist crowd, more the opposite) - and for using an image that works.

John Young boosted

Jocelyn Bell Burnell transformed astronomy #OTD in 1967 when she made the first observation of a pulsar.

She and advisor Antony Hewish initially dubbed the object LGM-1 (“Little Green Men”) for its regular signal, but soon identified it as a rotating, magnetized neutron star.

#astronomy #pulsars #neutronstars #JocelynBellBurnell

John Young boosted
John Young boosted
John Young boosted

"To all my writer friends that use MS Word - Microsoft has turned their Al bits and bots on to automatically go through anything done via Word. Here's how to turn it off. File > Options > Trust Center > Trust Center Settings > Privacy Options > Privacy Settings > Connected Experiences"

On the Mac I found it under Word/Excel/Etc > Preferences > Privacy, and near the bottom was the checkbox for "Turn on optional connected experiences" which of course was on by default.

#office365 #AI #microsoft

John Young boosted

This is an experiment. Please boost.

mastoddosnt.ddns.net/

Here's the idea: This post is going first to my followers, then, if they boost it, to other people. This domain has been registered for only this experiment. I should see in my web server's logs when mastodon instances start crawling the site for info. Then maybe also some curious humans.

I just want to play with my monitoring a bit :)

John Young boosted
John Young boosted

I have started working on an #emacs transient menu for the UV #python package manager.
github.com/pizzatorque/uv-menu
I am wondering what might be core features that are a must have and with which built in emacs modes I may integrate it with (e.g. project.el).

John Young boosted

Well, this sounds brilliant and it's coming tomorrow (Thursday 7th): a new podcast series called Sixteen Sunsets. It's all about the history of the space shuttle, and it's made by the fabulous team who made 13 Minutes to the Moon (f you haven't listened to that, do!).

sixteensunsets.com/

John Young boosted

For the #emacs nerds out there, I don't know if your workflow is anything like mine, but I typically have half a dozen buffers I am switching between, but when I type "C-x b" I blank out on the name of the buffer, meanwhile, opening the buffer list offers a wall of text with a lot of visual clutter.

Enter: "shortcuts-mode". This is a minor mode that adds a sticky top bar that gives you 1-keystroke access to the last 10 buffers you used. I can't live without it. Now on MELPA!

John Young boosted

Earlier this week, the Academy for the Mathematical Sciences published a report, "Quantifying the UK economic contribution of the mathematical sciences in 2023.” The report demonstrates the huge contributions that maths makes to the economy & wider society, including:
- £495 billion to the UK economy in 2023
- About 20% of the total UK gross value added
- Around 13% of the UK workforce (4.2 million people) are working in jobs that use math.

I was very pleased to see the publication of this report because, whilst I study maths for the love of curiosity driven research, it is important that the substantial contribution that we make to the economy and wider society are recognised and celebrated.

acadmathsci.org.uk/wp-content/

Show older
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.