Trailer
Over the last couple of weeks I've built a trailer for the tractor.
This is jes's blog
Over the last couple of weeks I've built a trailer for the tractor.
I have a small solar farm and the panels have got visibly dusty. Is cleaning them worthwhile? How much difference does it make? Let's find out.
I've been working on optimising revenue on my Countdown website the last few days.
So there's this whole thing now about how under-16s aren't meant to be allowed on social media, and this is supposed to be enforced through technical means using Zero-Knowledge Proofs, or something. Here is my proposal.
We are soon (?) going to have autonomous or semi-autonomous humanoid robots that are actually good enough to use.
I am driven to write this post because of repeated disappointing experiences where coding agents seemingly don't know how to make hyperlinks. It occurred to me that this may just be a sign of the times, and maybe many younger human developers don't know how to make hyperlinks either.
This week I have been looking inside public Docker images, with the aim of finding API keys etc. inside, and then reporting them and claiming bug bounties. It has been a partial success, in the sense that I found loads of private credentials inside public Docker images, and a partial failure, in the sense that I have not (yet?) received any bug bounties.
We surveyed the stealth browser industry by using our bot detection framework to analyse 11 of the top hosted browser services.
Most threat intelligence bots are easy to fingerprint. And trying to be stealthy often makes it worse because imperfect anti-detection methods have extra fingerprint surface area of their own. We run an instrumented honeypot site that collects data on what these bots do, and we've just released an Instant Bot Test so you can see whether we flag your bot without even having to talk to us first.
I tried out OpenClaw the other day. It is good but very expensive to run, so I made a tiny alternative that can use a Cursor subscription instead.
"Absence of evidence is not evidence of absence", they say. They're wrong. In this post we'll work through a scenario and show that absence of evidence is in fact evidence of absence. You can see Yudkowsky for more on this topic.
The electric tractor is finished! I have been working on this on and off for about 6 months. It is a toy for children (and me) to drive around the garden.
I am toying with the idea of building a car. Check out Cyclekarts, they are a small and simple go-kart-like vehicle styled like ~1920s sports cars. Most importantly, check out Geoff May's "Maybug", which is road legal!
I like to go to museums. The typical business model for a museum is that it operates as a charity, which means if the customers pay with "Gift Aid" then the museum gets 25% on top of their payment, paid by the state.
Up until 2 months ago, I hadn't thought much about anti-phishing since I left my Netcraft job in 2017. Then Martin and I did a short consulting gig for another anti-phishing company, and I've been consumed by anti-phishing ever since.
Around May or June last year I finally paid off my student loan. I called up the Student Loans Company, and either made a card payment over the phone, or else made a bank transfer of the amount they instructed me to pay, I don't recall which. And I didn't think any more of it.
Today we're soft-launching AI Test User. It's a robot that uses Firefox like a human to test your website and find bugs all by itself. If you have a site you'd like to test, submit it here, no signup required.
This is a story about Imagebin. Imagebin is the longest-lived software project that I still maintain. I'm the only user. I use it to host images, mainly to include in my blog, sometimes for sharing in other places. Imagebin's oldest changelog entry is dated May 2010, but I know it had already existed for about a year before I had the idea of keeping a changelog.
A "web application" is a system. It has a backend, maybe a database, user accounts, cookie consent, analytics. Probably the frontend uses some sort of build system or web packer, maybe TypeScript, almost certainly has a multi-hundred-megabyte node_modules directory. But not everything has to be like this. You don't need all this stuff. I think there is an easy trap to fall into where you go down…
When software uses some external dependency, like an HTTP service, it sometimes has to handle failures. Sometimes people choose exponential backoff: after each failure, you wait longer before retrying, for example by doubling the delay each time. In this post I'm going to argue that exponential backoff is a bad idea.
We recently moved house and found that we have acquired a lot of tins of paint. I have worked out why.
I live here too.
This post is a quick brain dump of the things I'm currently thinking about for Isoform. I think the time is almost right for the world to have F-Rep CAD.
I've got into signed distance functions recently and am interested in their application to CAD software.
Hands up, how many times has this happened to you? There you are, minding your own business, designing some sick new parts for your 3d-printed hoverbike, you go to make a PolarPattern of 3 or 4 sweet ridges just to really finish it off and BOOM your hand slips and you accidentally ask for 3 million. FreeCAD hangs for the rest of the week and you feel your will to live slipping away. If only you…
AppImage packages an application and its dependencies into a single file. You can then just execute that single file, and it will extract everything into a temporary directory and hook everything up so that the application works. Very easy to use, very convenient. Unfortunately, it's not so straightforward to make an AppImage.
This evening I made a Timeline of Discovery, listing historical inventions, discoveries, events, etc. that I find personally interesting.
I made a Clock Gear Train Calculator this evening.
This post is a transcription, plus some commentary, of the Board of Longitude's 1767 document "The Principles of Mr. Harrison's Time-keeper", from scans on the University of Cambridge Digital Library.
I made an air engine with a diaphragm piston and a rotary valve. It was inspired by a video from Robert Murray-Smith, but improves on the design.
I'm going to present a vision for the future of programming in which programmers don't work with source code any more. The idea is that prompts will be to source code as source code is to binaries.
Back in the Stone Age, humanity was just scraping by with not much more than our bare hands. Working with AI has showed me that, all this time: we've just been scraping by with our bare minds. If computers were meant to be bicycles for the mind, then AI is jetpacks for the mind.
The idea is: if you have some resource which is partially used, and you increase the total capacity, how much does your free capacity grow in relation to your increase in total capacity? ChatGPT couldn't give me a name for this idea, so I'm calling it the free space equation.
I've been working on a new online encyclopedia project, and it is almost ready to rival Wikipedia. It's called Encyclopedia Mechanica. Pages are created on-demand by an LLM in response to user queries, so in a way we actually have more pages than Wikipedia already, albeit with more errors.
Today I made a Colonel Blotto game where you play against GPT-4o, and after each round you can chat with GPT-4o to get commentary/analysis/coaching. Play with it at blotto.incoherency.co.uk until I run out of OpenAI credit.
Browsing AutoTrader I found that secondhand electric cars are now cheap enough to be a reasonable option. I took a punt on a 10-year-old Nissan Leaf, and drove it to work today for the first time. This is my Nissan Leaf story.
Have you noticed that ChatGPT sometimes writes out Python code and somehow executes it? How does that work? What kind of environment is it using? Can we co-opt it for our own ends? Let's find out!
Today I had my first microlighting lesson with Brad Wagenhauser of Great Western Airsports. I booked it about 6 weeks ago, but it has been cancelled 7 times due to the weather. I was beginning to think it would never happen, but today was the day.
Composite kitchen worktop material is a good choice for a CNC machine because it is very heavy and very flat. It is a bad choice because it is quite soft. But mainly it is a very good choice because I already had the material and it is therefore free.
You can get surprisingly far, before it bites you, with only a fuzzy and incorrect understanding of how you should read from a TCP socket. I see this often in (failing) Protohackers solutions. Once you are over the initial hurdle of reading enough documentation to actually get a TCP session connected, there are 2 key things you need to understand:
In this post I'm going to make the case that IF (big if) the universe can be simulated, then actually running the simulation has no effect on the contents of the universe. Either the universe can be simulated, in which case we exist within an abstract mathematical structure independent of any actual simulation, or the universe can not be simulated, in which case we trivially do not live inside a…
My quest at the moment is to try to make a mechanical watch. Specifically I want to make the movement. I'm not interested in buying a bunch of parts and assembling a watch. I'm also not interested in cloning a standard movement, I have my own design in mind.
I recently got to see John Harrison's sea clocks at the Royal Observatory at Greenwich. I recommend visiting if you get the chance. This post is about some of the interesting things I observed.
Good news: I have worked out why my incongruous technologies are incongruous: it's because of software!
Earlier this year Charlie challenged me to make a Boggle board that always leaves the letters upright, and this week I have succeeded.
In this post I'm going to explain what a Douzieme gauge is, show you how I made one myself, and propose some alternative designs for higher precision.
I enjoyed a quick visit to the Science Museum at the weekend, and here are a few of the interesting things I saw.
I work in an office occasionally, and there is a particular point on my commute where I always check the clock so I can tell how I'm doing for time. If it's 8.30 I'm likely to be on time, before 8.30 I'm doing well, after that I might be late. But why stop at checking my delta time at a single waypoint? Why not store a GPS trace of a reference commute and continuously compute the delta time, like…
I have invented a new magic trick. It involves a very thin wooden box with 5 locations for coins inside, each labelled with one of the 5 bodily senses. A spectator places a coin inside, without telling the magician where it is. The magician then makes a show of listening to the box, sniffing the box, etc., and successfully determines where the coin was placed.
I spent most of today writing dnstweak, a program that temporarily inserts itself as the local DNS resolver (by writing to /etc/resolv.conf) and spoofs responses to selected DNS requests.