Speaker 1: How'd you like to listen to dot NetRocks with no ads? Easy?
Become a patron for just five dollars a month. You
get access to a private RSS feed where all the
shows have no ads. Twenty dollars a month. We'll get
you that and a special dot NetRocks patron mug. Sign
up now at Patreon dot dot NetRocks dot com. Hey
guess what. It's dot net Rocks all over again. Nineteen
hundred and fifty nine episodes so far. We'll figure it
out one of these days. Yeah, one of these days
we'll learn what we're doing. I'm Carl Franklin. That's Richard Campbell.
What's up, buddy? Hey?
Speaker 2: Oh you know beautiful summer. We're recording this on Canada Day,
July first, So oh yeah, I'm gonna make a couple
of shows today and then I'm gonna head out and celebrate.
Speaker 1: Have some barbecue and some whiskey and all that stuff.
That's it. It's a grilling day, drink some Canadian whiskey.
Our friend Lemon is here, and as an honor to him,
or tip my hat to Lemon, my better no framework
has something to do with him. So roll the music
all right, man, what do you got? There's the link
right there that I just shared with you guys. This
is the script from the cub pub Conf two talk
that I did and beat lemon O, who is who
is the projected winner of pubconf because he always wins? Yeah, well,
between him and Randolph, you're in trouble. You know, those
two are wicked funny. This one is all about vocal dyslexia.
And you know vocal dyslexia. You can probably figure out
what what it is, right speech, old garb backs, coming out,
word words, that kind of stuff. There was a comedy
routine that I stole some of this from, but a
lot of it I wrote myself, and I wrote it
as if it was real. And you know that this
is a secret that I've been hiding from everybody and
editing out and you know, retaking my dot net rocks
shows all that stuff. And somebody came up to me
afterwards and said, I'm so sorry that said for what
it was a joke.
Speaker 2: Come on, but I sold it pretty well anyway, unless
I sold it well enough that they're like, nope, no,
we're rolling.
Speaker 1: Yeah. So the link is to a script in PDF
format and there you go as another joke. I had
slides up that had the actual correct wording right, and
so my script was you know, highlighted all of the puns,
so it was it was effective. Enjoy.
Speaker 2: It's also out of self control on your part. I
presume you did not look at the correct wording we're
focusing on.
Speaker 1: No, no, no, I went on. I went only on
my script, but I had to check to see where
I had to write little breaks in the script so
I could advance the slides. Yeah, or maybe it was
the slides automatically advanced every minute or so, was it
forty seconds? Yeah, I can't you lemon.
Speaker 3: Yeah, it's like night rules, so it would be a
new slide every fifteen seconds.
Speaker 1: Yeah ah yeah.
Speaker 2: And it's the challenge that's anything harder in this world
than a five minute bit, honestly, I know, because it's
so tight hard right Yeah, yeah, yeah, it's a way
harder problem. And you know, give me, give me an
hour any day of the week. I thought Yours Lemon
was hilarious.
Speaker 3: Yeah, I was trying. I was trying to remember that
one because that was when Todd thought that it would
be a gift to essentially like write my deck for me. Yeah,
and so I would have nothing to prepare to Yeah, exactly,
not like I wouldn't so like so essentially, I would
like before the show, you're riffing, before the show, I
would like write up a script of like possible jokes
of like Okay, well if he writes this deck, then
I'm going to do this joke. And he writes this deck,
I'm going to do this And it was just all
Dolly created versions of me in different occupations.
Speaker 1: It was great. All right, Well enough of that. Who's
talking to us today?
Speaker 2: Richard Campbell grabbed a comment of a show nineteen fifty three,
the one we did with our friend Scott Hunter back
at Build talking about coding agents, and I realized, like,
we're kind of over the top on AI topics right now,
like the past couple of months. But let's face it,
this technology is emerging in a big way and then
going fast.
Speaker 1: Yeah.
Speaker 2: I got to tell you I've been hanging out with
my friend Ken Tol's dad, which we'll drag back on
the show sometimes soon. He's literally demonstrating using these tools
to the point where in the meeting to outline the
requirements for the project, he completed the project. Wow, I
figured it was six weeks of coding done in a
two hour meeting.
Speaker 1: Wow.
Speaker 2: I think it's just astonishing and grinded. It depends on
the project. There's lots of different elements to all of this,
so the coding agent thing, you know, obviously relevant in
our commentators Jeremy Hadten who said this was a fascinating
episode that started to really show what the future of
programming is going to look like. And yet the end
result question on everyone's mind, not just technologies, is will
I be out of a job in a year or
two time work as a technologists and financial services and
this question is also the top of mind for my
business colleagues who respond to AI is often think instead
of what great services you go to offer to customers
if you had five assistants. Many of us have worked
on long lived projects where the list of minor but
customer annoying defects and future request just grows and grows.
There's always more important things to do. Imagine a world
where with the help of coding agents writing pullar quests,
the list is actually reduced to zero. Maybe we'll have
permanently delighted customers, permanently delighted.
Speaker 1: I do like that.
Speaker 2: Line, not like anybody's getting the bottom of the to
do list.
Speaker 1: Yeah, that's true.
Speaker 2: The real question is what are the skills you need
to focus on to be able to utilize these tools? Well, Like,
it doesn't surprise me that a friend like Kent Doll's
stat or any of us really because you can think
through the whole problem and you're shepherding these tools of
limited capability. Yeah, so these parts that it can code.
Speaker 1: And I still believe that unless you've done what the
tool is doing and can spot things that it's doing
wrong or that you don't want it to do particularly
that way, and can correct it, Yeah, you're basing your
whole career around something that may or may not serve you. Well,
So I still think that you have to be a
developer and you have to have experience to know what
to correct. Yeah, yeah, I don't disagree.
Speaker 2: And certainly as soon as the complexity reaches a certain level,
these tools tip over.
Speaker 3: Yeah, in all of these things, you know, obviously, like
you know, our hearts bleed for the juniors because you know,
you need to have somebody get a foothold on those
kinds things. And that's the first place that this thing
is supposed to supplant except for like the thing that
like with all of the doom saying and all of
the and all of the like cataclysmic you know, earth
shattering like AI stuff that I think people lose sight of.
Is I remember living through the entire squarespace revolution.
Speaker 2: Sure, you know why I wouldn't even build a website again,
Yeah exactly.
Speaker 3: And it's like nobody's going to hire somebody like me
because they can do something in square space. It's like, yeah, no,
you absolutely can. Like if you're a you know, a
Thai restaurant, that is the right move. That's exactly what
you should be doing. Word Press all that, Yeah, I
mean that those those those really awful like word Press
kind of like UI Builder things. Yeah, you know, eventually
there's like gets hacked. So that's a thing, but like
until that time, you'll have a site that like is
slow but like probably works okay. And so that's that's
a thing that we've lived through a bunch and the
idea of doing like client service website for money things
still exists because there is a level that that's not
attainable at.
Speaker 2: Sure, are you really just being more productive you know,
more of the same.
Speaker 1: And trusting too, Like a customer is going to trust
an expert whether or not they use AI. If they
use it, great, they're more productive rather than just going
directly to an AI and trying it themselves, because that's risky.
Speaker 3: And you know, I've been in a lot of client
meetings and like a lot of client meetings, and the
idea of even just getting something that you can spec
out for a coding agent to do, you know, like
the average client like explaining their requirements is Labyrinthian and
it's Brazil and so like.
Speaker 2: We get back to this idea of you you thought
your job as a software developer was writing code.
Speaker 1: Yeah, yeah, I thought it was to develop software.
Speaker 3: Yeah yeah, yeah yeah.
Speaker 1: So the one thing I will say to the junior
develop is before you write a line of code or
ask the AI to write a line of code, you
should consult with the AI given your spec to come
up with an architecture and then get the buy off
from your customer on that architecture before you do anything right,
because that's going to be your limiting factor. You don't
have experience to know what the architecture should be. You
can get some ideas from AI but ultimately your customers.
That's all I'm going to say for now, Richard, you
can get back to the comment.
Speaker 2: All right, Jeremy, thank you so much for your comment.
And a copy of music Coba is on its way
to you. And if you'd like a copy musakobea, I
write a comment on the website at dot NetRocks dot
com or on the facebooks. We publish every show there
and if you comment there and everybody in the show,
send you copy of Musickoba.
Speaker 1: And Music to Cobey is still going strong, twenty two tracks.
You can get the whole collection in MP three flak
or wave format of Music to Code by dot net.
All right, man, let's talk about what happened in nineteen
fifty nine before we bring on Lemon. All right. Some
significant events included the admission of Hawaii as the fiftieth
state in the United States. Wow Yeah, the tragic plane
crash known as the Day the Music Died, Buddy Holly
Big Bopper, Ritchie Valens I believe for those three, and
the launch of the first American satellite explorer seven. Additionally,
it was a pivotal year for cultural and political changes,
including the rise of Fidel Castro in Cuba, and the
introduction of the Barbie doll. What do you got on
your list? Richard?
Speaker 2: The IBM fourteen oh one, the first mass produced mainframe
transistor based This is still before you know chips exists.
They called it literally the model T of computers. Twelve
thousand units sold over fifteen years or so, going out
of production in seventy one.
Speaker 1: Wow.
Speaker 2: Introduction of the first photocopier, the Xerox nine to fourteen
plain paper copier. There were specially paper copiers before that,
the transfer paper and stuff up by a plain paper copier.
And my personal favorite, the lecture from Richard Feynman called
There's plenty of Room at the bottom where he describes nanotechnology. Wow, Wow,
that's Fineman.
Speaker 1: That's some stuff. Nineteen fifty nine. It's unbelievable. Yeah, okay, well,
I guess we should introduce our guest Lemon that's his name,
first name, last name, Yes, with a lifelong passion that
you know what that joke is from? It was I
Am Mork from the planet Orc. Is that your first
name or last name? Yes? Robin Williams all right, with
a lifelong passion for the weirdness of the Internet and
a day job as a development lead for whoever hired him.
Lemon spends his professional time making websites for money and
his free time making websites for no money. I should
have read this first. He's created a number of stupid
things for the Internet, like the games over on kind
of Fun, the wiki how guessing game, Damn Dog, the
Google autocomplete game, idiots dot Win, and other things of
questionable use. He also hosts a podcast that looks at
some of the Internet's weirder subcultures. It's not safe for
your work unless you work somewhere really cool. Welcome Lemon. Thanks, yeah,
very cool.
Speaker 3: That's so great to talk to you guys.
Speaker 1: Good to have you on friend. Yeah. What's on your
mind these days? Boy?
Speaker 3: A lot, a lot of the the idea of Because
one of the things that Richard and I were talking
about a little while ago is is that I think
that the idea of the traditional web is coming back
to like win a little bit more. I think that
the sort of like movement towards like super weighty like
spas is starting to move away, which means that which
means that I think so, I think so, and that's
because I'm really excited to tell a bunch of people
that I was right.
Speaker 1: That's the important part.
Speaker 3: Yeah, exactly. But like you know, even like in the
front ends world, like the the newest hotness is astro,
and like an astro is cool, but like, but I
do like that, like the thing that is the real exciting, new,
brand new tech sort of deal is also something that
is traditional server rendered like MPa, you know, index dot
HTML pages. And I think that that's that's in my mind,
a little bit of a return to sanity, which I
think is great.
Speaker 1: Now this is a this is a great time to
ask this question. Are you talking about sites for companies
that their customers are b to B or internal applications,
or are you talking about customer facing websites that are
heavy on the client side.
Speaker 3: I think that I think that there's a little bit
more of it happening when it is like, uh, you know,
public or customer facing. The idea of when U URLs
matter more, when when discoverability matters more, when open graph
stuff matters more. That's where like MPAs do a better job.
Speaker 2: I'm just looking at the set of URLs we just
had and thinking, look, how coolies are kind of dot
fun and idiots dot win and damn dot dog and
Astro dot build.
Speaker 3: Yeah, yeah, yeah, yeah, there's so many. There's so many TLDs.
I mean, there's like the idea of I mean, you know,
like I try to every once in a while try
to talk clients out of buying you know, the dot
com or the dot org because you'll have to end
up with something that's pretty lame. But if you do
have literally like seven hundred like TLDs, you can probably
find something really and like damn Dog, that one specifically
was I saw the like dot dog was a valid
tld and I was like, can I buy damn Dog?
And it was like yeah, and it won't be that
much and I was like okay, cool, and then I
bought it and I was like okay, what goes here? Yeah,
And so like the game that I built for that
domain doesn't really relate to the name, no exactly, Like
it doesn't like wiki how and damn Dog don't really
have anything to do together. It was just like, well,
I got this domain, I got this idea, let'swush them together.
Speaker 1: No, that okay, so funny.
Speaker 2: Yeah, it's there is an interesting wave I think people
are tired of the megasites. Yeah, that that tooling's gotten
so much better. Like I've had a whole conversation the
other day about how could we build an Amazon that
wasn't Amazon. That's just an interface to looking up all
of the sites for products that you're looking for. And
I'm like, aren't you talking about Google? It's like and
it's not Google. It's like, okay, it's just the loathing
of the tech giants that we've got. Is that what
this is?
Speaker 3: I mean justify So I mean like I think that
you know, Fang's done to a fair amount in the
last couple of years to get some resentment.
Speaker 1: Yeah, yeah, a fair bit of that.
Speaker 2: And you know, again looking at the positive side of
this AI wave in that we do have tools that
could do or searching for us, I also wonder if
we're you know, we're getting walked back to bare metal
coding because same thing, the tools are really getting really
good at doing vanilla JavaScript.
Speaker 3: Or doing vanilla JavaScript, which is the part that I
never want to do, you know, So like like like
one of the things is that like I've never like, okay, sure,
like if you're writing code, the one thing that you're
granted every once in a while, is you get to
experience a flow state and that's great. Yeah, you're like
where you're writing code and it feels good and then
you're like an hour in it starts to feel terrific
and like that's a lovely feeling. But like you can
get that in a lot of different ways and genuinely,
like the actual writing of code, syntax, indenting, semicolons, I
don't like that at all. Like I've never been interested
in that kind of thing, like all of those like
internal like religious holy wars that people will have about
like this this syntax versus this syntax. Like, boy, if
we can agree on it, yeah, that's all that matters.
Speaker 2: Yeah, you know, I got to tell you the past
few weeks, I've spent a lot of time with a
bunch of twenty something developers. They really don't care about languages,
frameworks or any of those things. They are just trying
to build solutions. We're here, we are, you know, concerned
for the junior developer. I am not concerned about these guys.
Yeah they would, they are. They are totally interested in
solving solutions and with the stack they're use is the
least interesting part of that.
Speaker 3: I love I love that. Yeah, like be omnivorous and
you know, like do you like view or react? I
don't know, Like whoever solves the problem.
Speaker 2: And the other side of this is because they can
also deliver an MVP in a week or a couple
of days. You know, when we were committing to nine
months to the first you know, meaningful build, you could
spend a few days talking about what stack to use.
But if you're going to be done in a week,
you shouldn't spend five minutes on it.
Speaker 1: Just go right.
Speaker 2: The longer debate, the slower you're going.
Speaker 3: Yeah, yeah, And these things get to get cheaper because
if you are able to build something with that sort
of expediency to a certain extent, your QA is that
your QA is the public launch. So like the plans
that are the problems you thought you would have are
actually proved out to be something different because now actual
customers are using it.
Speaker 1: Hey, sorry, I was quiet for the last few minutes.
I discovered a bug in our or a situation in
our admin that we use in the back of house.
You are the first guest that does not have a
last name, and so my software was looking for a
space to put it into first name and last name,
and lo and behold you came up blank love it
and the guests. So I had to actually pull up
the database and do an update query and that's why
I've been signed. So but I did enjoy your conversation.
Speaker 3: It's so funny you your yours is not the first
database that I've broken with my last name?
Speaker 2: Or is it only a last name? When do you
switch to a symbol? Because it worked for Prince?
Speaker 1: Yeah?
Speaker 3: Right, it didn't necessarily work great for Prince, like he
did go back.
Speaker 1: You can't fill out a form on the internet. Yeah
for example.
Speaker 3: Yeah, Like nobody would say that, like symbol was the
best period in Prince, Like I love Prince, I'm with you,
but like, but you wouldn't say that like symbol time.
Speaker 2: That's what his best music was created, and that's when
he was fighting the music industry and winning.
Speaker 1: Hm. That's right, that was really what that was about.
The solo on while my Guitar Gently we stands out
as one of his most spectacular performances.
Speaker 3: Oh that's so good, and you know you know the
backstory to that.
Speaker 1: Right, Well, I know all about the song, But what
in particular are you talking about.
Speaker 3: So it's it's uh, it's it's it's it was the
Rock and Roll Hall of Fame, it's Eric Clapton, it's
other guitar guys. I don't remember who else is in there.
Speaker 1: Jeff Lynn, jeff Lyn, Ok, yeah, Tom Petty Yeah.
Speaker 3: And so essentially, like the Rock and Roll Hall of
Fame put this this performance together and they cast it,
and so you got these like guys that are sitting
around and doing their guitar thing, and then Prince is
there and they're like, what is what is the kiss
guy doing here? Like this is what and like, and
so they didn't want to hang out with him. They
didn't they didn't think that he was on their level,
and so he kind of like sulked in the corner
and then went home on day one of the actual
like rehearsals, and then and then that was it. That
was that was that was the last thing that happened.
So that actual performance was him showing up without any
of them knowing, like getting on stage shredding their faces
off for two minutes. And then he like hired a
guy to like be in the rafters so that he
when he threw his guitar up in the air, somebody
would catch it.
Speaker 1: It just never came down. Yeah, And they never came down.
Speaker 3: Yeah, and then just like walked off on stage like, yeah,
I'm legit and you just learned that.
Speaker 1: I don't want to get off on a rand about Prince.
But it goes without saying that throughout his career he
never put himself forward as the new Jimmy Hendrix, you
know what I mean. He played guitar just like another
part in a song, and a lot of times it
was just rhythm. Of course, in Purple Rain he did
some spectacular things, but other than that, you know, and
who knows what that was people. I think he was
trying to hide it, you know, from the public, just
waiting for that moment that while my guitar gently weeps,
moment to prove himself as a shred absolute shredder. Yeah. Yeah,
I don't know. I could be totally wrong. Maybe I
just didn't listen to enough Prince Real stuff. You know.
Speaker 2: It was then an air crafton line when they asked
who's the best guitar? What it's like being the best guitarist,
he said, I don't know, have to ask prints.
Speaker 1: That's pretty good. Probably he's also named like Hendrix and
Almon and yeah, yeah, he was blown away by Jimmy
Hendricks when he saw him the first time, as was everybody. Okay,
the heck are we talking about here? We're talking about
progressive web apps in twenty twenty five?
Speaker 2: Are we walking towards this? I wanted to talk about
progressive webps just because we haven't talked about it in ages. Yeah,
and the areas I can tell. The only thing people
do with it is create an icon on a phone with.
Speaker 3: Them Yeah, yeah, which is which is something. It's really
just something you know, you can you can check a
box by doing that, and.
Speaker 1: That's Notifications are hard.
Speaker 3: Right, Notifications are hard, And a lot of times when
in my mind when a client says to me, like
we want a mobile app, what I actually hear them
say is we want notifications. Like you don't actually want
a mobile app, You just want to get push notifications
to your customers. Like you when you say I have
a restaurant and I need my restaurant to have a moment, Well,
that's that's silly. We're actually saying as we want to
sort of like push notifications onto our customers and like,
and all of that architecture is still like you know,
it's been in the PWA system for a while, and
you can do it with all of the same you know,
Twilio and all of those services will handle that just
the same.
Speaker 1: Uh yeah, that's not so much the notification itself. It's
putting the little number red circle number on the icon
on the phone. That is the stuff of legend. Like
in Android, it's a little easier to do in iOS.
You have to have a Firebase account and of this
and a that and services and all that. And in
a PWA, I thought it was not allowed by iOS.
Last time I checked, you couldn't do it. But it's
been a while since I've done a PNWA, so.
Speaker 3: You know, interestingly, you're actually now up against a point
of ignorance for me, because I don't know if you
get the little if you get the little dot uh
on on a p W A, I bet you don't. Yeah,
but I don't. I don't know that for a fact.
Somebody would have to fact check me on that.
Speaker 1: I I kind of think that, and I've said this
before that Apple would rather you put an app in
the App Store.
Speaker 2: Than every time, you know, they resisted. P w A
is the longest, but they also support them and.
Speaker 1: They so it makes sense for them to sort of
cripple if you will, or not allow certain things that
real apps.
Speaker 3: Have, and they still have you know. That's that's uh.
There's some things that are available in Android that aren't
in iOS right now. One of them is you don't
get gyro in a p w A. You can get
it on an Android, but if you want to, for example, tell.
Speaker 1: Us what that is, like like like oh gyroscope.
Speaker 3: Yeah yeah, yeah, I like it, like if I want to.
And this actually came up not that long ago where
we were working on something where we wanted to know
if your phone was on its screen or on its
back right, And we did that and it actually was
totally fine on Android, didn't work at all on iOS,
so we had to kind of like reconfigure how that
thing worked. The other thing is they will never give
you NFC. You don't get that that's for Apple pay
on get Out.
Speaker 2: Yeah I did just look it up and yes, a
p w A app running on Android will dot uh
for notifications Oh okay, and it won't on it won't
on iOS unless you use the badging API as well.
Speaker 3: So you still could then you can, but you just
have to do all right, Well, that's that's something that's
not terrible.
Speaker 1: Yeah, that's something. And does JavaScript have access just once
again it's if iPhone or if if Safari, right, does
JavaScript have access to the gyroscope? Yeah it does, Yeah
you can use you still couldn't use it.
Speaker 3: Yeah yeah, yeah, yeah you can do it. It's just
that it just that your iOS device will never ask
for permission nor grant it, so all of that stuff
be ignored.
Speaker 1: Okay, what are the other gotchaes about PWA's that we're
not talking about.
Speaker 3: I mean, I think I think some of the other
gotchas are like the you know, like the idea of
people saying like I want it in the app store
is an actual demand. I think that that's a complicated
thing because I think that like being in the app
store is yeah, you know.
Speaker 1: Be careful what you ask for.
Speaker 3: Yeah, right right, you're you're you're you're slicing your cake
a little bit, because I don't think that like, you know,
there there was a time when there was there was
a time when people were using those app stores for discovery,
and I don't think that's the case anymore.
Speaker 2: No, once you have a million apps, you can't find
anything anyway, and you're mostly worried about is this the
app I'm actually looking for?
Speaker 1: Right?
Speaker 2: I tend not to go you know when I When
I buy a product that requires an app to use it,
probably typically a smart home product of some kind. The
one thing I don't do is go to the place
store to look for the app, because I'll get the
wrong one.
Speaker 1: Initially, give you a a QR code or or if
it's just a name, they'll show you the icon so
you can at least tell it from all the other fakies.
Speaker 2: Yeah, if you're gonna, if you're gonna encourage people to
go to the play store, give them lots of evidence
of this is.
Speaker 1: The correct app.
Speaker 3: Absolutely, this is.
Speaker 2: The name of the company, this is the icon. It
just speaks to how messed up app stores are that. Yeah,
we don't trust them for a reason.
Speaker 1: Yeah. Spring brings you back to the U r L thing, Right,
somebody searching for the dot com completely unnecessary if you
have a QR code and.
Speaker 3: Then the other sort of uh, what do you want
to say, like challenge to the thing is that in
order to do like in order to do kind of
like anything beyond Baby's first pw A, you have to
do things with service workers. Yeah, and a service worker
is a complicated thing to get started in because because
you're doing cashing. Now you're doing cashing for a thing
that catches, and that's complix. Yes, yes it is, because
if you screw it up and you get that into
you know, the actual like public, and you didn't write
your service worker right, well, now they've got a thing
that's going to be locked in time forever. So you know,
doing that first version of your service worker before you
get out to the public, making sure that that's pretty
rock solid and you can do cash in validation is important.
Speaker 1: Very good. I did a PWA version of I think
it was either Music to Code Buy or something like
that on the dot net Rock Show or maybe I
can't remember what it was, but I have it out
there and it was it was pretty good. There's you know,
dealing with the cashed data was obviously an issue. And
if you ever have to, I know that sometimes if
the cash gets busted or something broke, then you just
like put a question mark at the end of the
RL and some entropy data. But I don't recall it
being a deal breaker for the PW. I have a
PWA right now that I use in the house, and
I have a on my mantle. Richard knows this. On
my mantle, I've got a big screen with a WPF
that WPF app that randomly shows pictures for thirty seconds
at a time, And I basically have an app that
goes to a signal our hub that's also in the
WPF app with a local DNS. Okay, you know. It's
a progressive web app and it shows the thing and
I can advance next previous, I can turn on captions
like I can do all sorts of things from it.
And it's very handy and I didn't have to go
to the app store. I just gave my wife the
URL and she installed it and I installed it, and
that's it. It's like a remote.
Speaker 3: That's that's very fun. It seems like unnecessary over engineering,
but I love it totally.
Speaker 2: Have you met Carl Franklin coming out totally signal He's
going to use signal?
Speaker 1: Yeah, it's totally for the fun of it. Projects.
Speaker 2: Yeah, but again, you could have been a QR code
right to just generate it like that.
Speaker 1: Now I would yeah, I wrote it before QR codes
or a thing. But uh yeah, just because they don't
make remote controls that I can use with my app.
Yeah yeah, they probably do actually, but I didn't want
to do that.
Speaker 3: Yeah, you wanted to use signal.
Speaker 1: R absolutely in a progressive way.
Speaker 2: Well, and of course my instinct as a developers to say,
isn't there a framework I can use? But it's like
every framework does p w A stuff, doesn't it. Yeah, yeah,
it's not necessarily there's any p w A frameworks per
se as there is a bunch of frameworks and they
leverage the pw A library.
Speaker 3: I can run into that sometimes, where like I've seen
people use because like a lot a lot of the
other frameworks, you know, your VET and your like webpack
and roll up or whatever will essentially have like a
p to BA starter kit. But I always found that
weird because it's, like you, the idea of a progressive
web app is that it is progressive, like you're you're
making a website and then you're adding features like condiments. Yeah,
so the idea of well, let's get every single capability
in here. Okay, do you need it?
Speaker 1: Like?
Speaker 3: Where do you go? What are you going for like
it's a website, add stuff as you need it.
Speaker 1: Start with the basics.
Speaker 2: Yeah, well, and I think I opened with the it's
just about putting an icon on the phone.
Speaker 1: Yeah. Well, this seems like a good place for a break.
So we'll be right back after these very important messages.
And as a reminder, if you don't want to hear
these messages, you can become a patron for five bucks
a months. You'll get a feed for dot net rocks
that has no ads. We'll be right back. Did you
know you can lift and shift your dot Net framework
apps to virtual machines in the cloud. Use the elastic
beanstalk service to easily migrate to Amazon EC two with
little or no changes. Find out more at aws dot
Amazon dot com, slash Elastic beanstalk. And we're back. It's
dot net rocks. I'm Carl Franklin, non Richard Cabell, and
that's our buddy Lemon and we're talking about PWA's and
AI and whatever other weird stuff he wants to talk about.
So the floor is open. You got some more weird
stuff you want to talk about with PWA or not?
Speaker 3: Oh man ah, you know, I actually one of the
things that that I'm hoping to cause I don't know
if you know, I don't know if you know when
this episode's coming.
Speaker 2: Out wed July seventeenth.
Speaker 3: July seventeenth, Okay, all right, well that's going to be
my deadline then, because I actually, like I have this
little I don't want to say arcade, but like essentially
like the kind of fun thing which is just a
bunch of like dumb little games and like games no, no, no, no,
like little web games. Okay, that's that's actually a main
cabinet right back there.
Speaker 1: It is.
Speaker 3: Yeah, yeah, but uh but yeah, so I actually re
engineered this thing from scratch because I was originally using uh,
web sockets and so because I wanted to make a
multiplayer game and proof that I could make a multiplayer game,
and so I did the whole thing with web sockets,
but it broke all the time, and so like people
would want to do these, like like I made these.
This one game called Invalid, which is the slogan for
it was a trivia game of unnecessary suffering. And the
game works. The game works well except for like, man,
did that thing crash?
Speaker 1: Does it happen much? Buzzer though, that's that's the thing
it does.
Speaker 3: It has it has a flying pig. Yeah, and then
there's a hacking mini game at the end.
Speaker 1: Nice. So congratulations, pigs are flying, You've done it kind
of thing.
Speaker 3: No, no, no, no, you know you can essentially, you
can distract one of the players by putting a flying
pig on their screen, and then the flying pig just
gives you useless facts. Distract you. That's from the thing
that you're actually trying to do, and it goes and
every time it gives a new fact, it goes like
it oints, you know. But anyway, Yeah, so I had
built this, I had built this this thing out and
it was doing. It was doing just kind of like
a problem because of this this web socket thing. So
I actually did the whole thing again in fire Base
because I knew that that you know, at that point,
like disconnections and the reconnections were less relevant.
Speaker 1: Yeah.
Speaker 3: And so then the new one that I will be
launching with that is a game called this Meeting has
points nice. And so the idea is that you're going
to be in a meeting with your coworkers and it's
going to be boring and it's going to last an
hour and a half and several of the people there
won't pay attention. So therefore, when you get into the meeting,
you all join this lobby at the same time. And
when the meeting starts, it flips over five cards, right,
and so it'll be like alligator suitcase ten points, like
let's take the bull by the horn five points or whatever.
And so you get these phrases, and so your goal
is you want to slip one of these phrases into
the meeting without anybody knowing. And so you say the phrase,
you click on the card, and then a little timer
goes by, and if that timer elapses, then cool. You
get the points. However, if somebody catches you, they can
type in the phrase and then they steal your points
from you. So the two ways to play or either
just try to spam it out or just don't like,
just sit back and just pay attention.
Speaker 1: Right. Have you ever been threatened with getting fired because
I'm just curious.
Speaker 3: Yeah, I've been. I've been threatened to get fired for
a lot of reasons.
Speaker 1: How I distracted everyone from the content of the meeting.
Speaker 2: In one easy I would argue that I'm encouraging your
coworkers to pay more attention and meetings.
Speaker 3: You know, they in order to play the game, well,
you have to pay more more close attention. So this
is a productivity tool. If anything, I'm going to sell
it to it. Lancian, I love it.
Speaker 1: Yeah, that's great. I do you know?
Speaker 2: Talking about games, you mentioned jack Box TV, which was
big in the during the pandemic. Oh, is that what
you talk about? A great web client? Anybody's ever played
one of these? It's like one of you has to
own the Jackbox game. It's multiplayer, and then you're on
a streaming zoom or a team's not teams, I mean
you're on one of those, and then that hosts the
game and then all the players play from their phone.
But you don't need you know, it's at works so well. Yeah,
that people forget the magic that's going on there.
Speaker 3: And they and they had i mean a couple of
things lined out, you know, to their benefit, right, Like
like Jackbox was cresting at the exact time of you know, pandemic,
and so everyone was playing jack Box, which just happened.
But like, but that's because they were ready for it.
Like they built something that's really stable, they built something
that would work in person, but it would also like
work in any kind of environment. You could play it on,
you can play it from anywhere, and and it like
their growth was because they built something really really strong,
so that when they had it wasn't like this thing
where like, oh no, your thing's really popular and now
it crashes and now it stinks.
Speaker 2: Yeah yeah, I don't know that it ever tipped over ever.
Speaker 3: And they didn't. And they didn't even like you know,
I mean, they kept their same model, which is like
we're gonna have a pack of five games, and we're
going to just keep selling these like different packs of
five games. But always worked on this idea of like
there's going to be one host and however many players,
like a hundred players, Sure.
Speaker 2: Whatever, there's one there's one game that supports like one
hundred players. So I've used that one for like a
team meeting where there was thirty something people and you
could yeah, fire. And this was part of the fun
of doing this, was like, hey, we're gonna get to
some serious stuff, but let's play a game for twenty
minutes first while everybody's getting in, you know, rather than
just sitting around.
Speaker 1: Yeah yeah.
Speaker 3: And they finally, finally finally made something that it's a
little hacky, but like I have enough of those Jackbox
packs now that like there's a thing called like the
jack Box Launcher, right, so essentially like you bring up
a thing and it has every game that you own,
and then when you click on the.
Speaker 2: Yeah, because there's like nine now, like I'm always hunting
for a particular game and I never remember which.
Speaker 3: Pack it's really yeah yeah yeah, yeah, sorry commercial.
Speaker 1: I can't say that I ever played it.
Speaker 2: Yeah, that did the you talk about a perfect plua.
Like you go to a web you go to I
think it's Jackbox TV, Slash whatever code it is for
the game you're playing. It's generated on the spot. It
drops into a chrome less browser like it's just and
it is so seamless you never remember.
Speaker 1: It's a web page.
Speaker 2: You just it is exactly whatever he developer should aspire
to wow in a client.
Speaker 3: Yeah, it works really simple, and because it is just
like you go to this Jackbox TV. You don't have
like I remember playing like Space Team, which is fun,
but like but in order to play that with friends,
there's like four minutes of like, oh, you have to
go to this thing and download this thing and then okay,
we have to like whatever, Like, no, you go to
this u ur l, you punched in this code. You
know my my eighty three year old father like can
do it and has.
Speaker 2: Can get a comp Yeah, and doesn't matter what phone
you have or you're using a tablet or a second
screen on the PC, like you name it, all of it.
Speaker 1: All of those scenarios just worked.
Speaker 3: The one thing that it took them too long to
figure out, though, is and is it took them too
long to understand that as a PWA, you actually do
have access to weight control, right, because if you're playing
jack Box, a time can go by where you're just
not touching your phone, sure for a while. Yeah, and
so you know, my my thing goes to sleep pretty fast,
and so sometimes you would be like using the thing
and then it would go to sleep, and then you
would like turn your phone back on and maybe it
lost connection. You have to like reconnect or whatever. Yeah,
And eventually they got on top of that, but like
it did take them a while where it was like.
Speaker 2: And it's something that PWA's can't do to say, hey,
can you do?
Speaker 1: I don't want you to go to.
Speaker 3: Sleep as long as you are properly installed. You can't
just do that from being a website. But as long
as you are installed, then you can get you can
request for and receive permission to control wake access to
basically be like, as long as my app is the
one that is in focus, override these sleep controls.
Speaker 2: Okay, And it just seemed its interesting to think go
through the power of getting you know, get past the
icon and get into these other capabilities, like you can
do quite a bit.
Speaker 3: Yeah, like like like the idea of like even like
one thing that I always found pretty useful is just
that like native sharing, to be able to say like
I've got my little blob or I've got my text
snippet or I've got my whatever, and I don't know
what you have installed in your machine, but if you
do have Telegram, you can click on this and then
it's like you want to share that via Telegram because
there you go.
Speaker 2: Yeah, and I think Jackbox even did that, like you
could take a screenshot off off the game from your
phone and fire it up.
Speaker 3: Oh yeah, no, they they did. They did things where
and this was this was later on, but they did
the thing where when you finish the game, you got
like little and so it would like create like animated
gifts of like.
Speaker 2: Yeah, they gave out awards right for worst player and
how kind of thing.
Speaker 3: Yeah, exactly and so and so you know, we're able
to do a thing where you can I don't want
to say the T word, but you know you could.
You could post the thing on blue Sky, right and uh,
you know that's that's smart for them. I don't know
how many people took advantage of it, but.
Speaker 1: Yeah, yeah, it's cool, absolutely all right. Should we change
gears a bit?
Speaker 3: Absolutely?
Speaker 1: Yeah.
Speaker 2: I think I appreciate the sort of scope on that,
and I do like PW PWA Builder, Like for folks
who are still trying to find their way through some
of these things are our tools that can help.
Speaker 1: You.
Speaker 2: Don't expect anybody isn't using PWA. All of these frameworks
use it to some degree. It's just a built in service.
It's great with Blazer web assembly perhaps. Yeah, yeah, that's
how I build mine. Sure, it's a nice template in there.
Speaker 1: Yeah.
Speaker 3: I think that PWA builder is at least a very
good first step where like it'll give you your first
man and your first service worker. You know, that's probably
not the one you're going to go with, but like
be the one to start with at.
Speaker 2: Least get a feel for something what you're experimenting with.
All right, I want to talk about some of these
apps you build, these games and other as you co
refer to them, stupid websites. Yeah, are they just experiments
in software development for you?
Speaker 3: They're bulls. I think there's there's two things that have
to come together in order for one of these things
to get off the ground. Actually a third thing is
that it has to be interesting until the end. But
like there's got to be some sort of idea. For example,
Like one that I've abandoned more than once was like
bop it the website You know what to bop it is?
Speaker 1: Right?
Speaker 3: Little now?
Speaker 1: What is that now?
Speaker 3: So it's a little plastic piece of crap that they'll
sell it, you know, Walmart or whatever. And and it's
got like a little switch and a knob and a
turney thing and a button or whatever. And then when
you start the game, it goes like bop it persia.
And then like you have these like actions that you're
supposed to do and it and so you you know,
you're supposed to do the right action under a time limit.
Speaker 1: So since the tariffs, the price has gone from ninety
nine cents to ninety nine dollars, right.
Speaker 3: I would assume, So yeah, yeah, So my idea was
to do something where like you go to a site
that is bad I sort of modeled after ABC News,
and the very first thing that happens is that it
pulls up like a GDPR banner and it goes dismiss it,
and then like, uh, like a you have you have
a time limit to dismiss it. And then once you
do it, then it says like follow us on Instagram,
like a little modal comes up close it, and so
it just so it's trying to give you a task
to solve, but while you're doing it, you're like it
keeps annoying you and and you lose points every millisecond
that this annoyance happens. So anyway, I was building this thing,
and I was like, ah, you know, this is a
cool idea, but it's so big on scope and and
it's a little hard to like to let people understand
like whether where the fun is and so just trying
to figure out like that thing where like it's like
it's it's immediately cognizably fun, like the one that I
did with the there's one that I made where you
have to like rank different celebrities based on their cameo values,
like how how expensive is this person on cameo and
and so so essentially, I want to have an idea
that like that is sticky and that I can kind
of like get in and get out pretty easy. Hopefully
it takes like four minutes to play. And then the
other thing that I wanted to do is something where
there's something I haven't done here before. There's some sort
of you know, like new interface element or or like
new piece of technology that's just unfamiliar to me, so
that I can like use this in a safe space
to be like, if it doesn't work, who cares? And
if it does work, then I've learned how to do
that thing.
Speaker 1: Yeah. How many of these things do you have?
Speaker 3: Conservatively? About a dozen? Okay, yeah, let's say a dozen.
Speaker 1: I'm sorry, I'm stuck on the not poutine side.
Speaker 2: Oh yeah, yeah, okay, gonna tell you that's nottine.
Speaker 3: I was watching. I don't know if you've watched Top
Chef at all?
Speaker 1: Sure? Oh yeah, Top Chef Canada is the latest one.
Speaker 3: Dude, Yes, exactly so they were just in Canada and
they were like, hey, chefs, uh, you're all gonna be
doing like a poutine challenge. And I'm like, oh no,
don't make them do that. And like like one guy
like did like a like a like a like a
scale in pancakes and a burnet sauce.
Speaker 1: I know, that's ridiculous.
Speaker 3: I was like, this is unacceptable.
Speaker 1: So so yeah, like you know what that's like, that's
like taking a Prince solo and just and and instead
of playing it no for note, making up your own stuff.
That's what it's like.
Speaker 4: Yeah, yeah, it's it's it's it's an infuriated like like
the idea of poutine has three three ingredients that must
be observed, and at that point you want to throw
pork belly on it.
Speaker 1: I know, Okay, go ahead, yeah yeah.
Speaker 3: Like you wanna, yeah, you want to throw some scallions
in there? Cool, whatever, But like French fries, fresh cheese curds,
do not fry them.
Speaker 5: Squeaky cheese curds, squeaky cheese curds, squeaky cheese, And then
you need some and then you need brown gravy, yes,
and and so so this the whole thing was like,
was just this collection, and some of them very much
are Canadian places that are servingdes that.
Speaker 3: Purport to be uh poutine but aren't.
Speaker 1: Right.
Speaker 2: Yeah, I mean love it. You can go back and
forth on the tater tots or tater tots fries.
Speaker 1: I would let that slide, you would, Yeah, I would,
because it's still fried potatoes. It's still fried, but just
in a different shape.
Speaker 3: I don't know, Like, okay, well, okay, but where is
where is too far?
Speaker 1: Then? Like is where's the line? I wouldn't substitute broccoli?
Speaker 3: Are you accepting home fries?
Speaker 1: No? Because home fries. Home fries is kind of like
a oh yeah, home fries is potatoes and onions and
all that stuff like mashed up in a mush. Right?
Where are different? Are are our single units that you
can pick up with a fork instead of scooping up
and whatever? Hash browns are the are the opposite of
home fries. Those are the crispy patterns of potatoes. I
don't know as if I would do that either, because
now you have to cut it right. I mean, the
whole idea of a poutin is you could stab it
with a fork and put it in your mouth.
Speaker 2: Yeah, I mean it is cheap, but you know there's
a great stretch between it's tough to difn a difference
a potater tot and a roasty.
Speaker 3: Yeah.
Speaker 1: I don't even know what a roasty is.
Speaker 2: What's that they think you're describing as a hash brown?
Speaker 1: Is that?
Speaker 6: Oh?
Speaker 1: Okay? Hash brown?
Speaker 2: Yeah, it's a roasty okay, but you know the main
thing is the crispy.
Speaker 1: Yeah.
Speaker 2: And to be clear, we're arguing over food you eat
while drunk in Montreal, right, like absolutely?
Speaker 3: Yeah? Like like has every has every poucine that I've
ever eaten been delicious? Yes?
Speaker 1: But that's because yes it was. I was I qualified
to a set at the time. No, yeah, if it
was broccoli and Berne's sauce.
Speaker 3: Like every every donor I've ever eaten is great, and
I don't think I've ever eaten a donor before midnight.
Speaker 1: I don't know what a donor is. You guys got
to educate me here, like a kebab or a like
d O N N E R that kind of thing
c O N They are Yeah, yeah, they are all right.
Speaker 2: The varying the name, the spelling exactly got it. The
drunk food you ate in Stockholm after midnight or anywhere.
Speaker 1: Yeah, here we have we don't have those, you know,
twenty four hour diners around where I live anymore. There.
Your only choices are Taco Bell and McDonald's, Wendy's, Burger King, Popeyes.
That's it. Late nights.
Speaker 3: It's just I remember, like I remember at one point
that's however, many of us and we're in Oslo and
we go to this donor place, eat donor. It's wonderful. Uh.
Then we continue to go out drinking. We go back,
and then as we're on our way back to the hotel,
it's like, let's get donor again. Yeah, of course the
donor place that we went to is closed, but there's
a donor place right next to it, like literally next
door that is open. And it was worse, but like
you know, it's still.
Speaker 1: Don't I know which places you're talking exactly. It's rich
and rich and I have been there.
Speaker 3: And like we're talking to him at one point and
it's like he's like the guy was like, yeah, we
open at one because we found out these knuckleheads like
close at one, like you're leaving money on the table.
Speaker 1: People don't go to bed at one in Oslo.
Speaker 3: Exactly on Saturday night.
Speaker 1: It's just a mistake. When are you thinking, what was
the best your best pub comp talk in your opinion?
Speaker 3: Oh man, So this requires a slight backstory. I'll try to.
I'll try to, I'll try to speed through it. But
I'm doing NBC Minnesota. And and I had this idea,
and I had this really ambitious talk that I was
going to do, and I was terrible, legitimately terrible, like
just a bad talk, Like insofar as like you know,
how there's there's for those who don't know that there's
NDC will do a thing where they have like red
and yellow and green cards, so like people will score
like how well you did? And so as I'm sort
of collecting my things at the end of the talk,
and I know, I know this didn't go well.
Speaker 1: This isn't a PUBCNS talk. This is a regular talk.
Speaker 3: No, this is NDC.
Speaker 1: Yeah yeah, yeah, okay.
Speaker 3: And and as I'm sort of collecting my things and
sort of, you know, being shell shocked, one of the
volunteers walks up to me. He's collected all the cards,
and he goes that, do you not want to know
how you did? And I'm like what, and he goes, you.
Speaker 1: Did bad, and he holds up a stack of red cards.
Speaker 3: Right, thanks for looking out, But I appreciate that. So
I I mean, yeah, so I you know, I'm in
Saint Paul, which is close enough to my home that
I don't have a hotel, but far enough away that
like in order to get back and come back would
be inconvenient. Yeah, And so I just like spend you know,
several hours like having a panic attack, and then but
I need to do a pubcom talk after that, and
and so I'm just you know, sort of like in
a weird place. And and and as it's starting off,
I'm like still in a weird place. And then the
moment I get handed the microphone to do my five minutes,
like I was just like, okay, yep, I absolutely have this.
I I yep, this is I'm going to kill these
people for five minutes. And so I did this talk
about how to please your VP by hating your user,
and it was just like it was just like what
if every suggestion that your VP made you just did.
And so we started we show a website and then
the website just gets worse and worse because like I
keep saying yes to him, you know when he kind
of like points at the screen. I'm like, yep, absolutely
boss right, and uh yeah, and so that went so good,
like so so good.
Speaker 1: Honestly one I did.
Speaker 3: I did win. Yeah, but I'm like, I'm not I'm
not exaggerating that. Like people were literally chanting my name.
Speaker 1: Wow. Wow.
Speaker 3: There was a point where John Mills in the final
So this the the you do the sort of your
prepared version of then you do a version that's not prepared.
And so there was a there was a point where
I do my final performance and then after me is
John Mills, and like he does a joke and it
lands pretty good. He loves a joke and it lands
not quite as good, and he goes, listen, folks, I'm
just trying to get in second here. Okay, we just
let me.
Speaker 1: Get in here. This is gonna go. You know, something
just occurred to me. You you have a you're a
doppel ganger of Michael Keaton? Am I wrong? Has anybody
ever said you look like Michael Keaton? I've never heard that.
I mean before Beetlejuice.
Speaker 3: Okay, okay, before both Beatle Juice.
Speaker 1: Yeah. Yeah, when he was younger, right, Okay, you look
like a young version of Michael Keat's the eyebrows, I think.
Speaker 3: All right, I mean I'm gonna I've never heard that really,
so no, yeah, yeah, I got I got for years
and years, I got Jack White a lot.
Speaker 1: Okay, but yeah.
Speaker 3: He started to kind of start to look like Ho
Chi minh.
Speaker 1: And sorry, yeah he went through different looks. Yeah. Yeah,
Well anyway, let mean, it's been a pleasure talking to
you and hanging out. I wish we could do it
all the time. You know, I'm available, Let's do it
and for longer. And I know our listeners really loved it.
So thank you, oh, thank you both. All right, and
we'll talk to you next time on dot rocks dot net.
Rocks is brought to you by Franklin's Net and produced
by Pop Studios, a full service audio, video and post
production facility located physically in New London, Connecticut, and of
course in the cloud online at pwop dot com.
Speaker 6: Visit our website at d O T N E t
R O c k S dot com for RSS feeds, downloads,
mobile apps, comments, and access to the full archives going
back to show number one, recorded in September two thousand
and two, and make sure you check out our sponsors.
Speaker 1: They keep us in business. Now go write some code,
See you next time.
Speaker 5: Chapters Middle Vans Day
Speaker 1: A summer time that mess hard than my taxes in
line