HNHacker News
TopNewBestAskShowJobs

Arch-TK

3,093 karma · joined October 10, 2016

Any sufficiently advanced type system is indistinguishable from an esolang.

---

C++ can remain irrational longer than you can remain sane.

---

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.

- C. A. R. Hoare (RIP)

submissionscomments
Arch-TK··on Coding assistants are solving the wrong problem
"Experienced developers were 19% slower when using AI coding assistants—yet believed they were faster (METR, 2025)"

Anecdotally I see this _all the time_...

Arch-TK··on US has investigated claims WhatsApp chats aren't private
Obscurity is a delay tactic which raises the time cost associated with an attack. It is true that obscurity is not a security feature, but it is also true that increasing the time cost associated with attacking you is a form of deterrant from attempts. If you are not at the same time also secure in the conventional sense then it is only buying you time until someone puts in the effort to figure out what you are doing and own you. And you better have a plan for when that time comes. But everyone needs time, because bugs happen, and you need that time to fix them before they are exploited.

The difference between obscurity and a secret (password, key, etc) is the difference between less then a year to figure it out and a year or more to figure it out.

There is a surprising amount of software out there with obscurity preventing some kind of "abuse" and in my experience these features are not that strong, but it takes someone like me hours to reverse engineer these things, and in many cases I am the first person to do that after years of nobody else bothering.

Arch-TK··on How to choose colors for your CLI applications (2023)
Configurable within the application... at runtime.

I want to be able to switch existing terminals with existing applications between themes.

Arch-TK··on How to choose colors for your CLI applications (2023)
Most things work fine with black on white terminals.

If your software does something dumb when my theme switches to black on white during the day then I am just going to avoid using it...

Arch-TK··on Amazon braces for another major round of layoffs, 14,000 jobs at risk
Not everywhere is in America you know... And non-H1B workers are probably precisely the kinds of workers that should be the ones rocking the boat.
Arch-TK··on The insecure evangelism of LLM maximalists
Yes if I went hard on something greenfield I'm sure I'll be knee deep in tech debt in less than a day.

That being said, given the quality of code these things produce, I just don't see that ever stopping being the case. These things require a lot of supervision and at some point you are spending more time asking for revisions than just writing it yourself.

There's a world of difference between an MPV which, in the right domain, you can get done much faster now, and a finished product.

Arch-TK··on The insecure evangelism of LLM maximalists
"actually good enough to meet the goals?"

There's "okay for now" and then there's "this is so crap that if we set our bar this low we'll be knee deep in tech debt in a month".

A lot of LLM output in the specific areas _I_ work in is firmly in that latter category and many times just doesn't work.

Arch-TK··on Perfectly Replicating Coca Cola [video]
Yes, you're right. My mistake.
Arch-TK··on Perfectly Replicating Coca Cola [video]
Lemonade (made from real sugar, water and lemons and nothing else) can also eat the corrosion off of battery terminals...
Arch-TK··on Perfectly Replicating Coca Cola [video]
The video explains how the gas based mass spectrometers he had (indirect) access to don't normally pick up nonvolatile compounds like tannins. It was a big breakthrough that since he didn't have cocoa leaf extract, and he basically nailed everything else, he couldn't really understand what he was missing until he realised the extract would likely contain tannins.

So there may be other nonvolatile compounds which nevertheless impact the flavour profile. While a lot of flavour is in your nose, not all of it is...

Arch-TK··on “Stop Designing Languages. Write Libraries Instead” (2016)
The problem is really that sometimes making something feel ergonomic in a language can be a pain.

Although that in itself might be a hint to change language and write your library there, instead of inventing a new one.

Arch-TK··on Phoenix: A modern X server written from scratch in Zig
> Neither have keybindings that make any sense.

I can agree on Windows, but there is no such thing as "keybindings that don't make sense" on a proper Linux WM given that you can literally make up any keybindings you want. I mean this strictly from a window management perspective, yes applications running in those windows have often got their own idea of what good UX is, and this clashes. That's just a trade-off of Linux and to a lesser extent Windows not being complete walled gardens.

> that have never used Mac OSX

I have _used_ Mac OSX. It was and continues to be a confusing experience every time. I'm not saying that this would be the case if I bothered to learn it, but in all the times I have used it, I have failed to see any feature which would make me want to switch to it over i3 or which I feel like is missing in i3. Really it doesn't seem like there is any way of making it act remotely close to i3. Tiling as an option on top of whatever Mac OSX has is just as appealing to me as tiling on top of what Windows has.

> Unless you want to copy and paste, or have consistent key bindings cross applications, or take screenshots. Sure

I've never had copy and paste fail on Linux. The only issues I've had is with more modern applications not implementing the selection properly which is a feature you don't have on windows in the first place. No idea about Macs.

Screenshots have always and will continue to work (the way I want them to) because I can, as mentioned, bind any key to any action.

Arch-TK··on HSBC blocks its app due to F-Droid-installed Bitwarden
There is actually mobile banking for these cases. Which at least for HSBC requires your account details, a (Up to? I don't know the minimum) 10 digit (numeric) pin and you have to say "My Voice is My Password" which sounds like complete theatre.
Arch-TK··on HSBC blocks its app due to F-Droid-installed Bitwarden
In the UK, yes, banks are on the hook if _you_ get scammed. It seems the bar for them to prove that you were at fault is too high so in reality the banks just make the decision on what you can buy for you.

A good few years ago now (when it was possible to get something in good condition for such a measly sum) I was buying a car from a private individual. The transaction was in cash. You can't take £1500 out from an ATM, unless you spread it over multiple days, and probably doing that would also get you flagged. So I went to my bank (also HSBC coincidentally) and they required me to tell them what I was buying with that money.

Now I could have lied, of course. But they could also have just told me that I can't take cash out if they didn't believe me.

If you look around, there are news stories of people being denied access to their own money because the bank decided it was too risky.

You can get kicked out of a bank for being too risky. And there's not even any legal requirement in the UK for a bank to offer you an account. Or well, there _is_ but like with all UK regulations which protect the individual, it's full of caveats. You are entitled to a Basic Bank Account (BBA) if you can't get any other account except if you can't verify your identity/residency, or you have a history of financial misbehaviour, or if you are too closely associated with terrorism. So I guess homeless people or pro-palestine protesters aren't allowed bank accounts.

Arch-TK··on Phoenix: A modern X server written from scratch in Zig
I've definitely experienced parts of the windows UI crash. explorer.exe isnt just a file browser, half of the UI runs on top of it.
Arch-TK··on Phoenix: A modern X server written from scratch in Zig
I don't use a Mac, but have you ever used Windows?

I mean, maybe you have, but if you are not fussy then at worst MacOS is quirky and Windows and Linux are identical and merely have different icons.

If you pay a little bit of attention you will notice that on linux things seem more flexible and intuitive.

If you are very finnicky, there is nothing that comes close to X11 window managers when it comes to window management flexibility, innovation and power.

Arch-TK··on Some Epstein file redactions are being undone
There is a line, it is fuzzy, but if all you did was find something which was there for anyone to find, I would place that firmly on the not hacking side. If it was rot 13 I would put that marginally closer to hacking than this.
Arch-TK··on Some Epstein file redactions are being undone
It sets a bad precedent to call things like this hacks.

Firstly, calling this redaction implies that the data is missing, and calling what was done "unredacting" is akin to saying someone "decrypted" a cryptographic hash function.

Nobody unredacted anything here, they merely discovered that it hadn't been redacted, and simply looked like it was redacted.

Calling this a hack places responsibility on the people who discovered the information, rather than on the people were put in charge of handling the redaction and screwed it up.

Arch-TK··on Problems with D-Bus on the Linux desktop
Putting aside the post and whether it's correct or not.

Reinvent what wheel exactly?

D-Bus can't read your mind (yet) and as such it can't generate an API for you, you still need to design a protocol, it's just that it's on top of D-Bus with certain quirks and restrictions.

Doing the same over UDS in 2025 isn't any more work and doesn't have any negative impact on end users. There's nothing unique about D-Bus from a usability standpoint that can't be done with a service listening over UDS.

This is equivalent to saying that you're reinventing the wheel by not using HTTP as a transport.

> Do you hate a{sv}? If you propose JSON as alternative, you are going to make me laugh.

Maybe you should look at Varlink. The systemd backed D-Bus alternative. It uses JSON.

Regarding secrets management:

My password manager's protocol is handled using exec and command line arguments. Arbitrary applications can ask for passwords, but they won't get them. They won't read them from disk.

The design of the gnome keyring isn't great, but I actually don't think the protocol matters much in this case.

Arch-TK··on Roomba maker goes bankrupt, Chinese owner emerges
Let's put aside whether you can trust apple for a moment.

Where the hardware comes from is much less of a risk than the fact than where the locked down firmware and software comes from.

Yes the west's over-dependence on Chinese hardware is a liability, but what's easier? Compromising hardware or compromising software? If you don't know, I'll tell you, it's the latter.

Arch-TK··on Nokia N900 Necromancy
Paypal released the funds to the project, not to the people making the downpayments. Paypal never returns money immediately to anyone, they sit on it for months while they "investigate".

I don't know who you are or where you were but the paypal problems were pretty well announced and _I_ was there. The project was already facing delays because a key person who was needed to make the board layouts was held up with the also now dead DragonBox Pyra handheld.

I have no idea where you think the money went, how much you think there was, but it was a constant game of trying to drum up enough activity to gain attention of potential customers to bring in enough down-payments to pay the salaries of the small number of people working on the project while having enough money to buy parts. The money went into salaries, parts, nobody bought hookers or blow with it, and certainly nobody got anything but stress out of that project in the end. I believe Joerg Reisenweber paid a lawyer out of pocket to try to get PayPal to release the funds.

Arch-TK··on Nokia N900 Necromancy
It wasn't really abandoned so much as killed by PayPal.

The project used PayPal to gather downpayments, PayPal decided to lock the funds for months (almost a year or maybe longer IIRC) because they saw money coming in but no confirmation of goods coming out. And, you know, when it comes to big companies, no explanation is sufficient, you are guilty of something because some heuristic said so, so the funds were locked, legal threats didn't work (try threatening a company with the power of a small/medium country), and by the time they got their money back, key people who were going to work at a discount to cover key milestones had moved on.

Arch-TK··on Checked-size array parameters in C
Sure, but it works mostly by intentional hobbling of headers. Meanwhile in other languages you just write/generate bindings and they survive it.
Arch-TK··on Checked-size array parameters in C
That weird feeling when you realise that the people you hang out with form such a weird niche that something considered common knowledge among you is being described as "buried deep within the C standard".

What's noteworthy is that the compiler isn't required to generate a warning if the array is too small. That's just GCC being generous with its help. The official stance is that it's simply undefined behaviour to pass a pointer to an object which is too small (yes, only to pass, even if you don't access it).

Arch-TK··on Self-hosting a NAT Gateway
The article seems to perpetuate one of those age old myths that NAT has something to do with protection.

Yes, in a very superficial sense, you can't literally route a packet over the internet backwards to a host behind NAT without matching a state entry or explicit port forwarding. But implementing NAT on it's own says nothing about the behavior of your router firewall with regards to receiving Martians, or with regards to whether the router firewall itself accepts connections and if the router firewall itself isn't running some service which causes exposure.

To actually protect things behind NAT you still need firewall rules and you can keep those rules even when you are not using NAT. Thus those rules, and by extension the protection, are separable from the concept of NAT.

This is the kind of weird argument that has caused a lot of people who hadn't ever used IPv6 to avoid trying it.

Arch-TK··on 210 IQ Is Not Enough
You are throwing around anecdotes. They're not that helpful.

It's worth noting that success in life (for whatever that is defined as) is not the same thing as intelligence. And being intelligent isn't even enough for you to be successful in intellectual pursuits either.

You can be highly intelligent and receive no education, have no access to books (or be unable to read) and then you might be able to intelligently solve the problem of eating a sandwich but that wont get you anywhere.

Likewise, you can be intelligent and have access to the right tools but you might be too anxious to try to excell. Maybe you're intelligent and have unmedicated ADHD causing you to constantly fail to actually get anything completes in a timely manner.

There are a lot of things between IQ and success in life. But we do know for a fact that when controlling for other factors, we see positive trends between IQ and life success. That doesn't mean that IQ is the only factor.

Certainly the fact you can pull out a handful of anecdotes about high IQ individuals and talk about how uninspiring their lives are doesn't mean that all high IQ people are living uninspiring lives, or that living an inspiring life is uncorrelated with IQ, or that there is even a meaningful definition of an inspiring life.

Lastly, please note that there are lots of successful people who had an IQ test where they scored really low, and lots of unsuccessful people who had an IQ test where they scored high. This will in part be due to the fact that IQ doesn't corelate at 100% with anything, but also due to the fact that IQ doesn't correlate with itself over time at 100%. You can do an IQ test on an exceptionally bad day, or an exceptionally good day, you might get an IQ test which is not good at measuring you in particular. That's why when we do research on this topic we apply multiple different tests, we control for variables, and we run these on large groups of people.

Whether intelligence is useful for a model or not, who knows. All I can tell you with relative confidence is that IQ tests are designed with humans in mind, and when you apply them to models, it is no longer clear what they measure.

One thing models don't have (yet) is lives which they can live and which we can study.

Arch-TK··on A surprise with how '#!' handles its program argument in practice
It's only really NixOS as far as I know that doesn't ever put bash in /bin/bash (as far as Linux distributions go). But, on the other hand, there are quite a few distros (or at least flavours of distros) which don't ship bash by default (alpine, minimal versions of most distros, and embedded-Linux focused stuff if you count it). I imagine the most common "installation" of Linux is userspace in a container (yeah I know there's no kernel there, but nobody who talks about "Linux" broadly speaking specifically cares about the kernel) and a good chunk of those will be minimal with no bash.

Bash has to be explicitly installed on OpenBSD, FreeBSD, NetBSD (I think, haven't used it in a while) and probably a bunch of others. And in all of those cases (that I know of) it doesn't end up in /bin/bash once installed.

The default bash shipped on macs is so abhorrently ancient that it would be strictly better if it didn't exist because it would reduce the number of people who think bash scripts I write are broken (they're not broken, they just inevitably depend on some bash 4+ feature). Moreover, hardcoding /bin/bash as your shebang in this case will prevent anyone from remediating this problem by installing a non-ancient bash because the old one in /bin/bash will still get used.

Arch-TK··on 210 IQ Is Not Enough
This is a weird argument.

First off, we don't have a good way to actually measure an individual's intelligence. IQ is actually meant to correlate with g which is a hidden factor we're trying to measure. IQ tests are good insofar as you look at the results of them from the perspective of a population. In these cases individual variation in how well it correlates smooths out. We design IQ tests and normalise IQ scores such that across time and over the course of many studies these tests appear to correlate with this hidden g factor. Moreover, anything below 70 and above 130 is difficult to measure accurately, IQ is benchmarked such that it has a mean of 100 and a standard deviation of 15. Below 70 and above 130 is outside of two standard deviations.

So, in summary, IQ is not a direct measure of intelligence. What you're doing here is pointing at some random guy who allegedly scored high on an IQ test and saying: "Look at how dumb that guy is. We must be really bad at testing."

But to say we don't know what intelligence is, is silly, since we are the ones defining that word. At least in this sense. And the definition we have come up with is grounded in pragmatism. The point of the whole field of research is to come up with and keep clarifying a useful definition.

Worth also noting that you can study for an IQ test which will produce an even less correlated score. The whole design and point of IQ tests is done with the idea of testing your ability to come up with solutions to puzzles on the spot.

Arch-TK··on A surprise with how '#!' handles its program argument in practice
/bin is the "standard" location for bash on a subset of Linux distributions and basically no other Unix...

So it's not really a standard.

/bin/sh is a much more common convention but once again, not a standard.

There really isn't a truly portable shebang, but the same can be said about executables themselves. As part of the build or install step of whatever thing you're making, you should really be looking these up and changing them.

What's more, bash isn't a standard shell.

Arch-TK··on Aldous Huxley predicts Adderall and champions alternative therapies
Amazing website.

One thing I noticed is that while I hate being told what to do, and my partner hates being told what to do, and we understand deeply how we feel when someone tells us what to do, we still tell each other what to do (which goes especially badly after a long day).

Edit: I am glad you wrote this, so I didn't have to. It feels like reading my own autobiography. But the problem with reading about this stuff is that, if you forget for a minute that it's literally just how life is for you, it reads like some fantastical fiction comedy. I avoid telling anyone I deal with that I have ADHD because I feel like if I tell them they'll lump me in with some crappy mental model, and I avoid telling anyone I deal with about these problems because they sound completely absurd.

← PreviousPage 4 of 34Next →