WEBVTT

1
00:00:01.080 --> 00:00:02.960
<v Speaker 1>How'd you like to listen to dot net rocks with

2
00:00:03.040 --> 00:00:07.839
<v Speaker 1>no ads? Easy? Become a patron for just five dollars

3
00:00:07.919 --> 00:00:10.800
<v Speaker 1>a month. You get access to a private RSS feed

4
00:00:10.800 --> 00:00:14.240
<v Speaker 1>where all the shows have no ads. Twenty dollars a month,

5
00:00:14.279 --> 00:00:16.879
<v Speaker 1>we'll get you that and a special dot net Rocks

6
00:00:16.960 --> 00:00:20.960
<v Speaker 1>patron mug. Sign up now at Patreon dot dot NetRocks

7
00:00:21.120 --> 00:00:36.359
<v Speaker 1>dot com. Welcome back to dot net rocks.

8
00:00:36.359 --> 00:00:38.159
<v Speaker 2>I'm Carl Franklin and Emiratetry Campbell.

9
00:00:38.159 --> 00:00:40.200
<v Speaker 1>How you doing, buddy, I'm all right, you know.

10
00:00:40.320 --> 00:00:43.399
<v Speaker 2>It's the weather's been nice. Things are on the swing.

11
00:00:43.520 --> 00:00:46.600
<v Speaker 2>I got a few more events to do. By the

12
00:00:46.679 --> 00:00:48.399
<v Speaker 2>time this show comes out, I should be almost on

13
00:00:48.439 --> 00:00:51.600
<v Speaker 2>the way home from the last of the spring shows. Right, yeah,

14
00:00:51.600 --> 00:00:52.960
<v Speaker 2>I'm gonna try and spend the summer home.

15
00:00:53.119 --> 00:00:53.560
<v Speaker 1>Wow.

16
00:00:53.759 --> 00:00:56.640
<v Speaker 2>Not something I'm good at, as you well know. Yeah,

17
00:00:56.240 --> 00:00:57.320
<v Speaker 2>that's been the goal.

18
00:00:57.359 --> 00:01:01.240
<v Speaker 1>Well, if you feel an itch to move to be

19
00:01:01.600 --> 00:01:03.520
<v Speaker 1>on my side of the country, you always have a

20
00:01:03.520 --> 00:01:04.120
<v Speaker 1>place to stay.

21
00:01:04.159 --> 00:01:07.599
<v Speaker 2>Well, I appreciate that. That's very kind of you. Yeah, yeah, yeah,

22
00:01:07.840 --> 00:01:10.760
<v Speaker 2>you know. As much as I enjoy the travel, I

23
00:01:10.799 --> 00:01:12.400
<v Speaker 2>do live in a beautiful place, and I in the

24
00:01:12.400 --> 00:01:15.719
<v Speaker 2>summertime it is especially nice, right, right now. It's a

25
00:01:16.040 --> 00:01:18.480
<v Speaker 2>spot pronze season, So two o'clocking can pop down to

26
00:01:18.560 --> 00:01:21.000
<v Speaker 2>the government dock there and pick up a pound of

27
00:01:21.040 --> 00:01:26.400
<v Speaker 2>spot prons for twenty bucks. That is amazing. I just

28
00:01:26.439 --> 00:01:28.560
<v Speaker 2>wanted to remind you in case you were thinking of

29
00:01:28.599 --> 00:01:30.680
<v Speaker 2>traveling to the East Coast, that two thirds of the

30
00:01:30.719 --> 00:01:33.920
<v Speaker 2>Monday's crew live within fifteen minutes of each other. Yeah.

31
00:01:33.920 --> 00:01:36.400
<v Speaker 2>It's almost old day times it You guys are all

32
00:01:36.439 --> 00:01:39.000
<v Speaker 2>close together again. This is how that show got started,

33
00:01:39.239 --> 00:01:41.239
<v Speaker 2>I know, right, Yeah, I'm kidding.

34
00:01:41.319 --> 00:01:44.400
<v Speaker 1>Okay, this being episode two thousand and six, we thought

35
00:01:44.400 --> 00:01:47.920
<v Speaker 1>we'd start with the top ten news items of two

36
00:01:47.920 --> 00:01:50.959
<v Speaker 1>thousand and six. The Iraq War isn't going well.

37
00:01:51.920 --> 00:01:55.719
<v Speaker 2>Yeah you never did, yeah.

38
00:01:56.799 --> 00:01:57.599
<v Speaker 1>Sadam Hussein.

39
00:01:57.959 --> 00:02:02.200
<v Speaker 2>Winter Olympics. Yeah okay, yeah, Winter Olympics. There was something

40
00:02:02.200 --> 00:02:02.920
<v Speaker 2>good happening to you that.

41
00:02:03.000 --> 00:02:06.799
<v Speaker 1>Say, Winter Olympics. Very good. Sadam Hussein bit the dust.

42
00:02:07.680 --> 00:02:09.439
<v Speaker 2>He had a trial first and they sent him to

43
00:02:09.479 --> 00:02:10.840
<v Speaker 2>death and then they killed him.

44
00:02:11.599 --> 00:02:16.520
<v Speaker 1>North Korea conducted its first nuclear test supposedly, but well,

45
00:02:16.919 --> 00:02:18.759
<v Speaker 1>I'm not sure if it was a fizzle or not.

46
00:02:19.199 --> 00:02:21.520
<v Speaker 1>There was some funny chemistry there. Yeah, but they've had

47
00:02:21.560 --> 00:02:25.879
<v Speaker 1>some successful tests since then. We think, so, yeah, Israel

48
00:02:25.919 --> 00:02:30.319
<v Speaker 1>and Hezbollah warrant in Lebanon which continues to this day,

49
00:02:30.400 --> 00:02:32.080
<v Speaker 1>and various with various.

50
00:02:32.360 --> 00:02:35.520
<v Speaker 2>On and off. This is twenty years ago, so yeah.

51
00:02:35.520 --> 00:02:39.520
<v Speaker 1>The midterm elections shifted control of Congress. Democrats won control

52
00:02:39.560 --> 00:02:41.680
<v Speaker 1>of both the House and Senate in the November elections,

53
00:02:41.680 --> 00:02:44.639
<v Speaker 1>seen largely as a public rebuke of the Iraq War

54
00:02:44.680 --> 00:02:45.680
<v Speaker 1>and the Bush administration.

55
00:02:46.800 --> 00:02:48.560
<v Speaker 2>Americans don't like wars, oddly.

56
00:02:48.360 --> 00:02:53.560
<v Speaker 1>Enough, no, no. The Mohammed cartoons controversy worldwide protests and

57
00:02:53.639 --> 00:02:57.960
<v Speaker 1>violence followed publication of cartoons depicting the prophet Mohammed in

58
00:02:58.039 --> 00:03:02.719
<v Speaker 1>a Danish newspaper. That was pretty big deal. In the US,

59
00:03:02.800 --> 00:03:09.319
<v Speaker 1>there was protests over immigration reforms and border enforcement legislation.

60
00:03:11.319 --> 00:03:15.879
<v Speaker 1>The Iran nuclear crisis intensifies. Boy, this sounds like this year,

61
00:03:15.919 --> 00:03:16.520
<v Speaker 1>doesn't it.

62
00:03:16.520 --> 00:03:19.599
<v Speaker 2>It's kind of creepy. Yeah, yeah, it's a weird. Twenty

63
00:03:19.639 --> 00:03:20.120
<v Speaker 2>years on.

64
00:03:20.319 --> 00:03:22.520
<v Speaker 1>Fidel Castro temporarily gave up power.

65
00:03:22.680 --> 00:03:24.159
<v Speaker 2>Well he's not doing that anymore.

66
00:03:25.680 --> 00:03:30.000
<v Speaker 1>Raoul in charge, and global attention on climate change was

67
00:03:30.039 --> 00:03:33.560
<v Speaker 1>the mainstream political issue worldwide. You're driven in part by

68
00:03:33.599 --> 00:03:37.759
<v Speaker 1>Al Gore's documentary and Inconvenient Truth, which was really good

69
00:03:37.759 --> 00:03:38.520
<v Speaker 1>and a little scary.

70
00:03:38.599 --> 00:03:43.560
<v Speaker 2>Yeah, had a lot of bad news to share, and

71
00:03:43.719 --> 00:03:45.840
<v Speaker 2>you know, some of which it's it's tough to do

72
00:03:45.879 --> 00:03:48.120
<v Speaker 2>the praditions he was doing, so they didn't quite panel

73
00:03:48.120 --> 00:03:50.120
<v Speaker 2>the way he was talking about. Certainly we're seeing the

74
00:03:50.120 --> 00:03:50.919
<v Speaker 2>consquatches of that.

75
00:03:51.000 --> 00:03:52.840
<v Speaker 1>Well, before we get to Tech in Space with Richard,

76
00:03:52.919 --> 00:03:57.240
<v Speaker 1>let me just run down the top ten movies grossing

77
00:03:57.319 --> 00:04:00.759
<v Speaker 1>movies of two thousand and six. Number ten Feet, That

78
00:04:00.879 --> 00:04:06.479
<v Speaker 1>was fun, Number ons Penguins, number nine, Superman Returns number eight,

79
00:04:06.599 --> 00:04:10.439
<v Speaker 1>Mission Impossible three, number seven X Men. The Last Stand?

80
00:04:11.000 --> 00:04:12.080
<v Speaker 1>Was it really the last stand?

81
00:04:12.319 --> 00:04:12.479
<v Speaker 3>No?

82
00:04:12.639 --> 00:04:16.160
<v Speaker 2>They kept we kept coming around again, I know, yeah, cars,

83
00:04:16.480 --> 00:04:18.000
<v Speaker 2>Oh yeah, that was good.

84
00:04:18.199 --> 00:04:23.399
<v Speaker 1>Maid Night at the Museum Rob Williams, which was kind

85
00:04:23.399 --> 00:04:28.240
<v Speaker 1>of weird, but kids loved it. Casino Royale number three,

86
00:04:28.319 --> 00:04:32.600
<v Speaker 1>Ice Age, the Melkdown number two, the Da Vinci Code,

87
00:04:32.800 --> 00:04:35.959
<v Speaker 1>Oh twice as much money. It made twice as much

88
00:04:36.000 --> 00:04:39.439
<v Speaker 1>as Happy Feet, and number one, Pirates of the Caribbean,

89
00:04:39.600 --> 00:04:44.879
<v Speaker 1>dead Man's Chest about one billion dollars. Quite a franchise,

90
00:04:44.959 --> 00:04:47.519
<v Speaker 1>whereas Da Vinci Code was seven to sixty million.

91
00:04:47.639 --> 00:04:49.800
<v Speaker 2>All right, how about that crazy?

92
00:04:50.040 --> 00:04:52.160
<v Speaker 1>All right? Tech in Space in two thousand and six,

93
00:04:52.240 --> 00:04:52.839
<v Speaker 1>laying on me.

94
00:04:53.199 --> 00:04:55.000
<v Speaker 2>Do you know how you still can't carry a bottle

95
00:04:55.040 --> 00:04:57.319
<v Speaker 2>of water on an airplane? Yeah, that comes from two

96
00:04:57.319 --> 00:05:01.279
<v Speaker 2>thousand and six. Oh yeah, that's the intelligence forces figured

97
00:05:01.319 --> 00:05:03.639
<v Speaker 2>out that there was a plan to use soda bottles

98
00:05:03.639 --> 00:05:07.279
<v Speaker 2>to carry liquid explosives onto airplanes, and they have banned

99
00:05:07.399 --> 00:05:10.319
<v Speaker 2>liquids ever since. That's when that started. But let's get

100
00:05:10.319 --> 00:05:11.079
<v Speaker 2>to the space stuff.

101
00:05:11.279 --> 00:05:13.720
<v Speaker 1>Unless you want to buy them. Once you're through the gate,

102
00:05:13.839 --> 00:05:15.160
<v Speaker 1>then they're okay for some reason.

103
00:05:15.240 --> 00:05:17.399
<v Speaker 2>Oh yeah, once you've gone through, once you've gone through

104
00:05:17.439 --> 00:05:18.000
<v Speaker 2>security here.

105
00:05:18.240 --> 00:05:18.959
<v Speaker 1>Yeah, all right.

106
00:05:19.199 --> 00:05:21.680
<v Speaker 2>On the space side, January is a crazy month because

107
00:05:21.720 --> 00:05:24.879
<v Speaker 2>this is when star Dust the mission we've mentioned a

108
00:05:24.920 --> 00:05:26.839
<v Speaker 2>couple of times, because they did a bunch of different things,

109
00:05:27.319 --> 00:05:31.120
<v Speaker 2>collecting particles of interstellar space and also partiles from comets.

110
00:05:31.879 --> 00:05:33.720
<v Speaker 2>So it had been launched in nineteen ninety nine. He

111
00:05:33.800 --> 00:05:35.639
<v Speaker 2>did a fly by the asteroid and Frank in two

112
00:05:35.680 --> 00:05:38.759
<v Speaker 2>thousand and two, then flew through the plume of Wild

113
00:05:38.839 --> 00:05:41.120
<v Speaker 2>to the comet in two thousand and four. In two

114
00:05:41.160 --> 00:05:43.759
<v Speaker 2>thousand and six, its sample return mission was dropped by

115
00:05:44.399 --> 00:05:48.000
<v Speaker 2>on the Earth with those different particles, including the comet

116
00:05:48.040 --> 00:05:52.079
<v Speaker 2>materials from Wild two that showed both water and glycine

117
00:05:52.160 --> 00:05:57.439
<v Speaker 2>the proto amino acids for creating life. That wasn't actually

118
00:05:57.439 --> 00:05:59.920
<v Speaker 2>the end of the Stardus mission. From there, they reper

119
00:06:00.079 --> 00:06:03.000
<v Speaker 2>pristed to go off and intercept Temple One, which we

120
00:06:03.040 --> 00:06:06.040
<v Speaker 2>talked about in a previous show, where deep impact had

121
00:06:06.240 --> 00:06:09.079
<v Speaker 2>blown a hole in that comet. It wasn't able to

122
00:06:09.120 --> 00:06:11.759
<v Speaker 2>heat images because there was too much debris started as

123
00:06:11.839 --> 00:06:13.759
<v Speaker 2>was able to intercept it and get those pictures. Yeah.

124
00:06:13.839 --> 00:06:17.560
<v Speaker 2>Also in January, the New Horizons launched. That was the

125
00:06:17.879 --> 00:06:20.800
<v Speaker 2>high speed mission to Pluto. High speed being a relative concept,

126
00:06:20.839 --> 00:06:23.399
<v Speaker 2>of course. It was launched on an Atlas five at

127
00:06:23.480 --> 00:06:26.319
<v Speaker 2>maximum power. Was the first time we've ever put a

128
00:06:26.360 --> 00:06:31.120
<v Speaker 2>satellite directly on a escape velocity of the Solar System.

129
00:06:32.040 --> 00:06:38.839
<v Speaker 2>Every other spacecraft needed to do additional burns or gravity

130
00:06:38.839 --> 00:06:42.639
<v Speaker 2>assists flybys New Horizons. We kept it light enough that

131
00:06:42.680 --> 00:06:44.639
<v Speaker 2>it could just drive it straight from Pluto, although it'll

132
00:06:44.639 --> 00:06:48.879
<v Speaker 2>still take years. In March, the Cassini mission is underway,

133
00:06:48.920 --> 00:06:51.439
<v Speaker 2>and this is when they first get an image. They've

134
00:06:51.600 --> 00:06:54.319
<v Speaker 2>been taking images of Encettalists and Settlists. Was thought to

135
00:06:54.399 --> 00:06:57.360
<v Speaker 2>just be an icy rock that was highly reflective, and

136
00:06:57.600 --> 00:06:59.079
<v Speaker 2>in late two thousand and five and two thousand and

137
00:06:59.079 --> 00:07:01.959
<v Speaker 2>sixty get the images of the geyser plumes, and I

138
00:07:02.000 --> 00:07:05.680
<v Speaker 2>remember that that arguably become so important they redirect much

139
00:07:05.680 --> 00:07:07.680
<v Speaker 2>of the Cassini mission to gather more data around that,

140
00:07:07.759 --> 00:07:10.399
<v Speaker 2>and really and settlists will change the way we think

141
00:07:10.439 --> 00:07:13.079
<v Speaker 2>about where life can exist in a Solar system, because

142
00:07:13.079 --> 00:07:15.759
<v Speaker 2>here's this little icy rock orbiting a gas giant. It

143
00:07:15.800 --> 00:07:18.360
<v Speaker 2>shouldn't make any sense, and yet it's clearly has a

144
00:07:18.399 --> 00:07:22.600
<v Speaker 2>liquid water ocean under its aol, which Cassini will help prove.

145
00:07:24.120 --> 00:07:26.800
<v Speaker 2>Also in March, the Mars recon enters the orbit around

146
00:07:26.839 --> 00:07:32.079
<v Speaker 2>March and is still operational today. In April e says,

147
00:07:32.279 --> 00:07:35.079
<v Speaker 2>Venus Express mission gets into orbit around Venus to do

148
00:07:35.120 --> 00:07:37.800
<v Speaker 2>some mapping there as well. In July we get the

149
00:07:38.120 --> 00:07:41.240
<v Speaker 2>returned the second return to flight after the Columbia disaster

150
00:07:41.399 --> 00:07:44.399
<v Speaker 2>on Discovery, where they take supplies and crew to the ISS.

151
00:07:45.079 --> 00:07:47.680
<v Speaker 2>In September, Atlantis will be the first mission to do

152
00:07:47.879 --> 00:07:50.319
<v Speaker 2>assemblies onto the ISS since two thousand and two, and

153
00:07:50.360 --> 00:07:53.959
<v Speaker 2>also December Discovery will do the same. August is also

154
00:07:54.079 --> 00:07:58.800
<v Speaker 2>when the International Astronomical Union defines the planet and demotes

155
00:07:58.839 --> 00:08:01.439
<v Speaker 2>Pluto to be a dwarf planet. Went to the consternation

156
00:08:01.480 --> 00:08:06.439
<v Speaker 2>of many and still a debate going on today. Also

157
00:08:06.600 --> 00:08:09.920
<v Speaker 2>in two thousand and six, a small startup company called

158
00:08:10.040 --> 00:08:13.439
<v Speaker 2>SpaceX does their first flight of the Falcon one from

159
00:08:13.480 --> 00:08:16.680
<v Speaker 2>Amelek Island in the Quandulin Atoll. This was paid for

160
00:08:16.839 --> 00:08:21.279
<v Speaker 2>largely by the Department of Defense under their prob Prompt

161
00:08:21.279 --> 00:08:24.120
<v Speaker 2>Global Strike initiative, and it's supposed to fly in two

162
00:08:24.120 --> 00:08:26.839
<v Speaker 2>thousand and five, but it got bumped out. It does

163
00:08:26.879 --> 00:08:29.360
<v Speaker 2>not go well. It has a primary engine failure after

164
00:08:29.360 --> 00:08:33.000
<v Speaker 2>thirty three seconds of flight and falls into the Coral Atoll.

165
00:08:33.159 --> 00:08:36.000
<v Speaker 2>The twenty kilogram satellite lands on a storage shed near

166
00:08:36.039 --> 00:08:38.720
<v Speaker 2>the site. Turns out it was a break in a

167
00:08:38.759 --> 00:08:42.519
<v Speaker 2>fuel line and it was not a misinstallation. The rocket

168
00:08:42.519 --> 00:08:45.759
<v Speaker 2>had been waiting long enough that saltwater corrosion had damaged

169
00:08:45.759 --> 00:08:46.159
<v Speaker 2>the pipe.

170
00:08:46.200 --> 00:08:48.519
<v Speaker 1>I think SpaceX is a study in how to learn

171
00:08:48.559 --> 00:08:49.559
<v Speaker 1>from failure.

172
00:08:49.360 --> 00:08:51.120
<v Speaker 2>And they did a pretty good job. And they'll fail

173
00:08:51.120 --> 00:08:54.559
<v Speaker 2>a few more times too. That being said, in this

174
00:08:54.679 --> 00:08:57.519
<v Speaker 2>same year, SpaceX has awarded a four hundred million dollar

175
00:08:57.600 --> 00:09:00.519
<v Speaker 2>contract to develop crew and cargo resupply for the ISS.

176
00:09:00.559 --> 00:09:02.799
<v Speaker 2>There was considered a long shot, but that was the

177
00:09:02.799 --> 00:09:05.720
<v Speaker 2>funding that started Faulcon nine. Over on the computing side,

178
00:09:06.360 --> 00:09:09.360
<v Speaker 2>two thousand and six is when Jack Dorrisy launches Twitter.

179
00:09:09.559 --> 00:09:13.440
<v Speaker 2>Oh yeah, and Google, now a public company buys YouTube

180
00:09:13.480 --> 00:09:16.559
<v Speaker 2>for one point six billion dollars. They'll probably make I'll

181
00:09:16.679 --> 00:09:19.799
<v Speaker 2>just fine on that for sure. Amazon launches their Amazon

182
00:09:19.879 --> 00:09:23.399
<v Speaker 2>Web Services with both EACY two and S three, beginning

183
00:09:23.480 --> 00:09:25.440
<v Speaker 2>a revival of the term the cloud.

184
00:09:25.600 --> 00:09:26.759
<v Speaker 1>Yeah, that's right.

185
00:09:26.919 --> 00:09:31.840
<v Speaker 2>There's a reunion between McCarthy and Minski for the fiftieth

186
00:09:31.840 --> 00:09:34.519
<v Speaker 2>anniversary of the original AI project from nineteen fifty six.

187
00:09:34.799 --> 00:09:37.960
<v Speaker 2>Juliana Sans launches wiki leaks that went well.

188
00:09:38.120 --> 00:09:39.639
<v Speaker 1>Yeah.

189
00:09:39.679 --> 00:09:43.720
<v Speaker 2>Also in January, John Resik pushes out the first open

190
00:09:43.720 --> 00:09:47.240
<v Speaker 2>source version of jQuery. Right and when she'll become very

191
00:09:47.240 --> 00:09:49.679
<v Speaker 2>important in the Microsoft world, probably the first open source

192
00:09:49.720 --> 00:09:52.720
<v Speaker 2>product that Microsoft ever ships in the box, so to speak,

193
00:09:52.879 --> 00:09:57.159
<v Speaker 2>in the box twenty ten a few years away. In March,

194
00:09:57.240 --> 00:10:00.879
<v Speaker 2>the first of the mixed conferences mix O six, where

195
00:10:00.960 --> 00:10:02.919
<v Speaker 2>they announce I E seven.

196
00:10:03.240 --> 00:10:06.440
<v Speaker 1>I remember it fondly from what I remember of it, yeah.

197
00:10:06.360 --> 00:10:09.720
<v Speaker 2>Which should have been six years. And in May they

198
00:10:09.799 --> 00:10:12.360
<v Speaker 2>also well and back in March, I announced Coplex. In May,

199
00:10:12.399 --> 00:10:17.759
<v Speaker 2>Coplex goes live as Microsoft's source control or open source environment.

200
00:10:17.759 --> 00:10:19.879
<v Speaker 2>Although it's not the way we think of open source. Then, Yeah,

201
00:10:19.879 --> 00:10:23.039
<v Speaker 2>they're building the code internally and publishing it on coplex

202
00:10:23.080 --> 00:10:26.000
<v Speaker 2>people to downwold, play with and provide feedback, right, and

203
00:10:26.039 --> 00:10:29.200
<v Speaker 2>they're doing a rapid series of feedback sequences there.

204
00:10:29.240 --> 00:10:32.320
<v Speaker 1>It wasn't really like what gid hub would turn out

205
00:10:32.360 --> 00:10:32.519
<v Speaker 1>to be.

206
00:10:32.639 --> 00:10:34.679
<v Speaker 2>No, you can't contribute code to this at this point

207
00:10:34.679 --> 00:10:39.120
<v Speaker 2>in the cycle. And in the fall Windows Vista and

208
00:10:39.159 --> 00:10:42.240
<v Speaker 2>a byproduct of Windows Vista dot Net three, the version

209
00:10:42.240 --> 00:10:43.960
<v Speaker 2>of dot net that wasn't really a version of dot

210
00:10:44.000 --> 00:10:46.480
<v Speaker 2>net more catching all the fallout of Vista. So it's

211
00:10:46.480 --> 00:10:51.440
<v Speaker 2>still actually dot Net two, but it adds WCFWPF workflow

212
00:10:51.679 --> 00:10:52.840
<v Speaker 2>and card space.

213
00:10:53.320 --> 00:10:55.720
<v Speaker 1>Yeah. Three letter acronyms.

214
00:10:55.799 --> 00:10:58.200
<v Speaker 2>Yeah, because they all had cool code names. Go from

215
00:10:58.240 --> 00:11:06.000
<v Speaker 2>Avalon and Indigo to Windows Communication Foundation Presentation. Fortunate, But

216
00:11:07.000 --> 00:11:10.159
<v Speaker 2>in that earlier announcement it mixed. They talked about w

217
00:11:10.360 --> 00:11:14.360
<v Speaker 2>p F E as it was a Windows Presentation Foundation everwhere.

218
00:11:14.360 --> 00:11:18.080
<v Speaker 2>And by December they will ship the first community technology

219
00:11:18.120 --> 00:11:22.039
<v Speaker 2>preview via Coplex that they would eventually call silver Light

220
00:11:22.200 --> 00:11:24.639
<v Speaker 2>V one with no dotinant in it whatsoever.

221
00:11:25.000 --> 00:11:30.120
<v Speaker 1>In my heart right, okay, yeah, is feeling it part

222
00:11:30.159 --> 00:11:33.120
<v Speaker 1>with his finger. I remember Rory Blake, what did he

223
00:11:33.200 --> 00:11:35.879
<v Speaker 1>say about silver Light one point zero? It's basically an

224
00:11:35.919 --> 00:11:40.080
<v Speaker 1>animated gift downloader with an API or something.

225
00:11:40.200 --> 00:11:43.320
<v Speaker 2>Yeah, more or less, because it was they're really building

226
00:11:43.360 --> 00:11:45.080
<v Speaker 2>it for Netflix. It was going to be part of

227
00:11:45.120 --> 00:11:47.279
<v Speaker 2>the media playing system, and it was all JavaScript driven

228
00:11:47.279 --> 00:11:49.679
<v Speaker 2>at that point. The net part will come later. Those

229
00:11:49.679 --> 00:11:52.240
<v Speaker 2>are early days. Also launch in two thousand and six

230
00:11:52.480 --> 00:11:58.679
<v Speaker 2>the Zoom Zoom, Yeah, the zoon. This is when a

231
00:11:58.759 --> 00:12:04.679
<v Speaker 2>project called Monad gets renamed as PowerShell oh yeah, yeah wow.

232
00:12:04.919 --> 00:12:08.080
<v Speaker 1>And two thousand six also the Striking a Lot of Memories.

233
00:12:07.759 --> 00:12:09.919
<v Speaker 2>Oh yeah. Two thousand and six is also the year

234
00:12:10.120 --> 00:12:12.799
<v Speaker 2>that Bill Gates steps down as chief architect and Ray

235
00:12:12.919 --> 00:12:16.840
<v Speaker 2>Aussie takes over. And last, certainly not least, the first

236
00:12:16.919 --> 00:12:20.679
<v Speaker 2>episode of handsel minutes mm hmmm, Ye, our friends got

237
00:12:20.759 --> 00:12:23.279
<v Speaker 2>Handsoman decides he too needs to make a podcast, but

238
00:12:23.320 --> 00:12:25.639
<v Speaker 2>maybe not as long as what we were doing. Yeah,

239
00:12:25.679 --> 00:12:27.600
<v Speaker 2>and so he called it Handso minutes.

240
00:12:27.399 --> 00:12:29.519
<v Speaker 1>Right after we started, we were a tech ed and

241
00:12:29.559 --> 00:12:32.799
<v Speaker 1>he was buzzing around on a segue and he would

242
00:12:32.799 --> 00:12:35.720
<v Speaker 1>come I'm doing an interview. I'm interviewing somebody, and he'd

243
00:12:35.759 --> 00:12:38.080
<v Speaker 1>come in and stick his head in and go podcasting

244
00:12:38.159 --> 00:12:43.799
<v Speaker 1>sucks and drive off. And it turns out, you know,

245
00:12:44.200 --> 00:12:46.879
<v Speaker 1>after talking to him, after he'd calmed down a little bit,

246
00:12:47.360 --> 00:12:51.320
<v Speaker 1>he didn't really mean podcasting sucks. He met podcasts sucks.

247
00:12:51.360 --> 00:12:53.320
<v Speaker 1>There you go. Other than what we were doing, the

248
00:12:53.399 --> 00:12:57.000
<v Speaker 1>podcasts out there that were sort of the you know,

249
00:12:57.080 --> 00:13:00.519
<v Speaker 1>the start of podcasting as we knew it. We're just

250
00:13:00.600 --> 00:13:04.919
<v Speaker 1>kind of chatty and you know, not a lot of substance.

251
00:13:05.039 --> 00:13:08.600
<v Speaker 1>So I think he did confirm it that's really what

252
00:13:08.639 --> 00:13:11.360
<v Speaker 1>he meant, because he went on to do handsome on it, yeah,

253
00:13:11.360 --> 00:13:12.039
<v Speaker 1>which didn't suck.

254
00:13:12.200 --> 00:13:14.759
<v Speaker 2>It does not song still doesn't soun No, that's what

255
00:13:14.759 --> 00:13:17.240
<v Speaker 2>I got, all right, Yeah, okay with that, let's roll

256
00:13:17.240 --> 00:13:27.200
<v Speaker 2>the music for better no framework awesome? Alright, man, what

257
00:13:27.240 --> 00:13:27.600
<v Speaker 2>do you got?

258
00:13:27.759 --> 00:13:31.600
<v Speaker 1>So like most times when i'm you know, grasping for

259
00:13:31.679 --> 00:13:33.440
<v Speaker 1>straws at the last minute, I went out and looked

260
00:13:33.440 --> 00:13:37.360
<v Speaker 1>for trending repose and this one just struck me as

261
00:13:37.440 --> 00:13:42.759
<v Speaker 1>kind of funny. It's called closed xml. Oh. Closed xml

262
00:13:42.840 --> 00:13:45.759
<v Speaker 1>is a dot net library for reading, manipulating, and writing

263
00:13:45.919 --> 00:13:50.120
<v Speaker 1>Excel two thousand and seven plus files, which are xl

264
00:13:50.200 --> 00:13:51.240
<v Speaker 1>s x Right.

265
00:13:51.240 --> 00:13:53.440
<v Speaker 2>In two thousand and seven is when Microsoft switched over

266
00:13:53.480 --> 00:13:56.480
<v Speaker 2>to an XML file format for Excel and everything else

267
00:13:57.000 --> 00:13:57.679
<v Speaker 2>xl SM.

268
00:13:57.720 --> 00:14:00.240
<v Speaker 1>Also it aims to provide an intuitive and use a

269
00:14:00.320 --> 00:14:04.799
<v Speaker 1>friendly interface to dealing with the underlying open XML APIH

270
00:14:04.840 --> 00:14:07.600
<v Speaker 1>And that's where I thought it was funny because it's

271
00:14:07.679 --> 00:14:10.559
<v Speaker 1>using open XML. But they call it closed XML.

272
00:14:12.639 --> 00:14:13.240
<v Speaker 2>Troublemaker.

273
00:14:13.360 --> 00:14:17.480
<v Speaker 1>So it's still in early days. But you know, if

274
00:14:17.519 --> 00:14:19.279
<v Speaker 1>that's the kind of thing that you want to go

275
00:14:19.840 --> 00:14:21.080
<v Speaker 1>check out, go check it out.

276
00:14:21.120 --> 00:14:23.159
<v Speaker 2>To be able to directly read and write to an

277
00:14:23.200 --> 00:14:25.840
<v Speaker 2>Excel spreadsheet, I can think of some trouble I'd get

278
00:14:25.840 --> 00:14:29.440
<v Speaker 2>into with that. I remember calling calm objects to Excel

279
00:14:29.559 --> 00:14:32.960
<v Speaker 2>on a server to stuff stuff and do an Excel spreadsheet.

280
00:14:33.000 --> 00:14:34.279
<v Speaker 2>This would be a better way.

281
00:14:34.440 --> 00:14:37.000
<v Speaker 1>You think that's crazy, try using a calm object to

282
00:14:37.440 --> 00:14:39.799
<v Speaker 1>manipulate Skype remember that?

283
00:14:40.120 --> 00:14:43.240
<v Speaker 2>No, thanks, We used to do that. We used to Yeah,

284
00:14:43.320 --> 00:14:45.360
<v Speaker 2>we learned, we learned to stop.

285
00:14:47.279 --> 00:14:50.200
<v Speaker 1>Anyway, that's what I got today. Who's talking to Richard.

286
00:14:49.960 --> 00:14:52.399
<v Speaker 2>Grab the comment off a show two thousand because I

287
00:14:52.399 --> 00:14:54.039
<v Speaker 2>thought it'd be fun to grab a couple of those.

288
00:14:54.720 --> 00:14:57.120
<v Speaker 2>And here's a comment from his mail says, congrats boys,

289
00:14:57.120 --> 00:14:58.840
<v Speaker 2>I became a listener back in two thousand and eight. Well,

290
00:14:58.840 --> 00:15:05.159
<v Speaker 2>searching for share points content. Yeah, sorry, sorry, you're sorry

291
00:15:05.159 --> 00:15:07.960
<v Speaker 2>about that. Throw all those lives ups and downs, and

292
00:15:07.960 --> 00:15:10.039
<v Speaker 2>even stepping away from the industry, I always find myself

293
00:15:10.039 --> 00:15:13.799
<v Speaker 2>coming back for the comfort and sense of sanity. All right,

294
00:15:13.840 --> 00:15:16.440
<v Speaker 2>I think your crazy matches are crazy. Here is no

295
00:15:16.559 --> 00:15:19.679
<v Speaker 2>because I'm the sanity's always questionable. But he says, it

296
00:15:19.840 --> 00:15:23.159
<v Speaker 2>always felt like catching up with friends. Well that's good,

297
00:15:23.399 --> 00:15:28.000
<v Speaker 2>that's nice, thanks man, appreciate it. And so copy of

298
00:15:28.080 --> 00:15:29.519
<v Speaker 2>music Coby is on its way to you. And if

299
00:15:29.559 --> 00:15:30.919
<v Speaker 2>you'd like a copy of music Cobe, I write a

300
00:15:30.960 --> 00:15:33.240
<v Speaker 2>comment on the website at dot netroocks dot com or

301
00:15:33.279 --> 00:15:35.000
<v Speaker 2>on the facebooks. We publish every show there and if

302
00:15:35.000 --> 00:15:36.320
<v Speaker 2>you comment there and I read it on the show,

303
00:15:36.480 --> 00:15:37.679
<v Speaker 2>we'll send you copy of music O.

304
00:15:37.759 --> 00:15:40.840
<v Speaker 1>By all right, And that brings us to our guest today.

305
00:15:42.720 --> 00:15:50.159
<v Speaker 1>Ingebrigston is a Norwegian event sorcerer, software developer, architect and

306
00:15:50.200 --> 00:15:52.120
<v Speaker 1>his day to day job is working as a technical

307
00:15:52.120 --> 00:15:56.279
<v Speaker 1>advisor at Nova Net. He's the creator of Kratis. Did

308
00:15:56.279 --> 00:15:57.039
<v Speaker 1>I say that right?

309
00:15:57.200 --> 00:15:58.000
<v Speaker 3>Yeah?

310
00:15:58.399 --> 00:16:05.279
<v Speaker 1>Cretis cr tis. I got that last summer when I

311
00:16:05.360 --> 00:16:07.559
<v Speaker 1>was in a pool and nice for.

312
00:16:07.840 --> 00:16:10.320
<v Speaker 2>Anyway, Yeah.

313
00:16:10.440 --> 00:16:15.600
<v Speaker 1>Cratus and open source event sourcing q CQRS and productivity

314
00:16:15.639 --> 00:16:19.039
<v Speaker 1>platform for dot net. His passion lies in building quality

315
00:16:19.120 --> 00:16:21.919
<v Speaker 1>software that improves the lives of end users, and his

316
00:16:22.000 --> 00:16:25.159
<v Speaker 1>focus has been on event sourcing an event driven architecture

317
00:16:25.200 --> 00:16:28.480
<v Speaker 1>since twenty ten. I'll let you read the rest of

318
00:16:28.559 --> 00:16:32.039
<v Speaker 1>his amazing bio on the website dot rocks dot com.

319
00:16:32.080 --> 00:16:34.840
<v Speaker 3>Welcome miner, Oh, thank you, thanks for having me and

320
00:16:34.879 --> 00:16:38.279
<v Speaker 3>the congrats on your two thousand kind of show milestone.

321
00:16:38.360 --> 00:16:41.440
<v Speaker 3>It's quite amazing. I've been following you guys since I

322
00:16:41.440 --> 00:16:45.279
<v Speaker 3>guess mid two thousands, and you saved many a commute

323
00:16:45.960 --> 00:16:46.200
<v Speaker 3>for me.

324
00:16:47.279 --> 00:16:47.960
<v Speaker 2>Appreciate it.

325
00:16:48.039 --> 00:16:49.960
<v Speaker 1>I guess that's true. Part of the part of the

326
00:16:50.000 --> 00:16:52.440
<v Speaker 1>allure of dot net rocks is just to hear people

327
00:16:52.600 --> 00:16:56.759
<v Speaker 1>talking about stuff that you're doing right and using the

328
00:16:56.799 --> 00:16:57.879
<v Speaker 1>same vocabulary.

329
00:16:58.000 --> 00:17:02.919
<v Speaker 3>Yeah, yeah, absolutely, it's I mean, the service you're doing

330
00:17:03.000 --> 00:17:06.039
<v Speaker 3>is with kind of bunk. I've thought I kind of

331
00:17:06.119 --> 00:17:08.400
<v Speaker 3>learned a lot from you guys, right, so I think

332
00:17:08.400 --> 00:17:09.680
<v Speaker 3>a lot of people do right.

333
00:17:10.119 --> 00:17:14.839
<v Speaker 1>So events sourcing very very cool stuff in cqrs as well.

334
00:17:16.680 --> 00:17:19.720
<v Speaker 1>You gave us some show notes and talking points, and

335
00:17:20.000 --> 00:17:25.720
<v Speaker 1>you your starting story, your origin story in computers is

336
00:17:25.720 --> 00:17:28.279
<v Speaker 1>really kind of fun. So yeah, talk about that maybe

337
00:17:28.279 --> 00:17:28.759
<v Speaker 1>a little a.

338
00:17:29.000 --> 00:17:32.759
<v Speaker 3>Sure, So I guess is this is early eighties, as

339
00:17:33.200 --> 00:17:37.519
<v Speaker 3>kind of any kid of the eighties, well who we're

340
00:17:37.559 --> 00:17:41.920
<v Speaker 3>curious about technology got a computer, and more often than not,

341
00:17:41.960 --> 00:17:44.559
<v Speaker 3>it was probably a commod Our computer. Right, So I

342
00:17:44.599 --> 00:17:47.480
<v Speaker 3>started off with a I got for Christmas, like a

343
00:17:47.519 --> 00:17:52.160
<v Speaker 3>Commodore Week twenty kind of thing and nice. The fun

344
00:17:52.160 --> 00:17:54.839
<v Speaker 3>part is that I was living in a on the

345
00:17:55.039 --> 00:18:00.400
<v Speaker 3>the countryside basically, so there weren't many people around, so you, well,

346
00:18:00.519 --> 00:18:02.319
<v Speaker 3>you didn't have a lot of friends and all that.

347
00:18:02.480 --> 00:18:06.680
<v Speaker 3>So my best friend was actually my uncle, and he's

348
00:18:06.759 --> 00:18:10.279
<v Speaker 3>six years older than me, so it wasn't too bad.

349
00:18:10.759 --> 00:18:14.039
<v Speaker 3>And he had a Commodore sixty four and my dad

350
00:18:14.079 --> 00:18:18.599
<v Speaker 3>hasn't had a Commodore sixty four. So at one point

351
00:18:18.640 --> 00:18:22.000
<v Speaker 3>in time I just basically had a hostile takeover over

352
00:18:22.079 --> 00:18:24.880
<v Speaker 3>my dad's Commodore sixty four because I wanted to do

353
00:18:25.119 --> 00:18:28.200
<v Speaker 3>what my uncle was doing. Well, it was basically programming,

354
00:18:28.519 --> 00:18:32.599
<v Speaker 3>and that got me into like, okay, so basic at first,

355
00:18:32.640 --> 00:18:37.680
<v Speaker 3>but pretty early actually doing like assembly language on the

356
00:18:37.720 --> 00:18:38.680
<v Speaker 3>Commodore sixty four.

357
00:18:38.880 --> 00:18:39.160
<v Speaker 1>Wow.

358
00:18:39.440 --> 00:18:41.240
<v Speaker 2>Cool cool sixty five? Oh too, baby?

359
00:18:41.319 --> 00:18:41.519
<v Speaker 3>Yeah?

360
00:18:41.559 --> 00:18:47.000
<v Speaker 1>Yeah, which did you find first, Microsoft programming or sequel?

361
00:18:48.079 --> 00:18:51.880
<v Speaker 3>I Well, so if you look at my history. So

362
00:18:52.559 --> 00:18:56.240
<v Speaker 3>in professionally you mean yeah, yeah, yeah, So professionally I

363
00:18:56.240 --> 00:19:00.839
<v Speaker 3>started actually doing games development in ninety four, and at

364
00:19:00.839 --> 00:19:04.880
<v Speaker 3>that time I started actually doing my role was basically

365
00:19:04.920 --> 00:19:10.039
<v Speaker 3>doing two D and three D engine type of things

366
00:19:10.519 --> 00:19:15.519
<v Speaker 3>on different platforms like first dos Amostos games and then

367
00:19:15.599 --> 00:19:21.039
<v Speaker 3>later PlayStation and also some Super Nintendo and much later

368
00:19:21.480 --> 00:19:26.440
<v Speaker 3>also Xbox. Right, so we were very early on doing

369
00:19:26.799 --> 00:19:29.279
<v Speaker 3>so for the Microsoft part, so Amastos is one thing,

370
00:19:29.319 --> 00:19:32.119
<v Speaker 3>but there weren't any particular frameworks or anything like that.

371
00:19:32.200 --> 00:19:35.720
<v Speaker 3>But we were early adopters of the first Direct x one,

372
00:19:36.319 --> 00:19:39.519
<v Speaker 3>so before Windows ninety five came out, we actually started

373
00:19:39.559 --> 00:19:44.319
<v Speaker 3>in ninety four starting working on it. We had the

374
00:19:44.359 --> 00:19:47.119
<v Speaker 3>company that I worked for how to deal with Acclaim

375
00:19:47.440 --> 00:19:51.319
<v Speaker 3>software at that point, and we were doing Dragonheart, the

376
00:19:51.480 --> 00:19:56.759
<v Speaker 3>kind of the movie game version rate, and there was

377
00:19:56.799 --> 00:19:59.079
<v Speaker 3>a deal between Microsoft and a Claim at that point,

378
00:19:59.119 --> 00:20:01.079
<v Speaker 3>and we got early acts us two Direct X one.

379
00:20:01.359 --> 00:20:02.160
<v Speaker 2>So cool.

380
00:20:02.319 --> 00:20:05.559
<v Speaker 3>That's my first introduction to really kind of Microsoft, if

381
00:20:05.599 --> 00:20:08.480
<v Speaker 3>you will, right, but then C plus plus of course at.

382
00:20:08.359 --> 00:20:11.279
<v Speaker 2>That time, learning the early version of DirectX that's a

383
00:20:11.359 --> 00:20:14.880
<v Speaker 2>cruel way to start, my goodness. They were still trying

384
00:20:14.880 --> 00:20:16.440
<v Speaker 2>to figure out what they were trying to do there,

385
00:20:17.200 --> 00:20:18.400
<v Speaker 2>not bit blitting anymore.

386
00:20:18.519 --> 00:20:20.799
<v Speaker 1>Yeah, exactly, C plus plus I imagine.

387
00:20:20.920 --> 00:20:23.839
<v Speaker 3>Yeah, yeah, yeah definitely. And you were talking about like

388
00:20:23.880 --> 00:20:28.000
<v Speaker 3>calm objects. That was kind of my introduction to calm objects, right,

389
00:20:28.039 --> 00:20:30.359
<v Speaker 3>because direct x was so calm right.

390
00:20:30.920 --> 00:20:34.319
<v Speaker 2>Yeah, well it was bigger and heavier. It wasn't meant

391
00:20:34.319 --> 00:20:38.119
<v Speaker 2>for gaming, that's for sure. Yeah, Microsoft trying to find

392
00:20:38.160 --> 00:20:40.400
<v Speaker 2>a way to make because we were still kicking into

393
00:20:40.400 --> 00:20:44.000
<v Speaker 2>Dosmo to play games right then, right, because Windows was

394
00:20:44.079 --> 00:20:46.480
<v Speaker 2>just too sluggish for that sort of thing. There was

395
00:20:46.519 --> 00:20:48.279
<v Speaker 2>no way, just not the way you're right to the screen.

396
00:20:48.400 --> 00:20:50.759
<v Speaker 1>So when I remember the engineers that I worked with

397
00:20:50.799 --> 00:20:53.839
<v Speaker 1>that were doing Colm told me at the time was that,

398
00:20:54.599 --> 00:20:56.799
<v Speaker 1>you know, calm, once you have an object loaded and

399
00:20:56.839 --> 00:20:59.759
<v Speaker 1>in memory, it's really fast, you know, but it's that

400
00:21:00.039 --> 00:21:05.359
<v Speaker 1>whole discovery and loading thing that that is slow. I remember.

401
00:21:05.599 --> 00:21:09.559
<v Speaker 1>I think it was Garysnewsky who said, you know, Calm

402
00:21:09.640 --> 00:21:18.039
<v Speaker 1>is this beautiful, you know, evocation system surrounded by a

403
00:21:18.079 --> 00:21:19.519
<v Speaker 1>bunch of baroque bullshit.

404
00:21:23.440 --> 00:21:26.319
<v Speaker 2>He wasn't wrong, you had to interact with everything, but

405
00:21:26.440 --> 00:21:28.039
<v Speaker 2>you know, yeah, sort of the reality.

406
00:21:28.240 --> 00:21:30.640
<v Speaker 3>But if you look at it, like the original idea

407
00:21:30.759 --> 00:21:33.880
<v Speaker 3>was still very sound, because that's what we're trying to

408
00:21:33.920 --> 00:21:37.039
<v Speaker 3>aim for today as well with like reworte procedure goals.

409
00:21:37.119 --> 00:21:40.680
<v Speaker 3>But in a Yeah, so with service discovery and all that,

410
00:21:40.680 --> 00:21:44.160
<v Speaker 3>that was actually with a query interface and whatnot sitting there.

411
00:21:44.240 --> 00:21:47.000
<v Speaker 2>Yeah, we still have to keep resolving that problem every solfet.

412
00:21:47.039 --> 00:21:49.359
<v Speaker 2>How do I discover services? How do I understand how

413
00:21:49.400 --> 00:21:51.200
<v Speaker 2>to communicate with them? Then how do I communicate?

414
00:21:51.640 --> 00:21:53.079
<v Speaker 3>Yeah?

415
00:21:53.160 --> 00:21:55.599
<v Speaker 1>So what got you into events sourcing? An event modeling

416
00:21:55.599 --> 00:21:56.039
<v Speaker 1>and all that.

417
00:21:56.200 --> 00:21:58.759
<v Speaker 3>Yeah, So if you look at my background from gaming,

418
00:21:58.839 --> 00:22:02.000
<v Speaker 3>what we were doing in the nine we were already

419
00:22:02.039 --> 00:22:06.119
<v Speaker 3>at that point doing sort of event based systems. We

420
00:22:06.119 --> 00:22:09.119
<v Speaker 3>were doing message based, right, so we were passing messages

421
00:22:09.119 --> 00:22:12.680
<v Speaker 3>along and everything was really decoupled, like actor models stuff. Yeah,

422
00:22:12.680 --> 00:22:16.559
<v Speaker 3>and we had like crude actor models and stuff like that.

423
00:22:16.599 --> 00:22:18.839
<v Speaker 3>It was like sophisticated stuff that we have today. But

424
00:22:20.799 --> 00:22:22.680
<v Speaker 3>I was kind of I grew up in that. And

425
00:22:22.720 --> 00:22:27.240
<v Speaker 3>at one point we actually we moved city, so my

426
00:22:27.279 --> 00:22:29.400
<v Speaker 3>wife and me we moved city, and then the place

427
00:22:29.440 --> 00:22:32.839
<v Speaker 3>we moved there weren't that many gaming companies, so I

428
00:22:32.880 --> 00:22:36.599
<v Speaker 3>basically had to cut my hair I don't have much

429
00:22:36.680 --> 00:22:41.400
<v Speaker 3>of that and get a real job. And at that point,

430
00:22:41.680 --> 00:22:45.200
<v Speaker 3>so real job, meaning we'll get into database programming or

431
00:22:45.319 --> 00:22:49.759
<v Speaker 3>as minor business type of things. And I've always had

432
00:22:49.799 --> 00:22:52.759
<v Speaker 3>this inkling because I never got to be friends with

433
00:22:52.880 --> 00:22:56.799
<v Speaker 3>Sequel in a way. Right there was something I felt

434
00:22:56.960 --> 00:22:59.960
<v Speaker 3>was missing or something that was wrong, and we were

435
00:23:00.000 --> 00:23:03.920
<v Speaker 3>trying to solve things with the wrong technology right in

436
00:23:03.960 --> 00:23:06.799
<v Speaker 3>a way, because that particular domain that I was working

437
00:23:06.839 --> 00:23:10.480
<v Speaker 3>on was also it was in healthcare and we were

438
00:23:10.519 --> 00:23:14.359
<v Speaker 3>doing like shift management software, so audit trails were a

439
00:23:14.440 --> 00:23:18.200
<v Speaker 3>thing that was very very important to actually have for everything.

440
00:23:19.039 --> 00:23:23.440
<v Speaker 3>So and then a fore later years later, actually leaving

441
00:23:23.480 --> 00:23:27.920
<v Speaker 3>that job, I started doing e commerce. And at that

442
00:23:28.079 --> 00:23:33.359
<v Speaker 3>place that I started, everything was message oriented in a way,

443
00:23:33.799 --> 00:23:36.599
<v Speaker 3>so I got introduced into like okay so MSMQ and

444
00:23:36.640 --> 00:23:38.640
<v Speaker 3>all these kind of things, and I was like, oh, okay,

445
00:23:38.720 --> 00:23:42.079
<v Speaker 3>this is interesting. And this is right around the time

446
00:23:42.160 --> 00:23:45.880
<v Speaker 3>when people are now talking about like domainder of the sign.

447
00:23:46.920 --> 00:23:50.720
<v Speaker 3>We have Eric Evans mentioning domain events, we have Market

448
00:23:50.880 --> 00:23:53.519
<v Speaker 3>Powler doing the write up on domain events. We have

449
00:23:53.599 --> 00:23:56.000
<v Speaker 3>the CCRAS thing happening at the same time. It's like

450
00:23:56.200 --> 00:23:59.559
<v Speaker 3>it's like a perfect storm almost architecturally that's going on,

451
00:24:00.160 --> 00:24:05.440
<v Speaker 3>and I get really interested into it and we started

452
00:24:05.480 --> 00:24:09.240
<v Speaker 3>exploring with what could this mean? Like many at that time,

453
00:24:09.559 --> 00:24:14.599
<v Speaker 3>this is kind of late two thousands in I guess

454
00:24:14.640 --> 00:24:18.119
<v Speaker 3>in twenty ten we actually make the decision to start

455
00:24:18.680 --> 00:24:23.680
<v Speaker 3>rewriting the e commerce that I was on to start

456
00:24:23.759 --> 00:24:28.359
<v Speaker 3>using event sourcing. And my background is, like I said,

457
00:24:28.839 --> 00:24:31.920
<v Speaker 3>in the gaming industry, I was doing like engine work.

458
00:24:31.960 --> 00:24:33.720
<v Speaker 3>I was building the three D and two D engines,

459
00:24:34.200 --> 00:24:38.839
<v Speaker 3>and I love building actually developer tools for developers. So

460
00:24:38.920 --> 00:24:43.200
<v Speaker 3>my natural role was kind of, Okay, let's build something

461
00:24:43.240 --> 00:24:47.319
<v Speaker 3>that makes the other developers productive in this new way

462
00:24:47.359 --> 00:24:50.519
<v Speaker 3>of thinking. This is the event sourcing thing, and that's

463
00:24:50.839 --> 00:24:54.839
<v Speaker 3>kind of where the snowball started. It's like it's been

464
00:24:54.839 --> 00:24:57.119
<v Speaker 3>that journey ever since trying to figure out this thing

465
00:24:57.160 --> 00:24:59.319
<v Speaker 3>because there aren't any like out of the box like

466
00:24:59.359 --> 00:25:03.480
<v Speaker 3>Microsoft new project the event sourcing things, So it's been

467
00:25:03.559 --> 00:25:04.519
<v Speaker 3>evolving ever since.

468
00:25:04.599 --> 00:25:07.799
<v Speaker 1>Right, it's really a technique, not a product, Isn't it

469
00:25:08.319 --> 00:25:09.039
<v Speaker 1>event sort of thing?

470
00:25:09.440 --> 00:25:13.400
<v Speaker 3>Definitely is it's But when you start diving into it,

471
00:25:13.400 --> 00:25:16.960
<v Speaker 3>it's like, Okay, it's definitely a technique, and it's a

472
00:25:17.000 --> 00:25:20.920
<v Speaker 3>mindset in a way, starting to think about state changes

473
00:25:21.039 --> 00:25:24.119
<v Speaker 3>rather than your kind of current state. It's more like

474
00:25:24.160 --> 00:25:26.440
<v Speaker 3>how do we got there? How did we get there?

475
00:25:26.519 --> 00:25:28.839
<v Speaker 3>But when you start diving into it, there there are

476
00:25:29.279 --> 00:25:33.480
<v Speaker 3>certainly problems that could benefit from a product that actually

477
00:25:33.920 --> 00:25:37.240
<v Speaker 3>or a framework up would solve it once for like

478
00:25:37.559 --> 00:25:41.880
<v Speaker 3>sure compliance and all these things, data integrity, all these

479
00:25:42.759 --> 00:25:43.839
<v Speaker 3>small little bits and cases.

480
00:25:44.000 --> 00:25:47.519
<v Speaker 1>Right, So at the application level, at the application level,

481
00:25:47.519 --> 00:25:49.640
<v Speaker 1>you just do an update, but under the hood, it's

482
00:25:49.680 --> 00:25:53.000
<v Speaker 1>really writing a new record and dealing with all of

483
00:25:53.039 --> 00:25:55.160
<v Speaker 1>that stuff in a query the same way.

484
00:25:55.599 --> 00:25:57.039
<v Speaker 3>Yeah, yeah, definitely.

485
00:25:57.160 --> 00:26:01.640
<v Speaker 1>So is that kind of what your product is centered around?

486
00:26:01.759 --> 00:26:04.720
<v Speaker 3>Oh yeah, yeah, absolutely. So if you look at Creators,

487
00:26:04.559 --> 00:26:09.559
<v Speaker 3>it's a full open source solution. There's kind of different

488
00:26:09.839 --> 00:26:14.119
<v Speaker 3>products within it. Right, so you have the thing that's

489
00:26:14.160 --> 00:26:18.559
<v Speaker 3>centered around event sourcing purely is called Chronicle, and it's

490
00:26:18.599 --> 00:26:24.759
<v Speaker 3>a sort of a database solution. Although the storage engine

491
00:26:24.799 --> 00:26:27.759
<v Speaker 3>is not something we own. We don't really care about

492
00:26:28.079 --> 00:26:31.640
<v Speaker 3>the storage engines, so we're very agnostic and right now

493
00:26:31.640 --> 00:26:37.200
<v Speaker 3>we support like Mongo and pascrus ms SQL and seql

494
00:26:37.240 --> 00:26:41.200
<v Speaker 3>light as the underlying storage engines. Right. So on top

495
00:26:41.240 --> 00:26:46.640
<v Speaker 3>of that, we've built a reusable server component basically that

496
00:26:47.079 --> 00:26:50.519
<v Speaker 3>deals with all the heavy kind of hardlifting. Heavy lifting,

497
00:26:50.559 --> 00:26:53.920
<v Speaker 3>I mean, for what we think is important problems to

498
00:26:54.000 --> 00:26:55.119
<v Speaker 3>solve within event.

499
00:26:56.200 --> 00:26:58.559
<v Speaker 2>So what does that look like? What are my tricky

500
00:26:58.559 --> 00:26:59.160
<v Speaker 2>problems here?

501
00:26:59.720 --> 00:27:04.720
<v Speaker 3>Well, if you start with well simple things like projecting,

502
00:27:04.799 --> 00:27:06.599
<v Speaker 3>because one of the things you need to think about

503
00:27:06.720 --> 00:27:11.559
<v Speaker 3>is like, okay, we're appending events as they go, right,

504
00:27:11.599 --> 00:27:15.960
<v Speaker 3>So every time there is a significant domain well change

505
00:27:16.000 --> 00:27:18.279
<v Speaker 3>i would say yet state change in your system, you

506
00:27:18.319 --> 00:27:22.160
<v Speaker 3>would be appending that event. But for some scenarios, it

507
00:27:22.599 --> 00:27:26.680
<v Speaker 3>doesn't make sense to go and actually replay those events

508
00:27:27.640 --> 00:27:30.839
<v Speaker 3>just to display a list, right of something like a

509
00:27:30.880 --> 00:27:33.440
<v Speaker 3>master detailed type of scenario where you want to display

510
00:27:33.440 --> 00:27:36.119
<v Speaker 3>a list of things that you've recorded, like employees or

511
00:27:36.119 --> 00:27:38.640
<v Speaker 3>something like that. So what you want to do is

512
00:27:38.680 --> 00:27:43.200
<v Speaker 3>like materialize that, and that's what we do. We've got

513
00:27:43.200 --> 00:27:48.680
<v Speaker 3>something basically projections. It's part of kind of event sourcing,

514
00:27:49.359 --> 00:27:52.920
<v Speaker 3>and what you do is react to the events that

515
00:27:53.000 --> 00:27:59.079
<v Speaker 3>occur and write the current state. And what we've done,

516
00:27:59.119 --> 00:28:03.640
<v Speaker 3>for instance, is instead of having to imperatively go and

517
00:28:03.680 --> 00:28:07.319
<v Speaker 3>write that code that does that, because that can be

518
00:28:07.440 --> 00:28:10.680
<v Speaker 3>very complex when you start having complex models, what we've

519
00:28:10.680 --> 00:28:15.200
<v Speaker 3>done is create a projection engine that basically can let

520
00:28:15.240 --> 00:28:19.240
<v Speaker 3>you do relationships like you have a parent child relationships.

521
00:28:19.240 --> 00:28:22.880
<v Speaker 3>You can join things and from all these different events

522
00:28:23.279 --> 00:28:26.599
<v Speaker 3>and ordering doesn't really matter. It will just figure it

523
00:28:26.640 --> 00:28:28.119
<v Speaker 3>out and do the right thing.

524
00:28:28.200 --> 00:28:29.720
<v Speaker 2>It'll just populate what it gets.

525
00:28:29.839 --> 00:28:34.079
<v Speaker 3>Yeah, basically, So that's one thing that we're kind of

526
00:28:34.160 --> 00:28:37.279
<v Speaker 3>very proud of solving because what we're trying to do

527
00:28:37.359 --> 00:28:40.079
<v Speaker 3>is democratize the events sourcing. We're not trying to actually

528
00:28:40.119 --> 00:28:43.400
<v Speaker 3>build something that is for the event sourcing geeks, although

529
00:28:43.440 --> 00:28:46.319
<v Speaker 3>we want to maintain a good relationship with those as well,

530
00:28:47.000 --> 00:28:51.200
<v Speaker 3>so people that know event sourcing they also should feel

531
00:28:52.119 --> 00:28:54.599
<v Speaker 3>well right at home. But what we want to do

532
00:28:54.680 --> 00:29:00.680
<v Speaker 3>is basically, well, make event sourcing easy for everyone. So

533
00:29:00.799 --> 00:29:03.839
<v Speaker 3>that means we need to make something that feels a

534
00:29:03.880 --> 00:29:06.400
<v Speaker 3>little bit similar to what they're used to. So if

535
00:29:06.400 --> 00:29:08.440
<v Speaker 3>you're in a dot netspace, if you're used to like

536
00:29:08.519 --> 00:29:12.759
<v Speaker 3>NTO the framework, how can you produce events but easily

537
00:29:12.960 --> 00:29:15.440
<v Speaker 3>project So what we got is, for instance, like attributes

538
00:29:15.480 --> 00:29:17.359
<v Speaker 3>that you can put on like what we call a

539
00:29:17.400 --> 00:29:20.160
<v Speaker 3>read model, the thing that we actually materialize. You have

540
00:29:20.240 --> 00:29:23.440
<v Speaker 3>attributes that feels a little bit similar to antiy framework. Right,

541
00:29:23.519 --> 00:29:26.640
<v Speaker 3>just to saying from that event and all of a

542
00:29:26.680 --> 00:29:32.000
<v Speaker 3>sudden you've lowered the threshold for starting right and the entry

543
00:29:32.359 --> 00:29:35.279
<v Speaker 3>barrier basically for getting started.

544
00:29:35.279 --> 00:29:38.519
<v Speaker 2>This sounds very brown field friendly. That I could take

545
00:29:38.559 --> 00:29:41.559
<v Speaker 2>an existing application is start putting event streams into it

546
00:29:41.880 --> 00:29:44.839
<v Speaker 2>and surface it in a form that you're already familiar

547
00:29:44.839 --> 00:29:46.440
<v Speaker 2>with from regular database retrieval.

548
00:29:46.480 --> 00:29:49.880
<v Speaker 3>Yeah. Yeah, so it's kind of similar with when you

549
00:29:49.920 --> 00:29:54.759
<v Speaker 3>talk about like brownfield. Again, there's also the need for

550
00:29:54.799 --> 00:29:58.400
<v Speaker 3>actually integrating with the brown Field systems because brownd fast

551
00:29:58.400 --> 00:30:00.920
<v Speaker 3>systems and producing events. So one of the data that

552
00:30:00.960 --> 00:30:04.119
<v Speaker 3>we also have built into it is a changed data

553
00:30:04.160 --> 00:30:06.920
<v Speaker 3>capture language. So what you can actually go and do

554
00:30:07.200 --> 00:30:11.079
<v Speaker 3>is it's basically the reverse of a projection. So how

555
00:30:11.079 --> 00:30:15.000
<v Speaker 3>can we go and define state changes happening in a

556
00:30:15.079 --> 00:30:19.200
<v Speaker 3>database or an API, and when list in this field

557
00:30:19.319 --> 00:30:22.960
<v Speaker 3>changes together, that makes that event. Right, So we also

558
00:30:23.000 --> 00:30:26.000
<v Speaker 3>got that covered right, so that because that's super important,

559
00:30:25.759 --> 00:30:29.559
<v Speaker 3>most products out there or projects out there aren't greenfield,

560
00:30:29.640 --> 00:30:31.720
<v Speaker 3>so you need to kind of think of that as well.

561
00:30:31.720 --> 00:30:33.400
<v Speaker 3>How do you sure how do you get people to

562
00:30:33.440 --> 00:30:35.160
<v Speaker 3>start using it in a brown field scenario?

563
00:30:35.440 --> 00:30:37.720
<v Speaker 2>Well, yeah, and it strikes me that you're going down

564
00:30:37.759 --> 00:30:40.319
<v Speaker 2>the wrong path with your existing application trying to stuff

565
00:30:40.400 --> 00:30:43.839
<v Speaker 2>data into databases and so forth, and realize actually, you

566
00:30:43.880 --> 00:30:48.759
<v Speaker 2>know this is probably an event sourcing pattern solution, but

567
00:30:48.799 --> 00:30:49.759
<v Speaker 2>I don't want to start over.

568
00:30:50.119 --> 00:30:52.160
<v Speaker 1>Yeah, But also when you're doing that brown field thing,

569
00:30:52.200 --> 00:30:55.359
<v Speaker 1>you really kind of have to commit because on one

570
00:30:55.440 --> 00:30:59.799
<v Speaker 1>day you've got regular tables and rows and records and stuff,

571
00:30:59.799 --> 00:31:01.880
<v Speaker 1>and on the next day, what you have an entirely

572
00:31:01.960 --> 00:31:06.680
<v Speaker 1>different set of tables that you now have to rely on.

573
00:31:06.799 --> 00:31:10.319
<v Speaker 1>So you have to switch. Like it's It's not a

574
00:31:10.359 --> 00:31:11.759
<v Speaker 1>piecemeal thing, isn't.

575
00:31:11.880 --> 00:31:14.960
<v Speaker 3>No, absolutely not. So what you tend to do with

576
00:31:15.839 --> 00:31:18.160
<v Speaker 3>like when you have a brownfield, what you can do

577
00:31:18.319 --> 00:31:20.759
<v Speaker 3>is like produce the initial event. So let's say you

578
00:31:20.839 --> 00:31:23.200
<v Speaker 3>have you want to transfer something over and you started

579
00:31:23.880 --> 00:31:27.559
<v Speaker 3>like rewriting stuff and starting to produce events, but you

580
00:31:27.599 --> 00:31:30.720
<v Speaker 3>want that initial load. You can create these events that

581
00:31:30.799 --> 00:31:34.400
<v Speaker 3>represents that initial load that will be okay, this is

582
00:31:35.160 --> 00:31:38.279
<v Speaker 3>important event almost right, So you're importing the data that's

583
00:31:38.319 --> 00:31:40.880
<v Speaker 3>already there as an event. Because one of the things

584
00:31:40.920 --> 00:31:45.079
<v Speaker 3>that you you don't have to but I would strongly

585
00:31:45.119 --> 00:31:48.440
<v Speaker 3>recommend thinking about it is the replayability of these things,

586
00:31:48.440 --> 00:31:51.000
<v Speaker 3>because that's one of the biggest traits I would say

587
00:31:51.480 --> 00:31:55.200
<v Speaker 3>with event sourcing is the ability to actually replay at

588
00:31:55.200 --> 00:31:58.440
<v Speaker 3>any point in time. You can from a deburging perspective

589
00:31:58.480 --> 00:32:00.799
<v Speaker 3>or developer, and you can actually replay from a point

590
00:32:00.799 --> 00:32:03.480
<v Speaker 3>in time to a point in time and see what happens. Right,

591
00:32:03.519 --> 00:32:06.680
<v Speaker 3>So it's that power that you're looking for. It's the

592
00:32:07.640 --> 00:32:10.720
<v Speaker 3>and that gives you a lot of power.

593
00:32:11.160 --> 00:32:14.480
<v Speaker 1>So not for the developer that replay has to be fast,

594
00:32:14.519 --> 00:32:17.319
<v Speaker 1>doesn't it. I mean that's been early event sourcing. You

595
00:32:17.359 --> 00:32:18.960
<v Speaker 1>know you'd have to sit and wait for all those

596
00:32:18.960 --> 00:32:21.640
<v Speaker 1>things to be calculated. How do you deal with that exactly?

597
00:32:21.960 --> 00:32:25.319
<v Speaker 3>Yeah, that's actually a good question because it's one of

598
00:32:25.359 --> 00:32:29.039
<v Speaker 3>the things that we also see as important to solve,

599
00:32:29.200 --> 00:32:32.160
<v Speaker 3>right if you want people to adopt us. So what

600
00:32:32.200 --> 00:32:36.880
<v Speaker 3>we built into the thing is as a replay mechanism

601
00:32:36.880 --> 00:32:39.960
<v Speaker 3>that will actually pull it will do it in bulks,

602
00:32:40.039 --> 00:32:44.279
<v Speaker 3>so any things into the memory and do things in bulk,

603
00:32:44.319 --> 00:32:46.799
<v Speaker 3>and do it fast, right, so you can replay pretty fast.

604
00:32:47.359 --> 00:32:51.640
<v Speaker 3>And what we're also looking at like optimization because we

605
00:32:51.720 --> 00:32:54.279
<v Speaker 3>have since we have that projection engine that we think

606
00:32:54.359 --> 00:32:57.720
<v Speaker 3>will cover probably ninety plus percent of the use cases,

607
00:32:58.799 --> 00:33:01.319
<v Speaker 3>we can do that manner so that means we don't

608
00:33:01.359 --> 00:33:03.920
<v Speaker 3>have to call your code. That means we can do

609
00:33:03.960 --> 00:33:07.480
<v Speaker 3>everything in the server. So doing a replay is basically

610
00:33:08.119 --> 00:33:11.880
<v Speaker 3>in that server and are the entire architecture. Our server

611
00:33:11.960 --> 00:33:13.759
<v Speaker 3>is built on top of Microsoft or Leans, so we

612
00:33:13.759 --> 00:33:17.200
<v Speaker 3>can actually scale that out. Okay, so we can do that,

613
00:33:17.319 --> 00:33:17.720
<v Speaker 3>and we.

614
00:33:17.880 --> 00:33:21.279
<v Speaker 1>There's your actor actor model coming back to exactly.

615
00:33:23.160 --> 00:33:28.480
<v Speaker 3>So finally back to where I was like thirty years ago.

616
00:33:27.960 --> 00:33:32.039
<v Speaker 3>So what that gives us is the since we do

617
00:33:32.079 --> 00:33:35.559
<v Speaker 3>a replay per petition, and petition for us is more

618
00:33:35.640 --> 00:33:39.000
<v Speaker 3>like think of it as the primary key, right, So

619
00:33:39.079 --> 00:33:42.960
<v Speaker 3>if you have things that are related to one employee

620
00:33:43.279 --> 00:33:45.640
<v Speaker 3>that will typically have a unique key in the system,

621
00:33:45.920 --> 00:33:49.279
<v Speaker 3>that's the event sorce ide and that's the primary key

622
00:33:49.279 --> 00:33:51.519
<v Speaker 3>that we will use for replay. So we will then

623
00:33:51.599 --> 00:33:56.960
<v Speaker 3>replay every one of these keys individually and in parallel

624
00:33:56.960 --> 00:33:59.240
<v Speaker 3>and just let or Leans scale it basically.

625
00:34:00.119 --> 00:34:00.319
<v Speaker 2>Good.

626
00:34:00.319 --> 00:34:01.839
<v Speaker 1>This seems like a good time to take a break,

627
00:34:01.880 --> 00:34:04.359
<v Speaker 1>so we'll be right back after these very important messages.

628
00:34:04.400 --> 00:34:11.639
<v Speaker 1>Don't go away, and we're back. It's not in at Rocks.

629
00:34:11.719 --> 00:34:14.840
<v Speaker 1>I'm Carl Franklin. That's Richard Campbell, hey, and we're talking

630
00:34:14.840 --> 00:34:21.719
<v Speaker 1>to Einar Inga Brigson's about his creatus and specifically we're

631
00:34:21.719 --> 00:34:24.639
<v Speaker 1>talking about Chronicle, right, because as you said, there's several

632
00:34:24.679 --> 00:34:27.800
<v Speaker 1>parts to create us. So we're talking about the events sourcing.

633
00:34:28.159 --> 00:34:32.639
<v Speaker 3>Yeah, so you could kind of circle back to the

634
00:34:32.719 --> 00:34:36.440
<v Speaker 3>other things if we get time. But I think the

635
00:34:36.880 --> 00:34:40.039
<v Speaker 3>if you look at what we're doing with, you asked

636
00:34:40.079 --> 00:34:43.280
<v Speaker 3>the question of what are the problem or the hard

637
00:34:43.360 --> 00:34:46.519
<v Speaker 3>tough problems for solving? Right, So I mentioned a couple

638
00:34:46.559 --> 00:34:50.920
<v Speaker 3>of hours like projection, replay and all these kind of things,

639
00:34:50.920 --> 00:34:57.079
<v Speaker 3>But one more specific thing is something like compliance. If

640
00:34:57.079 --> 00:35:02.079
<v Speaker 3>you look at compliance and PII, right, being European GDPR

641
00:35:02.199 --> 00:35:04.840
<v Speaker 3>and all that, there are certain rules for how you

642
00:35:04.880 --> 00:35:09.559
<v Speaker 3>actually manage data. So one of the things that is tough,

643
00:35:10.159 --> 00:35:14.239
<v Speaker 3>well disregard event sourcing is tough actually in regular applications

644
00:35:14.320 --> 00:35:18.039
<v Speaker 3>as well, how do you deal with PII. So what

645
00:35:18.079 --> 00:35:20.360
<v Speaker 3>we've landed on is like, so if you looked at

646
00:35:20.440 --> 00:35:24.760
<v Speaker 3>the GDPR rules, there's this concept of pseudomization, like you

647
00:35:24.800 --> 00:35:28.360
<v Speaker 3>had to go in and represent Well, you can either

648
00:35:29.039 --> 00:35:31.480
<v Speaker 3>like put data in a different data store and have

649
00:35:31.599 --> 00:35:34.000
<v Speaker 3>like a pointer to it and that's your I don't know,

650
00:35:34.079 --> 00:35:37.400
<v Speaker 3>your token that represents the other thing or what we've

651
00:35:37.440 --> 00:35:40.679
<v Speaker 3>decided to do is actually encrypted and we want to

652
00:35:40.760 --> 00:35:43.880
<v Speaker 3>encrypt it not as a there's one key for the

653
00:35:44.039 --> 00:35:46.880
<v Speaker 3>entire thing, but there's a one key per subject. So

654
00:35:46.920 --> 00:35:49.159
<v Speaker 3>if you're dealing with the events that's related to like

655
00:35:49.199 --> 00:35:52.519
<v Speaker 3>a person, that's back to the primary key that was talking. Again,

656
00:35:52.719 --> 00:35:55.159
<v Speaker 3>the event source ID would be the default for that,

657
00:35:55.239 --> 00:35:57.599
<v Speaker 3>but you can also specify a subject ID if you

658
00:35:57.639 --> 00:36:02.440
<v Speaker 3>want to, and we then general a key per that subject.

659
00:36:03.199 --> 00:36:05.920
<v Speaker 3>That means when our user comes and say, hey, I

660
00:36:05.960 --> 00:36:08.360
<v Speaker 3>want to be forgotten, which is one of the GITA

661
00:36:08.519 --> 00:36:11.719
<v Speaker 3>TDPR things that you have to actually implement, we can

662
00:36:11.760 --> 00:36:16.800
<v Speaker 3>go and then just throw away that encryption, right, that's

663
00:36:16.840 --> 00:36:21.559
<v Speaker 3>the crypto shredding. Yeah, but not lose the history. So

664
00:36:21.599 --> 00:36:23.519
<v Speaker 3>we will still have the history, but we would will

665
00:36:23.599 --> 00:36:26.960
<v Speaker 3>not be able to see the properties on the event. Well,

666
00:36:27.000 --> 00:36:29.320
<v Speaker 3>we will see what happened, right.

667
00:36:29.280 --> 00:36:32.320
<v Speaker 1>That's very smart. It's kind of a shortcut if you

668
00:36:32.400 --> 00:36:36.159
<v Speaker 1>will sort of macros into specific things.

669
00:36:37.039 --> 00:36:39.960
<v Speaker 3>So those things are kind of hard to solve in

670
00:36:40.000 --> 00:36:43.119
<v Speaker 3>a consistent way. And when we're thinking about these things,

671
00:36:43.119 --> 00:36:47.480
<v Speaker 3>we're thinking holistically. So how do we You shouldn't as

672
00:36:47.480 --> 00:36:50.840
<v Speaker 3>a developer need to think about these things. We should

673
00:36:50.840 --> 00:36:53.320
<v Speaker 3>just depend an event. And what we do is we

674
00:36:53.400 --> 00:36:56.519
<v Speaker 3>have this attribute called PII, So you can add that

675
00:36:56.719 --> 00:37:00.800
<v Speaker 3>attribute to a specific property. You go and added to

676
00:37:00.920 --> 00:37:03.320
<v Speaker 3>what we call a concept that the main concept, which

677
00:37:03.320 --> 00:37:06.400
<v Speaker 3>is basically a value type, so a record that represents

678
00:37:06.440 --> 00:37:09.920
<v Speaker 3>that value, and once you add the PII onto it,

679
00:37:10.400 --> 00:37:14.320
<v Speaker 3>we will encrypt that automatically for that subject. And the

680
00:37:14.320 --> 00:37:16.280
<v Speaker 3>beauty about it is that if you use that same

681
00:37:16.719 --> 00:37:21.599
<v Speaker 3>property or that type on a read model, we will

682
00:37:21.639 --> 00:37:25.360
<v Speaker 3>decrypt that automatically for you. So for you as a developer,

683
00:37:25.360 --> 00:37:28.239
<v Speaker 3>this is completely well, you don't have to think about

684
00:37:28.280 --> 00:37:32.480
<v Speaker 3>it as just yeah, transparent for you. Right. So it's

685
00:37:32.519 --> 00:37:35.360
<v Speaker 3>those kinds of things, and that's where we're playing a

686
00:37:35.400 --> 00:37:38.199
<v Speaker 3>little bit into that arc side of things because we

687
00:37:38.280 --> 00:37:41.719
<v Speaker 3>need that to fit together as a kind of holistic

688
00:37:41.920 --> 00:37:44.800
<v Speaker 3>model with an application model that supports it as well.

689
00:37:45.199 --> 00:37:50.159
<v Speaker 3>Because Chronicle has one purpose and that solve event sourcing problems.

690
00:37:50.639 --> 00:37:54.239
<v Speaker 3>While there are more problems. That's not calling problems so

691
00:37:54.400 --> 00:37:59.320
<v Speaker 3>challenges of course in this space and kind of if

692
00:37:59.360 --> 00:38:04.280
<v Speaker 3>you think of about consistency for instance, like eventual consistency

693
00:38:04.360 --> 00:38:06.360
<v Speaker 3>is a definite thing that you need to think about,

694
00:38:06.679 --> 00:38:10.519
<v Speaker 3>and also when you think about venture consistency because when

695
00:38:10.559 --> 00:38:15.079
<v Speaker 3>you're appending an event, there could be well depending on

696
00:38:15.119 --> 00:38:18.800
<v Speaker 3>your system, but million seconds before the actual projection has

697
00:38:18.840 --> 00:38:20.960
<v Speaker 3>happened and they read model is consistent.

698
00:38:21.159 --> 00:38:21.840
<v Speaker 2>Right.

699
00:38:22.000 --> 00:38:24.360
<v Speaker 3>So one of the things that you need to think

700
00:38:24.360 --> 00:38:27.039
<v Speaker 3>about then is the UX. How do you deal with

701
00:38:27.280 --> 00:38:31.599
<v Speaker 3>UX for a good develop user experience for the for

702
00:38:31.639 --> 00:38:35.760
<v Speaker 3>the end user, well, you want to know when that

703
00:38:35.920 --> 00:38:38.360
<v Speaker 3>happens so you can actually update the data. So that's

704
00:38:38.400 --> 00:38:42.480
<v Speaker 3>where the arc part of this story. The second product

705
00:38:42.679 --> 00:38:47.400
<v Speaker 3>comes in and helps with doing like formalization of commands

706
00:38:47.400 --> 00:38:51.239
<v Speaker 3>and queries, and you can do like observable queries. So

707
00:38:51.280 --> 00:38:56.239
<v Speaker 3>instead of having you know, like signal R where you

708
00:38:56.320 --> 00:38:59.679
<v Speaker 3>have these singular hubs, instead of thinking in those technical

709
00:38:59.719 --> 00:39:02.800
<v Speaker 3>distrac actions, you basically go in and you just create

710
00:39:02.840 --> 00:39:05.519
<v Speaker 3>these queries. You can either do it with like ASP

711
00:39:05.599 --> 00:39:11.079
<v Speaker 3>dot net regular like well gets basically and as long

712
00:39:11.119 --> 00:39:14.280
<v Speaker 3>as you return an I subject or you have an

713
00:39:14.280 --> 00:39:18.639
<v Speaker 3>ASYNC numerable that you return, we will automatically interpret that

714
00:39:18.800 --> 00:39:23.119
<v Speaker 3>as a observable query and add a well either a

715
00:39:23.159 --> 00:39:27.639
<v Speaker 3>web socket or a service center events endpoint for that automatically.

716
00:39:28.280 --> 00:39:32.920
<v Speaker 3>And what we then do is we've focused on on

717
00:39:33.719 --> 00:39:38.840
<v Speaker 3>I guess the biggest framework front and framework in the

718
00:39:38.880 --> 00:39:41.880
<v Speaker 3>world right now is still React. So what we've done

719
00:39:41.920 --> 00:39:43.840
<v Speaker 3>is focus on how can we make a good developer

720
00:39:43.920 --> 00:39:47.039
<v Speaker 3>experience from a dot net back into a react front

721
00:39:47.079 --> 00:39:52.119
<v Speaker 3>und So we've created then a thing that generates kind

722
00:39:52.119 --> 00:39:56.400
<v Speaker 3>of boilerplate code to link this up. So then don't

723
00:39:56.440 --> 00:39:59.039
<v Speaker 3>have to think about the transport, because the transport is

724
00:39:59.800 --> 00:40:02.199
<v Speaker 3>just an abstraction. Is something that should just be there.

725
00:40:02.639 --> 00:40:06.760
<v Speaker 3>Whether it's HDDP website, is AHDB two service center events,

726
00:40:06.960 --> 00:40:09.440
<v Speaker 3>gRPC web or whatever it doesn't really care about, you

727
00:40:09.440 --> 00:40:14.199
<v Speaker 3>should still be using the same abstraction basically being your queries.

728
00:40:15.360 --> 00:40:17.599
<v Speaker 1>So when you think you're going to become a real programmer,

729
00:40:18.079 --> 00:40:22.920
<v Speaker 1>just curious. I mean, the stuff that you're talking about

730
00:40:23.000 --> 00:40:26.719
<v Speaker 1>here is so advanced from and so out of the

731
00:40:26.760 --> 00:40:30.159
<v Speaker 1>realm of most you know, forms over data programmers, Like,

732
00:40:30.239 --> 00:40:31.599
<v Speaker 1>this is real stuff here.

733
00:40:32.239 --> 00:40:32.719
<v Speaker 3>Thank you.

734
00:40:32.800 --> 00:40:38.800
<v Speaker 1>That's amazing. I don't think you could vibe code it.

735
00:40:39.199 --> 00:40:42.119
<v Speaker 2>But I also begs the question like will and LLM

736
00:40:42.199 --> 00:40:44.440
<v Speaker 2>simplify some of this help you put the right pieces

737
00:40:44.440 --> 00:40:45.199
<v Speaker 2>in the right place.

738
00:40:45.519 --> 00:40:50.280
<v Speaker 3>Yeah, So we've been very hard the last year, especially

739
00:40:50.320 --> 00:40:52.199
<v Speaker 3>as everyone else kind of focused on kind of the

740
00:40:52.199 --> 00:40:54.519
<v Speaker 3>web coding side of things. How do we how do

741
00:40:54.559 --> 00:40:58.000
<v Speaker 3>we make this easy to do? In in that sense,

742
00:40:58.039 --> 00:41:01.679
<v Speaker 3>how do we help developers actually use llms to actually

743
00:41:01.679 --> 00:41:05.840
<v Speaker 3>build this. So one of the things that we really

744
00:41:05.920 --> 00:41:09.880
<v Speaker 3>like is the I guess you haven't had Adam dimitric

745
00:41:09.960 --> 00:41:14.400
<v Speaker 3>on talking about event modeling while yeah, yeah, yeah, So

746
00:41:14.760 --> 00:41:16.920
<v Speaker 3>we really like that idea. It's a it's a really

747
00:41:16.960 --> 00:41:20.800
<v Speaker 3>good idea to actually represent software and design software. And

748
00:41:20.880 --> 00:41:23.719
<v Speaker 3>it brings with it this a whole idea of vertical slices,

749
00:41:24.760 --> 00:41:27.440
<v Speaker 3>and that is super helpful when we talk about LMS

750
00:41:27.599 --> 00:41:32.239
<v Speaker 3>being kind of confining the LLLM to these small, tiny,

751
00:41:33.239 --> 00:41:37.000
<v Speaker 3>very focused vertical slices. And what we do is also

752
00:41:37.119 --> 00:41:40.159
<v Speaker 3>promote the idea of actually having the front endcode and

753
00:41:40.199 --> 00:41:41.960
<v Speaker 3>the back end code and the same slice in the

754
00:41:42.000 --> 00:41:46.159
<v Speaker 3>same folder and actually make it very high cohesive like that.

755
00:41:47.039 --> 00:41:50.239
<v Speaker 3>And with that and all the stuff that we've done,

756
00:41:50.320 --> 00:41:52.920
<v Speaker 3>it's like we've created skills and we created instructions and

757
00:41:52.960 --> 00:41:57.000
<v Speaker 3>all this stuff to make it easier. We can crank

758
00:41:57.079 --> 00:42:00.920
<v Speaker 3>out really fast with the customer that we're working out

759
00:42:01.639 --> 00:42:04.880
<v Speaker 3>right now. So it's creating a new feature is super simple.

760
00:42:04.920 --> 00:42:09.599
<v Speaker 3>And what's also really nice about it is that what's

761
00:42:09.679 --> 00:42:12.039
<v Speaker 3>different with if you look at like a credit application,

762
00:42:12.159 --> 00:42:15.360
<v Speaker 3>you basically have like your your nouns in your database.

763
00:42:15.719 --> 00:42:20.119
<v Speaker 3>But what we have is very clearly named events saying

764
00:42:20.199 --> 00:42:23.519
<v Speaker 3>something very specific to what kind of state transition is

765
00:42:23.559 --> 00:42:27.760
<v Speaker 3>represented in the system, and the LMS eat this bide

766
00:42:28.559 --> 00:42:33.360
<v Speaker 3>up like nothing, right, So it's kind of easier for

767
00:42:33.400 --> 00:42:35.960
<v Speaker 3>it to actually understand it because they can see the process.

768
00:42:36.119 --> 00:42:39.039
<v Speaker 2>Yeah, it's declarative, right, it's got the descriptive so the

769
00:42:39.039 --> 00:42:40.159
<v Speaker 2>tools should be able to grab it.

770
00:42:40.719 --> 00:42:46.039
<v Speaker 3>Yeah. Absolutely. So we've had great experience with us and

771
00:42:46.280 --> 00:42:49.960
<v Speaker 3>helped us a lot, but we're doing something new now

772
00:42:50.000 --> 00:42:52.760
<v Speaker 3>as well because the event modeling is something that we

773
00:42:52.840 --> 00:42:56.519
<v Speaker 3>really believe in and we're building out this I don't

774
00:42:56.519 --> 00:42:59.760
<v Speaker 3>know if it's call it a lo code kind of

775
00:43:00.199 --> 00:43:03.920
<v Speaker 3>thing where you basically it's an editor for event modeling

776
00:43:03.920 --> 00:43:05.920
<v Speaker 3>where you can actually dragon drop things and you can

777
00:43:06.159 --> 00:43:11.519
<v Speaker 3>create the flows, the event modeling flows, and basically click

778
00:43:11.559 --> 00:43:14.760
<v Speaker 3>play and it will be a running application because we

779
00:43:14.920 --> 00:43:19.760
<v Speaker 3>have we have the engine, and what we're mixing into.

780
00:43:19.639 --> 00:43:22.119
<v Speaker 1>Is like VB for event sourcing exactly.

781
00:43:22.199 --> 00:43:27.159
<v Speaker 3>I yeaes VB. It had its place. I did actually

782
00:43:27.159 --> 00:43:30.599
<v Speaker 3>say that a few years ago to a team at

783
00:43:30.639 --> 00:43:33.159
<v Speaker 3>a place I worked. It's like if you look at

784
00:43:33.440 --> 00:43:36.039
<v Speaker 3>VB and if you look at wind forms and later

785
00:43:36.280 --> 00:43:41.599
<v Speaker 3>what we had with the expression Suite right, Microsoft Expressions.

786
00:43:42.960 --> 00:43:47.400
<v Speaker 3>What they did there was really really, really great. So

787
00:43:48.039 --> 00:43:51.960
<v Speaker 3>we lost all that and then years later fakemat comes

788
00:43:52.199 --> 00:43:54.920
<v Speaker 3>and they're not, in my humble opinion, not even remotely

789
00:43:54.920 --> 00:43:58.639
<v Speaker 3>close to what we actually lost. So what we want

790
00:43:58.679 --> 00:44:01.599
<v Speaker 3>to do is kind of well, bring back some of

791
00:44:01.639 --> 00:44:03.760
<v Speaker 3>the goodness from the old days. Like we have all

792
00:44:03.840 --> 00:44:06.320
<v Speaker 3>the UI designers and all that, and you can do

793
00:44:06.400 --> 00:44:10.320
<v Speaker 3>data binding, combine it with the flows where you can

794
00:44:10.320 --> 00:44:13.079
<v Speaker 3>actually design the commands and the events and the read

795
00:44:13.119 --> 00:44:16.760
<v Speaker 3>models and all that, and the rules and relationships and whatnot,

796
00:44:17.440 --> 00:44:20.679
<v Speaker 3>and also on top of that be able to describe

797
00:44:21.360 --> 00:44:23.679
<v Speaker 3>if you need something very custom you just put a

798
00:44:23.679 --> 00:44:27.760
<v Speaker 3>description there for the LLM to on top of the

799
00:44:27.800 --> 00:44:30.079
<v Speaker 3>generated code that we do to actually go in and

800
00:44:30.880 --> 00:44:34.519
<v Speaker 3>modify and make it exactly how you want it.

801
00:44:35.159 --> 00:44:39.440
<v Speaker 2>Nice. Yeah, and I could see, well, this whole studio idea,

802
00:44:39.480 --> 00:44:41.719
<v Speaker 2>it's like half the time you're drawing on the whiteboard

803
00:44:41.800 --> 00:44:45.119
<v Speaker 2>the event sourcing flow. Anyway, the fact that you have

804
00:44:45.159 --> 00:44:47.239
<v Speaker 2>a tool that would at least to help you visualize

805
00:44:47.320 --> 00:44:50.559
<v Speaker 2>and then also implement it's very powerful.

806
00:44:50.639 --> 00:44:53.719
<v Speaker 3>Yeah. So for us, it's also important that what we

807
00:44:53.800 --> 00:44:57.360
<v Speaker 3>generate as code, right, so you can.

808
00:44:57.239 --> 00:45:01.800
<v Speaker 2>Then truth is what you're generating in r truth in

809
00:45:01.840 --> 00:45:04.000
<v Speaker 2>the code exactly.

810
00:45:05.000 --> 00:45:07.599
<v Speaker 3>But then the developers can take over or your AI

811
00:45:07.800 --> 00:45:10.679
<v Speaker 3>or whatever, because then you at least have a starting

812
00:45:10.679 --> 00:45:15.119
<v Speaker 3>point that's you got there faster and you went down

813
00:45:15.119 --> 00:45:19.039
<v Speaker 3>the right path more of deterministic because because lms are

814
00:45:19.320 --> 00:45:24.320
<v Speaker 3>notoriously non deterministic. So yeah, this is a combination of

815
00:45:24.480 --> 00:45:28.119
<v Speaker 3>deterministic and then AI on top. Right.

816
00:45:28.679 --> 00:45:32.079
<v Speaker 2>Well, and I've found already with folks that are being

817
00:45:32.079 --> 00:45:34.760
<v Speaker 2>successful with these tools that the more constraint you put on,

818
00:45:34.880 --> 00:45:37.599
<v Speaker 2>the better they get. So the idea that you essentially,

819
00:45:37.719 --> 00:45:42.199
<v Speaker 2>almost from an architectural level, are defining these event workflows

820
00:45:43.039 --> 00:45:46.480
<v Speaker 2>is setting constraints around the LM to work within those

821
00:45:46.599 --> 00:45:50.679
<v Speaker 2>architectural rules rather than letting it run roundant exactly.

822
00:45:51.039 --> 00:45:54.519
<v Speaker 3>Constraints are a good thing actually, so I know, it's totally.

823
00:45:54.559 --> 00:45:58.239
<v Speaker 2>They're good good for people too, write Like software problems

824
00:45:58.239 --> 00:46:00.679
<v Speaker 2>get a lot more coherent when you've got a box

825
00:46:00.719 --> 00:46:01.320
<v Speaker 2>to work.

826
00:46:01.119 --> 00:46:02.199
<v Speaker 3>In, exactly.

827
00:46:02.440 --> 00:46:09.280
<v Speaker 1>So constraints liberate Yeah, yeah, you know what you're working in. Yeah.

828
00:46:09.320 --> 00:46:11.960
<v Speaker 1>So did we talk about versioning?

829
00:46:12.360 --> 00:46:14.920
<v Speaker 3>No? No, no, So that's another thing that is a

830
00:46:15.719 --> 00:46:18.239
<v Speaker 3>thing that you need support for. So think of it

831
00:46:18.239 --> 00:46:21.480
<v Speaker 3>as you already do this if you if you think

832
00:46:21.480 --> 00:46:25.440
<v Speaker 3>about like anto the framework, you do your EF migrations, right,

833
00:46:25.480 --> 00:46:28.039
<v Speaker 3>so you have your table and you oh, I need

834
00:46:28.039 --> 00:46:30.559
<v Speaker 3>to add a column to this table, and you do

835
00:46:30.639 --> 00:46:33.760
<v Speaker 3>another version. And so what you need to think about

836
00:46:33.800 --> 00:46:37.280
<v Speaker 3>these things in event sourcing or in general in events

837
00:46:37.559 --> 00:46:40.360
<v Speaker 3>basically as well, So how do you version that? And

838
00:46:40.400 --> 00:46:43.960
<v Speaker 3>what it's no different what we've done is basically very

839
00:46:43.960 --> 00:46:46.480
<v Speaker 3>similar to how you do with antidy framework. You basically

840
00:46:46.480 --> 00:46:50.320
<v Speaker 3>go in and create this migration like up and downs that says,

841
00:46:50.760 --> 00:46:53.760
<v Speaker 3>when I'm going from this generation of this event to this,

842
00:46:54.440 --> 00:46:57.199
<v Speaker 3>I'm going to have, well, this new property, I'm going

843
00:46:57.239 --> 00:46:59.840
<v Speaker 3>to default the value to this, I'm gonna maybe I

844
00:47:00.280 --> 00:47:04.079
<v Speaker 3>rename the event or things like this, and you can

845
00:47:04.119 --> 00:47:09.400
<v Speaker 3>also like merge properties. But what you're doing is you're

846
00:47:09.440 --> 00:47:12.719
<v Speaker 3>doing it at a much fine grain level, so rather

847
00:47:12.760 --> 00:47:15.199
<v Speaker 3>than like a table, you're actually doing it on each

848
00:47:15.239 --> 00:47:19.639
<v Speaker 3>individual event. And the interesting part that we see is

849
00:47:19.679 --> 00:47:22.840
<v Speaker 3>that most of the time you don't really need these

850
00:47:22.840 --> 00:47:26.679
<v Speaker 3>things because if there is a change, it's usually because

851
00:47:26.719 --> 00:47:29.199
<v Speaker 3>you're doing some change to the domain, which means you're

852
00:47:29.199 --> 00:47:33.559
<v Speaker 3>introducing a new event or you're retiring an event. So

853
00:47:33.639 --> 00:47:37.440
<v Speaker 3>you stop producing an event. So, because if you get

854
00:47:37.480 --> 00:47:40.800
<v Speaker 3>to the right level of modeling these events and don't

855
00:47:41.119 --> 00:47:46.039
<v Speaker 3>fall into a few traps with like credit events types

856
00:47:46.079 --> 00:47:51.199
<v Speaker 3>of events, you basically end up with these small atomic

857
00:47:51.280 --> 00:47:54.840
<v Speaker 3>state changes that's going on. And it's not that you

858
00:47:55.199 --> 00:47:58.519
<v Speaker 3>necessarily need to kind of do these migrations.

859
00:47:59.079 --> 00:48:01.400
<v Speaker 2>The problem once you do that sort of thing, isn't

860
00:48:01.400 --> 00:48:05.519
<v Speaker 2>that break replayability. You've introduced a new event requirement or

861
00:48:05.559 --> 00:48:07.400
<v Speaker 2>you've removed one that's going to be generated in an

862
00:48:07.400 --> 00:48:09.679
<v Speaker 2>old replay, Like, how do you tolerate that?

863
00:48:10.119 --> 00:48:20.079
<v Speaker 3>Excellent question, So you're putting me up right, job. So

864
00:48:20.960 --> 00:48:24.320
<v Speaker 3>of this is actually so when we started designing this

865
00:48:24.360 --> 00:48:26.039
<v Speaker 3>whole thing, we had to think about these things that

866
00:48:26.440 --> 00:48:29.519
<v Speaker 3>everything had to be version. So what we do is

867
00:48:29.559 --> 00:48:35.400
<v Speaker 3>actually when we append an event, we append for every

868
00:48:35.760 --> 00:48:39.280
<v Speaker 3>version of that event. So that means when we append

869
00:48:39.280 --> 00:48:42.559
<v Speaker 3>one event, we actually if there are different versions of it,

870
00:48:42.639 --> 00:48:47.760
<v Speaker 3>we migrate it during appending. So that means if you're

871
00:48:47.800 --> 00:48:51.840
<v Speaker 3>appending a version three, we will actually downgrade it automatically

872
00:48:51.920 --> 00:48:53.960
<v Speaker 3>to two and one. And the reason we do this

873
00:48:54.079 --> 00:48:57.159
<v Speaker 3>is because we want to be backwards and forward compatible, right,

874
00:48:57.239 --> 00:49:00.920
<v Speaker 3>so we can then be able to actually replay it

875
00:49:00.960 --> 00:49:03.119
<v Speaker 3>to Let's say you have two different clients using the

876
00:49:03.159 --> 00:49:07.679
<v Speaker 3>same thing at different levels of versioning of those events,

877
00:49:07.840 --> 00:49:11.119
<v Speaker 3>you can actually still have those running like think micro

878
00:49:11.199 --> 00:49:13.960
<v Speaker 3>services or things like this, you can still have them

879
00:49:14.039 --> 00:49:17.079
<v Speaker 3>running side by side and still be able to produce

880
00:49:17.559 --> 00:49:21.480
<v Speaker 3>or consume each other's events because of this, So we

881
00:49:21.519 --> 00:49:26.320
<v Speaker 3>store it version and we just handle it because well,

882
00:49:26.320 --> 00:49:29.920
<v Speaker 3>of course you might be lagging behind on the migration,

883
00:49:30.119 --> 00:49:32.599
<v Speaker 3>so we will then migrate on the fly for.

884
00:49:32.599 --> 00:49:35.599
<v Speaker 2>You sun And of course, again we're talking about real

885
00:49:35.639 --> 00:49:37.360
<v Speaker 2>life software where you're not always going to have the

886
00:49:37.440 --> 00:49:40.119
<v Speaker 2>latest version everywhere anyway. Yeah, exactly, so you just you

887
00:49:40.199 --> 00:49:42.840
<v Speaker 2>might as well build that tolerance in for old versions

888
00:49:42.880 --> 00:49:45.360
<v Speaker 2>are always going to be around. Arguably, old visions never

889
00:49:45.480 --> 00:49:50.239
<v Speaker 2>actually go away. You spend any time living on you know,

890
00:49:50.360 --> 00:49:53.280
<v Speaker 2>generalized message bus with a bunch of you know, different

891
00:49:53.519 --> 00:49:57.159
<v Speaker 2>groups making tools onto that bus, you quickly figure out

892
00:49:57.239 --> 00:49:59.480
<v Speaker 2>do not try and synchronized versions. That is the path

893
00:49:59.519 --> 00:50:03.280
<v Speaker 2>to doom. Tolerate the fact that some the different folks

894
00:50:03.280 --> 00:50:04.960
<v Speaker 2>are going to upgrade at different times. I got to

895
00:50:05.000 --> 00:50:07.159
<v Speaker 2>live together, and even when it was a common code,

896
00:50:07.199 --> 00:50:09.239
<v Speaker 2>I had one where we had a common code base,

897
00:50:09.719 --> 00:50:12.320
<v Speaker 2>but different administrative teams just weren't going to upgrade at

898
00:50:12.320 --> 00:50:15.639
<v Speaker 2>the same time, so we could never the possibility of

899
00:50:15.639 --> 00:50:18.920
<v Speaker 2>retiring a version of anything. You know, like how it

900
00:50:19.000 --> 00:50:20.280
<v Speaker 2>was one of those things where we're, you know, once

901
00:50:20.280 --> 00:50:22.480
<v Speaker 2>a quarter we do a report of how many V

902
00:50:22.599 --> 00:50:25.480
<v Speaker 2>one messages did we still get this quarter? It's like,

903
00:50:25.599 --> 00:50:27.960
<v Speaker 2>how many quarters of zero before we believe we can

904
00:50:28.000 --> 00:50:29.039
<v Speaker 2>actually turn this off?

905
00:50:29.280 --> 00:50:32.119
<v Speaker 3>Yeah, yeah, yeah exactly, And you're basically you don't want

906
00:50:32.119 --> 00:50:34.320
<v Speaker 3>to have that problem, really, so you want to be

907
00:50:34.360 --> 00:50:38.559
<v Speaker 3>able to deliver software as fast as possible. So the okay,

908
00:50:38.800 --> 00:50:40.679
<v Speaker 3>I know there's a kind of upgrading when it comes

909
00:50:40.719 --> 00:50:43.079
<v Speaker 3>to microservices. People are kind of going away from that

910
00:50:43.199 --> 00:50:46.320
<v Speaker 3>and talking about modular monoliths and whatnot. But if you

911
00:50:46.360 --> 00:50:49.039
<v Speaker 3>go back to the idea of actually splitting up software,

912
00:50:49.480 --> 00:50:53.960
<v Speaker 3>the whole idea behind microservices weren't a technical problem per se.

913
00:50:54.039 --> 00:50:56.639
<v Speaker 3>It wasn't like, oh, we need to scale. I always

914
00:50:56.679 --> 00:51:00.400
<v Speaker 3>saw it as a way to deploy software and be

915
00:51:00.480 --> 00:51:04.039
<v Speaker 3>able to deploy different parts of the software at different cadences. Right,

916
00:51:04.079 --> 00:51:07.559
<v Speaker 3>So I want to just do that, and if you

917
00:51:07.639 --> 00:51:10.039
<v Speaker 3>want to accomplish that that this is much easier if

918
00:51:10.039 --> 00:51:12.800
<v Speaker 3>you actually then go to this level, this fine grain

919
00:51:12.920 --> 00:51:15.239
<v Speaker 3>level and then have the versioning at this level.

920
00:51:15.599 --> 00:51:17.840
<v Speaker 2>Yeah, yeah, and have it available a time. We sort

921
00:51:17.840 --> 00:51:19.960
<v Speaker 2>of came to conclusions like, you know, it doesn't hurt anybody.

922
00:51:20.039 --> 00:51:22.760
<v Speaker 2>Software that nobody ever runs, you know, like it just

923
00:51:22.840 --> 00:51:25.280
<v Speaker 2>it didn't matter, right, Like why are we turning that off?

924
00:51:25.320 --> 00:51:29.440
<v Speaker 2>What are we saving disk space? I got enough disk space, dude,

925
00:51:29.559 --> 00:51:31.840
<v Speaker 2>Like we'll be okay, right.

926
00:51:32.639 --> 00:51:35.719
<v Speaker 3>Thanks to big data. Of course, thanks big data too.

927
00:51:35.719 --> 00:51:38.079
<v Speaker 2>That's what that is. But you know, it was also

928
00:51:38.119 --> 00:51:40.400
<v Speaker 2>getting to a place where, hey, if an old message

929
00:51:40.440 --> 00:51:42.239
<v Speaker 2>like that shows up, it's sitting in a queue anyway.

930
00:51:42.519 --> 00:51:44.679
<v Speaker 2>You don't have to have a V one instance up

931
00:51:44.679 --> 00:51:48.000
<v Speaker 2>and running. They can wait while you light it up

932
00:51:48.039 --> 00:51:50.639
<v Speaker 2>and spin it and let it process the message and

933
00:51:50.679 --> 00:51:52.960
<v Speaker 2>finish its results and then shut off again.

934
00:51:53.519 --> 00:51:57.519
<v Speaker 1>Yeah, very cool. So do we talk about all the

935
00:51:57.559 --> 00:52:00.920
<v Speaker 1>parts of Creatus that you want to or I mean

936
00:52:00.920 --> 00:52:04.199
<v Speaker 1>there's some other things there. Components and tools and documentation?

937
00:52:05.239 --> 00:52:06.840
<v Speaker 1>Are those the two main thing.

938
00:52:06.800 --> 00:52:11.400
<v Speaker 2>We're pressing press we pressed against components from the React perspective, Yeah,

939
00:52:11.480 --> 00:52:14.159
<v Speaker 2>the studio is the cool new I think we're there.

940
00:52:14.239 --> 00:52:16.079
<v Speaker 3>Yeah, it's uh, that's a fairly.

941
00:52:16.320 --> 00:52:18.679
<v Speaker 1>Anything else you want to talk about before we sign off?

942
00:52:18.760 --> 00:52:22.199
<v Speaker 3>Well, I think we've kind of covered the most important bits.

943
00:52:22.239 --> 00:52:25.000
<v Speaker 3>Of course, there's the devil is in the detail. There's

944
00:52:25.079 --> 00:52:27.480
<v Speaker 3>a lot of details if you look at your pro

945
00:52:27.760 --> 00:52:32.239
<v Speaker 3>and the docs there. And but I think if well,

946
00:52:32.320 --> 00:52:35.840
<v Speaker 3>if people are curious about this, well join our discord.

947
00:52:36.320 --> 00:52:40.760
<v Speaker 3>We're always there. Uh well, poke me, ask me anything.

948
00:52:40.840 --> 00:52:45.239
<v Speaker 3>I'm readily available. And yeah, if there's anything wrong with

949
00:52:45.280 --> 00:52:48.239
<v Speaker 3>our documentation, samples, whatever, we're here to help.

950
00:52:48.719 --> 00:52:51.800
<v Speaker 1>Awes fantastic Ironer. Thank you very much for joining us

951
00:52:51.800 --> 00:52:52.880
<v Speaker 1>on dot neir rocks today.

952
00:52:52.960 --> 00:52:54.239
<v Speaker 3>Well, thank you guys for having me.

953
00:52:54.400 --> 00:52:56.840
<v Speaker 1>You bet, and we'll talk to you next time on

954
00:52:57.000 --> 00:53:19.880
<v Speaker 1>dot net drops. Dot net Rocks is brought to you

955
00:53:19.920 --> 00:53:23.960
<v Speaker 1>by Franklin's Net and produced by Pop Studios, a full

956
00:53:24.000 --> 00:53:28.199
<v Speaker 1>service audio, video and post production facility located physically in

957
00:53:28.280 --> 00:53:32.000
<v Speaker 1>New London, Connecticut, and of course in the cloud online

958
00:53:32.039 --> 00:53:35.920
<v Speaker 1>at pwop dot com. Visit our website at d O

959
00:53:36.039 --> 00:53:38.159
<v Speaker 1>T N E t R O c k S dot

960
00:53:38.199 --> 00:53:43.480
<v Speaker 1>com for RSS feeds, downloads, mobile apps, comments, and access

961
00:53:43.480 --> 00:53:46.360
<v Speaker 1>to the full archives going back to show number one,

962
00:53:46.559 --> 00:53:49.679
<v Speaker 1>recorded in September two thousand and two. And make sure

963
00:53:49.719 --> 00:53:52.320
<v Speaker 1>you check out our sponsors. They keep us in business.

964
00:53:52.800 --> 00:53:56.480
<v Speaker 1>Now go write some code. See you next time. Got

965
00:53:56.559 --> 00:53:59.000
<v Speaker 1>J Middlevans.

966
00:54:00.119 --> 00:54:04.199
<v Speaker 2>The summer time that means is home.

967
00:54:04.719 --> 00:54:07.079
<v Speaker 1>Then my Texes in line resin
