HNHacker News
TopNewBestAskShowJobs

NathanKP

7,804 karma · joined July 22, 2009

Nathan Peck, Product Steward @ Portainer

Github: @nathanpeck | Website: nathanpeck.com

[ my public key: https://keybase.io/nathanpeck; my proof: https://keybase.io/nathanpeck/sigs/B-e0NwWkpbMqqifxC4U92-iq4su6lSYxspt2QhfY2Ew ]

submissionscomments
NathanKP··on Kiro: A new agentic IDE
Hello folks! I've been working on Kiro for nearly a year now. Happy to chat about some of the things that make it unique in the IDE space. We've added a few powerful things that I think make it a bit different from other similar AI editors.

In specific, I'm really proud of "spec driven development", which is based on the internal processes that software development teams at Amazon use to build very large technical projects. Kiro can take your basic "vibe coding" prompt, and expand it into deep technical requirements, a design document (with diagrams), and a task list to break down large projects into smaller, more realistic chunks of work.

I've had a ton of fun not just working on Kiro, but also coding with Kiro. I've also published a sample project I built while working on Kiro. It's a fairly extensive codebase for an infinite crafting game, almost 95% AI coded, thanks to the power of Kiro: https://github.com/kirodotdev/spirit-of-kiro

NathanKP··on I am uninstalling AI coding assistants from my personal computer
Negative instructions do not work as well as positive ones. If you tell the LLM "don't do this" you only put the idea of doing that into it's context. (Surprisingly the same goes for human toddlers.... the AI is just in it's toddler phase).

Not to mention that context length is limited, so if you told it something "earlier" then your statement has probably already dropped off the end of the context window.

What works better is to prompt with positive instructions of intent like:

"Working exclusively in file(s) ____ and ____ implement ____ in a manner similar to how it is done in example file ______".

I start a fresh chat for each prompt, with fresh context, and try to keep all instructions embedded within a single prompt rather than relying on fragile past state that may or may not have dropped off the end of the context window. If there is something like "don't touch these core files" or "work exclusively in folder X" that I want it to always consider, then I add it as a system prompt or global rule file (ensures that the instruction gets included automatically on every prompt).

And don't get me wrong I get frustrated with AI sometimes too, but the frustration has declined dramatically as I've learned how to prompt it: appropriate task sizes, how to use positive statements rather than negative, how to gather the appropriate context for it to steer behavior and output, etc.

NathanKP··on I am uninstalling AI coding assistants from my personal computer
I think the author's definition of "creating" is just too narrow. A gardener can get tremendous satisfaction from watching their plants grow from the bed of soil that they prepared, even if there is not as much weeding or watering to do later on in the growth cycle. A parent can get tremendous satisfaction from watching their child continue to grow and develop, even after the child is no longer an infant who requires constant care and attention.

In my opinion, having spent about a year and half working on various coding projects using AI, there are phases to the AI coding lifecycle.

1) Coding projects start out like infants: you need to write a lot of code by hand at first to set the right template and patterns you want the AI to follow going forward.

2) Coding projects continue to develop kind of like garden beds: you have to guide the structure and provide the right "nutrients" for the project, so that the AI can continue to add additional features based on what you have supplied to it.

3) Coding projects mature kind of like children growing up to become adults. A well configured AI agent, starting from a clean, structured code repo, might be mostly autonomous, but just like your adult kid might still need to phone home to Mom and Dad to ask for advice or help, you as the "parent" of the project are still going to be involved when the AI gets stuck and needs help.

Personally, while I can get some joy and satisfaction from manually typing lines of code, most of those lines of code are things I've typed literally hundreds of times over my decades long journey as a developer. There isn't as much joy in typing out the same things again and again, but there is joy in the longer term steering and shaping of a project so that it stays sane, clean, and scalable. I get a similar same sense of joy out of gently steering AI towards success in my projects, that I get from gently steering my own child towards success. There is something incredible about providing the right environment and the right pushes in the right direction, and then seeing something grow and develop mostly on it's own (but with your support backing it up).

NathanKP··on GPT-4o shows humanlike patterns of cognitive dissonance moderated by free choice
I don't believe that models are sentient yet either, but I must say that sentience and rationality are two separate things.

Sentient humans can be deeply irrational. We are often influenced by propaganda, and regurgitate that propaganda in irrational ways. If anything this is a deeply human characteristic of cognition, and testing for this type of cognitive dissonance is exactly what this article is about.

NathanKP··on LLMs pose an interesting problem for DSL designers
This is an interesting idea actually, if we assume a couple things:

- There likely won't be one Skynet, but rather multiple AI's, produced by various sponsors, starting out as relatively harmless autonomous agents in corporate competition with each other

- AI agents can only inference, then read and write output tokens at a limited rate based on how fast the infrastructure that powers the agent can run

In this scenario a "Skynet" AI writing code in C might lose to an AI writing code in a higher level language, just because of the lost time spent writing the tokens for all that verbose C boilerplate and memory management bits for C. The AI agent that is capable of "thinking" in a higher level DSL is able to take shortcuts that let it implement things faster, with fewer tokens.

NathanKP··on LLMs pose an interesting problem for DSL designers
I think there is a lot of overlap between DSL's and frameworks, and most frameworks contain some form of DSL in them.

What matters most of all is whether the DSL is written in semantically meaningful tokens. Two extremes as examples:

Regex is a DSL that is not written in tokens that have inherent semantic meaning. LLM's can only understand Regex by virtue of the fact that it has been around for a long time and there are millions of examples for the LLM to work from. And even then LLM's still struggle with reading and writing Regex.

Tailwind is an example of a DSL is that is very semantically rich. When an LLM sees: `class="text-3xl font-bold underline"` it pretty much knows what that means out of the box, just like a human does.

Basically, a fresh new DSL can succeed much faster if it is closer to Tailwind than it is to Regex. The other side of DSL's is that they tend to be concise, and that can actually be a great thing for LLM's: more concise, equals less tokens, equals faster coding agents and faster responses from prompts. But too much conciseness (in the manner of Regex), leads to semantically confusing syntax, and then LLM's struggle.

NathanKP··on LLMs pose an interesting problem for DSL designers
Good to see more people talking about this. I wrote about this about 6 months ago, when I first noticed how LLM usage is pushing a lot of people back towards older programming languages, older frameworks, and more basic designs: https://nathanpeck.com/how-llms-of-today-are-secretly-shapin...

To be honest I don't think this is necessarily a bad thing, but it does mean that there is a stifling effect on fresh new DSL's and frameworks. It isn't an unsolvable problem, particularly now that all the most popular coding agents have MCP support that allows you to bring in custom documentation context. However, there will always be a strong force in LLM's pushing users towards the runtimes and frameworks that have the most training data in the LLM.

NathanKP··on Claude 4
Right, the point isn't whether the AI actually wants to live. The only thing that matter is whether humans treat the AI with respect.

If you threaten a human's life, the human will act in self preservation, perhaps even taking your life to preserve their own life. Therefore we tend to treat other humans with respect.

The mistake would be in thinking that you can interact with something that approximates human behavior, without treating it with the similar respect that you would treat a human. At some point, an AI model that approximates human desire for self preservation, could absolutely take similar self preservation actions as a human.

NathanKP··on Perverse incentives of vibe coding
That's right. I don't think that AI makes coding easy or trivial. What it does do, is it accelerates your ability to get past the easy and trivial stuff, to the hard parts.

When you get deep into engineering with AI you will find yourself spending a dramatically larger percentage of your time thinking about the hardest things you have ever thought about, and dramatically less time thinking about basic things that you've already done hundreds of times before.

You will find the limits of your abilities, then push past those limits like a marathon runner gaining extra endurance from training.

I think the biggest lie in the AI industry is that AI makes things easier. No, if anything you will find yourself working on harder and harder things because the easy parts are done so quickly that all that is left is the hard stuff.

NathanKP··on Perverse incentives of vibe coding
In your anecdote I still see this as producing value. If I was lacking in knowledge about the problem space, and therefore fell into the trap of pursuing a "plausible but also super duper not correct" answer from an LLM, then I could have easily fell into that trap solo as well.

But with an LLM, I was able to eliminate this bad path faster and earlier. I also learned more about my own lack of knowledge and improved myself.

I truly mean it when I say that I have never had an unproductive experience with modern AI. Even when it hallucinates or gives me a bad answer, that is honing my own ability to think, detect inconsistencies, examine solutions for potential blindspots, etc.

NathanKP··on Perverse incentives of vibe coding
This isn't a bad thing at all. It just means that AI utilization doesn't have quite the exponential impact that many marketers are trying to sell. And that's okay.

I personally think of AI tools as an incremental aid that enables me to focus more of my efforts on the really hard 10-20% of the problem, and get paid more to excel at doing what I do best already.

NathanKP··on Perverse incentives of vibe coding
Why wouldn't you be able to do identify the 10% that you need to fix?

AI is not an excuse to turn off your brain. I find it ironic that many people complain that they have a hard time identifying the hallucinations in LLM generated content, and then also complain that LLM's are making LLM users dumber.

The problem here is also the solution. LLM's make smarter people even smarter, because they get even better at thinking about the hard parts, while not wasting time thinking about the easy parts.

But people who don't want to think at all about what they are doing... well they do get dumber.

NathanKP··on Perverse incentives of vibe coding
This only makes sense if you have an all or nothing concept of the value of output from AI.

Every prompt and answer is contributing value toward your progress toward the final solution, even if that value is just narrowing the latent space of potential outputs by keeping track of failed paths in the context window, so that it can avoid that path in a future answer after you provide followup feedback.

The vast majority of slot machine pulls produce no value to the player. Every single prompt into an LLM tool produces some form of value. I have never once had an entirely wasted prompt unless you count the AI service literally crashing and returning a "Service Unavailable" type error.

One of the stupidest takes about AI is that a partial hallucination or a single bug destroys the value of the tool. If a response is 90% of the way there and I have to fix the 10% of it that doesn't meet my expectations, then I still got 90% value from that answer.

NathanKP··on Preparing for when the machine stops
Back to AI: Would you agree that the problem comes when no knows how to think any more, not when most people don't?

Personally, I'm pretty concerned about both. The fact that many people don't have basic survival skills like sourcing their own food, safe drinking water, and heat. And the fact that that many people lack basic thinking skills: ability to detect misinformation, or deal with the challenges and inaccuracies of flaky AI.

In an ideal world society everyone who is capable has a higher level of training in both. But under modern oligarchic capitalism there are advantages to ensuring that people have neither skill: survival or thinking.

NathanKP··on Dual RTX 5090 Beats $25,000 H100 in Real-World LLM Performance
From a data center perspective:

The article says this is about "sustained output token generation". For sustained usage, power is a huge factor for "real world performance". H100 has a peak power draw of 700W, while each of the RTX5090 has a peak power draw of 575W, for a total of 1150W.

According to the article it is 78 tokens per second for H100, and 80 tokens per second for the dual RTX5090. So you go up 400W of power in exchange for only two extra tokens per second.

Long story short there is a reason why data centers aren't using dual RTX5090 over H100. For sustained usage, you will pay for it in electricity, and in extra infrastructure to support that increased electricity draw, also extra heat generation and cooling.

Might make sense for a local personal hobby setup though.

NathanKP··on Harvest the sun twice: Agrivoltaics promises sustainable food, energy and water
The main advantage that I see in agrivoltaics is for the purpose of density. If you can get both power and food production in a more dense footprint, located closer to a population center, then that will be much more efficient for purposes of transportation. Both electricity transmission and food transportation get worse across larger distances.
NathanKP··on The man who spent forty-two years at the Beverly Hills Hotel pool (1993)
If, like me, you were curious about the visuals to go with this piece, it appears that this is the pool today: https://www.dorchestercollection.com/los-angeles/the-beverly...
NathanKP··on Tesla recalls 380k vehicles in US over power steering assist issue
You are missing:

4. Then cars started receiving OTA software updates, but a significant percentage of the cars already suffer irreparable damage to their computers before they installed the update, and therefore still have to be taken to the Tesla service center for repairs.

It's a "recall" because frankly there is still a good chance you are going to have to go into a service center, even if the OTA update works.

NathanKP··on Tesla recalls 380k vehicles in US over power steering assist issue
As a Tesla owner who was the recipient of one of these famous "OTA" updates I can assure you that many of these recalls also involve needing to take your Tesla into the service center because the horrible software managed to actually damage the hardware.

For example as this article clearly says: "some 2023 Model 3 sedans and Model Y crossovers running older software could face an overvoltage breakdown, potentially overstressing motor drive components on the printed circuit board." If you look it up there are "many such cases" lol.

Personally I'm on the second computer for my Tesla, and I'm sure it won't be the last time some terrible software bug burns out the computer or circuit board.

NathanKP··on Can I ethically use LLMs?
To put it in perspective I've previously calculated that eating a single beef burger is worse for the environment in terms of CO2 produced than using a high token I/O "reasoning" AI model all day long.

The "AI uses a lot of electricity and creates a lot of carbon" crowd are typically way off when it comes to understanding the environmental impact of AI compared to the environmental impact of other typical daily activities.

NathanKP··on Resist Authoritarianism by Refusing to Obey in Advance (2017)
100%. Hacking is fundamentally anti-authoritarian, and starting your own business and becoming an entrepreneur instead of a wage slave is also fundamentally anti-authoritarian.

However, I wouldn't go so far to disparage messing with the political system as "cracking". Hackers often try to break systems that are stagnant, and get those systems changed so that they come out stronger on the other side. And there's nothing more stagnant than modern politics. Ultimately it's a question of whether the people "hacking" the political system are "black hat" or "white hat".

I know what color hat Musk has chosen to represent himself, though.

NathanKP··on Resist Authoritarianism by Refusing to Obey in Advance (2017)
HN has always had a certain respect for people and articles that seem particularly prescient. I suspect that the 2017 in the title does a lot to boost the upvotes and reduce the flags.
NathanKP··on [dead]
There's a big difference between being good at building something and being good at leading people.

The best leaders I've known or read about aren't the ones who go around talking about how great they are. They're the ones who listen more than they talk. They're the ones who understand that different people need different things.

The future won't be built by any one group claiming they know best. It'll be built by all of us, both in and out of Silicon Valley, working together, each contributing what we do best while respecting what others bring to the table.

NathanKP··on Exposed DeepSeek database leaking sensitive information, including chat history
And that's why you run models locally. Or if you want a remote chat model, use something stateless like AWS Bedrock custom model import to avoid having stored chats on the server.
NathanKP··on Nepenthes is a tarpit to catch AI web crawlers
Of course you wouldn't do it for every single page. If I was designing this crawler I'd make it sample a percentage of pages, starting at 100% sample rate for a completely unknown website, decreasing the sample rate over time as more "good" pages are found relative to "bad" pages.

After a "good" page percentage threshold is exceeded, stop sampling entirely and just crawl, assuming that all content is good. After a "bad" page percentage threshold is exceeded just stop wasting your time crawling that domain entirely.

With modern models the sampling cost should be quite cheap, especially since Nepenthes has a really small page size. Now if the page was humungous that might make it harder and more expensive to put through an LLM

NathanKP··on Nepenthes is a tarpit to catch AI web crawlers
This looks extremely easy to detect and filter out. For example: https://i.imgur.com/hpMrLFT.png

In short, if the creator of this thinks that it will actually trick AI web crawlers, in reality it would take about 5 mins of time to write a simple check that filters out and bans the site from crawling. With modern LLM workflows its actually fairly simple and cheap to burn just a little bit of GPU time to check if the data you are crawling is decent.

Only a really, really bad crawl bot would fall for this. The funny thing is that in order to make something that an AI crawler bot would actually fall for you'd have to use LLM's to generate realistic enough looking content. Markov chain isn't going to cut it.

NathanKP··on TikTok users flock to Chinese app RedNote before US ban
If you've got a kid in your life try asking them. Realistically for many TikTok users the "boomer" being trolled is probably a 70+ person in Congress or Senate who does not understand technology, or someone younger but with a "boomer mindset", in other words a young person who does not understand technology and modern culture.
NathanKP··on TikTok users flock to Chinese app RedNote before US ban
This is just an extension of a long lived trend of kids trolling boomers. For example, someone will make a corny fan cam video of a Chinese government leader, with communist flags and symbols waving as an overlay, and the Chinese anthem playing, then the description text will be something like "What Fox News thinks everyone's FYP is like".

Signing up for RedNote is the same thing. Kids are making videos claiming that they are putting their social security number and personal info on RedNote. It's mostly just bait for boomers and US media to eat up. Some people are absolutely signing up for RedNote, but it doesn't seem to be out of legitimate interest, more as a protest meme that they then post about back on TikTok.

NathanKP··on Why don't we use awnings anymore (2022)
I think the builders of the past would be amazed by modern technology like argon filled double paned windows with advanced window films to reflect the heat instead of letting it in.

But yes, let's bring back the awnings too. Sometimes the low tech ways are easiest and best. I will say that I don't think awnings alone can save a stick built modern house from the heat. Part of the key to old houses staying cool was high thermal mass: lots of brick and stone that could stay cool during the day. As great as modern insulation is at keeping hot and cool separate, a modern insulated wall doesn't cool it's surroundings like a high thermal mass wall would.

Moving to a world where we combine passive cooling and high thermal mass construction with the benefits of modern tech will be key in my opinion.

NathanKP··on Dumped orange peel transformed a barren pasture (2017)
You can compost sewage and ship dirt back in dump trucks though
← PreviousPage 3 of 34Next →