1
00:00:01,000 --> 00:00:04,759
How would you like to listen to
dot net rocks with no ads? Easy?

2
00:00:05,320 --> 00:00:09,279
Become a patron For just five dollars
a month. You get access to

3
00:00:09,320 --> 00:00:14,000
a private RSS feed where all the
shows have no ads. Twenty dollars a

4
00:00:14,039 --> 00:00:18,359
month will get you that and a
special dot net rocks patron mug. Sign

5
00:00:18,480 --> 00:00:37,039
up now at Patreon dot dot net
rocks dot com. Hey guess what,

6
00:00:37,159 --> 00:00:40,520
it's dot in rocks. This is
Carl Franklin and this is Richard Campbell and

7
00:00:40,759 --> 00:00:45,560
we're back from Sweden. Yeah.
That was good. It was really good,

8
00:00:46,200 --> 00:00:49,640
especially the Italian place. We had
dinner on the last night. Italian

9
00:00:49,679 --> 00:00:53,840
places Sweden, but it's very nice. There's lots of great ethnic restaurants all

10
00:00:53,920 --> 00:00:57,759
over Sweden. Oh yeah, Stockholm
is where we were. Yea, yeah,

11
00:00:58,240 --> 00:01:02,159
somebody ordered a bottle, AMARNI who
was that? And your night is

12
00:01:02,200 --> 00:01:03,799
not going to get worse because you
have a bottle about a room, which

13
00:01:03,840 --> 00:01:07,680
I know it's amazing, amazing stuff. All right. Well, anyway,

14
00:01:07,799 --> 00:01:11,799
we had a good time. We're
back and Amy is here and we'll be

15
00:01:12,159 --> 00:01:15,799
talking to her in just a minute. But first we had this little matter

16
00:01:15,879 --> 00:01:26,159
of better no framework awesome, all
right, man, what do you got

17
00:01:26,319 --> 00:01:32,319
all right. So this is a
blog post from a very prolific blogger about

18
00:01:32,319 --> 00:01:40,400
Blazer, Gerald Daret, and it's
using dot Net code from JavaScript using web

19
00:01:40,400 --> 00:01:44,400
assembly. Now, okay, it
sounds like it's no big deal, but

20
00:01:44,560 --> 00:01:49,359
here's here's the opening paragraph. Blazer
web assembly allows you to run a dot

21
00:01:49,359 --> 00:01:53,519
Net web application in a browser.
Right starting with dot Net seven, you

22
00:01:53,560 --> 00:02:00,200
can easily run any dot Net method
from JavaScript without needing the whole Blazer framework.

23
00:02:01,439 --> 00:02:05,359
This is interesting. Let's see how
to run a dot Net method from

24
00:02:05,439 --> 00:02:08,439
JavaScript. So he tells you how
to install the workload, create a new

25
00:02:08,479 --> 00:02:15,120
console lapp, and then he adds
the properties in the project file, shows

26
00:02:15,159 --> 00:02:22,240
you how to call it, create
a c sharp class, and then invoke

27
00:02:22,319 --> 00:02:27,280
it from JavaScript. And he's literally
giving instructions like you're doing a notepad or

28
00:02:27,360 --> 00:02:30,199
at least vs code, but no
dependency on studio or anything like no studio.

29
00:02:30,639 --> 00:02:36,360
Yeah, yeah, it's pretty awesome. And so when you compile it,

30
00:02:36,360 --> 00:02:40,439
it turns into eight hundred and nineteen
kilobytes. Okay, I mean it's

31
00:02:40,479 --> 00:02:46,400
not minuscule, but it's small.
You've got images bigger than that on your

32
00:02:46,400 --> 00:02:50,840
web I do. Yeah, yeah, and I think you know it's like

33
00:02:50,879 --> 00:02:55,199
what two and a half megabytes for
the whole Blazer library to come down,

34
00:02:55,439 --> 00:03:00,360
but which feels way bigger than eight
hundred k. Yeah, because it is,

35
00:03:00,560 --> 00:03:05,800
because it is so there you go
and it's fun. And this guy

36
00:03:06,199 --> 00:03:12,360
Gerald has lots and lots of good
blog posts and I've referenced them and Blazer

37
00:03:12,360 --> 00:03:15,840
trained before. Just a very smart
guy. Maybe we should get him on

38
00:03:15,919 --> 00:03:19,039
here. Yeah, we could probably
arrange that. Yeah, that's what I

39
00:03:19,080 --> 00:03:22,280
got. What do you got?
I grabbed a comment off of show eighteen

40
00:03:22,479 --> 00:03:27,960
fifteen, which we did back in
October last year, when I think we

41
00:03:27,960 --> 00:03:30,080
were in person. Was that at
the NDC Oslo conference. I think it

42
00:03:30,199 --> 00:03:37,199
was y O'Brien about Playwright the testing
web apps, because yeah, we're going

43
00:03:37,199 --> 00:03:39,240
to talk about web apps today,
so I thought you talked about testing WebOps

44
00:03:39,280 --> 00:03:43,960
too, And Dave Parvin says,
I have not used Playwright yet, but

45
00:03:44,080 --> 00:03:47,360
I have done the older UI testing
and it was painful. Just getting into

46
00:03:47,360 --> 00:03:52,080
consistently find controls was a pain.
I'm glad to hear that Playwright might be

47
00:03:52,120 --> 00:03:53,719
doing the job better. I don't
know when I'll be using Playwright with my

48
00:03:53,719 --> 00:03:58,199
current projects, because I'm working on
desktop applications. Written in C plus plus

49
00:03:58,199 --> 00:04:00,960
the C sharp, and I can
say that I have a lot of unit

50
00:04:00,960 --> 00:04:04,360
tests that are fairly good, and
with the help of Verify, they're getting

51
00:04:04,400 --> 00:04:09,039
better. Simon Kropp Yeah, yeah, the project I'm working on is a

52
00:04:09,159 --> 00:04:15,000
huge project, and unit tests were
not getting made until halfway through the project.

53
00:04:15,039 --> 00:04:17,079
Stop me if you've heard this one
right, Yeah, sounds very familiar.

54
00:04:17,720 --> 00:04:23,879
At this point, we have over
thirty three thousand tests. Good lord,

55
00:04:24,160 --> 00:04:27,839
and it is amazing how often we
make a change and a unit test

56
00:04:27,879 --> 00:04:30,920
fails because of it. Finding that
problem that is in the code we change

57
00:04:31,120 --> 00:04:34,399
is so much more helpful than waiting
for a customer to find that problem.

58
00:04:34,399 --> 00:04:38,160
It is more fun when we find
the failure was in the code that we

59
00:04:38,199 --> 00:04:41,519
did not change, what was depending
on code we did change, and with

60
00:04:41,560 --> 00:04:45,279
the change we made, it broke. The other thing, A certain quote

61
00:04:45,319 --> 00:04:47,120
from Billy Hollis is coming to mind
right now. I don't know if you

62
00:04:47,160 --> 00:04:50,439
know what I'm talking about. I
could probably guess. It is amazing how

63
00:04:50,439 --> 00:04:55,759
many times the unit tests have pointed
to problems that we did not know we

64
00:04:55,879 --> 00:04:59,040
had, right, because you gotta
imagine this as an old codebase that Yeah,

65
00:04:59,199 --> 00:05:01,480
so he does understand all of these
side effect right you're going on,

66
00:05:03,040 --> 00:05:06,079
and sometimes it pointed out errors in
our assumptions about how a piece of code

67
00:05:06,079 --> 00:05:10,560
would be used. And that's good
testing, man, Like, that's how

68
00:05:10,600 --> 00:05:14,000
you own a code base when you've
got to take it over and really get

69
00:05:14,120 --> 00:05:16,120
get comfortable with it. Is picking
up on all of those things. Testing

70
00:05:16,160 --> 00:05:18,600
helps you with that, you know. I can I don't know if this

71
00:05:18,639 --> 00:05:23,560
has ever happened on any teams that
you manage, Richard, but I haven't

72
00:05:23,600 --> 00:05:27,720
seen it, but I can envision, you know, when somebody comes in

73
00:05:27,759 --> 00:05:30,120
and says, we got to tear
all this out and refactor all this and

74
00:05:30,160 --> 00:05:33,160
everything's going to change, and the
testers go, you can't do that to

75
00:05:33,279 --> 00:05:41,560
me. I've got on this beautiful
tests. What are you doing? But

76
00:05:41,680 --> 00:05:43,959
you know, well, I know
we talked about this on the show back

77
00:05:43,959 --> 00:05:46,720
in the day, which admittedly is
the better part of ten years ago now,

78
00:05:46,079 --> 00:05:53,279
but it's when every time with Strange
Loop, at least twice when we

79
00:05:53,319 --> 00:05:58,079
did a major update, it trashed
the tests and it's literally easier to start

80
00:05:58,160 --> 00:06:01,360
over, and we did each time. But and it wasn't until like the

81
00:06:01,360 --> 00:06:05,920
third iteration that we finally knew how
to write tests that would be more resilient

82
00:06:06,000 --> 00:06:12,439
for subsequent revisions, Like it took
a while to really write resilient testing for

83
00:06:12,519 --> 00:06:15,800
the system as a whole. It's
not trivial to do so, Dave,

84
00:06:15,839 --> 00:06:18,079
thank you so much for your comment. A copy of music Cobi is on

85
00:06:18,079 --> 00:06:20,040
its way to you. And if
you'd like a copy of music copy,

86
00:06:20,120 --> 00:06:23,800
write a comment on the website at
dot net rocks dot com or on the

87
00:06:23,839 --> 00:06:26,480
facebooks. If you publish every show
there, and if you comment there and

88
00:06:26,480 --> 00:06:29,000
I read on the show, we'll
send you a copy music copy. And

89
00:06:29,040 --> 00:06:32,519
you should definitely follow us on Mastodon. I'm at Carl Franklin at tech up

90
00:06:32,560 --> 00:06:36,000
dot social, and I'm Rich Campbell
at mastodon dot social. Send us a

91
00:06:36,079 --> 00:06:41,279
two ruy too too. No matter
how funny it is. We love Toots,

92
00:06:41,079 --> 00:06:44,959
it's a good I love Macedon.
It's cool. There's a lot of

93
00:06:44,959 --> 00:06:47,639
cool people there. Yeah, it's
it's got it's got that small community feel

94
00:06:47,720 --> 00:06:50,959
still in it. It really does. Yeah, and it's not polluted by

95
00:06:51,000 --> 00:06:55,680
advertising, which I like. Yeah. I mean, I still worry about

96
00:06:55,680 --> 00:06:58,839
its sustainability, but that's always a
concern. Well, at least it's not

97
00:06:58,959 --> 00:07:03,040
centralized, you know, no,
And I saw a great conversation on it

98
00:07:03,079 --> 00:07:10,680
the other day where a major Masterton
server with fifteen thousand users was shutting down,

99
00:07:11,000 --> 00:07:13,560
like for whatever reason that the guy
had to get out or it was

100
00:07:13,600 --> 00:07:15,839
just you know, he had stut
it inappropriately, and it was trivial for

101
00:07:15,839 --> 00:07:19,439
those fifteen thousand users to migrate to
to they spread out to a bunch of

102
00:07:19,480 --> 00:07:24,360
different servers and all their history stuff
was capped. And so one person was

103
00:07:24,399 --> 00:07:27,279
saying, this is why massadon will
never succeeded. Other guys saying, this

104
00:07:27,399 --> 00:07:31,399
is exactly why Mastadon will succeed.
It's like raid for messaging. Yeah,

105
00:07:31,480 --> 00:07:34,879
it was very interesting. Yeah,
it's cool. All right, let's let's

106
00:07:34,879 --> 00:07:41,199
bring Amy on. Amy Kaepernick wears
many hats as a business owner, senior

107
00:07:41,240 --> 00:07:46,560
engineer, mentor, and conference addict. She regularly shares her knowledge with her

108
00:07:46,600 --> 00:07:50,120
peers and the next generation of developers
by mentoring, speaking at, and organizing

109
00:07:50,160 --> 00:07:57,399
events, as well as mentoring up
and coming developers within her business. She's

110
00:07:57,399 --> 00:08:03,000
been recognized as a Twilio Champion and
a Microsoft MVP since twenty nineteen and knows

111
00:08:03,040 --> 00:08:07,600
how to write a bio with years
and dates instead of this many years that

112
00:08:07,680 --> 00:08:13,240
many years. Welcome Amy, welcome
back. Thanks thanks for having me.

113
00:08:16,040 --> 00:08:18,240
Yeah, every time I hear my
bio read out as an introduction, that

114
00:08:18,399 --> 00:08:22,639
always always makes me go, wow, well I actually sound like I know

115
00:08:22,720 --> 00:08:28,120
what I'm talking about. You've done
some stuff. I've done some stuff.

116
00:08:28,360 --> 00:08:33,720
Yeah, certainly have Yeah, yeah, yeah, no question and obviously been

117
00:08:33,759 --> 00:08:37,320
busy. We saw each other at
NDC London, Yes, which was good

118
00:08:37,320 --> 00:08:41,559
fun. Yes, I'm hoping this
year will be a little bit less busy

119
00:08:41,600 --> 00:08:48,039
than last year. Last year just
got very busy, very quickly. Yeah.

120
00:08:48,840 --> 00:08:52,240
I had this intend to say everything
yes to everything last year and did

121
00:08:52,240 --> 00:08:56,240
a lot of things, and this
year I wouldn't say yes quite as often,

122
00:08:56,759 --> 00:09:01,559
and I am failing. Last year
My intent was to just ease back

123
00:09:01,600 --> 00:09:07,200
into things a little bit, just
just a practice run. And yeah it

124
00:09:07,320 --> 00:09:09,960
was there was. There's not much
of an ease. It was about as

125
00:09:09,000 --> 00:09:15,360
easy as an exponential curve can get, not ease, not ease. Yeah,

126
00:09:15,440 --> 00:09:18,879
all right. Yeah. You did
a talk and I certain and I

127
00:09:20,200 --> 00:09:24,120
paid close attention to it about this
sort of the modern web front end development

128
00:09:24,480 --> 00:09:26,480
because we've gone through a lot of
different ways to build web pages over the

129
00:09:26,559 --> 00:09:30,960
year. I would argue that just
a few years ago, modern front end

130
00:09:30,960 --> 00:09:33,600
development meant angular and SPA. I
think it still means SPA. Yeah,

131
00:09:35,519 --> 00:09:39,320
yeah, it definitely does in a
lot of circles. There's a lot of

132
00:09:39,360 --> 00:09:46,039
conversations about it. But yeah,
it's because we know this tech changes so

133
00:09:46,279 --> 00:09:52,720
quickly. But often when people are
talking about what the modern front end is,

134
00:09:52,919 --> 00:09:58,159
as you've already identified, they're talking
what freeworks were using, and they're

135
00:09:58,200 --> 00:10:03,519
talking it's often what shiny flavor of
JavaScript are we're using today, which we

136
00:10:03,600 --> 00:10:09,440
all know changes. I mean,
I'm pretty sure there's been two new frameworks

137
00:10:09,440 --> 00:10:15,039
already so far in this recording.
I mean, I did feel like it's

138
00:10:15,200 --> 00:10:18,720
like it cooled off, like it's
been Angular, view and React for a

139
00:10:18,799 --> 00:10:26,440
while. Yeah, so there's there's
still but I think there's less. There's

140
00:10:26,679 --> 00:10:31,000
there's less coming, but there's more
coming within those sections. So like,

141
00:10:31,120 --> 00:10:37,080
for example, in the React world, the shiny new thing is remix,

142
00:10:37,200 --> 00:10:41,960
I think unless I've missed the one
that's come after that. So there's still

143
00:10:41,000 --> 00:10:45,759
a lot of new things coming out, but the problem is people are they're

144
00:10:45,759 --> 00:10:50,360
struggling to keep up with that.
And so what my talk and the workshop

145
00:10:50,440 --> 00:10:56,279
I run on the same topic is
we're actually looking at the fundamentals behind it.

146
00:10:56,399 --> 00:11:00,919
So, yeah, okay, what
you're using React, using Angular,

147
00:11:01,799 --> 00:11:09,440
what flavor itever you're using. But
underneath, it's still HTML that you're actually

148
00:11:09,440 --> 00:11:13,759
writing it. You've still got HTML
as the structure. Whether you write it

149
00:11:13,799 --> 00:11:18,159
as j SAX or start at HTML, it's still going to appear as HTML

150
00:11:18,200 --> 00:11:20,240
on a web page. And so
making sure that we're spending the time with

151
00:11:20,279 --> 00:11:26,039
those fundamentals because although they haven't changed
quite as quickly, there's still a lot

152
00:11:26,080 --> 00:11:31,480
of things changing that some people don't
realize. There's browsers are still bringing out

153
00:11:31,559 --> 00:11:37,600
new HTML elements and new features to
the browser. So keeping up to date

154
00:11:37,759 --> 00:11:43,399
with those things because the way we
can do things now is just so much

155
00:11:43,480 --> 00:11:48,720
easier. So it's part of a
Yeah, it's part of my talk and

156
00:11:48,759 --> 00:11:52,919
as part of my workshop we actually
go through it's like, okay, well,

157
00:11:52,960 --> 00:11:54,799
what are all the things that you
would like to do, Like if

158
00:11:54,799 --> 00:11:58,039
you want to have a date picker
on your website, how do you do

159
00:11:58,080 --> 00:12:01,720
that? And everyone always goes,
well, we use a library has one,

160
00:12:01,840 --> 00:12:07,200
or we find a package jaw My
favorite, which is the answer I'm

161
00:12:07,240 --> 00:12:11,480
looking for, which is we use
a JavaScript package, which that's then different

162
00:12:11,519 --> 00:12:16,480
depending on what you're doing. But
there's actually a native HTML date picker.

163
00:12:16,759 --> 00:12:20,200
Yeah it's pretty good too. Yeah, it's it's pretty good. There's a

164
00:12:20,200 --> 00:12:24,799
little bit of validation that you can
do as well, and it works across

165
00:12:24,879 --> 00:12:28,960
multiple devices, so if people are
on their phones, it will pin up

166
00:12:28,240 --> 00:12:35,360
a mobile friendly date picker compared to
if they're on a desktop. Now,

167
00:12:35,399 --> 00:12:37,919
if we can just get select to
work on a phone, that would be

168
00:12:37,960 --> 00:12:45,279
great, but select select works,
but yeah, it's it's not spectacular.

169
00:12:45,480 --> 00:12:50,879
However, there is also a not
quite an autocomplete, but there is another

170
00:12:50,960 --> 00:12:56,799
feature. There's another element called a
data list, which gives you some features

171
00:12:56,879 --> 00:13:01,679
of an autocomplete, so that people
can type in and it will select from

172
00:13:01,720 --> 00:13:07,200
pre filled options. It reminds me
of a Windows cambo box, which is

173
00:13:07,519 --> 00:13:09,600
in the day, Yeah, back
in the day. It's sort of a

174
00:13:09,679 --> 00:13:13,200
dropdown, but it's also a tax
box, so you can start typing and

175
00:13:13,240 --> 00:13:18,159
then then listeners. Yeah. Yeah, And so for a lot of that,

176
00:13:18,440 --> 00:13:22,600
for a lot of what people are
doing that that serves the requirements and

177
00:13:22,679 --> 00:13:28,559
it means we've got a whole lot
less dependencies. So that's what my current

178
00:13:28,600 --> 00:13:33,600
passion in trying to trying to get
the message out about those those fundamentals and

179
00:13:33,159 --> 00:13:37,559
reminding people that there are other things
that are still changing, and looking up

180
00:13:37,679 --> 00:13:43,000
and just working out what they don't
know and keeping an eye on what's actually

181
00:13:43,080 --> 00:13:48,519
still happening in that area. I'm
grabbing some links like to the Native Dick

182
00:13:48,559 --> 00:13:52,879
Bicker and so forth, and I'm
going to W three schools by reflex just

183
00:13:52,919 --> 00:13:56,559
because I find them. Love W
three schools. Yeah, they're old school,

184
00:13:56,639 --> 00:13:58,080
it's kind of relatable, it's tough, totally up to date. And

185
00:13:58,159 --> 00:14:03,399
just realizing it's active server pages,
I mean it's it's not even APAX,

186
00:14:03,559 --> 00:14:09,159
it's ASP. Wow, that's cool. This a moment I have this sort

187
00:14:09,200 --> 00:14:16,639
of thought like the Cobbler's children have
no shoes. Yeah, but it works,

188
00:14:16,879 --> 00:14:20,039
it does right, And and I
bring up that point to say exactly

189
00:14:20,080 --> 00:14:26,720
that it's like, hey, I've
got the teleric Uh set of HTML five

190
00:14:26,799 --> 00:14:30,799
controls right that the Kendle controls,
and it's got a pretty good date picker

191
00:14:30,879 --> 00:14:33,320
in it. It's got a selector
in it, like what's my incentive to

192
00:14:33,480 --> 00:14:39,440
change? Because it depends. So
you've had access to that. But if

193
00:14:39,480 --> 00:14:46,559
people if people are using plane react
that doesn't come with it. They've got

194
00:14:46,559 --> 00:14:50,279
to they've got to have something in
there, So that's when people are often

195
00:14:50,360 --> 00:15:00,000
reaching for a library or another third
party package. The advantage of the net

196
00:15:00,039 --> 00:15:05,759
eative controls as well is there are
a lot more accessible so browsers don't just

197
00:15:05,919 --> 00:15:09,679
chuck this in there. There has
been a lot of consultation that's happened with

198
00:15:09,720 --> 00:15:16,759
a lot of very smart people,
and so accessibility has had a lot of

199
00:15:16,799 --> 00:15:24,279
thought already gone into it, whereas
when you grab third party package it may

200
00:15:24,000 --> 00:15:28,120
not have had that thought go into
it. So when you bring in a

201
00:15:28,200 --> 00:15:33,879
native HTML control, people can use
it using their keyboards. People can't using

202
00:15:33,960 --> 00:15:37,759
screen readers know what's going on.
There's a whole lot more of that that's

203
00:15:37,799 --> 00:15:43,240
just built in natively. So when
people are used to putting a whole lot

204
00:15:43,279 --> 00:15:46,759
of ARIA labels and roles and things
on there for screen readers to announce,

205
00:15:48,159 --> 00:15:50,440
it's just that you don't have to. It just happens. Yeah, that's

206
00:15:50,440 --> 00:15:54,679
a good point, but it's it
reduces the barrier to entry, right,

207
00:15:54,720 --> 00:15:58,480
I mean, you don't have to
be you know, I downloaded the repair

208
00:15:58,600 --> 00:16:02,840
and climb the RepA, but oh
I need this license for this tool and

209
00:16:02,879 --> 00:16:04,559
that tool and this tool on that
tool. Now I got to go buy

210
00:16:04,600 --> 00:16:11,639
developer licenses for those things. Oh, your license needs to be renewed,

211
00:16:11,960 --> 00:16:18,200
etc. Yeah. I'm just an
accessibility perspective that maybe that control supports accessibility,

212
00:16:18,320 --> 00:16:21,639
maybe it doesn't. Maybe it supports
multi lingual, maybe it doesn't.

213
00:16:21,840 --> 00:16:26,039
But anything that's needed to the browser
almost certainly does. Yeah. And usually

214
00:16:26,080 --> 00:16:30,919
it's the controls or the properties and
the you know, the interfaces are so

215
00:16:32,080 --> 00:16:40,679
fundamental that you can modify them with
standard HTMLCSS, CHIVASCRIPT without too much fanfare.

216
00:16:41,159 --> 00:16:44,279
Yeah, so all of that stuff
just makes it so much easier.

217
00:16:45,120 --> 00:16:49,039
Part of my fundamentals is we then
spend time going back to the CSS fundamentals,

218
00:16:49,200 --> 00:16:55,240
so not doing all of the bright
and shiny things, but just the

219
00:16:55,399 --> 00:17:00,200
overall layouts and stuff. So doing
a lot of CSS, which I know

220
00:17:00,279 --> 00:17:04,880
we talked about last time I was
on the show, so I'm not gonna

221
00:17:06,200 --> 00:17:08,440
I'm not going to go through that
again, but looking at all of the

222
00:17:08,519 --> 00:17:12,799
other changes that we've had to see
assess that actually make things so much easier

223
00:17:14,119 --> 00:17:21,400
to build out overall layouts these days, Like even things we've got aspect ratio

224
00:17:21,640 --> 00:17:27,359
is coming out to browsers. So
that that means that we can actually if

225
00:17:27,400 --> 00:17:32,519
we want a picture to be square, we can just how the browser that

226
00:17:32,680 --> 00:17:37,880
look this picture should be this wide
and it should be square. So those

227
00:17:37,000 --> 00:17:45,079
kinds of things. Hey, that's
a good idea that twenty years ago.

228
00:17:45,440 --> 00:17:49,000
Yeah, so a lot of this
stuff for anybody. I get a lot

229
00:17:49,039 --> 00:17:55,720
of people in my workshop when I
run them that they they they have been

230
00:17:56,200 --> 00:18:00,759
working on the web for much longer
than I have, and so the last

231
00:18:00,759 --> 00:18:03,279
time they looked at HTML and CSS, it was so hard to do all

232
00:18:03,319 --> 00:18:07,319
of these things. Yeah, so
that's why they reached all the third party

233
00:18:07,319 --> 00:18:11,039
stuff. That's why people are using
things like bootstrap and tailwind because they go,

234
00:18:11,119 --> 00:18:12,680
well, I tried to do it
in CSS and I couldn't get it

235
00:18:12,720 --> 00:18:17,880
to work. But the fact that
it's changed, and so reminding them or

236
00:18:17,960 --> 00:18:22,119
just letting them know that it's changed
and these are all the new things,

237
00:18:22,240 --> 00:18:26,440
it means they're able to go back. The fundamentals are something that I'm very

238
00:18:26,480 --> 00:18:30,000
passionate about in pretty much all areas. If people go, I'm a complete

239
00:18:30,000 --> 00:18:33,079
beginner, do I want to learn
React? I go, well, you

240
00:18:33,119 --> 00:18:38,720
want to learn JavaScript first and then
learn React? Because the fundamentals are the

241
00:18:38,759 --> 00:18:42,559
backbones of everything that we build.
So if you've got good fundamentals, it

242
00:18:42,680 --> 00:18:47,240
makes it so much easier when you
move up, and it means we're building

243
00:18:47,960 --> 00:18:52,319
much higher quality applications. But aren't
the latest versions of Tailwind and Bootstrap also

244
00:18:52,400 --> 00:18:57,680
implementing the leaders features of CSS.
They are, but it comes down to

245
00:18:59,160 --> 00:19:04,759
reducing dependencies and keeping things nice and
light. So my goal with teaching more

246
00:19:04,759 --> 00:19:11,839
people the fundamentals is not to make
everyone front end developers and to not do

247
00:19:11,960 --> 00:19:17,559
front end developers out of the job. So I've worked with quite a few

248
00:19:17,599 --> 00:19:23,519
teams where they have one or two
front end developers, but there's so much

249
00:19:23,559 --> 00:19:27,680
stuff that they've got to do.
So the rest of the developers they're able

250
00:19:27,759 --> 00:19:33,480
to go through and do stuff with
CSS, and so without having to introduce

251
00:19:34,119 --> 00:19:41,200
another dependency like Bootstrap or Tailwind.
They can have the layout, they can

252
00:19:41,200 --> 00:19:44,799
get things kind of sitting on the
page where they need to be, so

253
00:19:44,839 --> 00:19:48,519
that then when the front end developers
come in, they don't have to go

254
00:19:48,559 --> 00:19:55,640
through and clean everything up that structure
that's already in there, the foundations of

255
00:19:55,799 --> 00:19:59,799
what they're building that's good to go, so they can go through and do

256
00:20:00,200 --> 00:20:03,559
their stuff on top and just make
it looking that much nice so they can

257
00:20:03,559 --> 00:20:08,720
add the wow on top of it
without having to go through and redo those

258
00:20:08,759 --> 00:20:15,279
fundamentals. Yeah, so you're less
likely to make a mess with the new

259
00:20:15,400 --> 00:20:19,799
versions of CSS, even though,
and allow those front end specialists then to

260
00:20:21,440 --> 00:20:23,519
just amp things up a bit.
Yeah, so I'm not saying it less

261
00:20:23,599 --> 00:20:27,440
likely to make a mess. There's
still likely messes, but there's just a

262
00:20:27,480 --> 00:20:32,519
lot less to go through. So
I've worked in projects where the structure has

263
00:20:32,559 --> 00:20:37,119
been built out in something else,
and I've then got to go through and

264
00:20:37,160 --> 00:20:41,160
clean up a whole bunch of classes. And because everything's using that often the

265
00:20:41,640 --> 00:20:45,680
hmail elements haven't been thought out.
So I'm going through and replacing a whole

266
00:20:45,720 --> 00:20:49,000
bunch of divs with something better.
And so there's done a whole lot of

267
00:20:49,039 --> 00:20:53,559
cleanup work that I have to do
before I can get started. So whereas

268
00:20:53,960 --> 00:20:59,240
yeah, going with just the foundations, there's a lot less cleanup that has

269
00:20:59,279 --> 00:21:03,279
to happen. So one of the
things that's always bugged me about JavaScript in

270
00:21:03,359 --> 00:21:10,839
CSS is the global nature of objects, classes, functions, whatever, variables.

271
00:21:10,880 --> 00:21:15,559
And um, I know Blazer has
got scoping right, so you've got

272
00:21:15,680 --> 00:21:19,519
scope CSS in Blazer that's sort of
built right into the framework. If I

273
00:21:19,559 --> 00:21:26,240
have a component named you know whenever
my grid dot razor, I can have

274
00:21:26,279 --> 00:21:30,400
a file called my grid dot razor
dot css, and all the CSS classes

275
00:21:30,400 --> 00:21:33,119
and there only apply to that,
and they do some magic behind the scenes

276
00:21:33,160 --> 00:21:37,920
to rename things by prepending the names
of the classes with you know, my

277
00:21:37,920 --> 00:21:47,519
my grid whenever. Um do other
frameworks and even the fundamental CSS and JavaScript

278
00:21:47,880 --> 00:21:53,599
is it Is this happening in other
places besides Blazer? Yes, absolutely so.

279
00:21:55,400 --> 00:22:00,839
The CSS and JavaScript has had scoping
for as long as I've been aware

280
00:22:00,839 --> 00:22:04,559
of it. That was one of
the big that was one of the big

281
00:22:04,599 --> 00:22:08,359
selling factors was hey, this is
scoped, which means if you change this

282
00:22:08,400 --> 00:22:14,920
thing in this massive application that you've
got hundreds of developers working on, you're

283
00:22:14,960 --> 00:22:18,400
not likely it's not likely to bleed
out elsewhere. However, there are plenty

284
00:22:18,400 --> 00:22:25,599
of other things. So my go
to is typically CSS modules, which still

285
00:22:25,640 --> 00:22:30,880
integrates nicely with JavaScript applications, and
it sounds a little bit like how a

286
00:22:30,880 --> 00:22:37,039
Blazer does it in that you can
create so I have for each component,

287
00:22:37,119 --> 00:22:41,160
I have a component in whatever it
is that I'm using, and then I

288
00:22:41,279 --> 00:22:47,720
have typically our styles dot module,
dot CSS file and that will then go

289
00:22:47,799 --> 00:22:52,240
through and yeah and magic the classes
so that everything is scoped to that component.

290
00:22:53,039 --> 00:22:59,039
So for me, that's what I've
found works really well because the scoping

291
00:22:59,160 --> 00:23:02,480
is fantastic. When you're working with
a lot of other developers, or if

292
00:23:02,559 --> 00:23:06,119
you're working if you're working on design
libraries, you don't know where these things

293
00:23:06,160 --> 00:23:08,480
are going to be pulled in,
scoping makes things a lot easier. I've

294
00:23:08,519 --> 00:23:12,640
even been doing a whole lot of
work the project I've worked on last year

295
00:23:12,720 --> 00:23:18,519
WordPress website, I've got CSS modules
and scoping working in that, and this

296
00:23:18,680 --> 00:23:23,400
was a yeah, like this is
fairly easy to be able to integrate in

297
00:23:23,440 --> 00:23:29,680
a whole lot of different places.
It feels a lot more natural. So

298
00:23:30,039 --> 00:23:33,480
some of the CSS in JS libraries
that I came across, the problem is

299
00:23:33,480 --> 00:23:37,640
they've tried to reimplement CSS, and
so there's a whole lot of things that

300
00:23:37,119 --> 00:23:44,319
you can't do or don't work the
way they do in CSS, whereas CSS

301
00:23:44,359 --> 00:23:48,720
modules is just doing the scoping with
CSS, so it's just doing that magic

302
00:23:48,799 --> 00:23:52,640
with the class names. So that
works really well. It also works really

303
00:23:52,640 --> 00:23:57,880
well with things like post CSS,
which is really good or I do a

304
00:23:57,920 --> 00:24:04,200
fair bit of work with SCSS or
sas because they do a whole lot of

305
00:24:04,240 --> 00:24:08,640
magic behind the scenes that makes my
job easier. And so that integrates really

306
00:24:08,759 --> 00:24:15,599
nicely with that too. Amy you
a fan of type script. I actually

307
00:24:15,680 --> 00:24:19,559
only learned type scripts last year.
A whole lot of JavaScript developers I know

308
00:24:19,640 --> 00:24:23,359
were very happy when I finally had
to turn around and learn type script.

309
00:24:23,400 --> 00:24:26,920
Well, what do you think.
I definitely see the advantage of it.

310
00:24:27,440 --> 00:24:32,920
So again, similar to scoping in
CSS, when you're working with a whole

311
00:24:32,920 --> 00:24:36,319
lot of developers and you're working on
really big code basis, it definitely makes

312
00:24:36,359 --> 00:24:41,119
things easier. And they have absolutely
been times when I've been working in code

313
00:24:41,160 --> 00:24:45,480
bases and I need to I need
to pass a value into a component,

314
00:24:45,519 --> 00:24:48,240
but I can't remember exactly what the
name of the property is. But rather

315
00:24:48,279 --> 00:24:52,039
than me having to go and look
at up, my computer's gone up you

316
00:24:52,039 --> 00:24:57,279
want to it's property X that you're
trying to define. Yeah, So that

317
00:24:57,400 --> 00:25:03,039
there's definitely make things easier. So
for those kinds of codebases and for part

318
00:25:03,079 --> 00:25:10,119
of my work, that's definitely made
things much easier. Which this is a

319
00:25:10,200 --> 00:25:15,039
whole lot of people are going to
be so excited about me saying. But

320
00:25:15,319 --> 00:25:18,720
for a lot of my work as
well, I build websites for small to

321
00:25:18,799 --> 00:25:25,119
medium businesses, so I'm I'm dealing
in the word press side of things,

322
00:25:25,279 --> 00:25:30,319
and there's not going to be too
many developments. You Look, that's a

323
00:25:30,440 --> 00:25:37,400
whole other discussion that we can have, which I won't have. But that's

324
00:25:37,440 --> 00:25:41,319
another talk that I have. That's
actually a brand new talk that I'm going

325
00:25:41,359 --> 00:25:48,839
to be giving word Press. Yes, and there's a reason why they love

326
00:25:48,880 --> 00:25:52,480
it, um so, but it's
the largest web platform in the world.

327
00:25:52,559 --> 00:25:55,680
Yeah, yes, but for yeah, so for a lot of what I

328
00:25:55,759 --> 00:26:00,519
do, type script either isn't really
I'm I'm sure I could add type script

329
00:26:00,680 --> 00:26:04,720
to WordPress. I'm not going to
go down that rabbit hole. That is

330
00:26:04,759 --> 00:26:08,279
not something I want to work out
how to do. Yeah, but for

331
00:26:08,359 --> 00:26:12,240
a lot of my stuff when I'm
building small static websites, so they they

332
00:26:12,279 --> 00:26:17,599
don't they're not going to change.
So building in type script is often just

333
00:26:17,680 --> 00:26:21,759
adding another dependency that I don't need. I liked where you think. Yeah,

334
00:26:21,799 --> 00:26:25,200
and when building from scratch, it
does often make things a little bit

335
00:26:25,200 --> 00:26:29,160
harder because from the start I don't
necessarily know everything. I don't know what

336
00:26:29,240 --> 00:26:32,599
type everything's going to be, I
don't know what properties everything is going to

337
00:26:32,680 --> 00:26:38,279
be. So when when I'm building
from scratch on things, that does make

338
00:26:38,319 --> 00:26:41,279
things a little bit harder. So
I use it in half of my work,

339
00:26:41,680 --> 00:26:45,839
but not so much in the other
half. At least you don't have

340
00:26:45,880 --> 00:26:51,519
that one right way scenario, like
different solutions for different problems. Yeah,

341
00:26:51,759 --> 00:26:55,599
yeah, So I've I've worked with
companies that do a one size fits all

342
00:26:55,880 --> 00:27:00,720
solution, and in my experience,
that never works. Like if you're trying

343
00:27:00,720 --> 00:27:06,119
to please everybody, you're going to
end up pleasing nobody. So instead,

344
00:27:06,920 --> 00:27:08,920
I'm regularly I put a tweeter out
the other day. So in the past

345
00:27:08,960 --> 00:27:15,119
couple of weeks, I've worked on
remix project, a view project, a

346
00:27:15,200 --> 00:27:18,640
word press project, and an asteroid
project. I'm regularly working across a whole

347
00:27:18,759 --> 00:27:26,400
lot of different things. And because
not everything everything fits, the different situations

348
00:27:26,400 --> 00:27:30,680
different right, right, But do
you see some common metaphors, like you

349
00:27:30,759 --> 00:27:36,519
know your multi lingual so you know
what's the same between all those different stacks,

350
00:27:37,640 --> 00:27:40,759
Well, between all those different stacks. For me, it was getting

351
00:27:40,759 --> 00:27:48,160
into the component mindset, and so
particularly the React and few space components is

352
00:27:48,160 --> 00:27:52,119
how everything was built out. And
that mindset was actually really great to bring

353
00:27:52,160 --> 00:27:59,759
across to WordPress because WordPress it's really
easy to have parts of things and pull

354
00:27:59,799 --> 00:28:04,279
it in PHP. So I actually
found that that got a lot easier and

355
00:28:04,319 --> 00:28:11,319
my code got a lot cleaner when
I started working in those components to be

356
00:28:11,400 --> 00:28:15,720
able to pull that stuff in fast
up. Interesting. One thing that I'm

357
00:28:15,759 --> 00:28:22,440
starting to see coming across which I
which I'm now wishing we had in React,

358
00:28:22,839 --> 00:28:29,720
was slots. So View and Astro
and Felt and a few others they've

359
00:28:29,759 --> 00:28:33,839
got slots. So rather than everything
just going into this one spot on the

360
00:28:33,880 --> 00:28:37,799
page, you can go, well, everything goes into this one spot.

361
00:28:37,839 --> 00:28:41,279
But I'm probably explaining slots really badly, but you can go, okay,

362
00:28:41,319 --> 00:28:44,880
well, this is also the stuff
that goes in the head out and this

363
00:28:44,960 --> 00:28:49,119
is the stuff that goes in the
foot up. So that has just been

364
00:28:49,160 --> 00:28:53,640
really useful for a whole lot of
times. And yeah, it's it's a

365
00:28:53,880 --> 00:28:57,960
it's an extension of a component model
that just yeah, everything goes in the

366
00:28:59,000 --> 00:29:03,079
right place. I like that.
Yeah, And so I had a bit

367
00:29:03,079 --> 00:29:06,519
of a look and I think there
are a couple of people going, oh,

368
00:29:06,559 --> 00:29:10,920
actually, we'd like to see this
and react somehow interesting. Yeah,

369
00:29:11,000 --> 00:29:15,160
because fundamentally it is a web component
thing, which is relatively agnostic, right,

370
00:29:15,240 --> 00:29:18,759
like that web components is not nothing
to do with any particular browser or

371
00:29:18,799 --> 00:29:22,559
any particular platform. Yeah. But
there's a whole lot of stuff that I'm

372
00:29:23,160 --> 00:29:26,400
not delving deep into. So I
spend a lot of time working on the

373
00:29:26,440 --> 00:29:32,680
front end. I'm sure some of
the backend developers that I work with would

374
00:29:32,720 --> 00:29:37,039
find a whole lot of other similarities
and differences, and they'd find a whole

375
00:29:37,039 --> 00:29:41,160
lot of other stuff that they really
love about working in each particular flavor of

376
00:29:41,279 --> 00:29:45,200
whatever we're using. Sure, and
I'm we interrupt for one moment for this

377
00:29:45,359 --> 00:29:51,119
very important message. Hey, Carlin
Richard Here. As you may have heard,

378
00:29:51,480 --> 00:29:56,799
NDC is back offering their incredible in
person conferences around the world, and

379
00:29:56,920 --> 00:30:00,440
we'd like to tell you about them. NDC Osle will be me twenty first

380
00:30:00,480 --> 00:30:03,839
through the twenty fifth. Go to
NDC Oslo dot com to register. NDC

381
00:30:04,000 --> 00:30:10,960
Copenhagen is happening August twenty seventh through
the thirty first. Go to NDC Copenhagen

382
00:30:11,079 --> 00:30:15,799
dot com for more information. NDC
Porto is happening October sixteenth through the twentieth.

383
00:30:17,000 --> 00:30:21,839
The early bird discount for ADC Porto
ends July twenty First go to dcporto

384
00:30:21,960 --> 00:30:26,079
dot com to register and check out
the full lineup of conferences at NDC Conferences

385
00:30:26,160 --> 00:30:33,400
dot com. And we're back.
It's Don Rocks, Richard Campbell. That's

386
00:30:33,400 --> 00:30:38,839
Carl Franklin Hey talking to her friend
Amy Kaepernick way over in Perth, other

387
00:30:38,880 --> 00:30:47,000
side of the world. Time is
literally lunchtime. W So she's looking at

388
00:30:47,079 --> 00:30:52,880
me drinking wine for breakfast? What's
wrong with me? That is no that

389
00:30:52,079 --> 00:30:56,759
I was actually just admiring. This
is the global world that we live in.

390
00:30:57,599 --> 00:31:02,599
Although I've actually I've stopped clarifying.
I'm the Perth in Western Australia,

391
00:31:02,759 --> 00:31:04,599
not the Perth in Tasmania, not
the Perth in Canada, and not the

392
00:31:04,640 --> 00:31:11,160
Perth in Scotland, the Perth Perth, the big one, the way out

393
00:31:11,200 --> 00:31:15,440
west Perth. Yeah we are,
I mean we are the Perth Perth.

394
00:31:15,559 --> 00:31:19,440
But I just keep discovering more of
them, like to just clarify, right,

395
00:31:21,000 --> 00:31:23,839
especially when I'm in the UK where
they do know about the Scotland Path.

396
00:31:25,119 --> 00:31:29,240
So there was an old time comedian
in World War Two time, Bob

397
00:31:29,279 --> 00:31:33,960
Hope he probably know I've heard of
him, but he always used to do

398
00:31:33,079 --> 00:31:38,000
GI tours and stuff, and he
would say, this is Bob here in

399
00:31:38,480 --> 00:31:44,519
city and then some joke that rhymes
with the city Hope. So I remember

400
00:31:44,599 --> 00:31:47,799
him. I'm saying, this is
Bob here in Perth to bring you mirth,

401
00:31:47,920 --> 00:31:52,559
Hope. It's not really funny,
but it reminded me of Bob.

402
00:31:52,559 --> 00:31:56,000
Yeah, I'm old ye. So
anyway, Yeah, you'd probably run out

403
00:31:56,000 --> 00:32:00,319
of rhymes for things at some point, right. Yeah. I love the

404
00:32:00,319 --> 00:32:05,200
way Ossie's they'll have put the you
know, everything ends with E. Let's

405
00:32:05,200 --> 00:32:09,759
have Breckie. You know what's that
breakfast? Oh breakfast? Yeah, brecky,

406
00:32:09,920 --> 00:32:14,240
Yeah that is breakfast. However,
that is a whole discussion. Um,

407
00:32:14,599 --> 00:32:17,279
some summer ends in I E and
summer ends. Yeah, it's double

408
00:32:17,319 --> 00:32:22,440
k y hey, which I only
discovered because I've always spelt it double k

409
00:32:22,759 --> 00:32:27,200
y and I discovered that my sister
actually spells it double k I E.

410
00:32:27,880 --> 00:32:31,640
So I'm not entirely sure how we've
come up with different spellings despite growing up

411
00:32:31,640 --> 00:32:35,799
in the same Households overlap into the
tech world. Do you say I'm going

412
00:32:35,880 --> 00:32:42,079
to get on a ZOOMI No,
but none of this explains how they call

413
00:32:42,200 --> 00:32:45,240
McDonald's mackers, Like where did that? Oh, yeah, yeah, I

414
00:32:45,319 --> 00:32:50,319
heard that. It's because we like
to shorten everything, so we don't have

415
00:32:50,359 --> 00:32:53,160
time to say McDonald's, it's macas, or actually it's come out to be

416
00:32:53,240 --> 00:32:57,240
Mackie D's. Now macas was too
long. I think there may be a

417
00:32:57,279 --> 00:33:01,079
Scottish thing the right, remember uneps
and daddies. Yeah, in Scotland,

418
00:33:01,759 --> 00:33:08,039
turnips and potatoes, nips and daddies. All of the sling is good fun.

419
00:33:08,640 --> 00:33:12,880
Yeah, let's let's dive back into
the topic. I did mention play

420
00:33:12,920 --> 00:33:15,400
right at the top of the show. How are you approaching web testing?

421
00:33:16,559 --> 00:33:22,599
So I spend a lot of time
focusing on testing from a front end in

422
00:33:22,720 --> 00:33:28,079
case people haven't already worked out that. I always bring things back to the

423
00:33:28,079 --> 00:33:32,160
front end. Not that testing the
back end isn't important, but there's a

424
00:33:32,279 --> 00:33:36,720
whole lot of people very passionate and
talking a lot about that, so I

425
00:33:36,839 --> 00:33:39,039
like to make sure that the front
end gets talk a little bit about as

426
00:33:39,039 --> 00:33:45,640
well. So probably, seeing as
you've mentioned Playwright, I do use I

427
00:33:45,680 --> 00:33:51,400
have been switching over to using Playwright. I was previously using Cyprus, but

428
00:33:52,039 --> 00:33:59,440
I switched to using Playwright. Actually, after speaking with Debbie in Oslo last

429
00:33:59,640 --> 00:34:02,440
year. She has been a great
evangelist for it. Yes, well she

430
00:34:02,519 --> 00:34:07,319
told me it would be easier and
she did not like that was that was

431
00:34:07,359 --> 00:34:09,639
basically the only the only I think. I think the reason why she's a

432
00:34:09,679 --> 00:34:14,840
good evangelist is because it's it's a
really easy sell. You just say it's

433
00:34:14,920 --> 00:34:19,320
easier to use and we go,
yeah, okay, I'm on board.

434
00:34:20,320 --> 00:34:24,920
So that is what I've been using. So I use Playwright for UI testing,

435
00:34:25,280 --> 00:34:30,960
so checking does the menu exist?
Can you click on things? Can

436
00:34:31,000 --> 00:34:36,639
you go here? Do these things? Are these things on the page and

437
00:34:36,840 --> 00:34:39,519
visible where I expect them to be? Can this form be filled out?

438
00:34:39,760 --> 00:34:45,119
Can I do this? So making
sure that people can still use the interface

439
00:34:45,920 --> 00:34:52,400
the way that the way that you
expect them too. They're expecting to Yeah,

440
00:34:52,440 --> 00:34:55,880
and how I mean always the question
is all testing has this problem,

441
00:34:55,880 --> 00:35:00,480
but I found web testing has it
worse that any change to a site break

442
00:35:00,519 --> 00:35:08,000
a lot of tests. Yeah,
so UINE testing is fairly relaxed. We're

443
00:35:08,039 --> 00:35:13,000
not actually caring too much about where
things are. It's just that they are

444
00:35:13,119 --> 00:35:19,679
visible on the page and that they
can be interacted with, so that look,

445
00:35:19,719 --> 00:35:24,639
if you're breaking that, then you've
probably broken something. So those kinds

446
00:35:24,679 --> 00:35:30,000
of things are a bit more relaxed. Some of the other testing I do,

447
00:35:30,079 --> 00:35:34,960
though, is visual regression testing,
which is kind of it's kind of

448
00:35:35,000 --> 00:35:38,639
like a GIT dip, but for
visual So they take a screenshot of what

449
00:35:38,679 --> 00:35:42,119
it looks like and then you make
a code change, and they take a

450
00:35:42,159 --> 00:35:49,480
screenshot and they compare pixel for pixel, and that one is a lot more

451
00:35:49,559 --> 00:35:53,559
likely to fail tests whenever you make
a code change, because there's because they're

452
00:35:53,559 --> 00:35:58,400
comparing pixel for pixel. There's so
many things like sometimes an image might not

453
00:35:58,440 --> 00:36:04,719
have loaded in as well, if
content has changed, it will fail.

454
00:36:04,840 --> 00:36:09,519
There's so many other things, and
so that one is a lot fussier about

455
00:36:10,519 --> 00:36:20,880
what has actually happened then then UINE
testing. So they both serve different purposes.

456
00:36:21,280 --> 00:36:22,400
So when I teach it, I
sort of go, we've got visual

457
00:36:22,400 --> 00:36:25,559
regression testing. And for a lot
of big companies, this is what they're

458
00:36:25,599 --> 00:36:30,199
doing because they need to know that
everything is pixel perfect. They need to

459
00:36:30,199 --> 00:36:36,280
know that everything still sits where where
it should do. Whereas then UIN testing

460
00:36:36,400 --> 00:36:38,440
suits a lot more people. They
go, I don't actually really need to

461
00:36:38,480 --> 00:36:43,400
know that the header is still exactly
fifty five pixels high. I just need

462
00:36:43,440 --> 00:36:45,480
to know that it's there and people
can click on the stuff in it great,

463
00:36:45,639 --> 00:36:50,000
that it's changed or changed or not. Yeah, you know there's two

464
00:36:50,039 --> 00:36:53,440
things that come to mind. Weren't
because I've used to verify a bit Snapchat

465
00:36:53,519 --> 00:37:00,320
testing Simon Crab's great tool Verify.
Yeah. The thing that I quickly earned

466
00:37:00,559 --> 00:37:02,880
is, you know, it's not
the end of the world when the test

467
00:37:02,960 --> 00:37:08,719
breaks. It's just another it's just
another way to develop. It's reactive rather

468
00:37:08,800 --> 00:37:15,039
than proactive. And developers don't like
reacting because the reactions that things we react

469
00:37:15,039 --> 00:37:20,400
to are exceptions, you know,
bugs, and so the natural predilection is

470
00:37:20,400 --> 00:37:22,639
for us to think, oh that
that test broke, Oh I did something

471
00:37:22,679 --> 00:37:27,000
wrong, or something's wrong right,
But it's just another way to develop.

472
00:37:27,280 --> 00:37:30,800
You just change the test, you
figure out what you need to exclude,

473
00:37:30,800 --> 00:37:32,239
and you're done and you just move
on. Yeah, and so I for

474
00:37:32,400 --> 00:37:38,440
doing things like visual regression testing that
those tests. Those tests fail a lot

475
00:37:38,760 --> 00:37:42,760
because you go through and you make
a change to the CSS and it fails,

476
00:37:42,760 --> 00:37:45,280
and it will fail, and you
go through and have a look and

477
00:37:45,280 --> 00:37:49,039
you go, yes, this is
what I expected. I change that I

478
00:37:49,159 --> 00:37:52,800
know it should look that way sorry, so that one is definitely getting used

479
00:37:52,800 --> 00:37:57,159
to doing that. But I've also
found that the visual regression testing is really

480
00:37:57,159 --> 00:38:00,519
great for times when i'd be doing
code cleanups and just going through and refactoring

481
00:38:00,559 --> 00:38:06,039
things. I am able to be
so much more ruthless in going through and

482
00:38:06,079 --> 00:38:08,920
clearing a whole lot of things up
because then I run the visual regression tests

483
00:38:08,960 --> 00:38:15,360
regularly, and if it fails,
if it tells me that something has changed,

484
00:38:15,159 --> 00:38:20,360
then I know that I've deleted code
that I was actually using. That's

485
00:38:20,360 --> 00:38:23,599
really useful for being able to go
through and do that, but at the

486
00:38:23,639 --> 00:38:28,239
minimum, these failed tests are telling
you where to look to see that these

487
00:38:28,320 --> 00:38:32,320
changes that have been made were intended
right. Yes, and for a lot

488
00:38:32,360 --> 00:38:37,800
of these, so like for visual
regression tests, if you're integrating this with

489
00:38:37,800 --> 00:38:44,159
your codebase, you've probably got tens, if not hundreds of screenshots being taken,

490
00:38:44,559 --> 00:38:45,920
so you're not having to go through
and tech everywhere. We look.

491
00:38:45,960 --> 00:38:52,159
We took two hundred screenshots and we
compared them, and these three are ones

492
00:38:52,199 --> 00:38:57,159
that have changed, So that definitely
makes it much easier. On top of

493
00:38:57,360 --> 00:39:01,000
UI testing and visual regression testing,
my other thing that I focus on which

494
00:39:01,320 --> 00:39:08,079
I talk about my talks and my
workshop is accessibility testing. Yeah. Yes,

495
00:39:08,719 --> 00:39:13,559
this is one of the other things
that I'm very passionate about and just

496
00:39:13,639 --> 00:39:19,280
going through and making sure that we're
testing things. And the thing is a

497
00:39:19,320 --> 00:39:28,320
lot of we talk a bit about
manual and automated accessibility testing, and a

498
00:39:28,519 --> 00:39:30,719
lot of it does have to be
done manually, and there is a fair

499
00:39:30,760 --> 00:39:37,119
bite of accessibility testing where if you're
doing it properly, we still recommend hiring

500
00:39:37,119 --> 00:39:40,039
somebody who knows what they're doing.
Like screen reader testing, we can go

501
00:39:40,079 --> 00:39:43,920
through and play around with screen readers, and I think it's really important for

502
00:39:43,960 --> 00:39:49,480
developers to play around with screen readers
and to actually understand what people are hearing

503
00:39:49,639 --> 00:39:53,800
when they're navigating through an application.
But if you've ever seen somebody using a

504
00:39:53,880 --> 00:40:00,639
screen reader who uses it every day, they use it very differently to how

505
00:40:00,079 --> 00:40:07,559
we use it occasionally, so it's
really important to do that properly. However,

506
00:40:07,679 --> 00:40:09,719
a lot of people take that with
well, I can't do it properly,

507
00:40:09,800 --> 00:40:16,280
therefore I'm not going to do it
at all, which is not the

508
00:40:16,320 --> 00:40:21,840
case. Every little thing that they
do makes a huge difference, and so

509
00:40:22,039 --> 00:40:24,400
like running automated tests. There's only
so much that they can catch, but

510
00:40:24,440 --> 00:40:29,840
a lot of that is literally just
linting and validating the college, making sure

511
00:40:29,880 --> 00:40:31,800
that you've actually done things, and
so that makes a huge difference, and

512
00:40:31,840 --> 00:40:37,039
then going through and manually testing things, going through and using it. Can

513
00:40:37,079 --> 00:40:40,280
you use it with a keyboard?
How does it sound with a screen reader?

514
00:40:40,920 --> 00:40:46,400
That kind of thing. That kind
of thing is actually really useful for

515
00:40:46,480 --> 00:40:52,239
us as developers to understand a little
bit more about how people are using what

516
00:40:52,280 --> 00:40:55,920
it is that we build. We
know how we use it. A lot

517
00:40:55,960 --> 00:41:01,599
of us are likely using a mouse
the keyboard to navigate through things, but

518
00:41:02,039 --> 00:41:07,880
it just helps to understand how people
are actually navigating around things and what the

519
00:41:07,920 --> 00:41:15,519
effects of how we're building on other
people. Because there's also there's Microsoft has

520
00:41:15,519 --> 00:41:21,800
a really great graphic where they go
through and talk about the various different types

521
00:41:21,800 --> 00:41:25,440
of people that are affected by whether
or not our stuff is accessible. Because

522
00:41:27,360 --> 00:41:32,679
we often think of permanent impairments,
so somebody who's missing a limb, somebody

523
00:41:32,679 --> 00:41:38,159
who's blind, somebody who's death,
but there are permanent, temporary, and

524
00:41:38,639 --> 00:41:45,159
situational impairments. So if you ever
tried to join a zoom call or listen

525
00:41:45,199 --> 00:41:49,960
to a video and you're in a
really loud place and you can't hear what's

526
00:41:50,000 --> 00:41:58,159
going on. That's a situational hearing
impairment. Parent who's holding a child,

527
00:41:58,719 --> 00:42:05,719
they only have access to one hand, which is a situational motion impairment.

528
00:42:06,400 --> 00:42:08,920
Yeah. So there's a whole lot
of other people that are affected, and

529
00:42:09,559 --> 00:42:15,519
it's often not until we become one
of those people, whether permanent, temporary,

530
00:42:15,599 --> 00:42:19,440
or situational impairment, that we realized
how much we benefit from it.

531
00:42:20,039 --> 00:42:22,639
So I had a friend who had
a really bad ear infection and she couldn't

532
00:42:22,679 --> 00:42:29,000
hear anything out of one ear for
a week or so, and so having

533
00:42:29,079 --> 00:42:35,880
captions on things made a huge difference. Yeah. Yeah, and just no

534
00:42:36,000 --> 00:42:38,800
substitute for once in a while using
captions or using any of those things that

535
00:42:38,880 --> 00:42:43,880
seeing how well they work and don't
work. Yeah. We did a show

536
00:42:44,119 --> 00:42:50,400
last year it was Courtney Hitman and
specifically got into screen readers extensively with her

537
00:42:50,719 --> 00:42:53,920
and a found out several different flavors. You know, it depends on the

538
00:42:53,960 --> 00:43:00,000
hardware, and there's only there's sort
of a standard set of things you can

539
00:43:00,159 --> 00:43:06,360
do, and it's it's in the
W three. The W three standards show

540
00:43:06,400 --> 00:43:08,920
pretty clearly this is the reliable part
of it, and there are good testing

541
00:43:08,960 --> 00:43:12,480
tools will just tell you this will
work with a screen reader, this won't.

542
00:43:12,960 --> 00:43:16,440
Yeah, And there's a lot of
great tables that people are putting together

543
00:43:16,679 --> 00:43:24,719
now which go through various different various
different approaches to building things or various different

544
00:43:24,760 --> 00:43:29,440
pat CML tags. They compare them
to all the screen readers and will then

545
00:43:29,480 --> 00:43:32,920
do a transcript of what so if
you don't have access to because I can

546
00:43:32,960 --> 00:43:36,440
test on a couple of different screen
readers, but then there's a bunch of

547
00:43:36,480 --> 00:43:40,119
Mac ones that I can't test on
right, and testing on mobile, and

548
00:43:40,199 --> 00:43:44,760
so being able to get these tables
where you can actually see okay, this

549
00:43:44,840 --> 00:43:50,079
is how it gets read out in
every different screen reader is really useful.

550
00:43:50,440 --> 00:43:53,360
You know, I noticed a mass
done that at least the client that I'm

551
00:43:53,440 --> 00:43:57,639
using it on the web client too. When you post an image, a

552
00:43:57,679 --> 00:44:00,679
little thing pumps over the image that
says, describe this image for people who

553
00:44:00,719 --> 00:44:06,639
can't see it. And even though
that you might describe what's going on in

554
00:44:06,679 --> 00:44:10,360
the picture a little bit in your
text, oftentimes I find that, no,

555
00:44:10,480 --> 00:44:15,519
it's not descriptive enough. You have
to be pretty explicit about it.

556
00:44:15,719 --> 00:44:23,320
But that got me thinking about some
of the AI tools and tools that exist

557
00:44:23,360 --> 00:44:29,039
out there that can read images in
real time and sort of explain them.

558
00:44:29,519 --> 00:44:36,400
And I wonder if screen readers are
that sophisticated these days, so that you

559
00:44:36,440 --> 00:44:39,639
know, when you're browsing a site
and it comes across a picture, it

560
00:44:39,679 --> 00:44:46,800
could explain in English what is in
that picture. I'm not an expert on

561
00:44:47,480 --> 00:44:53,199
this point, so I would I
don't think it can. However, I

562
00:44:53,199 --> 00:44:58,119
could be wrong. A lot of
it comes down to though, because there's

563
00:44:58,119 --> 00:45:00,760
been a lot of times that I've
gone I'd be really great if I could

564
00:45:00,800 --> 00:45:06,559
just auto generate a text alternative for
this image so that I don't have to

565
00:45:06,599 --> 00:45:12,400
go through and write it. But
a lot of the time what those technologies

566
00:45:12,440 --> 00:45:16,239
are missing is it's not actually what's
in the picture? What is the intent

567
00:45:16,639 --> 00:45:22,320
behind why I've added this picture?
And a lot of blog posts talk about

568
00:45:22,360 --> 00:45:29,480
describing also the emotion behind the picture. Now they're probably different, like if

569
00:45:29,519 --> 00:45:32,639
you if you've included a graphic of
like a chart or something, there's probably

570
00:45:32,679 --> 00:45:37,440
not too much emotion behind a profit
and lost chart from the last twelve months.

571
00:45:37,679 --> 00:45:42,960
I mean, well, actually there
might be, but actually the intent

572
00:45:43,280 --> 00:45:47,320
and why it's there. So it's
not just what's in the picture, it's

573
00:45:47,320 --> 00:45:52,280
what's in the picture that you've put
it in there for. And so I

574
00:45:52,320 --> 00:45:59,400
think until until we've got ais that
are able to understand why we've put it

575
00:45:59,440 --> 00:46:06,599
there and to interpret the emotion behind
the image as well, which I think

576
00:46:06,599 --> 00:46:12,440
we all know what happens when computers
learn emotion. Were that much closer to

577
00:46:12,480 --> 00:46:22,159
the robot uprising, the automated tools
definitely help, but for now, nothing

578
00:46:22,480 --> 00:46:28,000
yet, nothing can really beat actually
sitting down and doing abruptly. And so

579
00:46:28,039 --> 00:46:30,000
it's one of the things that I
do in my workshop is getting people to

580
00:46:30,119 --> 00:46:37,360
go through and write alternative text for
images and what's the intent behind it?

581
00:46:37,400 --> 00:46:44,159
Describe this, how would you describe
this image to somebody over the phone,

582
00:46:44,239 --> 00:46:50,320
and so actually sitting down and going
through and writing writing that description. What

583
00:46:50,519 --> 00:46:53,159
is it that they're seeing? And
a lot of it comes down to as

584
00:46:53,199 --> 00:46:57,519
well. There's been a lot of
people that have said that, you know,

585
00:46:57,599 --> 00:47:00,039
they come across images where there's no
text because people go, well,

586
00:47:00,039 --> 00:47:05,800
they're decorative. And I've had to
chat with a few people and they've said

587
00:47:05,800 --> 00:47:08,599
that they'd actually like to know,
like if people have logos and headers,

588
00:47:08,639 --> 00:47:12,639
a lot of people will not add
alt text if they just all they just

589
00:47:12,679 --> 00:47:15,679
say this is the logo for X
company. They actually want to know what

590
00:47:15,719 --> 00:47:20,000
this is. People have spent a
whole lot of time. Yeah, people

591
00:47:20,000 --> 00:47:23,880
have spent time building their logos and
how it reflects their company. They actually

592
00:47:23,960 --> 00:47:29,960
want to know what it looks like
and and describe it to somebody. So

593
00:47:30,320 --> 00:47:36,679
it really does make it. And
I'm a little bit but I don't always

594
00:47:36,719 --> 00:47:39,159
do this myself. I'm trying to
get better, but I do often have

595
00:47:39,280 --> 00:47:45,039
things flagging at me because I haven't
given a text alternative. But yeah,

596
00:47:45,159 --> 00:47:50,079
it's it really does make a difference
to go through and actually describe because if

597
00:47:51,159 --> 00:47:54,880
an image, if you don't bother
to describe an image for someone who can't

598
00:47:54,880 --> 00:48:00,639
see it, then image probably shouldn't
be there in the first place. Yeah,

599
00:48:00,679 --> 00:48:04,000
it's an interesting point, right that
this is all part and parcel of

600
00:48:04,519 --> 00:48:10,440
making a real usable website is recognizing
data image may not helping anyone. Yeah,

601
00:48:10,440 --> 00:48:15,119
it's an interesting add to all of
that that diversity gives a sort of

602
00:48:15,199 --> 00:48:23,679
better spectrum for building something something effective. Yeah, what else do we need

603
00:48:23,719 --> 00:48:29,039
to think about for the modern front
end. We've talked about testing, we've

604
00:48:29,079 --> 00:48:35,039
talked about accessibility, we've talked about
keeping code as simple as possible. So

605
00:48:35,079 --> 00:48:39,960
probably the last thing, which is
mainly tying the testing altogether and automating it,

606
00:48:40,079 --> 00:48:45,280
because as we've established, if something
isn't automated, there's a decent chance

607
00:48:45,320 --> 00:48:51,920
that we're not going to do it. So going through and running automated testing

608
00:48:51,960 --> 00:48:55,719
pipelines, which a lot of people
already have in the application, and he

609
00:48:55,840 --> 00:49:00,440
briefly talked about unit testing at the
start of the episode, and a lot

610
00:49:00,440 --> 00:49:06,199
of them are automated in the ci
CD tools. You've got GitHub actions or

611
00:49:06,199 --> 00:49:08,880
as a debops or all of the
other flavors of things. Are going through

612
00:49:08,880 --> 00:49:15,280
and running unit testing. But I've
worked on projects where the only way that

613
00:49:15,360 --> 00:49:21,199
I could check I submit a PR
for some front end changes, and the

614
00:49:21,239 --> 00:49:24,320
only way that I can actually see
what that looks like is to verge it

615
00:49:24,440 --> 00:49:30,960
into the main branch and see how
that builds out on the front end.

616
00:49:30,559 --> 00:49:35,000
So we basically have to go,
yes, I'm sure this code is good,

617
00:49:35,159 --> 00:49:38,199
let's merge it in and then just
hope that I haven't broken anything when

618
00:49:38,280 --> 00:49:44,599
it comes through. Yeah, a
lot of it involves actually adding in that

619
00:49:44,880 --> 00:49:50,239
automated testing pipeline as well, which
a lot of the problem behind that is

620
00:49:50,400 --> 00:49:55,000
you need a live URL that you
can run these tests on, so you

621
00:49:55,039 --> 00:50:00,000
actually need to have a deployed version
near the website that you can go through

622
00:50:00,079 --> 00:50:05,880
and run these tests on. So
part of when I teach this is going

623
00:50:05,880 --> 00:50:10,320
through and setting up a automated testing
pipeline for front end tests with a live

624
00:50:10,440 --> 00:50:15,119
version of the website on Gutharb action. So we go through, we run

625
00:50:15,840 --> 00:50:21,800
when you submit a PR, it
triggers to build what that would look like,

626
00:50:21,880 --> 00:50:23,679
and you can get a staging RL, and then going through and running

627
00:50:23,719 --> 00:50:30,239
those tests against that staging r and
setting it all up so that only if

628
00:50:30,239 --> 00:50:35,159
those tests pass are you allowed to
merge the changes in. So the same

629
00:50:35,199 --> 00:50:39,320
as a lot of pipelines are already
doing for their unit testing, but actually

630
00:50:39,360 --> 00:50:44,800
making sure that we're going through and
running that and that staging r L is

631
00:50:44,800 --> 00:50:49,639
often the sticker for a lot of
projects is if people's depending on where people

632
00:50:49,639 --> 00:50:52,960
are hosting it and how it's set
up, whether or not they're able to

633
00:50:53,000 --> 00:51:00,039
build a staging version of it.
Which there's a lot of products I use

634
00:51:01,039 --> 00:51:07,280
Netlifi, which is really amazing.
They do what's called a deploy preview,

635
00:51:07,400 --> 00:51:12,719
and so yeah, I can get
a unique I think I can pretty much

636
00:51:12,719 --> 00:51:19,480
get a unique UIL for every single
commit I have on my website. Every

637
00:51:19,480 --> 00:51:23,719
single code commit has its own version
of this is exactly how the website looked

638
00:51:23,960 --> 00:51:28,880
at that right time, and so
making sure that we're actually setting that up

639
00:51:29,599 --> 00:51:32,280
so that people can test things properly
before the codes getting merged down. Yeah,

640
00:51:32,519 --> 00:51:36,239
I mean, isn't this something that's
just built into Azure two with the

641
00:51:36,400 --> 00:51:39,440
different slots for app service and things. Do you need a separate tool to

642
00:51:39,480 --> 00:51:45,480
really do this? Well, not
necessarily so Yeah, it's definitely the features

643
00:51:45,519 --> 00:51:47,639
definitely there in a whole lot of
places. It's just whether people have actually

644
00:51:47,760 --> 00:51:52,719
set that up and so learning to
use it. Yeah, people are learning

645
00:51:52,719 --> 00:51:57,559
to use it and setting it up. They're just often not thinking about that.

646
00:51:57,679 --> 00:52:01,280
People are just used to running things
locally on their computer or their focus.

647
00:52:01,400 --> 00:52:05,480
And again a lot of this comes
back to people are thinking about the

648
00:52:06,320 --> 00:52:08,559
back end tests, but not so
much the front end test, so they

649
00:52:08,599 --> 00:52:13,920
haven't sort of had a thought about
doing that. So it's it's just about

650
00:52:13,960 --> 00:52:19,599
having a look at how things can
be done and getting through and setting them

651
00:52:19,679 --> 00:52:22,360
up. And there are a lot
of There are a lot of different features

652
00:52:22,400 --> 00:52:25,599
where you can go through. No
as your static web apps has got some

653
00:52:25,679 --> 00:52:32,159
really great setting up different versions.
There's an AWS forget the name of it

654
00:52:32,199 --> 00:52:38,159
now. AWS has a really great
app hosting product that does a lot of

655
00:52:38,159 --> 00:52:40,920
this as well. There's a lot
of great options out there. I just

656
00:52:42,000 --> 00:52:47,400
learned that you can deploy a static
website in an AWS bucket and get an

657
00:52:47,559 --> 00:52:52,119
HTTPS linked to it and serve it
right out of the bucket, which is

658
00:52:52,159 --> 00:53:00,519
probably the cheapest way to serve outside
on the planet. I would about that

659
00:53:00,559 --> 00:53:06,039
with. You can do that on
netlify and it's free. Okay, so

660
00:53:06,480 --> 00:53:08,480
yeah, you can't get much unless
you can find something cheaper than Yeah,

661
00:53:08,599 --> 00:53:13,920
unless you can find someone that will
pay you for then to host your website.

662
00:53:14,400 --> 00:53:17,199
Sure for testing purposes. Yeah,
okay, that's something. Yeah,

663
00:53:17,280 --> 00:53:21,599
but I mean you make the point, right, Look, spend a little

664
00:53:21,599 --> 00:53:27,199
time, look at a few of
these tools and create you create this equivalent

665
00:53:27,239 --> 00:53:31,280
to production environment. It's not production, so production is still running while you're

666
00:53:31,320 --> 00:53:37,039
really exercising the update to the site. Yeah, and like it may not

667
00:53:37,119 --> 00:53:39,039
even be looking at these tools,
just looking at the tool you've got,

668
00:53:39,079 --> 00:53:43,880
and is there a way that you
can do things like you've probably currently got

669
00:53:44,199 --> 00:53:46,880
Um, I know I've I've worked
with teams where they've got a production and

670
00:53:46,960 --> 00:53:52,559
a WRL, So it's just about
setting up other staging rls. So in

671
00:53:52,599 --> 00:53:55,920
between those two, Yeah, something
in between, or if you've got automated

672
00:53:57,000 --> 00:54:00,199
DNAs, whether or not you can
set up or whether you just have a

673
00:54:00,239 --> 00:54:05,239
couple of staging domains that you can
just flick through which one you're using.

674
00:54:05,280 --> 00:54:08,400
Brief you've got a couple of prs
open, so just going through and probably

675
00:54:08,400 --> 00:54:12,239
first looking at the tool you've got, how can you do it there?

676
00:54:13,400 --> 00:54:17,559
And yeah, the then setting it
up and you've already got the build working

677
00:54:17,559 --> 00:54:22,280
in that tool as well, so
it's just about adding an initial step to

678
00:54:22,320 --> 00:54:25,559
there. We were building sites that
were high enough load that performance profiling was

679
00:54:25,599 --> 00:54:29,599
important. Yeah, not so much
that you had to have the same performance

680
00:54:29,639 --> 00:54:32,119
as the last version, but that
we had to know yeah, because if

681
00:54:32,119 --> 00:54:35,840
it was going to any more resources, we could allocate them, but we

682
00:54:35,920 --> 00:54:39,480
need to know, yeah, and
so that's why it's really important to make

683
00:54:39,519 --> 00:54:44,639
sure that we're running these things on
the same service where we're running the production

684
00:54:44,679 --> 00:54:47,760
website. Because yeah, okay,
it's great you can run the website locally

685
00:54:47,760 --> 00:54:52,840
on your computer, but that's not
the same as running it on the website.

686
00:54:53,320 --> 00:54:55,800
And we've we've all heard you know, well, you know it works

687
00:54:55,840 --> 00:55:00,159
on Dave's computer. Why isn't it
working in production Dave? Yeah, it's

688
00:55:00,159 --> 00:55:05,599
always Dave's Dave. It's yeah,
Dave. I don't know. I don't

689
00:55:05,639 --> 00:55:10,639
know why Dave always gets called out
in my examples such a benign Yeah,

690
00:55:12,239 --> 00:55:15,400
we could be angry, you know, it's just the dude. Yeah.

691
00:55:15,519 --> 00:55:20,039
I've got a blog post as well
on how I set up the automated build

692
00:55:20,159 --> 00:55:23,920
tests process and then build only if
her passes. So if anyone wanted to

693
00:55:23,960 --> 00:55:27,360
find a little bit more so,
that's running on gid have actions too,

694
00:55:27,480 --> 00:55:32,840
if any Um, speaking of links
you mentioned, was it Netify or net

695
00:55:32,880 --> 00:55:37,159
left fi because they're two different things. Net leff I n E T l

696
00:55:37,360 --> 00:55:42,719
I F Y got it? Yeah, okay, good, So what's next

697
00:55:42,719 --> 00:55:46,480
for you? Amy? What's in
your inbox? Um? A whole bunch

698
00:55:46,519 --> 00:55:52,280
of emails because I haven't got to
them, literally literally in my inbox,

699
00:55:52,280 --> 00:55:55,480
although I'm pretty sure ninety percent of
them is spam. I think there's at

700
00:55:55,519 --> 00:56:00,480
least three saying I won the lottery
or someone died and left me million dollars.

701
00:56:00,639 --> 00:56:02,679
Okay, and who's the doggs?
They just walked in behind you.

702
00:56:05,480 --> 00:56:12,000
That's that's my dog remy short for
Ramus. I think he's decided. It's

703
00:56:12,039 --> 00:56:15,119
the point in the morning where he
wants to go outside, but he can

704
00:56:15,239 --> 00:56:20,119
very a little bit longer. Well, we're just about done, so yeah,

705
00:56:20,199 --> 00:56:22,360
thank you so much. He can
wait. Yeah, So, thank

706
00:56:22,360 --> 00:56:24,159
you so much for spending this time
with us, and it's always good to

707
00:56:24,159 --> 00:56:30,519
talk to you. Thanks was it
was good to chat with you both as

708
00:56:30,559 --> 00:56:35,159
well. And I'm I'm sure I
will see you in person at some point

709
00:56:35,239 --> 00:56:39,119
this year at the various events all
over the world. Probably one of those

710
00:56:39,159 --> 00:56:43,320
events. Yeah, all right,
thanks, yeah, and we'll talk to

711
00:56:43,360 --> 00:57:08,639
you next time on dot net rocks. Dot net Rocks is brought to you

712
00:57:08,679 --> 00:57:15,000
by Franklin's Net and produced by Pop
Studios, a full service audio, video

713
00:57:15,039 --> 00:57:20,000
and post production facility located physically in
New London, Connecticut, and of course

714
00:57:20,039 --> 00:57:25,199
in the cloud online at pwop dot
com. Visit our website at dt n

715
00:57:25,239 --> 00:57:31,320
et r ocks dot com for RSS
feeds, downloads, mobile apps, comments,

716
00:57:31,639 --> 00:57:36,760
and access to the full archives going
back to show number one, recorded

717
00:57:36,800 --> 00:57:39,719
in September two thousand and two.
And make sure you check out our sponsors.

718
00:57:39,880 --> 00:58:01,000
They keep us in business. Now
go write some code CE next time. Recorded b
