WEBVTT

1
00:00:01.080 --> 00:00:04.799
<v Speaker 1>How'd you like to listen to dot NetRocks with no ads? Easy?

2
00:00:05.360 --> 00:00:08.560
<v Speaker 1>Become a patron for just five dollars a month. You

3
00:00:08.599 --> 00:00:11.320
<v Speaker 1>get access to a private RSS feed where all the

4
00:00:11.359 --> 00:00:14.599
<v Speaker 1>shows have no ads. Twenty dollars a month, we'll get

5
00:00:14.599 --> 00:00:18.440
<v Speaker 1>you that and a special dot NetRocks patron mug. Sign

6
00:00:18.519 --> 00:00:22.920
<v Speaker 1>up now at Patreon dot dot NetRocks dot com. Hi,

7
00:00:23.000 --> 00:00:24.679
<v Speaker 1>this is Carl Franklin.

8
00:00:24.239 --> 00:00:25.480
<v Speaker 2>And this is Richard Campbell.

9
00:00:25.839 --> 00:00:30.000
<v Speaker 1>We've got two special shows coming up soon, episode nineteen

10
00:00:30.120 --> 00:00:32.039
<v Speaker 1>ninety nine and two thousand.

11
00:00:32.399 --> 00:00:35.079
<v Speaker 2>For episode nineteen ninety nine, we're collecting people's y two

12
00:00:35.159 --> 00:00:37.560
<v Speaker 2>k stories what did you do to help the Y

13
00:00:37.600 --> 00:00:39.719
<v Speaker 2>two k event not actually happen?

14
00:00:40.240 --> 00:00:42.960
<v Speaker 1>And for episode two thousand, we're going to be sharing

15
00:00:43.000 --> 00:00:45.479
<v Speaker 1>stories about how dot net shaped your career.

16
00:00:46.000 --> 00:00:48.719
<v Speaker 2>We have a special page at dot netroocks dot com

17
00:00:48.719 --> 00:00:52.159
<v Speaker 2>slash voxpop where you can record messages for us that

18
00:00:52.200 --> 00:00:54.000
<v Speaker 2>we can play on these special episodes.

19
00:00:54.439 --> 00:00:56.479
<v Speaker 1>So tell us what you did for Y two k

20
00:00:56.759 --> 00:00:59.039
<v Speaker 1>and what dot net means to you, and of course

21
00:00:59.079 --> 00:01:01.200
<v Speaker 1>how long you've been listening to dot net rocks.

22
00:01:01.640 --> 00:01:04.439
<v Speaker 2>So go to dot netroocks dot com slash vox pop

23
00:01:04.560 --> 00:01:06.480
<v Speaker 2>now and leave us a message before the thought of

24
00:01:06.560 --> 00:01:09.200
<v Speaker 2>operates like whiskey left in a glass overnight.

25
00:01:09.159 --> 00:01:24.400
<v Speaker 1>Do it? Hey, welcome back to dot net Rocks. I'm

26
00:01:24.480 --> 00:01:27.319
<v Speaker 1>Carl Franklin and I'm Richard County. Kathleen Dollar is here

27
00:01:27.359 --> 00:01:29.640
<v Speaker 1>with us. We're going to be talking to her about,

28
00:01:29.680 --> 00:01:32.280
<v Speaker 1>you know, what she's up to lately and all that.

29
00:01:32.599 --> 00:01:39.439
<v Speaker 1>But this is episode nineteen hundred and ninety two. Maybe

30
00:01:39.439 --> 00:01:42.239
<v Speaker 1>we should start with what happened that year? All right,

31
00:01:42.439 --> 00:01:45.920
<v Speaker 1>bunch of stuff, bunch of stuff. It's busy here where

32
00:01:45.959 --> 00:01:49.560
<v Speaker 1>you want to start? Well, Rodney King la riots very sad.

33
00:01:51.359 --> 00:01:56.560
<v Speaker 1>Bill Clinton defeated George W. Hw Bush. The Cold War

34
00:01:56.680 --> 00:01:59.879
<v Speaker 1>was declared over by the US and Russia. South Africa

35
00:02:00.120 --> 00:02:04.359
<v Speaker 1>Zobe Union yep, theory yep. Then before the Soviet Union

36
00:02:04.359 --> 00:02:07.920
<v Speaker 1>then Russia right yeah, South Africa voted to end apartheid,

37
00:02:08.000 --> 00:02:15.479
<v Speaker 1>and the Bosnian War began. Of course, Hurricane Andrew Let's

38
00:02:15.479 --> 00:02:19.039
<v Speaker 1>see Queen Elizabeth dubbed nineteen ninety two her Ennis horri

39
00:02:19.159 --> 00:02:22.680
<v Speaker 1>bliss Horrible year due to family scandals and a fire

40
00:02:23.560 --> 00:02:24.599
<v Speaker 1>at Windsor Castle.

41
00:02:25.120 --> 00:02:28.319
<v Speaker 3>So Robin Williams one of his favorite movies I Really

42
00:02:28.400 --> 00:02:31.240
<v Speaker 3>Like You Did is Aladdin. So Elatin came out that

43
00:02:31.319 --> 00:02:31.719
<v Speaker 3>year too.

44
00:02:31.759 --> 00:02:34.479
<v Speaker 1>Oh yes, Aladin came out. Yeah, some good movies.

45
00:02:34.599 --> 00:02:37.240
<v Speaker 2>Don't miss out. The North American Free Trade Agreement and

46
00:02:37.479 --> 00:02:40.639
<v Speaker 2>NAFTA was signed that year, and so is the Masterche Treaty,

47
00:02:40.639 --> 00:02:42.360
<v Speaker 2>which is the beginning of the European Union.

48
00:02:42.560 --> 00:02:45.360
<v Speaker 1>Wow, okay, amazing. And while we're on it, Richard, why

49
00:02:45.360 --> 00:02:48.319
<v Speaker 1>don't you tell us about tech, science and space. In

50
00:02:48.400 --> 00:02:49.439
<v Speaker 1>nineteen ninety two.

51
00:02:50.599 --> 00:02:52.879
<v Speaker 2>It's a crazy year for shuttles. This is the first

52
00:02:52.960 --> 00:02:57.479
<v Speaker 2>year that Endeavor the replacement for Challenger flies, and so

53
00:02:57.599 --> 00:03:00.400
<v Speaker 2>there are eight Shuttle missions this year and devor a

54
00:03:00.479 --> 00:03:03.319
<v Speaker 2>fly twice once it is made in flight to do

55
00:03:03.360 --> 00:03:06.639
<v Speaker 2>a reboost of a satellite, Intel Sat six three, and

56
00:03:06.719 --> 00:03:10.639
<v Speaker 2>again for one of the three Space four space Lab

57
00:03:10.680 --> 00:03:15.240
<v Speaker 2>missions that happened that year. So lots of they You

58
00:03:15.280 --> 00:03:17.120
<v Speaker 2>don't realize this, but there was a bunch of different

59
00:03:17.159 --> 00:03:22.319
<v Speaker 2>space labs. They were reconfigurable, and so Discovery, Atlantis, Endeavor,

60
00:03:22.520 --> 00:03:28.759
<v Speaker 2>and Columbia all fly space Lab missions. The Restaurantal satellite

61
00:03:28.800 --> 00:03:33.599
<v Speaker 2>deploys on the Russian side now because it's nineteen ninety two,

62
00:03:34.080 --> 00:03:36.479
<v Speaker 2>they do their first mission back to mirr With the

63
00:03:36.520 --> 00:03:40.319
<v Speaker 2>breakup of the Soviet Union in July fifteen and one

64
00:03:40.520 --> 00:03:44.520
<v Speaker 2>last space flight, and that is in September, the final

65
00:03:44.560 --> 00:03:49.120
<v Speaker 2>flight of a Titan three rocket boosting the Mars Observer

66
00:03:49.639 --> 00:03:54.080
<v Speaker 2>to Mars, although it will not arrive and I'll wait

67
00:03:54.599 --> 00:03:58.680
<v Speaker 2>until we next show to tell the story of Mars Observer,

68
00:03:58.759 --> 00:04:02.639
<v Speaker 2>because the loss of Mars Observer changed the way NASA

69
00:04:02.800 --> 00:04:05.240
<v Speaker 2>approached satellites going forward.

70
00:04:05.439 --> 00:04:07.960
<v Speaker 1>Right from that. Yeah, they lost contact with it. They

71
00:04:08.159 --> 00:04:09.280
<v Speaker 1>didn't know what happened right now.

72
00:04:09.319 --> 00:04:11.560
<v Speaker 2>About three days before it was supposed to do its

73
00:04:11.680 --> 00:04:15.520
<v Speaker 2>orbital insertion, they were powering things up. It looks like

74
00:04:15.560 --> 00:04:18.079
<v Speaker 2>there was a problem with the fuel system and the

75
00:04:18.160 --> 00:04:22.240
<v Speaker 2>vehicle exploded, which is unfortunate because it was a billion

76
00:04:22.319 --> 00:04:24.160
<v Speaker 2>dollar mission. That's why I was flying on a Tight three.

77
00:04:24.199 --> 00:04:27.600
<v Speaker 2>It was huge, wow, and they took all This is

78
00:04:27.639 --> 00:04:32.040
<v Speaker 2>where a smaller, faster, cheaper comes from Dan Golden's idea

79
00:04:32.079 --> 00:04:35.759
<v Speaker 2>where they take the replace the spare instruments from Mars Observer,

80
00:04:36.079 --> 00:04:39.240
<v Speaker 2>they spread it across four other satellites that'll go to Mars,

81
00:04:39.720 --> 00:04:42.759
<v Speaker 2>two of which will also fail, so at least some

82
00:04:42.800 --> 00:04:46.240
<v Speaker 2>of the sensors will get to Mars successfully. But the

83
00:04:46.639 --> 00:04:51.560
<v Speaker 2>building of these massive one off exploratory satellites will never

84
00:04:51.600 --> 00:04:56.560
<v Speaker 2>happen again. They'll stay small after this. On the computing side,

85
00:04:56.680 --> 00:04:59.240
<v Speaker 2>this is the year that Deck announces their Alpha CHIPPE

86
00:04:59.439 --> 00:05:03.120
<v Speaker 2>sixty four bit risk processor. Yeah, it is one are

87
00:05:03.120 --> 00:05:06.399
<v Speaker 2>the chips. They'll be supported by NT. When that's available,

88
00:05:06.519 --> 00:05:08.319
<v Speaker 2>there will only be a MIT full of computers. A

89
00:05:08.360 --> 00:05:11.199
<v Speaker 2>few different companies will buy the build these. Eventually, as

90
00:05:11.240 --> 00:05:15.199
<v Speaker 2>Deck disappears, the alfship will be acquired by Compact, who

91
00:05:15.199 --> 00:05:18.439
<v Speaker 2>will eventually phase it out in favor of the Intel

92
00:05:18.519 --> 00:05:22.480
<v Speaker 2>Itanium chip that was wildly successful.

93
00:05:22.519 --> 00:05:24.040
<v Speaker 1>Winnos three one right.

94
00:05:23.959 --> 00:05:26.439
<v Speaker 2>Yeah, Windows three one comes out that year, which is

95
00:05:26.720 --> 00:05:30.120
<v Speaker 2>a great year for that, and also Visual Basic two

96
00:05:30.560 --> 00:05:32.079
<v Speaker 2>and VB for das.

97
00:05:32.759 --> 00:05:34.240
<v Speaker 1>I remember it's.

98
00:05:34.120 --> 00:05:37.839
<v Speaker 2>Also the year that Microsoft produces the Microsoft Developers and

99
00:05:37.839 --> 00:05:39.720
<v Speaker 2>then Network MSDN.

100
00:05:40.040 --> 00:05:42.839
<v Speaker 1>Yeah. I was working at Cress and Software and writing

101
00:05:44.079 --> 00:05:48.519
<v Speaker 1>with Q and a column for then before Visual Basic

102
00:05:48.560 --> 00:05:51.040
<v Speaker 1>Programs Journal, I think it was called Basic Pro magazine.

103
00:05:51.600 --> 00:05:55.959
<v Speaker 1>And we got called into a meeting with the guys

104
00:05:55.959 --> 00:05:59.240
<v Speaker 1>at Microsoft on the on the Quick Basic team and

105
00:05:59.519 --> 00:06:04.720
<v Speaker 1>Basic seven pds, and we were they were contemplating selling

106
00:06:04.720 --> 00:06:06.600
<v Speaker 1>it to us, and they were like, what would you

107
00:06:06.639 --> 00:06:08.240
<v Speaker 1>do with it? And we said, well, we just keep

108
00:06:08.279 --> 00:06:10.480
<v Speaker 1>supporting it and blah blah blah, and then they said

109
00:06:10.519 --> 00:06:15.439
<v Speaker 1>no and came out with VB DOS interesting, thus putting

110
00:06:15.439 --> 00:06:18.839
<v Speaker 1>a nail in the coffin of Basic seven PDS. I

111
00:06:18.879 --> 00:06:22.199
<v Speaker 1>think because there was no memory left over for your code.

112
00:06:22.319 --> 00:06:24.720
<v Speaker 1>It was all filled with windowing stuff. Yeah.

113
00:06:24.839 --> 00:06:29.600
<v Speaker 2>Yeah, the overhead so large. Yeah. A couple other hardware tidbits.

114
00:06:29.920 --> 00:06:32.439
<v Speaker 2>A company called sun Disc you now know them as

115
00:06:32.519 --> 00:06:37.000
<v Speaker 2>sand Disc Manufacturers, the first solid state drive at SSD

116
00:06:37.639 --> 00:06:43.279
<v Speaker 2>for IBM and sample quantities. Also, Intel introduces PCI, or

117
00:06:43.279 --> 00:06:45.759
<v Speaker 2>peripheral component in your connects. So if you're talking about

118
00:06:45.800 --> 00:06:50.120
<v Speaker 2>PCs back in the day, the original PC and XT

119
00:06:50.360 --> 00:06:54.120
<v Speaker 2>had the eight bit PC bus. As the two eighty six,

120
00:06:54.199 --> 00:06:56.040
<v Speaker 2>thir eighty six and forty six is come out, they

121
00:06:56.079 --> 00:06:59.759
<v Speaker 2>released the sixteen bit ISA bus. They'll later be a

122
00:06:59.759 --> 00:07:03.439
<v Speaker 2>bus called ESA, although it was not particularly popular. This

123
00:07:03.519 --> 00:07:06.240
<v Speaker 2>is also the year that another replacement bus announced called

124
00:07:06.480 --> 00:07:12.079
<v Speaker 2>Visa Local Bus, but nobody does this. PCI rapidly becomes

125
00:07:12.120 --> 00:07:14.839
<v Speaker 2>the popular standard. It will later be replaced by both

126
00:07:14.920 --> 00:07:18.079
<v Speaker 2>AGP in the late nineties, and then finally what we

127
00:07:18.160 --> 00:07:20.000
<v Speaker 2>use today, PCI Express.

128
00:07:20.279 --> 00:07:24.879
<v Speaker 1>The first two words of toy boy PCI and AGP.

129
00:07:25.600 --> 00:07:26.079
<v Speaker 1>There you go.

130
00:07:27.199 --> 00:07:31.000
<v Speaker 2>More Operating Systems OS two, the IBM Eparty system, the

131
00:07:31.000 --> 00:07:34.959
<v Speaker 2>thirty two bit edition is released. Also, Linux is released

132
00:07:35.040 --> 00:07:40.040
<v Speaker 2>under the GNU, which is canoes not Linux GPL license.

133
00:07:40.800 --> 00:07:45.319
<v Speaker 2>So that's all the OS's I think. IBM puts out

134
00:07:45.319 --> 00:07:48.680
<v Speaker 2>the very first think pad and from the very beginning

135
00:07:48.879 --> 00:07:52.240
<v Speaker 2>with the track point pointer, the little rubber looks like

136
00:07:52.279 --> 00:07:54.600
<v Speaker 2>a pencil eraser nub in the middle of the keyboard.

137
00:07:54.920 --> 00:07:57.120
<v Speaker 2>From the very first version. And just so you know

138
00:07:57.160 --> 00:08:00.399
<v Speaker 2>it's the first version. The display on this laptop is

139
00:08:00.600 --> 00:08:04.079
<v Speaker 2>ten inches and it's a TFT LCD.

140
00:08:05.079 --> 00:08:07.079
<v Speaker 1>I want it so bad, couldn't afford one.

141
00:08:07.160 --> 00:08:09.959
<v Speaker 2>They weren't. They're a big deal, last piece of hardware,

142
00:08:09.959 --> 00:08:11.920
<v Speaker 2>and I want to pull a couple of software ones.

143
00:08:13.160 --> 00:08:19.439
<v Speaker 2>Apple CEO John Scully announces the Newton, calling it a

144
00:08:19.560 --> 00:08:23.240
<v Speaker 2>Personal Digital Assistant a PDA. It won't actually start shipping

145
00:08:23.240 --> 00:08:25.279
<v Speaker 2>on nineteen ninety three, and it'll be dead by nineteen

146
00:08:25.319 --> 00:08:27.639
<v Speaker 2>ninety seven. But you know that's the beginning of that.

147
00:08:27.720 --> 00:08:29.439
<v Speaker 1>Well, you know, it wouldn't have been bad, but it

148
00:08:29.480 --> 00:08:31.480
<v Speaker 1>only came in one flavor fig.

149
00:08:32.840 --> 00:08:35.320
<v Speaker 2>But you had to learn how their language for how

150
00:08:35.360 --> 00:08:39.200
<v Speaker 2>to draw on it, right. Yeah, they couldn't read regular handwriting.

151
00:08:39.799 --> 00:08:41.879
<v Speaker 2>On the Internet side of things, This is the year

152
00:08:41.919 --> 00:08:45.919
<v Speaker 2>that the Joint Photographic Experts Group standardizes and image format

153
00:08:45.960 --> 00:08:49.759
<v Speaker 2>we know as JPEG. Yeah, and a guy named Mark

154
00:08:49.919 --> 00:08:53.720
<v Speaker 2>Cahill coins the term surfing the Internet right, and two

155
00:08:53.759 --> 00:08:57.480
<v Speaker 2>pieces of a software past the Language of Stuff. ID

156
00:08:57.600 --> 00:09:01.879
<v Speaker 2>Software releases Cassel Wolfenstein. Oh Yeah, and Adobe puts out

157
00:09:01.879 --> 00:09:04.480
<v Speaker 2>a Photoshop two point five, which is not that big

158
00:09:04.480 --> 00:09:07.279
<v Speaker 2>of a deal except it's the first version released for Windows.

159
00:09:07.519 --> 00:09:07.919
<v Speaker 1>Nice.

160
00:09:08.120 --> 00:09:08.799
<v Speaker 2>That's all I got.

161
00:09:08.960 --> 00:09:11.759
<v Speaker 1>Well, let's talk about the top ten albums nineteen ninety two.

162
00:09:11.799 --> 00:09:16.960
<v Speaker 1>I'll make it quick, Sonic Youth's Dirty Album. Popular singles

163
00:09:17.000 --> 00:09:24.519
<v Speaker 1>are one in Sugarcane, Countdown to Extinction by Megadeth. The

164
00:09:24.600 --> 00:09:28.960
<v Speaker 1>popular singles there Symphony of Destruction, Sweating Bullets. Mary J.

165
00:09:29.159 --> 00:09:32.639
<v Speaker 1>Blige put out What's the four to one one? Real

166
00:09:32.720 --> 00:09:37.759
<v Speaker 1>Love You Remind me, Sweet Thing, the Bodyguard, Whitney Houston.

167
00:09:38.120 --> 00:09:40.840
<v Speaker 1>I will always love you. I'm every woman and run

168
00:09:40.840 --> 00:09:43.679
<v Speaker 1>to you. Who could forget Whitney? She was so good

169
00:09:43.879 --> 00:09:48.000
<v Speaker 1>that she had an amazing year. Two Yeah, Billy Ray

170
00:09:48.000 --> 00:09:51.159
<v Speaker 1>Cyrus Achy, Breaky Heart Lord, that's.

171
00:09:51.039 --> 00:09:52.480
<v Speaker 3>The one I wanted you to not miss if you

172
00:09:52.559 --> 00:09:54.600
<v Speaker 3>hadn't got that when I was gonna jump in with

173
00:09:54.639 --> 00:09:55.120
<v Speaker 3>that ache.

174
00:09:55.120 --> 00:09:58.879
<v Speaker 1>Breaky Heart was that year number six. I think that

175
00:09:59.000 --> 00:10:01.600
<v Speaker 1>might have kicked off the line dancing craze. I'm not

176
00:10:01.639 --> 00:10:04.759
<v Speaker 1>sure if it was going strong before that. The album,

177
00:10:04.799 --> 00:10:09.759
<v Speaker 1>of course, is called Sun Gave All Pearl Jam Wow,

178
00:10:09.960 --> 00:10:16.200
<v Speaker 1>some great singles, Jeremy Alive. Even Flow ten was the

179
00:10:16.840 --> 00:10:21.799
<v Speaker 1>nineteen ninety two fifth most popular album of that year.

180
00:10:22.320 --> 00:10:27.159
<v Speaker 1>You two's Aktung Baby Huge, Huge in nineteen ninety two

181
00:10:28.720 --> 00:10:33.320
<v Speaker 1>one mysterious ways, even better than the real thing. Who's

182
00:10:33.360 --> 00:10:40.279
<v Speaker 1>going to Ride Your Wild Horses? Yeah? So goodrim Automatic

183
00:10:40.320 --> 00:10:44.039
<v Speaker 1>for the people. Everybody hurts Man on the Moon Drive,

184
00:10:44.279 --> 00:10:51.000
<v Speaker 1>The Sidewinder Sleeps Tonight, amazing album. The chronic by Doctor

185
00:10:51.080 --> 00:10:55.039
<v Speaker 1>Dre absolutely a smash hit. This is number two, Nothing

186
00:10:55.120 --> 00:10:58.159
<v Speaker 1>but a g Thang Dre Day and Let Me Ride

187
00:10:58.279 --> 00:11:01.639
<v Speaker 1>or the singles, and the number one album of nineteen

188
00:11:01.720 --> 00:11:07.519
<v Speaker 1>ninety two, Eric Clapton Unplugged, Awesome, Tears in Heaven, Acoustic Layla,

189
00:11:07.919 --> 00:11:12.240
<v Speaker 1>all those great songs he just cleaned up in nineteen

190
00:11:12.279 --> 00:11:16.440
<v Speaker 1>ninety two. So anyway, that's that's it for our reminiscing.

191
00:11:16.559 --> 00:11:18.960
<v Speaker 1>I guess we should go on to better No Framework

192
00:11:19.159 --> 00:11:27.720
<v Speaker 1>awesome all right?

193
00:11:27.720 --> 00:11:27.840
<v Speaker 3>Man?

194
00:11:27.840 --> 00:11:28.440
<v Speaker 1>When he got.

195
00:11:30.519 --> 00:11:31.720
<v Speaker 2>Oh, what's t unit.

196
00:11:32.320 --> 00:11:34.480
<v Speaker 1>Well, I'll tell you it's not. Tune it.

197
00:11:37.840 --> 00:11:38.159
<v Speaker 4>To it.

198
00:11:38.720 --> 00:11:39.159
<v Speaker 2>I don't know.

199
00:11:39.360 --> 00:11:42.759
<v Speaker 1>Yeah, tu n it t it's a modern testing framework

200
00:11:42.799 --> 00:11:46.879
<v Speaker 1>for dot net that uses source generated tests. Ooh, it's

201
00:11:47.000 --> 00:11:51.279
<v Speaker 1>parallel by default, parallel execution, and it has native AOT

202
00:11:51.440 --> 00:11:56.440
<v Speaker 1>support built on Microsoft Testing platform. Is faster than traditional

203
00:11:56.440 --> 00:12:00.320
<v Speaker 1>reflection based frameworks and gives you more control over how

204
00:12:00.360 --> 00:12:03.879
<v Speaker 1>your tests run. And more importantly, our friend Simon Kropp

205
00:12:04.559 --> 00:12:08.480
<v Speaker 1>loves it. Okay, however, he asked us, by us, I

206
00:12:08.600 --> 00:12:12.159
<v Speaker 1>mean the guys in the app nex slack, who's running

207
00:12:12.159 --> 00:12:15.519
<v Speaker 1>tea unit? And the answer was, what's t unit? Nice?

208
00:12:16.039 --> 00:12:18.639
<v Speaker 2>I think that was my line?

209
00:12:19.399 --> 00:12:23.600
<v Speaker 1>What's that? So there you go know it? Learned it?

210
00:12:23.639 --> 00:12:23.879
<v Speaker 2>Love it?

211
00:12:23.960 --> 00:12:24.120
<v Speaker 3>Well?

212
00:12:24.679 --> 00:12:26.600
<v Speaker 2>Well, if it's doors by Simon Crop, you should pay

213
00:12:26.600 --> 00:12:27.200
<v Speaker 2>attention to it.

214
00:12:27.399 --> 00:12:30.080
<v Speaker 1>Absolutely. Yeah. So who's talking to us today?

215
00:12:30.159 --> 00:12:32.960
<v Speaker 2>Richard Grounded kamin Offer Show nineteen eighty eight, not that

216
00:12:33.000 --> 00:12:35.039
<v Speaker 2>far back with our friend Jason Bach talking a little

217
00:12:35.039 --> 00:12:37.440
<v Speaker 2>bit about dot net source generators. You can see a

218
00:12:37.519 --> 00:12:42.720
<v Speaker 2>theme here and our recent also guest Schmooley Engelard said, first,

219
00:12:42.840 --> 00:12:46.120
<v Speaker 2>I need to share that I have metaprogramming dot net.

220
00:12:46.120 --> 00:12:48.720
<v Speaker 2>That's Jason's book and I love it so much. Two

221
00:12:48.799 --> 00:12:51.960
<v Speaker 2>important things I wanted to share. First, the source code

222
00:12:52.000 --> 00:12:55.720
<v Speaker 2>generated by source generators is read only. You cannot change them.

223
00:12:56.120 --> 00:12:58.480
<v Speaker 2>And second, for me, one of the easy ways to

224
00:12:58.519 --> 00:13:00.799
<v Speaker 2>know if I may want a source is if I

225
00:13:00.960 --> 00:13:03.440
<v Speaker 2>was in C plus plus, would I be writing a

226
00:13:03.440 --> 00:13:05.799
<v Speaker 2>template or a macro? Interesting?

227
00:13:06.000 --> 00:13:08.519
<v Speaker 1>I think you'd be asking co pilot to write it for.

228
00:13:08.559 --> 00:13:16.120
<v Speaker 2>You bylus by stepping that whole process comments two weeks old,

229
00:13:16.200 --> 00:13:17.120
<v Speaker 2>it's already had a date.

230
00:13:17.399 --> 00:13:18.399
<v Speaker 3>Yeah, yeah.

231
00:13:18.600 --> 00:13:24.840
<v Speaker 2>Jason actually responded to Schmooley's comment and said and thanked

232
00:13:24.879 --> 00:13:27.600
<v Speaker 2>him for the nice comments and said, you write sorce

233
00:13:27.639 --> 00:13:30.360
<v Speaker 2>generator gen codes. He is read only. Also, other source

234
00:13:30.360 --> 00:13:32.879
<v Speaker 2>generates can't react to code created by a source generator,

235
00:13:33.519 --> 00:13:35.360
<v Speaker 2>so smoothly, thank you so much for your comment and Comedy

236
00:13:35.360 --> 00:13:36.600
<v Speaker 2>of music codey is on its way to you. And

237
00:13:36.639 --> 00:13:38.120
<v Speaker 2>if you'd like a copy of music Code by I

238
00:13:38.120 --> 00:13:39.799
<v Speaker 2>write a comment on the website at dot a rock

239
00:13:39.840 --> 00:13:41.679
<v Speaker 2>saw Comma on the Facebook, so we publish every show

240
00:13:41.679 --> 00:13:43.000
<v Speaker 2>there and if you comment there and not read it

241
00:13:43.000 --> 00:13:44.679
<v Speaker 2>on the show, we'll send you copy of music Code.

242
00:13:44.720 --> 00:13:47.519
<v Speaker 1>I'm pretty sure Schmooley already has a copy of Music

243
00:13:47.519 --> 00:13:48.200
<v Speaker 1>to Code Vibe.

244
00:13:48.240 --> 00:13:49.679
<v Speaker 2>I hope so, I would think.

245
00:13:49.720 --> 00:13:51.759
<v Speaker 1>But if you don't want to leave a comment, you

246
00:13:51.799 --> 00:13:53.240
<v Speaker 1>just want to buy it, you can go to music

247
00:13:53.279 --> 00:13:57.320
<v Speaker 1>to codebuy dot Net. There's twenty two tracks approximately twenty

248
00:13:57.320 --> 00:14:02.799
<v Speaker 1>five minutes long, perfect for coding, and it helps you

249
00:14:02.879 --> 00:14:08.759
<v Speaker 1>stay in that state of flow. And with that, let

250
00:14:08.840 --> 00:14:11.759
<v Speaker 1>us bring back to the show Kathleen Dollard. She calls

251
00:14:11.759 --> 00:14:15.360
<v Speaker 1>herself a dot net connoisseur. She's certainly seen a lot

252
00:14:15.399 --> 00:14:19.480
<v Speaker 1>of code as a long time teacher and consultant as

253
00:14:19.559 --> 00:14:22.960
<v Speaker 1>well as nearly eight years at Microsoft. Transitions are tough,

254
00:14:23.039 --> 00:14:25.960
<v Speaker 1>but she's ready for the next big adventure. And welcome

255
00:14:26.000 --> 00:14:28.279
<v Speaker 1>back to the show. Kathleen. It's been a while, but

256
00:14:28.440 --> 00:14:30.879
<v Speaker 1>you have been a frequent guest here over the years.

257
00:14:30.960 --> 00:14:31.159
<v Speaker 2>Yeah.

258
00:14:31.200 --> 00:14:33.320
<v Speaker 3>I'm not sure how many I've done. It's been a lot,

259
00:14:33.360 --> 00:14:36.320
<v Speaker 3>but it has been a while. It maybe two years.

260
00:14:36.360 --> 00:14:38.960
<v Speaker 3>It's really been a little while, so I'm thrilled to

261
00:14:38.960 --> 00:14:39.799
<v Speaker 3>be back. It's great.

262
00:14:39.919 --> 00:14:42.440
<v Speaker 2>Well, and you were on seventeen hundred, which was our

263
00:14:42.679 --> 00:14:45.200
<v Speaker 2>collection of guests who've been on the most.

264
00:14:46.039 --> 00:14:47.360
<v Speaker 3>Yeah, yeah, yeah, yeah, yeah.

265
00:14:47.759 --> 00:14:49.639
<v Speaker 2>You know, if you're in that, there's a pretty clear

266
00:14:49.720 --> 00:14:51.679
<v Speaker 2>sign you've done to manybody. Yeah, last one was four

267
00:14:51.759 --> 00:14:53.600
<v Speaker 2>years ago when we were talking about C sharp eleven.

268
00:14:53.720 --> 00:14:59.919
<v Speaker 3>Oh four, Oh my, oh wow, that's crazy, that's crazy.

269
00:15:00.360 --> 00:15:02.480
<v Speaker 3>So I did think the fact that I've been a

270
00:15:02.480 --> 00:15:06.000
<v Speaker 3>bit out of touch probably is partially because, you know,

271
00:15:06.120 --> 00:15:08.600
<v Speaker 3>life got pretty intense the last two years that I

272
00:15:08.720 --> 00:15:13.519
<v Speaker 3>was in Microsoft. We were running really short staffed. So

273
00:15:13.559 --> 00:15:15.000
<v Speaker 3>what do you do when you're short staffed? Do you

274
00:15:15.039 --> 00:15:21.519
<v Speaker 3>let people off? So so the PMT was short staffed,

275
00:15:21.559 --> 00:15:24.519
<v Speaker 3>and I think, I think we didn't. It was very

276
00:15:24.519 --> 00:15:27.120
<v Speaker 3>hard to focus on what was important because there was

277
00:15:27.159 --> 00:15:30.360
<v Speaker 3>so much, so much going on, and then I left

278
00:15:30.399 --> 00:15:33.519
<v Speaker 3>Microsoft in May with the layoffs, which broke my heart.

279
00:15:33.840 --> 00:15:37.120
<v Speaker 3>It's my job, my dream job. And the funny thing

280
00:15:37.200 --> 00:15:39.279
<v Speaker 3>is the same day. It's not funny, but it was good.

281
00:15:40.039 --> 00:15:42.960
<v Speaker 3>The same day, about two hours before they laid me off,

282
00:15:43.399 --> 00:15:45.440
<v Speaker 3>I found out that I probably had cancer. And so

283
00:15:46.039 --> 00:15:47.840
<v Speaker 3>it sounds like a terrible day. You go, oh my god,

284
00:15:47.840 --> 00:15:50.360
<v Speaker 3>what a bad day. Oh, but no, if you can

285
00:15:50.399 --> 00:15:52.679
<v Speaker 3>imagine what would have happened if those things had happened

286
00:15:52.679 --> 00:15:55.240
<v Speaker 3>two weeks apart, and we had this life changing event

287
00:15:55.639 --> 00:15:58.440
<v Speaker 3>and you just got used to it. You just had

288
00:15:58.480 --> 00:16:01.200
<v Speaker 3>your plan, and then the other and dropped. That would

289
00:16:01.200 --> 00:16:03.799
<v Speaker 3>have been horrible. I'm so grateful that I didn't have

290
00:16:03.840 --> 00:16:06.799
<v Speaker 3>a moment where I saw my life without these two

291
00:16:06.840 --> 00:16:09.679
<v Speaker 3>things crashing on together. It was such a blessing because

292
00:16:09.759 --> 00:16:12.720
<v Speaker 3>I didn't have to worry about, Oh, I've got new plans,

293
00:16:12.720 --> 00:16:15.399
<v Speaker 3>and now these new hard plans are destroyed. So the

294
00:16:15.440 --> 00:16:20.159
<v Speaker 3>good news is that it was a very well behaved cancers.

295
00:16:20.279 --> 00:16:25.320
<v Speaker 3>Cancer as cancer goes, and so I am now. I

296
00:16:25.399 --> 00:16:29.399
<v Speaker 3>go back for some checkups next next weekend. I basically

297
00:16:29.720 --> 00:16:32.320
<v Speaker 3>should be cancer free at this point. It was a

298
00:16:32.360 --> 00:16:33.960
<v Speaker 3>tough it was a tough six months. It was a

299
00:16:34.000 --> 00:16:37.279
<v Speaker 3>tough six months, six eight months. But it's you know,

300
00:16:37.399 --> 00:16:39.600
<v Speaker 3>I've got my energy back and I'm ready to go,

301
00:16:39.840 --> 00:16:40.879
<v Speaker 3>and so sure.

302
00:16:41.240 --> 00:16:43.679
<v Speaker 1>The stress of leaving Microsoft didn't help.

303
00:16:43.720 --> 00:16:48.519
<v Speaker 3>Well, Yes, and no, I worry a lot about how

304
00:16:48.559 --> 00:16:50.600
<v Speaker 3>I would have coped if I'd had the stress of

305
00:16:50.639 --> 00:16:55.120
<v Speaker 3>being at Microsoft doing that. It was I mean, I

306
00:16:55.120 --> 00:16:57.080
<v Speaker 3>loved my job. I love the people I worked with there.

307
00:16:57.720 --> 00:16:59.679
<v Speaker 3>I don't want to I'm missaying anything bad about it

308
00:17:00.120 --> 00:17:03.559
<v Speaker 3>up that it is. It is not an easy place.

309
00:17:03.799 --> 00:17:05.960
<v Speaker 3>It's not an easy place to work. It's a hard

310
00:17:06.000 --> 00:17:10.079
<v Speaker 3>place to work, very intense, very intense yeah, I loved it,

311
00:17:10.400 --> 00:17:14.039
<v Speaker 3>but moving on to other things and so.

312
00:17:14.079 --> 00:17:17.319
<v Speaker 1>Yeah, greener pastures, Yeah, I hope so think So so

313
00:17:18.119 --> 00:17:20.599
<v Speaker 1>what's what's charging your batteries these days?

314
00:17:20.839 --> 00:17:22.880
<v Speaker 3>Well, there's what's charging my batteries and what you know.

315
00:17:22.880 --> 00:17:25.839
<v Speaker 3>I'm kind of setting out towards doing I do eventually

316
00:17:25.880 --> 00:17:27.599
<v Speaker 3>have to do something else. I mean, you know, it's

317
00:17:27.799 --> 00:17:29.400
<v Speaker 3>it's it was good to take some time off and

318
00:17:29.400 --> 00:17:31.519
<v Speaker 3>be able to focus on my health, but kind of

319
00:17:31.559 --> 00:17:33.599
<v Speaker 3>done with that right now. So the kind of two

320
00:17:33.599 --> 00:17:37.119
<v Speaker 3>big areas. One is c sharp with sort of a

321
00:17:37.359 --> 00:17:40.279
<v Speaker 3>kind of a new vision for the way we talk

322
00:17:40.319 --> 00:17:43.119
<v Speaker 3>about c sharp because it's a new world out there.

323
00:17:43.240 --> 00:17:45.000
<v Speaker 3>And the second is I'm very into clize and I

324
00:17:45.000 --> 00:17:46.680
<v Speaker 3>don't know which one you want to talk about first.

325
00:17:47.119 --> 00:17:49.799
<v Speaker 3>So first of all, clize is the thing you type

326
00:17:49.799 --> 00:17:51.759
<v Speaker 3>when you type in something like dot nit built. That's

327
00:17:51.799 --> 00:17:54.000
<v Speaker 3>what we're talking about, is what you type at the cursor.

328
00:17:54.319 --> 00:17:56.279
<v Speaker 3>So I want to make sure that everybody's on board

329
00:17:56.319 --> 00:17:59.640
<v Speaker 3>with what we're talking about. And it's an amazing space.

330
00:17:59.680 --> 00:18:02.880
<v Speaker 3>It's just I've been involved in it since I joined Microsoft,

331
00:18:02.880 --> 00:18:06.880
<v Speaker 3>which nine and a half years ago, because I went

332
00:18:06.960 --> 00:18:10.680
<v Speaker 3>in there just being a goodie person and they decided that.

333
00:18:10.880 --> 00:18:12.480
<v Speaker 3>So because of that, I should run the dt at

334
00:18:12.480 --> 00:18:15.440
<v Speaker 3>CLI and SDK because I'd have a good appreciation for

335
00:18:15.519 --> 00:18:18.519
<v Speaker 3>people who didn't have that as their first, you know,

336
00:18:18.799 --> 00:18:20.720
<v Speaker 3>place of comment, which I think was great. So I

337
00:18:20.799 --> 00:18:23.240
<v Speaker 3>learned a whole lot, really fell in love with space

338
00:18:23.279 --> 00:18:26.680
<v Speaker 3>because I'm not language geek from way way, way way

339
00:18:26.720 --> 00:18:30.960
<v Speaker 3>back way back into at least at least nineteen ninety two.

340
00:18:31.920 --> 00:18:35.319
<v Speaker 3>And as a language geek, I love dsl's. I love

341
00:18:35.359 --> 00:18:38.519
<v Speaker 3>the ability to express what you care about in a language.

342
00:18:38.759 --> 00:18:41.119
<v Speaker 3>And there's many places that's not a good choice, but

343
00:18:41.200 --> 00:18:43.640
<v Speaker 3>that's what a CLI is. You get to build your

344
00:18:43.640 --> 00:18:46.599
<v Speaker 3>own DSL and you get to do it within a framework.

345
00:18:46.680 --> 00:18:48.960
<v Speaker 3>It's like a sonnet instead of a free verse.

346
00:18:49.039 --> 00:18:51.400
<v Speaker 1>All right, Just for the one person who didn't understand

347
00:18:51.400 --> 00:18:55.000
<v Speaker 1>the acronym CLI command line interface. If the DSL domain

348
00:18:55.160 --> 00:18:56.839
<v Speaker 1>specific language.

349
00:18:56.400 --> 00:18:59.480
<v Speaker 3>Thank you, and demain specific language just means that you're

350
00:18:59.519 --> 00:19:03.000
<v Speaker 3>making up up the aspects of it. Now you generally

351
00:19:03.000 --> 00:19:04.960
<v Speaker 3>don't make up the syntax. It's not only with the

352
00:19:05.000 --> 00:19:07.359
<v Speaker 3>CLI where you don't get full control of the syntax,

353
00:19:07.559 --> 00:19:09.720
<v Speaker 3>but you have control of the semantics. So if we

354
00:19:09.839 --> 00:19:12.480
<v Speaker 3>just look at this CLI that most people listening to

355
00:19:12.519 --> 00:19:15.839
<v Speaker 3>this will know something about well, there's two Get and

356
00:19:15.880 --> 00:19:17.880
<v Speaker 3>dot net would be the two most people listening to

357
00:19:17.880 --> 00:19:20.680
<v Speaker 3>this will have probably used. And so when you say

358
00:19:20.759 --> 00:19:25.839
<v Speaker 3>dot net space build, there's code written that takes dot

359
00:19:25.920 --> 00:19:29.240
<v Speaker 3>Net to say that's executable and build that's what we're

360
00:19:29.240 --> 00:19:32.440
<v Speaker 3>working on, and then takes all sorts of other things,

361
00:19:32.440 --> 00:19:36.759
<v Speaker 3>like you might have configuration, and configuration would be dash,

362
00:19:36.920 --> 00:19:40.799
<v Speaker 3>dash config or h C and those rules are set

363
00:19:40.799 --> 00:19:43.839
<v Speaker 3>out and something called the PASIC standard, which is ancient,

364
00:19:44.200 --> 00:19:46.880
<v Speaker 3>absolutely ancient, and so one of the things that I

365
00:19:46.920 --> 00:19:49.160
<v Speaker 3>didn't have a chance to do while I was at Microsoft.

366
00:19:49.200 --> 00:19:51.880
<v Speaker 3>It was on my plate, it was on somebody else's plate,

367
00:19:52.000 --> 00:19:53.480
<v Speaker 3>And now I'm like, you know, I might find time

368
00:19:53.559 --> 00:19:57.359
<v Speaker 3>for that is to actually do some updating to that standard,

369
00:19:57.359 --> 00:20:00.160
<v Speaker 3>to say this is what we do. And like the

370
00:20:00.200 --> 00:20:04.400
<v Speaker 3>areas that's worth conversation is how we use abbreviations, because

371
00:20:05.200 --> 00:20:09.720
<v Speaker 3>dash F is in Frank is my favorite one to

372
00:20:09.759 --> 00:20:13.839
<v Speaker 3>talk about because it regularly means two different things and

373
00:20:13.839 --> 00:20:17.559
<v Speaker 3>they're just a teeny bit different. One is dash dash

374
00:20:17.680 --> 00:20:22.000
<v Speaker 3>force and the other is dash dash format. So if

375
00:20:22.039 --> 00:20:24.880
<v Speaker 3>you're merely thinking this should have a format, and you

376
00:20:24.960 --> 00:20:27.599
<v Speaker 3>go dash F to a command that you really didn't

377
00:20:27.599 --> 00:20:30.519
<v Speaker 3>want to do a dash dash force too. There you go.

378
00:20:30.799 --> 00:20:32.720
<v Speaker 3>So I think that there's some things that we want

379
00:20:32.759 --> 00:20:35.799
<v Speaker 3>to talk about. There's also a lot of orthogonal things.

380
00:20:35.799 --> 00:20:38.519
<v Speaker 3>Help has not been updated since the initial POSIC standard

381
00:20:38.519 --> 00:20:41.240
<v Speaker 3>in any real way, and now we have these spectacular

382
00:20:41.279 --> 00:20:45.000
<v Speaker 3>tools like spector Console where we can really make beautiful things.

383
00:20:45.359 --> 00:20:48.440
<v Speaker 3>And happily I am still closely in touch with the

384
00:20:48.720 --> 00:20:52.400
<v Speaker 3>net stycancel It team, and hopefully I will now be

385
00:20:52.480 --> 00:20:56.640
<v Speaker 3>on the outside pushing in my ideas and thoughts the

386
00:20:56.680 --> 00:20:59.200
<v Speaker 3>same way I did before I joined Microsoft as an MVP.

387
00:21:00.200 --> 00:21:03.160
<v Speaker 3>An MVP for twenty years during Microsoft got to work

388
00:21:03.160 --> 00:21:05.720
<v Speaker 3>on the inside. Now I'm the outside setting up the

389
00:21:06.119 --> 00:21:07.839
<v Speaker 3>conduits in the ways that I can work on the

390
00:21:07.839 --> 00:21:11.039
<v Speaker 3>outside and make a difference. So that's kind of what

391
00:21:11.079 --> 00:21:11.880
<v Speaker 3>I'm doing now.

392
00:21:12.319 --> 00:21:15.119
<v Speaker 2>The POSIC standards comes into playing the sense that POSEIKS

393
00:21:15.160 --> 00:21:19.039
<v Speaker 2>says to dash is word rather than just like dash

394
00:21:19.079 --> 00:21:20.599
<v Speaker 2>out would be dash dash force.

395
00:21:21.279 --> 00:21:25.319
<v Speaker 3>Yes, right, So the POSEK standard is all these little details,

396
00:21:25.559 --> 00:21:28.640
<v Speaker 3>and it's actually a good standard because it's relatively consumable.

397
00:21:29.799 --> 00:21:32.880
<v Speaker 3>So if you have something that needs a name, then

398
00:21:33.119 --> 00:21:35.079
<v Speaker 3>you can think of as a named parameter versus an

399
00:21:35.160 --> 00:21:38.400
<v Speaker 3>unnamed parameter. So a named parameter in poseis it is

400
00:21:38.440 --> 00:21:40.480
<v Speaker 3>going to be dash, dash and then the word. But

401
00:21:40.559 --> 00:21:44.160
<v Speaker 3>it may be abbreviated if it's a boolean flag as

402
00:21:44.400 --> 00:21:47.640
<v Speaker 3>just dash and then the letter. So I guess format's

403
00:21:47.680 --> 00:21:49.240
<v Speaker 3>a bad example. I'm gonna have to find another one

404
00:21:49.240 --> 00:21:51.599
<v Speaker 3>because it would not be a bullion. So you might

405
00:21:51.680 --> 00:21:55.359
<v Speaker 3>think that abbreviation worked, but it generally wouldn't because probably

406
00:21:55.480 --> 00:21:57.839
<v Speaker 3>format wouldn't be a bullion. It only works at bulliants.

407
00:21:57.839 --> 00:21:59.799
<v Speaker 3>Is one of the things I think it's worth another look.

408
00:22:00.079 --> 00:22:03.119
<v Speaker 3>I think I also come to the conclusion that we

409
00:22:03.160 --> 00:22:05.039
<v Speaker 3>can do it dot net. We don't have to change

410
00:22:05.039 --> 00:22:07.839
<v Speaker 3>the whole world. But the other thing up on that

411
00:22:07.920 --> 00:22:12.680
<v Speaker 3>front is open CLI. Because the other really exciting thing

412
00:22:12.920 --> 00:22:15.720
<v Speaker 3>in addition to you can write this little language to

413
00:22:15.759 --> 00:22:18.400
<v Speaker 3>help the people you work with, which people they're writing

414
00:22:18.400 --> 00:22:20.759
<v Speaker 3>CLIs to do regularly do it. They just may not

415
00:22:20.799 --> 00:22:23.480
<v Speaker 3>think of it that way. The other thing is that

416
00:22:23.720 --> 00:22:27.519
<v Speaker 3>you're writing for AI and in today's world, one of

417
00:22:27.559 --> 00:22:32.079
<v Speaker 3>the really easy ways to set out what you offer

418
00:22:32.799 --> 00:22:37.039
<v Speaker 3>as consumable without making it a service and without having

419
00:22:37.079 --> 00:22:39.319
<v Speaker 3>to stand it up in that way. So it's just

420
00:22:39.359 --> 00:22:41.720
<v Speaker 3>within your organization, it's just go out and find this

421
00:22:41.839 --> 00:22:46.759
<v Speaker 3>executable on our local stores wherever it is. Then you

422
00:22:46.799 --> 00:22:49.680
<v Speaker 3>can write that and have it be available to AI

423
00:22:50.160 --> 00:22:53.200
<v Speaker 3>via the CLI. And there's a standard that's called the

424
00:22:53.240 --> 00:22:56.680
<v Speaker 3>open CLI standard that Patrick Spenson is I know about

425
00:22:56.720 --> 00:22:59.200
<v Speaker 3>it through Patrick Spenson, but there may be some other

426
00:22:59.559 --> 00:23:01.279
<v Speaker 3>I know there's other people are that are involved in that,

427
00:23:01.640 --> 00:23:03.599
<v Speaker 3>but that hopefully will be not just on it, that

428
00:23:03.640 --> 00:23:05.559
<v Speaker 3>will hopefully be across the entire space.

429
00:23:05.880 --> 00:23:09.839
<v Speaker 1>It couras to me that dsls have kind of been

430
00:23:09.880 --> 00:23:13.960
<v Speaker 1>replaced by these large language models. Maybe I don't know,

431
00:23:14.240 --> 00:23:17.519
<v Speaker 1>it would seem that you could use a large language

432
00:23:17.519 --> 00:23:20.960
<v Speaker 1>model in the case of you know, where you would

433
00:23:21.000 --> 00:23:22.000
<v Speaker 1>have a DSL before.

434
00:23:22.359 --> 00:23:27.559
<v Speaker 3>Well. Possibly, I think that we are just so much

435
00:23:27.759 --> 00:23:31.759
<v Speaker 3>at the top of the ski slope or avalanche, or

436
00:23:32.279 --> 00:23:35.240
<v Speaker 3>just at the beginning that we have no idea. I mean,

437
00:23:35.279 --> 00:23:37.319
<v Speaker 3>I think we're like, I don't know what year we

438
00:23:37.319 --> 00:23:40.119
<v Speaker 3>would pick. I don't think it'd be nineteen ninety two

439
00:23:40.839 --> 00:23:43.720
<v Speaker 3>in the Internet world, But you know, we're so much

440
00:23:43.839 --> 00:23:45.920
<v Speaker 3>at that beginning. I don't think we have any idea.

441
00:23:46.039 --> 00:23:50.599
<v Speaker 3>But another possibility, the one I think is more likely,

442
00:23:51.079 --> 00:23:53.720
<v Speaker 3>is that dsls will feed AI, so that AI is

443
00:23:53.759 --> 00:23:57.000
<v Speaker 3>more likely to use a DSL on a thing that

444
00:23:57.119 --> 00:24:00.400
<v Speaker 3>is done well and piece things that are done well together.

445
00:24:00.519 --> 00:24:02.400
<v Speaker 3>I think that that is more likely to be the

446
00:24:02.440 --> 00:24:05.319
<v Speaker 3>place we land when we realize that when I ask

447
00:24:05.359 --> 00:24:09.240
<v Speaker 3>for something in chat in my browser, it doesn't matter

448
00:24:09.279 --> 00:24:11.920
<v Speaker 3>if it's one hundred percent correct. But when I run

449
00:24:11.960 --> 00:24:15.759
<v Speaker 3>a program, especially one that does money or health or

450
00:24:15.799 --> 00:24:18.279
<v Speaker 3>any one of a number of different things, it matters

451
00:24:18.400 --> 00:24:21.200
<v Speaker 3>that it works well and it's relatively fast. And so

452
00:24:21.319 --> 00:24:24.119
<v Speaker 3>I think that we're more likely to see a really

453
00:24:24.160 --> 00:24:26.680
<v Speaker 3>good merging of these spaces. But I don't know. You

454
00:24:26.720 --> 00:24:30.400
<v Speaker 3>may be right. It could be that you know, the

455
00:24:30.440 --> 00:24:34.039
<v Speaker 3>code does get enough better that we don't have those problems.

456
00:24:34.319 --> 00:24:36.559
<v Speaker 2>It's funny because I was just thinking, I don't normally

457
00:24:36.599 --> 00:24:39.880
<v Speaker 2>type dot net build. I run a script that has

458
00:24:39.920 --> 00:24:41.920
<v Speaker 2>dot net build in it, and a bunch of other

459
00:24:42.000 --> 00:24:42.599
<v Speaker 2>steps too.

460
00:24:42.680 --> 00:24:46.720
<v Speaker 3>Because repeatability, yes, absolutely, And that's one of the great

461
00:24:46.720 --> 00:24:50.960
<v Speaker 3>things about clized is they're so easily scriptable. And there's

462
00:24:51.279 --> 00:24:55.119
<v Speaker 3>two projects, ones out and ones in process in terms

463
00:24:55.119 --> 00:24:57.119
<v Speaker 3>of how you build them, and they both really relate

464
00:24:57.160 --> 00:25:00.359
<v Speaker 3>to scripts, and one of them is system command, which

465
00:25:00.440 --> 00:25:04.240
<v Speaker 3>is a parser in dot Netlin. Microsoft has it, which

466
00:25:04.240 --> 00:25:07.440
<v Speaker 3>I worked on for seven years in beta, tremendously painful

467
00:25:07.440 --> 00:25:11.079
<v Speaker 3>experience because we did not have support and management. Finally,

468
00:25:11.119 --> 00:25:14.200
<v Speaker 3>with millions and millions of downloads that weren't from Microsoft

469
00:25:14.240 --> 00:25:16.960
<v Speaker 3>because they had a different store, they finally said, I

470
00:25:17.000 --> 00:25:19.880
<v Speaker 3>guess we should do something and release this. So the

471
00:25:19.920 --> 00:25:22.240
<v Speaker 3>right people got on board and it got released. So

472
00:25:22.279 --> 00:25:24.559
<v Speaker 3>that was that was that's great?

473
00:25:24.839 --> 00:25:26.319
<v Speaker 2>Was that that was dot net cli.

474
00:25:26.799 --> 00:25:28.640
<v Speaker 3>No, no, no, no, dot is cli has been out forever.

475
00:25:28.839 --> 00:25:31.960
<v Speaker 3>The parser that runs it, the parser uses is called

476
00:25:32.000 --> 00:25:34.359
<v Speaker 3>system command Line. So if you want to write your

477
00:25:34.359 --> 00:25:38.119
<v Speaker 3>own CLI, do not do not. Do not do not

478
00:25:38.480 --> 00:25:40.599
<v Speaker 3>write your own parser. It will be bad. I just

479
00:25:40.680 --> 00:25:46.119
<v Speaker 3>tell you it's tremendously difficult to I know absolutely, it's

480
00:25:46.160 --> 00:25:49.599
<v Speaker 3>tremendously difficult. I know how much time and pain and

481
00:25:49.680 --> 00:25:53.000
<v Speaker 3>love and wisdom went into System Commandment parser. Use it,

482
00:25:53.160 --> 00:25:56.480
<v Speaker 3>or if you'd like Patrick Finson's console, better use use

483
00:25:56.519 --> 00:25:57.960
<v Speaker 3>it if you want to. There's a couple out there

484
00:25:57.960 --> 00:26:01.559
<v Speaker 3>that also are pretty good that they have. There's there's

485
00:26:01.599 --> 00:26:05.160
<v Speaker 3>subtle standards within the dot neit ecosystem that people actually

486
00:26:05.200 --> 00:26:08.039
<v Speaker 3>probably will expect. So it really is a good idea

487
00:26:08.200 --> 00:26:11.079
<v Speaker 3>to use that that went into full release in November.

488
00:26:11.400 --> 00:26:14.440
<v Speaker 3>So yeah, all the everybody that was involved in that

489
00:26:14.480 --> 00:26:18.519
<v Speaker 3>three cheers. Some real heroes in that story because they

490
00:26:18.759 --> 00:26:22.079
<v Speaker 3>it was it was really fighting up a hill, so

491
00:26:22.400 --> 00:26:23.400
<v Speaker 3>really big heroes.

492
00:26:23.480 --> 00:26:26.480
<v Speaker 2>So it was always an internal library then, and it

493
00:26:26.480 --> 00:26:28.079
<v Speaker 2>was never meant to be a public.

494
00:26:27.880 --> 00:26:29.839
<v Speaker 3>No no, no, no no, no, just the opposite. It

495
00:26:29.920 --> 00:26:33.799
<v Speaker 3>started as an open source public library that we did

496
00:26:33.839 --> 00:26:36.599
<v Speaker 3>with the community. John and I did it. What happened

497
00:26:36.640 --> 00:26:38.680
<v Speaker 3>is I did dot Tools. I was the PM for

498
00:26:38.720 --> 00:26:41.119
<v Speaker 3>dot neit tools, and when we released dot neit Tools

499
00:26:41.119 --> 00:26:43.960
<v Speaker 3>and I sat down and I wrote my little samples

500
00:26:43.960 --> 00:26:47.200
<v Speaker 3>and stuff. I just wanted to cry because even for

501
00:26:47.240 --> 00:26:51.680
<v Speaker 3>a completely crappy parser, over half my code was Parson code.

502
00:26:51.720 --> 00:26:53.759
<v Speaker 3>It wasn't anything to do with what I wanted to do.

503
00:26:53.839 --> 00:26:56.079
<v Speaker 3>It was all just this crap Parson code that I

504
00:26:56.160 --> 00:26:58.519
<v Speaker 3>did not want to write. And so I went to

505
00:26:58.720 --> 00:27:02.960
<v Speaker 3>start asking around who can and John Squero said I

506
00:27:03.119 --> 00:27:04.960
<v Speaker 3>might be interested in that, And I don't know if

507
00:27:04.960 --> 00:27:07.160
<v Speaker 3>he's forgiven me yet because it was a really painful

508
00:27:07.160 --> 00:27:10.759
<v Speaker 3>seven years for all of us and the So anyway,

509
00:27:11.200 --> 00:27:13.119
<v Speaker 3>we've got it out now. So there is a good

510
00:27:13.160 --> 00:27:17.279
<v Speaker 3>parser out from Microsoft. You know, it's fast, it's it's great,

511
00:27:17.319 --> 00:27:21.279
<v Speaker 3>it's it's wonderful. I don't think it has a good

512
00:27:21.359 --> 00:27:24.920
<v Speaker 3>U either for the for the programmer. I actually think

513
00:27:24.920 --> 00:27:30.400
<v Speaker 3>it's terrible. So I was in Prague at Update conference

514
00:27:30.519 --> 00:27:32.480
<v Speaker 3>and I stepped on stage. I'm so excited. I said, Oh,

515
00:27:32.480 --> 00:27:34.720
<v Speaker 3>this is just nearly released. Everybody go take a look

516
00:27:34.720 --> 00:27:37.119
<v Speaker 3>at this, and I'm showing examples of it. I'm going

517
00:27:37.160 --> 00:27:39.759
<v Speaker 3>we're still writing a bunch of code that we have

518
00:27:39.839 --> 00:27:42.559
<v Speaker 3>to learn about. It's interesting, just do it. So I'm

519
00:27:42.559 --> 00:27:45.319
<v Speaker 3>working on a side project and if it is interested,

520
00:27:45.400 --> 00:27:48.720
<v Speaker 3>it's get hug Kathleen Dollar. Dragon Fruit Too is the

521
00:27:48.799 --> 00:27:51.480
<v Speaker 3>name of it. If you're a System command Line fan,

522
00:27:51.839 --> 00:27:54.359
<v Speaker 3>you know what dragon Fruit is. This is the next generation.

523
00:27:55.240 --> 00:27:58.160
<v Speaker 3>It does subcommands and the things we've wanted in the

524
00:27:58.240 --> 00:28:01.240
<v Speaker 3>dragon Fruit which is now gone. That's not part of

525
00:28:01.319 --> 00:28:05.240
<v Speaker 3>the released System command Line. So that is going to

526
00:28:05.240 --> 00:28:08.200
<v Speaker 3>be able to restate what we can do in CLIs

527
00:28:08.400 --> 00:28:09.640
<v Speaker 3>you talked about scripting.

528
00:28:09.799 --> 00:28:10.720
<v Speaker 1>What is dragon Fruit.

529
00:28:10.880 --> 00:28:13.400
<v Speaker 3>It's a rapper for System command Line that gives it

530
00:28:13.400 --> 00:28:16.079
<v Speaker 3>a good UI. It lets you do a single create

531
00:28:16.079 --> 00:28:19.319
<v Speaker 3>your entire CLI with classes that are familiar to you

532
00:28:19.759 --> 00:28:23.640
<v Speaker 3>and they're basically DTOs. It wraps system command line and

533
00:28:23.680 --> 00:28:27.279
<v Speaker 3>a dto that that's a data transfer object. It's a

534
00:28:27.319 --> 00:28:30.839
<v Speaker 3>simple little object. So it just marries those two together

535
00:28:30.920 --> 00:28:34.319
<v Speaker 3>unless you write your CLI very very easily. So that's

536
00:28:34.559 --> 00:28:36.480
<v Speaker 3>the main goal, but it also will allow you to

537
00:28:36.519 --> 00:28:39.680
<v Speaker 3>extend it because it's open and we've got lots of

538
00:28:39.680 --> 00:28:42.759
<v Speaker 3>things in there, like better defaults. And you were talking

539
00:28:42.799 --> 00:28:47.160
<v Speaker 3>about scripting Richard, which if you know what you're talking,

540
00:28:47.200 --> 00:28:50.039
<v Speaker 3>if you know those commands, you already know them, then

541
00:28:50.039 --> 00:28:53.079
<v Speaker 3>it's very easy to redescript. If you don't know those commands,

542
00:28:53.200 --> 00:28:57.079
<v Speaker 3>it's very hard to redescript because there's things like I

543
00:28:57.119 --> 00:29:00.920
<v Speaker 3>talked about named and unnamed arguments. There's a huge use

544
00:29:01.039 --> 00:29:05.480
<v Speaker 3>of unnamed arguments within CLIs and that's a good thing

545
00:29:05.519 --> 00:29:08.319
<v Speaker 3>if you're typing less to type. It's a very bad

546
00:29:08.359 --> 00:29:11.880
<v Speaker 3>thing if you're reading, because you see a word, you

547
00:29:11.880 --> 00:29:14.319
<v Speaker 3>don't know what that word is. And so let's just

548
00:29:14.400 --> 00:29:18.680
<v Speaker 3>say that you have a project in your system that

549
00:29:18.880 --> 00:29:22.119
<v Speaker 3>is like I don't know, it's it's I don't know,

550
00:29:22.200 --> 00:29:25.440
<v Speaker 3>it's like run okay, and that's just the name of

551
00:29:26.039 --> 00:29:29.759
<v Speaker 3>a project you've got. Well, if you see dot net,

552
00:29:30.000 --> 00:29:34.079
<v Speaker 3>you know build run. You don't know what's going on there,

553
00:29:34.119 --> 00:29:37.559
<v Speaker 3>and because you can state a project after dot neit build,

554
00:29:37.839 --> 00:29:40.960
<v Speaker 3>so it's it's difficult to use them. I think it'd

555
00:29:40.960 --> 00:29:43.519
<v Speaker 3>be much easier for humans and definitely easier for AI

556
00:29:44.079 --> 00:29:46.480
<v Speaker 3>if you could read a script that was written adjacent.

557
00:29:47.000 --> 00:29:49.519
<v Speaker 3>And so that's one of the things that that's the

558
00:29:49.640 --> 00:29:52.640
<v Speaker 3>kind of thing we can enable. Prompting people have asked

559
00:29:52.640 --> 00:29:56.000
<v Speaker 3>for a lot, being able to pull defaults from environment variables.

560
00:29:56.480 --> 00:29:59.319
<v Speaker 3>All of those things are in there. They're either in

561
00:29:59.400 --> 00:30:02.880
<v Speaker 3>the system or they're already designed into this wrapper. So

562
00:30:02.880 --> 00:30:03.799
<v Speaker 3>that's what I'm coding it.

563
00:30:03.880 --> 00:30:06.240
<v Speaker 2>Certainly I have it. I have in writing scripts, and

564
00:30:06.279 --> 00:30:09.400
<v Speaker 2>that's as much PowerShell as anything dot net related. Yeah,

565
00:30:09.400 --> 00:30:12.920
<v Speaker 2>to always use the double dash long names. Yeah, so

566
00:30:13.039 --> 00:30:15.519
<v Speaker 2>you chot just so because it's a pain to do once,

567
00:30:15.559 --> 00:30:16.920
<v Speaker 2>but it's in a script. You're never going to type

568
00:30:16.960 --> 00:30:21.079
<v Speaker 2>it again. But when you go to read it, holy man. Yeah.

569
00:30:21.440 --> 00:30:24.519
<v Speaker 3>I also suspect that you're you're doing a great deal

570
00:30:24.519 --> 00:30:27.759
<v Speaker 3>of good for any AI usage that that script would

571
00:30:27.759 --> 00:30:31.599
<v Speaker 3>ever have. Yeah, I imagine either evaluation or to use

572
00:30:31.640 --> 00:30:33.319
<v Speaker 3>it to find out what it's doing. To use it.

573
00:30:33.920 --> 00:30:36.759
<v Speaker 3>For example, you might look at a bunch of scripts

574
00:30:36.759 --> 00:30:40.000
<v Speaker 3>to say, what are the configuration files. So for that

575
00:30:40.079 --> 00:30:42.519
<v Speaker 3>kind of work, I think that you're way far ahead

576
00:30:42.599 --> 00:30:45.119
<v Speaker 3>if you're using the dash DASH can fig and say

577
00:30:45.119 --> 00:30:47.759
<v Speaker 3>a dash C. Even though in theory the AI could

578
00:30:47.759 --> 00:30:50.759
<v Speaker 3>work it back, it also should.

579
00:30:50.480 --> 00:30:52.839
<v Speaker 2>Be able to do you'd think it can. It's just

580
00:30:52.839 --> 00:30:53.480
<v Speaker 2>one less step.

581
00:30:53.599 --> 00:30:57.240
<v Speaker 3>Well, right now today we don't yet have that open

582
00:30:57.240 --> 00:30:59.279
<v Speaker 3>sale I at so we don't have a guaranteed way

583
00:30:59.319 --> 00:31:02.680
<v Speaker 3>for it to get to the actual intent of that

584
00:31:02.759 --> 00:31:06.559
<v Speaker 3>particular domain specific language and what does C mean for

585
00:31:06.799 --> 00:31:10.319
<v Speaker 3>this particular command and so because we don't yet have

586
00:31:10.359 --> 00:31:13.880
<v Speaker 3>a solid pipeline there, I actually think you get better

587
00:31:13.920 --> 00:31:16.839
<v Speaker 3>results as well as being easier to read when AI

588
00:31:16.960 --> 00:31:17.480
<v Speaker 3>is involved.

589
00:31:17.599 --> 00:31:20.039
<v Speaker 2>That's interesting. Okay, why don't we take a break. I

590
00:31:20.119 --> 00:31:26.279
<v Speaker 2>got some questions after that sounds good, and we're back.

591
00:31:26.319 --> 00:31:29.240
<v Speaker 2>It's dot at Rock's amateur Campbell. That's Carl Franklin. Hey,

592
00:31:29.599 --> 00:31:33.319
<v Speaker 2>hanging with our friend Kathleen Dollard after entirely too long

593
00:31:34.079 --> 00:31:38.319
<v Speaker 2>and were just digging in on you know, the whole

594
00:31:38.359 --> 00:31:41.119
<v Speaker 2>wave of CLI came from the open source side, and

595
00:31:41.480 --> 00:31:46.480
<v Speaker 2>to me, it always was about appealing to non ide

596
00:31:46.640 --> 00:31:50.519
<v Speaker 2>developers like they, especially the younger generation of web developers

597
00:31:50.559 --> 00:31:52.880
<v Speaker 2>who never went into visual studio that were used to

598
00:31:52.960 --> 00:31:55.039
<v Speaker 2>rolling their owns, and here was a way for them

599
00:31:55.079 --> 00:31:56.839
<v Speaker 2>to building DOT that they they're familiar with.

600
00:31:57.000 --> 00:31:59.599
<v Speaker 3>I think that's true, but I also think that that

601
00:31:59.799 --> 00:32:03.079
<v Speaker 3>it's also better for certain things. So if you look

602
00:32:03.160 --> 00:32:05.799
<v Speaker 3>at we use the dot nea clig and that GET

603
00:32:05.839 --> 00:32:07.799
<v Speaker 3>is equally true and GET, it's just it's not as

604
00:32:07.839 --> 00:32:11.200
<v Speaker 3>structured quite as well as dot cli, I think. So

605
00:32:11.279 --> 00:32:15.279
<v Speaker 3>the CLI is huge. It's actually quite large. There's I

606
00:32:15.319 --> 00:32:18.440
<v Speaker 3>don't know, one hundred, one hundred and fifty different options

607
00:32:18.480 --> 00:32:21.599
<v Speaker 3>on different commands all stuffed in there, and that maybe

608
00:32:21.599 --> 00:32:24.720
<v Speaker 3>doesn't include new geed and net new has an entire

609
00:32:24.759 --> 00:32:26.640
<v Speaker 3>open system behind it of all the templates.

610
00:32:26.720 --> 00:32:27.200
<v Speaker 2>It's huge.

611
00:32:27.200 --> 00:32:30.599
<v Speaker 3>It's absolutely huge. So if you were just take a

612
00:32:30.640 --> 00:32:32.720
<v Speaker 3>second and think about what the UI would look like

613
00:32:32.720 --> 00:32:33.079
<v Speaker 3>if it was.

614
00:32:33.039 --> 00:32:38.279
<v Speaker 4>A good options It was a very telling thing that

615
00:32:38.359 --> 00:32:41.920
<v Speaker 4>happened around I don't know if it was PARASHAWM guessing

616
00:32:41.960 --> 00:32:44.680
<v Speaker 4>it was, but it might have predated Parashel where some

617
00:32:44.759 --> 00:32:47.160
<v Speaker 4>of the work for it professionals.

618
00:32:47.160 --> 00:32:50.839
<v Speaker 3>The people back when we had it pro folks. They

619
00:32:51.440 --> 00:32:53.960
<v Speaker 3>they had started they went to Gooey's and then they

620
00:32:54.000 --> 00:32:56.319
<v Speaker 3>started having the real command line that would be the

621
00:32:56.359 --> 00:32:58.880
<v Speaker 3>same thing at the bottom of the screens in many

622
00:32:58.880 --> 00:33:01.319
<v Speaker 3>of the tools, because yeah, you really needed that. Both

623
00:33:01.359 --> 00:33:05.279
<v Speaker 3>the build scripts 'very important, but also because there comes

624
00:33:05.319 --> 00:33:08.400
<v Speaker 3>a point that just trying to assess the information that's

625
00:33:08.400 --> 00:33:12.400
<v Speaker 3>coming at you, and there's this very small thing that

626
00:33:12.480 --> 00:33:16.839
<v Speaker 3>salies do really well that is not obviously importance of,

627
00:33:17.160 --> 00:33:19.680
<v Speaker 3>and that is defaults. So if you look at that

628
00:33:19.720 --> 00:33:22.519
<v Speaker 3>dot neit build command that's inside your script and you

629
00:33:22.599 --> 00:33:26.759
<v Speaker 3>do or do not see a config then that's important information. Okay,

630
00:33:26.799 --> 00:33:29.759
<v Speaker 3>so that's very easy, and so a configure you're going

631
00:33:29.839 --> 00:33:32.880
<v Speaker 3>to probably have. Okay, that's you know, that's most likely

632
00:33:33.160 --> 00:33:35.000
<v Speaker 3>you're going to have it. But there's a whole lot

633
00:33:35.000 --> 00:33:36.559
<v Speaker 3>of other things there, like what your run time is,

634
00:33:36.640 --> 00:33:40.720
<v Speaker 3>or what actually what the projects are. Are you just

635
00:33:40.759 --> 00:33:42.640
<v Speaker 3>going to build into this directory and move to the

636
00:33:42.640 --> 00:33:45.160
<v Speaker 3>directory or are you're going to stay what the project is.

637
00:33:45.160 --> 00:33:47.240
<v Speaker 3>There's just a ton of things there that either are

638
00:33:47.240 --> 00:33:50.119
<v Speaker 3>present or absent. But when you look at a guy,

639
00:33:50.400 --> 00:33:53.480
<v Speaker 3>you don't have that ability to say, these are the

640
00:33:53.519 --> 00:33:56.559
<v Speaker 3>things that are special about this particular case. And that's

641
00:33:56.599 --> 00:33:58.960
<v Speaker 3>what a default is. It's what is special about this

642
00:33:59.039 --> 00:34:04.000
<v Speaker 3>particular case. And nobody's ever really built gooey's that say,

643
00:34:04.079 --> 00:34:05.799
<v Speaker 3>you know, the bread green stuff is all the stuff

644
00:34:05.799 --> 00:34:09.320
<v Speaker 3>that's that's not default, right, I've never seen that, And

645
00:34:09.400 --> 00:34:11.119
<v Speaker 3>in fact, in a gooey you generally can't tell the

646
00:34:11.119 --> 00:34:13.239
<v Speaker 3>difference because if you have a zero that's a default

647
00:34:13.440 --> 00:34:15.800
<v Speaker 3>versus a zero somebody entered, it looks.

648
00:34:15.519 --> 00:34:18.199
<v Speaker 2>Just the same, exactly the same. That's a great insight.

649
00:34:18.360 --> 00:34:18.599
<v Speaker 1>You know.

650
00:34:18.840 --> 00:34:21.800
<v Speaker 2>The neat thing about parameters is they're all intentional. You

651
00:34:21.840 --> 00:34:23.880
<v Speaker 2>wouldn't put them if they weren't optional.

652
00:34:23.880 --> 00:34:27.800
<v Speaker 3>Any pleasure using optional parameters, that's absolutely true, and in clized.

653
00:34:27.960 --> 00:34:29.800
<v Speaker 3>You only put the things that you need to put. No,

654
00:34:29.920 --> 00:34:31.760
<v Speaker 3>I don't know anybody who just says, oh, for fun,

655
00:34:31.760 --> 00:34:33.199
<v Speaker 3>I'm going to go ahead and add a few extra

656
00:34:33.239 --> 00:34:35.760
<v Speaker 3>things when they're typing in to use a CEL.

657
00:34:35.920 --> 00:34:38.440
<v Speaker 2>Yeah, that's a mean person. You don't like that person.

658
00:34:38.519 --> 00:34:41.280
<v Speaker 2>Don't do that. Only put in parameters that matter, especially.

659
00:34:40.920 --> 00:34:43.119
<v Speaker 3>If they do with scripts. No, you don't, you don't,

660
00:34:43.199 --> 00:34:43.480
<v Speaker 3>you don't.

661
00:34:43.519 --> 00:34:45.719
<v Speaker 2>Yeah, it's a great you know. The other obvious one

662
00:34:45.800 --> 00:34:48.679
<v Speaker 2>is it's really hard to keep multiple goooyes across multiple

663
00:34:48.679 --> 00:34:52.920
<v Speaker 2>people all in sync. For configuration, where a batch file

664
00:34:52.960 --> 00:34:55.000
<v Speaker 2>sitting in a folder that everybody can access, that is

665
00:34:55.039 --> 00:34:58.960
<v Speaker 2>the only way to build. Then yeah, you know everybody

666
00:34:59.000 --> 00:35:01.519
<v Speaker 2>literally runs the same piece of code.

667
00:35:01.159 --> 00:35:03.199
<v Speaker 3>And it fits in so well and with such a

668
00:35:03.199 --> 00:35:06.559
<v Speaker 3>good driver for the SDK design and the overall design

669
00:35:06.599 --> 00:35:09.480
<v Speaker 3>of all of it. Like you know, when we when

670
00:35:09.480 --> 00:35:15.320
<v Speaker 3>they went to do the the file based applications, it's like, okay,

671
00:35:15.360 --> 00:35:17.039
<v Speaker 3>we know what to do. We don't have to sit

672
00:35:17.079 --> 00:35:19.599
<v Speaker 3>down and design anything. So we know that we want

673
00:35:19.599 --> 00:35:22.280
<v Speaker 3>to say dot net build blah blah, dot c s. Okay,

674
00:35:22.559 --> 00:35:24.480
<v Speaker 3>that's what it's got to be. And now how do

675
00:35:24.519 --> 00:35:27.000
<v Speaker 3>we make that work? And so it was a huge,

676
00:35:27.239 --> 00:35:30.559
<v Speaker 3>huge organizing and driving factor. Now we had some mistakes

677
00:35:30.639 --> 00:35:34.599
<v Speaker 3>that came in actually creamy, but it's okay, Like we

678
00:35:34.679 --> 00:35:36.440
<v Speaker 3>used to be able used to have to say dot

679
00:35:36.519 --> 00:35:39.239
<v Speaker 3>net AD. I think it was a AD project and

680
00:35:39.360 --> 00:35:42.440
<v Speaker 3>package AD. So but there were two almost the same

681
00:35:42.440 --> 00:35:45.599
<v Speaker 3>thing that we just switched and that's not removed. So

682
00:35:45.679 --> 00:35:50.320
<v Speaker 3>now the noun verb completely. One everybody's doing CLI is

683
00:35:50.400 --> 00:35:53.519
<v Speaker 3>do noun verb. Reach out to me if you need

684
00:35:53.599 --> 00:35:56.000
<v Speaker 3>to understand how to do obsolescence in the CLR, because

685
00:35:56.199 --> 00:35:57.800
<v Speaker 3>it is a it is a tricky thing to do,

686
00:35:57.840 --> 00:35:58.920
<v Speaker 3>but you can do it well.

687
00:35:59.039 --> 00:36:01.719
<v Speaker 2>It did bring up the question you know, now that

688
00:36:01.719 --> 00:36:03.679
<v Speaker 2>you've talked about system, command line and so forth in

689
00:36:03.719 --> 00:36:06.880
<v Speaker 2>this tooling, who should be building CLI's, Like I get

690
00:36:06.880 --> 00:36:10.880
<v Speaker 2>that you should build clish you think like this, and

691
00:36:10.920 --> 00:36:13.679
<v Speaker 2>you're building tools always going to use. But who should

692
00:36:13.679 --> 00:36:14.639
<v Speaker 2>be making a CLI?

693
00:36:15.360 --> 00:36:18.280
<v Speaker 1>I can give you one right now, just people who

694
00:36:18.280 --> 00:36:23.400
<v Speaker 1>are using AI agents to do things that you typically

695
00:36:23.440 --> 00:36:26.840
<v Speaker 1>have to build a CLI around. Right Get hub Copilot

696
00:36:26.880 --> 00:36:28.000
<v Speaker 1>is a perfect example.

697
00:36:28.760 --> 00:36:30.920
<v Speaker 3>So I think that there's a bunch of answers. One

698
00:36:30.960 --> 00:36:33.639
<v Speaker 3>is who's your audience? So if your audience wants scoies,

699
00:36:33.679 --> 00:36:36.360
<v Speaker 3>your audience wants scooies. If your audience wants the people

700
00:36:36.440 --> 00:36:38.800
<v Speaker 3>going to use your app want a command line app,

701
00:36:38.800 --> 00:36:41.840
<v Speaker 3>they want a command line app. I'm of the opinion

702
00:36:42.039 --> 00:36:45.880
<v Speaker 3>that almost everything should be designed CLI first and then

703
00:36:45.880 --> 00:36:48.559
<v Speaker 3>can we second, because in that way you have the

704
00:36:48.679 --> 00:36:51.920
<v Speaker 3>organizing force of the CLI, which I mean, like I said,

705
00:36:51.960 --> 00:36:55.800
<v Speaker 3>you just it was so important in the net s

706
00:36:55.840 --> 00:36:59.360
<v Speaker 3>to case it's a nightmare. It was we made it

707
00:36:59.360 --> 00:37:00.960
<v Speaker 3>better when we at the old dot net new and

708
00:37:00.960 --> 00:37:02.679
<v Speaker 3>got the new dot net new. And there's some things

709
00:37:02.760 --> 00:37:06.280
<v Speaker 3>New gets relationship, you know, handing off to new get

710
00:37:06.320 --> 00:37:07.719
<v Speaker 3>got better, and a bunch of stuff got better of

711
00:37:07.760 --> 00:37:11.000
<v Speaker 3>the last eight years. Somebody else runs it now. Chad

712
00:37:11.039 --> 00:37:16.880
<v Speaker 3>husk Is is the person who does that. But the

713
00:37:16.920 --> 00:37:19.960
<v Speaker 3>part of it. The first answer is what do people want?

714
00:37:20.039 --> 00:37:23.199
<v Speaker 3>The second answer is, unless you have a really I

715
00:37:23.239 --> 00:37:25.199
<v Speaker 3>know this needs to be a guy in this way,

716
00:37:25.360 --> 00:37:27.480
<v Speaker 3>I want to design the guy first. Unless you know

717
00:37:27.519 --> 00:37:30.119
<v Speaker 3>you want to design guy first, design CLI first, and

718
00:37:30.199 --> 00:37:33.559
<v Speaker 3>it helps your testing, It helps your prototyping, it helps

719
00:37:33.599 --> 00:37:37.559
<v Speaker 3>you communicate with your stakeholders without worrying about whether the

720
00:37:37.559 --> 00:37:39.800
<v Speaker 3>button is blue. There's just a ton of things you

721
00:37:39.880 --> 00:37:43.639
<v Speaker 3>gain from being CLI first in your overall app design.

722
00:37:43.679 --> 00:37:46.440
<v Speaker 3>Also keeps your apps from being too big, because most

723
00:37:46.480 --> 00:37:49.760
<v Speaker 3>of us look at something like we're you just getting

724
00:37:49.800 --> 00:37:51.760
<v Speaker 3>dot net. They're about as big as you can get

725
00:37:52.480 --> 00:37:55.159
<v Speaker 3>as your CLI is actually not a single CLI. It's

726
00:37:55.159 --> 00:37:57.519
<v Speaker 3>a breaking off point into a whole bunch of little CLIs.

727
00:37:58.199 --> 00:38:01.760
<v Speaker 3>It's a prefix you can only get so big, and

728
00:38:02.280 --> 00:38:03.639
<v Speaker 3>it kind of keeps you with that size.

729
00:38:03.920 --> 00:38:06.320
<v Speaker 2>And that granularity is super useful too.

730
00:38:06.559 --> 00:38:09.280
<v Speaker 3>Yeah, it's like, how should we break this up? Now

731
00:38:09.360 --> 00:38:12.519
<v Speaker 3>becomes a good question for a good reason. Instead of

732
00:38:12.840 --> 00:38:15.360
<v Speaker 3>a guy app which is just going to keep growing

733
00:38:15.440 --> 00:38:17.840
<v Speaker 3>like a big amima until it's taken over your entire

734
00:38:17.880 --> 00:38:20.880
<v Speaker 3>company if it's a medium sized company, and that's never

735
00:38:20.920 --> 00:38:23.000
<v Speaker 3>good because then your ability to change to the next

736
00:38:23.000 --> 00:38:25.199
<v Speaker 3>great thing is drops zero.

737
00:38:25.400 --> 00:38:28.239
<v Speaker 2>Right, that makes a lot of sense. Yeah, yeah, so

738
00:38:28.440 --> 00:38:31.880
<v Speaker 2>I think, I mean, I hate. I really wanted to

739
00:38:31.920 --> 00:38:34.599
<v Speaker 2>push on this idea that CLIs are all about AI,

740
00:38:34.840 --> 00:38:36.519
<v Speaker 2>that there's a bunch of reasons you were going out

741
00:38:36.599 --> 00:38:40.000
<v Speaker 2>CLIs anyway, going way back to the DevOps movement and

742
00:38:40.039 --> 00:38:43.400
<v Speaker 2>so forth. But now it really opens the door to

743
00:38:43.519 --> 00:38:46.440
<v Speaker 2>these new tools and the way they want to work

744
00:38:46.480 --> 00:38:46.920
<v Speaker 2>as well.

745
00:38:47.119 --> 00:38:49.559
<v Speaker 3>Yeah, it really is. And that's why things I could

746
00:38:49.639 --> 00:38:53.079
<v Speaker 3>in CLI looking at maybe some more expressiveness, looking at

747
00:38:53.119 --> 00:38:55.920
<v Speaker 3>not being afraid to change. I'm no longer afraid to

748
00:38:55.960 --> 00:38:57.559
<v Speaker 3>change the positic standard. I will not do it on

749
00:38:57.599 --> 00:39:00.159
<v Speaker 3>my own, But I think that as a community, as

750
00:39:00.159 --> 00:39:02.440
<v Speaker 3>an ecosystem, we need to take a look and say

751
00:39:02.639 --> 00:39:06.480
<v Speaker 3>can we can we either solidify some things other than

752
00:39:06.960 --> 00:39:10.079
<v Speaker 3>H or can we you know, what can we do

753
00:39:10.199 --> 00:39:14.719
<v Speaker 3>here to find some space to grow alternate you know,

754
00:39:14.760 --> 00:39:19.239
<v Speaker 3>alternate help is a really obvious one. And prompting prompting

755
00:39:19.280 --> 00:39:22.639
<v Speaker 3>for required values being part of your part of your

756
00:39:22.840 --> 00:39:25.960
<v Speaker 3>part system, not something you have to write for every

757
00:39:26.000 --> 00:39:28.519
<v Speaker 3>application yourself. If you want it, it'd be just a

758
00:39:28.639 --> 00:39:29.639
<v Speaker 3>configuration switch.

759
00:39:30.079 --> 00:39:32.800
<v Speaker 2>So yeah, Yeah, it's interesting to think because that is

760
00:39:32.840 --> 00:39:36.559
<v Speaker 2>such an old standard that maybe needs to be modernized

761
00:39:36.840 --> 00:39:40.159
<v Speaker 2>because of these new tools, so that we have fewer

762
00:39:40.159 --> 00:39:41.199
<v Speaker 2>problems going forward.

763
00:39:41.360 --> 00:39:44.920
<v Speaker 3>Yeah, and I think everything that's there will stay forever.

764
00:39:45.079 --> 00:39:46.960
<v Speaker 3>I don't think anyone's going to literally.

765
00:39:47.000 --> 00:39:48.000
<v Speaker 2>Change it, right.

766
00:39:48.639 --> 00:39:50.920
<v Speaker 3>You know, I said I'm not afraid to change it,

767
00:39:50.960 --> 00:39:53.360
<v Speaker 3>but I really mean I'm not afraid to talk about

768
00:39:53.440 --> 00:39:56.239
<v Speaker 3>extending it to see whether there's buy in on some

769
00:39:56.320 --> 00:40:00.400
<v Speaker 3>of the things that we could do if we extended it,

770
00:40:00.440 --> 00:40:03.920
<v Speaker 3>as simple as if we're going to have help be

771
00:40:04.079 --> 00:40:06.840
<v Speaker 3>in a more structured format to make it easier for AI,

772
00:40:07.039 --> 00:40:09.440
<v Speaker 3>easier for some other things. Oh my gosh, can we

773
00:40:09.440 --> 00:40:12.079
<v Speaker 3>all use the same format? That's what open cli is

774
00:40:12.159 --> 00:40:15.599
<v Speaker 3>ultimately about. You know, it's got lots of things going

775
00:40:15.639 --> 00:40:17.800
<v Speaker 3>on with it, but that is, you know, we need

776
00:40:17.840 --> 00:40:19.840
<v Speaker 3>to use the same the same structure there.

777
00:40:19.880 --> 00:40:23.599
<v Speaker 1>You mentioned obsoleting a few minutes ago. Yeah, is that

778
00:40:23.679 --> 00:40:26.159
<v Speaker 1>the same as deprecating like, well, we don't use that

779
00:40:26.239 --> 00:40:28.920
<v Speaker 1>anymore and now we use this pretty much?

780
00:40:29.000 --> 00:40:33.320
<v Speaker 3>Yes, that that is really the answer, because unless something

781
00:40:33.599 --> 00:40:38.480
<v Speaker 3>becomes strictly dangerous strictly you really need not to use this,

782
00:40:38.679 --> 00:40:41.599
<v Speaker 3>and unless that happens, you can never remove anything because

783
00:40:41.599 --> 00:40:43.679
<v Speaker 3>you're going to break the scripts. Richard was talking about

784
00:40:44.000 --> 00:40:47.559
<v Speaker 3>that all these people you just think about now thet

785
00:40:47.639 --> 00:40:50.679
<v Speaker 3>net scripts. Of course that's massively in use. There's absolutely

786
00:40:51.119 --> 00:40:54.400
<v Speaker 3>kind of remove any feature ever, which is why it

787
00:40:54.440 --> 00:40:57.000
<v Speaker 3>was so hard to get this verb now and thing

788
00:40:57.159 --> 00:40:59.960
<v Speaker 3>fixed because so many people said we can't have to

789
00:41:00.119 --> 00:41:02.679
<v Speaker 3>ways to do something, and we're like, well, we'll never

790
00:41:02.719 --> 00:41:04.480
<v Speaker 3>fix it then, so can we please have two ways

791
00:41:04.519 --> 00:41:08.559
<v Speaker 3>to do something? And literally it's taking what is is

792
00:41:08.719 --> 00:41:11.239
<v Speaker 3>the old way to do it that now is obsolete

793
00:41:11.480 --> 00:41:13.960
<v Speaker 3>and just hiding it. That's number one. Just don't put

794
00:41:14.000 --> 00:41:17.960
<v Speaker 3>it in help, that's number one. And then the next step,

795
00:41:18.079 --> 00:41:21.760
<v Speaker 3>which the dot netcli, I think mini salies are ready for,

796
00:41:22.119 --> 00:41:24.159
<v Speaker 3>is to have a warning. It is to have the replacement,

797
00:41:24.199 --> 00:41:26.400
<v Speaker 3>and that is just so. I think you may see

798
00:41:26.400 --> 00:41:29.679
<v Speaker 3>that within the dot NETCLI in the mid future. I'm

799
00:41:29.679 --> 00:41:31.800
<v Speaker 3>not sure this year, but soon I think that's going

800
00:41:31.840 --> 00:41:34.079
<v Speaker 3>to be there. I'm not sure if they're working on

801
00:41:34.119 --> 00:41:34.559
<v Speaker 3>it right.

802
00:41:34.400 --> 00:41:34.800
<v Speaker 1>Now or not.

803
00:41:35.079 --> 00:41:38.599
<v Speaker 2>When you think about security around CLIs like do we

804
00:41:38.800 --> 00:41:43.639
<v Speaker 2>need to have a log in or some tiers of

805
00:41:43.800 --> 00:41:48.159
<v Speaker 2>authority for different commands in CLIs it's.

806
00:41:47.719 --> 00:41:51.920
<v Speaker 3>Not my space right now. The answer is that kind

807
00:41:51.920 --> 00:41:55.480
<v Speaker 3>of the the person you are, the framework that you're in,

808
00:41:55.559 --> 00:41:59.039
<v Speaker 3>the things seem to be working. But as AI comes in,

809
00:41:59.079 --> 00:42:00.840
<v Speaker 3>will it I don't know. I don't know the answer

810
00:42:00.840 --> 00:42:01.159
<v Speaker 3>to that.

811
00:42:01.559 --> 00:42:05.079
<v Speaker 2>It's currently the CLI runs in the context of the

812
00:42:05.119 --> 00:42:07.719
<v Speaker 2>caller exactly. And so you know this is where if

813
00:42:07.760 --> 00:42:09.840
<v Speaker 2>you live in a Linux line, you would pseudo before

814
00:42:09.920 --> 00:42:13.920
<v Speaker 2>running a CLI to promote your your rights, and then

815
00:42:14.000 --> 00:42:16.920
<v Speaker 2>the CLI runs in a higher level, but.

816
00:42:17.360 --> 00:42:20.440
<v Speaker 3>Hopefully in a very thoughtful way, and only pseudo when

817
00:42:20.480 --> 00:42:24.000
<v Speaker 3>you actually need to because it's holding you say, and

818
00:42:24.119 --> 00:42:28.079
<v Speaker 3>otherwise we may wind up with some rapper basically little

819
00:42:28.559 --> 00:42:32.239
<v Speaker 3>terminal wrappers or repels that can hold more security for

820
00:42:32.280 --> 00:42:34.199
<v Speaker 3>certain things that need it. That's another way, and that's

821
00:42:34.239 --> 00:42:37.119
<v Speaker 3>another place to standards would be really important and valuable.

822
00:42:36.920 --> 00:42:39.400
<v Speaker 2>Right that you could be a parameter that carries a

823
00:42:39.440 --> 00:42:43.639
<v Speaker 2>token that kind of thing, right, question or something.

824
00:42:44.639 --> 00:42:46.760
<v Speaker 3>So these are the kinds of things that we we

825
00:42:46.880 --> 00:42:48.519
<v Speaker 3>kind of got stuck in the standard and said, well,

826
00:42:48.519 --> 00:42:50.119
<v Speaker 3>we're not going to think about these new things. We're

827
00:42:50.119 --> 00:42:52.480
<v Speaker 3>not going to think about ways to change. And there's

828
00:42:52.519 --> 00:42:56.920
<v Speaker 3>a lot of answers to that question, including environment variables

829
00:42:56.960 --> 00:42:59.360
<v Speaker 3>that have you know, and having keys that have a

830
00:42:59.400 --> 00:43:02.159
<v Speaker 3>short lifetime. You know, there's a ton of different things

831
00:43:02.159 --> 00:43:04.880
<v Speaker 3>that could be done, and what's the best thing. I

832
00:43:04.920 --> 00:43:07.039
<v Speaker 3>am certainly not the person to make a guess as

833
00:43:07.039 --> 00:43:09.920
<v Speaker 3>to what's the best answer to have the most security

834
00:43:09.960 --> 00:43:12.159
<v Speaker 3>with the least impact, And there might be more than

835
00:43:12.199 --> 00:43:12.679
<v Speaker 3>one answer.

836
00:43:12.719 --> 00:43:15.800
<v Speaker 2>I'm sure I do not want the CLI to generate

837
00:43:15.840 --> 00:43:19.679
<v Speaker 2>a prompt for a password, That's what I'm sure of. Yeah,

838
00:43:19.719 --> 00:43:22.800
<v Speaker 2>you know, the same way invoking an SSH call or

839
00:43:22.840 --> 00:43:25.960
<v Speaker 2>a Bash call might have a security prompt in it. Well,

840
00:43:26.079 --> 00:43:28.880
<v Speaker 2>the cl I should not behave like that. That is bad.

841
00:43:29.159 --> 00:43:32.039
<v Speaker 3>Yeah, yeah, and thank you, because I do not yet

842
00:43:32.119 --> 00:43:34.719
<v Speaker 3>in this project, this Dragon Fruit too, I do not

843
00:43:34.840 --> 00:43:38.079
<v Speaker 3>yet have a special password type to ensure that it's

844
00:43:38.119 --> 00:43:40.360
<v Speaker 3>never prompted. And so yeah, thank you.

845
00:43:40.400 --> 00:43:43.440
<v Speaker 1>Well, in the Windows guey world, when you need something

846
00:43:43.480 --> 00:43:47.239
<v Speaker 1>that requires a higher level of context, it asks pops

847
00:43:47.239 --> 00:43:50.119
<v Speaker 1>a dialogue, you know, POPSI dialogue. It has been doing

848
00:43:50.159 --> 00:43:53.840
<v Speaker 1>that since what XP service back too, right.

849
00:43:54.039 --> 00:43:56.960
<v Speaker 2>Yeah, well that was just UAC but even before that.

850
00:43:57.000 --> 00:43:59.519
<v Speaker 2>But you know, you make the point. One of the

851
00:43:59.519 --> 00:44:02.000
<v Speaker 2>things about gooy is that you can layer on interface

852
00:44:02.079 --> 00:44:04.039
<v Speaker 2>like this and interrupt.

853
00:44:04.000 --> 00:44:06.679
<v Speaker 1>And everything stops and you can't press enter. You actually

854
00:44:06.679 --> 00:44:07.280
<v Speaker 1>have to click.

855
00:44:07.360 --> 00:44:08.599
<v Speaker 2>You can't do a damn thing, you know.

856
00:44:08.679 --> 00:44:11.440
<v Speaker 1>You have to click allow yeah.

857
00:44:10.840 --> 00:44:14.000
<v Speaker 3>Or okay, right, Well, we can actually do that. The

858
00:44:14.039 --> 00:44:16.840
<v Speaker 3>problem is to scripts, so we could do that, but

859
00:44:16.880 --> 00:44:19.679
<v Speaker 3>then while scripts there's two actual problems with the scripts.

860
00:44:19.679 --> 00:44:22.159
<v Speaker 3>One is if you do an interactive mode on a

861
00:44:22.239 --> 00:44:25.280
<v Speaker 3>command while it's in a script, it'll hang the entire session.

862
00:44:25.639 --> 00:44:29.360
<v Speaker 3>So that's bad. And so then so in that case

863
00:44:29.400 --> 00:44:33.119
<v Speaker 3>you couldn't get any approval, and so knowing whether you're

864
00:44:33.119 --> 00:44:35.920
<v Speaker 3>in a script becomes then a security question. And right now,

865
00:44:36.039 --> 00:44:38.760
<v Speaker 3>knowing whether you're in interactive mode is kind of like

866
00:44:39.239 --> 00:44:42.079
<v Speaker 3>we can almost always get right. Chet worked on that

867
00:44:42.239 --> 00:44:46.639
<v Speaker 3>to get it in the dot net. In the dot

868
00:44:46.679 --> 00:44:49.280
<v Speaker 3>necli now does know whether you're in interactive mode and

869
00:44:49.320 --> 00:44:52.000
<v Speaker 3>does behave a little bit differently if it's an interactive

870
00:44:52.039 --> 00:44:53.559
<v Speaker 3>mode now, which is great, right.

871
00:44:53.719 --> 00:44:57.079
<v Speaker 1>One thing that's in the newer version of get hub

872
00:44:57.159 --> 00:45:02.280
<v Speaker 1>Copilot's CLI is this slash allowed dash all okay, which

873
00:45:02.480 --> 00:45:07.039
<v Speaker 1>essentially says, don't prompt me for permission when you want

874
00:45:07.039 --> 00:45:09.239
<v Speaker 1>to do something, just go ahead and do it and

875
00:45:09.679 --> 00:45:13.159
<v Speaker 1>I saw that In'm like, well, that's very convenient, and

876
00:45:13.199 --> 00:45:16.559
<v Speaker 1>you know, convenience is the enemy of security, right, I

877
00:45:16.679 --> 00:45:18.719
<v Speaker 1>want to know exactly what you're I don't want to

878
00:45:18.760 --> 00:45:22.800
<v Speaker 1>see bunch of stuff fly by. Yeah, I want to

879
00:45:22.800 --> 00:45:24.639
<v Speaker 1>know exactly what you're going to do, so I don't

880
00:45:24.719 --> 00:45:25.440
<v Speaker 1>use that mode.

881
00:45:26.000 --> 00:45:28.559
<v Speaker 2>Yeah, yeah, yeah, it's just a I don't want to

882
00:45:28.599 --> 00:45:32.280
<v Speaker 2>break automation either, Like, yeah, it's a challenge of writing

883
00:45:32.320 --> 00:45:33.440
<v Speaker 2>good scripts.

884
00:45:33.559 --> 00:45:36.000
<v Speaker 3>And well it is. And this is you know, I

885
00:45:36.079 --> 00:45:38.199
<v Speaker 3>think all these problems are solvable if we look at

886
00:45:38.280 --> 00:45:42.039
<v Speaker 3>them through the eyes of twenty twenty six. And you know,

887
00:45:42.199 --> 00:45:44.039
<v Speaker 3>I should have looked up how all that standard is.

888
00:45:44.039 --> 00:45:46.880
<v Speaker 3>I didn't. It's absolutely ancient and hysterical. It's nineteen ninety two,

889
00:45:46.880 --> 00:45:49.800
<v Speaker 3>but I don't think it is. But it's it's it's

890
00:45:49.880 --> 00:45:53.079
<v Speaker 3>quite old, and it is. It has served very well.

891
00:45:53.159 --> 00:45:56.519
<v Speaker 3>I have nothing bad to say about it except that

892
00:45:56.719 --> 00:45:58.960
<v Speaker 3>it's time for us to it's time for us to

893
00:45:58.960 --> 00:46:03.320
<v Speaker 3>look forward, modernized. And there's one thing in it that

894
00:46:03.800 --> 00:46:06.239
<v Speaker 3>I personally dislike but I doubt it'll change, which is

895
00:46:06.239 --> 00:46:09.760
<v Speaker 3>the ability to smash different flags together. And you know

896
00:46:09.840 --> 00:46:12.159
<v Speaker 3>that's the only thing. It's called pozis bundling and let

897
00:46:12.320 --> 00:46:15.440
<v Speaker 3>let you do like dash ac if A is a

898
00:46:15.480 --> 00:46:17.239
<v Speaker 3>flag and C is a flag. I don't like that

899
00:46:17.320 --> 00:46:19.559
<v Speaker 3>very much. But other than that, you know, it's a

900
00:46:19.599 --> 00:46:23.039
<v Speaker 3>really good standard and it has served really, really well,

901
00:46:23.079 --> 00:46:25.039
<v Speaker 3>and nobody would have ever thought about the kinds of

902
00:46:25.079 --> 00:46:28.079
<v Speaker 3>things that we're thinking about now way back then, and

903
00:46:28.159 --> 00:46:29.840
<v Speaker 3>it's just time to take another look at it and

904
00:46:29.840 --> 00:46:31.840
<v Speaker 3>open sealies doing that. I don't think it's the only

905
00:46:31.880 --> 00:46:34.280
<v Speaker 3>front that we're going to be looking at that, although

906
00:46:34.320 --> 00:46:36.800
<v Speaker 3>perhaps that will be the venue where we can take

907
00:46:36.800 --> 00:46:39.559
<v Speaker 3>a look at a lot of different things and you know,

908
00:46:40.039 --> 00:46:41.920
<v Speaker 3>kind of update. It's time for that.

909
00:46:42.800 --> 00:46:46.440
<v Speaker 2>Yeah, it does speak to this evolving way of interacting

910
00:46:46.480 --> 00:46:50.639
<v Speaker 2>with software I do. It is really something to watch

911
00:46:50.719 --> 00:46:55.079
<v Speaker 2>an LM write prompts like that, I spit out a

912
00:46:55.159 --> 00:46:56.599
<v Speaker 2>series of commands.

913
00:46:56.639 --> 00:46:59.920
<v Speaker 3>It is, and it's I think it's awesome. It's just

914
00:47:00.119 --> 00:47:04.440
<v Speaker 3>it's a very nice way to communicate, you know, back

915
00:47:04.480 --> 00:47:07.000
<v Speaker 3>and forth, as long as the commands all stay simple

916
00:47:07.119 --> 00:47:10.639
<v Speaker 3>and easy to understand, which it's up to. It's up

917
00:47:10.679 --> 00:47:12.960
<v Speaker 3>to people are writing the CLIs to do that.

918
00:47:13.159 --> 00:47:16.440
<v Speaker 2>So yeah, yeah, and back to that question of who's

919
00:47:16.440 --> 00:47:18.440
<v Speaker 2>writing a CLI and what's for. But like you said,

920
00:47:18.519 --> 00:47:21.039
<v Speaker 2>is any piece of software someone needs to interact with,

921
00:47:21.199 --> 00:47:24.320
<v Speaker 2>you should probably be making the CLI first, then defining

922
00:47:24.360 --> 00:47:26.599
<v Speaker 2>a GOOI or whatever of interfaces you want.

923
00:47:26.760 --> 00:47:28.880
<v Speaker 3>Unless you hear that statement and know what's wrong for

924
00:47:28.960 --> 00:47:32.000
<v Speaker 3>your app, and there are certainly apps that's but if

925
00:47:32.000 --> 00:47:34.159
<v Speaker 3>you don't know what's wrong, think about it. I can't

926
00:47:34.159 --> 00:47:37.920
<v Speaker 3>think about whether that's yeah, I think if it makes sense.

927
00:47:37.840 --> 00:47:38.320
<v Speaker 1>So yeah.

928
00:47:38.400 --> 00:47:40.719
<v Speaker 2>I also saw this with the Azure CLI, which is

929
00:47:40.719 --> 00:47:43.480
<v Speaker 2>that often the new feature shows up the CLI first

930
00:47:43.920 --> 00:47:47.159
<v Speaker 2>and then the portal caught up sometime later. So you know,

931
00:47:47.199 --> 00:47:50.239
<v Speaker 2>the other side of this is you can ship faster

932
00:47:50.440 --> 00:47:54.679
<v Speaker 2>when your interface is just an additional parameter call in

933
00:47:54.760 --> 00:47:57.320
<v Speaker 2>the cl I and it just it takes time to

934
00:47:57.440 --> 00:47:58.599
<v Speaker 2>roll that up into the UX.

935
00:47:59.239 --> 00:48:01.800
<v Speaker 3>Well, it does, and the Asure CLI is probably one

936
00:48:01.800 --> 00:48:03.320
<v Speaker 3>of the easier ones because it has a lot of

937
00:48:03.400 --> 00:48:06.400
<v Speaker 3>standards around. You know, the CLI looks the same across

938
00:48:06.480 --> 00:48:08.599
<v Speaker 3>a whole lot of different A lot of problems are

939
00:48:08.679 --> 00:48:11.400
<v Speaker 3>argon solved in I'm sorry, in the guy. A lot

940
00:48:11.400 --> 00:48:13.239
<v Speaker 3>of problems are solved in that guy. So if you're

941
00:48:13.280 --> 00:48:14.960
<v Speaker 3>going to write to a gouy, it's probably a pretty

942
00:48:14.960 --> 00:48:18.639
<v Speaker 3>easy one. But even so, the cl I allows you

943
00:48:18.719 --> 00:48:20.679
<v Speaker 3>to get through prototype and find out it's even a

944
00:48:20.679 --> 00:48:24.280
<v Speaker 3>good idea before you start putting any any time into

945
00:48:24.320 --> 00:48:26.599
<v Speaker 3>the arrangement of things. You know, you have to start

946
00:48:26.639 --> 00:48:29.960
<v Speaker 3>worrying about your semantics, your words, before you start worrying

947
00:48:29.960 --> 00:48:32.000
<v Speaker 3>about how those words lay out. And I think that's

948
00:48:32.039 --> 00:48:35.239
<v Speaker 3>a really healthy way to look at software, as opposed

949
00:48:35.320 --> 00:48:38.079
<v Speaker 3>to first looking at what's the shape, what's the pretty?

950
00:48:38.119 --> 00:48:39.039
<v Speaker 3>What color should it be?

951
00:48:39.679 --> 00:48:40.320
<v Speaker 2>It's the color?

952
00:48:40.559 --> 00:48:43.159
<v Speaker 3>Yeah, yeah, you know, which is terribly important, even a

953
00:48:43.199 --> 00:48:46.719
<v Speaker 3>guey I mean, you know, I'm not eventually. Eventually I

954
00:48:46.760 --> 00:48:48.679
<v Speaker 3>can't design a UI for the life of me. But

955
00:48:49.000 --> 00:48:51.719
<v Speaker 3>that's decent, A gooey, not a gooey A CLI I

956
00:48:51.719 --> 00:48:52.719
<v Speaker 3>can design fairly much.

957
00:48:53.440 --> 00:48:55.320
<v Speaker 2>What I like about your this whole thinking is like

958
00:48:55.480 --> 00:48:57.920
<v Speaker 2>it's about the functionality exactly.

959
00:48:58.000 --> 00:49:01.480
<v Speaker 3>That's exactly the point. And another thing that can drive

960
00:49:01.519 --> 00:49:03.159
<v Speaker 3>you away from one is if you have a lot

961
00:49:03.159 --> 00:49:05.920
<v Speaker 3>of data, it's not a real easy way to like,

962
00:49:07.079 --> 00:49:10.000
<v Speaker 3>if you're interdoance. You know, if someone has to interdeance

963
00:49:10.000 --> 00:49:12.920
<v Speaker 3>and you can't abbreviate enough to say any four letters

964
00:49:12.920 --> 00:49:15.559
<v Speaker 3>of the goods will be good enough. Yeah, then you know,

965
00:49:16.000 --> 00:49:17.559
<v Speaker 3>because we deal with commits all the time.

966
00:49:18.360 --> 00:49:20.400
<v Speaker 2>Well, now you bring up a great point, which is

967
00:49:20.400 --> 00:49:23.119
<v Speaker 2>that you're if you're thinking CLI first, how does that

968
00:49:23.239 --> 00:49:26.079
<v Speaker 2>change the way you craft parameters?

969
00:49:26.239 --> 00:49:26.719
<v Speaker 3>Exactly?

970
00:49:26.880 --> 00:49:29.079
<v Speaker 2>That's absolutely you would manage data like you don't want

971
00:49:29.079 --> 00:49:30.679
<v Speaker 2>to put that in a prompt, you'd put it in

972
00:49:30.719 --> 00:49:32.119
<v Speaker 2>a file and a porter to the file.

973
00:49:32.360 --> 00:49:35.039
<v Speaker 3>Yeah, yeah, absolutely absolutely.

974
00:49:35.679 --> 00:49:38.599
<v Speaker 2>Is that actually good for a guy or another interface?

975
00:49:38.679 --> 00:49:40.920
<v Speaker 2>I don't know. Like it is interesting to think in

976
00:49:40.960 --> 00:49:42.039
<v Speaker 2>those terms.

977
00:49:42.400 --> 00:49:46.239
<v Speaker 3>It really is. I think it's a good piece to

978
00:49:46.280 --> 00:49:48.840
<v Speaker 3>our conversation. I don't think it's the end of our conversation.

979
00:49:48.960 --> 00:49:51.800
<v Speaker 3>I just think it's a big part particularly conversation we're

980
00:49:51.800 --> 00:49:53.960
<v Speaker 3>having right now. Everything's changing around us and we're all

981
00:49:54.000 --> 00:49:56.719
<v Speaker 3>trying to figureut which way the ground is. And in

982
00:49:56.760 --> 00:49:58.559
<v Speaker 3>that world, I think that this is one of the

983
00:49:58.559 --> 00:50:02.840
<v Speaker 3>grounding pieces is just say I have something I want shared.

984
00:50:03.079 --> 00:50:04.880
<v Speaker 3>This is a way I can share it, and this

985
00:50:04.960 --> 00:50:07.480
<v Speaker 3>is a way that doesn't depend on a service to share, right.

986
00:50:07.599 --> 00:50:09.920
<v Speaker 3>It can certainly be wrapped by a service. That's great.

987
00:50:10.239 --> 00:50:11.719
<v Speaker 3>But if you try to write your service first and

988
00:50:11.719 --> 00:50:14.519
<v Speaker 3>then you write your sale lie second, good luck, because

989
00:50:14.559 --> 00:50:16.400
<v Speaker 3>you've already got too much code in your library. If

990
00:50:16.440 --> 00:50:18.719
<v Speaker 3>you write your library first and then your c. If

991
00:50:18.760 --> 00:50:21.400
<v Speaker 3>you write your CLI, design your sale first, or design

992
00:50:21.400 --> 00:50:24.800
<v Speaker 3>it alongside, then your library may make more sense. Your

993
00:50:25.880 --> 00:50:28.840
<v Speaker 3>your API, your web api may make more sense. You know,

994
00:50:29.039 --> 00:50:31.840
<v Speaker 3>various different pieces of your overall puzzle may make more sense.

995
00:50:32.519 --> 00:50:33.039
<v Speaker 1>Yeah.

996
00:50:33.239 --> 00:50:36.440
<v Speaker 2>Thinking through your parameters before you build your back end,

997
00:50:36.480 --> 00:50:40.440
<v Speaker 2>even at all these places, certainly makes what would it

998
00:50:40.480 --> 00:50:40.840
<v Speaker 2>look like?

999
00:50:41.760 --> 00:50:43.760
<v Speaker 3>Yeah, certainly makes testing easier too.

1000
00:50:45.119 --> 00:50:48.199
<v Speaker 2>Sure, that's very automatable and work through all the different parameters.

1001
00:50:48.239 --> 00:50:50.920
<v Speaker 2>That's that's exciting. That's a great way to think about this, Kathleen.

1002
00:50:50.960 --> 00:50:53.400
<v Speaker 2>As usual, you got my head going.

1003
00:50:54.079 --> 00:50:57.440
<v Speaker 3>Yeah. Well, one thing about the little project I'm working

1004
00:50:57.440 --> 00:51:02.320
<v Speaker 3>on is is if anyone is interested in uh in

1005
00:51:02.719 --> 00:51:04.880
<v Speaker 3>source generators and they want to look at a non

1006
00:51:04.880 --> 00:51:09.800
<v Speaker 3>trivial source generator, some fantastic there's some fantastic blogs out there,

1007
00:51:09.920 --> 00:51:12.760
<v Speaker 3>and I'll send you resources on two of them. On

1008
00:51:13.159 --> 00:51:15.239
<v Speaker 3>if you just want to write Hello World, Hello World

1009
00:51:15.239 --> 00:51:19.000
<v Speaker 3>for source generator is rewriting two storing for moms that

1010
00:51:19.159 --> 00:51:21.519
<v Speaker 3>is the Hello World. And so if you want to

1011
00:51:21.559 --> 00:51:24.639
<v Speaker 3>go beyond that, then it gets really hard, really quick,

1012
00:51:24.639 --> 00:51:28.000
<v Speaker 3>and it is not linear. It is very is very

1013
00:51:28.000 --> 00:51:30.840
<v Speaker 3>non linear. It goes up fast, and I have tricks

1014
00:51:30.880 --> 00:51:32.599
<v Speaker 3>I've been doing this a long time. I had some

1015
00:51:32.639 --> 00:51:34.800
<v Speaker 3>really good tricks and I was showing somebody who's a

1016
00:51:34.880 --> 00:51:37.679
<v Speaker 3>really hot programmer. I was so impressed he said this

1017
00:51:37.880 --> 00:51:39.760
<v Speaker 3>and it was a particular thing I did, and he gets, oh,

1018
00:51:39.840 --> 00:51:41.760
<v Speaker 3>I never thought of that. That's gonna save me a

1019
00:51:41.840 --> 00:51:44.679
<v Speaker 3>lot of times. And so I'm going to be giving

1020
00:51:44.679 --> 00:51:48.000
<v Speaker 3>a talk at Tikarama on that. And I'm also talking

1021
00:51:48.039 --> 00:51:52.880
<v Speaker 3>around on C sharp both Sea Shark gotchas and h

1022
00:51:53.239 --> 00:51:55.440
<v Speaker 3>C sharp modern Sea Shark What should what can your

1023
00:51:55.440 --> 00:51:57.599
<v Speaker 3>code look like today? And why is that good? So

1024
00:51:58.559 --> 00:52:00.559
<v Speaker 3>you know that that's the other thing as I'm working

1025
00:52:00.639 --> 00:52:04.079
<v Speaker 3>on is where C sharp is at. I was so

1026
00:52:04.239 --> 00:52:07.280
<v Speaker 3>busy building it, I couldn't really talk about it, and

1027
00:52:07.320 --> 00:52:10.360
<v Speaker 3>that was a great frustration. And now I can talk

1028
00:52:10.400 --> 00:52:14.519
<v Speaker 3>about that and the Richard Carl You know that I

1029
00:52:14.559 --> 00:52:16.840
<v Speaker 3>did a workshop for a long time which was, you know,

1030
00:52:16.960 --> 00:52:19.400
<v Speaker 3>I'll become a better sea shark programmer. I'll make you

1031
00:52:19.400 --> 00:52:22.639
<v Speaker 3>a better sea shark programmers names like that, and so

1032
00:52:22.760 --> 00:52:26.519
<v Speaker 3>I am hoping I'm in progress. I think I'm going

1033
00:52:26.599 --> 00:52:30.280
<v Speaker 3>to be able to release that and put that together

1034
00:52:30.280 --> 00:52:32.199
<v Speaker 3>in a big way. And so that along with the

1035
00:52:32.400 --> 00:52:37.760
<v Speaker 3>modernizing and then my talk at Tekarrama is staying sane

1036
00:52:37.800 --> 00:52:39.679
<v Speaker 3>while writing as rosin source generator.

1037
00:52:40.119 --> 00:52:40.400
<v Speaker 1>Nice.

1038
00:52:41.639 --> 00:52:44.039
<v Speaker 2>You know, I realized there's at least two more shows here.

1039
00:52:44.119 --> 00:52:46.440
<v Speaker 2>You're thinking about what modern cy sharp looks like is

1040
00:52:46.480 --> 00:52:49.599
<v Speaker 2>a whole other show, and everything to do with Roslin's

1041
00:52:49.639 --> 00:52:50.599
<v Speaker 2>easily a show too.

1042
00:52:51.119 --> 00:52:53.519
<v Speaker 3>Yeah, and the Sea Shark, gotcha, this is actually another

1043
00:52:53.559 --> 00:52:56.559
<v Speaker 3>show too, So we will not be waiting four years again.

1044
00:52:56.639 --> 00:52:57.679
<v Speaker 3>I'm quite sure of that.

1045
00:52:58.079 --> 00:53:01.800
<v Speaker 2>No, no, I think we better not. We'll figure that out.

1046
00:53:02.639 --> 00:53:04.239
<v Speaker 2>So much fun to talk to you again. Yeah, I'm

1047
00:53:04.239 --> 00:53:04.920
<v Speaker 2>glad you're well.

1048
00:53:05.000 --> 00:53:05.760
<v Speaker 3>Oh it's great.

1049
00:53:05.800 --> 00:53:07.159
<v Speaker 1>Yeah, we're very happy for that.

1050
00:53:07.559 --> 00:53:10.679
<v Speaker 3>Yeah, and I am so glad to be well, so

1051
00:53:10.800 --> 00:53:13.559
<v Speaker 3>glad to be here with you today and ready to

1052
00:53:13.639 --> 00:53:17.639
<v Speaker 3>go and shovel my driveway that is, or snowblower too.

1053
00:53:17.679 --> 00:53:20.599
<v Speaker 1>But there's some shoveling and we're almost neighbors, so we

1054
00:53:20.599 --> 00:53:21.719
<v Speaker 1>should be hanging out more.

1055
00:53:22.239 --> 00:53:23.559
<v Speaker 2>I know, I know.

1056
00:53:24.079 --> 00:53:26.320
<v Speaker 3>Let me, let's get in touch. So let's do it.

1057
00:53:26.559 --> 00:53:29.639
<v Speaker 1>We'll be in touch. Yeah, sounds good. All right, Kathleen,

1058
00:53:29.679 --> 00:53:32.639
<v Speaker 1>Thanks again, and thank you, dear listener. We'll talk to

1059
00:53:32.679 --> 00:53:55.920
<v Speaker 1>you next time on dot net rocks. Dot net Rocks

1060
00:53:56.000 --> 00:53:58.719
<v Speaker 1>is brought to you by Franklin's Net and produced by

1061
00:53:58.800 --> 00:54:02.800
<v Speaker 1>Pop Studios, a full service audio, video and post production

1062
00:54:02.920 --> 00:54:06.880
<v Speaker 1>facility located physically in New London, Connecticut, and of course

1063
00:54:06.920 --> 00:54:11.679
<v Speaker 1>in the cloud online at pwop dot com. Visit our

1064
00:54:11.679 --> 00:54:13.840
<v Speaker 1>website at d O T N E T R O

1065
00:54:13.920 --> 00:54:19.199
<v Speaker 1>c k S dot com for RSS feeds, downloads, mobile apps, comments,

1066
00:54:19.519 --> 00:54:22.079
<v Speaker 1>and access to the full archives going back to show

1067
00:54:22.159 --> 00:54:25.880
<v Speaker 1>number one, recorded in September two thousand and two. And

1068
00:54:25.960 --> 00:54:28.360
<v Speaker 1>make sure you check out our sponsors. They keep us

1069
00:54:28.400 --> 00:54:31.880
<v Speaker 1>in business. Now go write some code. See you next time.

1070
00:54:32.800 --> 00:54:41.400
<v Speaker 3>You got Jamal Vans and
