HNHacker News
TopNewBestAskShowJobs

carlmr

7,918 karma · joined September 1, 2017

submissionscomments
carlmr··on I built a programming language that LLMs can't use
Trying to hit guardrails is a fair point though. If they can think, they should be able to think through guardrails by understanding what is part of the language for language construction reasons, and what is prompt input.
carlmr··on Java sealed classes and exhaustive pattern matching
We could have both by introducing another keyword than "default" here.

In some cases you want "default" handling, in other cases it's a runtime detection of a code issue. E.g. you could add a "fallback" case which is the same as "default" yet if your code doesn't exhaustively handle all sealed class cases won't compile. This would still create a fallback, if your sealed class is widened later on, but still allow you to error out if it's already the case right now.

carlmr··on I built a programming language that LLMs can't use
If LLMs really were to "think" in the broader sense, and not pattern match on a huge database, adversarial features shouldn't pose a problem to them. E.g. humans are naturally bad at doing math. Barring some exceptional humans, we derived mechanisms to get math results that we can't easily do in our head on paper.

If the LLMs were thinking in the sense that some people say they are, they will easily recognize the adversarial nature (e.g. letter counting in the language) and build their own tools to write conformant code right away. As a normal human would also build tools to solve the things we know we're not naturally good at.

The effect should be that a few tokens are spent on building the tool, and then the rest of the problem can be solved with a "normal" amount of tokens without brute-forcing the solution.

If the LLMs are glorified pattern matchers they might not find enough patterns in the corpus of human knowledge and remain inefficient at it.

The weakness I see is rather that this kind of problem-solving can be pattern matched on the corpus of existing human knowledge, so it may be that pattern matching on human thinking might still be enough to solve these problems.

carlmr··on 11 year old unsoundness bugs found in Rust borrow checker
Yes, we're discussing though in safe (non-unsafe/normal) Rust here. There is no safe C++, everything in C++ is unsafe by default. Even more unsafe than Rust unsafe, because Rust unsafe still does a lot of the safety measures of normal Rust, but allows only a handful extra things and doesn't disable the borrow checker:

https://doc.rust-lang.org/book/ch20-01-unsafe-rust.html

But getting back to the point, the C++ compiler doesn't have a borrow checker, so it can't have a bug in it. So it's on you, as the developer, to take care of all unsoundness.

While in Rust an issue is now filed, and with the fix, every future Rust program gets the fix.

carlmr··on A Staff Engineer's Guide to Inventing Work
Completely agree, but sadly I have seen platform projects with 0 real internal customers. Only an idea.

The more dogfooding projects the better. And yes, rule of three applies.

carlmr··on A Staff Engineer's Guide to Inventing Work
>It's precisely because of this framing and mentality that platform teams don't actually serve people well and are usually highly dysfunctional towers of people inventing work.

Spot on, I've worked in multiple small, medium and large companies. And these internal platforms almost always turn into ivory towers of useless churn.

Even if being forced to use it internally, in a lot of cases the projects ended up buying the same solution (or a working version of it) from an outside vendor when it came to fulfill actual customers needs on the outside.

If that wasn't possible we built what we needed ourselves.

If you have internal customers, I still believe you need internal incentive alignment. Otherwise what the platform builds and what is actually used and needed drift apart.

And you need at least one real customer project to dogfood the platform initially. Because most platforms start out way too generic with pure architecture astronauts [0] at the helm.

If you don't have a project-0 to test those assumptions against, you don't need to start that platform.

[0] https://www.joelonsoftware.com/2001/04/21/dont-let-architect...

carlmr··on Writing Efficient C++ Code (2013)
>This ended up hurting me because object initialization touched three separate cache lines (obvious in hindsight, but the advice of using SoA failed me here).

I mean this is kind of what happens with any advice that has nuance to it, that's not carried with the advice.

E.g. if you have a point in 3D space with x, y, z coordinates. Array points as SoA of individual dimensions makes sense only if you do a lot of averaging and such on the individual dimensions.

If you mostly use the 3 coordinates together, SoA will have bad caching behavior.

So the better advice would be to try to keep things that are used together in the same cache line, whether it's on dimension or all 3. Usage makes the difference.

carlmr··on Drawgent: Coding agent on a live Excalidraw canvas
If we're talking about something old, sure, but MCP and AI is new enough that any software interfacing with it that hasn't changed in 6 months it's a fair suspicion that it's abandoned.
carlmr··on TurboKV: Insanely fast Rust key-value store
>arguably, yes, they should RTFM

Agreed. Good design is when the things do what you expect them to do without reading the manual, don't reuse wording with other meaning in the wrong way. That way if you do encounter nee wording, you know you should read the manual.

carlmr··on Writing by hand is good for your brain
> I find these days I prefer to write using a cheap mechanical pencil

I know this is contrary to your advice but mechanical pencil, get a Kuru Toga, it's a really nice improvement and not very expensive. It auto-rotates the pencil tip, so you don't have the sharp end at some point.

For permanent writing get a Uni ball gel writer, it's supremely smooth to write with. Also not hugely expensive.

They're both not the cheapest option, but an amazing writing experience without being the fancy kind of expensive.

carlmr··on How Has Roman Concrete Lasted for Millennia? 1,900-Year-Old Latrine Offers Clues
>Fun fact! Lime putty is anti-mold even in humid conditions because upon exposure to moisture, CaOH2 + H20 becomes too basic for mold to grow on.

Can we use this instead of grout in the bathroom somehow?

carlmr··on GPT-5.6 Sol Ultra produces proof of the Cycle Double Cover Conjecture [pdf]
>(Apparently that particular department was the wrong one, to ask a question like that!)

Yes, the math department.

In any case linear algebra, stochastics, calculus; plenty of engineering and science applications for all these.

carlmr··on GrapheneOS has been ported to Android 17
Garmin pay if you're ok with Garmin is one possibility.
carlmr··on I'm Tired of Talking to AI
>There is something deeply disturbing in it that makes me feel I'm not talking to a self sufficient entity.

It makes you feel that way because it is that way. They're not self-sufficient.

carlmr··on Dropbox CEO Drew Houston to step down
So it's not just me. I'm glad, I feel weird that I have to save links to every Google doc and every internal confluence page because there's no proper search across these.

Especially in a filesystem I know where I placed something, but not always the title, so even if the search function was ok, which it mostly isn't, having to know the wording used for the title is really inconvenient.

carlmr··on Dropbox CEO Drew Houston to step down
>The mobile era started just as Dropbox started to solve a computer era problem.

I still can't wrap my head around how people find their files in the non-filesystem world. Whenever I need to work with files I take out my laptop.

carlmr··on Splinter Cell veteran says realistic modern lighting has screwed up stealth game
Jagged Alliance 2 wasn't really as much a stealth game but had a lot of the same kind of tactical thinking to it that I liked in Commandos.
carlmr··on Show HN: Semble – Code search for agents that uses 98% fewer tokens than grep
>so heavily RL'd with grep

At least codex listens to me telling it to use rg instead of grep, cause grep is often so slow. But when adding rtk it uses grep through rtk which is kind of annoying.

carlmr··on A 0-click exploit chain for the Pixel 10
Also the question remains if more CVE laden code was produced in the first place, instead of automated detection improvements.

It's easier to find a needle in the haystack if the haystack is 50% needles.

carlmr··on Why senior developers fail to communicate their expertise
>teaching functional programming to people trained in OO: Some people's model just breaks, while others quickly see the similarities, and how one can translate from a world of vars to a world of monads with relative ease.

Besides OO -> Functional this applies everywhere else in Computer Science. If you understood the fundamentals no new framework, language or paradigm can shock you. The similarities are clear once you have a fitting world model.

carlmr··on A Faster Alternative to Jq
What were your syntax stumbling blocks? I must be honest I've used jq enough but can never remember the syntax. It's one of the worst things about jq IMO (not the speed, even though I'm a fan of speedups). There's something ungrokkable about that syntax for me.
carlmr··on A Faster Alternative to Jq
Replying here because the other comment is too deeply nested to reply.

Even if it's once off, some people handle a lot of once-offs, that's exactly where you need good CLI tooling to support it.

Sure jq isn't exactly super slow, but I also have avoided it in pipelines where I just need faster throughput.

rg was insanely useful in a project I once got where they had about 5GB of source files, a lot of them auto-generated. And you needed to find stuff in there. People were using Notepad++ and waiting minutes for a query to find something in the haystack. rg returned results in seconds.

carlmr··on What young workers are doing to AI-proof themselves
In Germany I'd say you still make more with white collar, if you have a job. The problem for Gen Z though, is that they aren't hiring for junior positions.

Still if you go blue collar you have to build your own business.

carlmr··on Java is fast, code might not be
>They're not generic but they do the job, so if you have a bottleneck, you can solve it.

But that's the thing, in other languages you don't need a workaround to work on primitives directly.

carlmr··on GitHub appears to be struggling with measly three nines availability
They added the service unavailable feature.
carlmr··on Java is fast, code might not be
The problem is rather that Java doesn't have generics and structs, so you're kind of forced to box things or can't use collections.
carlmr··on Tesla: Failure of the FSD's degradation detection system [pdf]
Nice. My test was always a blond bald guy. It always adds hair. If you ask for bald you get a dark haired bald guy, if you add blond, you can't get bald because I guess saying the hair color implies hair (on the head), while you may just want blonde eyebrows and/or blond stubble.
carlmr··on Tesla: Failure of the FSD's degradation detection system [pdf]
Not unlikely that you're talking to a lot of AI-based AI boosters. It's easier to create astroturfed comments with chatbots than fixing the inherent problems.
carlmr··on Tesla: Failure of the FSD's degradation detection system [pdf]
I'd add to this, any moderately involved logical or numerical problem causes hallucinations for me on all frontier models.

If you ask them in isolation they may write a script to solve it "properly", but I guess this is because they added enough of these to the training set. But this workaround doesn't scale.

As soon as I give the LLM a proper problem and a small part of it requires numeric reasoning, it almost always hallucinates something and doesn't solve it with a script.

If the logic/math is part of a larger problem the miss rate is near 100%.

LLMs have massive amounts of knowledge, encoded in verbal intelligence, but their logic intelligence is well below even average human intelligence.

If you look at how they work (tokenization and embeddings) it's clear that transformers will not solve the issue. The escape hatches only work very unreliably.

carlmr··on Tesla: Failure of the FSD's degradation detection system [pdf]
>I definitely agree that in principle a computer can drive with cameras alone.

Obvious things first, cameras have way worse contrast and low light sensitivity than human eyes.

Humans have much more evolved logical thinking capacity, even the stupid ones can figure stuff out that modern AI struggles with.

Humans have other sensors, too that they use to plausibility check the picture they see. I.e. one of the best sensor fusion systems on the planet.

When in doubt humans can figure out whether it's a lens occlusion or a some other artifact in their vision by virtue of moving their head around.

There's probably other things I'm not thinking of. In any case to make full self driving work we should first start by using all available tech to make it safe. When you have safe tech you can slowly start removing individual sensors while verifying that safety remains high. As the experience and system evolves there will be optimization potential.

And until we have that low light thing and high contrast figured out, camera alone doesn't cut it.

Page 1 of 34Next →