WEBVTT
1
00:00:01.080 --> 00:00:02.960
How'd you like to listen to dot net rocks with
2
00:00:03.080 --> 00:00:07.879
no ads? Easy? Become a patron for just five dollars
3
00:00:07.919 --> 00:00:10.800
a month. You get access to a private RSS feed
4
00:00:10.839 --> 00:00:14.279
where all the shows have no ads. Twenty dollars a month,
5
00:00:14.279 --> 00:00:16.920
we'll get you that and a special dot net Rocks
6
00:00:16.960 --> 00:00:21.000
patron mug. Sign up now at Patreon dot dot NetRocks
7
00:00:21.160 --> 00:00:36.679
dot com. Hey and welcome back. It's dot net rocks.
8
00:00:36.759 --> 00:00:39.719
I'm Carl Franklin, an a vertue cavil. Jimmy Bogart is here.
9
00:00:39.759 --> 00:00:42.240
You might hear him chime in during the intro and
10
00:00:42.439 --> 00:00:45.880
uh oh yea hey everyone, Yeah, hi Jimmy, And uh well,
11
00:00:45.960 --> 00:00:51.640
this is episode twenty twelve, so only what twenty four
12
00:00:51.679 --> 00:00:55.679
more episodes before we stop this nonsense? Fourteen oh yeah,
13
00:00:55.759 --> 00:00:56.439
fourteen one.
14
00:00:56.560 --> 00:00:57.200
Math is hard.
15
00:00:57.679 --> 00:01:04.519
I can't do math before. That's early. Okay, this being
16
00:01:04.560 --> 00:01:07.959
twenty twelve, let's talk about the the news. What happened
17
00:01:08.280 --> 00:01:12.879
that year? Sure, Barack Obama won a reelection. Yeah, defeated
18
00:01:13.200 --> 00:01:16.519
Mitt Romney, Oh, formerly a game show host.
19
00:01:16.760 --> 00:01:17.359
It's not true.
20
00:01:17.480 --> 00:01:20.959
No, I just I just that name Mitt Romney from
21
00:01:21.000 --> 00:01:22.000
The Price is Right.
22
00:01:21.959 --> 00:01:24.920
Wasn't it? The governor of Massachusetts? He was Yeah.
23
00:01:25.040 --> 00:01:27.719
Yeah, and an interesting thing I learned about him is
24
00:01:27.760 --> 00:01:30.239
that he had a healthcare plan that was very similar
25
00:01:30.280 --> 00:01:31.120
to Obamacare.
26
00:01:31.280 --> 00:01:34.000
Yeah. Yeah, he was on in on universal healthcare, at
27
00:01:34.079 --> 00:01:36.040
least for the state of Massachusett. And then he opposed
28
00:01:36.040 --> 00:01:38.439
to Obamacare. Well, you know, because reasons.
29
00:01:38.640 --> 00:01:44.560
Yeah. Yeah. So civil war in Syria got hotter. Yeap,
30
00:01:44.680 --> 00:01:48.319
that began as protests during the Arab Spring became a
31
00:01:48.359 --> 00:01:50.400
full on civil war. We kind of hinted at that
32
00:01:50.480 --> 00:01:56.879
last last episode. Yeah, Aleppo became a major battleground, conflict
33
00:01:56.959 --> 00:02:00.920
evolved into one of the defining geopolitical crises the decade.
34
00:02:01.359 --> 00:02:03.439
Yeah, as it lasted over a decade.
35
00:02:03.599 --> 00:02:08.319
Yeah. Hurricane Sandy devastated the US East coast and you
36
00:02:08.400 --> 00:02:10.599
were caught in that. Well that prompted us to buy
37
00:02:10.599 --> 00:02:13.479
a generator. H Did I tell you the generator story?
38
00:02:13.520 --> 00:02:16.319
Which one, Well, we haven't really done a show since
39
00:02:16.360 --> 00:02:19.319
the storm over here, right, Oh. Yeah, So the generator
40
00:02:19.479 --> 00:02:21.439
kicked on. I have a propane generator.
41
00:02:21.599 --> 00:02:24.319
By this case, you mean you don't mean Sandy fourteen, No, No,
42
00:02:24.360 --> 00:02:26.000
I'm talking about this week.
43
00:02:25.960 --> 00:02:28.000
Last week, yeah, July fourth weekend.
44
00:02:28.439 --> 00:02:29.919
Yeah, So the.
45
00:02:29.919 --> 00:02:32.120
Generator kicks on because the power goes out right, and
46
00:02:32.159 --> 00:02:35.840
then the next day the generator just stops. So I
47
00:02:35.919 --> 00:02:38.280
see that there's oil. Been running for a day, Yeah,
48
00:02:38.280 --> 00:02:40.360
I was running for a day. There was oil pooled
49
00:02:40.400 --> 00:02:42.680
around it. So we leased the generator so we don't
50
00:02:42.719 --> 00:02:45.719
have to you know, called generator people to come and
51
00:02:45.759 --> 00:02:47.280
fix it on our dime.
52
00:02:47.400 --> 00:02:48.080
We don't own it.
53
00:02:48.240 --> 00:02:50.520
Yeah, we don't own it. So they came within a
54
00:02:50.560 --> 00:02:52.439
couple hours and fixed it. Kelly and I went to
55
00:02:52.439 --> 00:02:54.000
a hotel room for the night because you know, I
56
00:02:54.039 --> 00:02:56.520
have a seapap and I need electricity to sleep. Yeah,
57
00:02:56.560 --> 00:02:59.639
so that happened then, and then the next day, you know,
58
00:02:59.759 --> 00:03:03.639
inner nets out and we're limping along with like a
59
00:03:03.719 --> 00:03:07.159
little you know, my Fi, my Fi, but I can't
60
00:03:07.199 --> 00:03:09.919
connect it to my computer because my computer at my
61
00:03:09.960 --> 00:03:12.400
desktop that I use for all this stuff doesn't have
62
00:03:12.439 --> 00:03:15.000
a Wi Fi connector. Right, I buy a Wi Fi
63
00:03:15.199 --> 00:03:21.800
USB thing. It doesn't work. I'm troubleshooting it with with GPT.
64
00:03:22.439 --> 00:03:26.199
Nothing works. Like I'm screwed. It finally came back on
65
00:03:26.520 --> 00:03:31.520
all right. Fun after Sandy Sandy Hook Elementary School. Jeez,
66
00:03:31.560 --> 00:03:32.439
that was a tragedy.
67
00:03:32.680 --> 00:03:32.879
Yeah.
68
00:03:33.280 --> 00:03:38.360
December fourteenth, the London Summer Olympics, London became the first
69
00:03:38.400 --> 00:03:41.719
city to host the modern Summer Olympics three times.
70
00:03:41.439 --> 00:03:43.800
Didn't they didn't The Queen of England junkhot jump out
71
00:03:43.800 --> 00:03:44.919
of a helicopter in that one.
72
00:03:45.000 --> 00:03:48.560
You know that might have been a dream.
73
00:03:49.960 --> 00:03:52.199
Yeah, there was a whole James Bond bit. And then
74
00:03:52.199 --> 00:03:53.879
when they presented it to the queen and said, hey,
75
00:03:53.960 --> 00:03:55.280
do you mind if we do this, she goes only
76
00:03:55.280 --> 00:03:57.159
if I get to do it. Really obviously she didn't
77
00:03:57.199 --> 00:03:59.400
jump out of the helicopter, but she did act in it.
78
00:03:59.439 --> 00:04:02.639
Of course she did as herself, but everyone was kind
79
00:04:02.639 --> 00:04:04.319
of blown away that she wanted to play along.
80
00:04:04.520 --> 00:04:05.080
That's funny.
81
00:04:05.159 --> 00:04:08.400
Yeah, she was quite a sport I thought. I tend
82
00:04:08.400 --> 00:04:08.919
to agree.
83
00:04:09.439 --> 00:04:13.439
The highlights there Usain Bolt defending his sprint titles and
84
00:04:13.479 --> 00:04:17.519
Michael Phelps becoming the most decorated Olympian in history. Egypt
85
00:04:17.600 --> 00:04:23.240
elects Mohammed Morcy following the Arab Spring, Egypt's first democratically
86
00:04:23.279 --> 00:04:27.000
elected president. You know a bit about Egypt got a comment, Yes.
87
00:04:26.879 --> 00:04:31.680
It doesn't, it doesn't last. In the end, Egypt has
88
00:04:31.720 --> 00:04:36.079
been controlled by the by the army all along with
89
00:04:36.199 --> 00:04:39.399
MBARK and LCC and so. Yeah, and they never put
90
00:04:39.439 --> 00:04:41.959
in traffic lights did they Well, they didn't really need them.
91
00:04:42.000 --> 00:04:44.480
They have people with little taking notes, and if you
92
00:04:44.480 --> 00:04:46.319
behave badly in the intersection, you'll get a note.
93
00:04:47.959 --> 00:04:49.959
Costa Concordia cruise ship disaster.
94
00:04:50.319 --> 00:04:53.720
Oh yeah, buzzing, his girlfriend gets too close, rips the
95
00:04:53.720 --> 00:04:56.800
bottom of the hull out. Nicely done, Then bales on
96
00:04:56.879 --> 00:04:57.519
the ship too.
97
00:04:57.800 --> 00:05:04.240
Okay. Shijinping becomes China's top leader. That's gone well yeah, yeah, okay,
98
00:05:04.519 --> 00:05:09.639
o comment. The Eurozone debt crisis reaches its beak. Nice, Greece,
99
00:05:09.920 --> 00:05:13.600
Spain and other European countries face severe financial instability.
100
00:05:13.680 --> 00:05:15.959
Turns out not all Euros are the same, right.
101
00:05:16.480 --> 00:05:19.360
And then, of course the killing of Trayvon Martin, which
102
00:05:19.800 --> 00:05:24.680
became a national flashpoint over race, self defense laws and policing,
103
00:05:25.560 --> 00:05:28.759
and that laid the groundwork for what would become the
104
00:05:28.759 --> 00:05:31.399
Black Lives Matter movement A long time ago. Yeah, a
105
00:05:31.399 --> 00:05:34.720
long time ago. So there's more. But in the interest
106
00:05:34.759 --> 00:05:39.079
of time, what's the top space and tech stories?
107
00:05:39.199 --> 00:05:42.279
Richard in January, the Grail mission to the Moon. This
108
00:05:42.439 --> 00:05:45.439
was two satellites that had actually been launched in September
109
00:05:45.639 --> 00:05:48.399
the previous year. They took their time getting there, but
110
00:05:48.519 --> 00:05:51.319
they're doing there's mass concentration on the Moon that makes
111
00:05:51.319 --> 00:05:55.199
the gravity very uneven plus or minus two percent, enough
112
00:05:55.199 --> 00:05:57.319
that it's almost impossible to stay in a low orbit
113
00:05:57.360 --> 00:05:59.879
around the Moon, and so we need a detail map
114
00:05:59.879 --> 00:06:01.240
of that, and that's what the Grail mission was for.
115
00:06:01.319 --> 00:06:04.800
These two satellites fly in formation with a laser between them,
116
00:06:05.079 --> 00:06:07.680
and they measure the changes in the distance caused by
117
00:06:07.720 --> 00:06:09.959
gravitational variations, so we end up with a very detailed
118
00:06:10.000 --> 00:06:13.680
gravity map. They only operate for this year and then
119
00:06:13.879 --> 00:06:16.759
are deliberately impacted into the Moon to not leave space
120
00:06:16.800 --> 00:06:20.199
debris around. In May, the first cargo drag into the
121
00:06:20.560 --> 00:06:23.439
International Space Station, so this is the first commercial spacecraft
122
00:06:23.519 --> 00:06:26.000
ever the space station. It takes four days to get there,
123
00:06:26.279 --> 00:06:28.879
it stays for six days, they unload cargo, load up
124
00:06:28.879 --> 00:06:31.639
stuff they want to send back, and it actually splashes
125
00:06:31.680 --> 00:06:35.519
down in the end of May. At that point, SpaceX
126
00:06:35.560 --> 00:06:38.480
advertises that they can launch a Fulcon nine for fifty
127
00:06:38.560 --> 00:06:41.839
seven million dollars and carrying up to about fifteen or
128
00:06:41.879 --> 00:06:45.040
eighteen metric tons. The equivalent flight on an area in
129
00:06:45.040 --> 00:06:47.519
spaceflight would be one hundred and thirty seven million, so
130
00:06:48.040 --> 00:06:50.759
almost a third the price. You want to understand why
131
00:06:50.839 --> 00:06:55.279
SpaceX has dominated spaceflight. This is why it's just wildly cheer.
132
00:06:55.839 --> 00:06:57.519
And then later in the year, in October, they'll do
133
00:06:57.519 --> 00:07:01.920
another cargo supply mission. Voyager one crosses over into international
134
00:07:02.000 --> 00:07:05.680
International space. Let me sadd again, And in August, Voyager
135
00:07:05.720 --> 00:07:09.600
one crosses into interstellar space, so fully outside the influence
136
00:07:09.639 --> 00:07:13.439
of the Sun. It's eleven billion miles from Earth, so
137
00:07:13.959 --> 00:07:14.920
you're not getting to back.
138
00:07:15.079 --> 00:07:18.360
A lot of wacky news stories lately about sending back
139
00:07:18.519 --> 00:07:21.120
things that can't be explained or whatever, but I think
140
00:07:21.120 --> 00:07:22.480
they're just clickbait stories.
141
00:07:22.639 --> 00:07:26.959
Yeah, to some degree. It's also it's very old and
142
00:07:27.000 --> 00:07:31.319
things are breaking down. But also in August, the Curiosity
143
00:07:31.399 --> 00:07:35.160
rover lands on Mars. This is the famous seven minutes
144
00:07:35.199 --> 00:07:38.000
of Terror. The point being it's going to take seven
145
00:07:38.040 --> 00:07:40.560
minutes from the point of interfacing with the atmosphere of
146
00:07:40.600 --> 00:07:45.319
Mars to landing, but you're fourteen minutes away from the Earth,
147
00:07:45.439 --> 00:07:48.040
so by the time they get the first signal that
148
00:07:48.079 --> 00:07:51.279
it's going to start landing, it's already finished, so you
149
00:07:51.360 --> 00:07:53.040
have no control over that. And there was a bunch
150
00:07:53.079 --> 00:07:54.800
of steps in this. This was the largest thing we'd
151
00:07:54.800 --> 00:07:58.079
ever landed on Mars, and we're trying to land it
152
00:07:58.079 --> 00:08:01.000
precisely in the Jezero crater. It's over a metric ton
153
00:08:01.040 --> 00:08:03.079
of working payload. It's a big rover, a size of
154
00:08:03.120 --> 00:08:06.199
a mini and so it comes in on a heat
155
00:08:06.240 --> 00:08:09.319
shield which heats up quickly, slowing down for about thirteen
156
00:08:09.399 --> 00:08:11.480
thousand miles an hour to about one thousand miles an
157
00:08:11.480 --> 00:08:14.600
hour because the atmosphere is very thin, not enough atmosphere
158
00:08:14.639 --> 00:08:17.759
to really stop you, but more than enough that you
159
00:08:17.800 --> 00:08:22.040
have to deal with it. Then they deploy a supersonic parachute,
160
00:08:22.079 --> 00:08:23.959
a massive one, which you'll slow it from about one
161
00:08:24.000 --> 00:08:27.439
thousand to two hundred miles an hour. Then dump the
162
00:08:27.480 --> 00:08:31.160
heat shield. Radar kicks in from the rover to look
163
00:08:31.199 --> 00:08:32.840
at the ground, try and figure out where they are.
164
00:08:32.919 --> 00:08:36.200
There's some little stabilization tricks they can do, but still
165
00:08:36.200 --> 00:08:38.240
the parachute will They're moving to two hudred miles an hours,
166
00:08:38.240 --> 00:08:40.440
too fast to land, so they have to ditch the
167
00:08:40.679 --> 00:08:45.120
arrowshell and the parachute, and now they're on rockets, and
168
00:08:45.159 --> 00:08:47.960
the rockets now maneuvering towards their landing site. But they
169
00:08:47.960 --> 00:08:51.000
can't land with the rockets or they'll damage the vehicle.
170
00:08:51.639 --> 00:08:54.279
So now it's on a thing called the skyhook or
171
00:08:54.320 --> 00:08:58.200
the skycrane. These cables wind it down about sixty feet
172
00:08:58.440 --> 00:09:01.879
from the sky hook. The jet pack actually put the
173
00:09:02.000 --> 00:09:04.679
rover down, cut the lines, and then the jet pack
174
00:09:04.799 --> 00:09:08.799
flies away, runs out of fuel and crashes seven minutes.
175
00:09:09.120 --> 00:09:11.960
It was crazy and it worked flawlessly, of course. In
176
00:09:12.000 --> 00:09:13.840
twenty twelve and again in twenty twenty.
177
00:09:13.919 --> 00:09:14.159
Yeah.
178
00:09:14.200 --> 00:09:17.120
Also in August, Neil Armstrong, first person to step on
179
00:09:17.120 --> 00:09:19.879
the Moon, passes away. Yeah. And in December, the Chang
180
00:09:19.919 --> 00:09:24.720
E two lunar orbiter has left the Moon and flown
181
00:09:24.840 --> 00:09:28.159
off to an asteroid, to Tatis asteroid, and it's the
182
00:09:28.159 --> 00:09:30.879
first for China to reach an asteroid. They're only the
183
00:09:30.919 --> 00:09:34.960
fourth country to have done that. The actually the third,
184
00:09:35.240 --> 00:09:39.720
the fourth, the Americans, the European Space Agency JACKSA and.
185
00:09:39.679 --> 00:09:41.879
Then sometimes Canadians can't do math either.
186
00:09:42.080 --> 00:09:45.519
Jimmy's funny, just keeping the counts they have met. On
187
00:09:45.600 --> 00:09:48.840
the compute side of things, twenty twelve is the year
188
00:09:48.919 --> 00:09:52.799
that the Raspberry Pie is first released in the UK. Yeah, yeah,
189
00:09:52.840 --> 00:09:57.159
the whole idea of a low cost computer. Microsoft resigns
190
00:09:57.200 --> 00:10:00.000
their logo the color Square one for the first time
191
00:10:00.120 --> 00:10:05.120
in twenty five years. Microsoft also opens MS open Tech
192
00:10:05.200 --> 00:10:08.799
under Jean Pauline. This was a funny group. We didn't
193
00:10:08.840 --> 00:10:11.639
really understand what was about. Publicly, they talked about them
194
00:10:12.360 --> 00:10:15.080
making sure that dot net worked well with important open
195
00:10:15.120 --> 00:10:19.600
source libraries like elastic and memcashd and things like that
196
00:10:19.720 --> 00:10:21.799
auto mapper, But under the hood, what was actually going
197
00:10:21.840 --> 00:10:24.200
on was they wanted to build more open source stuff,
198
00:10:24.240 --> 00:10:26.399
but the Microsoft legal was so freaked out about it
199
00:10:26.519 --> 00:10:29.960
they actually set up a separate company to create a
200
00:10:30.120 --> 00:10:32.440
legal abstraction from it. One of the teams that was
201
00:10:32.480 --> 00:10:34.919
in there was the Nity framework team, the Anity framework team.
202
00:10:34.919 --> 00:10:36.480
It decided that they wanted to make an open source
203
00:10:36.519 --> 00:10:38.919
version of Nity framework. Now they'd already written in any framework.
204
00:10:38.960 --> 00:10:41.240
He had several versions out, all of which had a
205
00:10:41.240 --> 00:10:44.320
pile of patents on it, and so open sourcing it
206
00:10:44.360 --> 00:10:46.879
seemed impossible. There was an idea we could only make
207
00:10:46.919 --> 00:10:48.600
new open source, we couldn't convert all over the source.
208
00:10:48.639 --> 00:10:49.919
But this was the first time they were really going
209
00:10:50.000 --> 00:10:53.360
to try it. And literally what they did well, all
210
00:10:53.399 --> 00:10:55.720
these guys changed jobs. They moved over to MS open
211
00:10:55.759 --> 00:10:59.120
Tech and they went through all of the code in
212
00:10:59.200 --> 00:11:02.919
Anity framework, reviewing it for patents. Now this is patents
213
00:11:02.919 --> 00:11:05.159
they'd gotten by writing the code in the first place,
214
00:11:05.600 --> 00:11:08.080
and so they're literally looking the patent deciding if it
215
00:11:08.159 --> 00:11:10.879
is valuable or not. If it's not, then fine, let
216
00:11:10.879 --> 00:11:15.000
it go. If it is. If it's if it's really valuable,
217
00:11:15.080 --> 00:11:18.000
they rewrote the code to no longer conflict with the patent.
218
00:11:18.120 --> 00:11:20.679
Is this when the n hibernate mafia showed up at
219
00:11:20.679 --> 00:11:23.960
the door? This is years after the eight years after okay,
220
00:11:24.480 --> 00:11:26.240
like two years okay.
221
00:11:26.279 --> 00:11:29.399
Anyway, in the end, they get it done and open
222
00:11:29.440 --> 00:11:31.399
source and it's kind of a big deal for Microsoft.
223
00:11:31.480 --> 00:11:34.120
Takes a months, but it lets the teams know it's
224
00:11:34.279 --> 00:11:37.080
possible to open sources usting code like everyone thought it
225
00:11:37.120 --> 00:11:40.120
was impossible. And then the process is so arduous. They
226
00:11:40.120 --> 00:11:43.519
demand a simpler process, and our friend Soma Segar Rest
227
00:11:43.519 --> 00:11:47.080
in Peace, actually streams lines the process and Microsoft moves
228
00:11:47.080 --> 00:11:48.799
a little bit closer to being open source company.
229
00:11:49.279 --> 00:11:50.879
Yeah, it may fun times.
230
00:11:51.000 --> 00:11:53.720
Facebook IPO one of the most messed up IPOs of
231
00:11:53.759 --> 00:11:56.320
all time because even though it's a public company, the
232
00:11:56.360 --> 00:12:01.440
CEO holds the majority of the voting stock public company.
233
00:12:03.000 --> 00:12:08.360
September nineteenth, twenty twelve, in Vancouver, dot net Rocks road
234
00:12:08.360 --> 00:12:12.399
Trip begins, Oh yeah, thirty seven stops in thirteen weeks,
235
00:12:12.480 --> 00:12:14.919
coming out of Vancouver, down in Seattle, then all across
236
00:12:14.960 --> 00:12:18.399
the I ninety to Boston, and then down the Eastern
237
00:12:18.440 --> 00:12:22.480
Seaboard as far south as Tampa, and then west across
238
00:12:22.559 --> 00:12:26.639
to San Diego, and then it ends in Vegas December ninth.
239
00:12:27.159 --> 00:12:28.440
I'm tired just thinking about it.
240
00:12:28.480 --> 00:12:33.799
Where you insisted that we go to Joel Robischad for dinner, and.
241
00:12:33.840 --> 00:12:34.799
It was a great meal.
242
00:12:35.039 --> 00:12:37.519
It was a great meal for you and me. My wife, however,
243
00:12:37.720 --> 00:12:40.080
was like, bring these snails out of here and get
244
00:12:40.080 --> 00:12:40.799
me a cheese in.
245
00:12:40.919 --> 00:12:44.080
At Jimmy and I about a burger. We had to
246
00:12:44.120 --> 00:12:44.960
make a couple of stops.
247
00:12:44.960 --> 00:12:47.320
There's so many snails on my plate. I can't even
248
00:12:47.360 --> 00:12:48.039
see the food.
249
00:12:49.879 --> 00:12:51.360
I mean, we didn't do the road trip nons step.
250
00:12:51.399 --> 00:12:52.840
There was a couple of breaks in. One of those
251
00:12:52.879 --> 00:12:56.519
breaks was for the second Build conference right in October.
252
00:12:57.399 --> 00:13:01.440
That's when Windows eighties officially launched and Visual Studio twenty twelve,
253
00:13:01.480 --> 00:13:03.399
the one everybody hated because the menus are all in
254
00:13:03.519 --> 00:13:08.519
Uppercase Framework four point five I E ten and Windows
255
00:13:08.519 --> 00:13:11.639
Phone eight letting all the Windows Phone developers know you
256
00:13:11.840 --> 00:13:13.679
just got screwed because all the code you wrote in
257
00:13:13.720 --> 00:13:15.360
seven will not run on eight, so you have to
258
00:13:15.360 --> 00:13:18.679
start not fun times no, and of course win eight
259
00:13:18.759 --> 00:13:20.799
is a gigantic flop and that will lead to other
260
00:13:20.799 --> 00:13:23.679
consequences which we'll talk about on the next show.
261
00:13:23.960 --> 00:13:28.440
Yeah, okay, so that's what you got, That's what I got?
262
00:13:28.480 --> 00:13:31.919
All right, Well let's roll the music for better no framework.
263
00:13:32.039 --> 00:13:41.039
Awesome? All right, man, what do you got?
264
00:13:41.080 --> 00:13:45.360
I got a message from the author of mq net.
265
00:13:45.480 --> 00:13:46.000
What is that?
266
00:13:46.120 --> 00:13:46.279
Now?
267
00:13:46.279 --> 00:13:49.799
This is a dot net wrapper for MQ which is
268
00:13:49.840 --> 00:13:55.039
a JQ like query tool from markdown query headings, code blocks, paragraphs,
269
00:13:55.080 --> 00:13:58.399
and more using a simple, composable query language. Now I
270
00:13:58.440 --> 00:14:02.639
had never heard of m Maybe guys such as Jimmy have,
271
00:14:03.360 --> 00:14:04.000
but no.
272
00:14:03.919 --> 00:14:04.919
For the MQ series.
273
00:14:06.039 --> 00:14:08.159
Yeah, that's what I would have thought of it. Yeah,
274
00:14:08.159 --> 00:14:11.039
that it was a Q system not a query system.
275
00:14:11.200 --> 00:14:13.559
Well, probably the reason we haven't heard it is it's
276
00:14:13.600 --> 00:14:17.639
a thin managed wrap around the native mq dash ffi library,
277
00:14:17.639 --> 00:14:21.759
which is compiled from the MQ rust crate. So at runtime,
278
00:14:21.840 --> 00:14:25.559
dot nets p and vokeloads the platform native binary and
279
00:14:25.879 --> 00:14:29.679
Marshall's calls across the native boundary. So there you go.
280
00:14:29.799 --> 00:14:32.799
If if you know what MQ is and you like it,
281
00:14:32.919 --> 00:14:34.600
but you want to bring that over to the dot
282
00:14:34.720 --> 00:14:37.240
net side. There you go MQ now.
283
00:14:37.159 --> 00:14:38.679
Yeah, still happening.
284
00:14:39.039 --> 00:14:40.960
Yeah cool. So who's talking to us today?
285
00:14:41.039 --> 00:14:44.279
Richard Crowd to Commenov Show nineteen forty one. What we
286
00:14:44.320 --> 00:14:48.240
talked to some guy named Jimmy Boger about automap or
287
00:14:48.279 --> 00:14:52.600
fourteen and doing this stuff for seventeen years and now
288
00:14:52.720 --> 00:14:56.039
things needed to change yep. And we also talked about,
289
00:14:56.080 --> 00:14:58.519
you know, going from coplex to gethub and that that
290
00:14:58.960 --> 00:15:02.600
whole experience. Jonathan has his comment where he says, I
291
00:15:02.639 --> 00:15:07.600
mean technically code is data. It's just that de serializing
292
00:15:07.679 --> 00:15:11.799
running code outside of one's application is rather risky. Yeah,
293
00:15:12.679 --> 00:15:15.919
an execution attack, but yeah, i'd say, very easy to
294
00:15:16.159 --> 00:15:18.519
add things happening. You know, try doing that with SQL.
295
00:15:18.679 --> 00:15:21.440
That's also bad. But if the types of queries have
296
00:15:21.480 --> 00:15:23.480
to be supported or simple enough, it probably possible to
297
00:15:23.519 --> 00:15:27.399
fake serializing aqueriable by passing a limited number of config
298
00:15:27.480 --> 00:15:30.360
keywords and using them to construct a queriable. Otherwise, it
299
00:15:30.360 --> 00:15:33.200
seems like pretending to serial as to deserilize equeriable. It
300
00:15:33.240 --> 00:15:35.759
seems like it would require creating a full ballone query language.
301
00:15:35.799 --> 00:15:38.799
Figuring out how to integrate the necessary parsing execution into
302
00:15:38.799 --> 00:15:41.240
one's app probably not worth the effort unless it's core
303
00:15:41.279 --> 00:15:44.080
functionality or you just think it's cool.
304
00:15:44.360 --> 00:15:47.919
I've thought of doing that, and I tried several approaches,
305
00:15:48.000 --> 00:15:50.879
and I tried several libraries, but they all miss the
306
00:15:50.879 --> 00:15:55.480
point that an equeriable requires code, right, and you can't
307
00:15:55.519 --> 00:15:56.840
serialize that, you know.
308
00:15:57.120 --> 00:15:59.080
So, Jonathan, thank you so much for your comment in
309
00:15:59.120 --> 00:16:00.799
a copy of music code By on its way to UNI.
310
00:16:00.799 --> 00:16:02.320
If you'd like a copy music Gobe, I write a
311
00:16:02.320 --> 00:16:04.480
comment on the website at dot NetRocks dot com or
312
00:16:04.519 --> 00:16:06.200
on the facebooks you publish every show there, and if
313
00:16:06.200 --> 00:16:07.399
you comment there and I read it in the show,
314
00:16:07.399 --> 00:16:08.840
and we'll send you copy music go By.
315
00:16:09.039 --> 00:16:12.200
And right before I lost power last week, I was
316
00:16:12.240 --> 00:16:17.600
working on music to code By track twenty three nice.
317
00:16:17.639 --> 00:16:19.679
So I did get a couple of things laid down.
318
00:16:19.720 --> 00:16:22.440
I got more to do, but plan on getting back.
319
00:16:22.279 --> 00:16:24.799
To that appen. And then the universe said, no, yeah,
320
00:16:24.879 --> 00:16:25.360
that's right.
321
00:16:26.120 --> 00:16:28.919
The gods of vengeance and irony gave me some SmackDown.
322
00:16:32.279 --> 00:16:34.639
All right, So let's introduce Jimmy. Jimmy Bogart is the
323
00:16:34.639 --> 00:16:39.279
creator and maintainer of the popular OSS libraries Automapper and Mediator.
324
00:16:39.720 --> 00:16:43.039
Jimmy is an independent software consultant based in Austin, Texas.
325
00:16:43.360 --> 00:16:47.720
He has received the Microsoft Most Valuable Profession MVP Award
326
00:16:47.919 --> 00:16:50.840
every year since two thousand and nine. And I like
327
00:16:50.919 --> 00:16:53.600
the way you said that in your bio, because you know,
328
00:16:53.759 --> 00:16:56.360
people say, I've been a developer for twelve years. Well
329
00:16:56.399 --> 00:16:58.559
you know what, next year, it's going to be thirteen
330
00:16:58.759 --> 00:17:04.039
and I'm not changing it. Yeah, so since two thousand
331
00:17:04.079 --> 00:17:05.759
and nine, you've been an MVP. Welcome Jimmy.
332
00:17:05.880 --> 00:17:07.960
Yea, I'm glad to be back, Glad to be back, glad.
333
00:17:07.720 --> 00:17:09.440
To have you. Yeah, it felt like it's been a
334
00:17:09.519 --> 00:17:13.599
year since the whole conversation about Autumn Apper and and
335
00:17:13.960 --> 00:17:16.160
changed into a more commercial model. The thing that hit
336
00:17:16.200 --> 00:17:18.640
me the hardest when you were first talking about that,
337
00:17:18.720 --> 00:17:20.480
I think was even before we were recording, was this
338
00:17:20.559 --> 00:17:24.559
whole I realized I was subsidizing this project off my
339
00:17:24.680 --> 00:17:28.000
other work and work changes, and it's like this is
340
00:17:28.079 --> 00:17:29.000
just not sustainable.
341
00:17:29.160 --> 00:17:32.039
Right, Yeah, that's I think that was the conversation. Right
342
00:17:32.039 --> 00:17:35.000
at the end, there was just looking back and like
343
00:17:36.119 --> 00:17:38.319
realizing I had lost my sponsor because I used to
344
00:17:38.359 --> 00:17:41.039
work in a consulting company that sponsored the work and
345
00:17:41.039 --> 00:17:43.200
then just not realizing that was and.
346
00:17:43.400 --> 00:17:45.720
How that's actually what was going on.
347
00:17:45.920 --> 00:17:47.720
Yeah, that's yeah. I didn't realize that at the time,
348
00:17:47.720 --> 00:17:50.359
but that's what actually the arrangement that was happening there,
349
00:17:50.400 --> 00:17:51.920
that that was no longer anymore.
350
00:17:52.000 --> 00:17:52.319
Yeah.
351
00:17:52.359 --> 00:17:55.359
So just once you once you realize that, you're like, wow, okay,
352
00:17:55.359 --> 00:17:58.359
what what what to do now? So I think that's
353
00:17:58.400 --> 00:17:59.839
what where you ended as I was trying to figure
354
00:17:59.880 --> 00:18:02.960
out what to do, what to do next with that
355
00:18:03.400 --> 00:18:05.039
with that knowledge, Yeah, and you.
356
00:18:05.519 --> 00:18:08.720
Were coming into it with some trepidation too, because I
357
00:18:08.759 --> 00:18:11.000
mean everybody talked, we've we've seen this with de one
358
00:18:11.079 --> 00:18:15.119
day and we just had rab mentioning a few weeks ago.
359
00:18:15.960 --> 00:18:19.079
Of course, this is a very common pattern, it seems,
360
00:18:19.119 --> 00:18:22.400
emerging as open sources evolving where it's like, how do
361
00:18:22.519 --> 00:18:25.759
we make these projects more sustainable? So you were at
362
00:18:25.799 --> 00:18:28.440
the beginning of that last year. Where are you now?
363
00:18:29.279 --> 00:18:31.319
Yeah, So that was like right in the middle of
364
00:18:31.359 --> 00:18:33.319
where I was trying to figure out where I wanted
365
00:18:33.359 --> 00:18:37.720
to go, And during that process I wound up talking
366
00:18:37.759 --> 00:18:40.960
to I don't know, fifteen twenty different people that're in
367
00:18:40.960 --> 00:18:44.200
the exact same sort of situation and talking to see
368
00:18:44.240 --> 00:18:46.559
what they went through, and like, basically to a tea,
369
00:18:46.640 --> 00:18:51.279
the next step for that level of open source is
370
00:18:51.400 --> 00:18:54.039
some sort of commercialization, right, And so that was the
371
00:18:54.079 --> 00:18:57.400
decision I was going through. Okay, for sustainability, it needs
372
00:18:57.440 --> 00:19:00.839
corporate sponsorship and that was no longer there from where
373
00:19:00.839 --> 00:19:03.440
I was working before, so I needed some other form
374
00:19:03.480 --> 00:19:07.440
of corporate sponsorship. And basically then that's some kind of well,
375
00:19:07.599 --> 00:19:11.640
I guess it depends, but I went the software licensing route.
376
00:19:11.880 --> 00:19:13.279
I'd read a ton of I'm sure we've had him
377
00:19:13.279 --> 00:19:17.880
on a baillion times, but Aaron Standard with Petibridge and
378
00:19:17.960 --> 00:19:24.480
acaba net talked a ton about just commercial models of
379
00:19:24.559 --> 00:19:29.599
open source, and so I basically followed his his guidelines like,
380
00:19:29.599 --> 00:19:30.720
woll you can go do this, you could do this,
381
00:19:30.759 --> 00:19:33.279
you could do this, and so I wound up going there.
382
00:19:33.279 --> 00:19:36.440
Out of just charging a fee for for companies over
383
00:19:36.519 --> 00:19:38.920
certain size to use the software.
384
00:19:38.559 --> 00:19:41.319
Did you use the source maintenance fee model?
385
00:19:42.559 --> 00:19:46.160
I looked at it, but because it was still failing,
386
00:19:46.720 --> 00:19:48.640
it was still fairly new at the time, I didn't.
387
00:19:49.079 --> 00:19:52.559
I basically thought I'd get one shot at this doing
388
00:19:52.559 --> 00:19:54.160
this something I didn't want to stake it on something
389
00:19:54.200 --> 00:19:57.960
that I didn't see was established yet. And although I
390
00:19:58.000 --> 00:19:59.799
probably could have lent a lot of credence to that
391
00:20:00.000 --> 00:20:02.960
by adopting myself, I.
392
00:20:02.680 --> 00:20:05.319
But even Rob was discouraging people at that point. He's like,
393
00:20:05.400 --> 00:20:09.119
let me see where this goes for me first before. Yeah,
394
00:20:09.160 --> 00:20:11.119
and it's worked out for him now. But it's just
395
00:20:11.200 --> 00:20:13.240
it was timing. If you were starting now, it may
396
00:20:13.319 --> 00:20:14.359
probably make more sense.
397
00:20:14.519 --> 00:20:17.079
And I should just mention that I talked to the
398
00:20:17.119 --> 00:20:21.160
guys in the apt next Realm that managed Polly, and
399
00:20:21.200 --> 00:20:23.599
they're all for it. So we're going to have a
400
00:20:23.599 --> 00:20:26.319
blog post up pretty soon that we will have we'll
401
00:20:26.359 --> 00:20:27.319
be using the SMF.
402
00:20:27.440 --> 00:20:29.359
Oh that's fantastic cool. Yeah, yeah, I mean I love
403
00:20:29.400 --> 00:20:32.119
to see those kinds of things take hold, because ultimately
404
00:20:32.440 --> 00:20:35.839
I I had realized that, you know, the libraries I
405
00:20:35.960 --> 00:20:40.480
use are used by big enterprise software organizations and big
406
00:20:40.720 --> 00:20:44.279
enterprise companies who really don't have any issue paying for
407
00:20:44.519 --> 00:20:50.119
licenses of things, right, So it's like it's just made
408
00:20:50.160 --> 00:20:53.279
like they they're more than willing to pay. So yeah,
409
00:20:53.319 --> 00:20:55.400
they want to be compliant, yes, exactly, and they want
410
00:20:56.160 --> 00:20:59.319
especially the looking at my library it's used in production systems,
411
00:21:00.319 --> 00:21:03.039
and they want to make sure that those production systems
412
00:21:03.039 --> 00:21:05.759
they've come to rely upon, like that they've invested in,
413
00:21:05.799 --> 00:21:08.559
like they can still get their return on those investments.
414
00:21:08.640 --> 00:21:09.640
So I don't know.
415
00:21:09.799 --> 00:21:13.160
It was a really tough decision going down that path,
416
00:21:13.279 --> 00:21:15.359
like you know, sleepless nights and anxiety and all that
417
00:21:15.440 --> 00:21:18.920
sort of stuff, But ultimately it was the right call.
418
00:21:19.119 --> 00:21:21.480
I wanted to just make sure it was sustainable going forward.
419
00:21:21.480 --> 00:21:22.720
I didn't want to give it up, didn't want to
420
00:21:22.720 --> 00:21:23.079
lose it.
421
00:21:23.240 --> 00:21:26.880
So so are you telling me that when you make these announcements,
422
00:21:27.519 --> 00:21:31.000
everybody says, that's a brilliant idea, John, We're all in.
423
00:21:31.400 --> 00:21:34.759
It's all just happiness and joy, right, that's how this
424
00:21:34.839 --> 00:21:35.319
went down?
425
00:21:35.440 --> 00:21:42.759
Oh goodness, No, No, And I've known just by seeing
426
00:21:42.799 --> 00:21:45.319
other people. You know, other people had done this before me,
427
00:21:45.519 --> 00:21:48.440
and I saved very very close attention to how that
428
00:21:48.480 --> 00:21:51.720
had gone for them, how their messaging was, how they
429
00:21:51.839 --> 00:21:55.079
how their model worked out for them. So I had
430
00:21:55.119 --> 00:21:58.279
both good and bad examples to work from. So I
431
00:21:58.359 --> 00:22:01.039
tried from at least a messaging perspect to kind of
432
00:22:01.039 --> 00:22:04.279
build the case of why I was going this route.
433
00:22:04.759 --> 00:22:09.359
But ultimately it's still a big ask for developer who's
434
00:22:09.480 --> 00:22:13.200
using something, Yes, and then now it's no longer free,
435
00:22:13.240 --> 00:22:15.559
and now they have to have that awkward conversation with
436
00:22:15.640 --> 00:22:16.599
their manager, with.
437
00:22:16.599 --> 00:22:19.079
Their purement yeah questions.
438
00:22:19.079 --> 00:22:21.599
So I really like that's a tough that's a tough
439
00:22:21.799 --> 00:22:23.759
conversation to have that I've had in the past. Right,
440
00:22:23.799 --> 00:22:26.160
I've been. I've been the position like I really want this,
441
00:22:27.279 --> 00:22:28.640
you know, teller C license.
442
00:22:29.599 --> 00:22:33.880
Well even worse, I'm already using this and getting rid
443
00:22:33.920 --> 00:22:36.799
of it would be difficult, and now I have to
444
00:22:36.839 --> 00:22:39.279
pay for it, or rather you have to pay for it.
445
00:22:39.400 --> 00:22:41.559
So yeah, and again you're not talking about a huge
446
00:22:41.559 --> 00:22:45.400
amount of money. It's not the money, it's the process.
447
00:22:45.079 --> 00:22:51.079
Yes, which now I'm intimately familiar with these, so the
448
00:22:51.200 --> 00:22:56.279
sort of seller side. But yeah, that started. I announced
449
00:22:56.319 --> 00:22:59.960
I think in April last year, April seconds, not April first,
450
00:23:00.000 --> 00:23:00.960
because that would have been really.
451
00:23:00.920 --> 00:23:05.079
Dumb, funny but dumb.
452
00:23:06.240 --> 00:23:09.279
And then when I'm going live, I think July of
453
00:23:09.400 --> 00:23:13.559
last year's has actually been twelve months now, nice this
454
00:23:13.759 --> 00:23:15.359
being this being a thing.
455
00:23:15.720 --> 00:23:19.759
So it's worked. You have customers, yes, you have a
456
00:23:19.839 --> 00:23:21.200
revenue stream.
457
00:23:21.039 --> 00:23:23.039
So it's it's definitely self sustaining.
458
00:23:23.799 --> 00:23:27.319
Okay, it's not quit your job, hire a bunch of people,
459
00:23:27.960 --> 00:23:29.359
likely on the beach kind of money.
460
00:23:29.440 --> 00:23:31.480
Well, I never wanted to hire people in the first
461
00:23:31.599 --> 00:23:34.000
I didn't get into this like a big company. I
462
00:23:34.039 --> 00:23:36.400
want to make sure this is sustainable going forward. I
463
00:23:36.440 --> 00:23:40.359
lost my sponsor. I need that back now. It's just,
464
00:23:40.599 --> 00:23:43.279
you know, how do I how do I make sure
465
00:23:43.279 --> 00:23:46.400
that I can continue that business going forward and focus
466
00:23:46.440 --> 00:23:50.039
on like improving the stuff that I had just not
467
00:23:50.079 --> 00:23:53.680
done in like five years prior to making this commercial.
468
00:23:53.720 --> 00:23:56.440
I just I basically stopped. It's like, I don't none
469
00:23:56.480 --> 00:23:58.640
of my customers are paying me to maintain this, so
470
00:23:58.799 --> 00:24:00.960
I'm just going to do minimal stuff. Now people are
471
00:24:00.960 --> 00:24:03.359
paying me to maintain it. So now the fun part
472
00:24:03.440 --> 00:24:07.880
of you know, actually improving the libraries after letting them
473
00:24:07.920 --> 00:24:08.839
kind of sit for a bit.
474
00:24:08.920 --> 00:24:12.960
Wow. Okay, And what do you thinkure was the key here?
475
00:24:13.000 --> 00:24:14.200
Like did you come up with a way to make
476
00:24:14.240 --> 00:24:16.960
it really easy to pay or I mean just I
477
00:24:17.000 --> 00:24:20.799
think about folks like Troy Hunt dealing with all of
478
00:24:20.839 --> 00:24:23.880
these organizations that want to go through a giant procurement
479
00:24:23.920 --> 00:24:26.880
process for like twenty dollars and he's like, no, not
480
00:24:26.960 --> 00:24:29.680
doing it. We take credit cards and nothing else or
481
00:24:30.079 --> 00:24:31.000
you know, forget it.
482
00:24:31.279 --> 00:24:33.279
Yeah, I had this whole I had the whole process
483
00:24:33.319 --> 00:24:35.440
as well. So I one of the nice things about
484
00:24:35.480 --> 00:24:37.319
interviewing all these other people that came before is you
485
00:24:37.359 --> 00:24:39.799
get to learn from their mistakes and just learning their
486
00:24:39.839 --> 00:24:44.000
model whatever. So I started up by just doing that,
487
00:24:44.079 --> 00:24:47.039
saying here's a link to pay for it, and that's that.
488
00:24:47.720 --> 00:24:50.000
But I think within like a week, I had someone
489
00:24:50.039 --> 00:24:51.839
coming to me to say, hey, we want a quote
490
00:24:51.839 --> 00:24:54.240
in an invoice. Yeah, and I'm like, what's what's what
491
00:24:54.319 --> 00:24:58.759
are those things I've never had to do, Like as
492
00:24:58.839 --> 00:25:03.359
a software consultant for fifteen twenty years before that, we
493
00:25:03.440 --> 00:25:05.799
only worked in statements of work that had a very
494
00:25:05.799 --> 00:25:09.680
different Oh yes I need to you need to get
495
00:25:09.680 --> 00:25:13.319
this approved internally. Yeah. So yeah, just a whole learning
496
00:25:13.359 --> 00:25:16.079
process of just what the enterprise process looks like and
497
00:25:16.119 --> 00:25:19.000
also what I wanted support as well. I talked to
498
00:25:19.039 --> 00:25:22.200
people that said we don't we only just have the
499
00:25:22.240 --> 00:25:24.160
credit card link out there or whatever, and we don't
500
00:25:24.200 --> 00:25:28.599
do any kind of other processes. But after twelve months,
501
00:25:29.839 --> 00:25:32.799
it wouldn't look back and said okay, based on those assumptions,
502
00:25:32.799 --> 00:25:35.599
it looked like although like two thirds of my orders
503
00:25:35.599 --> 00:25:41.279
were direct online purchases was manual invoice. So if I
504
00:25:41.319 --> 00:25:46.160
didn't do like half, if I didn't do that, that
505
00:25:46.200 --> 00:25:48.799
would be just half the revenue gone. So I'm like, well,
506
00:25:48.880 --> 00:25:51.400
I think that was a good choice. But it does
507
00:25:51.640 --> 00:25:53.480
definitely take a ton of time to go through all
508
00:25:53.480 --> 00:25:57.759
those enterprise procurement processes to decide that worth it or not.
509
00:25:58.119 --> 00:26:01.599
But yeah, I mean you said it's fifty percent of
510
00:26:01.640 --> 00:26:04.599
the income, but it's a whole bunch more cost.
511
00:26:04.839 --> 00:26:08.759
Yes, I haven't tracked all that yet, but definitely it
512
00:26:08.839 --> 00:26:11.799
reminded my first like just fray into open source, I
513
00:26:11.799 --> 00:26:14.200
would take every pole request, yeah, just because like I
514
00:26:14.240 --> 00:26:16.960
was super happy, excited to be, you know, to have
515
00:26:17.039 --> 00:26:18.920
this activity. So this is the same thing early on too,
516
00:26:18.960 --> 00:26:22.000
is just I would take any any request that came in. Sure, sure,
517
00:26:22.200 --> 00:26:24.039
you know. But then eventually I realized, oh, this is
518
00:26:24.079 --> 00:26:27.680
taking a lot like license redlining. I did not get
519
00:26:27.680 --> 00:26:31.160
into this too to have to look at legal redline documents,
520
00:26:32.240 --> 00:26:33.920
but early on it just took them all like, if
521
00:26:33.920 --> 00:26:36.200
you want it redline, I'll let it look And then later,
522
00:26:36.319 --> 00:26:38.440
oh god, that is actually quite expensive to pay your
523
00:26:38.519 --> 00:26:42.319
lawyer to look at the most mundane things. So it's
524
00:26:42.359 --> 00:26:44.720
just a been a big learning experience over the past
525
00:26:44.759 --> 00:26:47.440
year of how to software business.
526
00:26:47.880 --> 00:26:50.640
I guess right, yeah, you say that's that is the
527
00:26:50.720 --> 00:26:54.200
learning processes. What do people actually want here? And what
528
00:26:54.400 --> 00:26:57.200
and what's a reasonable request? I think that's the hardest
529
00:26:57.200 --> 00:26:59.920
one because you can often get the bigger the company,
530
00:27:00.039 --> 00:27:02.240
it seems some more unreasonably requests are.
531
00:27:02.160 --> 00:27:06.039
Yeah, did you do this both for automapper and mediator.
532
00:27:06.200 --> 00:27:08.440
Yeah. That was one advice I got in very early
533
00:27:08.680 --> 00:27:12.279
was if you're going to do it, do whatever you
534
00:27:12.319 --> 00:27:14.960
would want to commercialize at once. Don't do one and
535
00:27:14.960 --> 00:27:17.440
then later on do something else. Just do it all together.
536
00:27:18.000 --> 00:27:21.000
So initially I thought, you know, just do automapper because
537
00:27:21.000 --> 00:27:24.279
it has I think it had fifty percent more downloads
538
00:27:24.319 --> 00:27:27.920
at the time, but the mediators still had quite a
539
00:27:27.920 --> 00:27:31.400
lot as part of it. And the advice I got
540
00:27:31.400 --> 00:27:33.079
from a lot of folks that run these kinds of
541
00:27:33.160 --> 00:27:34.680
things like just do them both, Like, if you're going
542
00:27:34.720 --> 00:27:36.839
to do it, and do it now. Yeah, if no
543
00:27:36.839 --> 00:27:38.400
one wants it, no one wants to pay for it,
544
00:27:38.400 --> 00:27:42.400
that's fine. But what I found is that because you know,
545
00:27:42.480 --> 00:27:45.359
the nice thing is before this I had no clue
546
00:27:45.680 --> 00:27:48.359
who was using my library. Right, it was just a
547
00:27:48.480 --> 00:27:52.440
raw number, but now I can actually see who's using
548
00:27:52.519 --> 00:27:54.599
And one of the interesting things is that from the
549
00:27:54.680 --> 00:28:01.039
people that bought Automapper, there's another like sixty percent and
550
00:28:01.119 --> 00:28:04.920
another thirty percent would also then like also buy Mediator
551
00:28:04.960 --> 00:28:07.799
as well. So about a third of the people using
552
00:28:07.759 --> 00:28:10.599
automapp are also we're using Mediator and just using them
553
00:28:10.599 --> 00:28:13.279
all together. Well that makes sense because that's what I
554
00:28:13.319 --> 00:28:16.079
would do in my projects. We use them both together.
555
00:28:16.160 --> 00:28:18.359
You know, they weren't. It's a complimentary tools or the
556
00:28:18.480 --> 00:28:20.720
just things I would always do in just about all
557
00:28:20.720 --> 00:28:24.240
my projects. So yeah, I wind up doing both just
558
00:28:25.400 --> 00:28:28.599
because everyone told me to. Right, Yeah, we're gonna do
559
00:28:28.640 --> 00:28:30.240
it now and dealt with it.
560
00:28:30.599 --> 00:28:32.559
And I see that you offer a bundle there. Do
561
00:28:32.599 --> 00:28:33.759
you think that made a difference.
562
00:28:33.920 --> 00:28:37.839
Yeah, that's you is. Yeah, basically twenty percent off if you.
563
00:28:37.799 --> 00:28:41.440
Do both and right, if you do them both, just reduces.
564
00:28:41.000 --> 00:28:43.720
The number of conversations. And I didn't want to again like, oh,
565
00:28:43.799 --> 00:28:45.680
here's one and then the twelve months later, here's another
566
00:28:45.720 --> 00:28:47.359
one that you have to to purchase.
567
00:28:47.000 --> 00:28:49.599
This say, you just make people angry again, rip the
568
00:28:49.640 --> 00:28:52.240
band aid off and yeah, make them angry once.
569
00:28:52.559 --> 00:28:55.759
Yeah, exactly, did you have a significant number of people
570
00:28:55.759 --> 00:28:58.599
complain about the what is it ten dollars a month
571
00:28:58.680 --> 00:28:59.079
or something?
572
00:28:59.160 --> 00:29:00.960
Well, the tricky part is and then I know you'll
573
00:29:01.000 --> 00:29:04.759
know that too, right. It's like there's the vocal folks
574
00:29:05.240 --> 00:29:09.759
online which basically read it in. LinkedIn are like the
575
00:29:09.799 --> 00:29:12.640
main places I see those. I mean, I see comments
576
00:29:12.640 --> 00:29:14.640
on my blog post, but that's still going to be
577
00:29:14.680 --> 00:29:18.640
much lower traffic than those other ones. I wouldn't know
578
00:29:18.720 --> 00:29:20.559
if it was going to be successful until I actually
579
00:29:20.559 --> 00:29:21.720
put it out there and said, well, who are the
580
00:29:21.759 --> 00:29:25.359
companies that don't aren't you know, habitually online complaining all
581
00:29:25.400 --> 00:29:29.400
the time, but are actually just building stuff and don't
582
00:29:29.440 --> 00:29:31.960
just comment on LinkedIn all the time. That would be
583
00:29:31.960 --> 00:29:34.119
the people I would say that I would want to
584
00:29:34.119 --> 00:29:37.680
focus on. I came in assuming like if ninety nine
585
00:29:37.720 --> 00:29:41.440
percent of the users didn't want to purchase, that was
586
00:29:41.480 --> 00:29:43.960
okay with a one percent just you know, back of
587
00:29:43.960 --> 00:29:46.400
the nap and calculation based on raw downland numbers and
588
00:29:46.519 --> 00:29:49.680
one percent converted, and it could sustain itself right at
589
00:29:49.720 --> 00:29:52.160
that point three percent? Like those the people that are
590
00:29:52.200 --> 00:29:55.160
also invested in the product as well, not just like
591
00:29:55.200 --> 00:29:59.000
downloaded because someone said to they actually see the value,
592
00:29:59.119 --> 00:30:02.240
So I thought, well, focus on the people that see
593
00:30:02.240 --> 00:30:04.839
the value enough to want to then pay for it whatever.
594
00:30:05.039 --> 00:30:07.039
Ye, And I'm sure I saw I'm sure you've got
595
00:30:07.119 --> 00:30:11.160
message saying uh loll generated with l M.
596
00:30:11.839 --> 00:30:13.759
Yeah. I mean that didn't That was not a thing
597
00:30:13.759 --> 00:30:15.480
when I was making this decision, to be honest, like
598
00:30:15.519 --> 00:30:18.720
we weren't quite there yet. It was a claude version
599
00:30:18.799 --> 00:30:19.799
one at the time.
600
00:30:19.880 --> 00:30:22.720
So but it was different.
601
00:30:23.079 --> 00:30:26.079
People have told me, and again I I don't really
602
00:30:26.079 --> 00:30:27.920
care if they want to replace it with something else
603
00:30:28.079 --> 00:30:29.000
or whatever, like that's there.
604
00:30:29.079 --> 00:30:31.279
Yeah, if you want to maintain the code base, knock
605
00:30:31.319 --> 00:30:32.440
yourself out, right, sure.
606
00:30:32.640 --> 00:30:36.640
I mean for my consulting days though I knew there
607
00:30:36.680 --> 00:30:39.400
was there was more value in the code you didn't
608
00:30:39.400 --> 00:30:41.519
write than the code you did, right, right, then you
609
00:30:41.559 --> 00:30:44.319
if you could focus on the most important code, because
610
00:30:44.359 --> 00:30:46.079
you just have to maintain that stuff forever. And I
611
00:30:46.079 --> 00:30:48.200
saw this with autom mapp, right. I took every pool
612
00:30:48.240 --> 00:30:50.440
request and I had to maintain that forever, and I
613
00:30:50.920 --> 00:30:51.480
didn't want to.
614
00:30:52.160 --> 00:30:55.599
Yeah, just came to realize not a good idea, right Yeah. Well,
615
00:30:55.599 --> 00:30:58.559
and your party use what works too, right, Yeah.
616
00:30:58.599 --> 00:31:01.119
And I'm a big believer in that idea that there's
617
00:31:01.240 --> 00:31:06.039
more value in a community building that those libraries over time,
618
00:31:06.240 --> 00:31:09.920
having that pool of different users in different opinions focused
619
00:31:09.960 --> 00:31:13.480
on a single code base ratter than a thousand different
620
00:31:13.799 --> 00:31:16.319
code bases that are either forked or you know, just
621
00:31:16.400 --> 00:31:21.240
copy paste Claude, whatever sort of thing. They'll never This
622
00:31:21.279 --> 00:31:23.839
is something I saw on my consulting days was we
623
00:31:24.519 --> 00:31:27.759
had a dozen projects at the minimum running at a time, right,
624
00:31:27.799 --> 00:31:31.359
and all those projects were providing feedback into the libraries
625
00:31:31.359 --> 00:31:33.519
to make it better. That doesn't happen if it's just
626
00:31:33.920 --> 00:31:37.000
one off by itself. So it's always the thing I
627
00:31:37.039 --> 00:31:40.119
saw great with open sources, that you're building off other
628
00:31:40.160 --> 00:31:43.519
people's experiences too, and that just doesn't happen in any
629
00:31:43.599 --> 00:31:45.400
kind of like just isolated code.
630
00:31:45.799 --> 00:31:48.400
Yeah, you're exactly right, and a lot of way it
631
00:31:48.400 --> 00:31:50.799
gets a lot more energy that way. We should break. Yeah,
632
00:31:50.960 --> 00:31:52.920
let's take a break. Good idea, Richard. We'll be right
633
00:31:52.960 --> 00:31:59.240
back after these very important messages, and we're back. It's
634
00:31:59.279 --> 00:32:02.519
dot Net Rocks, Drew Campbell, that's Carl Franklin Yo talking
635
00:32:02.559 --> 00:32:05.799
to our friend Jimmy Bogart. As experience of the past
636
00:32:05.920 --> 00:32:10.359
year with automapp or mediator and having a commercial license,
637
00:32:10.440 --> 00:32:14.000
and obviously some folks have have come in, so now
638
00:32:14.200 --> 00:32:16.400
you know, things are a bit more sustainable for you.
639
00:32:16.960 --> 00:32:19.400
I guess the other side of this is are these
640
00:32:19.440 --> 00:32:21.880
guys front of the line too, are there pull requests
641
00:32:21.960 --> 00:32:25.079
or are their issues prioritized if they're a paying customer.
642
00:32:25.240 --> 00:32:27.000
It was that was part of the incentive as well.
643
00:32:27.119 --> 00:32:30.680
If you're paying customer, you get actual support. Now. Prior
644
00:32:30.720 --> 00:32:34.039
to this, there was like, no, it's in the license
645
00:32:34.119 --> 00:32:37.440
right in my tea. Have actually no warranties whatsoever, like
646
00:32:37.519 --> 00:32:41.400
no guarantees. It doesn't implied social contract. But the social
647
00:32:41.400 --> 00:32:44.720
contract at the end was I will not I will
648
00:32:44.759 --> 00:32:47.720
not respond to issues because I just didn't have time.
649
00:32:48.079 --> 00:32:51.599
Sure now there's now that's changed. Right now I none
650
00:32:51.599 --> 00:32:55.079
only have contractual obligations for things like security fixes, but
651
00:32:55.160 --> 00:32:59.559
also now it's one of the reasons I wanted to
652
00:32:59.599 --> 00:33:01.119
get into it is to be able to help people
653
00:33:01.160 --> 00:33:05.039
that are actually using the software, So having a discord
654
00:33:05.319 --> 00:33:08.559
chat that people can come and ask questions and being
655
00:33:08.559 --> 00:33:12.000
able to get you know, issues answered and emails answered.
656
00:33:12.200 --> 00:33:14.319
BERI to this, I just would not And to.
657
00:33:14.240 --> 00:33:17.799
Be clear, the product is still available for free on GitHub.
658
00:33:17.839 --> 00:33:21.519
If you're going to go down that pipeline, right, and
659
00:33:21.559 --> 00:33:23.759
if you're a contributor to it's so much the better. Like,
660
00:33:23.799 --> 00:33:25.920
I just think there's a I think Rob said the
661
00:33:25.920 --> 00:33:28.559
same thing. There's a distinct difference between the people who
662
00:33:28.599 --> 00:33:31.960
participate in the open source process are contributors and utilize
663
00:33:31.960 --> 00:33:34.839
the code and folks who just treat it as a
664
00:33:34.839 --> 00:33:36.759
product and grab it off of new get and use it.
665
00:33:36.880 --> 00:33:39.799
Yeah. Yeah, I mean I don't think that's changed. Yeah,
666
00:33:39.920 --> 00:33:41.960
I mean there's certainly people that were upset that it
667
00:33:42.000 --> 00:33:44.640
was a more restrictive license that wind up doing a
668
00:33:44.720 --> 00:33:48.440
dual license with like a copy left combined with a
669
00:33:48.480 --> 00:33:51.119
commercial license. Right, So if you're in a situation where
670
00:33:51.200 --> 00:33:54.640
copy left is filed like a it's reciprocal public, which
671
00:33:54.680 --> 00:34:00.519
is a more patent restrictive version of the GPL, And
672
00:34:00.519 --> 00:34:03.319
then just the idea is that, Okay, there are people
673
00:34:03.359 --> 00:34:05.200
in that situation to do that. But I also included
674
00:34:05.200 --> 00:34:08.159
a free tier as well, just so that I don't
675
00:34:08.159 --> 00:34:11.840
want to charge small companies or individuals that sort of thing. Yeah,
676
00:34:12.840 --> 00:34:14.760
I wan, I'm making it. I talked to a couple
677
00:34:14.800 --> 00:34:18.039
of companies that said that having a I think of
678
00:34:18.239 --> 00:34:20.599
most most companies I see, do you like a million
679
00:34:20.639 --> 00:34:23.840
dollar free tier? If your company makes more than a
680
00:34:23.880 --> 00:34:25.679
million reverend, then you need to pay for a license.
681
00:34:25.719 --> 00:34:27.639
But I talked to several that said that was a
682
00:34:27.639 --> 00:34:31.239
bit low these days. Is that if you look at
683
00:34:31.239 --> 00:34:37.800
the kind of modern software, especially in the US, software salaries,
684
00:34:37.840 --> 00:34:40.360
software developer salaries, a million doses doesn't get you that
685
00:34:40.480 --> 00:34:42.320
much with software salaries the way.
686
00:34:43.079 --> 00:34:45.320
So I butt that, sure, that's still like three or
687
00:34:45.360 --> 00:34:48.239
four people in a you know, half dozen people in
688
00:34:48.320 --> 00:34:48.639
a team.
689
00:34:49.000 --> 00:34:51.800
Yeah, So they're like, you know, you're not going to
690
00:34:51.840 --> 00:34:53.960
convert those basically, it's like, so you want to give
691
00:34:54.039 --> 00:34:55.599
room to grow, And so I just kind of put
692
00:34:55.599 --> 00:34:57.480
my finger to the win and said, how about five million?
693
00:34:57.840 --> 00:35:01.239
And that's that's the little number that if you if
694
00:35:01.239 --> 00:35:03.440
your company makes more than five million, then you're probably
695
00:35:03.440 --> 00:35:06.039
buying licenses of other things as well. Yeah, so it
696
00:35:06.039 --> 00:35:08.519
wouldn't be a difficult conversation to then pay for this.
697
00:35:08.800 --> 00:35:10.400
And how much did you say your license was?
698
00:35:10.960 --> 00:35:12.440
Uh? For that loads here?
699
00:35:12.519 --> 00:35:15.760
So that wasn't a whole other like, uh, what's the
700
00:35:15.840 --> 00:35:16.440
right price?
701
00:35:16.519 --> 00:35:18.639
Saying? I was doing is like how to how to
702
00:35:18.760 --> 00:35:21.679
license this? So I wound up going for a team
703
00:35:21.719 --> 00:35:25.480
based license of unlimited production applications of like if you
704
00:35:25.480 --> 00:35:28.480
have a team of won Atten developers, it's five hundred
705
00:35:28.480 --> 00:35:30.960
dollars a year for the entire team, and you can
706
00:35:31.039 --> 00:35:32.800
have as many And a lot of that was just
707
00:35:32.960 --> 00:35:35.239
I don't want personally to deal with a bunch of
708
00:35:35.280 --> 00:35:38.159
administrative overhead. I didn't like dealing with it as as
709
00:35:38.199 --> 00:35:41.639
a consultant. So instead of like per user, per developer,
710
00:35:41.639 --> 00:35:45.480
it's just per team and as many applications as you want,
711
00:35:45.519 --> 00:35:48.880
because anything else beyond that requires work, and I don't
712
00:35:48.960 --> 00:35:51.000
want to deal with that, and then I don't want
713
00:35:51.039 --> 00:35:53.559
up the customers to deal with it either. M Yeah,
714
00:35:53.639 --> 00:35:55.280
So that's got to figure, like five hundred a year
715
00:35:55.320 --> 00:35:56.880
for a five million company.
716
00:35:56.920 --> 00:35:57.760
Is pretty fair?
717
00:35:58.000 --> 00:35:59.880
Should be? Should be pretty Yeah.
718
00:36:00.079 --> 00:36:01.960
Yeah, that's an easy, easy decision.
719
00:36:02.039 --> 00:36:04.800
Yeah, And it's one transaction a year, so from the
720
00:36:04.840 --> 00:36:08.559
procurement process is pretty simple. It's renewable year over years.
721
00:36:08.599 --> 00:36:10.920
So once it's once you get through that hurdle, the
722
00:36:10.920 --> 00:36:12.519
finance people just paid each year.
723
00:36:12.880 --> 00:36:15.960
Yeah, that was the idea is make it you don't
724
00:36:15.960 --> 00:36:18.559
make it so low that it's not worth their time
725
00:36:18.599 --> 00:36:20.840
to go through the process. A great point I learned
726
00:36:20.880 --> 00:36:23.280
that early on when I was starting on software development.
727
00:36:23.280 --> 00:36:24.960
I was part of a product company that tried to
728
00:36:25.000 --> 00:36:28.599
like severely undercut the competition, but all that projected to
729
00:36:28.679 --> 00:36:31.559
the to their customers was that's not it has. If
730
00:36:31.599 --> 00:36:33.199
you're ten percent of the price, then you're ten percent
731
00:36:33.239 --> 00:36:35.760
of the value, right, So I can't make it super cheap.
732
00:36:35.800 --> 00:36:38.760
I got to make it to where it's still project
733
00:36:38.840 --> 00:36:40.760
some value to the customer. It's like worth their time
734
00:36:40.800 --> 00:36:42.039
to actually go through the process.
735
00:36:42.280 --> 00:36:46.360
Yeah, yeah, you're right. And again because they because the
736
00:36:46.440 --> 00:36:49.679
process costs something, you have to have a large enough
737
00:36:49.760 --> 00:36:51.239
number there just be take it seriously.
738
00:36:51.440 --> 00:36:54.360
Yeah, exactly. So there's plenty of folks that is because
739
00:36:54.599 --> 00:36:57.119
as an individual software developer, you see five hundred dollars
740
00:36:57.159 --> 00:37:00.280
and you think, gosh, that's a that's a switch too,
741
00:37:00.599 --> 00:37:02.639
you know, that's like that seems like a lot of
742
00:37:02.639 --> 00:37:04.719
money for individual, but for company.
743
00:37:04.400 --> 00:37:08.320
There's a couple of bottle of whiskeys i'd like to own, exactly.
744
00:37:09.360 --> 00:37:12.280
Although the bourbon prices are finally stabilizing that like, that's
745
00:37:12.719 --> 00:37:16.000
that's a lot of bottle. Yeah, but yeah, it was
746
00:37:16.039 --> 00:37:19.239
one of those just I wouldn't know as well what
747
00:37:19.320 --> 00:37:21.039
the price should be until I just tried it and
748
00:37:21.039 --> 00:37:23.840
put it out there, hope that I kind of get
749
00:37:23.840 --> 00:37:26.199
it right without having to do a bunch of adjustments
750
00:37:26.239 --> 00:37:26.639
later on.
751
00:37:26.840 --> 00:37:29.599
I just just poked through Reddit and I see people
752
00:37:29.840 --> 00:37:33.119
arguing about the price on both sides of it without
753
00:37:33.159 --> 00:37:36.079
your involvement at all, which is delightful to me because
754
00:37:36.280 --> 00:37:38.599
that means you're probably in the ballpark when they can,
755
00:37:39.039 --> 00:37:39.400
you know.
756
00:37:39.599 --> 00:37:42.519
Out a universal and complaints on both sides you're right about.
757
00:37:42.599 --> 00:37:44.400
Yeah, you're dead. Everybody should be mad at you. Then
758
00:37:44.440 --> 00:37:45.159
you're doing it right.
759
00:37:45.800 --> 00:37:48.920
I figured with the bumping up to like a five
760
00:37:48.960 --> 00:37:52.679
million ceiling on revenue, that that's a difficult position to
761
00:37:52.800 --> 00:37:55.719
argue against, like a yes, if you can't afford that,
762
00:37:55.760 --> 00:37:57.960
which there are some I mean like nonprofits, for example,
763
00:37:58.760 --> 00:38:01.440
may have a five million dollars annual budget, but that
764
00:38:01.480 --> 00:38:05.320
does not mean they'll have a clovenue. Yeah, okay, well
765
00:38:05.360 --> 00:38:07.400
we can do like discounts and things like that for
766
00:38:07.559 --> 00:38:10.199
you know, nonprofit that's sort of there are other ways
767
00:38:10.199 --> 00:38:13.280
to handle that, but it just starts to become more complicated.
768
00:38:13.280 --> 00:38:16.119
I can't design one model that works for everybody. It's
769
00:38:16.119 --> 00:38:16.760
just impossible.
770
00:38:16.840 --> 00:38:19.199
No, no, And it's easier to make something, you know,
771
00:38:19.239 --> 00:38:21.440
go for the eighty percent, deal with the exceptions.
772
00:38:21.639 --> 00:38:24.360
Yeah, exactly. But that's all that stuff I had to
773
00:38:24.400 --> 00:38:26.440
learn over the last felve months because I just never
774
00:38:26.519 --> 00:38:28.800
had to deal with any of that stuff as a consultant.
775
00:38:28.840 --> 00:38:31.400
It's just that's been the kind of the fun part
776
00:38:31.480 --> 00:38:34.559
is new challenge of doing all this when I never
777
00:38:34.599 --> 00:38:35.960
had to do any of this kind of stuff before.
778
00:38:36.000 --> 00:38:40.519
It was always just pricing the material rates I was
779
00:38:40.519 --> 00:38:41.039
doing before.
780
00:38:41.480 --> 00:38:43.719
Yeah, it's not simple. It's a product now, and so
781
00:38:43.920 --> 00:38:46.119
you've got to deal with the transaction models that people
782
00:38:46.159 --> 00:38:48.159
need to use. You've got to deal with all the
783
00:38:48.280 --> 00:38:51.679
rates and so forth. Man, I don't envy your friend,
784
00:38:51.719 --> 00:38:53.800
but it's I see, we've had some fun with it.
785
00:38:53.840 --> 00:38:55.480
At least it's worked out too.
786
00:38:55.679 --> 00:38:58.599
Yeah. I even had my first CVE this year too.
787
00:38:58.840 --> 00:38:59.440
That was fun.
788
00:38:59.599 --> 00:39:02.679
Oh right. Of course, we're in the time with all
789
00:39:02.760 --> 00:39:06.800
the smart ms running around saying finding vulnerability. So, yes,
790
00:39:07.800 --> 00:39:10.079
this is one of your customers sending you the CV.
791
00:39:10.519 --> 00:39:12.960
No, no, no, this was a just as because they're
792
00:39:12.960 --> 00:39:15.440
always they're usually anonymous as that someone posted a get
793
00:39:15.480 --> 00:39:20.199
up security advisory back in March, and before I went
794
00:39:20.199 --> 00:39:22.159
through this, I would have just completely blown it off
795
00:39:22.199 --> 00:39:25.159
because not my customer, not my problem, right right, But
796
00:39:25.239 --> 00:39:29.960
now I'm actually obligated to investigate these things, like it's
797
00:39:30.000 --> 00:39:32.119
in like I agree with a lot of these enterprise
798
00:39:32.159 --> 00:39:35.320
customers that you know, I've slas for responding to ferris
799
00:39:35.320 --> 00:39:35.920
At incidents.
800
00:39:36.360 --> 00:39:38.039
Yeah, so that was a.
801
00:39:37.960 --> 00:39:39.679
Fun one, you know. I went to the whole like
802
00:39:39.760 --> 00:39:43.719
five stages of grief, of denial, anger sort of stuff.
803
00:39:43.760 --> 00:39:47.000
Dude, does a webpage on NIST with your name on it?
804
00:39:47.280 --> 00:39:48.599
Yes?
805
00:39:49.440 --> 00:39:50.360
Was it easy to fix?
806
00:39:51.559 --> 00:39:54.679
Eventually? It was easy to fix. My first fix was
807
00:39:54.679 --> 00:39:56.440
wrong and so I had to like do another one
808
00:39:56.480 --> 00:39:59.320
that was like a full complete fix, and even the
809
00:39:59.360 --> 00:40:01.800
first one, I was like this, this is bogus, this
810
00:40:01.840 --> 00:40:06.920
is ridiculous. The security of the vulnerability was an infinite
811
00:40:06.960 --> 00:40:12.599
recursion vulnerability of like if you map something hierarchically, then
812
00:40:12.719 --> 00:40:17.719
I had nothing protecting an infinite recursion. But the argument
813
00:40:17.760 --> 00:40:21.159
against it was like, well that's autom mappers never directly
814
00:40:21.199 --> 00:40:23.880
exposed to the Internet. It's always going through something. So
815
00:40:23.920 --> 00:40:26.760
I posted Jason up and then Jason's mapped to your
816
00:40:26.800 --> 00:40:30.320
object model, and then that's mapped whatever. So I was like, well,
817
00:40:30.679 --> 00:40:36.440
Jason dot net has recursion in there, but that only
818
00:40:37.840 --> 00:40:39.480
this is one thing that the ALMS had helped me with.
819
00:40:39.519 --> 00:40:41.440
It's like, tell me all the different other attack factors
820
00:40:41.440 --> 00:40:44.199
system come through. And you think of any website that
821
00:40:44.239 --> 00:40:48.039
has any kind of higerical model building. You know, comments, right,
822
00:40:48.079 --> 00:40:50.159
comment has a parent comment, comment has a pair of comment.
823
00:40:50.599 --> 00:40:53.039
That's a good example of like someone can just build
824
00:40:53.079 --> 00:40:56.000
something that builds infinite or at least a very high
825
00:40:56.119 --> 00:40:59.119
number of depth that never goes through the Jason serializer
826
00:40:59.159 --> 00:41:02.920
for the whole model for the post, but then forget
827
00:41:04.000 --> 00:41:06.519
where it's loading on all up. Like then that could cross.
828
00:41:06.280 --> 00:41:09.480
The server with a it's like a denial service kind.
829
00:41:09.400 --> 00:41:14.599
Of denial exhausting memories. Oh, I have built those websites
830
00:41:14.639 --> 00:41:17.119
with employee as a manager who as a manager as
831
00:41:17.119 --> 00:41:20.679
a manager. If that's exposed like okay, okay, well this
832
00:41:20.800 --> 00:41:23.719
can just completely take down the website. So that was
833
00:41:23.760 --> 00:41:26.719
also my first winning experience of what does all this,
834
00:41:27.920 --> 00:41:30.960
all these security advisory measures mean? What am I supposed
835
00:41:31.000 --> 00:41:33.719
to do with this? A lot of people thought that
836
00:41:33.760 --> 00:41:37.880
I was I got the comment that people thought that
837
00:41:37.920 --> 00:41:40.639
I invented the security advisory to force upgrades. Because I
838
00:41:40.679 --> 00:41:43.000
had to go back and say which versions were affected.
839
00:41:43.440 --> 00:41:46.039
It was basically since I made the library, this thing
840
00:41:46.119 --> 00:41:49.639
has been in there, right. Well, I could lie and
841
00:41:49.719 --> 00:41:54.159
say nothing's affected, but that's not truthful. So like I
842
00:41:54.199 --> 00:41:57.440
do need to tell people that this is vulnerable, but
843
00:41:57.480 --> 00:41:59.920
then wind up making a whole vulnerability pages like well,
844
00:42:00.079 --> 00:42:01.760
if you have an if you're on an old version
845
00:42:02.320 --> 00:42:04.519
and you can't upgrade, or you can't you know, can't
846
00:42:04.559 --> 00:42:07.880
migrate to the latest, here's a local fix for your
847
00:42:08.360 --> 00:42:09.920
or here's how to detect it. Here's how to fix
848
00:42:09.960 --> 00:42:13.920
it in your application itself. But I will fix it
849
00:42:13.960 --> 00:42:16.360
for real Zi's and the you know, the actual commercial
850
00:42:16.440 --> 00:42:19.320
versions that I support now. But that was a whole
851
00:42:19.840 --> 00:42:21.679
I never had to deal with anything like that before.
852
00:42:21.719 --> 00:42:24.039
And it was like a, here's the page that says
853
00:42:24.079 --> 00:42:26.800
automappers last free version has a security flaw. It's like, no,
854
00:42:26.880 --> 00:42:30.360
it doesn't. Every version had the security flaw.
855
00:42:30.480 --> 00:42:34.199
So yeah, since the beginning of time two kidding.
856
00:42:34.000 --> 00:42:36.239
So so let me try to just put this in
857
00:42:36.440 --> 00:42:39.000
wrap it up in a neat summary here. A couple
858
00:42:39.039 --> 00:42:41.039
of weeks ago and we talked to Rod Mentioning about
859
00:42:41.039 --> 00:42:45.159
the open source maintenance fee that is different than the
860
00:42:45.199 --> 00:42:48.239
license that you're selling You're what you're selling, I think,
861
00:42:48.440 --> 00:42:53.280
is a license that includes support, right, And yeah, the
862
00:42:53.360 --> 00:42:57.559
maintenance fee is much lower, and it doesn't obligate you
863
00:42:57.880 --> 00:43:00.920
in any way to do any kind of or anything.
864
00:43:01.639 --> 00:43:04.960
It just means that you can now afford to hire
865
00:43:05.000 --> 00:43:08.800
the people that have been working for free, essentially in
866
00:43:08.840 --> 00:43:11.559
a perfect world. So yeah, I just wanted to draw
867
00:43:11.599 --> 00:43:14.199
that difference. I was thinking, Man, you should have just
868
00:43:14.280 --> 00:43:16.599
used OSMF. You wouldn't have all these headaches. But your
869
00:43:16.639 --> 00:43:20.320
headaches come from those you know, support issues and and
870
00:43:20.440 --> 00:43:21.280
other things like that.
871
00:43:21.480 --> 00:43:24.599
Yeah. I was also one thing that I didn't want
872
00:43:24.639 --> 00:43:26.119
to do when I was going to this commercial route.
873
00:43:26.159 --> 00:43:30.159
I never wanted to charge an individual developer or an
874
00:43:30.239 --> 00:43:32.519
individual person, right. I didn't want anyone to think it
875
00:43:32.519 --> 00:43:34.280
was coming out of their pocket. It's like, no, this
876
00:43:34.320 --> 00:43:36.440
is coming out of the company's pocket because they've invested
877
00:43:36.480 --> 00:43:39.000
in this, invested in your decisions and in the code
878
00:43:39.039 --> 00:43:41.559
base as a whole. So that's another reason I was
879
00:43:41.599 --> 00:43:43.639
wary of any of those kind of models. Is I
880
00:43:43.639 --> 00:43:45.599
did well, I knew the sponsor model just doesn't work.
881
00:43:45.639 --> 00:43:48.519
It have sponsors, it is just not feasible, at least
882
00:43:48.519 --> 00:43:51.679
in the Microsoft space for sustainable open source. So I
883
00:43:51.760 --> 00:43:54.920
was like, well, I don't want any interest, individual person
884
00:43:55.079 --> 00:43:57.400
to give me money. I want a company to give
885
00:43:57.440 --> 00:43:58.639
them money because that's.
886
00:43:58.679 --> 00:44:03.159
Well, yeah, with SMF, it is the company that pays,
887
00:44:03.760 --> 00:44:07.719
and they do pay through GitHub sponsorship. So I'm wondering, Oh,
888
00:44:07.760 --> 00:44:10.239
that's I'm wondering what you think about that.
889
00:44:10.239 --> 00:44:12.440
That's what I want would want to target is the
890
00:44:12.480 --> 00:44:15.360
companies because that's you know, that's who's making money off
891
00:44:15.400 --> 00:44:17.880
of the open source right, They're using it for the
892
00:44:17.920 --> 00:44:20.199
software that's running their enterprise. So that's what I was
893
00:44:20.239 --> 00:44:22.840
really focusing on. But like, yeah, like you all said
894
00:44:22.840 --> 00:44:24.920
at the beginning, is that os MF was not was
895
00:44:25.000 --> 00:44:27.679
very early on and I looked at it, but it
896
00:44:27.760 --> 00:44:30.760
was just not quite especially the amount of anxiety I
897
00:44:30.800 --> 00:44:33.039
was feeling of what to do. It's like, I need
898
00:44:33.079 --> 00:44:35.400
to screw up on my own decisions and my own model,
899
00:44:35.519 --> 00:44:38.039
and I can only have one person to blame but myself.
900
00:44:38.760 --> 00:44:40.880
So I just I was super wary of like trying
901
00:44:40.880 --> 00:44:43.039
anyone else's model out regard.
902
00:44:43.280 --> 00:44:45.239
Okay, but what I found.
903
00:44:45.519 --> 00:44:48.119
When I went through my gidhub sponsors at the end was,
904
00:44:50.119 --> 00:44:53.800
I think in maybe one or two weeks of business
905
00:44:53.960 --> 00:44:56.840
I equalled the total amount of sponsors I got over
906
00:44:56.880 --> 00:44:59.280
five years with gid up sponsors. So that was just
907
00:44:59.280 --> 00:45:02.400
a clear sing that's get hub sponsors. Even as prominently
908
00:45:02.440 --> 00:45:04.639
as I can make it, it's just not close to
909
00:45:04.719 --> 00:45:10.519
the same level of sustainability as just licensing would be.
910
00:45:10.960 --> 00:45:12.679
What do you mean by that, right? What doesn't it
911
00:45:12.719 --> 00:45:13.119
do well?
912
00:45:13.960 --> 00:45:15.960
So I think the first thing that I saw was
913
00:45:15.960 --> 00:45:20.719
that there's not really any way to not really waiting
914
00:45:20.760 --> 00:45:24.000
to effectively enforce it outside of what you're looking at
915
00:45:24.039 --> 00:45:26.400
the OSMF. That's what I was looking at, because that
916
00:45:26.480 --> 00:45:29.800
wasn't a thing. So just asking for money, I would
917
00:45:29.800 --> 00:45:32.519
get a lot of individual developers money. I don't want
918
00:45:32.599 --> 00:45:36.000
your your pocket money that you would spend at Starbucks,
919
00:45:36.159 --> 00:45:37.719
like that was the lowest tiers, like five bucks a
920
00:45:37.760 --> 00:45:40.800
month or something. Okay, eventually I don't want them. I
921
00:45:40.800 --> 00:45:43.360
don't want their money. And I would get some companies
922
00:45:43.400 --> 00:45:46.800
that would that would sponsor. We'd have like internal programs whatever.
923
00:45:47.840 --> 00:45:50.320
So hopefully that can get easier over time.
924
00:45:50.440 --> 00:45:52.960
Well, yeah, you make the point that, and I've seen
925
00:45:52.960 --> 00:45:54.719
this over and over again. Yeah. The only place you
926
00:45:54.760 --> 00:45:57.159
find get hub sponsors that are companies is when a
927
00:45:57.199 --> 00:46:01.519
company has built an initiative them sell to work through
928
00:46:01.599 --> 00:46:04.039
that sponsor process because it's a pain in the butt.
929
00:46:04.880 --> 00:46:06.760
And that's what we wind up doing as well. So
930
00:46:06.800 --> 00:46:09.639
our because we use open source as well, we we
931
00:46:09.639 --> 00:46:11.599
we get back then through the open source or the
932
00:46:11.639 --> 00:46:14.280
getub sponsors as well to the libraries we use.
933
00:46:14.840 --> 00:46:19.760
How MF addresses this compliance thing is by making it
934
00:46:19.800 --> 00:46:22.800
part of the EULA and you know, telling the companies
935
00:46:22.800 --> 00:46:25.760
to review the EULA and then they will they want
936
00:46:25.800 --> 00:46:28.320
to be compliant so that they do that. But if
937
00:46:28.360 --> 00:46:32.400
you have one company that has ten products that use
938
00:46:32.719 --> 00:46:35.440
the tool, you don't have to pay ten times. It's
939
00:46:35.519 --> 00:46:39.760
just once once per company in the EULA through GitHub sponsors.
940
00:46:39.880 --> 00:46:41.960
I heard. I know people too are sort of looking
941
00:46:42.000 --> 00:46:44.199
at Newgate to help out with this because you know,
942
00:46:44.239 --> 00:46:47.519
like NPM also has the ability to do that. But
943
00:46:47.559 --> 00:46:49.639
I've talked a few people like Handsel One for example,
944
00:46:49.719 --> 00:46:52.239
is like NuGet can't be a bank. That's just like that,
945
00:46:52.280 --> 00:46:54.519
you're asking Nugate to be a bank. Yeah, right, And
946
00:46:54.559 --> 00:46:57.320
that's hard enough for get to do. Via the sponsorship program,
947
00:46:57.320 --> 00:47:00.239
I could have put in my tax id all that
948
00:47:00.280 --> 00:47:03.480
stuff to make sure it all gets gets reported correctly,
949
00:47:03.559 --> 00:47:07.519
Like that's that's a hard problem to worry about worldwide. Yeah,
950
00:47:07.760 --> 00:47:10.119
sort of compliant from that sort of thing. And that's
951
00:47:12.320 --> 00:47:15.679
for OSMF. I think they do go through get up sponsors.
952
00:47:15.679 --> 00:47:19.320
I can't remember that just like eliminates one really hard
953
00:47:19.320 --> 00:47:21.440
problem for them to solve, is that, right?
954
00:47:21.639 --> 00:47:24.480
Yeah? But also, like I said, it's it's in the
955
00:47:24.519 --> 00:47:26.639
yula that they have to pay if they make over
956
00:47:26.760 --> 00:47:30.920
a certain amount per year, and it's usually not not
957
00:47:31.079 --> 00:47:32.760
even close to what you're talking about.
958
00:47:32.920 --> 00:47:34.559
There was a there was a time before where I
959
00:47:34.599 --> 00:47:39.159
was looking at you know, if enterprises contribute time to
960
00:47:39.239 --> 00:47:42.119
the projects, then that would also kind of count. But
961
00:47:42.159 --> 00:47:44.920
in reality, that's that's like that that's a non starter.
962
00:47:45.079 --> 00:47:50.039
You can't that's just too difficulties will dedicate whatever. The
963
00:47:50.079 --> 00:47:52.480
only way that would happen is if they acquhire, you know,
964
00:47:52.679 --> 00:47:55.639
the people that actually built the software to work on
965
00:47:55.719 --> 00:47:58.760
it at their company, to say world dedicate you know,
966
00:47:59.159 --> 00:48:00.800
a month of time, not even a month, like a
967
00:48:00.880 --> 00:48:03.840
day a month for someone to do open source. That's
968
00:48:03.880 --> 00:48:05.960
just too difficult for a maintainer.
969
00:48:06.039 --> 00:48:07.960
Well, and the silly part is the company who can
970
00:48:08.039 --> 00:48:11.199
afford to have their devs contribute to the project can
971
00:48:11.239 --> 00:48:16.480
also afford to pay. It's so disproportionate what that even represents.
972
00:48:16.760 --> 00:48:18.280
And then what I've seen is that's just that's just
973
00:48:18.320 --> 00:48:20.239
easier for them. They're used to it. The processes are
974
00:48:20.239 --> 00:48:22.840
set up to just yeah, go through that, so like, well,
975
00:48:22.880 --> 00:48:23.360
I'll just.
976
00:48:24.360 --> 00:48:27.840
Well, and the reason for me as an employer, why
977
00:48:27.840 --> 00:48:29.840
would I want my people to do that. It's like,
978
00:48:30.239 --> 00:48:33.000
there's an open source library you're using that is slowing
979
00:48:33.039 --> 00:48:35.800
you down in some way, so go fix it, don't worry,
980
00:48:35.840 --> 00:48:38.639
I can. I'll pay you to do it. Right, But
981
00:48:38.760 --> 00:48:41.039
at the same time, it's like, why would you also contribute?
982
00:48:41.119 --> 00:48:43.480
Like doesn't they go together? Yeah?
983
00:48:44.639 --> 00:48:46.159
I know, problem with that too. I mean that's what
984
00:48:46.199 --> 00:48:49.480
I do with my open source with other projects. Right,
985
00:48:49.559 --> 00:48:51.880
If I have a problem, I just will just submit
986
00:48:51.880 --> 00:48:54.440
a poor request. But that's still very much like it's
987
00:48:54.719 --> 00:48:57.239
pain based on my end. It's nothing that contributed the
988
00:48:57.280 --> 00:48:58.280
maintainer can count on.
989
00:48:58.440 --> 00:49:01.800
Yeah, it's also so exciting option based, right, like that,
990
00:49:01.800 --> 00:49:03.880
that's got to be the rarest case of them all.
991
00:49:04.119 --> 00:49:06.360
Well and get help. We'll show you very clearly how
992
00:49:06.360 --> 00:49:09.119
many contributors you've got like that. It's a few dozen.
993
00:49:09.599 --> 00:49:13.480
Yes, I that was one other thing I hadn't worry about.
994
00:49:13.559 --> 00:49:18.159
Was just such a long tail of contributors. People are
995
00:49:18.400 --> 00:49:20.960
asking like, are you going to give revenue money back
996
00:49:21.000 --> 00:49:23.719
to all the contributors over the year, right, And the
997
00:49:23.760 --> 00:49:25.880
answer is now, that's like impossible.
998
00:49:25.920 --> 00:49:30.239
Yeah, and a very bad practice anyway, Like that's hugely problematic.
999
00:49:30.360 --> 00:49:33.519
Even so, even when I went when I started charging,
1000
00:49:33.559 --> 00:49:35.400
I tried to go back to my GitHub sponsors to
1001
00:49:35.440 --> 00:49:38.119
find the companies that sponsored me so they could have
1002
00:49:38.119 --> 00:49:40.639
given free license. I couldn't even get that information out.
1003
00:49:40.679 --> 00:49:43.800
It's not shared to me be a sponsors, Like, well,
1004
00:49:45.880 --> 00:49:47.679
I did what I can, Like.
1005
00:49:48.119 --> 00:49:50.440
You turned off the GitHub sponsors.
1006
00:49:50.360 --> 00:49:54.199
I did, but I can't even stop the existing sponsorships.
1007
00:49:54.239 --> 00:49:57.719
I can't do that. I'm still getting money and I
1008
00:49:57.719 --> 00:50:00.239
have a big thing like stop giving me money, but
1009
00:50:00.280 --> 00:50:03.480
I cannot stop them from doing that. I've turned off
1010
00:50:03.480 --> 00:50:04.280
my sponsorship.
1011
00:50:04.400 --> 00:50:06.679
But okay, I love it.
1012
00:50:06.400 --> 00:50:13.239
Yeah, yeah, yeah, but it's it's been it's been really fun.
1013
00:50:13.880 --> 00:50:15.639
I don't definitely don't regret. I didn't talk to a
1014
00:50:15.679 --> 00:50:19.360
single person that said they regretted it, regretted the decision.
1015
00:50:19.400 --> 00:50:21.800
There's definitely many that said I wish it did X,
1016
00:50:21.880 --> 00:50:24.360
Y and Z differently, But I have not met a
1017
00:50:24.400 --> 00:50:27.760
single open source to commercial person that said I regret
1018
00:50:27.800 --> 00:50:31.480
that decision. It's all of been right, regret it, Like, well,
1019
00:50:31.679 --> 00:50:34.480
I guess I have to try. Yeah, well, one thing
1020
00:50:34.480 --> 00:50:35.039
I wish I did.
1021
00:50:35.079 --> 00:50:37.840
Thought that it isn't work, not that it is in heartache,
1022
00:50:38.599 --> 00:50:40.199
but ultimately it's worthwhile.
1023
00:50:40.519 --> 00:50:43.280
So Oudi de Han from particular the in service bus.
1024
00:50:44.880 --> 00:50:47.039
He told me in a conversation, he said, just let
1025
00:50:47.039 --> 00:50:50.880
you know, Jimmy, you're about to become an enterprise software company. Like,
1026
00:50:50.960 --> 00:50:52.840
well not, I'm just going to put a link up
1027
00:50:52.920 --> 00:50:54.800
and that's that, Like people just buy it from there.
1028
00:50:54.840 --> 00:50:57.039
It's like, no, but that's not how it's going to go.
1029
00:50:57.559 --> 00:50:59.639
Yeah, that's not what's going to happen is.
1030
00:51:00.960 --> 00:51:02.760
Dealing with all the procurement and all that stuff. Like
1031
00:51:02.800 --> 00:51:05.480
that's definitely a thing that is my life now.
1032
00:51:06.159 --> 00:51:09.559
Yeah, obviously worthwhile at least so far. Maybe we'll check
1033
00:51:09.599 --> 00:51:11.519
in in a year and see how you're feeling.
1034
00:51:11.199 --> 00:51:16.880
Then, yeah, we'll see. It's been fun so far for sure, though.
1035
00:51:16.960 --> 00:51:17.920
It's awesome. Dude.
1036
00:51:17.960 --> 00:51:21.840
So you have any other open source projects that you're considering.
1037
00:51:21.599 --> 00:51:24.280
Doing this with the pipeline, Oh no, no, no, just
1038
00:51:24.400 --> 00:51:28.079
to these are the two these are the two that
1039
00:51:28.119 --> 00:51:31.159
I saw that had the best potential because they're used
1040
00:51:31.199 --> 00:51:35.000
in production systems, like they get shipped with your production application.
1041
00:51:35.480 --> 00:51:38.360
I have other ones I have value exactly lasting like
1042
00:51:38.440 --> 00:51:41.239
sticky sticky sort of value, but I'm other ones that
1043
00:51:41.480 --> 00:51:44.199
are either I don't want to maintain anymore. Like one
1044
00:51:44.199 --> 00:51:46.760
example was I for the longest time I was the
1045
00:51:46.800 --> 00:51:51.559
official Mango dB open pelemetry provider and done that just
1046
00:51:51.599 --> 00:51:54.559
because it was it was getting linked in with Aspire
1047
00:51:54.760 --> 00:51:57.239
and all that stuff. But that's just because of a
1048
00:51:57.320 --> 00:52:00.280
client and I needed it. So I built it it right.
1049
00:52:00.360 --> 00:52:05.440
I built it it it, I never edited it. I
1050
00:52:05.480 --> 00:52:07.639
want to reduce the number of open source projects that
1051
00:52:07.719 --> 00:52:11.079
I have to maintain because ideally they're just like these
1052
00:52:11.079 --> 00:52:13.679
are problems that have been like solved by other built
1053
00:52:13.679 --> 00:52:16.360
in things. So the Mongo one, for example, is now
1054
00:52:16.480 --> 00:52:20.159
built into the Mongo library as it should be, so
1055
00:52:20.199 --> 00:52:22.719
I get to delete the library. It's it's fantastic cool.
1056
00:52:23.119 --> 00:52:25.960
So no, I don't. I don't see anything else that
1057
00:52:26.000 --> 00:52:27.880
has that potential. But I definitely looked at the time
1058
00:52:28.000 --> 00:52:29.239
like Okay, if I'm going to do this, I need
1059
00:52:29.239 --> 00:52:32.679
to do it now. I can't just piecemeal add things
1060
00:52:32.679 --> 00:52:35.440
on later on. That's again make people mad once not
1061
00:52:35.679 --> 00:52:37.679
you know, several times over several years.
1062
00:52:37.840 --> 00:52:39.920
And is there a way that our listeners can get
1063
00:52:39.920 --> 00:52:41.639
in touch with you if they have questions about, you know,
1064
00:52:41.760 --> 00:52:44.239
or want to talk to you about your experience or
1065
00:52:44.679 --> 00:52:46.679
maybe a blog or your discord or something.
1066
00:52:46.840 --> 00:52:49.480
Oh yeah, absolutely, I mean we'll we'll leave all the
1067
00:52:49.519 --> 00:52:54.559
links after this, of course. But you know, I even
1068
00:52:54.639 --> 00:52:57.159
had to have a contact me form that I didn't
1069
00:52:57.199 --> 00:53:00.000
have before. If you're interested in a quote or sale
1070
00:53:00.159 --> 00:53:00.800
or whatever, then.
1071
00:53:01.280 --> 00:53:05.880
Maybe right, yeah, I know. Oh no, oot, he's right,
1072
00:53:07.119 --> 00:53:07.960
that's a pretty good bet.
1073
00:53:08.199 --> 00:53:08.400
Yeah.
1074
00:53:08.519 --> 00:53:10.559
Probably, I wouldn't bet against no.
1075
00:53:13.039 --> 00:53:15.719
Well, okay, well what's next for you? What are you doing?
1076
00:53:15.760 --> 00:53:17.719
What's on your inbox? On your to do list?
1077
00:53:17.920 --> 00:53:20.639
Oh gosh, So the next big thing the last year
1078
00:53:20.679 --> 00:53:23.079
has just been learning how to product company because I'd
1079
00:53:23.119 --> 00:53:28.440
never done that before. I have like over ten years
1080
00:53:28.840 --> 00:53:32.519
of issues that I just closed, won't fix wow, that
1081
00:53:33.360 --> 00:53:35.079
I'll be going back through and like actually building the
1082
00:53:35.159 --> 00:53:38.320
roadmap for the products because for the longest time it
1083
00:53:38.360 --> 00:53:43.440
was just strictly reactionary about what did my immediate customer need?
1084
00:53:43.519 --> 00:53:46.440
And I'll build into it right now that I've kind
1085
00:53:46.440 --> 00:53:49.559
of got a handle on the business side of things.
1086
00:53:49.599 --> 00:53:52.199
It's time to go back and sort of what have
1087
00:53:52.280 --> 00:53:54.239
been people I've been asking for that I've just said
1088
00:53:54.280 --> 00:53:56.719
no to because not because it wasn't a good idea,
1089
00:53:56.880 --> 00:53:58.159
just I didn't feel like it.
1090
00:53:58.239 --> 00:53:59.960
I didn't have the time having the time.
1091
00:54:01.639 --> 00:54:03.400
So that's that's the next kind of exciting thing is
1092
00:54:03.400 --> 00:54:06.440
what are the what are the different things that people
1093
00:54:06.440 --> 00:54:08.280
have been asking for over the years, and what do
1094
00:54:08.360 --> 00:54:11.960
people need in the future, whether it's MCP service or
1095
00:54:12.239 --> 00:54:16.239
AOT friendly those are all things I want to get back.
1096
00:54:16.320 --> 00:54:19.519
I got back into that I had just neglected so
1097
00:54:19.639 --> 00:54:21.480
long over the This is great.
1098
00:54:21.519 --> 00:54:24.159
So this is benefiting the product for people who don't
1099
00:54:24.159 --> 00:54:27.519
even have a subscription. So it's good news all around,
1100
00:54:27.800 --> 00:54:32.119
I hope. So yeah, yeah, yeah, exactly, Jimmy, It's been
1101
00:54:32.159 --> 00:54:34.360
a delight talking to you, as it always is, whether
1102
00:54:34.400 --> 00:54:36.280
it's in person or at a conference or at a
1103
00:54:36.280 --> 00:54:38.760
bar having a beer, it's always always good to talk.
1104
00:54:38.840 --> 00:54:41.360
Yeah, it's great to be on all right, and we'll talk.
1105
00:54:41.199 --> 00:54:58.880
To you next time on dot net rocks.
1106
00:55:04.519 --> 00:55:07.239
Dot net Rocks is brought to you by Franklin's Net
1107
00:55:07.360 --> 00:55:11.320
and produced by Pop Studios. A full service audio, video
1108
00:55:11.360 --> 00:55:15.519
and post production facility located physically in New London, Connecticut,
1109
00:55:15.679 --> 00:55:20.519
and of course in the cloud online at PWOP dot com.
1110
00:55:20.679 --> 00:55:22.840
Visit our website at d O T N E t
1111
00:55:23.039 --> 00:55:27.079
R O c k S dot com for RSS feeds, downloads,
1112
00:55:27.239 --> 00:55:30.920
mobile apps, comments, and access to the full archives going
1113
00:55:30.960 --> 00:55:33.559
back to show number one, recorded.
1114
00:55:33.079 --> 00:55:35.840
In September two thousand and two. And make sure you
1115
00:55:35.920 --> 00:55:39.039
check out our sponsors. They keep us in business. Now
1116
00:55:39.079 --> 00:55:40.199
go write some code.
1117
00:55:40.519 --> 00:55:41.320
See you next time.
1118
00:55:42.239 --> 00:55:43.679
You got Javan
1119
00:55:46.079 --> 00:55:46.119
And
1
00:00:01.080 --> 00:00:02.960
How'd you like to listen to dot net rocks with
2
00:00:03.080 --> 00:00:07.879
no ads? Easy? Become a patron for just five dollars
3
00:00:07.919 --> 00:00:10.800
a month. You get access to a private RSS feed
4
00:00:10.839 --> 00:00:14.279
where all the shows have no ads. Twenty dollars a month,
5
00:00:14.279 --> 00:00:16.920
we'll get you that and a special dot net Rocks
6
00:00:16.960 --> 00:00:21.000
patron mug. Sign up now at Patreon dot dot NetRocks
7
00:00:21.160 --> 00:00:36.679
dot com. Hey and welcome back. It's dot net rocks.
8
00:00:36.759 --> 00:00:39.719
I'm Carl Franklin, an a vertue cavil. Jimmy Bogart is here.
9
00:00:39.759 --> 00:00:42.240
You might hear him chime in during the intro and
10
00:00:42.439 --> 00:00:45.880
uh oh yea hey everyone, Yeah, hi Jimmy, And uh well,
11
00:00:45.960 --> 00:00:51.640
this is episode twenty twelve, so only what twenty four
12
00:00:51.679 --> 00:00:55.679
more episodes before we stop this nonsense? Fourteen oh yeah,
13
00:00:55.759 --> 00:00:56.439
fourteen one.
14
00:00:56.560 --> 00:00:57.200
Math is hard.
15
00:00:57.679 --> 00:01:04.519
I can't do math before. That's early. Okay, this being
16
00:01:04.560 --> 00:01:07.959
twenty twelve, let's talk about the the news. What happened
17
00:01:08.280 --> 00:01:12.879
that year? Sure, Barack Obama won a reelection. Yeah, defeated
18
00:01:13.200 --> 00:01:16.519
Mitt Romney, Oh, formerly a game show host.
19
00:01:16.760 --> 00:01:17.359
It's not true.
20
00:01:17.480 --> 00:01:20.959
No, I just I just that name Mitt Romney from
21
00:01:21.000 --> 00:01:22.000
The Price is Right.
22
00:01:21.959 --> 00:01:24.920
Wasn't it? The governor of Massachusetts? He was Yeah.
23
00:01:25.040 --> 00:01:27.719
Yeah, and an interesting thing I learned about him is
24
00:01:27.760 --> 00:01:30.239
that he had a healthcare plan that was very similar
25
00:01:30.280 --> 00:01:31.120
to Obamacare.
26
00:01:31.280 --> 00:01:34.000
Yeah. Yeah, he was on in on universal healthcare, at
27
00:01:34.079 --> 00:01:36.040
least for the state of Massachusett. And then he opposed
28
00:01:36.040 --> 00:01:38.439
to Obamacare. Well, you know, because reasons.
29
00:01:38.640 --> 00:01:44.560
Yeah. Yeah. So civil war in Syria got hotter. Yeap,
30
00:01:44.680 --> 00:01:48.319
that began as protests during the Arab Spring became a
31
00:01:48.359 --> 00:01:50.400
full on civil war. We kind of hinted at that
32
00:01:50.480 --> 00:01:56.879
last last episode. Yeah, Aleppo became a major battleground, conflict
33
00:01:56.959 --> 00:02:00.920
evolved into one of the defining geopolitical crises the decade.
34
00:02:01.359 --> 00:02:03.439
Yeah, as it lasted over a decade.
35
00:02:03.599 --> 00:02:08.319
Yeah. Hurricane Sandy devastated the US East coast and you
36
00:02:08.400 --> 00:02:10.599
were caught in that. Well that prompted us to buy
37
00:02:10.599 --> 00:02:13.479
a generator. H Did I tell you the generator story?
38
00:02:13.520 --> 00:02:16.319
Which one, Well, we haven't really done a show since
39
00:02:16.360 --> 00:02:19.319
the storm over here, right, Oh. Yeah, So the generator
40
00:02:19.479 --> 00:02:21.439
kicked on. I have a propane generator.
41
00:02:21.599 --> 00:02:24.319
By this case, you mean you don't mean Sandy fourteen, No, No,
42
00:02:24.360 --> 00:02:26.000
I'm talking about this week.
43
00:02:25.960 --> 00:02:28.000
Last week, yeah, July fourth weekend.
44
00:02:28.439 --> 00:02:29.919
Yeah, So the.
45
00:02:29.919 --> 00:02:32.120
Generator kicks on because the power goes out right, and
46
00:02:32.159 --> 00:02:35.840
then the next day the generator just stops. So I
47
00:02:35.919 --> 00:02:38.280
see that there's oil. Been running for a day, Yeah,
48
00:02:38.280 --> 00:02:40.360
I was running for a day. There was oil pooled
49
00:02:40.400 --> 00:02:42.680
around it. So we leased the generator so we don't
50
00:02:42.719 --> 00:02:45.719
have to you know, called generator people to come and
51
00:02:45.759 --> 00:02:47.280
fix it on our dime.
52
00:02:47.400 --> 00:02:48.080
We don't own it.
53
00:02:48.240 --> 00:02:50.520
Yeah, we don't own it. So they came within a
54
00:02:50.560 --> 00:02:52.439
couple hours and fixed it. Kelly and I went to
55
00:02:52.439 --> 00:02:54.000
a hotel room for the night because you know, I
56
00:02:54.039 --> 00:02:56.520
have a seapap and I need electricity to sleep. Yeah,
57
00:02:56.560 --> 00:02:59.639
so that happened then, and then the next day, you know,
58
00:02:59.759 --> 00:03:03.639
inner nets out and we're limping along with like a
59
00:03:03.719 --> 00:03:07.159
little you know, my Fi, my Fi, but I can't
60
00:03:07.199 --> 00:03:09.919
connect it to my computer because my computer at my
61
00:03:09.960 --> 00:03:12.400
desktop that I use for all this stuff doesn't have
62
00:03:12.439 --> 00:03:15.000
a Wi Fi connector. Right, I buy a Wi Fi
63
00:03:15.199 --> 00:03:21.800
USB thing. It doesn't work. I'm troubleshooting it with with GPT.
64
00:03:22.439 --> 00:03:26.199
Nothing works. Like I'm screwed. It finally came back on
65
00:03:26.520 --> 00:03:31.520
all right. Fun after Sandy Sandy Hook Elementary School. Jeez,
66
00:03:31.560 --> 00:03:32.439
that was a tragedy.
67
00:03:32.680 --> 00:03:32.879
Yeah.
68
00:03:33.280 --> 00:03:38.360
December fourteenth, the London Summer Olympics, London became the first
69
00:03:38.400 --> 00:03:41.719
city to host the modern Summer Olympics three times.
70
00:03:41.439 --> 00:03:43.800
Didn't they didn't The Queen of England junkhot jump out
71
00:03:43.800 --> 00:03:44.919
of a helicopter in that one.
72
00:03:45.000 --> 00:03:48.560
You know that might have been a dream.
73
00:03:49.960 --> 00:03:52.199
Yeah, there was a whole James Bond bit. And then
74
00:03:52.199 --> 00:03:53.879
when they presented it to the queen and said, hey,
75
00:03:53.960 --> 00:03:55.280
do you mind if we do this, she goes only
76
00:03:55.280 --> 00:03:57.159
if I get to do it. Really obviously she didn't
77
00:03:57.199 --> 00:03:59.400
jump out of the helicopter, but she did act in it.
78
00:03:59.439 --> 00:04:02.639
Of course she did as herself, but everyone was kind
79
00:04:02.639 --> 00:04:04.319
of blown away that she wanted to play along.
80
00:04:04.520 --> 00:04:05.080
That's funny.
81
00:04:05.159 --> 00:04:08.400
Yeah, she was quite a sport I thought. I tend
82
00:04:08.400 --> 00:04:08.919
to agree.
83
00:04:09.439 --> 00:04:13.439
The highlights there Usain Bolt defending his sprint titles and
84
00:04:13.479 --> 00:04:17.519
Michael Phelps becoming the most decorated Olympian in history. Egypt
85
00:04:17.600 --> 00:04:23.240
elects Mohammed Morcy following the Arab Spring, Egypt's first democratically
86
00:04:23.279 --> 00:04:27.000
elected president. You know a bit about Egypt got a comment, Yes.
87
00:04:26.879 --> 00:04:31.680
It doesn't, it doesn't last. In the end, Egypt has
88
00:04:31.720 --> 00:04:36.079
been controlled by the by the army all along with
89
00:04:36.199 --> 00:04:39.399
MBARK and LCC and so. Yeah, and they never put
90
00:04:39.439 --> 00:04:41.959
in traffic lights did they Well, they didn't really need them.
91
00:04:42.000 --> 00:04:44.480
They have people with little taking notes, and if you
92
00:04:44.480 --> 00:04:46.319
behave badly in the intersection, you'll get a note.
93
00:04:47.959 --> 00:04:49.959
Costa Concordia cruise ship disaster.
94
00:04:50.319 --> 00:04:53.720
Oh yeah, buzzing, his girlfriend gets too close, rips the
95
00:04:53.720 --> 00:04:56.800
bottom of the hull out. Nicely done, Then bales on
96
00:04:56.879 --> 00:04:57.519
the ship too.
97
00:04:57.800 --> 00:05:04.240
Okay. Shijinping becomes China's top leader. That's gone well yeah, yeah, okay,
98
00:05:04.519 --> 00:05:09.639
o comment. The Eurozone debt crisis reaches its beak. Nice, Greece,
99
00:05:09.920 --> 00:05:13.600
Spain and other European countries face severe financial instability.
100
00:05:13.680 --> 00:05:15.959
Turns out not all Euros are the same, right.
101
00:05:16.480 --> 00:05:19.360
And then, of course the killing of Trayvon Martin, which
102
00:05:19.800 --> 00:05:24.680
became a national flashpoint over race, self defense laws and policing,
103
00:05:25.560 --> 00:05:28.759
and that laid the groundwork for what would become the
104
00:05:28.759 --> 00:05:31.399
Black Lives Matter movement A long time ago. Yeah, a
105
00:05:31.399 --> 00:05:34.720
long time ago. So there's more. But in the interest
106
00:05:34.759 --> 00:05:39.079
of time, what's the top space and tech stories?
107
00:05:39.199 --> 00:05:42.279
Richard in January, the Grail mission to the Moon. This
108
00:05:42.439 --> 00:05:45.439
was two satellites that had actually been launched in September
109
00:05:45.639 --> 00:05:48.399
the previous year. They took their time getting there, but
110
00:05:48.519 --> 00:05:51.319
they're doing there's mass concentration on the Moon that makes
111
00:05:51.319 --> 00:05:55.199
the gravity very uneven plus or minus two percent, enough
112
00:05:55.199 --> 00:05:57.319
that it's almost impossible to stay in a low orbit
113
00:05:57.360 --> 00:05:59.879
around the Moon, and so we need a detail map
114
00:05:59.879 --> 00:06:01.240
of that, and that's what the Grail mission was for.
115
00:06:01.319 --> 00:06:04.800
These two satellites fly in formation with a laser between them,
116
00:06:05.079 --> 00:06:07.680
and they measure the changes in the distance caused by
117
00:06:07.720 --> 00:06:09.959
gravitational variations, so we end up with a very detailed
118
00:06:10.000 --> 00:06:13.680
gravity map. They only operate for this year and then
119
00:06:13.879 --> 00:06:16.759
are deliberately impacted into the Moon to not leave space
120
00:06:16.800 --> 00:06:20.199
debris around. In May, the first cargo drag into the
121
00:06:20.560 --> 00:06:23.439
International Space Station, so this is the first commercial spacecraft
122
00:06:23.519 --> 00:06:26.000
ever the space station. It takes four days to get there,
123
00:06:26.279 --> 00:06:28.879
it stays for six days, they unload cargo, load up
124
00:06:28.879 --> 00:06:31.639
stuff they want to send back, and it actually splashes
125
00:06:31.680 --> 00:06:35.519
down in the end of May. At that point, SpaceX
126
00:06:35.560 --> 00:06:38.480
advertises that they can launch a Fulcon nine for fifty
127
00:06:38.560 --> 00:06:41.839
seven million dollars and carrying up to about fifteen or
128
00:06:41.879 --> 00:06:45.040
eighteen metric tons. The equivalent flight on an area in
129
00:06:45.040 --> 00:06:47.519
spaceflight would be one hundred and thirty seven million, so
130
00:06:48.040 --> 00:06:50.759
almost a third the price. You want to understand why
131
00:06:50.839 --> 00:06:55.279
SpaceX has dominated spaceflight. This is why it's just wildly cheer.
132
00:06:55.839 --> 00:06:57.519
And then later in the year, in October, they'll do
133
00:06:57.519 --> 00:07:01.920
another cargo supply mission. Voyager one crosses over into international
134
00:07:02.000 --> 00:07:05.680
International space. Let me sadd again, And in August, Voyager
135
00:07:05.720 --> 00:07:09.600
one crosses into interstellar space, so fully outside the influence
136
00:07:09.639 --> 00:07:13.439
of the Sun. It's eleven billion miles from Earth, so
137
00:07:13.959 --> 00:07:14.920
you're not getting to back.
138
00:07:15.079 --> 00:07:18.360
A lot of wacky news stories lately about sending back
139
00:07:18.519 --> 00:07:21.120
things that can't be explained or whatever, but I think
140
00:07:21.120 --> 00:07:22.480
they're just clickbait stories.
141
00:07:22.639 --> 00:07:26.959
Yeah, to some degree. It's also it's very old and
142
00:07:27.000 --> 00:07:31.319
things are breaking down. But also in August, the Curiosity
143
00:07:31.399 --> 00:07:35.160
rover lands on Mars. This is the famous seven minutes
144
00:07:35.199 --> 00:07:38.000
of Terror. The point being it's going to take seven
145
00:07:38.040 --> 00:07:40.560
minutes from the point of interfacing with the atmosphere of
146
00:07:40.600 --> 00:07:45.319
Mars to landing, but you're fourteen minutes away from the Earth,
147
00:07:45.439 --> 00:07:48.040
so by the time they get the first signal that
148
00:07:48.079 --> 00:07:51.279
it's going to start landing, it's already finished, so you
149
00:07:51.360 --> 00:07:53.040
have no control over that. And there was a bunch
150
00:07:53.079 --> 00:07:54.800
of steps in this. This was the largest thing we'd
151
00:07:54.800 --> 00:07:58.079
ever landed on Mars, and we're trying to land it
152
00:07:58.079 --> 00:08:01.000
precisely in the Jezero crater. It's over a metric ton
153
00:08:01.040 --> 00:08:03.079
of working payload. It's a big rover, a size of
154
00:08:03.120 --> 00:08:06.199
a mini and so it comes in on a heat
155
00:08:06.240 --> 00:08:09.319
shield which heats up quickly, slowing down for about thirteen
156
00:08:09.399 --> 00:08:11.480
thousand miles an hour to about one thousand miles an
157
00:08:11.480 --> 00:08:14.600
hour because the atmosphere is very thin, not enough atmosphere
158
00:08:14.639 --> 00:08:17.759
to really stop you, but more than enough that you
159
00:08:17.800 --> 00:08:22.040
have to deal with it. Then they deploy a supersonic parachute,
160
00:08:22.079 --> 00:08:23.959
a massive one, which you'll slow it from about one
161
00:08:24.000 --> 00:08:27.439
thousand to two hundred miles an hour. Then dump the
162
00:08:27.480 --> 00:08:31.160
heat shield. Radar kicks in from the rover to look
163
00:08:31.199 --> 00:08:32.840
at the ground, try and figure out where they are.
164
00:08:32.919 --> 00:08:36.200
There's some little stabilization tricks they can do, but still
165
00:08:36.200 --> 00:08:38.240
the parachute will They're moving to two hudred miles an hours,
166
00:08:38.240 --> 00:08:40.440
too fast to land, so they have to ditch the
167
00:08:40.679 --> 00:08:45.120
arrowshell and the parachute, and now they're on rockets, and
168
00:08:45.159 --> 00:08:47.960
the rockets now maneuvering towards their landing site. But they
169
00:08:47.960 --> 00:08:51.000
can't land with the rockets or they'll damage the vehicle.
170
00:08:51.639 --> 00:08:54.279
So now it's on a thing called the skyhook or
171
00:08:54.320 --> 00:08:58.200
the skycrane. These cables wind it down about sixty feet
172
00:08:58.440 --> 00:09:01.879
from the sky hook. The jet pack actually put the
173
00:09:02.000 --> 00:09:04.679
rover down, cut the lines, and then the jet pack
174
00:09:04.799 --> 00:09:08.799
flies away, runs out of fuel and crashes seven minutes.
175
00:09:09.120 --> 00:09:11.960
It was crazy and it worked flawlessly, of course. In
176
00:09:12.000 --> 00:09:13.840
twenty twelve and again in twenty twenty.
177
00:09:13.919 --> 00:09:14.159
Yeah.
178
00:09:14.200 --> 00:09:17.120
Also in August, Neil Armstrong, first person to step on
179
00:09:17.120 --> 00:09:19.879
the Moon, passes away. Yeah. And in December, the Chang
180
00:09:19.919 --> 00:09:24.720
E two lunar orbiter has left the Moon and flown
181
00:09:24.840 --> 00:09:28.159
off to an asteroid, to Tatis asteroid, and it's the
182
00:09:28.159 --> 00:09:30.879
first for China to reach an asteroid. They're only the
183
00:09:30.919 --> 00:09:34.960
fourth country to have done that. The actually the third,
184
00:09:35.240 --> 00:09:39.720
the fourth, the Americans, the European Space Agency JACKSA and.
185
00:09:39.679 --> 00:09:41.879
Then sometimes Canadians can't do math either.
186
00:09:42.080 --> 00:09:45.519
Jimmy's funny, just keeping the counts they have met. On
187
00:09:45.600 --> 00:09:48.840
the compute side of things, twenty twelve is the year
188
00:09:48.919 --> 00:09:52.799
that the Raspberry Pie is first released in the UK. Yeah, yeah,
189
00:09:52.840 --> 00:09:57.159
the whole idea of a low cost computer. Microsoft resigns
190
00:09:57.200 --> 00:10:00.000
their logo the color Square one for the first time
191
00:10:00.120 --> 00:10:05.120
in twenty five years. Microsoft also opens MS open Tech
192
00:10:05.200 --> 00:10:08.799
under Jean Pauline. This was a funny group. We didn't
193
00:10:08.840 --> 00:10:11.639
really understand what was about. Publicly, they talked about them
194
00:10:12.360 --> 00:10:15.080
making sure that dot net worked well with important open
195
00:10:15.120 --> 00:10:19.600
source libraries like elastic and memcashd and things like that
196
00:10:19.720 --> 00:10:21.799
auto mapper, But under the hood, what was actually going
197
00:10:21.840 --> 00:10:24.200
on was they wanted to build more open source stuff,
198
00:10:24.240 --> 00:10:26.399
but the Microsoft legal was so freaked out about it
199
00:10:26.519 --> 00:10:29.960
they actually set up a separate company to create a
200
00:10:30.120 --> 00:10:32.440
legal abstraction from it. One of the teams that was
201
00:10:32.480 --> 00:10:34.919
in there was the Nity framework team, the Anity framework team.
202
00:10:34.919 --> 00:10:36.480
It decided that they wanted to make an open source
203
00:10:36.519 --> 00:10:38.919
version of Nity framework. Now they'd already written in any framework.
204
00:10:38.960 --> 00:10:41.240
He had several versions out, all of which had a
205
00:10:41.240 --> 00:10:44.320
pile of patents on it, and so open sourcing it
206
00:10:44.360 --> 00:10:46.879
seemed impossible. There was an idea we could only make
207
00:10:46.919 --> 00:10:48.600
new open source, we couldn't convert all over the source.
208
00:10:48.639 --> 00:10:49.919
But this was the first time they were really going
209
00:10:50.000 --> 00:10:53.360
to try it. And literally what they did well, all
210
00:10:53.399 --> 00:10:55.720
these guys changed jobs. They moved over to MS open
211
00:10:55.759 --> 00:10:59.120
Tech and they went through all of the code in
212
00:10:59.200 --> 00:11:02.919
Anity framework, reviewing it for patents. Now this is patents
213
00:11:02.919 --> 00:11:05.159
they'd gotten by writing the code in the first place,
214
00:11:05.600 --> 00:11:08.080
and so they're literally looking the patent deciding if it
215
00:11:08.159 --> 00:11:10.879
is valuable or not. If it's not, then fine, let
216
00:11:10.879 --> 00:11:15.000
it go. If it is. If it's if it's really valuable,
217
00:11:15.080 --> 00:11:18.000
they rewrote the code to no longer conflict with the patent.
218
00:11:18.120 --> 00:11:20.679
Is this when the n hibernate mafia showed up at
219
00:11:20.679 --> 00:11:23.960
the door? This is years after the eight years after okay,
220
00:11:24.480 --> 00:11:26.240
like two years okay.
221
00:11:26.279 --> 00:11:29.399
Anyway, in the end, they get it done and open
222
00:11:29.440 --> 00:11:31.399
source and it's kind of a big deal for Microsoft.
223
00:11:31.480 --> 00:11:34.120
Takes a months, but it lets the teams know it's
224
00:11:34.279 --> 00:11:37.080
possible to open sources usting code like everyone thought it
225
00:11:37.120 --> 00:11:40.120
was impossible. And then the process is so arduous. They
226
00:11:40.120 --> 00:11:43.519
demand a simpler process, and our friend Soma Segar Rest
227
00:11:43.519 --> 00:11:47.080
in Peace, actually streams lines the process and Microsoft moves
228
00:11:47.080 --> 00:11:48.799
a little bit closer to being open source company.
229
00:11:49.279 --> 00:11:50.879
Yeah, it may fun times.
230
00:11:51.000 --> 00:11:53.720
Facebook IPO one of the most messed up IPOs of
231
00:11:53.759 --> 00:11:56.320
all time because even though it's a public company, the
232
00:11:56.360 --> 00:12:01.440
CEO holds the majority of the voting stock public company.
233
00:12:03.000 --> 00:12:08.360
September nineteenth, twenty twelve, in Vancouver, dot net Rocks road
234
00:12:08.360 --> 00:12:12.399
Trip begins, Oh yeah, thirty seven stops in thirteen weeks,
235
00:12:12.480 --> 00:12:14.919
coming out of Vancouver, down in Seattle, then all across
236
00:12:14.960 --> 00:12:18.399
the I ninety to Boston, and then down the Eastern
237
00:12:18.440 --> 00:12:22.480
Seaboard as far south as Tampa, and then west across
238
00:12:22.559 --> 00:12:26.639
to San Diego, and then it ends in Vegas December ninth.
239
00:12:27.159 --> 00:12:28.440
I'm tired just thinking about it.
240
00:12:28.480 --> 00:12:33.799
Where you insisted that we go to Joel Robischad for dinner, and.
241
00:12:33.840 --> 00:12:34.799
It was a great meal.
242
00:12:35.039 --> 00:12:37.519
It was a great meal for you and me. My wife, however,
243
00:12:37.720 --> 00:12:40.080
was like, bring these snails out of here and get
244
00:12:40.080 --> 00:12:40.799
me a cheese in.
245
00:12:40.919 --> 00:12:44.080
At Jimmy and I about a burger. We had to
246
00:12:44.120 --> 00:12:44.960
make a couple of stops.
247
00:12:44.960 --> 00:12:47.320
There's so many snails on my plate. I can't even
248
00:12:47.360 --> 00:12:48.039
see the food.
249
00:12:49.879 --> 00:12:51.360
I mean, we didn't do the road trip nons step.
250
00:12:51.399 --> 00:12:52.840
There was a couple of breaks in. One of those
251
00:12:52.879 --> 00:12:56.519
breaks was for the second Build conference right in October.
252
00:12:57.399 --> 00:13:01.440
That's when Windows eighties officially launched and Visual Studio twenty twelve,
253
00:13:01.480 --> 00:13:03.399
the one everybody hated because the menus are all in
254
00:13:03.519 --> 00:13:08.519
Uppercase Framework four point five I E ten and Windows
255
00:13:08.519 --> 00:13:11.639
Phone eight letting all the Windows Phone developers know you
256
00:13:11.840 --> 00:13:13.679
just got screwed because all the code you wrote in
257
00:13:13.720 --> 00:13:15.360
seven will not run on eight, so you have to
258
00:13:15.360 --> 00:13:18.679
start not fun times no, and of course win eight
259
00:13:18.759 --> 00:13:20.799
is a gigantic flop and that will lead to other
260
00:13:20.799 --> 00:13:23.679
consequences which we'll talk about on the next show.
261
00:13:23.960 --> 00:13:28.440
Yeah, okay, so that's what you got, That's what I got?
262
00:13:28.480 --> 00:13:31.919
All right, Well let's roll the music for better no framework.
263
00:13:32.039 --> 00:13:41.039
Awesome? All right, man, what do you got?
264
00:13:41.080 --> 00:13:45.360
I got a message from the author of mq net.
265
00:13:45.480 --> 00:13:46.000
What is that?
266
00:13:46.120 --> 00:13:46.279
Now?
267
00:13:46.279 --> 00:13:49.799
This is a dot net wrapper for MQ which is
268
00:13:49.840 --> 00:13:55.039
a JQ like query tool from markdown query headings, code blocks, paragraphs,
269
00:13:55.080 --> 00:13:58.399
and more using a simple, composable query language. Now I
270
00:13:58.440 --> 00:14:02.639
had never heard of m Maybe guys such as Jimmy have,
271
00:14:03.360 --> 00:14:04.000
but no.
272
00:14:03.919 --> 00:14:04.919
For the MQ series.
273
00:14:06.039 --> 00:14:08.159
Yeah, that's what I would have thought of it. Yeah,
274
00:14:08.159 --> 00:14:11.039
that it was a Q system not a query system.
275
00:14:11.200 --> 00:14:13.559
Well, probably the reason we haven't heard it is it's
276
00:14:13.600 --> 00:14:17.639
a thin managed wrap around the native mq dash ffi library,
277
00:14:17.639 --> 00:14:21.759
which is compiled from the MQ rust crate. So at runtime,
278
00:14:21.840 --> 00:14:25.559
dot nets p and vokeloads the platform native binary and
279
00:14:25.879 --> 00:14:29.679
Marshall's calls across the native boundary. So there you go.
280
00:14:29.799 --> 00:14:32.799
If if you know what MQ is and you like it,
281
00:14:32.919 --> 00:14:34.600
but you want to bring that over to the dot
282
00:14:34.720 --> 00:14:37.240
net side. There you go MQ now.
283
00:14:37.159 --> 00:14:38.679
Yeah, still happening.
284
00:14:39.039 --> 00:14:40.960
Yeah cool. So who's talking to us today?
285
00:14:41.039 --> 00:14:44.279
Richard Crowd to Commenov Show nineteen forty one. What we
286
00:14:44.320 --> 00:14:48.240
talked to some guy named Jimmy Boger about automap or
287
00:14:48.279 --> 00:14:52.600
fourteen and doing this stuff for seventeen years and now
288
00:14:52.720 --> 00:14:56.039
things needed to change yep. And we also talked about,
289
00:14:56.080 --> 00:14:58.519
you know, going from coplex to gethub and that that
290
00:14:58.960 --> 00:15:02.600
whole experience. Jonathan has his comment where he says, I
291
00:15:02.639 --> 00:15:07.600
mean technically code is data. It's just that de serializing
292
00:15:07.679 --> 00:15:11.799
running code outside of one's application is rather risky. Yeah,
293
00:15:12.679 --> 00:15:15.919
an execution attack, but yeah, i'd say, very easy to
294
00:15:16.159 --> 00:15:18.519
add things happening. You know, try doing that with SQL.
295
00:15:18.679 --> 00:15:21.440
That's also bad. But if the types of queries have
296
00:15:21.480 --> 00:15:23.480
to be supported or simple enough, it probably possible to
297
00:15:23.519 --> 00:15:27.399
fake serializing aqueriable by passing a limited number of config
298
00:15:27.480 --> 00:15:30.360
keywords and using them to construct a queriable. Otherwise, it
299
00:15:30.360 --> 00:15:33.200
seems like pretending to serial as to deserilize equeriable. It
300
00:15:33.240 --> 00:15:35.759
seems like it would require creating a full ballone query language.
301
00:15:35.799 --> 00:15:38.799
Figuring out how to integrate the necessary parsing execution into
302
00:15:38.799 --> 00:15:41.240
one's app probably not worth the effort unless it's core
303
00:15:41.279 --> 00:15:44.080
functionality or you just think it's cool.
304
00:15:44.360 --> 00:15:47.919
I've thought of doing that, and I tried several approaches,
305
00:15:48.000 --> 00:15:50.879
and I tried several libraries, but they all miss the
306
00:15:50.879 --> 00:15:55.480
point that an equeriable requires code, right, and you can't
307
00:15:55.519 --> 00:15:56.840
serialize that, you know.
308
00:15:57.120 --> 00:15:59.080
So, Jonathan, thank you so much for your comment in
309
00:15:59.120 --> 00:16:00.799
a copy of music code By on its way to UNI.
310
00:16:00.799 --> 00:16:02.320
If you'd like a copy music Gobe, I write a
311
00:16:02.320 --> 00:16:04.480
comment on the website at dot NetRocks dot com or
312
00:16:04.519 --> 00:16:06.200
on the facebooks you publish every show there, and if
313
00:16:06.200 --> 00:16:07.399
you comment there and I read it in the show,
314
00:16:07.399 --> 00:16:08.840
and we'll send you copy music go By.
315
00:16:09.039 --> 00:16:12.200
And right before I lost power last week, I was
316
00:16:12.240 --> 00:16:17.600
working on music to code By track twenty three nice.
317
00:16:17.639 --> 00:16:19.679
So I did get a couple of things laid down.
318
00:16:19.720 --> 00:16:22.440
I got more to do, but plan on getting back.
319
00:16:22.279 --> 00:16:24.799
To that appen. And then the universe said, no, yeah,
320
00:16:24.879 --> 00:16:25.360
that's right.
321
00:16:26.120 --> 00:16:28.919
The gods of vengeance and irony gave me some SmackDown.
322
00:16:32.279 --> 00:16:34.639
All right, So let's introduce Jimmy. Jimmy Bogart is the
323
00:16:34.639 --> 00:16:39.279
creator and maintainer of the popular OSS libraries Automapper and Mediator.
324
00:16:39.720 --> 00:16:43.039
Jimmy is an independent software consultant based in Austin, Texas.
325
00:16:43.360 --> 00:16:47.720
He has received the Microsoft Most Valuable Profession MVP Award
326
00:16:47.919 --> 00:16:50.840
every year since two thousand and nine. And I like
327
00:16:50.919 --> 00:16:53.600
the way you said that in your bio, because you know,
328
00:16:53.759 --> 00:16:56.360
people say, I've been a developer for twelve years. Well
329
00:16:56.399 --> 00:16:58.559
you know what, next year, it's going to be thirteen
330
00:16:58.759 --> 00:17:04.039
and I'm not changing it. Yeah, so since two thousand
331
00:17:04.079 --> 00:17:05.759
and nine, you've been an MVP. Welcome Jimmy.
332
00:17:05.880 --> 00:17:07.960
Yea, I'm glad to be back, Glad to be back, glad.
333
00:17:07.720 --> 00:17:09.440
To have you. Yeah, it felt like it's been a
334
00:17:09.519 --> 00:17:13.599
year since the whole conversation about Autumn Apper and and
335
00:17:13.960 --> 00:17:16.160
changed into a more commercial model. The thing that hit
336
00:17:16.200 --> 00:17:18.640
me the hardest when you were first talking about that,
337
00:17:18.720 --> 00:17:20.480
I think was even before we were recording, was this
338
00:17:20.559 --> 00:17:24.559
whole I realized I was subsidizing this project off my
339
00:17:24.680 --> 00:17:28.000
other work and work changes, and it's like this is
340
00:17:28.079 --> 00:17:29.000
just not sustainable.
341
00:17:29.160 --> 00:17:32.039
Right, Yeah, that's I think that was the conversation. Right
342
00:17:32.039 --> 00:17:35.000
at the end, there was just looking back and like
343
00:17:36.119 --> 00:17:38.319
realizing I had lost my sponsor because I used to
344
00:17:38.359 --> 00:17:41.039
work in a consulting company that sponsored the work and
345
00:17:41.039 --> 00:17:43.200
then just not realizing that was and.
346
00:17:43.400 --> 00:17:45.720
How that's actually what was going on.
347
00:17:45.920 --> 00:17:47.720
Yeah, that's yeah. I didn't realize that at the time,
348
00:17:47.720 --> 00:17:50.359
but that's what actually the arrangement that was happening there,
349
00:17:50.400 --> 00:17:51.920
that that was no longer anymore.
350
00:17:52.000 --> 00:17:52.319
Yeah.
351
00:17:52.359 --> 00:17:55.359
So just once you once you realize that, you're like, wow, okay,
352
00:17:55.359 --> 00:17:58.359
what what what to do now? So I think that's
353
00:17:58.400 --> 00:17:59.839
what where you ended as I was trying to figure
354
00:17:59.880 --> 00:18:02.960
out what to do, what to do next with that
355
00:18:03.400 --> 00:18:05.039
with that knowledge, Yeah, and you.
356
00:18:05.519 --> 00:18:08.720
Were coming into it with some trepidation too, because I
357
00:18:08.759 --> 00:18:11.000
mean everybody talked, we've we've seen this with de one
358
00:18:11.079 --> 00:18:15.119
day and we just had rab mentioning a few weeks ago.
359
00:18:15.960 --> 00:18:19.079
Of course, this is a very common pattern, it seems,
360
00:18:19.119 --> 00:18:22.400
emerging as open sources evolving where it's like, how do
361
00:18:22.519 --> 00:18:25.759
we make these projects more sustainable? So you were at
362
00:18:25.799 --> 00:18:28.440
the beginning of that last year. Where are you now?
363
00:18:29.279 --> 00:18:31.319
Yeah, So that was like right in the middle of
364
00:18:31.359 --> 00:18:33.319
where I was trying to figure out where I wanted
365
00:18:33.359 --> 00:18:37.720
to go, And during that process I wound up talking
366
00:18:37.759 --> 00:18:40.960
to I don't know, fifteen twenty different people that're in
367
00:18:40.960 --> 00:18:44.200
the exact same sort of situation and talking to see
368
00:18:44.240 --> 00:18:46.559
what they went through, and like, basically to a tea,
369
00:18:46.640 --> 00:18:51.279
the next step for that level of open source is
370
00:18:51.400 --> 00:18:54.039
some sort of commercialization, right, And so that was the
371
00:18:54.079 --> 00:18:57.400
decision I was going through. Okay, for sustainability, it needs
372
00:18:57.440 --> 00:19:00.839
corporate sponsorship and that was no longer there from where
373
00:19:00.839 --> 00:19:03.440
I was working before, so I needed some other form
374
00:19:03.480 --> 00:19:07.440
of corporate sponsorship. And basically then that's some kind of well,
375
00:19:07.599 --> 00:19:11.640
I guess it depends, but I went the software licensing route.
376
00:19:11.880 --> 00:19:13.279
I'd read a ton of I'm sure we've had him
377
00:19:13.279 --> 00:19:17.880
on a baillion times, but Aaron Standard with Petibridge and
378
00:19:17.960 --> 00:19:24.480
acaba net talked a ton about just commercial models of
379
00:19:24.559 --> 00:19:29.599
open source, and so I basically followed his his guidelines like,
380
00:19:29.599 --> 00:19:30.720
woll you can go do this, you could do this,
381
00:19:30.759 --> 00:19:33.279
you could do this, and so I wound up going there.
382
00:19:33.279 --> 00:19:36.440
Out of just charging a fee for for companies over
383
00:19:36.519 --> 00:19:38.920
certain size to use the software.
384
00:19:38.559 --> 00:19:41.319
Did you use the source maintenance fee model?
385
00:19:42.559 --> 00:19:46.160
I looked at it, but because it was still failing,
386
00:19:46.720 --> 00:19:48.640
it was still fairly new at the time, I didn't.
387
00:19:49.079 --> 00:19:52.559
I basically thought I'd get one shot at this doing
388
00:19:52.559 --> 00:19:54.160
this something I didn't want to stake it on something
389
00:19:54.200 --> 00:19:57.960
that I didn't see was established yet. And although I
390
00:19:58.000 --> 00:19:59.799
probably could have lent a lot of credence to that
391
00:20:00.000 --> 00:20:02.960
by adopting myself, I.
392
00:20:02.680 --> 00:20:05.319
But even Rob was discouraging people at that point. He's like,
393
00:20:05.400 --> 00:20:09.119
let me see where this goes for me first before. Yeah,
394
00:20:09.160 --> 00:20:11.119
and it's worked out for him now. But it's just
395
00:20:11.200 --> 00:20:13.240
it was timing. If you were starting now, it may
396
00:20:13.319 --> 00:20:14.359
probably make more sense.
397
00:20:14.519 --> 00:20:17.079
And I should just mention that I talked to the
398
00:20:17.119 --> 00:20:21.160
guys in the apt next Realm that managed Polly, and
399
00:20:21.200 --> 00:20:23.599
they're all for it. So we're going to have a
400
00:20:23.599 --> 00:20:26.319
blog post up pretty soon that we will have we'll
401
00:20:26.359 --> 00:20:27.319
be using the SMF.
402
00:20:27.440 --> 00:20:29.359
Oh that's fantastic cool. Yeah, yeah, I mean I love
403
00:20:29.400 --> 00:20:32.119
to see those kinds of things take hold, because ultimately
404
00:20:32.440 --> 00:20:35.839
I I had realized that, you know, the libraries I
405
00:20:35.960 --> 00:20:40.480
use are used by big enterprise software organizations and big
406
00:20:40.720 --> 00:20:44.279
enterprise companies who really don't have any issue paying for
407
00:20:44.519 --> 00:20:50.119
licenses of things, right, So it's like it's just made
408
00:20:50.160 --> 00:20:53.279
like they they're more than willing to pay. So yeah,
409
00:20:53.319 --> 00:20:55.400
they want to be compliant, yes, exactly, and they want
410
00:20:56.160 --> 00:20:59.319
especially the looking at my library it's used in production systems,
411
00:21:00.319 --> 00:21:03.039
and they want to make sure that those production systems
412
00:21:03.039 --> 00:21:05.759
they've come to rely upon, like that they've invested in,
413
00:21:05.799 --> 00:21:08.559
like they can still get their return on those investments.
414
00:21:08.640 --> 00:21:09.640
So I don't know.
415
00:21:09.799 --> 00:21:13.160
It was a really tough decision going down that path,
416
00:21:13.279 --> 00:21:15.359
like you know, sleepless nights and anxiety and all that
417
00:21:15.440 --> 00:21:18.920
sort of stuff, But ultimately it was the right call.
418
00:21:19.119 --> 00:21:21.480
I wanted to just make sure it was sustainable going forward.
419
00:21:21.480 --> 00:21:22.720
I didn't want to give it up, didn't want to
420
00:21:22.720 --> 00:21:23.079
lose it.
421
00:21:23.240 --> 00:21:26.880
So so are you telling me that when you make these announcements,
422
00:21:27.519 --> 00:21:31.000
everybody says, that's a brilliant idea, John, We're all in.
423
00:21:31.400 --> 00:21:34.759
It's all just happiness and joy, right, that's how this
424
00:21:34.839 --> 00:21:35.319
went down?
425
00:21:35.440 --> 00:21:42.759
Oh goodness, No, No, And I've known just by seeing
426
00:21:42.799 --> 00:21:45.319
other people. You know, other people had done this before me,
427
00:21:45.519 --> 00:21:48.440
and I saved very very close attention to how that
428
00:21:48.480 --> 00:21:51.720
had gone for them, how their messaging was, how they
429
00:21:51.839 --> 00:21:55.079
how their model worked out for them. So I had
430
00:21:55.119 --> 00:21:58.279
both good and bad examples to work from. So I
431
00:21:58.359 --> 00:22:01.039
tried from at least a messaging perspect to kind of
432
00:22:01.039 --> 00:22:04.279
build the case of why I was going this route.
433
00:22:04.759 --> 00:22:09.359
But ultimately it's still a big ask for developer who's
434
00:22:09.480 --> 00:22:13.200
using something, Yes, and then now it's no longer free,
435
00:22:13.240 --> 00:22:15.559
and now they have to have that awkward conversation with
436
00:22:15.640 --> 00:22:16.599
their manager, with.
437
00:22:16.599 --> 00:22:19.079
Their purement yeah questions.
438
00:22:19.079 --> 00:22:21.599
So I really like that's a tough that's a tough
439
00:22:21.799 --> 00:22:23.759
conversation to have that I've had in the past. Right,
440
00:22:23.799 --> 00:22:26.160
I've been. I've been the position like I really want this,
441
00:22:27.279 --> 00:22:28.640
you know, teller C license.
442
00:22:29.599 --> 00:22:33.880
Well even worse, I'm already using this and getting rid
443
00:22:33.920 --> 00:22:36.799
of it would be difficult, and now I have to
444
00:22:36.839 --> 00:22:39.279
pay for it, or rather you have to pay for it.
445
00:22:39.400 --> 00:22:41.559
So yeah, and again you're not talking about a huge
446
00:22:41.559 --> 00:22:45.400
amount of money. It's not the money, it's the process.
447
00:22:45.079 --> 00:22:51.079
Yes, which now I'm intimately familiar with these, so the
448
00:22:51.200 --> 00:22:56.279
sort of seller side. But yeah, that started. I announced
449
00:22:56.319 --> 00:22:59.960
I think in April last year, April seconds, not April first,
450
00:23:00.000 --> 00:23:00.960
because that would have been really.
451
00:23:00.920 --> 00:23:05.079
Dumb, funny but dumb.
452
00:23:06.240 --> 00:23:09.279
And then when I'm going live, I think July of
453
00:23:09.400 --> 00:23:13.559
last year's has actually been twelve months now, nice this
454
00:23:13.759 --> 00:23:15.359
being this being a thing.
455
00:23:15.720 --> 00:23:19.759
So it's worked. You have customers, yes, you have a
456
00:23:19.839 --> 00:23:21.200
revenue stream.
457
00:23:21.039 --> 00:23:23.039
So it's it's definitely self sustaining.
458
00:23:23.799 --> 00:23:27.319
Okay, it's not quit your job, hire a bunch of people,
459
00:23:27.960 --> 00:23:29.359
likely on the beach kind of money.
460
00:23:29.440 --> 00:23:31.480
Well, I never wanted to hire people in the first
461
00:23:31.599 --> 00:23:34.000
I didn't get into this like a big company. I
462
00:23:34.039 --> 00:23:36.400
want to make sure this is sustainable going forward. I
463
00:23:36.440 --> 00:23:40.359
lost my sponsor. I need that back now. It's just,
464
00:23:40.599 --> 00:23:43.279
you know, how do I how do I make sure
465
00:23:43.279 --> 00:23:46.400
that I can continue that business going forward and focus
466
00:23:46.440 --> 00:23:50.039
on like improving the stuff that I had just not
467
00:23:50.079 --> 00:23:53.680
done in like five years prior to making this commercial.
468
00:23:53.720 --> 00:23:56.440
I just I basically stopped. It's like, I don't none
469
00:23:56.480 --> 00:23:58.640
of my customers are paying me to maintain this, so
470
00:23:58.799 --> 00:24:00.960
I'm just going to do minimal stuff. Now people are
471
00:24:00.960 --> 00:24:03.359
paying me to maintain it. So now the fun part
472
00:24:03.440 --> 00:24:07.880
of you know, actually improving the libraries after letting them
473
00:24:07.920 --> 00:24:08.839
kind of sit for a bit.
474
00:24:08.920 --> 00:24:12.960
Wow. Okay, And what do you thinkure was the key here?
475
00:24:13.000 --> 00:24:14.200
Like did you come up with a way to make
476
00:24:14.240 --> 00:24:16.960
it really easy to pay or I mean just I
477
00:24:17.000 --> 00:24:20.799
think about folks like Troy Hunt dealing with all of
478
00:24:20.839 --> 00:24:23.880
these organizations that want to go through a giant procurement
479
00:24:23.920 --> 00:24:26.880
process for like twenty dollars and he's like, no, not
480
00:24:26.960 --> 00:24:29.680
doing it. We take credit cards and nothing else or
481
00:24:30.079 --> 00:24:31.000
you know, forget it.
482
00:24:31.279 --> 00:24:33.279
Yeah, I had this whole I had the whole process
483
00:24:33.319 --> 00:24:35.440
as well. So I one of the nice things about
484
00:24:35.480 --> 00:24:37.319
interviewing all these other people that came before is you
485
00:24:37.359 --> 00:24:39.799
get to learn from their mistakes and just learning their
486
00:24:39.839 --> 00:24:44.000
model whatever. So I started up by just doing that,
487
00:24:44.079 --> 00:24:47.039
saying here's a link to pay for it, and that's that.
488
00:24:47.720 --> 00:24:50.000
But I think within like a week, I had someone
489
00:24:50.039 --> 00:24:51.839
coming to me to say, hey, we want a quote
490
00:24:51.839 --> 00:24:54.240
in an invoice. Yeah, and I'm like, what's what's what
491
00:24:54.319 --> 00:24:58.759
are those things I've never had to do, Like as
492
00:24:58.839 --> 00:25:03.359
a software consultant for fifteen twenty years before that, we
493
00:25:03.440 --> 00:25:05.799
only worked in statements of work that had a very
494
00:25:05.799 --> 00:25:09.680
different Oh yes I need to you need to get
495
00:25:09.680 --> 00:25:13.319
this approved internally. Yeah. So yeah, just a whole learning
496
00:25:13.359 --> 00:25:16.079
process of just what the enterprise process looks like and
497
00:25:16.119 --> 00:25:19.000
also what I wanted support as well. I talked to
498
00:25:19.039 --> 00:25:22.200
people that said we don't we only just have the
499
00:25:22.240 --> 00:25:24.160
credit card link out there or whatever, and we don't
500
00:25:24.200 --> 00:25:28.599
do any kind of other processes. But after twelve months,
501
00:25:29.839 --> 00:25:32.799
it wouldn't look back and said okay, based on those assumptions,
502
00:25:32.799 --> 00:25:35.599
it looked like although like two thirds of my orders
503
00:25:35.599 --> 00:25:41.279
were direct online purchases was manual invoice. So if I
504
00:25:41.319 --> 00:25:46.160
didn't do like half, if I didn't do that, that
505
00:25:46.200 --> 00:25:48.799
would be just half the revenue gone. So I'm like, well,
506
00:25:48.880 --> 00:25:51.400
I think that was a good choice. But it does
507
00:25:51.640 --> 00:25:53.480
definitely take a ton of time to go through all
508
00:25:53.480 --> 00:25:57.759
those enterprise procurement processes to decide that worth it or not.
509
00:25:58.119 --> 00:26:01.599
But yeah, I mean you said it's fifty percent of
510
00:26:01.640 --> 00:26:04.599
the income, but it's a whole bunch more cost.
511
00:26:04.839 --> 00:26:08.759
Yes, I haven't tracked all that yet, but definitely it
512
00:26:08.839 --> 00:26:11.799
reminded my first like just fray into open source, I
513
00:26:11.799 --> 00:26:14.200
would take every pole request, yeah, just because like I
514
00:26:14.240 --> 00:26:16.960
was super happy, excited to be, you know, to have
515
00:26:17.039 --> 00:26:18.920
this activity. So this is the same thing early on too,
516
00:26:18.960 --> 00:26:22.000
is just I would take any any request that came in. Sure, sure,
517
00:26:22.200 --> 00:26:24.039
you know. But then eventually I realized, oh, this is
518
00:26:24.079 --> 00:26:27.680
taking a lot like license redlining. I did not get
519
00:26:27.680 --> 00:26:31.160
into this too to have to look at legal redline documents,
520
00:26:32.240 --> 00:26:33.920
but early on it just took them all like, if
521
00:26:33.920 --> 00:26:36.200
you want it redline, I'll let it look And then later,
522
00:26:36.319 --> 00:26:38.440
oh god, that is actually quite expensive to pay your
523
00:26:38.519 --> 00:26:42.319
lawyer to look at the most mundane things. So it's
524
00:26:42.359 --> 00:26:44.720
just a been a big learning experience over the past
525
00:26:44.759 --> 00:26:47.440
year of how to software business.
526
00:26:47.880 --> 00:26:50.640
I guess right, yeah, you say that's that is the
527
00:26:50.720 --> 00:26:54.200
learning processes. What do people actually want here? And what
528
00:26:54.400 --> 00:26:57.200
and what's a reasonable request? I think that's the hardest
529
00:26:57.200 --> 00:26:59.920
one because you can often get the bigger the company,
530
00:27:00.039 --> 00:27:02.240
it seems some more unreasonably requests are.
531
00:27:02.160 --> 00:27:06.039
Yeah, did you do this both for automapper and mediator.
532
00:27:06.200 --> 00:27:08.440
Yeah. That was one advice I got in very early
533
00:27:08.680 --> 00:27:12.279
was if you're going to do it, do whatever you
534
00:27:12.319 --> 00:27:14.960
would want to commercialize at once. Don't do one and
535
00:27:14.960 --> 00:27:17.440
then later on do something else. Just do it all together.
536
00:27:18.000 --> 00:27:21.000
So initially I thought, you know, just do automapper because
537
00:27:21.000 --> 00:27:24.279
it has I think it had fifty percent more downloads
538
00:27:24.319 --> 00:27:27.920
at the time, but the mediators still had quite a
539
00:27:27.920 --> 00:27:31.400
lot as part of it. And the advice I got
540
00:27:31.400 --> 00:27:33.079
from a lot of folks that run these kinds of
541
00:27:33.160 --> 00:27:34.680
things like just do them both, Like, if you're going
542
00:27:34.720 --> 00:27:36.839
to do it, and do it now. Yeah, if no
543
00:27:36.839 --> 00:27:38.400
one wants it, no one wants to pay for it,
544
00:27:38.400 --> 00:27:42.400
that's fine. But what I found is that because you know,
545
00:27:42.480 --> 00:27:45.359
the nice thing is before this I had no clue
546
00:27:45.680 --> 00:27:48.359
who was using my library. Right, it was just a
547
00:27:48.480 --> 00:27:52.440
raw number, but now I can actually see who's using
548
00:27:52.519 --> 00:27:54.599
And one of the interesting things is that from the
549
00:27:54.680 --> 00:28:01.039
people that bought Automapper, there's another like sixty percent and
550
00:28:01.119 --> 00:28:04.920
another thirty percent would also then like also buy Mediator
551
00:28:04.960 --> 00:28:07.799
as well. So about a third of the people using
552
00:28:07.759 --> 00:28:10.599
automapp are also we're using Mediator and just using them
553
00:28:10.599 --> 00:28:13.279
all together. Well that makes sense because that's what I
554
00:28:13.319 --> 00:28:16.079
would do in my projects. We use them both together.
555
00:28:16.160 --> 00:28:18.359
You know, they weren't. It's a complimentary tools or the
556
00:28:18.480 --> 00:28:20.720
just things I would always do in just about all
557
00:28:20.720 --> 00:28:24.240
my projects. So yeah, I wind up doing both just
558
00:28:25.400 --> 00:28:28.599
because everyone told me to. Right, Yeah, we're gonna do
559
00:28:28.640 --> 00:28:30.240
it now and dealt with it.
560
00:28:30.599 --> 00:28:32.559
And I see that you offer a bundle there. Do
561
00:28:32.599 --> 00:28:33.759
you think that made a difference.
562
00:28:33.920 --> 00:28:37.839
Yeah, that's you is. Yeah, basically twenty percent off if you.
563
00:28:37.799 --> 00:28:41.440
Do both and right, if you do them both, just reduces.
564
00:28:41.000 --> 00:28:43.720
The number of conversations. And I didn't want to again like, oh,
565
00:28:43.799 --> 00:28:45.680
here's one and then the twelve months later, here's another
566
00:28:45.720 --> 00:28:47.359
one that you have to to purchase.
567
00:28:47.000 --> 00:28:49.599
This say, you just make people angry again, rip the
568
00:28:49.640 --> 00:28:52.240
band aid off and yeah, make them angry once.
569
00:28:52.559 --> 00:28:55.759
Yeah, exactly, did you have a significant number of people
570
00:28:55.759 --> 00:28:58.599
complain about the what is it ten dollars a month
571
00:28:58.680 --> 00:28:59.079
or something?
572
00:28:59.160 --> 00:29:00.960
Well, the tricky part is and then I know you'll
573
00:29:01.000 --> 00:29:04.759
know that too, right. It's like there's the vocal folks
574
00:29:05.240 --> 00:29:09.759
online which basically read it in. LinkedIn are like the
575
00:29:09.799 --> 00:29:12.640
main places I see those. I mean, I see comments
576
00:29:12.640 --> 00:29:14.640
on my blog post, but that's still going to be
577
00:29:14.680 --> 00:29:18.640
much lower traffic than those other ones. I wouldn't know
578
00:29:18.720 --> 00:29:20.559
if it was going to be successful until I actually
579
00:29:20.559 --> 00:29:21.720
put it out there and said, well, who are the
580
00:29:21.759 --> 00:29:25.359
companies that don't aren't you know, habitually online complaining all
581
00:29:25.400 --> 00:29:29.400
the time, but are actually just building stuff and don't
582
00:29:29.440 --> 00:29:31.960
just comment on LinkedIn all the time. That would be
583
00:29:31.960 --> 00:29:34.119
the people I would say that I would want to
584
00:29:34.119 --> 00:29:37.680
focus on. I came in assuming like if ninety nine
585
00:29:37.720 --> 00:29:41.440
percent of the users didn't want to purchase, that was
586
00:29:41.480 --> 00:29:43.960
okay with a one percent just you know, back of
587
00:29:43.960 --> 00:29:46.400
the nap and calculation based on raw downland numbers and
588
00:29:46.519 --> 00:29:49.680
one percent converted, and it could sustain itself right at
589
00:29:49.720 --> 00:29:52.160
that point three percent? Like those the people that are
590
00:29:52.200 --> 00:29:55.160
also invested in the product as well, not just like
591
00:29:55.200 --> 00:29:59.000
downloaded because someone said to they actually see the value,
592
00:29:59.119 --> 00:30:02.240
So I thought, well, focus on the people that see
593
00:30:02.240 --> 00:30:04.839
the value enough to want to then pay for it whatever.
594
00:30:05.039 --> 00:30:07.039
Ye, And I'm sure I saw I'm sure you've got
595
00:30:07.119 --> 00:30:11.160
message saying uh loll generated with l M.
596
00:30:11.839 --> 00:30:13.759
Yeah. I mean that didn't That was not a thing
597
00:30:13.759 --> 00:30:15.480
when I was making this decision, to be honest, like
598
00:30:15.519 --> 00:30:18.720
we weren't quite there yet. It was a claude version
599
00:30:18.799 --> 00:30:19.799
one at the time.
600
00:30:19.880 --> 00:30:22.720
So but it was different.
601
00:30:23.079 --> 00:30:26.079
People have told me, and again I I don't really
602
00:30:26.079 --> 00:30:27.920
care if they want to replace it with something else
603
00:30:28.079 --> 00:30:29.000
or whatever, like that's there.
604
00:30:29.079 --> 00:30:31.279
Yeah, if you want to maintain the code base, knock
605
00:30:31.319 --> 00:30:32.440
yourself out, right, sure.
606
00:30:32.640 --> 00:30:36.640
I mean for my consulting days though I knew there
607
00:30:36.680 --> 00:30:39.400
was there was more value in the code you didn't
608
00:30:39.400 --> 00:30:41.519
write than the code you did, right, right, then you
609
00:30:41.559 --> 00:30:44.319
if you could focus on the most important code, because
610
00:30:44.359 --> 00:30:46.079
you just have to maintain that stuff forever. And I
611
00:30:46.079 --> 00:30:48.200
saw this with autom mapp, right. I took every pool
612
00:30:48.240 --> 00:30:50.440
request and I had to maintain that forever, and I
613
00:30:50.920 --> 00:30:51.480
didn't want to.
614
00:30:52.160 --> 00:30:55.599
Yeah, just came to realize not a good idea, right Yeah. Well,
615
00:30:55.599 --> 00:30:58.559
and your party use what works too, right, Yeah.
616
00:30:58.599 --> 00:31:01.119
And I'm a big believer in that idea that there's
617
00:31:01.240 --> 00:31:06.039
more value in a community building that those libraries over time,
618
00:31:06.240 --> 00:31:09.920
having that pool of different users in different opinions focused
619
00:31:09.960 --> 00:31:13.480
on a single code base ratter than a thousand different
620
00:31:13.799 --> 00:31:16.319
code bases that are either forked or you know, just
621
00:31:16.400 --> 00:31:21.240
copy paste Claude, whatever sort of thing. They'll never This
622
00:31:21.279 --> 00:31:23.839
is something I saw on my consulting days was we
623
00:31:24.519 --> 00:31:27.759
had a dozen projects at the minimum running at a time, right,
624
00:31:27.799 --> 00:31:31.359
and all those projects were providing feedback into the libraries
625
00:31:31.359 --> 00:31:33.519
to make it better. That doesn't happen if it's just
626
00:31:33.920 --> 00:31:37.000
one off by itself. So it's always the thing I
627
00:31:37.039 --> 00:31:40.119
saw great with open sources, that you're building off other
628
00:31:40.160 --> 00:31:43.519
people's experiences too, and that just doesn't happen in any
629
00:31:43.599 --> 00:31:45.400
kind of like just isolated code.
630
00:31:45.799 --> 00:31:48.400
Yeah, you're exactly right, and a lot of way it
631
00:31:48.400 --> 00:31:50.799
gets a lot more energy that way. We should break. Yeah,
632
00:31:50.960 --> 00:31:52.920
let's take a break. Good idea, Richard. We'll be right
633
00:31:52.960 --> 00:31:59.240
back after these very important messages, and we're back. It's
634
00:31:59.279 --> 00:32:02.519
dot Net Rocks, Drew Campbell, that's Carl Franklin Yo talking
635
00:32:02.559 --> 00:32:05.799
to our friend Jimmy Bogart. As experience of the past
636
00:32:05.920 --> 00:32:10.359
year with automapp or mediator and having a commercial license,
637
00:32:10.440 --> 00:32:14.000
and obviously some folks have have come in, so now
638
00:32:14.200 --> 00:32:16.400
you know, things are a bit more sustainable for you.
639
00:32:16.960 --> 00:32:19.400
I guess the other side of this is are these
640
00:32:19.440 --> 00:32:21.880
guys front of the line too, are there pull requests
641
00:32:21.960 --> 00:32:25.079
or are their issues prioritized if they're a paying customer.
642
00:32:25.240 --> 00:32:27.000
It was that was part of the incentive as well.
643
00:32:27.119 --> 00:32:30.680
If you're paying customer, you get actual support. Now. Prior
644
00:32:30.720 --> 00:32:34.039
to this, there was like, no, it's in the license
645
00:32:34.119 --> 00:32:37.440
right in my tea. Have actually no warranties whatsoever, like
646
00:32:37.519 --> 00:32:41.400
no guarantees. It doesn't implied social contract. But the social
647
00:32:41.400 --> 00:32:44.720
contract at the end was I will not I will
648
00:32:44.759 --> 00:32:47.720
not respond to issues because I just didn't have time.
649
00:32:48.079 --> 00:32:51.599
Sure now there's now that's changed. Right now I none
650
00:32:51.599 --> 00:32:55.079
only have contractual obligations for things like security fixes, but
651
00:32:55.160 --> 00:32:59.559
also now it's one of the reasons I wanted to
652
00:32:59.599 --> 00:33:01.119
get into it is to be able to help people
653
00:33:01.160 --> 00:33:05.039
that are actually using the software, So having a discord
654
00:33:05.319 --> 00:33:08.559
chat that people can come and ask questions and being
655
00:33:08.559 --> 00:33:12.000
able to get you know, issues answered and emails answered.
656
00:33:12.200 --> 00:33:14.319
BERI to this, I just would not And to.
657
00:33:14.240 --> 00:33:17.799
Be clear, the product is still available for free on GitHub.
658
00:33:17.839 --> 00:33:21.519
If you're going to go down that pipeline, right, and
659
00:33:21.559 --> 00:33:23.759
if you're a contributor to it's so much the better. Like,
660
00:33:23.799 --> 00:33:25.920
I just think there's a I think Rob said the
661
00:33:25.920 --> 00:33:28.559
same thing. There's a distinct difference between the people who
662
00:33:28.599 --> 00:33:31.960
participate in the open source process are contributors and utilize
663
00:33:31.960 --> 00:33:34.839
the code and folks who just treat it as a
664
00:33:34.839 --> 00:33:36.759
product and grab it off of new get and use it.
665
00:33:36.880 --> 00:33:39.799
Yeah. Yeah, I mean I don't think that's changed. Yeah,
666
00:33:39.920 --> 00:33:41.960
I mean there's certainly people that were upset that it
667
00:33:42.000 --> 00:33:44.640
was a more restrictive license that wind up doing a
668
00:33:44.720 --> 00:33:48.440
dual license with like a copy left combined with a
669
00:33:48.480 --> 00:33:51.119
commercial license. Right, So if you're in a situation where
670
00:33:51.200 --> 00:33:54.640
copy left is filed like a it's reciprocal public, which
671
00:33:54.680 --> 00:34:00.519
is a more patent restrictive version of the GPL, And
672
00:34:00.519 --> 00:34:03.319
then just the idea is that, Okay, there are people
673
00:34:03.359 --> 00:34:05.200
in that situation to do that. But I also included
674
00:34:05.200 --> 00:34:08.159
a free tier as well, just so that I don't
675
00:34:08.159 --> 00:34:11.840
want to charge small companies or individuals that sort of thing. Yeah,
676
00:34:12.840 --> 00:34:14.760
I wan, I'm making it. I talked to a couple
677
00:34:14.800 --> 00:34:18.039
of companies that said that having a I think of
678
00:34:18.239 --> 00:34:20.599
most most companies I see, do you like a million
679
00:34:20.639 --> 00:34:23.840
dollar free tier? If your company makes more than a
680
00:34:23.880 --> 00:34:25.679
million reverend, then you need to pay for a license.
681
00:34:25.719 --> 00:34:27.639
But I talked to several that said that was a
682
00:34:27.639 --> 00:34:31.239
bit low these days. Is that if you look at
683
00:34:31.239 --> 00:34:37.800
the kind of modern software, especially in the US, software salaries,
684
00:34:37.840 --> 00:34:40.360
software developer salaries, a million doses doesn't get you that
685
00:34:40.480 --> 00:34:42.320
much with software salaries the way.
686
00:34:43.079 --> 00:34:45.320
So I butt that, sure, that's still like three or
687
00:34:45.360 --> 00:34:48.239
four people in a you know, half dozen people in
688
00:34:48.320 --> 00:34:48.639
a team.
689
00:34:49.000 --> 00:34:51.800
Yeah, So they're like, you know, you're not going to
690
00:34:51.840 --> 00:34:53.960
convert those basically, it's like, so you want to give
691
00:34:54.039 --> 00:34:55.599
room to grow, And so I just kind of put
692
00:34:55.599 --> 00:34:57.480
my finger to the win and said, how about five million?
693
00:34:57.840 --> 00:35:01.239
And that's that's the little number that if you if
694
00:35:01.239 --> 00:35:03.440
your company makes more than five million, then you're probably
695
00:35:03.440 --> 00:35:06.039
buying licenses of other things as well. Yeah, so it
696
00:35:06.039 --> 00:35:08.519
wouldn't be a difficult conversation to then pay for this.
697
00:35:08.800 --> 00:35:10.400
And how much did you say your license was?
698
00:35:10.960 --> 00:35:12.440
Uh? For that loads here?
699
00:35:12.519 --> 00:35:15.760
So that wasn't a whole other like, uh, what's the
700
00:35:15.840 --> 00:35:16.440
right price?
701
00:35:16.519 --> 00:35:18.639
Saying? I was doing is like how to how to
702
00:35:18.760 --> 00:35:21.679
license this? So I wound up going for a team
703
00:35:21.719 --> 00:35:25.480
based license of unlimited production applications of like if you
704
00:35:25.480 --> 00:35:28.480
have a team of won Atten developers, it's five hundred
705
00:35:28.480 --> 00:35:30.960
dollars a year for the entire team, and you can
706
00:35:31.039 --> 00:35:32.800
have as many And a lot of that was just
707
00:35:32.960 --> 00:35:35.239
I don't want personally to deal with a bunch of
708
00:35:35.280 --> 00:35:38.159
administrative overhead. I didn't like dealing with it as as
709
00:35:38.199 --> 00:35:41.639
a consultant. So instead of like per user, per developer,
710
00:35:41.639 --> 00:35:45.480
it's just per team and as many applications as you want,
711
00:35:45.519 --> 00:35:48.880
because anything else beyond that requires work, and I don't
712
00:35:48.960 --> 00:35:51.000
want to deal with that, and then I don't want
713
00:35:51.039 --> 00:35:53.559
up the customers to deal with it either. M Yeah,
714
00:35:53.639 --> 00:35:55.280
So that's got to figure, like five hundred a year
715
00:35:55.320 --> 00:35:56.880
for a five million company.
716
00:35:56.920 --> 00:35:57.760
Is pretty fair?
717
00:35:58.000 --> 00:35:59.880
Should be? Should be pretty Yeah.
718
00:36:00.079 --> 00:36:01.960
Yeah, that's an easy, easy decision.
719
00:36:02.039 --> 00:36:04.800
Yeah, And it's one transaction a year, so from the
720
00:36:04.840 --> 00:36:08.559
procurement process is pretty simple. It's renewable year over years.
721
00:36:08.599 --> 00:36:10.920
So once it's once you get through that hurdle, the
722
00:36:10.920 --> 00:36:12.519
finance people just paid each year.
723
00:36:12.880 --> 00:36:15.960
Yeah, that was the idea is make it you don't
724
00:36:15.960 --> 00:36:18.559
make it so low that it's not worth their time
725
00:36:18.599 --> 00:36:20.840
to go through the process. A great point I learned
726
00:36:20.880 --> 00:36:23.280
that early on when I was starting on software development.
727
00:36:23.280 --> 00:36:24.960
I was part of a product company that tried to
728
00:36:25.000 --> 00:36:28.599
like severely undercut the competition, but all that projected to
729
00:36:28.679 --> 00:36:31.559
the to their customers was that's not it has. If
730
00:36:31.599 --> 00:36:33.199
you're ten percent of the price, then you're ten percent
731
00:36:33.239 --> 00:36:35.760
of the value, right, So I can't make it super cheap.
732
00:36:35.800 --> 00:36:38.760
I got to make it to where it's still project
733
00:36:38.840 --> 00:36:40.760
some value to the customer. It's like worth their time
734
00:36:40.800 --> 00:36:42.039
to actually go through the process.
735
00:36:42.280 --> 00:36:46.360
Yeah, yeah, you're right. And again because they because the
736
00:36:46.440 --> 00:36:49.679
process costs something, you have to have a large enough
737
00:36:49.760 --> 00:36:51.239
number there just be take it seriously.
738
00:36:51.440 --> 00:36:54.360
Yeah, exactly. So there's plenty of folks that is because
739
00:36:54.599 --> 00:36:57.119
as an individual software developer, you see five hundred dollars
740
00:36:57.159 --> 00:37:00.280
and you think, gosh, that's a that's a switch too,
741
00:37:00.599 --> 00:37:02.639
you know, that's like that seems like a lot of
742
00:37:02.639 --> 00:37:04.719
money for individual, but for company.
743
00:37:04.400 --> 00:37:08.320
There's a couple of bottle of whiskeys i'd like to own, exactly.
744
00:37:09.360 --> 00:37:12.280
Although the bourbon prices are finally stabilizing that like, that's
745
00:37:12.719 --> 00:37:16.000
that's a lot of bottle. Yeah, but yeah, it was
746
00:37:16.039 --> 00:37:19.239
one of those just I wouldn't know as well what
747
00:37:19.320 --> 00:37:21.039
the price should be until I just tried it and
748
00:37:21.039 --> 00:37:23.840
put it out there, hope that I kind of get
749
00:37:23.840 --> 00:37:26.199
it right without having to do a bunch of adjustments
750
00:37:26.239 --> 00:37:26.639
later on.
751
00:37:26.840 --> 00:37:29.599
I just just poked through Reddit and I see people
752
00:37:29.840 --> 00:37:33.119
arguing about the price on both sides of it without
753
00:37:33.159 --> 00:37:36.079
your involvement at all, which is delightful to me because
754
00:37:36.280 --> 00:37:38.599
that means you're probably in the ballpark when they can,
755
00:37:39.039 --> 00:37:39.400
you know.
756
00:37:39.599 --> 00:37:42.519
Out a universal and complaints on both sides you're right about.
757
00:37:42.599 --> 00:37:44.400
Yeah, you're dead. Everybody should be mad at you. Then
758
00:37:44.440 --> 00:37:45.159
you're doing it right.
759
00:37:45.800 --> 00:37:48.920
I figured with the bumping up to like a five
760
00:37:48.960 --> 00:37:52.679
million ceiling on revenue, that that's a difficult position to
761
00:37:52.800 --> 00:37:55.719
argue against, like a yes, if you can't afford that,
762
00:37:55.760 --> 00:37:57.960
which there are some I mean like nonprofits, for example,
763
00:37:58.760 --> 00:38:01.440
may have a five million dollars annual budget, but that
764
00:38:01.480 --> 00:38:05.320
does not mean they'll have a clovenue. Yeah, okay, well
765
00:38:05.360 --> 00:38:07.400
we can do like discounts and things like that for
766
00:38:07.559 --> 00:38:10.199
you know, nonprofit that's sort of there are other ways
767
00:38:10.199 --> 00:38:13.280
to handle that, but it just starts to become more complicated.
768
00:38:13.280 --> 00:38:16.119
I can't design one model that works for everybody. It's
769
00:38:16.119 --> 00:38:16.760
just impossible.
770
00:38:16.840 --> 00:38:19.199
No, no, And it's easier to make something, you know,
771
00:38:19.239 --> 00:38:21.440
go for the eighty percent, deal with the exceptions.
772
00:38:21.639 --> 00:38:24.360
Yeah, exactly. But that's all that stuff I had to
773
00:38:24.400 --> 00:38:26.440
learn over the last felve months because I just never
774
00:38:26.519 --> 00:38:28.800
had to deal with any of that stuff as a consultant.
775
00:38:28.840 --> 00:38:31.400
It's just that's been the kind of the fun part
776
00:38:31.480 --> 00:38:34.559
is new challenge of doing all this when I never
777
00:38:34.599 --> 00:38:35.960
had to do any of this kind of stuff before.
778
00:38:36.000 --> 00:38:40.519
It was always just pricing the material rates I was
779
00:38:40.519 --> 00:38:41.039
doing before.
780
00:38:41.480 --> 00:38:43.719
Yeah, it's not simple. It's a product now, and so
781
00:38:43.920 --> 00:38:46.119
you've got to deal with the transaction models that people
782
00:38:46.159 --> 00:38:48.159
need to use. You've got to deal with all the
783
00:38:48.280 --> 00:38:51.679
rates and so forth. Man, I don't envy your friend,
784
00:38:51.719 --> 00:38:53.800
but it's I see, we've had some fun with it.
785
00:38:53.840 --> 00:38:55.480
At least it's worked out too.
786
00:38:55.679 --> 00:38:58.599
Yeah. I even had my first CVE this year too.
787
00:38:58.840 --> 00:38:59.440
That was fun.
788
00:38:59.599 --> 00:39:02.679
Oh right. Of course, we're in the time with all
789
00:39:02.760 --> 00:39:06.800
the smart ms running around saying finding vulnerability. So, yes,
790
00:39:07.800 --> 00:39:10.079
this is one of your customers sending you the CV.
791
00:39:10.519 --> 00:39:12.960
No, no, no, this was a just as because they're
792
00:39:12.960 --> 00:39:15.440
always they're usually anonymous as that someone posted a get
793
00:39:15.480 --> 00:39:20.199
up security advisory back in March, and before I went
794
00:39:20.199 --> 00:39:22.159
through this, I would have just completely blown it off
795
00:39:22.199 --> 00:39:25.159
because not my customer, not my problem, right right, But
796
00:39:25.239 --> 00:39:29.960
now I'm actually obligated to investigate these things, like it's
797
00:39:30.000 --> 00:39:32.119
in like I agree with a lot of these enterprise
798
00:39:32.159 --> 00:39:35.320
customers that you know, I've slas for responding to ferris
799
00:39:35.320 --> 00:39:35.920
At incidents.
800
00:39:36.360 --> 00:39:38.039
Yeah, so that was a.
801
00:39:37.960 --> 00:39:39.679
Fun one, you know. I went to the whole like
802
00:39:39.760 --> 00:39:43.719
five stages of grief, of denial, anger sort of stuff.
803
00:39:43.760 --> 00:39:47.000
Dude, does a webpage on NIST with your name on it?
804
00:39:47.280 --> 00:39:48.599
Yes?
805
00:39:49.440 --> 00:39:50.360
Was it easy to fix?
806
00:39:51.559 --> 00:39:54.679
Eventually? It was easy to fix. My first fix was
807
00:39:54.679 --> 00:39:56.440
wrong and so I had to like do another one
808
00:39:56.480 --> 00:39:59.320
that was like a full complete fix, and even the
809
00:39:59.360 --> 00:40:01.800
first one, I was like this, this is bogus, this
810
00:40:01.840 --> 00:40:06.920
is ridiculous. The security of the vulnerability was an infinite
811
00:40:06.960 --> 00:40:12.599
recursion vulnerability of like if you map something hierarchically, then
812
00:40:12.719 --> 00:40:17.719
I had nothing protecting an infinite recursion. But the argument
813
00:40:17.760 --> 00:40:21.159
against it was like, well that's autom mappers never directly
814
00:40:21.199 --> 00:40:23.880
exposed to the Internet. It's always going through something. So
815
00:40:23.920 --> 00:40:26.760
I posted Jason up and then Jason's mapped to your
816
00:40:26.800 --> 00:40:30.320
object model, and then that's mapped whatever. So I was like, well,
817
00:40:30.679 --> 00:40:36.440
Jason dot net has recursion in there, but that only
818
00:40:37.840 --> 00:40:39.480
this is one thing that the ALMS had helped me with.
819
00:40:39.519 --> 00:40:41.440
It's like, tell me all the different other attack factors
820
00:40:41.440 --> 00:40:44.199
system come through. And you think of any website that
821
00:40:44.239 --> 00:40:48.039
has any kind of higerical model building. You know, comments, right,
822
00:40:48.079 --> 00:40:50.159
comment has a parent comment, comment has a pair of comment.
823
00:40:50.599 --> 00:40:53.039
That's a good example of like someone can just build
824
00:40:53.079 --> 00:40:56.000
something that builds infinite or at least a very high
825
00:40:56.119 --> 00:40:59.119
number of depth that never goes through the Jason serializer
826
00:40:59.159 --> 00:41:02.920
for the whole model for the post, but then forget
827
00:41:04.000 --> 00:41:06.519
where it's loading on all up. Like then that could cross.
828
00:41:06.280 --> 00:41:09.480
The server with a it's like a denial service kind.
829
00:41:09.400 --> 00:41:14.599
Of denial exhausting memories. Oh, I have built those websites
830
00:41:14.639 --> 00:41:17.119
with employee as a manager who as a manager as
831
00:41:17.119 --> 00:41:20.679
a manager. If that's exposed like okay, okay, well this
832
00:41:20.800 --> 00:41:23.719
can just completely take down the website. So that was
833
00:41:23.760 --> 00:41:26.719
also my first winning experience of what does all this,
834
00:41:27.920 --> 00:41:30.960
all these security advisory measures mean? What am I supposed
835
00:41:31.000 --> 00:41:33.719
to do with this? A lot of people thought that
836
00:41:33.760 --> 00:41:37.880
I was I got the comment that people thought that
837
00:41:37.920 --> 00:41:40.639
I invented the security advisory to force upgrades. Because I
838
00:41:40.679 --> 00:41:43.000
had to go back and say which versions were affected.
839
00:41:43.440 --> 00:41:46.039
It was basically since I made the library, this thing
840
00:41:46.119 --> 00:41:49.639
has been in there, right. Well, I could lie and
841
00:41:49.719 --> 00:41:54.159
say nothing's affected, but that's not truthful. So like I
842
00:41:54.199 --> 00:41:57.440
do need to tell people that this is vulnerable, but
843
00:41:57.480 --> 00:41:59.920
then wind up making a whole vulnerability pages like well,
844
00:42:00.079 --> 00:42:01.760
if you have an if you're on an old version
845
00:42:02.320 --> 00:42:04.519
and you can't upgrade, or you can't you know, can't
846
00:42:04.559 --> 00:42:07.880
migrate to the latest, here's a local fix for your
847
00:42:08.360 --> 00:42:09.920
or here's how to detect it. Here's how to fix
848
00:42:09.960 --> 00:42:13.920
it in your application itself. But I will fix it
849
00:42:13.960 --> 00:42:16.360
for real Zi's and the you know, the actual commercial
850
00:42:16.440 --> 00:42:19.320
versions that I support now. But that was a whole
851
00:42:19.840 --> 00:42:21.679
I never had to deal with anything like that before.
852
00:42:21.719 --> 00:42:24.039
And it was like a, here's the page that says
853
00:42:24.079 --> 00:42:26.800
automappers last free version has a security flaw. It's like, no,
854
00:42:26.880 --> 00:42:30.360
it doesn't. Every version had the security flaw.
855
00:42:30.480 --> 00:42:34.199
So yeah, since the beginning of time two kidding.
856
00:42:34.000 --> 00:42:36.239
So so let me try to just put this in
857
00:42:36.440 --> 00:42:39.000
wrap it up in a neat summary here. A couple
858
00:42:39.039 --> 00:42:41.039
of weeks ago and we talked to Rod Mentioning about
859
00:42:41.039 --> 00:42:45.159
the open source maintenance fee that is different than the
860
00:42:45.199 --> 00:42:48.239
license that you're selling You're what you're selling, I think,
861
00:42:48.440 --> 00:42:53.280
is a license that includes support, right, And yeah, the
862
00:42:53.360 --> 00:42:57.559
maintenance fee is much lower, and it doesn't obligate you
863
00:42:57.880 --> 00:43:00.920
in any way to do any kind of or anything.
864
00:43:01.639 --> 00:43:04.960
It just means that you can now afford to hire
865
00:43:05.000 --> 00:43:08.800
the people that have been working for free, essentially in
866
00:43:08.840 --> 00:43:11.559
a perfect world. So yeah, I just wanted to draw
867
00:43:11.599 --> 00:43:14.199
that difference. I was thinking, Man, you should have just
868
00:43:14.280 --> 00:43:16.599
used OSMF. You wouldn't have all these headaches. But your
869
00:43:16.639 --> 00:43:20.320
headaches come from those you know, support issues and and
870
00:43:20.440 --> 00:43:21.280
other things like that.
871
00:43:21.480 --> 00:43:24.599
Yeah. I was also one thing that I didn't want
872
00:43:24.639 --> 00:43:26.119
to do when I was going to this commercial route.
873
00:43:26.159 --> 00:43:30.159
I never wanted to charge an individual developer or an
874
00:43:30.239 --> 00:43:32.519
individual person, right. I didn't want anyone to think it
875
00:43:32.519 --> 00:43:34.280
was coming out of their pocket. It's like, no, this
876
00:43:34.320 --> 00:43:36.440
is coming out of the company's pocket because they've invested
877
00:43:36.480 --> 00:43:39.000
in this, invested in your decisions and in the code
878
00:43:39.039 --> 00:43:41.559
base as a whole. So that's another reason I was
879
00:43:41.599 --> 00:43:43.639
wary of any of those kind of models. Is I
880
00:43:43.639 --> 00:43:45.599
did well, I knew the sponsor model just doesn't work.
881
00:43:45.639 --> 00:43:48.519
It have sponsors, it is just not feasible, at least
882
00:43:48.519 --> 00:43:51.679
in the Microsoft space for sustainable open source. So I
883
00:43:51.760 --> 00:43:54.920
was like, well, I don't want any interest, individual person
884
00:43:55.079 --> 00:43:57.400
to give me money. I want a company to give
885
00:43:57.440 --> 00:43:58.639
them money because that's.
886
00:43:58.679 --> 00:44:03.159
Well, yeah, with SMF, it is the company that pays,
887
00:44:03.760 --> 00:44:07.719
and they do pay through GitHub sponsorship. So I'm wondering, Oh,
888
00:44:07.760 --> 00:44:10.239
that's I'm wondering what you think about that.
889
00:44:10.239 --> 00:44:12.440
That's what I want would want to target is the
890
00:44:12.480 --> 00:44:15.360
companies because that's you know, that's who's making money off
891
00:44:15.400 --> 00:44:17.880
of the open source right, They're using it for the
892
00:44:17.920 --> 00:44:20.199
software that's running their enterprise. So that's what I was
893
00:44:20.239 --> 00:44:22.840
really focusing on. But like, yeah, like you all said
894
00:44:22.840 --> 00:44:24.920
at the beginning, is that os MF was not was
895
00:44:25.000 --> 00:44:27.679
very early on and I looked at it, but it
896
00:44:27.760 --> 00:44:30.760
was just not quite especially the amount of anxiety I
897
00:44:30.800 --> 00:44:33.039
was feeling of what to do. It's like, I need
898
00:44:33.079 --> 00:44:35.400
to screw up on my own decisions and my own model,
899
00:44:35.519 --> 00:44:38.039
and I can only have one person to blame but myself.
900
00:44:38.760 --> 00:44:40.880
So I just I was super wary of like trying
901
00:44:40.880 --> 00:44:43.039
anyone else's model out regard.
902
00:44:43.280 --> 00:44:45.239
Okay, but what I found.
903
00:44:45.519 --> 00:44:48.119
When I went through my gidhub sponsors at the end was,
904
00:44:50.119 --> 00:44:53.800
I think in maybe one or two weeks of business
905
00:44:53.960 --> 00:44:56.840
I equalled the total amount of sponsors I got over
906
00:44:56.880 --> 00:44:59.280
five years with gid up sponsors. So that was just
907
00:44:59.280 --> 00:45:02.400
a clear sing that's get hub sponsors. Even as prominently
908
00:45:02.440 --> 00:45:04.639
as I can make it, it's just not close to
909
00:45:04.719 --> 00:45:10.519
the same level of sustainability as just licensing would be.
910
00:45:10.960 --> 00:45:12.679
What do you mean by that, right? What doesn't it
911
00:45:12.719 --> 00:45:13.119
do well?
912
00:45:13.960 --> 00:45:15.960
So I think the first thing that I saw was
913
00:45:15.960 --> 00:45:20.719
that there's not really any way to not really waiting
914
00:45:20.760 --> 00:45:24.000
to effectively enforce it outside of what you're looking at
915
00:45:24.039 --> 00:45:26.400
the OSMF. That's what I was looking at, because that
916
00:45:26.480 --> 00:45:29.800
wasn't a thing. So just asking for money, I would
917
00:45:29.800 --> 00:45:32.519
get a lot of individual developers money. I don't want
918
00:45:32.599 --> 00:45:36.000
your your pocket money that you would spend at Starbucks,
919
00:45:36.159 --> 00:45:37.719
like that was the lowest tiers, like five bucks a
920
00:45:37.760 --> 00:45:40.800
month or something. Okay, eventually I don't want them. I
921
00:45:40.800 --> 00:45:43.360
don't want their money. And I would get some companies
922
00:45:43.400 --> 00:45:46.800
that would that would sponsor. We'd have like internal programs whatever.
923
00:45:47.840 --> 00:45:50.320
So hopefully that can get easier over time.
924
00:45:50.440 --> 00:45:52.960
Well, yeah, you make the point that, and I've seen
925
00:45:52.960 --> 00:45:54.719
this over and over again. Yeah. The only place you
926
00:45:54.760 --> 00:45:57.159
find get hub sponsors that are companies is when a
927
00:45:57.199 --> 00:46:01.519
company has built an initiative them sell to work through
928
00:46:01.599 --> 00:46:04.039
that sponsor process because it's a pain in the butt.
929
00:46:04.880 --> 00:46:06.760
And that's what we wind up doing as well. So
930
00:46:06.800 --> 00:46:09.639
our because we use open source as well, we we
931
00:46:09.639 --> 00:46:11.599
we get back then through the open source or the
932
00:46:11.639 --> 00:46:14.280
getub sponsors as well to the libraries we use.
933
00:46:14.840 --> 00:46:19.760
How MF addresses this compliance thing is by making it
934
00:46:19.800 --> 00:46:22.800
part of the EULA and you know, telling the companies
935
00:46:22.800 --> 00:46:25.760
to review the EULA and then they will they want
936
00:46:25.800 --> 00:46:28.320
to be compliant so that they do that. But if
937
00:46:28.360 --> 00:46:32.400
you have one company that has ten products that use
938
00:46:32.719 --> 00:46:35.440
the tool, you don't have to pay ten times. It's
939
00:46:35.519 --> 00:46:39.760
just once once per company in the EULA through GitHub sponsors.
940
00:46:39.880 --> 00:46:41.960
I heard. I know people too are sort of looking
941
00:46:42.000 --> 00:46:44.199
at Newgate to help out with this because you know,
942
00:46:44.239 --> 00:46:47.519
like NPM also has the ability to do that. But
943
00:46:47.559 --> 00:46:49.639
I've talked a few people like Handsel One for example,
944
00:46:49.719 --> 00:46:52.239
is like NuGet can't be a bank. That's just like that,
945
00:46:52.280 --> 00:46:54.519
you're asking Nugate to be a bank. Yeah, right, And
946
00:46:54.559 --> 00:46:57.320
that's hard enough for get to do. Via the sponsorship program,
947
00:46:57.320 --> 00:47:00.239
I could have put in my tax id all that
948
00:47:00.280 --> 00:47:03.480
stuff to make sure it all gets gets reported correctly,
949
00:47:03.559 --> 00:47:07.519
Like that's that's a hard problem to worry about worldwide. Yeah,
950
00:47:07.760 --> 00:47:10.119
sort of compliant from that sort of thing. And that's
951
00:47:12.320 --> 00:47:15.679
for OSMF. I think they do go through get up sponsors.
952
00:47:15.679 --> 00:47:19.320
I can't remember that just like eliminates one really hard
953
00:47:19.320 --> 00:47:21.440
problem for them to solve, is that, right?
954
00:47:21.639 --> 00:47:24.480
Yeah? But also, like I said, it's it's in the
955
00:47:24.519 --> 00:47:26.639
yula that they have to pay if they make over
956
00:47:26.760 --> 00:47:30.920
a certain amount per year, and it's usually not not
957
00:47:31.079 --> 00:47:32.760
even close to what you're talking about.
958
00:47:32.920 --> 00:47:34.559
There was a there was a time before where I
959
00:47:34.599 --> 00:47:39.159
was looking at you know, if enterprises contribute time to
960
00:47:39.239 --> 00:47:42.119
the projects, then that would also kind of count. But
961
00:47:42.159 --> 00:47:44.920
in reality, that's that's like that that's a non starter.
962
00:47:45.079 --> 00:47:50.039
You can't that's just too difficulties will dedicate whatever. The
963
00:47:50.079 --> 00:47:52.480
only way that would happen is if they acquhire, you know,
964
00:47:52.679 --> 00:47:55.639
the people that actually built the software to work on
965
00:47:55.719 --> 00:47:58.760
it at their company, to say world dedicate you know,
966
00:47:59.159 --> 00:48:00.800
a month of time, not even a month, like a
967
00:48:00.880 --> 00:48:03.840
day a month for someone to do open source. That's
968
00:48:03.880 --> 00:48:05.960
just too difficult for a maintainer.
969
00:48:06.039 --> 00:48:07.960
Well, and the silly part is the company who can
970
00:48:08.039 --> 00:48:11.199
afford to have their devs contribute to the project can
971
00:48:11.239 --> 00:48:16.480
also afford to pay. It's so disproportionate what that even represents.
972
00:48:16.760 --> 00:48:18.280
And then what I've seen is that's just that's just
973
00:48:18.320 --> 00:48:20.239
easier for them. They're used to it. The processes are
974
00:48:20.239 --> 00:48:22.840
set up to just yeah, go through that, so like, well,
975
00:48:22.880 --> 00:48:23.360
I'll just.
976
00:48:24.360 --> 00:48:27.840
Well, and the reason for me as an employer, why
977
00:48:27.840 --> 00:48:29.840
would I want my people to do that. It's like,
978
00:48:30.239 --> 00:48:33.000
there's an open source library you're using that is slowing
979
00:48:33.039 --> 00:48:35.800
you down in some way, so go fix it, don't worry,
980
00:48:35.840 --> 00:48:38.639
I can. I'll pay you to do it. Right, But
981
00:48:38.760 --> 00:48:41.039
at the same time, it's like, why would you also contribute?
982
00:48:41.119 --> 00:48:43.480
Like doesn't they go together? Yeah?
983
00:48:44.639 --> 00:48:46.159
I know, problem with that too. I mean that's what
984
00:48:46.199 --> 00:48:49.480
I do with my open source with other projects. Right,
985
00:48:49.559 --> 00:48:51.880
If I have a problem, I just will just submit
986
00:48:51.880 --> 00:48:54.440
a poor request. But that's still very much like it's
987
00:48:54.719 --> 00:48:57.239
pain based on my end. It's nothing that contributed the
988
00:48:57.280 --> 00:48:58.280
maintainer can count on.
989
00:48:58.440 --> 00:49:01.800
Yeah, it's also so exciting option based, right, like that,
990
00:49:01.800 --> 00:49:03.880
that's got to be the rarest case of them all.
991
00:49:04.119 --> 00:49:06.360
Well and get help. We'll show you very clearly how
992
00:49:06.360 --> 00:49:09.119
many contributors you've got like that. It's a few dozen.
993
00:49:09.599 --> 00:49:13.480
Yes, I that was one other thing I hadn't worry about.
994
00:49:13.559 --> 00:49:18.159
Was just such a long tail of contributors. People are
995
00:49:18.400 --> 00:49:20.960
asking like, are you going to give revenue money back
996
00:49:21.000 --> 00:49:23.719
to all the contributors over the year, right, And the
997
00:49:23.760 --> 00:49:25.880
answer is now, that's like impossible.
998
00:49:25.920 --> 00:49:30.239
Yeah, and a very bad practice anyway, Like that's hugely problematic.
999
00:49:30.360 --> 00:49:33.519
Even so, even when I went when I started charging,
1000
00:49:33.559 --> 00:49:35.400
I tried to go back to my GitHub sponsors to
1001
00:49:35.440 --> 00:49:38.119
find the companies that sponsored me so they could have
1002
00:49:38.119 --> 00:49:40.639
given free license. I couldn't even get that information out.
1003
00:49:40.679 --> 00:49:43.800
It's not shared to me be a sponsors, Like, well,
1004
00:49:45.880 --> 00:49:47.679
I did what I can, Like.
1005
00:49:48.119 --> 00:49:50.440
You turned off the GitHub sponsors.
1006
00:49:50.360 --> 00:49:54.199
I did, but I can't even stop the existing sponsorships.
1007
00:49:54.239 --> 00:49:57.719
I can't do that. I'm still getting money and I
1008
00:49:57.719 --> 00:50:00.239
have a big thing like stop giving me money, but
1009
00:50:00.280 --> 00:50:03.480
I cannot stop them from doing that. I've turned off
1010
00:50:03.480 --> 00:50:04.280
my sponsorship.
1011
00:50:04.400 --> 00:50:06.679
But okay, I love it.
1012
00:50:06.400 --> 00:50:13.239
Yeah, yeah, yeah, but it's it's been it's been really fun.
1013
00:50:13.880 --> 00:50:15.639
I don't definitely don't regret. I didn't talk to a
1014
00:50:15.679 --> 00:50:19.360
single person that said they regretted it, regretted the decision.
1015
00:50:19.400 --> 00:50:21.800
There's definitely many that said I wish it did X,
1016
00:50:21.880 --> 00:50:24.360
Y and Z differently, But I have not met a
1017
00:50:24.400 --> 00:50:27.760
single open source to commercial person that said I regret
1018
00:50:27.800 --> 00:50:31.480
that decision. It's all of been right, regret it, Like, well,
1019
00:50:31.679 --> 00:50:34.480
I guess I have to try. Yeah, well, one thing
1020
00:50:34.480 --> 00:50:35.039
I wish I did.
1021
00:50:35.079 --> 00:50:37.840
Thought that it isn't work, not that it is in heartache,
1022
00:50:38.599 --> 00:50:40.199
but ultimately it's worthwhile.
1023
00:50:40.519 --> 00:50:43.280
So Oudi de Han from particular the in service bus.
1024
00:50:44.880 --> 00:50:47.039
He told me in a conversation, he said, just let
1025
00:50:47.039 --> 00:50:50.880
you know, Jimmy, you're about to become an enterprise software company. Like,
1026
00:50:50.960 --> 00:50:52.840
well not, I'm just going to put a link up
1027
00:50:52.920 --> 00:50:54.800
and that's that, Like people just buy it from there.
1028
00:50:54.840 --> 00:50:57.039
It's like, no, but that's not how it's going to go.
1029
00:50:57.559 --> 00:50:59.639
Yeah, that's not what's going to happen is.
1030
00:51:00.960 --> 00:51:02.760
Dealing with all the procurement and all that stuff. Like
1031
00:51:02.800 --> 00:51:05.480
that's definitely a thing that is my life now.
1032
00:51:06.159 --> 00:51:09.559
Yeah, obviously worthwhile at least so far. Maybe we'll check
1033
00:51:09.599 --> 00:51:11.519
in in a year and see how you're feeling.
1034
00:51:11.199 --> 00:51:16.880
Then, yeah, we'll see. It's been fun so far for sure, though.
1035
00:51:16.960 --> 00:51:17.920
It's awesome. Dude.
1036
00:51:17.960 --> 00:51:21.840
So you have any other open source projects that you're considering.
1037
00:51:21.599 --> 00:51:24.280
Doing this with the pipeline, Oh no, no, no, just
1038
00:51:24.400 --> 00:51:28.079
to these are the two these are the two that
1039
00:51:28.119 --> 00:51:31.159
I saw that had the best potential because they're used
1040
00:51:31.199 --> 00:51:35.000
in production systems, like they get shipped with your production application.
1041
00:51:35.480 --> 00:51:38.360
I have other ones I have value exactly lasting like
1042
00:51:38.440 --> 00:51:41.239
sticky sticky sort of value, but I'm other ones that
1043
00:51:41.480 --> 00:51:44.199
are either I don't want to maintain anymore. Like one
1044
00:51:44.199 --> 00:51:46.760
example was I for the longest time I was the
1045
00:51:46.800 --> 00:51:51.559
official Mango dB open pelemetry provider and done that just
1046
00:51:51.599 --> 00:51:54.559
because it was it was getting linked in with Aspire
1047
00:51:54.760 --> 00:51:57.239
and all that stuff. But that's just because of a
1048
00:51:57.320 --> 00:52:00.280
client and I needed it. So I built it it right.
1049
00:52:00.360 --> 00:52:05.440
I built it it it, I never edited it. I
1050
00:52:05.480 --> 00:52:07.639
want to reduce the number of open source projects that
1051
00:52:07.719 --> 00:52:11.079
I have to maintain because ideally they're just like these
1052
00:52:11.079 --> 00:52:13.679
are problems that have been like solved by other built
1053
00:52:13.679 --> 00:52:16.360
in things. So the Mongo one, for example, is now
1054
00:52:16.480 --> 00:52:20.159
built into the Mongo library as it should be, so
1055
00:52:20.199 --> 00:52:22.719
I get to delete the library. It's it's fantastic cool.
1056
00:52:23.119 --> 00:52:25.960
So no, I don't. I don't see anything else that
1057
00:52:26.000 --> 00:52:27.880
has that potential. But I definitely looked at the time
1058
00:52:28.000 --> 00:52:29.239
like Okay, if I'm going to do this, I need
1059
00:52:29.239 --> 00:52:32.679
to do it now. I can't just piecemeal add things
1060
00:52:32.679 --> 00:52:35.440
on later on. That's again make people mad once not
1061
00:52:35.679 --> 00:52:37.679
you know, several times over several years.
1062
00:52:37.840 --> 00:52:39.920
And is there a way that our listeners can get
1063
00:52:39.920 --> 00:52:41.639
in touch with you if they have questions about, you know,
1064
00:52:41.760 --> 00:52:44.239
or want to talk to you about your experience or
1065
00:52:44.679 --> 00:52:46.679
maybe a blog or your discord or something.
1066
00:52:46.840 --> 00:52:49.480
Oh yeah, absolutely, I mean we'll we'll leave all the
1067
00:52:49.519 --> 00:52:54.559
links after this, of course. But you know, I even
1068
00:52:54.639 --> 00:52:57.159
had to have a contact me form that I didn't
1069
00:52:57.199 --> 00:53:00.000
have before. If you're interested in a quote or sale
1070
00:53:00.159 --> 00:53:00.800
or whatever, then.
1071
00:53:01.280 --> 00:53:05.880
Maybe right, yeah, I know. Oh no, oot, he's right,
1072
00:53:07.119 --> 00:53:07.960
that's a pretty good bet.
1073
00:53:08.199 --> 00:53:08.400
Yeah.
1074
00:53:08.519 --> 00:53:10.559
Probably, I wouldn't bet against no.
1075
00:53:13.039 --> 00:53:15.719
Well, okay, well what's next for you? What are you doing?
1076
00:53:15.760 --> 00:53:17.719
What's on your inbox? On your to do list?
1077
00:53:17.920 --> 00:53:20.639
Oh gosh, So the next big thing the last year
1078
00:53:20.679 --> 00:53:23.079
has just been learning how to product company because I'd
1079
00:53:23.119 --> 00:53:28.440
never done that before. I have like over ten years
1080
00:53:28.840 --> 00:53:32.519
of issues that I just closed, won't fix wow, that
1081
00:53:33.360 --> 00:53:35.079
I'll be going back through and like actually building the
1082
00:53:35.159 --> 00:53:38.320
roadmap for the products because for the longest time it
1083
00:53:38.360 --> 00:53:43.440
was just strictly reactionary about what did my immediate customer need?
1084
00:53:43.519 --> 00:53:46.440
And I'll build into it right now that I've kind
1085
00:53:46.440 --> 00:53:49.559
of got a handle on the business side of things.
1086
00:53:49.599 --> 00:53:52.199
It's time to go back and sort of what have
1087
00:53:52.280 --> 00:53:54.239
been people I've been asking for that I've just said
1088
00:53:54.280 --> 00:53:56.719
no to because not because it wasn't a good idea,
1089
00:53:56.880 --> 00:53:58.159
just I didn't feel like it.
1090
00:53:58.239 --> 00:53:59.960
I didn't have the time having the time.
1091
00:54:01.639 --> 00:54:03.400
So that's that's the next kind of exciting thing is
1092
00:54:03.400 --> 00:54:06.440
what are the what are the different things that people
1093
00:54:06.440 --> 00:54:08.280
have been asking for over the years, and what do
1094
00:54:08.360 --> 00:54:11.960
people need in the future, whether it's MCP service or
1095
00:54:12.239 --> 00:54:16.239
AOT friendly those are all things I want to get back.
1096
00:54:16.320 --> 00:54:19.519
I got back into that I had just neglected so
1097
00:54:19.639 --> 00:54:21.480
long over the This is great.
1098
00:54:21.519 --> 00:54:24.159
So this is benefiting the product for people who don't
1099
00:54:24.159 --> 00:54:27.519
even have a subscription. So it's good news all around,
1100
00:54:27.800 --> 00:54:32.119
I hope. So yeah, yeah, yeah, exactly, Jimmy, It's been
1101
00:54:32.159 --> 00:54:34.360
a delight talking to you, as it always is, whether
1102
00:54:34.400 --> 00:54:36.280
it's in person or at a conference or at a
1103
00:54:36.280 --> 00:54:38.760
bar having a beer, it's always always good to talk.
1104
00:54:38.840 --> 00:54:41.360
Yeah, it's great to be on all right, and we'll talk.
1105
00:54:41.199 --> 00:54:58.880
To you next time on dot net rocks.
1106
00:55:04.519 --> 00:55:07.239
Dot net Rocks is brought to you by Franklin's Net
1107
00:55:07.360 --> 00:55:11.320
and produced by Pop Studios. A full service audio, video
1108
00:55:11.360 --> 00:55:15.519
and post production facility located physically in New London, Connecticut,
1109
00:55:15.679 --> 00:55:20.519
and of course in the cloud online at PWOP dot com.
1110
00:55:20.679 --> 00:55:22.840
Visit our website at d O T N E t
1111
00:55:23.039 --> 00:55:27.079
R O c k S dot com for RSS feeds, downloads,
1112
00:55:27.239 --> 00:55:30.920
mobile apps, comments, and access to the full archives going
1113
00:55:30.960 --> 00:55:33.559
back to show number one, recorded.
1114
00:55:33.079 --> 00:55:35.840
In September two thousand and two. And make sure you
1115
00:55:35.920 --> 00:55:39.039
check out our sponsors. They keep us in business. Now
1116
00:55:39.079 --> 00:55:40.199
go write some code.
1117
00:55:40.519 --> 00:55:41.320
See you next time.
1118
00:55:42.239 --> 00:55:43.679
You got Javan
1119
00:55:46.079 --> 00:55:46.119
And