Free YouTube Transcribe

Video transcript

The Ralph Wiggum Loop from 1st principles (by the creator of Ralph)

Geoffrey Huntley · 3,887 words · 18 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

Full transcript

0:58Hello everyone. Surprise for anyone

1:01who's tuning in. So, it's been a wild

1:05couple of days. Um, Ralph is finally

1:08crossing the chasm and people are

1:10realizing that the economics of software

1:12development has

1:14forever changed. Um, if you run uh what

1:19I'm about to show you in a loop. What

1:22happens is you work out a unit economic

1:25cost for software development.

1:28Note there is a difference between

1:29software development and software

1:30engineering. Software engineering is

1:32some of the stuff we'll be doing here

1:34later as I expand some of these

1:36teachings.

1:38And essentially software development now

1:41costs $1042 US an hour. It's uh less

1:46than uh you would pay a fast

1:49fast food retail worker. It's cheap.

1:54It's now cheap. And not only is it

1:57cheap, you can do it autonomously.

2:00But to get it working, you have to

2:02understand the bare bones fundamentals

2:05from first principles. Like don't start

2:09with a jackhammer like Ralph. Like learn

2:12how to use a screwdriver first. Learn

2:14how to use a screwdriver first. Really

2:16important. just don't jump straight to

2:18the power tools.

2:20And yeah, so the calculations of $1042

2:23an hour is really simple. If you take

2:25API costs for

2:28uh Sonnet 4.5 from Enthropic right now

2:32and you run Ralph in a loop and you look

2:34at how much it costs in a 24-hour

2:36period, you're looking at $1042 an hour.

2:40And in that you're not out in a single

2:43hour you're outputting multiple days

2:46worth of work if not weeks levels of

2:48work. So in 24 hours you're you're

2:51actually at a place where you're mogging

2:53like backlogs type thing. So it gets

2:56really strange for what's going to be

2:58happening in our industry going forward

3:00because if you look at it right

3:03essentially

3:05um it's going to create this rift

3:08something I've been talking about over

3:09the last There's going to be this

3:11massive rift in software development

3:12between those who get it and those who

3:14don't. And I've been pleading with

3:17people, please invest in yourselves, get

3:19curious, pick up the screwdriver, master

3:22the screwdriver. Once you know the

3:24screwdriver, go for the jackhammer.

3:26Thanks, uh, Dex for the analogy. So,

3:28let's kick this off. Let's kick this

3:31off.

3:34So um one of the most fundamental things

3:36is you need to have your specifications.

3:40It doesn't matter about the tool that

3:42you use, the coding harness or what else

3:44have you. It's it's more about thinking

3:47about this from first principles. It's

3:49all about from first principles.

3:51Anthropic has released their plugin that

3:55does Ralph and I'm thankful for that

3:57because it's just created this

3:59inflection point. But the way that that

4:02works is uh not not it. You're going to

4:07get better outcomes if you do these

4:09concepts by hand. This is the

4:11screwdriver. Now, if you give me a

4:14moment, it looks like my Roomba is

4:15kicking off, which is kind of hilarious

4:17considering we're about to program a

4:19Roomba. So, give me a check.

4:35There we go. All right. So, the physical

4:37room is done. Let's do the virtual room.

4:41So, here is Loom. Loom is where I'm kind

4:44of reimagining what software development

4:46will be, what we need to throw away.

4:49Everything that exists today

4:52is all been designed for humans. If you

4:55think about the user space in Unix,

4:58that's all we've got TTY and all that

5:00stuff. That's everything has been

5:02compounding on a design for humans for

5:04humans for humans. Even agile and how we

5:07do software development and all the rest

5:09of the engineering practices, it's all

5:11been designed around humans. So if you

5:14go in a loop of essentially invalidating

5:17uh was this designed for humans, you can

5:20do like the five W's and maybe you're

5:22able to cut it. And if you're able to

5:23cut it, you need then need to think

5:25about okay, how do I mitigate cutting

5:27that? Was it adding value? Was it not

5:29adding value?

5:31And this is what Loom is. Loom is an

5:33experiment in essentially

5:35self-evolutionary software. It's uh the

5:40idea is if instead of having humans

5:45in the loop,

5:47what happens if humans instead are on

5:50the loop or programming the loop?

5:52And that's going to require a heavy

5:54engineering mindset.

5:57Um, and this is going to be very

5:58different to software development

5:59because software development is now

6:01fundamentally automated with the most

6:03trivial of bash loops and techniques.

6:07And uh, this is just the start. Um, this

6:10is going to cause an inspiration for

6:13other people to build their own things

6:16that are smarter than Ralph.

6:19Smarter than Ralph. I'm already seeing

6:20that taking place.

6:22So, Loom is of many things right now.

6:28Loom is uh essentially GitHub code

6:31hosting. It's its own source control

6:33that uses JJ. It's GitHub code spaces.

6:37So, I can remotely provision

6:38infrastructure.

6:41Um, it's got its own coding agent very

6:44similar to AMP or Claude code. um except

6:48that it alloys multiple different LLM

6:51providers together

6:53and it has the ability to

6:56spawn remote infrastructure and run not

6:58locally on the computer

7:01and I'm very much building in a actor

7:04pub sub type of mind where I want to be

7:08looking at creating chains of these

7:11agents or creating loops on loops on

7:15loops on Ralph and it extends way past

7:18software development. It crosses into

7:20the feature space or the product design

7:23space. Last night I added uh essentially

7:27feature flags or feature experiments uh

7:29by giving some prompts to essentially

7:32hey we want to clone launch darkly and

7:34we've got it now. So, the next thing

7:37really is, okay, I I'm missing some

7:39analytics and I've got this SAS company

7:41that wants to charge me $900 of $900 to

7:45renew and it's such a simple product and

7:48I'm going to need this functionality in

7:50Loom

7:51if I want to take Ralph to the to the

7:54product access. And that's something I

7:56do want to do. I want autonomous agents.

8:00I call them weavers that autonomously

8:03deploy

8:05software without any code review. It's

8:08already it's already doing it now.

8:10There's been so many failure domains. I

8:12can probably hear your objections. If

8:14Ralph the idea of running Ralph makes

8:16you want a Ralph, listen to it.

8:19Listen to it and then engineer away

8:21those concerns. That is now the job.

8:24That is now our job as software

8:26engineers is to keep the locomotive on

8:29the track. We are locomotive engineers

8:31now.

8:33We're no long we're no longer carrying

8:37cargo by hand onto the ship. We have the

8:41uh the box the boxes here. Um the

8:44shipping containers are here. So Loom is

8:46of many things. Um the way that Loom was

8:50built is really simple.

8:53It starts with a conversation

8:56and the conversation creates specs.

8:59The conversation creates specs. I see a

9:01lot of people out there saying, "Hey, I

9:04want to uh do like they handcraft their

9:08specs and they say they don't have time

9:10to create specs." No. Would you believe

9:14I don't create my specs. I generate

9:16them. Then I review them and edit them

9:20by hand. And then I just let it rip with

9:22Ralph. So let's do this now. Like I've

9:25got this SAS analytics company. I'm

9:28going to need analytics because I want

9:31my Weavers to be able to look at product

9:34metrics. I've got the ability for

9:36feature experiments to turn

9:38functionality on and off. And I'm

9:40engineering in a way that there is no

9:43code review. We have autonomous software

9:46or agents or weavers that will

9:49automatically when it's introducing a

9:51feature put a feature flag in

9:55deploy it look at the analytics decide

9:58whether it's actually fixed any errors

10:00or maybe it can do some optimizations

10:02and the landing page this is where we're

10:05going folks this is 2026 strap yourself

10:07in where we're getting towards

10:09essentially autonomous systems

10:12um Ralph is really just a malicking

10:14orchestrator

10:16that avoids context rot and compaction.

10:19Compaction is the is the devil

10:23that basically considers the entire

10:25system including the operating system as

10:29the complete unit. If you have some

10:32external functionality like some

10:34external vendor or API or whatever that

10:37is also part of the system. It's not

10:39just your application. Now, a lot of

10:41those external systems that exist today

10:44that we use in software engineering have

10:46been designed for humans.

10:48You might see me on a loop about this.

10:50So,

10:53what would they look like if they were

10:55designed for robots and how can we

10:58change that design so they're designed

11:00for robots? If we control the entire

11:03stack, then we can start doing

11:05optimization like serialization formats.

11:08JSON is not a great uh protocol when it

11:11comes to uh serialization and

11:14tokenization. It's not a great protocol.

11:17If we control the entire stack, then we

11:19can improve how tokenization works to

11:22drive these reactive agents and all of a

11:25sudden you can now operate cheaper

11:29than anyone else because you're

11:31optimizing. Like we need to be thinking

11:34about software engineering again. We got

11:36a brand new computer. What is something

11:39from something?

11:41Like for example, what is garbage

11:42collection now? What is Malo? What is

11:45Erlang? OTP principles and message

11:47passing.

11:49Why do we have user space?

11:52Like and all these things. Why do we

11:53have JSON? Why do we have TTY? And you

11:56start just cutting and start optimizing

11:58just to be the bare minimum that the

11:59machine needs. So let's go folks. Today

12:05we're going to

12:07show you how you create specs.

12:13Going to kick off cla code. Claw code's

12:15going to do its thing. yada yada yada.

12:17So the first thing you want to do and

12:18one of the first principles of Ralph is

12:20essentially deterministically malicking

12:23the array. Context windows are arrays.

12:26The less that you use in that array, the

12:29less the window needs to slide, the

12:31better outcomes you get. very much

12:33different to the anthropic which

12:34basically just completely keeps pounding

12:36the model in a loop until it gets

12:38compaction and then the compaction is a

12:41lossy function and then it can result in

12:43the loss of the the the pin and what I

12:47call the pin is this

12:52I've been incrementally building up loom

12:54through conversations just like this and

12:57this is my specifications and every time

12:59I add a new feature or adjust I

13:01continually continually evolve and

13:02update my specifications.

13:06And cool, this is now my pin. It's got

13:09my frame of reference of what this is

13:12all about. And I haven't injected it

13:14all. But what I've done, if I look at

13:17this file, is it's a whole bunch of

13:19lookup tables that link to a particular

13:21things and give hints to the search tool

13:24for like user authentication. and what

13:27are some other words used for user

13:29authentication which improves the hit

13:31rate of the search tool. The more it's

13:34able to find and look up that context,

13:36the less it's going to invent. I don't

13:39want it to invent anything to do with my

13:41current functionality, but I do want to

13:43use it as a pin or frame or reference to

13:46my current functionality.

13:51Okay, let's go. So, how do you build

13:53specs? It's really simple. Hey, I want

13:57to add product analytics

14:02like post hog into

14:07uh loom.

14:09It

14:11would be used uh

14:15by products built

14:19on loom.

14:22Thus we are collecting information about

14:27non

14:29uh authenticated

14:31users. Let's have a discussion

14:35and you can interview me.

14:41So we got our pin which basically you

14:43can use as a lookup source to learn more

14:45about the current functionality of the

14:47application.

14:50And then I just go like four four point

14:53four. I don't care about privacy. We

14:58collect

15:00data. Use the loom secret

15:05create for IP addresses. So this is

15:08something I've got. I've got a a special

15:10wrapper for PII type topics. That way

15:15logs for sensitive PII information will

15:18never end up any anything like IP

15:20addresses and all that stuff will never

15:23end up in logs. This is the engineering

15:24type topic. So I'm giving it some some

15:26direction. Later I'll play with the

15:29privacy etc. And this is really low

15:31effort just to teach people how simple

15:33it is. uh five

15:36integration is via web

15:42uh API thus clients will be

15:48uh the clients will be

15:52rust typescript and interact with the

15:58loom api.

16:01Next up, I guess we need SDKs for this

16:06new

16:08feature set.

16:10So, other applications

16:14can run experiments on the Loom

16:18platform.

16:33And this is it's a dance and dance in

16:36and out.

16:41I don't want any uh like mobile. So I'm

16:44going to say no mobile event model event

16:47model choose best practices. Look how

16:51post

16:53does it. Three,

16:57four, experiments integrate in with our

17:02existing flag

17:06specifications and system.

17:13Fine. For data storage, just store in

17:18our current

17:21SQL light. Right now I'm using SQL light

17:23because it's just really fast for

17:25iteration loop versus Postgress. Plus

17:27you get these machines that are massive

17:28now. They're really cheap. You can fogg

17:31a postgress database so hard these days.

17:34And uh whilst this is not scalable,

17:36that's not a concern I have right now.

17:38Um and in the end I'm not locking in my

17:41data model because I have a vision

17:43towards actors and OTP principles. Um

17:47maybe I can merge multiple of these big

17:50machines together and we start getting

17:52towards virtual actors and Microsoft all

17:55things. If you know you know

17:58okay identity

18:05identity model I don't know how does

18:09post hog do it let's discuss.

18:13So this is think about this is about

18:16you've got some clay on a pottery wheel

18:18and you're just like slowly making

18:21adjustments. You're you're molding the

18:23context window and you're testing what

18:25it knows and you're applying the

18:27engineering knowledge that you have

18:31and we're shaping the specifications.

18:34We're shaping the specifications.

18:47And it's a dance, folks. This is how you

18:49build your specifications. You got all

18:50the time in the world. And what's really

18:52cool is I could let this rip once it's

18:55done in a branch, and then I could like

19:00check its outcomes. It's free. It's

19:02pretty much free. I think it's like let

19:04it do a couple Ralph loops while I'm

19:07there

19:09and I would I'd be driving it by hand.

19:12I'll be malicking and doing the

19:14principles by hand. And if I'm okay

19:15where it's it's going, then I will just

19:19let it rip. Otherwise, if something's

19:21wrong, I'll go back to the

19:22specifications.

19:23I will adjust some of the prompt

19:26engineering. Maybe I take some different

19:28approaches for the back pressure.

19:30There's a lot of things you can do with

19:31back pressure. Our job is now

19:33engineering back pressure to the

19:35generative function to keep the

19:37generative function on the rails, the

19:40locomotive.

19:42Um

19:52yeah, we want person profiles inc

19:56anonymous and SDK can identify someone.

20:03I don't know what does post hogg do

20:06[laughter]

20:07three

20:10uh

20:12multi- tannency

20:17ty

20:19works by analytics

20:23uh tied to a loom or

20:30they're tied to a loom organization I've

20:32already got aback back. I've already got

20:34multi-tenency built in. So, this is me

20:36applying the engineering that you should

20:39use the search tool to uh learn how like

20:44I'm already doing multi-tenency.

20:46This is me steering the specification

20:49stage or adjusting the clay and the

20:50pottery wheel that you got to use the

20:52search tool. Don't reinvent yourself

20:54here.

21:23And the interesting thing is because

21:24it's the context window is just an

21:26array. There's no reason why you can't

21:29like productize just this process. Um

21:32even Anthropics doing it like the user

21:34ask question tool or the planning tool

21:37etc. But that's not good enough because

21:39there's no memory server side for

21:41inferencing. It's just what's in the RA.

21:44There's no reason why you can't preserve

21:47this conversation and rehydrate it

21:49later. So, you can either create another

21:52terminal once you write it out to disk,

21:54and we're going to be doing that very

21:55shortly,

21:57and then let it rip uh attended, and

22:00then let it rip unattended,

22:04and then come back here and make some

22:05adjustments before you let it go. a full

22:07hog or like you can make some sort of

22:10tool here that just like resumes this

22:13type of state resumes the state of the

22:16conversation. So you can resume the

22:18planning. There's no reason why the

22:20source of truth needs to be marked down

22:23folks. It can be just this array.

22:27Um

22:36Just do what post hog does.

22:42Okay. Then update specar.md

22:46and create a implementation plan at

22:50hostth hog.mmd.

22:53And this is the key is if you want to

22:55improve the ability for it to track the

22:57plan. I've seen people go JSON and other

23:00JSON etc. All you need to do is think

23:02about like the generative function into

23:04the search tool.

23:06strong linkage. You just got to do

23:08linkage

23:11and as bullet points

23:16and site the specification or source

23:20code that needs to be adjusted

23:24specification.

23:32And then you can you can start really

23:34playing with this because like the way

23:35that the read tool works is it works in

23:38hunks, folks. It works in hunks. So you

23:41can actually tell it to actually give

23:42specifics of what hunks in each file

23:44need to be done. I'm not going to do it

23:46here. I just need to let this rip. I've

23:48got about seven minutes to get this

23:50going and then I'm going to be AFK.

24:15Okay, let's call out something that's

24:16happening here. It's creating the new

24:17specification, but not only is it

24:19creating the new specification, it's

24:21updating my lookup table. The specs

24:24readme,

24:27it's updating the specs dot the lookup

24:30table. It's just a lookup table.

24:33And it has many different generative

24:35words to explain

24:38what each spec does. And those

24:41generative words act as essentially by

24:44having more descriptors of what the

24:46specification is. That lookup table will

24:49get more hits for the search tool.

24:53You need to think about these things

24:54from first principles because you can

24:56drive it all by hand. The more you drive

24:58by hand, the better outcomes you get. If

25:00you go straight for the jackham

25:02jackhammer, you're going to get terrible

25:03results. Absolutely terrible results.

29:19All righty, we now got a specification.

29:23Now, it would be really tempting to kick

29:26this off in this context window, but

29:29this context window or this array

29:31already has one goal. That's to create

29:33me some specifications.

29:36Now, there's a thing of context rot.

29:38This is what Ralph is all about is

29:42avoiding compaction by deterministically

29:46malicking the array. So question time.

29:51It should be no surprise what we need to

29:53do is create a new array.

29:56We're going to keep this one open. We're

29:57going to have a look to see what it

29:58does, right? Because I might want to

30:00refine my specifications. So I'm just

30:02going to like create another session.

30:06Hop on over.

30:11Cool. And we're going to go to code, go

30:13to Loom.

30:15And the first thing we're going to do is

30:18create a prompt.

30:21Prompt of MD.

30:23Okay, we need our PIN study

30:27specs readme.md.

30:30Study. What is this called? It's called

30:32the specs implementation plan.

30:38and pick the most important thing to do.

30:42So instead of this multi-step type of

30:44approach, what we're doing is we're

30:46allowing the LLM to decide what the most

30:48important thing is in our implementation

30:50plan.

30:52It's uh you you it's not high control,

30:55it's low control with high oversight.

30:59And by it only just doing one thing in

31:01lots of loops, then each loop only has

31:05one goal, one objective, and you you're

31:07using less of the context window, folks.

31:09Very important. Okay. Important.

31:17Entropic likes you to yell at the LM.

31:20Let's give us some completion promises

31:22or give us give some objectives. It's

31:25important. uh

31:29use the loom web i18 where uh and loom

31:38for typescript

31:40and I will just say this is like loom

31:4218n

31:47patterns for typescript

31:51or the loom iain n patterns for rust.

31:59Okay.

32:00Uh build

32:04author property based tests

32:08or unit tests whichever is best. I'm

32:12giving the judgment to the LLM to decide

32:15whether it should be a property based

32:16test or unit test. I'm not going to get

32:19into that dogma of where you should use

32:21each. This is your engineering

32:22knowledge.

32:24After making chain, after make

32:35run cargo test

32:40run

32:43the tests.

32:47When tests pass, commit and push to

32:52deploy the changes. Now, Loom

32:55automatically deploys. There is no CI.

32:59There is no CI. Um, it has full access

33:03to do pseudo. It's been programmed in

33:06loops. So, it can introspect the

33:08automatic deployment using pseudo. And

33:10pseudo is very safe in this case for

33:13bootstrapping up because uh I use Nixos.

33:18And if you know, you know.

33:20Now, I'm kind of halfassing this to be

33:23honest. Um because I'm depressed on

33:25time,

33:27you normally would do something a little

33:28bit better. So I'm just going to kick

33:29this off while true. Let's do the Ralph

33:32cat prompt. MD

33:35to claude dangerously skip permissions.

33:41Done. And no matter typo while true

33:46do

33:50Cool.

33:55We're now doing the Rap Wigum. While

33:56true, we're deterministically malicking

33:59the harness or the or harness. And in

34:03the bigger picture of this, Loom is the

34:05thing that actually deterministically

34:07malics or is the Ralph loop. And it's

34:09running many Ralph loops and they're

34:13chain reactive as as much as need be

34:16like Erlang style.

34:19And uh it is

34:23uh let me just check. I think I made a

34:25mistake here. So this is the idea. You

34:27don't have to immediately go into full

34:29blown raft.

34:31You can do it attended. I forgot to

34:34update the implementation plan when the

34:39task is done. Y.

34:44Cool.

34:46And this sets up our state checkpoints.

34:49Let's kick off Ralph again. So, this is

34:52the practice backwards, forwards. You

34:53like you don't just let it rip. You you

34:56you watch this. Well, you're watching

34:58it. I'll call out anything that I notice

35:00that's a little bit weird and I'll

35:01cancel this. I'll go back and adjust my

35:03prompt. Maybe this was a little bit more

35:06effort. I would like inspect the code to

35:10make sure it's following conventions.

35:11But like for me, at least with Loom, it

35:16really doesn't matter if it outputs

35:18something bad because I would just sit

35:21down there with a highlighter and have a

35:23look what if it's bad. And that's just

35:25another Ralph loop to pull and curate

35:28and refactor the codebase to follow

35:30conventions. If if it gets

35:32internationalization,

35:34I would just that's just a raph loop to

35:36force it to do that. If it doesn't use

35:38aback uh for security, that's just

35:41another RA loop. It's just different

35:43techniques of the RA loop to automate

35:46things. So, this is now running. So,

35:48let's just kick off some music. I'm

35:49going to go AFK and uh gonna go out

35:53tonight. So, cheers folks. Thanks for

35:55tuning in. I hope this answers a lot of

35:56questions.

35:58Um it is you got to approach this from

36:01first level's principles and you can do

36:02Ralph by hand because it's all about

36:06deterministically malicking the array.

Recently added transcripts

Browse the whole transcript library

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com, free, unlimited, no sign-up.