Sub Agent or Super Agent, MCP UI Over Lunch, Bitter Lesson Learnings, Locking in on Prompts and Trying to Live in the Future
Matthew Carey (00:01)
Mate, do you like my cactus?
Wilhelm Klopp (00:01)
Eee! I love
your cactus. No, I've never quite seen a cactus shaped that way.
what's been happening in your life? Because I've seen so much wild content from you or about you on Instagram. Were you like catching fish yesterday in the ocean with like just a net?
Matthew Carey (00:21)
last week. Like maybe Wednesday evening. I caught loads of whitebait for dinner. It was really nice.
Wilhelm Klopp (00:28)
What?
Wait, were you... That's amazing, first of all. I didn't know you could just do that. Like, you were just running up and down the beach.
Matthew Carey (00:35)
in my boxes.
Wilhelm Klopp (00:35)
Yeah. ⁓
Matthew Carey (00:37)
That was also the bit you messed out. was definitely in my boxes on the video you saw. yeah, so I was in Dorset, Portland in Dorset. So not Portland in the US, Portland on the South coast of the United Kingdom. And what happens is you get these like bass that come up the coastline and they scare all the little fish or the little whitebait. then, these massive schools of whitebait end up on the shoreline. And yeah, we found a...
Wilhelm Klopp (00:49)
Mm.
Hmm.
Matthew Carey (01:01)
very broken net and I was just like running around like picking up whitebait. Yeah I got loads of them, I got like a couple of kilos.
Wilhelm Klopp (01:07)
Wow.
What? Wait, so this wasn't even your own net. This was like something you found on the side of the beach or something.
Matthew Carey (01:14)
Yeah, I found the net. It's like kind of like a trailer park, like the sailing center. And there's loads of random stuff everywhere. So I found a net underneath a friend. A friend found it underneath his trailer. And yeah, ran around. I think he's going to restore it though, because that net did a good job. It was really good. We got so much whitebait and he was just there with a bucket and I was there like picking up whitebait. It was great. You put them in a little bit of flour and then...
Wilhelm Klopp (01:34)
It looked very beautiful here.
Matthew Carey (01:41)
like shallow fry them and you end up with like fish chips essentially they're really nice
Wilhelm Klopp (01:44)
incredible. Very
very cool. By the way this wasn't your... you said you're gonna do like a windsurfing vacation right? no a parasailing vacation? I forget actually.
Matthew Carey (01:53)
I was meant to
go paragliding, I'm gonna go paragliding on the cliffs, but the wind was bad. That's why we didn't have a podcast last week, because I was meant to be doing this, but the wind was bad for paragliding, but it was great for everything else. So I went kite surfing, went windsurfing, did all the stuff that I haven't done in ages, because I live in London. Got Juliet wind foiling as well, which was really cool. Or wing foiling, wing foiling, you know, with the inflatable wing that you like hold, like the inflatable sail.
Wilhelm Klopp (02:00)
I see, I see, I see.
Ooh, what's that?
Matthew Carey (02:20)
⁓ They're really big on it in San Francisco. Like if you go down to Chrissy Fields, there'll always be people wing foiling. So I got her doing that the first time. We also went kite surfing, like normal kite surfing.
Wilhelm Klopp (02:21)
No, I don't know that. What? That's-
⁓
what? That looks amazing.
Matthew Carey (02:34)
Yeah man, you can go do that in Chrissie. You should go. It's just down the road from you.
Wilhelm Klopp (02:37)
It's just down the road, yeah. I've never seen that before. So it's like windsurfing, but the sail isn't attached.
Matthew Carey (02:44)
Yes, and the boards are normally smaller, thicker, and have hydrofoils on the bottom.
Wilhelm Klopp (02:49)
Yeah, it's like the one from the Mark Zuckerberg video on 4th of July.
Matthew Carey (02:53)
Maybe, maybe, I don't know. Yeah, you can like pump on it. I remember seeing a video of him behind a boat, like wakesurfing in a full suit. But that's not the video you're thinking of. That was like kind of a baller video, but he wasn't foiling in that one. All of the tech people love hydrofoiling. Like one of the Google founders is very well known to like hydrofoiling.
Wilhelm Klopp (02:55)
The one you can like rock on and whatever.
Okay.
I see, I see, I see. OK.
You
Matthew Carey (03:20)
⁓ hydrofoil kitesurfing he's like super into like the top of the range, fastest kites and yeah. Some of my friends have done some, instruction coaching guidance for him.
Wilhelm Klopp (03:32)
I'll tell you what,
when you're back here in October, we'll go.
Matthew Carey (03:37)
Yeah, it'll be really fun. Yeah, I mean, I heard October's a pretty good time of year for it. Yeah, dude, you should really get into that sort of stuff. San Francisco is one of the best places in the world for wind sports because it's super breezy and you're right underneath the bridge. So just like the scenery is awesome.
Wilhelm Klopp (03:39)
Let's do it.
Yeah, it's like the summer.
Yeah, it's amazing. mean, to be honest, like, has been, like, really cold or whatever. Like, it's super foggy. I'm just looking out at it now and it's not as warm as a lot of people think it is, but it's really nice in, like, September, October, from what I hear. So I think maybe that would be the best time to do it. But dude, it's not like I have so much spare time to pick up all these extra hobbies. There's too much already. But it looks really fun.
Matthew Carey (04:12)
Yeah.
No, it's good. I think like the aim is to do as much focused as you can and then you like get good enough at it that you can just go for an hour. Like that is the gold standard. Like when you get into something, it always takes the whole day. And like, even if you're doing just a lesson for two hours, that two hours consumes the whole day, right? And then once you've done it a bit and once you like have some time, I know people who live in...
Wilhelm Klopp (04:22)
Mmm.
Matthew Carey (04:36)
I know, live in Spain and Portugal and stuff, and they can go surfing in the morning, like before work, they just go surfing. There's a guy was chatting to who works at Century now, he just lets you go surfing before work, it's awesome. For me, that is a whole weekend trip to spend like three hours driving down to the South Coast to go surfing.
Wilhelm Klopp (04:45)
Yeah, that's really, really cool.
Mm-hmm. Mm-hmm. Mm-hmm.
Yeah, it's similar for the cycling. That's think the stuff I do most here and that's most different from life in London, is you can just have these really incredible cycles in the morning and there's several groups going every day.
Matthew Carey (05:05)
Was there a hit that would be mostly
a weekend thing? Like if you want to do a decent ride to get out, like you're getting a train somewhere or you're doing like a pretty long ride out into the countryside. Yeah, definitely.
Wilhelm Klopp (05:15)
Yep, the train
and bike combos is quite elite though. I do back that. I like that a lot.
Matthew Carey (05:20)
The train and bike combo, don't
think, I think, okay.
I don't want to tangent this to, to, to, to, to, to sub agents, but the training, the train and bike combo reminds me of some like hack that we've done because we, because we live in a city that's expanded so large that it's actually not that very livable in, if you're into outdoors. And so the train and bike combo is a necessity, which is, I want to bring up our first topic, Claude code sub agents, which is exactly the same reason as Claude code sub agents.
Wilhelm Klopp (05:24)
Well, it's really...
Mmm.
Matthew Carey (05:51)
You do it because context windows are too small. And so you need to create a sub agent to go out and explore the wilderness to get some answer to not pollute your main context window. Yeah. There you go. There's your, there's your tangent. Where's the other? I think people are going to overuse them. They're going to build massive, like a scaffolding around sub agents. And then actually better context window models are going to have less and less use for sub agents. There you go. The bitter lesson of life in London.
Wilhelm Klopp (05:58)
That is a really interesting way to describe that.
Yeah, that's really interesting. I
hadn't quite thought about it that way. Have you used sub-agents for anything yet? Whenever Cloud Code releases a feature release, I'm like, wow, this is like a game changer. The word that should be banned. But then like an actual practical use like.
Matthew Carey (06:19)
over optimizing on the awful stuff.
Yeah.
Wilhelm Klopp (06:33)
I know, I guess we're like very early still and it's like we need to figure out how to use this stuff still. But I feel like there's some exciting future for subagents. I wish MCP servers could provide subagents, to be honest. I think that is really interesting.
Matthew Carey (06:38)
Yeah.
That's to
A, that's A to A dude. That is A to A. It's like the agent to agent protocol is like you provide sub agents for your mate for another agent that wants it to go off and do some research. I think in a couple of years, if that either takes off or dies, I think you'll see like the conclusion of that thought.
Wilhelm Klopp (07:03)
Interesting.
Matthew Carey (07:04)
we all think about HTTP, right? But HTTP, isn't it just a like TCP request? And it's like a higher level thing. It's just TCP, right? So like maybe we, in a couple of years, we start all thinking about, we start thinking about A2A and under the hood, it's just MCP.
Wilhelm Klopp (07:10)
It's just... yeah... It is just...
I see, Yeah, to be honest, I don't really know that much about A2A. It felt like more, it felt a little bit like Google wanted to have its own MCP, but then it decided to actually go in on MCP as well.
Matthew Carey (07:34)
It's kind of cool.
I think it's really good for the infrastructure companies. So it's saying you define an application with an entry point that you put in a specified place, that you document in a specified way, you document the capabilities of your application, of your agent, and then now you have this agent building block that you can then compose and use in other applications.
It's like you have access to these tools. This is the entry point. Knock yourself out.
Wilhelm Klopp (07:57)
Yeah, like the entry point.
⁓
Matthew Carey (08:03)
I
Wilhelm Klopp (08:03)
Interesting.
Matthew Carey (08:04)
made the example for the Cloudflare agents, just to have an example inside the agents SDK. And I think it will be really cool for them because they'll be able to utilize that in much more of deep way. If you're an infrastructure provider and you provide a way for people to write their application code so it conforms to a spec,
then you can do way more stuff there because you have like some knowledge of what your person's done with the application. So you could then have some special RPC which directly calls other A2A agents without necessarily needing like a direct connection or something. I don't know. There would be like loads of funky things that you could do if you knew what was going on in that worker was an A2A agent.
Wilhelm Klopp (08:48)
I see, Yeah, wow. I should probably look into this a little bit more. So A2A, it always appeared to me like it was a little bit of a theoretical thing. And it was very far away from MCP in terms of its adoption and actual usefulness. But it sounds like you can do useful things with it.
Matthew Carey (09:01)
Yeah.
Yeah,
but it's like, it's all the big companies are talking about, like the crazy big SaaS companies, because they all want to own that. Have we talked about this before or not? Oh, they all want to own, I've talked about this a lot with a few people recently. They all want to own that marketplace. And so if you chat to any of the really big SaaS companies, they're like, oh, we want...
Wilhelm Klopp (09:12)
I see. No, I don't think we have.
Mm-hmm.
Matthew Carey (09:28)
anyone who's building agents on our platform to conform to A2A because then we can just have an A2A compatible marketplace internally, like the Slack Store, like your SimplePoll, right? Like for that, they created a way for anyone to install applications on Slack, but how do you install agents on Slack? It would be nice if there was a protocol that they didn't have to build. And so it's like, if there's any A2A agent, you could now install it as a Slack app.
Wilhelm Klopp (09:38)
Mm-hmm.
Matthew Carey (09:55)
you see how the compatibility really makes it helpful for them there without them having to think about it from first principles.
Wilhelm Klopp (09:58)
Yeah.
Okay, let me ask you a very specific thing that I was, I mean, that all kind of makes sense in theory so far, though. The specific thing that I've been like bumping up against recently, Bunches, know, tinkering a lot with like Claude code, with like how to integrate Kolo into it, like in like a reliable way. And one of the things that where it's consistently been quite useful, but it's like pretty awkward and I can't get MCP to do like the right thing
So imagine this like you have like a failing a failing test like you made some changes on your branch You have like a failing test. It's like not obvious why it's failing It's like some weird error like Claude code is trying to fix it it Maybe just deleted the test or changed some asserts around or I don't know that's something that was ⁓ Not what you like consider like a satisfactory resolution to the test one thing that's worked really well For me in that workflow is like basically enable colo for the test
and then run the test before the change and then after the change. Then you have two traces. And then usually a smart model like an 03 can look at the two traces, like the before and after, and figure out exactly what's different and why it's failing now and what you need to fix. So the trace data has the valuable stuff in it, essentially. But the problem is it's kind of
a lot of orchestration for Claude code to like do all of that. Like, you know, check out the old thing, run the test, then you have these two stored traces or you have them like in your memory or something. Then you need to like essentially pass them both together to like a new sub task or a sub agent or something like that. Let that do its thinking and then come back to it.
Matthew Carey (11:26)
Yeah.
Wilhelm Klopp (11:41)
And the question is like, now, how can you make this like codify this or whatever? Is it like a colo agent? Is it like a Claude code sub agent? Or could like A2A actually help?
Matthew Carey (11:51)
And it's not like, you can't just make a bash script or a tool in Kolo that does all of that. Could you have an MCP server in Kolo that does all of that, or does it need some extra stuff that you can't do in an MCP tool?
Wilhelm Klopp (12:04)
Yeah, mean, think like, so Kolo has an MCP server for a bunch of this, so it can like, it can, for example, like read all like the recent traces. But I guess you, the thing that I always end up bumping up against is you both want some actual like agentic intelligence kind of stuff in the, inside the MCP tool, which sure you could do with, what's that?
like, named thing. No, no, I think that's quite well named actually. Sampling, sampling. So you could in theory have sampling, right? But it just feels like a little bit awkward. think more so than just sampling, you probably want more like a cloud code process actually running or like some kind of tool calling thing running inside of...
Matthew Carey (12:27)
elicitation.
no, sampling. Sampling.
Yeah.
Wilhelm Klopp (12:47)
a tool call, which at that point is already like an agent, right? So it's like, because ideally you want to like check out the old branch, like run the test there, like get the trace from that, then get back to the current branch, run it again. It includes like.
Matthew Carey (13:02)
Yeah. So,
but that process there, you could write out in English in a rule. And then when that happens, you could be like Claude, use a sub agent to perform this process.
Wilhelm Klopp (13:15)
ICIC. So you can, yeah.
Matthew Carey (13:17)
Like I would try, I'd either try
and put, try and encapsulate it just in a prompt first. And then if it can reliably do it in a prompt, it can get that prompt from wherever, right? It can get that prompt from a text file of the code base. If it can reliably do it from a prompt, then try and package it as an MCP tool. And if at some point that breaks, then, then that's interesting. And if you can't do it from the first thing, then.
probably wait a month and then a new model will come out, I guess.
Wilhelm Klopp (13:44)
Yeah,
yeah, yeah, interesting. But you could see how like, if, but you could see how like if MCP allowed like providing subagents, right, that can just like, I don't know exactly how it would work, but that can just like go off and like perform this whole separate thing. ⁓
Matthew Carey (13:46)
I don't think it's an A2A thing.
Why would you
need MCP to provide subagents though? Why couldn't Claude provide the subagents? The only use of the subagent is to not pollute the context of the main agent.
Wilhelm Klopp (14:05)
Mm-hmm.
⁓ Well, that's... Right, but that's only one of the benefits, right? Like the other benefit is that you can encapsulate this whole other logic, including a bunch of specialized tools and whatever, in a separate thing that can go out and do it. Even as Claude is starting to go down this one track of trying to fix this hypothetical failing test, you could have a subagent try and gather this other context.
Matthew Carey (14:08)
and to have specific rules.
Yeah, but in-
Yeah.
Wilhelm Klopp (14:35)
that might give some insight like onto what the real like root cause issue is.
Matthew Carey (14:40)
But I don't understand the benefit of a subagent because a subagent you lose the context. Surely you're better to have like multiple main. If your problem is that it doesn't always get it, then the solution to that is to have, to paralyze the task, not to split off the task and try and... Because you're handicapping Claude, you're like,
go off and do this, but then you've got to spawn a subagent, give it the right amount of context of a code base that you've probably already explored, and then it has to go and do the thing again. I don't know, I really don't understand the hype apart from if you have specific rules that you want to put in, because, okay, so the cool thing would be if your subagents and your personas for subagents, which I think is what they're calling them, could have their own MCP servers.
Wilhelm Klopp (15:10)
Mmm.
Well, it's...
for subagents.
Matthew Carey (15:29)
That would mean that you could do some sort of like tool reduction in the main agent, which would probably give better performance. That makes sense. But the whole reason for sub-agents is to get around the limited context window problem.
Wilhelm Klopp (15:36)
Mm-hmm. Mm-hmm. Mm-hmm.
Well, but it's, I mean, I think that's only one of the benefits, right? Like the other benefits that you can parallelize, you can explore different paths. Like, do you know how in codecs you can like have it do like four different approaches to like your prompt at the same time? Like this feels a little bit like that, right? Like one of the subagents might discover something.
Matthew Carey (15:56)
Yeah, but why couldn't you do that?
Why couldn't you do that with the main agent?
Wilhelm Klopp (16:01)
But I don't know, why can't you?
Matthew Carey (16:03)
Well,
you can. People are using like, like vibe kanban and stuff to run like multiple versions of the same task in parallel, seeing which has the better answer. And then just taking that one. What your point is that you would want to do that whole process automated. So Claude to do that itself, but how is Claude going to be a judge of which process, which was the right answer?
Wilhelm Klopp (16:08)
Mm-hmm.
I mean, I guess like in this example I'm describing, right? It's like you hand this all off to some other entity and then it comes back with some insight that it learned from its like whole separate parallelized investigation. And then that unlocks something new and like the main workflow. like main Claude can kind of continue chugging along based on the like novel thing learned from like a subagent.
Matthew Carey (16:35)
Yeah.
But why, like, why couldn't, like, if the only reason that the main agent couldn't do it is because it couldn't use that amount of context, is that the only reason? Or is it a time-saving thing?
Wilhelm Klopp (16:57)
Yeah, I mean, I think for me it's like really less about the context thing and it's more that like you can do it in parallel, I guess. Or maybe you can try like, so it's a time-saving thing, yeah. Or, yeah, I guess you're right, it's a time-saving thing and also it's like a context pollution thing, maybe.
Matthew Carey (17:04)
So it's a time saving.
Okay.
Yeah, I think that the two reasons to have sub-agents, context pollution and time-saving, because for instance, if you explore a whole part of a code base that your main agent would never need to explore, or even a different code base, or you do some sort of like long research, but the answer is one line, then you don't want that into the main agent because you're polluting a context. So that makes sense to me. I know, I definitely, I do, you remind me all the time that there is so much alpha in just understanding how to use code well.
Wilhelm Klopp (17:24)
Mm-hmm.
Yeah.
Mm-hmm.
Interesting.
Matthew Carey (17:41)
⁓ and like, like, like working out all the hooks and stuff. Dude, I don't know. Like I've been playing with the GitHub action again because it's just constantly breaking for me. And I'm actually really annoyed because their docs don't, you have to basically read the code of the action to understand how to use the action. And the action is two actions. It's the outside Claude code action, which has all the niceties of like,
Wilhelm Klopp (17:42)
Yeah, and how does one do that?
Mm-hmm.
Mm-hmm.
Matthew Carey (18:07)
like some tags for being like, if you tag it in a PR or whatever. And then you have the base action, which is the action that actually runs Claude. And the base action is the thing that like converts all of the outside environment variables that they set into the Claude command. So you have to, if you want to see like whether something has gone, has worked, you have to track it all the way through the actions. And it is a bit of a pain in the ass. Like also they've disabled
Wilhelm Klopp (18:16)
Yeah.
Mm-hmm.
I see,
Matthew Carey (18:34)
This is a big thing for me. They've disabled web search and web fetch, which are the two best tools. They've disabled that in the code code action. The question to me is like, if I enable it by default, like if I enable it from the outside and so they're both enabled and disabled, which one takes priority? Can you even do a web search from a code code action? Have they turned that off by default?
Wilhelm Klopp (18:38)
yeah, I saw you.
Mm-hmm.
Matthew Carey (18:56)
So I'm actually halfway through working this out because I forked the action. I changed the thingy, the disallowed tools. And so we'll see if, I want to see if that works. I want to have a Cloud Code action that's like completely YOLOed, that has all permissions taken off, that it can just like go wild. I want to see how that works, basically.
Wilhelm Klopp (18:57)
Mm-hmm.
Nice. sweet. That's exciting.
Yeah, yeah, yeah, I think that's great. Yep.
Yeah, I think that's a really smart idea. I think that's really cool. I think in general, probably, we would all do well from building out a bit more of our own personalized AI tooling, right? We talked about this a little bit last week.
Matthew Carey (19:31)
Yeah, my
boss was asking about how we can have code reviewers, my favorite topic, AI assisted code review, how we can have code reviewers that really do stop us needing a human reviewer. So for things like security, performance, and there was one stylistic one that he had, but had a bunch of rules really. And I was like, yeah, if you can write them out.
Wilhelm Klopp (19:41)
Hahaha
Mm.
Matthew Carey (19:56)
we can just make a Claude code action. He was like, oh, we use like one of these 10 other tools that we've tried. I'm not going to name them all, but we've tried like literally all of the AI code. I was like, oh, like I really just would use Claude code in GitHub because you do have a few advantages. Yes, it's fiddly and annoying to set up, but it's under the hood. It's Claude code, right? If they make Claude code better, your reviewer will get better, like guaranteed. And
Wilhelm Klopp (20:05)
You
Mm-hmm.
Mm-hmm.
Right,
Matthew Carey (20:23)
And,
and like, you're getting it straight from Anthropic. So they are going to try and make code code the best way to consume code at the moment. Cod is the best model. And any of the rules that you write out will be useful, even if say, open AI becomes the best model and we want to use codecs, there'll be the same rules, right? So I think natively having, or even not codecs, if we want to use open code, for instance, with an open AI model, then
Wilhelm Klopp (20:41)
It's true, yeah.
Mm-hmm.
Matthew Carey (20:48)
it will be the same rule that we supply. I do think like companies, like back to your point, like companies or even just us ourselves building out our own suite of rules, our own suite of workflows. And then it comes back to this thing, like we have these workflows, maybe we have 30 repos in our org. Do we have to manually add all of these workflows to each of the repos and manually keep these files up to date with all of these different rules or?
Wilhelm Klopp (21:02)
Yeah.
Mmm.
Matthew Carey (21:14)
is every company going to publish their rules files as a package that then gets imported into other, into every, every repo? Because I think that's what's going to happen, right? Like I'm going to import the stack one, the stack one node rules file, or I'm going to import the stack one mono repo rules file just from NPM or from wherever really. And I think that's how we're going to do it in future.
Wilhelm Klopp (21:21)
Right.
Mm-hmm.
Matthew Carey (21:38)
Because then you can have them all in one place. One person can look after them. One person can keep them up to date. they can sit next to the docs for what technologies they use in the organization.
Wilhelm Klopp (21:39)
Yeah, that makes sense to me.
Yeah.
I think we've been saying this for like months, right? But I feel like some kind of product that like helps people write like really great rules files and solves all these kinds of issues that you just described would be very very effective. Like I think I am kind of slightly shocked every week by just like how like really good prompting is like gets a lot more juice out of the models and like that's it's it makes sense, but it's also just like kind of
continues to be surprising. And I think that's why we see such a big rift between people who get so much value out of these things and people who don't, basically. I was reading a bunch of articles actually earlier in the week just catching up. Wait, let me find this one actually. Did you see this one? After months of coding with LLMs, I'm going back to using my brain.
This is from May, so it's a little bit older, but I finally read it. It's actually not that long. But I just want to highlight how it ends. I'm just going to read the last two paragraphs because I think it makes this point.
Matthew Carey (22:38)
No.
Wilhelm Klopp (22:50)
really well. So he says, some days I feel like we're also being gassed by LLM providers. Just look at any AI related subreddit and you'll see people having completely opposite experiences with the exact same model, with the same prompt on the same day. If you code with AI long enough, you'll be able to relate. One day it's amazing, the next day it's incredibly stupid. Are they throttling the GPUs? Are these tools just impossible to control? What the fuck is going on?
Like how many times have you seen a blog post that ends with what the fuck is going on? I just think like it highlights that there is like so much skill to using these things. And I think like actually writing great prompts is not very like easy or it's just like a very novel thing to do. So I would love if someone could write some incredible rules files or help me write them where I don't know or guide me through the process or like, I think there's like a bit of a, everyone's building agents. No one's teaching how to control them.
Matthew Carey (23:17)
Yeah.
Yeah. I have
Wilhelm Klopp (23:40)
them.
Matthew Carey (23:41)
And that's why it's so annoying when the feedback loop is really long. I might have Clawed Code run for, I think my longest one was like 30 minutes. If Clawed Code's running for 30 minutes and then halfway through it dies because it can't use git status like three times and because the bash tool hasn't been allowed for a particular thing, it's like, come on guys. That's table stakes, that's software engineering.
Wilhelm Klopp (23:49)
Yeah.
Mm-hmm.
Mm-hmm.
Mm-hmm.
Matthew Carey (24:06)
Not even software engineering, that's like config. And maybe it's on me. It probably is on me. But that should be easier to set up. Like that's such a mess. And then that's not even regarding like, ⁓ here's like they have like, here's the one-liner where you should write like what your custom prompt is. Like no advice on that. Like how to do a custom prompt there. It's all like here you should learn them. So I don't know. You know how people have like awesome repos?
Wilhelm Klopp (24:09)
Yeah.
Hmm.
Mm-hmm.
Matthew Carey (24:32)
where they have awesome Ruby on Rails projects or something. I wanna make one with awesomeclaw.yamls and I actually might because some people must have really good ways of doing this. I've tried, I think I've experimented with a bunch of different MCP servers. I didn't even know, ⁓ Rio from my company found this out that if you have a .mcp.json file inside your repo, Clawed will automatically use
Wilhelm Klopp (24:33)
Mm-hmm. Mm-hmm. Yeah, yeah, yeah, awesome.
⁓ that's a great idea. Please do that.
Matthew Carey (25:00)
load those MCPs. Did you know that?
Wilhelm Klopp (25:01)
Hmm, interesting.
I didn't realize it was .mcp.json.
Matthew Carey (25:04)
Yeah, inside your repo, need, yeah, .mcp.json file. What the fuck even is this file? Like the config is so different everywhere you look. Cloud Code will automatically load them, but the tools won't be automatically allowed unless you put them in your allowed tools. What the fuck is that?
Wilhelm Klopp (25:06)
That's...
Yeah, that's messy. That's strange. It's funny you mentioned all the review tools earlier. I actually just tried out code rabbit yesterday for the first time. ⁓
Matthew Carey (25:34)
Hiya, how'd find it?
Wilhelm Klopp (25:36)
I thought it definitely added some value. I thought it pointed out some useful things. I think the GitHub UI was a little bit clunky in terms of there's just so much stuff that they put in there. They even wrote a poem about my pull request, which I'm not sure I had.
Matthew Carey (25:47)
Yeah. Yeah, dude, I think I wrote, I wrote
a big old rant about Code Rabbit writing poems. And I was like, dude, we're melting ice caps. Why are you writing poems while I wait for your shitty review bot to do its thing? I wrote it in like one of the letters. I've written a few letters to like the users of Shippy.
Wilhelm Klopp (25:56)
⁓ did you?
Hahaha
Matthew Carey (26:11)
And I wrote it in one of those. was like, this is what we will not be. This is the most shit.
Wilhelm Klopp (26:16)
Mate, how
do I get the letters from Shippy? I would love to get those letters.
Matthew Carey (26:19)
They're in the discussions. I don't know. I don't really publicize them. I just sort of write them for myself. Yeah
Wilhelm Klopp (26:25)
I mean, that is great to be fair. But no, I thought it was interesting. thought it definitely got a bunch of stuff completely wrong. But I feel like you could just smell that they had clearly built a bunch of prompts that react to a certain pattern or that like...
help you catch certain kinds of errors. Like I was upgrading like the Django version in SimplePoll from like 4.2 to 5.2 and doing a bunch of like changes that are required for that and it's like like this library is not available on this Python version. If you're on that Python version like you have to like watch out and I'm like okay I am clearly not on the old Python version so that doesn't really matter but like still I thought it was like a smart
Matthew Carey (27:01)
Yeah, yeah.
Wilhelm Klopp (27:04)
Basically, my point is just that you could kind of smell that they had, that clearly a lot of the value for CodeRabbit lies in all the custom prompting they had done.
Matthew Carey (27:12)
Yeah. But that feels, if that's your moat, holy shit, I'd be worried.
Wilhelm Klopp (27:17)
It's strange, but I don't know man, like I wish I had the skill to write prompts like this. Maybe we need to try more. But, but, I don't know, I don't believe in motes at the moment, I think it's just like.
Matthew Carey (27:21)
Yeah, maybe writing prompts.
Yeah, I
think I want a better UI to write prompts in. Is it just me? Like, how do you write your prompts? Do you write? Because I end up writing them, like writing them in cursor or in something sucks. It feels awful. I feel like that could be cool. Like some sort of way of structuring prompts. Because most of time when I read prompts, I read them in like JSON format in like some horrible thing that's not pleasing on the eye. It's not nice.
Wilhelm Klopp (27:34)
Yeah.
Yeah, yeah, Yep.
Mm-hmm.
Matthew Carey (27:53)
And then when I write them, end up writing them in cursor while it's like auto suggesting boatloads of shit for me. And I'm like, this sucks as well. Writing your prompts directly into YAML sucks. Writing them, like, don't, I don't know what the solution is there. I know the solution I know it's not is another third party tool. That's not the solution. Like another SAS tool. No, cause that's what Langsmith did and
Wilhelm Klopp (28:01)
Exactly, yeah.
You
That's what I was about to suggest.
Matthew Carey (28:19)
And like all the other eval platforms for agents have built like prompt writing like things. Yeah, you should try some of them. But then what they do is they're like, here is the API for you to get your prompt. And I'm like, hmm, no, no, no, no, no, no, no, no, no, Yeah.
Wilhelm Klopp (28:22)
Mm-hmm.
Have to.
Yeah, no, that's definitely bad. I think what I find
hard with the prompt writing is just like you... I feel like I lose motivation very quickly because you have like no...
good feedback loop, right? Like if you're writing like a Claude Roles file, like how are you going to test it out? Like especially if it's some niche scenario that you're not going to hit, right? It's just you're going to figure out if it worked like three days later when you actually hit the scenario that you were just like talking about. But if you had some kind of like live evals against it, I think that could be interesting. I don't know. I think focus is a big skill. I think like maybe one
Matthew Carey (29:05)
Yeah, I'm not sure that's sold.
Wilhelm Klopp (29:10)
Um, it, maybe this is just advice I'm giving myself, but like practicing, um, like reduced, like brain stimulation from all the social feeds, like, don't know, getting like a floating tank or something to reduce your like dopamine. Um, and, and then just being able to sit still and focus and just think about your prompt for an hour in a very, um, like.
Matthew Carey (29:22)
Yeah.
Wilhelm Klopp (29:38)
Zen enabling text editor like Zed perhaps. You just write your prompt, no UI, just you and the keyboard for an hour and then thinking about it, the prompt, no assistance in any way. think maybe that's the way. And I actually think, did I say this already? I think people like Torsten are actually really good at this.
Matthew Carey (29:41)
Yeah, Z is nice.
Wilhelm Klopp (29:58)
⁓ Because he enjoys writing and reading. Yeah, clearly I should just message him about this. But I feel like, yeah, if you're able to hold focus on a thing for a long period of time, you're probably a good prompt writer.
Matthew Carey (29:58)
Yeah, though you wanted to talk about this.
focus on a thing for a long period of time? Yeah, yeah, I think so. I've been reading some more prompts. I have a gist of the Claude code GitHub prompt. When it first, when I first used it, I didn't know whether it was like a secret or not. And so I copied out because I was just really interested. And it's actually way shorter than you might imagine. It's like, this is what you can do. This is what
how you should do it. And then there's just like four or five rules and there's like, think this is what you're able to do. This is what you're not able to do. Knock yourself out. It's way shorter than you imagine. yeah, like I'm really trying to think about the bitter lesson a bit more. Like what happens when models get better? What do we, what should I be thinking? What should I not be thinking about now? Because it's pointless for the future. And what should I be thinking about now?
Wilhelm Klopp (30:43)
Mm-hmm.
Yeah.
Matthew Carey (31:02)
And I think getting better at using tools that are going to be around in five years time, or at least the form factor is going to be around in five years time. That's a good thing to be better at. Being better at, I don't know, like understanding the intricacies of some particular piece of scaffolding that someone's built or some tool that someone's built, like, like a AI tool that someone's built. Maybe not so much.
Wilhelm Klopp (31:25)
Mm-hmm.
Matthew Carey (31:25)
So like getting better at Claude code
Wilhelm Klopp (31:26)
Mm-hmm.
Matthew Carey (31:27)
and getting better at using hooks, getting better at using like MCP, like the patterns that are developing. I think that's helpful. I think getting better at doing like tweaks to reduce context window length and stuff like that maybe is not so important, but I'm not sure. I saw the most wild thing today.
Wilhelm Klopp (31:34)
Okay.
Right, right, right.
Mm-hmm. Now, I remember you mentioning this
months ago. Go on.
Matthew Carey (31:47)
I saw the most wild thing today. I saw a guy from Shopify. I was at the MCP lunch with David and the crew.
Wilhelm Klopp (31:54)
yeah, the MCP
breakfast. That looked great. Yeah, I love it. Love that that's a thing. I was at ICIC.
Matthew Carey (31:58)
It was at lunchtime. was, it was, yeah, it was,
we upgraded from MCP breakfast to MCP lunch. It was really good. Akash from early bird is actually smashing it with his like talk, dinner, breakfast things, I think this one, there was about 20 people there. ⁓ Everyone was like really frothed on it all. And there was a bunch, yeah, frothed, frothed is like.
Wilhelm Klopp (32:16)
Mm-hmm.
frost on the doll.
Matthew Carey (32:24)
A very 2018 surfer word. You're so frothed, man. shit. Need to re-educate my vocabulary. But yeah, everyone was so stoked on it and David had brought a bunch of the Anthropic team, it was their offsite, so he'd brought them all down. And so we could actually ask questions like directly to the people building the stuff ⁓ and how they were thinking about the protocol. That was really good.
Wilhelm Klopp (32:30)
That's amazing.
Thanks
Mm-hmm.
Matthew Carey (32:47)
super nice and I saw an awesome demo from a guy from Shopify about how they're doing, I think he works on MCP UI as well, how they are returning UI components to the client and telling the client how to render them. So for any different client it could render them and it wouldn't matter whether the client was built in Ruby on Rails or was built in React or Svelte whatever.
Wilhelm Klopp (32:56)
Mmm.
Matthew Carey (33:15)
it would be quite cross-compatible about how they render the UI. They also wouldn't have to generate too much to render it, because that's also a thing. Everyone previously thought that the MCP servers would return like, you need a checkout page now to display this information. And then the client would render the checkout page. But now what these guys seem to be thinking now is that the client would have these like,
Sorry, the server would have these pre-notions of actions that the client would need to have to do, like pre-notions of tools. And one of the tools would be like checkout page. And then the client would render the checkout page as described by the server. And there's loads of cool stuff there. So stuff renders in an iframe, yeah, it's really cool. Stuff, yeah.
Wilhelm Klopp (33:47)
Mmm.
⁓ wow.
What? No way. That is wild.
Is that the idea of MCPUI basically?
Matthew Carey (34:02)
Yeah. And they're really cool. for things like, but the client can always choose how to handle it. So the server would return like the checkout page tool. And then the client would be like, okay, I'm going to open the checkout page tool and I can open it in whatever format they feel like. But the server is rendering the checkout page. So it feels still like, like if your server developer is, I don't know, the example that was given was like Ticketmaster.
Wilhelm Klopp (34:06)
That's awesome.
Yeah.
Yeah.
Mm-hmm.
You
That's incredible.
Matthew Carey (34:29)
if you want to pick like seats in a ticket place, it feels like Ticketmaster embedded inside Chakgypti or whatever. And Chakgypti can work out. ⁓ I think this particular example was with an iframe, but the main thing that can happen is that Chakgypti decides where to render it, how to render it, ⁓ and like where to place it on the page. But then every action that's made in the iframe, like, ⁓ how did he describe it? It's like an event.
Wilhelm Klopp (34:30)
Yeah. Yeah, yeah, yeah.
but without an iframe.
I see.
Right, right, right, right, right. Yep.
Mm-hmm.
Matthew Carey (34:58)
that the client is a, I think it's an event, is like a tool that the client can then consume. So if you're in the iframe and you pick a seat, you pick the right seat, then the client can be like, they've gone to the next stage. It asks the server, what do we render now? And the server is like, now you should render the checkout page. And so the checkout page can now slide out or do some other form of UI that feels much more native to that client.
because the client is describing how to render everything or where it should be rendered and how it should be rendered and the server is describing what should be rendered.
Wilhelm Klopp (35:33)
Yeah, that's really cool. I'm a fan. It reminds me a little bit of how things actually work in Slack, like for Slack apps. Because ultimately, yeah, and I thought about it a ton and actually built some of this into GitHub. It didn't end up shipping. think Jira, also very interesting example of this, think Jira uses more like, or a little bit more of the iframe approach. I think both have merits, but in Slack you just send back and forth JSON payloads and then...
Matthew Carey (35:41)
yeah, you've done loads of this before.
Wilhelm Klopp (35:58)
In your JSON payload, you say, render this button, then the button should, clicking the button should send me a new payload with, like, this callback ID. And that's literally how, and then obviously Slack is like one, is the only client. Well, they have like an iOS and an Android, but it's not like, you know, anyone can build a Slack client. I guess that's the difference. But it works really well. You do definitely hit a limit in how complex your UIs can get. And I think...
Matthew Carey (36:06)
Yeah.
Yeah, that's the main difference. That's the main difference because...
Wilhelm Klopp (36:25)
especially for us wanting to build a super smooth, very simple application, there was definitely limits where you had to do awkward stuff with the limited UI components that were available. But I think iframes can actually be a legit workaround for that.
Matthew Carey (36:41)
Yeah, when he was showing me the thing, I need to look into it because MCPUI is like open source. You can have a look at it. And I'm pretty sure these guys are part of the MCPUI side of the working group. So I'm pretty sure they are, yeah.
Wilhelm Klopp (36:48)
Yeah, I should have a look.
very cool how much is
happening in MCP world. That's awesome.
Matthew Carey (37:00)
So that will be sick.
But that, does worry me a little bit. So the first thing is that you will be able to do like native shopping in ChatGPT with components that are defined by some inbuilt MCP server ⁓ or inbuilt tool server. Like they don't call it MCP internally, but it will be. You'll like flick on shopping on ChatGPT and then like the same way that Claude code uses a GitHub MCP under the hood, it will be the same thing. It will be like some sort of shopping MCP.
Wilhelm Klopp (37:13)
Mm-hmm.
Right.
Matthew Carey (37:26)
some Shopify, MCP. And then that's nuts. That I think is cool. But then the next iteration of that is like they turn on ads and you have like the ad networks or the ad providers. Now they can return like MCP UI. then what happens there is like in between parts of your process,
Wilhelm Klopp (37:43)
You
Matthew Carey (37:49)
your client calls a tool to render some ad that then gets like brought in and man, you could do so much shit with that. Like imagine on your image generations, like before your image is generated, it calls a tool to be like, what is the ad of the day? And it's like Coca-Cola or something. And then all of your image generations have like a Coca-Cola logo, like reproduce like on some piece of clothing or something inside your image. I don't know. That's going to go.
Wilhelm Klopp (38:10)
Ha
That's wild.
Matthew Carey (38:16)
fucking
nuts and I have no idea what the end state of play is there.
Wilhelm Klopp (38:22)
Yeah, that's a glimpse into the future that we probably have some mixed feelings about. But wow, mean, exciting time, exciting to be tinkering. by the way, I watched that podcast you sent me, or I listened to it, or half of it, with Mike Maples and talking about, you sent this to me, right? Like your startup idea should be more ambitious or something like that. And it talks about this idea of living in the future.
Matthew Carey (38:43)
Yeah, that was me.
Wilhelm Klopp (38:46)
This feels kind of like that, or guess a lot of MCP feels like that. I really like that way of thinking about it. Like you are living in the future and like the question is like, what is not working in the future and how can you help make it work?
Matthew Carey (38:57)
Yeah, I think I'm trying to take that to heart. mean, a lot of VCs say a lot of really weird stuff when it comes to like picking ideas and knowing what to work on. But that actually did stick with me. That if you can try and like, everything's going to get better, right? As in like all of this technology is going to get more advanced. It's going to get more crazy. It's going to, we're going to have more capabilities, maybe better is the wrong word. But.
Wilhelm Klopp (39:10)
Mm-hmm.
Mm-hmm.
Matthew Carey (39:24)
So if you can try and like be at the edge of all of those capabilities all the time, at least in your particular niche, then as close as you are to the edge, you have sort of that amount of breathing room between anyone else who might be like thinking about it as well. So I love the example of Figma where they went away, they decided something needed building.
Wilhelm Klopp (39:42)
Interesting.
Matthew Carey (39:48)
and they went away for what, like two and a half years to build a rendering engine. And then the Figma guys like said, as soon as we released it, we had product market fit, which is just like, that's crazy. Yeah.
Wilhelm Klopp (39:48)
Mm-hmm.
That is wild, yeah. Yeah, they were in
this wilderness, wilding period for a while, for years and years. It's a very cool story. But it just feels like there's so much to be built at the moment. Things are really shifting so much. There's a lot of opportunity.
Matthew Carey (40:12)
Yeah, but don't you get
the sense that most people think about something in the same sort of way, where they're like, this thing, this is how something is gonna work. And so we need all of these integrations, for instance, like we needed that yesterday and so we're probably gonna need it tomorrow and so no one's building it, so we should build it now. Like, I feel there's that.
Wilhelm Klopp (40:29)
Hmm.
I see.
Matthew Carey (40:37)
So I don't know, I think about this like a fair amount. Like how do you bring yourself like further into what is like, what do we need that people don't necessarily even need now? Like what will they need in like three years when like Meta just released their, do you see the super intelligence? ⁓ Like, what's it called? Like manifesto.
Wilhelm Klopp (40:38)
Well, I guess... Mm-hmm.
Matthew Carey (40:56)
⁓ Mark Zuckerberg just released his super intelligence manifesto. I'll send it to you. Where he's like talking about, these crazy ideas about how that might work and all this stuff and then I saw that video of the humanoid, do you see the, not humanoid robot, do see the robot that folded clothes but it looked like a lamp?
Wilhelm Klopp (40:57)
No.
Not yet, no please yeah.
yeah, yeah, yeah. ⁓
Matthew Carey (41:16)
And I was like,
that is mad, right? Like that is so cool. I mean, I hate the claws. They look terrifying. It looked like Dr. Ock or something, like from Spider-Man, like is the future where we have like robots in the house more? Cause it probably is. And then what are they gonna need to be able to do?
Wilhelm Klopp (41:22)
There's some good memes that came out.
Mm-hmm.
Yeah, I mean, like, I think,
I feel like that future is like quite out there in some ways, right? Like, I think this thing we were talking about a second ago around like ads and MCP or just like, what if like so much of, you know, so many different things are powered by MCP. I think that is also like living in the future. Like most people aren't using a useful MCP workflow today beyond playwright, right? I think like that is like,
by far the MCP server that has the most product marketing because it is controlling a browser, kind of an obvious use case in a way, but could also them as well. if you were using 10 different MCP servers and are trying to make something work, I think that is living in the future to some extent. And that could easily scale up to a ton of people, the majority of people.
Matthew Carey (42:18)
Well,
then, then it's really interesting, right? Because like the people who are trying to get in front of this, people like Stripe, they want to be the platform that enables you to make money out of your MCP servers and agents Like they're really pushing this. And I think some of the ideas they have are pretty wacky, but...
Wilhelm Klopp (42:27)
Mm-hmm.
Mm-hmm.
Matthew Carey (42:39)
As soon as someone has like a wacky idea like that, I'm like, holy shit, I need to be even further. Okay, so agents are on the internet, they're like communicating, getting loads of like shit done. And then when they need a service, they call another agent that there's like a micro payment for every like time that they use the service. what happens then? Like, what is that future of
work and
Wilhelm Klopp (43:01)
I feel like the perspective
is more like, or I think the use of perspective for people like you and I to take is more like, what can we build today that's useful for like just us in this new future? Whereas the perspective I think that Stripe or like Zapier or any incumbent will have is like, how does this future not make our golden goose no longer a golden goose? Like how can, so it's like, which is I think a very different perspective.
Matthew Carey (43:15)
Mmm.
yeah, 100%.
Wilhelm Klopp (43:25)
So I don't think you need to come up with a crazier future than like a wacky Stripe MCP payment gateway. would, or I would at least focus on like, let me build like some cool thing where I don't know, can give some money to some agent like every morning and then it can, I don't know, like whatever, right? But it's more like something that's kind of useful for you or like that is like an interesting curiosity you can explore. Like for your own benefit.
Matthew Carey (43:45)
Yeah.
The prompt writing thing is interesting though. Like if that becomes a thing, like are people gonna fiber their prompts? Like essentially fiber, like genuinely, because there's loads of shit that I need prompting to do. And, probably an agent is gonna be better at writing the prompts than I am because it could have context of a code base. It could understand like how the code base is built.
Wilhelm Klopp (43:50)
Hmm.
Yeah. ⁓
Yeah, I think that was ⁓ Paul Graham's definition for AGI, when we don't need to do the prompting anymore because agents or like AI can self prompt. Which is a bit...
Matthew Carey (44:10)
it could keep all of that context.
Yeah, like by,
yeah, that's terrifying because In that definition using AMP, you've already, you're already there because they generate your agents files, don't they?
Wilhelm Klopp (44:30)
Yeah, that's right. they do. like, I for sure think, you know, some AI can generate rules files or whatever at the moment. But it's just like, I think what's confusing is like, it's this idea, like you add a few specific words or preferences or whatever to your prompt file, and that completely shifts like the latent window of attention in like the model, right? And I think that's the thing where like, if you get the agent to write your prompt file, it can never shift to certain parts of the like...
Matthew Carey (44:57)
Yeah, yeah, yeah, okay. That makes sense, that makes sense because it's already like zoomed in on that particular space. I saw this really interesting about prompting and there was a really annoying, I need to start muting these people on Twitter. know the 10 things you need to know about prompting your LLM. Throw away all your prompts. This prompt will change your life. And it's like, I was rubbish at prompting and then I picked up this one habit, prompting with JSON.
Wilhelm Klopp (44:57)
attention space.
Yep.
Mm.
I'm
Matthew Carey (45:25)
and it solves all of your problems. And I was just there, just reading this, like, I am getting more and more stupid reading this. ⁓ And it had like, yeah, it had like, well, maybe not millions, but it probably had millions of views. had loads of retweets and shit. And I'm just like, wow, this is why our podcast exists, because that is bullshit. I'll give like reasons just very quickly. If you prompt in JSON, you're probably not gonna write.
Wilhelm Klopp (45:26)
my god, yeah.
Bye.
This is a trend I chose to ignore. ⁓
Yeah.
Bye.
Matthew Carey (45:52)
descriptive enough wording and so your prompts are probably going to be shit because they're going to be tended towards like shorter words rather shorter sentences rather than longer sentences that's the first thing you're going to use things like a tone and then you're going to write like precise so your prompts are going to be smaller that's the first thing the second thing is if you dump raw json into a prompt you are putting the model
Wilhelm Klopp (45:54)
Mm-hmm.
Mm-hmm.
Matthew Carey (46:14)
into, and this is not coming from me, this is coming from like one of the replies for, I think it was a researcher at OpenAI, maybe, maybe, maybe Anthropic, I don't know, anyway, very, very clear point. You're putting the model into a latent space, which is very focused on code. And that might not be what you want. Before you even get to the content, you're like, this is code, deal with it.
Wilhelm Klopp (46:15)
Mm.
Matthew Carey (46:35)
And like that is, an interesting thing to do if you're saying this is going to help all your prompting.
Wilhelm Klopp (46:35)
Mm-hmm.
yeah, yeah. I mean, although it brings up an interesting question for me, is like, you remember like a year ago when all the prompts started with like, you're an expert software engineer. Like none of us start our Cloud Code prompts with that, right? clearly like part that is built into the actual model now, right? Or like the system, system prompt that like Anthropical Waze uses, right? So like,
Matthew Carey (47:03)
Yeah.
Wilhelm Klopp (47:03)
But like how much of that, like how far have we gone down that path? Is it still useful to put stuff like that in the file? Like, I don't know, like who knows? Do you put that in your files? Like, do you put, you're an expert software engineer, you will be awarded $3 billion, a million children will die.
Matthew Carey (47:11)
Yeah.
I think I have some of that stuff left over and some older things. think, reckon if you look at the shippy prompt, it says you are an expert and then insert programming language developer. ⁓ So that will be left over from the thing. I never did the, if you don't do well, my grandma will be murdered and like all your kids will die. I never did that because...
Wilhelm Klopp (47:26)
Mm-hmm. Right.
Hahaha
Matthew Carey (47:39)
Okay, one, I thought that was like a hack for there and then, which it kind of was. And so I couldn't really be bothered to entertain it. I thought it was funny. but two, and I think I'm being more vindicated on the second thing is most of these models are being like RLHF, like really quite heavily. And so if you start talking about stuff that sounds potentially dodgy, I reckon you're going to get like put in a group on a classification, which you probably don't want to be in.
Wilhelm Klopp (47:46)
Mm-hmm.
Matthew Carey (48:04)
And I reckon I genuinely just think you're gonna get blocked at some point because some classifiers gonna go, this account just keeps on talking about killing children. And like, that is, it's not really like what you want your account to be labeled as. So I would probably urge people who do that not to do that. Or at least like most of the prompts I write are not like one-off prompts. They're like prompts that will run every minute, every second, every day forever. And so I need to be a little bit more careful than that.
Wilhelm Klopp (48:13)
Yeah, yeah, yeah.
Mm-hmm.
I have one more question for you and then I want to tell you a story, a really quick story about something that happened yesterday. One is, do you use speech to text prompting? Like do you speak words out loud to your Claude? Because I think this could be a bit of an unlock.
Matthew Carey (48:48)
I have started recently and I want to ask you the question back, what do you think an office looks like in five years time if this becomes the predominant view of like, of working? Are we gonna have like insulated phone booths or are we all just gonna be wearing noise canceling headphones?
Wilhelm Klopp (49:00)
Dude.
And so there's a product that I swear I saw like five years ago, but I can't find any trace of it. It was called like a reverse air pod. So basically it was like a device you would put in your mouth. And like the idea was you could speak freely and no one in the room could hear it. I swear this existed, but I can't find any trace of it.
Matthew Carey (49:30)
Dude, I am not wearing like a
sucker at work. That's not happening.
Wilhelm Klopp (49:35)
It's like a muzzle. It's like a muzzle. I actually think, you know, yeah, or we go back to private offices, a private office, but I don't know, like this seems more fun.
Matthew Carey (49:37)
⁓ mate.
I ain't gonna shout at
Claude from a beach hut. I think that's my plan. Like just away from everyone with Starling, just shouting at Claude. I think that's gonna be, yeah, I that's gonna be the one.
Wilhelm Klopp (49:53)
Nice, yeah. But I think it's
really powerful. So Armin Rönnecha, the Flask creator, he was talking about this again recently. Yeah, I think he's great. He's just so, ⁓ he's so real.
Matthew Carey (50:00)
I love him on Twitter. I love him on Twitter, man. He's so on the money at the moment. He's like captured.
Yeah, I would have said a year ago, the person who was the most on the money was Jason Liu, the instructor, creator. And I would say now, the people who are most on the money are David Kramer and Amin. I would like, like, I think they're...
Wilhelm Klopp (50:12)
Mm-hmm.
Mmm. An Armin. ⁓
Matthew Carey (50:22)
they're so invested in this agentic coding thing, or at least they're so on the money for us.
Wilhelm Klopp (50:28)
Mm-hmm. Yeah, I think they're doing extremely relevant things.
Matthew Carey (50:29)
I think it's crazy.
Wilhelm Klopp (50:32)
But yeah, so I don't know. haven't I haven't ⁓ figured this out yet how to if I still like I think feels a bit awkward but I do totally recognize how like as soon as you start having a conversation you just say more and I maybe this is the solution this is the part of the solution to Me not being able to focus on writing a prompt for like longer than a couple minutes is just to like start like blabbering out loud and then editing it down, but it feels like a big shift, but but it feels like
I can totally see how this is really, really useful.
Matthew Carey (51:00)
I've
written blog posts by taking a talk plus question and answer that I did at an event and putting that into Gemini and being like, write me a blog post based on this. And it's done a really good job because I said what I wanted to say, it's just written out in English rather than my like stunted way of speaking.
Wilhelm Klopp (51:14)
Hmm.
That's, yeah, that's, I think that's a really cool workflow. Okay, I need to run, but I want to tell you this one thing which happened yesterday, which is just funny. You know how all programmers hate dealing with time and time zones? ⁓ I feel like I haven't had a big time zone issue in a while, but it happened again yesterday. It was almost a little bit nostalgic. It was kind of cute, but it's just so wild.
Matthew Carey (51:28)
That transformation thing, yeah.
yeah, yeah, yeah.
Wilhelm Klopp (51:47)
like what goes on in the world of time zones sometimes. you know obviously GMT, Greenwich Mean Time. Have you ever heard of Local Mean Time?
Okay, yeah, you don't want to know about it. It's awful. It's wild. So what I mentioned, I was upgrading SimplePoll from Django 4.2 to 5.2. And as part of that, Django dropped support for this.
or time zone library that I think was kind of the standard for ages is called PyTZ. And that's used kind of heavily, especially for things like, know, recurring polls, like on like a schedule, like what happens during daylight saving. Like there's a lot of like edge cases, like, or like, I if you've ever built like a scheduling system that's like, you know, every, like Wednesday of every week, I want this to post or like the first day of the month, like all this fun stuff that comes with it.
Matthew Carey (52:24)
Yeah, yeah, we did. Yeah,
I did this. I did this once before. Yeah, absolute pain in the ass.
Wilhelm Klopp (52:32)
I think the solution
is to use something called R-Rule, which I didn't know existed at the time, but would have been a huge time-saver. anyway, I built a lot of this manually. anyway, it turns out they deprecated this library or even removed support for it. But instead of just failing, this silently changed the default behavior in how...
the time zones made by this library get interpreted by Django. So suddenly all of my tests were failing and they were failing in like very weird ways. the, I was expecting like a certain date to exist in like a payload and the date was the same but it was just like slightly off. And then I look at the time zone and it's just like, how is that possible? Right? Like how can all your times be suddenly a little bit off? Anyway, I learned about local mean time.
And what happened is that when you pass it like a time zone, like you know the like America slash New York or like Europe slash London, like these time zones, when you pass them to the library, what used to happen is that it would default to like, what is the current time zone offset for that location, right? That makes sense.
Matthew Carey (53:21)
Yeah, yeah,
Yeah.
Wilhelm Klopp (53:32)
Like what is the in 2024 or whenever I last updated the library, what was the time zone offset? But with this deprecation, it changed to what was the time zone offset in that location at the beginning of time zones in 1883.
Matthew Carey (53:46)
or at
That's so funny.
Wilhelm Klopp (53:48)
Well, this was
Like, yeah, in the late 1800s. And The time zone offset used in New York in 1883 was not UTC minus five, which is now...
Matthew Carey (53:53)
What?
Wilhelm Klopp (54:02)
It was UTC minus four hours, 56 minutes and two seconds. Because solar noon is about four minutes and 56 seconds behind UTC minus five. Which is, that is, how wild is that?
Matthew Carey (54:08)
has changed. Yes, it changes. Yes. Holy shit.
Wilhelm Klopp (54:17)
And how wild is it that the default would change from the time right now to the time when time zones began? I guess so wild. But hey, I learned something.
Matthew Carey (54:27)
This is, okay,
that is crazy. That is actually crazy. And I think you might have.
I think you might've just put a nail on the head why building stuff with language models and AI is actually really hard. And that is because building stuff in general that works on computers is fucking crazy and is mostly held together with hopes and dreams and some random developer halfway around the world that you've never met and might have retired. that...
Wilhelm Klopp (54:49)
Mm-hmm.
Yep. So
Matthew Carey (55:00)
Like the fact that
Wilhelm Klopp (55:00)
much of that.
Matthew Carey (55:00)
any of this works is bonkers. And then we're just like, we'll just put like a proper ballistic monkey in there and see what happens now. Yeah, I can see why like.
Wilhelm Klopp (55:02)
Mm-hmm. Mm-hmm.
Exactly, yeah.
And
it's surprising how much of it works. It's kind of beautiful.
Matthew Carey (55:15)
Yeah, it's so surprising.
It's surprising that MCP works, like genuinely, like any of it works. And I get, there's some servers that consistently work really well for me. I mean, Cloud Code is built on the GitHub one and that works pretty well. The reason it doesn't work is because like permissions is broken. But yeah, it's literally built on the GitHub MCP. Sorry, derail your story, but that is a wild story. That's a wild story.
Wilhelm Klopp (55:29)
really? Interesting. No, no, not at all. Yeah,
it's incredible. I didn't know that time zones for cities were based on when the sun is directly overhead the city. And that was noon. That's how it worked.
Matthew Carey (55:46)
So like every year, every year does it
change?
Wilhelm Klopp (55:50)
yeah, it's a point. I wonder if there's like a little bit of drift or something.
Matthew Carey (55:53)
Because we have a drift, that's why we have leap years, right?
Wilhelm Klopp (55:56)
Yeah, yeah, yeah. I mean... ⁓
Matthew Carey (55:57)
But is that a different drift?
Because there can't be a drift between two static points. They have to be the same over time. So it must be accounting for not full years.
Wilhelm Klopp (56:00)
Right.
Mm.
Matthew Carey (56:08)
I don't know.
Wilhelm Klopp (56:09)
Hmm, interesting. Yeah, I don't know. I mean, this was kind of like fun. I'm glad, to be honest, I think it could have taken me a lot longer to figure out what the fuck was going on there if I wasn't just like pasted it into like Claude or 03 or something and it was like, oh yeah, local mean time. Sounds simple. It's actually a time zone used in 883. Anyway, I have to run, but really nice chatting. Good stuff, man.
Matthew Carey (56:24)
Holy shit.
That is the duality,
isn't it? It's so much like, how does it work? Yeah, it does. And it fixes shit that would have taken so long anyway. Fucking cool, man. Right. I will see you next week. We back on for next week?
Wilhelm Klopp (56:37)
Yeah, provides great context. Sweet. actually stay
on because I need to tell you something else. ⁓ Post recording, secret chat after, yeah. ⁓
Matthew Carey (56:46)
we'll a little secret chat afterwards.
I don't think
people will realise that we have secret chats loads of the time. They won't because I cut out this bit normally, but I might leave it in this time.
Wilhelm Klopp (56:57)
A lot of
will learn about the secrets, I think, in the near future.
Matthew Carey (57:02)
⁓ okay, right. I'll stay on. Let's stop recording. Bye, guys.
Wilhelm Klopp (57:05)
Bye!
Matthew Carey (57:05)
Yo, it's Matt here. Just wanted to say if you liked this recording, please give us a review on Spotify, Apple Podcasts, wherever you get your podcasts. It really helps with the ratings. Let's put more people find it. And if you liked it a lot, share it to a friend. Go on, you wouldn't. There's a whole spiel I could do here, but yeah, just share it to a friend. That'd be cool. And sorry this took so long to get out. We recorded this at least a week ago now. ⁓
So yeah, it'll be out pretty soon. And the next episode, we've got some really exciting guests on. yeah, hope to see you there. See ya, bye. ⁓
