HNHacker News
TopNewBestAskShowJobs

aDyslecticCrow

1,535 karma · joined November 20, 2023

submissionscomments
aDyslecticCrow··on A few good ideas in programming languages
contract is way wider than simple refinement types. Refinement types are just a very specific group of invariants.

Contracts are an attempt to include formal specification languages into the implementation languages. You can enforce valid and invalid state changes, enforce relationships across the program state, or even enforce some level of correctness in behaviour.

> around a long time and has not caught on. That's usually a good sign that better approaches are prevailing.

That is completely not true. Plenty of dumb things prevail for faar too long for no other reason than momentum. Plenty of great things remain academic forever. It took decades to get algebraic types or basic functional programming somewhat accepted.

Design by contract is in theory a good idea but suffers from being a pain to use effectively. (making actually useful invariants that help the program more than an assert already would have)

Adding them to languages not built around them also results in quite nasty boilerplate or runtime overhead which further discourage their usage.

aDyslecticCrow··on C Is Not a Low-Level Language (2018)
Mabie hand-rolling LLVM IR representations would count.
aDyslecticCrow··on C Is Not a Low-Level Language (2018)
> You could attempt to make the claim that assembly is no longer a low-level language

Assembly expose instructions that C was never meant to work with. Compilers force C to do so anyway. If you had a compiler that converted 8086 x86 assembly to modern x86 or CUDA bytecode; I'd consider that pretty equivalent.

LLMV intermediate representation is probably more low level (closer to the real compute model it runs on) than that theoretical 8086 x86 compiler.

aDyslecticCrow··on C Is Not a Low-Level Language (2018)
The article does make an example quite early;

> GPUs achieve very high performance without any of this logic, at the expense of requiring explicitly parallel programs.

GPU cores are in some ways closer to "PDP-11", they're either acting as thousands of parallel simple processors, or expose pretty raw instructions for very parallel use-cases.

aDyslecticCrow··on Your intellectual fly is open when you use an LLM to author a post (2025)
> You should not use LLMs without disclosure because LLMs at bad at writing.

That's not how i read the article. The author more-so claims that the proof of effort by a human was large part of the credibility to the writing; Proof that the author of the text has thought it through and come to their convulsions though effort and reflection, and spent effort articulating that into words they expect other humans to find insightful.

If i see LLM signs; did the author just rephrase with AI model or did a AI model content farm produce the whole post based on the prompt "write a inspiring linked-in post"?

Disclosure of LLM use is simply the author addressing the concern and building a case for why the article is worth reading.

aDyslecticCrow··on There's No Limit to How Bad Code Can Get
> 6-deep nested if/else blocks

We found a 4000 Loc single-file single-function c program running a functional safety domain. With nesting so deep that you need to change the font-size or get a wider monitor. We're not allowed to touch or replace it because it's pre-certified.

aDyslecticCrow··on There's No Limit to How Bad Code Can Get
> LLMs, there’s really no excuse

I'd phrase it differently; we're now able to accumulate technical debt faster than ever, without even building the institutional knowable needed to keep it sane. While the models writes novels about what it's doing that no human or LLM will find any use for.

But at the same time; if the LLM makes coding 5-10x faster, there's plenty of left-over time we can now spend doing things properly. Document, test, plan, refactor, lint, use CI tooling. There is no excuse now that LLMs reduce the pain threshold for all of them.

aDyslecticCrow··on True Rate of Unemployment
Low cost of wealth accumulating snowballs those that have alot of said wealth accumulated. Look at swedens wealth inequality (gini coefficient) statistics to get a somber example.

Counter intuitive enough; making borrowing harder, and wealth holding more costly may reduce land and housing costs.

aDyslecticCrow··on True Rate of Unemployment
Gah! the first two graphs were fair so i dropped me guard. Ye this piss me off.
aDyslecticCrow··on The Vibe Tax
Forgot where i saw it discussed; If you observe recent model benchmarks over the past year; the performance is slowly climbing, but if you divide by the token count; the score per token is dropping.

The current trend in state-of-art LLM coding agents is giving more output, thinking longer and checking the results more to catch mistakes. Be it an economics inventive to make users burn through their quota or show increase in usage for shareholders, or a market demand of users liking the ability of models to do independent work without intervention or oversight; the result is what the article seem to call the Vibe Tax.

I myself asked Claude code recently to review a somewhat large PR, to see what it would find. I didn't expect much, but also didn't quite realize how the model would interpret my request; I burned $20 in 3 minutes in API usage, as it ran 2 sub-agents which themselves spun up 5 more each. Most sub-agents were manually checking for things clang-tidy would catch without actually calling clang-tidy. This behavior rose as i changed from sonnet/opus 4.6 to 4.8 and now 5.0.

I don't want to run a agent independently in this way; i ask targeted questions about specific things and review the result. But model development is targeted towards a more hands-off "vibe" workflow, because that's where the money and hype is. As a result, i find the models more frustrating, less trustworthy and more costly to my work. (I've even started using haiku more, since it remains to-the-point without steering away from what i ask)

aDyslecticCrow··on “Code was never the hard part” is an insult to all programmers
LLMs are surprisingly bad at basic CMake, but i don't see why they should be.

Much of the truly LLM-difficult code is probably hiding in the libraries we import. Database engines, compilers, efficient data parser, control theory, signal processing, protocol implement-ions, or anything with a 12000 page German ISO standard that need to pass a $12.000 certification lab. But this also compose of such a tiny fraction of programmers or code in the world.

A-lot of my work lies in that last one... but that's also where that "code is easy, knowing what to code isn't" is the most true; because industrial standards tend to not spare any expense on the word count, while the implementation is a ~2000 row state machine. I've not yet found an LLM capable of successfully parsing this kind of specification documents, but it's possible they will reach there eventually.

But i do feel online debate do clump the software field a bit too much when AI is discussed. JavaScript compose probably 98% of all code the LLMs are trained on since it's powering every website scraped for training. As such, people in web-development seem to have far more praise to LLM capability than i'm able to give.

My personal AI experience has been very mixed in comparison, regularly making up functions of common libraries, hallucinate the description of technical terms, straight up writing un-compilable c-code, or get confused by relatively small code-bases. Useful but not majorly changing my work at the moment (pretty good at comments, test cases, or as google replacement).

Granted, I've only tried models up to Opus 4.8, and not had experience with the newest "tier" of models with Fable, Kimi K3 or GPT 5.6; but the prices on those are also starting to compete badly with my salary at the moment.

aDyslecticCrow··on Web security is too hard
You didn't read the whole article; it's not a scam, it's a new official cloud-flare product.
aDyslecticCrow··on AI-Generated Images Discourage Me from Reading Your Blog
> "The high end - the real talent - still stands out"

It's a shame we made it economically infeasible to ever more produce or pursue.

The value of even mediocre art used to be that it still took a human somewhere hundreds or thousands of hours to reach that skill-level; and its existence indicate true care by the creator or commissioner. Heck, most historic art in cathedrals and historic art museums is crap by modern standards; they simply didn't have the tools and resources to reach high level in the craft.

> "AI hasn't suddenly sent the quality of creativity off a cliff"

No it has. Because there is no point anymore, no economic value, no recognition of the time and effort required. Spend 1000 hours to be called worse than AI. Spend 3000 more to be accused of using AI. Finally spend 100000 more, and finally reach above the slop; only not being paid a dime because AI is 90% good enough. Want to spend those final 300000 to finally get paid for your work? Or do you prefer working minimum wage instead.

Just go to google and use their work as is, and crop out the signature. At-least then you still acknowledge that there actually is a value to creating imagery left. Welcome to the world of slop.

aDyslecticCrow··on AI-Generated Images Discourage Me from Reading Your Blog
Most artists would prefer you to steal their art than paying a multi billion dollar company to steal it for you and make a worse inaccurate copy. And there are petabytes large free or cheap archives of clip-art, diagrams, and illustrations all over the internet.
aDyslecticCrow··on Only 16 Percent of Americans Think AI Will Have a Positive Impact on Society
> jobs displaced by industrialization

This argument is cute and all, but ... does a data-point of 1 from 200 years ago really give us much confidence? We replaced physical labor with a massive service sector.

Now we're automating the service sector so now people can go to... eeh... the 3rd category of jobs? Seems like physical labor is the most stable career at the moment; what machines have not already automated is pretty difficult to replace it turns out. But we outsourced most of that to low cost countries except plumbers and electricians.

But will a population of plumbers really be able to maintain a population of plumbers employed?

aDyslecticCrow··on Only 16 Percent of Americans Think AI Will Have a Positive Impact on Society
Yes, that's very nice. But that's very different models from LLMs and slop image generators. AI as a term has been butchered beyond recognition; when mentioning the current harm of AI investor hype and job automation, people are talking about generative models using LLMs or prompt based input, which have seen little to no use in "accelerate biological and medical discovery"

Sure, the transformer is great for making larger neural networks with better learning potential, which are improving protein folding models a fair bit. But do we need the combined budget of the Apollo program or interstate highway system (adjusted for inflation) per year, to develop better molecular simulation models? (no, the most advanced ones run on mundane hardware and trained just fine on pre 2020 infrastructure).

So while it's true that; "AI" ((primarily) Neural network based deep learning techniques) are wonderful tools to make society better; slop generators absorbing the entire energy budget of a few small nations to generate infinite propaganda, linked-in posts and shrimp Jesus is only tangentially helping in that goal while destabilization civilization in the process.

aDyslecticCrow··on Uber's $1,500/month AI limit is a useful signal for AI tool pricing
An inference only platform selling good open weight model inference without the research overhead could capture a-lot of market for lower size model uses (haiky, gemeni flash). Diffusion-transformers and clever cashing can drop inference even lower, which is improving at a high rate.

The biggest reason large models are un-attainable for local applications is the lack hardware with large amount of unified/graphics memory (and the cost of the platforms that do). Once the memory slog goes back to normal and hardware manufacturers adapt to demand, we may see consumer hardware with large memory capacity effectively opening the door for slow but usable frontier model inference (assuming improvements in model efficiency and compute capacity)

At that point, inference becomes a race to the bottom. The large labs hope they can attain a leap in capability (which is increasingly looking bleak, with a average catch-up of just a few months) or market dominance through integration (integration in platforms and OS, exclusive deals with companies or governments).

For coding agents, i suspect no player will manage lock in enough market to enforce pricing much higher than the true inference cost, and catering to programmers becomes an unsustainable proposition. We will instead be further hit with a lot of AI integrated into our other tooling costs, such as GitHub, Microsoft suite, G-suite, forcing in AI functions as a value-ad into the total cost without giving the option to exclude them. (using their market position)

aDyslecticCrow··on Bijou64: A variable-length integer encoding
LEB128 can only trick you by at most one byte, (depending on the followup data). Bijou64 can consistently trick you by 8 bytes.

In a contrived example of a pbuf {length:int, payload:byte[1]}

LEB128 can trick you into reading the payload as part of the length, but then hopefully trigger a code check against invalid buffer read. (or one byte outside the struct if the payload is also malicious)

Binou64 can trick you to read 7 bytes into other memory, before any buffer size validation is done.

It's then not uncommon to log with a helpful; "buffer with length: 26624894573377(7 bytes of stolen data) is invalid", or just crash.

It's to the point that Bijou64_decode should perhaps take "end_adress" or "max_read" to catch this kind of attack.

(If you dont validate a malicious pbuf, you're in for a bad time regardless of integer format, but these int formats add their own way to trigger a buffer overrun despite a proper check.)

aDyslecticCrow··on Bijou64: A variable-length integer encoding
Clever, but one thought crossed my mind;

An adveserial package can claim to have a 255 tagged integer but not actually have any followup, tricking the payload parser into an incorrect offset and reading straight off into followup memory.

It's a classic thing to check for when dealing with variable length strings or binary, but it may not cross the mind when it's hiding in the Bijou64_decode(*buff, *cr) function.

aDyslecticCrow··on EU fines Temu €200M for allowing sale of illegal products
So we should give up regulating them? All stored are internet stores.
aDyslecticCrow··on EU fines Temu €200M for allowing sale of illegal products
But western brands can be sued or made liable with fines when a house burns down, which force them a minimum level of caution or risk-assessment when designing and selling their product. A random Chinese drop-shipper that vanish into smoke cannot, so all we can do is force the distributor take that responsibility in their place.

So Temu should be sued if a house burns down from a generic-brand e-bike that they imported and took money for.

aDyslecticCrow··on EU fines Temu €200M for allowing sale of illegal products
Neither does; Mercury lamps, Asbestos insulation, Freon refrigerant. It poses issues when disposed off, and is banned for a reason.
aDyslecticCrow··on EU fines Temu €200M for allowing sale of illegal products
Passing the CE certification is annoying, but hardly a significant cost compared to design of the product. Notably, the law forces companies to put their ass on the line if things to wrong, by registering their name to the product they produce.

We also have laws making the store selling the thing that burnt down your house liable for what they sold, which make them think twice about selling a random off-brand fire-starter with unknown manufacturer. This worked great until Temu, Amazon, and Alibaba entered the market claiming to be "marketplaces" connecting "importers to suppliers" while clearly behaving like a store.

The core issue is that, if the producer cannot be sued, the seller cannot be sued, then there is no reason to follow any safety what-so-ever. So fine the distributor until they put some quality control or standards on the producers they give market to, may solve the issue.

The US has this issue as well, though more focus on individuals suing for each case rather than broad-spectrum compliance regulation. The outcome is the same; with nobody to sue, there is no reason to make things safe for human use.

aDyslecticCrow··on EU fines Temu €200M for allowing sale of illegal products
Could we interest you in some amazons choice fuses? never more be concerned about replacing a fuse! as these ones, simply wont need replacing! (they survive 5-10x their rated current)

https://youtu.be/B90_SNNbcoU

aDyslecticCrow··on C extensions, portability, and alternative compilers
And architectures. Probably a bunch of build servers or a swarm of docker, qemu, and VMs, with a good test coverage to detect behaviour differences.

In practice, the compiler is an often an omitted dependency of any c code.

aDyslecticCrow··on Memory has grown to nearly two-thirds of AI chip component costs
Patents is not the issue here. Not even close.

The up-front investment of a memory fab is measured in billions, and takes years to construct and get running. The margin on the chips themselves is terrible, so without scale its not worth even trying. DDR5 is a industry standard that takes some effort to conform to, but the licence fees is a drop in the bucket to the cost of creating a fab.

The fabricators were cautious about increasing production, and slow to start planning. It takes further time to build up capacity, and if the demand drops down, they may end up producing dram at a loss when the market flips over to oversupply. The demand whiplash could kill any company that dared betting on increasing production. See the "bullwhip effect" https://en.wikipedia.org/wiki/Bullwhip_effect which has killed semiconductor fabricators before.

There is a discussion to be had about how to maintain national semiconductor production in Europe and US as a strategic industry, but historic attempts have all failed.

aDyslecticCrow··on Show HN: Hallucinopedia
Not using JavaScript would also make the crawler fail on squarespace and wix website builders.

The age where the web was usable at all without JavaScript is long gone. No scraper would get much scraping done without JavaScript these days.

aDyslecticCrow··on Show HN: Hallucinopedia
google is already on it when asking about "The Great Pigeon Census of 1887"

using 1886 or 1888 makes Google correctly identify that no such sensus exist.

asking about 1887 specifically makes Google refer to some supposed great effort to track passenger pigeon population mids of the species decline.

aDyslecticCrow··on Appearing productive in the workplace
I had the opposite issue. Writing was agony and every section would be written, reviewed and rewritten to get my point across; only to be tortured by a miminum word count that was 20% away after saying all i cound think of saying.

I've gotten better at phrasing myself adequately in one go. Rute mechanical memorization has also made writing itself cheaper. (read my username)

I can now yap quite adequately over text, yet i regularly find AIs at a minimum 2x as verbose as my preferred phrasing after manual word mashing.

aDyslecticCrow··on Using “underdrawings” for accurate text and numbers
In a very simplified view;

Those "tolkens" humans "count" are translated to a ~2048 (depends on model) floating point vector.

bird => {mamal, english, noun, Vertebrate, aviant} has one r but what if you make it 20% more "french". Is is still 1 r? That could be the word "bird" in french, or it could be a french speaking bird or a bird species common in france.

If nearest neibour distance to the vocabulary of every language makes the vector no longer map to "bird"; then the amount of rs' must change, using a series of trained conditional checks (with some efficiency where languages have some general spelling patterns).

That is such an unreasonable amount of compute, that it is likley faar cheaper, easier and more reliable to train the model to memorise the output:

{"MCP":"python", "content":"len((c for c in 'strawberry' if c='r'))"}

The attention mechanism allow LLMs to learn this kind of absurdly inefficient calculations. But we really shouldn't use LLMs where they're outperformed by trivial existing solutions.

← PreviousPage 2 of 18Next →