WEBVTT
1
00:00:01.080 --> 00:00:04.799
How'd you like to listen to dot NetRocks with no ads? Easy?
2
00:00:05.360 --> 00:00:08.560
Become a patron for just five dollars a month. You
3
00:00:08.599 --> 00:00:11.320
get access to a private RSS feed where all the
4
00:00:11.359 --> 00:00:14.599
shows have no ads. Twenty dollars a month, we'll get
5
00:00:14.599 --> 00:00:18.440
you that and a special dot NetRocks patron mug. Sign
6
00:00:18.519 --> 00:00:22.920
up now at Patreon dot dot NetRocks dot com. Hi,
7
00:00:23.000 --> 00:00:24.679
this is Carl Franklin.
8
00:00:24.239 --> 00:00:25.480
And this is Richard Campbell.
9
00:00:25.839 --> 00:00:30.000
We've got two special shows coming up soon, episode nineteen
10
00:00:30.120 --> 00:00:32.039
ninety nine and two thousand.
11
00:00:32.399 --> 00:00:35.079
For episode nineteen ninety nine, we're collecting people's y two
12
00:00:35.159 --> 00:00:37.560
k stories what did you do to help the Y
13
00:00:37.600 --> 00:00:39.719
two k event not actually happen?
14
00:00:40.240 --> 00:00:42.960
And for episode two thousand, we're going to be sharing
15
00:00:43.000 --> 00:00:45.479
stories about how dot net shaped your career.
16
00:00:46.000 --> 00:00:48.719
We have a special page at dot netroocks dot com
17
00:00:48.719 --> 00:00:52.159
slash voxpop where you can record messages for us that
18
00:00:52.200 --> 00:00:54.000
we can play on these special episodes.
19
00:00:54.439 --> 00:00:56.479
So tell us what you did for Y two k
20
00:00:56.759 --> 00:00:59.039
and what dot net means to you, and of course
21
00:00:59.079 --> 00:01:01.159
how long you've been listening to dot NetRocks.
22
00:01:01.640 --> 00:01:04.799
So go to dot netroocks dot com slash voxpop now
23
00:01:04.840 --> 00:01:07.079
and leave us a message before the thought of operates
24
00:01:07.079 --> 00:01:09.200
like whiskey left in a glass overnight.
25
00:01:09.159 --> 00:01:09.640
Do it?
26
00:01:22.519 --> 00:01:26.280
Hey, welcome back to dot net Rocks. I'm Carl Franklin.
27
00:01:25.799 --> 00:01:26.799
And I'm Richard Campbell.
28
00:01:26.959 --> 00:01:29.400
Richard, do you realize we've been doing this show for
29
00:01:29.480 --> 00:01:32.280
almost two thousand episodes?
30
00:01:32.480 --> 00:01:35.319
Getting there? Yeah, two thousand is approaching.
31
00:01:35.040 --> 00:01:38.959
And you know you probably just heard the bumper where
32
00:01:38.959 --> 00:01:41.840
we're going to be at the MVP summit or right
33
00:01:41.879 --> 00:01:45.640
before at party with Palermo doing our two thousandth show,
34
00:01:45.680 --> 00:01:48.519
and we ask people to call in with our voxpop.
35
00:01:48.560 --> 00:01:51.599
Go to dot nerocks dot com and look for voxpop
36
00:01:51.640 --> 00:01:54.400
at the menu or just slash vox pop. We only
37
00:01:54.439 --> 00:01:58.200
have three messages. Come on, people, come on, and they're
38
00:01:58.200 --> 00:02:00.920
from old friends, right, you know, but that's not what
39
00:02:00.959 --> 00:02:03.719
we want. We want to show, so come on, give
40
00:02:03.760 --> 00:02:07.680
us some anyway, Let's start with what happened in nineteen
41
00:02:07.719 --> 00:02:11.520
ninety three, and Mike and Matt you can join in
42
00:02:11.560 --> 00:02:17.479
if you want to. Bill Clinton was inaugurated, The World
43
00:02:17.560 --> 00:02:19.680
Trade Center was bombed for the first time.
44
00:02:21.400 --> 00:02:24.400
Yeah, that was that was the truck bomb in the underground.
45
00:02:24.680 --> 00:02:27.199
Yeah, didn't really do anything, So make a mess.
46
00:02:27.680 --> 00:02:30.840
Blue three floors out of the base Bend. Well, a
47
00:02:30.840 --> 00:02:33.719
lot didn't bring the building down. It's only because eight
48
00:02:33.800 --> 00:02:35.719
years later what you know that you would think of
49
00:02:35.759 --> 00:02:37.000
it was huge at the time.
50
00:02:37.199 --> 00:02:40.599
You're right, you're right about that. The Branch Davidians were
51
00:02:40.759 --> 00:02:46.280
invaded in Waco, Texas. That wasn't bad. Major global events
52
00:02:46.280 --> 00:02:49.520
included the Storm of the Century blizzard, and from what
53
00:02:49.599 --> 00:02:52.400
I'm hearing, that was nothing compared to what we just
54
00:02:52.439 --> 00:02:53.800
went through in the northeast.
55
00:02:53.919 --> 00:02:57.199
No, that storm killed a lot of people, Like I
56
00:02:57.199 --> 00:02:59.120
hope there's not a lot of fatalities out right now.
57
00:02:59.159 --> 00:03:00.919
You guy's kind of what you're doing up there when
58
00:03:00.919 --> 00:03:02.240
it comes to bad winter storms.
59
00:03:02.319 --> 00:03:10.000
Yeah, yep. Let's see, the Storm of the Century hit
60
00:03:10.039 --> 00:03:14.000
the East coast in March, massive flood effected the midwest.
61
00:03:15.680 --> 00:03:20.280
Czechoslovakia peacefully split into the Czech Republic and Slovakia on
62
00:03:20.400 --> 00:03:23.400
January first, and the Brundian Civil War began.
63
00:03:23.840 --> 00:03:26.680
Yeah, as opposed to what was happening south of there
64
00:03:26.719 --> 00:03:29.759
in the former Yugoslavia where everybody was killing everybody.
65
00:03:29.840 --> 00:03:34.319
It was terrible. Yeah, So what happened in science and space, Richard.
66
00:03:34.120 --> 00:03:37.120
Well, I'd also throw in in June of nineteen ninety
67
00:03:37.120 --> 00:03:40.319
three was when Kim Campbell became the Prime Minister of Canada,
68
00:03:40.360 --> 00:03:43.960
first time a female prime minister in Canada, although admittedly
69
00:03:44.319 --> 00:03:48.639
she was put in place after Brian mulroney resigned, so
70
00:03:48.759 --> 00:03:51.280
she was really just sort of interim from June until
71
00:03:51.319 --> 00:03:55.919
the federal elections in December when Jean Kreshen will be elected. Yeah.
72
00:03:55.960 --> 00:04:00.560
Starting on the space side, so we have seven shot missions.
73
00:04:00.599 --> 00:04:04.199
Most are not particularly interesting, three Space Lab missions, a
74
00:04:04.199 --> 00:04:09.080
few satellite launches. But in December the first hubble repair mission,
75
00:04:09.800 --> 00:04:14.199
so arguably the most complex Space Shuttle mission ever. I
76
00:04:14.240 --> 00:04:16.639
had a opportunity to actually have dinner once with Story
77
00:04:16.720 --> 00:04:20.959
Muskrave who helped architect that mission. The guy just astonishing, person, Wow,
78
00:04:21.480 --> 00:04:23.399
this is done out of the Shuttle endeavor. Remember hubble
79
00:04:23.480 --> 00:04:27.519
Ed launched in nineteen ninety and then after checkout they
80
00:04:27.560 --> 00:04:31.240
realized the mirror had been miss ground and so.
81
00:04:31.319 --> 00:04:35.720
Didn't they fix it with software rather than attempt to
82
00:04:36.240 --> 00:04:38.079
do some process to the mirror itself.
83
00:04:38.160 --> 00:04:41.839
Now they absolutely put in new optics as well as
84
00:04:41.920 --> 00:04:45.319
software upgrades. They also replaced all the gyros and upgraded
85
00:04:45.319 --> 00:04:48.000
a bunch of instruments and changed out the solar panels.
86
00:04:48.279 --> 00:04:50.240
It had already been up for three years at this point,
87
00:04:50.319 --> 00:04:52.439
so it was sort of an opportunity. And this is
88
00:04:52.480 --> 00:04:56.120
the first time ever to do this kind of repair.
89
00:04:56.399 --> 00:05:00.399
The Shuttle had been designed to retrieve satellite to prepare
90
00:05:00.439 --> 00:05:02.040
them and relaunch them, and it had done a bunch
91
00:05:02.079 --> 00:05:04.720
of that, but most of them were fairly straightforward. This
92
00:05:04.879 --> 00:05:08.560
was a crazy repair and you and I saw the
93
00:05:08.639 --> 00:05:12.079
test articles for the optical correction when we went to
94
00:05:12.120 --> 00:05:14.600
the Goddard Space Center to see the James Web, if
95
00:05:14.600 --> 00:05:19.879
you recall. So, yeah, a very complex mission, but ultimately successful.
96
00:05:19.879 --> 00:05:21.920
Of course they didn't know at the time. You know,
97
00:05:22.000 --> 00:05:23.800
they figured all this stuff out, but then you have
98
00:05:23.839 --> 00:05:26.199
to put it all together, relaunch, and then it takes
99
00:05:26.319 --> 00:05:30.360
months to actually complete the testing to resolve that. Also,
100
00:05:30.360 --> 00:05:34.279
in human spaceflight T sixteen from now, the Russian Federation
101
00:05:34.560 --> 00:05:38.480
flies to Mirror and put some new satellites up, put
102
00:05:38.519 --> 00:05:41.680
some new astronauts or cosmonauts up on the Mare space station.
103
00:05:42.240 --> 00:05:47.279
The Shuttle Mirror relationship is in negotiations, it hasn't started yet. Well,
104
00:05:47.279 --> 00:05:50.959
we'll talk about that in future shows. And one more
105
00:05:51.000 --> 00:05:53.959
thing on the space side, which I talked about last show,
106
00:05:53.959 --> 00:05:55.480
but let's go a little bit of detail on it,
107
00:05:55.519 --> 00:05:58.759
which was Mars Observer. So Mars Observer was launched on
108
00:05:58.800 --> 00:06:00.720
Titan three in nineteen ninety two. That's what we talked
109
00:06:00.720 --> 00:06:02.959
about the last show. It originally was supposed to be
110
00:06:03.040 --> 00:06:05.639
launched by a shuttle, along with many other kinds of satellites,
111
00:06:05.680 --> 00:06:08.279
but the Challenger disaster had created a huge number of
112
00:06:08.360 --> 00:06:12.160
delays when they started prioritizing satellites. There were satellites that
113
00:06:12.240 --> 00:06:15.439
really could only be launched by a shuttle like Galileo,
114
00:06:15.480 --> 00:06:18.319
Magellan and the Ulysses, so they got priority. So there
115
00:06:18.360 --> 00:06:20.480
was a rethink around Mars Observer, and it was a
116
00:06:20.519 --> 00:06:24.480
big satellite. This was an over a one ton orbiter
117
00:06:25.519 --> 00:06:27.000
based on a bus that was really meant to be
118
00:06:27.000 --> 00:06:29.120
around Earth or they're going to fly it to Mars.
119
00:06:30.160 --> 00:06:31.879
So instead they launched on a Titan three, in fact,
120
00:06:31.920 --> 00:06:35.120
the last Titan three, and then three days before it
121
00:06:35.160 --> 00:06:37.279
was supposed to start its burn to go into orbit
122
00:06:37.319 --> 00:06:41.040
around Mars, during the checkout sequence where they were pressurizing
123
00:06:41.079 --> 00:06:42.839
the fuel system and so forth to get ready to
124
00:06:42.839 --> 00:06:46.959
do that, something went wrong and they abruptly lost contact
125
00:06:47.040 --> 00:06:51.120
with Observer. The guess is, and it's a pretty good guess.
126
00:06:52.160 --> 00:06:55.560
The fuel system, which wasn't designed to be turned off
127
00:06:55.639 --> 00:06:59.839
for six months during the cruise phase, the seals had
128
00:07:00.079 --> 00:07:03.680
froze and so as they repressurize system, it leaked hypergolics
129
00:07:03.720 --> 00:07:06.720
into the chassis, which then would combine and burst out
130
00:07:06.720 --> 00:07:09.240
in any direction they could so suddenly spun the satellite
131
00:07:09.279 --> 00:07:12.240
out of control and so lost it. Now being a
132
00:07:12.319 --> 00:07:15.160
large satellite, it had a lot of instruments on it,
133
00:07:15.480 --> 00:07:18.000
and there were test articles of these same instruments. So
134
00:07:18.160 --> 00:07:22.879
over the intervening years after the loss of Observer, all
135
00:07:22.920 --> 00:07:25.879
of those instruments were ultimately flown. So five of the
136
00:07:25.959 --> 00:07:29.079
eight were flown as a Global surveyor. In nineteen ninety six,
137
00:07:29.199 --> 00:07:32.480
or literally the next opportunity to fly, they took five
138
00:07:32.480 --> 00:07:35.199
of those instruments on a smaller spacecraft that would last
139
00:07:35.240 --> 00:07:37.839
for ten years. The gamma y spectrometer w we'ld end
140
00:07:37.920 --> 00:07:39.519
up on Mars Odyssey we had flew in two thousand
141
00:07:39.519 --> 00:07:43.160
and one, and then the infrared radiometer flies on reconnaissance
142
00:07:43.240 --> 00:07:45.519
Order in two thousand and five. So ultimately they got
143
00:07:45.560 --> 00:07:50.519
all the same science, just much later, and really since then,
144
00:07:51.600 --> 00:07:58.399
other than the perseverance and curiosity the big landers, we've
145
00:07:58.399 --> 00:08:02.199
never flown anything that big to Mars. Again, it's just
146
00:08:02.720 --> 00:08:04.959
it's tough to fly big vehicles that far, and you
147
00:08:05.279 --> 00:08:06.639
have to do very specific designs.
148
00:08:06.759 --> 00:08:11.759
I remember they really changed their approach to those rovers,
149
00:08:11.959 --> 00:08:14.959
you know, wrapping them in balloons, that kind of you know,
150
00:08:15.040 --> 00:08:18.279
all kind of low tech solutions for getting them there.
151
00:08:19.279 --> 00:08:23.079
You know, the original Viking missions were stunningly expensive. Right
152
00:08:23.279 --> 00:08:26.000
to land a large vehicle on Mars where it has
153
00:08:26.079 --> 00:08:29.199
just enough atmosphere that you can't just maneuver down, but
154
00:08:29.279 --> 00:08:31.560
not enough atmosphere to really slow you down, it's a
155
00:08:31.680 --> 00:08:36.360
it's a tough balance. And so to reduce costs, they
156
00:08:36.559 --> 00:08:41.840
use they said, the inflatable approach, so hypersonic parachute to
157
00:08:41.840 --> 00:08:45.000
do the initial breaking any heat shield. And then this
158
00:08:45.080 --> 00:08:47.679
set of balloons allow you to bounce to landing. But
159
00:08:47.720 --> 00:08:49.440
that will only handle like one hundred kilos.
160
00:08:49.559 --> 00:08:51.600
And we'll talk about that more in a couple of months, right.
161
00:08:51.559 --> 00:08:53.320
Yeah, when we get we get to those missions. But
162
00:08:53.480 --> 00:08:56.320
and then ultimately the largest system we have rush now,
163
00:08:56.320 --> 00:09:00.159
which was for those two big rovers which are our
164
00:09:00.279 --> 00:09:03.039
e metric ton, is what they call the sky hook system,
165
00:09:03.080 --> 00:09:06.600
which is insanely complicated, but it's a precise landing system
166
00:09:06.639 --> 00:09:08.759
for more than a ton on the Mars, and it's
167
00:09:08.799 --> 00:09:09.440
the best we've got.
168
00:09:09.480 --> 00:09:11.919
Mike is nodding. Do you remember that all that stuff?
169
00:09:12.360 --> 00:09:14.159
No, I'm just the sky hoof.
170
00:09:14.159 --> 00:09:17.559
I've been watching YouTube videos when the wie's away. I
171
00:09:17.559 --> 00:09:20.279
get to watch really nerdy things and watching about how
172
00:09:20.279 --> 00:09:22.639
we land stuff on Mars, and I find all of
173
00:09:22.679 --> 00:09:23.759
that very fascinating.
174
00:09:24.240 --> 00:09:26.559
Precision landing is bloody hard because you don't know how
175
00:09:26.600 --> 00:09:28.200
much atmosphere you're going to hit, so you don't know
176
00:09:28.240 --> 00:09:30.960
how much you're going to slow down, and so there's
177
00:09:30.960 --> 00:09:33.559
a bunch of moments you have to decide to do
178
00:09:33.600 --> 00:09:35.840
some maneuvering to get where you're planning to go.
179
00:09:35.960 --> 00:09:38.080
Yeah, and it's not like you can just tweak like
180
00:09:38.279 --> 00:09:39.039
in real time.
181
00:09:39.360 --> 00:09:43.879
A message from Earth to Mars to adjust courses got
182
00:09:43.919 --> 00:09:45.200
to be thought about ahead of time.
183
00:09:45.279 --> 00:09:49.440
Yeah. The entire event of entering the atmosphere and landing
184
00:09:49.840 --> 00:09:53.279
happens before the first signal arrives at Earth's incredible, right,
185
00:09:53.320 --> 00:09:57.159
It's seven minutes from arbitilator face to landing, and it's
186
00:09:57.159 --> 00:09:58.720
eleven minutes to transmit data.
187
00:09:59.039 --> 00:10:01.519
One way about that the next time you don't get
188
00:10:01.559 --> 00:10:03.080
a text answer right away.
189
00:10:03.480 --> 00:10:08.080
Yeah, has to go to space. But now think about this,
190
00:10:09.200 --> 00:10:12.679
knowing that they were still able to take pictures of
191
00:10:12.720 --> 00:10:17.519
the re entry and ultimate landing of Perseverance with the
192
00:10:17.559 --> 00:10:22.120
Odyssey orbiter purely by timing, to say, basically, time that
193
00:10:22.320 --> 00:10:24.240
Odyssey was in the right place to take pictures in
194
00:10:24.279 --> 00:10:27.639
the right location downward and gut shots of the parachute
195
00:10:27.639 --> 00:10:28.799
and the heat shield ejection.
196
00:10:29.039 --> 00:10:29.960
Like, that's cool.
197
00:10:30.480 --> 00:10:33.240
All but all done. All of it had happened before
198
00:10:33.279 --> 00:10:35.360
we knew any of it. It's all maths just had
199
00:10:35.399 --> 00:10:37.480
to do to maths. Yeah, okay, should we talk about
200
00:10:37.519 --> 00:10:39.639
computing because an I three was a very good year
201
00:10:39.679 --> 00:10:43.039
for computing, Yes, at least for the Internet side, So
202
00:10:43.159 --> 00:10:47.840
cern that's our friend. Tim Berners Lee releases the source
203
00:10:47.879 --> 00:10:50.480
code for the first web server, the one that ran
204
00:10:50.519 --> 00:10:52.840
on the next, which makes it a whole lot easier
205
00:10:52.840 --> 00:10:54.840
to build web service because as of the beginning of
206
00:10:54.919 --> 00:10:57.559
the year in nineteen ninety three, there's an estimate exactly
207
00:10:57.960 --> 00:11:01.320
fifty web servers in the whole world. Don't worry, but it.
208
00:11:01.240 --> 00:11:03.000
Was it was written in a different language, though it
209
00:11:03.000 --> 00:11:03.440
wasn't like C.
210
00:11:03.840 --> 00:11:06.399
It was written Yeah, I was written an objective C
211
00:11:06.600 --> 00:11:09.039
because that was the language of the next right, that's.
212
00:11:08.960 --> 00:11:12.440
Job objective cy, so you had to figure that out first.
213
00:11:13.159 --> 00:11:18.519
But meantime, there are other tools on the Internet to
214
00:11:18.639 --> 00:11:20.720
use the Internet. Right this is before the Web, and
215
00:11:20.720 --> 00:11:22.720
the most one of the most profita onest one called Gopher,
216
00:11:23.399 --> 00:11:25.799
written by a group at the University of Minnesota, and
217
00:11:25.840 --> 00:11:28.039
literally it was for you go for info, and it
218
00:11:28.080 --> 00:11:31.559
was widely used by academics in the universities. It was
219
00:11:31.600 --> 00:11:33.679
also used by the Library of Congress, like it was
220
00:11:33.799 --> 00:11:36.960
the way at the time. I remember surfing Gopher, however,
221
00:11:37.240 --> 00:11:39.519
and they and they were talking about incorporating features that
222
00:11:39.519 --> 00:11:42.200
were webbish, like hyperlinking and so forth. And then I
223
00:11:42.279 --> 00:11:44.559
decided it was getting popular enough that they wanted to
224
00:11:44.639 --> 00:11:47.200
charge for a server for it, and oddly enough, nobody
225
00:11:47.200 --> 00:11:50.600
wanted to pay, and so everybody just switched switched to
226
00:11:50.639 --> 00:11:54.159
web technologies. Which is useful because over in the University
227
00:11:54.159 --> 00:11:58.799
of Illinois, Urbana Champlaine, they are just releasing a browser
228
00:11:58.919 --> 00:12:03.000
called Mosaic. This is also the year that Windsock comes
229
00:12:03.039 --> 00:12:06.080
out for Windows. So that's remember that Windows at this
230
00:12:06.200 --> 00:12:09.559
time does not use TCPIP by default. That uses net buoy,
231
00:12:10.080 --> 00:12:11.679
and so if you want to get on the Internet.
232
00:12:11.720 --> 00:12:14.039
You need to use CCPP, so you use windsof.
233
00:12:13.720 --> 00:12:15.519
There are all sorts of ads in the back of
234
00:12:15.720 --> 00:12:19.600
you know, PC Week and all those magazines for TCPIP libraries.
235
00:12:19.879 --> 00:12:23.840
I remember at that time because there wasn't anything in Windows.
236
00:12:23.320 --> 00:12:28.879
And O'Reilly has a web page up already and they
237
00:12:28.879 --> 00:12:31.399
are the first to sell ads on it. In nineteen
238
00:12:31.480 --> 00:12:37.720
ninety three. Wow, yeah, yeah, other computing stuff besides windsock,
239
00:12:37.759 --> 00:12:39.159
we have a good operating system year. This is the
240
00:12:39.240 --> 00:12:43.440
year that free bsd gets released. Microsoft puts out m
241
00:12:43.519 --> 00:12:47.799
STAS six NT three one, the original NT without a Guy,
242
00:12:48.360 --> 00:12:51.799
and Visual Basic three. One of the best proof points
243
00:12:51.799 --> 00:12:53.759
that the third versions of things made by Microsoft are
244
00:12:53.759 --> 00:12:58.240
the best ones. Yes, the first Intel Pentium ships, they
245
00:12:58.240 --> 00:13:00.240
didn't want to call it the five eighty six because
246
00:13:00.240 --> 00:13:01.759
they've been doing the two eighty six, three eighty six,
247
00:13:01.840 --> 00:13:05.320
forty six things. They pent as in five and it's
248
00:13:05.360 --> 00:13:08.039
a whole three million transistors and three hundred megahurts.
249
00:13:08.159 --> 00:13:10.399
Had a hard time keeping that thing cool, didn't they.
250
00:13:11.200 --> 00:13:13.279
The later pen the first Gigaherts pendiums are the ones
251
00:13:13.320 --> 00:13:14.440
that were really tough to cool.
252
00:13:14.480 --> 00:13:17.440
But wasn't that the thing that sort of triggered the
253
00:13:17.879 --> 00:13:23.320
more process or more CPUs on a core, more cores
254
00:13:23.360 --> 00:13:24.000
on a CPU.
255
00:13:24.080 --> 00:13:26.759
We're a few years away from that, yet this is
256
00:13:26.799 --> 00:13:30.360
the beginning of that problem that as you research of density,
257
00:13:30.399 --> 00:13:33.360
the temperature gets up too high, so and they can't
258
00:13:33.399 --> 00:13:35.720
keep the cycle rates increasingly. We're three hundred mega hurts.
259
00:13:35.720 --> 00:13:38.360
We're going to keep running up over at gigahertz and
260
00:13:38.399 --> 00:13:41.399
so forth. We're going to peek around three or four,
261
00:13:42.080 --> 00:13:43.919
and then we're going to back off because it's just
262
00:13:44.080 --> 00:13:47.480
so much electron erosion and problems. And now now we're
263
00:13:47.480 --> 00:13:50.039
starting to creep up again because new designs are working better. Yeah,
264
00:13:50.960 --> 00:13:53.080
a couple of last things and we'll move on. Two
265
00:13:53.200 --> 00:13:57.240
important games in nineteen ninety three. One of them is
266
00:13:57.759 --> 00:14:03.919
missed by broder Bond first real multi media game, So
267
00:14:04.080 --> 00:14:08.080
am be in such experiential Yeah, I loved it, really
268
00:14:08.080 --> 00:14:10.120
set the class and it is a you know, not
269
00:14:10.200 --> 00:14:11.559
just gave me the year, but al eamn, a game
270
00:14:11.600 --> 00:14:14.279
of the decade or more. And the story was it
271
00:14:14.320 --> 00:14:16.639
was all about the story, right totally. It was like
272
00:14:16.679 --> 00:14:19.960
in this slow discovery playing a movie. No narration, Yeah right,
273
00:14:20.039 --> 00:14:21.840
you just had to figure it out. It was great.
274
00:14:21.840 --> 00:14:25.200
And the other game for mid software Doom. Yeah, first
275
00:14:25.240 --> 00:14:27.440
person Shooter. Yep. And that's what I got, all right.
276
00:14:27.519 --> 00:14:30.120
Before I move on to Better Know Framework, let's just
277
00:14:30.200 --> 00:14:34.600
quickly go over the top ten selling albums worldwide nineteen
278
00:14:34.679 --> 00:14:39.080
ninety three. The hits the B sides by Prince Key
279
00:14:39.159 --> 00:14:44.240
tracks are seven and Cream if you remember that one. Yeah,
280
00:14:44.320 --> 00:14:47.559
the chronic by Doctor Dre Nutting, but a g thang
281
00:14:47.639 --> 00:14:51.279
Let Me Ride. We talked about that last show because
282
00:14:51.279 --> 00:14:55.519
it's still going on. Eric Clapton Unplugged is still there.
283
00:14:55.879 --> 00:15:01.360
Number eight, Tears in Heaven and Laila Versus Pearl Jam,
284
00:15:02.879 --> 00:15:07.039
Number seven, Daughter Go and Animal The big hits there
285
00:15:07.320 --> 00:15:11.960
Janet Jackson estimated sales fourteen plus million. That's the Way
286
00:15:12.000 --> 00:15:17.960
Love Goes If and Again, ten Summoners Tales by Sting,
287
00:15:19.639 --> 00:15:21.720
If I ever Lose my faith in You, Fields of
288
00:15:21.759 --> 00:15:26.000
Gold in Shape of My Heart, Great songs Aerosmith puts
289
00:15:26.000 --> 00:15:29.679
Out Get a Grip Number four estimated sales twenty plus million.
290
00:15:30.440 --> 00:15:33.919
Tunes like Living on the Edge, Crying Crazy and Amazing
291
00:15:36.639 --> 00:15:39.399
Number three, Bat Out of Hell two Back into Hell
292
00:15:39.480 --> 00:15:43.200
by meat Loaf. I do anything for love, but I
293
00:15:43.240 --> 00:15:47.080
won't do that. You had such a great sense of humor,
294
00:15:48.000 --> 00:15:51.799
and then rock and roll dreams come through. Number two
295
00:15:51.879 --> 00:15:54.840
The Bodyguard. We talked about that, Whitney Houston. I Will
296
00:15:54.879 --> 00:15:57.399
Always Love You, I Have Nothing and I'm every Woman.
297
00:15:57.840 --> 00:16:04.000
Number two in nineteen ninety one, forty five plus million sold,
298
00:16:04.039 --> 00:16:08.480
and the number one selling is Music Box by Mariah
299
00:16:08.559 --> 00:16:12.759
Carey twenty eight to thirty two million, Dream Lover, Hero,
300
00:16:13.000 --> 00:16:17.399
Without You and Anytime You Need a Friend. And that's
301
00:16:17.559 --> 00:16:21.120
it for our nineteen ninety three review. I guess now
302
00:16:21.159 --> 00:16:24.039
it's time for better, no framework, awesome.
303
00:16:25.799 --> 00:16:31.000
It's.
304
00:16:31.480 --> 00:16:31.879
A man.
305
00:16:31.879 --> 00:16:32.279
What do you got?
306
00:16:32.519 --> 00:16:32.600
Well?
307
00:16:32.679 --> 00:16:34.320
Last week I talked about t unit.
308
00:16:34.440 --> 00:16:36.720
Yes, remember yep, Simon Krapp.
309
00:16:36.799 --> 00:16:39.240
Well, no, he didn't write it, He just brought it
310
00:16:39.240 --> 00:16:42.639
to our attention. And then he went on to write
311
00:16:42.679 --> 00:16:46.360
a tool called t unit migrator. Oh, that's a dot
312
00:16:46.399 --> 00:16:49.600
net tool that migrates test projects from MS test and
313
00:16:49.840 --> 00:16:53.720
unit x unit and x unit v three to t
314
00:16:53.960 --> 00:16:57.120
unit because he really loves t unit. Well, this is
315
00:16:57.519 --> 00:17:02.559
who wouldn't love t unit. This is the classic developer
316
00:17:02.600 --> 00:17:05.640
open source project. You need it for yourself and you
317
00:17:05.680 --> 00:17:07.799
think other people would benefit from it, so you make
318
00:17:07.839 --> 00:17:10.119
a tool and happily share it. Yeah, and that's what
319
00:17:10.200 --> 00:17:12.240
it is, it's cool and of course t unit is
320
00:17:12.279 --> 00:17:15.359
a modern testing framework for dot net that uses source
321
00:17:15.519 --> 00:17:21.920
generated tests in parallel execution, native AOT support and it's
322
00:17:21.920 --> 00:17:24.640
all good stuff and it's the new hotness and unit
323
00:17:24.720 --> 00:17:29.039
testing and that's it. Richard, who's talking to us.
324
00:17:28.920 --> 00:17:31.839
Today grabbing comment off a show seventeen eighty five which
325
00:17:31.839 --> 00:17:34.480
you did back in twenty two talking to Dan Walmsley
326
00:17:34.519 --> 00:17:37.160
about Avalonia one point zero because I know we're going
327
00:17:37.200 --> 00:17:40.480
to get a little chance to revisit Avalonia and we
328
00:17:40.519 --> 00:17:42.400
have comment on the show from Aaron Stalisbury this a
329
00:17:42.400 --> 00:17:44.359
few years ago where he says I've been using Avalonia
330
00:17:44.359 --> 00:17:47.759
for desktop and it's been a pleasure. It's one project
331
00:17:47.799 --> 00:17:50.200
and everything just works. It might help people to know
332
00:17:50.400 --> 00:17:54.839
that they getthub repo Avalodia community slash awesome. Avalonia curates
333
00:17:54.880 --> 00:17:58.640
a great collection of add ons. I love the air
334
00:17:58.680 --> 00:18:02.079
awesome lists. Yeah, thanks for your info. Hope it helps people,
335
00:18:02.160 --> 00:18:04.200
though committedly it's a few years old. And a copy
336
00:18:04.240 --> 00:18:05.440
of music codey is on its way to you, and
337
00:18:05.480 --> 00:18:06.920
if you'd like a copy of music Cobey, I write
338
00:18:06.920 --> 00:18:08.759
a comment on the website at dot at rocks dot
339
00:18:08.759 --> 00:18:10.799
com or on the Facebook's publish every show there, Andy
340
00:18:10.880 --> 00:18:12.480
comment there, I'll read it on the show was at
341
00:18:12.519 --> 00:18:13.880
your copy of music O Music.
342
00:18:13.640 --> 00:18:17.440
To Code by Still Going Strong twenty two tracks, twenty
343
00:18:17.480 --> 00:18:19.680
five minutes each designed to keep you in a state
344
00:18:19.680 --> 00:18:21.960
of flow while you're writing code. You can get it
345
00:18:21.960 --> 00:18:25.680
at music toocode by dot Net. All right, so I
346
00:18:25.680 --> 00:18:31.279
guess it's time, after this horribly long introduction to introduce
347
00:18:32.119 --> 00:18:35.000
Mike James and Matt Lacy. Mike is the CEO of
348
00:18:35.039 --> 00:18:38.680
Avalonia UI. He has spent his entire career focused on
349
00:18:38.839 --> 00:18:43.920
crossplat development, starting as a developer building with QT before
350
00:18:44.039 --> 00:18:48.240
joining Zamorin and subsequently Microsoft. He has dedicated his career
351
00:18:48.240 --> 00:18:52.000
to enabling developers to build apps for every platform. He's
352
00:18:52.039 --> 00:18:56.559
now focused on continuing the mission with Avalonia UI. And
353
00:18:56.640 --> 00:19:00.839
Matt Lacy is a software developer at Avalonia, building software
354
00:19:00.880 --> 00:19:03.720
since the late nineties and has worked on more platforms
355
00:19:03.720 --> 00:19:07.240
and in more languages than he can remember over the years.
356
00:19:07.279 --> 00:19:09.799
I don't know, does say something about your memory or
357
00:19:09.920 --> 00:19:11.359
about the number of platforms.
358
00:19:11.799 --> 00:19:12.640
I'm going to say both.
359
00:19:14.480 --> 00:19:17.680
Over the years, he's created systems that have processed hundreds
360
00:19:17.680 --> 00:19:20.519
of millions of dollars in transactions and apps that have
361
00:19:20.559 --> 00:19:24.759
been installed more than half a billion times today. His
362
00:19:24.920 --> 00:19:29.000
focus is on helping other developers build software that generally
363
00:19:29.640 --> 00:19:34.400
genuinely delivers value to the people who use it. He's
364
00:19:34.480 --> 00:19:37.359
also an author and has been a Microsoft MVP since
365
00:19:37.400 --> 00:19:41.400
twenty fifteen. Welcome guys. Hey, I guess we're going to
366
00:19:41.440 --> 00:19:44.519
start with the state of Avalonia. We've talked to death
367
00:19:44.559 --> 00:19:46.039
about what it is, and if you don't know what
368
00:19:46.079 --> 00:19:48.559
it is, just go do that on your own time.
369
00:19:48.799 --> 00:19:51.599
We know what it is. What's going on with Abolonia, Well.
370
00:19:51.759 --> 00:19:55.480
There's so much going on with Ablonia. It feels like
371
00:19:55.559 --> 00:19:59.599
more has happened in the last twelve months than the
372
00:19:59.680 --> 00:20:05.960
last twelve years. We've got the open source which was
373
00:20:06.119 --> 00:20:13.319
created in twenty thirteen. That's been like a slow adoption
374
00:20:14.000 --> 00:20:17.680
over those initial years, and then the snowball is just
375
00:20:18.279 --> 00:20:22.839
picking up speed, and so we've seen just a huge
376
00:20:22.839 --> 00:20:27.000
amount of growth from the community just picking it up.
377
00:20:27.680 --> 00:20:28.279
It's all.
378
00:20:29.759 --> 00:20:32.319
People just recommending it to each other, which is lovely.
379
00:20:32.640 --> 00:20:36.279
We don't have any sales or marketing. It's all just
380
00:20:36.480 --> 00:20:37.480
natural word of mouth.
381
00:20:38.480 --> 00:20:39.000
Good time.
382
00:20:39.400 --> 00:20:43.480
Yeah, and then like the team is now seventeen people,
383
00:20:43.480 --> 00:20:45.480
so we've got a load of folks that's working on
384
00:20:45.759 --> 00:20:51.920
building this out to try and deliver on the goal
385
00:20:52.000 --> 00:20:56.519
of creating the best UI framework for donnet. So, yeah,
386
00:20:56.519 --> 00:20:58.440
there's just a ton of things that have been happening.
387
00:20:58.519 --> 00:21:00.359
It's difficult to know where to even begin.
388
00:21:00.839 --> 00:21:02.319
Matt, you want to throw in your two cents. It
389
00:21:02.319 --> 00:21:04.319
looks like you're smiling there, you've got an idea of
390
00:21:04.319 --> 00:21:04.799
how to begin.
391
00:21:05.359 --> 00:21:11.000
No, I'm smiling because I recognizing the size of the topic. Yeah, okay, Yeah,
392
00:21:11.039 --> 00:21:13.079
So I joined the company at the end of last
393
00:21:13.119 --> 00:21:16.119
year having been well aware of them for a long
394
00:21:16.160 --> 00:21:20.720
time and having seen that being one of a number
395
00:21:20.759 --> 00:21:23.440
of companies and projects in the same sort of cross
396
00:21:23.480 --> 00:21:26.960
platform dot net space. And when I joined, what really
397
00:21:27.000 --> 00:21:31.319
surprised me was the number of people who are using it.
398
00:21:31.319 --> 00:21:31.720
It's this.
399
00:21:33.839 --> 00:21:35.880
People have gone out and found it and fallen in
400
00:21:35.920 --> 00:21:38.839
love with it and just been using it and building
401
00:21:39.519 --> 00:21:42.920
really big projects and really sort of core and key
402
00:21:43.000 --> 00:21:46.799
line of business apps. And you know, the team's not
403
00:21:46.839 --> 00:21:49.759
been shouting about all they've been doing, but lots of
404
00:21:49.799 --> 00:21:52.519
people are using it to build some really powerful things.
405
00:21:53.519 --> 00:21:58.160
And there's all sorts of partnerships and other projects which
406
00:21:58.200 --> 00:22:01.440
have sort of come along in response to that, just
407
00:22:01.720 --> 00:22:06.599
as the wider ecosystem has recognized what's there and what's possible.
408
00:22:06.680 --> 00:22:10.119
Partnerships with say Google or Maui.
409
00:22:09.880 --> 00:22:10.799
Yeah, both of those.
410
00:22:12.000 --> 00:22:16.720
So the Google ones I think really interesting because so
411
00:22:17.279 --> 00:22:18.720
one of the things that we have to do as
412
00:22:18.799 --> 00:22:22.240
platform stewards is to think about the next five ten years.
413
00:22:23.079 --> 00:22:29.480
So we cater to largely speaking to enterprises. It's those
414
00:22:29.559 --> 00:22:33.119
line of business apps, and those enterprises want long term stability,
415
00:22:33.279 --> 00:22:36.799
so we have to kind of look out part the
416
00:22:36.839 --> 00:22:41.759
immediate horizon to decide where do we want to push
417
00:22:41.759 --> 00:22:45.920
the framework. A key part of that is performance and
418
00:22:46.119 --> 00:22:50.680
the rendering stack, and we've used skier Sharp for years.
419
00:22:50.759 --> 00:22:53.200
It's been the bedrock of how we've been able to
420
00:22:53.200 --> 00:22:58.559
go cross platform. But if you look at Flutter and
421
00:22:58.160 --> 00:23:04.559
their moves towards Impeller, which is much more performance for
422
00:23:04.640 --> 00:23:07.119
tiling based GPUs, which is what you're going to see
423
00:23:07.119 --> 00:23:10.039
on your phones, but also if you've got a modern
424
00:23:10.480 --> 00:23:15.880
Mac that's a tiling based GPU. So we're kind of
425
00:23:15.880 --> 00:23:18.759
looking at the border ecosystem and seeing these opportunities for
426
00:23:18.960 --> 00:23:22.519
improvements within Avalonia that aren't you know, an immediate win,
427
00:23:23.720 --> 00:23:28.759
but something to kind of aspire to be building. We
428
00:23:29.119 --> 00:23:32.039
create lots of experiments and one of those was around below,
429
00:23:32.640 --> 00:23:36.200
and the folks from Impella on the Flutter team reached
430
00:23:36.200 --> 00:23:39.079
out and said, is there any interest in a collaboration.
431
00:23:41.400 --> 00:23:45.039
Our minds were like, our minds were blown because number one,
432
00:23:45.079 --> 00:23:47.680
they were praising Avalonia and saying that they've been following
433
00:23:47.680 --> 00:23:51.279
the project for years from the sidelines. And it's like
434
00:23:51.400 --> 00:23:53.680
the fact that there's folks on the Flutter team that
435
00:23:53.799 --> 00:23:56.519
are even aware of Avalonia.
436
00:23:56.200 --> 00:23:58.799
Is that you even know my name precisely?
437
00:23:59.119 --> 00:23:59.920
Are you kidding me?
438
00:24:00.759 --> 00:24:04.319
Yeah, So there's a huge sense of pride in that.
439
00:24:05.400 --> 00:24:07.000
But we get on the call and we chat with them,
440
00:24:07.000 --> 00:24:11.559
and it's, you know, engineers to engineers, and there's this
441
00:24:12.000 --> 00:24:16.759
common goal of how can we take impeller and enable
442
00:24:16.799 --> 00:24:21.079
it to work for more than just Flutter developers, and
443
00:24:21.119 --> 00:24:23.079
so in our case, it's dot net, so we want
444
00:24:23.079 --> 00:24:26.920
to bring it toward dot net developers. But to do that,
445
00:24:26.960 --> 00:24:30.720
there's some difficult engineering work that needs to happen on
446
00:24:30.839 --> 00:24:34.519
both sides because it is designed very much for Flutter,
447
00:24:35.599 --> 00:24:37.039
it's not really designed to.
448
00:24:37.079 --> 00:24:39.759
Be used and Flatter has its own sort of approach
449
00:24:39.880 --> 00:24:42.640
to you I which I always thought was very mobile centric,
450
00:24:42.680 --> 00:24:44.880
that kind of flow design.
451
00:24:45.279 --> 00:24:49.119
Yeah, but even just at the Impeller level, it's made
452
00:24:49.160 --> 00:24:54.160
assumptions that it's a very different beast to Skier. So
453
00:24:54.240 --> 00:24:57.599
it's made assumptions that are challenging for us. So you know,
454
00:24:57.680 --> 00:25:01.480
we have to collaborate to to work out where do
455
00:25:01.559 --> 00:25:03.559
we where do we make those changes. Do we do
456
00:25:03.599 --> 00:25:06.359
it in Impeller where it's going to help other projects
457
00:25:06.359 --> 00:25:09.200
that might want to take on that dependency, or do
458
00:25:09.279 --> 00:25:12.440
we change our rendering back end to adjust to the
459
00:25:12.480 --> 00:25:13.440
way that Impeller works.
460
00:25:13.440 --> 00:25:14.279
So there's like this.
461
00:25:15.960 --> 00:25:19.119
One more time. Tell me more about Impala. You said
462
00:25:19.119 --> 00:25:21.799
you changed from Skia Sharp to impoler. Is Impala your
463
00:25:21.839 --> 00:25:23.720
thing or is it an open source project?
464
00:25:23.960 --> 00:25:24.599
You?
465
00:25:25.039 --> 00:25:29.559
Yeah, so it's from Google. It's it's their replacement to Skier.
466
00:25:29.680 --> 00:25:32.240
So ski has been around for years. If you use
467
00:25:32.279 --> 00:25:37.000
Google Chrome, that's powered by Skier. It's the two D
468
00:25:37.160 --> 00:25:41.640
graphics library. So you're drawing. If you need to draw
469
00:25:41.759 --> 00:25:44.640
anything in an app, you're probably going to use Skier
470
00:25:44.720 --> 00:25:48.079
set or ski sharp within the dot ecosystem.
471
00:25:47.599 --> 00:25:49.640
Right, this is from the Mano stack.
472
00:25:49.599 --> 00:25:53.119
Exactly that said Miguel created.
473
00:25:53.240 --> 00:25:57.839
I think did the first set of commits, huge, huge,
474
00:25:57.880 --> 00:26:00.359
number of commits, and then Matthew came in and took
475
00:26:00.359 --> 00:26:05.200
it over when we were at Zamarin, and it's allowed
476
00:26:05.279 --> 00:26:07.200
us to go cross platform. So we have this cross
477
00:26:07.200 --> 00:26:14.599
platform drawing functionality that works everywhere. But as I say,
478
00:26:14.680 --> 00:26:18.559
it's it's been replaced on the flatter side with Impeller,
479
00:26:18.559 --> 00:26:21.960
which is the new two D graphics rendering library that
480
00:26:22.640 --> 00:26:25.319
is much more optimized for modern GPUs.
481
00:26:25.759 --> 00:26:26.039
Right.
482
00:26:26.119 --> 00:26:29.400
So, as I say, it's that tile tile based GPUs,
483
00:26:29.440 --> 00:26:31.519
which is what you've got on your phone, it's what
484
00:26:31.559 --> 00:26:35.720
you've got in your your max your modern desktop GPUs
485
00:26:35.799 --> 00:26:38.680
can you can still get some performance increase, but it's
486
00:26:38.759 --> 00:26:41.480
nowhere near as significant as if you were.
487
00:26:41.440 --> 00:26:44.799
Although to be clear desktop GPUs, you know you're not
488
00:26:44.880 --> 00:26:47.720
struggling to render on a desktob GPU.
489
00:26:47.680 --> 00:26:50.240
No exactly that. But you know I've got this.
490
00:26:50.359 --> 00:26:52.640
I mean, it doesn't help your podcast listeners, but I've
491
00:26:52.680 --> 00:26:55.039
got a little rasbry pie with a screen.
492
00:26:54.759 --> 00:26:57.559
Attached to it, right, great device, and it's it. I
493
00:26:57.599 --> 00:26:59.519
love these, Yeah, but.
494
00:26:59.519 --> 00:27:01.720
This is the kind of device where you want to
495
00:27:02.160 --> 00:27:04.920
extract as much performance out of it as possible.
496
00:27:05.119 --> 00:27:07.799
Yeah, cycles count in that little pie.
497
00:27:07.880 --> 00:27:10.359
Exactly that, And this is I mean, this pie is
498
00:27:10.400 --> 00:27:12.880
considered a high powered device for some of the things
499
00:27:12.920 --> 00:27:16.160
that we run on. Sure, you'd be surprised at just
500
00:27:16.200 --> 00:27:20.759
how low the hardware aspects for some of these devices
501
00:27:20.759 --> 00:27:24.599
that we support can go to ESP two's I don't
502
00:27:24.640 --> 00:27:27.720
think the oldest that we're running on in production. It's
503
00:27:27.759 --> 00:27:31.559
like a five hundred megahertz thirty two bit ARM CPU
504
00:27:31.640 --> 00:27:32.680
from two thousand and two.
505
00:27:32.920 --> 00:27:34.759
Okay.
506
00:27:34.559 --> 00:27:38.119
We spent a very very long time with that customer
507
00:27:38.240 --> 00:27:41.839
optimizing everything to make that work.
508
00:27:41.960 --> 00:27:44.039
Oh man, you got to call the ball on that
509
00:27:44.079 --> 00:27:46.519
one too, Like, is it worth it for such a
510
00:27:46.599 --> 00:27:47.039
one off?
511
00:27:47.160 --> 00:27:50.000
Oh, it was worth it. Yeah.
512
00:27:50.079 --> 00:27:52.480
It was an important customer and a relationship that we
513
00:27:52.559 --> 00:27:57.079
wanted to maintain core and that records through of course everything.
514
00:27:57.119 --> 00:27:59.400
If we can get those performance increases on.
515
00:27:59.559 --> 00:28:03.160
If you can optimized for a five hundred megahertz ARM device,
516
00:28:03.799 --> 00:28:05.799
my life's going to be pretty easy. Running around in
517
00:28:05.839 --> 00:28:09.680
my four gigar hurts, you know, Pentium or inteled Ultra
518
00:28:09.759 --> 00:28:11.720
of nine exactly that.
519
00:28:12.240 --> 00:28:16.599
So, yeah, Impeller is it's going to be the future.
520
00:28:16.759 --> 00:28:20.880
We think of the rendering stack for Avalonia right now,
521
00:28:20.920 --> 00:28:24.720
we're still using Skier sharp Avalonia twelve. We'll ship with
522
00:28:24.839 --> 00:28:29.839
skier Sharp as the default. We will bring Impeller probably
523
00:28:29.920 --> 00:28:35.039
within V twelve, so maybe zero point two, three point four,
524
00:28:35.240 --> 00:28:37.440
not sure when, but it will come when it's ready.
525
00:28:39.599 --> 00:28:43.319
And we're using V twelve as an opportunity to experiment
526
00:28:43.359 --> 00:28:48.079
with different back ends and different rendering technologies to see
527
00:28:48.119 --> 00:28:50.960
what works. And we're going to release various different proof
528
00:28:50.960 --> 00:28:54.640
of concepts as previews and see what sticks, what do
529
00:28:54.720 --> 00:29:00.279
people like, what's the most performant, and kind of us
530
00:29:00.400 --> 00:29:02.920
up for when we ship B thirteen that we can
531
00:29:02.960 --> 00:29:07.440
move stuff into stable and that can start to replace
532
00:29:07.480 --> 00:29:08.119
SKEA shop.
533
00:29:08.400 --> 00:29:08.799
Very good.
534
00:29:09.079 --> 00:29:13.079
How many apps out there running Avalonia are for mobile
535
00:29:13.279 --> 00:29:16.519
versus small form factor versus desktop?
536
00:29:17.079 --> 00:29:21.799
Yea. Mobile has historically not been our strength.
537
00:29:22.759 --> 00:29:25.200
Yeah, that's my thought has always been you with the guys,
538
00:29:25.279 --> 00:29:28.920
you sold the WPF problem for me, right exactly.
539
00:29:28.519 --> 00:29:28.680
That.
540
00:29:30.240 --> 00:29:32.759
We can do mobile, but we've just never shipped like
541
00:29:32.880 --> 00:29:38.319
mobile focused controls. So we're fixing that with V twelve,
542
00:29:39.799 --> 00:29:46.759
people are shipping mobile apps. Is it comparable to Flutter, No,
543
00:29:47.799 --> 00:29:53.240
we are very much. Still the best experience is still desktop. Sure,
544
00:29:53.599 --> 00:29:56.160
but there's always been this dichotomy. If you're really good
545
00:29:56.200 --> 00:29:59.440
at mobile, you struggle mightily on the desktop, and if
546
00:29:59.440 --> 00:30:01.960
you're really good at desktop, it's tough to fit it
547
00:30:01.960 --> 00:30:02.559
in the marble.
548
00:30:03.039 --> 00:30:03.960
Yeah, it's I.
549
00:30:04.000 --> 00:30:07.640
Mean, just look at mac Catalyst. If you take a
550
00:30:07.680 --> 00:30:09.599
mobile app and run it on a desktop, you're going
551
00:30:09.680 --> 00:30:12.480
to have some unhappy desktop users. And if you take
552
00:30:12.519 --> 00:30:14.839
a desktop app and try and strip it down into
553
00:30:14.880 --> 00:30:17.759
a mobile app, then you've got unhappy mobile users. You
554
00:30:17.799 --> 00:30:21.240
have to think a cross platform doesn't mean that you
555
00:30:21.240 --> 00:30:23.559
should be reusing one hundred percent of your code across
556
00:30:23.599 --> 00:30:26.920
every platform. You do need to be kind of cognizant
557
00:30:27.000 --> 00:30:33.079
of the different ux paradigms of each platform. Yeah, but
558
00:30:33.480 --> 00:30:38.240
we're strong on mobile from a technical perspective, it's the
559
00:30:38.240 --> 00:30:42.039
the controls that we're lacking. Performance is good, especially with
560
00:30:42.079 --> 00:30:45.799
the V twelve release, but our strength is really desktop
561
00:30:45.799 --> 00:30:50.920
and embedded. Embedded is really where we shine interesting business.
562
00:30:51.160 --> 00:30:53.680
Well, this seems like a good point to break, so
563
00:30:53.799 --> 00:30:59.799
we'll be right back after these messages don't go away,
564
00:31:01.039 --> 00:31:03.880
and we're back at starting at Rocks. I'm Carl Frank Glence,
565
00:31:03.920 --> 00:31:06.960
my friend Richard Campbell, and Mike and Mattner here talking
566
00:31:06.960 --> 00:31:10.200
about Avalonia and one of the things that I thought
567
00:31:10.200 --> 00:31:12.400
about when you said that we're not you know, we
568
00:31:12.440 --> 00:31:15.519
can do mobile, but that's not our main focus. Was
569
00:31:15.519 --> 00:31:18.720
that one of the was that an impetus to partner
570
00:31:18.799 --> 00:31:21.519
with Maui or how did that relationship come.
571
00:31:22.000 --> 00:31:25.519
I mean, I've always my background is zama and I
572
00:31:25.640 --> 00:31:31.000
joined zamoring in twenty thirteen. I stayed through the acquisition.
573
00:31:31.680 --> 00:31:37.799
When I joined zamorin, it was mono touch monodroid right.
574
00:31:39.119 --> 00:31:42.799
It was we had monotuchdot dialogue. I don't know if
575
00:31:42.839 --> 00:31:46.680
anyone remembers that, but that's how I got into the
576
00:31:46.759 --> 00:31:50.359
zamora and ecosystem was through mcguel's library, which was a
577
00:31:50.400 --> 00:31:55.440
precursor to zamor in forms. So I've always had good
578
00:31:55.480 --> 00:32:01.680
relationships and connections into the zamoring team and the Maui team.
579
00:32:01.880 --> 00:32:03.519
Once they did the rebuild.
580
00:32:05.440 --> 00:32:07.960
The Maui thing comes about.
581
00:32:08.160 --> 00:32:10.759
I was sat in a cafe with Joseph Hill, who
582
00:32:10.839 --> 00:32:14.039
was a co founder of Zamorin, and we were just
583
00:32:14.160 --> 00:32:18.319
chatting about Avalonia and what do we want to do?
584
00:32:18.359 --> 00:32:20.039
And I mentioned in passing that.
585
00:32:20.359 --> 00:32:22.559
It would be really cool if we could build out
586
00:32:22.599 --> 00:32:27.160
a back end for Maui based on Avalonia. It would
587
00:32:27.200 --> 00:32:30.559
solve some problems for Maui because it would give them
588
00:32:30.759 --> 00:32:35.519
Web and Linux immediately. I know that they've wanted drawn
589
00:32:35.640 --> 00:32:39.160
UI for a while as an option, So that you
590
00:32:39.200 --> 00:32:41.960
get native or drawn, you get to pick and then
591
00:32:42.000 --> 00:32:45.319
from outside. I mean it's not purely altruistic from our side.
592
00:32:45.359 --> 00:32:49.680
We've hired several folks from Microsoft that know that code
593
00:32:49.680 --> 00:32:53.680
based very well, and by doing this it helps us
594
00:32:53.680 --> 00:32:56.200
fill in the gaps on our mobile side. So you know,
595
00:32:56.240 --> 00:33:00.559
we're going to have the navigation control that's is working
596
00:33:00.599 --> 00:33:04.720
on at the moment and additional APIs that were missing
597
00:33:04.799 --> 00:33:07.279
in Avalonia that just make us a bit more competitive
598
00:33:07.319 --> 00:33:11.920
on the mobile side. So it's mutually beneficial for everyone.
599
00:33:12.319 --> 00:33:18.759
Yeah, that's pretty obvious. And so you were mentioning drawing
600
00:33:19.039 --> 00:33:22.440
the UI, like, are we talking about visual basic style?
601
00:33:23.240 --> 00:33:26.039
So you mean like a rad where you're dragging and dropping?
602
00:33:26.279 --> 00:33:28.279
Yeah, is that what you mean by drawing the UI?
603
00:33:28.640 --> 00:33:28.839
No?
604
00:33:29.119 --> 00:33:31.839
So I mean, I mean this all gets a bit.
605
00:33:32.599 --> 00:33:34.680
It turtles all the way down when you think about
606
00:33:34.720 --> 00:33:39.319
it too deeply. But we draw onto a canvas. So
607
00:33:39.480 --> 00:33:43.359
if you think about how with wind forms you're effectively
608
00:33:43.359 --> 00:33:49.119
wrapping Win thirty two controls, but with WPF it's just
609
00:33:49.200 --> 00:33:51.279
a direct x canvas that you're drawing into.
610
00:33:51.599 --> 00:33:51.839
Yeah.
611
00:33:53.119 --> 00:33:54.680
So when you say drawing, you mean with code.
612
00:33:54.799 --> 00:33:56.880
Yeah, so it goes down to WPF.
613
00:33:56.880 --> 00:33:59.519
It's into mil core, which is a media integration layer,
614
00:33:59.559 --> 00:34:02.319
and that was onto directex canvas. So when you ask
615
00:34:02.319 --> 00:34:05.880
for a button, you're not getting a Win thirty two button.
616
00:34:06.680 --> 00:34:10.039
WPF is just drawing a button for you. We're the same,
617
00:34:10.079 --> 00:34:12.519
but we're not using directexs. We're using Skier, So it's
618
00:34:12.559 --> 00:34:17.280
cross platform. And then I think there's an interesting discussion
619
00:34:17.440 --> 00:34:20.679
there about what is native because lots of people will
620
00:34:20.679 --> 00:34:24.760
say that Avalonia isn't native, but WPF is, and then
621
00:34:25.199 --> 00:34:28.519
it's like, well is it? How are we divining native?
622
00:34:29.000 --> 00:34:29.239
Yeah?
623
00:34:30.559 --> 00:34:33.280
So yeah, I could talk about that for hours.
624
00:34:34.280 --> 00:34:37.079
Well, the whole discussion of what is native is interesting
625
00:34:37.159 --> 00:34:38.320
or by itself.
626
00:34:39.119 --> 00:34:45.440
It really is, especially when you think how web technology
627
00:34:45.480 --> 00:34:47.679
as well is actually rendered and how you're getting down
628
00:34:47.679 --> 00:34:51.320
to pixels on the screen. Like, it's hard to argue
629
00:34:51.320 --> 00:34:56.360
that web isn't actually equally as native as WPF, so
630
00:34:56.719 --> 00:34:59.039
it all comes a bit blurry when you stare at
631
00:34:59.079 --> 00:34:59.679
it too long.
632
00:35:00.159 --> 00:35:03.880
Well, the whole I mean is that even a I
633
00:35:03.880 --> 00:35:05.800
don't know, that seems like it was more of an
634
00:35:05.880 --> 00:35:08.199
issue back in the VB days where you know you
635
00:35:08.239 --> 00:35:12.360
had interpreted versus native code, and you know that was
636
00:35:12.400 --> 00:35:15.440
so much faster. Now machines are so fast that does
637
00:35:15.440 --> 00:35:15.880
it matter?
638
00:35:16.079 --> 00:35:16.320
Yeah?
639
00:35:16.480 --> 00:35:18.280
Is that a plus an argument? Anymore?
640
00:35:18.360 --> 00:35:23.599
Native also means not compatible? Yeah, right, if you're poking
641
00:35:23.679 --> 00:35:26.719
into memory in a video card, you better be very
642
00:35:26.760 --> 00:35:30.800
sure of everything. There are distraction layers for a reason, right.
643
00:35:31.000 --> 00:35:31.280
Yeah.
644
00:35:31.320 --> 00:35:35.159
But in terms of like the VB six drag and
645
00:35:35.239 --> 00:35:40.760
drop Brad style, this is something that Matt, Matt will
646
00:35:40.800 --> 00:35:43.800
know that we've we've talked about massively internally about what
647
00:35:43.880 --> 00:35:49.079
the the use of that is in the in the
648
00:35:49.079 --> 00:35:52.280
future of development. Maybe Matt wants to jump in with
649
00:35:53.039 --> 00:35:55.320
some of his thoughts.
650
00:35:56.400 --> 00:36:00.679
So, yeah, I want to avoid recovering topic you've covered
651
00:36:00.719 --> 00:36:02.920
many times on the show, but the idea of the
652
00:36:03.000 --> 00:36:09.239
transition between a single VB six drag and drop, I
653
00:36:09.239 --> 00:36:11.480
will drop my control here. It'll be fine, It'll be
654
00:36:11.519 --> 00:36:14.960
there for everywhere. It will always be that size screen,
655
00:36:15.039 --> 00:36:17.440
it will always be that aspect ratio. I don't have
656
00:36:17.480 --> 00:36:21.559
to think about, you know, thousands and thousands of potential
657
00:36:21.599 --> 00:36:27.760
different device permutations. That's easy, you know, it's how it
658
00:36:27.840 --> 00:36:32.400
needs to reflow and dynamic documents. And you think about
659
00:36:32.480 --> 00:36:36.360
web development and web development now is you expect the
660
00:36:36.400 --> 00:36:38.559
same website to work on the mobile and on a
661
00:36:38.639 --> 00:36:41.639
desktop and everything to reflow. And there's a reason web
662
00:36:41.679 --> 00:36:45.000
developers stopped using drag and drop. Yeah, it's because drag
663
00:36:45.039 --> 00:36:47.199
and drop is really hard when you have to account
664
00:36:47.199 --> 00:36:50.199
for all those different flows and layouts and variations.
665
00:36:50.719 --> 00:36:54.119
Yeah, we've talked about this to death on this show before. Yeah,
666
00:36:54.280 --> 00:36:57.199
it's and it's not a pixel based world anymore.
667
00:36:57.440 --> 00:37:00.239
When the reality is that devs would use it if
668
00:37:00.280 --> 00:37:02.559
the tool has existed, But it seems like an impossible
669
00:37:02.599 --> 00:37:06.400
tooling actually making tools that would allow you to drag
670
00:37:06.440 --> 00:37:08.679
and drop to build a UI that would also then
671
00:37:08.800 --> 00:37:12.480
have that multimodal nature. There's just a lot of information
672
00:37:12.519 --> 00:37:13.519
you have to feed into that.
673
00:37:14.239 --> 00:37:17.960
We've used internally a tool for our marketing website called
674
00:37:18.000 --> 00:37:23.079
Framer so that our designer could work on it, and
675
00:37:23.119 --> 00:37:26.679
that works where you can set up breakpoints and then
676
00:37:26.800 --> 00:37:32.360
you effectively have different variants of your web page for
677
00:37:32.519 --> 00:37:38.719
each form factor and that's probably the best ux I've
678
00:37:38.760 --> 00:37:43.079
seen for it, but it's still infinitely more frustrating as
679
00:37:43.079 --> 00:37:45.800
a developer to use that ux and just go in
680
00:37:45.800 --> 00:37:46.519
and write code.
681
00:37:46.840 --> 00:37:50.239
Yeah. It seems to me that the Visual Basic sixth
682
00:37:50.320 --> 00:37:53.840
designer was a point in time when the variation of
683
00:37:53.920 --> 00:37:57.639
resolution of screens was relatively small. They were ten twenty
684
00:37:57.639 --> 00:38:01.920
four x seven sixty eight and we had to fix
685
00:38:02.239 --> 00:38:06.199
UI largely menu bar across the top, you know, file
686
00:38:06.320 --> 00:38:11.920
open help and dockable windows like that was a moment, Yeah,
687
00:38:12.000 --> 00:38:15.920
and that moment has passed, Like it's just the now.
688
00:38:16.000 --> 00:38:19.159
You expect the supercomputer in your pocket to work, and
689
00:38:19.199 --> 00:38:22.159
the tablet and you're in the insert sleeve in your
690
00:38:22.199 --> 00:38:26.199
bag to work, and the forty three inch four K
691
00:38:26.400 --> 00:38:29.199
screen and in front of you or the combination of screens.
692
00:38:29.239 --> 00:38:31.159
I've got to sit in front of me right now
693
00:38:31.400 --> 00:38:34.119
to work. We just live in a different planet. You
694
00:38:34.159 --> 00:38:37.000
can't build software this way that way anymore.
695
00:38:37.119 --> 00:38:40.920
I also think it went about my dead loop and
696
00:38:40.960 --> 00:38:44.679
how it's evolved in the last twelve to eighteen months
697
00:38:45.360 --> 00:38:49.440
of more often than not, if I want to change something,
698
00:38:50.239 --> 00:38:52.719
I'll open up clawed code and just prompt it and
699
00:38:52.760 --> 00:38:55.320
it will go off and it will tweet. So do
700
00:38:55.960 --> 00:38:57.880
I need a Dragon Drop designer When I can just
701
00:38:58.000 --> 00:39:00.000
ask ask my aide.
702
00:39:00.880 --> 00:39:04.239
We're spending most of our time describing our software now not.
703
00:39:04.599 --> 00:39:07.440
Writing precisely that I mean. I used.
704
00:39:08.760 --> 00:39:12.960
Google Stitch, their AI designing tool. They've got an MCP
705
00:39:13.159 --> 00:39:16.119
server for it. I connected that up to our dev
706
00:39:16.199 --> 00:39:19.960
tools MCP, and I prompted it in the morning to
707
00:39:20.000 --> 00:39:22.760
say I wanted to build a sample app for us.
708
00:39:24.119 --> 00:39:28.239
It used Google Stitch to design it. Claude then implemented
709
00:39:28.280 --> 00:39:31.159
it and used our dead tools to confirm whether or
710
00:39:31.199 --> 00:39:35.519
not what it had created matched the images that Google
711
00:39:35.840 --> 00:39:36.599
had provided.
712
00:39:37.239 --> 00:39:40.039
The testing was sort of user accepting, testing does this
713
00:39:40.119 --> 00:39:42.000
look like what you described exactly that?
714
00:39:42.119 --> 00:39:43.840
And when it didn't, it would just go back and
715
00:39:43.920 --> 00:39:47.480
keep editing that. I said to it that when you're
716
00:39:47.599 --> 00:39:50.559
confident that it matches, launched the app. So I then
717
00:39:50.599 --> 00:39:54.119
went back into spreadsheets and doing boring things, and then
718
00:39:54.679 --> 00:39:57.480
was greeted with the surprise of an app launching that
719
00:39:57.920 --> 00:39:59.559
looked really nice.
720
00:40:00.280 --> 00:40:04.159
I also noticed, like your Carousell scroll on the main
721
00:40:04.199 --> 00:40:10.440
page of Avalonia is mostly visualizations, because let's face it,
722
00:40:10.480 --> 00:40:12.119
that's what you want your screen to have on it
723
00:40:12.159 --> 00:40:15.800
these days, with new text interfaces and the change of
724
00:40:15.840 --> 00:40:20.199
the software anyway, what you're looking for now is visualizations
725
00:40:20.239 --> 00:40:23.440
of data that are that better suit you making decisions
726
00:40:24.239 --> 00:40:26.840
rather than clicking buttons and filling in textboxes.
727
00:40:27.199 --> 00:40:30.679
Yeah, yeah, yeah, I mean the the apps that are
728
00:40:30.719 --> 00:40:35.239
on the carousel. You've got things like Lunacy, which is
729
00:40:35.280 --> 00:40:41.480
a competitors to Figma, like a hugely complex application. So
730
00:40:41.840 --> 00:40:46.480
it's it's incredible. Matt mentioned earlier, it's incredible what people
731
00:40:46.480 --> 00:40:49.920
are building with Avalonia. If we were I think, if
732
00:40:49.920 --> 00:40:54.840
we were better at marketing and enjoyed that, then we
733
00:40:54.880 --> 00:40:59.119
would probably have significantly more GitHub styles and you know,
734
00:40:59.199 --> 00:41:03.920
more blog posts and things. But we ought to focus
735
00:41:03.960 --> 00:41:06.719
on the code instead of the flashy marketing.
736
00:41:06.840 --> 00:41:09.960
Are you finding a lot of your customers using the
737
00:41:10.159 --> 00:41:13.159
l m's, the cloude code and the co pilots to
738
00:41:14.159 --> 00:41:16.800
completely build out Avalonia applications?
739
00:41:16.840 --> 00:41:19.840
Now, I don't think I've spoken to anyone that's built
740
00:41:19.880 --> 00:41:25.719
out an entire app using an LLM. We're enterprise focus,
741
00:41:25.840 --> 00:41:29.280
so there's a lot of you know, we're quite insulated
742
00:41:29.559 --> 00:41:32.639
in the scheme of things. I think that dot net
743
00:41:32.639 --> 00:41:34.719
in general is going to be one of the last
744
00:41:34.760 --> 00:41:37.840
ecosystems to really embrace AI.
745
00:41:38.719 --> 00:41:40.960
I think we'll get there eventually, I think so.
746
00:41:42.480 --> 00:41:44.360
I think so, yeah, I think there are going to
747
00:41:44.360 --> 00:41:48.360
be some organizations that just can't. I mean, one of
748
00:41:48.400 --> 00:41:54.320
our customers builds stuff that's used for NATO planning, Like,
749
00:41:54.400 --> 00:41:56.679
I don't think they're going to be feeding their source
750
00:41:56.679 --> 00:41:59.360
code into some random LLLM.
751
00:41:59.440 --> 00:42:03.960
Yeah, it's true. Well, I'm hopeful that at some point
752
00:42:03.960 --> 00:42:06.440
in the future we'll be able to use local lms
753
00:42:06.480 --> 00:42:10.039
that do the same thing but keep everything local. And
754
00:42:10.920 --> 00:42:13.760
I'm ready for it because I got my honkin' machine
755
00:42:13.760 --> 00:42:18.639
here with the Scream and GPU, but I haven't. I
756
00:42:18.679 --> 00:42:22.280
haven't had that experience yet. I've tried, but I haven't.
757
00:42:22.360 --> 00:42:23.079
It hasn't worked.
758
00:42:23.320 --> 00:42:28.599
I'm all about clawed code. That's my current current agent
759
00:42:28.679 --> 00:42:29.159
of choice.
760
00:42:30.199 --> 00:42:34.480
You can deny. Avalonia's growth is astonishing, you know, and
761
00:42:34.920 --> 00:42:37.599
the fact without the marketing really speaks to people are
762
00:42:37.599 --> 00:42:39.519
finding it and keeping it and those that are using
763
00:42:39.559 --> 00:42:41.360
it are taking to the next project, the next project,
764
00:42:41.440 --> 00:42:42.119
the next problem.
765
00:42:42.199 --> 00:42:48.199
Yeah, we have we have some telemetry, so it's all
766
00:42:48.199 --> 00:42:51.119
open source. People go and have a look at what
767
00:42:51.159 --> 00:42:54.519
we collect. It's very minimal, but it gives us an
768
00:42:54.599 --> 00:42:59.800
insight into the adoption. So last year or one hundred
769
00:42:59.840 --> 00:43:03.679
twenty two million bills, which was up thirty one point
770
00:43:05.199 --> 00:43:11.000
month on month growth two point one million unique projects.
771
00:43:11.960 --> 00:43:15.960
I mean, it's it's really incredible the amount of growth
772
00:43:15.960 --> 00:43:16.559
that we've seen.
773
00:43:17.000 --> 00:43:20.840
So how do you guys make a living? That good question.
774
00:43:21.559 --> 00:43:29.880
I have a very supportive wife. I mean that that
775
00:43:30.000 --> 00:43:32.760
is there's a joke to that, but it's also the truth.
776
00:43:33.360 --> 00:43:34.199
I mean, we.
777
00:43:35.679 --> 00:43:39.559
Building a business around this has been just a huge
778
00:43:40.159 --> 00:43:43.239
learning curve and uphill struggle.
779
00:43:44.239 --> 00:43:46.119
Open source sure well.
780
00:43:46.119 --> 00:43:50.159
And you know, for me as an architect, when people
781
00:43:50.159 --> 00:43:52.199
are asking about Avalonia, it's like, how do you know
782
00:43:52.280 --> 00:43:55.159
this thing's going to survive? Like what's the main open
783
00:43:55.159 --> 00:43:56.760
sours is one thing, but I'm not prepared to take
784
00:43:56.800 --> 00:43:59.719
over this library if you guys go away, Like, how
785
00:43:59.719 --> 00:44:01.519
do we have some confidence?
786
00:44:01.599 --> 00:44:01.800
Yeah?
787
00:44:01.880 --> 00:44:05.719
That's that's the mindset that we make all of our
788
00:44:05.760 --> 00:44:08.840
decisions through, is how do we ensure the long term
789
00:44:08.920 --> 00:44:13.280
viability of what we do because we have to be
790
00:44:13.320 --> 00:44:16.320
around in ten years time because the folks that are
791
00:44:17.199 --> 00:44:20.320
building on Avalonia have taken a bet on us and
792
00:44:20.360 --> 00:44:25.760
they need that enterprise timeline. So part of that is
793
00:44:26.079 --> 00:44:30.440
a rejection of outside capital. We don't We've we've had
794
00:44:30.480 --> 00:44:34.880
offers for VC injection, but that puts us on a
795
00:44:35.039 --> 00:44:37.639
We did it with Zamorin. It's a very condensed timeline.
796
00:44:37.639 --> 00:44:40.159
You've got to have an exit and that does not
797
00:44:40.199 --> 00:44:43.960
bring long term stability for anyone. So we've said no
798
00:44:44.079 --> 00:44:47.159
to that. So then it was like, well, how do
799
00:44:47.239 --> 00:44:49.679
we monetize this thing that we give away all of
800
00:44:49.679 --> 00:44:53.519
the value. So there was XPF, which is our cross
801
00:44:53.519 --> 00:44:55.840
platform WPF and this.
802
00:44:55.880 --> 00:44:57.679
Is sort of your claim to fame of Hey, you've
803
00:44:57.679 --> 00:44:59.440
got a WPF app and you want to run it
804
00:44:59.480 --> 00:45:01.199
on here you go.
805
00:45:01.760 --> 00:45:05.480
I read an email earlier from a guy that they've
806
00:45:05.519 --> 00:45:11.239
got two applications WPF apps. They got both of them
807
00:45:11.320 --> 00:45:14.400
running on Mac within fifteen minutes of signing up to
808
00:45:14.440 --> 00:45:15.400
our customer portal.
809
00:45:17.199 --> 00:45:18.199
Yeah what's that word?
810
00:45:18.480 --> 00:45:22.519
Yeah, they were blown away by it. So that's that's
811
00:45:22.559 --> 00:45:25.960
been huge for us. That's really helped. But I think
812
00:45:26.039 --> 00:45:30.039
the other main thing that's helped us this year, the
813
00:45:30.079 --> 00:45:35.760
reason that we're at seventeen is Devolutions, one of our customers.
814
00:45:36.840 --> 00:45:42.639
They've sponsored the project for three million dollars, so we
815
00:45:42.719 --> 00:45:48.159
get a million dollars a year, and our attorney couldn't
816
00:45:48.159 --> 00:45:51.400
believe it. So I sent her the contract and she
817
00:45:51.760 --> 00:45:56.079
responded and she said, Mike, people don't give a million
818
00:45:56.119 --> 00:45:56.960
dollars for nothing?
819
00:45:57.199 --> 00:45:58.639
What longs did you break?
820
00:45:59.119 --> 00:45:59.320
Yeah?
821
00:45:59.559 --> 00:46:02.199
What what's happening here? This is not normal? And I
822
00:46:02.239 --> 00:46:05.559
was like, I trust these people. We've worked with them
823
00:46:05.639 --> 00:46:09.920
for a while now. They seem genuine and yeah, they
824
00:46:09.920 --> 00:46:12.960
have been everything that we could ever want in a partner.
825
00:46:13.559 --> 00:46:14.920
Wow, that's great.
826
00:46:15.239 --> 00:46:17.960
Their their view is that they want to ensure that
827
00:46:17.960 --> 00:46:21.199
we're around that they're investing heavily in porting their app
828
00:46:21.239 --> 00:46:25.000
to Avalonia, so it benefits them for the platform to
829
00:46:25.000 --> 00:46:28.360
be stable, and it gives us a runway to be
830
00:46:28.360 --> 00:46:32.360
able to invest in the core technology without having to
831
00:46:32.400 --> 00:46:36.000
be so concerned about, you know, where's the money coming from.
832
00:46:36.159 --> 00:46:38.440
It's got to be cost effective for them, Like somebody
833
00:46:38.519 --> 00:46:40.519
must have done the math to say, should we build
834
00:46:40.519 --> 00:46:43.559
this ourselves? And it was more money than that.
835
00:46:44.280 --> 00:46:48.039
Yeah, I'm not I mean to build this. If you
836
00:46:48.079 --> 00:46:50.960
look at who builds your WI frameworks, you've got to
837
00:46:50.960 --> 00:46:52.559
be pretty crazy to do it.
838
00:46:52.559 --> 00:46:56.360
It's like Google, Yeah, no, it's a solve problem.
839
00:46:56.679 --> 00:46:59.280
Yeah, it would be madness. Yeah.
840
00:46:59.280 --> 00:47:03.880
So Devolution three million dollars, So we get a million
841
00:47:03.920 --> 00:47:06.719
dollars a year. We've got I think two and a
842
00:47:06.760 --> 00:47:11.480
half years left of that. We've got XPF, we sell
843
00:47:11.559 --> 00:47:14.480
support agreements, and we do some development work, but we
844
00:47:14.639 --> 00:47:17.599
try and avoid that as much as we can. And
845
00:47:17.599 --> 00:47:20.599
then we've got Accelerate, which is a huge part of
846
00:47:20.639 --> 00:47:24.440
why I reached out to Matt and was like, would
847
00:47:24.440 --> 00:47:28.039
you please come and work for us? Because Matt is
848
00:47:28.880 --> 00:47:32.360
one of the experts. I think anyone who's looks say
849
00:47:32.400 --> 00:47:35.679
his GitHub, or followed him or knows of him, knows
850
00:47:35.679 --> 00:47:38.360
that he is an expert when it comes to visual
851
00:47:38.360 --> 00:47:43.239
studio development and tooling and understanding how to deliver delightful
852
00:47:43.280 --> 00:47:44.519
developer experiences.
853
00:47:44.719 --> 00:47:45.960
Can you explain accelerate?
854
00:47:46.320 --> 00:47:46.639
I can.
855
00:47:48.079 --> 00:47:51.159
So Accelerate is our value add So we give away
856
00:47:51.199 --> 00:47:54.599
everything within Avalonia for free, so you don't have to
857
00:47:54.599 --> 00:47:57.199
pay a penny to use it. But there are bits
858
00:47:57.239 --> 00:48:03.119
of it that are really the ide. Tooling that is
859
00:48:03.800 --> 00:48:07.840
really difficult engineering, and it takes a certain type of
860
00:48:07.880 --> 00:48:08.920
person to enjoy.
861
00:48:08.760 --> 00:48:11.880
Working on that stuff. People like Matt and.
862
00:48:13.840 --> 00:48:17.199
These types of folks don't work for GitHub stars. They
863
00:48:17.239 --> 00:48:20.679
need some cold, hard cash at the end of the month.
864
00:48:20.800 --> 00:48:24.719
So we were looking at how do how do we
865
00:48:24.800 --> 00:48:28.840
keep having a lonely sustainable and fund these more challenging parts.
866
00:48:29.280 --> 00:48:33.599
So we created Accelerate which is an optional set of
867
00:48:33.800 --> 00:48:38.320
tools and components. So you've got a visual studio, visual
868
00:48:38.320 --> 00:48:42.119
studio code dev tools, and then a packaging app. And
869
00:48:42.159 --> 00:48:48.960
then the components are webe media player, markdown editor. In
870
00:48:49.039 --> 00:48:53.079
the final stages of completing, some other components that will
871
00:48:53.079 --> 00:48:57.079
go into that suite as well. Yeah, the goal is
872
00:48:57.119 --> 00:49:01.679
to have that generate some of the revenue to help
873
00:49:01.719 --> 00:49:04.679
sustain the project so that we can keep working on this,
874
00:49:05.320 --> 00:49:09.079
keep hiring, and keep investing in a platform that is
875
00:49:09.760 --> 00:49:15.760
solving a problem that hundreds of thousands of enterprises have got.
876
00:49:15.960 --> 00:49:18.639
So give us the give us a few of the
877
00:49:18.679 --> 00:49:21.199
tools that are in Accelray. Here's your chance for little
878
00:49:21.199 --> 00:49:24.239
sales pitch. I know you don't like marketing, but might
879
00:49:24.280 --> 00:49:24.719
as well.
880
00:49:25.000 --> 00:49:25.840
I'm terrible it.
881
00:49:26.079 --> 00:49:28.599
Maybe Matt can tell us why the Visual Studio extension
882
00:49:28.840 --> 00:49:31.199
is incredible, because I think that's the main thing that
883
00:49:31.760 --> 00:49:33.159
most folks are excited for.
884
00:49:33.559 --> 00:49:37.960
So having been talked up, so I joined the company
885
00:49:38.199 --> 00:49:43.360
with the goal of making the best UI tooling that's available.
886
00:49:43.639 --> 00:49:47.920
That is that's my remit. And so you know, WPF
887
00:49:48.000 --> 00:49:53.360
is kind of the benchmark for visual studio integration, and
888
00:49:53.400 --> 00:49:57.760
we have a timeline for reaching and surpassing that we
889
00:49:57.880 --> 00:50:00.840
have views for sort of parity with visual radio code,
890
00:50:02.239 --> 00:50:04.440
and then that's just the catching up, and then I've
891
00:50:04.480 --> 00:50:07.039
got ten years of imagining what the tooling could be
892
00:50:07.199 --> 00:50:12.159
like to play in the future, different ways of visualizing
893
00:50:13.039 --> 00:50:15.800
what can be done, what the code might look like,
894
00:50:16.679 --> 00:50:21.880
and then what code you're actually writing. Obviously, zamor has
895
00:50:21.880 --> 00:50:26.440
its critics. No C sharp as a language of creating
896
00:50:26.559 --> 00:50:31.039
UI is you know, some of us deserved, some of
897
00:50:31.039 --> 00:50:34.880
it not so much. C sharp can be used to
898
00:50:34.920 --> 00:50:40.039
create UI, but there are pros and cons of that
899
00:50:40.079 --> 00:50:42.880
as well, And obviously with the rise of AI, I'm
900
00:50:42.920 --> 00:50:46.239
looking heavily at what the future of that might be like,
901
00:50:46.679 --> 00:50:48.719
because it's great that we can describe our AI in
902
00:50:49.079 --> 00:50:53.400
are UI in like in full English sentences or any
903
00:50:53.400 --> 00:50:57.559
other language sentences. But that's a level of abstraction, which
904
00:50:57.599 --> 00:51:00.800
is a big leap between what actually it runs. And
905
00:51:00.880 --> 00:51:04.320
so I'm sort of keenly following all the experiments that
906
00:51:04.320 --> 00:51:08.360
are happening at the moment around maybe some new language
907
00:51:08.559 --> 00:51:12.000
might serve us better as an abstraction between you know,
908
00:51:12.079 --> 00:51:14.559
what we speak and what the code needs to do.
909
00:51:15.159 --> 00:51:17.880
Take us by some of that guesswork, some of that
910
00:51:18.000 --> 00:51:23.360
interpretation and the vagueness. So things like code Speak, which
911
00:51:23.400 --> 00:51:25.280
is the new language from the guy who created Cotlin,
912
00:51:25.559 --> 00:51:28.519
is kind of really exciting for me. I'm just sort
913
00:51:28.519 --> 00:51:30.719
of really keen to see that what that can look like.
914
00:51:31.280 --> 00:51:34.920
I did some experiments last year about what a more
915
00:51:35.039 --> 00:51:38.320
human friendly version of Zama might look like. You know,
916
00:51:38.679 --> 00:51:41.039
we still have this we want to strictly define our
917
00:51:41.079 --> 00:51:44.440
U why, but we don't need XML to do that,
918
00:51:45.119 --> 00:51:48.400
and so the ideas around that, and then of course
919
00:51:48.480 --> 00:51:53.079
testability becomes and testing becomes even more important. It's great
920
00:51:53.119 --> 00:51:55.119
to say I will describe what might want my app
921
00:51:55.119 --> 00:51:56.719
to do, you go build it and it runs.
922
00:51:57.079 --> 00:51:57.639
That's great.
923
00:51:57.760 --> 00:52:01.199
And then six weeks later I will describe a a
924
00:52:01.400 --> 00:52:05.079
change and that gets made and no one notices the
925
00:52:05.079 --> 00:52:08.039
things that are broken in the meantime that you know,
926
00:52:08.800 --> 00:52:11.480
l m's are very good at making more changes than
927
00:52:11.519 --> 00:52:17.440
a desirable or necessary and if you haven't got something
928
00:52:17.480 --> 00:52:19.800
in place to spot those changes and see when it
929
00:52:19.840 --> 00:52:24.760
breaks something subtle, that's kind of really important. So that's
930
00:52:24.880 --> 00:52:27.079
kind of those are the things we're thinking about for
931
00:52:27.119 --> 00:52:30.000
the future, and that's what accelerate we'll go to. At
932
00:52:30.000 --> 00:52:31.400
some point I expect to hope.
933
00:52:31.880 --> 00:52:33.840
What's your relationship to Blazer.
934
00:52:34.400 --> 00:52:37.039
We don't really have We don't really have a relationship
935
00:52:37.039 --> 00:52:40.679
to Blazer. There's some projects that I've seen where you
936
00:52:40.719 --> 00:52:45.920
can use like Blazer style syntax to build out an
937
00:52:45.960 --> 00:52:52.960
avalo of your application. When I've discussed with the team
938
00:52:53.039 --> 00:52:56.719
about alternative syntax, one of the things I've often said
939
00:52:56.760 --> 00:52:59.719
is that I think if we did it, if we wanted.
940
00:52:59.440 --> 00:53:00.960
To move away, we'll not move away.
941
00:53:00.960 --> 00:53:07.199
But adn't an extra language than using Blazer or some
942
00:53:07.280 --> 00:53:11.599
kind of HTML like language is probably a smarter choice.
943
00:53:11.679 --> 00:53:14.320
I agree, That's why I brought it up. It seems like,
944
00:53:14.440 --> 00:53:17.800
you know, rather than improving Xamle, you have something that
945
00:53:18.280 --> 00:53:22.719
works that's really a nice little component model using angle brackets.
946
00:53:22.840 --> 00:53:23.039
Yeah.
947
00:53:23.119 --> 00:53:26.800
Yeah, if I like Blazer, I think when you think
948
00:53:26.800 --> 00:53:32.199
about who are ideal target is right now there the
949
00:53:32.239 --> 00:53:36.880
folks that have invested a huge amount in Xamle, they've
950
00:53:36.880 --> 00:53:39.559
already got all of that those skills, So we've got
951
00:53:39.559 --> 00:53:40.159
that nailed.
952
00:53:40.320 --> 00:53:44.519
So yeah, Matt's job is to think about the future. Yeah.
953
00:53:44.599 --> 00:53:47.639
You know, as I've alonne you, we're heavily enterprise focused,
954
00:53:47.679 --> 00:53:51.119
and that means maintaining things for a long time. We
955
00:53:51.199 --> 00:53:53.800
want to be building new features, not rebuilding the stuff
956
00:53:53.840 --> 00:53:57.599
we already have, unless unless it's a really really strong reason. Sure,
957
00:53:57.800 --> 00:54:00.719
you know, I like the idea of or if you'll
958
00:54:00.760 --> 00:54:02.440
build this new language on top of the thing that
959
00:54:02.519 --> 00:54:05.239
already exists, or the two can work together, and that
960
00:54:05.360 --> 00:54:09.039
compatibility in anything new is really important. The strength of
961
00:54:09.079 --> 00:54:12.840
cross platform is we can build four different platforms with
962
00:54:12.880 --> 00:54:17.000
the same technology, not necessarily that the same thing works everywhere.
963
00:54:17.360 --> 00:54:19.679
If people are going to be using Claude in the
964
00:54:19.920 --> 00:54:23.920
like for building Abalonia apps, what's the importance of going
965
00:54:24.000 --> 00:54:28.039
so far down into ZAM or learning that is, if
966
00:54:28.039 --> 00:54:30.000
you were going to do it by hand, if you
967
00:54:30.039 --> 00:54:33.440
can just describe it, you know, to an LM and
968
00:54:33.519 --> 00:54:36.440
habit right the ZAM I guess readability, I.
969
00:54:36.480 --> 00:54:41.599
Think, yeah, yeah, it's how much you trust what Claude
970
00:54:41.599 --> 00:54:45.239
does or whatever tool does without looking at the code.
971
00:54:45.559 --> 00:54:47.880
And if we can get to a point where I'm
972
00:54:47.920 --> 00:54:50.880
really happy that it's not going to break something, I
973
00:54:50.519 --> 00:54:53.119
can I can clearly describe everything that I want, or
974
00:54:53.159 --> 00:54:55.559
I don't care about the specifics enough that I can
975
00:54:55.639 --> 00:54:57.639
just describe it and it can do it. That's fine.
976
00:54:58.039 --> 00:55:00.719
But when you want to be sure about what's changed.
977
00:55:01.960 --> 00:55:03.480
You need to be able to look at the code
978
00:55:03.519 --> 00:55:05.719
and understand it, or someone needs to be able to
979
00:55:06.000 --> 00:55:06.480
I don't think.
980
00:55:06.559 --> 00:55:06.920
I don't.
981
00:55:07.239 --> 00:55:09.199
I think there's always going to be this position where
982
00:55:09.239 --> 00:55:12.760
we need something between what runs on the machine at
983
00:55:12.920 --> 00:55:17.639
like some really low level and the human speech. The
984
00:55:17.719 --> 00:55:19.199
kind of needs to be something in between.
985
00:55:20.119 --> 00:55:22.400
I'm having a hard time in visioning a future where
986
00:55:23.079 --> 00:55:26.960
I can be confident in the code that an LM writes,
987
00:55:28.199 --> 00:55:31.000
just to make sure it didn't misunderstand, you know, make
988
00:55:31.039 --> 00:55:34.719
sure it didn't make a bad assumption. I mean, I
989
00:55:35.119 --> 00:55:38.559
can't imagine. I mean, I'm probably it's probably going to
990
00:55:38.719 --> 00:55:41.960
come sooner than I think, but I just can't imagine
991
00:55:42.000 --> 00:55:44.280
being able to trust an l and that much. Not
992
00:55:44.320 --> 00:55:48.679
only that, but you know, it's your head on the
993
00:55:48.760 --> 00:55:52.480
chopping block if things go sideways, and you know that
994
00:55:53.559 --> 00:55:56.440
to some people that mean might mean a little embarrassment,
995
00:55:56.559 --> 00:56:00.320
but to other people it could cause it could cost lives,
996
00:56:00.559 --> 00:56:00.760
you know.
997
00:56:01.000 --> 00:56:03.920
Yeah, I mean, if you look at where Avaloni is used,
998
00:56:04.320 --> 00:56:09.000
we've used in operating theaters to make sure that you know,
999
00:56:09.599 --> 00:56:11.679
surgeons are drilling into people's.
1000
00:56:11.280 --> 00:56:13.920
Legs exactly, that they're.
1001
00:56:13.800 --> 00:56:16.239
Drilling into the right places. You wouldn't want a vibe
1002
00:56:16.239 --> 00:56:17.119
coded app.
1003
00:56:19.079 --> 00:56:21.360
Dealing with that, certainly not in twenty twenty six.
1004
00:56:22.000 --> 00:56:24.039
No, No, we're a little way away from that.
1005
00:56:24.400 --> 00:56:25.800
Well, guys would come to the end of the show.
1006
00:56:25.840 --> 00:56:27.559
Is there anything else that you want to mention before
1007
00:56:27.599 --> 00:56:29.159
we before we wrap it up?
1008
00:56:29.679 --> 00:56:33.280
Avaloni twelve it's a preview now is already available, so
1009
00:56:33.800 --> 00:56:36.679
if anyone wants to give that a world the performance
1010
00:56:36.760 --> 00:56:40.760
is really good on mobile and yeah, just check us
1011
00:56:40.760 --> 00:56:44.519
out on get hub. Let's say you won't see us
1012
00:56:44.519 --> 00:56:47.679
at conferences or doing any marketing, you'll only hear from
1013
00:56:47.800 --> 00:56:49.960
us as people have used it and liked it.
1014
00:56:49.960 --> 00:56:55.480
It's great stuff. Thanks guys, Mike James and Matt Lacy
1015
00:56:55.880 --> 00:56:59.519
from Avalonia. Thank you and we'll talk to you next time.
1016
00:57:00.159 --> 00:57:00.880
Dot net Rocks.
1017
00:57:21.559 --> 00:57:24.239
Dot net Rocks is brought to you by Franklin's Net
1018
00:57:24.360 --> 00:57:28.320
and produced by Pop Studios, a full service audio, video
1019
00:57:28.400 --> 00:57:32.519
and post production facility located physically in New London, Connecticut,
1020
00:57:32.719 --> 00:57:37.519
and of course in the cloud online at pwop dot com.
1021
00:57:37.719 --> 00:57:39.840
Visit our website at d O T N E t
1022
00:57:40.079 --> 00:57:44.119
R O c k S dot com for RSS feeds, downloads,
1023
00:57:44.280 --> 00:57:47.960
mobile apps, comments, and access to the full archives, going
1024
00:57:48.000 --> 00:57:51.239
back to show number one, recorded in September two.
1025
00:57:51.039 --> 00:57:51.639
Thousand and two.
1026
00:57:52.280 --> 00:57:54.599
And make sure you check out our sponsors. They keep
1027
00:57:54.679 --> 00:57:57.800
us in business. Now go write some code. See you
1028
00:57:57.880 --> 00:58:01.960
next time. Got in a band day.
1029
00:58:03.199 --> 00:58:08.920
A summer time that means home. Then my Texas in
1030
00:58:09.239 --> 00:58:10.480
line red ball
1
00:00:01.080 --> 00:00:04.799
How'd you like to listen to dot NetRocks with no ads? Easy?
2
00:00:05.360 --> 00:00:08.560
Become a patron for just five dollars a month. You
3
00:00:08.599 --> 00:00:11.320
get access to a private RSS feed where all the
4
00:00:11.359 --> 00:00:14.599
shows have no ads. Twenty dollars a month, we'll get
5
00:00:14.599 --> 00:00:18.440
you that and a special dot NetRocks patron mug. Sign
6
00:00:18.519 --> 00:00:22.920
up now at Patreon dot dot NetRocks dot com. Hi,
7
00:00:23.000 --> 00:00:24.679
this is Carl Franklin.
8
00:00:24.239 --> 00:00:25.480
And this is Richard Campbell.
9
00:00:25.839 --> 00:00:30.000
We've got two special shows coming up soon, episode nineteen
10
00:00:30.120 --> 00:00:32.039
ninety nine and two thousand.
11
00:00:32.399 --> 00:00:35.079
For episode nineteen ninety nine, we're collecting people's y two
12
00:00:35.159 --> 00:00:37.560
k stories what did you do to help the Y
13
00:00:37.600 --> 00:00:39.719
two k event not actually happen?
14
00:00:40.240 --> 00:00:42.960
And for episode two thousand, we're going to be sharing
15
00:00:43.000 --> 00:00:45.479
stories about how dot net shaped your career.
16
00:00:46.000 --> 00:00:48.719
We have a special page at dot netroocks dot com
17
00:00:48.719 --> 00:00:52.159
slash voxpop where you can record messages for us that
18
00:00:52.200 --> 00:00:54.000
we can play on these special episodes.
19
00:00:54.439 --> 00:00:56.479
So tell us what you did for Y two k
20
00:00:56.759 --> 00:00:59.039
and what dot net means to you, and of course
21
00:00:59.079 --> 00:01:01.159
how long you've been listening to dot NetRocks.
22
00:01:01.640 --> 00:01:04.799
So go to dot netroocks dot com slash voxpop now
23
00:01:04.840 --> 00:01:07.079
and leave us a message before the thought of operates
24
00:01:07.079 --> 00:01:09.200
like whiskey left in a glass overnight.
25
00:01:09.159 --> 00:01:09.640
Do it?
26
00:01:22.519 --> 00:01:26.280
Hey, welcome back to dot net Rocks. I'm Carl Franklin.
27
00:01:25.799 --> 00:01:26.799
And I'm Richard Campbell.
28
00:01:26.959 --> 00:01:29.400
Richard, do you realize we've been doing this show for
29
00:01:29.480 --> 00:01:32.280
almost two thousand episodes?
30
00:01:32.480 --> 00:01:35.319
Getting there? Yeah, two thousand is approaching.
31
00:01:35.040 --> 00:01:38.959
And you know you probably just heard the bumper where
32
00:01:38.959 --> 00:01:41.840
we're going to be at the MVP summit or right
33
00:01:41.879 --> 00:01:45.640
before at party with Palermo doing our two thousandth show,
34
00:01:45.680 --> 00:01:48.519
and we ask people to call in with our voxpop.
35
00:01:48.560 --> 00:01:51.599
Go to dot nerocks dot com and look for voxpop
36
00:01:51.640 --> 00:01:54.400
at the menu or just slash vox pop. We only
37
00:01:54.439 --> 00:01:58.200
have three messages. Come on, people, come on, and they're
38
00:01:58.200 --> 00:02:00.920
from old friends, right, you know, but that's not what
39
00:02:00.959 --> 00:02:03.719
we want. We want to show, so come on, give
40
00:02:03.760 --> 00:02:07.680
us some anyway, Let's start with what happened in nineteen
41
00:02:07.719 --> 00:02:11.520
ninety three, and Mike and Matt you can join in
42
00:02:11.560 --> 00:02:17.479
if you want to. Bill Clinton was inaugurated, The World
43
00:02:17.560 --> 00:02:19.680
Trade Center was bombed for the first time.
44
00:02:21.400 --> 00:02:24.400
Yeah, that was that was the truck bomb in the underground.
45
00:02:24.680 --> 00:02:27.199
Yeah, didn't really do anything, So make a mess.
46
00:02:27.680 --> 00:02:30.840
Blue three floors out of the base Bend. Well, a
47
00:02:30.840 --> 00:02:33.719
lot didn't bring the building down. It's only because eight
48
00:02:33.800 --> 00:02:35.719
years later what you know that you would think of
49
00:02:35.759 --> 00:02:37.000
it was huge at the time.
50
00:02:37.199 --> 00:02:40.599
You're right, you're right about that. The Branch Davidians were
51
00:02:40.759 --> 00:02:46.280
invaded in Waco, Texas. That wasn't bad. Major global events
52
00:02:46.280 --> 00:02:49.520
included the Storm of the Century blizzard, and from what
53
00:02:49.599 --> 00:02:52.400
I'm hearing, that was nothing compared to what we just
54
00:02:52.439 --> 00:02:53.800
went through in the northeast.
55
00:02:53.919 --> 00:02:57.199
No, that storm killed a lot of people, Like I
56
00:02:57.199 --> 00:02:59.120
hope there's not a lot of fatalities out right now.
57
00:02:59.159 --> 00:03:00.919
You guy's kind of what you're doing up there when
58
00:03:00.919 --> 00:03:02.240
it comes to bad winter storms.
59
00:03:02.319 --> 00:03:10.000
Yeah, yep. Let's see, the Storm of the Century hit
60
00:03:10.039 --> 00:03:14.000
the East coast in March, massive flood effected the midwest.
61
00:03:15.680 --> 00:03:20.280
Czechoslovakia peacefully split into the Czech Republic and Slovakia on
62
00:03:20.400 --> 00:03:23.400
January first, and the Brundian Civil War began.
63
00:03:23.840 --> 00:03:26.680
Yeah, as opposed to what was happening south of there
64
00:03:26.719 --> 00:03:29.759
in the former Yugoslavia where everybody was killing everybody.
65
00:03:29.840 --> 00:03:34.319
It was terrible. Yeah, So what happened in science and space, Richard.
66
00:03:34.120 --> 00:03:37.120
Well, I'd also throw in in June of nineteen ninety
67
00:03:37.120 --> 00:03:40.319
three was when Kim Campbell became the Prime Minister of Canada,
68
00:03:40.360 --> 00:03:43.960
first time a female prime minister in Canada, although admittedly
69
00:03:44.319 --> 00:03:48.639
she was put in place after Brian mulroney resigned, so
70
00:03:48.759 --> 00:03:51.280
she was really just sort of interim from June until
71
00:03:51.319 --> 00:03:55.919
the federal elections in December when Jean Kreshen will be elected. Yeah.
72
00:03:55.960 --> 00:04:00.560
Starting on the space side, so we have seven shot missions.
73
00:04:00.599 --> 00:04:04.199
Most are not particularly interesting, three Space Lab missions, a
74
00:04:04.199 --> 00:04:09.080
few satellite launches. But in December the first hubble repair mission,
75
00:04:09.800 --> 00:04:14.199
so arguably the most complex Space Shuttle mission ever. I
76
00:04:14.240 --> 00:04:16.639
had a opportunity to actually have dinner once with Story
77
00:04:16.720 --> 00:04:20.959
Muskrave who helped architect that mission. The guy just astonishing, person, Wow,
78
00:04:21.480 --> 00:04:23.399
this is done out of the Shuttle endeavor. Remember hubble
79
00:04:23.480 --> 00:04:27.519
Ed launched in nineteen ninety and then after checkout they
80
00:04:27.560 --> 00:04:31.240
realized the mirror had been miss ground and so.
81
00:04:31.319 --> 00:04:35.720
Didn't they fix it with software rather than attempt to
82
00:04:36.240 --> 00:04:38.079
do some process to the mirror itself.
83
00:04:38.160 --> 00:04:41.839
Now they absolutely put in new optics as well as
84
00:04:41.920 --> 00:04:45.319
software upgrades. They also replaced all the gyros and upgraded
85
00:04:45.319 --> 00:04:48.000
a bunch of instruments and changed out the solar panels.
86
00:04:48.279 --> 00:04:50.240
It had already been up for three years at this point,
87
00:04:50.319 --> 00:04:52.439
so it was sort of an opportunity. And this is
88
00:04:52.480 --> 00:04:56.120
the first time ever to do this kind of repair.
89
00:04:56.399 --> 00:05:00.399
The Shuttle had been designed to retrieve satellite to prepare
90
00:05:00.439 --> 00:05:02.040
them and relaunch them, and it had done a bunch
91
00:05:02.079 --> 00:05:04.720
of that, but most of them were fairly straightforward. This
92
00:05:04.879 --> 00:05:08.560
was a crazy repair and you and I saw the
93
00:05:08.639 --> 00:05:12.079
test articles for the optical correction when we went to
94
00:05:12.120 --> 00:05:14.600
the Goddard Space Center to see the James Web, if
95
00:05:14.600 --> 00:05:19.879
you recall. So, yeah, a very complex mission, but ultimately successful.
96
00:05:19.879 --> 00:05:21.920
Of course they didn't know at the time. You know,
97
00:05:22.000 --> 00:05:23.800
they figured all this stuff out, but then you have
98
00:05:23.839 --> 00:05:26.199
to put it all together, relaunch, and then it takes
99
00:05:26.319 --> 00:05:30.360
months to actually complete the testing to resolve that. Also,
100
00:05:30.360 --> 00:05:34.279
in human spaceflight T sixteen from now, the Russian Federation
101
00:05:34.560 --> 00:05:38.480
flies to Mirror and put some new satellites up, put
102
00:05:38.519 --> 00:05:41.680
some new astronauts or cosmonauts up on the Mare space station.
103
00:05:42.240 --> 00:05:47.279
The Shuttle Mirror relationship is in negotiations, it hasn't started yet. Well,
104
00:05:47.279 --> 00:05:50.959
we'll talk about that in future shows. And one more
105
00:05:51.000 --> 00:05:53.959
thing on the space side, which I talked about last show,
106
00:05:53.959 --> 00:05:55.480
but let's go a little bit of detail on it,
107
00:05:55.519 --> 00:05:58.759
which was Mars Observer. So Mars Observer was launched on
108
00:05:58.800 --> 00:06:00.720
Titan three in nineteen ninety two. That's what we talked
109
00:06:00.720 --> 00:06:02.959
about the last show. It originally was supposed to be
110
00:06:03.040 --> 00:06:05.639
launched by a shuttle, along with many other kinds of satellites,
111
00:06:05.680 --> 00:06:08.279
but the Challenger disaster had created a huge number of
112
00:06:08.360 --> 00:06:12.160
delays when they started prioritizing satellites. There were satellites that
113
00:06:12.240 --> 00:06:15.439
really could only be launched by a shuttle like Galileo,
114
00:06:15.480 --> 00:06:18.319
Magellan and the Ulysses, so they got priority. So there
115
00:06:18.360 --> 00:06:20.480
was a rethink around Mars Observer, and it was a
116
00:06:20.519 --> 00:06:24.480
big satellite. This was an over a one ton orbiter
117
00:06:25.519 --> 00:06:27.000
based on a bus that was really meant to be
118
00:06:27.000 --> 00:06:29.120
around Earth or they're going to fly it to Mars.
119
00:06:30.160 --> 00:06:31.879
So instead they launched on a Titan three, in fact,
120
00:06:31.920 --> 00:06:35.120
the last Titan three, and then three days before it
121
00:06:35.160 --> 00:06:37.279
was supposed to start its burn to go into orbit
122
00:06:37.319 --> 00:06:41.040
around Mars, during the checkout sequence where they were pressurizing
123
00:06:41.079 --> 00:06:42.839
the fuel system and so forth to get ready to
124
00:06:42.839 --> 00:06:46.959
do that, something went wrong and they abruptly lost contact
125
00:06:47.040 --> 00:06:51.120
with Observer. The guess is, and it's a pretty good guess.
126
00:06:52.160 --> 00:06:55.560
The fuel system, which wasn't designed to be turned off
127
00:06:55.639 --> 00:06:59.839
for six months during the cruise phase, the seals had
128
00:07:00.079 --> 00:07:03.680
froze and so as they repressurize system, it leaked hypergolics
129
00:07:03.720 --> 00:07:06.720
into the chassis, which then would combine and burst out
130
00:07:06.720 --> 00:07:09.240
in any direction they could so suddenly spun the satellite
131
00:07:09.279 --> 00:07:12.240
out of control and so lost it. Now being a
132
00:07:12.319 --> 00:07:15.160
large satellite, it had a lot of instruments on it,
133
00:07:15.480 --> 00:07:18.000
and there were test articles of these same instruments. So
134
00:07:18.160 --> 00:07:22.879
over the intervening years after the loss of Observer, all
135
00:07:22.920 --> 00:07:25.879
of those instruments were ultimately flown. So five of the
136
00:07:25.959 --> 00:07:29.079
eight were flown as a Global surveyor. In nineteen ninety six,
137
00:07:29.199 --> 00:07:32.480
or literally the next opportunity to fly, they took five
138
00:07:32.480 --> 00:07:35.199
of those instruments on a smaller spacecraft that would last
139
00:07:35.240 --> 00:07:37.839
for ten years. The gamma y spectrometer w we'ld end
140
00:07:37.920 --> 00:07:39.519
up on Mars Odyssey we had flew in two thousand
141
00:07:39.519 --> 00:07:43.160
and one, and then the infrared radiometer flies on reconnaissance
142
00:07:43.240 --> 00:07:45.519
Order in two thousand and five. So ultimately they got
143
00:07:45.560 --> 00:07:50.519
all the same science, just much later, and really since then,
144
00:07:51.600 --> 00:07:58.399
other than the perseverance and curiosity the big landers, we've
145
00:07:58.399 --> 00:08:02.199
never flown anything that big to Mars. Again, it's just
146
00:08:02.720 --> 00:08:04.959
it's tough to fly big vehicles that far, and you
147
00:08:05.279 --> 00:08:06.639
have to do very specific designs.
148
00:08:06.759 --> 00:08:11.759
I remember they really changed their approach to those rovers,
149
00:08:11.959 --> 00:08:14.959
you know, wrapping them in balloons, that kind of you know,
150
00:08:15.040 --> 00:08:18.279
all kind of low tech solutions for getting them there.
151
00:08:19.279 --> 00:08:23.079
You know, the original Viking missions were stunningly expensive. Right
152
00:08:23.279 --> 00:08:26.000
to land a large vehicle on Mars where it has
153
00:08:26.079 --> 00:08:29.199
just enough atmosphere that you can't just maneuver down, but
154
00:08:29.279 --> 00:08:31.560
not enough atmosphere to really slow you down, it's a
155
00:08:31.680 --> 00:08:36.360
it's a tough balance. And so to reduce costs, they
156
00:08:36.559 --> 00:08:41.840
use they said, the inflatable approach, so hypersonic parachute to
157
00:08:41.840 --> 00:08:45.000
do the initial breaking any heat shield. And then this
158
00:08:45.080 --> 00:08:47.679
set of balloons allow you to bounce to landing. But
159
00:08:47.720 --> 00:08:49.440
that will only handle like one hundred kilos.
160
00:08:49.559 --> 00:08:51.600
And we'll talk about that more in a couple of months, right.
161
00:08:51.559 --> 00:08:53.320
Yeah, when we get we get to those missions. But
162
00:08:53.480 --> 00:08:56.320
and then ultimately the largest system we have rush now,
163
00:08:56.320 --> 00:09:00.159
which was for those two big rovers which are our
164
00:09:00.279 --> 00:09:03.039
e metric ton, is what they call the sky hook system,
165
00:09:03.080 --> 00:09:06.600
which is insanely complicated, but it's a precise landing system
166
00:09:06.639 --> 00:09:08.759
for more than a ton on the Mars, and it's
167
00:09:08.799 --> 00:09:09.440
the best we've got.
168
00:09:09.480 --> 00:09:11.919
Mike is nodding. Do you remember that all that stuff?
169
00:09:12.360 --> 00:09:14.159
No, I'm just the sky hoof.
170
00:09:14.159 --> 00:09:17.559
I've been watching YouTube videos when the wie's away. I
171
00:09:17.559 --> 00:09:20.279
get to watch really nerdy things and watching about how
172
00:09:20.279 --> 00:09:22.639
we land stuff on Mars, and I find all of
173
00:09:22.679 --> 00:09:23.759
that very fascinating.
174
00:09:24.240 --> 00:09:26.559
Precision landing is bloody hard because you don't know how
175
00:09:26.600 --> 00:09:28.200
much atmosphere you're going to hit, so you don't know
176
00:09:28.240 --> 00:09:30.960
how much you're going to slow down, and so there's
177
00:09:30.960 --> 00:09:33.559
a bunch of moments you have to decide to do
178
00:09:33.600 --> 00:09:35.840
some maneuvering to get where you're planning to go.
179
00:09:35.960 --> 00:09:38.080
Yeah, and it's not like you can just tweak like
180
00:09:38.279 --> 00:09:39.039
in real time.
181
00:09:39.360 --> 00:09:43.879
A message from Earth to Mars to adjust courses got
182
00:09:43.919 --> 00:09:45.200
to be thought about ahead of time.
183
00:09:45.279 --> 00:09:49.440
Yeah. The entire event of entering the atmosphere and landing
184
00:09:49.840 --> 00:09:53.279
happens before the first signal arrives at Earth's incredible, right,
185
00:09:53.320 --> 00:09:57.159
It's seven minutes from arbitilator face to landing, and it's
186
00:09:57.159 --> 00:09:58.720
eleven minutes to transmit data.
187
00:09:59.039 --> 00:10:01.519
One way about that the next time you don't get
188
00:10:01.559 --> 00:10:03.080
a text answer right away.
189
00:10:03.480 --> 00:10:08.080
Yeah, has to go to space. But now think about this,
190
00:10:09.200 --> 00:10:12.679
knowing that they were still able to take pictures of
191
00:10:12.720 --> 00:10:17.519
the re entry and ultimate landing of Perseverance with the
192
00:10:17.559 --> 00:10:22.120
Odyssey orbiter purely by timing, to say, basically, time that
193
00:10:22.320 --> 00:10:24.240
Odyssey was in the right place to take pictures in
194
00:10:24.279 --> 00:10:27.639
the right location downward and gut shots of the parachute
195
00:10:27.639 --> 00:10:28.799
and the heat shield ejection.
196
00:10:29.039 --> 00:10:29.960
Like, that's cool.
197
00:10:30.480 --> 00:10:33.240
All but all done. All of it had happened before
198
00:10:33.279 --> 00:10:35.360
we knew any of it. It's all maths just had
199
00:10:35.399 --> 00:10:37.480
to do to maths. Yeah, okay, should we talk about
200
00:10:37.519 --> 00:10:39.639
computing because an I three was a very good year
201
00:10:39.679 --> 00:10:43.039
for computing, Yes, at least for the Internet side, So
202
00:10:43.159 --> 00:10:47.840
cern that's our friend. Tim Berners Lee releases the source
203
00:10:47.879 --> 00:10:50.480
code for the first web server, the one that ran
204
00:10:50.519 --> 00:10:52.840
on the next, which makes it a whole lot easier
205
00:10:52.840 --> 00:10:54.840
to build web service because as of the beginning of
206
00:10:54.919 --> 00:10:57.559
the year in nineteen ninety three, there's an estimate exactly
207
00:10:57.960 --> 00:11:01.320
fifty web servers in the whole world. Don't worry, but it.
208
00:11:01.240 --> 00:11:03.000
Was it was written in a different language, though it
209
00:11:03.000 --> 00:11:03.440
wasn't like C.
210
00:11:03.840 --> 00:11:06.399
It was written Yeah, I was written an objective C
211
00:11:06.600 --> 00:11:09.039
because that was the language of the next right, that's.
212
00:11:08.960 --> 00:11:12.440
Job objective cy, so you had to figure that out first.
213
00:11:13.159 --> 00:11:18.519
But meantime, there are other tools on the Internet to
214
00:11:18.639 --> 00:11:20.720
use the Internet. Right this is before the Web, and
215
00:11:20.720 --> 00:11:22.720
the most one of the most profita onest one called Gopher,
216
00:11:23.399 --> 00:11:25.799
written by a group at the University of Minnesota, and
217
00:11:25.840 --> 00:11:28.039
literally it was for you go for info, and it
218
00:11:28.080 --> 00:11:31.559
was widely used by academics in the universities. It was
219
00:11:31.600 --> 00:11:33.679
also used by the Library of Congress, like it was
220
00:11:33.799 --> 00:11:36.960
the way at the time. I remember surfing Gopher, however,
221
00:11:37.240 --> 00:11:39.519
and they and they were talking about incorporating features that
222
00:11:39.519 --> 00:11:42.200
were webbish, like hyperlinking and so forth. And then I
223
00:11:42.279 --> 00:11:44.559
decided it was getting popular enough that they wanted to
224
00:11:44.639 --> 00:11:47.200
charge for a server for it, and oddly enough, nobody
225
00:11:47.200 --> 00:11:50.600
wanted to pay, and so everybody just switched switched to
226
00:11:50.639 --> 00:11:54.159
web technologies. Which is useful because over in the University
227
00:11:54.159 --> 00:11:58.799
of Illinois, Urbana Champlaine, they are just releasing a browser
228
00:11:58.919 --> 00:12:03.000
called Mosaic. This is also the year that Windsock comes
229
00:12:03.039 --> 00:12:06.080
out for Windows. So that's remember that Windows at this
230
00:12:06.200 --> 00:12:09.559
time does not use TCPIP by default. That uses net buoy,
231
00:12:10.080 --> 00:12:11.679
and so if you want to get on the Internet.
232
00:12:11.720 --> 00:12:14.039
You need to use CCPP, so you use windsof.
233
00:12:13.720 --> 00:12:15.519
There are all sorts of ads in the back of
234
00:12:15.720 --> 00:12:19.600
you know, PC Week and all those magazines for TCPIP libraries.
235
00:12:19.879 --> 00:12:23.840
I remember at that time because there wasn't anything in Windows.
236
00:12:23.320 --> 00:12:28.879
And O'Reilly has a web page up already and they
237
00:12:28.879 --> 00:12:31.399
are the first to sell ads on it. In nineteen
238
00:12:31.480 --> 00:12:37.720
ninety three. Wow, yeah, yeah, other computing stuff besides windsock,
239
00:12:37.759 --> 00:12:39.159
we have a good operating system year. This is the
240
00:12:39.240 --> 00:12:43.440
year that free bsd gets released. Microsoft puts out m
241
00:12:43.519 --> 00:12:47.799
STAS six NT three one, the original NT without a Guy,
242
00:12:48.360 --> 00:12:51.799
and Visual Basic three. One of the best proof points
243
00:12:51.799 --> 00:12:53.759
that the third versions of things made by Microsoft are
244
00:12:53.759 --> 00:12:58.240
the best ones. Yes, the first Intel Pentium ships, they
245
00:12:58.240 --> 00:13:00.240
didn't want to call it the five eighty six because
246
00:13:00.240 --> 00:13:01.759
they've been doing the two eighty six, three eighty six,
247
00:13:01.840 --> 00:13:05.320
forty six things. They pent as in five and it's
248
00:13:05.360 --> 00:13:08.039
a whole three million transistors and three hundred megahurts.
249
00:13:08.159 --> 00:13:10.399
Had a hard time keeping that thing cool, didn't they.
250
00:13:11.200 --> 00:13:13.279
The later pen the first Gigaherts pendiums are the ones
251
00:13:13.320 --> 00:13:14.440
that were really tough to cool.
252
00:13:14.480 --> 00:13:17.440
But wasn't that the thing that sort of triggered the
253
00:13:17.879 --> 00:13:23.320
more process or more CPUs on a core, more cores
254
00:13:23.360 --> 00:13:24.000
on a CPU.
255
00:13:24.080 --> 00:13:26.759
We're a few years away from that, yet this is
256
00:13:26.799 --> 00:13:30.360
the beginning of that problem that as you research of density,
257
00:13:30.399 --> 00:13:33.360
the temperature gets up too high, so and they can't
258
00:13:33.399 --> 00:13:35.720
keep the cycle rates increasingly. We're three hundred mega hurts.
259
00:13:35.720 --> 00:13:38.360
We're going to keep running up over at gigahertz and
260
00:13:38.399 --> 00:13:41.399
so forth. We're going to peek around three or four,
261
00:13:42.080 --> 00:13:43.919
and then we're going to back off because it's just
262
00:13:44.080 --> 00:13:47.480
so much electron erosion and problems. And now now we're
263
00:13:47.480 --> 00:13:50.039
starting to creep up again because new designs are working better. Yeah,
264
00:13:50.960 --> 00:13:53.080
a couple of last things and we'll move on. Two
265
00:13:53.200 --> 00:13:57.240
important games in nineteen ninety three. One of them is
266
00:13:57.759 --> 00:14:03.919
missed by broder Bond first real multi media game, So
267
00:14:04.080 --> 00:14:08.080
am be in such experiential Yeah, I loved it, really
268
00:14:08.080 --> 00:14:10.120
set the class and it is a you know, not
269
00:14:10.200 --> 00:14:11.559
just gave me the year, but al eamn, a game
270
00:14:11.600 --> 00:14:14.279
of the decade or more. And the story was it
271
00:14:14.320 --> 00:14:16.639
was all about the story, right totally. It was like
272
00:14:16.679 --> 00:14:19.960
in this slow discovery playing a movie. No narration, Yeah right,
273
00:14:20.039 --> 00:14:21.840
you just had to figure it out. It was great.
274
00:14:21.840 --> 00:14:25.200
And the other game for mid software Doom. Yeah, first
275
00:14:25.240 --> 00:14:27.440
person Shooter. Yep. And that's what I got, all right.
276
00:14:27.519 --> 00:14:30.120
Before I move on to Better Know Framework, let's just
277
00:14:30.200 --> 00:14:34.600
quickly go over the top ten selling albums worldwide nineteen
278
00:14:34.679 --> 00:14:39.080
ninety three. The hits the B sides by Prince Key
279
00:14:39.159 --> 00:14:44.240
tracks are seven and Cream if you remember that one. Yeah,
280
00:14:44.320 --> 00:14:47.559
the chronic by Doctor Dre Nutting, but a g thang
281
00:14:47.639 --> 00:14:51.279
Let Me Ride. We talked about that last show because
282
00:14:51.279 --> 00:14:55.519
it's still going on. Eric Clapton Unplugged is still there.
283
00:14:55.879 --> 00:15:01.360
Number eight, Tears in Heaven and Laila Versus Pearl Jam,
284
00:15:02.879 --> 00:15:07.039
Number seven, Daughter Go and Animal The big hits there
285
00:15:07.320 --> 00:15:11.960
Janet Jackson estimated sales fourteen plus million. That's the Way
286
00:15:12.000 --> 00:15:17.960
Love Goes If and Again, ten Summoners Tales by Sting,
287
00:15:19.639 --> 00:15:21.720
If I ever Lose my faith in You, Fields of
288
00:15:21.759 --> 00:15:26.000
Gold in Shape of My Heart, Great songs Aerosmith puts
289
00:15:26.000 --> 00:15:29.679
Out Get a Grip Number four estimated sales twenty plus million.
290
00:15:30.440 --> 00:15:33.919
Tunes like Living on the Edge, Crying Crazy and Amazing
291
00:15:36.639 --> 00:15:39.399
Number three, Bat Out of Hell two Back into Hell
292
00:15:39.480 --> 00:15:43.200
by meat Loaf. I do anything for love, but I
293
00:15:43.240 --> 00:15:47.080
won't do that. You had such a great sense of humor,
294
00:15:48.000 --> 00:15:51.799
and then rock and roll dreams come through. Number two
295
00:15:51.879 --> 00:15:54.840
The Bodyguard. We talked about that, Whitney Houston. I Will
296
00:15:54.879 --> 00:15:57.399
Always Love You, I Have Nothing and I'm every Woman.
297
00:15:57.840 --> 00:16:04.000
Number two in nineteen ninety one, forty five plus million sold,
298
00:16:04.039 --> 00:16:08.480
and the number one selling is Music Box by Mariah
299
00:16:08.559 --> 00:16:12.759
Carey twenty eight to thirty two million, Dream Lover, Hero,
300
00:16:13.000 --> 00:16:17.399
Without You and Anytime You Need a Friend. And that's
301
00:16:17.559 --> 00:16:21.120
it for our nineteen ninety three review. I guess now
302
00:16:21.159 --> 00:16:24.039
it's time for better, no framework, awesome.
303
00:16:25.799 --> 00:16:31.000
It's.
304
00:16:31.480 --> 00:16:31.879
A man.
305
00:16:31.879 --> 00:16:32.279
What do you got?
306
00:16:32.519 --> 00:16:32.600
Well?
307
00:16:32.679 --> 00:16:34.320
Last week I talked about t unit.
308
00:16:34.440 --> 00:16:36.720
Yes, remember yep, Simon Krapp.
309
00:16:36.799 --> 00:16:39.240
Well, no, he didn't write it, He just brought it
310
00:16:39.240 --> 00:16:42.639
to our attention. And then he went on to write
311
00:16:42.679 --> 00:16:46.360
a tool called t unit migrator. Oh, that's a dot
312
00:16:46.399 --> 00:16:49.600
net tool that migrates test projects from MS test and
313
00:16:49.840 --> 00:16:53.720
unit x unit and x unit v three to t
314
00:16:53.960 --> 00:16:57.120
unit because he really loves t unit. Well, this is
315
00:16:57.519 --> 00:17:02.559
who wouldn't love t unit. This is the classic developer
316
00:17:02.600 --> 00:17:05.640
open source project. You need it for yourself and you
317
00:17:05.680 --> 00:17:07.799
think other people would benefit from it, so you make
318
00:17:07.839 --> 00:17:10.119
a tool and happily share it. Yeah, and that's what
319
00:17:10.200 --> 00:17:12.240
it is, it's cool and of course t unit is
320
00:17:12.279 --> 00:17:15.359
a modern testing framework for dot net that uses source
321
00:17:15.519 --> 00:17:21.920
generated tests in parallel execution, native AOT support and it's
322
00:17:21.920 --> 00:17:24.640
all good stuff and it's the new hotness and unit
323
00:17:24.720 --> 00:17:29.039
testing and that's it. Richard, who's talking to us.
324
00:17:28.920 --> 00:17:31.839
Today grabbing comment off a show seventeen eighty five which
325
00:17:31.839 --> 00:17:34.480
you did back in twenty two talking to Dan Walmsley
326
00:17:34.519 --> 00:17:37.160
about Avalonia one point zero because I know we're going
327
00:17:37.200 --> 00:17:40.480
to get a little chance to revisit Avalonia and we
328
00:17:40.519 --> 00:17:42.400
have comment on the show from Aaron Stalisbury this a
329
00:17:42.400 --> 00:17:44.359
few years ago where he says I've been using Avalonia
330
00:17:44.359 --> 00:17:47.759
for desktop and it's been a pleasure. It's one project
331
00:17:47.799 --> 00:17:50.200
and everything just works. It might help people to know
332
00:17:50.400 --> 00:17:54.839
that they getthub repo Avalodia community slash awesome. Avalonia curates
333
00:17:54.880 --> 00:17:58.640
a great collection of add ons. I love the air
334
00:17:58.680 --> 00:18:02.079
awesome lists. Yeah, thanks for your info. Hope it helps people,
335
00:18:02.160 --> 00:18:04.200
though committedly it's a few years old. And a copy
336
00:18:04.240 --> 00:18:05.440
of music codey is on its way to you, and
337
00:18:05.480 --> 00:18:06.920
if you'd like a copy of music Cobey, I write
338
00:18:06.920 --> 00:18:08.759
a comment on the website at dot at rocks dot
339
00:18:08.759 --> 00:18:10.799
com or on the Facebook's publish every show there, Andy
340
00:18:10.880 --> 00:18:12.480
comment there, I'll read it on the show was at
341
00:18:12.519 --> 00:18:13.880
your copy of music O Music.
342
00:18:13.640 --> 00:18:17.440
To Code by Still Going Strong twenty two tracks, twenty
343
00:18:17.480 --> 00:18:19.680
five minutes each designed to keep you in a state
344
00:18:19.680 --> 00:18:21.960
of flow while you're writing code. You can get it
345
00:18:21.960 --> 00:18:25.680
at music toocode by dot Net. All right, so I
346
00:18:25.680 --> 00:18:31.279
guess it's time, after this horribly long introduction to introduce
347
00:18:32.119 --> 00:18:35.000
Mike James and Matt Lacy. Mike is the CEO of
348
00:18:35.039 --> 00:18:38.680
Avalonia UI. He has spent his entire career focused on
349
00:18:38.839 --> 00:18:43.920
crossplat development, starting as a developer building with QT before
350
00:18:44.039 --> 00:18:48.240
joining Zamorin and subsequently Microsoft. He has dedicated his career
351
00:18:48.240 --> 00:18:52.000
to enabling developers to build apps for every platform. He's
352
00:18:52.039 --> 00:18:56.559
now focused on continuing the mission with Avalonia UI. And
353
00:18:56.640 --> 00:19:00.839
Matt Lacy is a software developer at Avalonia, building software
354
00:19:00.880 --> 00:19:03.720
since the late nineties and has worked on more platforms
355
00:19:03.720 --> 00:19:07.240
and in more languages than he can remember over the years.
356
00:19:07.279 --> 00:19:09.799
I don't know, does say something about your memory or
357
00:19:09.920 --> 00:19:11.359
about the number of platforms.
358
00:19:11.799 --> 00:19:12.640
I'm going to say both.
359
00:19:14.480 --> 00:19:17.680
Over the years, he's created systems that have processed hundreds
360
00:19:17.680 --> 00:19:20.519
of millions of dollars in transactions and apps that have
361
00:19:20.559 --> 00:19:24.759
been installed more than half a billion times today. His
362
00:19:24.920 --> 00:19:29.000
focus is on helping other developers build software that generally
363
00:19:29.640 --> 00:19:34.400
genuinely delivers value to the people who use it. He's
364
00:19:34.480 --> 00:19:37.359
also an author and has been a Microsoft MVP since
365
00:19:37.400 --> 00:19:41.400
twenty fifteen. Welcome guys. Hey, I guess we're going to
366
00:19:41.440 --> 00:19:44.519
start with the state of Avalonia. We've talked to death
367
00:19:44.559 --> 00:19:46.039
about what it is, and if you don't know what
368
00:19:46.079 --> 00:19:48.559
it is, just go do that on your own time.
369
00:19:48.799 --> 00:19:51.599
We know what it is. What's going on with Abolonia, Well.
370
00:19:51.759 --> 00:19:55.480
There's so much going on with Ablonia. It feels like
371
00:19:55.559 --> 00:19:59.599
more has happened in the last twelve months than the
372
00:19:59.680 --> 00:20:05.960
last twelve years. We've got the open source which was
373
00:20:06.119 --> 00:20:13.319
created in twenty thirteen. That's been like a slow adoption
374
00:20:14.000 --> 00:20:17.680
over those initial years, and then the snowball is just
375
00:20:18.279 --> 00:20:22.839
picking up speed, and so we've seen just a huge
376
00:20:22.839 --> 00:20:27.000
amount of growth from the community just picking it up.
377
00:20:27.680 --> 00:20:28.279
It's all.
378
00:20:29.759 --> 00:20:32.319
People just recommending it to each other, which is lovely.
379
00:20:32.640 --> 00:20:36.279
We don't have any sales or marketing. It's all just
380
00:20:36.480 --> 00:20:37.480
natural word of mouth.
381
00:20:38.480 --> 00:20:39.000
Good time.
382
00:20:39.400 --> 00:20:43.480
Yeah, and then like the team is now seventeen people,
383
00:20:43.480 --> 00:20:45.480
so we've got a load of folks that's working on
384
00:20:45.759 --> 00:20:51.920
building this out to try and deliver on the goal
385
00:20:52.000 --> 00:20:56.519
of creating the best UI framework for donnet. So, yeah,
386
00:20:56.519 --> 00:20:58.440
there's just a ton of things that have been happening.
387
00:20:58.519 --> 00:21:00.359
It's difficult to know where to even begin.
388
00:21:00.839 --> 00:21:02.319
Matt, you want to throw in your two cents. It
389
00:21:02.319 --> 00:21:04.319
looks like you're smiling there, you've got an idea of
390
00:21:04.319 --> 00:21:04.799
how to begin.
391
00:21:05.359 --> 00:21:11.000
No, I'm smiling because I recognizing the size of the topic. Yeah, okay, Yeah,
392
00:21:11.039 --> 00:21:13.079
So I joined the company at the end of last
393
00:21:13.119 --> 00:21:16.119
year having been well aware of them for a long
394
00:21:16.160 --> 00:21:20.720
time and having seen that being one of a number
395
00:21:20.759 --> 00:21:23.440
of companies and projects in the same sort of cross
396
00:21:23.480 --> 00:21:26.960
platform dot net space. And when I joined, what really
397
00:21:27.000 --> 00:21:31.319
surprised me was the number of people who are using it.
398
00:21:31.319 --> 00:21:31.720
It's this.
399
00:21:33.839 --> 00:21:35.880
People have gone out and found it and fallen in
400
00:21:35.920 --> 00:21:38.839
love with it and just been using it and building
401
00:21:39.519 --> 00:21:42.920
really big projects and really sort of core and key
402
00:21:43.000 --> 00:21:46.799
line of business apps. And you know, the team's not
403
00:21:46.839 --> 00:21:49.759
been shouting about all they've been doing, but lots of
404
00:21:49.799 --> 00:21:52.519
people are using it to build some really powerful things.
405
00:21:53.519 --> 00:21:58.160
And there's all sorts of partnerships and other projects which
406
00:21:58.200 --> 00:22:01.440
have sort of come along in response to that, just
407
00:22:01.720 --> 00:22:06.599
as the wider ecosystem has recognized what's there and what's possible.
408
00:22:06.680 --> 00:22:10.119
Partnerships with say Google or Maui.
409
00:22:09.880 --> 00:22:10.799
Yeah, both of those.
410
00:22:12.000 --> 00:22:16.720
So the Google ones I think really interesting because so
411
00:22:17.279 --> 00:22:18.720
one of the things that we have to do as
412
00:22:18.799 --> 00:22:22.240
platform stewards is to think about the next five ten years.
413
00:22:23.079 --> 00:22:29.480
So we cater to largely speaking to enterprises. It's those
414
00:22:29.559 --> 00:22:33.119
line of business apps, and those enterprises want long term stability,
415
00:22:33.279 --> 00:22:36.799
so we have to kind of look out part the
416
00:22:36.839 --> 00:22:41.759
immediate horizon to decide where do we want to push
417
00:22:41.759 --> 00:22:45.920
the framework. A key part of that is performance and
418
00:22:46.119 --> 00:22:50.680
the rendering stack, and we've used skier Sharp for years.
419
00:22:50.759 --> 00:22:53.200
It's been the bedrock of how we've been able to
420
00:22:53.200 --> 00:22:58.559
go cross platform. But if you look at Flutter and
421
00:22:58.160 --> 00:23:04.559
their moves towards Impeller, which is much more performance for
422
00:23:04.640 --> 00:23:07.119
tiling based GPUs, which is what you're going to see
423
00:23:07.119 --> 00:23:10.039
on your phones, but also if you've got a modern
424
00:23:10.480 --> 00:23:15.880
Mac that's a tiling based GPU. So we're kind of
425
00:23:15.880 --> 00:23:18.759
looking at the border ecosystem and seeing these opportunities for
426
00:23:18.960 --> 00:23:22.519
improvements within Avalonia that aren't you know, an immediate win,
427
00:23:23.720 --> 00:23:28.759
but something to kind of aspire to be building. We
428
00:23:29.119 --> 00:23:32.039
create lots of experiments and one of those was around below,
429
00:23:32.640 --> 00:23:36.200
and the folks from Impella on the Flutter team reached
430
00:23:36.200 --> 00:23:39.079
out and said, is there any interest in a collaboration.
431
00:23:41.400 --> 00:23:45.039
Our minds were like, our minds were blown because number one,
432
00:23:45.079 --> 00:23:47.680
they were praising Avalonia and saying that they've been following
433
00:23:47.680 --> 00:23:51.279
the project for years from the sidelines. And it's like
434
00:23:51.400 --> 00:23:53.680
the fact that there's folks on the Flutter team that
435
00:23:53.799 --> 00:23:56.519
are even aware of Avalonia.
436
00:23:56.200 --> 00:23:58.799
Is that you even know my name precisely?
437
00:23:59.119 --> 00:23:59.920
Are you kidding me?
438
00:24:00.759 --> 00:24:04.319
Yeah, So there's a huge sense of pride in that.
439
00:24:05.400 --> 00:24:07.000
But we get on the call and we chat with them,
440
00:24:07.000 --> 00:24:11.559
and it's, you know, engineers to engineers, and there's this
441
00:24:12.000 --> 00:24:16.759
common goal of how can we take impeller and enable
442
00:24:16.799 --> 00:24:21.079
it to work for more than just Flutter developers, and
443
00:24:21.119 --> 00:24:23.079
so in our case, it's dot net, so we want
444
00:24:23.079 --> 00:24:26.920
to bring it toward dot net developers. But to do that,
445
00:24:26.960 --> 00:24:30.720
there's some difficult engineering work that needs to happen on
446
00:24:30.839 --> 00:24:34.519
both sides because it is designed very much for Flutter,
447
00:24:35.599 --> 00:24:37.039
it's not really designed to.
448
00:24:37.079 --> 00:24:39.759
Be used and Flatter has its own sort of approach
449
00:24:39.880 --> 00:24:42.640
to you I which I always thought was very mobile centric,
450
00:24:42.680 --> 00:24:44.880
that kind of flow design.
451
00:24:45.279 --> 00:24:49.119
Yeah, but even just at the Impeller level, it's made
452
00:24:49.160 --> 00:24:54.160
assumptions that it's a very different beast to Skier. So
453
00:24:54.240 --> 00:24:57.599
it's made assumptions that are challenging for us. So you know,
454
00:24:57.680 --> 00:25:01.480
we have to collaborate to to work out where do
455
00:25:01.559 --> 00:25:03.559
we where do we make those changes. Do we do
456
00:25:03.599 --> 00:25:06.359
it in Impeller where it's going to help other projects
457
00:25:06.359 --> 00:25:09.200
that might want to take on that dependency, or do
458
00:25:09.279 --> 00:25:12.440
we change our rendering back end to adjust to the
459
00:25:12.480 --> 00:25:13.440
way that Impeller works.
460
00:25:13.440 --> 00:25:14.279
So there's like this.
461
00:25:15.960 --> 00:25:19.119
One more time. Tell me more about Impala. You said
462
00:25:19.119 --> 00:25:21.799
you changed from Skia Sharp to impoler. Is Impala your
463
00:25:21.839 --> 00:25:23.720
thing or is it an open source project?
464
00:25:23.960 --> 00:25:24.599
You?
465
00:25:25.039 --> 00:25:29.559
Yeah, so it's from Google. It's it's their replacement to Skier.
466
00:25:29.680 --> 00:25:32.240
So ski has been around for years. If you use
467
00:25:32.279 --> 00:25:37.000
Google Chrome, that's powered by Skier. It's the two D
468
00:25:37.160 --> 00:25:41.640
graphics library. So you're drawing. If you need to draw
469
00:25:41.759 --> 00:25:44.640
anything in an app, you're probably going to use Skier
470
00:25:44.720 --> 00:25:48.079
set or ski sharp within the dot ecosystem.
471
00:25:47.599 --> 00:25:49.640
Right, this is from the Mano stack.
472
00:25:49.599 --> 00:25:53.119
Exactly that said Miguel created.
473
00:25:53.240 --> 00:25:57.839
I think did the first set of commits, huge, huge,
474
00:25:57.880 --> 00:26:00.359
number of commits, and then Matthew came in and took
475
00:26:00.359 --> 00:26:05.200
it over when we were at Zamarin, and it's allowed
476
00:26:05.279 --> 00:26:07.200
us to go cross platform. So we have this cross
477
00:26:07.200 --> 00:26:14.599
platform drawing functionality that works everywhere. But as I say,
478
00:26:14.680 --> 00:26:18.559
it's it's been replaced on the flatter side with Impeller,
479
00:26:18.559 --> 00:26:21.960
which is the new two D graphics rendering library that
480
00:26:22.640 --> 00:26:25.319
is much more optimized for modern GPUs.
481
00:26:25.759 --> 00:26:26.039
Right.
482
00:26:26.119 --> 00:26:29.400
So, as I say, it's that tile tile based GPUs,
483
00:26:29.440 --> 00:26:31.519
which is what you've got on your phone, it's what
484
00:26:31.559 --> 00:26:35.720
you've got in your your max your modern desktop GPUs
485
00:26:35.799 --> 00:26:38.680
can you can still get some performance increase, but it's
486
00:26:38.759 --> 00:26:41.480
nowhere near as significant as if you were.
487
00:26:41.440 --> 00:26:44.799
Although to be clear desktop GPUs, you know you're not
488
00:26:44.880 --> 00:26:47.720
struggling to render on a desktob GPU.
489
00:26:47.680 --> 00:26:50.240
No exactly that. But you know I've got this.
490
00:26:50.359 --> 00:26:52.640
I mean, it doesn't help your podcast listeners, but I've
491
00:26:52.680 --> 00:26:55.039
got a little rasbry pie with a screen.
492
00:26:54.759 --> 00:26:57.559
Attached to it, right, great device, and it's it. I
493
00:26:57.599 --> 00:26:59.519
love these, Yeah, but.
494
00:26:59.519 --> 00:27:01.720
This is the kind of device where you want to
495
00:27:02.160 --> 00:27:04.920
extract as much performance out of it as possible.
496
00:27:05.119 --> 00:27:07.799
Yeah, cycles count in that little pie.
497
00:27:07.880 --> 00:27:10.359
Exactly that, And this is I mean, this pie is
498
00:27:10.400 --> 00:27:12.880
considered a high powered device for some of the things
499
00:27:12.920 --> 00:27:16.160
that we run on. Sure, you'd be surprised at just
500
00:27:16.200 --> 00:27:20.759
how low the hardware aspects for some of these devices
501
00:27:20.759 --> 00:27:24.599
that we support can go to ESP two's I don't
502
00:27:24.640 --> 00:27:27.720
think the oldest that we're running on in production. It's
503
00:27:27.759 --> 00:27:31.559
like a five hundred megahertz thirty two bit ARM CPU
504
00:27:31.640 --> 00:27:32.680
from two thousand and two.
505
00:27:32.920 --> 00:27:34.759
Okay.
506
00:27:34.559 --> 00:27:38.119
We spent a very very long time with that customer
507
00:27:38.240 --> 00:27:41.839
optimizing everything to make that work.
508
00:27:41.960 --> 00:27:44.039
Oh man, you got to call the ball on that
509
00:27:44.079 --> 00:27:46.519
one too, Like, is it worth it for such a
510
00:27:46.599 --> 00:27:47.039
one off?
511
00:27:47.160 --> 00:27:50.000
Oh, it was worth it. Yeah.
512
00:27:50.079 --> 00:27:52.480
It was an important customer and a relationship that we
513
00:27:52.559 --> 00:27:57.079
wanted to maintain core and that records through of course everything.
514
00:27:57.119 --> 00:27:59.400
If we can get those performance increases on.
515
00:27:59.559 --> 00:28:03.160
If you can optimized for a five hundred megahertz ARM device,
516
00:28:03.799 --> 00:28:05.799
my life's going to be pretty easy. Running around in
517
00:28:05.839 --> 00:28:09.680
my four gigar hurts, you know, Pentium or inteled Ultra
518
00:28:09.759 --> 00:28:11.720
of nine exactly that.
519
00:28:12.240 --> 00:28:16.599
So, yeah, Impeller is it's going to be the future.
520
00:28:16.759 --> 00:28:20.880
We think of the rendering stack for Avalonia right now,
521
00:28:20.920 --> 00:28:24.720
we're still using Skier sharp Avalonia twelve. We'll ship with
522
00:28:24.839 --> 00:28:29.839
skier Sharp as the default. We will bring Impeller probably
523
00:28:29.920 --> 00:28:35.039
within V twelve, so maybe zero point two, three point four,
524
00:28:35.240 --> 00:28:37.440
not sure when, but it will come when it's ready.
525
00:28:39.599 --> 00:28:43.319
And we're using V twelve as an opportunity to experiment
526
00:28:43.359 --> 00:28:48.079
with different back ends and different rendering technologies to see
527
00:28:48.119 --> 00:28:50.960
what works. And we're going to release various different proof
528
00:28:50.960 --> 00:28:54.640
of concepts as previews and see what sticks, what do
529
00:28:54.720 --> 00:29:00.279
people like, what's the most performant, and kind of us
530
00:29:00.400 --> 00:29:02.920
up for when we ship B thirteen that we can
531
00:29:02.960 --> 00:29:07.440
move stuff into stable and that can start to replace
532
00:29:07.480 --> 00:29:08.119
SKEA shop.
533
00:29:08.400 --> 00:29:08.799
Very good.
534
00:29:09.079 --> 00:29:13.079
How many apps out there running Avalonia are for mobile
535
00:29:13.279 --> 00:29:16.519
versus small form factor versus desktop?
536
00:29:17.079 --> 00:29:21.799
Yea. Mobile has historically not been our strength.
537
00:29:22.759 --> 00:29:25.200
Yeah, that's my thought has always been you with the guys,
538
00:29:25.279 --> 00:29:28.920
you sold the WPF problem for me, right exactly.
539
00:29:28.519 --> 00:29:28.680
That.
540
00:29:30.240 --> 00:29:32.759
We can do mobile, but we've just never shipped like
541
00:29:32.880 --> 00:29:38.319
mobile focused controls. So we're fixing that with V twelve,
542
00:29:39.799 --> 00:29:46.759
people are shipping mobile apps. Is it comparable to Flutter, No,
543
00:29:47.799 --> 00:29:53.240
we are very much. Still the best experience is still desktop. Sure,
544
00:29:53.599 --> 00:29:56.160
but there's always been this dichotomy. If you're really good
545
00:29:56.200 --> 00:29:59.440
at mobile, you struggle mightily on the desktop, and if
546
00:29:59.440 --> 00:30:01.960
you're really good at desktop, it's tough to fit it
547
00:30:01.960 --> 00:30:02.559
in the marble.
548
00:30:03.039 --> 00:30:03.960
Yeah, it's I.
549
00:30:04.000 --> 00:30:07.640
Mean, just look at mac Catalyst. If you take a
550
00:30:07.680 --> 00:30:09.599
mobile app and run it on a desktop, you're going
551
00:30:09.680 --> 00:30:12.480
to have some unhappy desktop users. And if you take
552
00:30:12.519 --> 00:30:14.839
a desktop app and try and strip it down into
553
00:30:14.880 --> 00:30:17.759
a mobile app, then you've got unhappy mobile users. You
554
00:30:17.799 --> 00:30:21.240
have to think a cross platform doesn't mean that you
555
00:30:21.240 --> 00:30:23.559
should be reusing one hundred percent of your code across
556
00:30:23.599 --> 00:30:26.920
every platform. You do need to be kind of cognizant
557
00:30:27.000 --> 00:30:33.079
of the different ux paradigms of each platform. Yeah, but
558
00:30:33.480 --> 00:30:38.240
we're strong on mobile from a technical perspective, it's the
559
00:30:38.240 --> 00:30:42.039
the controls that we're lacking. Performance is good, especially with
560
00:30:42.079 --> 00:30:45.799
the V twelve release, but our strength is really desktop
561
00:30:45.799 --> 00:30:50.920
and embedded. Embedded is really where we shine interesting business.
562
00:30:51.160 --> 00:30:53.680
Well, this seems like a good point to break, so
563
00:30:53.799 --> 00:30:59.799
we'll be right back after these messages don't go away,
564
00:31:01.039 --> 00:31:03.880
and we're back at starting at Rocks. I'm Carl Frank Glence,
565
00:31:03.920 --> 00:31:06.960
my friend Richard Campbell, and Mike and Mattner here talking
566
00:31:06.960 --> 00:31:10.200
about Avalonia and one of the things that I thought
567
00:31:10.200 --> 00:31:12.400
about when you said that we're not you know, we
568
00:31:12.440 --> 00:31:15.519
can do mobile, but that's not our main focus. Was
569
00:31:15.519 --> 00:31:18.720
that one of the was that an impetus to partner
570
00:31:18.799 --> 00:31:21.519
with Maui or how did that relationship come.
571
00:31:22.000 --> 00:31:25.519
I mean, I've always my background is zama and I
572
00:31:25.640 --> 00:31:31.000
joined zamoring in twenty thirteen. I stayed through the acquisition.
573
00:31:31.680 --> 00:31:37.799
When I joined zamorin, it was mono touch monodroid right.
574
00:31:39.119 --> 00:31:42.799
It was we had monotuchdot dialogue. I don't know if
575
00:31:42.839 --> 00:31:46.680
anyone remembers that, but that's how I got into the
576
00:31:46.759 --> 00:31:50.359
zamora and ecosystem was through mcguel's library, which was a
577
00:31:50.400 --> 00:31:55.440
precursor to zamor in forms. So I've always had good
578
00:31:55.480 --> 00:32:01.680
relationships and connections into the zamoring team and the Maui team.
579
00:32:01.880 --> 00:32:03.519
Once they did the rebuild.
580
00:32:05.440 --> 00:32:07.960
The Maui thing comes about.
581
00:32:08.160 --> 00:32:10.759
I was sat in a cafe with Joseph Hill, who
582
00:32:10.839 --> 00:32:14.039
was a co founder of Zamorin, and we were just
583
00:32:14.160 --> 00:32:18.319
chatting about Avalonia and what do we want to do?
584
00:32:18.359 --> 00:32:20.039
And I mentioned in passing that.
585
00:32:20.359 --> 00:32:22.559
It would be really cool if we could build out
586
00:32:22.599 --> 00:32:27.160
a back end for Maui based on Avalonia. It would
587
00:32:27.200 --> 00:32:30.559
solve some problems for Maui because it would give them
588
00:32:30.759 --> 00:32:35.519
Web and Linux immediately. I know that they've wanted drawn
589
00:32:35.640 --> 00:32:39.160
UI for a while as an option, So that you
590
00:32:39.200 --> 00:32:41.960
get native or drawn, you get to pick and then
591
00:32:42.000 --> 00:32:45.319
from outside. I mean it's not purely altruistic from our side.
592
00:32:45.359 --> 00:32:49.680
We've hired several folks from Microsoft that know that code
593
00:32:49.680 --> 00:32:53.680
based very well, and by doing this it helps us
594
00:32:53.680 --> 00:32:56.200
fill in the gaps on our mobile side. So you know,
595
00:32:56.240 --> 00:33:00.559
we're going to have the navigation control that's is working
596
00:33:00.599 --> 00:33:04.720
on at the moment and additional APIs that were missing
597
00:33:04.799 --> 00:33:07.279
in Avalonia that just make us a bit more competitive
598
00:33:07.319 --> 00:33:11.920
on the mobile side. So it's mutually beneficial for everyone.
599
00:33:12.319 --> 00:33:18.759
Yeah, that's pretty obvious. And so you were mentioning drawing
600
00:33:19.039 --> 00:33:22.440
the UI, like, are we talking about visual basic style?
601
00:33:23.240 --> 00:33:26.039
So you mean like a rad where you're dragging and dropping?
602
00:33:26.279 --> 00:33:28.279
Yeah, is that what you mean by drawing the UI?
603
00:33:28.640 --> 00:33:28.839
No?
604
00:33:29.119 --> 00:33:31.839
So I mean, I mean this all gets a bit.
605
00:33:32.599 --> 00:33:34.680
It turtles all the way down when you think about
606
00:33:34.720 --> 00:33:39.319
it too deeply. But we draw onto a canvas. So
607
00:33:39.480 --> 00:33:43.359
if you think about how with wind forms you're effectively
608
00:33:43.359 --> 00:33:49.119
wrapping Win thirty two controls, but with WPF it's just
609
00:33:49.200 --> 00:33:51.279
a direct x canvas that you're drawing into.
610
00:33:51.599 --> 00:33:51.839
Yeah.
611
00:33:53.119 --> 00:33:54.680
So when you say drawing, you mean with code.
612
00:33:54.799 --> 00:33:56.880
Yeah, so it goes down to WPF.
613
00:33:56.880 --> 00:33:59.519
It's into mil core, which is a media integration layer,
614
00:33:59.559 --> 00:34:02.319
and that was onto directex canvas. So when you ask
615
00:34:02.319 --> 00:34:05.880
for a button, you're not getting a Win thirty two button.
616
00:34:06.680 --> 00:34:10.039
WPF is just drawing a button for you. We're the same,
617
00:34:10.079 --> 00:34:12.519
but we're not using directexs. We're using Skier, So it's
618
00:34:12.559 --> 00:34:17.280
cross platform. And then I think there's an interesting discussion
619
00:34:17.440 --> 00:34:20.679
there about what is native because lots of people will
620
00:34:20.679 --> 00:34:24.760
say that Avalonia isn't native, but WPF is, and then
621
00:34:25.199 --> 00:34:28.519
it's like, well is it? How are we divining native?
622
00:34:29.000 --> 00:34:29.239
Yeah?
623
00:34:30.559 --> 00:34:33.280
So yeah, I could talk about that for hours.
624
00:34:34.280 --> 00:34:37.079
Well, the whole discussion of what is native is interesting
625
00:34:37.159 --> 00:34:38.320
or by itself.
626
00:34:39.119 --> 00:34:45.440
It really is, especially when you think how web technology
627
00:34:45.480 --> 00:34:47.679
as well is actually rendered and how you're getting down
628
00:34:47.679 --> 00:34:51.320
to pixels on the screen. Like, it's hard to argue
629
00:34:51.320 --> 00:34:56.360
that web isn't actually equally as native as WPF, so
630
00:34:56.719 --> 00:34:59.039
it all comes a bit blurry when you stare at
631
00:34:59.079 --> 00:34:59.679
it too long.
632
00:35:00.159 --> 00:35:03.880
Well, the whole I mean is that even a I
633
00:35:03.880 --> 00:35:05.800
don't know, that seems like it was more of an
634
00:35:05.880 --> 00:35:08.199
issue back in the VB days where you know you
635
00:35:08.239 --> 00:35:12.360
had interpreted versus native code, and you know that was
636
00:35:12.400 --> 00:35:15.440
so much faster. Now machines are so fast that does
637
00:35:15.440 --> 00:35:15.880
it matter?
638
00:35:16.079 --> 00:35:16.320
Yeah?
639
00:35:16.480 --> 00:35:18.280
Is that a plus an argument? Anymore?
640
00:35:18.360 --> 00:35:23.599
Native also means not compatible? Yeah, right, if you're poking
641
00:35:23.679 --> 00:35:26.719
into memory in a video card, you better be very
642
00:35:26.760 --> 00:35:30.800
sure of everything. There are distraction layers for a reason, right.
643
00:35:31.000 --> 00:35:31.280
Yeah.
644
00:35:31.320 --> 00:35:35.159
But in terms of like the VB six drag and
645
00:35:35.239 --> 00:35:40.760
drop Brad style, this is something that Matt, Matt will
646
00:35:40.800 --> 00:35:43.800
know that we've we've talked about massively internally about what
647
00:35:43.880 --> 00:35:49.079
the the use of that is in the in the
648
00:35:49.079 --> 00:35:52.280
future of development. Maybe Matt wants to jump in with
649
00:35:53.039 --> 00:35:55.320
some of his thoughts.
650
00:35:56.400 --> 00:36:00.679
So, yeah, I want to avoid recovering topic you've covered
651
00:36:00.719 --> 00:36:02.920
many times on the show, but the idea of the
652
00:36:03.000 --> 00:36:09.239
transition between a single VB six drag and drop, I
653
00:36:09.239 --> 00:36:11.480
will drop my control here. It'll be fine, It'll be
654
00:36:11.519 --> 00:36:14.960
there for everywhere. It will always be that size screen,
655
00:36:15.039 --> 00:36:17.440
it will always be that aspect ratio. I don't have
656
00:36:17.480 --> 00:36:21.559
to think about, you know, thousands and thousands of potential
657
00:36:21.599 --> 00:36:27.760
different device permutations. That's easy, you know, it's how it
658
00:36:27.840 --> 00:36:32.400
needs to reflow and dynamic documents. And you think about
659
00:36:32.480 --> 00:36:36.360
web development and web development now is you expect the
660
00:36:36.400 --> 00:36:38.559
same website to work on the mobile and on a
661
00:36:38.639 --> 00:36:41.639
desktop and everything to reflow. And there's a reason web
662
00:36:41.679 --> 00:36:45.000
developers stopped using drag and drop. Yeah, it's because drag
663
00:36:45.039 --> 00:36:47.199
and drop is really hard when you have to account
664
00:36:47.199 --> 00:36:50.199
for all those different flows and layouts and variations.
665
00:36:50.719 --> 00:36:54.119
Yeah, we've talked about this to death on this show before. Yeah,
666
00:36:54.280 --> 00:36:57.199
it's and it's not a pixel based world anymore.
667
00:36:57.440 --> 00:37:00.239
When the reality is that devs would use it if
668
00:37:00.280 --> 00:37:02.559
the tool has existed, But it seems like an impossible
669
00:37:02.599 --> 00:37:06.400
tooling actually making tools that would allow you to drag
670
00:37:06.440 --> 00:37:08.679
and drop to build a UI that would also then
671
00:37:08.800 --> 00:37:12.480
have that multimodal nature. There's just a lot of information
672
00:37:12.519 --> 00:37:13.519
you have to feed into that.
673
00:37:14.239 --> 00:37:17.960
We've used internally a tool for our marketing website called
674
00:37:18.000 --> 00:37:23.079
Framer so that our designer could work on it, and
675
00:37:23.119 --> 00:37:26.679
that works where you can set up breakpoints and then
676
00:37:26.800 --> 00:37:32.360
you effectively have different variants of your web page for
677
00:37:32.519 --> 00:37:38.719
each form factor and that's probably the best ux I've
678
00:37:38.760 --> 00:37:43.079
seen for it, but it's still infinitely more frustrating as
679
00:37:43.079 --> 00:37:45.800
a developer to use that ux and just go in
680
00:37:45.800 --> 00:37:46.519
and write code.
681
00:37:46.840 --> 00:37:50.239
Yeah. It seems to me that the Visual Basic sixth
682
00:37:50.320 --> 00:37:53.840
designer was a point in time when the variation of
683
00:37:53.920 --> 00:37:57.639
resolution of screens was relatively small. They were ten twenty
684
00:37:57.639 --> 00:38:01.920
four x seven sixty eight and we had to fix
685
00:38:02.239 --> 00:38:06.199
UI largely menu bar across the top, you know, file
686
00:38:06.320 --> 00:38:11.920
open help and dockable windows like that was a moment, Yeah,
687
00:38:12.000 --> 00:38:15.920
and that moment has passed, Like it's just the now.
688
00:38:16.000 --> 00:38:19.159
You expect the supercomputer in your pocket to work, and
689
00:38:19.199 --> 00:38:22.159
the tablet and you're in the insert sleeve in your
690
00:38:22.199 --> 00:38:26.199
bag to work, and the forty three inch four K
691
00:38:26.400 --> 00:38:29.199
screen and in front of you or the combination of screens.
692
00:38:29.239 --> 00:38:31.159
I've got to sit in front of me right now
693
00:38:31.400 --> 00:38:34.119
to work. We just live in a different planet. You
694
00:38:34.159 --> 00:38:37.000
can't build software this way that way anymore.
695
00:38:37.119 --> 00:38:40.920
I also think it went about my dead loop and
696
00:38:40.960 --> 00:38:44.679
how it's evolved in the last twelve to eighteen months
697
00:38:45.360 --> 00:38:49.440
of more often than not, if I want to change something,
698
00:38:50.239 --> 00:38:52.719
I'll open up clawed code and just prompt it and
699
00:38:52.760 --> 00:38:55.320
it will go off and it will tweet. So do
700
00:38:55.960 --> 00:38:57.880
I need a Dragon Drop designer When I can just
701
00:38:58.000 --> 00:39:00.000
ask ask my aide.
702
00:39:00.880 --> 00:39:04.239
We're spending most of our time describing our software now not.
703
00:39:04.599 --> 00:39:07.440
Writing precisely that I mean. I used.
704
00:39:08.760 --> 00:39:12.960
Google Stitch, their AI designing tool. They've got an MCP
705
00:39:13.159 --> 00:39:16.119
server for it. I connected that up to our dev
706
00:39:16.199 --> 00:39:19.960
tools MCP, and I prompted it in the morning to
707
00:39:20.000 --> 00:39:22.760
say I wanted to build a sample app for us.
708
00:39:24.119 --> 00:39:28.239
It used Google Stitch to design it. Claude then implemented
709
00:39:28.280 --> 00:39:31.159
it and used our dead tools to confirm whether or
710
00:39:31.199 --> 00:39:35.519
not what it had created matched the images that Google
711
00:39:35.840 --> 00:39:36.599
had provided.
712
00:39:37.239 --> 00:39:40.039
The testing was sort of user accepting, testing does this
713
00:39:40.119 --> 00:39:42.000
look like what you described exactly that?
714
00:39:42.119 --> 00:39:43.840
And when it didn't, it would just go back and
715
00:39:43.920 --> 00:39:47.480
keep editing that. I said to it that when you're
716
00:39:47.599 --> 00:39:50.559
confident that it matches, launched the app. So I then
717
00:39:50.599 --> 00:39:54.119
went back into spreadsheets and doing boring things, and then
718
00:39:54.679 --> 00:39:57.480
was greeted with the surprise of an app launching that
719
00:39:57.920 --> 00:39:59.559
looked really nice.
720
00:40:00.280 --> 00:40:04.159
I also noticed, like your Carousell scroll on the main
721
00:40:04.199 --> 00:40:10.440
page of Avalonia is mostly visualizations, because let's face it,
722
00:40:10.480 --> 00:40:12.119
that's what you want your screen to have on it
723
00:40:12.159 --> 00:40:15.800
these days, with new text interfaces and the change of
724
00:40:15.840 --> 00:40:20.199
the software anyway, what you're looking for now is visualizations
725
00:40:20.239 --> 00:40:23.440
of data that are that better suit you making decisions
726
00:40:24.239 --> 00:40:26.840
rather than clicking buttons and filling in textboxes.
727
00:40:27.199 --> 00:40:30.679
Yeah, yeah, yeah, I mean the the apps that are
728
00:40:30.719 --> 00:40:35.239
on the carousel. You've got things like Lunacy, which is
729
00:40:35.280 --> 00:40:41.480
a competitors to Figma, like a hugely complex application. So
730
00:40:41.840 --> 00:40:46.480
it's it's incredible. Matt mentioned earlier, it's incredible what people
731
00:40:46.480 --> 00:40:49.920
are building with Avalonia. If we were I think, if
732
00:40:49.920 --> 00:40:54.840
we were better at marketing and enjoyed that, then we
733
00:40:54.880 --> 00:40:59.119
would probably have significantly more GitHub styles and you know,
734
00:40:59.199 --> 00:41:03.920
more blog posts and things. But we ought to focus
735
00:41:03.960 --> 00:41:06.719
on the code instead of the flashy marketing.
736
00:41:06.840 --> 00:41:09.960
Are you finding a lot of your customers using the
737
00:41:10.159 --> 00:41:13.159
l m's, the cloude code and the co pilots to
738
00:41:14.159 --> 00:41:16.800
completely build out Avalonia applications?
739
00:41:16.840 --> 00:41:19.840
Now, I don't think I've spoken to anyone that's built
740
00:41:19.880 --> 00:41:25.719
out an entire app using an LLM. We're enterprise focus,
741
00:41:25.840 --> 00:41:29.280
so there's a lot of you know, we're quite insulated
742
00:41:29.559 --> 00:41:32.639
in the scheme of things. I think that dot net
743
00:41:32.639 --> 00:41:34.719
in general is going to be one of the last
744
00:41:34.760 --> 00:41:37.840
ecosystems to really embrace AI.
745
00:41:38.719 --> 00:41:40.960
I think we'll get there eventually, I think so.
746
00:41:42.480 --> 00:41:44.360
I think so, yeah, I think there are going to
747
00:41:44.360 --> 00:41:48.360
be some organizations that just can't. I mean, one of
748
00:41:48.400 --> 00:41:54.320
our customers builds stuff that's used for NATO planning, Like,
749
00:41:54.400 --> 00:41:56.679
I don't think they're going to be feeding their source
750
00:41:56.679 --> 00:41:59.360
code into some random LLLM.
751
00:41:59.440 --> 00:42:03.960
Yeah, it's true. Well, I'm hopeful that at some point
752
00:42:03.960 --> 00:42:06.440
in the future we'll be able to use local lms
753
00:42:06.480 --> 00:42:10.039
that do the same thing but keep everything local. And
754
00:42:10.920 --> 00:42:13.760
I'm ready for it because I got my honkin' machine
755
00:42:13.760 --> 00:42:18.639
here with the Scream and GPU, but I haven't. I
756
00:42:18.679 --> 00:42:22.280
haven't had that experience yet. I've tried, but I haven't.
757
00:42:22.360 --> 00:42:23.079
It hasn't worked.
758
00:42:23.320 --> 00:42:28.599
I'm all about clawed code. That's my current current agent
759
00:42:28.679 --> 00:42:29.159
of choice.
760
00:42:30.199 --> 00:42:34.480
You can deny. Avalonia's growth is astonishing, you know, and
761
00:42:34.920 --> 00:42:37.599
the fact without the marketing really speaks to people are
762
00:42:37.599 --> 00:42:39.519
finding it and keeping it and those that are using
763
00:42:39.559 --> 00:42:41.360
it are taking to the next project, the next project,
764
00:42:41.440 --> 00:42:42.119
the next problem.
765
00:42:42.199 --> 00:42:48.199
Yeah, we have we have some telemetry, so it's all
766
00:42:48.199 --> 00:42:51.119
open source. People go and have a look at what
767
00:42:51.159 --> 00:42:54.519
we collect. It's very minimal, but it gives us an
768
00:42:54.599 --> 00:42:59.800
insight into the adoption. So last year or one hundred
769
00:42:59.840 --> 00:43:03.679
twenty two million bills, which was up thirty one point
770
00:43:05.199 --> 00:43:11.000
month on month growth two point one million unique projects.
771
00:43:11.960 --> 00:43:15.960
I mean, it's it's really incredible the amount of growth
772
00:43:15.960 --> 00:43:16.559
that we've seen.
773
00:43:17.000 --> 00:43:20.840
So how do you guys make a living? That good question.
774
00:43:21.559 --> 00:43:29.880
I have a very supportive wife. I mean that that
775
00:43:30.000 --> 00:43:32.760
is there's a joke to that, but it's also the truth.
776
00:43:33.360 --> 00:43:34.199
I mean, we.
777
00:43:35.679 --> 00:43:39.559
Building a business around this has been just a huge
778
00:43:40.159 --> 00:43:43.239
learning curve and uphill struggle.
779
00:43:44.239 --> 00:43:46.119
Open source sure well.
780
00:43:46.119 --> 00:43:50.159
And you know, for me as an architect, when people
781
00:43:50.159 --> 00:43:52.199
are asking about Avalonia, it's like, how do you know
782
00:43:52.280 --> 00:43:55.159
this thing's going to survive? Like what's the main open
783
00:43:55.159 --> 00:43:56.760
sours is one thing, but I'm not prepared to take
784
00:43:56.800 --> 00:43:59.719
over this library if you guys go away, Like, how
785
00:43:59.719 --> 00:44:01.519
do we have some confidence?
786
00:44:01.599 --> 00:44:01.800
Yeah?
787
00:44:01.880 --> 00:44:05.719
That's that's the mindset that we make all of our
788
00:44:05.760 --> 00:44:08.840
decisions through, is how do we ensure the long term
789
00:44:08.920 --> 00:44:13.280
viability of what we do because we have to be
790
00:44:13.320 --> 00:44:16.320
around in ten years time because the folks that are
791
00:44:17.199 --> 00:44:20.320
building on Avalonia have taken a bet on us and
792
00:44:20.360 --> 00:44:25.760
they need that enterprise timeline. So part of that is
793
00:44:26.079 --> 00:44:30.440
a rejection of outside capital. We don't We've we've had
794
00:44:30.480 --> 00:44:34.880
offers for VC injection, but that puts us on a
795
00:44:35.039 --> 00:44:37.639
We did it with Zamorin. It's a very condensed timeline.
796
00:44:37.639 --> 00:44:40.159
You've got to have an exit and that does not
797
00:44:40.199 --> 00:44:43.960
bring long term stability for anyone. So we've said no
798
00:44:44.079 --> 00:44:47.159
to that. So then it was like, well, how do
799
00:44:47.239 --> 00:44:49.679
we monetize this thing that we give away all of
800
00:44:49.679 --> 00:44:53.519
the value. So there was XPF, which is our cross
801
00:44:53.519 --> 00:44:55.840
platform WPF and this.
802
00:44:55.880 --> 00:44:57.679
Is sort of your claim to fame of Hey, you've
803
00:44:57.679 --> 00:44:59.440
got a WPF app and you want to run it
804
00:44:59.480 --> 00:45:01.199
on here you go.
805
00:45:01.760 --> 00:45:05.480
I read an email earlier from a guy that they've
806
00:45:05.519 --> 00:45:11.239
got two applications WPF apps. They got both of them
807
00:45:11.320 --> 00:45:14.400
running on Mac within fifteen minutes of signing up to
808
00:45:14.440 --> 00:45:15.400
our customer portal.
809
00:45:17.199 --> 00:45:18.199
Yeah what's that word?
810
00:45:18.480 --> 00:45:22.519
Yeah, they were blown away by it. So that's that's
811
00:45:22.559 --> 00:45:25.960
been huge for us. That's really helped. But I think
812
00:45:26.039 --> 00:45:30.039
the other main thing that's helped us this year, the
813
00:45:30.079 --> 00:45:35.760
reason that we're at seventeen is Devolutions, one of our customers.
814
00:45:36.840 --> 00:45:42.639
They've sponsored the project for three million dollars, so we
815
00:45:42.719 --> 00:45:48.159
get a million dollars a year, and our attorney couldn't
816
00:45:48.159 --> 00:45:51.400
believe it. So I sent her the contract and she
817
00:45:51.760 --> 00:45:56.079
responded and she said, Mike, people don't give a million
818
00:45:56.119 --> 00:45:56.960
dollars for nothing?
819
00:45:57.199 --> 00:45:58.639
What longs did you break?
820
00:45:59.119 --> 00:45:59.320
Yeah?
821
00:45:59.559 --> 00:46:02.199
What what's happening here? This is not normal? And I
822
00:46:02.239 --> 00:46:05.559
was like, I trust these people. We've worked with them
823
00:46:05.639 --> 00:46:09.920
for a while now. They seem genuine and yeah, they
824
00:46:09.920 --> 00:46:12.960
have been everything that we could ever want in a partner.
825
00:46:13.559 --> 00:46:14.920
Wow, that's great.
826
00:46:15.239 --> 00:46:17.960
Their their view is that they want to ensure that
827
00:46:17.960 --> 00:46:21.199
we're around that they're investing heavily in porting their app
828
00:46:21.239 --> 00:46:25.000
to Avalonia, so it benefits them for the platform to
829
00:46:25.000 --> 00:46:28.360
be stable, and it gives us a runway to be
830
00:46:28.360 --> 00:46:32.360
able to invest in the core technology without having to
831
00:46:32.400 --> 00:46:36.000
be so concerned about, you know, where's the money coming from.
832
00:46:36.159 --> 00:46:38.440
It's got to be cost effective for them, Like somebody
833
00:46:38.519 --> 00:46:40.519
must have done the math to say, should we build
834
00:46:40.519 --> 00:46:43.559
this ourselves? And it was more money than that.
835
00:46:44.280 --> 00:46:48.039
Yeah, I'm not I mean to build this. If you
836
00:46:48.079 --> 00:46:50.960
look at who builds your WI frameworks, you've got to
837
00:46:50.960 --> 00:46:52.559
be pretty crazy to do it.
838
00:46:52.559 --> 00:46:56.360
It's like Google, Yeah, no, it's a solve problem.
839
00:46:56.679 --> 00:46:59.280
Yeah, it would be madness. Yeah.
840
00:46:59.280 --> 00:47:03.880
So Devolution three million dollars, So we get a million
841
00:47:03.920 --> 00:47:06.719
dollars a year. We've got I think two and a
842
00:47:06.760 --> 00:47:11.480
half years left of that. We've got XPF, we sell
843
00:47:11.559 --> 00:47:14.480
support agreements, and we do some development work, but we
844
00:47:14.639 --> 00:47:17.599
try and avoid that as much as we can. And
845
00:47:17.599 --> 00:47:20.599
then we've got Accelerate, which is a huge part of
846
00:47:20.639 --> 00:47:24.440
why I reached out to Matt and was like, would
847
00:47:24.440 --> 00:47:28.039
you please come and work for us? Because Matt is
848
00:47:28.880 --> 00:47:32.360
one of the experts. I think anyone who's looks say
849
00:47:32.400 --> 00:47:35.679
his GitHub, or followed him or knows of him, knows
850
00:47:35.679 --> 00:47:38.360
that he is an expert when it comes to visual
851
00:47:38.360 --> 00:47:43.239
studio development and tooling and understanding how to deliver delightful
852
00:47:43.280 --> 00:47:44.519
developer experiences.
853
00:47:44.719 --> 00:47:45.960
Can you explain accelerate?
854
00:47:46.320 --> 00:47:46.639
I can.
855
00:47:48.079 --> 00:47:51.159
So Accelerate is our value add So we give away
856
00:47:51.199 --> 00:47:54.599
everything within Avalonia for free, so you don't have to
857
00:47:54.599 --> 00:47:57.199
pay a penny to use it. But there are bits
858
00:47:57.239 --> 00:48:03.119
of it that are really the ide. Tooling that is
859
00:48:03.800 --> 00:48:07.840
really difficult engineering, and it takes a certain type of
860
00:48:07.880 --> 00:48:08.920
person to enjoy.
861
00:48:08.760 --> 00:48:11.880
Working on that stuff. People like Matt and.
862
00:48:13.840 --> 00:48:17.199
These types of folks don't work for GitHub stars. They
863
00:48:17.239 --> 00:48:20.679
need some cold, hard cash at the end of the month.
864
00:48:20.800 --> 00:48:24.719
So we were looking at how do how do we
865
00:48:24.800 --> 00:48:28.840
keep having a lonely sustainable and fund these more challenging parts.
866
00:48:29.280 --> 00:48:33.599
So we created Accelerate which is an optional set of
867
00:48:33.800 --> 00:48:38.320
tools and components. So you've got a visual studio, visual
868
00:48:38.320 --> 00:48:42.119
studio code dev tools, and then a packaging app. And
869
00:48:42.159 --> 00:48:48.960
then the components are webe media player, markdown editor. In
870
00:48:49.039 --> 00:48:53.079
the final stages of completing, some other components that will
871
00:48:53.079 --> 00:48:57.079
go into that suite as well. Yeah, the goal is
872
00:48:57.119 --> 00:49:01.679
to have that generate some of the revenue to help
873
00:49:01.719 --> 00:49:04.679
sustain the project so that we can keep working on this,
874
00:49:05.320 --> 00:49:09.079
keep hiring, and keep investing in a platform that is
875
00:49:09.760 --> 00:49:15.760
solving a problem that hundreds of thousands of enterprises have got.
876
00:49:15.960 --> 00:49:18.639
So give us the give us a few of the
877
00:49:18.679 --> 00:49:21.199
tools that are in Accelray. Here's your chance for little
878
00:49:21.199 --> 00:49:24.239
sales pitch. I know you don't like marketing, but might
879
00:49:24.280 --> 00:49:24.719
as well.
880
00:49:25.000 --> 00:49:25.840
I'm terrible it.
881
00:49:26.079 --> 00:49:28.599
Maybe Matt can tell us why the Visual Studio extension
882
00:49:28.840 --> 00:49:31.199
is incredible, because I think that's the main thing that
883
00:49:31.760 --> 00:49:33.159
most folks are excited for.
884
00:49:33.559 --> 00:49:37.960
So having been talked up, so I joined the company
885
00:49:38.199 --> 00:49:43.360
with the goal of making the best UI tooling that's available.
886
00:49:43.639 --> 00:49:47.920
That is that's my remit. And so you know, WPF
887
00:49:48.000 --> 00:49:53.360
is kind of the benchmark for visual studio integration, and
888
00:49:53.400 --> 00:49:57.760
we have a timeline for reaching and surpassing that we
889
00:49:57.880 --> 00:50:00.840
have views for sort of parity with visual radio code,
890
00:50:02.239 --> 00:50:04.440
and then that's just the catching up, and then I've
891
00:50:04.480 --> 00:50:07.039
got ten years of imagining what the tooling could be
892
00:50:07.199 --> 00:50:12.159
like to play in the future, different ways of visualizing
893
00:50:13.039 --> 00:50:15.800
what can be done, what the code might look like,
894
00:50:16.679 --> 00:50:21.880
and then what code you're actually writing. Obviously, zamor has
895
00:50:21.880 --> 00:50:26.440
its critics. No C sharp as a language of creating
896
00:50:26.559 --> 00:50:31.039
UI is you know, some of us deserved, some of
897
00:50:31.039 --> 00:50:34.880
it not so much. C sharp can be used to
898
00:50:34.920 --> 00:50:40.039
create UI, but there are pros and cons of that
899
00:50:40.079 --> 00:50:42.880
as well, And obviously with the rise of AI, I'm
900
00:50:42.920 --> 00:50:46.239
looking heavily at what the future of that might be like,
901
00:50:46.679 --> 00:50:48.719
because it's great that we can describe our AI in
902
00:50:49.079 --> 00:50:53.400
are UI in like in full English sentences or any
903
00:50:53.400 --> 00:50:57.559
other language sentences. But that's a level of abstraction, which
904
00:50:57.599 --> 00:51:00.800
is a big leap between what actually it runs. And
905
00:51:00.880 --> 00:51:04.320
so I'm sort of keenly following all the experiments that
906
00:51:04.320 --> 00:51:08.360
are happening at the moment around maybe some new language
907
00:51:08.559 --> 00:51:12.000
might serve us better as an abstraction between you know,
908
00:51:12.079 --> 00:51:14.559
what we speak and what the code needs to do.
909
00:51:15.159 --> 00:51:17.880
Take us by some of that guesswork, some of that
910
00:51:18.000 --> 00:51:23.360
interpretation and the vagueness. So things like code Speak, which
911
00:51:23.400 --> 00:51:25.280
is the new language from the guy who created Cotlin,
912
00:51:25.559 --> 00:51:28.519
is kind of really exciting for me. I'm just sort
913
00:51:28.519 --> 00:51:30.719
of really keen to see that what that can look like.
914
00:51:31.280 --> 00:51:34.920
I did some experiments last year about what a more
915
00:51:35.039 --> 00:51:38.320
human friendly version of Zama might look like. You know,
916
00:51:38.679 --> 00:51:41.039
we still have this we want to strictly define our
917
00:51:41.079 --> 00:51:44.440
U why, but we don't need XML to do that,
918
00:51:45.119 --> 00:51:48.400
and so the ideas around that, and then of course
919
00:51:48.480 --> 00:51:53.079
testability becomes and testing becomes even more important. It's great
920
00:51:53.119 --> 00:51:55.119
to say I will describe what might want my app
921
00:51:55.119 --> 00:51:56.719
to do, you go build it and it runs.
922
00:51:57.079 --> 00:51:57.639
That's great.
923
00:51:57.760 --> 00:52:01.199
And then six weeks later I will describe a a
924
00:52:01.400 --> 00:52:05.079
change and that gets made and no one notices the
925
00:52:05.079 --> 00:52:08.039
things that are broken in the meantime that you know,
926
00:52:08.800 --> 00:52:11.480
l m's are very good at making more changes than
927
00:52:11.519 --> 00:52:17.440
a desirable or necessary and if you haven't got something
928
00:52:17.480 --> 00:52:19.800
in place to spot those changes and see when it
929
00:52:19.840 --> 00:52:24.760
breaks something subtle, that's kind of really important. So that's
930
00:52:24.880 --> 00:52:27.079
kind of those are the things we're thinking about for
931
00:52:27.119 --> 00:52:30.000
the future, and that's what accelerate we'll go to. At
932
00:52:30.000 --> 00:52:31.400
some point I expect to hope.
933
00:52:31.880 --> 00:52:33.840
What's your relationship to Blazer.
934
00:52:34.400 --> 00:52:37.039
We don't really have We don't really have a relationship
935
00:52:37.039 --> 00:52:40.679
to Blazer. There's some projects that I've seen where you
936
00:52:40.719 --> 00:52:45.920
can use like Blazer style syntax to build out an
937
00:52:45.960 --> 00:52:52.960
avalo of your application. When I've discussed with the team
938
00:52:53.039 --> 00:52:56.719
about alternative syntax, one of the things I've often said
939
00:52:56.760 --> 00:52:59.719
is that I think if we did it, if we wanted.
940
00:52:59.440 --> 00:53:00.960
To move away, we'll not move away.
941
00:53:00.960 --> 00:53:07.199
But adn't an extra language than using Blazer or some
942
00:53:07.280 --> 00:53:11.599
kind of HTML like language is probably a smarter choice.
943
00:53:11.679 --> 00:53:14.320
I agree, That's why I brought it up. It seems like,
944
00:53:14.440 --> 00:53:17.800
you know, rather than improving Xamle, you have something that
945
00:53:18.280 --> 00:53:22.719
works that's really a nice little component model using angle brackets.
946
00:53:22.840 --> 00:53:23.039
Yeah.
947
00:53:23.119 --> 00:53:26.800
Yeah, if I like Blazer, I think when you think
948
00:53:26.800 --> 00:53:32.199
about who are ideal target is right now there the
949
00:53:32.239 --> 00:53:36.880
folks that have invested a huge amount in Xamle, they've
950
00:53:36.880 --> 00:53:39.559
already got all of that those skills, So we've got
951
00:53:39.559 --> 00:53:40.159
that nailed.
952
00:53:40.320 --> 00:53:44.519
So yeah, Matt's job is to think about the future. Yeah.
953
00:53:44.599 --> 00:53:47.639
You know, as I've alonne you, we're heavily enterprise focused,
954
00:53:47.679 --> 00:53:51.119
and that means maintaining things for a long time. We
955
00:53:51.199 --> 00:53:53.800
want to be building new features, not rebuilding the stuff
956
00:53:53.840 --> 00:53:57.599
we already have, unless unless it's a really really strong reason. Sure,
957
00:53:57.800 --> 00:54:00.719
you know, I like the idea of or if you'll
958
00:54:00.760 --> 00:54:02.440
build this new language on top of the thing that
959
00:54:02.519 --> 00:54:05.239
already exists, or the two can work together, and that
960
00:54:05.360 --> 00:54:09.039
compatibility in anything new is really important. The strength of
961
00:54:09.079 --> 00:54:12.840
cross platform is we can build four different platforms with
962
00:54:12.880 --> 00:54:17.000
the same technology, not necessarily that the same thing works everywhere.
963
00:54:17.360 --> 00:54:19.679
If people are going to be using Claude in the
964
00:54:19.920 --> 00:54:23.920
like for building Abalonia apps, what's the importance of going
965
00:54:24.000 --> 00:54:28.039
so far down into ZAM or learning that is, if
966
00:54:28.039 --> 00:54:30.000
you were going to do it by hand, if you
967
00:54:30.039 --> 00:54:33.440
can just describe it, you know, to an LM and
968
00:54:33.519 --> 00:54:36.440
habit right the ZAM I guess readability, I.
969
00:54:36.480 --> 00:54:41.599
Think, yeah, yeah, it's how much you trust what Claude
970
00:54:41.599 --> 00:54:45.239
does or whatever tool does without looking at the code.
971
00:54:45.559 --> 00:54:47.880
And if we can get to a point where I'm
972
00:54:47.920 --> 00:54:50.880
really happy that it's not going to break something, I
973
00:54:50.519 --> 00:54:53.119
can I can clearly describe everything that I want, or
974
00:54:53.159 --> 00:54:55.559
I don't care about the specifics enough that I can
975
00:54:55.639 --> 00:54:57.639
just describe it and it can do it. That's fine.
976
00:54:58.039 --> 00:55:00.719
But when you want to be sure about what's changed.
977
00:55:01.960 --> 00:55:03.480
You need to be able to look at the code
978
00:55:03.519 --> 00:55:05.719
and understand it, or someone needs to be able to
979
00:55:06.000 --> 00:55:06.480
I don't think.
980
00:55:06.559 --> 00:55:06.920
I don't.
981
00:55:07.239 --> 00:55:09.199
I think there's always going to be this position where
982
00:55:09.239 --> 00:55:12.760
we need something between what runs on the machine at
983
00:55:12.920 --> 00:55:17.639
like some really low level and the human speech. The
984
00:55:17.719 --> 00:55:19.199
kind of needs to be something in between.
985
00:55:20.119 --> 00:55:22.400
I'm having a hard time in visioning a future where
986
00:55:23.079 --> 00:55:26.960
I can be confident in the code that an LM writes,
987
00:55:28.199 --> 00:55:31.000
just to make sure it didn't misunderstand, you know, make
988
00:55:31.039 --> 00:55:34.719
sure it didn't make a bad assumption. I mean, I
989
00:55:35.119 --> 00:55:38.559
can't imagine. I mean, I'm probably it's probably going to
990
00:55:38.719 --> 00:55:41.960
come sooner than I think, but I just can't imagine
991
00:55:42.000 --> 00:55:44.280
being able to trust an l and that much. Not
992
00:55:44.320 --> 00:55:48.679
only that, but you know, it's your head on the
993
00:55:48.760 --> 00:55:52.480
chopping block if things go sideways, and you know that
994
00:55:53.559 --> 00:55:56.440
to some people that mean might mean a little embarrassment,
995
00:55:56.559 --> 00:56:00.320
but to other people it could cause it could cost lives,
996
00:56:00.559 --> 00:56:00.760
you know.
997
00:56:01.000 --> 00:56:03.920
Yeah, I mean, if you look at where Avaloni is used,
998
00:56:04.320 --> 00:56:09.000
we've used in operating theaters to make sure that you know,
999
00:56:09.599 --> 00:56:11.679
surgeons are drilling into people's.
1000
00:56:11.280 --> 00:56:13.920
Legs exactly, that they're.
1001
00:56:13.800 --> 00:56:16.239
Drilling into the right places. You wouldn't want a vibe
1002
00:56:16.239 --> 00:56:17.119
coded app.
1003
00:56:19.079 --> 00:56:21.360
Dealing with that, certainly not in twenty twenty six.
1004
00:56:22.000 --> 00:56:24.039
No, No, we're a little way away from that.
1005
00:56:24.400 --> 00:56:25.800
Well, guys would come to the end of the show.
1006
00:56:25.840 --> 00:56:27.559
Is there anything else that you want to mention before
1007
00:56:27.599 --> 00:56:29.159
we before we wrap it up?
1008
00:56:29.679 --> 00:56:33.280
Avaloni twelve it's a preview now is already available, so
1009
00:56:33.800 --> 00:56:36.679
if anyone wants to give that a world the performance
1010
00:56:36.760 --> 00:56:40.760
is really good on mobile and yeah, just check us
1011
00:56:40.760 --> 00:56:44.519
out on get hub. Let's say you won't see us
1012
00:56:44.519 --> 00:56:47.679
at conferences or doing any marketing, you'll only hear from
1013
00:56:47.800 --> 00:56:49.960
us as people have used it and liked it.
1014
00:56:49.960 --> 00:56:55.480
It's great stuff. Thanks guys, Mike James and Matt Lacy
1015
00:56:55.880 --> 00:56:59.519
from Avalonia. Thank you and we'll talk to you next time.
1016
00:57:00.159 --> 00:57:00.880
Dot net Rocks.
1017
00:57:21.559 --> 00:57:24.239
Dot net Rocks is brought to you by Franklin's Net
1018
00:57:24.360 --> 00:57:28.320
and produced by Pop Studios, a full service audio, video
1019
00:57:28.400 --> 00:57:32.519
and post production facility located physically in New London, Connecticut,
1020
00:57:32.719 --> 00:57:37.519
and of course in the cloud online at pwop dot com.
1021
00:57:37.719 --> 00:57:39.840
Visit our website at d O T N E t
1022
00:57:40.079 --> 00:57:44.119
R O c k S dot com for RSS feeds, downloads,
1023
00:57:44.280 --> 00:57:47.960
mobile apps, comments, and access to the full archives, going
1024
00:57:48.000 --> 00:57:51.239
back to show number one, recorded in September two.
1025
00:57:51.039 --> 00:57:51.639
Thousand and two.
1026
00:57:52.280 --> 00:57:54.599
And make sure you check out our sponsors. They keep
1027
00:57:54.679 --> 00:57:57.800
us in business. Now go write some code. See you
1028
00:57:57.880 --> 00:58:01.960
next time. Got in a band day.
1029
00:58:03.199 --> 00:58:08.920
A summer time that means home. Then my Texas in
1030
00:58:09.239 --> 00:58:10.480
line red ball