HN user

light_hue_1

2,674 karma
Posts1
Comments1,020
View on HN

This is too generic. There's some code I need to write like core abstractions that are going to set the pace for everything. Or tricky steps that can look good without actually working well.

Then there's the mass. I don't need that anymore. The mountains of boilerplate, etc.

I write little islands which need high judgement that are then connected by the obvious goo.

Perhaps. If we need more, we can make more though, and at a faster rate than Iran can.

We can't. We built a system that creates a very small number of very expensive munitions and that can't be scaled up. We've been trying to scale up munitions production for years now with the Ukraine war. And it just isn't possible.

Not only does it take years to make any missile now. Our total capacity to make missiles is incredibly low. Like, we can make 600 Patriot missiles per year. We've expended twice that so far with Iran alone. We can make 100 THADD per year. We've expended 300 so far.

The US will run out of missiles way before Iran does. Iran could easily produce 2000 missiles per year and if it pushed it could make closer to 8000.

Iran will recover its missile stocks from the current war in a year. It will take the US until 2031 to do the same.

This kind of data-free opining reminds me of the Mythical Man-Month. Yeah, in theory adding more people to a project will speed it up. And all people are replaceable so I can hire 100 bodies for cheap and we'll be done with this project ASAP.

Sounds great! Have you tried this? Did you see what went wrong? Otherwise this is just the same nonsense as always.

Home Delivery - in most situations - is effectively a first world luxury.

The comments here always blow me away by how totally out of touch with the rest of the world many posters are. No, home delivery is not a luxury, it just works really poorly in your country.

India is going through a 15 minute or less delivery boom right now. It's gotten so popular that the government is asking companies to not promise 10 minutes because that would endanger drivers.

The standard is China is 30 minutes home delivery.

It has nothing to do with loopholes on anything. Just someone managed to convince you that what you've got is better than what exists out there already.

Go with your report back to your doctor.

A family member has cancer and we treat chatgpt as part of the team (our doctor's words). I ingest everything into it, work with it to make a good report. Then at the next visit we review it.

This gives you the best of both worlds. You get peace of mind and the doctor explains why and how the agent was right or wrong.

Twice now we've caught consequential mistakes (wrong pain medication and incorrect notation of the exact mutation that he has). Which have made a difference to his quality of life and treatment path.

Most of what the doctors have said is in line with the agent but when there have been disagreements they've been very reasonable. Sometimes the doctors have gone with the agent's version sometimes they've explained why that's inappropriate.

I'm amazed that PG can't see his own arguments clearly lead to massive social harms.

Facebook once existed as "How is a company going to make money from undergrads stalking one another online?" but that company didn't make it big. It was only when it turned into an addictive harmful website that thrives by massively raising the suicide rate of kids, that's when they made it big!

AirBnb once existed as "Who's going to pay to sleep on an airbed on someone's floor?" but they didn't make a billion dollars doing that. It wasn't until it turned into a DYI hotel that displaces local resident, concentrates wealth, and makes housing unaffordable. That's when it made serious money.

So yes, nominally, each of these startups sounds good. But many of them turn into rent seeking, closed ecosystems, that prey on users.

You must look at the world around you and see how it's actually done.

Correct. I wish PG would do that. Instead of telling this idealized fantasy.

This is a shamefully bad paper hyped up to make Science relevant but with a result that has no relationship at all to what's even in the title, never mind abstract.

The sad part is, this is going to be used to hurt workers everywhere! Come back to work for your own mental health.

They don't compare remote vs non-remote workers. They compare workers in job families that could be remote vs workers in job families that are unlikely to be remote. Their control group is nonsense, the pandemic affected people in different job families very differently.

The real effect is living alone or not.

Also, it conflates mental health utilization with mental health status. It makes it seem like not taking antidepressants means you aren't depressed. Maybe the actual lesson is that people in remote-capable jobs have better insurance and time to get antidepressants. And those that aren't, get to suffer with their bad mental health.

This paper says absolutely nothing about the impact of remote work on workers. Zero.

In some countries it is automatic in others it is not.

Say one of your parents is a citizen of some other country.

If they're Canadian, you're a Canadian citizen. Period. The process is to get your documents that prove it. You don't apply for citizenship, you apply for proof.

In many European countries you are not a citizen. The process is to become one by descent. You apply for citizenship.

Very different.

Not the article's main point but I've never liked the "google killing products" complaints. ... you blast out products, see what sticks, and kill what doesn't

Except that Google kills the products we use! Google Reader had basically the entire community.

No one cares when they kill something niche.

I don't touch new Google products, they're toxic.

And now with AI I can finally stop using their search too. All that will be left is email because it's too much of a commodity.

Eric Schmidt got booed on stage recently. Eric Schmidt! The guy who basically was Google for a decade. When your own alumni get heckled by the crowd your brand isn't just damaged. It's toxic.

I was at an MIT event 8 years ago where Eric Schmidt was booed. It was his first summer at MIT. Basically everything he said about Google and his world view left the students feeling horrified. It was so bad people walked out in a daze.

So if this is the bar, we passed it long ago.

There's a simpler way to state this: the easy problem is to understand the computations of the brain while the hard problem is to understand what experience the thing doing the computations has.

We understand everything a CNN or Transformer does, but we have no idea how to relate that to qualia. This may also be why we need to run endless tests and don't have a theory that let's us predict how well the network processes anything.

The more we learn, the more destruction seems to follow

I wish people would read some history. The world was pretty horrific until recently. The urban graveyard effect didn't end until fairly recently: cities were so horrific to live in and so many people died that the only way their populations were sustained was by constant immigration.

I've graduated many PhD students at a top tier university. That advisor was correct. What they were doing is teaching their PhD student.

You must learn to write good reviews. That doesn't happen without writing quite a few.

Of course grad students should generate the first draft of talks, collect data, and generate graphics. That's exactly the point of grad school. You need to learn how to organize and present knowledge. How to tell a story.

My friend said that nothing in the first five years of his PhD work contributed to his dissertation.

The point of the PhD is to learn to think about hard problems that are vague, to find your way around them, and learn how to do something new. It's not to stuff as much as possible into a dissertation or anything else.

And 6 years for a PhD? That's about right. You need to go from 0 to being the go-to expert everywhere on a totally new problem.

As a YIMBYist who can't afford a house where I live, I actively want big money to overrule local government regulators at will, because big money developers make their big money by building houses and local regulators are responding to the NIMBYist concerns of ordinary homeowners that result in insufficient housing getting built. A local government regulator fighting for the interests of local homeowners does not necessarily do what is in my own long-term interest, and I don't necessarily want them to win against big money.

I am A YIMBY too. But no, big money is not on your side. Big money wants to make money, not make your life better. It would like to build as much as possible for as little as possible, at the lowest quality possible, and sell it for an extremely high price. This isn't good for any of us.

What's remarkable about this list is that every single piece of advice is exactly the opposite of what you should do!

1. Non-interactive by default Commands have to run without interactive prompts when an agent invokes them. When a subagent spawns a background process, there's nothing answering the prompt. The command hangs.

If a command has stdout/stdin attached, you can be interactive mode. If it doesn't you can be in non-interactive mode. This isn't even wrong, it's just nonsense.

2. Structured, parseable output A nicely aligned table with ANSI colors is for humans. An agent extracting a post ID needs JSON.

It's a natural language agent. It obviously doesn't need JSON. And JSON is extremely wasteful in terms of tokens.

3. Errors that teach, and enumerate The original principle was "fail fast with actionable errors." That still holds, with one refinement I missed the first time. When the failure is "you passed an invalid value for X," the error should include the valid set.

Except that the valid set can be huge. You're much better off describing what's valid. It's a natural language agent. Talk to it!

4. Safe retries and explicit mutation boundaries Agents retry. Humans glance at a duplicate row and notice; agents don't.

What does this have to do with agents? Yeah, if possible make your operations idempotent. If not, well, .. then don't? Humans will make exactly the same mistakes as agents here.

5. Bounded responses, at every layer Tokens cost money and context. Big outputs are sometimes justified, but the default should be narrow.

How do you know what your agent needs? Let the agent bound and select. Agents are perfectly capable of sending your output through grep or through head/tail.

6. Cross-CLI vocabulary consistency This is the principle I'm most certain about, and the one most under-stated in the original. Agents don't memorize one CLI at a time. They build a generalized model of what CLIs do, drawn from every CLI they've seen. When your tool uses info for what every other tool calls get, the agent doesn't fail; it succeeds slowly, with extra retries, after burning tokens on --help. Multiply that across thousands of agent invocations per week and the cost is real.

Agents need to deal with hundreds of CLIs that are all inconsistent. What matters is that you describe to the agent how each CLI works. It doesn't matter if they're consistent.

7. Three-layer introspection The original principle here was "progressive help discovery": top-level --help lists commands, subcommand --help shows usage. That's still true, but it's now the bottom layer of a three-layer stack. Each layer answers a different question.

Truly the worst advice. Take a simple clean output that's easy to understand in one go and turn it into a crazy complex json that requires multiple inferences to understand. Not only are you wasting compute, you're wasting your time waiting for that compute.

8. Async-aware execution Most CLIs treat async APIs the way the underlying HTTP endpoint does: submit returns a job ID, poll returns a status, that's the agent's problem. Two failure modes follow. Either the agent writes its own poll loop (wasting tokens and getting it subtly wrong), or it doesn't, and the workflow fails because the result wasn't ready when the next step ran.

No, it got worse. Horrific advice. Take a simple API that an agent can easily wait for in the background and turn it into a stateful monster that can clog everything up with junk. Oh and now when you have multiple agents they get to have a fun conflict.

9. Persistent identity through profiles Agents don't show up once. They show up tomorrow, and the day after, and a week from now, in a different shell, with the same underlying intent and a different specific input. Stateless leaf-shaped CLIs make every invocation re-specify the same eight flags.

Ok, I was wrong. 8 was bad. 9 is much much worse. It's a guarantee that your agents will get things wrong. Why? Because agents forget all the time!

10. Two-way I/O The original principle 6 (composable and predictable structure) covered stdin/stdout pipelining. That's still true. But agents don't only consume CLIs through pipes, and the CLI doesn't only emit through stdout. There are two new mechanisms worth adding: a way for the CLI to emit artifacts where the agent actually needs them, and a way for the agent to report friction back.

This literally exists in a form that every single agent knows: bash pipes and redirects. They've been trained on billions of examples of this. Now instead of just using that, you're adding a custom version that will just confuse the agent.

I'm not sure I could have written a worse list if I tried.

This isn't specific to Rust or Typescript. You can do this in basically any language.

This just isn't true.

In any dynamic language you would not get these guarantees at compile time. You'd get random failures at runtime. That's not safety of any kind.

Also, part of the goal of languages like Haskell is that they help you think about your code before it runs. All of that is lost.

Imagine you have to distinguish between unescaped and escaped strings for security purposes

That would be a nightmare in many languages. You'd have to rewrite large parts of the code to be compatible with one or both. And in many languages you'd have to duplicate your code entirely.

In other languages, the result would so ugly, you would never want to touch that code. Imagine doing this with say, templates in C++.

There's a performance cost to this

There is no performance cost in Haskell! This is entirely undone by the compiler.

Also, because the compiler understands what's going on at a much higher level, you can do things like deriving code. You can say that your classified strings behave like your regular strings in most contexts, like say, they're the same for the purpose of printing but not for the purpose of equality, in one line.

They did so much to keep this model from having data contamination and then in the post-training phase they basically gave up and undid all of their hard work.

This model is contaminated in subtle ways that make me skeptical of the results.

The West Forgot How to Make Things. Now It's Forgetting How to Code

Can we stop repeating this nonsense headline please? We did not stop manufacturing things.

Manufacturing is a huge industry in the West. https://en.wikipedia.org/wiki/Manufacturing_in_the_United_St...

The US manufacturing sector is the biggest it has ever been. Exports are at all time record highs. The only thing that declined about manufacturing is the jobs. We build way more than we ever did but with far fewer people.

What we did do is decide that basic items aren't worth it. Our capacity is limited, our labor pool is limited, expenses are high, it doesn't make sense to make trinkets when we can make complex high precision parts and devices.

But no, we did not forget how to make things. We chose to use our capacity in a smarter way.

Not how rules work.

First they can shoot down your drone. Second they can ban you from ever flying one again. All without any criminal prosection.

To prosecute you, it is not willfully and knowingly. It is willfully or knowingly.

If you expect there to be ice and put your drone in a spot where it will film them, well you didn't know. But it was willful.

What strikes is not the systemic failures. But the intense culture of secrecy.

Reports are heavily redacted. They aren't shared. Failures aren't acknowledged. Engineering models aren't released. That secrecy eventually causes what we see today.

Meson merges the crappy state of C/C++ tooling with something like Cargo in the worst way possible: by forcing you to handle the complexity of both. Nothing about Meson is simple, unless you're using it in Rust, in which case you're better off with Cargo.

In C++ you don't get lockfiles, you don't get automatic dependency install, you don't get local dependencies, there's no package registry, no version support, no dependency-wide feature flags (this is an incoherent mess in Meson), no notion of workspaces, etc.

Compared to Cargo, Meson isn't even in the same galaxy. And even compared to CMake, Meson is yet another incompatible incremental "improvement" that offers basically nothing other than cute syntax (which in an era when AI writes all of your build system anyway, doesn't even matter). I'd much rather just pick CMake and move on.

Not just the US medical system, but Europe and China also don't have better treatments until a rich guy came along. It seems that it's not for a lack of ideas, just that some of these ideas couldn't be funded. Is it that this type of bone cancer is super rare and the cost just isn't worth it? Or are we just under-funding at the level that several ideas with a likely positive ROI aren't able to get funded?

Cancer research, and all research in general, is massively underfunded. The US spends $7 billion dollars per year on the National Cancer Institute. The EU spends about as much as well. That's $14 billion per year for all cancer, never mind bone cancer. This just isn't a lot of money. That's like 6 days of running the US DoD. For cancer.