WEBVTT
1
00:00:01.169 --> 00:00:04.790
How'd you like to listen to. NET Rocks with no ads? Easy.
2
00:00:05.370 --> 00:00:08.779
Become a patron. For just $ 5 a month, you get
3
00:00:08.890 --> 00:00:11.720
access to a private RSS feed where all the shows
4
00:00:11.800 --> 00:00:14.900
have no ads. $ 20 a month will get you that
5
00:00:15.119 --> 00:00:18.839
and a special. NET Rocks patron mug. Sign up now
6
00:00:18.899 --> 00:00:36.100
at patreon.dotnetrocks.com. Hey, welcome back to.
7
00:00:36.060 --> 00:00:36.640
NET Rocks.
8
00:00:36.719 --> 00:00:37.500
I'm Carl Franklin.
9
00:00:37.759 --> 00:00:38.439
And I'm Richard Campbell.
10
00:00:38.600 --> 00:00:44.170
This is episode 2023, my friend. It's almost over.
11
00:00:44.289 --> 00:00:46.969
This is it. It's almost over. I'm looking forward to it.
12
00:00:47.030 --> 00:00:49.609
I've got a special show planned for 2027 now. I saw.
13
00:00:49.770 --> 00:00:51.049
I came up with an idea.
14
00:00:51.070 --> 00:00:53.590
Yeah, you like that? Let's not tell anybody. Let's just
15
00:00:53.630 --> 00:00:54.020
find out.
16
00:00:54.049 --> 00:00:55.609
No, we're not going to say anything about it.
17
00:00:56.259 --> 00:00:56.840
We'll just see.
18
00:00:57.200 --> 00:00:57.420
Yeah.
19
00:00:57.579 --> 00:00:57.859
All right.
20
00:00:58.320 --> 00:01:00.140
We're going to look back at 2027.
21
00:01:00.140 --> 00:01:01.520
Something like that. I don't know.
22
00:01:01.539 --> 00:01:05.620
Okay. Well, what we're talking about, of course, is we
23
00:01:05.780 --> 00:01:10.319
have been doing this historical documentation.
24
00:01:10.969 --> 00:01:14.409
It started casually in the 1900s, but it's gotten a
25
00:01:14.450 --> 00:01:15.290
little intense now.
26
00:01:15.489 --> 00:01:18.209
Yeah. And it's also kind of a yawner now because
27
00:01:18.310 --> 00:01:21.390
we're in the 2020s. Yeah.
28
00:01:21.629 --> 00:01:22.290
It was yesterday.
29
00:01:22.750 --> 00:01:22.989
Yeah.
30
00:01:23.290 --> 00:01:26.049
So, what happened three years ago? Let's talk about that.
31
00:01:26.069 --> 00:01:26.689
This is 2023. Okay.
32
00:01:28.170 --> 00:01:30.790
Um, I'll tell you the bad news. Richard will probably
33
00:01:30.849 --> 00:01:35.109
say some happier news. Um, Hamas attacks, Israel, Israel, Gaza
34
00:01:35.129 --> 00:01:35.829
war begins.
35
00:01:36.109 --> 00:01:36.370
Yeah.
36
00:01:36.450 --> 00:01:36.969
Bad war.
37
00:01:37.530 --> 00:01:41.609
And, uh, good wars, but still, no, uh, Russia, Ukraine
38
00:01:41.659 --> 00:01:47.299
war enters its second year. And, uh, yeah, well, um, Western,
39
00:01:47.340 --> 00:01:50.040
that's what you got, huh? Well, the Western military support
40
00:01:50.060 --> 00:01:52.000
the Wagner group, uh, mutiny.
41
00:01:52.120 --> 00:01:52.819
Oh yeah. In June.
42
00:01:52.879 --> 00:01:57.370
And the death of Wagner, Vegni, uh, Frigosian?
43
00:01:57.530 --> 00:01:58.450
Yeah.
44
00:01:58.489 --> 00:02:02.489
Richard, that happened on the last day of KCDC that year.
45
00:02:02.709 --> 00:02:08.879
Yeah. We were all there. Wow. You never heard from
46
00:02:08.919 --> 00:02:11.819
him again because those guys are all dead now.
47
00:02:12.219 --> 00:02:13.620
Dead men tell no tales.
48
00:02:13.960 --> 00:02:14.240
Yeah.
49
00:02:15.219 --> 00:02:18.590
Donald Trump was indicted four times, charged in four separate
50
00:02:18.610 --> 00:02:24.219
criminal cases involving the 2020 election, classified documents. The January
51
00:02:24.409 --> 00:02:26.930
6th aftermath and the Stormy Daniels hush money matter.
52
00:02:26.949 --> 00:02:28.050
Remember that?
53
00:02:28.069 --> 00:02:28.150
Yeah.
54
00:02:28.830 --> 00:02:30.830
Remember that stuff? Yeah. Remember that stuff.
55
00:02:31.009 --> 00:02:38.060
Okay. Some devastating earthquakes, Turkey, Syria in that area. Killed
56
00:02:38.099 --> 00:02:41.840
more than 50,000 people. So bad.
57
00:02:42.259 --> 00:02:43.979
Well, and you're talking Syria is still in the midst
58
00:02:44.020 --> 00:02:47.099
of a civil war, too. So, who knows what help
59
00:02:47.150 --> 00:02:48.229
they got or any of those things.
60
00:02:48.409 --> 00:02:48.610
Right.
61
00:02:49.780 --> 00:02:52.870
Uh, 2023 becomes the hottest year on record. I think
62
00:02:52.909 --> 00:02:55.569
that has been surpassed now, but, uh, that was the
63
00:02:55.629 --> 00:03:01.340
record to that point. Um, bad, bad, bad, bad. Uh,
64
00:03:01.409 --> 00:03:02.990
Sudan descends.
65
00:03:02.629 --> 00:03:04.750
Into civil war. Yeah. It's inevitable.
66
00:03:04.969 --> 00:03:09.280
The Sudanese armed forces versus the rapid support forces. Thousands
67
00:03:09.319 --> 00:03:13.780
were killed. Millions displaced. One of the world's largest humanitarian crises. Uh,
68
00:03:15.240 --> 00:03:19.310
the U S banking crisis. Silicon Valley Bank and others collapse.
69
00:03:20.129 --> 00:03:20.849
Signature Bank.
70
00:03:21.150 --> 00:03:24.080
Yeah, that one, I mean, not the same scope as 2008,
71
00:03:24.080 --> 00:03:27.639
but it didn't have a contagion. Like one would argue
72
00:03:27.659 --> 00:03:31.060
that the contagion rules they put in place in 2009
73
00:03:31.060 --> 00:03:32.379
actually worked. Right.
74
00:03:34.280 --> 00:03:38.689
Hollywood and U.S. auto workers stage a major strikes. Writers
75
00:03:38.729 --> 00:03:39.229
and actors.
76
00:03:39.550 --> 00:03:40.150
About AI.
77
00:03:40.270 --> 00:03:42.669
Yeah, brought much of Hollywood production to a halt while
78
00:03:42.689 --> 00:03:47.590
the UAW simultaneously struck Ford, GM, and Stellantis. The year
79
00:03:47.610 --> 00:03:50.250
became one of the most significant periods for organized labor
80
00:03:50.289 --> 00:03:53.960
in the United States in decades. Prince Charles became King Charles.
81
00:03:54.030 --> 00:03:54.219
Right.
82
00:03:54.379 --> 00:03:56.259
King Charles III, May 6th.
83
00:03:57.020 --> 00:04:00.120
My oldest son got to do his freshman year of
84
00:04:00.159 --> 00:04:01.379
college in London.
85
00:04:01.400 --> 00:04:03.729
Oh, wow. Saw the coronation.
86
00:04:04.849 --> 00:04:08.889
His first four or five weeks, two monarchs, three prime ministers.
87
00:04:08.949 --> 00:04:12.650
Yeah. They're still on the prime minister role here. What
88
00:04:12.689 --> 00:04:15.129
is it, 10 in four years? It's amazing.
89
00:04:16.490 --> 00:04:20.459
He just got there when Liz Truss was trying to
90
00:04:20.500 --> 00:04:22.100
outrace the lettuce and failed.
91
00:04:22.120 --> 00:04:27.930
Yeah, and failed. Cannot last longer than lettuce.
92
00:04:28.889 --> 00:04:32.720
Let's see. The Titan submersible disaster, the disappearance of Ocean
93
00:04:33.000 --> 00:04:35.879
Gates Titan during a dive to the wreck of the
94
00:04:35.920 --> 00:04:39.740
Titanic triggered a massive multinational search and became an enormous
95
00:04:39.779 --> 00:04:43.699
worldwide news story. You probably know more about that than
96
00:04:43.740 --> 00:04:47.050
I do, Richard. Don't use carbon fiber for submersibles.
97
00:04:47.399 --> 00:04:48.670
That's the end of that. Yeah.
98
00:04:48.759 --> 00:04:50.050
Catastrophic implosion.
99
00:04:50.230 --> 00:04:54.610
It imploded. Yeah, not exploded. Five people died. I mean-
100
00:04:55.360 --> 00:04:57.600
They'd ever felt a thing. It would have been instantaneous.
101
00:04:57.980 --> 00:05:00.160
So incredibly fast, but still.
102
00:05:00.259 --> 00:05:01.680
Chinese spy balloon incident?
103
00:05:01.759 --> 00:05:03.269
Yeah, that's a weird one, isn't it? It was a
104
00:05:03.310 --> 00:05:07.120
weird one. F-22 shoots down a spy balloon? Yeah.
105
00:05:08.410 --> 00:05:12.029
Okay. The Maui wildfires. Bad, bad, bad.
106
00:05:12.230 --> 00:05:13.170
Yeah. Terrible.
107
00:05:13.189 --> 00:05:18.129
There was an earthquake in Morocco, a catastrophic flood in Libya,
108
00:05:19.069 --> 00:05:22.610
or floods, more than one. Kevin McCarthy's removal as House Speaker.
109
00:05:23.610 --> 00:05:25.759
All sorts of And it's gone well since then.
110
00:05:25.779 --> 00:05:25.860
Yeah.
111
00:05:27.930 --> 00:05:30.430
Okay, we got to laugh to keep from crying. So, Richard,
112
00:05:30.990 --> 00:05:32.769
let's talk about space.
113
00:05:33.300 --> 00:05:35.860
I would also suggest that this was the end of COVID, right?
114
00:05:35.959 --> 00:05:39.019
In January, when China finally reopened. Right. But also announced
115
00:05:39.040 --> 00:05:43.139
that its population has fallen. You know, they start to
116
00:05:43.160 --> 00:05:45.610
understand that the way they were doing their assessment of
117
00:05:45.639 --> 00:05:49.769
population wasn't effective. And there was like 100 million fewer
118
00:05:49.810 --> 00:05:50.529
people than they thought.
119
00:05:50.750 --> 00:05:50.970
Wow.
120
00:05:51.029 --> 00:05:53.750
And then in May, when the World Health Organization officially
121
00:05:53.850 --> 00:05:55.129
ended the global emergency.
122
00:05:55.430 --> 00:05:55.589
Yeah.
123
00:05:55.930 --> 00:05:59.410
End of COVID. Yeah. As a pandemic anyway. All right,
124
00:05:59.490 --> 00:06:02.649
into space. Yes. 2023 is really the year that SpaceX
125
00:06:02.689 --> 00:06:09.399
begins to dominate with 98 of 223 launches in the world.
126
00:06:09.579 --> 00:06:15.300
So that's 44% comes from one company. So that's 91
127
00:06:15.300 --> 00:06:18.459
Falcon 9 launches, five Falcon Heavy launches, and the first
128
00:06:18.620 --> 00:06:22.149
two test flights of starship uh the previous year in
129
00:06:22.149 --> 00:06:25.670
22 it was 61 launches they had 99 booster landings
130
00:06:25.730 --> 00:06:28.129
which seems weird they only had 98 launches but 99
131
00:06:28.129 --> 00:06:31.189
booster landings remember that every falcon heavy has two boosters
132
00:06:32.129 --> 00:06:36.939
for a total of 1200 metric tons lifted to orbit
133
00:06:37.389 --> 00:06:41.470
um wow again a crazy record Now, 63 of those
134
00:06:41.470 --> 00:06:46.189
91 Falcon 9 launches were Starlink because Starlink is really
135
00:06:46.250 --> 00:06:49.519
coming into play here, especially in the context of the
136
00:06:49.680 --> 00:06:54.439
Ukraine war. This is the year that the Elon biography
137
00:06:54.480 --> 00:06:57.360
comes out where we find out that at the beginning
138
00:06:57.379 --> 00:06:59.319
of the war, he actually– well, not the beginning. It
139
00:06:59.339 --> 00:07:01.339
was like in November of 22, he actually turned off
140
00:07:01.379 --> 00:07:04.949
Starlink at the request of Putin. That was more than
141
00:07:04.990 --> 00:07:06.509
a little bit of a kerfuffle overall.
142
00:07:07.009 --> 00:07:07.569
Kerfuffle.
143
00:07:07.589 --> 00:07:08.350
Yeah.
144
00:07:08.550 --> 00:07:12.319
Yeah. Interesting times. I would also have to mention China,
145
00:07:12.360 --> 00:07:16.930
who had 67 launches that year compared to SpaceX's 98.
146
00:07:16.930 --> 00:07:20.189
But that is them operating their own space station. Three
147
00:07:20.230 --> 00:07:25.810
supply missions and a few crew changes in 23. In January,
148
00:07:25.870 --> 00:07:28.250
SpaceX does a Transporter 6 mission. I would normally not
149
00:07:28.290 --> 00:07:31.269
mention these. Transporter 6 is literally their flying CubeSats. I
150
00:07:31.310 --> 00:07:33.790
think they flew like 50 CubeSats on it. But one
151
00:07:33.810 --> 00:07:38.389
of them was Caltech's Space Solar Power Demonstrator. This is
152
00:07:38.410 --> 00:07:42.670
a little 50-kilogram CubeSat that actually has deployable solar collectors
153
00:07:42.730 --> 00:07:47.089
on it that had tested 32 different styles of solar collectors,
154
00:07:47.170 --> 00:07:51.529
different types of full of voltaics and so forth, and
155
00:07:51.589 --> 00:07:56.300
included a microwave transmitter and successfully beamed power to Earth.
156
00:07:56.560 --> 00:07:58.160
It wasn't a meaningful amount of power, but it was
157
00:07:58.240 --> 00:08:01.920
an end-to-end test, essentially, that you can collect solar power
158
00:08:01.959 --> 00:08:06.490
in orbit and beam it onto the surface. It was microwaved, right? microwaves. Yeah.
159
00:08:06.529 --> 00:08:08.449
Microwave microwave is like nine gigahertz.
160
00:08:08.610 --> 00:08:11.810
Was that actually successful? That's been a lot of sci-fi books.
161
00:08:12.250 --> 00:08:12.529
Yeah.
162
00:08:12.589 --> 00:08:12.769
Yeah.
163
00:08:12.810 --> 00:08:15.509
Well, it's, that's the old, you know, back from the seventies, uh,
164
00:08:15.720 --> 00:08:18.240
you know, Gerald O'Neill and so forth. So this was
165
00:08:18.339 --> 00:08:20.560
a genuine end to end test worked a hundred percent.
166
00:08:20.920 --> 00:08:22.980
Like, uh, yeah, we were talking about that in the
167
00:08:23.019 --> 00:08:24.860
nineties that sure that this was a good.
168
00:08:24.939 --> 00:08:26.870
It goes back to the seventies. It's gone a long,
169
00:08:26.930 --> 00:08:29.759
long time. But my, um, We did the data centers
170
00:08:29.819 --> 00:08:32.100
in space talk, and I sort of end that one with, hey,
171
00:08:32.679 --> 00:08:35.350
if we can really lift 100 metric tons to orbit
172
00:08:36.169 --> 00:08:40.009
with a starship at a price of less than $ 100 million,
173
00:08:41.070 --> 00:08:45.250
maybe space-based power is actually feasible today. Because now we
174
00:08:45.909 --> 00:08:50.929
talk about the most advanced theoretical designs, the SPS Alpha
175
00:08:50.960 --> 00:08:55.500
designs from the British Aeronautical Society. They're talking about 3,000
176
00:08:55.500 --> 00:08:58.860
metric tons for a gigawatt. And that's outrageous if you're
177
00:08:58.899 --> 00:09:01.830
lifting them in 20-ton chunks. But if you're lifting them
178
00:09:01.970 --> 00:09:05.250
in 100-ton chunks... It starts to look practical. And speaking
179
00:09:05.269 --> 00:09:08.990
of that 100-ton lift, in April, Starship test flight number one,
180
00:09:09.049 --> 00:09:11.580
the most powerful rocket ever launched. This was the V-1. Today,
181
00:09:11.620 --> 00:09:15.080
we're dealing with V-3s. It didn't go particularly well, but
182
00:09:15.100 --> 00:09:18.580
it was a full end-to-end stack. They launched. The separation
183
00:09:18.620 --> 00:09:21.440
went a little bit wonky. Everything was terminated after about
184
00:09:21.480 --> 00:09:25.740
four minutes worth of flight. But this gigantic 9-meter wide,
185
00:09:25.759 --> 00:09:30.919
120-meter tall stainless steel rocket took off. More thrust than
186
00:09:31.000 --> 00:09:35.820
Apollo by Saturn V by a lot. And yeah, they're
187
00:09:35.860 --> 00:09:38.509
on their path. It's advancing to this day.
188
00:09:38.809 --> 00:09:41.480
Was that... That wasn't the one that sort of blew
189
00:09:41.559 --> 00:09:44.240
up on the launch pad and toasted everything around.
190
00:09:43.960 --> 00:09:44.399
It, right?
191
00:09:44.559 --> 00:09:44.820
No.
192
00:09:45.419 --> 00:09:49.299
Well, actually, what it was was it lost three engines
193
00:09:49.559 --> 00:09:53.429
at launch. And so, it lifted off very, very slowly,
194
00:09:53.490 --> 00:09:56.639
literally as it burned fuel lost weight. So it dug
195
00:09:56.659 --> 00:10:03.049
a 20-foot deep hole. Blowing concrete everywhere.
196
00:10:03.070 --> 00:10:03.169
Yeah.
197
00:10:03.250 --> 00:10:07.590
It destroyed, it really seriously damaged the pad. Destroyed the pad, yeah. Arguably,
198
00:10:07.669 --> 00:10:10.230
when they had three engines fail, they should not have
199
00:10:10.269 --> 00:10:11.990
attempted to launch it. It should have cut off immediately,
200
00:10:12.090 --> 00:10:16.409
but they didn't. And so, they also, this is the
201
00:10:16.929 --> 00:10:20.529
milk stool design. So, they just had legs to, they
202
00:10:20.580 --> 00:10:23.870
had no deflectors. They had no water suppression system. None
203
00:10:23.909 --> 00:10:25.230
of the normal things you would do with a rocket
204
00:10:25.269 --> 00:10:27.889
like this. They did not do that again. In the
205
00:10:27.929 --> 00:10:29.639
process of repairing the pad, they did put in a
206
00:10:29.649 --> 00:10:33.379
water suppression system. And subsequently, today, they have a proper
207
00:10:33.779 --> 00:10:37.700
full flame trench with water suppression redirecting the exhaust.
208
00:10:37.720 --> 00:10:38.320
What were they thinking?
209
00:10:38.340 --> 00:10:40.679
This massive rocket. He wanted to make it as simple
210
00:10:40.720 --> 00:10:43.379
as possible for flying from Mars. That was what he
211
00:10:43.419 --> 00:10:48.259
was thinking, which is dumb, dumb, dumb, dumb. Anyway, the
212
00:10:48.299 --> 00:10:54.669
good news is they learned. In August– The Indians, the
213
00:10:54.690 --> 00:10:59.529
Indian space program, Chang'e-N-3 successfully does a soft landing of
214
00:10:59.549 --> 00:11:02.580
their lander near the moon's south pole. This will be
215
00:11:02.600 --> 00:11:04.620
the only fourth country to ever land on the moon.
216
00:11:04.820 --> 00:11:06.899
The first to be in the Americans will actually be.
217
00:11:07.360 --> 00:11:11.059
The Soviet Union, then the Americans, and then China, but
218
00:11:11.120 --> 00:11:13.059
now India was up there as well, and also the
219
00:11:13.100 --> 00:11:16.159
first to land anywhere near the South Pole. That same month,
220
00:11:16.220 --> 00:11:18.879
Russia attempts to return to the moon with their Luna 25.
221
00:11:18.879 --> 00:11:25.399
It crashes. In September, OSIRIS-REx, this is a US mission
222
00:11:25.480 --> 00:11:28.799
to collect samples of the asteroid Bennu, returns those samples
223
00:11:28.860 --> 00:11:33.750
successfully to Earth. And in October, Falcon Heavy launches the
224
00:11:33.820 --> 00:11:38.220
Psyche mission. This is a mission to the largest object
225
00:11:38.440 --> 00:11:42.519
in the asteroid belt. Psyche is a metallic asteroid, possibly
226
00:11:42.580 --> 00:11:45.700
the core of a planet that was ripped apart by
227
00:11:45.720 --> 00:11:48.190
the tidal forces caused by Jupiter. And they want to
228
00:11:48.289 --> 00:11:50.529
seriously map that. That mission is still underway. It's still flying.
229
00:11:51.009 --> 00:11:54.850
Second test flight of Starship in November. And that's all
230
00:11:54.889 --> 00:11:56.710
I got for that. So it's not a big, I mean,
231
00:11:56.730 --> 00:11:59.009
there's a lot of missions, but they're mostly Starlink missions, right?
232
00:11:59.519 --> 00:12:02.840
Shall we talk about computing? Because it's 2023. Yeah. And
233
00:12:02.860 --> 00:12:06.399
this is when AI takes over the conversation. Yeah.
234
00:12:06.440 --> 00:12:06.679
Right.
235
00:12:07.120 --> 00:12:10.419
We had ChatGPT launched in November of 22. It is
236
00:12:10.480 --> 00:12:13.210
now the beginning of 23. This is the first time
237
00:12:14.169 --> 00:12:16.970
Sachin Adela ever writes an all-hands letter the way Bill
238
00:12:17.009 --> 00:12:20.769
Gates did, where he says, look, we've got this agreement
239
00:12:20.789 --> 00:12:25.450
with OpenAI. We've invested an additional $ 10 billion in them,
240
00:12:25.509 --> 00:12:29.240
bringing their total investment to $ 13 billion. And every team
241
00:12:29.379 --> 00:12:32.899
should take a look at these APIs and start immigrating
242
00:12:32.919 --> 00:12:36.259
them into their applications and make a co-pilot. I've heard
243
00:12:36.299 --> 00:12:39.580
rumor there were literally hundreds. But, you know, it's a
244
00:12:39.720 --> 00:12:41.740
first for Satya to direct the whole company in a
245
00:12:41.779 --> 00:12:44.580
new direction. And really the thing that I think he
246
00:12:44.620 --> 00:12:47.159
thinks he can hang his hat on as CEO, that
247
00:12:47.210 --> 00:12:49.309
this is what he brings to the company. First out
248
00:12:49.330 --> 00:12:52.509
of the gate in February will be Bing, formerly known
249
00:12:52.549 --> 00:12:54.269
as Project Sydney, where they were trying to put a
250
00:12:54.309 --> 00:12:56.889
natural interface onto the search engine. I hear both guys
251
00:12:56.909 --> 00:13:00.289
who tried it really liked it. I said that a lot.
252
00:13:00.330 --> 00:13:02.269
I feel, I feel bad. I mean, yeah. You know,
253
00:13:02.289 --> 00:13:04.779
it turns out that just putting an LLM onto your
254
00:13:04.799 --> 00:13:06.779
search engine doesn't make it a popular search engine, but
255
00:13:06.840 --> 00:13:07.879
you know, it was first out the gate.
256
00:13:08.960 --> 00:13:09.080
Right.
257
00:13:09.220 --> 00:13:12.429
In March we get GPT four. So we go from what?
258
00:13:12.429 --> 00:13:16.789
275 billion parameters up to a trillion parameters. Uh, It's
259
00:13:16.830 --> 00:13:19.490
amazing it happened that fast, you know, that less than
260
00:13:19.529 --> 00:13:22.980
a year after GPT-3, they had GPT-4. This is when
261
00:13:23.000 --> 00:13:25.639
the 10 billion bought them, was to build an incredibly
262
00:13:25.700 --> 00:13:29.000
massive model. And it's impressive, the step forward on that. This,
263
00:13:29.039 --> 00:13:32.039
of course, freaks out Google, who had been playing with
264
00:13:32.120 --> 00:13:34.360
BARD and had Google Brain and all those sorts of things.
265
00:13:34.379 --> 00:13:37.379
They're actually, internally, they called it a code red event.
266
00:13:38.200 --> 00:13:41.740
This becomes the big push for Gemini, right? In May,
267
00:13:42.519 --> 00:13:46.750
Jeffrey Hinton said, One of the godfathers of the generative
268
00:13:46.840 --> 00:13:49.820
AI movement leaves Google and goes on a press tour
269
00:13:49.840 --> 00:13:51.399
that he's still on to this day talking about the
270
00:13:51.440 --> 00:13:52.120
dangers of AI.
271
00:13:52.159 --> 00:13:53.320
He basically says, stop.
272
00:13:53.419 --> 00:13:57.159
Yeah. Well, now that all of my stock is vested
273
00:13:57.559 --> 00:13:59.980
and I get to keep my millions, now let's talk
274
00:14:00.000 --> 00:14:01.299
about how problematic it is.
275
00:14:01.480 --> 00:14:01.840
Yeah.
276
00:14:02.240 --> 00:14:06.480
Yeah. In April, Meta releases an open source large language
277
00:14:06.519 --> 00:14:12.120
model made by Meta AI, aka Lama. One of the
278
00:14:12.139 --> 00:14:14.879
first open source models out of the gate. And by July,
279
00:14:14.899 --> 00:14:17.779
there'll be Llama 2. And it really hits pretty hard
280
00:14:17.850 --> 00:14:19.669
because if you're going to start thinking local models, there
281
00:14:19.710 --> 00:14:22.649
it is. This puts a lot of pressure on everybody else.
282
00:14:22.669 --> 00:14:25.169
So by September, you have Amazon out there with Bedrock
283
00:14:25.230 --> 00:14:28.750
and Titan. Again, I think both guys have used that
284
00:14:28.809 --> 00:14:32.919
one too. But, you know, all of that, you recognize
285
00:14:32.960 --> 00:14:35.200
that the 23, everybody has to play, right? So we've
286
00:14:35.240 --> 00:14:39.960
got all the hyperscalers on board now and we're in motion.
287
00:14:40.340 --> 00:14:45.539
to try and grow something with all this technology. October,
288
00:14:45.610 --> 00:14:49.250
Microsoft completes the acquisition of Activision Blizzard for $ 68. 7 billion.
289
00:14:49.269 --> 00:14:51.809
It takes over a year, lots of battles with the
290
00:14:51.929 --> 00:14:54.470
FTC and so forth, and pretty much nothing has come
291
00:14:54.529 --> 00:14:57.009
of that. For the most part, somebody cashed in big,
292
00:14:57.029 --> 00:15:00.399
but goodness knows what Microsoft's strategy for gaming actually is.
293
00:15:01.559 --> 00:15:04.039
All right, now we get to the fun month in
294
00:15:04.039 --> 00:15:07.279
2023 when it comes to tech, and it's in November. Obviously,
295
00:15:07.299 --> 00:15:11.600
we get. NET Conf. with. NET 8, a long-term support
296
00:15:11.639 --> 00:15:13.480
version of. NET, a very good one too. We're a
297
00:15:13.519 --> 00:15:16.919
big push with native AOT, C Sharp 12, a lot
298
00:15:16.960 --> 00:15:19.980
of cloud-native tooling. And the first announcement of what at
299
00:15:20.019 --> 00:15:24.740
that time will be known as. NET Aspire. And our
300
00:15:24.820 --> 00:15:29.740
friend David Fowler, now distinguished engineer David Fowler, driving this,
301
00:15:30.360 --> 00:15:32.059
what we now refer to, we didn't know how to
302
00:15:32.100 --> 00:15:34.960
talk about at the time, about the scaffolding for building
303
00:15:34.980 --> 00:15:35.710
cloud-native with.
304
00:15:35.659 --> 00:15:35.840
NET.
305
00:15:35.940 --> 00:15:39.250
Of course, it'll advance a lot more. And a week
306
00:15:39.610 --> 00:15:42.870
after that event, or not even a week, the weekend
307
00:15:42.950 --> 00:15:47.970
of that event, on Friday, November 17th, the OpenAI board
308
00:15:48.509 --> 00:15:50.769
puts out a press release where they say, Sam Altman will.
309
00:15:50.649 --> 00:15:53.090
Be departing as CEO. And so began the drama.
310
00:15:53.509 --> 00:15:57.769
And Mira Muriati, the CTO, is appointed as interim CEO.
311
00:15:59.529 --> 00:16:02.549
The chairman of the board for OpenAI, a guy named
312
00:16:02.590 --> 00:16:05.509
Greg Brockman, who's also been part of the originators on this,
313
00:16:05.529 --> 00:16:08.230
he's an OpenAI president. He is removed as chairman and
314
00:16:08.309 --> 00:16:15.120
resigns in solidarity with Altman. On Saturday, by all accounts,
315
00:16:15.200 --> 00:16:18.279
all hell breaks loose. A very angry Satya Nadella who
316
00:16:18.320 --> 00:16:20.860
did not see this coming. Nobody thought to notify the
317
00:16:20.899 --> 00:16:24.909
guy who kicked $ 13 billion into your company that, hey,
318
00:16:24.950 --> 00:16:30.289
we're going to fire the CEO. This leads to on
319
00:16:30.429 --> 00:16:34.190
Sunday where the board announces a different interim CEO, Twitch
320
00:16:34.230 --> 00:16:39.200
CEO Emmett Shearer. After only two days of Marati, I
321
00:16:39.240 --> 00:16:41.220
think she sort of was backing away from all of this.
322
00:16:41.840 --> 00:16:44.159
This is the day that Satya announces that Sam Altman
323
00:16:44.179 --> 00:16:46.460
and Greg Brockman are going to join Microsoft and form
324
00:16:46.580 --> 00:16:47.799
a new AI group.
325
00:16:48.139 --> 00:16:48.600
I remember.
326
00:16:48.679 --> 00:16:51.149
Which leads to, on Monday, where 700 of 770 employees
327
00:16:51.169 --> 00:17:00.470
of OpenAI, including– One Ilya Sutskiver, who had publicly expressed
328
00:17:00.509 --> 00:17:02.740
a regret for his role in firing Sam Altman, also
329
00:17:02.769 --> 00:17:05.519
signs this letter where they say they demand the resignation
330
00:17:05.559 --> 00:17:09.059
of the board and will consider following Altman to Microsoft.
331
00:17:09.079 --> 00:17:11.839
So essentially the entire OpenAI says, we're going to go
332
00:17:11.859 --> 00:17:16.809
to Microsoft. This results in, on Tuesday, Sam Altman returning
333
00:17:16.869 --> 00:17:20.329
as CEO and the entire board being replaced by Wednesday.
334
00:17:20.390 --> 00:17:21.849
It's like a soap opera, isn't it?
335
00:17:21.970 --> 00:17:22.970
It's insane.
336
00:17:23.130 --> 00:17:23.829
It really is.
337
00:17:23.990 --> 00:17:26.930
Yeah. And then look, I think everybody knows Sam Altman's
338
00:17:26.990 --> 00:17:29.630
not a good man. Right. But boy, you sure screwed
339
00:17:29.730 --> 00:17:30.299
this up.
340
00:17:30.390 --> 00:17:30.680
Yeah.
341
00:17:30.980 --> 00:17:33.859
Like, there was a way to do this that might
342
00:17:33.880 --> 00:17:37.940
have worked. This was not that way. And fundamentally, you know,
343
00:17:38.099 --> 00:17:41.309
it cemented Sam Altman's control of the company in the process. Like,
344
00:17:41.349 --> 00:17:44.170
he ultimately benefited from this and turned OpenAI from its
345
00:17:45.220 --> 00:17:47.859
Original idea, which I don't know how good that idea
346
00:17:47.920 --> 00:17:50.319
ever was of doing AI in the open, which they
347
00:17:50.519 --> 00:17:55.119
very quickly diverted from into just another for-profit company that's
348
00:17:55.319 --> 00:17:58.359
racing to try to IPO. Little goodness knows if that's
349
00:17:58.420 --> 00:18:01.099
ever going to happen. Yeah. Last but not least, I
350
00:18:01.119 --> 00:18:04.599
think I've been mentioning quantum computing in the past few
351
00:18:04.640 --> 00:18:06.619
of these just because we had an interesting wave of
352
00:18:06.660 --> 00:18:10.829
quantum computing in the late 2010s, beginning of 2020s. I
353
00:18:10.849 --> 00:18:12.710
sort of see 2023 as sort of the end of
354
00:18:12.769 --> 00:18:14.680
the road of the race to the larger qubit at
355
00:18:14.700 --> 00:18:20.500
the time with IBM's Condor processor, a thousand qubits. Now
356
00:18:20.539 --> 00:18:22.339
we sort of have this debate about what a physical
357
00:18:22.440 --> 00:18:25.089
versus a logical qubit is actually because there's so much
358
00:18:25.269 --> 00:18:28.589
error correction that needs to happen that Under the current
359
00:18:28.630 --> 00:18:31.150
model at that time, they said, we're probably not going
360
00:18:31.170 --> 00:18:34.450
to useable work until we get into possibly millions of qubits.
361
00:18:35.009 --> 00:18:37.750
And that'll put a lot of pressure on this error
362
00:18:37.809 --> 00:18:40.839
correction problem for quantum computing, which we'll see more of
363
00:18:41.079 --> 00:18:41.920
in subsequent years.
364
00:18:42.220 --> 00:18:42.420
Yeah.
365
00:18:42.440 --> 00:18:43.059
And that's what I got.
366
00:18:43.460 --> 00:18:48.200
All right. As again, Jeremy Miller's here. Jeremy, you can
367
00:18:48.240 --> 00:18:51.329
jump in anytime you want, as you have been doing.
368
00:18:51.940 --> 00:18:54.220
But right now we're going to do better know framework.
369
00:18:54.460 --> 00:19:04.990
Awesome. Roll the music. All right, man. What is Simon
370
00:19:05.009 --> 00:19:05.769
Kropp up to?
371
00:19:06.029 --> 00:19:08.730
Yeah, I know. We should just call it Simon Kropp.
372
00:19:08.769 --> 00:19:14.539
Better know Simon Kropp. This is EF query complexity.
373
00:19:14.700 --> 00:19:15.180
What is this?
374
00:19:15.400 --> 00:19:20.549
So it detects overly complex entity framework core queries. and
375
00:19:20.609 --> 00:19:24.490
either logs them or throws. Each check has two levels.
376
00:19:25.049 --> 00:19:28.049
The level a query is logged at, which has defaults,
377
00:19:28.289 --> 00:19:33.750
and the level a query throws at, which is opt-in. So, yeah. So,
378
00:19:34.069 --> 00:19:34.309
you know.
379
00:19:34.329 --> 00:19:36.609
So this is just a, if you've written a link
380
00:19:36.650 --> 00:19:40.750
expression so complicated for EF that it's going to make
381
00:19:40.809 --> 00:19:42.690
a bad query, this will give you a heads up?
382
00:19:42.789 --> 00:19:45.630
Yeah, before calling it and hanging your database.
383
00:19:46.089 --> 00:19:46.309
Yeah.
384
00:19:47.690 --> 00:19:49.069
You might want to run it through this.
385
00:19:49.390 --> 00:19:51.599
Yeah, no, that's true. a great idea god of course
386
00:19:51.779 --> 00:19:54.180
you're so clever i know you know you know he
387
00:19:54.220 --> 00:19:56.660
got here the hard way yeah that he wrote he
388
00:19:56.680 --> 00:19:59.170
wrote a link expression that pinned the database to the
389
00:19:59.210 --> 00:20:00.950
wall for i don't know maybe a day and he's
390
00:20:00.990 --> 00:20:01.890
like hmm.
391
00:20:01.940 --> 00:20:04.460
Let's give him a little more credit. He probably inherited
392
00:20:04.500 --> 00:20:05.559
someone else's code base.
393
00:20:05.940 --> 00:20:07.000
You're probably right.
394
00:20:07.039 --> 00:20:07.359
Fair.
395
00:20:07.599 --> 00:20:09.720
You're probably exactly right. He probably didn't write the query.
396
00:20:09.799 --> 00:20:11.440
He probably didn't stop this from happening again.
397
00:20:12.039 --> 00:20:12.259
Yeah.
398
00:20:12.539 --> 00:20:15.119
Well, anyway, that's it. That's what I got. Who is
399
00:20:15.180 --> 00:20:16.299
talking to us today, Richard?
400
00:20:16.319 --> 00:20:19.539
Let's grab a comment off of show 1860, the one
401
00:20:19.559 --> 00:20:21.660
we did with one Jeremy Miller. Never heard of him.
402
00:20:21.700 --> 00:20:23.680
Talking a little bit about minimal architecture.
403
00:20:23.740 --> 00:20:24.619
Right before the Civil War.
404
00:20:24.640 --> 00:20:25.119
There we go.
405
00:20:25.180 --> 00:20:25.980
Yeah.
406
00:20:27.420 --> 00:20:28.720
Now you're in the groove, Jeremy.
407
00:20:28.769 --> 00:20:29.289
You get it.
408
00:20:30.450 --> 00:20:32.819
Imagine if we started this in the 1800s. It was like,
409
00:20:32.839 --> 00:20:34.960
I think it was like, you should go back and listen,
410
00:20:34.980 --> 00:20:37.720
but I think it was like in episode 1914. I'm like, hey,
411
00:20:37.740 --> 00:20:40.299
start a quote World War I. Right. The good news
412
00:20:40.400 --> 00:20:43.920
is it's almost over. A couple more shows. This comment
413
00:20:43.940 --> 00:20:46.339
comes from Trevor. He said, I love this discussion. Enjoyed
414
00:20:46.359 --> 00:20:50.880
the comments on microservices versus monoliths. I got pushed heavily
415
00:20:50.900 --> 00:20:53.400
into microservices approach with a product we had built. and
416
00:20:53.420 --> 00:20:56.059
we're re-architecting it to microservices, and it was the worst
417
00:20:56.200 --> 00:21:00.119
mistake ever. Things just became more complicated. It was harder
418
00:21:00.140 --> 00:21:03.160
to maintain. It added a lot of latency and security issues,
419
00:21:03.200 --> 00:21:06.759
and the complexity was just not worth it. So I
420
00:21:06.779 --> 00:21:13.660
came up with a new acronym, appropriately side service, or ASS.
421
00:21:13.680 --> 00:21:16.619
I 100% believe in services, separation of concerns, and clean architectures,
422
00:21:16.660 --> 00:21:18.690
but the approach must be appropriate to the complexity of
423
00:21:18.710 --> 00:21:23.230
the solution and the size of the team. It makes
424
00:21:23.349 --> 00:21:25.289
no sense to have 100 separate services with a team
425
00:21:25.329 --> 00:21:27.470
of 10 people. And then it also makes no sense
426
00:21:27.490 --> 00:21:29.700
to have one massive single deployment with a code base
427
00:21:29.799 --> 00:21:32.480
for a team of 250 people. The services need to
428
00:21:32.539 --> 00:21:35.240
work with the cognitive load and be appropriate to the
429
00:21:35.279 --> 00:21:38.799
organization and team structures. Love any discussion. But on this
430
00:21:38.940 --> 00:21:41.869
one point, stop making the CTO out to be the
431
00:21:41.930 --> 00:21:51.309
bad guy. Love from Trevor, CTO. Maybe we were teasing
432
00:21:51.450 --> 00:21:55.930
on the non-technical CTO. Clearly, Trevor's not that guy. He's
433
00:21:55.970 --> 00:21:58.269
the one who's actually trying to get things right and
434
00:21:58.609 --> 00:22:00.210
be part of the team and so forth. So, sorry
435
00:22:00.250 --> 00:22:02.349
about teasing you. Too mean to you there, Trevor. But
436
00:22:02.789 --> 00:22:06.430
we're with you. Appropriate size service is correct. So, thank
437
00:22:06.450 --> 00:22:08.319
you so much for your comments. And CopyMuse2CodeBuy is on
438
00:22:08.339 --> 00:22:09.500
its way to you. And if you'd like a copy
439
00:22:09.519 --> 00:22:12.960
of Muse2CodeBuy, write a comment on the website at. netrocks. com
440
00:22:12.220 --> 00:22:13.900
or on the Facebooks. We publish every show there. And
441
00:22:13.920 --> 00:22:15.519
if you comment there and I read it in the show,
442
00:22:15.539 --> 00:22:16.579
we'll send you a copy of Muse2CodeBuy.
443
00:22:16.940 --> 00:22:18.640
And if you want to just get Music to Code By,
444
00:22:18.700 --> 00:22:21.359
which will help you stay in a state of flow
445
00:22:21.680 --> 00:22:24.819
to be calm and all that stuff while you're writing code,
446
00:22:25.500 --> 00:22:31.349
go to musictocodeby.net and just get it. MP3s, waves, and
447
00:22:31.509 --> 00:22:36.730
FLAC formats. All right. And that voice that you heard before,
448
00:22:36.789 --> 00:22:40.460
that third voice, was that of Jeremy Miller. He's been on.
449
00:22:40.390 --> 00:22:43.390
NET Rocks many times. He started his career as a
450
00:22:43.490 --> 00:22:47.799
quote-unquote real engineer. but wandered into software because that looked
451
00:22:47.839 --> 00:22:51.240
like more fun. Since then, Jeremy has worked in and
452
00:22:51.319 --> 00:22:56.829
led software development teams in the computer manufacturing industry, finance, insurance, healthcare,
453
00:22:56.869 --> 00:23:00.910
and banking industries. Lately, Jeremy has been focused on leading
454
00:23:01.009 --> 00:23:06.650
software architecture teams and helping mentor other software architects. Having
455
00:23:06.670 --> 00:23:10.650
had roles both as an in-house software architect and as
456
00:23:10.690 --> 00:23:13.309
a software consultant, Jeremy has a great deal of insight
457
00:23:13.329 --> 00:23:17.349
into the challenges that confront companies developing and maintaining enterprise
458
00:23:17.369 --> 00:23:20.549
systems over time. He's well known for his open source
459
00:23:20.569 --> 00:23:24.750
software tools, starting with StructureMap and continuing today to Martin
460
00:23:24.849 --> 00:23:28.490
and Wolverine. Jeremy is also a frequent author and technical
461
00:23:28.509 --> 00:23:32.750
speaker at software conferences and can be found at jeremydmiller.com.
462
00:23:32.930 --> 00:23:33.349
Welcome back.
463
00:23:33.450 --> 00:23:33.930
Hey, all.
464
00:23:34.089 --> 00:23:35.630
Thanks, guys. Thanks for having me on again.
465
00:23:35.869 --> 00:23:38.150
Yeah, great to have you back. Great to have you back.
466
00:23:38.299 --> 00:23:39.450
There was a comment on another show that I was
467
00:23:39.490 --> 00:23:44.500
very tempted to read where it mentioned alt.net. Just a
468
00:23:44.539 --> 00:23:47.109
callback to The first show we did with you, which
469
00:23:47.130 --> 00:23:50.430
was in 2008, was the Alt.net show.
470
00:23:50.569 --> 00:23:50.769
Yeah.
471
00:23:50.950 --> 00:23:52.170
It was a different day and time.
472
00:23:52.289 --> 00:23:52.690
Certainly.
473
00:23:52.930 --> 00:23:55.950
So if we're ready to be, let's just start with
474
00:23:56.009 --> 00:24:00.069
a get off my lawn kind of moment. One thing
475
00:24:00.170 --> 00:24:05.009
I've thought pretty recently. So after Twitter became, you know,
476
00:24:05.029 --> 00:24:09.730
the Nazi infested Star Wars, the Star Wars cantina theme
477
00:24:09.779 --> 00:24:10.279
it is now.
478
00:24:10.299 --> 00:24:10.859
Yeah.
479
00:24:14.450 --> 00:24:17.309
You know, the technical conversations kind of went everywhere, but
480
00:24:17.349 --> 00:24:19.710
it seems to be mostly on LinkedIn, or at least
481
00:24:19.950 --> 00:24:24.180
as far as I can tell, weirdly, right? One thing
482
00:24:24.319 --> 00:24:26.640
I've noticed, I think it's a gripe, and maybe it's
483
00:24:26.660 --> 00:24:30.339
just the algorithm. What I see are the. NET content creators.
484
00:24:31.559 --> 00:24:34.759
The people are the. NET content creators that are the
485
00:24:34.799 --> 00:24:37.000
same age that I was back in the all.
486
00:24:37.160 --> 00:24:37.619
NET days.
487
00:24:37.640 --> 00:24:41.750
We were big bloggers on CodeBetter. It is very narrowly
488
00:24:41.869 --> 00:24:47.309
focused on a handful of topics. It's very narrowly mainstream.
489
00:24:47.349 --> 00:24:50.869
They're not expanding the scope of software development. They aren't
490
00:24:50.990 --> 00:24:54.630
trying to innovate. It's here's how to use EF Core
491
00:24:54.789 --> 00:24:59.230
to do modular monoliths. So interesting. We were better in
492
00:24:59.269 --> 00:25:02.670
the all.net days than the content creators are now. Just
493
00:25:02.690 --> 00:25:05.109
a little bit of some trivia first. You know, you
494
00:25:05.130 --> 00:25:07.910
call that Simon Kropp. I do want to call him out.
495
00:25:08.329 --> 00:25:13.160
If you've ever looked at any critter stack related documentation website,
496
00:25:13.579 --> 00:25:16.500
you'll see his works. We use markdown snippets. That's a
497
00:25:16.500 --> 00:25:19.539
really valuable way to create living technical documentation.
498
00:25:19.779 --> 00:25:19.960
Right.
499
00:25:20.799 --> 00:25:24.269
And then just on your theme, the history theme, you know,
500
00:25:24.289 --> 00:25:28.569
you were talking about 2023. We missed a couple really
501
00:25:28.609 --> 00:25:35.559
important things. I founded Jasper FX in June of 2023.
502
00:25:35.559 --> 00:25:37.880
Went solo for the first time at the tender age
503
00:25:37.920 --> 00:25:39.960
of 49.
504
00:25:40.509 --> 00:25:41.130
Never too late.
505
00:25:42.309 --> 00:25:44.750
Well, and that's the lesson I think I want. I
506
00:25:44.789 --> 00:25:46.829
want everybody to learn, but also do it while you're younger.
507
00:25:47.289 --> 00:25:49.750
And we'll bring 1.0 in 2023. Yeah.
508
00:25:49.930 --> 00:25:55.160
Yeah. Awesome. Well, congratulations. It's been a fun few years
509
00:25:55.200 --> 00:25:57.059
and we've done some interesting shows around it just because,
510
00:25:57.099 --> 00:26:00.740
you know, we've really built out a lot of tools
511
00:26:00.819 --> 00:26:03.160
to make it easier for us. And if Simon likes them,
512
00:26:03.630 --> 00:26:04.869
That's a heck of a compliment, man.
513
00:26:05.130 --> 00:26:07.950
I'll take it. I'll put words in his mouth. Simon's
514
00:26:07.990 --> 00:26:09.710
also a contributor to the Critter stack.
515
00:26:09.829 --> 00:26:11.160
That's awesome. Yeah, I love it.
516
00:26:11.410 --> 00:26:12.789
So new Critters?
517
00:26:13.509 --> 00:26:17.230
Yeah. Again, I mean, AI is going to drop in
518
00:26:17.269 --> 00:26:20.970
here sooner or later. AI has allowed us to go
519
00:26:20.990 --> 00:26:23.130
a lot faster to deal with a lot of ideas
520
00:26:23.170 --> 00:26:25.170
that have been out there for a long time. Interesting.
521
00:26:25.190 --> 00:26:25.890
And that's real.
522
00:26:26.730 --> 00:26:30.359
So I'm still going to say Martin, based on Postgres,
523
00:26:31.039 --> 00:26:36.720
is still the most robust Critter. widely used event sourcing
524
00:26:36.980 --> 00:26:37.980
solution in all of.
525
00:26:38.109 --> 00:26:38.369
NET.
526
00:26:40.549 --> 00:26:43.490
Still going to say it's the most capable. But we've
527
00:26:43.529 --> 00:26:46.150
been told for over a decade that, hey, you know what?
528
00:26:46.170 --> 00:26:48.759
It would be much more successful if it was based
529
00:26:48.819 --> 00:26:52.700
on SQL Server instead. And I've always said, I don't
530
00:26:52.740 --> 00:26:55.720
have time. That's too hard. And SQL Server doesn't have
531
00:26:56.430 --> 00:26:58.710
SQL Server is way behind in JSON support.
532
00:26:58.970 --> 00:26:59.450
Sure.
533
00:26:59.609 --> 00:27:02.289
Now we have SQL Server 2025. It has a native
534
00:27:02.329 --> 00:27:06.339
JSON type. It has its own capability to do vector support.
535
00:27:06.380 --> 00:27:08.960
It has a lot of the same capabilities that Postgres has.
536
00:27:09.500 --> 00:27:11.160
So now we have a tool called Polecat.
537
00:27:11.240 --> 00:27:11.859
Polecat.
538
00:27:11.880 --> 00:27:18.200
That's another critter that has probably 80% to 90% of
539
00:27:18.259 --> 00:27:21.960
the functionality of Martin and at this point probably shares
540
00:27:21.980 --> 00:27:24.710
a lot of the same a lot of the same
541
00:27:24.750 --> 00:27:29.759
infrastructure and, um, compliance tests of behavior. So it gives
542
00:27:29.779 --> 00:27:32.859
you the same kind of document database capability right on
543
00:27:32.900 --> 00:27:36.299
top of SQL server. So you guys can stop wasting
544
00:27:36.359 --> 00:27:39.579
so much time with EF core mapping and, you know,
545
00:27:39.680 --> 00:27:43.650
to the crazy EF core link query is too complex.
546
00:27:44.329 --> 00:27:47.509
Using event sourcing with projections, you can project to exactly
547
00:27:47.529 --> 00:27:52.009
the view you want. You can sidestep silly queries, just saying, um,
548
00:27:53.660 --> 00:27:57.349
So we have Polecat on top of SQL Server, SQL
549
00:27:57.390 --> 00:28:01.130
Server 2025. And just a little more recently, we've added
550
00:28:01.170 --> 00:28:05.109
another library called Fisher that gives you the same functionality
551
00:28:05.250 --> 00:28:07.059
on top of SQLite.
552
00:28:07.259 --> 00:28:08.279
Is that like FisherCat?
553
00:28:08.440 --> 00:28:09.319
Yeah.
554
00:28:09.880 --> 00:28:10.099
Yeah.
555
00:28:10.160 --> 00:28:12.440
There's a lot of mustelids in this conversation, let me
556
00:28:12.460 --> 00:28:12.759
tell you.
557
00:28:12.940 --> 00:28:15.700
Exactly. And that's mostly the theme.
558
00:28:16.299 --> 00:28:17.900
Yes.
559
00:28:17.940 --> 00:28:20.349
When we first moved into our house, we were told
560
00:28:20.410 --> 00:28:22.609
that the woods out back were full of FisherCats.
561
00:28:23.069 --> 00:28:23.230
Yeah.
562
00:28:23.450 --> 00:28:26.269
Oh, that's awesome. I've never seen one in real life.
563
00:28:26.329 --> 00:28:27.910
The dangerous little buggers. Of course.
564
00:28:28.190 --> 00:28:30.190
That was the day my children vowed never to go
565
00:28:30.329 --> 00:28:31.309
for a walk in the woods.
566
00:28:32.309 --> 00:28:37.130
So, they're supposed to look just like Martins, but bigger, right? Mm-hmm. Yeah. Cool.
567
00:28:37.150 --> 00:28:38.930
And they're hyper-aggressive. They are.
568
00:28:38.950 --> 00:28:39.950
Vicious.
569
00:28:40.289 --> 00:28:42.690
We've got a mink hanging around here right now. And
570
00:28:43.029 --> 00:28:44.990
he scares me more than the otters that are five
571
00:28:45.039 --> 00:28:51.460
times his size. They'll give you. They'll go. They're looking
572
00:28:51.480 --> 00:28:51.940
for trouble.
573
00:28:52.380 --> 00:28:52.500
Huh.
574
00:28:52.880 --> 00:28:53.920
All right. So Fisher.
575
00:28:54.460 --> 00:28:55.900
Sorry, guys. There's actually more.
576
00:28:56.319 --> 00:28:59.589
Oh, yeah. Okay. So Fisher is SQLite.
577
00:28:59.890 --> 00:29:00.410
SQLite.
578
00:29:00.430 --> 00:29:02.609
So you started on Postgres. You've done SQL Server 2025
579
00:29:02.609 --> 00:29:06.750
because of the JSON. type. And now you are also
580
00:29:06.789 --> 00:29:09.970
got it over to SQL light as well, which is cool.
581
00:29:10.150 --> 00:29:12.339
So that is also helping us with some of our
582
00:29:12.380 --> 00:29:15.000
own products. We have a commercial tool called critter watch,
583
00:29:15.640 --> 00:29:20.160
you know, that's the inevitable management console. Um, but it's
584
00:29:20.200 --> 00:29:25.420
also an MCP hub that connects connected to your AI
585
00:29:25.500 --> 00:29:28.420
tools and it will give you complete visibility into a
586
00:29:29.160 --> 00:29:32.319
static view of your application and a dynamic view as well.
587
00:29:33.279 --> 00:29:36.150
It'll give you access to alerts. It'll even call out
588
00:29:36.210 --> 00:29:41.200
to LLMs to maybe be able to take proactively take
589
00:29:41.279 --> 00:29:46.559
amelioration act actions, replay things off, off of dead letter cues.
590
00:29:46.640 --> 00:29:48.950
Maybe it can be smart enough to know, Hey, I
591
00:29:48.990 --> 00:29:52.589
need to go reboot the server, something like that potential.
592
00:29:52.750 --> 00:29:52.990
Wow.
593
00:29:53.250 --> 00:29:55.880
And then, Sorry to keep overloading you. We have a
594
00:29:55.980 --> 00:30:01.319
new tool that's not quite 1.0 called Bobcat. Bobcat? It's
595
00:30:01.339 --> 00:30:06.000
been hanging around long enough that it predates the Critterstack naming.
596
00:30:06.019 --> 00:30:09.079
I always thought they were cool, and I've got a
597
00:30:09.079 --> 00:30:12.380
rural background, so Bobcat means a steer skid to me.
598
00:30:12.769 --> 00:30:15.190
That's just kind of a thing you use to do
599
00:30:15.289 --> 00:30:19.490
crazy hard jobs. So Bobcat is going to be our
600
00:30:19.549 --> 00:30:25.420
tool for spec-driven development and integration testing. has a Gherkin function,
601
00:30:25.559 --> 00:30:27.380
but I mean, I don't know if anybody's going to
602
00:30:27.420 --> 00:30:28.960
care about that. Yeah.
603
00:30:29.160 --> 00:30:30.960
And it's a feline. So, you know, you're cheating.
604
00:30:32.440 --> 00:30:35.460
Theoretically our neighbor says that there's a Bobcat that comes
605
00:30:35.529 --> 00:30:38.140
out in our neighbor, our, our yard at night, but
606
00:30:38.180 --> 00:30:38.900
I've never seen. Yeah.
607
00:30:39.269 --> 00:30:40.450
They're yeah. They're ghosts.
608
00:30:40.730 --> 00:30:42.230
We're getting Bobcats in Connecticut.
609
00:30:42.329 --> 00:30:42.549
Wow.
610
00:30:42.650 --> 00:30:43.170
Yeah.
611
00:30:43.190 --> 00:30:45.190
They came back to where they came back to Missouri
612
00:30:45.230 --> 00:30:48.690
where I grew up because the, the wild Turkey population
613
00:30:48.750 --> 00:30:51.190
finally recovered from the great depression. Yeah. Yeah.
614
00:30:52.880 --> 00:30:56.190
I think that's happening in general. Generally, we hunt less.
615
00:30:56.390 --> 00:30:59.230
Our otter population is way up. Having to mink around
616
00:30:59.250 --> 00:31:03.170
is crazy. Definitely, the birds, there's more of everything. Bit
617
00:31:03.190 --> 00:31:06.160
by bit, we're going to have more encounters.
618
00:31:06.339 --> 00:31:10.500
My late mother is probably solely responsible for the wild
619
00:31:10.619 --> 00:31:14.380
turkey population of Groton, Connecticut skyrocketing.
620
00:31:14.480 --> 00:31:15.269
She fed them all the time.
621
00:31:15.569 --> 00:31:19.470
Because she fed them corn, you know, cracked corn every
622
00:31:19.519 --> 00:31:20.799
day along with the deer.
623
00:31:21.099 --> 00:31:21.480
Oh, man.
624
00:31:21.680 --> 00:31:21.839
Nice.
625
00:31:22.140 --> 00:31:24.480
And I always wanted to taste one that had been
626
00:31:24.539 --> 00:31:28.779
living on cracked corn, you know, for generations. But they're
627
00:31:28.799 --> 00:31:31.640
still wild turkeys. But if the only food they eat
628
00:31:31.720 --> 00:31:35.009
is her cracked corn, they must be delicious, you know? Maybe.
629
00:31:35.180 --> 00:31:35.440
Maybe.
630
00:31:35.990 --> 00:31:38.910
Anyway, she never let me kill one. So I didn't.
631
00:31:39.289 --> 00:31:39.829
And now they're gone.
632
00:31:41.039 --> 00:31:43.970
She stopped. She's gone. So they're gone, right? There's nobody
633
00:31:44.069 --> 00:31:44.630
feeding them anymore.
634
00:31:44.670 --> 00:31:45.630
She's gone. They're gone.
635
00:31:45.869 --> 00:31:46.109
Anyway.
636
00:31:46.309 --> 00:31:46.630
All right.
637
00:31:46.650 --> 00:31:46.980
All right.
638
00:31:47.000 --> 00:31:48.359
Well, this seems like a good time for a break.
639
00:31:48.440 --> 00:31:50.980
So we'll be right back after these very important messages.
640
00:31:51.039 --> 00:31:56.880
Don't go away. And we're back. It's on the rocks.
641
00:31:56.920 --> 00:31:59.500
I'm Richard Campbell. Let's call Franklin. Yes, I am. Talking
642
00:31:59.519 --> 00:32:03.339
to our friend Jeremy Miller about the expanded critter stack.
643
00:32:03.380 --> 00:32:06.440
So I could see the AI tools allowed to accelerate. Although,
644
00:32:06.619 --> 00:32:09.549
I mean, Polkat and Fisher are adjacent to Martin in
645
00:32:09.569 --> 00:32:12.329
that sense. So they are some ways the tool will
646
00:32:12.349 --> 00:32:13.849
be really good at, you know, how do I do
647
00:32:13.890 --> 00:32:14.710
this in this other stack?
648
00:32:14.829 --> 00:32:16.890
They are. But to get there and to get there
649
00:32:16.990 --> 00:32:20.309
and to make it sustainable is, We've had to do
650
00:32:20.390 --> 00:32:23.329
a lot of work over time to lift a lot
651
00:32:23.369 --> 00:32:29.230
more common functionality out, lift reusable compliance tests to get
652
00:32:29.279 --> 00:32:30.119
a lot of behavior.
653
00:32:31.319 --> 00:32:32.710
You don't want to do that over and over again.
654
00:32:32.779 --> 00:32:35.099
Yeah. So, you know, we can also dive into a
655
00:32:35.119 --> 00:32:37.099
little bit of a theme of you aren't going to
656
00:32:37.140 --> 00:32:40.119
be able to just vibe code something like a polecat
657
00:32:40.220 --> 00:32:41.640
over a weekend.
658
00:32:41.900 --> 00:32:43.839
Well, that's a classic, isn't it? Right. Like, why do
659
00:32:43.920 --> 00:32:46.599
I buy a framework and I just make my own?
660
00:32:46.839 --> 00:32:48.359
Yeah, that's delusional.
661
00:32:48.970 --> 00:32:49.890
Um, sorry.
662
00:32:50.329 --> 00:32:50.950
I agree.
663
00:32:51.710 --> 00:32:55.059
Sorry. Coming from, I support one that's sort of couple
664
00:32:55.400 --> 00:32:57.480
that are widely used by a lot of different people,
665
00:32:58.079 --> 00:33:00.819
even with the AI stuff. And we're all using AI
666
00:33:00.880 --> 00:33:03.519
tools to do the fixes. I use it to do
667
00:33:03.559 --> 00:33:07.750
a lot of exploratory testing. There's just so much input
668
00:33:07.789 --> 00:33:10.890
that comes from people using it in real life. It's,
669
00:33:11.369 --> 00:33:15.799
it's all kind of, and it's the, It's the upset conditions.
670
00:33:16.099 --> 00:33:21.990
Kubernetes shuts down a node suddenly. Your DBA suddenly kill
671
00:33:22.029 --> 00:33:25.210
a database late at night and it will actually skew
672
00:33:25.710 --> 00:33:29.069
Postgres sequence values if you're not careful. We learned that
673
00:33:29.109 --> 00:33:33.180
one the hard way. Being able to have a system
674
00:33:33.220 --> 00:33:38.940
that's very highly in flight and then try to take
675
00:33:38.980 --> 00:33:42.079
it down gracefully without losing work as you go. That's
676
00:33:42.119 --> 00:33:46.460
actually really hard. Yeah. And the only way you get
677
00:33:46.559 --> 00:33:48.720
to a tool like a Wolverine or a Martin and
678
00:33:48.759 --> 00:33:51.079
make it good is you gotta have a lot of
679
00:33:51.119 --> 00:33:53.579
people beat up on it in real life and then,
680
00:33:54.259 --> 00:33:57.009
then iterate and improve. You're not just going to get
681
00:33:57.049 --> 00:33:59.049
that with a single time vibe coding pass.
682
00:34:00.029 --> 00:34:02.930
Have you paid any attention to the use what works group?
683
00:34:03.309 --> 00:34:04.589
That's yeah.
684
00:34:05.549 --> 00:34:09.369
A little bit. I'm going to admit that I've been
685
00:34:09.409 --> 00:34:12.670
a tiny bit cynical about it because it looks like
686
00:34:12.809 --> 00:34:14.929
the conference drinking club.
687
00:34:17.199 --> 00:34:17.960
You're not wrong.
688
00:34:19.820 --> 00:34:23.139
I appreciate what they're trying to do, but I'm not
689
00:34:23.179 --> 00:34:23.739
involved with it.
690
00:34:24.639 --> 00:34:29.159
The message is essentially the same. This idea that your
691
00:34:29.179 --> 00:34:32.579
job wasn't to build a framework. Your job was to
692
00:34:32.960 --> 00:34:36.500
provide value to your customers. And these frameworks facilitate that.
693
00:34:36.639 --> 00:34:37.320
Use what works.
694
00:34:37.579 --> 00:34:40.000
Yes. So one of the things I think I would
695
00:34:40.079 --> 00:34:42.369
argue or what I do argue to people of why
696
00:34:42.429 --> 00:34:45.309
you should still use something off the shelf. Like you
697
00:34:45.349 --> 00:34:49.190
look on these LinkedIn conversations, they'll say, oh, just let
698
00:34:49.230 --> 00:34:54.550
AI build you an outbox. something that's widely used is curated.
699
00:34:55.150 --> 00:34:58.030
Somebody is paying attention to it, reviewing the pull requests
700
00:34:58.070 --> 00:35:02.699
coming in, driving AI, watching the quality, the problems that
701
00:35:02.739 --> 00:35:08.019
people are having, and evolving it over time. You're just
702
00:35:08.039 --> 00:35:10.300
not going to build something over a weekend, no matter
703
00:35:10.340 --> 00:35:10.659
how good.
704
00:35:10.920 --> 00:35:12.900
I wonder if this is even a temporary concept now
705
00:35:12.920 --> 00:35:15.409
that we're starting to actually pay for tokens. It's like,
706
00:35:15.570 --> 00:35:16.949
it ain't worth the tokens.
707
00:35:17.750 --> 00:35:20.090
It's probably valuable in a way that it makes it
708
00:35:20.150 --> 00:35:21.369
easy to quantify efforts.
709
00:35:21.750 --> 00:35:22.429
Yeah. Yeah.
710
00:35:22.760 --> 00:35:25.480
Just like, look, spend the tokens on the value that
711
00:35:25.780 --> 00:35:29.300
you really bring to the customer. Buying a framework at
712
00:35:29.340 --> 00:35:31.179
a fixed price is a heck of a lot more
713
00:35:31.260 --> 00:35:33.360
sensible where you at least know what it's going to
714
00:35:33.400 --> 00:35:35.510
cost and that somebody else is paying attention to it.
715
00:35:35.539 --> 00:35:37.059
You don't have to own that code base and you
716
00:35:37.079 --> 00:35:39.519
don't have to spend tokens on it either. All right.
717
00:35:40.079 --> 00:35:40.420
Awesome.
718
00:35:40.480 --> 00:35:44.250
So, I mean, a few new products, but CQRS is
719
00:35:44.269 --> 00:35:46.909
sort of CQRS. How do you evolve event sourcing at
720
00:35:46.929 --> 00:35:49.429
this point? What's changing in this world?
721
00:35:49.840 --> 00:35:52.780
Oh, quite a bit. I know you've had some recent hosts.
722
00:35:54.139 --> 00:35:56.739
So the last couple of years, last couple of years,
723
00:35:56.760 --> 00:36:00.050
there's been a trend. I don't entirely buy into it,
724
00:36:00.119 --> 00:36:04.889
but there is the idea of dynamic consistency boundaries where
725
00:36:04.929 --> 00:36:07.570
you stop. I don't know. Forgive me if you guys
726
00:36:07.590 --> 00:36:09.289
have already had somebody talk about it on the show.
727
00:36:10.389 --> 00:36:15.269
But breaking away from the model of strictly tracking events
728
00:36:15.349 --> 00:36:18.139
by event streams instead of doing it. really doing things
729
00:36:18.179 --> 00:36:18.980
more by tagging.
730
00:36:19.199 --> 00:36:19.420
Yeah.
731
00:36:19.800 --> 00:36:24.199
Um, where an event could, you know, the, the classic
732
00:36:24.260 --> 00:36:26.940
example is you have a classroom, you have events that
733
00:36:26.960 --> 00:36:30.059
apply to both the student and the classroom and maybe
734
00:36:30.099 --> 00:36:33.980
the instructor, uh, with the theory that this makes it easier.
735
00:36:34.460 --> 00:36:37.239
This makes it easier for you to be softer in
736
00:36:37.460 --> 00:36:42.960
designing your, um, stream boundaries. Um, If you'll let me
737
00:36:43.000 --> 00:36:45.539
be snarky for a second, I think this is partially
738
00:36:45.639 --> 00:36:49.269
driven by the weaknesses of some of the commercial event
739
00:36:49.289 --> 00:36:53.019
sourcing tools that can't do strong consistency or between event streams.
740
00:36:54.530 --> 00:36:58.530
But even without that, people think that makes modeling easier.
741
00:36:59.269 --> 00:37:03.880
That's trend number one. The biggest trend that's taking up
742
00:37:03.889 --> 00:37:07.460
a lot of my time right now is, again, it's
743
00:37:07.500 --> 00:37:11.880
more AI driven, but people getting very seriously about event
744
00:37:11.920 --> 00:37:16.369
modeling and honestly, for us old guys, trying to bring
745
00:37:16.590 --> 00:37:20.489
the old model-driven development idea that never worked, trying to
746
00:37:20.530 --> 00:37:24.610
bring that into the modern world with event modeling, where
747
00:37:24.849 --> 00:37:31.090
you build models, maybe you complement or supplement that with
748
00:37:31.239 --> 00:37:37.219
kind of BDD-style specifications, and then AI-driven tools and scaffolding
749
00:37:37.739 --> 00:37:42.449
builds you an application or constantly evolves your application based
750
00:37:42.469 --> 00:37:46.610
on almost a two-way mapping between the event model of
751
00:37:46.750 --> 00:37:49.050
this is what the application is. These are the slices.
752
00:37:49.110 --> 00:37:52.250
These are the events. These are commands. Generate me code
753
00:37:52.349 --> 00:37:56.010
from this and also generate code based off of BDD
754
00:37:56.050 --> 00:37:59.559
style specs. So those are the two big trends I
755
00:37:59.579 --> 00:38:01.539
see or things that are causing me to take a
756
00:38:01.559 --> 00:38:04.460
lot of time. And then all the old challenges of
757
00:38:04.579 --> 00:38:09.949
concurrency and scaling, those are all still real. And we're
758
00:38:10.150 --> 00:38:11.949
still working on new solutions for those all.
759
00:38:11.969 --> 00:38:13.449
I mean, I don't have a big problem with event
760
00:38:13.489 --> 00:38:16.650
modeling because you do need to think through the event flow.
761
00:38:17.269 --> 00:38:19.929
I think it almost feels like they're going too far
762
00:38:19.989 --> 00:38:22.530
down the path. We had Adam on a while back
763
00:38:22.699 --> 00:38:25.920
talking about the event sourcing. And it was always that
764
00:38:25.960 --> 00:38:28.559
question of like, how far do you go with this model?
765
00:38:29.679 --> 00:38:32.099
It's not the whole application. It's just one part of
766
00:38:32.820 --> 00:38:34.889
the flow of data and how you want to manage it.
767
00:38:35.170 --> 00:38:39.829
So everybody is the hero of their own story, right?
768
00:38:40.210 --> 00:38:42.349
If you talk to a tester, they think the most
769
00:38:42.409 --> 00:38:45.650
important thing is getting testing. Well, if you talk to
770
00:38:45.670 --> 00:38:49.230
a business analyst, it's getting the requirements coders, you know,
771
00:38:49.269 --> 00:38:56.030
obviously it's the code. Um, they've been modeling people, obviously their,
772
00:38:56.050 --> 00:39:01.210
their analysis work is key. Um, I think my take
773
00:39:01.429 --> 00:39:04.170
is it's definitely valuable. I hear from our own users
774
00:39:04.210 --> 00:39:07.320
that they think it's valuable. I think even though that's
775
00:39:07.360 --> 00:39:10.340
exactly what I'm working on today is the scaffolding from
776
00:39:10.360 --> 00:39:12.539
event models, I think that it does a lot of
777
00:39:12.559 --> 00:39:14.679
the easy work for you, and there's still a lot
778
00:39:14.699 --> 00:39:17.179
of technical challenges after the event modeling.
779
00:39:17.260 --> 00:39:17.480
Sure.
780
00:39:18.099 --> 00:39:20.519
And I think the event modeling is maybe a little
781
00:39:20.539 --> 00:39:22.690
bit oversold by some of its proponents.
782
00:39:23.750 --> 00:39:27.210
Yeah, and one could argue that for architecture every time too, right?
783
00:39:27.289 --> 00:39:31.320
It's like every one of these all of who was it?
784
00:39:31.340 --> 00:39:33.579
Was it Eisenhower who said, you know, the plan won't
785
00:39:33.619 --> 00:39:36.329
survive content to the enemy, but the planning was worth it.
786
00:39:36.760 --> 00:39:38.019
So it's not a bad thing.
787
00:39:38.079 --> 00:39:42.099
Yeah. You've seen, and you've seen that for, for younger folks,
788
00:39:42.699 --> 00:39:44.619
we used to quote that over and over again in
789
00:39:44.679 --> 00:39:47.269
the extreme programming, early agile days.
790
00:39:47.349 --> 00:39:47.570
Right.
791
00:39:47.690 --> 00:39:47.889
Right.
792
00:39:48.230 --> 00:39:50.710
Yeah. It's good to make a plan. It's also good
793
00:39:50.750 --> 00:39:55.150
to let that plan glow. It's contact with reality. Like
794
00:39:55.170 --> 00:39:57.250
you work through an event model and then real data
795
00:39:57.269 --> 00:39:59.469
starts to flow and you run into some issues and
796
00:39:59.510 --> 00:40:00.449
you have to change.
797
00:40:00.570 --> 00:40:00.820
Yes.
798
00:40:01.489 --> 00:40:05.019
Well, and of course I'm, I'm a history nerd. So, um,
799
00:40:05.159 --> 00:40:08.880
just happened to be listening to a podcast on the
800
00:40:08.900 --> 00:40:11.320
day for as horrible as that was, but how, um,
801
00:40:11.760 --> 00:40:16.840
how U.S. and British destroyers had to deviate from the
802
00:40:16.940 --> 00:40:20.239
plan quite a bit when all the communication broke down
803
00:40:20.300 --> 00:40:21.179
on the day of the landing.
804
00:40:21.219 --> 00:40:24.010
Right. And find a way to still be effective.
805
00:40:24.349 --> 00:40:27.889
There was decoys and stuff too, right? Wasn't there like
806
00:40:27.929 --> 00:40:31.829
some fake spy stuff that was going on that let
807
00:40:31.909 --> 00:40:32.809
the Germans believe?
808
00:40:32.929 --> 00:40:36.309
There's one famous story of U.S. Rangers have to do
809
00:40:36.329 --> 00:40:39.550
a crazy heroic assault up a cliff And when they
810
00:40:39.590 --> 00:40:43.789
got there, the guns were telephone poles.
811
00:40:44.090 --> 00:40:45.010
They were decoys.
812
00:40:46.269 --> 00:40:48.250
And there was, like I was about to say, there
813
00:40:48.269 --> 00:40:50.550
was some spy stuff that was going on that made
814
00:40:50.590 --> 00:40:52.530
the Germans think that it was happening at a completely
815
00:40:52.570 --> 00:40:53.150
different place.
816
00:40:53.409 --> 00:40:57.559
Oh, yeah. We set up a whole fake army around
817
00:40:57.659 --> 00:40:59.840
that to make them think we were trying to land
818
00:40:59.880 --> 00:41:00.400
somewhere else.
819
00:41:00.480 --> 00:41:00.659
Yeah.
820
00:41:01.019 --> 00:41:02.039
Yeah, as one does.
821
00:41:02.059 --> 00:41:04.480
I wonder if those techniques could still be used. I
822
00:41:04.519 --> 00:41:04.880
doubt it.
823
00:41:04.900 --> 00:41:05.920
I don't know.
824
00:41:06.340 --> 00:41:08.949
There's funny things going on in the Ukraine these days.
825
00:41:09.630 --> 00:41:12.110
With inflatable tanks and all kinds of nutty stuff.
826
00:41:12.179 --> 00:41:12.780
The decoys.
827
00:41:12.900 --> 00:41:13.139
Yeah.
828
00:41:13.179 --> 00:41:14.079
The decoys for drones.
829
00:41:14.539 --> 00:41:15.599
Decoys for drones.
830
00:41:15.619 --> 00:41:18.219
During World War II, there was also a fake Paris
831
00:41:18.719 --> 00:41:21.699
set up somewhere with an Eiffel Tower and everything to
832
00:41:21.739 --> 00:41:22.860
confuse the pilots.
833
00:41:23.420 --> 00:41:24.440
Oh, I didn't know about that.
834
00:41:24.460 --> 00:41:29.199
Oh, yeah. That was a classic thing. Anyway, we digress.
835
00:41:29.559 --> 00:41:32.210
Yeah, we do. But that's not a bad thing, too.
836
00:41:32.230 --> 00:41:37.269
It's interesting to explore all the ways that you actually
837
00:41:37.289 --> 00:41:39.510
have to build the software to You're going to bump
838
00:41:39.550 --> 00:41:41.750
into issues. I guess it's always a debate about how
839
00:41:41.789 --> 00:41:43.630
many of the features you end up building in a
840
00:41:43.670 --> 00:41:46.909
tool like Martin end up being the reality check of.
841
00:41:47.010 --> 00:41:49.199
And then when we actually did this, you're going to
842
00:41:49.239 --> 00:41:49.900
have this problem.
843
00:41:50.199 --> 00:41:54.800
So, I mean, as always, we learned, again, one of
844
00:41:54.820 --> 00:41:57.380
the lessons that came out of the Agile software development
845
00:41:57.400 --> 00:41:59.309
days before it became Scrum and got ruined.
846
00:41:59.329 --> 00:41:59.849
Yeah.
847
00:42:00.570 --> 00:42:04.170
That the design, the features you built should be pull,
848
00:42:04.269 --> 00:42:08.050
not push. You pull things in based on there is
849
00:42:08.090 --> 00:42:12.090
a demonstrated need to do this. So the features that
850
00:42:12.110 --> 00:42:14.480
have done the best for us, there's a feature in
851
00:42:14.519 --> 00:42:20.780
Wolverine we call global partitioning. What it is, is being
852
00:42:20.820 --> 00:42:23.699
able to take a look at some kind of business identification,
853
00:42:24.039 --> 00:42:27.769
you know, say an event stream, a classroom, and I'm
854
00:42:27.789 --> 00:42:30.869
going to make sure that all messages for this classroom
855
00:42:30.909 --> 00:42:33.670
are handled in sequential order, but I'm going to let
856
00:42:34.010 --> 00:42:40.480
other classrooms be handled in parallel. It's a really robust
857
00:42:40.559 --> 00:42:46.849
way to sidestep concurrency problems. That came out of... observing
858
00:42:47.090 --> 00:42:49.530
user needs you know what was happening in real systems
859
00:42:49.630 --> 00:42:52.610
right but other features that maybe we thought about for
860
00:42:52.710 --> 00:42:54.369
years that i thought was going to be a really
861
00:42:54.429 --> 00:42:58.449
big deal got it out there promoted it yeah not
862
00:42:58.469 --> 00:42:59.510
so much yeah.
863
00:42:59.360 --> 00:43:01.480
Yeah you never know it's hard to anticipate you just
864
00:43:01.500 --> 00:43:03.639
gotta go to collect the data and realize okay now
865
00:43:03.679 --> 00:43:04.659
we do this a different way.
866
00:43:04.619 --> 00:43:06.940
Now which you know that only works if you can't
867
00:43:07.000 --> 00:43:10.320
actually collect data and talk to people that use your
868
00:43:10.360 --> 00:43:12.980
tools And I'll tell you, that got a whole lot
869
00:43:13.039 --> 00:43:14.960
easier once I had a company and I was working
870
00:43:14.980 --> 00:43:19.219
for clients instead of getting secondhand stuff off of Discord.
871
00:43:19.480 --> 00:43:23.570
Right. Yeah. How much telemetry do you put into these
872
00:43:23.610 --> 00:43:26.889
tools as well? It's always great to collect data in utilization.
873
00:43:26.969 --> 00:43:27.889
I just don't know how.
874
00:43:27.829 --> 00:43:29.590
Comfortable people will be with that. So to be clear,
875
00:43:29.610 --> 00:43:31.449
we don't have anything that communicates back to us.
876
00:43:31.510 --> 00:43:31.710
Right.
877
00:43:31.969 --> 00:43:32.389
That's good.
878
00:43:32.659 --> 00:43:35.539
Don't have anything like that. The Critter Watch tool I
879
00:43:35.579 --> 00:43:39.210
talked about before. does have the ability, you could use
880
00:43:39.269 --> 00:43:41.730
that to kind of look into a system, but it's
881
00:43:41.750 --> 00:43:45.010
not sending anything back to us. The best way I
882
00:43:45.050 --> 00:43:48.210
can get that, it's not fine-grained on features, but just
883
00:43:48.269 --> 00:43:52.489
looking at, you know, the Nougat extensions, like I know,
884
00:43:52.889 --> 00:43:55.630
you know, Wolverine has so many downloads, and then I
885
00:43:55.650 --> 00:43:58.610
can see that most, probably a little over half are
886
00:43:58.670 --> 00:44:00.809
using it with Martin as well, and I can see
887
00:44:00.849 --> 00:44:02.829
how many people are using it with EF Core and,
888
00:44:03.289 --> 00:44:07.719
you know, down to the RabbitMQ and google gcp pub
889
00:44:07.739 --> 00:44:11.150
sub i get that a little bit but no right
890
00:44:11.489 --> 00:44:12.889
there's nothing snooping on you.
891
00:44:13.090 --> 00:44:15.690
Yeah which at the same time it's like that means
892
00:44:15.730 --> 00:44:19.309
invariably you build the products based on either customer feedback
893
00:44:19.349 --> 00:44:21.829
which is filtered or your own projects which are only
894
00:44:21.849 --> 00:44:24.969
going to be a subset like i i get it's uh.
895
00:44:24.969 --> 00:44:27.659
That's very true but at the same token i'm also
896
00:44:27.699 --> 00:44:31.909
going to say that jasper fx clients get um They
897
00:44:31.949 --> 00:44:34.440
are the highest priority on what gets built. So what
898
00:44:34.460 --> 00:44:36.960
they need is what gets built. And we would be
899
00:44:37.019 --> 00:44:37.829
happy to work with you.
900
00:44:37.840 --> 00:44:38.719
Yeah. Happy to help.
901
00:44:39.039 --> 00:44:40.300
No problem. All right.
902
00:44:40.920 --> 00:44:42.599
And if you need a feature built, I know a guy.
903
00:44:42.619 --> 00:44:48.719
I appreciate that. It's cool. All right. What else? What
904
00:44:48.739 --> 00:44:50.039
have we not dug into here?
905
00:44:50.340 --> 00:44:55.300
Well, I can throw something in the fire here, which
906
00:44:55.420 --> 00:45:01.280
is the tendency for unseasoned developers to want to find
907
00:45:01.300 --> 00:45:04.079
a way to use every feature of a tool, even
908
00:45:04.119 --> 00:45:07.619
if they don't need it. Um, you know, I find
909
00:45:07.659 --> 00:45:10.420
a new tool and then, you know, it's great if
910
00:45:10.519 --> 00:45:13.019
it helps you identify problems, but then you would go
911
00:45:13.119 --> 00:45:16.679
further and say, Oh, well we should use this on
912
00:45:17.039 --> 00:45:21.119
our code base or whatever when you may not need to.
913
00:45:21.590 --> 00:45:24.269
And that's just comes with experience. But I mean, I've
914
00:45:24.289 --> 00:45:25.570
seen that happen over and over again.
915
00:45:25.769 --> 00:45:28.059
I would give you the old, uh, I think it's
916
00:45:28.079 --> 00:45:30.110
a quote from Martin Fowler, but I don't remember where
917
00:45:30.139 --> 00:45:32.789
it came, where he did it. The only way to
918
00:45:32.849 --> 00:45:37.530
know how far a technique or a tool goes is
919
00:45:37.610 --> 00:45:40.210
to take it too far and then rein it back.
920
00:45:40.690 --> 00:45:41.230
Yeah.
921
00:45:41.449 --> 00:45:41.869
Yeah. Yeah.
922
00:45:42.860 --> 00:45:46.380
You kind of have to, right? Over on the system inside,
923
00:45:46.400 --> 00:45:50.880
we talk about minimizing constraints on a new tool so
924
00:45:50.900 --> 00:45:53.199
that people will actually engage with it. And then you have,
925
00:45:53.300 --> 00:45:54.960
it's like, you got to let the puppy run. Just
926
00:45:55.000 --> 00:45:58.559
don't let the puppy throw up. Like, Let them go. Yeah.
927
00:45:58.699 --> 00:46:00.719
You know, we saw this with SharePoint. We see it
928
00:46:00.739 --> 00:46:03.820
with Teams, like all these things where we're going to
929
00:46:03.900 --> 00:46:07.059
need governance. But if we put it in before anybody starts,
930
00:46:07.860 --> 00:46:10.320
it gets very little adoption. If we kind of let
931
00:46:10.340 --> 00:46:14.550
them run roughshod for a while and explore and cause problems,
932
00:46:14.969 --> 00:46:18.590
then people want governance. And you've already got some adoption
933
00:46:18.610 --> 00:46:21.030
and value from it too. Like I think you kind
934
00:46:21.050 --> 00:46:23.469
of expect people to go too far. Yeah. I would
935
00:46:23.489 --> 00:46:24.480
agree with that. Yeah.
936
00:46:24.820 --> 00:46:27.619
Funny, funny reality. Like there's never a perfection on any
937
00:46:27.659 --> 00:46:31.420
of this. Well, that was a short lived topic. Brought
938
00:46:31.460 --> 00:46:32.920
the conversation to a screeching halt.
939
00:46:33.519 --> 00:46:36.500
What about the AI skills side of Critterstack? What's this about?
940
00:46:36.820 --> 00:46:39.449
Well, one, I've got to stay in business. So there's
941
00:46:39.469 --> 00:46:43.730
kind of, there's gotta be something commercial related to AI. Yeah.
942
00:46:44.630 --> 00:46:48.920
So the AI skills is, Think of some of the
943
00:46:48.960 --> 00:46:52.110
sci-fi books you've read over the years where, oh, I'm
944
00:46:52.150 --> 00:46:54.929
going into combat. I'm going to put my combat skills
945
00:46:55.070 --> 00:46:58.550
program into active memory, right?
946
00:46:59.110 --> 00:46:59.809
Very Matrix.
947
00:46:59.929 --> 00:47:02.079
Yes. Or if you've read any kind of Peter F.
948
00:47:02.090 --> 00:47:05.550
Hamilton books. So the AI skills, they're going to teach
949
00:47:05.989 --> 00:47:09.860
your CLOD, your ASTRA, GPT. They're going to teach it, hey,
950
00:47:09.880 --> 00:47:13.000
I mean, the really markdown files, but a little more
951
00:47:13.039 --> 00:47:15.960
concentrated in documentation. They're going to try to give the
952
00:47:16.019 --> 00:47:19.480
AI tools... Guardrails on here is how to use the
953
00:47:19.539 --> 00:47:24.070
tools the best way. Certainly a lot of stuff around
954
00:47:24.199 --> 00:47:29.130
Martin itself, but taking Wolverine is a better example. Wolverine's
955
00:47:29.170 --> 00:47:32.449
value is that it allows you to create much, much
956
00:47:32.530 --> 00:47:37.900
simpler application code than... any of its competitor tools. There's
957
00:47:37.920 --> 00:47:41.760
just more things it does to simplify code. But if
958
00:47:41.860 --> 00:47:44.889
you let an AI tool go, it will try to
959
00:47:44.989 --> 00:47:48.989
use Wolverine just like its mass transit or mediator or
960
00:47:49.550 --> 00:47:51.400
on the HP side, it'll try to use it just
961
00:47:51.440 --> 00:47:55.139
like its MVC core minimal API. and you will lose
962
00:47:55.159 --> 00:47:58.969
a lot of the value of what Wolverine possibly can
963
00:47:59.010 --> 00:48:02.070
do as far as shrinking your code. The AI skills will,
964
00:48:02.289 --> 00:48:05.090
will teach it of, no, this is the idiomatic way
965
00:48:05.110 --> 00:48:08.429
to use it. Nice. You know, for Wolverine, it's no,
966
00:48:08.719 --> 00:48:11.900
you want to reduce the code to a pure function.
967
00:48:12.039 --> 00:48:14.940
That's easy to test. I want to reduce layering. You
968
00:48:14.960 --> 00:48:18.119
want to, you know, Think of what somebody would do
969
00:48:18.239 --> 00:48:20.179
using clean architecture and don't do that.
970
00:48:20.960 --> 00:48:21.159
Right.
971
00:48:21.400 --> 00:48:23.429
Every possible way to simplify a code, there's a lot
972
00:48:23.469 --> 00:48:27.670
of skills to be able to utilize testing. Not be
973
00:48:27.710 --> 00:48:32.429
able to just to utilize the testing helpers in Wolverine
974
00:48:32.469 --> 00:48:35.380
and Martin, of which there's a lot, you know. But
975
00:48:35.570 --> 00:48:38.559
when you get into asynchronous testing, it also teaches your
976
00:48:38.619 --> 00:48:42.360
AI tool, hey, here's how to use all the built-in
977
00:48:42.539 --> 00:48:46.199
CLI tools, command line tools, diagnostic tools that we've built
978
00:48:46.340 --> 00:48:50.099
into Wolverine and Martin. Things like, okay, I want to
979
00:48:50.139 --> 00:48:54.159
go test. This message seemed to disappear. I can run
980
00:48:54.179 --> 00:48:56.280
a command line and it can tell me this is
981
00:48:56.340 --> 00:48:58.349
where the message will be sent to this route. If
982
00:48:58.550 --> 00:49:03.829
you end point or topic or whatnot, it'll explain the
983
00:49:03.889 --> 00:49:06.650
command line tools will explain to an AI agent. Here's
984
00:49:06.690 --> 00:49:12.719
what it's doing. Every possible bit of information about how
985
00:49:12.760 --> 00:49:16.280
the application is configured. If you have a Critterwatch tool,
986
00:49:16.300 --> 00:49:19.650
the AI skills will teach you how to use MCN points,
987
00:49:20.820 --> 00:49:24.059
in Critterwatch to be able to reach out into your
988
00:49:24.099 --> 00:49:28.239
open telemetry to say, hey, I'm working on this saga.
989
00:49:28.679 --> 00:49:31.820
Tell me what's going on. That'll teach your AI agent
990
00:49:31.880 --> 00:49:35.940
how to reach into Jaeger or App Insights or whatever
991
00:49:35.960 --> 00:49:39.579
it's using through Critterwatch. And it will grab all the
992
00:49:39.619 --> 00:49:43.320
information about here is all the work that's already happening
993
00:49:43.380 --> 00:49:46.679
for the saga. Here is the information that's yet to come.
994
00:49:46.699 --> 00:49:49.260
Maybe it can tell you, hey, this message failed. This
995
00:49:49.280 --> 00:49:53.929
message happened at this time. But this AI skills, it's
996
00:49:53.989 --> 00:49:57.510
trying to unlock every bit of information about your system,
997
00:49:57.550 --> 00:50:00.630
both at rest and at movement. Cool.
998
00:50:00.989 --> 00:50:01.250
Nice.
999
00:50:01.630 --> 00:50:03.250
Yeah, it makes a lot of sense. And it just
1000
00:50:03.269 --> 00:50:06.489
saves time, right? You're just going to get more done
1001
00:50:06.510 --> 00:50:07.230
in less time that way.
1002
00:50:07.489 --> 00:50:12.530
Potentially saves time. And this is us going through the
1003
00:50:12.570 --> 00:50:16.590
full cycle. I'm sure everybody in my position went through
1004
00:50:16.659 --> 00:50:20.900
a cycle of, oh my God, we're dead meat. The
1005
00:50:20.980 --> 00:50:25.619
AI is going to crush our business model to, okay,
1006
00:50:26.159 --> 00:50:28.679
it's helping us deliver a lot faster, but we can
1007
00:50:28.760 --> 00:50:32.570
use AI related functionality to build a lot more value
1008
00:50:32.639 --> 00:50:35.269
in for our customers and maybe come out the other
1009
00:50:35.289 --> 00:50:40.949
side and maybe have something that's That's hopefully something that
1010
00:50:41.010 --> 00:50:43.170
people want to actually buy and pay for.
1011
00:50:43.190 --> 00:50:45.510
Yeah. No, no question.
1012
00:50:45.710 --> 00:50:48.949
Do you have anything else planned or are you done
1013
00:50:48.989 --> 00:50:50.050
making critters for a while?
1014
00:50:50.570 --> 00:50:54.250
So the biggest thing for us in a, so there'll
1015
00:50:54.269 --> 00:50:57.820
be a new critter watch 1.1. And by the time
1016
00:50:57.880 --> 00:51:01.820
this podcast drops, we'll have a big new release. It's
1017
00:51:02.300 --> 00:51:04.920
going to give you an option to be able to
1018
00:51:04.940 --> 00:51:07.860
embed critter watch in your own application. like at dev
1019
00:51:07.920 --> 00:51:11.219
time even. So you get a lot more insight at
1020
00:51:11.340 --> 00:51:15.440
what's happening at development time. And more features, it's finally
1021
00:51:15.500 --> 00:51:20.210
adding cron-based scheduling and then some other features. And then
1022
00:51:20.889 --> 00:51:25.670
our big grand epic of the critter stacks version of
1023
00:51:25.690 --> 00:51:29.210
event modeling and spec driven development, being able to sit
1024
00:51:29.230 --> 00:51:31.590
in a room and, you know, be able to project
1025
00:51:31.710 --> 00:51:34.380
up a meeting, meeting of, Hey, let's look at the,
1026
00:51:34.679 --> 00:51:37.420
the visualization of the event model as we talk about
1027
00:51:38.119 --> 00:51:41.840
what it's supposed to do. And is everybody agree with this?
1028
00:51:42.099 --> 00:51:44.320
And then push play and let an AI set of
1029
00:51:44.380 --> 00:51:47.980
AI tools, scaffold it all out for you, including the tests.
1030
00:51:48.119 --> 00:51:49.219
Nice. Awesome.
1031
00:51:49.239 --> 00:51:52.219
So we're going live in two days. Did you, mean
1032
00:51:52.260 --> 00:51:54.380
to say that by the time this podcast drops?
1033
00:51:54.679 --> 00:52:00.079
So, Carl, I went to Rice University in Houston. There's
1034
00:52:00.139 --> 00:52:03.719
a famous story. So, believe it or not, Rice was
1035
00:52:03.760 --> 00:52:05.159
really good in football once upon a time.
1036
00:52:05.420 --> 00:52:06.559
No.
1037
00:52:07.079 --> 00:52:11.019
But like in the 50s. And sometime in the early 60s,
1038
00:52:11.079 --> 00:52:13.159
they decided, hey, we're going to use a whole bunch
1039
00:52:13.199 --> 00:52:16.280
of leftover concrete from a Houston freeway, and we're going
1040
00:52:16.300 --> 00:52:19.139
to go build the giant Rice Stadium that's still there today.
1041
00:52:19.159 --> 00:52:19.570
Hmm.
1042
00:52:19.980 --> 00:52:22.090
And we're going to get it done before the next season.
1043
00:52:22.869 --> 00:52:26.809
So at one point, the story is that one of
1044
00:52:27.289 --> 00:52:29.409
the board of governors is asking one of the Brown
1045
00:52:29.449 --> 00:52:33.050
brothers from Brown and Root, famous company, hey, is the
1046
00:52:33.070 --> 00:52:35.380
stadium going to be done for the first game? And
1047
00:52:35.389 --> 00:52:37.940
he looks at him deadpan and asks, well, is it
1048
00:52:37.960 --> 00:52:39.239
going to be a day game or a night game?
1049
00:52:43.000 --> 00:52:44.920
It might be a couple of days after this goes live.
1050
00:52:44.940 --> 00:52:46.099
You guys used to be slower.
1051
00:52:46.119 --> 00:52:46.840
I know.
1052
00:52:46.880 --> 00:52:49.969
Well, we're going to be there really soon. Thursday.
1053
00:52:49.989 --> 00:52:53.110
Thursday we're going to do a big demo. I looked
1054
00:52:53.190 --> 00:52:55.590
up the Kelly Blue Book value of an old car
1055
00:52:55.650 --> 00:52:58.190
and it said, is that with a tank full or empty?
1056
00:52:59.469 --> 00:53:00.329
Kind of the same joke.
1057
00:53:00.590 --> 00:53:00.889
Nice.
1058
00:53:02.949 --> 00:53:05.090
All right, good. Well, we'll be looking forward to that.
1059
00:53:05.579 --> 00:53:08.219
Jeremy Miller, thank you very much for catching us up
1060
00:53:08.300 --> 00:53:09.900
on everything that's going on in Critterland.
1061
00:53:10.039 --> 00:53:11.679
All right, guys. Thank you so much.
1062
00:53:11.699 --> 00:53:12.059
You bet.
1063
00:53:12.179 --> 00:53:14.340
And we'll talk to you next time on.
1064
00:53:14.320 --> 00:53:14.599
NET Rocks.
1065
00:53:14.619 --> 00:53:15.190
NET Rocks.
1066
00:53:36.119 --> 00:53:38.820
NET Rocks is brought to you by Franklin's Net and
1067
00:53:38.880 --> 00:53:43.610
produced by Plop Studios, a full-service audio, video, and post-production
1068
00:53:43.639 --> 00:53:47.650
facility located physically in New London, Connecticut, and, of course,
1069
00:53:47.710 --> 00:53:51.329
in the cloud. Online at pwop.com.
1070
00:53:52.050 --> 00:53:59.929
Visit our website at dotnetrocks.com for RSS feeds, downloads, mobile apps, comments,
1071
00:54:00.369 --> 00:54:02.849
and access to the full archives going back to show
1072
00:54:02.889 --> 00:54:05.630
number one recorded in September 2002.
1073
00:54:05.630 --> 00:54:08.929
And make sure you check out our sponsors. They keep
1074
00:54:08.989 --> 00:54:12.150
us in business. Now go write some code. See you
1075
00:54:12.210 --> 00:54:12.610
next time.
1
00:00:01.169 --> 00:00:04.790
How'd you like to listen to. NET Rocks with no ads? Easy.
2
00:00:05.370 --> 00:00:08.779
Become a patron. For just $ 5 a month, you get
3
00:00:08.890 --> 00:00:11.720
access to a private RSS feed where all the shows
4
00:00:11.800 --> 00:00:14.900
have no ads. $ 20 a month will get you that
5
00:00:15.119 --> 00:00:18.839
and a special. NET Rocks patron mug. Sign up now
6
00:00:18.899 --> 00:00:36.100
at patreon.dotnetrocks.com. Hey, welcome back to.
7
00:00:36.060 --> 00:00:36.640
NET Rocks.
8
00:00:36.719 --> 00:00:37.500
I'm Carl Franklin.
9
00:00:37.759 --> 00:00:38.439
And I'm Richard Campbell.
10
00:00:38.600 --> 00:00:44.170
This is episode 2023, my friend. It's almost over.
11
00:00:44.289 --> 00:00:46.969
This is it. It's almost over. I'm looking forward to it.
12
00:00:47.030 --> 00:00:49.609
I've got a special show planned for 2027 now. I saw.
13
00:00:49.770 --> 00:00:51.049
I came up with an idea.
14
00:00:51.070 --> 00:00:53.590
Yeah, you like that? Let's not tell anybody. Let's just
15
00:00:53.630 --> 00:00:54.020
find out.
16
00:00:54.049 --> 00:00:55.609
No, we're not going to say anything about it.
17
00:00:56.259 --> 00:00:56.840
We'll just see.
18
00:00:57.200 --> 00:00:57.420
Yeah.
19
00:00:57.579 --> 00:00:57.859
All right.
20
00:00:58.320 --> 00:01:00.140
We're going to look back at 2027.
21
00:01:00.140 --> 00:01:01.520
Something like that. I don't know.
22
00:01:01.539 --> 00:01:05.620
Okay. Well, what we're talking about, of course, is we
23
00:01:05.780 --> 00:01:10.319
have been doing this historical documentation.
24
00:01:10.969 --> 00:01:14.409
It started casually in the 1900s, but it's gotten a
25
00:01:14.450 --> 00:01:15.290
little intense now.
26
00:01:15.489 --> 00:01:18.209
Yeah. And it's also kind of a yawner now because
27
00:01:18.310 --> 00:01:21.390
we're in the 2020s. Yeah.
28
00:01:21.629 --> 00:01:22.290
It was yesterday.
29
00:01:22.750 --> 00:01:22.989
Yeah.
30
00:01:23.290 --> 00:01:26.049
So, what happened three years ago? Let's talk about that.
31
00:01:26.069 --> 00:01:26.689
This is 2023. Okay.
32
00:01:28.170 --> 00:01:30.790
Um, I'll tell you the bad news. Richard will probably
33
00:01:30.849 --> 00:01:35.109
say some happier news. Um, Hamas attacks, Israel, Israel, Gaza
34
00:01:35.129 --> 00:01:35.829
war begins.
35
00:01:36.109 --> 00:01:36.370
Yeah.
36
00:01:36.450 --> 00:01:36.969
Bad war.
37
00:01:37.530 --> 00:01:41.609
And, uh, good wars, but still, no, uh, Russia, Ukraine
38
00:01:41.659 --> 00:01:47.299
war enters its second year. And, uh, yeah, well, um, Western,
39
00:01:47.340 --> 00:01:50.040
that's what you got, huh? Well, the Western military support
40
00:01:50.060 --> 00:01:52.000
the Wagner group, uh, mutiny.
41
00:01:52.120 --> 00:01:52.819
Oh yeah. In June.
42
00:01:52.879 --> 00:01:57.370
And the death of Wagner, Vegni, uh, Frigosian?
43
00:01:57.530 --> 00:01:58.450
Yeah.
44
00:01:58.489 --> 00:02:02.489
Richard, that happened on the last day of KCDC that year.
45
00:02:02.709 --> 00:02:08.879
Yeah. We were all there. Wow. You never heard from
46
00:02:08.919 --> 00:02:11.819
him again because those guys are all dead now.
47
00:02:12.219 --> 00:02:13.620
Dead men tell no tales.
48
00:02:13.960 --> 00:02:14.240
Yeah.
49
00:02:15.219 --> 00:02:18.590
Donald Trump was indicted four times, charged in four separate
50
00:02:18.610 --> 00:02:24.219
criminal cases involving the 2020 election, classified documents. The January
51
00:02:24.409 --> 00:02:26.930
6th aftermath and the Stormy Daniels hush money matter.
52
00:02:26.949 --> 00:02:28.050
Remember that?
53
00:02:28.069 --> 00:02:28.150
Yeah.
54
00:02:28.830 --> 00:02:30.830
Remember that stuff? Yeah. Remember that stuff.
55
00:02:31.009 --> 00:02:38.060
Okay. Some devastating earthquakes, Turkey, Syria in that area. Killed
56
00:02:38.099 --> 00:02:41.840
more than 50,000 people. So bad.
57
00:02:42.259 --> 00:02:43.979
Well, and you're talking Syria is still in the midst
58
00:02:44.020 --> 00:02:47.099
of a civil war, too. So, who knows what help
59
00:02:47.150 --> 00:02:48.229
they got or any of those things.
60
00:02:48.409 --> 00:02:48.610
Right.
61
00:02:49.780 --> 00:02:52.870
Uh, 2023 becomes the hottest year on record. I think
62
00:02:52.909 --> 00:02:55.569
that has been surpassed now, but, uh, that was the
63
00:02:55.629 --> 00:03:01.340
record to that point. Um, bad, bad, bad, bad. Uh,
64
00:03:01.409 --> 00:03:02.990
Sudan descends.
65
00:03:02.629 --> 00:03:04.750
Into civil war. Yeah. It's inevitable.
66
00:03:04.969 --> 00:03:09.280
The Sudanese armed forces versus the rapid support forces. Thousands
67
00:03:09.319 --> 00:03:13.780
were killed. Millions displaced. One of the world's largest humanitarian crises. Uh,
68
00:03:15.240 --> 00:03:19.310
the U S banking crisis. Silicon Valley Bank and others collapse.
69
00:03:20.129 --> 00:03:20.849
Signature Bank.
70
00:03:21.150 --> 00:03:24.080
Yeah, that one, I mean, not the same scope as 2008,
71
00:03:24.080 --> 00:03:27.639
but it didn't have a contagion. Like one would argue
72
00:03:27.659 --> 00:03:31.060
that the contagion rules they put in place in 2009
73
00:03:31.060 --> 00:03:32.379
actually worked. Right.
74
00:03:34.280 --> 00:03:38.689
Hollywood and U.S. auto workers stage a major strikes. Writers
75
00:03:38.729 --> 00:03:39.229
and actors.
76
00:03:39.550 --> 00:03:40.150
About AI.
77
00:03:40.270 --> 00:03:42.669
Yeah, brought much of Hollywood production to a halt while
78
00:03:42.689 --> 00:03:47.590
the UAW simultaneously struck Ford, GM, and Stellantis. The year
79
00:03:47.610 --> 00:03:50.250
became one of the most significant periods for organized labor
80
00:03:50.289 --> 00:03:53.960
in the United States in decades. Prince Charles became King Charles.
81
00:03:54.030 --> 00:03:54.219
Right.
82
00:03:54.379 --> 00:03:56.259
King Charles III, May 6th.
83
00:03:57.020 --> 00:04:00.120
My oldest son got to do his freshman year of
84
00:04:00.159 --> 00:04:01.379
college in London.
85
00:04:01.400 --> 00:04:03.729
Oh, wow. Saw the coronation.
86
00:04:04.849 --> 00:04:08.889
His first four or five weeks, two monarchs, three prime ministers.
87
00:04:08.949 --> 00:04:12.650
Yeah. They're still on the prime minister role here. What
88
00:04:12.689 --> 00:04:15.129
is it, 10 in four years? It's amazing.
89
00:04:16.490 --> 00:04:20.459
He just got there when Liz Truss was trying to
90
00:04:20.500 --> 00:04:22.100
outrace the lettuce and failed.
91
00:04:22.120 --> 00:04:27.930
Yeah, and failed. Cannot last longer than lettuce.
92
00:04:28.889 --> 00:04:32.720
Let's see. The Titan submersible disaster, the disappearance of Ocean
93
00:04:33.000 --> 00:04:35.879
Gates Titan during a dive to the wreck of the
94
00:04:35.920 --> 00:04:39.740
Titanic triggered a massive multinational search and became an enormous
95
00:04:39.779 --> 00:04:43.699
worldwide news story. You probably know more about that than
96
00:04:43.740 --> 00:04:47.050
I do, Richard. Don't use carbon fiber for submersibles.
97
00:04:47.399 --> 00:04:48.670
That's the end of that. Yeah.
98
00:04:48.759 --> 00:04:50.050
Catastrophic implosion.
99
00:04:50.230 --> 00:04:54.610
It imploded. Yeah, not exploded. Five people died. I mean-
100
00:04:55.360 --> 00:04:57.600
They'd ever felt a thing. It would have been instantaneous.
101
00:04:57.980 --> 00:05:00.160
So incredibly fast, but still.
102
00:05:00.259 --> 00:05:01.680
Chinese spy balloon incident?
103
00:05:01.759 --> 00:05:03.269
Yeah, that's a weird one, isn't it? It was a
104
00:05:03.310 --> 00:05:07.120
weird one. F-22 shoots down a spy balloon? Yeah.
105
00:05:08.410 --> 00:05:12.029
Okay. The Maui wildfires. Bad, bad, bad.
106
00:05:12.230 --> 00:05:13.170
Yeah. Terrible.
107
00:05:13.189 --> 00:05:18.129
There was an earthquake in Morocco, a catastrophic flood in Libya,
108
00:05:19.069 --> 00:05:22.610
or floods, more than one. Kevin McCarthy's removal as House Speaker.
109
00:05:23.610 --> 00:05:25.759
All sorts of And it's gone well since then.
110
00:05:25.779 --> 00:05:25.860
Yeah.
111
00:05:27.930 --> 00:05:30.430
Okay, we got to laugh to keep from crying. So, Richard,
112
00:05:30.990 --> 00:05:32.769
let's talk about space.
113
00:05:33.300 --> 00:05:35.860
I would also suggest that this was the end of COVID, right?
114
00:05:35.959 --> 00:05:39.019
In January, when China finally reopened. Right. But also announced
115
00:05:39.040 --> 00:05:43.139
that its population has fallen. You know, they start to
116
00:05:43.160 --> 00:05:45.610
understand that the way they were doing their assessment of
117
00:05:45.639 --> 00:05:49.769
population wasn't effective. And there was like 100 million fewer
118
00:05:49.810 --> 00:05:50.529
people than they thought.
119
00:05:50.750 --> 00:05:50.970
Wow.
120
00:05:51.029 --> 00:05:53.750
And then in May, when the World Health Organization officially
121
00:05:53.850 --> 00:05:55.129
ended the global emergency.
122
00:05:55.430 --> 00:05:55.589
Yeah.
123
00:05:55.930 --> 00:05:59.410
End of COVID. Yeah. As a pandemic anyway. All right,
124
00:05:59.490 --> 00:06:02.649
into space. Yes. 2023 is really the year that SpaceX
125
00:06:02.689 --> 00:06:09.399
begins to dominate with 98 of 223 launches in the world.
126
00:06:09.579 --> 00:06:15.300
So that's 44% comes from one company. So that's 91
127
00:06:15.300 --> 00:06:18.459
Falcon 9 launches, five Falcon Heavy launches, and the first
128
00:06:18.620 --> 00:06:22.149
two test flights of starship uh the previous year in
129
00:06:22.149 --> 00:06:25.670
22 it was 61 launches they had 99 booster landings
130
00:06:25.730 --> 00:06:28.129
which seems weird they only had 98 launches but 99
131
00:06:28.129 --> 00:06:31.189
booster landings remember that every falcon heavy has two boosters
132
00:06:32.129 --> 00:06:36.939
for a total of 1200 metric tons lifted to orbit
133
00:06:37.389 --> 00:06:41.470
um wow again a crazy record Now, 63 of those
134
00:06:41.470 --> 00:06:46.189
91 Falcon 9 launches were Starlink because Starlink is really
135
00:06:46.250 --> 00:06:49.519
coming into play here, especially in the context of the
136
00:06:49.680 --> 00:06:54.439
Ukraine war. This is the year that the Elon biography
137
00:06:54.480 --> 00:06:57.360
comes out where we find out that at the beginning
138
00:06:57.379 --> 00:06:59.319
of the war, he actually– well, not the beginning. It
139
00:06:59.339 --> 00:07:01.339
was like in November of 22, he actually turned off
140
00:07:01.379 --> 00:07:04.949
Starlink at the request of Putin. That was more than
141
00:07:04.990 --> 00:07:06.509
a little bit of a kerfuffle overall.
142
00:07:07.009 --> 00:07:07.569
Kerfuffle.
143
00:07:07.589 --> 00:07:08.350
Yeah.
144
00:07:08.550 --> 00:07:12.319
Yeah. Interesting times. I would also have to mention China,
145
00:07:12.360 --> 00:07:16.930
who had 67 launches that year compared to SpaceX's 98.
146
00:07:16.930 --> 00:07:20.189
But that is them operating their own space station. Three
147
00:07:20.230 --> 00:07:25.810
supply missions and a few crew changes in 23. In January,
148
00:07:25.870 --> 00:07:28.250
SpaceX does a Transporter 6 mission. I would normally not
149
00:07:28.290 --> 00:07:31.269
mention these. Transporter 6 is literally their flying CubeSats. I
150
00:07:31.310 --> 00:07:33.790
think they flew like 50 CubeSats on it. But one
151
00:07:33.810 --> 00:07:38.389
of them was Caltech's Space Solar Power Demonstrator. This is
152
00:07:38.410 --> 00:07:42.670
a little 50-kilogram CubeSat that actually has deployable solar collectors
153
00:07:42.730 --> 00:07:47.089
on it that had tested 32 different styles of solar collectors,
154
00:07:47.170 --> 00:07:51.529
different types of full of voltaics and so forth, and
155
00:07:51.589 --> 00:07:56.300
included a microwave transmitter and successfully beamed power to Earth.
156
00:07:56.560 --> 00:07:58.160
It wasn't a meaningful amount of power, but it was
157
00:07:58.240 --> 00:08:01.920
an end-to-end test, essentially, that you can collect solar power
158
00:08:01.959 --> 00:08:06.490
in orbit and beam it onto the surface. It was microwaved, right? microwaves. Yeah.
159
00:08:06.529 --> 00:08:08.449
Microwave microwave is like nine gigahertz.
160
00:08:08.610 --> 00:08:11.810
Was that actually successful? That's been a lot of sci-fi books.
161
00:08:12.250 --> 00:08:12.529
Yeah.
162
00:08:12.589 --> 00:08:12.769
Yeah.
163
00:08:12.810 --> 00:08:15.509
Well, it's, that's the old, you know, back from the seventies, uh,
164
00:08:15.720 --> 00:08:18.240
you know, Gerald O'Neill and so forth. So this was
165
00:08:18.339 --> 00:08:20.560
a genuine end to end test worked a hundred percent.
166
00:08:20.920 --> 00:08:22.980
Like, uh, yeah, we were talking about that in the
167
00:08:23.019 --> 00:08:24.860
nineties that sure that this was a good.
168
00:08:24.939 --> 00:08:26.870
It goes back to the seventies. It's gone a long,
169
00:08:26.930 --> 00:08:29.759
long time. But my, um, We did the data centers
170
00:08:29.819 --> 00:08:32.100
in space talk, and I sort of end that one with, hey,
171
00:08:32.679 --> 00:08:35.350
if we can really lift 100 metric tons to orbit
172
00:08:36.169 --> 00:08:40.009
with a starship at a price of less than $ 100 million,
173
00:08:41.070 --> 00:08:45.250
maybe space-based power is actually feasible today. Because now we
174
00:08:45.909 --> 00:08:50.929
talk about the most advanced theoretical designs, the SPS Alpha
175
00:08:50.960 --> 00:08:55.500
designs from the British Aeronautical Society. They're talking about 3,000
176
00:08:55.500 --> 00:08:58.860
metric tons for a gigawatt. And that's outrageous if you're
177
00:08:58.899 --> 00:09:01.830
lifting them in 20-ton chunks. But if you're lifting them
178
00:09:01.970 --> 00:09:05.250
in 100-ton chunks... It starts to look practical. And speaking
179
00:09:05.269 --> 00:09:08.990
of that 100-ton lift, in April, Starship test flight number one,
180
00:09:09.049 --> 00:09:11.580
the most powerful rocket ever launched. This was the V-1. Today,
181
00:09:11.620 --> 00:09:15.080
we're dealing with V-3s. It didn't go particularly well, but
182
00:09:15.100 --> 00:09:18.580
it was a full end-to-end stack. They launched. The separation
183
00:09:18.620 --> 00:09:21.440
went a little bit wonky. Everything was terminated after about
184
00:09:21.480 --> 00:09:25.740
four minutes worth of flight. But this gigantic 9-meter wide,
185
00:09:25.759 --> 00:09:30.919
120-meter tall stainless steel rocket took off. More thrust than
186
00:09:31.000 --> 00:09:35.820
Apollo by Saturn V by a lot. And yeah, they're
187
00:09:35.860 --> 00:09:38.509
on their path. It's advancing to this day.
188
00:09:38.809 --> 00:09:41.480
Was that... That wasn't the one that sort of blew
189
00:09:41.559 --> 00:09:44.240
up on the launch pad and toasted everything around.
190
00:09:43.960 --> 00:09:44.399
It, right?
191
00:09:44.559 --> 00:09:44.820
No.
192
00:09:45.419 --> 00:09:49.299
Well, actually, what it was was it lost three engines
193
00:09:49.559 --> 00:09:53.429
at launch. And so, it lifted off very, very slowly,
194
00:09:53.490 --> 00:09:56.639
literally as it burned fuel lost weight. So it dug
195
00:09:56.659 --> 00:10:03.049
a 20-foot deep hole. Blowing concrete everywhere.
196
00:10:03.070 --> 00:10:03.169
Yeah.
197
00:10:03.250 --> 00:10:07.590
It destroyed, it really seriously damaged the pad. Destroyed the pad, yeah. Arguably,
198
00:10:07.669 --> 00:10:10.230
when they had three engines fail, they should not have
199
00:10:10.269 --> 00:10:11.990
attempted to launch it. It should have cut off immediately,
200
00:10:12.090 --> 00:10:16.409
but they didn't. And so, they also, this is the
201
00:10:16.929 --> 00:10:20.529
milk stool design. So, they just had legs to, they
202
00:10:20.580 --> 00:10:23.870
had no deflectors. They had no water suppression system. None
203
00:10:23.909 --> 00:10:25.230
of the normal things you would do with a rocket
204
00:10:25.269 --> 00:10:27.889
like this. They did not do that again. In the
205
00:10:27.929 --> 00:10:29.639
process of repairing the pad, they did put in a
206
00:10:29.649 --> 00:10:33.379
water suppression system. And subsequently, today, they have a proper
207
00:10:33.779 --> 00:10:37.700
full flame trench with water suppression redirecting the exhaust.
208
00:10:37.720 --> 00:10:38.320
What were they thinking?
209
00:10:38.340 --> 00:10:40.679
This massive rocket. He wanted to make it as simple
210
00:10:40.720 --> 00:10:43.379
as possible for flying from Mars. That was what he
211
00:10:43.419 --> 00:10:48.259
was thinking, which is dumb, dumb, dumb, dumb. Anyway, the
212
00:10:48.299 --> 00:10:54.669
good news is they learned. In August– The Indians, the
213
00:10:54.690 --> 00:10:59.529
Indian space program, Chang'e-N-3 successfully does a soft landing of
214
00:10:59.549 --> 00:11:02.580
their lander near the moon's south pole. This will be
215
00:11:02.600 --> 00:11:04.620
the only fourth country to ever land on the moon.
216
00:11:04.820 --> 00:11:06.899
The first to be in the Americans will actually be.
217
00:11:07.360 --> 00:11:11.059
The Soviet Union, then the Americans, and then China, but
218
00:11:11.120 --> 00:11:13.059
now India was up there as well, and also the
219
00:11:13.100 --> 00:11:16.159
first to land anywhere near the South Pole. That same month,
220
00:11:16.220 --> 00:11:18.879
Russia attempts to return to the moon with their Luna 25.
221
00:11:18.879 --> 00:11:25.399
It crashes. In September, OSIRIS-REx, this is a US mission
222
00:11:25.480 --> 00:11:28.799
to collect samples of the asteroid Bennu, returns those samples
223
00:11:28.860 --> 00:11:33.750
successfully to Earth. And in October, Falcon Heavy launches the
224
00:11:33.820 --> 00:11:38.220
Psyche mission. This is a mission to the largest object
225
00:11:38.440 --> 00:11:42.519
in the asteroid belt. Psyche is a metallic asteroid, possibly
226
00:11:42.580 --> 00:11:45.700
the core of a planet that was ripped apart by
227
00:11:45.720 --> 00:11:48.190
the tidal forces caused by Jupiter. And they want to
228
00:11:48.289 --> 00:11:50.529
seriously map that. That mission is still underway. It's still flying.
229
00:11:51.009 --> 00:11:54.850
Second test flight of Starship in November. And that's all
230
00:11:54.889 --> 00:11:56.710
I got for that. So it's not a big, I mean,
231
00:11:56.730 --> 00:11:59.009
there's a lot of missions, but they're mostly Starlink missions, right?
232
00:11:59.519 --> 00:12:02.840
Shall we talk about computing? Because it's 2023. Yeah. And
233
00:12:02.860 --> 00:12:06.399
this is when AI takes over the conversation. Yeah.
234
00:12:06.440 --> 00:12:06.679
Right.
235
00:12:07.120 --> 00:12:10.419
We had ChatGPT launched in November of 22. It is
236
00:12:10.480 --> 00:12:13.210
now the beginning of 23. This is the first time
237
00:12:14.169 --> 00:12:16.970
Sachin Adela ever writes an all-hands letter the way Bill
238
00:12:17.009 --> 00:12:20.769
Gates did, where he says, look, we've got this agreement
239
00:12:20.789 --> 00:12:25.450
with OpenAI. We've invested an additional $ 10 billion in them,
240
00:12:25.509 --> 00:12:29.240
bringing their total investment to $ 13 billion. And every team
241
00:12:29.379 --> 00:12:32.899
should take a look at these APIs and start immigrating
242
00:12:32.919 --> 00:12:36.259
them into their applications and make a co-pilot. I've heard
243
00:12:36.299 --> 00:12:39.580
rumor there were literally hundreds. But, you know, it's a
244
00:12:39.720 --> 00:12:41.740
first for Satya to direct the whole company in a
245
00:12:41.779 --> 00:12:44.580
new direction. And really the thing that I think he
246
00:12:44.620 --> 00:12:47.159
thinks he can hang his hat on as CEO, that
247
00:12:47.210 --> 00:12:49.309
this is what he brings to the company. First out
248
00:12:49.330 --> 00:12:52.509
of the gate in February will be Bing, formerly known
249
00:12:52.549 --> 00:12:54.269
as Project Sydney, where they were trying to put a
250
00:12:54.309 --> 00:12:56.889
natural interface onto the search engine. I hear both guys
251
00:12:56.909 --> 00:13:00.289
who tried it really liked it. I said that a lot.
252
00:13:00.330 --> 00:13:02.269
I feel, I feel bad. I mean, yeah. You know,
253
00:13:02.289 --> 00:13:04.779
it turns out that just putting an LLM onto your
254
00:13:04.799 --> 00:13:06.779
search engine doesn't make it a popular search engine, but
255
00:13:06.840 --> 00:13:07.879
you know, it was first out the gate.
256
00:13:08.960 --> 00:13:09.080
Right.
257
00:13:09.220 --> 00:13:12.429
In March we get GPT four. So we go from what?
258
00:13:12.429 --> 00:13:16.789
275 billion parameters up to a trillion parameters. Uh, It's
259
00:13:16.830 --> 00:13:19.490
amazing it happened that fast, you know, that less than
260
00:13:19.529 --> 00:13:22.980
a year after GPT-3, they had GPT-4. This is when
261
00:13:23.000 --> 00:13:25.639
the 10 billion bought them, was to build an incredibly
262
00:13:25.700 --> 00:13:29.000
massive model. And it's impressive, the step forward on that. This,
263
00:13:29.039 --> 00:13:32.039
of course, freaks out Google, who had been playing with
264
00:13:32.120 --> 00:13:34.360
BARD and had Google Brain and all those sorts of things.
265
00:13:34.379 --> 00:13:37.379
They're actually, internally, they called it a code red event.
266
00:13:38.200 --> 00:13:41.740
This becomes the big push for Gemini, right? In May,
267
00:13:42.519 --> 00:13:46.750
Jeffrey Hinton said, One of the godfathers of the generative
268
00:13:46.840 --> 00:13:49.820
AI movement leaves Google and goes on a press tour
269
00:13:49.840 --> 00:13:51.399
that he's still on to this day talking about the
270
00:13:51.440 --> 00:13:52.120
dangers of AI.
271
00:13:52.159 --> 00:13:53.320
He basically says, stop.
272
00:13:53.419 --> 00:13:57.159
Yeah. Well, now that all of my stock is vested
273
00:13:57.559 --> 00:13:59.980
and I get to keep my millions, now let's talk
274
00:14:00.000 --> 00:14:01.299
about how problematic it is.
275
00:14:01.480 --> 00:14:01.840
Yeah.
276
00:14:02.240 --> 00:14:06.480
Yeah. In April, Meta releases an open source large language
277
00:14:06.519 --> 00:14:12.120
model made by Meta AI, aka Lama. One of the
278
00:14:12.139 --> 00:14:14.879
first open source models out of the gate. And by July,
279
00:14:14.899 --> 00:14:17.779
there'll be Llama 2. And it really hits pretty hard
280
00:14:17.850 --> 00:14:19.669
because if you're going to start thinking local models, there
281
00:14:19.710 --> 00:14:22.649
it is. This puts a lot of pressure on everybody else.
282
00:14:22.669 --> 00:14:25.169
So by September, you have Amazon out there with Bedrock
283
00:14:25.230 --> 00:14:28.750
and Titan. Again, I think both guys have used that
284
00:14:28.809 --> 00:14:32.919
one too. But, you know, all of that, you recognize
285
00:14:32.960 --> 00:14:35.200
that the 23, everybody has to play, right? So we've
286
00:14:35.240 --> 00:14:39.960
got all the hyperscalers on board now and we're in motion.
287
00:14:40.340 --> 00:14:45.539
to try and grow something with all this technology. October,
288
00:14:45.610 --> 00:14:49.250
Microsoft completes the acquisition of Activision Blizzard for $ 68. 7 billion.
289
00:14:49.269 --> 00:14:51.809
It takes over a year, lots of battles with the
290
00:14:51.929 --> 00:14:54.470
FTC and so forth, and pretty much nothing has come
291
00:14:54.529 --> 00:14:57.009
of that. For the most part, somebody cashed in big,
292
00:14:57.029 --> 00:15:00.399
but goodness knows what Microsoft's strategy for gaming actually is.
293
00:15:01.559 --> 00:15:04.039
All right, now we get to the fun month in
294
00:15:04.039 --> 00:15:07.279
2023 when it comes to tech, and it's in November. Obviously,
295
00:15:07.299 --> 00:15:11.600
we get. NET Conf. with. NET 8, a long-term support
296
00:15:11.639 --> 00:15:13.480
version of. NET, a very good one too. We're a
297
00:15:13.519 --> 00:15:16.919
big push with native AOT, C Sharp 12, a lot
298
00:15:16.960 --> 00:15:19.980
of cloud-native tooling. And the first announcement of what at
299
00:15:20.019 --> 00:15:24.740
that time will be known as. NET Aspire. And our
300
00:15:24.820 --> 00:15:29.740
friend David Fowler, now distinguished engineer David Fowler, driving this,
301
00:15:30.360 --> 00:15:32.059
what we now refer to, we didn't know how to
302
00:15:32.100 --> 00:15:34.960
talk about at the time, about the scaffolding for building
303
00:15:34.980 --> 00:15:35.710
cloud-native with.
304
00:15:35.659 --> 00:15:35.840
NET.
305
00:15:35.940 --> 00:15:39.250
Of course, it'll advance a lot more. And a week
306
00:15:39.610 --> 00:15:42.870
after that event, or not even a week, the weekend
307
00:15:42.950 --> 00:15:47.970
of that event, on Friday, November 17th, the OpenAI board
308
00:15:48.509 --> 00:15:50.769
puts out a press release where they say, Sam Altman will.
309
00:15:50.649 --> 00:15:53.090
Be departing as CEO. And so began the drama.
310
00:15:53.509 --> 00:15:57.769
And Mira Muriati, the CTO, is appointed as interim CEO.
311
00:15:59.529 --> 00:16:02.549
The chairman of the board for OpenAI, a guy named
312
00:16:02.590 --> 00:16:05.509
Greg Brockman, who's also been part of the originators on this,
313
00:16:05.529 --> 00:16:08.230
he's an OpenAI president. He is removed as chairman and
314
00:16:08.309 --> 00:16:15.120
resigns in solidarity with Altman. On Saturday, by all accounts,
315
00:16:15.200 --> 00:16:18.279
all hell breaks loose. A very angry Satya Nadella who
316
00:16:18.320 --> 00:16:20.860
did not see this coming. Nobody thought to notify the
317
00:16:20.899 --> 00:16:24.909
guy who kicked $ 13 billion into your company that, hey,
318
00:16:24.950 --> 00:16:30.289
we're going to fire the CEO. This leads to on
319
00:16:30.429 --> 00:16:34.190
Sunday where the board announces a different interim CEO, Twitch
320
00:16:34.230 --> 00:16:39.200
CEO Emmett Shearer. After only two days of Marati, I
321
00:16:39.240 --> 00:16:41.220
think she sort of was backing away from all of this.
322
00:16:41.840 --> 00:16:44.159
This is the day that Satya announces that Sam Altman
323
00:16:44.179 --> 00:16:46.460
and Greg Brockman are going to join Microsoft and form
324
00:16:46.580 --> 00:16:47.799
a new AI group.
325
00:16:48.139 --> 00:16:48.600
I remember.
326
00:16:48.679 --> 00:16:51.149
Which leads to, on Monday, where 700 of 770 employees
327
00:16:51.169 --> 00:17:00.470
of OpenAI, including– One Ilya Sutskiver, who had publicly expressed
328
00:17:00.509 --> 00:17:02.740
a regret for his role in firing Sam Altman, also
329
00:17:02.769 --> 00:17:05.519
signs this letter where they say they demand the resignation
330
00:17:05.559 --> 00:17:09.059
of the board and will consider following Altman to Microsoft.
331
00:17:09.079 --> 00:17:11.839
So essentially the entire OpenAI says, we're going to go
332
00:17:11.859 --> 00:17:16.809
to Microsoft. This results in, on Tuesday, Sam Altman returning
333
00:17:16.869 --> 00:17:20.329
as CEO and the entire board being replaced by Wednesday.
334
00:17:20.390 --> 00:17:21.849
It's like a soap opera, isn't it?
335
00:17:21.970 --> 00:17:22.970
It's insane.
336
00:17:23.130 --> 00:17:23.829
It really is.
337
00:17:23.990 --> 00:17:26.930
Yeah. And then look, I think everybody knows Sam Altman's
338
00:17:26.990 --> 00:17:29.630
not a good man. Right. But boy, you sure screwed
339
00:17:29.730 --> 00:17:30.299
this up.
340
00:17:30.390 --> 00:17:30.680
Yeah.
341
00:17:30.980 --> 00:17:33.859
Like, there was a way to do this that might
342
00:17:33.880 --> 00:17:37.940
have worked. This was not that way. And fundamentally, you know,
343
00:17:38.099 --> 00:17:41.309
it cemented Sam Altman's control of the company in the process. Like,
344
00:17:41.349 --> 00:17:44.170
he ultimately benefited from this and turned OpenAI from its
345
00:17:45.220 --> 00:17:47.859
Original idea, which I don't know how good that idea
346
00:17:47.920 --> 00:17:50.319
ever was of doing AI in the open, which they
347
00:17:50.519 --> 00:17:55.119
very quickly diverted from into just another for-profit company that's
348
00:17:55.319 --> 00:17:58.359
racing to try to IPO. Little goodness knows if that's
349
00:17:58.420 --> 00:18:01.099
ever going to happen. Yeah. Last but not least, I
350
00:18:01.119 --> 00:18:04.599
think I've been mentioning quantum computing in the past few
351
00:18:04.640 --> 00:18:06.619
of these just because we had an interesting wave of
352
00:18:06.660 --> 00:18:10.829
quantum computing in the late 2010s, beginning of 2020s. I
353
00:18:10.849 --> 00:18:12.710
sort of see 2023 as sort of the end of
354
00:18:12.769 --> 00:18:14.680
the road of the race to the larger qubit at
355
00:18:14.700 --> 00:18:20.500
the time with IBM's Condor processor, a thousand qubits. Now
356
00:18:20.539 --> 00:18:22.339
we sort of have this debate about what a physical
357
00:18:22.440 --> 00:18:25.089
versus a logical qubit is actually because there's so much
358
00:18:25.269 --> 00:18:28.589
error correction that needs to happen that Under the current
359
00:18:28.630 --> 00:18:31.150
model at that time, they said, we're probably not going
360
00:18:31.170 --> 00:18:34.450
to useable work until we get into possibly millions of qubits.
361
00:18:35.009 --> 00:18:37.750
And that'll put a lot of pressure on this error
362
00:18:37.809 --> 00:18:40.839
correction problem for quantum computing, which we'll see more of
363
00:18:41.079 --> 00:18:41.920
in subsequent years.
364
00:18:42.220 --> 00:18:42.420
Yeah.
365
00:18:42.440 --> 00:18:43.059
And that's what I got.
366
00:18:43.460 --> 00:18:48.200
All right. As again, Jeremy Miller's here. Jeremy, you can
367
00:18:48.240 --> 00:18:51.329
jump in anytime you want, as you have been doing.
368
00:18:51.940 --> 00:18:54.220
But right now we're going to do better know framework.
369
00:18:54.460 --> 00:19:04.990
Awesome. Roll the music. All right, man. What is Simon
370
00:19:05.009 --> 00:19:05.769
Kropp up to?
371
00:19:06.029 --> 00:19:08.730
Yeah, I know. We should just call it Simon Kropp.
372
00:19:08.769 --> 00:19:14.539
Better know Simon Kropp. This is EF query complexity.
373
00:19:14.700 --> 00:19:15.180
What is this?
374
00:19:15.400 --> 00:19:20.549
So it detects overly complex entity framework core queries. and
375
00:19:20.609 --> 00:19:24.490
either logs them or throws. Each check has two levels.
376
00:19:25.049 --> 00:19:28.049
The level a query is logged at, which has defaults,
377
00:19:28.289 --> 00:19:33.750
and the level a query throws at, which is opt-in. So, yeah. So,
378
00:19:34.069 --> 00:19:34.309
you know.
379
00:19:34.329 --> 00:19:36.609
So this is just a, if you've written a link
380
00:19:36.650 --> 00:19:40.750
expression so complicated for EF that it's going to make
381
00:19:40.809 --> 00:19:42.690
a bad query, this will give you a heads up?
382
00:19:42.789 --> 00:19:45.630
Yeah, before calling it and hanging your database.
383
00:19:46.089 --> 00:19:46.309
Yeah.
384
00:19:47.690 --> 00:19:49.069
You might want to run it through this.
385
00:19:49.390 --> 00:19:51.599
Yeah, no, that's true. a great idea god of course
386
00:19:51.779 --> 00:19:54.180
you're so clever i know you know you know he
387
00:19:54.220 --> 00:19:56.660
got here the hard way yeah that he wrote he
388
00:19:56.680 --> 00:19:59.170
wrote a link expression that pinned the database to the
389
00:19:59.210 --> 00:20:00.950
wall for i don't know maybe a day and he's
390
00:20:00.990 --> 00:20:01.890
like hmm.
391
00:20:01.940 --> 00:20:04.460
Let's give him a little more credit. He probably inherited
392
00:20:04.500 --> 00:20:05.559
someone else's code base.
393
00:20:05.940 --> 00:20:07.000
You're probably right.
394
00:20:07.039 --> 00:20:07.359
Fair.
395
00:20:07.599 --> 00:20:09.720
You're probably exactly right. He probably didn't write the query.
396
00:20:09.799 --> 00:20:11.440
He probably didn't stop this from happening again.
397
00:20:12.039 --> 00:20:12.259
Yeah.
398
00:20:12.539 --> 00:20:15.119
Well, anyway, that's it. That's what I got. Who is
399
00:20:15.180 --> 00:20:16.299
talking to us today, Richard?
400
00:20:16.319 --> 00:20:19.539
Let's grab a comment off of show 1860, the one
401
00:20:19.559 --> 00:20:21.660
we did with one Jeremy Miller. Never heard of him.
402
00:20:21.700 --> 00:20:23.680
Talking a little bit about minimal architecture.
403
00:20:23.740 --> 00:20:24.619
Right before the Civil War.
404
00:20:24.640 --> 00:20:25.119
There we go.
405
00:20:25.180 --> 00:20:25.980
Yeah.
406
00:20:27.420 --> 00:20:28.720
Now you're in the groove, Jeremy.
407
00:20:28.769 --> 00:20:29.289
You get it.
408
00:20:30.450 --> 00:20:32.819
Imagine if we started this in the 1800s. It was like,
409
00:20:32.839 --> 00:20:34.960
I think it was like, you should go back and listen,
410
00:20:34.980 --> 00:20:37.720
but I think it was like in episode 1914. I'm like, hey,
411
00:20:37.740 --> 00:20:40.299
start a quote World War I. Right. The good news
412
00:20:40.400 --> 00:20:43.920
is it's almost over. A couple more shows. This comment
413
00:20:43.940 --> 00:20:46.339
comes from Trevor. He said, I love this discussion. Enjoyed
414
00:20:46.359 --> 00:20:50.880
the comments on microservices versus monoliths. I got pushed heavily
415
00:20:50.900 --> 00:20:53.400
into microservices approach with a product we had built. and
416
00:20:53.420 --> 00:20:56.059
we're re-architecting it to microservices, and it was the worst
417
00:20:56.200 --> 00:21:00.119
mistake ever. Things just became more complicated. It was harder
418
00:21:00.140 --> 00:21:03.160
to maintain. It added a lot of latency and security issues,
419
00:21:03.200 --> 00:21:06.759
and the complexity was just not worth it. So I
420
00:21:06.779 --> 00:21:13.660
came up with a new acronym, appropriately side service, or ASS.
421
00:21:13.680 --> 00:21:16.619
I 100% believe in services, separation of concerns, and clean architectures,
422
00:21:16.660 --> 00:21:18.690
but the approach must be appropriate to the complexity of
423
00:21:18.710 --> 00:21:23.230
the solution and the size of the team. It makes
424
00:21:23.349 --> 00:21:25.289
no sense to have 100 separate services with a team
425
00:21:25.329 --> 00:21:27.470
of 10 people. And then it also makes no sense
426
00:21:27.490 --> 00:21:29.700
to have one massive single deployment with a code base
427
00:21:29.799 --> 00:21:32.480
for a team of 250 people. The services need to
428
00:21:32.539 --> 00:21:35.240
work with the cognitive load and be appropriate to the
429
00:21:35.279 --> 00:21:38.799
organization and team structures. Love any discussion. But on this
430
00:21:38.940 --> 00:21:41.869
one point, stop making the CTO out to be the
431
00:21:41.930 --> 00:21:51.309
bad guy. Love from Trevor, CTO. Maybe we were teasing
432
00:21:51.450 --> 00:21:55.930
on the non-technical CTO. Clearly, Trevor's not that guy. He's
433
00:21:55.970 --> 00:21:58.269
the one who's actually trying to get things right and
434
00:21:58.609 --> 00:22:00.210
be part of the team and so forth. So, sorry
435
00:22:00.250 --> 00:22:02.349
about teasing you. Too mean to you there, Trevor. But
436
00:22:02.789 --> 00:22:06.430
we're with you. Appropriate size service is correct. So, thank
437
00:22:06.450 --> 00:22:08.319
you so much for your comments. And CopyMuse2CodeBuy is on
438
00:22:08.339 --> 00:22:09.500
its way to you. And if you'd like a copy
439
00:22:09.519 --> 00:22:12.960
of Muse2CodeBuy, write a comment on the website at. netrocks. com
440
00:22:12.220 --> 00:22:13.900
or on the Facebooks. We publish every show there. And
441
00:22:13.920 --> 00:22:15.519
if you comment there and I read it in the show,
442
00:22:15.539 --> 00:22:16.579
we'll send you a copy of Muse2CodeBuy.
443
00:22:16.940 --> 00:22:18.640
And if you want to just get Music to Code By,
444
00:22:18.700 --> 00:22:21.359
which will help you stay in a state of flow
445
00:22:21.680 --> 00:22:24.819
to be calm and all that stuff while you're writing code,
446
00:22:25.500 --> 00:22:31.349
go to musictocodeby.net and just get it. MP3s, waves, and
447
00:22:31.509 --> 00:22:36.730
FLAC formats. All right. And that voice that you heard before,
448
00:22:36.789 --> 00:22:40.460
that third voice, was that of Jeremy Miller. He's been on.
449
00:22:40.390 --> 00:22:43.390
NET Rocks many times. He started his career as a
450
00:22:43.490 --> 00:22:47.799
quote-unquote real engineer. but wandered into software because that looked
451
00:22:47.839 --> 00:22:51.240
like more fun. Since then, Jeremy has worked in and
452
00:22:51.319 --> 00:22:56.829
led software development teams in the computer manufacturing industry, finance, insurance, healthcare,
453
00:22:56.869 --> 00:23:00.910
and banking industries. Lately, Jeremy has been focused on leading
454
00:23:01.009 --> 00:23:06.650
software architecture teams and helping mentor other software architects. Having
455
00:23:06.670 --> 00:23:10.650
had roles both as an in-house software architect and as
456
00:23:10.690 --> 00:23:13.309
a software consultant, Jeremy has a great deal of insight
457
00:23:13.329 --> 00:23:17.349
into the challenges that confront companies developing and maintaining enterprise
458
00:23:17.369 --> 00:23:20.549
systems over time. He's well known for his open source
459
00:23:20.569 --> 00:23:24.750
software tools, starting with StructureMap and continuing today to Martin
460
00:23:24.849 --> 00:23:28.490
and Wolverine. Jeremy is also a frequent author and technical
461
00:23:28.509 --> 00:23:32.750
speaker at software conferences and can be found at jeremydmiller.com.
462
00:23:32.930 --> 00:23:33.349
Welcome back.
463
00:23:33.450 --> 00:23:33.930
Hey, all.
464
00:23:34.089 --> 00:23:35.630
Thanks, guys. Thanks for having me on again.
465
00:23:35.869 --> 00:23:38.150
Yeah, great to have you back. Great to have you back.
466
00:23:38.299 --> 00:23:39.450
There was a comment on another show that I was
467
00:23:39.490 --> 00:23:44.500
very tempted to read where it mentioned alt.net. Just a
468
00:23:44.539 --> 00:23:47.109
callback to The first show we did with you, which
469
00:23:47.130 --> 00:23:50.430
was in 2008, was the Alt.net show.
470
00:23:50.569 --> 00:23:50.769
Yeah.
471
00:23:50.950 --> 00:23:52.170
It was a different day and time.
472
00:23:52.289 --> 00:23:52.690
Certainly.
473
00:23:52.930 --> 00:23:55.950
So if we're ready to be, let's just start with
474
00:23:56.009 --> 00:24:00.069
a get off my lawn kind of moment. One thing
475
00:24:00.170 --> 00:24:05.009
I've thought pretty recently. So after Twitter became, you know,
476
00:24:05.029 --> 00:24:09.730
the Nazi infested Star Wars, the Star Wars cantina theme
477
00:24:09.779 --> 00:24:10.279
it is now.
478
00:24:10.299 --> 00:24:10.859
Yeah.
479
00:24:14.450 --> 00:24:17.309
You know, the technical conversations kind of went everywhere, but
480
00:24:17.349 --> 00:24:19.710
it seems to be mostly on LinkedIn, or at least
481
00:24:19.950 --> 00:24:24.180
as far as I can tell, weirdly, right? One thing
482
00:24:24.319 --> 00:24:26.640
I've noticed, I think it's a gripe, and maybe it's
483
00:24:26.660 --> 00:24:30.339
just the algorithm. What I see are the. NET content creators.
484
00:24:31.559 --> 00:24:34.759
The people are the. NET content creators that are the
485
00:24:34.799 --> 00:24:37.000
same age that I was back in the all.
486
00:24:37.160 --> 00:24:37.619
NET days.
487
00:24:37.640 --> 00:24:41.750
We were big bloggers on CodeBetter. It is very narrowly
488
00:24:41.869 --> 00:24:47.309
focused on a handful of topics. It's very narrowly mainstream.
489
00:24:47.349 --> 00:24:50.869
They're not expanding the scope of software development. They aren't
490
00:24:50.990 --> 00:24:54.630
trying to innovate. It's here's how to use EF Core
491
00:24:54.789 --> 00:24:59.230
to do modular monoliths. So interesting. We were better in
492
00:24:59.269 --> 00:25:02.670
the all.net days than the content creators are now. Just
493
00:25:02.690 --> 00:25:05.109
a little bit of some trivia first. You know, you
494
00:25:05.130 --> 00:25:07.910
call that Simon Kropp. I do want to call him out.
495
00:25:08.329 --> 00:25:13.160
If you've ever looked at any critter stack related documentation website,
496
00:25:13.579 --> 00:25:16.500
you'll see his works. We use markdown snippets. That's a
497
00:25:16.500 --> 00:25:19.539
really valuable way to create living technical documentation.
498
00:25:19.779 --> 00:25:19.960
Right.
499
00:25:20.799 --> 00:25:24.269
And then just on your theme, the history theme, you know,
500
00:25:24.289 --> 00:25:28.569
you were talking about 2023. We missed a couple really
501
00:25:28.609 --> 00:25:35.559
important things. I founded Jasper FX in June of 2023.
502
00:25:35.559 --> 00:25:37.880
Went solo for the first time at the tender age
503
00:25:37.920 --> 00:25:39.960
of 49.
504
00:25:40.509 --> 00:25:41.130
Never too late.
505
00:25:42.309 --> 00:25:44.750
Well, and that's the lesson I think I want. I
506
00:25:44.789 --> 00:25:46.829
want everybody to learn, but also do it while you're younger.
507
00:25:47.289 --> 00:25:49.750
And we'll bring 1.0 in 2023. Yeah.
508
00:25:49.930 --> 00:25:55.160
Yeah. Awesome. Well, congratulations. It's been a fun few years
509
00:25:55.200 --> 00:25:57.059
and we've done some interesting shows around it just because,
510
00:25:57.099 --> 00:26:00.740
you know, we've really built out a lot of tools
511
00:26:00.819 --> 00:26:03.160
to make it easier for us. And if Simon likes them,
512
00:26:03.630 --> 00:26:04.869
That's a heck of a compliment, man.
513
00:26:05.130 --> 00:26:07.950
I'll take it. I'll put words in his mouth. Simon's
514
00:26:07.990 --> 00:26:09.710
also a contributor to the Critter stack.
515
00:26:09.829 --> 00:26:11.160
That's awesome. Yeah, I love it.
516
00:26:11.410 --> 00:26:12.789
So new Critters?
517
00:26:13.509 --> 00:26:17.230
Yeah. Again, I mean, AI is going to drop in
518
00:26:17.269 --> 00:26:20.970
here sooner or later. AI has allowed us to go
519
00:26:20.990 --> 00:26:23.130
a lot faster to deal with a lot of ideas
520
00:26:23.170 --> 00:26:25.170
that have been out there for a long time. Interesting.
521
00:26:25.190 --> 00:26:25.890
And that's real.
522
00:26:26.730 --> 00:26:30.359
So I'm still going to say Martin, based on Postgres,
523
00:26:31.039 --> 00:26:36.720
is still the most robust Critter. widely used event sourcing
524
00:26:36.980 --> 00:26:37.980
solution in all of.
525
00:26:38.109 --> 00:26:38.369
NET.
526
00:26:40.549 --> 00:26:43.490
Still going to say it's the most capable. But we've
527
00:26:43.529 --> 00:26:46.150
been told for over a decade that, hey, you know what?
528
00:26:46.170 --> 00:26:48.759
It would be much more successful if it was based
529
00:26:48.819 --> 00:26:52.700
on SQL Server instead. And I've always said, I don't
530
00:26:52.740 --> 00:26:55.720
have time. That's too hard. And SQL Server doesn't have
531
00:26:56.430 --> 00:26:58.710
SQL Server is way behind in JSON support.
532
00:26:58.970 --> 00:26:59.450
Sure.
533
00:26:59.609 --> 00:27:02.289
Now we have SQL Server 2025. It has a native
534
00:27:02.329 --> 00:27:06.339
JSON type. It has its own capability to do vector support.
535
00:27:06.380 --> 00:27:08.960
It has a lot of the same capabilities that Postgres has.
536
00:27:09.500 --> 00:27:11.160
So now we have a tool called Polecat.
537
00:27:11.240 --> 00:27:11.859
Polecat.
538
00:27:11.880 --> 00:27:18.200
That's another critter that has probably 80% to 90% of
539
00:27:18.259 --> 00:27:21.960
the functionality of Martin and at this point probably shares
540
00:27:21.980 --> 00:27:24.710
a lot of the same a lot of the same
541
00:27:24.750 --> 00:27:29.759
infrastructure and, um, compliance tests of behavior. So it gives
542
00:27:29.779 --> 00:27:32.859
you the same kind of document database capability right on
543
00:27:32.900 --> 00:27:36.299
top of SQL server. So you guys can stop wasting
544
00:27:36.359 --> 00:27:39.579
so much time with EF core mapping and, you know,
545
00:27:39.680 --> 00:27:43.650
to the crazy EF core link query is too complex.
546
00:27:44.329 --> 00:27:47.509
Using event sourcing with projections, you can project to exactly
547
00:27:47.529 --> 00:27:52.009
the view you want. You can sidestep silly queries, just saying, um,
548
00:27:53.660 --> 00:27:57.349
So we have Polecat on top of SQL Server, SQL
549
00:27:57.390 --> 00:28:01.130
Server 2025. And just a little more recently, we've added
550
00:28:01.170 --> 00:28:05.109
another library called Fisher that gives you the same functionality
551
00:28:05.250 --> 00:28:07.059
on top of SQLite.
552
00:28:07.259 --> 00:28:08.279
Is that like FisherCat?
553
00:28:08.440 --> 00:28:09.319
Yeah.
554
00:28:09.880 --> 00:28:10.099
Yeah.
555
00:28:10.160 --> 00:28:12.440
There's a lot of mustelids in this conversation, let me
556
00:28:12.460 --> 00:28:12.759
tell you.
557
00:28:12.940 --> 00:28:15.700
Exactly. And that's mostly the theme.
558
00:28:16.299 --> 00:28:17.900
Yes.
559
00:28:17.940 --> 00:28:20.349
When we first moved into our house, we were told
560
00:28:20.410 --> 00:28:22.609
that the woods out back were full of FisherCats.
561
00:28:23.069 --> 00:28:23.230
Yeah.
562
00:28:23.450 --> 00:28:26.269
Oh, that's awesome. I've never seen one in real life.
563
00:28:26.329 --> 00:28:27.910
The dangerous little buggers. Of course.
564
00:28:28.190 --> 00:28:30.190
That was the day my children vowed never to go
565
00:28:30.329 --> 00:28:31.309
for a walk in the woods.
566
00:28:32.309 --> 00:28:37.130
So, they're supposed to look just like Martins, but bigger, right? Mm-hmm. Yeah. Cool.
567
00:28:37.150 --> 00:28:38.930
And they're hyper-aggressive. They are.
568
00:28:38.950 --> 00:28:39.950
Vicious.
569
00:28:40.289 --> 00:28:42.690
We've got a mink hanging around here right now. And
570
00:28:43.029 --> 00:28:44.990
he scares me more than the otters that are five
571
00:28:45.039 --> 00:28:51.460
times his size. They'll give you. They'll go. They're looking
572
00:28:51.480 --> 00:28:51.940
for trouble.
573
00:28:52.380 --> 00:28:52.500
Huh.
574
00:28:52.880 --> 00:28:53.920
All right. So Fisher.
575
00:28:54.460 --> 00:28:55.900
Sorry, guys. There's actually more.
576
00:28:56.319 --> 00:28:59.589
Oh, yeah. Okay. So Fisher is SQLite.
577
00:28:59.890 --> 00:29:00.410
SQLite.
578
00:29:00.430 --> 00:29:02.609
So you started on Postgres. You've done SQL Server 2025
579
00:29:02.609 --> 00:29:06.750
because of the JSON. type. And now you are also
580
00:29:06.789 --> 00:29:09.970
got it over to SQL light as well, which is cool.
581
00:29:10.150 --> 00:29:12.339
So that is also helping us with some of our
582
00:29:12.380 --> 00:29:15.000
own products. We have a commercial tool called critter watch,
583
00:29:15.640 --> 00:29:20.160
you know, that's the inevitable management console. Um, but it's
584
00:29:20.200 --> 00:29:25.420
also an MCP hub that connects connected to your AI
585
00:29:25.500 --> 00:29:28.420
tools and it will give you complete visibility into a
586
00:29:29.160 --> 00:29:32.319
static view of your application and a dynamic view as well.
587
00:29:33.279 --> 00:29:36.150
It'll give you access to alerts. It'll even call out
588
00:29:36.210 --> 00:29:41.200
to LLMs to maybe be able to take proactively take
589
00:29:41.279 --> 00:29:46.559
amelioration act actions, replay things off, off of dead letter cues.
590
00:29:46.640 --> 00:29:48.950
Maybe it can be smart enough to know, Hey, I
591
00:29:48.990 --> 00:29:52.589
need to go reboot the server, something like that potential.
592
00:29:52.750 --> 00:29:52.990
Wow.
593
00:29:53.250 --> 00:29:55.880
And then, Sorry to keep overloading you. We have a
594
00:29:55.980 --> 00:30:01.319
new tool that's not quite 1.0 called Bobcat. Bobcat? It's
595
00:30:01.339 --> 00:30:06.000
been hanging around long enough that it predates the Critterstack naming.
596
00:30:06.019 --> 00:30:09.079
I always thought they were cool, and I've got a
597
00:30:09.079 --> 00:30:12.380
rural background, so Bobcat means a steer skid to me.
598
00:30:12.769 --> 00:30:15.190
That's just kind of a thing you use to do
599
00:30:15.289 --> 00:30:19.490
crazy hard jobs. So Bobcat is going to be our
600
00:30:19.549 --> 00:30:25.420
tool for spec-driven development and integration testing. has a Gherkin function,
601
00:30:25.559 --> 00:30:27.380
but I mean, I don't know if anybody's going to
602
00:30:27.420 --> 00:30:28.960
care about that. Yeah.
603
00:30:29.160 --> 00:30:30.960
And it's a feline. So, you know, you're cheating.
604
00:30:32.440 --> 00:30:35.460
Theoretically our neighbor says that there's a Bobcat that comes
605
00:30:35.529 --> 00:30:38.140
out in our neighbor, our, our yard at night, but
606
00:30:38.180 --> 00:30:38.900
I've never seen. Yeah.
607
00:30:39.269 --> 00:30:40.450
They're yeah. They're ghosts.
608
00:30:40.730 --> 00:30:42.230
We're getting Bobcats in Connecticut.
609
00:30:42.329 --> 00:30:42.549
Wow.
610
00:30:42.650 --> 00:30:43.170
Yeah.
611
00:30:43.190 --> 00:30:45.190
They came back to where they came back to Missouri
612
00:30:45.230 --> 00:30:48.690
where I grew up because the, the wild Turkey population
613
00:30:48.750 --> 00:30:51.190
finally recovered from the great depression. Yeah. Yeah.
614
00:30:52.880 --> 00:30:56.190
I think that's happening in general. Generally, we hunt less.
615
00:30:56.390 --> 00:30:59.230
Our otter population is way up. Having to mink around
616
00:30:59.250 --> 00:31:03.170
is crazy. Definitely, the birds, there's more of everything. Bit
617
00:31:03.190 --> 00:31:06.160
by bit, we're going to have more encounters.
618
00:31:06.339 --> 00:31:10.500
My late mother is probably solely responsible for the wild
619
00:31:10.619 --> 00:31:14.380
turkey population of Groton, Connecticut skyrocketing.
620
00:31:14.480 --> 00:31:15.269
She fed them all the time.
621
00:31:15.569 --> 00:31:19.470
Because she fed them corn, you know, cracked corn every
622
00:31:19.519 --> 00:31:20.799
day along with the deer.
623
00:31:21.099 --> 00:31:21.480
Oh, man.
624
00:31:21.680 --> 00:31:21.839
Nice.
625
00:31:22.140 --> 00:31:24.480
And I always wanted to taste one that had been
626
00:31:24.539 --> 00:31:28.779
living on cracked corn, you know, for generations. But they're
627
00:31:28.799 --> 00:31:31.640
still wild turkeys. But if the only food they eat
628
00:31:31.720 --> 00:31:35.009
is her cracked corn, they must be delicious, you know? Maybe.
629
00:31:35.180 --> 00:31:35.440
Maybe.
630
00:31:35.990 --> 00:31:38.910
Anyway, she never let me kill one. So I didn't.
631
00:31:39.289 --> 00:31:39.829
And now they're gone.
632
00:31:41.039 --> 00:31:43.970
She stopped. She's gone. So they're gone, right? There's nobody
633
00:31:44.069 --> 00:31:44.630
feeding them anymore.
634
00:31:44.670 --> 00:31:45.630
She's gone. They're gone.
635
00:31:45.869 --> 00:31:46.109
Anyway.
636
00:31:46.309 --> 00:31:46.630
All right.
637
00:31:46.650 --> 00:31:46.980
All right.
638
00:31:47.000 --> 00:31:48.359
Well, this seems like a good time for a break.
639
00:31:48.440 --> 00:31:50.980
So we'll be right back after these very important messages.
640
00:31:51.039 --> 00:31:56.880
Don't go away. And we're back. It's on the rocks.
641
00:31:56.920 --> 00:31:59.500
I'm Richard Campbell. Let's call Franklin. Yes, I am. Talking
642
00:31:59.519 --> 00:32:03.339
to our friend Jeremy Miller about the expanded critter stack.
643
00:32:03.380 --> 00:32:06.440
So I could see the AI tools allowed to accelerate. Although,
644
00:32:06.619 --> 00:32:09.549
I mean, Polkat and Fisher are adjacent to Martin in
645
00:32:09.569 --> 00:32:12.329
that sense. So they are some ways the tool will
646
00:32:12.349 --> 00:32:13.849
be really good at, you know, how do I do
647
00:32:13.890 --> 00:32:14.710
this in this other stack?
648
00:32:14.829 --> 00:32:16.890
They are. But to get there and to get there
649
00:32:16.990 --> 00:32:20.309
and to make it sustainable is, We've had to do
650
00:32:20.390 --> 00:32:23.329
a lot of work over time to lift a lot
651
00:32:23.369 --> 00:32:29.230
more common functionality out, lift reusable compliance tests to get
652
00:32:29.279 --> 00:32:30.119
a lot of behavior.
653
00:32:31.319 --> 00:32:32.710
You don't want to do that over and over again.
654
00:32:32.779 --> 00:32:35.099
Yeah. So, you know, we can also dive into a
655
00:32:35.119 --> 00:32:37.099
little bit of a theme of you aren't going to
656
00:32:37.140 --> 00:32:40.119
be able to just vibe code something like a polecat
657
00:32:40.220 --> 00:32:41.640
over a weekend.
658
00:32:41.900 --> 00:32:43.839
Well, that's a classic, isn't it? Right. Like, why do
659
00:32:43.920 --> 00:32:46.599
I buy a framework and I just make my own?
660
00:32:46.839 --> 00:32:48.359
Yeah, that's delusional.
661
00:32:48.970 --> 00:32:49.890
Um, sorry.
662
00:32:50.329 --> 00:32:50.950
I agree.
663
00:32:51.710 --> 00:32:55.059
Sorry. Coming from, I support one that's sort of couple
664
00:32:55.400 --> 00:32:57.480
that are widely used by a lot of different people,
665
00:32:58.079 --> 00:33:00.819
even with the AI stuff. And we're all using AI
666
00:33:00.880 --> 00:33:03.519
tools to do the fixes. I use it to do
667
00:33:03.559 --> 00:33:07.750
a lot of exploratory testing. There's just so much input
668
00:33:07.789 --> 00:33:10.890
that comes from people using it in real life. It's,
669
00:33:11.369 --> 00:33:15.799
it's all kind of, and it's the, It's the upset conditions.
670
00:33:16.099 --> 00:33:21.990
Kubernetes shuts down a node suddenly. Your DBA suddenly kill
671
00:33:22.029 --> 00:33:25.210
a database late at night and it will actually skew
672
00:33:25.710 --> 00:33:29.069
Postgres sequence values if you're not careful. We learned that
673
00:33:29.109 --> 00:33:33.180
one the hard way. Being able to have a system
674
00:33:33.220 --> 00:33:38.940
that's very highly in flight and then try to take
675
00:33:38.980 --> 00:33:42.079
it down gracefully without losing work as you go. That's
676
00:33:42.119 --> 00:33:46.460
actually really hard. Yeah. And the only way you get
677
00:33:46.559 --> 00:33:48.720
to a tool like a Wolverine or a Martin and
678
00:33:48.759 --> 00:33:51.079
make it good is you gotta have a lot of
679
00:33:51.119 --> 00:33:53.579
people beat up on it in real life and then,
680
00:33:54.259 --> 00:33:57.009
then iterate and improve. You're not just going to get
681
00:33:57.049 --> 00:33:59.049
that with a single time vibe coding pass.
682
00:34:00.029 --> 00:34:02.930
Have you paid any attention to the use what works group?
683
00:34:03.309 --> 00:34:04.589
That's yeah.
684
00:34:05.549 --> 00:34:09.369
A little bit. I'm going to admit that I've been
685
00:34:09.409 --> 00:34:12.670
a tiny bit cynical about it because it looks like
686
00:34:12.809 --> 00:34:14.929
the conference drinking club.
687
00:34:17.199 --> 00:34:17.960
You're not wrong.
688
00:34:19.820 --> 00:34:23.139
I appreciate what they're trying to do, but I'm not
689
00:34:23.179 --> 00:34:23.739
involved with it.
690
00:34:24.639 --> 00:34:29.159
The message is essentially the same. This idea that your
691
00:34:29.179 --> 00:34:32.579
job wasn't to build a framework. Your job was to
692
00:34:32.960 --> 00:34:36.500
provide value to your customers. And these frameworks facilitate that.
693
00:34:36.639 --> 00:34:37.320
Use what works.
694
00:34:37.579 --> 00:34:40.000
Yes. So one of the things I think I would
695
00:34:40.079 --> 00:34:42.369
argue or what I do argue to people of why
696
00:34:42.429 --> 00:34:45.309
you should still use something off the shelf. Like you
697
00:34:45.349 --> 00:34:49.190
look on these LinkedIn conversations, they'll say, oh, just let
698
00:34:49.230 --> 00:34:54.550
AI build you an outbox. something that's widely used is curated.
699
00:34:55.150 --> 00:34:58.030
Somebody is paying attention to it, reviewing the pull requests
700
00:34:58.070 --> 00:35:02.699
coming in, driving AI, watching the quality, the problems that
701
00:35:02.739 --> 00:35:08.019
people are having, and evolving it over time. You're just
702
00:35:08.039 --> 00:35:10.300
not going to build something over a weekend, no matter
703
00:35:10.340 --> 00:35:10.659
how good.
704
00:35:10.920 --> 00:35:12.900
I wonder if this is even a temporary concept now
705
00:35:12.920 --> 00:35:15.409
that we're starting to actually pay for tokens. It's like,
706
00:35:15.570 --> 00:35:16.949
it ain't worth the tokens.
707
00:35:17.750 --> 00:35:20.090
It's probably valuable in a way that it makes it
708
00:35:20.150 --> 00:35:21.369
easy to quantify efforts.
709
00:35:21.750 --> 00:35:22.429
Yeah. Yeah.
710
00:35:22.760 --> 00:35:25.480
Just like, look, spend the tokens on the value that
711
00:35:25.780 --> 00:35:29.300
you really bring to the customer. Buying a framework at
712
00:35:29.340 --> 00:35:31.179
a fixed price is a heck of a lot more
713
00:35:31.260 --> 00:35:33.360
sensible where you at least know what it's going to
714
00:35:33.400 --> 00:35:35.510
cost and that somebody else is paying attention to it.
715
00:35:35.539 --> 00:35:37.059
You don't have to own that code base and you
716
00:35:37.079 --> 00:35:39.519
don't have to spend tokens on it either. All right.
717
00:35:40.079 --> 00:35:40.420
Awesome.
718
00:35:40.480 --> 00:35:44.250
So, I mean, a few new products, but CQRS is
719
00:35:44.269 --> 00:35:46.909
sort of CQRS. How do you evolve event sourcing at
720
00:35:46.929 --> 00:35:49.429
this point? What's changing in this world?
721
00:35:49.840 --> 00:35:52.780
Oh, quite a bit. I know you've had some recent hosts.
722
00:35:54.139 --> 00:35:56.739
So the last couple of years, last couple of years,
723
00:35:56.760 --> 00:36:00.050
there's been a trend. I don't entirely buy into it,
724
00:36:00.119 --> 00:36:04.889
but there is the idea of dynamic consistency boundaries where
725
00:36:04.929 --> 00:36:07.570
you stop. I don't know. Forgive me if you guys
726
00:36:07.590 --> 00:36:09.289
have already had somebody talk about it on the show.
727
00:36:10.389 --> 00:36:15.269
But breaking away from the model of strictly tracking events
728
00:36:15.349 --> 00:36:18.139
by event streams instead of doing it. really doing things
729
00:36:18.179 --> 00:36:18.980
more by tagging.
730
00:36:19.199 --> 00:36:19.420
Yeah.
731
00:36:19.800 --> 00:36:24.199
Um, where an event could, you know, the, the classic
732
00:36:24.260 --> 00:36:26.940
example is you have a classroom, you have events that
733
00:36:26.960 --> 00:36:30.059
apply to both the student and the classroom and maybe
734
00:36:30.099 --> 00:36:33.980
the instructor, uh, with the theory that this makes it easier.
735
00:36:34.460 --> 00:36:37.239
This makes it easier for you to be softer in
736
00:36:37.460 --> 00:36:42.960
designing your, um, stream boundaries. Um, If you'll let me
737
00:36:43.000 --> 00:36:45.539
be snarky for a second, I think this is partially
738
00:36:45.639 --> 00:36:49.269
driven by the weaknesses of some of the commercial event
739
00:36:49.289 --> 00:36:53.019
sourcing tools that can't do strong consistency or between event streams.
740
00:36:54.530 --> 00:36:58.530
But even without that, people think that makes modeling easier.
741
00:36:59.269 --> 00:37:03.880
That's trend number one. The biggest trend that's taking up
742
00:37:03.889 --> 00:37:07.460
a lot of my time right now is, again, it's
743
00:37:07.500 --> 00:37:11.880
more AI driven, but people getting very seriously about event
744
00:37:11.920 --> 00:37:16.369
modeling and honestly, for us old guys, trying to bring
745
00:37:16.590 --> 00:37:20.489
the old model-driven development idea that never worked, trying to
746
00:37:20.530 --> 00:37:24.610
bring that into the modern world with event modeling, where
747
00:37:24.849 --> 00:37:31.090
you build models, maybe you complement or supplement that with
748
00:37:31.239 --> 00:37:37.219
kind of BDD-style specifications, and then AI-driven tools and scaffolding
749
00:37:37.739 --> 00:37:42.449
builds you an application or constantly evolves your application based
750
00:37:42.469 --> 00:37:46.610
on almost a two-way mapping between the event model of
751
00:37:46.750 --> 00:37:49.050
this is what the application is. These are the slices.
752
00:37:49.110 --> 00:37:52.250
These are the events. These are commands. Generate me code
753
00:37:52.349 --> 00:37:56.010
from this and also generate code based off of BDD
754
00:37:56.050 --> 00:37:59.559
style specs. So those are the two big trends I
755
00:37:59.579 --> 00:38:01.539
see or things that are causing me to take a
756
00:38:01.559 --> 00:38:04.460
lot of time. And then all the old challenges of
757
00:38:04.579 --> 00:38:09.949
concurrency and scaling, those are all still real. And we're
758
00:38:10.150 --> 00:38:11.949
still working on new solutions for those all.
759
00:38:11.969 --> 00:38:13.449
I mean, I don't have a big problem with event
760
00:38:13.489 --> 00:38:16.650
modeling because you do need to think through the event flow.
761
00:38:17.269 --> 00:38:19.929
I think it almost feels like they're going too far
762
00:38:19.989 --> 00:38:22.530
down the path. We had Adam on a while back
763
00:38:22.699 --> 00:38:25.920
talking about the event sourcing. And it was always that
764
00:38:25.960 --> 00:38:28.559
question of like, how far do you go with this model?
765
00:38:29.679 --> 00:38:32.099
It's not the whole application. It's just one part of
766
00:38:32.820 --> 00:38:34.889
the flow of data and how you want to manage it.
767
00:38:35.170 --> 00:38:39.829
So everybody is the hero of their own story, right?
768
00:38:40.210 --> 00:38:42.349
If you talk to a tester, they think the most
769
00:38:42.409 --> 00:38:45.650
important thing is getting testing. Well, if you talk to
770
00:38:45.670 --> 00:38:49.230
a business analyst, it's getting the requirements coders, you know,
771
00:38:49.269 --> 00:38:56.030
obviously it's the code. Um, they've been modeling people, obviously their,
772
00:38:56.050 --> 00:39:01.210
their analysis work is key. Um, I think my take
773
00:39:01.429 --> 00:39:04.170
is it's definitely valuable. I hear from our own users
774
00:39:04.210 --> 00:39:07.320
that they think it's valuable. I think even though that's
775
00:39:07.360 --> 00:39:10.340
exactly what I'm working on today is the scaffolding from
776
00:39:10.360 --> 00:39:12.539
event models, I think that it does a lot of
777
00:39:12.559 --> 00:39:14.679
the easy work for you, and there's still a lot
778
00:39:14.699 --> 00:39:17.179
of technical challenges after the event modeling.
779
00:39:17.260 --> 00:39:17.480
Sure.
780
00:39:18.099 --> 00:39:20.519
And I think the event modeling is maybe a little
781
00:39:20.539 --> 00:39:22.690
bit oversold by some of its proponents.
782
00:39:23.750 --> 00:39:27.210
Yeah, and one could argue that for architecture every time too, right?
783
00:39:27.289 --> 00:39:31.320
It's like every one of these all of who was it?
784
00:39:31.340 --> 00:39:33.579
Was it Eisenhower who said, you know, the plan won't
785
00:39:33.619 --> 00:39:36.329
survive content to the enemy, but the planning was worth it.
786
00:39:36.760 --> 00:39:38.019
So it's not a bad thing.
787
00:39:38.079 --> 00:39:42.099
Yeah. You've seen, and you've seen that for, for younger folks,
788
00:39:42.699 --> 00:39:44.619
we used to quote that over and over again in
789
00:39:44.679 --> 00:39:47.269
the extreme programming, early agile days.
790
00:39:47.349 --> 00:39:47.570
Right.
791
00:39:47.690 --> 00:39:47.889
Right.
792
00:39:48.230 --> 00:39:50.710
Yeah. It's good to make a plan. It's also good
793
00:39:50.750 --> 00:39:55.150
to let that plan glow. It's contact with reality. Like
794
00:39:55.170 --> 00:39:57.250
you work through an event model and then real data
795
00:39:57.269 --> 00:39:59.469
starts to flow and you run into some issues and
796
00:39:59.510 --> 00:40:00.449
you have to change.
797
00:40:00.570 --> 00:40:00.820
Yes.
798
00:40:01.489 --> 00:40:05.019
Well, and of course I'm, I'm a history nerd. So, um,
799
00:40:05.159 --> 00:40:08.880
just happened to be listening to a podcast on the
800
00:40:08.900 --> 00:40:11.320
day for as horrible as that was, but how, um,
801
00:40:11.760 --> 00:40:16.840
how U.S. and British destroyers had to deviate from the
802
00:40:16.940 --> 00:40:20.239
plan quite a bit when all the communication broke down
803
00:40:20.300 --> 00:40:21.179
on the day of the landing.
804
00:40:21.219 --> 00:40:24.010
Right. And find a way to still be effective.
805
00:40:24.349 --> 00:40:27.889
There was decoys and stuff too, right? Wasn't there like
806
00:40:27.929 --> 00:40:31.829
some fake spy stuff that was going on that let
807
00:40:31.909 --> 00:40:32.809
the Germans believe?
808
00:40:32.929 --> 00:40:36.309
There's one famous story of U.S. Rangers have to do
809
00:40:36.329 --> 00:40:39.550
a crazy heroic assault up a cliff And when they
810
00:40:39.590 --> 00:40:43.789
got there, the guns were telephone poles.
811
00:40:44.090 --> 00:40:45.010
They were decoys.
812
00:40:46.269 --> 00:40:48.250
And there was, like I was about to say, there
813
00:40:48.269 --> 00:40:50.550
was some spy stuff that was going on that made
814
00:40:50.590 --> 00:40:52.530
the Germans think that it was happening at a completely
815
00:40:52.570 --> 00:40:53.150
different place.
816
00:40:53.409 --> 00:40:57.559
Oh, yeah. We set up a whole fake army around
817
00:40:57.659 --> 00:40:59.840
that to make them think we were trying to land
818
00:40:59.880 --> 00:41:00.400
somewhere else.
819
00:41:00.480 --> 00:41:00.659
Yeah.
820
00:41:01.019 --> 00:41:02.039
Yeah, as one does.
821
00:41:02.059 --> 00:41:04.480
I wonder if those techniques could still be used. I
822
00:41:04.519 --> 00:41:04.880
doubt it.
823
00:41:04.900 --> 00:41:05.920
I don't know.
824
00:41:06.340 --> 00:41:08.949
There's funny things going on in the Ukraine these days.
825
00:41:09.630 --> 00:41:12.110
With inflatable tanks and all kinds of nutty stuff.
826
00:41:12.179 --> 00:41:12.780
The decoys.
827
00:41:12.900 --> 00:41:13.139
Yeah.
828
00:41:13.179 --> 00:41:14.079
The decoys for drones.
829
00:41:14.539 --> 00:41:15.599
Decoys for drones.
830
00:41:15.619 --> 00:41:18.219
During World War II, there was also a fake Paris
831
00:41:18.719 --> 00:41:21.699
set up somewhere with an Eiffel Tower and everything to
832
00:41:21.739 --> 00:41:22.860
confuse the pilots.
833
00:41:23.420 --> 00:41:24.440
Oh, I didn't know about that.
834
00:41:24.460 --> 00:41:29.199
Oh, yeah. That was a classic thing. Anyway, we digress.
835
00:41:29.559 --> 00:41:32.210
Yeah, we do. But that's not a bad thing, too.
836
00:41:32.230 --> 00:41:37.269
It's interesting to explore all the ways that you actually
837
00:41:37.289 --> 00:41:39.510
have to build the software to You're going to bump
838
00:41:39.550 --> 00:41:41.750
into issues. I guess it's always a debate about how
839
00:41:41.789 --> 00:41:43.630
many of the features you end up building in a
840
00:41:43.670 --> 00:41:46.909
tool like Martin end up being the reality check of.
841
00:41:47.010 --> 00:41:49.199
And then when we actually did this, you're going to
842
00:41:49.239 --> 00:41:49.900
have this problem.
843
00:41:50.199 --> 00:41:54.800
So, I mean, as always, we learned, again, one of
844
00:41:54.820 --> 00:41:57.380
the lessons that came out of the Agile software development
845
00:41:57.400 --> 00:41:59.309
days before it became Scrum and got ruined.
846
00:41:59.329 --> 00:41:59.849
Yeah.
847
00:42:00.570 --> 00:42:04.170
That the design, the features you built should be pull,
848
00:42:04.269 --> 00:42:08.050
not push. You pull things in based on there is
849
00:42:08.090 --> 00:42:12.090
a demonstrated need to do this. So the features that
850
00:42:12.110 --> 00:42:14.480
have done the best for us, there's a feature in
851
00:42:14.519 --> 00:42:20.780
Wolverine we call global partitioning. What it is, is being
852
00:42:20.820 --> 00:42:23.699
able to take a look at some kind of business identification,
853
00:42:24.039 --> 00:42:27.769
you know, say an event stream, a classroom, and I'm
854
00:42:27.789 --> 00:42:30.869
going to make sure that all messages for this classroom
855
00:42:30.909 --> 00:42:33.670
are handled in sequential order, but I'm going to let
856
00:42:34.010 --> 00:42:40.480
other classrooms be handled in parallel. It's a really robust
857
00:42:40.559 --> 00:42:46.849
way to sidestep concurrency problems. That came out of... observing
858
00:42:47.090 --> 00:42:49.530
user needs you know what was happening in real systems
859
00:42:49.630 --> 00:42:52.610
right but other features that maybe we thought about for
860
00:42:52.710 --> 00:42:54.369
years that i thought was going to be a really
861
00:42:54.429 --> 00:42:58.449
big deal got it out there promoted it yeah not
862
00:42:58.469 --> 00:42:59.510
so much yeah.
863
00:42:59.360 --> 00:43:01.480
Yeah you never know it's hard to anticipate you just
864
00:43:01.500 --> 00:43:03.639
gotta go to collect the data and realize okay now
865
00:43:03.679 --> 00:43:04.659
we do this a different way.
866
00:43:04.619 --> 00:43:06.940
Now which you know that only works if you can't
867
00:43:07.000 --> 00:43:10.320
actually collect data and talk to people that use your
868
00:43:10.360 --> 00:43:12.980
tools And I'll tell you, that got a whole lot
869
00:43:13.039 --> 00:43:14.960
easier once I had a company and I was working
870
00:43:14.980 --> 00:43:19.219
for clients instead of getting secondhand stuff off of Discord.
871
00:43:19.480 --> 00:43:23.570
Right. Yeah. How much telemetry do you put into these
872
00:43:23.610 --> 00:43:26.889
tools as well? It's always great to collect data in utilization.
873
00:43:26.969 --> 00:43:27.889
I just don't know how.
874
00:43:27.829 --> 00:43:29.590
Comfortable people will be with that. So to be clear,
875
00:43:29.610 --> 00:43:31.449
we don't have anything that communicates back to us.
876
00:43:31.510 --> 00:43:31.710
Right.
877
00:43:31.969 --> 00:43:32.389
That's good.
878
00:43:32.659 --> 00:43:35.539
Don't have anything like that. The Critter Watch tool I
879
00:43:35.579 --> 00:43:39.210
talked about before. does have the ability, you could use
880
00:43:39.269 --> 00:43:41.730
that to kind of look into a system, but it's
881
00:43:41.750 --> 00:43:45.010
not sending anything back to us. The best way I
882
00:43:45.050 --> 00:43:48.210
can get that, it's not fine-grained on features, but just
883
00:43:48.269 --> 00:43:52.489
looking at, you know, the Nougat extensions, like I know,
884
00:43:52.889 --> 00:43:55.630
you know, Wolverine has so many downloads, and then I
885
00:43:55.650 --> 00:43:58.610
can see that most, probably a little over half are
886
00:43:58.670 --> 00:44:00.809
using it with Martin as well, and I can see
887
00:44:00.849 --> 00:44:02.829
how many people are using it with EF Core and,
888
00:44:03.289 --> 00:44:07.719
you know, down to the RabbitMQ and google gcp pub
889
00:44:07.739 --> 00:44:11.150
sub i get that a little bit but no right
890
00:44:11.489 --> 00:44:12.889
there's nothing snooping on you.
891
00:44:13.090 --> 00:44:15.690
Yeah which at the same time it's like that means
892
00:44:15.730 --> 00:44:19.309
invariably you build the products based on either customer feedback
893
00:44:19.349 --> 00:44:21.829
which is filtered or your own projects which are only
894
00:44:21.849 --> 00:44:24.969
going to be a subset like i i get it's uh.
895
00:44:24.969 --> 00:44:27.659
That's very true but at the same token i'm also
896
00:44:27.699 --> 00:44:31.909
going to say that jasper fx clients get um They
897
00:44:31.949 --> 00:44:34.440
are the highest priority on what gets built. So what
898
00:44:34.460 --> 00:44:36.960
they need is what gets built. And we would be
899
00:44:37.019 --> 00:44:37.829
happy to work with you.
900
00:44:37.840 --> 00:44:38.719
Yeah. Happy to help.
901
00:44:39.039 --> 00:44:40.300
No problem. All right.
902
00:44:40.920 --> 00:44:42.599
And if you need a feature built, I know a guy.
903
00:44:42.619 --> 00:44:48.719
I appreciate that. It's cool. All right. What else? What
904
00:44:48.739 --> 00:44:50.039
have we not dug into here?
905
00:44:50.340 --> 00:44:55.300
Well, I can throw something in the fire here, which
906
00:44:55.420 --> 00:45:01.280
is the tendency for unseasoned developers to want to find
907
00:45:01.300 --> 00:45:04.079
a way to use every feature of a tool, even
908
00:45:04.119 --> 00:45:07.619
if they don't need it. Um, you know, I find
909
00:45:07.659 --> 00:45:10.420
a new tool and then, you know, it's great if
910
00:45:10.519 --> 00:45:13.019
it helps you identify problems, but then you would go
911
00:45:13.119 --> 00:45:16.679
further and say, Oh, well we should use this on
912
00:45:17.039 --> 00:45:21.119
our code base or whatever when you may not need to.
913
00:45:21.590 --> 00:45:24.269
And that's just comes with experience. But I mean, I've
914
00:45:24.289 --> 00:45:25.570
seen that happen over and over again.
915
00:45:25.769 --> 00:45:28.059
I would give you the old, uh, I think it's
916
00:45:28.079 --> 00:45:30.110
a quote from Martin Fowler, but I don't remember where
917
00:45:30.139 --> 00:45:32.789
it came, where he did it. The only way to
918
00:45:32.849 --> 00:45:37.530
know how far a technique or a tool goes is
919
00:45:37.610 --> 00:45:40.210
to take it too far and then rein it back.
920
00:45:40.690 --> 00:45:41.230
Yeah.
921
00:45:41.449 --> 00:45:41.869
Yeah. Yeah.
922
00:45:42.860 --> 00:45:46.380
You kind of have to, right? Over on the system inside,
923
00:45:46.400 --> 00:45:50.880
we talk about minimizing constraints on a new tool so
924
00:45:50.900 --> 00:45:53.199
that people will actually engage with it. And then you have,
925
00:45:53.300 --> 00:45:54.960
it's like, you got to let the puppy run. Just
926
00:45:55.000 --> 00:45:58.559
don't let the puppy throw up. Like, Let them go. Yeah.
927
00:45:58.699 --> 00:46:00.719
You know, we saw this with SharePoint. We see it
928
00:46:00.739 --> 00:46:03.820
with Teams, like all these things where we're going to
929
00:46:03.900 --> 00:46:07.059
need governance. But if we put it in before anybody starts,
930
00:46:07.860 --> 00:46:10.320
it gets very little adoption. If we kind of let
931
00:46:10.340 --> 00:46:14.550
them run roughshod for a while and explore and cause problems,
932
00:46:14.969 --> 00:46:18.590
then people want governance. And you've already got some adoption
933
00:46:18.610 --> 00:46:21.030
and value from it too. Like I think you kind
934
00:46:21.050 --> 00:46:23.469
of expect people to go too far. Yeah. I would
935
00:46:23.489 --> 00:46:24.480
agree with that. Yeah.
936
00:46:24.820 --> 00:46:27.619
Funny, funny reality. Like there's never a perfection on any
937
00:46:27.659 --> 00:46:31.420
of this. Well, that was a short lived topic. Brought
938
00:46:31.460 --> 00:46:32.920
the conversation to a screeching halt.
939
00:46:33.519 --> 00:46:36.500
What about the AI skills side of Critterstack? What's this about?
940
00:46:36.820 --> 00:46:39.449
Well, one, I've got to stay in business. So there's
941
00:46:39.469 --> 00:46:43.730
kind of, there's gotta be something commercial related to AI. Yeah.
942
00:46:44.630 --> 00:46:48.920
So the AI skills is, Think of some of the
943
00:46:48.960 --> 00:46:52.110
sci-fi books you've read over the years where, oh, I'm
944
00:46:52.150 --> 00:46:54.929
going into combat. I'm going to put my combat skills
945
00:46:55.070 --> 00:46:58.550
program into active memory, right?
946
00:46:59.110 --> 00:46:59.809
Very Matrix.
947
00:46:59.929 --> 00:47:02.079
Yes. Or if you've read any kind of Peter F.
948
00:47:02.090 --> 00:47:05.550
Hamilton books. So the AI skills, they're going to teach
949
00:47:05.989 --> 00:47:09.860
your CLOD, your ASTRA, GPT. They're going to teach it, hey,
950
00:47:09.880 --> 00:47:13.000
I mean, the really markdown files, but a little more
951
00:47:13.039 --> 00:47:15.960
concentrated in documentation. They're going to try to give the
952
00:47:16.019 --> 00:47:19.480
AI tools... Guardrails on here is how to use the
953
00:47:19.539 --> 00:47:24.070
tools the best way. Certainly a lot of stuff around
954
00:47:24.199 --> 00:47:29.130
Martin itself, but taking Wolverine is a better example. Wolverine's
955
00:47:29.170 --> 00:47:32.449
value is that it allows you to create much, much
956
00:47:32.530 --> 00:47:37.900
simpler application code than... any of its competitor tools. There's
957
00:47:37.920 --> 00:47:41.760
just more things it does to simplify code. But if
958
00:47:41.860 --> 00:47:44.889
you let an AI tool go, it will try to
959
00:47:44.989 --> 00:47:48.989
use Wolverine just like its mass transit or mediator or
960
00:47:49.550 --> 00:47:51.400
on the HP side, it'll try to use it just
961
00:47:51.440 --> 00:47:55.139
like its MVC core minimal API. and you will lose
962
00:47:55.159 --> 00:47:58.969
a lot of the value of what Wolverine possibly can
963
00:47:59.010 --> 00:48:02.070
do as far as shrinking your code. The AI skills will,
964
00:48:02.289 --> 00:48:05.090
will teach it of, no, this is the idiomatic way
965
00:48:05.110 --> 00:48:08.429
to use it. Nice. You know, for Wolverine, it's no,
966
00:48:08.719 --> 00:48:11.900
you want to reduce the code to a pure function.
967
00:48:12.039 --> 00:48:14.940
That's easy to test. I want to reduce layering. You
968
00:48:14.960 --> 00:48:18.119
want to, you know, Think of what somebody would do
969
00:48:18.239 --> 00:48:20.179
using clean architecture and don't do that.
970
00:48:20.960 --> 00:48:21.159
Right.
971
00:48:21.400 --> 00:48:23.429
Every possible way to simplify a code, there's a lot
972
00:48:23.469 --> 00:48:27.670
of skills to be able to utilize testing. Not be
973
00:48:27.710 --> 00:48:32.429
able to just to utilize the testing helpers in Wolverine
974
00:48:32.469 --> 00:48:35.380
and Martin, of which there's a lot, you know. But
975
00:48:35.570 --> 00:48:38.559
when you get into asynchronous testing, it also teaches your
976
00:48:38.619 --> 00:48:42.360
AI tool, hey, here's how to use all the built-in
977
00:48:42.539 --> 00:48:46.199
CLI tools, command line tools, diagnostic tools that we've built
978
00:48:46.340 --> 00:48:50.099
into Wolverine and Martin. Things like, okay, I want to
979
00:48:50.139 --> 00:48:54.159
go test. This message seemed to disappear. I can run
980
00:48:54.179 --> 00:48:56.280
a command line and it can tell me this is
981
00:48:56.340 --> 00:48:58.349
where the message will be sent to this route. If
982
00:48:58.550 --> 00:49:03.829
you end point or topic or whatnot, it'll explain the
983
00:49:03.889 --> 00:49:06.650
command line tools will explain to an AI agent. Here's
984
00:49:06.690 --> 00:49:12.719
what it's doing. Every possible bit of information about how
985
00:49:12.760 --> 00:49:16.280
the application is configured. If you have a Critterwatch tool,
986
00:49:16.300 --> 00:49:19.650
the AI skills will teach you how to use MCN points,
987
00:49:20.820 --> 00:49:24.059
in Critterwatch to be able to reach out into your
988
00:49:24.099 --> 00:49:28.239
open telemetry to say, hey, I'm working on this saga.
989
00:49:28.679 --> 00:49:31.820
Tell me what's going on. That'll teach your AI agent
990
00:49:31.880 --> 00:49:35.940
how to reach into Jaeger or App Insights or whatever
991
00:49:35.960 --> 00:49:39.579
it's using through Critterwatch. And it will grab all the
992
00:49:39.619 --> 00:49:43.320
information about here is all the work that's already happening
993
00:49:43.380 --> 00:49:46.679
for the saga. Here is the information that's yet to come.
994
00:49:46.699 --> 00:49:49.260
Maybe it can tell you, hey, this message failed. This
995
00:49:49.280 --> 00:49:53.929
message happened at this time. But this AI skills, it's
996
00:49:53.989 --> 00:49:57.510
trying to unlock every bit of information about your system,
997
00:49:57.550 --> 00:50:00.630
both at rest and at movement. Cool.
998
00:50:00.989 --> 00:50:01.250
Nice.
999
00:50:01.630 --> 00:50:03.250
Yeah, it makes a lot of sense. And it just
1000
00:50:03.269 --> 00:50:06.489
saves time, right? You're just going to get more done
1001
00:50:06.510 --> 00:50:07.230
in less time that way.
1002
00:50:07.489 --> 00:50:12.530
Potentially saves time. And this is us going through the
1003
00:50:12.570 --> 00:50:16.590
full cycle. I'm sure everybody in my position went through
1004
00:50:16.659 --> 00:50:20.900
a cycle of, oh my God, we're dead meat. The
1005
00:50:20.980 --> 00:50:25.619
AI is going to crush our business model to, okay,
1006
00:50:26.159 --> 00:50:28.679
it's helping us deliver a lot faster, but we can
1007
00:50:28.760 --> 00:50:32.570
use AI related functionality to build a lot more value
1008
00:50:32.639 --> 00:50:35.269
in for our customers and maybe come out the other
1009
00:50:35.289 --> 00:50:40.949
side and maybe have something that's That's hopefully something that
1010
00:50:41.010 --> 00:50:43.170
people want to actually buy and pay for.
1011
00:50:43.190 --> 00:50:45.510
Yeah. No, no question.
1012
00:50:45.710 --> 00:50:48.949
Do you have anything else planned or are you done
1013
00:50:48.989 --> 00:50:50.050
making critters for a while?
1014
00:50:50.570 --> 00:50:54.250
So the biggest thing for us in a, so there'll
1015
00:50:54.269 --> 00:50:57.820
be a new critter watch 1.1. And by the time
1016
00:50:57.880 --> 00:51:01.820
this podcast drops, we'll have a big new release. It's
1017
00:51:02.300 --> 00:51:04.920
going to give you an option to be able to
1018
00:51:04.940 --> 00:51:07.860
embed critter watch in your own application. like at dev
1019
00:51:07.920 --> 00:51:11.219
time even. So you get a lot more insight at
1020
00:51:11.340 --> 00:51:15.440
what's happening at development time. And more features, it's finally
1021
00:51:15.500 --> 00:51:20.210
adding cron-based scheduling and then some other features. And then
1022
00:51:20.889 --> 00:51:25.670
our big grand epic of the critter stacks version of
1023
00:51:25.690 --> 00:51:29.210
event modeling and spec driven development, being able to sit
1024
00:51:29.230 --> 00:51:31.590
in a room and, you know, be able to project
1025
00:51:31.710 --> 00:51:34.380
up a meeting, meeting of, Hey, let's look at the,
1026
00:51:34.679 --> 00:51:37.420
the visualization of the event model as we talk about
1027
00:51:38.119 --> 00:51:41.840
what it's supposed to do. And is everybody agree with this?
1028
00:51:42.099 --> 00:51:44.320
And then push play and let an AI set of
1029
00:51:44.380 --> 00:51:47.980
AI tools, scaffold it all out for you, including the tests.
1030
00:51:48.119 --> 00:51:49.219
Nice. Awesome.
1031
00:51:49.239 --> 00:51:52.219
So we're going live in two days. Did you, mean
1032
00:51:52.260 --> 00:51:54.380
to say that by the time this podcast drops?
1033
00:51:54.679 --> 00:52:00.079
So, Carl, I went to Rice University in Houston. There's
1034
00:52:00.139 --> 00:52:03.719
a famous story. So, believe it or not, Rice was
1035
00:52:03.760 --> 00:52:05.159
really good in football once upon a time.
1036
00:52:05.420 --> 00:52:06.559
No.
1037
00:52:07.079 --> 00:52:11.019
But like in the 50s. And sometime in the early 60s,
1038
00:52:11.079 --> 00:52:13.159
they decided, hey, we're going to use a whole bunch
1039
00:52:13.199 --> 00:52:16.280
of leftover concrete from a Houston freeway, and we're going
1040
00:52:16.300 --> 00:52:19.139
to go build the giant Rice Stadium that's still there today.
1041
00:52:19.159 --> 00:52:19.570
Hmm.
1042
00:52:19.980 --> 00:52:22.090
And we're going to get it done before the next season.
1043
00:52:22.869 --> 00:52:26.809
So at one point, the story is that one of
1044
00:52:27.289 --> 00:52:29.409
the board of governors is asking one of the Brown
1045
00:52:29.449 --> 00:52:33.050
brothers from Brown and Root, famous company, hey, is the
1046
00:52:33.070 --> 00:52:35.380
stadium going to be done for the first game? And
1047
00:52:35.389 --> 00:52:37.940
he looks at him deadpan and asks, well, is it
1048
00:52:37.960 --> 00:52:39.239
going to be a day game or a night game?
1049
00:52:43.000 --> 00:52:44.920
It might be a couple of days after this goes live.
1050
00:52:44.940 --> 00:52:46.099
You guys used to be slower.
1051
00:52:46.119 --> 00:52:46.840
I know.
1052
00:52:46.880 --> 00:52:49.969
Well, we're going to be there really soon. Thursday.
1053
00:52:49.989 --> 00:52:53.110
Thursday we're going to do a big demo. I looked
1054
00:52:53.190 --> 00:52:55.590
up the Kelly Blue Book value of an old car
1055
00:52:55.650 --> 00:52:58.190
and it said, is that with a tank full or empty?
1056
00:52:59.469 --> 00:53:00.329
Kind of the same joke.
1057
00:53:00.590 --> 00:53:00.889
Nice.
1058
00:53:02.949 --> 00:53:05.090
All right, good. Well, we'll be looking forward to that.
1059
00:53:05.579 --> 00:53:08.219
Jeremy Miller, thank you very much for catching us up
1060
00:53:08.300 --> 00:53:09.900
on everything that's going on in Critterland.
1061
00:53:10.039 --> 00:53:11.679
All right, guys. Thank you so much.
1062
00:53:11.699 --> 00:53:12.059
You bet.
1063
00:53:12.179 --> 00:53:14.340
And we'll talk to you next time on.
1064
00:53:14.320 --> 00:53:14.599
NET Rocks.
1065
00:53:14.619 --> 00:53:15.190
NET Rocks.
1066
00:53:36.119 --> 00:53:38.820
NET Rocks is brought to you by Franklin's Net and
1067
00:53:38.880 --> 00:53:43.610
produced by Plop Studios, a full-service audio, video, and post-production
1068
00:53:43.639 --> 00:53:47.650
facility located physically in New London, Connecticut, and, of course,
1069
00:53:47.710 --> 00:53:51.329
in the cloud. Online at pwop.com.
1070
00:53:52.050 --> 00:53:59.929
Visit our website at dotnetrocks.com for RSS feeds, downloads, mobile apps, comments,
1071
00:54:00.369 --> 00:54:02.849
and access to the full archives going back to show
1072
00:54:02.889 --> 00:54:05.630
number one recorded in September 2002.
1073
00:54:05.630 --> 00:54:08.929
And make sure you check out our sponsors. They keep
1074
00:54:08.989 --> 00:54:12.150
us in business. Now go write some code. See you
1075
00:54:12.210 --> 00:54:12.610
next time.