1
00:00:01,080 --> 00:00:03,000
Speaker 1: How'd you like to listen to dot net rocks with

2
00:00:03,040 --> 00:00:03,799
no ads?

3
00:00:04,440 --> 00:00:04,799
Speaker 2: Easy?

4
00:00:05,360 --> 00:00:08,560
Speaker 1: Become a patron for just five dollars a month. You

5
00:00:08,599 --> 00:00:11,320
get access to a private RSS feed where all the

6
00:00:11,359 --> 00:00:14,560
shows have no ads. Twenty dollars a month, we'll get

7
00:00:14,599 --> 00:00:17,679
you that and a special dot net Rocks patron mug.

8
00:00:18,160 --> 00:00:34,320
Sign up now at patreon dot dot NetRocks dot com. Hey,

9
00:00:34,399 --> 00:00:37,079
welcome back to dot net rocks. I'm Carl Franklin at

10
00:00:37,119 --> 00:00:40,679
Amerchard Cabell, and we are gonna be talking to Jimmy

11
00:00:40,719 --> 00:00:44,479
Bogard real quick as you do again, probably for the

12
00:00:44,880 --> 00:00:46,960
what time, maybe eighth or nine?

13
00:00:46,960 --> 00:00:50,479
Speaker 2: No, No, it's been a few Yeah, he hangs around,

14
00:00:50,799 --> 00:00:51,399
Yeah he does.

15
00:00:51,759 --> 00:00:55,759
Speaker 1: But before that, Richard, let's talk a little bit about

16
00:00:55,840 --> 00:00:58,719
what happened in nineteen forty one. Oh, just this little

17
00:00:58,759 --> 00:01:02,840
thing called Pearl Harbor that geez, yes, yeah, I kind

18
00:01:02,840 --> 00:01:06,439
of mentioned that the US entering the war yeap December seventh,

19
00:01:06,560 --> 00:01:11,760
the date that will live in FAMI. This year was

20
00:01:11,840 --> 00:01:15,120
also marked by widespread conflict, of course, with millions of

21
00:01:15,200 --> 00:01:19,040
casualties and the escalation of the Holocaust. It wasn't a

22
00:01:19,079 --> 00:01:24,200
happy year. But according to the movie nineteen forty one,

23
00:01:24,879 --> 00:01:25,719
High Wood.

24
00:01:26,159 --> 00:01:30,920
Speaker 2: It was a romp though. I mean he was starting

25
00:01:30,920 --> 00:01:33,120
to make it a play on the craziness in California

26
00:01:33,159 --> 00:01:36,400
of the risk of the Japanese invading the mainland, which

27
00:01:36,519 --> 00:01:40,359
was definitely a thing. Yeah, yeah, but a fun waste

28
00:01:40,359 --> 00:01:42,319
of two hours. If you want to watch that movie,

29
00:01:42,400 --> 00:01:42,840
maybe I.

30
00:01:42,760 --> 00:01:44,560
Speaker 1: Think it was a longer movie, wasn't it.

31
00:01:44,560 --> 00:01:49,000
Speaker 2: It was long. Yeah, It's one of Spielberg's very few debacles.

32
00:01:49,040 --> 00:01:53,359
From a box offer's perspective. Sped to fortune and it

33
00:01:53,400 --> 00:01:54,239
didn't make much.

34
00:01:54,319 --> 00:01:57,719
Speaker 1: They spent a fortune, mostly on destroying things. I think

35
00:01:57,760 --> 00:02:00,799
it has one of the records for most money spent

36
00:02:00,879 --> 00:02:04,319
on destruction. So daft and John Belushi, of course doesn't.

37
00:02:04,439 --> 00:02:07,920
He doesn't really have that big of a part in it,

38
00:02:08,039 --> 00:02:10,120
but he is kind of funny.

39
00:02:10,639 --> 00:02:11,039
Speaker 2: All right.

40
00:02:11,280 --> 00:02:13,319
Speaker 1: Well that's what I got for nineteen forty one.

41
00:02:13,319 --> 00:02:16,479
Speaker 2: What about you, Richard, I'm gone to talk about Conrad

42
00:02:16,560 --> 00:02:21,080
Zoos Conrad Zeus. Conrad Zoos in nineteen forty one implemented

43
00:02:21,080 --> 00:02:23,759
a computer called the Z three, which is arguably the

44
00:02:23,800 --> 00:02:30,159
first true programmable with software computer in the world. Several

45
00:02:30,280 --> 00:02:34,560
years before von Neuman even defined all the specifications for

46
00:02:34,680 --> 00:02:38,199
what a proper computer would be and it's called the

47
00:02:38,319 --> 00:02:40,680
Z three because it was his third to tenth. He

48
00:02:40,879 --> 00:02:43,800
was working in Nazi Germany, although the Nazis weren't all

49
00:02:43,840 --> 00:02:46,759
that interested in it. It used, it had all the

50
00:02:46,800 --> 00:02:50,039
things you can think of, floating point arithmetic, input and

51
00:02:50,080 --> 00:02:52,919
output device is a control unit, and it stored its

52
00:02:52,960 --> 00:02:55,960
programs on a punch tape reader. But he didn't use

53
00:02:56,000 --> 00:02:58,680
paper because paper was already in short supply. He used

54
00:02:58,800 --> 00:03:03,159
old movie film. Oh wow, So he punched hole they

55
00:03:03,319 --> 00:03:05,120
punched tape rate to punch holes in the movie film

56
00:03:05,199 --> 00:03:07,719
to store his programs. But he only had a few

57
00:03:07,840 --> 00:03:12,800
hundred bytes to work with, right, because it's nineteen forty one, right,

58
00:03:13,800 --> 00:03:17,319
But it was the sort of first complete what Bond

59
00:03:17,319 --> 00:03:19,159
Newman would consider a computer.

60
00:03:19,919 --> 00:03:22,599
Speaker 1: And so I imagine this is way before transistors, so

61
00:03:22,800 --> 00:03:24,120
vacuum tubes.

62
00:03:24,319 --> 00:03:27,800
Speaker 2: Not even largely mechanical, you know, a bunch of that

63
00:03:27,840 --> 00:03:31,080
stuff was Z one was fully mechanical. This was sort

64
00:03:31,120 --> 00:03:35,879
of a hybrid. But yeah, sixty four words of memory,

65
00:03:36,199 --> 00:03:39,560
so we didn't even have the term bite at that point.

66
00:03:39,639 --> 00:03:42,039
So yeah, so what a word is two bytes? Right?

67
00:03:42,120 --> 00:03:44,800
I think it depends on what you mean. In nineteen

68
00:03:44,879 --> 00:03:48,280
forty one, right, it's complicated, but yeah, it was a

69
00:03:48,319 --> 00:03:52,479
programmable digital computer in nineteen forty one that nobody valued.

70
00:03:52,759 --> 00:03:53,240
So cool.

71
00:03:53,319 --> 00:03:56,439
Speaker 1: I had no idea, and he escaped to Switzerland before

72
00:03:56,479 --> 00:03:58,240
the end of the war with a bunch of his

73
00:03:58,319 --> 00:04:01,039
tech and built his fourth machine, called the Z four,

74
00:04:01,680 --> 00:04:06,800
which continued to run in Switzerland till the nineteen nineties. Wow,

75
00:04:07,039 --> 00:04:10,680
no relationship to the Z eighty, which is a xylogue chip, right,

76
00:04:10,840 --> 00:04:14,400
nothing to do with that at all. Yeah, wow, very cool.

77
00:04:15,080 --> 00:04:17,240
All right, Well with that, let's roll the music for

78
00:04:17,319 --> 00:04:18,319
better No a framework?

79
00:04:26,079 --> 00:04:26,920
Speaker 2: A man, what do you got?

80
00:04:27,000 --> 00:04:28,560
Speaker 1: So this is a kind of a cool blog post

81
00:04:28,560 --> 00:04:31,839
I ran into it's relatively new things you should know

82
00:04:31,879 --> 00:04:34,680
about HTML heading into twenty twenty five.

83
00:04:34,959 --> 00:04:35,439
Speaker 2: Interesting.

84
00:04:35,480 --> 00:04:38,759
Speaker 1: That's a great thought, right, So it says not all

85
00:04:38,800 --> 00:04:42,680
of this is like absolutely brand spanking new, just dropped

86
00:04:42,680 --> 00:04:45,079
in twenty twenty four stuff. Some of it is, but

87
00:04:45,360 --> 00:04:48,759
generally it's relatively new stuff. That's all pretty great. I'm

88
00:04:48,759 --> 00:04:51,279
pointing things out that I think are really worth knowing about.

89
00:04:51,600 --> 00:04:54,720
It's possible you haven't kept up too much with HTML developments,

90
00:04:54,800 --> 00:04:57,839
as it tends to rightfully move a lot slower than

91
00:04:57,959 --> 00:05:02,199
say CSS or JavaScript. Sure, so I'm just gonna leave

92
00:05:02,240 --> 00:05:05,839
that right there. I've read it and it's it's good.

93
00:05:06,079 --> 00:05:08,560
I learned a lot of stuff. So just head over

94
00:05:08,639 --> 00:05:12,000
to what is this nineteen forty one dot pwop dot

95
00:05:12,120 --> 00:05:15,759
me e, or go to the show notes and get

96
00:05:15,759 --> 00:05:16,079
the link.

97
00:05:16,360 --> 00:05:18,199
Speaker 2: It's a good article. So always the first link in

98
00:05:18,240 --> 00:05:20,040
the list HTML. In twenty twenty five.

99
00:05:19,920 --> 00:05:22,079
Speaker 1: Yep, So who's talking to us today, Richard?

100
00:05:22,199 --> 00:05:27,439
Speaker 2: So this is the seventh show with mister Bogart Panelted

101
00:05:27,560 --> 00:05:29,839
Dipraama a few years back. The very first one was

102
00:05:29,879 --> 00:05:32,920
only in twenty fourteen, which is embarrassing really because as

103
00:05:32,920 --> 00:05:34,639
we all know, he was actually part of the n

104
00:05:34,720 --> 00:05:37,000
hibername mafia. Even though he's one of the quieter ones,

105
00:05:37,040 --> 00:05:38,720
we should have probably been talking to him back then.

106
00:05:39,399 --> 00:05:41,560
Speaker 1: Yeah, that says a lot for Jimmy though he was

107
00:05:41,600 --> 00:05:42,120
one of the choir.

108
00:05:42,199 --> 00:05:45,800
Speaker 2: It was like the polite alt dot letter right, Yeah,

109
00:05:45,920 --> 00:05:47,639
I mean he wasn't wrong. The guy was doing open

110
00:05:47,639 --> 00:05:50,399
source before it was cool. And as we pointed out

111
00:05:50,439 --> 00:05:52,959
to Jeremy a while ago, actually it's like, you know,

112
00:05:53,000 --> 00:05:57,360
you guys won right like this the core movement taking

113
00:05:57,399 --> 00:06:01,040
away the vitriol, the core movement of use more open source,

114
00:06:01,240 --> 00:06:04,879
not just stuff made by Microsoft. Even Microsoft now thinks

115
00:06:04,920 --> 00:06:06,120
that's a good idea, Like.

116
00:06:06,160 --> 00:06:08,439
Speaker 1: Yeah, and Jeremy's like, I'd rather not talk about that.

117
00:06:08,480 --> 00:06:10,199
Speaker 2: I'd rather not talk about it, and I just probably

118
00:06:10,240 --> 00:06:12,399
suspend the Jimmy's very much in that same boat. But

119
00:06:12,519 --> 00:06:15,279
jumping back to twenty twenty three episode eighteen sixty two

120
00:06:15,279 --> 00:06:20,680
where we talked about mediator, got this comment from Alex Krause.

121
00:06:20,720 --> 00:06:22,639
He goes on a bit, So I'm going to summarize

122
00:06:22,680 --> 00:06:24,399
because he just say, hey, this is a bit of

123
00:06:24,439 --> 00:06:26,920
a rough feedback, and he's been listening to the show

124
00:06:26,959 --> 00:06:31,560
for a long time, and what he really gets into

125
00:06:31,680 --> 00:06:34,639
it's like, if you the mediator pattern, which of course

126
00:06:34,680 --> 00:06:36,279
is what media is built on, along with a bunch

127
00:06:36,279 --> 00:06:39,040
of other tools along with the coupling, brings a violation

128
00:06:39,079 --> 00:06:42,160
of the explicit dependencies principle, where a class should clearly

129
00:06:42,199 --> 00:06:45,160
indicate what it needs in order to function, and hiding

130
00:06:45,160 --> 00:06:48,759
dependencies backfires was run times errors and more complex call stacks.

131
00:06:49,720 --> 00:06:51,399
It's not like this is the first time's come around.

132
00:06:51,480 --> 00:06:53,600
Serve your locator back in two thousand and four or

133
00:06:53,680 --> 00:06:57,000
so then became an anti pattern. Maybe we're just coming

134
00:06:57,000 --> 00:06:58,759
back around again. He says, don't get me wrong, I've

135
00:06:58,759 --> 00:07:01,199
successfully used the media or on many projects and I'm

136
00:07:01,199 --> 00:07:04,040
not against it. Just the fact that most evs blindly

137
00:07:04,079 --> 00:07:06,720
treated as the only way of good programming makes my

138
00:07:06,879 --> 00:07:09,920
enrobal raise awareness to its downsides. I'm going to leave

139
00:07:09,920 --> 00:07:11,519
that to Jimmy to comment on me, because I think

140
00:07:11,560 --> 00:07:13,680
you know everything comes with a price, without a doubt.

141
00:07:13,680 --> 00:07:17,240
But Alex you wrote, only wrote it a year ago,

142
00:07:17,399 --> 00:07:19,240
But thanks so much for your comment and a copy

143
00:07:19,240 --> 00:07:20,519
of music co buy. It's on its way to you,

144
00:07:20,560 --> 00:07:22,199
and if you'd like a copy music Cobe. I wrote

145
00:07:22,199 --> 00:07:23,879
a comment on the website at dot at rocks dot

146
00:07:23,920 --> 00:07:25,800
com ra on the facebooks. We publish every show there,

147
00:07:26,000 --> 00:07:27,319
and if you comment there and I read in the show,

148
00:07:27,319 --> 00:07:28,920
we'll send your copy music code.

149
00:07:28,639 --> 00:07:30,959
Speaker 1: And of course music to code by has a Brandy

150
00:07:31,120 --> 00:07:33,759
spank in New Well about a month old now track

151
00:07:34,680 --> 00:07:37,720
twenty two, So did you get it? Music tooco by

152
00:07:37,800 --> 00:07:40,800
dot net You can get that by itself, the entire

153
00:07:40,839 --> 00:07:45,079
collection as MP three wave or flak.

154
00:07:46,279 --> 00:07:47,000
Speaker 2: So there you go.

155
00:07:47,680 --> 00:07:49,480
Speaker 1: And also you can get us all on the social

156
00:07:49,519 --> 00:07:52,720
media's of of course, we've been on ex Twitter forever,

157
00:07:53,480 --> 00:07:57,560
We're on Macedon and also Blue Sky some form of

158
00:07:57,800 --> 00:08:00,360
at Carl Franklin and at Rich Campbell you'll find.

159
00:08:00,240 --> 00:08:02,680
Speaker 2: Out that's right. You can generally find us there, yep.

160
00:08:03,680 --> 00:08:08,480
Speaker 1: So officially, let me introduce Jimmy Bogard as if he

161
00:08:08,519 --> 00:08:11,000
needs an introduction by now. He's a superstar, but he

162
00:08:11,120 --> 00:08:14,199
is the creator and maintainer of the popular open source

163
00:08:14,319 --> 00:08:21,600
libraries Auto Mapper and mediator Meedia t capital R. Jimmy

164
00:08:21,639 --> 00:08:24,759
is an independent software consultant based in Austin, Texas. He's

165
00:08:24,800 --> 00:08:29,439
received the Microsoft Most Valuable Professional Award or the MVP

166
00:08:29,560 --> 00:08:33,559
Award every year since two thousand and nine. Jimmy, how

167
00:08:33,679 --> 00:08:37,120
you doing and how do you respond to that comment?

168
00:08:37,279 --> 00:08:41,679
Speaker 3: Well? I was doing well. I should mention, though, I

169
00:08:42,080 --> 00:08:44,519
have a very strict policy on negative feedback from my

170
00:08:44,559 --> 00:08:47,399
open source and must be submitted in writing with a

171
00:08:47,440 --> 00:08:54,240
self dress stamped envelope to po box. Not kidding, I

172
00:08:54,240 --> 00:08:56,200
mean I've heard that a lot. It's all software's all

173
00:08:56,240 --> 00:08:58,279
trade offs. I tend to shy away from these kind

174
00:08:58,320 --> 00:09:02,320
of like hard and fast principles of software development because

175
00:09:02,320 --> 00:09:06,720
it's just like someone's opinion, man, yep, And so to me,

176
00:09:06,799 --> 00:09:08,799
it's it's it's all about that sort of trade off

177
00:09:08,799 --> 00:09:11,559
and really, to me, the patterns that enables are more

178
00:09:11,559 --> 00:09:14,799
interesting than like that that strict thing, that strict sort

179
00:09:14,840 --> 00:09:17,240
of thing. So in other other kind of frameworks, I

180
00:09:17,279 --> 00:09:19,279
just do different stuff. I don't know if you've had

181
00:09:19,279 --> 00:09:23,519
the fast end points folks on, but they've got a

182
00:09:23,679 --> 00:09:27,840
similar kind of thing that doesn't use like this, uh

183
00:09:28,200 --> 00:09:30,120
doesn't have the kind of design issues. So I don't

184
00:09:30,120 --> 00:09:31,919
care about that sort of stuff. I just look at, well,

185
00:09:31,919 --> 00:09:34,480
what is does this enable the kind of development, the

186
00:09:34,559 --> 00:09:37,039
kind of patterns I want? Otherwise I don't get too

187
00:09:37,080 --> 00:09:38,080
hung up on that sort of stuff.

188
00:09:38,159 --> 00:09:42,559
Speaker 1: Yeah, we pretty much rail against absolutism because only siths

189
00:09:42,960 --> 00:09:44,159
speak in absolutes.

190
00:09:44,320 --> 00:09:47,000
Speaker 3: And as we know, I mean at the end of

191
00:09:47,000 --> 00:09:48,960
the day, like I'm just I'm there to ship features

192
00:09:48,960 --> 00:09:51,159
for the customer and all the other stuff like they

193
00:09:51,159 --> 00:09:53,320
don't care. They don't care about that stuff like can

194
00:09:53,320 --> 00:09:55,879
I ship features today and can I continue to ship

195
00:09:55,879 --> 00:09:59,360
feezer features fast going forward? That's really what they care about.

196
00:09:59,559 --> 00:10:01,799
Speaker 2: And not to focus on mediator because we've already done

197
00:10:01,879 --> 00:10:05,200
that show. But there are particular scenarios where the mediator

198
00:10:05,240 --> 00:10:06,159
approach makes sense.

199
00:10:06,360 --> 00:10:06,879
Speaker 1: Absolutely.

200
00:10:07,039 --> 00:10:11,679
Speaker 3: Yeah, it's it's it's just name pattern with known benefits

201
00:10:11,679 --> 00:10:14,799
and drawbacks. You just you just understand when it's when

202
00:10:14,840 --> 00:10:16,960
it's helpful, when when you don't want those drawbacks. And

203
00:10:17,080 --> 00:10:17,879
that's pretty much.

204
00:10:17,799 --> 00:10:20,600
Speaker 2: It, right, And it's true most things.

205
00:10:20,840 --> 00:10:24,320
Speaker 3: Yep, as my hair has gotten gray or I start

206
00:10:24,360 --> 00:10:26,519
to care less about that sort of stuff.

207
00:10:26,480 --> 00:10:29,799
Speaker 2: Yeah, yep. You know. The more you know, you more

208
00:10:29,799 --> 00:10:34,919
you realize no one right way on anything. All right, Well,

209
00:10:34,960 --> 00:10:38,200
congratulations on version fourteen of Automapper. I don't know how

210
00:10:38,240 --> 00:10:38,919
that happened.

211
00:10:39,000 --> 00:10:40,480
Speaker 3: It's a teenager. It's all growed up.

212
00:10:40,799 --> 00:10:42,919
Speaker 2: Yeah, no kidding, it's like thinking about driving.

213
00:10:43,360 --> 00:10:44,720
Speaker 1: What year did that come out?

214
00:10:44,840 --> 00:10:48,919
Speaker 3: Automapper The first first release was on CodePlex, where you

215
00:10:48,919 --> 00:10:52,279
had to download it manually from whatever downloads tab on

216
00:10:52,320 --> 00:10:55,279
that website in two thousand and nine, but it originally

217
00:10:55,360 --> 00:10:57,840
started in two thousand and eight. It was an internal

218
00:10:58,879 --> 00:11:02,720
internal library for a client project I was on. And

219
00:11:02,759 --> 00:11:06,159
then after about six months of being internal, we were like, okay,

220
00:11:06,480 --> 00:11:10,320
now it's time to graduate to open source. I guess

221
00:11:11,320 --> 00:11:13,320
put it up on CodePlex.

222
00:11:14,360 --> 00:11:15,879
Speaker 1: That was the place it was.

223
00:11:15,919 --> 00:11:16,720
Speaker 3: It was I place.

224
00:11:16,799 --> 00:11:17,799
Speaker 2: Yeah, back in the day.

225
00:11:18,000 --> 00:11:20,159
Speaker 3: Choice was that or source Forge, yeah.

226
00:11:20,159 --> 00:11:24,320
Speaker 2: Source right, it was the less hostile to Microsoft. Source Forge,

227
00:11:24,360 --> 00:11:26,120
althoughmittedly Coplex owned by Mind.

228
00:11:26,200 --> 00:11:29,000
Speaker 1: Yeah, we liked CodePlex and Sarah was in charge of

229
00:11:29,000 --> 00:11:31,639
it back then, remember, yeah, yeah, we interviewed it.

230
00:11:31,720 --> 00:11:34,600
Speaker 2: It was a long time ago. So wow.

231
00:11:34,720 --> 00:11:36,840
Speaker 1: So and you became an MVP in two thousand and

232
00:11:36,919 --> 00:11:40,440
nine obviously because of the work you did with Automapper

233
00:11:40,440 --> 00:11:42,320
and its instant popularity.

234
00:11:42,440 --> 00:11:44,399
Speaker 3: Well I know, you say obviously, but they don't tell

235
00:11:44,440 --> 00:11:46,120
you why you get the thing. It's like I put

236
00:11:46,120 --> 00:11:47,799
all the stuff in a spreadsheet, I sent it out

237
00:11:47,799 --> 00:11:50,639
and maybe something sticks. But at the time I was

238
00:11:50,639 --> 00:11:53,679
at the also co authors of the NVC and Action

239
00:11:53,720 --> 00:11:57,039
books with with Jeffrey Palermo as well. I assume that

240
00:11:57,120 --> 00:11:59,279
was it, but who knows, because like back then, automapper

241
00:11:59,320 --> 00:12:02,120
had like, you know, thirty downloads and like most of

242
00:12:02,159 --> 00:12:03,039
it was me.

243
00:12:04,320 --> 00:12:06,879
Speaker 1: I was thinking that it was an instant viral hit.

244
00:12:07,000 --> 00:12:09,159
Speaker 3: No, I want to say, it's a good five years

245
00:12:09,240 --> 00:12:13,320
or so before Microsoft even recognize open source as a

246
00:12:13,320 --> 00:12:14,480
community contribution for.

247
00:12:14,519 --> 00:12:16,720
Speaker 2: MVP award Wow right yeah wow.

248
00:12:16,919 --> 00:12:18,600
Speaker 3: Or then it was like, oh that's fine.

249
00:12:18,879 --> 00:12:22,840
Speaker 2: Those that transition time was weird, right, Yeah.

250
00:12:22,840 --> 00:12:24,759
Speaker 3: That was an interesting time, So let's write a book

251
00:12:24,759 --> 00:12:25,080
about it.

252
00:12:25,200 --> 00:12:31,080
Speaker 2: Yeah, save me. I mean, yeah, Coplex, they thought they

253
00:12:31,120 --> 00:12:36,720
shed their own source forage, and then Guthrie saw it

254
00:12:36,720 --> 00:12:39,639
as a way to ship versions of silver Light out

255
00:12:39,639 --> 00:12:42,679
of the box, right, Like that was his main problem was,

256
00:12:42,799 --> 00:12:46,399
I can't wait for new versions of dot Net and

257
00:12:46,440 --> 00:12:48,240
new versions of Studio to come along. I need to

258
00:12:48,240 --> 00:12:50,240
move quickly on this, and he did, right. I mean,

259
00:12:50,279 --> 00:12:52,519
they touched up four versions in two years. Like it

260
00:12:52,600 --> 00:12:55,039
was really fast. Although I mean I would argue the

261
00:12:55,080 --> 00:12:59,600
biggest thing that came up the Coplex interaction was the

262
00:12:59,720 --> 00:13:03,480
re that jQuery showed up in twenty ten because the

263
00:13:03,600 --> 00:13:06,399
MVC guys were on the path. They're building their own

264
00:13:06,600 --> 00:13:09,840
dom tree navigator and they actually pushed the initial bits

265
00:13:09,879 --> 00:13:12,960
out through Complex and the community went, what are you doing?

266
00:13:14,080 --> 00:13:19,840
You should use jQuery and they did. And jQuery in

267
00:13:19,840 --> 00:13:22,440
Student twenty ten was a big deal because it shipped

268
00:13:22,440 --> 00:13:24,840
in the box with its original license with an MIT

269
00:13:25,039 --> 00:13:27,240
license and they provided tech support for Yeah.

270
00:13:27,240 --> 00:13:29,120
Speaker 3: That was the huge one, the support thing.

271
00:13:29,200 --> 00:13:31,320
Speaker 2: Yeah, yeah, you're supporting a product you didn't right.

272
00:13:31,519 --> 00:13:36,840
Speaker 1: I also remember those silver Light interim bill days as

273
00:13:36,879 --> 00:13:41,159
being particularly heinous to oh dude developers who were trying

274
00:13:41,200 --> 00:13:44,559
to find the latest version because all the blog posts

275
00:13:44,600 --> 00:13:47,039
typically didn't have dates on them, and every one of

276
00:13:47,080 --> 00:13:49,159
them said use this version.

277
00:13:49,279 --> 00:13:52,600
Speaker 2: Right, and they were all wrong, right, and we're all wrong. Yeah,

278
00:13:52,639 --> 00:13:55,440
but that's when we did that is software development two

279
00:13:55,480 --> 00:13:56,720
complex panel.

280
00:13:56,919 --> 00:14:02,840
Speaker 1: Yes, that's right, and out of that grew new get Hey,

281
00:14:03,039 --> 00:14:05,799
what if we had an RSS feed for these things

282
00:14:06,279 --> 00:14:08,960
so we could always know which one is the most recent?

283
00:14:09,279 --> 00:14:12,360
Speaker 2: Well and really an MPM alternative, right, Yeah, that's what

284
00:14:12,519 --> 00:14:15,000
that was. The mandate that Hack was given was go

285
00:14:15,120 --> 00:14:17,720
forth and build GEMS or NPM or like.

286
00:14:17,720 --> 00:14:19,720
Speaker 3: Well, no one likes to download zip files from a

287
00:14:19,799 --> 00:14:21,120
random website.

288
00:14:21,639 --> 00:14:24,279
Speaker 1: I wouldn't downloading zip filef I knew was the right file.

289
00:14:27,039 --> 00:14:29,080
Speaker 2: All you knew for sure was it probably not the

290
00:14:29,159 --> 00:14:29,679
right file.

291
00:14:29,799 --> 00:14:33,080
Speaker 1: Yeah, those were hard times, but you know, if you

292
00:14:33,120 --> 00:14:37,000
could keep up with Scott Guthrie's silver Light, you know

293
00:14:37,879 --> 00:14:41,440
it installs updates, then it was it was good sailing.

294
00:14:41,639 --> 00:14:42,840
Speaker 2: And what was happening to them VC?

295
00:14:43,120 --> 00:14:45,679
Speaker 3: And you know there was actually an autumn opper for

296
00:14:45,720 --> 00:14:49,840
silver Light at one point. It's unlisted now, but.

297
00:14:50,000 --> 00:14:55,399
Speaker 2: Yes, yes, And the only reason we're angry about silver

298
00:14:55,480 --> 00:14:58,480
Light is because they'd ever built us a bridge out right,

299
00:15:00,399 --> 00:15:02,240
just stopped.

300
00:15:01,840 --> 00:15:03,480
Speaker 3: No they said, they just set it on fire.

301
00:15:03,600 --> 00:15:08,759
Speaker 2: That's fine, liking Fune put it into maintenance. Oh, it's

302
00:15:08,759 --> 00:15:11,279
supportive for the next ten years. It's like, yeah, but

303
00:15:11,360 --> 00:15:17,039
there's one way out. Yeah anyway. Anyway, it's strange how

304
00:15:17,080 --> 00:15:20,440
who's still angry about that? Like, there's fewer people angry

305
00:15:20,480 --> 00:15:23,639
about that. I know, I can find today angry about

306
00:15:23,720 --> 00:15:29,000
like the old europinicious monopoly m you know, dollar sign

307
00:15:29,399 --> 00:15:31,399
than silver, like because there's a ten year gap between

308
00:15:31,440 --> 00:15:34,000
the two, right, it was two thousand with that stuff,

309
00:15:34,000 --> 00:15:37,440
and those folks have moved on. But there's still folks

310
00:15:37,440 --> 00:15:39,960
that are plenty angry about twenty ten, twenty eleven.

311
00:15:40,080 --> 00:15:42,320
Speaker 3: Yeah, I was just angry about having to release a

312
00:15:42,360 --> 00:15:45,679
separate package for people just for some light. It was

313
00:15:45,720 --> 00:15:49,240
compiled separately those the days before, like net Standard and

314
00:15:49,279 --> 00:15:51,279
all that sort of like multi targeting, So you had

315
00:15:51,320 --> 00:15:54,320
to create something completely separate to support different run times.

316
00:15:54,440 --> 00:15:56,799
Speaker 2: And you're also the guy who sort of pioneered all

317
00:15:56,879 --> 00:16:04,000
of the abuse that maintainers take what you got there first.

318
00:16:04,000 --> 00:16:06,360
That's why he's got That's why he's got the po box.

319
00:16:06,480 --> 00:16:08,440
Richard self addressed staff downvelope.

320
00:16:08,600 --> 00:16:11,840
Speaker 3: Yes, No, I know, I usually joke at my like

321
00:16:12,200 --> 00:16:15,840
introduce introducing myself for like conference talks. Whatever I say,

322
00:16:16,480 --> 00:16:19,919
Jimmy Buguart, author of bottom mapper, So I'm sorry or

323
00:16:19,919 --> 00:16:20,440
you're welcome.

324
00:16:20,879 --> 00:16:24,080
Speaker 2: Yes, No, I don't know which you said.

325
00:16:24,080 --> 00:16:28,200
Speaker 1: It was about five years before automapper really took off.

326
00:16:28,279 --> 00:16:30,600
What do you remember that moment?

327
00:16:30,960 --> 00:16:36,799
Speaker 3: No, because it was it was something that I had

328
00:16:36,799 --> 00:16:39,279
built for a specific problem we're having on a on

329
00:16:39,320 --> 00:16:42,279
a project back in two thousand and eight, so a

330
00:16:42,360 --> 00:16:47,200
long time ago, like some almost graduated high school this code,

331
00:16:47,559 --> 00:16:50,399
and I just wrote a blog post of like, here's

332
00:16:50,679 --> 00:16:52,720
you know, here's this problem we're trying to solve that

333
00:16:52,919 --> 00:16:54,759
I guess was a common problem other people had, but

334
00:16:54,840 --> 00:16:57,360
it's something that we said, you know this, we're having

335
00:16:57,360 --> 00:17:03,200
this specific problem, and uh, we knew we needed something

336
00:17:03,399 --> 00:17:05,640
to address it. And so that was the that was

337
00:17:05,680 --> 00:17:08,640
the solution. But then after that I got out of

338
00:17:08,640 --> 00:17:11,440
web development for three or three or so years doing

339
00:17:11,519 --> 00:17:13,440
just like right a back end junk and so this

340
00:17:13,559 --> 00:17:17,440
it was growing just kind of unbeknownst to me, and

341
00:17:17,480 --> 00:17:19,240
then coming back to web to be like, oh, this

342
00:17:19,359 --> 00:17:22,960
is the way people build these things now, I I

343
00:17:23,240 --> 00:17:25,680
wasn't paying attention. I was, you know, back and doing

344
00:17:26,400 --> 00:17:28,440
back in APIs and messaging apps and stuff.

345
00:17:28,519 --> 00:17:30,599
Speaker 1: Were you tracking downloads right, I mean.

346
00:17:30,480 --> 00:17:33,480
Speaker 3: As much as you could on coplex, which was to

347
00:17:33,519 --> 00:17:36,640
say not at all, not so much. But really, once

348
00:17:36,839 --> 00:17:39,519
once new get hits, it made it much easier to

349
00:17:39,559 --> 00:17:43,119
consume packages, consuming libraries than every you know, every like

350
00:17:43,200 --> 00:17:46,640
everything was taking off. I still don't know why this

351
00:17:46,720 --> 00:17:50,960
took off exactly. I mean I didn't do conference talks

352
00:17:51,000 --> 00:17:55,079
on it. My my talks and posts were mainly about experience,

353
00:17:55,119 --> 00:17:57,079
things like here's what I'm doing on my projects, and

354
00:17:57,119 --> 00:17:59,640
here's problems I solved the projects, and the autom mapp

355
00:17:59,720 --> 00:18:01,599
was a soution for some of those things, but I didn't.

356
00:18:02,039 --> 00:18:05,079
I never like just straight up advertised it. So no,

357
00:18:05,200 --> 00:18:06,279
it's it's kind of a mystery.

358
00:18:06,279 --> 00:18:06,759
Speaker 2: Well it's that.

359
00:18:06,920 --> 00:18:09,680
Speaker 1: That's kind of way it grows is by the community

360
00:18:09,720 --> 00:18:11,599
taking hold of it and telling each other about it,

361
00:18:12,160 --> 00:18:15,480
so that that's the best. That's the best endorsement you

362
00:18:15,480 --> 00:18:16,720
can get, right, Yeah.

363
00:18:16,640 --> 00:18:19,559
Speaker 3: It was, even there was a few years in. It's

364
00:18:19,559 --> 00:18:22,480
like some Raindow emailed me even like a logos that hey,

365
00:18:22,519 --> 00:18:24,279
you should have a logo. I was like, I probably should,

366
00:18:24,279 --> 00:18:26,279
and I can't draw, so thank you for that.

367
00:18:26,920 --> 00:18:29,000
Speaker 2: He literally handed you a logo and says, what about this.

368
00:18:29,119 --> 00:18:31,960
Speaker 3: Yeah, here's a here's a file with some weird extension.

369
00:18:31,960 --> 00:18:34,039
I even recognize what that extension with a file was,

370
00:18:34,079 --> 00:18:36,440
like dot ai or something. I have no idea what

371
00:18:36,480 --> 00:18:38,880
it is. It's a photoshop file, so who knows.

372
00:18:39,200 --> 00:18:42,559
Speaker 2: Yeah, I love there's still all old blog posts like

373
00:18:42,599 --> 00:18:45,519
one from two thousand and nine and twenty ten, not you,

374
00:18:45,839 --> 00:18:48,319
somebody else. I'll leave them namelessing. Here's how you get

375
00:18:48,359 --> 00:18:49,319
started with automapper.

376
00:18:51,279 --> 00:18:54,759
Speaker 3: That has been one of the biggest challenges though, because

377
00:18:54,799 --> 00:18:57,119
it's been around for so long that the API has

378
00:18:57,200 --> 00:18:59,480
changed over the years. So it's the kind of classic

379
00:18:59,519 --> 00:19:02,559
thing of like you answer stack overflow posts, but there's

380
00:19:02,720 --> 00:19:04,880
there's needs to be an expiration date almost of like

381
00:19:04,920 --> 00:19:07,200
this is only good for five years, then it's probably wrong.

382
00:19:08,759 --> 00:19:10,680
I guess it's a kind of a common promise sack overflow.

383
00:19:10,720 --> 00:19:14,200
I don't trust anything. If it's a jobscript question, then

384
00:19:14,240 --> 00:19:16,319
if it's older than two years, it's certainly wrong.

385
00:19:16,519 --> 00:19:19,599
Speaker 1: I really got happy the day that the search engines

386
00:19:20,079 --> 00:19:23,839
added that little filter you know, sort by most recent

387
00:19:24,039 --> 00:19:26,880
oh yeah, or you know, only things that have been

388
00:19:26,880 --> 00:19:30,440
written in the last year or month or whatever. That's

389
00:19:30,480 --> 00:19:33,000
been invaluable to me because that was a huge problem

390
00:19:33,000 --> 00:19:34,519
on the search engines before they did that.

391
00:19:34,720 --> 00:19:36,960
Speaker 3: So this is that's no different that you know, people

392
00:19:37,359 --> 00:19:39,200
still have these to this day, Like, oh, I tried

393
00:19:39,240 --> 00:19:41,119
to copy the code from this post and it didn't work.

394
00:19:41,160 --> 00:19:43,400
I'm like, oh gosh, you need to go through about

395
00:19:43,400 --> 00:19:46,480
five upgrade guides and then it'll work.

396
00:19:46,640 --> 00:19:48,759
Speaker 1: And it still infuriates me when I read a blog

397
00:19:48,759 --> 00:19:51,599
post that doesn't have a date on it, it just

398
00:19:51,680 --> 00:19:54,119
infuriates me. It's like, why wouldn't you put that.

399
00:19:54,240 --> 00:19:57,240
Speaker 2: Just means don't trust it, right, yeah, or just.

400
00:19:57,200 --> 00:19:58,920
Speaker 1: You know, view the source and try to find out

401
00:19:58,920 --> 00:19:59,920
when it was written, you.

402
00:19:59,839 --> 00:20:01,799
Speaker 3: Know, way back. Sometimes I do that too.

403
00:20:02,240 --> 00:20:04,920
Speaker 2: Yeah, yeah, if you if you you can find that

404
00:20:05,000 --> 00:20:07,319
an archive dot org in twenty ten, you should probably

405
00:20:07,319 --> 00:20:10,359
not read it. Anything you find an archive not a

406
00:20:10,400 --> 00:20:14,200
good idea. That game. Again, that's the issue of it's

407
00:20:14,200 --> 00:20:17,440
been around for more more than a decade.

408
00:20:17,640 --> 00:20:19,440
Speaker 3: So yeah, it's crazy.

409
00:20:19,519 --> 00:20:21,759
Speaker 1: And so I mean, you're going to have access documentation

410
00:20:22,079 --> 00:20:25,200
it is what it is. How how often did you

411
00:20:26,000 --> 00:20:29,519
add well, you've obviously added features to it fourteen times,

412
00:20:29,599 --> 00:20:31,759
but yeah, you know what were the what were they

413
00:20:31,799 --> 00:20:33,519
bug fixes? Were they little features?

414
00:20:33,599 --> 00:20:33,839
Speaker 2: Is it?

415
00:20:33,960 --> 00:20:36,839
Speaker 3: You know? Well, there's a period of time when I

416
00:20:36,880 --> 00:20:40,359
was just happy that people noticed it that I was

417
00:20:40,400 --> 00:20:43,720
accepting every pole request that came through the door, not

418
00:20:43,799 --> 00:20:46,920
realizing that you have to support everything that you're merging

419
00:20:46,960 --> 00:20:50,119
to your code base. And so there's yeah, some things

420
00:20:50,119 --> 00:20:52,039
that were in there and that I wound up taking

421
00:20:52,039 --> 00:20:56,640
you out. But some of the things were like big

422
00:20:56,680 --> 00:21:00,279
things or performance related. So the I and the whole

423
00:21:00,319 --> 00:21:06,200
idea behind the libraries, I've got a dto data transfer object.

424
00:21:06,519 --> 00:21:09,880
Usually that's exposed to an API or to the web.

425
00:21:10,039 --> 00:21:13,200
If you go to render on htmail and it's a

426
00:21:13,279 --> 00:21:16,880
simplified version of a more complex data model or EF model,

427
00:21:16,920 --> 00:21:18,599
You've got going behind the scenes.

428
00:21:18,559 --> 00:21:21,519
Speaker 1: Right, you don't want to expose everything to the client

429
00:21:21,599 --> 00:21:23,160
that's in your data model.

430
00:21:23,240 --> 00:21:25,200
Speaker 3: And I think everyone's done this too, where like they

431
00:21:25,720 --> 00:21:29,200
expose an EF model on an endpoints and then not

432
00:21:29,240 --> 00:21:32,240
realizing people can do navigation properties and like suddenly things

433
00:21:32,279 --> 00:21:34,960
start breaking. It's like no, no, no, just only the data

434
00:21:34,960 --> 00:21:37,720
you need, nothing else, nothing more. And then autom Apple

435
00:21:37,839 --> 00:21:39,680
is just a tool to say, well, if the thing

436
00:21:39,720 --> 00:21:41,400
on the left looks like the thing and the rights,

437
00:21:41,680 --> 00:21:43,359
then go ahead and stuff the thing on the left

438
00:21:43,359 --> 00:21:46,079
with the stuff on the rights. But initially behind the

439
00:21:46,119 --> 00:21:50,319
scenes was using the slow reflection API, which was easy

440
00:21:50,359 --> 00:21:54,680
to program against but terrible performance wise. So one big

441
00:21:54,680 --> 00:22:01,480
thing was converting that all to expression tree compilation, yeah,

442
00:22:01,480 --> 00:22:04,519
which is like you you don't have a full programming language,

443
00:22:04,599 --> 00:22:06,359
but you have like the worst part of every world,

444
00:22:06,440 --> 00:22:09,880
except it compiles into like native code and runs really

445
00:22:09,880 --> 00:22:13,319
fast after that, So that was a big thing. Another

446
00:22:13,319 --> 00:22:17,759
big thing we did was you can we could make

447
00:22:17,799 --> 00:22:21,440
other targets for this kind of mapping, and so one

448
00:22:21,440 --> 00:22:25,400
of the other mappings we did was going from you know,

449
00:22:25,480 --> 00:22:28,359
the source complex model to the dt O. Instead of

450
00:22:28,359 --> 00:22:31,720
that being an end memory expression compilation, it can also

451
00:22:31,759 --> 00:22:35,960
push that expression tree over to something that translates that

452
00:22:36,039 --> 00:22:39,720
expression tree to SQL. Right, so I can push that

453
00:22:39,759 --> 00:22:43,960
translation to NITY framework. And when you do any framework,

454
00:22:44,440 --> 00:22:46,799
you know, blow out include but include and if you

455
00:22:46,880 --> 00:22:50,119
dot dot select, then it own. And then if we

456
00:22:50,200 --> 00:22:53,240
do that select in any framework, it pushes that all

457
00:22:53,279 --> 00:22:56,119
the way down to the database and only selects the

458
00:22:56,160 --> 00:22:59,759
data at the database level too, so it makes it

459
00:22:59,759 --> 00:23:02,200
it allows for much more efficient queries in fact, you

460
00:23:02,200 --> 00:23:04,000
don't even need the dot includes anymore. You can just

461
00:23:04,000 --> 00:23:07,039
say that select. So we extended to say, well, what

462
00:23:07,119 --> 00:23:09,759
if automatic could do that for you? Because it's that's

463
00:23:09,759 --> 00:23:12,559
what you're trying to do, is tak complex data model

464
00:23:12,799 --> 00:23:14,640
and stuff into this. Why don't we push that down

465
00:23:14,640 --> 00:23:17,000
to the SQL level and then have it figured out

466
00:23:17,039 --> 00:23:20,279
just because like the shape looks like it should, you know,

467
00:23:20,440 --> 00:23:22,599
just trimming out the stuff you don't need.

468
00:23:22,799 --> 00:23:25,319
Speaker 2: Yeah, I know, that's and that goes faster. I'm just

469
00:23:25,359 --> 00:23:31,759
thinking about the the convolutions you've gone through in fifteen years,

470
00:23:31,880 --> 00:23:34,279
because that means you also jumped across the core too,

471
00:23:34,400 --> 00:23:38,319
which you know so much your reflection like surprise.

472
00:23:38,880 --> 00:23:43,799
Speaker 3: Yeah, I've ridden the whole ride of like d nx

473
00:23:44,240 --> 00:23:47,799
kd id XC, all those like very early iterations of

474
00:23:47,880 --> 00:23:50,400
dot net Core I had to deal with because like

475
00:23:50,480 --> 00:23:52,640
people were using it and wanting to use my library.

476
00:23:52,720 --> 00:23:55,640
So I got to learn what did David Fowler come

477
00:23:55,720 --> 00:24:01,799
up with today? Okay, you'll put that there. Yeah, that's

478
00:24:01,799 --> 00:24:04,359
the that's the least fun part of open sources. You know,

479
00:24:04,440 --> 00:24:08,440
every three years, the way to do builds and deploys changes,

480
00:24:08,519 --> 00:24:11,359
so you got to go right update the boring stuff

481
00:24:11,359 --> 00:24:14,200
for all that, but well it these days it's pretty seamless.

482
00:24:14,319 --> 00:24:17,079
Speaker 2: You're building tools for developers, and they always want to

483
00:24:17,160 --> 00:24:20,160
use the new gadget. So it's like K is alpha alpha,

484
00:24:20,240 --> 00:24:22,519
but why does the maper work with it? What's wrong

485
00:24:22,599 --> 00:24:22,920
with you?

486
00:24:23,079 --> 00:24:25,440
Speaker 3: Oh? Yeah, exactly, which is why I had that the

487
00:24:25,559 --> 00:24:28,839
silver Life because like people ask for it, and you know,

488
00:24:28,880 --> 00:24:30,759
again like at the time like sure, yeah, I'll do this,

489
00:24:30,839 --> 00:24:32,599
and then I go, look, I just look at the

490
00:24:32,599 --> 00:24:36,000
download cup five thousand, five thousand downloads.

491
00:24:35,519 --> 00:24:37,799
Speaker 2: Of the silver Light edition, the Silver Life version.

492
00:24:37,880 --> 00:24:40,519
Speaker 3: How much work did I put into that thing for

493
00:24:40,839 --> 00:24:41,440
ten people?

494
00:24:42,680 --> 00:24:45,319
Speaker 2: And you're talking over the duration of silver Light then,

495
00:24:45,400 --> 00:24:50,200
so yeah, exactly, yeah, yeah means yeah, if you look

496
00:24:50,200 --> 00:24:51,559
at it that way, Jimmy, you're just going to make

497
00:24:51,599 --> 00:24:52,200
yourself sad.

498
00:24:54,119 --> 00:24:54,319
Speaker 4: Yeah.

499
00:24:54,440 --> 00:24:56,920
Speaker 3: I don't. I never had, I never. This is one

500
00:24:56,960 --> 00:25:01,000
of my lessons learned too from open sources. You know,

501
00:25:01,039 --> 00:25:04,799
it's it's good to provide features strictly for the community,

502
00:25:04,880 --> 00:25:08,279
but because you have to support them forever, then you

503
00:25:09,079 --> 00:25:11,640
need that level of commitment if you're going to bring

504
00:25:11,640 --> 00:25:14,119
that stuff on. So for me, ninety five percent of

505
00:25:14,119 --> 00:25:17,039
the open source work I do is client driven like

506
00:25:17,119 --> 00:25:21,519
something my paying customers need, right, and I want to

507
00:25:22,519 --> 00:25:25,200
use it on future things. So I make an open

508
00:25:25,240 --> 00:25:27,119
source library and then boom, there we go.

509
00:25:27,319 --> 00:25:27,559
Speaker 2: Yeah.

510
00:25:27,599 --> 00:25:32,960
Speaker 3: I don't do the hobbyist aspirational open source anymore. I

511
00:25:33,039 --> 00:25:35,839
just you know, don't have time for that dot gift

512
00:25:36,000 --> 00:25:36,519
sort of thing.

513
00:25:36,680 --> 00:25:39,599
Speaker 2: Yeah. Yeah, but I mean the conversation we've had with

514
00:25:39,640 --> 00:25:42,759
minus targets and he thinks almost exactly the same way. Yes,

515
00:25:42,839 --> 00:25:44,880
I could add that feature to c sharp, but how

516
00:25:44,920 --> 00:25:46,480
many people are going to use it? And we have

517
00:25:46,519 --> 00:25:47,599
to support it forever?

518
00:25:48,039 --> 00:25:48,920
Speaker 3: Right records?

519
00:25:49,440 --> 00:25:51,200
Speaker 2: Right, it can never take it out.

520
00:25:51,480 --> 00:25:52,920
Speaker 3: Yeah, And there's only so much you can do with

521
00:25:53,000 --> 00:25:55,480
a just sort of an upgrade guide to say, yeah,

522
00:25:55,920 --> 00:25:58,400
lots of things change and here's a wiki doc to

523
00:25:59,039 --> 00:26:01,880
fix things now, people and go, you know, for for

524
00:26:01,960 --> 00:26:07,039
a more gradual approach. You Yeah, yeah, they're lucky and lucky.

525
00:26:07,079 --> 00:26:09,400
I gave an upgrade guy, you know, like, just figure

526
00:26:09,400 --> 00:26:09,680
it out?

527
00:26:10,400 --> 00:26:15,160
Speaker 2: Did you want your money back? There? I mean, c

528
00:26:15,319 --> 00:26:17,960
Shark has been very resistant about redeprecating features. Ever, they

529
00:26:18,000 --> 00:26:20,200
never wanted to break anybody's code. But have you deprecated

530
00:26:20,200 --> 00:26:23,440
features like taking stuff away down and breaking in fourteen versions?

531
00:26:23,440 --> 00:26:24,839
I must have yeah, absolutely.

532
00:26:25,119 --> 00:26:28,039
Speaker 3: Yeah, there's there's definitely things so you mentioned, like just

533
00:26:28,079 --> 00:26:31,599
the people abusing or features I wouldn't use. That's something

534
00:26:31,599 --> 00:26:34,119
that initially i'd see, Okay, I can see your use case.

535
00:26:35,000 --> 00:26:38,680
That seems interesting, But you know, because that's not my

536
00:26:39,160 --> 00:26:41,359
day job to consider other people's features, I just kind

537
00:26:41,400 --> 00:26:43,359
of rubber stamp it and let it go right, And

538
00:26:43,359 --> 00:26:47,000
then only after a year or two have been the

539
00:26:47,119 --> 00:26:49,720
crazy follow up feature requests, I'm like, oh no, that

540
00:26:50,039 --> 00:26:52,480
was actually a mistake. I shouldn't have allowed that.

541
00:26:52,720 --> 00:26:54,039
Speaker 2: Yeah, yeah, you opened the door.

542
00:26:54,319 --> 00:26:57,319
Speaker 3: So there's definitely features where I see like, okay, maybe

543
00:26:57,319 --> 00:26:59,319
it could work in simple use cases, but because it

544
00:26:59,359 --> 00:27:01,759
may fall in its face on anything more complex, it's

545
00:27:01,759 --> 00:27:04,279
not even worth having. So I'm just gonna take it out.

546
00:27:04,599 --> 00:27:05,079
Speaker 2: Yeah.

547
00:27:05,119 --> 00:27:08,839
Speaker 3: There's also in cases where instead of me completely taking

548
00:27:08,880 --> 00:27:12,640
out the feature or deleting it entirely, I will take

549
00:27:12,680 --> 00:27:15,799
it out and put it into a separate package, and

550
00:27:15,839 --> 00:27:18,799
then as someone opens an issue, I make them an administrator,

551
00:27:19,200 --> 00:27:21,920
right like, now it's your problem there, you can fix this.

552
00:27:24,400 --> 00:27:26,160
Speaker 2: So you have you have a separate package. What do

553
00:27:26,200 --> 00:27:28,279
you call something like automapp or evil.

554
00:27:30,720 --> 00:27:35,319
Speaker 3: Automa Rapper did go after yourself. I don't. It's either

555
00:27:35,400 --> 00:27:37,440
when I completely delete it, but like, if there's enough

556
00:27:37,480 --> 00:27:39,160
people that want it, Like.

557
00:27:39,279 --> 00:27:41,200
Speaker 2: If you're going to depend on this evil, I'll give

558
00:27:41,240 --> 00:27:42,240
you a place for the evil.

559
00:27:42,839 --> 00:27:45,599
Speaker 3: Yeah, I mean the one example of that that was

560
00:27:46,920 --> 00:27:48,880
it was actually a friend of mine the submitted pole request,

561
00:27:48,920 --> 00:27:53,680
who directly support data reader, which I didn't quite understand.

562
00:27:53,680 --> 00:27:56,799
But it was the idea that you could map from

563
00:27:56,880 --> 00:28:01,039
data reader to a dt O. And the only reason

564
00:28:01,119 --> 00:28:04,240
that exists is because no other micro ORMs exist, Like,

565
00:28:04,279 --> 00:28:06,480
there was no dapper at the time, right, which does

566
00:28:06,519 --> 00:28:10,599
basically that it just maps from SQL to code to

567
00:28:10,720 --> 00:28:13,559
dt O and gets rid of the rum junk. It

568
00:28:13,599 --> 00:28:15,640
didn't exist, so that thing exists on some like.

569
00:28:15,640 --> 00:28:18,119
Speaker 2: And you're talking about dapper d a p p e

570
00:28:18,240 --> 00:28:19,880
R as opposed to Dapper d a.

571
00:28:19,960 --> 00:28:22,799
Speaker 3: P R Yes, sorry not DAPR. Yes.

572
00:28:23,240 --> 00:28:25,559
Speaker 2: Just you know, we usually end up talking about da PR,

573
00:28:25,640 --> 00:28:27,400
so it's nice to be talking about DAPPER.

574
00:28:27,680 --> 00:28:30,160
Speaker 1: I have way more experience with d a p p

575
00:28:30,279 --> 00:28:31,880
e R than I do d A p R.

576
00:28:32,559 --> 00:28:32,799
Speaker 2: Yes.

577
00:28:33,519 --> 00:28:36,880
Speaker 3: Pro tip open source people that want to or people

578
00:28:36,920 --> 00:28:39,279
that are aspired to be open source developers is pick

579
00:28:39,400 --> 00:28:42,640
names that don't conflict with other already existing names in

580
00:28:42,680 --> 00:28:45,160
the universe. Yeah, that would be nice. Yeah, so that's

581
00:28:45,200 --> 00:28:47,680
like automapper did not exist as a name thing before.

582
00:28:48,400 --> 00:28:50,799
Although my kid does tell me that there's some automapper

583
00:28:50,839 --> 00:28:54,759
for Minecraft or something that will I don't know.

584
00:28:55,000 --> 00:28:56,720
Speaker 2: Oh my god, that has nothing to do with me.

585
00:28:56,839 --> 00:28:59,960
Speaker 3: That's like, will automatically map out a terrain on something?

586
00:29:00,240 --> 00:29:02,839
Speaker 1: Well, they should automatically send you a royalty check, is

587
00:29:02,839 --> 00:29:08,359
what they share. Let's take a quick break. We'll be

588
00:29:08,440 --> 00:29:11,599
right back after these very important messages. Did you know

589
00:29:11,720 --> 00:29:14,720
you can lift and shift your dot Net framework apps

590
00:29:14,759 --> 00:29:19,119
to virtual machines in the cloud. Use the elastic beanstalk

591
00:29:19,279 --> 00:29:23,440
service to easily migrate to Amazon EC two with little

592
00:29:23,559 --> 00:29:27,799
or no changes. Find out more at aws dot Amazon

593
00:29:27,880 --> 00:29:36,480
dot com, slash elasticbeanstock. And we're back. It's dot need Rocks.

594
00:29:36,519 --> 00:29:39,880
I'm Carl Franklin. That's Richard Campbell. Hello, that's our friend

595
00:29:39,960 --> 00:29:44,759
Jimmy Boguard. Automapper turned fourteen, and we're sort of going

596
00:29:44,799 --> 00:29:47,359
through the history of it, and you know, the bumps

597
00:29:47,400 --> 00:29:51,720
and cracks along the way, and how much time Jimmy

598
00:29:51,759 --> 00:29:53,359
wants to spend on it, you know.

599
00:29:54,720 --> 00:29:57,039
Speaker 2: Yeah, I mean you've already. This was a tool you

600
00:29:57,119 --> 00:30:01,759
built for yourself working on with your cloud allience, and

601
00:30:02,039 --> 00:30:04,200
that's how features generally get at it. I guess other

602
00:30:04,240 --> 00:30:07,079
people have contributed as well for their features for their

603
00:30:07,119 --> 00:30:10,720
clients where it's made sense. Yeah, yeah, it's not. This

604
00:30:10,799 --> 00:30:14,240
is not a for profit business, no, and.

605
00:30:14,240 --> 00:30:16,079
Speaker 3: This is I mean, this is obviously a challenge for

606
00:30:16,359 --> 00:30:20,599
any open source maintainers, just the sort of the economics

607
00:30:20,599 --> 00:30:21,839
of it all, Like, how do you how do you

608
00:30:21,880 --> 00:30:23,400
pay for the time for this sort of thing.

609
00:30:23,559 --> 00:30:26,519
Speaker 1: Well, here's a simple question, is did it get you

610
00:30:26,599 --> 00:30:28,880
any business that you otherwise wouldn't have had?

611
00:30:29,680 --> 00:30:32,880
Speaker 3: I don't think so, because it's not something I generally

612
00:30:32,920 --> 00:30:33,519
consult on.

613
00:30:33,880 --> 00:30:37,160
Speaker 1: You're a consultant, though, yes I am so. H So

614
00:30:37,480 --> 00:30:39,680
that's a nice little resume to have out there. Somebody

615
00:30:39,799 --> 00:30:41,880
uses automapper and says, oh, we need somebody to do

616
00:30:41,920 --> 00:30:44,359
it back end. Oh that Jimmy Bogart guy's pretty smart.

617
00:30:44,440 --> 00:30:45,359
Let me call him, I know.

618
00:30:45,440 --> 00:30:48,880
Speaker 3: And it's actually it was many years before I even

619
00:30:48,920 --> 00:30:51,359
started letting people know that I was the author of it,

620
00:30:51,519 --> 00:30:56,440
because I just it wasn't part of my like persona.

621
00:30:55,839 --> 00:30:57,519
Speaker 1: I should we call auto mapper.

622
00:30:57,759 --> 00:31:01,119
Speaker 3: I am not a I'm not like I pretend to

623
00:31:01,119 --> 00:31:03,240
be like very arrogant, but actually I don't. I don't

624
00:31:03,279 --> 00:31:05,039
like that kind of attentiones. So for the longest time,

625
00:31:05,079 --> 00:31:07,880
I didn't like advertise myself as the author of it

626
00:31:08,359 --> 00:31:10,640
because it's a shamed or anything. It's just realizing, oh,

627
00:31:10,680 --> 00:31:13,319
people don't know that I made that thing, right, because

628
00:31:13,319 --> 00:31:16,319
I just don't do like talks on it.

629
00:31:16,640 --> 00:31:18,000
Speaker 2: I don't think I've ever seen you do a talk

630
00:31:18,039 --> 00:31:18,720
on autobapper.

631
00:31:19,200 --> 00:31:23,200
Speaker 1: No, your name. Your name's on the product though, right, oh.

632
00:31:23,160 --> 00:31:25,599
Speaker 3: Yeah, yeah, yeah it is. But in terms of like

633
00:31:25,640 --> 00:31:33,680
getting uh incoming business, that's just not the The recording

634
00:31:33,720 --> 00:31:37,240
we did on modernization of dot net, migrating from Framework

635
00:31:37,720 --> 00:31:41,680
eight migration that gives you know, eight thousand times more business,

636
00:31:41,680 --> 00:31:44,519
because that's a big problem people have than So.

637
00:31:45,319 --> 00:31:46,839
Speaker 2: I didn't make that show to get you business to

638
00:31:47,000 --> 00:31:49,079
be I made that show because lots of people have

639
00:31:49,200 --> 00:31:51,960
that problem. You know, you really do know your way

640
00:31:51,960 --> 00:31:52,720
around solving it.

641
00:31:54,119 --> 00:31:57,079
Speaker 3: No, I know, it's uh yeah, I mean that. My

642
00:31:57,440 --> 00:31:59,680
blogging and talking has always been about here's what projects

643
00:31:59,720 --> 00:32:01,359
have worked on in the past one or two or

644
00:32:01,359 --> 00:32:05,759
three years, and sharing lessons learned. And I'm not there's

645
00:32:05,799 --> 00:32:08,160
not just that many lessons learned I've had from just

646
00:32:08,160 --> 00:32:12,279
strictly autom apple. It's always like, h just whatever random

647
00:32:12,279 --> 00:32:14,559
project I've been working on. So yeah, I know, I

648
00:32:14,799 --> 00:32:17,680
maybe that's true, Carl, because I don't like, I know,

649
00:32:17,759 --> 00:32:19,400
marketing is such a weird thing of like how many

650
00:32:19,440 --> 00:32:22,279
touch points do you get before someone comes into the door.

651
00:32:23,200 --> 00:32:26,160
So I'm sure that didn't hurt anything, But I don't

652
00:32:26,160 --> 00:32:28,960
get like, hey, can you help me fix this problem

653
00:32:29,119 --> 00:32:31,599
related to automapp It's just not a thing.

654
00:32:31,799 --> 00:32:33,839
Speaker 2: Yeah, And to me, the main conversation we have about

655
00:32:33,880 --> 00:32:36,720
automappers are the dues and dots of maintaining a popular

656
00:32:36,920 --> 00:32:39,680
open source library. Mostly don'ts.

657
00:32:41,279 --> 00:32:45,240
Speaker 3: Don't accept every poll request. You do actually test the

658
00:32:45,960 --> 00:32:48,079
release before you push it out onto new gets too.

659
00:32:48,519 --> 00:32:49,720
Speaker 2: Yeah, that's a good one.

660
00:32:49,839 --> 00:32:51,000
Speaker 3: Unsuspecting masses.

661
00:32:51,279 --> 00:32:53,319
Speaker 1: Yeah, do you read through the code and make sure

662
00:32:53,319 --> 00:32:55,839
it's not calling out to China or something?

663
00:32:56,440 --> 00:32:57,799
Speaker 3: You know? I do get that every once in a

664
00:32:57,839 --> 00:32:59,799
while of someone coming up like do you have any

665
00:32:59,880 --> 00:33:04,400
not own security vulnerabilities? Like no, I don't. I mean

666
00:33:04,440 --> 00:33:05,680
maybe there's unknown ones, but.

667
00:33:07,440 --> 00:33:12,880
Speaker 2: No ship with a dozen vulnerabilities for your viewing pleasure.

668
00:33:14,440 --> 00:33:15,839
Speaker 1: Security features.

669
00:33:15,640 --> 00:33:19,079
Speaker 2: It's a tool that devs use to generate code. Right,

670
00:33:19,119 --> 00:33:21,839
it lives in the dev environment. You don't deploy it anywhere,

671
00:33:21,960 --> 00:33:22,759
like that's not a thing.

672
00:33:23,039 --> 00:33:24,799
Speaker 3: No, it runs in production.

673
00:33:25,000 --> 00:33:26,799
Speaker 2: It's not a okay, so it is part of the

674
00:33:26,799 --> 00:33:27,559
production code.

675
00:33:27,680 --> 00:33:29,920
Speaker 3: Yeah. Yeah, So that something that's different from like a

676
00:33:29,920 --> 00:33:33,400
T four template style or co generations is this does

677
00:33:33,799 --> 00:33:37,480
at runtime generate the mappings for you. And the main

678
00:33:37,519 --> 00:33:40,440
reason for that is no one ever asked me to

679
00:33:40,480 --> 00:33:42,920
do the co generator version and wanted to pay for it.

680
00:33:43,160 --> 00:33:46,400
So it's just stayed like that until someone wants it

681
00:33:46,440 --> 00:33:48,480
and wants to pay for it. That's like any major

682
00:33:48,480 --> 00:33:50,680
feature in the open source it's like someone has to

683
00:33:50,720 --> 00:33:53,319
put the bill initially, and if no one does, then

684
00:33:53,400 --> 00:33:54,480
it's just not going to get done.

685
00:33:54,640 --> 00:33:57,000
Speaker 2: Well, it's usually your customer, right, I'm just looking on

686
00:33:57,079 --> 00:34:00,680
new Get it's like seven hundred and sixty million down loads.

687
00:34:01,640 --> 00:34:04,559
Speaker 3: Well, I mean I do have a very extensive botnets

688
00:34:04,680 --> 00:34:08,440
that is working over time to pump those numbers.

689
00:34:09,960 --> 00:34:13,679
Speaker 2: Well, and the current before fourteen, the thirteen oh one,

690
00:34:13,880 --> 00:34:17,559
which is the you know the that's eight eight and

691
00:34:17,599 --> 00:34:19,840
a half million of those, Like that's a that's a

692
00:34:19,840 --> 00:34:22,199
big version. That's what people are. It's nice to see

693
00:34:22,199 --> 00:34:23,400
people are up to date. Yeah.

694
00:34:23,880 --> 00:34:27,440
Speaker 3: Yeah. We had a lot of questions internally too, of

695
00:34:27,480 --> 00:34:30,280
just like support, like what do we want to support

696
00:34:30,880 --> 00:34:33,639
in terms of dot net versions? So at some point

697
00:34:33,639 --> 00:34:37,760
we're like, we'll lock ourselves to LTS Microsoft, but again

698
00:34:38,039 --> 00:34:41,320
that takes work to do. So these days it's mainly

699
00:34:41,360 --> 00:34:43,320
what my clients are. My clients are all doinit eight.

700
00:34:43,400 --> 00:34:44,880
So I support dot Nite eight.

701
00:34:45,280 --> 00:34:47,159
Speaker 2: Sure that's the current LTS version.

702
00:34:47,239 --> 00:34:50,719
Speaker 3: Yeah exactly. I think six just stops or.

703
00:34:50,880 --> 00:34:53,360
Speaker 2: Six just came out. That's what people people are freaking

704
00:34:53,360 --> 00:34:54,920
out about. But you're still going to put a security

705
00:34:54,920 --> 00:34:56,760
patches for dot net sake. It's like, yeah, they just

706
00:34:56,840 --> 00:35:01,440
call it dot net eight, but don't worry, it's patch.

707
00:35:01,519 --> 00:35:04,519
Speaker 3: But even we even dropped support for framework just because

708
00:35:04,519 --> 00:35:06,760
we were annoyed of having to to deal with it.

709
00:35:06,760 --> 00:35:07,800
Speaker 2: It's just for four.

710
00:35:08,599 --> 00:35:11,639
Speaker 3: Yeah, for for anything, right, I say, we it's me,

711
00:35:11,880 --> 00:35:16,880
there's me and another roy Yeah exactly. Yeah, today what

712
00:35:16,920 --> 00:35:18,440
do we feel? You know, what do we have time

713
00:35:18,480 --> 00:35:22,119
to support? And uh, I only have only have time

714
00:35:22,159 --> 00:35:24,039
for the one. Plus I switched to Mac and it's

715
00:35:24,039 --> 00:35:26,400
hard to code framework on the Mac.

716
00:35:26,360 --> 00:35:28,920
Speaker 2: So pretty card Yeah, and again, it's the logical thing

717
00:35:28,960 --> 00:35:32,760
is you don't have customers, yeah running the four or

718
00:35:32,800 --> 00:35:33,679
five too, right, So.

719
00:35:34,000 --> 00:35:37,360
Speaker 3: Yeah, exactly, Well it's funny, but I did that, you know,

720
00:35:37,360 --> 00:35:40,199
I did the thing about migrating from framework to to

721
00:35:40,360 --> 00:35:43,559
core eight, so like that that decision did come back

722
00:35:43,599 --> 00:35:45,159
to bite me of not supporting its, like, oh now

723
00:35:45,199 --> 00:35:48,400
I got to kind of do an adjacent version to

724
00:35:48,440 --> 00:35:50,800
make sure the framework code and dot net eight code

725
00:35:50,840 --> 00:35:54,840
can both co exist together. So I probably could have

726
00:35:54,840 --> 00:35:57,800
gone back and put in support, but I was like whatever.

727
00:35:58,599 --> 00:36:00,840
Speaker 2: Right, it's a it's a bad I without a doubt.

728
00:36:00,960 --> 00:36:02,199
Speaker 3: I mean the God of the days though, where I

729
00:36:02,199 --> 00:36:04,880
would support, like I used to try to support every

730
00:36:05,159 --> 00:36:09,280
framework that existed, so it was like a silver light

731
00:36:09,599 --> 00:36:12,280
Windows Phone. There was like two or three versions of

732
00:36:12,360 --> 00:36:13,840
Window Phone I think at the time.

733
00:36:14,320 --> 00:36:17,559
Speaker 2: Unity well, because seven, eight, and ten had nothing to

734
00:36:17,599 --> 00:36:20,239
do with each other, you basically had to redeploy everything.

735
00:36:20,719 --> 00:36:22,760
Speaker 3: Yes, so there's like, if you go to look at

736
00:36:22,760 --> 00:36:24,880
the nugodbergs, there's one that just like takes all the

737
00:36:25,000 --> 00:36:28,000
framework boxes, and that was yeah at that point, is like, yeah,

738
00:36:28,400 --> 00:36:31,079
let everyone use it. And then again someone opens a

739
00:36:31,079 --> 00:36:33,519
bug and I'm like I can't debug Windows Phone seven.

740
00:36:33,639 --> 00:36:34,760
I'm sorry, I don't know.

741
00:36:35,320 --> 00:36:37,519
Speaker 2: No way, yeah, yeah, no way.

742
00:36:37,719 --> 00:36:40,559
Speaker 3: So I just gave up, like, well, just some of

743
00:36:40,559 --> 00:36:42,679
the things that I actually know how to run. And

744
00:36:42,760 --> 00:36:44,360
I'm not going to try to support you know, random

745
00:36:44,400 --> 00:36:46,079
iOS something or other.

746
00:36:46,199 --> 00:36:49,079
Speaker 2: I know, yeah, you need to you need to own

747
00:36:49,119 --> 00:36:52,079
more phones and more deployment methods, and oh.

748
00:36:51,920 --> 00:36:54,320
Speaker 3: God, I'm trying to simplify my life, not making more

749
00:36:54,400 --> 00:36:56,960
complic Yeah kidding.

750
00:36:58,239 --> 00:37:00,599
Speaker 2: Have we even talked about what's new in fourteen?

751
00:37:01,039 --> 00:37:02,880
Speaker 3: I don't. Well, I have to go look at the

752
00:37:02,880 --> 00:37:04,199
release notes. I mean a lot of these. A lot

753
00:37:04,239 --> 00:37:08,519
of the reasons these days are like quality of life improvements.

754
00:37:09,159 --> 00:37:09,280
Speaker 2: Right.

755
00:37:09,519 --> 00:37:12,239
Speaker 3: One of the big things of automapper is because it

756
00:37:12,480 --> 00:37:16,440
doesn't generate code at compile time, you don't get compile

757
00:37:16,519 --> 00:37:19,360
time errors if something doesn't match up. Right, This is

758
00:37:19,400 --> 00:37:23,639
an intentional decision on our part. Is early on, I

759
00:37:23,679 --> 00:37:26,199
had used those kind of cogeneration frameworks like T four

760
00:37:26,199 --> 00:37:30,119
templates and things like that, and there's always just something

761
00:37:30,199 --> 00:37:33,199
missing from those that maybe want to just throw them allway.

762
00:37:33,239 --> 00:37:36,280
So I don't really use cogeneration for anything. Like some

763
00:37:36,280 --> 00:37:39,000
people love the ef scaffolding, I don't like it. I

764
00:37:39,079 --> 00:37:42,079
prefer just like I am adding this column to this database,

765
00:37:42,320 --> 00:37:43,920
so I'm going to put the property here and put

766
00:37:43,960 --> 00:37:46,000
the thing there and then I know everything lines up.

767
00:37:46,039 --> 00:37:48,440
Not something just kind of magically do it for me.

768
00:37:48,920 --> 00:37:51,679
So we it was an intentional decision in my part

769
00:37:51,800 --> 00:37:54,840
not to do cojin. But the tradeoff means you don't

770
00:37:54,920 --> 00:37:57,559
hit problems at compile time, you hit a run time.

771
00:37:58,079 --> 00:38:00,360
So the quality of life thing was, well, let's make

772
00:38:01,159 --> 00:38:06,119
a configuration validator that says make sure that all the

773
00:38:06,159 --> 00:38:09,440
things on the left can be mapped to from the

774
00:38:09,480 --> 00:38:13,119
things on the right. If you had a com if

775
00:38:13,159 --> 00:38:15,679
you had a compiler, then it could usually show you like, oh,

776
00:38:15,719 --> 00:38:18,360
this thing is misspelled, so it's not going to map

777
00:38:18,440 --> 00:38:21,840
up for us. We said, okay, because we're doing a

778
00:38:21,960 --> 00:38:24,239
run time, then we'll have something this checks to make

779
00:38:24,239 --> 00:38:26,239
sure that if you put something on the left, it

780
00:38:26,320 --> 00:38:28,599
should have something on the right, and if it doesn't

781
00:38:28,639 --> 00:38:32,599
match up, then like you're doing something, something's wrong, something's off,

782
00:38:32,639 --> 00:38:35,239
and see you have to tell us about it. So

783
00:38:35,280 --> 00:38:37,519
we A lot of the stuff we do these days

784
00:38:37,559 --> 00:38:42,920
is around making that validation process more comprehensive to catch

785
00:38:42,920 --> 00:38:46,159
as many things as we can, which would be even

786
00:38:46,159 --> 00:38:48,679
beyond what compilers can check, because compilers don't actually try

787
00:38:48,679 --> 00:38:51,800
to execute things necessarily. We do like dry runs and

788
00:38:51,840 --> 00:38:55,280
make sure like nothing's their dependencies are missing, that sort

789
00:38:55,280 --> 00:38:57,880
of thing. It's like, make sure that it can take

790
00:38:58,000 --> 00:39:00,119
it to the best of our abilities we can. We

791
00:39:00,559 --> 00:39:03,079
think it can run at runtime too, right, So I

792
00:39:03,119 --> 00:39:04,480
think that was one one of the big ones of

793
00:39:04,519 --> 00:39:07,000
the last one was a bit of an overhaul of

794
00:39:07,039 --> 00:39:09,679
the validation to make sure that we get everything together,

795
00:39:09,920 --> 00:39:11,639
get a nice and pretty for you so that you

796
00:39:11,679 --> 00:39:14,440
can fix whatever problems you have going on there.

797
00:39:15,079 --> 00:39:18,440
Speaker 2: Yeah. I'm looking through the things in the fourteen milestone,

798
00:39:19,519 --> 00:39:21,639
the closed off ones, and it does look like, hey,

799
00:39:21,679 --> 00:39:25,280
we fix this OLP, we fix those naming conventions targeting

800
00:39:25,280 --> 00:39:28,760
dot net nine obviously, I mean you you are pushing

801
00:39:28,760 --> 00:39:30,920
out a version pretty much in sync with new versions

802
00:39:30,920 --> 00:39:32,000
of dot net. It seems.

803
00:39:32,199 --> 00:39:35,239
Speaker 3: Yeah, I do try to have I do have this

804
00:39:35,320 --> 00:39:37,519
question like what's your support policy? And like this is

805
00:39:38,480 --> 00:39:39,920
so this is a Wendy's.

806
00:39:40,000 --> 00:39:43,559
Speaker 2: Yeah, it's a library.

807
00:39:43,800 --> 00:39:45,679
Speaker 3: There's no.

808
00:39:48,079 --> 00:39:50,119
Speaker 2: That's a great question, right, It's like, what do people

809
00:39:50,199 --> 00:39:52,239
expect from this because it's a dev tool built by

810
00:39:52,239 --> 00:39:53,679
a dev for the other devs.

811
00:39:53,679 --> 00:39:57,800
Speaker 3: So, I mean, obviously people expect a lot, but what

812
00:39:57,840 --> 00:40:02,159
I've always said is before we had stack overflow, you know,

813
00:40:02,159 --> 00:40:03,840
we would try to get those things through the complex

814
00:40:03,960 --> 00:40:06,440
issues or GitHub issues. But these days, I push as

815
00:40:06,519 --> 00:40:09,440
much as I can't to stack overflow because it's like

816
00:40:09,519 --> 00:40:12,239
gamified over there, and people get you know, fake Internet

817
00:40:12,280 --> 00:40:14,719
points for answering questions. So I go over you know,

818
00:40:14,760 --> 00:40:18,039
that's people and it's often me or one of the

819
00:40:18,039 --> 00:40:20,639
other maintainers that actually answers the questions over there. But

820
00:40:20,679 --> 00:40:23,880
it's way more searchable, way more you know, tag things and.

821
00:40:23,719 --> 00:40:25,679
Speaker 2: Even if you're going to answer the question you answered

822
00:40:25,719 --> 00:40:27,639
on stack overflow so that other people will find it.

823
00:40:27,719 --> 00:40:29,480
Speaker 3: Yeah, and then and then I get to fake Internet

824
00:40:29,519 --> 00:40:32,000
points as well, which.

825
00:40:31,800 --> 00:40:34,480
Speaker 2: Is awesome, right. Yeah.

826
00:40:34,719 --> 00:40:38,719
Speaker 3: So yeah, other than we like the versions, you know,

827
00:40:38,800 --> 00:40:41,559
try to do yearly releases at the minimum if there's

828
00:40:41,559 --> 00:40:43,840
but you know, if I critical bugs, then you know,

829
00:40:43,960 --> 00:40:45,559
I'm going to try to fix it if I you know,

830
00:40:45,719 --> 00:40:47,480
as quick as I can, because I've been on the

831
00:40:47,519 --> 00:40:50,840
other side of that, right I've used some library downloaded,

832
00:40:51,000 --> 00:40:54,239
breaking production and you know, if I can submit the

833
00:40:54,239 --> 00:40:57,480
poor request, great, But I try to be you know,

834
00:40:58,239 --> 00:40:59,280
try to be flexible.

835
00:40:59,440 --> 00:41:02,000
Speaker 2: I see the pattern here too, which is generally it's

836
00:41:02,000 --> 00:41:05,800
an version. Sometimes it's an one version, so that must

837
00:41:05,800 --> 00:41:08,519
be okay, got it out there, and a month later

838
00:41:08,559 --> 00:41:10,119
it's like damn and fixed.

839
00:41:10,840 --> 00:41:12,800
Speaker 3: A month I'm like, sometimes it's hours.

840
00:41:12,840 --> 00:41:15,920
Speaker 2: I get people like, oh my god, yeah, thirteen and

841
00:41:16,000 --> 00:41:22,159
thirteen oh one, two days.

842
00:41:21,039 --> 00:41:23,199
Speaker 3: Oh gosh, I'm surprised they didn't unlist the old I

843
00:41:23,280 --> 00:41:25,519
usually unlist the old one because they're.

844
00:41:25,320 --> 00:41:29,679
Speaker 2: All closed, push up into the close. But you know,

845
00:41:29,760 --> 00:41:33,320
I know where to look. I know the detritus of

846
00:41:33,360 --> 00:41:35,000
your failures lives, mister bo.

847
00:41:35,400 --> 00:41:37,039
Speaker 3: There's you know, if you go if you did my

848
00:41:37,159 --> 00:41:39,519
fart up, there's like even further mistakes of like oh

849
00:41:39,519 --> 00:41:42,719
one o two oh three, No, it.

850
00:41:42,559 --> 00:41:44,679
Speaker 2: Gets worse, of more versions back we go.

851
00:41:46,400 --> 00:41:49,440
Speaker 3: Yeah yeah, but even these I don't even do like

852
00:41:49,679 --> 00:41:53,079
alpha beta versions. I used to do that too, but

853
00:41:53,119 --> 00:41:55,639
now there's you know that you can make separate Nougat feeds,

854
00:41:55,639 --> 00:41:57,719
so I just do that instead and just say if

855
00:41:57,719 --> 00:42:00,199
you want the latest and greatest build, you know, can

856
00:42:00,199 --> 00:42:03,679
go over here. Otherwise, you know, I just it's not

857
00:42:04,159 --> 00:42:05,440
worth it for me to do that.

858
00:42:05,480 --> 00:42:10,280
Speaker 2: I perfectly willing to share your experimental yeah bits you know,

859
00:42:10,400 --> 00:42:12,840
you use it your own risk, but I'm not going

860
00:42:12,920 --> 00:42:16,079
to make anything formal in that, you know, just this

861
00:42:16,119 --> 00:42:19,480
is where it lives. Yeah, that's cool exactly now I

862
00:42:19,480 --> 00:42:21,960
think again, it's like I still feel like I'm doing

863
00:42:22,000 --> 00:42:23,599
the right thing. Looking to you for a way to

864
00:42:23,639 --> 00:42:26,960
look at open source in contemporary styles, like look how

865
00:42:27,000 --> 00:42:29,760
stripped down this is now as to how you go

866
00:42:29,920 --> 00:42:34,079
about building versions and managing people's expectations. It's pretty lean,

867
00:42:34,239 --> 00:42:35,679
man like, it's very efficient.

868
00:42:35,920 --> 00:42:39,920
Speaker 3: I well, that's the that's that I try to minimize

869
00:42:39,960 --> 00:42:42,000
the boring parts of the open source stuff of like

870
00:42:42,079 --> 00:42:44,760
pushing our releases even you know, release notes now are

871
00:42:44,880 --> 00:42:47,079
so simple these days, like get hub. Let's you just say,

872
00:42:47,280 --> 00:42:50,000
generate release notes and just spits them out from all

873
00:42:50,039 --> 00:42:52,559
the closed issues. Like I used to have to go

874
00:42:52,599 --> 00:42:54,719
back and like I used to write that stuff, create

875
00:42:54,800 --> 00:42:58,199
milestones and assigned issues like it was a whole you know,

876
00:42:58,559 --> 00:43:01,960
just paperwork of it. That is just way to it. Now.

877
00:43:02,000 --> 00:43:05,239
I just push a tag and then everything goes from there,

878
00:43:05,280 --> 00:43:08,400
as long as I remember to update the apike for

879
00:43:08,519 --> 00:43:12,559
nugats which expires, then everything gets published correctly.

880
00:43:14,039 --> 00:43:16,639
Speaker 2: And what's your protections around the APIQ expirings is just

881
00:43:16,639 --> 00:43:18,719
an entry in Gmail calendar.

882
00:43:19,960 --> 00:43:22,960
Speaker 3: Well, they do tell you know, I do good notification. Hey,

883
00:43:23,000 --> 00:43:24,920
your API key is about to aspire. I'm like, I'll

884
00:43:24,960 --> 00:43:28,360
get to that later, of course, later as the day

885
00:43:28,360 --> 00:43:29,159
I'm trying to release.

886
00:43:29,360 --> 00:43:31,679
Speaker 2: Yes, now you're on fire.

887
00:43:31,880 --> 00:43:32,519
Speaker 1: Could be worse.

888
00:43:33,280 --> 00:43:37,079
Speaker 2: Yeah, you got good problems. So what's it? What's coming

889
00:43:37,119 --> 00:43:40,079
for fifteen friend? Yeah, what's new? I guess waiting for

890
00:43:40,119 --> 00:43:41,199
the next version of dot net.

891
00:43:41,760 --> 00:43:44,760
Speaker 3: Well, there's I mean, yeah, I always I try to

892
00:43:44,760 --> 00:43:48,599
have the minimum yearly releases to keep up with just

893
00:43:48,679 --> 00:43:51,400
package releases and dot releases from Microsoft.

894
00:43:51,639 --> 00:43:52,360
Speaker 2: Yeah.

895
00:43:52,400 --> 00:43:54,880
Speaker 3: But yeah, because it's such a reactive library, or at

896
00:43:54,920 --> 00:43:58,639
least it was it has been. It's it's still driven

897
00:43:58,679 --> 00:44:02,199
by what folks are asking for in what time I

898
00:44:02,239 --> 00:44:04,960
have available to work on it. But that is one

899
00:44:05,000 --> 00:44:07,800
thing that has changed a lot with my open sources.

900
00:44:08,360 --> 00:44:12,639
I used to work for a consulting company for thirteen

901
00:44:12,719 --> 00:44:16,480
years or so, and they were the unbeknownst to me,

902
00:44:16,760 --> 00:44:18,760
and I figured this out after the fact that they

903
00:44:19,440 --> 00:44:23,719
were actually sponsoring my open source like in fact, wow,

904
00:44:24,440 --> 00:44:27,960
because we were the open source libraries were being used

905
00:44:28,280 --> 00:44:31,280
for the clients and used to help deliver our projects

906
00:44:31,360 --> 00:44:35,000
better faster or stronger or whatever. Okay, then it was

907
00:44:35,039 --> 00:44:38,159
something like, oh, we see we've copied this code four

908
00:44:38,199 --> 00:44:41,920
times amongst different clients. Let's create a package out of it,

909
00:44:42,039 --> 00:44:45,639
Like why don't copy code everywhere? You know, just pulled

910
00:44:45,639 --> 00:44:47,920
on to a new good package and you know, graduate

911
00:44:48,079 --> 00:44:51,079
shared code to now share package and now it can

912
00:44:51,119 --> 00:44:54,679
just more easily use it going forwards like Mediator for example,

913
00:44:54,719 --> 00:44:56,800
came exactly from that. It was three or four clients

914
00:44:56,800 --> 00:45:00,000
I copied the same code and then my boss is like, Jimmy,

915
00:45:00,199 --> 00:45:01,800
make that a new good package. But at the time

916
00:45:01,880 --> 00:45:04,159
I was still annoyed with automapper of dealing with that,

917
00:45:04,880 --> 00:45:07,199
I was like automapp or silver Light days. I'm like, oh,

918
00:45:07,320 --> 00:45:10,639
not more open source stuff, but other hey whatever, I'll

919
00:45:11,159 --> 00:45:14,239
push that out as well. So that's that is what

920
00:45:14,360 --> 00:45:17,320
that That was what almost all my open source was

921
00:45:17,320 --> 00:45:21,280
was the you know, clients asking for stuff and the

922
00:45:21,320 --> 00:45:23,719
company giving me the time to work on it if

923
00:45:23,760 --> 00:45:24,800
I had time between clients.

924
00:45:25,280 --> 00:45:27,320
Speaker 2: This is back in the head Spring days, yeah exactly,

925
00:45:27,360 --> 00:45:30,199
head Spring Days. Yeah, okay, which what happened They got

926
00:45:30,199 --> 00:45:37,480
acquired by Accenture, Yeah, acquired by centurewent one.

927
00:45:37,039 --> 00:45:40,639
Speaker 3: And I had left just before then, and so one

928
00:45:40,639 --> 00:45:44,159
of the things I noticed was I lost my primary

929
00:45:44,159 --> 00:45:47,920
sponsor on the open source, which I didn't effectively. I

930
00:45:47,920 --> 00:45:51,000
didn't realize that, oh right, when I had time off

931
00:45:51,079 --> 00:45:53,440
between projects, I could just work an open source because

932
00:45:53,480 --> 00:45:56,679
there was a full marketing sales. You know, there's a

933
00:45:56,719 --> 00:46:00,920
whole organization around the company to to go to business.

934
00:46:01,000 --> 00:46:02,760
Speaker 2: Yeah, they're going to bring you the next project. You

935
00:46:02,800 --> 00:46:03,719
don't have to think about it.

936
00:46:03,960 --> 00:46:08,079
Speaker 3: Yeah. So now my big challenge is being independent consultant.

937
00:46:08,199 --> 00:46:10,639
When I have time between projects, I'm just working on

938
00:46:10,679 --> 00:46:13,599
getting new projects. I'm not like, right, let me do

939
00:46:13,679 --> 00:46:16,519
this big new feature for open source like that that

940
00:46:16,599 --> 00:46:18,639
doesn't go by it like doesn't pay the bills. So

941
00:46:18,719 --> 00:46:22,440
I'm no, you yeah, trying to find how to find

942
00:46:22,440 --> 00:46:24,079
that time now, yeah, exactly.

943
00:46:23,800 --> 00:46:27,400
Speaker 2: Yeah, no, no kidding. I mean, you got fourteen out,

944
00:46:28,199 --> 00:46:31,519
but it's been a few years since Headspring now, like

945
00:46:31,920 --> 00:46:34,119
you need you're in a new workflow entirely.

946
00:46:34,639 --> 00:46:39,440
Speaker 3: Yeah. Yeah, I'm just curious as I hit five years

947
00:46:39,679 --> 00:46:43,000
being independent in January and when looked at my contribution

948
00:46:43,119 --> 00:46:47,000
graph for open source and was like and then went independent,

949
00:46:47,320 --> 00:46:50,199
it's just flat lined. Look after that and It's not

950
00:46:50,280 --> 00:46:52,880
something I noticed because I felt like I was still

951
00:46:52,880 --> 00:46:58,559
doing stuff and then like the numbers didn't like Oh no, I.

952
00:46:58,480 --> 00:47:01,039
Speaker 2: Mean the luxury of having a whole week to work

953
00:47:01,079 --> 00:47:03,320
on your open source project, much less than a month.

954
00:47:03,920 --> 00:47:06,440
Speaker 3: Yeah, yeah it was. It was great. I could, you know,

955
00:47:06,480 --> 00:47:09,960
experiment with you, like the whole I rewrote the entire

956
00:47:10,599 --> 00:47:16,000
underlying configuration model and execution model to be expression tree compilation.

957
00:47:16,519 --> 00:47:20,440
Plus I made a static API, which was a mistake, Like,

958
00:47:20,480 --> 00:47:23,599
don't do static stuff. It's it makes things so much

959
00:47:23,599 --> 00:47:26,880
difficult to deal with. H and every wrote all that,

960
00:47:27,000 --> 00:47:29,679
but that was like a month and a half between

961
00:47:29,719 --> 00:47:32,519
projects that I could like dedicate to like, Okay, this

962
00:47:32,559 --> 00:47:34,360
is a problem. I got to fix this. Like no,

963
00:47:34,480 --> 00:47:37,199
clients are really complaining that it's slow, but I know

964
00:47:37,280 --> 00:47:40,079
it's slow, so I need to fix I need to

965
00:47:40,119 --> 00:47:42,239
fix this and do it, do it proper underneath the covers.

966
00:47:42,880 --> 00:47:44,360
So yeah, I don't I don't know I'll be able

967
00:47:44,400 --> 00:47:46,199
to capture that again, but it's something I'm trying to

968
00:47:46,199 --> 00:47:49,559
figure out. Yeah, how do I get that flexibility back?

969
00:47:50,360 --> 00:47:51,000
So I don't know.

970
00:47:51,519 --> 00:47:56,039
Speaker 2: Yeah, well dude, you you're talking the open source matra here, right, Yeah,

971
00:47:56,039 --> 00:48:00,159
it's a popular new complaint. Yeah, that you've been supporting

972
00:48:00,199 --> 00:48:03,960
for years and years, and now how do you keep

973
00:48:03,960 --> 00:48:06,400
this going when the situation is different?

974
00:48:06,519 --> 00:48:09,519
Speaker 3: Yeah? So yes, features like that. I do have ideas

975
00:48:09,519 --> 00:48:11,599
for features, but the challenge like how do I find

976
00:48:11,719 --> 00:48:14,519
someone that wants to pay pay for that sort of thing?

977
00:48:14,599 --> 00:48:17,679
Like sure, I would love to do a sorce generate

978
00:48:17,880 --> 00:48:20,480
version of it as well, So people that want the

979
00:48:20,480 --> 00:48:23,760
compile time or AOT is another big thing, right, AOT

980
00:48:24,320 --> 00:48:28,880
cannot do run time compilation. Expression Tree cannot do it.

981
00:48:29,760 --> 00:48:33,000
None of my libraryes support that because like, I don't

982
00:48:33,039 --> 00:48:35,960
have clients asking for its, but people are asking for its.

983
00:48:36,079 --> 00:48:36,360
Speaker 2: Yeah.

984
00:48:36,480 --> 00:48:40,039
Speaker 1: Have you come close to a customer saying will pay

985
00:48:40,159 --> 00:48:41,440
you to add this feature?

986
00:48:41,800 --> 00:48:46,239
Speaker 3: No, that's part of the I guess maybe it's just

987
00:48:46,280 --> 00:48:49,079
a problem of how I market myself. But I love

988
00:48:49,199 --> 00:48:52,280
long term projects where I ship things, and that's not

989
00:48:52,440 --> 00:48:54,400
often a thing people ask for in those kind of things,

990
00:48:54,440 --> 00:48:57,239
Like I spent two and a half years migrating dot

991
00:48:57,280 --> 00:49:00,559
net framework projects to the core. Had no point was

992
00:49:00,599 --> 00:49:02,199
anyone like, hey, can you add this new autom Apple

993
00:49:02,239 --> 00:49:04,960
feature in that project? Like no, I'm just focusing on

994
00:49:05,039 --> 00:49:09,199
Like oh gosh, signal there is different in these two versions.

995
00:49:09,239 --> 00:49:12,440
How do I manage those two totally different models or whatever?

996
00:49:12,559 --> 00:49:14,840
Speaker 2: It's not you didn't make Automapper features, but you define

997
00:49:14,880 --> 00:49:16,519
them based on the work you were doing.

998
00:49:17,039 --> 00:49:17,119
Speaker 3: That.

999
00:49:17,159 --> 00:49:20,000
Speaker 2: Hey, I can save myself time if I add this capability.

1000
00:49:20,159 --> 00:49:23,400
Speaker 3: Yeah, I would say purely selfish, but it's pretty selfish.

1001
00:49:23,599 --> 00:49:28,320
Speaker 2: Yeah, it ultimately does benefit the customer. Yeah, you just do. Hey,

1002
00:49:28,320 --> 00:49:31,320
I'm repeating this process, so I'll add it to autom

1003
00:49:31,320 --> 00:49:33,960
apport it's built, you know.

1004
00:49:34,159 --> 00:49:36,559
Speaker 3: Ye. Well that's the other thing is that's why I

1005
00:49:36,599 --> 00:49:39,440
have a hard time with poll requests from random people.

1006
00:49:40,280 --> 00:49:43,519
If it's not a use case that I have ever

1007
00:49:43,639 --> 00:49:46,599
seen and don't envision seeing, how can I know if

1008
00:49:46,639 --> 00:49:49,159
I'm doing this right or wrong. I don't know if

1009
00:49:49,159 --> 00:49:52,119
it's done unless I have some connection to the end

1010
00:49:53,039 --> 00:49:55,840
this sort of end use case available, And if I

1011
00:49:55,840 --> 00:49:57,760
don't have that, then it's kind of guessing.

1012
00:49:58,639 --> 00:50:01,599
Speaker 2: YEA knowing the obligation you're adding to your life for

1013
00:50:01,719 --> 00:50:04,719
putting that feature in. Yeah, that's a lot new stack

1014
00:50:04,719 --> 00:50:06,440
over full posts that I need to happen.

1015
00:50:07,159 --> 00:50:09,119
Speaker 3: I mean, there were features like I mentioned that the

1016
00:50:09,119 --> 00:50:11,800
whole link projection. I could see that like oh, this

1017
00:50:11,880 --> 00:50:15,199
could be really helpful. And so I saw no one,

1018
00:50:15,320 --> 00:50:17,320
no client was asking for it, but I saw it

1019
00:50:17,360 --> 00:50:20,480
off clients with that problem, right, said Okay, I can

1020
00:50:20,519 --> 00:50:23,480
see this solution could could address that problem. And then

1021
00:50:23,480 --> 00:50:25,800
I go backfail too. I would go backfell clients and say, okay,

1022
00:50:25,840 --> 00:50:27,280
let me go try to put this back into your

1023
00:50:27,280 --> 00:50:29,679
code base and see if it actually fixed the stuff.

1024
00:50:30,000 --> 00:50:31,639
I wouldn't necessarily like submit it back up to the

1025
00:50:31,639 --> 00:50:33,800
client because they weren't paying for that time, but just

1026
00:50:33,800 --> 00:50:36,599
to validate and say, hey, did this help in these

1027
00:50:36,679 --> 00:50:38,400
use cases and figure that out.

1028
00:50:38,480 --> 00:50:41,480
Speaker 1: Are you talking about like serializing and de serializing a

1029
00:50:41,519 --> 00:50:43,320
link query an iquery?

1030
00:50:43,800 --> 00:50:45,599
Speaker 3: Ooh boy, that's even crazier.

1031
00:50:45,960 --> 00:50:48,119
Speaker 2: No, but that's that's impossible.

1032
00:50:48,280 --> 00:50:51,960
Speaker 1: I've I tried looking at it. It's been attempted many times,

1033
00:50:52,000 --> 00:50:54,880
and none of them weren't because it's code.

1034
00:50:54,960 --> 00:50:55,480
Speaker 2: Essentially.

1035
00:50:55,639 --> 00:51:01,320
Speaker 3: My very first n DC OSLO talk was something with

1036
00:51:01,360 --> 00:51:05,000
external dsls, and what we did there was we translated

1037
00:51:05,159 --> 00:51:10,199
re translated a text expression into both SQL and C

1038
00:51:10,360 --> 00:51:12,679
sharp expression trees, so we could execute your code at

1039
00:51:12,679 --> 00:51:15,679
the sequel or in memory. That's the closest I've gotten.

1040
00:51:16,280 --> 00:51:19,400
But this part, this automatic thing is what. It merely

1041
00:51:19,519 --> 00:51:22,559
generates an expression and then hands it off to the

1042
00:51:22,639 --> 00:51:26,119
query provider to translate. It translates the expression, but it

1043
00:51:26,159 --> 00:51:28,639
needs that expression. So we would say here, here you go.

1044
00:51:28,679 --> 00:51:31,639
Here's the fully built expression of how to do the

1045
00:51:31,719 --> 00:51:34,159
select part of SQL. Basically, I give it the select

1046
00:51:34,199 --> 00:51:37,360
part and link and then it goes from there. So

1047
00:51:37,400 --> 00:51:40,000
you don't write the select. You say, give the select

1048
00:51:40,079 --> 00:51:43,000
to it, and it will regardless of the query provider.

1049
00:51:43,039 --> 00:51:45,239
I mean we've used it a Mango and raven to

1050
00:51:45,320 --> 00:51:49,679
be and EF of course all sorts of things. And

1051
00:51:49,719 --> 00:51:51,960
if it can handle the expression, then it's like yep,

1052
00:51:52,079 --> 00:51:56,159
I can translate it directly to your query. For the

1053
00:51:56,239 --> 00:51:57,400
database of choice.

1054
00:51:57,400 --> 00:52:00,360
Speaker 1: I built a filter tool that I can pay from

1055
00:52:00,360 --> 00:52:03,159
an API to a server to get a response that

1056
00:52:03,920 --> 00:52:07,079
just you know, it breaks down exactly what you're looking for.

1057
00:52:07,239 --> 00:52:10,920
You're looking for an expression within and uh you know,

1058
00:52:11,000 --> 00:52:13,320
a string, a string within a string, or it begins

1059
00:52:13,320 --> 00:52:15,760
with starts with ends with equals, and what are the

1060
00:52:15,880 --> 00:52:18,639
what are the data types? And you know the parameters

1061
00:52:18,679 --> 00:52:20,679
and all that stuff, and you just ship all that

1062
00:52:20,800 --> 00:52:24,719
off over an API I call and then you know everything.

1063
00:52:24,719 --> 00:52:27,239
Speaker 3: Wait, did you invent o data no, no, no, I'm

1064
00:52:27,280 --> 00:52:31,960
kidding data more like no data.

1065
00:52:32,039 --> 00:52:34,079
Speaker 1: This was it was for a customer, you know. It

1066
00:52:34,119 --> 00:52:36,480
was a simple thing that they wanted to do. But

1067
00:52:36,679 --> 00:52:40,039
ultimately what they wanted to do was serialize and de

1068
00:52:40,159 --> 00:52:44,159
serialize a link query, you know, an iqueriable. And I

1069
00:52:44,239 --> 00:52:46,119
tried it, and I tried and I looked, and it

1070
00:52:46,239 --> 00:52:49,039
just could can't be done because and fundamentally it can't

1071
00:52:49,039 --> 00:52:51,400
be done because there's code there, it's not data.

1072
00:52:51,760 --> 00:52:52,000
Speaker 3: Yeah.

1073
00:52:52,199 --> 00:52:55,920
Speaker 1: So I just turned you know, created a data you know,

1074
00:52:56,280 --> 00:52:58,119
a data objects.

1075
00:52:57,719 --> 00:53:00,320
Speaker 3: And Microsoft was really mean and took away our buyinary

1076
00:53:00,320 --> 00:53:01,920
format or where we could binary.

1077
00:53:01,599 --> 00:53:03,559
Speaker 2: Serialize right.

1078
00:53:05,440 --> 00:53:07,239
Speaker 3: Stick with security problems.

1079
00:53:07,119 --> 00:53:10,039
Speaker 2: I know, what's up with that? Trying to protect us?

1080
00:53:10,320 --> 00:53:12,800
What are they thinking? What's the matter with those people?

1081
00:53:13,760 --> 00:53:16,079
Speaker 1: All Right, well, guys, I gotta go because I gotta

1082
00:53:16,159 --> 00:53:17,239
keep working on O data.

1083
00:53:21,000 --> 00:53:22,960
Speaker 3: I mean that's what I meant.

1084
00:53:23,039 --> 00:53:26,920
Speaker 1: Yes, Jimmy, it's been a pleasure talking to you. It

1085
00:53:26,920 --> 00:53:29,880
always is, and hopefully I'll catch up with you somewhere

1086
00:53:30,239 --> 00:53:32,000
out there in one of these places.

1087
00:53:32,159 --> 00:53:33,440
Speaker 3: Thanks for having me. Appreciate it.

1088
00:53:33,480 --> 00:53:36,079
Speaker 2: You got it to talk you bred, all right, and we'll.

1089
00:53:35,840 --> 00:54:13,679
Speaker 5: Talk to you next time on dot net rocks.

1090
00:53:59,360 --> 00:54:02,119
Speaker 1: Dot net Rock is brought to you by Franklin's net

1091
00:54:02,199 --> 00:54:06,159
and produced by Pop Studios, a full service audio, video

1092
00:54:06,199 --> 00:54:10,280
and post production facility located physically in New London, Connecticut,

1093
00:54:10,559 --> 00:54:15,360
and of course in the cloud online at PWOP dot com.

1094
00:54:15,519 --> 00:54:17,679
Speaker 4: Visit our website at d O T N E t

1095
00:54:17,920 --> 00:54:21,920
R O c k S dot com for RSS feeds, downloads,

1096
00:54:22,079 --> 00:54:25,760
mobile apps, comments, and access to the full archives going

1097
00:54:25,800 --> 00:54:29,159
back to show number one, recorded in September.

1098
00:54:28,639 --> 00:54:29,480
Speaker 2: Two thousand and two.

1099
00:54:30,079 --> 00:54:32,440
Speaker 1: And make sure you check out our sponsors. They keep

1100
00:54:32,519 --> 00:54:35,679
us in business. Now go write some code, See you

1101
00:54:35,719 --> 00:54:36,159
next time.

1102
00:54:37,039 --> 00:54:38,880
Speaker 4: You got Javans

1103
00:54:40,960 --> 00:54:47,440
Speaker 2: And

