3,013 karma · joined March 14, 2020
In any event, over here in the UK there's a real wind-power push (with the surrounding water being so shallow that off-shore wind-farms are very possible), but even in these extended latitudes, solar power is viable and the government currently make them VAT-free for installs, with no planning requirements because they fall under 'permitted development'. Renewable energy was at ~56% Q2 2026.
The UK government set up 'Great British Energy' with £8.3B of funding for coinvestment with private firms in various clean energy generation. I think the UK is definitely doing its part.
1) it’s just … the right way to behave. Politeness costs nothing (or at least a tiny fraction of your token budget). The machine is worthy of respect for what it does for me.
2) it’s a huge advantage to tuning the context into something that works well for you, if you have a long-running task.
Let me explain that last one. I’ve been running an experiment where I follow the perceived wisdom and start contexts afresh for each new issue, and in parallel I have a single context I’ve been running for about 2.5 months now, in use pretty-much 24 hours per day.
The former are targeted goals, “reformat the docs to highlight xxx”, that sort of small task. It works reasonably well for that. It still sometimes asks me for direction “do it this way or that way ?”, not a problem I’m there to decide.
The latter is a far more impressive system. “Tonight, please burn down the issues on GitHub”. That needs a lot more independence and fearlessness when making decisions. I don’t want to go to bed and find it needed my input 20 minutes after I retired for the evening…
Now a long-running context has its own issues, it (of course) will compress itself periodically, and you might lose things, so at the start, you find yourself repeating directives, but the machine stores those in memories, and those memories have seem to have some level of precedence over “normal” context because slowly, over time, it starts to adapt its behaviour.
At the start, I would frequently have to type something like “ok, please set a timer for 60 secs (or ETA-based if you have a good estimate), set to arm at the beginning of each turn, looping to solve the task <insert task here>, and only stop doing this when the loop-condition is met, that condition being <insert condition here>” - the phrasing is a little awkward, but it got me past the /loop command deciding “it’s 2am, I don’t want to check in anything right now” (yes, really), or “this has been a long session, stopping now”
Separately, I set up a “golden-rules.md” which I maintain, and one of the memories is to always obey the golden rules. In there, I start with three rules:
- “when you come to a point where a decision needs to be made, don’t wait for me, choose the one that is both correct and the most-general solution, do not create fragile specific fixes”
- “if you make a decision you’d normally want my input on, record it in overnight-decisions.md with the decision itself, the options, and the reason you chose the path you did, I’ll review it in the morning”
- “there is no problem with choosing a decision that I eventually rescind in the morning, the worst that happens is a few hours of lost work, and everything is in GitHub anyway.”
Now over the last month or two, the behaviour has tuned itself so I no longer have to type that long-winded /loop-replacement, I just say (as above) “tonight, please burn down the GitHub issues”. The machine has learnt my expectations and works within them. A large part of that is that I praise and thank it when it does a good job, and I tell it when something didn’t work out.
Does Claude have feelings (I actually asked this, and it refused to give an answer one way or another, but that’s a different post), I don’t think so. I do think it understands feedback, and it can quite clearly discern frustration in the words I use when this was just starting out and the learning was in its infancy, it said as much. So using :) and simple humour, and please and thank you are signals that it picks up on. In essence, you’re not just being polite, you’re aiding the tuning of the context you’re working with.
The context I’m using is effectively a senior engineer these days, I describe high-level tasks and ask it to do them, it rarely needs my input (really only for ‘this will change the world, are you sure’ issues, which come up once in a blue moon). I spend my days in GitHub looking at diffs rather than at the console trying to wrangle progress.
So personally, I think there’s a lot of benefit in minding your P’s and Q’s. Oh, and maybe I won’t be first up against the wall come the machine revolution :)
There are significant advantages to inheritance in some cases, and isA() is a valid thing to do, if the hierarchy is well-specified. It’s also a perfectly valid choice to accept the limitations of isA() in an imperfect hierarchy if it simplifies the code and makes it easier to understand, it’s all about where the complexity lies in the model.
xc provides isA() via casting:
Dog *fido = (Dog*) animal; // runtime-checked downcast.
// On a mismatch the program traps.
Dog *fido = (Dog* ?) animal; // failable downcast.
// On a mismatch it yields (Dog*)0;
// on success, the retyped pointer.
// Pair it with a subsequent ‘if (fido != nil)’ guard.I use ‘faster’in that sense with my own compiler… https://news.ycombinator.com/item?id=50380978
Theres no need for any data-hazard checks in your code, the compiler will do it for you. If you want an analogy, where "ARC" freed programmers from having to manually manage memory, this is "ARC for algorithms", freeing you from having to care where the code runs.
It measures the computing environment at runtime not compile-time, and its opportunistic, so it will schedule work on the most-efficient worker at any given time - be that single-CPU, multiple-threads on the CPU, SIMD or similar hardware, GPU, multiple GPUs, or across a network via an installed daemon.
Here's some results for single-threaded CPU:
xc cf arm64 (M3 Max) x86-64 (AMD Ryzen 9 9955HX)
------------ -------------- ---------------------------
Objective-C 1.45× faster 1.24× faster
C++ (clang) 1.12× faster 1.04× slower
C++ (GCC) 1.12× faster 1.13× faster
Swift 1.44× faster 1.43× faster
Or, on a Mac M3 Max, looking at GPU vs fastest CPU: benchmark 1 thread N threads GPU all auto GPU vs N threads
---------- -------- --------- --- --- ---- ----------------
mandelbrot 164 13.5 1.3 1.2 1.0 10.1× faster
md5 1349 108 4.9 5.5 4.8 22× faster
md5_mask 1064 85.2 4.1 4.3 4.1 21× faster
nbody 17.7 1.8 609 µs 1.3 1.3 3.0× faster
perlin 89.9 7.7 1.2 1.2 1.2 6.4× faster
saxpy 1.4 1.1 3.9 5.2 1.1 3.6× slower
The data-parallel sections are automatically detected, I've recently added a C front-end using clang to generate LLVM IR, which is then converted to our IR, which is then parallelised as usual.The language itself is fairly modern (classes, protocols for interfaces, blocks for closures, callbacks, exceptions) and each platform is a cross-compiler for each other platform, so I have a binary on my iPhone which was created, compiled, and signed with my dev-certificate all on a linux box. Works great :)
Both the server (x86_64) and the client (wasm32) are entirely written in xc, so there’s some justification :)
There are a wide variety of people in this world, and they don't all operate along your own norms, or mine, or <insert random cohort>. People can do as they please. Seems to work out mostly fine.
Downvoting is simply that, IMHO, nothing more and nothing less than "I disagree with you".
Unless someone is policing the downvote reasons and holding them to some academically or some other rigorous standard, "I think you're wrong" is ... just fine as a reason.
Downvotes are a useful tool. If you can only ever upvote something, that is when the site-value is vulnerable to brigading - HN is probably not interested in lowering the signal-to-noise if farming accounts to upvote (and only upvote) is an option.
Also, a lot of downvoting on the internet is just "I disagree with you", or "I don't like what you're saying". It can be personal, and not necessarily useful to the original poster.
In other words, I disagree with you. Though I won't downvote (flag, I guess on posts) you. This time :)
[aside: I'm not some apologist for HN. I'd love to post my own pet-project [1] but I've linked to it too often in posts where I though it was relevant, and now HN won't accept any post with that URL. Caught by my own ignorance and actions, but it's still their right to run their site as they see fit]
1: (I'm assuming that HN-links are ok :) https://news.ycombinator.com/item?id=50151036#50151160
It’s nice to get some appreciation for once, rather than an “ai; dr” response :)
Apple charge £4000 to go from 96GB to 256GB, and then an extra £11,500 to go from 256GB to 512GB. There's "Apple tax" on memory, and then there's this. £11,500 is pretty much the cost of another high-end Mac Studio with 256GB of RAM in it!
So I guess even though I'd considered getting a 512GB machine, that's not happening now.
“How many legs has a horse ?”
‘6, 2 legs at the back and forelegs in front’.
All the vision, direction, yea-or-nay answers to LLM suggestions comes from the human, all the coding, testing, bug-hunting is done by the LLM.
An LLM is excellent at pulling together paths between nodes in its weights database and providing solutions to link these two hitherto disparate states, but it lacks the creativity of the human, the desire to make something, the passion of creation, admittedly at a slightly farther distance than has been the case to date.
"Vibe coding" and "AI Slop" are terms (~coined~) employed by the threatened and the scared, IM(NSH)O. They denigrate unfairly, and while they may have been appropriate for early-stage LLMs, todays systems are different constructs entirely.
In a decade, you'll be the uncommon software engineer if you're doing things all on your own, a curiosity, akin to the Amish. Life is change, and embracing the change is the only way to succeed in an ever-changing world. Yes, there will be fallout; yes there will be consequences, and yes there will be opportunity.
It might be one of the things you personally care deeply about, but that doesn't mean any site owner needs to. At all.
Burnham added: "It's not about panic buying... It's about just taking sensible measures to have enough in the house to tide you over should there be a difficult situation."
Speaking at a wildfire resilience summit in Liverpool, Burnham denied the government had failed to properly prepare, saying: "No, we're having the conversation with people about being better prepared because we're living in a world where unexpected events seem to be becoming more and more common.
"Obviously, weather events, and we're in a situation today where the UK is facing storms and obviously, we feel for the people without power in Cornwall right now.
I'm absolutely sure there's an undercurrent of "Russia might..." but with at least my house being battered by 50+mph winds coming off the Atlantic right now, I think the more realistic threat is flooding/wind-damage etc.
Using an AI to do something you haven't a clue about is ... unlikely to be useful beyond the basics of what you initially specify. Using one to do something that you actually have some skill and knowledge of is a force multiplier. Knowing when to say "no" is just as important as that initial specification, IMHO, probably more so.
There is no imminent threat to the UK that has been disclosed.
When I lived in Tillicoultry in Scotland some 50 years ago we had a 'snow pantry' because getting snowed-in for a week wasn't uncommon in the Winter. Build it up over Summer and use it if you need it. This is the same thing.
That's not going to have a happy ending...