I have never once said "Go build feature x" and let it run off. Not saying you do, but I feel like this is how a lot of people interact with these tools. I have a very conversational style of building with these tools, and I'm very blunt with them when I think they're wrong, since I'm fairly experienced and I can smell when something is seemingly wrong with the model's thinking.
I typically have a discussion about how I want the architecture to be and my exact desired end state. I make the model repeat back to me what I want and have it produce the plan to the degree I am happy with. I typically do not have it work in building large amorphous systems, I work with and have it plan subsystems of the overall system I'm building.
A lot of my discussion with the model is tradeoffs on the structure I'm imagining and methods it might know. My favorite sentence to send Claude right now "Is go google this." because I almost never take its first suggested response at face value.
I also watch every change and cancel and redirect ones I do not like. I read code very fast and like the oversight, because even small stupidities stack up.
The workflow is highly iterative and I make changes frequently, my non AI workflow was like this too. Write, compile, test, tweak and repeat.
I like this workflow a lot because I feel I am able to express my designs succinctly and get to a place I'm happy with with much less writing than a lot of the actual code itself which in many cases is not an interesting problem, but work that needs to happen for a working system at all.
I do wind up taking over, but feel less than I used to, in edges where its clear there is not a lot of training data or I'm working on something fairly novel or lower level.
I work in Python, Rust and Typescript (Rust by far most often) and the majority of my work is technically challenging but at the systems design level maybe not low level systems programming challenging. Think high concurrency systems and data processing, training models, and some web dev.
To add to this, I find talking to it about code quality or architecture issues can work quite well. Just treating it like another developer. Saying, “I’m not happy with the way the project is going because of X, and Y” and then making a plan for how to get things back on track. Maybe putting a complete rewrite on the table, or maybe just having it record the agreed code style principles in CLAUDE.md, etc
This bit a community discord server of mine where I am a mod last night since we have a large oceanic contingent, somehow NZ got swept up in it too and we scrambled a bit to change our onboarding and other general policies.
That solution will not work as well when the interfaces have not been standardized in a way that makes it so easy to import them into a script as a library.
Coding against every subtly different REST API is as annoying with agents as it is for humans. And it is good to force vendors to define which parts of the interface are actually important and clean them up. Or provide higher level tasks. Why would we ask every client to repeat that work?
There are also plenty of environments where having agents dynamically write and execute scripts is neither prudent nor efficient. Local MCP servers strike a governance balance in that scenario, and remote ones eliminate the need entirely.
It's not particularly hard for current models to wire up a http client based on the docs and every major company has well documented APIs for how to do so either with their SDKs or curl.
I don't know that I really agree its as annoying for agents since they don't have the concept of annoyance and can trundle along infinitely fine.
While I appreciate the standardization I've often felt MCPs are a poor solution to a real problem that coincided with a need for good marketing and a desire to own mindspace here from Anthropic.
I've written a lot of agents now and when I've used MCP it has only made them more complicated for not an apparent benefit.
MCP's value lies in the social alignment of people agreeing to use it, it's technical merits seem dubious to me while its community merits seem high.
I can accept the latter and use it because of that while thinking there were other paths we probably should have chosen that make better use of 35 years of existing standards.
Well if everyone was already using Swagger then yes it would be a moot point. It seems you do in fact agree that the standardized manifest is important.
If everyone had a clear spec with high signal to noise and good documentation that explains in an agent-friendly way how to use all the endpoints while still being parsimonious with tokens and not polluting the context, then yes we wouldn't need MCP...
Instructing people how to do that amounts to a standard in any case. Might as well specify the request format and authentication while you're at it.
I don’t get your point. Obviously some spec is needed but why does it have to be MCP?
if I want my api to work with an llm id create a spec with swagger. But why do I have to go with mcp? What is it adding additionally that didn’t exist in other spec?
You can ask an AI agent that question and get a very comprehensive answer. It would describe things like the benefits of adding a wire protocol, having persistent connections with SSE, not being coupled to HTTP, dynamic discovery and lazy loading, a simplified schema, less context window consumption, etc.
Yep. And those that did implement the standard did so for a different set of consumers with different needs.
I'm also willing to make an appeal to authority here (or at least competitive markets). If Anthropic was able to get Google and others on board with this thing, it probably does have merit beyond what else is available.
Well reading comprehension tells us they were surprised that most monero folks run their own nodes and that they were unable to find supporting information.
No, reading comprehension tells us that Claude Opus output the "unable to find supporting information" claim, which abecedarius faithfully relayed to us. There's no evidence in the text that suggests abecedarius attempted to find supporting information.
It was a form of "huh, interesting. I tried to quickly find some more evidence for this but failed."
If Claude as search engine were able to link to some backing (maybe like "we estimate around n nodes regularly joining the network, which roughly matches the order of magnitude of estimated users" ) -- that'd be great! I'd have said I was surprised but look what I found.
Instead:
- it couldn't dig up anything supporting, except that Monero sites encourage users to run their own node;
- one point it raised against was confirmed by another reply to my comment ("apps like CakeWallet, where their node is used and assumed as trustworthy"). (Claude listed the same and a couple more wallets it called "popular" with similar trust dependence.)
I agree with GP that just relaying a chatbot is rude. That's why I didn't do that.
Okay and if they had said Google we wouldn't be doing this dance, people just hate AI and its obnoxious to see comments about it on HN all the time. On a crypto post no less.
We get it you guys don't like AI, next!
It is equally obnoxious to people who talk about AI for everything as if it is a savior, it's a tool use it or don't.
I don't think there's an objective assessment of good code. I've been writing code for over 20 years at this point and most times I've seen what people describe as their own good code I disagree with various decisions.
Experience CAN remove pitfalls, though developers even disagree about those sometimes.
Organization, chosen abstractions, naming etc are basically personal thinking and have differed on every team I've ever been on.
When it's been good is when it's been consistent and that's taken a strong personality the team trusted to have authority.
Good code is subjective, especially once you start wandering into the territory of more esoteric approaches such as functional programming, domain-specific languages, code-generation, etc.
Bad code is one of those things that we can almost all agree on, often even the person writing it.
Alternatively: I don't know how to make a good movie, but I can recognise a really bad one, and you'll almost certainly agree with that opinion. You and I however will almost certainly not agree on what our favourite movie of all time is. The nuances and personal tastes become more important at the last few percentage points approaching 100% "like".
I think we can agree on a version of bad code, specifically extremely bad code.
Just as we might agree on universally panned bad movies, but disagree on cult followings or one of us for a particular reason can't stand a popular movie.
That is to say we can all agree on extremes, but just because something isn't extremely bad doesn't make it good in everyone's eyes and that's where the contention is.
I used to obsess about code, but over time I came to dread coming into a new codebase and finding layers upon layers of pointless mini-architecture. There would be a controller calling into a separate package where the actual implementation is, then that would call into a layer where service calls are, then all that would be abstracted just in case and built into a separate jar, and so on. And there would still be cross-dependencies. I think what happens there is a kind of purity spiral effect and developers have to go through the motions of following the best practices du jour instead of just calling the damn method.
I feel like its just a reflection of people's minds. People organize their thoughts very different from one another and people often don't organize their thoughts at all when under certain constraints such as needing to ship NOW.
Especially with enterprise code you're hammering your thoughts into a shape roughly compatible with someone else's so its no wonder overtime with the constant revolving door of people that without careful shaping things can get nuts.
This is mostly the financial sector generating revenue and shipping/receiving. There's not really a lot of actual production going on since that's what really backs the funny money you referred to as "generating GDP."
I think this means we need to rely on web technologies more. PWAs are looking pretty good on mobile devices these days and you can publish any web app you want with no reviewing authority. The web has a bunch of crazy APIs now that let you build crazy things and for everything else you're a hosted server away somewhere that can run more complex jobs.
I believe devices I own should let me do whatever I want with them and I agree that the verification is BS, but I'll work around it in the ways I can which means building more for the web.
If that ever drops the open pretense (since both traffic and trust authority are largely centralized and thus easily controllable) then I'll only write for self hosted linux boxes.
We as individuals can only do so much. We'd need actual organization and some measure of political power to do anything more since normal people do not care about this.
I obviously understand this and mentioned as much indirectly in the post. You can only do so much and the web is still more open than Android is about to be so again, you do what you can.
The tl;dr is that a PWA implies an app which is based in the cloud. So suddenly you need a server, and you need to store user data, which means costs and dealing with privacy and security.
If something could be built as a native app without depending on a central server, it could also be built as a PWA without a central server. You don't need to store user data centrally at all, just because it's a webapp. You can just have the clients use localStorage or IndexedDB or whatever.
You still have to host the static files for the webapp itself, but that can be made very cheap.
Of course, API feature parity between native and web apps is a separate issue. But the argument about server costs doesn't seem like a good one.
Sure, but localStorage isn't really ideal for storing large objects anyway, because it forces everything to be stored in one big string-to-string map. It's great for small amounts of data such as user preferences.
There are other APIs that allow you to store binary data directly (which you'll probably want if you're storing large files) and also to use/request larger quotas.
I read the article, and I'm pretty certain he's talking about a traditional web application. When we speak of PWAs we're thinking of a set of APIs that let a web app behave like a native application. i.e 'installation' + service workers, background sync, IndexDB/FileSystem etc. You could probably make a self-sufficient RSS reader with what's available.
It seems to me that, ironically, PWAs are uniquely ill-suited for the type of non-corporate software where distribution outside mainstream channels makes the most sense.
PWAs are at the mercy of Gapple have always been handicapped in just the right places to not be viable vs installed apps. Most people don't even know how to install one.
This is harmful speculation. Many PWA features are broken in small ways which add up. The caniuse database does not test that a PWA feature meets the spec and there is no better database. Nobody can say that PWAs are "looking good" without such testing.
Others are saying the end of leaded gasoline, I’ll add that around 2008 when the trend accelerates schools started becoming more locked down and consequences for being a kid can now follow you into adulthood much easier due to social media.
I think we’re seeing a natural result of kids being scared of that one bad night being immortalized or that one fight turning into an arrest.
Interesting; for what it's worth, as a black person who grew up in a relatively privileged environment, the "one bad fight" rule was subconsciously our entire existence in a way that it wasn't for many people around us.
More likely to get hit with a Zero Tolerance punishment for a single isolated incident, which derails your entire trajectory through the school system.
Right -- like "later" is one of the luckier outcomes.
Win or lose, start or end the fight, regardless of what actually happened -- there's always the extremely lopsided chance that I'm seen as the aggressor and get strongly punished; especially in the days before cell phones.
+1 for the Lead Hypothesis. Apart from negative health effects, lead exposure leads to more impulsive behavior and reduced inhibition - which kind of covers nearly everything here.
Have to say, I am glad that the world is safer and less wild, but I do miss the creative energy and "real world" social engagement of 1980s-1990s
That generation were a bunch of mindless, selfish dicks. Free from poisoning, the new generations can think clearly about how to be selfish dicks, and plan it out more deliberately.
Generalizations about generations are pretty silly. Every generation, baby boom, X, Z, millennial, etc. has a pretty heterogeneous mix of mindless, selfish dicks, geniuses, morons, artists, business people, wizards, creeps, and normies.
> I think we’re seeing a natural result of kids being scared of that one bad night being immortalized or that one fight turning into an arrest.
> You’re just not allowed to be a kid really.
I learned yesterday about the skull breaker challenge, where you and two friends line up and jump at the same time to see who jumps highest, except the outside two people conspire to kick the legs out of the middle one. Is that being a kid? If anything, the proliferation of social media is enabling the normalization of deviance in the form of these meme challenges. People are going around spraying bug spray on the produce at the grocery and posting it on TikTok.
Yeah I would be willing to bet serious money that this is a few kids and that the number is not even greater than a fractional fraction of a percent.
You're seeing point wise incidents, chosen to generate outrage, and trying to apply them like all kids are doing these things, which per all trends they are not.
Sorry some fraction of people will always be stupid, we shouldn't apply constraints on the many to save the few stupid ones.
How many of these trends are we seeing and how much of a fraction of a fraction do they represent in sum? The article discusses specific declines but doesn't look at data regarding increased incidences of social-media-driven acts of deviance. That's like pointing at the declining use of the saddle while ignoring the rise of the automobile. I guess I should revise my previous hyperbolic statement as I don't know if the deviance is made up for in other ways, I would just have appreciated a broader view.
I'm sure you never heard "if your friend jumps off a bridge would you?" question growing up. But it seemed to be very common saying in my family and in others at the time. So it seems like kids were making bad decisions based off of peer pressure well before social media. It's only that it goes "viral" that anyone pays attention at all. Just more ammunition for the "kids these days" type of people I guess.
Deep water Jetty's are way more fun - from the deck at a king high tide, barely ten feet, from the top of the service shack at a King low tide, fifty feet and more.
Plenty of time from primary school to junior high to work up to a proper jump.
The lead in gasoline hypothesis is certainly plausible, however, I blame the larger picture of car dependency as well as the Thatcher/Reagan revolution, when 'stranger danger' was the big fear.
The article does go into this aspect, with a map of Sheffield in the footnotes showing how far eight year old kids were able to travel over the different generations. There was a time when the child could go across to the other side of the city to go fishing, whereas now, a child is essentially imprisoned and not expected to be going very far.
The Thatcher/Reagan revolution created exceptional oppositional culture in the UK, with 'rave' being the thing. The last 'free range' children grew up to be the original ravers and they had considerable organisational ability, needed to put on parties and other events. Furthermore, the music of the rave scene was banned by the BBC and the government ('repetitive beats').
In time, most of the rave generation grew up, got day jobs, had kids and all of that fun stuff. They got old and moved on, however, there was nobody to fill their shoes. Instead of illegal rave events and lots of house parties, organised festivals and city nightclubs took over. The cost aspect meant going with a small handful of friends rather than just the closest two hundred friends.
A good party should be heard from a considerable distance away (sorry neighbours) and I am surprised at how few parties there are these days. I travel by bicycle on residential roads, often late at night. Rarely do I find myself stumbling across people having house parties. This doesn't mean that parties aren't happening, but, equally, it doesn't mean I am old and out of touch.
I would suggest that another trend which contributes to this "one bad fight" is the growing personal disposable income in the US, which allows parents to be highly litigious, demanding things like arrests of kids their kids get in fights with:
Anecdotally, teachers have been talking about fear of getting sued by parents for a long time now. I suspect this is a big driving force behind the "everyone gets a trophy" mentality and not at all liberalism. Teachers have been kowtowing to moneyed tiger/helicopter parents in ever more egregious ways.
I typically have a discussion about how I want the architecture to be and my exact desired end state. I make the model repeat back to me what I want and have it produce the plan to the degree I am happy with. I typically do not have it work in building large amorphous systems, I work with and have it plan subsystems of the overall system I'm building.
A lot of my discussion with the model is tradeoffs on the structure I'm imagining and methods it might know. My favorite sentence to send Claude right now "Is go google this." because I almost never take its first suggested response at face value.
I also watch every change and cancel and redirect ones I do not like. I read code very fast and like the oversight, because even small stupidities stack up.
The workflow is highly iterative and I make changes frequently, my non AI workflow was like this too. Write, compile, test, tweak and repeat.
I like this workflow a lot because I feel I am able to express my designs succinctly and get to a place I'm happy with with much less writing than a lot of the actual code itself which in many cases is not an interesting problem, but work that needs to happen for a working system at all.
I do wind up taking over, but feel less than I used to, in edges where its clear there is not a lot of training data or I'm working on something fairly novel or lower level.
I work in Python, Rust and Typescript (Rust by far most often) and the majority of my work is technically challenging but at the systems design level maybe not low level systems programming challenging. Think high concurrency systems and data processing, training models, and some web dev.
reply