Punch yourself in the face with reality
adi.bio242 points by AdityaAnand1 3 days ago
242 points by AdityaAnand1 3 days ago
I spent multiple 5-hour sessions spec-ing my climbing app with AI, clarifying interactions, algorithm, workflow etc. It ended up a frankenstein that I didn't recognise or know how each part interact with each other. Command line were a mess, different commands doing the same thing, with similar but redundant arguments. Everything looks kind of doing what I intended but overly convoluted and nothing really works. Real progress was made when I actually dig into the documentation of colmap/OpenMVS (essential tools, which I had never used before, in my workflow).
The AI gave me unprecedented turn around time in experimentation. The same experiments would easily take me over a month in the past. Now it was a few days. But still, real progress is made only when my understanding catch up with reality.
It's very difficult to keep AI focused, when it barfs out 3 pages of reply in response to a one-sentence prompt. It's sort of its nature for some reason, it's very impressive if you've never seen it but it's exhausting to use for very long. It's like a very eager assistant who doesn't have enough experience to understand scope.
3 pages of reply or overly verbose code, often without abstractions - I read all the posters here and in other forums say that programming has shifted towards reviewing AI output rather than coding said output manually; I agree, however, I just don't buy that everyone is actually reviewing the code as intensely as one would expect - there is a tendency that arrived rather quickly to assume that the AI is correct and efficient. I guess the ultimate reviewer is another AI agent I guess.
I think ultimately you still have to pay down tech debt eventually. Either through bankruptcy (throwaway the project) or servicing the debt (refactoring, rearchitecting etc).
It's not different than when coding by hand, often we take shortcuts by hand that we then have to pay for later. It really just becomes a judgement call on when to stop prompting new features and start service what you have.
I think with AI and vibecoding its tempting to assume the output is good and chase the dopamine hits of more features, more features, more features, but eventually you get stuck.
That being said AI is also a great tool at paying down tech debt. It's great at helping you read a codebase and can be great at making the mechanical changes you want. And I think there is some truth to the story that newer models will be able to pay down debt (fix the slop) of older models. But its all shades of grey, newer models are better than older ones, but can I emit slop with 5.6 faster than 5.7 will be able to fix it in the future? Nobody knows.
It's not like human projects are devoid of bad code, its all tradeoffs and shades of gray. But to be honest I haven't written a line of code by hand in a while.
I find it highly similar between running agents and running human teams.
Clear goal, share context, delegate but verify. Running a team of engineers also inevitably generates pages and pages of material, design spec, code, test, review. Just that we now do that with agents and agents are way less trust worthy
What's good for agents is good for humans. That's about it.
The only difference is that agents don't deal well with ambiguity in processes. If your build process is 15 steps, a human will just endure because "that's how it's always been" - an agent will keep stumbling until you either optimise the process or document it.
And now it's better for humans too, they either got a simplified process or better documentation.
> for some reason
Usage is metered/billed by the token. This suggests a few possible hypotheses for why they might tend to be verbose.
>It's sort of its nature for some reason
I've known some people who can never stop talking. Maybe they are overly represented in the training set.
The verbosity in code is also a huge problem. I asked it to introduce 4 functions in my project (like, literally, just functions) and I'm looking at 32 files changed and two spec files that are total 200 lines long. It's functional, but jesus, this is going to need a refactor.
It sounds great for prototyping. Once you do a month's experimentation in a day and generate some shit app that barely works, but looks functional, you have a definite goal to recreate that design but working properly.
It seems like an absolute dream for corporate execs who don't know anything about development, see a taped-together prototype built in a day, and think to themselves "Wow, we're 90% done... we could almost ship that!!"
Well, from my experience, if the AI dev is ill intended, he can just say nothing then the exec will go "we can ship now as it is!"
nobody throws a prototype so this will happen
On the counter point, it is so much easier to throw away code that cost nothing to build.
This was true a while ago. Today we are replacing decades old sloppy production code with 100% verified better code through tests written by AI, code written by AI. This is not looking functional but drop in functional replacement with measurable improvements.
there are two camps: those who have spent the tokens to figure out how to wield AI, and those who haven't. unfortunately, it's not cheap to get to the former category… and i imagine it'd be difficult to lose access to that tooling and fall back to the second category.
Experimenting can be pricey but early on I spent my own money thinking "if I can get a handle on how to do this I'll get a 100x return on my money" and it was a good bet.
If you're not convinced - sign up and pay by the token of a high or highest level model. Anthropic or Grok for example. The vendor isn't the concern. The quality of what can be done. Then, find an agentic 'harness' that is written in a language you can read. There are several (pi, opencode, crush, etc) and then clone that repo or one of yours you don't mind having exposed and then point your agent to that repo.
Now ask questions: what api calls are made by this repo? Where are secrets stored and sourced from? Do an adversarial investigation and list the bugs. Then fix the bugs.
Then review the work and determine the value and how to wield this new tool. It replaces reading, writing, and editing - not thinking.
> It replaces reading, writing, and editing - not thinking.
If that wasn't a hyphen I'd be sure this line was AI-written.
You were right to call out the possibility. I assure you, honest take: this is all written myself.
I cannot stand the style of Opus 4.7 and 4.8.
Indeed it is. I’m very grateful to what LLM enables me.
The revelation to me was that I used to code what I know, now I could code what I don’t know. The common path is that when I face something I don’t know, which is quite often, to move forward I have to level up my understanding.
I find the more structure that the AI can be given to follow the better. I recently tried building a side project with Elixir, Phoenix & LiveView but on the recommendation of somebody I decided to have it use the Ash framework within it.
I've been very pleasantly surprised. The combination of the compiler improvements in Elixir 1.20 and the structural guardrails from Ash seems to have led to very consistent, organized and readable code.
As apps get larger and more complex, I get the LLM to produce 'developer documentation'. I find it helps them stay on the rails, and it helps ME stay on top of everything.
The 'spec' frameworks are documentation as well, but can become contradictory as decisions about the app change over time.
I think the mistake there was the 5 hour session specing the app. It's so hard to know what you want before you see it, so optimize towards seeing it as soon as possible. That's what I thought the article was going to be about based off the title.
Once you have something concrete you can iterate on the prototype until it's a mess. But, hopefully, in that time you got closer to figuring out what you want. And even if the code for the prototype is a mess the "idea" of it should be cleaner. I like to have an LLM make a new spec at that point, and start fresh with it. You can clean up the abstractions and the UX there.
When writing code is cheap figuring out what you want to write is the hard part. It always was, but the barrier of getting the code written and working made that less obvious.
One of the most foundational insights I’ve ever had in IT is clients don’t know what they want until you shove it in their face. And only then do they say no, no, no, change this, this and that.
Same story as building a house. There’s so many unknowns.
it's cunningham's law where the fast LLM generated iteration is the confidently wrong answer that the clients will correct
The only two instances where I didn't manage to achieve satisfactory outcome with AI were when I overspecced ahead of time. The things I left out of the spec were implemented in the most undesired manner possible.
The best mode of work for me was gradually sculpting the prototype into a product by providing feedback and moving to version 2 (from scratch but often with v1 accessible as inspiration) if I felt like it's becoming overbloated.
A climbing app..
Does anyone want one?
The article says to stop building and go outside!
And actually, talking about climbing apps with fellow climbers is a great way to be outside.
I climb and I want one :)
> talking about climbing apps with fellow climbers is a great way to be outside.
Indeed. The climbers I met are very supportive. They helped me scan the gym, shared their own climbing footage, which is what I'm trying to do, visualize climbing in a 3D scene.
> And I think that’s the biggest danger of AI. You convince yourself that you are doing something useful when you are not.
Building technology to overcome relatable hardships and frictions is a worthy challenge full of meaning.
Using someone else's technology to erase frictions and hardships from your life can erode meaning.
On my worst days I am convinced programming and technological optimism is a theft of meaning; personal satisfaction at solving a human problem awkwardly mapped to technology, at the expense of users dating, socializing, or consuming with discomfort and therefore the possibility of growth and meaning.
I agree with your overall sentiment, although maybe the article and this sentiment more generally are going a little bit overboard with the skepticism/negativity.
It is a little alarming the way people treat AI as another human relationship, yes.
But AI is also a pretty useful research partner and rubber duck for ideas so long as you know going into it that it’s going to have a bias toward agreeing with you.
This situation reminds me of Calvin and Hobbes comics that mock the idea of Calvin’s dad’s idea of building character.
For example, I was debating ECC memory and cheap used business workstation hardware for a homelab recently with an AI. It helped me pick a system out of some eBay listings and verified whether the model and Xeon processor SKU supported ECC.
When I went to buy the RAM, it actually caught a mistake where I thought a listing was for UDIMM when it was actually RDIMM.
It’s not going to build my character or build my growth and meaning to buy the wrong thing from an online store.
> It’s not going to build my character or build my growth and meaning to buy the wrong thing from an online store.
dealing with the consequences of my mistakes sounds like growth to me
And when a mistake is deadly? Should we remove all safety systems so we can deal with the consequences?
The number of mistakes you can make is infinite in comparison to the number of correct choices you can make. Since you don't have infinite lives and time there must be some manner of problem space reduction to ensure you get anything done.
Luckily for us humans evolution has spend quadrillions of hours doing just that for us. Modern technology has made it so you don't spend your entire life trying to get something to eat every waking moment of the day. This leads to some problems of your ideology of hardships lead to growth. Which hardships? Which growth? Should you go back to living in a cave like a mammal to get the full experience?
This is a good time to point out that slippery slope is a fallacy.
Saying, "Experiencing some friction is good for building character" is not equivalent to saying "We should demolish all technology and force babies to survive on their own in the woods."
That the extreme position is wrong does not strictly imply that the moderate position is too.
There being a more extreme position that is wrong, doesn't mean that a supposedly moderate position isn't extreme. See: Overton window.
This is the particular problem with deciding a position, it's all shades of grey.
200 years ago a good number of humans thought that owning other humans was a-ok. Today that's mostly not true. In 200 years it's likely the vast majority of humanity will look at eating meat and owning pets at the same level of horror. Which is the extreme position? Which is the moderate?
> evolution has spend quadrillions of hours doing just that
Magnitude pedantery incoming: 1 billion years is "only" about 10 trillion hours.
Thank goodness it was only one bacteria doing all that evolving!
Think of combined manpower. If you have 2 people working an 8 hour shift you've spent 16 hours.
/Pedantry crisis averted.
Oh good, that does make me rest easier. Though technically the units should be man-hours (or bacterium-hours?). Now this makes me wonder how many life-hours there have been...looks like ^40 'beings' over all time[0], and ^43 being-hours total.
Fun math!
[0]Crockford et al. (2023) estimate about 10^30 cells exist today, and between 10^39 and 10^40 cells have ever existed on Earth.
Yeah, but it would be more-or-less in parallel, spread over however many organisms
Mistakes without a significant lesson or takeaway aren’t a useful avenue for growth.
I think it’s possible that this concept that AI is an easy shortcut is a form of gatekeeping.
We had the same reactions to StackOverflow and web search when those technologies came around. And there’s certainly partial truth to it. Maybe reading a full book really does make you more well-rounded than googling your answer, but sometimes blowing a lot of time searching an index in a physical book hoping to find the piece of knowledge you need is just spending time for sake of spending time.
The more attention you give a thing, the more it changes you. Significance is up to you.
Maybe you never learn to check your own details. Maybe that's ok.
Yes but what would they learn from their mistake?
"I should run my purchase decisions past an AI in the future."
Yes, but it's dumb to deliberately provoke a mistake that could be avoided, just to "build character"
This quote from Philip K Dick seems relevant:
Reality is that which, when you stop believing in it, doesn't go away.
It’s a nice quote. But what about the notion that we’re always believing in something, and sometimes those beliefs tune closer to something objective but if we keep tuning past that into something else, then that reality becomes hard to conceive of and really does seem like it’s gone away.
No matter how much you don't believe there is a tiger behind the bush. The tiger really believes you are going to be tasty.
So you build a machine that kills all tigers and now you don't have to worry about belief.
The problem with objective reality is 1. it changes. 2. it can be different for different people in different places.
If I live in rural India, there is probably not a tiger behind the bush. If I live in downtown Chicago there is almost certainly not a tiger behind the bush. This leads to the hard problem of probabilistic thinking which requires a lot more energy than black and white thinking.
Lastly, humans are real, and even incorrect belief systems create a reality you have to live in. God, for example, is almost certainly not real. Saying that in a forum will have some percentage of people downvote you and try to reply with a relatively poor argument. Saying it in the wrong place and time outside of the internet can most certainly get you killed. So just because something isn't real doesn't mean you should open your mouth at an inopportune time and learn the reality it created.
Conscious probabilistic thinking is perhaps more demanding of energy. But all animals engage in subconscious probabilistic thinking. That gut feeling you have for example is your inner bayesian logic refined from millions of years of natural selection. The child being afraid of the dark is demonstrating deeply ingrained probabilistic thinking and assessing survival risk in real time. The higher order abstractions modern language and modern structured society saddles upon us often get in the way of how our mind actually works, as they are far younger than the mind. Poke a bug with a stick: it runs away. Poke a lizard with a stick: it runs away. Poke a human with a stick: it runs away. This example is an ancient survival mechanism all shared by the common ancestor of the human, the lizard, and the bug, which is probably half a billion years old or more. And we won't necessarily get any better with the demands of modern language and society either, as these are under far weaker selection pressures (if any) than these other highly conserved behaviors.
This leads to the hard problem of probabilistic thinking which requires a lot more energy than black and white thinking.
You are overthinking this. Reality exists in a point in time and space, same point where you are. That is the only problem you face.
When you break a leg you can’t start believing it is all good. It doesn’t go away.
As much as you would have aspirations to be a pro soccer player, badly enough broken leg can prevent you from ever being good enough.
Your imagination of being pro player does go away when in reality you’re not fit for the purpose.
You can't become a pro footballer just by wishing your leg wasn't broken, but you can pay close attention to the difference between pain and suffering, and acknowledge the pain without accepting any unnecessary suffering.
Pain is part of reality. Suffering comes from wishing reality was different to how it is.
There will always be a point where you simply snap under stress, no matter how well you rationally understand the difference between pain and suffering while being at rest, and you will undeniably suffer from the pain when that happens. It's why torture works so well.
Not to say that knowing this difference has no merit, just saying that it has limits to how much it can do. After all, reality can also hit the brain, when it gets flooded by hormones and neurotransmitters that take away your rational thinking.
Maybe that's the kind of reality that the posted article is about, but I would say that, soccer is already just a made up game that has no inherent claim to reality, and pro-soccer doubly so.
There isn't an exact quote from Douglas Adams, you have to read it all, but he put the point marvelously: reality is scary, unlimited and lovecraftesque, and we have filters to avoid that. Only when you master those filters you can consider yourself conscious.
I think we might about have the technology to build the bad thing blocking sunglasses now.
Common philosophical answer is that people only can know the approximation of reality, never the reality itself.
Better approximations usually score you more points, which is why our perception usually evolves closer to reality.
Bad scoring systems exist.
For example, let's say if an extremely privileged person – a favorite son|daughter of a billionaire – takes random chances and people around him|her always agree and accommodate for them to win (because they want a favor from a parent), than this person will most likely have a very warped sense of reality through no fault of their own. Basically their only approximation could only be "Do whatever, just don't touch fire with bare hands and don't make daddy angry"
On the other hand, the suffering child from "The Ones Who Walk Away from Omelas" would also have warped sense of reality, because they lose no matter what action they take. The only reality approximation they can know is "everything feels bad"
Sidenote: in my philosophy, the continuous warping of reality happens mostly to people in overprivileged and underprivileged positions. Which is why I believe that a good equality index makes for a healthier society. But thats my pov, I'm not trying to sell it or anything :)
Note that I wrote "continuous warping". While sometimes bad approximations got rewarded more than good ones, reality is probabilistic. Since it can't be comprehended by people, we basically define reality as "something that is more likely".
And that's the answer to your question. If you tune past the reality, you start scoring worse again, and turn back. It's a distance thing, and the goal is to get as close to zero as you can, doesn't matter from which direction.
Love it.
And something I wish the current crop of AI startups learn as well, just making XYZ agentic maybe isn't the answer to everything.
Same folks that said crypto will destroy traditional finance are now saying stuff like, AI will "destroy" all jobs and create a permanent underclass. Almost feels like every few years a new cult gets created with messaging perfectly designed to trigger the Gen-Z(/current college generation) into a frenzy and drinking the kool-aid.
Can't wait for it to be over (and then to do it all over again with something else). Being in my 30s helps. I care less :)
Yeah. In the 90's it was outsourcing is going to move all software jobs to India. Turns out that did happen, but also not. Still, manufacturing jobs have actually left the USA.
I think there is something parasitic in both legacy media and actually even worse in new media - where it finds the most toxic, negative idea that can latch on to the minds of the masses and runs away with it.
Maybe "things going bad suddenly in the near future" is just such a captivating idea to the human mind that those narratives will always find a way to dominate vs "everything will continue to slowly get better".
Maybe things are going bad suddenly in the near future. For instance, the projected weather cycle later this year is four times as powerful as a Super El Niño. The US is one week away from running out of gasoline (was 4 weeks away, 3 weeks ago). Are these not things that should be reported?
I don’t think it’s about what should or shouldn’t be reported. It’s about your relationship to those things. If you wake up on July 21 and there are no headlines saying “The US has run out of gasoline, no driving!”, will you breathe a sigh of relief and be happy things weren’t that bad after all? Or will you browse the headlines for other scary things that might happen in the near future?
>It’s about your relationship to those things.
The year 2000 problem is a good example of this. The year 2000 problem was not a problem. Not because it wasn't a problem, but because a shitload of people did a lot of work to make sure it wasn't a problem. If we didn't have news saying 'oh no, this is a problem' before Jan 1 2000, would it have been taken so seriously?
In February 2021 Texas was so incredibly close to losing the grid that it should strike terror into the hearts of anyone that lives there (see Practical Engineering episode on black starts). Simply put this would have been a massive humanitarian disaster in the 3rd largest state in the US of a size the US has not seen in the modern era. Thousands would have died from the extreme cold that was occuring. Thousands more from a lack of medicine. Fuel would have been trapped in the ground, and ran out quickly anyway. The loss of refining capabilities on the coast would have crippled the entire US. Because of the stupid design of the Texas grid it would have taken weeks or months to get everything back online.
The modern world has become very fragile due to long supply lines of necessary supplies. Covid did a good job of showing some of these weaknesses. I don't think the "did bad thing happen or not" is the way we should be looking at this. It's "How can we reduced the impact of bad things happening". And we're doing a terrible fucking job at it by consolidating companies and industries even further.
Maybe we should actually be worried about a billion+ death event in the near future because of our stupid decisions at a global scale. Maybe we should turn that fear into doing something into preventing it.
Speaking of grids, USA power companies are saying they'll have to start blacking out millions of homes within a year, to have enough power for AI DCs.
Hopefully we're still at the point that millions of pissed off voters are more important than the relatively small number of DCs.