HNHacker News
TopNewBestAskShowJobs

pwagland

1,078 karma · joined January 23, 2011

submissionscomments
pwagland··on Analysis: EVs are now nine times cheaper than petrol or diesel to drive in UK
Depends on the specific car, Tesla's are notoriously expensive to insure, but I believe that the Volkswagen ID series is much more reasonable.
pwagland··on Analysis: EVs are now nine times cheaper than petrol or diesel to drive in UK
This depends on country, and what you consider to be a comparable car.

If we compare, for example, the Tesla Model 3 (RWD) against the BMW 3 series (320i), then we get:

NL: Model 3 ~€36K vs 3 series ~€50K UK: Model 3 ~£37K vs 3 series ~£41K

In both countries the Model 3 is more expensive than that the 3 series.

Second hand the maths can change again, since EVs typically depreciate faster, due to battery degradation fears, and the fact that range on newer cars is always improving, but still, typically for a four year old version of the above, the Model 3 is still cheaper than the 3 series.

There is, of course, the discussion on whether it is fair to compare a model 3 with the 3 series, but it is often used, so I'll go with it.

If you want to compare cheaper cars, then you could compare a Ford Focus with an MG4 EV, and in the UK the EV wins, in NL, the Gasoline car wins, but in both cases, they are more price comparable.

pwagland··on iOS 27, iPadOS 27, and macOS 27
This, and then, if you notice, and backspace to remove the 'e', it doesn't put chess back into the search results, since it figures that everything that matches 'che' also matches 'ch', and so doesn't update it. Sometimes, if you add the 'e' again, it _will_ find chess, sometimes you need to type the 's', or even the final 's' before it gives you chess back again.

And sometimes, it finds what you want, but before you can select it, it decides that it has found something better, and places that in the place where you wanted to select, causing you to select the wrong thing. And then it thinks that because you selected this, it must be what you want, and starts to push it to the top…

Search is definitely frustrating.

pwagland··on Europe's summer drought is so extreme that desertification is a growing threat
It definitely has a following.

This is the challenge of extreme weather, it's either drought or floods, and wild swings from the one to the other. As a kid growing up in Australia, we heard many such stories, especially if the rains came on too suddenly, since then the ground can't absorb the water, and you get flash floods.

As if being a farmer isn't already tough enough.

pwagland··on Rural Village in Spain Is Welcoming Digital Nomads with Open Arms
This is the bit that I don't get though, if it is all about the "travel and lifestyle", then why would I want to end up in a rural village in Spain. My travel is more limited, and I'm hardly following the "digital nomad lifestyle".

Not saying it can't be fun, but you can live in a country town almost anywhere, if I just want a permanent base hours from any airport, and they all tend to be a lot cheaper than living in the "big smoke".

pwagland··on I stopped trusting USB-C cable labels and started testing them
Exactly this. Or charge my laptop via the phone cable, sure, it's slower, but it still works.
pwagland··on JEP 401: Value Objects (Preview) merged to OpenJDK master
That is exact problem.

Basically JEP401 guarantees that just adding "value" to the class won't change behaviour, which also means that you are not allowed to see object tearing, which requires atomic operations on the field.

Relaxing that would break safe publication rules, at least for Java.

pwagland··on JEP 401: Value Objects (Preview) merged to OpenJDK master
That is a nice piece piece of knowledge! We have an Integer cache in our product, and the only reason that it hangs around is that it caches 0..1024 instead of -127..128. By setting this value, we could simplify our code, ever so slightly.
pwagland··on The iPhone Upgrade Program is being replaced by Apple Upgrade
What is the problem at hand?

How to get customers to make poor financial decisions? How to sell more phones to people that can't really afford them?

Seriously, what is the problem that is being solved?

pwagland··on Did my old job only exist because of fraud?
They didn't blow the whistle though, not really.

Especially not when gp said that they expected the department head to brush it under the rug. If reporting things "up the chain of command" was really expected to root corruption out, and this fraud is 100% a form of corruption, then whistle blowing simply wouldn't be needed.

They covered their own ass, which is fine, in that later the head can't say they didn't know about it. But they didn't blow the whistle.

pwagland··on Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28
There are plenty of cases where flattening an object that takes 64bits would make sense.

The current code will help with `Integer[]`, `Char []`, etc, as well as combinations of `byte`, `char`, and `int`. Past that it doesn't really help much.

It would be fantastic if we could also flatten something like `Pair` or `Tuple`. However, even with compressed pointers, that is 64 bits, so that, plus the `null` bit, means it can't be flattened, which is a real shame. For various reasons, I have `List<Long>` in numerous places in my code, It would be great if that could also be flattened. However, since a Long is 64 bits, it _also_ can't be flattened. https://openjdk.org/jeps/8316779 would go a long way to to helping here, since then at least the null bit could be thrown away, which would allow more things to be flattened.

And then, if you want to go Wishlist land, something that would allow SSO (Small String Optimisation) would also be awesome, but that would require something akin to unions in Java, which we can _kind_ of do with sealed classes, but, since String is a final class, can't be retrofitted back into the language.

Does anyone know if Valhalla will flatten "simple" sealed classes, where every sealed class is small enough to be flattened? Since that would also be a powerful example to share.

pwagland··on Understanding the rationale behind a rule when trying to circumvent it
From the article:

> The documentation should open with something like this:

>> The callback function must perform its work quickly without blocking. If you need to do complex work or synchronize with other threads or processes, do the work asynchronously, such as by using System Worker Threads.

A change was made, but not the change that Raymond thinks would explain why the list is there anyway.

pwagland··on Understanding the rationale behind a rule when trying to circumvent it
And, since he isn't waiting on the reply, he is following the rule for the callback.
pwagland··on Asciline – real-time ASCII video rendering engine
The "practical" use case is to allow auto playing of videos for those users who disable it, from the "Strategic Vision & Core Capabilities" section:

> Bypassing Browser Constraints: Modern browsers aggressively throttle autoplay videos, and ad-blockers restrict traditional media frames. To the browser, ASCILINE is simply "JavaScript updating a canvas"—completely invisible to media restrictions.

pwagland··on The SLAX Scripting Language: An Alternate Syntax for XSLT
At the very least, it goes against the spirit of the specification, even if there is no explicit wording forbidding it.
pwagland··on Claude Opus 4.8
In many battlefield scenarios, there is more than one "somebody" on it. The "somebody" that you kill might not be the "somebody" that you intended to kill.

Depending on the how pelicans are created, it is entirely possible to indirectly kill "somebody" due to the externalised costs of global warming etc.

pwagland··on Cars collect a startling amount of data about you
That's the advantage of externalised costs. It doesn't matter how high they are, you don't have to pay them!

You see this in all sorts of places, for example, stealing an EV charging cable. To a thief, a $500 charging station is just $10 worth of copper waiting to be melted down. They don't care about the $490 deficit they left behind because that’s the victim's problem. Social media platforms, and apparently now car manufacturers, look through the exact same lens.

pwagland··on The Global Fertility Crisis Is Worse Than You Probably Think
This has always been true. We have talked about the costs of raising children forever.

What is different now, is twofold: 1. Bigger financial impact of having a child, both through less government support, and because more women are working. This combined means that to have a child, often, one of the parents needs to stop working, which severely impacts SoL. 2. Less social impact of not having a child. It is far more common to not have children than it used to be, and so it becomes much more of a choice as to whether to make that SoL sacrifice or not.

pwagland··on Show HN: Red Squares – GitHub outages as contributions
Or even both. In any kind of continuous deployment, you'd expect outages at the point of deployment, or shortly thereafter as the unintended consequences ripple.

Then the load during the working days makes those ripples larger and into outages.

pwagland··on OCR for construction documents does not work, we fixed it
PDF files can be signed, that is tamper resistance. Tamper resistance doesn't have to make any difference to the readability of the document.
pwagland··on Ask HN: What breaks first when your team grows from 10 to 50 people?
There’s a common scaling heuristic, related to Greiner’s growth model, that organizations need to fundamentally change how they operate as they grow. I recall numbers that every time your organization triples you need to change how you do things.

Part of this is communication overheads, and as op points out, the need, and ability, to specialise in a larger organisation.

pwagland··on ATMs didn’t kill bank teller jobs, but the iPhone did
Economics has this concept called revealed preferences[1]. These are preferences that people don't say that they want, but is what they actually use preferentially. An example of this the ordering machines that you normally now see in fast food places these days. People often say that they'd rather order by a cashier, but when given the choice of using one of these machines, or waiting a few minutes in line to get a cashier, they overwhelmingly choose for the automated option.

Tying this back to your first point, the revealed preference is that people would rather fill their own gas tank, rather than be forced to wait for someone to come and fill it for them.

Bagging groceries is different, however the revealed preference is that people would prefer the lower price/lower service supermarket, and those that need the help have to ask for it.

You are correct that everyone needs to earn a living, I think that most people would prefer that others can earn a living doing a somewhat meaningful job, in a somewhat safe manner.

The reason that much of this isn't automated has nothing to do with ensuring that jobs exist, but rather that the cost of automation is higher than the cost of labour. This is what op is talking about.

[1] https://en.wikipedia.org/wiki/Revealed_preference

pwagland··on My spicy take on vibe coding for PMs
This "receive heavy scrutiny" is part of the problem that is raised in the article though:

> You are friends with all the senior TLs, so can get them to review your code, but this is not a high-leverage use of time.

And then, tying back to ops comment, the engineer gets pinged for their bad metric, because of this additional review.

pwagland··on EU bans the destruction of unsold apparel, clothing, accessories and footwear
Even ignoring that "you" as an individual are not affected by this, there are plenty of things that "you" as an individual cannot do with your own property. For example, a lot of places in the US live under a HOA, and they often restrict what you can do with the frontage of your property. Many people live in places where trees have some form of protected status.
pwagland··on Apple's latest attempt to launch the new Siri runs into snags
You would be surprised I think. I know a bunch of people who use Siri, for all sorts of things. I personally regularly use the "push to activate" Siri for quickly setting up meetings et al.

And a *lot* of people want to use Siri while driving, when they can't access the phone, at least not legally.

pwagland··on The Little Bool of Doom (2025)
And, indeed, if you look at the author's writeup, you see exactly that the generated code satisifes `(rotate == true || rotate == false) == false`, since rotate is checked explicitly against 0 and 1. The essence of the difference is:

> When boolean is an enum, the compiler does exactly what I expected – the == false condition checks if the value is equal to 0, and the == true condition checks if the value is equal to 1.

> However, when boolean is actually _Bool, the == false check is transformed into != 1, and the == true check is transformed into != 0 – which makes perfect sense in the realm of boolean logic. But it also means that for a value of 255, hilarity ensures: since 255 is neither 0 nor 1, both conditions pass!

So a value of 255 also makes both checks fail for the enum, but because of the ordering of the code, it was expected to evaluate as != false.

Had the check: ``` if (sprtemp[frame].rotate == false) ```

been written as: ``` if (sprtemp[frame].rotate != true) ```

then it would work for the `bool` type, but not the `enum` type, at least in C23 mode. Assumedly the C++ mode (effectively) treated the boolean as an enum, or possibly as `false == 0`, `true != 0`.

pwagland··on Binary fuse filters: Fast and smaller than xor filters (2022)
This is mentioned on the first page of the paper:

> Building on theoretical work by Dietzfelbinger and Walzer [8], we propose a novel practical approach, the binary fuse filters. They are conceptually similar to xor filters, and they rely on nearly the same simple code.

pwagland··on Doctors in Brazil using tilapia fish skin to treat burn victims (2017)
For those that don't know why, and I didn't, the reason for this is that Tilapia are "mouth brooders", that is they keep the fertilised eggs in their mouth. So throwing away a dead female can cause these eggs to hatch, and reinfect the waters with new Tilapia.
pwagland··on The microstructure of wealth transfer in prediction markets
An interesting article, however my question is technical.

In the "The Mechanism of Extraction" section, how is that image made? It is nicely laid out, and has a nice "hand-drawn" feel. This is a good format for many technical drawings, but I have not found any tools that could create this.

pwagland··on Claude Cowork runs Linux VM via Apple virtualization framework
I assume that you are talking about the [devcontainers LCI](https://github.com/devcontainers/cli) when you say "a CLI"?
Page 1 of 9Next →