WEBVTT

1
00:00:05.200 --> 00:00:09.560
Hey folks, welcome back to another
episode of JavaScript Jabber. This week,

2
00:00:09.560 --> 00:00:13.919
on our panel, we have Dan
Shapier. Hello from a warm and sunny

3
00:00:13.960 --> 00:00:19.600
Tel Aviv. I'm Charles max Wood
from a cold and rainy Utah from top

4
00:00:19.679 --> 00:00:22.839
end Devs. And we have a
special guest this week that is Bruce Larson.

5
00:00:23.559 --> 00:00:26.039
How did you do it by the
show? Yeah, thank you.

6
00:00:26.239 --> 00:00:31.719
I'm here from Birmingham, UK,
and today we're celebrating our annual my word,

7
00:00:31.760 --> 00:00:36.759
it's not raining day. I was
gonna ask how often that happens,

8
00:00:36.759 --> 00:00:40.520
but you said annual, so I
get the picture. You want to just

9
00:00:40.600 --> 00:00:43.119
remind people who you are. I'm
pretty sure we've had you on the show

10
00:00:43.159 --> 00:00:46.640
before, but you know, I
don't remember what we talked about last time,

11
00:00:46.719 --> 00:00:51.399
and so for sure, yes,
I'm an old colleague of Dan some

12
00:00:51.560 --> 00:00:57.679
when we both worked at Wicks,
which is quite a while ago now I

13
00:00:57.719 --> 00:01:04.040
have been. I was in development
in the late eighties and then dropped out

14
00:01:04.040 --> 00:01:07.239
to travel the world and stuff.
Got into the World Wide Web because I

15
00:01:07.280 --> 00:01:12.959
figured it looked quite cool when I
was a primary school teacher in Thailand,

16
00:01:14.079 --> 00:01:22.200
and then came back and got into
web tech, so started mostly hassling people

17
00:01:22.359 --> 00:01:26.680
about specifications, you know, trying
to build things and saying this spec is

18
00:01:26.719 --> 00:01:30.799
incomprehensible, and eventually people got tired
of me, so they had changed a

19
00:01:30.840 --> 00:01:38.840
spec and accessibility, you know,
making sure that your stuff works for people

20
00:01:38.879 --> 00:01:48.400
with disabilities because it's important. And
also performance. I'm not a performance nerd,

21
00:01:48.439 --> 00:01:56.159
and I don't know every next step
to implement crud Rum, Rocks,

22
00:01:56.280 --> 00:02:00.159
Crooks stuff that Dan knows. But
having spent and a great deal of my

23
00:02:00.239 --> 00:02:07.519
time in Asia working and traveling and
living, I know how it feels to

24
00:02:07.560 --> 00:02:13.599
have a crappy fifty dollars Android device
on a terribly constrained network and watch the

25
00:02:14.439 --> 00:02:19.759
loading spinner of Doom just circle around
when you're just trying to find out if

26
00:02:19.759 --> 00:02:23.560
you've missed your train or if it
should be on the next platform. So

27
00:02:23.800 --> 00:02:27.520
these are things that matter to me. And I was here last time.

28
00:02:27.560 --> 00:02:31.639
I guess about twelve months ago,
but who knows. I'm close to one

29
00:02:31.719 --> 00:02:37.400
hundred and tempest fugit, so it
could have been three weeks ago or ten

30
00:02:37.479 --> 00:02:43.159
years ago. But I was here
talking about some of the advocacy that I've

31
00:02:43.199 --> 00:02:49.159
been doing, along with a dozen
other developers across the globe. Just normal

32
00:02:49.199 --> 00:02:57.960
developers to try to make sure there's
better browser competition on the mobile duopoly I

33
00:02:58.240 --> 00:03:05.080
Android and iOS. With a group
called Open Web Advocacy, we've had quite

34
00:03:05.120 --> 00:03:12.879
a lot of success, or we
have contributed to the success of getting legislation

35
00:03:13.159 --> 00:03:23.280
passed in Australia, most recently Japan, most notably the European Union basically prohibiting

36
00:03:24.280 --> 00:03:34.960
Apple from only allowing Safari or its
WebKit view based browsers on iOS. The

37
00:03:35.039 --> 00:03:43.919
regulators have finally agreed with US and
other interested co lobbying partners. If you

38
00:03:44.120 --> 00:03:49.639
like that, it's actually holding the
development of the web back if people can't

39
00:03:49.759 --> 00:03:57.240
use fire full fat Firefox with Gecko
inside, or full fat Chrome Slash Vivaldi

40
00:03:57.360 --> 00:04:03.879
Slash Opera Slash Brave, Slash Edge
with Chromium inside. And it's been really

41
00:04:03.960 --> 00:04:14.479
really eye opening watching Apple squirm around
and make make themselves look pretty silly actually

42
00:04:14.800 --> 00:04:25.560
trying to evade regulation. It's been
very noticeable that the traditionally highly highly pro

43
00:04:25.680 --> 00:04:32.240
Apple press have become more and more
frustrated or less willing to simply parrot Apple's

44
00:04:33.639 --> 00:04:38.920
party line if you will. So
for example, here in the EU,

45
00:04:39.120 --> 00:04:42.519
we here in the EU, I'm
in the UK, so no longer in

46
00:04:42.560 --> 00:04:46.800
the EU. But in the EU
when the Digital Markets Act came into force,

47
00:04:47.639 --> 00:04:53.759
Apple tried to evade regulation by saying, well, you can't regulate Safari

48
00:04:53.839 --> 00:04:58.879
because Safari on iOS is different from
Safari on macOS, which is different from

49
00:04:59.319 --> 00:05:06.199
Safari on iPad ours. And the
EU decline to uh, decline to believe

50
00:05:06.319 --> 00:05:11.639
them, pointing out that they're in
their own marketing materials. Apple says,

51
00:05:12.079 --> 00:05:19.360
three devices, one Safari. Oh
but but before before we go there,

52
00:05:19.399 --> 00:05:24.879
and before we dive so deeply into
the technicalities, I'd like to pull us

53
00:05:24.959 --> 00:05:29.680
back a little bit because I want
to relate something that I encounter very often

54
00:05:29.800 --> 00:05:34.439
with with actual web developers. So
obviously it's it's even you know, quote

55
00:05:34.519 --> 00:05:40.000
unquote worse when you're talking to lay
people. And it's the fact that when

56
00:05:40.040 --> 00:05:46.160
I say to web developers that you
only have Safari on iOS, many times

57
00:05:46.199 --> 00:05:49.480
I hear a response like, what
do you mean? That's absolutely not true.

58
00:05:49.560 --> 00:05:55.680
I'm using Chrome on my iOS device, So what are you talking about?

59
00:05:56.639 --> 00:06:01.000
So maybe you can clarify why it
is that we insist on the fact

60
00:06:01.040 --> 00:06:06.920
that it's actually Safari and not really
grong. Sure, Dan, Yeah,

61
00:06:06.959 --> 00:06:14.519
Well, the clarification of why it
is You would have to ask Tim Cook

62
00:06:14.759 --> 00:06:19.959
about that. The reason we know
it is is because the App Store rules

63
00:06:20.160 --> 00:06:27.079
Apples app Store rules say any app, and of course a browser is an

64
00:06:27.160 --> 00:06:33.839
app. Any app that can browse
the web must use Apple's WebKit view,

65
00:06:34.680 --> 00:06:42.120
So you can't even use your own
fork of webkits or a newer version of

66
00:06:42.199 --> 00:06:49.639
WebKit. It's the WebKit view the
Apple ships inside the I think that every

67
00:06:49.680 --> 00:06:57.040
browser must use as a rendering engine. And similarly, anything that can execute

68
00:06:57.160 --> 00:07:02.279
javascripts in an app must use the
analogous webkits. I forget its name,

69
00:07:02.319 --> 00:07:10.560
but thank you. Yes, Apple
itself doesn't have to do this, but

70
00:07:10.680 --> 00:07:15.319
it requires it of anybody who ships
an app that they want to put in

71
00:07:15.360 --> 00:07:20.800
the App Store. Why this should
be? Apple will tell you it's for

72
00:07:20.839 --> 00:07:29.160
your comfort and security, I would
say, and this is purely speculation because

73
00:07:29.240 --> 00:07:33.079
Tim Cook hasn't sent me a Christmas
card for like years now. Oh what

74
00:07:33.199 --> 00:07:39.439
a jerk. I know, I
haven't had a Valentine's cards from the Safari

75
00:07:39.519 --> 00:07:45.519
team this year. But I would
say it's very simple. If you could

76
00:07:45.639 --> 00:07:51.519
have Gecko or Blink, which is
inside Chromium, inside your app, then

77
00:07:51.519 --> 00:07:57.319
it would have access to a lot
more device, APIs, et cetera,

78
00:07:58.199 --> 00:08:03.000
then you can access and therefore you
would be able to ship a web app

79
00:08:03.399 --> 00:08:13.879
that was feature equal with a native
single platform app that goes in the iOS

80
00:08:13.120 --> 00:08:18.199
app Store, for which Apple can
extract a thirty percent rent. Simple as

81
00:08:18.199 --> 00:08:24.199
that, it seems to me.
And if I were you know, if

82
00:08:24.199 --> 00:08:31.440
I were tim Apple and richer than
Creases but still demanding more money, I

83
00:08:31.480 --> 00:08:35.720
can see the logic in it.
But the trouble is, as it's really,

84
00:08:35.759 --> 00:08:43.759
it's really inhibiting development of the cutting
edge web apps, because if you

85
00:08:43.759 --> 00:08:50.159
could just ship one progressive web app
that worked on Android, worked on Chrome

86
00:08:50.240 --> 00:08:54.600
OS, worked on mac Os Desktop, worked on Windows, worked on Linux,

87
00:08:54.679 --> 00:09:01.039
and worked on iOS, it would
reduce development time a great deal.

88
00:09:01.759 --> 00:09:03.679
You know, it might not be
quicker to develop, but it's a lot

89
00:09:03.759 --> 00:09:11.879
quicker to ship out upgrades. You're
not having to muck about with variant code

90
00:09:11.919 --> 00:09:16.080
bases and have separate testing teams.
But of course that would mean that it

91
00:09:16.080 --> 00:09:22.320
would be much more difficult for Apple
to extract about thirty And of course,

92
00:09:22.360 --> 00:09:28.639
the vision, the their their funny
ar goggle things are not flying off the

93
00:09:28.679 --> 00:09:37.519
shelves. iPhone sales are down.
I don't know how much they have are

94
00:09:37.559 --> 00:09:43.759
in how much they have to grovel
to their shareholders, but they have bills

95
00:09:43.799 --> 00:09:50.080
to pay, and makes sense they
would be unwilling to relinquish the billions of

96
00:09:50.159 --> 00:09:54.879
dollars they get every year from this
thirty percent rent extraction that they charge for

97
00:09:54.960 --> 00:10:01.080
people to put an app in the
app store. So mentioned progressive web apps.

98
00:10:01.840 --> 00:10:07.240
We've had people on our show to
talk about this, obviously. Alex

99
00:10:07.360 --> 00:10:13.200
Russell, for example, I think
you've never Yeah, you deny any knowledge,

100
00:10:13.440 --> 00:10:18.080
as I recall, he actually he
and his deer and his partner I

101
00:10:18.120 --> 00:10:22.440
forget your name from the Francis exactly. I think they both coined the term

102
00:10:22.480 --> 00:10:28.399
together. Maybe it's worthwhile explaining what
progressive web apps are in case, because

103
00:10:28.600 --> 00:10:33.679
they are, you know, thanks
to Apple, they're not taking off as

104
00:10:33.720 --> 00:10:37.080
they should have, So maybe it's
worthwhile to remind people what they actually are

105
00:10:37.120 --> 00:10:41.519
and what they're missing out on.
For sure. Yeah, a progressive web

106
00:10:41.519 --> 00:10:46.039
app it's a term. It's an
umbrella term. It's like you know,

107
00:10:46.960 --> 00:10:54.039
ajax. It's a useful marketing term
to describe a suite of different technologies working

108
00:10:54.039 --> 00:11:01.879
together. Years ago, Opera and
Mozilla and Google got together and we all

109
00:11:01.919 --> 00:11:11.080
had similar similar ways of being able
to use web technologies to make what looked

110
00:11:11.080 --> 00:11:18.120
to be a desktop app, but
it was chromeless and installable on desktop,

111
00:11:18.240 --> 00:11:24.080
but they were called widgets. A
feller called Marcus Casseros, who worked for

112
00:11:24.080 --> 00:11:28.720
Opera at the time now works at
Apple, specified them in the W three

113
00:11:28.840 --> 00:11:31.919
C, but they didn't really take
off simply because there weren't that many device

114
00:11:33.000 --> 00:11:37.559
APIs they could hook into. Just
a comment though you met, you said

115
00:11:37.639 --> 00:11:41.039
Chrome less, just to emphasize that
it's not about not being the Chrome browser.

116
00:11:43.200 --> 00:11:46.919
You. Yeah, you just get
a square box like a WebView effectively.

117
00:11:46.080 --> 00:11:50.240
Yeah, you don't have so when
you're talking about Chrome, you're talking

118
00:11:50.240 --> 00:11:54.759
about like the search bar or the
four bar, yeah, all that stuff.

119
00:11:54.840 --> 00:11:58.879
Okay, yeah, yeah, we're
just talking like a window effectively,

120
00:11:58.919 --> 00:12:03.360
like an electron app or a web
view. And that's a good way to

121
00:12:03.360 --> 00:12:05.919
put it. Yeah. Yeah.
And then devices, we got more and

122
00:12:05.960 --> 00:12:09.519
more device APIs. Gr Location was
the first, and you know, they've

123
00:12:09.559 --> 00:12:16.240
got loads of them now. Some
are controversial, like web USB, Some

124
00:12:16.320 --> 00:12:22.639
are not controversial, like the Accelerometers
project. FUGU I think is the project

125
00:12:22.639 --> 00:12:28.559
that brought a lot of these APIs
to the forefront. It did although I

126
00:12:28.600 --> 00:12:31.080
want to give a shout out to
Firefox OS, which pioneered a lot of

127
00:12:31.120 --> 00:12:37.159
them. They aren't necessarily now standardizing
the format that Firefox OS did them,

128
00:12:37.200 --> 00:12:43.639
but Firefox at Firefox OS do a
lot of the work on Lamented Firefox will

129
00:12:43.679 --> 00:12:50.360
still exist and going great guns in
India and under the name of Chios.

130
00:12:50.519 --> 00:12:54.240
Yeah, I think it's the second
biggest operating mobile operating system in India.

131
00:12:56.279 --> 00:13:01.120
But anyway, I digress. So
a progressive web app is a actually a

132
00:13:01.159 --> 00:13:05.960
website plus plus it is a webpage
just made of htmlc SS, javascripts,

133
00:13:07.039 --> 00:13:13.080
SVG. It has a manifest file
which gives it a long name, a

134
00:13:13.120 --> 00:13:16.720
short name that would show you know
if you installed it on your home screen,

135
00:13:16.879 --> 00:13:24.000
various different icons you know what obviously
iOS, Android, the late Lamented

136
00:13:24.039 --> 00:13:30.360
Windows Phone have they have different icon
sizes and formats. And then with a

137
00:13:30.399 --> 00:13:37.080
service worker, you can basically have
a web app a website that when a

138
00:13:37.159 --> 00:13:43.399
PWA a where browser goes to,
the browser can say hey, there's a

139
00:13:43.440 --> 00:13:46.519
manifest there's a service worker, and
it can say to the user do you

140
00:13:46.519 --> 00:13:50.639
want to install this to your home
screen? The user goes yep, and

141
00:13:50.679 --> 00:13:56.120
then it becomes you know, a
nice circular icon on your home screen that

142
00:13:56.200 --> 00:14:01.720
you can tickle into life with a
magic called twitch of your digit. Just

143
00:14:01.840 --> 00:14:07.080
like any other app, it fires
up full screen, it can work offline

144
00:14:07.120 --> 00:14:11.799
with a correctly written service worker,
and to all intents and purposes, it's

145
00:14:11.799 --> 00:14:24.639
in this indistinguishable from a single platform
Android iOS app. But of course Apple

146
00:14:24.240 --> 00:14:31.320
don't really like that because there's no
way to monetize it. If Bruce Lawson

147
00:14:31.360 --> 00:14:37.000
dot co dot UK wanted to have
a PWA and Dan went there in his

148
00:14:37.039 --> 00:14:41.240
Android device and it would his device
would say I wouldn't do any work.

149
00:14:41.279 --> 00:14:43.840
His device would go, hey,
this is installable. Do you want to

150
00:14:43.840 --> 00:14:50.440
install it? He can. There's
no app store, gatekeeper intermediary there.

151
00:14:52.559 --> 00:15:00.279
Apple would argue that that's bad because
something's being installed onto your device. They

152
00:15:00.360 --> 00:15:05.120
haven't scanned it for security, they
haven't scanned it for viruses, they haven't

153
00:15:05.159 --> 00:15:11.879
scanned it to make sure it doesn't
contravene. Whichever crackpot puritan wave of moral

154
00:15:11.960 --> 00:15:18.799
panic is sweeping Coupertino at this very
moment. I would counter that and say

155
00:15:20.200 --> 00:15:28.320
the web has existed for twenty five
years. Browsers are really really damn good

156
00:15:28.679 --> 00:15:37.240
at sandboxing. In fact in the
I think it was in something that Apple

157
00:15:37.360 --> 00:15:41.759
submitted to the UK Competition of Markets
Authority, whom we've also been briefing.

158
00:15:43.360 --> 00:15:52.679
Apple admitted that browsers have a sandbox
quote an order of magnitude more secure than

159
00:15:52.720 --> 00:15:58.399
that of the App Store, and
we've seen at this very moment there are

160
00:15:58.279 --> 00:16:07.279
sanctions busting Russian bank apps in the
app Store. Their curation is not so

161
00:16:07.440 --> 00:16:11.840
great. I would argue that there
are way too many identical fart apps in

162
00:16:11.919 --> 00:16:18.679
the App Store. I don't know. I mean, I'm an English guy.

163
00:16:18.799 --> 00:16:25.639
So far I am currently fantastic.
I have teenagers and it's funny.

164
00:16:26.320 --> 00:16:30.559
It is funny, but I don't
think you need more than five hundred million

165
00:16:30.600 --> 00:16:34.519
of them, or however many there
are. I suppose I'm saying that I

166
00:16:34.559 --> 00:16:40.720
don't. I personally don't buy Apples
arguments that the world ohsen thirty percent of

167
00:16:40.759 --> 00:16:48.399
the cost price of an app for
their fantastic extra security and curation. I'm

168
00:16:48.399 --> 00:16:55.000
a grown up. Web Browsers are
brilliant and have been brilliant for ages a

169
00:16:55.519 --> 00:17:00.399
sandboxing tabs from each other, the
os away from rogue websites, because there's

170
00:17:00.399 --> 00:17:07.480
been rogue websites since since tim Bernersley
rode a stegosaurus across the Earth. So

171
00:17:08.880 --> 00:17:15.839
if people want to do this,
I'm comfortable with it. However, the

172
00:17:15.160 --> 00:17:19.960
men in Coopertino and graysuits, they
know better than me or you or anybody

173
00:17:19.960 --> 00:17:25.039
else in the world, and the
prohibit I just wanted to mention that from

174
00:17:25.039 --> 00:17:32.799
my perspective, the big three features
the progressive web apps ideally provide that make

175
00:17:33.200 --> 00:17:38.079
the most significant difference are the fact
that a that as you mentioned, you

176
00:17:38.200 --> 00:17:42.559
can it automatically can add an icon
to the home screen. I mean,

177
00:17:42.640 --> 00:17:47.920
you can add icon to the home
screen effectively for any web page, but

178
00:17:48.039 --> 00:17:55.519
it's a very manual and somewhat convoluted
process and most users, certainly my mother

179
00:17:56.160 --> 00:18:00.440
doesn't know how to do it,
so having it automatically suggests it makes all

180
00:18:00.440 --> 00:18:03.680
the difference in the world. The
other one is, as you mentioned,

181
00:18:03.799 --> 00:18:08.480
is the fact that it's chromeless,
that it covers the entire screen. That's

182
00:18:08.680 --> 00:18:15.039
really important when you're trying to create
an actual app like experience. And the

183
00:18:15.119 --> 00:18:22.000
final one is not push notifications.
It would you know, like without the

184
00:18:22.039 --> 00:18:26.279
ability to have push notifications. That's
like a deal breaker for a lot of

185
00:18:26.759 --> 00:18:33.240
organizations that want to have an app
like presence on a mobile device. There

186
00:18:33.240 --> 00:18:36.480
are obviously other features as well,
but those are the big three from my

187
00:18:36.599 --> 00:18:45.519
perspective, and technically they're totally doable. Google have done them on the Android

188
00:18:45.680 --> 00:18:48.480
phone. I mean, you know, they work, their progressive web apps

189
00:18:48.519 --> 00:18:56.440
work on Android. Apple has always
managed to break at least one of these

190
00:18:56.519 --> 00:19:00.359
features, Like it's sort of like
a sort of militia compliance in a sense.

191
00:19:02.279 --> 00:19:06.559
They kind of work, and then
they stop working, and then they

192
00:19:07.640 --> 00:19:11.319
work again, but some other one
that used to work suddenly stops working.

193
00:19:11.960 --> 00:19:15.200
So it's it's you can't really seem
to get all three of them to properly

194
00:19:15.279 --> 00:19:22.680
work on the iPhone. This is
correct, and the weird well, the

195
00:19:22.759 --> 00:19:27.000
sad thing is is that Apple have
been getting much better with this. The

196
00:19:27.039 --> 00:19:32.920
WebKit team, who do a great
job, and I friends in the WebKit

197
00:19:33.000 --> 00:19:37.039
team, and I cannot believe for
an instant that anybody works in WebKit thinks

198
00:19:37.480 --> 00:19:44.839
I don't want my browser to be
the best in the world. But even

199
00:19:44.960 --> 00:19:48.240
you two gentlemen at the dizzy and
pinnacle of your careers, you know,

200
00:19:48.400 --> 00:19:56.839
we've all had managers that we've had
to take orders from. But recently Apple

201
00:19:56.039 --> 00:20:03.079
implemented web push it's not per effect. But you know, none of we

202
00:20:03.200 --> 00:20:07.240
three have ever had a bug,
but there are developers who occasionally have written

203
00:20:07.279 --> 00:20:14.039
bugs and corrected them later. That's
normal in software developments. The Marcos Cacera

204
00:20:14.119 --> 00:20:17.359
so I mentioned earlier, who used
to it for Opera, then at Firefox.

205
00:20:17.799 --> 00:20:22.400
Now he's at Apple, and he
implemented the badging API. That's like

206
00:20:22.440 --> 00:20:26.599
the little red blob that you'd see
if you had a progressive where bat male

207
00:20:26.720 --> 00:20:30.480
client. The way you can badge
it to say there are you know,

208
00:20:30.720 --> 00:20:36.440
X new notifications or x new emails. This is a UI thing that people

209
00:20:37.039 --> 00:20:42.079
like in single platform apps, and
it came to the web and then earlier

210
00:20:42.079 --> 00:20:49.640
this year Apple just killed progressive where
back functionality across the EU just killed it,

211
00:20:49.720 --> 00:20:59.480
just took it away, which caused
considerable outrage. And again I can't

212
00:20:59.519 --> 00:21:03.359
speak for them, but it's pretty
easy to see that. It was about

213
00:21:03.799 --> 00:21:11.559
ten days before the Digital Markets Act
was due to be enforced. It came

214
00:21:11.599 --> 00:21:17.599
into force, it came into law, but obviously you give people time to

215
00:21:18.240 --> 00:21:23.319
ramp up to it, so they
were given a grace period. And the

216
00:21:23.359 --> 00:21:33.519
Digital Markets Act says that you cannot
self preference by giving your own stuff better

217
00:21:34.279 --> 00:21:42.039
access than a competitors. So I
can imagine maker, Yes, if you're

218
00:21:42.079 --> 00:21:48.039
a platform maker of over a certain
size and you have to u's like four

219
00:21:48.079 --> 00:21:53.440
hundred million euros a year x thousand
users. So I can imagine Bob Suit,

220
00:21:53.519 --> 00:21:56.680
as I like to call him in
Coopertino, sitting there and thinking,

221
00:21:57.279 --> 00:22:04.559
okay, so we're going to have
to let other browsers do progressive web apps

222
00:22:04.599 --> 00:22:11.039
because Safari can. Well, what
happens if the day before this comes into

223
00:22:11.160 --> 00:22:15.759
force, we completely killed progressive web
apps, even from our own products,

224
00:22:15.839 --> 00:22:22.039
because then we're not self referencing,
which if you are Bob Suit, that

225
00:22:22.160 --> 00:22:30.519
probably makes great sense. But luckily
in Owa Open Web Advocacy, we somebody

226
00:22:30.559 --> 00:22:34.519
noticed that this was just didn't exist
anymore in a beta. People asked,

227
00:22:34.880 --> 00:22:44.119
and the Safari bug trackers, the
forums, you know, have you deliberately

228
00:22:44.200 --> 00:22:52.279
broken pways on the beta? And
there was silence. So we organized basically

229
00:22:52.440 --> 00:23:00.680
a campaign of developers and business owners
across the EU to email the people who

230
00:23:00.720 --> 00:23:04.960
are in charge of enforcing the Digital
Markets Act to say, you know,

231
00:23:06.920 --> 00:23:11.400
in ten days time, the business, the progressive web app that my business

232
00:23:11.680 --> 00:23:19.640
makes and depends upon, is going
to break irrevocably and completely, and this

233
00:23:19.680 --> 00:23:27.680
will be the business effect. We
only had like a week and bless and

234
00:23:27.839 --> 00:23:33.920
bless everybody who did it. Hundreds
of people wrote to the EU. No

235
00:23:33.119 --> 00:23:41.000
there was there were businesses. Little
progressive web apps would tell people if a

236
00:23:41.119 --> 00:23:47.400
kindergarten was going to shut down early
for any reason and alert people that was

237
00:23:47.440 --> 00:23:55.960
going to break. There were small
community things that would giving each other oncology

238
00:23:56.279 --> 00:24:00.839
advice and support. That was going
to break. A friend of mine runs

239
00:24:03.160 --> 00:24:11.839
heavily heavily privacy focused note taking progressive
where bap that nothing you do ever leaves

240
00:24:11.359 --> 00:24:15.720
your device, and nothing stored an
eye cloud and nothing goes out. It's

241
00:24:15.759 --> 00:24:22.319
all on your device, and that
was heavily used by EU journalists reporting behind

242
00:24:22.359 --> 00:24:26.519
the on the front lines of the
Ukraine War. And this was going to

243
00:24:26.519 --> 00:24:30.799
break in ten days. There was
no way of telling these people because they

244
00:24:30.839 --> 00:24:34.680
were out of you know, it
wouldn't be safe to be connecting to Twitter

245
00:24:34.759 --> 00:24:38.519
and announcing your location, so there
was no way to tell these people.

246
00:24:40.640 --> 00:24:45.880
For Pete's sake, save your data
because this is going to be just completely

247
00:24:45.039 --> 00:24:49.519
kiboshed. In a week. Hundreds
of people wrote to the EU and the

248
00:24:49.559 --> 00:24:56.319
EU who knows what they said to
Apple, but Apple backtracked. So now

249
00:24:56.319 --> 00:25:00.720
in the EU progressive where baps still
exist, but at the moment moment they

250
00:25:00.759 --> 00:25:07.680
can only use the WebKit engine,
which is obviously not even in malicious compliance

251
00:25:07.680 --> 00:25:12.920
with the Act, that is contravening
the Act. So the EU opened an

252
00:25:14.000 --> 00:25:21.359
investigation. And you know, it's
a massive change that's been requested from Apple.

253
00:25:21.440 --> 00:25:25.240
And I've been in software since since
since Dan, since you were in

254
00:25:25.319 --> 00:25:30.079
short trousers, I've been working in
software. Have to say viewers that before

255
00:25:30.119 --> 00:25:34.400
we started, he got up and
closed the door. And still occasionally I

256
00:25:34.440 --> 00:25:41.680
still occasionally wear short trousers to the
consternation of my kids. So well,

257
00:25:41.720 --> 00:25:45.440
you were talking about teaching primary school
in Thailand in the late eighties, and

258
00:25:45.519 --> 00:25:52.599
I was in primary school in the
late eighties. So anyway, but I've

259
00:25:52.599 --> 00:25:56.359
been in soft forever and I know, I know that changing a massive system,

260
00:25:56.680 --> 00:26:00.440
even when you've had to I mean, they only had six months for

261
00:26:00.640 --> 00:26:06.960
more grace period. But Apple must
have known two years ago when the DMA

262
00:26:07.400 --> 00:26:11.440
was announced that it was going to
be considered to be a primary gatekeeper.

263
00:26:12.000 --> 00:26:18.200
But even so, I can understand
that you can't do everything in two years.

264
00:26:18.319 --> 00:26:22.000
And I'm sure I can't speak for
the EU. I've spoken to them

265
00:26:22.039 --> 00:26:26.359
many times, as of Apple,
as of lots of other advocacy organizations.

266
00:26:26.400 --> 00:26:34.240
That's not a secret. But I
am certain that the EU don't want court

267
00:26:34.279 --> 00:26:40.720
cases and fights. What they want
is a more competitive landscape. But if

268
00:26:40.720 --> 00:26:45.920
that means saying to Apple, look
okay for six months more, you can

269
00:26:45.000 --> 00:26:49.319
do what you do in as long
as you promised to get it right,

270
00:26:49.559 --> 00:26:56.640
rather than rushing through a half asked
fix or just nuking stuff like you did

271
00:26:56.680 --> 00:27:00.359
with the PWAs. I get that. I want a better environment. I

272
00:27:00.400 --> 00:27:06.160
don't want Apple to go down in
flames. I want Apple to go Actually,

273
00:27:06.400 --> 00:27:12.000
yeah, it's better for everybody if
Safari competes on its own, merits

274
00:27:12.039 --> 00:27:17.039
everybody. So the thing that I've
there are a couple of things, and

275
00:27:18.559 --> 00:27:22.319
I'm trying to figure out how to, like, how to state some of

276
00:27:22.359 --> 00:27:29.000
this stuff because on the one hand, I definitely feel the you know,

277
00:27:29.079 --> 00:27:33.640
because I have an iPhone, right, I have an iPhone and right,

278
00:27:33.680 --> 00:27:38.920
But and so I feel this right
because yeah, you know, ultimately I

279
00:27:40.559 --> 00:27:45.640
use Brave Browser. But Brave Browser
is more or less a reskinned Safari browser,

280
00:27:45.799 --> 00:27:48.119
right, it's using WebKit, it's
using all of those things. If

281
00:27:48.160 --> 00:27:53.240
I'm building some other application lately,
I've been so I primarily do Ruby on

282
00:27:53.319 --> 00:27:56.440
Rails and then I do a lot
of front end stuff and so that's where

283
00:27:56.440 --> 00:28:02.000
I get into JavaScript and web.
This relevant to most of our listeners here,

284
00:28:02.079 --> 00:28:06.559
right, But one thing that I've
gotten into is the team that base

285
00:28:06.640 --> 00:28:10.720
Camp provides ter Er Native, right, which gives kind of a clean,

286
00:28:11.400 --> 00:28:15.759
chromeless wrapper around your Ruby on Rails
app or other web app. And so

287
00:28:15.839 --> 00:28:21.079
you can essentially build a PWA,
but your native app is your web app,

288
00:28:21.480 --> 00:28:25.200
yeah, right. And so you
know, I feel this because there

289
00:28:25.200 --> 00:28:27.759
are some problems that I'd really like
to solve with a PWA or with specific

290
00:28:27.799 --> 00:28:33.720
features that go into a PWA,
and when they don't do what you need

291
00:28:33.759 --> 00:28:37.759
them to do, that that's really
sucks. But on the other end,

292
00:28:38.920 --> 00:28:45.720
I am not a big fan of
government intervention, right, And so I'm

293
00:28:45.720 --> 00:28:49.000
looking at it and I'm going,
okay, well, Apple's a private company

294
00:28:49.799 --> 00:28:56.920
and they you know, when you
buy the iPhone, you're kind of signing

295
00:28:56.000 --> 00:29:02.160
up for whatever they do or don't
doos will do or not do whatever it

296
00:29:02.240 --> 00:29:04.599
wants. You know, there's a
walled garden here, right, because you

297
00:29:04.680 --> 00:29:08.119
have to submit apps to the app
store and get them approved, and it

298
00:29:08.119 --> 00:29:11.440
may or may not play nicely with
some of this other stuff. And so

299
00:29:11.559 --> 00:29:18.319
as much as I want Apple to
be doing this stuff, I am a

300
00:29:18.319 --> 00:29:21.759
little bit allergic to the government telling
them they have to do this stuff.

301
00:29:21.759 --> 00:29:26.920
Does that make sense? It does
if I can say something about this,

302
00:29:26.160 --> 00:29:33.960
chuck. I think what a lot
of people miss, and unfortunately it's often

303
00:29:33.000 --> 00:29:38.400
people in the US especially, is
the fact that if you want, what

304
00:29:38.440 --> 00:29:45.680
you actually want is nuts is a
free market, and your concern about government

305
00:29:45.759 --> 00:29:51.079
intervention is the fact that they are
potentially getting in the way of a free

306
00:29:51.119 --> 00:29:56.720
market. The problem is that when
you have a monopoly, you don't have

307
00:29:56.759 --> 00:30:00.799
a free market. And you might
say, well, Apple is only like

308
00:30:02.000 --> 00:30:04.759
half the market, They're not a
monopoly. I can always decide to purchase

309
00:30:04.799 --> 00:30:11.039
an Android device instead. But the
reality is that they are a monopoly because

310
00:30:11.240 --> 00:30:19.680
I can't not support IOSS as a
company that you know, that delivers some

311
00:30:19.720 --> 00:30:26.319
sort of a service. If I'm
so for the web, the mobile web

312
00:30:26.759 --> 00:30:33.480
constitutes something between seventeen and eighty percent
of web browsing. Yes, and if

313
00:30:33.000 --> 00:30:44.359
if my web app doesn't work on
iOS. Then I'm basically out of half

314
00:30:44.440 --> 00:30:52.240
that market. That's not something that
any company could deal with that. Look

315
00:30:52.279 --> 00:30:56.759
at what happened with what's that game
manufacture, whether the ones that create Fortnite

316
00:31:00.160 --> 00:31:06.440
all I can't remember. I don't
play games. Remember they had that big

317
00:31:06.519 --> 00:31:11.519
row with Apple over or the over
the app store rules. They're also epic

318
00:31:11.559 --> 00:31:18.640
games, I think, and and
they're like the biggest game manufacturer in the

319
00:31:18.680 --> 00:31:22.799
world, and and and it was
and they're basically losing this fight in a

320
00:31:22.799 --> 00:31:27.400
lot of ways. So you know, what chance does the little guy have.

321
00:31:29.319 --> 00:31:33.319
It's it's it's kind of like think
about the days of the railroads.

322
00:31:33.640 --> 00:31:38.680
It's like you have to have some
sort of regulation here or or the little

323
00:31:38.759 --> 00:31:45.480
farmers get run out of their lands. And and this is literally what it

324
00:31:45.680 --> 00:31:52.920
is. It's it's Apple taking advantage
of the monopoly that it's been able to

325
00:31:52.960 --> 00:31:56.720
create. Now again, you know, I'm not saying that Apple should not

326
00:31:56.799 --> 00:32:02.960
be a successful company or that they
you know, they invaded, invented to

327
00:32:04.000 --> 00:32:07.200
a great extent, invented this space. Good on them. It's that the

328
00:32:07.279 --> 00:32:14.640
fact that there needs to be some
sort of a mechanism that protects the free

329
00:32:14.720 --> 00:32:22.279
market because in a totally unregulated capitalistic
environment. You don't end up in a

330
00:32:22.319 --> 00:32:29.519
free market, you end up in
a series of monopolies controlling everything. What

331
00:32:29.680 --> 00:32:35.480
dam said, I mean, I'm
I'm as I'm perhaps not as allergic to

332
00:32:35.599 --> 00:32:43.400
government as many American people are,
because unfortunately, when you were a colony,

333
00:32:43.440 --> 00:32:47.440
we didn't govern you terribly well,
terribly sorry about that, but I

334
00:32:47.480 --> 00:32:51.400
am It's okay. I'm happy with
where we ended up in a lot of

335
00:32:51.400 --> 00:32:55.960
ways, so it's fine. But
I am allergic to government intervention in tech

336
00:32:57.960 --> 00:33:02.359
because I work a lot in accessibility, and I've seen attempts by government to

337
00:33:02.680 --> 00:33:07.799
regulate, and of necessity, regulation
is law, and it takes a long

338
00:33:07.880 --> 00:33:14.000
time to be passed and come into
force, and by which point you might

339
00:33:14.079 --> 00:33:19.880
have frozen into law a technique which
is two years older and much worse than

340
00:33:19.880 --> 00:33:28.359
the technique now. But which is
why the EU and the UK laws or

341
00:33:28.400 --> 00:33:36.680
the regulators, everything they write is
about opening up competition, preventing people from

342
00:33:36.720 --> 00:33:39.319
self preferencing. It doesn't mention,
you know, it doesn't say you must

343
00:33:39.880 --> 00:33:45.160
you must allow this api. I
mean, I like the fact that now

344
00:33:45.200 --> 00:33:51.039
in the EU everything must every new
device must come with USBC, so you

345
00:33:51.079 --> 00:33:57.319
don't have hundreds of different proprietary charges. But the problem is what happens when

346
00:33:57.400 --> 00:34:00.920
USB, D E, and F
come about which better? But the legislation

347
00:34:01.279 --> 00:34:07.639
only allows USBC. I get the
problem, Chuck, But certainly this legislation

348
00:34:08.559 --> 00:34:15.400
is designed to promote a level playing
field. It's not. I don't want

349
00:34:15.400 --> 00:34:22.679
to penalize Apple. I'm talking to
you with on a hugely expensive MacBook Pro

350
00:34:22.840 --> 00:34:28.440
that costs considerably more than my first
car ever did, and you'll prize it

351
00:34:28.480 --> 00:34:32.360
out of my cold dead hands.
But if I had to give up one

352
00:34:32.400 --> 00:34:38.159
thing and it was the MacBook Pro
or the open Web, you can have

353
00:34:38.239 --> 00:34:44.519
my Matbook Pro. I really want
the open Web to win. And I

354
00:34:44.559 --> 00:34:50.840
think anyway, your argument ended in
was it the fifties or the sixties when

355
00:34:52.519 --> 00:34:59.320
the AT and T was broken up? And you know it became obvious and

356
00:34:59.360 --> 00:35:06.159
nobody could own the telephone network and
be the sole supplier of telephones, right,

357
00:35:06.360 --> 00:35:09.199
it was an abuse and it was
distorting the free market. It wasn't

358
00:35:09.840 --> 00:35:16.159
because every company of necessity tends to
monopoly. Every company wants to raise its

359
00:35:16.159 --> 00:35:22.360
own and the logical end of raising
your market share is owning one hundred percent

360
00:35:22.360 --> 00:35:28.079
of the market. So I mean, I would love to fix capitalism,

361
00:35:28.119 --> 00:35:31.119
but I don't think I have enough
years left in me to do that.

362
00:35:31.280 --> 00:35:38.119
But certainly certainly helping what we've been
doing at WA is helping the CMA and

363
00:35:38.199 --> 00:35:49.679
the EU and the Japanese and the
Australians understand the competition ramifications of what are

364
00:35:49.800 --> 00:35:54.400
pretty pretty errudite esoteric things like you
know, well, if they don't allow

365
00:35:54.480 --> 00:36:01.800
this API. And I will say
I expected when I first met these people

366
00:36:01.920 --> 00:36:07.039
in you know, who are lawyers
and economists. I expected lots of elderly

367
00:36:07.159 --> 00:36:13.639
men in dusty wigs, going what
is a computer? But actually it hasn't

368
00:36:13.679 --> 00:36:20.920
been that at all. I wish
my grasp of economics and law were anything

369
00:36:21.360 --> 00:36:25.079
like as quick as their grasp has
been of the technical issues we've shown them.

370
00:36:25.280 --> 00:36:28.960
I mean, we gave them just
recently, we gave them, I

371
00:36:29.000 --> 00:36:34.920
know, seventy page report on in
app browsers. This isn't Apple bashing at

372
00:36:34.920 --> 00:36:40.239
all. This is battling all in
app browsers. And I'll tell you what

373
00:36:40.519 --> 00:36:46.559
my browsers are the tool of the
devil that if I had been allowed to

374
00:36:46.599 --> 00:36:52.199
write the executive summary down that is
pretty much the synopsis that I would have

375
00:36:52.239 --> 00:36:54.760
written, but I wasn't allowed it. I'm not allowed to turn up at

376
00:36:54.800 --> 00:37:00.599
the meetings and look beautiful, right
well, but yeah, yeah, yeah,

377
00:37:00.920 --> 00:37:02.840
I just want to jump in on
some of this because to a certain

378
00:37:04.119 --> 00:37:07.400
extent, I agree with you guys, right, you know, monopolies are

379
00:37:07.440 --> 00:37:13.880
anti capitalists. You know, we
also see crony capitalism where you know,

380
00:37:13.960 --> 00:37:17.840
some of these tools get used on
behalf of companies then kick back money to

381
00:37:17.960 --> 00:37:24.000
the politicians that did them the favors. Some of these tools are open to

382
00:37:24.159 --> 00:37:29.199
that kind of abuse. And so
when it comes right down to it,

383
00:37:29.519 --> 00:37:35.800
I mean, if if it truly
is anti monopolistic, there's a long word

384
00:37:35.840 --> 00:37:39.960
for you, you know. I
I'm happy to support some of that.

385
00:37:40.599 --> 00:37:46.039
I get a little bit concerned because, in case folks haven't listened to the

386
00:37:46.079 --> 00:37:50.840
show and haven't heard me. I
try and keep the politics out of this,

387
00:37:50.960 --> 00:37:53.440
but I am very involved, especially
in the state of Utah, with

388
00:37:53.440 --> 00:38:00.159
with our political system and our politicians, and I'm actually the vice chair of

389
00:38:00.159 --> 00:38:05.000
the Utah County Republican Party, so
I'm in it all the time. But

390
00:38:06.960 --> 00:38:10.559
my concerns mostly come down to because
right, what you're talking about, I

391
00:38:10.920 --> 00:38:14.360
agree with right, it's like,
hey, let's open this up, let's

392
00:38:14.440 --> 00:38:19.599
let everybody you know play in the
space. Right. But the concern is

393
00:38:19.599 --> 00:38:22.239
is are there unintended consequences? Are
there things that are going to come out

394
00:38:22.239 --> 00:38:27.280
of this that we don't want?
And then the other concern that I have,

395
00:38:27.639 --> 00:38:31.079
And it's hard to know those things
right, and so it's kind of

396
00:38:31.519 --> 00:38:37.000
not an argument against this, but
at the same time, I want to

397
00:38:37.039 --> 00:38:39.280
make sure that as much as we
can, we can foresee what may come

398
00:38:39.320 --> 00:38:43.760
out of this. And then the
other thing is is if we're creating the

399
00:38:43.760 --> 00:38:46.360
tools for government to do these kinds
of things, right, pass these kinds

400
00:38:46.360 --> 00:38:52.480
of regulations and then enforce them.
As I've said, most of my allergy

401
00:38:52.559 --> 00:38:58.039
to government intervention comes from they find
some other way to turn this into something

402
00:38:58.039 --> 00:39:01.639
else that we don't want. And
so when we're looking at this right,

403
00:39:02.039 --> 00:39:06.800
we have to be very careful and
say, okay, look, we're allowing

404
00:39:06.840 --> 00:39:12.639
you to regulate these things under these
very narrow areas so that you know,

405
00:39:12.920 --> 00:39:16.440
we can open the market so that
you don't have a monopoly without allowing them

406
00:39:16.480 --> 00:39:21.800
to be abused on behalf of Well, my buddy's the CEO of such and

407
00:39:21.880 --> 00:39:25.760
such a company, and so you
know, there are competitors of monopoly now

408
00:39:25.800 --> 00:39:30.199
too, and so now I'm going
to treat them like I'm treating this other

409
00:39:30.239 --> 00:39:34.400
company. And to your other point, though, yeah, I don't feel

410
00:39:34.400 --> 00:39:38.400
like anybody's necessarily trying to pick on
Apple per se or try to hurt them.

411
00:39:39.199 --> 00:39:45.320
But anyway, I mean, I'd
like to say one thing about that,

412
00:39:45.119 --> 00:39:49.320
or a few things about that.
First of all, from my experience,

413
00:39:49.480 --> 00:39:54.320
like I don't, you know,
I dislike politicians significantly. It's not

414
00:39:55.320 --> 00:40:02.039
it's not a big leap given that
I'm in Israel. Uh. And but

415
00:40:04.320 --> 00:40:09.920
we've seen that tech companies are and
tech company CEOs are usually a lot smarter,

416
00:40:10.199 --> 00:40:16.320
more efficient, and wield more power
than your average politician. And that's

417
00:40:16.360 --> 00:40:22.719
also a concern. And think about
let's take a different example, like think

418
00:40:22.760 --> 00:40:30.599
what would happen if Google, in
their search engine decided too, you know,

419
00:40:30.119 --> 00:40:37.320
to uh, you know, basically
remove your company or your organization out

420
00:40:37.360 --> 00:40:42.159
of the search results. The impact
that they that would have they a certain

421
00:40:42.199 --> 00:40:45.800
degree, and they do that to
a certain degree, and and and and

422
00:40:45.840 --> 00:40:49.920
the fact that they can is more
scary than almost anything else. You know,

423
00:40:50.199 --> 00:40:58.000
think about the fact that the ranking
algorithm for TikTok is controlled by the

424
00:40:58.119 --> 00:41:04.239
Chinese Communist Party. Like I would, I don't. I'm not saying that

425
00:41:04.320 --> 00:41:07.800
they decide on the rank of any
video, but they decide the ranks of

426
00:41:07.840 --> 00:41:15.599
the videos that they specifically like or
dislike. So they certainly have their finger

427
00:41:15.880 --> 00:41:27.519
on the what's it called the log
Yeah that the recommendations and yeah, yeah,

428
00:41:27.679 --> 00:41:32.920
so so and and think of the
impact that that has on the opinions

429
00:41:32.920 --> 00:41:37.039
of people. Now in this particular
case that we're speaking about in the context

430
00:41:37.119 --> 00:41:45.480
of Apple, that's seems to be
purely about revenue and not about you know,

431
00:41:45.719 --> 00:41:51.960
ideologies or or stuff like that.
But still, uh, you know,

432
00:41:52.280 --> 00:41:59.079
they are creating a situation that is
effectively killing the open web, and

433
00:41:59.119 --> 00:42:04.360
as and as people who are proponents
of the open web, that's a problem.

434
00:42:05.079 --> 00:42:08.639
And it seems like, you know, I would love for there to

435
00:42:08.679 --> 00:42:15.440
be a different mechanism than government intervention
to fix this, but I'm not seeing

436
00:42:15.480 --> 00:42:22.840
any such mechanism available. And we
have been appealing to Apple for a decade,

437
00:42:23.480 --> 00:42:29.800
you know, appealing to their better
nature. I personally know I don't

438
00:42:29.840 --> 00:42:35.400
want Some people hate Apple, some
people hate Google. I'm too old for

439
00:42:35.440 --> 00:42:44.000
hating I don't want anybody to be
taken down in flames. I don't want

440
00:42:44.079 --> 00:42:53.559
Apple to involve themselves and USKS in
a decade long series of malicious compliance until

441
00:42:53.599 --> 00:43:01.039
they eventually go oh all right then, Because of course, from Monopolis to

442
00:43:01.079 --> 00:43:08.960
any delay is profit, so that's
just a given they will have to do

443
00:43:09.079 --> 00:43:17.760
this stuff. But they have every
fiscal every fiscal incentive is towards dragging it

444
00:43:17.880 --> 00:43:24.639
out, with mucking about with take
going to court about procedure, as they've

445
00:43:24.639 --> 00:43:30.480
done in the UK recently. That's
a given. But what I really want,

446
00:43:30.880 --> 00:43:34.039
it's for Apple to do the right
thing. You know, people have

447
00:43:34.119 --> 00:43:37.639
accused me of oh, well,
you just want the world to be Chromium,

448
00:43:38.039 --> 00:43:43.320
Like no, that's absolutely not what
I want, And in fact I

449
00:43:44.280 --> 00:43:50.840
love Firefox, but it's it's been
losing now for years and years I really

450
00:43:50.960 --> 00:43:59.159
want. What I really want is
Safari to run on iOS, iPad os

451
00:43:59.199 --> 00:44:04.119
if that's a different thing, Android, Windows, Linux, Chrome Book as

452
00:44:04.119 --> 00:44:07.639
well as mac Os. Because WebKit
runs on all those things, Safari used

453
00:44:07.639 --> 00:44:12.360
to be on Windows. I would
love to see Safari running all of those

454
00:44:12.400 --> 00:44:16.920
things, giving Chromium a run for
its money, being a competitor to Chrome.

455
00:44:17.039 --> 00:44:23.239
Because there's only one organization that has
brand loyalty, a marketing budget,

456
00:44:25.440 --> 00:44:32.239
technical nouse, worldwide prominence to be
able to compete against Google, and that

457
00:44:32.360 --> 00:44:39.239
is Apple. So I really want
Apple to set my friends and colleagues in

458
00:44:39.280 --> 00:44:45.480
the WebKit team free to compete so
we could see fifty you know, if

459
00:44:45.000 --> 00:44:52.639
it were forty percent Safari, forty
percent Chrome, ten ten percent Firefox and

460
00:44:52.800 --> 00:44:59.000
Brave and Vivaldian Opera much rather it
was equal shares each. But I'm also

461
00:44:59.480 --> 00:45:07.079
I'm a real list I would much
rather it be a better balance, So

462
00:45:07.159 --> 00:45:13.679
this would allow that. I also
know many of the WebKit team personally,

463
00:45:13.719 --> 00:45:16.239
and they're some of the brightest people
I've ever met. I'm sure that they're

464
00:45:16.239 --> 00:45:23.920
frustrated. Yeah, I just I
guess My point is is that because I

465
00:45:23.920 --> 00:45:29.360
think I agree with you guys,
especially in this case, but we have

466
00:45:29.400 --> 00:45:32.599
to be careful where we apply the
hammer and how big a hammer we use.

467
00:45:34.679 --> 00:45:37.639
I completely agree, and luckily,
I mean, I guess it's the

468
00:45:37.639 --> 00:45:42.880
same in the States as well,
But the EU is an entity, but

469
00:45:43.519 --> 00:45:50.079
twenty seven different twenty six countries now
get to vote on stuff, So in

470
00:45:50.119 --> 00:45:52.280
the same way as the States,
you've got lots of different states of competing

471
00:45:54.039 --> 00:46:02.800
cultures and concerns and imperatives have in
the EU. It's it's cumbersome, but

472
00:46:02.840 --> 00:46:10.199
it means there's checks and balance is
built in. And yeah, you have

473
00:46:10.320 --> 00:46:14.800
everybody thinking about it and coming out
of from their own angle and it makes

474
00:46:14.800 --> 00:46:17.800
it better. Yes. Yeah.
I would also argue that in the power

475
00:46:17.880 --> 00:46:23.320
dynamics, you know, the one
trillion dollar company probably has more power than

476
00:46:23.360 --> 00:46:34.920
a couple of farts arguing about this
thing in somewhere with three parts with three

477
00:46:34.960 --> 00:46:37.480
farts down. Are we back to
that fart oup or the fifty thousand fart

478
00:46:37.519 --> 00:46:43.039
apps? Yeah, but what you
say about chrony capitalism was quite interesting.

479
00:46:43.199 --> 00:46:52.480
Us. We have to remember as
well that Google paid Apple twenty billion to

480
00:46:52.639 --> 00:47:00.679
be the search provider on iOS.
So the idea that these are to chronyism

481
00:47:00.760 --> 00:47:08.760
so much as you see them supporting
campaigns of chromism. I didn't say chromyism.

482
00:47:08.800 --> 00:47:15.639
I'm just people. People try and
paint it as a sort of battle

483
00:47:15.679 --> 00:47:22.440
between these two behemoths like alien predator
Godsill is the other one. It's a

484
00:47:22.519 --> 00:47:27.239
much more nuanced than that. To
going back to what Dan said earlier,

485
00:47:29.760 --> 00:47:37.159
less less people what what normal person
cares about regulation? But in the EU,

486
00:47:37.400 --> 00:47:42.880
the people who are designated as gatekeepers. It's not only Apple and Google.

487
00:47:43.760 --> 00:47:49.599
Whichever company runs TikTok by dancers it, they are a gatekeeper. Whatever

488
00:47:49.679 --> 00:47:59.639
Facebook's called today is a gatekeeper.
It is an attempt to stop any of

489
00:47:59.679 --> 00:48:07.440
them major digital players, distorting the
market to allow smaller companies to compete fairly.

490
00:48:09.000 --> 00:48:15.719
I think that's a good thing.
It can't be absolutely perfect from me.

491
00:48:15.199 --> 00:48:17.760
We're kind of getting toward the end
of our time and I just want

492
00:48:17.800 --> 00:48:22.840
to just nail things down. So
with open web advocacy, is that the

493
00:48:22.880 --> 00:48:30.760
mission then to open up the web
space or competition or is it these particular

494
00:48:30.840 --> 00:48:35.199
fights or how does that work?
We want to be able to make web

495
00:48:35.239 --> 00:48:43.599
apps that will work cross device because
the web is a mature platform. It

496
00:48:43.719 --> 00:48:47.320
works everywhere now, it should work
everywhere now, but it's been prevented from

497
00:48:47.360 --> 00:48:52.800
kneeling everywhere now. Yeah, So
we want to be able to make web

498
00:48:52.840 --> 00:48:55.840
apps and that's because we developers,
you know, none of us are.

499
00:48:58.000 --> 00:49:02.599
I know far more about regulation than
I ever wanted ever to know. You

500
00:49:02.639 --> 00:49:09.719
know, a couple of us had
a company in China and couldn't use couldn't

501
00:49:09.800 --> 00:49:19.440
use iPads because one particular API is
only allowed on a native app. It's

502
00:49:19.519 --> 00:49:23.000
not allowed from Safari, but it
could use Android, and that was a

503
00:49:23.039 --> 00:49:30.400
problem. I got tired of making
a PWA and having to wrap it up

504
00:49:30.440 --> 00:49:34.880
in capacitor or something like that to
go into the app store. It was

505
00:49:35.039 --> 00:49:42.280
just an unnecessary extra step, which
meant periodically I had to download forty eight

506
00:49:42.360 --> 00:49:46.360
exabytes of something called x code in
order to cajole it to do something,

507
00:49:46.400 --> 00:49:57.079
which was Yeah, other people they
want to wear apps because they work for

508
00:49:57.159 --> 00:50:02.039
smaller companies that don't have a colossal
budget, you know, to to a

509
00:50:02.119 --> 00:50:07.800
Google's or Microsoft, to a Netflix
two, even to a Wix. It's

510
00:50:08.079 --> 00:50:15.119
it's not that expensive to have a
team who test dios, a team who

511
00:50:15.199 --> 00:50:20.760
tests Android, maybe a React native
team, and then other people to walk

512
00:50:20.800 --> 00:50:23.920
around with buckets to collect those people's
tears every time they have to use React

513
00:50:24.000 --> 00:50:37.119
Native. But to a smaller company, that's prohibitively costly. Yeah, Dan

514
00:50:37.159 --> 00:50:39.079
and Ice where we first met,
we were we used to have to empty

515
00:50:39.119 --> 00:50:44.639
the buckets out over the over the
wall into the port. Yeah, they

516
00:50:44.719 --> 00:50:50.400
were, they were. They were
well compensated for their tears though. Yeah.

517
00:50:50.480 --> 00:50:54.440
Yeah, and that's another thing to
smaller companies hiring loads of people who

518
00:50:54.440 --> 00:50:59.920
are react native debs is a lot
more expensive than hiring people who are common

519
00:51:00.199 --> 00:51:06.440
and htmol cs and javas great,
and also you don't have to have you

520
00:51:06.320 --> 00:51:09.039
know, you don't have to pay
for ninety nine bucks a year for a

521
00:51:09.159 --> 00:51:15.960
developer license. You don't have to
have a Mac and an iOS device and

522
00:51:15.000 --> 00:51:20.599
an iPad for testing if you're a
web developer. Most of us do.

523
00:51:21.159 --> 00:51:30.000
But it's not required simply to put
put put pixels on a screen. So

524
00:51:30.519 --> 00:51:36.840
gotcha? So what do Because it's
you know, all the things you're talking

525
00:51:36.880 --> 00:51:40.800
about, right with having things work
everywhere or mostly everywhere, and you know,

526
00:51:42.880 --> 00:51:46.119
be able to move forward without worrying
about having to be compatible with the

527
00:51:46.239 --> 00:51:52.079
lack of things in a Safari or
similar what do we do? Like so

528
00:51:52.280 --> 00:51:57.920
me, you know, developer dude, work in my day job. Right,

529
00:51:58.559 --> 00:52:01.880
what can I do then to make
this work? Or what can my

530
00:52:01.920 --> 00:52:07.639
company do? Right? I suppose
in the States what you could do is

531
00:52:08.400 --> 00:52:15.239
perhaps rain back your personal version towards
government regulation, because I know you've got

532
00:52:15.239 --> 00:52:21.039
that DOJ versus Apple thing coming up. I don't know the details of that,

533
00:52:21.119 --> 00:52:29.159
because American regulation is it's too much
for my tiny brain withes and you

534
00:52:29.239 --> 00:52:35.599
don't know if anybody follows all of
it. It's basically to educate yourself.

535
00:52:35.639 --> 00:52:40.880
You know, there's a lot of
people for whom Apple are still a sort

536
00:52:40.920 --> 00:52:50.000
of shining beacon of all things good
that that's been and many people are,

537
00:52:50.079 --> 00:52:52.159
but you'll also find many people aren't. And said, you know, there's

538
00:52:52.280 --> 00:52:55.400
even web developers. A couple of
months ago, somebody said to me,

539
00:52:55.440 --> 00:53:00.840
I had no idea that Chrome and
iOS was not the same as Chrome everywhere

540
00:53:00.880 --> 00:53:05.760
else. It's like, you're a
web developer, dude, right, So

541
00:53:05.840 --> 00:53:08.599
you just tell people, you know, make them aware that there are other

542
00:53:08.679 --> 00:53:20.199
things in the world then iOS and
Android native apps. So is there a

543
00:53:20.280 --> 00:53:25.400
way people can actually actively support the
Web back Advocacy group? You could,

544
00:53:25.599 --> 00:53:31.440
Yes, you can retweet or retoot
our stuff or even re linked in our

545
00:53:31.519 --> 00:53:38.559
stuff. A couple we're back to
the fart apps. I'm British. A

546
00:53:38.599 --> 00:53:45.400
couple of the people on the team
are devoted full time on this, so

547
00:53:45.639 --> 00:53:51.039
you could if you would, if
you want to help pay their salaries.

548
00:53:51.320 --> 00:53:59.559
I'm not salaried. I do this
because it's a mission. And also these

549
00:53:59.559 --> 00:54:04.360
guys couldn't work because it was COVID
time, and so they spent many hours

550
00:54:04.360 --> 00:54:08.400
writing the reports and drawing the graphs, et cetera. You can support them,

551
00:54:08.400 --> 00:54:14.639
but basically what you can do is
just support people who are talking about

552
00:54:14.639 --> 00:54:22.719
this. And if you live in
a country like Brazil, Korea, India,

553
00:54:22.840 --> 00:54:30.440
Israel, places where you have regulators
that could be doing something about this,

554
00:54:30.599 --> 00:54:37.840
because you're a big market, whether
like Israeli or a rich developed economy

555
00:54:37.960 --> 00:54:45.320
or somewhere like Brazil you are a
rich developed economy but also massive, you

556
00:54:45.360 --> 00:54:51.639
know, ask what your regulators are
doing about this, and write a blog

557
00:54:51.639 --> 00:54:55.039
post. I guess. I guess
this kind of you know, writing a

558
00:54:55.079 --> 00:54:59.840
blog post and you know, being
informed as to who's working on it.

559
00:55:00.880 --> 00:55:04.039
You said also to educate yourself,
and so I was wondering, you know,

560
00:55:04.079 --> 00:55:07.400
Open Web Advocacy Group. You sounded
like you were putting out reports and

561
00:55:07.440 --> 00:55:10.400
statistics and things like that. So
where do people find that stuff? And

562
00:55:10.440 --> 00:55:15.159
are there other organizations that are putting
out good information too so that I can

563
00:55:15.239 --> 00:55:22.719
get important There's other organizations, yeah, completely unaffiliated from US, as Tim

564
00:55:22.760 --> 00:55:30.239
Sweeney from Epic Games, who writes
a lot of stuff about this, DHH

565
00:55:30.400 --> 00:55:36.199
from thirty seven Signals, whatever,
they're called I disagree with him about mostly

566
00:55:36.239 --> 00:55:39.880
everything, but on this stuff,
I don't disagree with him at all.

567
00:55:42.280 --> 00:55:45.280
But again, you know, hopefully
that shows people that this is this is

568
00:55:45.400 --> 00:55:51.199
fundamentally a technical issue that we're having
to fight through regulators because there's no other

569
00:55:51.280 --> 00:55:58.440
venue. It isn't a socialists versus
free marketing, isn't a communist versus libertarian

570
00:55:58.679 --> 00:56:05.719
thing. It's it's a technological issue
that individually, we developers haven't been able

571
00:56:05.719 --> 00:56:12.960
to persuade the bad guys at Google
and Apple and previously Microsoft to amend their

572
00:56:12.960 --> 00:56:19.280
ways. And the only people who
are bigger are governments, even if in

573
00:56:19.320 --> 00:56:22.559
many ways they're not bigger than a
two trillion dollar company. You know,

574
00:56:22.800 --> 00:56:27.039
it shouldn't have come to this.
It's a shame that it has come to

575
00:56:27.079 --> 00:56:32.679
this, but it has, and
we are where we are and just spreading

576
00:56:32.719 --> 00:56:37.280
the word around, you know,
amplifying our voices, helping out where you

577
00:56:37.360 --> 00:56:42.119
can. There'll be other fights in
the future, like the ten days to

578
00:56:42.199 --> 00:56:47.039
a Pways Die, when we basically
had a team of volunteers just running keeping

579
00:56:47.119 --> 00:56:52.960
the website up, designing and coding
up a website, and record time sifting

580
00:56:53.079 --> 00:57:00.840
through submissions that came to our form
and forwarding them onto the EU, making

581
00:57:00.840 --> 00:57:05.760
sure we didn't forward stuff on with
confidential information. For example, you know

582
00:57:06.000 --> 00:57:08.480
you can drop in and help us
out from time to time, but or

583
00:57:08.519 --> 00:57:15.639
you can help pay those two guys
salaries. Just cross your fingers and hope

584
00:57:15.679 --> 00:57:20.519
we win. If you can't do
anything else, just moral supports good too.

585
00:57:20.880 --> 00:57:23.719
Yeah, is there a website for
the group? Openweb Advocacy dot org

586
00:57:24.079 --> 00:57:30.440
Open hyphen Web hyphen Advocacy dot org. Yes, it's a mouthful, but

587
00:57:30.519 --> 00:57:35.880
we invented it before we really thought
through any social media strategy. It literally

588
00:57:36.039 --> 00:57:40.840
was two guys in Australia emailed a
mutual friend saying, do we know anybody

589
00:57:40.880 --> 00:57:46.400
in the UK who'd be prepared to
go to the UK regulator to make them

590
00:57:46.440 --> 00:57:53.719
aware about p WA's because the UK
were thinking android versus iOS and we wanted

591
00:57:53.760 --> 00:58:00.000
to say, well, actually there's
this third way that works everywhere. And

592
00:58:00.159 --> 00:58:04.679
the mutual introduced me to these two
guys. I introduced them to a friend

593
00:58:04.679 --> 00:58:08.159
of Michael Stewart, who's a drinking
friend down the pub. We've worked together

594
00:58:08.199 --> 00:58:13.280
on and off for fifteen years.
We set up a little group. It's

595
00:58:13.320 --> 00:58:20.800
grown organically everybody is just a developer. There's no most of us have never

596
00:58:20.840 --> 00:58:23.440
met in real life. We're just
people who want to make sure that the

597
00:58:23.440 --> 00:58:30.559
web has a future across all devices
for everybody. A so Uncle Timbow himself

598
00:58:30.599 --> 00:58:35.000
said this is for everyone. Awesome, all right, Well, let's go

599
00:58:35.000 --> 00:58:38.960
ahead and do our picks. Yeah, hopefully people are getting some ideas on

600
00:58:39.039 --> 00:58:43.199
how they can help out with this, and yeah, I mean these are

601
00:58:43.239 --> 00:58:46.880
changes I'd like to see. And
anyway, Dan, do you want to

602
00:58:46.880 --> 00:58:53.119
start us off with our picks?
Yes? Why not? Not a lot

603
00:58:53.159 --> 00:58:59.039
of picks this time, a few
technical ones. So it turns out that

604
00:58:59.079 --> 00:59:02.480
there were two as of the time
of this recording. Oh yeah, you

605
00:59:02.480 --> 00:59:06.880
know, there's actually one thing which
isn't exactly a pick, but it's a

606
00:59:06.880 --> 00:59:10.719
bit of news. Today was my
first day at a new company that I

607
00:59:10.800 --> 00:59:16.400
work at. Last week i left
the Next Insurance after two and a half

608
00:59:16.519 --> 00:59:22.119
years there. I only have good
things to say about them, but it

609
00:59:22.159 --> 00:59:29.440
was time for me and now I've
joined as the principal engineer at a company

610
00:59:29.480 --> 00:59:36.159
called SiZ Sense. It's a company
that does data intelligence and data analytics and

611
00:59:36.159 --> 00:59:40.440
stuff like that, creating all sorts
of tools and services they are working on

612
00:59:40.679 --> 00:59:47.519
providing their tools s decay that can
be embedded within others services and solutions and

613
00:59:47.559 --> 00:59:52.880
whatnot. And I'm to be a
principal engineer on that project. So I'm

614
00:59:52.960 --> 00:59:55.199
very excited about that. And like
I said, today was my first day

615
00:59:57.000 --> 01:00:00.320
I was there at the office and
it was great. So that's kind of

616
01:00:00.320 --> 01:00:05.440
a pick. Gratulations. Congratu.
You can't believe you've been it next for

617
01:00:05.480 --> 01:00:07.159
two and a half years. It
feels like you only just joined. Wow,

618
01:00:07.199 --> 01:00:12.000
man, we're getting old. Yes, I this Next Next was last

619
01:00:15.880 --> 01:00:20.880
Yeah, that's true. Anyway,
So the to the few technical picks as

620
01:00:20.920 --> 01:00:25.239
well the first one. So,
there were a couple of conferences last week

621
01:00:25.519 --> 01:00:30.599
as the time of the time of
this recording. There was Google Io,

622
01:00:30.960 --> 01:00:37.039
which is Google's big technical conference,
and also more or less the same time,

623
01:00:37.079 --> 01:00:45.159
there was React, where Bruce's favorite
framework shows off its new developments and

624
01:00:45.199 --> 01:00:52.639
capabilities. Uh and I'm kidding,
but there were a couple of interesting things

625
01:00:52.679 --> 01:00:57.559
that were released and I would like
to mention two of them. So over

626
01:00:57.599 --> 01:01:04.880
at Google io are my friend Barry
Pollard presented at Google i OWE for the

627
01:01:05.239 --> 01:01:07.760
for the first time we have had
him on the guests on the show.

628
01:01:07.840 --> 01:01:14.119
He's a great guy, and he
spoke about what's it called. It's called.

629
01:01:15.440 --> 01:01:22.480
The name escapes me right now.
It's it's it's a thing called speculation

630
01:01:22.679 --> 01:01:29.199
rules. It's a way too,
it's a way to specify within the HTML

631
01:01:29.239 --> 01:01:37.960
itself which other pages and resources should
be prefetched, preloaded, and even pre

632
01:01:38.039 --> 01:01:44.800
rendered. Now some of these capabilities
that it's sort of existed before as resource

633
01:01:44.880 --> 01:01:51.559
since, but this mechanism is much
more sophisticated and generally all around better.

634
01:01:52.440 --> 01:01:58.519
And what it enables our websites that
appear to load instantly, especially if you're

635
01:01:58.519 --> 01:02:05.599
building a multipage application, you can
achieve a performance when navigating between pages that's

636
01:02:05.679 --> 01:02:12.119
on par and potentially even better than
single page applications, which is really great.

637
01:02:12.480 --> 01:02:17.880
And when you couple that with other
technologies like view transitions and stuff like

638
01:02:17.920 --> 01:02:24.639
that, I think we're going to
be seeing in MPa renaissance potentially it'll be

639
01:02:24.719 --> 01:02:30.880
interesting to see. So that would
be my first pick, and so as

640
01:02:30.880 --> 01:02:34.679
I said, the link to that
talk would be my first pick. My

641
01:02:35.280 --> 01:02:39.280
second pick is a talk from react
Conf. Well actually it's a talk about

642
01:02:39.280 --> 01:02:46.519
the technology presented at react Conf.
It's from our friend Jack Harrington used to

643
01:02:46.519 --> 01:02:52.079
be a host on React Roundup.
He has this channel on YouTube called Blue

644
01:02:52.079 --> 01:02:59.000
Collar Coder where he presents a lot
of technologies web technologies and gets into the

645
01:02:59.079 --> 01:03:04.960
nitty gritty. And he did a
video and going in depth on the new

646
01:03:05.679 --> 01:03:15.400
React compiler. And this is an
interesting technology that basically kind of optimizes your

647
01:03:15.440 --> 01:03:22.800
React code. So you write React
code as most developers do, which is

648
01:03:22.880 --> 01:03:29.920
kind of inefficient, and then that
mechanism kind of turns it into fine tuned,

649
01:03:30.000 --> 01:03:36.440
highly efficient React code. At least
that's the goal. And I will

650
01:03:36.480 --> 01:03:40.719
add that I'm trying to get the
relevant React people to come on the show

651
01:03:40.760 --> 01:03:45.480
to talk about that technology because I
think it's going to be interesting. So

652
01:03:45.840 --> 01:03:52.840
Jack's video is my second pick for
today, and my final pick is because

653
01:03:52.920 --> 01:03:58.880
Bruce, at the very beginning of
this show, you mentioned the fact that

654
01:03:58.920 --> 01:04:04.440
you used to work on standards,
and whenever I think about standards, I've

655
01:04:04.480 --> 01:04:13.880
always reminded of the design notes section
in the HTML spec, the actual spec

656
01:04:13.960 --> 01:04:19.400
for HTML itself. And I'll read
this part because it's worth reading out every

657
01:04:19.440 --> 01:04:25.000
once in a while, and it
goes as following. It must be admitted

658
01:04:25.199 --> 01:04:30.840
that many aspects of HTML appeared at
first glance to be nonsensical and inconsistent.

659
01:04:31.719 --> 01:04:38.599
And I stress this is from the
HTML spec. HTML it's supporting domainpis,

660
01:04:39.079 --> 01:04:43.360
as well as many of its supporting
technologies, have been developed over a period

661
01:04:43.400 --> 01:04:47.719
of several decades by a wide variety
of people with different priorities, who in

662
01:04:47.800 --> 01:04:55.599
many cases did not know of each
other's existence. Features have thus arisen from

663
01:04:55.679 --> 01:05:01.519
many sources and have not always been
designed in an especially insistent ways. Furthermore,

664
01:05:01.639 --> 01:05:08.199
because of the unique characteristics of the
web, implementation, bugs have often

665
01:05:08.280 --> 01:05:14.800
become de facto and now the viewers
standards as content is often unintentionally written in

666
01:05:14.880 --> 01:05:18.679
ways that rely on them before they
can be fixed. Despite all this,

667
01:05:19.000 --> 01:05:24.760
efforts have been made to adhere to
certain design goals. These are described in

668
01:05:24.840 --> 01:05:30.880
the next few subsections. So this
is such a great piece. This is

669
01:05:30.920 --> 01:05:34.519
such a great piece of content to
put in the actual htmlspec and I really

670
01:05:34.559 --> 01:05:41.000
love it. And this candidness and
forthrightness about the state of things as they

671
01:05:41.000 --> 01:05:45.559
are, which doesn't in any way
decrease the fact that the web itself is

672
01:05:45.599 --> 01:05:51.760
one of the greatest achievements of the
human race in my opinion. And today

673
01:05:53.840 --> 01:05:57.599
I'm going to butt in as a
guest and make a pick because by the

674
01:05:57.639 --> 01:06:00.960
way, man, but a way
fought again. I see one of the

675
01:06:00.960 --> 01:06:04.960
things that Dan, one of those
design principles that that passage alludes to is

676
01:06:05.760 --> 01:06:10.840
when you're writing the specs, it's
called the priority of constituencies, and it

677
01:06:10.920 --> 01:06:23.119
says you always considered users over web
authors, over implementers, over theoretical purity.

678
01:06:23.559 --> 01:06:27.480
So in other words, the people
who count most to the end users,

679
01:06:27.880 --> 01:06:31.280
then the next most important constituency are
developers, and then the next most

680
01:06:31.280 --> 01:06:39.440
constituency are browser manufacturers, and only
then it's theoretical purity. And my picks

681
01:06:39.719 --> 01:06:45.320
are Web Standards picks and the frontiest
of front end guys. Dan mentioned them

682
01:06:45.320 --> 01:06:51.880
earlier. Multi page view transitions are
coming soon to shipping Chrome. This is

683
01:06:53.880 --> 01:06:59.480
for multi page application or what we
old timers call a website with lots of

684
01:06:59.480 --> 01:07:03.360
different news rls. You'll be able
to transition between them without the page going

685
01:07:03.400 --> 01:07:11.199
white and refreshing. And again,
it's just bringing a ux feature from the

686
01:07:11.239 --> 01:07:15.880
world of apps to the web without
all the nonsense of having to try to

687
01:07:15.920 --> 01:07:21.920
do spas. It's going to be
a game changer. We have actually had

688
01:07:23.039 --> 01:07:27.480
Non Rosenthal, who's the guy who's
working on this spec as a guest on

689
01:07:27.519 --> 01:07:31.079
this show talking exactly about view transitions. I don't remember the number of the

690
01:07:31.119 --> 01:07:34.599
episode, but we should probably link
to it. Yeah, love me a

691
01:07:34.599 --> 01:07:41.079
bit of Noam Rosenthal. He was
at West when we on. Does this

692
01:07:41.159 --> 01:07:46.599
go beyond sort of the HTMX or
turbo approach. It has nothing to do

693
01:07:46.639 --> 01:07:51.440
with that. It's basically you can
specify in CSS in HTML you don't,

694
01:07:51.639 --> 01:07:55.599
well, you need potentially a little
bit of job is good, but ideally

695
01:07:55.719 --> 01:08:01.239
just HTML and CSS, you can
create an inmated transitions between pages when you're

696
01:08:01.320 --> 01:08:09.079
navigating. Oh interesting, So so
think think about app experiences when when you're

697
01:08:10.559 --> 01:08:15.000
clicking something and like you know,
like a Netflix type experience or an Amazon

698
01:08:15.039 --> 01:08:21.039
type experience when you're clicking let's say
something in Netflix and that thing expands like

699
01:08:21.159 --> 01:08:27.239
you're going into a specific movie and
that item expands to cover so you have

700
01:08:27.600 --> 01:08:30.079
so it's not like you're you you
don't see that transition. It's kind of

701
01:08:30.119 --> 01:08:36.000
animates from one page to the next. And it's a it's a game changer

702
01:08:36.079 --> 01:08:42.159
because somebody who comes with a browser
that doesn't yet support view transitions, it

703
01:08:42.359 --> 01:08:46.359
just works as before. Nothing breaks. It's nobody gets a worse experience than

704
01:08:46.399 --> 01:08:51.680
they do now, and gradually everybody
gets a better one. There's also newly

705
01:08:51.720 --> 01:08:58.199
come to Baseline, which is a
new initiative. I don't know whose initiative

706
01:08:58.239 --> 01:09:01.439
it was, but you see all
over the place on MDN. Baseline is

707
01:09:02.239 --> 01:09:08.079
a category of stuff that as a
jobbing web developer you can expect to be

708
01:09:08.159 --> 01:09:12.159
supported, so it's sort of your
If it's in baseline, I can use

709
01:09:12.199 --> 01:09:15.079
it. That's what I tell people
I want to mentor. Newly in Baseline

710
01:09:15.159 --> 01:09:24.479
is the has pseudo class, which
allows you to say, if this form

711
01:09:25.079 --> 01:09:30.600
has an input that is invalid,
put a red line around the whole form,

712
01:09:30.720 --> 01:09:34.840
or something. A parent selector that's
everywhere now. It's much more than

713
01:09:34.840 --> 01:09:38.399
a parent selector. In fact,
I just wrote a blog post an hour

714
01:09:38.479 --> 01:09:45.479
before we joined about what I call
HAS the god selector because it's omnipotent and

715
01:09:45.680 --> 01:09:51.800
awe inspiring. There's also in baseline
the popover API. That's when you can

716
01:09:51.840 --> 01:09:59.520
say, here's a button pop over
target equals fo and div id equals foo,

717
01:09:59.640 --> 01:10:02.399
and with any JavaScript at all,
when you hit that button, food

718
01:10:02.439 --> 01:10:08.840
will pop up. By default,
it's centered vertically and horizontally. You can

719
01:10:09.600 --> 01:10:13.119
with CSS. You can give it
an opake backdrop, you can change,

720
01:10:13.239 --> 01:10:15.880
you can do anything with it that
you can do in CSS. When you

721
01:10:16.279 --> 01:10:21.920
pick the button again, the popover
disappears. It's also got light dismissed with

722
01:10:23.119 --> 01:10:27.640
the ESK key built in, just
given to you for free for browsers,

723
01:10:28.079 --> 01:10:31.000
and that's everywhere now. So I've
been using that a great deal in a

724
01:10:31.000 --> 01:10:39.239
recent project and coming tuned soon to
CSS is a masonry layout, and there's

725
01:10:39.239 --> 01:10:45.439
been really interesting conversations between WebKit and
Chrome about different ways to achieve this.

726
01:10:45.039 --> 01:10:49.479
Each party believes that it's necessary to
add to the web platform, but there

727
01:10:49.520 --> 01:10:57.720
are differences of opinion about how it
should be implemented. Is it a kind

728
01:10:57.760 --> 01:11:01.439
of grid, is it a layout
method of its own? I'm too stupid

729
01:11:01.520 --> 01:11:06.479
to know what's right or wrong,
because it's all about how hard it is

730
01:11:06.520 --> 01:11:11.680
to implement in browsers, etc.
Excuse me, But what I really like

731
01:11:11.920 --> 01:11:16.640
is the conversations between all the interested
parties, because not only is it really

732
01:11:16.960 --> 01:11:23.840
well thought out, people are arguing
their case but in a really mannered,

733
01:11:25.239 --> 01:11:30.640
decent way. But all along people
are saying, if we do it that

734
01:11:30.760 --> 01:11:34.439
way, that's too complicated, and
it doesn't even matter if masonry is supported

735
01:11:34.439 --> 01:11:40.439
at all. If developers don't understand
this, they're always thinking along that priority

736
01:11:40.479 --> 01:11:45.680
of constituency. If we make it
easy for us as browsing manufacturers, do

737
01:11:45.720 --> 01:11:48.600
we make it too hard for developers
to actually do the thing we're trying to

738
01:11:48.640 --> 01:11:55.800
allow. And it's just a really
great get up issue of yeah, what

739
01:11:55.840 --> 01:12:01.840
about this? And maybe you're right, what about this? I'm absolutely convinced

740
01:12:01.840 --> 01:12:04.720
that they're going to arrive at the
best solution. I don't know what it

741
01:12:04.840 --> 01:12:12.760
is because these people have mighty brains, but it's so refreshing to see Anchor

742
01:12:12.840 --> 01:12:16.079
positioning is also coming, which is
coming soon. Do you want to describe

743
01:12:16.079 --> 01:12:19.640
what that is? Then? As
I recall, it's basically the ability to

744
01:12:20.159 --> 01:12:26.479
in a smart way position elements relative
to one another. So, for example,

745
01:12:26.520 --> 01:12:30.560
we were talking about popovers, and
you want the popovers to be positioned

746
01:12:30.600 --> 01:12:33.920
relative to some other element on the
page, you can use anchors in order

747
01:12:33.960 --> 01:12:38.039
to achieve it. You know,
we spoke about the fact that both like

748
01:12:38.079 --> 01:12:44.479
a tooltip instead of a yeah and
when and it will be probably positioned within

749
01:12:44.520 --> 01:12:48.640
the viewport, which is really hard
to do. And by the way,

750
01:12:48.880 --> 01:12:54.000
you know, as Bruce mentioned,
that both he and I worked at WICKS,

751
01:12:54.600 --> 01:12:58.800
Like half of wis code, tons
and tons of code, was about

752
01:12:58.840 --> 01:13:03.880
implementing behavior You're kind of like anchor
positioning in using just job script and CSS

753
01:13:03.920 --> 01:13:09.720
the existing the current job SCRIPTANCSS.
So theoretically it could get rid of half

754
01:13:09.760 --> 01:13:15.199
of wits's code. So I'm really
excited about that. And another thing that

755
01:13:15.239 --> 01:13:20.199
I think Carson Gross from HTMX mentioned
when he was in the show the ability

756
01:13:20.239 --> 01:13:26.880
to move elements in the dome without
resetting them. So think about the fact

757
01:13:26.920 --> 01:13:30.520
that you can move a video from
one page to from one part of the

758
01:13:30.560 --> 01:13:33.520
page and not part of the page, and the video will continue playing and

759
01:13:33.560 --> 01:13:38.000
not reset itself to the beginning of
the video. Stuff like that. Really,

760
01:13:38.000 --> 01:13:43.920
a lot of exciting things are happening
and making the browser and the web

761
01:13:43.960 --> 01:13:49.800
itself much more of an application platform
without needing to resort to really sophisticated frameworks,

762
01:13:50.399 --> 01:13:56.079
and also with that happening to resort
to crust the old component libraries.

763
01:13:56.119 --> 01:14:00.359
I was lot some research for my
last job, and I looked at three

764
01:14:00.399 --> 01:14:09.520
different component libraries which had an accordion
component which were full of crusty JavaScript that

765
01:14:09.680 --> 01:14:15.239
wasn't listening to the it wasn't checking
whether you were hitting space or enter to

766
01:14:15.640 --> 01:14:21.159
open a thing, and wasn't setting
all the accessibility property properties correctly. For

767
01:14:21.199 --> 01:14:26.640
the last four years five years in
HTML, we've had the details elements where

768
01:14:26.640 --> 01:14:30.920
this is just given to you with
all of the accessibility mappings built into the

769
01:14:30.920 --> 01:14:35.319
browsers for free. It's time.
If you haven't looked at the component libraries

770
01:14:35.359 --> 01:14:39.119
you're using for a couple of years, it's time to have a look and

771
01:14:39.159 --> 01:14:43.399
see how much of this stuff you
can retire, because it's technical debt on

772
01:14:43.439 --> 01:14:46.680
yourself and it's more for your user
to download, so it's hurting performance.

773
01:14:48.640 --> 01:14:53.239
Yeah, I've I discovered the details. So I was working on an application

774
01:14:53.279 --> 01:14:57.000
for my client and they said,
wouldn't this be easier in the details?

775
01:14:59.640 --> 01:15:00.520
What's that? And I went and
looked it up and I was like,

776
01:15:00.920 --> 01:15:05.479
oh damn, I'm not writing this
ever again, ever again. And I'll

777
01:15:05.520 --> 01:15:12.119
tell you what, chuck I live
and breathe ht amount. I can't blame

778
01:15:12.159 --> 01:15:15.239
anybody for not following it because so
much is going on in web standards.

779
01:15:15.239 --> 01:15:20.119
And one of the reasons why I
finished my last gig I'm starting a new

780
01:15:20.119 --> 01:15:28.279
on next month is I got tired
of filling my brain with stuff about node

781
01:15:28.880 --> 01:15:36.119
and Docker and all the ephemera of
build process and deployment process, and it

782
01:15:36.199 --> 01:15:42.000
was blocking my ability to actually understand
what was being given to me for free.

783
01:15:43.079 --> 01:15:47.560
I just couldn't absorb the information.
So I've chosen to go back to

784
01:15:47.560 --> 01:15:51.880
my roots and just go back to
the frontiest of the front end stuff.

785
01:15:53.560 --> 01:15:56.279
Yeah. Well, it sounds like
there's a lot of cool stuff coming to

786
01:15:56.279 --> 01:15:59.520
the web platform, so maybe we
should see if we can use it everywhere

787
01:16:00.119 --> 01:16:03.319
that that'd be real cool. And
we go around in a back to where

788
01:16:03.319 --> 01:16:08.319
we started, like an urebuus of
love. Right, I'm going to jump

789
01:16:08.359 --> 01:16:12.680
in with my picks real quick.
We're already past time. There's another call

790
01:16:12.720 --> 01:16:16.199
I wanted to get on. It's
a webinar presentation thing, so it's it's

791
01:16:16.279 --> 01:16:19.960
running without me, which is fine, but anyway, no, this is

792
01:16:20.000 --> 01:16:24.720
fascinating stuff. I don't have a
problem sticking around for a few minutes.

793
01:16:24.960 --> 01:16:30.239
But my pick, so I usually
do a board game pick, and so

794
01:16:31.000 --> 01:16:34.520
I'm going to pick a game called
Death Eater's Rising. If you've read or

795
01:16:34.560 --> 01:16:42.720
watched the Harry Potter movies, read
the books. Effectively, it's a game

796
01:16:42.760 --> 01:16:47.079
where you build a team of wizards
to fight off Voldemort's rise, and so

797
01:16:47.159 --> 01:16:53.159
Voldemort shows up about halfway through the
deck. You stick him in halfway through

798
01:16:53.199 --> 01:16:57.319
and then you just play untel he
shows up, and then if you've defeated

799
01:16:57.439 --> 01:17:01.000
enough death Eaters and you can,
you can defeat Baltimore and you play it

800
01:17:01.039 --> 01:17:06.239
with the cards and the wizards can
all take damage and write and you can

801
01:17:06.279 --> 01:17:10.560
heal each other and anyway, it's
a fun game, and so you have

802
01:17:10.640 --> 01:17:14.800
your team and you're working together with
the other players that have their teams.

803
01:17:15.680 --> 01:17:18.199
Board game geek waits it at two
point seven to three or two point three

804
01:17:18.279 --> 01:17:25.560
seven sorry, So that's pretty approachable. It's a little bit on the complicated

805
01:17:25.600 --> 01:17:28.079
side for people who are just casual
gamers, but you can definitely pick it

806
01:17:28.119 --> 01:17:32.079
up and it's a fun game.
You can play it two to four players.

807
01:17:32.079 --> 01:17:35.560
We found that at four players,
so you have a starting wizard.

808
01:17:36.119 --> 01:17:40.119
At four players, somebody gets a
wizard that's not ideal for the team,

809
01:17:40.800 --> 01:17:44.119
and so we usually just play it
with three people, but if one of

810
01:17:44.119 --> 01:17:46.359
the kids wants to play it,
then it makes it four. Then we

811
01:17:46.439 --> 01:17:48.439
just make it four and then we
do what we can to help the other

812
01:17:48.479 --> 01:17:56.279
personnel. Let's see one other thing
that I've been playing with lately. I

813
01:17:56.399 --> 01:18:02.159
usually don't do too many deeply technical
picks, but I've been playing a lot

814
01:18:02.199 --> 01:18:09.039
with veat lately, and wow,
it's magical. Like I'd get lost managing

815
01:18:09.359 --> 01:18:15.600
webpack or what have you. And
so I didn't always love having to use

816
01:18:15.680 --> 01:18:21.359
Webpack. I switched over rails has
import maps built in, and that mostly

817
01:18:21.399 --> 01:18:25.920
works most of the time. But
what I found is that veat gave me

818
01:18:25.960 --> 01:18:30.199
a couple of capabilities like hot module
reloading and stuff that import maps just didn't

819
01:18:30.279 --> 01:18:36.239
quite you didn't have it. And
then some of the older libraries their module

820
01:18:36.319 --> 01:18:40.920
set up just wasn't quite like you
had to play with it a little bit

821
01:18:40.920 --> 01:18:44.079
to get it to work. And
Beat seems to just mostly work. So

822
01:18:44.159 --> 01:18:51.199
I've been pretty happy with that.
And yeah, I think that's all of

823
01:18:51.199 --> 01:18:55.319
the picks that I have, So
let's go ahead and wrap it up.

824
01:18:55.359 --> 01:18:58.039
Thanks for coming, Bruce, this
was a ton of fun. Thank you

825
01:18:58.079 --> 01:19:00.399
both for having me and listen to
me, and people on the other end

826
01:19:00.479 --> 01:19:03.479
of this whom I can't see,
thank you too. All right, Well,

827
01:19:03.560 --> 01:19:05.039
until next time, folks, max
out

