HomeVideos

Microsoft doesn't understand FPS

Now Playing

Microsoft doesn't understand FPS

Transcript

1567 segments

0:00

Is there any possibility we could intro?

0:02

We could actually start.

0:07

Uh, anyways, sorry. Welcome to the

0:09

standup. Today we have an extremely

0:11

special episode for everybody that's

0:13

watching the standup. For those that

0:15

don't know, this is the world's most

0:17

attended standup.

0:18

>> Oh,

0:19

>> congratulations everyone for being a

0:20

part of it. I hope everybody has their

0:22

blockers. They're ready.

0:24

>> Yep. Thank you. Thank you.

0:25

>> Unfortunately, interns still unpaid.

0:29

Still unpaid. Still unpaid. The interns

0:31

are always unpaid. But you guys, the

0:33

things is that I love you with the love

0:34

of a CEO. Okay? I just want you to know

0:36

that right now.

0:38

>> We talk about valuable work experience

0:42

that someday could land you a paying

0:44

job, right? Someday.

0:46

>> Someday you guys will get paid. Just not

0:50

here.

0:50

>> Not today is not one of those days.

0:53

>> So go get some coffee.

0:54

>> Yeah. Now go give me some coffee. All

0:56

right. Now, today our very special

0:58

episode. It has to do Casey. I was

1:00

absolutely fascinated with some of the

1:02

tweets you were making because Windows

1:03

11 uh actually well to to be fair, we

1:06

got to back this up a little bit. Uh

1:08

about a couple months ago, Satia

1:09

released a note of intent saying that

1:12

Windows hears you. We are going to win

1:15

back the consumer is exactly what he

1:18

said. And the first major patch since

1:20

that announcement just came out. And

1:23

that exact patch contained a new and

1:26

improved Windows run dialogue. And so

1:29

this is a part of their major push to

1:31

make performance more top of mind. At

1:33

least that is what Windows 11 explicitly

1:36

said. And as part of their announcement,

1:38

they said this is the fastest that the

1:41

run dialogue has ever been. ever. Eve

1:44

Ver like this is the best it has ever

1:47

been. Here we go. And they announced it

1:50

and it takes approximately 90

1:52

milliseconds to show on screen on the

1:54

median. So the 50 percentile. So we

1:56

don't know what we don't know what like

1:58

the 25th percentile. We don't know the

1:59

quartiles here. So we have no idea

2:00

what's going on. But we do know that the

2:02

median is 90 approximately 90

2:05

milliseconds.

2:06

>> It was 94 I think might have been what

2:08

they said.

2:08

>> Yeah. I don't know how they measure

2:09

that. That seems really impressive

2:10

considering most displays don't, you

2:13

know, they're usually locked to some

2:15

number that probably doesn't land on 94

2:16

every time. I don't exactly know how

2:18

they're measuring that, but nonetheless,

2:19

that's what they're saying. Absolutely

2:21

impressed with this performance, but

2:23

then Casey, you did a little bit of

2:25

snooping.

2:27

>> I did. So, I actually didn't. Uh, so I

2:31

just I I really didn't. I I didn't care

2:34

because like I said, I don't use Windows

2:36

really like anymore. week. We kind of we

2:38

kind of nixed that. Uh pun intended. And

2:42

uh so like I'm just like it's a it's

2:44

kind of just a like all right you guys

2:46

you know you can do your rodeo now of

2:48

where you decide to try and make Windows

2:50

performant or whatever. That's fine. Um

2:54

but what I was going to say is

2:57

originally I only saw this because Tim

2:59

Sweeney was commenting on it. I think he

3:03

was said something snide like you know

3:06

it's he said it was 94 milliseconds for

3:08

this you know performance top of mind

3:10

rewrite it's like a gaming monitor's

3:11

like you know 8 milliseconds to refresh

3:13

a frame like what's go you know what's

3:15

going on um and so the only thing I

3:19

really did was just retweet I'm like

3:20

okay popping up the run dialogue like is

3:23

is like a drop to 10 fps right uh

3:26

because that's what you know it's like

3:28

11 fps I think would be if you rounded

3:31

94 milliseconds to be like it'd be, you

3:33

know, it' be like 10.6

3:35

frames a second or something if that's

3:36

was your run rate. And nobody cared

3:39

about the run dialogue for the most

3:41

part. Pretty much people just cared

3:44

about the fact that I used it FPS as a

3:47

way to like explain what the number was.

3:50

Now, remind you, I'm not posting

3:52

anything original here at all. I

3:54

literally just like here is the

3:56

screenshot of the thing that Tim Sweeney

3:58

posted or was replying to rather. Um,

4:02

and I'm just like and I highlighted it

4:04

and I was like they were like perf top

4:06

of mind 94 milliseconds and I was like

4:10

geez like that'd be really slow. Like 94

4:12

millconds is is a long time especially

4:15

because like when you think about what

4:17

the run dialogue is it's not really like

4:20

it's it's a user interface interaction.

4:22

Whoa. Hey, is that HTTP? Get that out of

4:26

here. That's not how we order coffee. We

4:28

order coffee via SSH terminal.shop.

4:30

Yeah. You want a real experience? You

4:32

want real coffee? You want awesome

4:34

subscriptions so you never have to

4:36

remember again? Oh, you want exclusive

4:38

blends with exclusive coffee and

4:41

exclusive content? Then check out CRON.

4:43

You don't know what SSH is?

4:46

>> Well, maybe the coffee is not for you.

4:51

in

4:53

the dream.

4:57

>> You hold on right there, Casey. There's

4:58

processes that they have to create.

5:00

>> I don't know what a process is, but

5:02

apparently it takes 90 milliseconds.

5:04

>> Yeah. So, this was this was the thing um

5:06

where they were like, uh, a lot of

5:09

people just had a problem with this. And

5:11

a lot of people's probably the wrong

5:12

term. Like most, you know, it was a very

5:14

popular tweet actually, so I suppose

5:16

most people didn't have a problem with

5:17

what I said. Um,

5:20

but for the people who did have a

5:22

problem with it, there were two things.

5:23

One is they were like, well, this is

5:25

like, you know, loading. It's like how

5:26

long something takes to load, which to

5:29

me is ridiculous because it's like, no,

5:31

it's like a text box and maybe some

5:33

history. There's no there shouldn't be

5:35

any loading. Like this should just be it

5:37

it's a trivial it's you're talking about

5:39

like 4K or something of data that should

5:41

be required to do this thing. like it's

5:44

so minimal that you there's no question

5:47

you shouldn't be launching a process for

5:48

this in my mind, right? Maybe if you

5:51

have some kind of weird process

5:52

isolation thing going on because you're

5:54

scared that someone's hacking your run

5:55

dialogue, but then at that point we

5:56

should talk about why that's happening

5:59

exactly and other things like that. But,

6:00

you know, there's a whole sort of thing.

6:02

So, you could come back with some blog

6:03

post where you explained like here's why

6:06

it has to be a process and maybe I'd be

6:08

like okay. But in general, no. like that

6:10

should not be if the user doesn't

6:12

perceive them to be loading something

6:14

then that's not really acceptable excuse

6:15

a so I didn't think anyone who replied

6:17

with that I don't think they have any

6:19

leg to stand on so I'm sorry like I just

6:20

completely disagree with you this is not

6:22

a load operation

6:24

but that was relatively minor that was I

6:26

felt like that was just as you as you

6:28

folks say and as the kids say that was

6:30

just cope that was just like trying to

6:31

come up with the number for the 94

6:32

>> that was some cope

6:34

>> y um

6:35

>> a little bit of cope and also launching

6:36

node so you can use react that's all

6:38

just a little bit The bigger the bigger

6:41

thing was um was they didn't like the

6:44

use of FPS.

6:46

Uh and this to me is like I can if you

6:51

if you don't want to use FPS as a way to

6:55

like talk about how things feel and how

6:58

long they take, right? That's totally

7:01

valid in my opinion. Meaning I would

7:03

never go to somebody who quoted

7:05

milliseconds and say, "Whoa, whoa, whoa,

7:07

son. You should be saying FPS. Like I

7:10

wouldn't do that because

7:11

>> in this house in this house we measure

7:13

with FPS.

7:14

>> Exactly. Like I would never I WOULD

7:16

NEVER DO THAT.

7:16

>> NO MILLISECONDS.

7:18

>> If I did that to somebody and they were

7:20

like, "Dude, I quote these things in

7:22

milliseconds. That's how I do it." I'd

7:23

be like, "Ah, sorry." Like I was just I

7:25

Yeah, I was being a dick. I I shouldn't

7:27

have done that or whatever. Right? Like

7:28

that. I would feel bad about that if I

7:30

did that. Right? Not so with these

7:32

people. These people are like, "You

7:34

cannot quote FPS numbers unless

7:37

apparently

7:38

um because some there's some like

7:40

internet committee that like must have

7:41

decided this FPS has to be average FPS."

7:45

>> Yes, it's it is. So, Casey, you may not

7:47

know this, but if in a video game in a

7:50

video game, if you fire a gun, but you

7:52

only fire it once

7:53

>> and it takes 90 milliseconds, that's

7:55

just part of that's just Hey, that's

7:56

just loading. It only counts if you

7:59

repetitively fire it. And I thought

8:02

people were mad though, Casey, because

8:04

>> the run thing is kind of like, you know,

8:08

Anthropic sort of started the trend.

8:10

Everything's a game engine, Casey. Well,

8:13

>> so it's like they were they were so not

8:17

a fair FPS measure. Okay.

8:20

>> Alls I'm saying is So it what I would

8:23

say is if that's the way you want to

8:25

quote things, that's totally fine

8:27

because I like having both. My

8:29

preference is to see both. So I like to

8:32

see the milliseconds and then I like to

8:36

convert that to FPS in my head so I can

8:38

see like if I was hitting monitor

8:40

refresh because the way that I usually

8:42

like to program um anything that's like

8:45

a user interaction is I like to hit

8:47

monitor refresh for like what I expect

8:49

the target monitor refresh to be. So if

8:51

someone pushes a button then like from

8:54

the time that that button comes in I

8:56

want to try on the frame that it came in

8:58

I want to try to have the response to it

9:01

on this frame that's submitted at that

9:03

time right so you push a button on one

9:06

frame and the next frame that you see as

9:09

like should have it now sometimes it's

9:11

two frames because like there's a

9:13

compositor in the way sometimes it's

9:15

more if the TV sucks and it's buffering

9:18

a lot of like there's reasons why that

9:20

can start to multiply out. But the way I

9:23

like to think of it is like okay at

9:24

least for the code uh like you know for

9:26

telemetry which I assume is where this

9:28

number is coming from. If you timed from

9:30

like when the the event happens and when

9:34

someone actually got a frame, I want to

9:36

see something close to monitor refresh

9:38

or twice monitor refresh depending on

9:40

what you're counting there, right? Um,

9:43

and so this is actually legitimately the

9:45

way I think about it. Like like that was

9:47

not I think people were saying or or

9:49

were trying to uh impugn to me the fact

9:52

that I was trying to make it sound worse

9:54

than it is by using FPS. And I guess

9:56

what I would say is that is like no and

9:58

or yes and no. I I do think of it that

10:02

way. And yes, I suppose the reason I use

10:05

that number is because I actually

10:06

believe it's bad. Like when you're not

10:08

getting monitor refresh that I think you

10:10

did something wrong probably, right?

10:11

It's like especially if it's just I'm

10:13

popping up a text box or some UI thing.

10:15

I just think you did something wrong.

10:16

You should you should be at monitor

10:18

refresh just period, right? And if you

10:21

don't agree with that, that's fine. Like

10:22

you can just be like, "No, I like my

10:24

things to be more more laggy than that."

10:26

Um, you can totally make an argument

10:27

that uh you just don't care. You're

10:28

like, "Look, 100 milliseconds is what I

10:30

think is reasonable for response to UI,

10:33

so that's what I do." Uh, totally fine,

10:36

too. But like claiming that FPS is a bad

10:38

way to do it. I totally disagree. I

10:40

think FPS is a very good way for someone

10:43

to have in their head like, "Oh, am I

10:45

close to monitor refresh?" Like, I know

10:46

I should be hitting 60. It's just a good

10:48

like metric to have. And if you want me

10:50

to convert that so I always say

10:52

16.66666667

10:56

instead I suppose I could say that for

11:00

you. Did did that help? If I changed it

11:02

from FPS to hertz what like I mean well

11:04

cycles per second presumably they'd say

11:05

again it has to be average for some

11:06

reason. I don't know why those are not

11:08

intrinsic to the measurement. Frames per

11:10

second just means you took a count of

11:12

frames and you divided by a time right

11:14

and it does not imply that there was any

11:16

more than even one. actually uh

11:19

technically you probably need to have

11:20

two to measure something between but

11:22

like you know um so anyway I found all

11:26

of that ridiculous and very

11:28

disheartening because it just I I was

11:30

like this is ridiculous

11:32

all of that all of this for something

11:35

that as far as I can tell isn't actually

11:38

relevant anyway like because uh for a

11:42

couple reasons but here's the first one

11:45

they said in that same post that the

11:48

original run dialog experience was 104

11:51

milliseconds and the thing they were

11:53

replacing.

11:53

>> Really?

11:54

>> Yeah. Was 94 milliseconds. That's what

11:57

they said in the post, right?

11:58

>> No, no, no. Not not not in that post,

12:00

right? I thought it was 400 millisecond.

12:02

>> That can't be real.

12:03

>> No, it was in the in the blog post that

12:05

I saw. I think it was 104 from on

12:07

Microsoft's blog. They were like the

12:09

original one was 104. This one's like 94

12:12

or something like that or 98 or I don't

12:14

like I don't remember the exact numbers,

12:15

but they were both very close to 100.

12:17

like one was less than 110, the other

12:19

was less than 100, right? So between 90

12:21

and 100. Um so

12:22

>> half half of the measurements are above

12:24

100 or above 94, too, cuz remember

12:26

that's just the median.

12:27

>> Well, sorry. Yeah. Well, I'm just

12:29

saying. So, um I was curious about that

12:32

because I was like I I don't know how

12:33

they're measuring it, right? Because

12:35

there's different ways you can measure

12:36

it. If you're if you're talking about

12:37

like a latency chain, uh, where you

12:39

press a physical button and then see

12:41

something, it's pretty easy to get a

12:43

response time to go up to something like

12:46

a 100 milliseconds. If you have slow

12:49

mouse, slow USB processing, the

12:52

operating system's a little slow, your

12:53

code is a little slow, the monitor

12:55

buffers several or the GPU is buffering

12:57

several frames, the monitor is buffering

12:59

some more frames. I could construct a

13:01

situation where some code that responded

13:04

potentially like like my little piece of

13:06

code that responds instantly still is

13:09

taking a 100 milliseconds because

13:10

everyone else in the train is screwing

13:12

me, right? This is a thing that people

13:14

who have ever measured latency with like

13:15

a camera know you can easily start to

13:18

beef that up, right?

13:19

>> Um

13:20

>> Yeah. Or you've ever accidentally played

13:21

a game on a TV set to non-gaming mode.

13:24

Exactly.

13:24

>> And all of a sudden you can you can feel

13:25

it when you're playing Mario. You're

13:27

like, "Oh, what is happening? Am I I

13:28

can't jump anymore.

13:30

>> That's why Prime loses in games.

13:32

>> That's actually why I've been on TV

13:33

mode. I didn't know that. I've been on

13:34

TV mode. I didn't know that. That's why

13:36

I lost at Fortnite.

13:38

>> Yeah, we used to watch TVs.

13:40

>> Yeah. When he used to do that doc when

13:42

he used to be do Dr. Disrespect and do

13:44

that channel, he had to stop playing

13:46

competitive games and create this

13:48

primogen thing specifically because of

13:51

this, you know, t he had a TV that was

13:53

buffering too many frames. He couldn't

13:54

win anymore. There's Call of Duty career

13:56

went down the toilet and here we are on

13:58

the standup. But that's ancient history

14:00

now. No sense dwelling on the past. The

14:02

point is um so I don't know where they

14:05

get this number from. Right.

14:07

>> I don't think Casey knows. We'll just

14:08

keep on going.

14:10

>> He Let's just say hit the end of his

14:12

career in as a

14:14

>> Oh, yeah. No, it was not that. No, I I

14:16

know.

14:16

>> Okay. All right. Just

14:18

>> Yeah. Yeah. It it it was let's say that

14:22

it uh

14:23

>> anyways

14:24

>> it involved trash. It was not Minecraft.

14:26

But anyway, um the the point is uh when

14:30

we uh look at these kind of numbers, who

14:32

knows how they're measured, right? Like

14:34

nobody knows,

14:35

>> right?

14:36

>> Um because they weren't discussed. So we

14:39

know that they were statistical, meaning

14:41

they said it was like a median. So

14:43

meaning we we know that they were

14:45

talking across a number of machines,

14:48

right? uh a number of configurations

14:50

probably meaning it's telemetry meaning

14:52

it probably comes from end user machines

14:54

but it's hard to say because again I

14:56

don't I don't know exactly what their

14:57

setup is for doing this but I was

15:00

curious about that because I was like

15:02

you know that sounds really high

15:04

actually from my recollection of the run

15:07

dialogue I was like I don't think it

15:09

takes 104 milliseconds uh from end of

15:12

click to showing the run dialogue uh on

15:15

on like Windows 10 for example

15:18

By the way, this is a very important

15:19

part because remember the post said this

15:21

is the fastest ever,

15:24

>> right? Which it may well

15:25

>> which tends to mean forever. It does

15:27

mean which is right which is uh which

15:29

good point is what I'm trying to get to.

15:32

>> So the part that confused me was I was

15:34

like where did that number come from? So

15:36

like on the on Windows 10 I tried

15:38

testing the existing run dialogue which

15:40

obviously is not the updated one and I

15:43

did a 60 hertz capture. Now I know that

15:46

60 Hz will make people very

15:47

uncomfortable. So what I mean to say is

15:49

a capture where the frames were capped

15:52

to 16.666667

15:56

milliseconds.

15:58

>> How many Casey is that in uh decaf

16:01

frames per hour? That's my preferred

16:03

that's the only unit that I prefer

16:05

discussing. So just you can convert that

16:07

again.

16:08

>> What is 60 in 60th up an hour? Um yeah I

16:12

don't know. Uh so I so I captured it and

16:15

captured a bunch of me running the you

16:18

know doing the run dialogue and just to

16:19

see what it was and it always responded

16:21

in two frames which would be you know

16:24

somewhere in the 30 millisecond range

16:26

depending on again if you were trying to

16:29

include mouse clicks or something I

16:30

don't know but assuming you were doing

16:32

telemetry from a machine then you can't

16:34

do that because you don't have a

16:34

high-speed camera sitting on so I'm

16:36

assuming they're recording something

16:37

like that and so I don't so I don't know

16:41

now So if they're using uh um that

16:44

number 104 as a median, well I tested

16:47

this on a machine that's a decade old.

16:49

It's 9 years old, right? So it's a very

16:52

old machine.

16:54

What are they testing across such that

16:56

they're able to get a number that's

16:58

three times higher than that as the

16:59

median, right? I don't know. And since I

17:02

don't know now, I have no idea what's

17:03

going on. So I don't know where the 100

17:06

millisecond number goes comes from. But

17:08

the reason I say this might just be much

17:11

to do about nothing is because if that

17:14

number is similarly inflated and the 94

17:17

is similarly inflated, the actual number

17:19

for response time might be much better.

17:21

It might be that number divided by

17:23

three, which would again be two frames,

17:24

which is fine, right?

17:26

um much much better than the uh you know

17:31

drastically increased three times

17:33

latency one that it sounded like it was

17:34

going to be which everyone I think would

17:36

have been correct to kind of freak out

17:37

about because it's like they are all

17:39

used to an experience where it's one or

17:40

two frames to pop up that run dialogue

17:41

and now it's taking three times longer

17:43

that would be uh annoying. So I I really

17:46

don't know what's going on here. I feel

17:48

like they needed to um if they were

17:51

going to make a post about performance

17:53

and they didn't want people to comment

17:55

on it, they needed to put more

17:57

information in there that would be

17:58

clearer about what's going on. And also

18:01

blaming people for having a reaction to

18:04

this, especially when they just quote

18:06

the like they just put a quote and be

18:08

like I think what I said is am I reading

18:09

this right? That's what I said. To get

18:12

really mad at someone who said am I

18:13

reading this right? This sounds really

18:15

slow is ridiculous. Like that's what

18:17

makes X so crap. The only response to

18:20

that should be uh either yes, you're

18:23

reading it right. This is kind of slow

18:24

for popping up a run dialogue because

18:26

that shouldn't really be any work. Or

18:29

yes, you were reading it wrong.

18:31

Actually, that 100 milliseconds is this

18:34

really bad way we measure it where we

18:36

measure it from the start of the click

18:38

to when we show it. And since we can't

18:40

launch till the person releases the

18:42

mouse button, that's an extra 50

18:44

milliseconds that's just padded on

18:46

there, right? Like that is the answer to

18:49

this. Not some snide like you can't use

18:51

ep. Like it's just it was garbage. Like

18:53

I really didn't like the responses that

18:55

I felt like they were ridiculous. And so

18:57

like I'm pretty I'm pretty thumbs down

18:59

on what people said. That is my

19:01

annoyance with it. The happy news though

19:03

is I think I think uh what's going to

19:06

happen is the run dialogue will probably

19:08

be fine. Um I can't say for sure, but I

19:12

think these numbers are not like they're

19:15

not measuring either what we think

19:16

they're measuring or they somewhere in

19:19

their test suite have 10,000 really old

19:23

buggy laptops that take an extra 70

19:26

milliseconds to do this operation and

19:28

they're skewing the median or something,

19:30

right? like like some explanation like

19:31

that. So until we get more information,

19:34

I think this is just a dead issue except

19:35

for the fact that people out there who

19:37

think FPS isn't a good way to intuitit

19:39

response times, I think you're totally

19:41

wrong.

19:41

>> I there Okay, I got to jump in, Casey.

19:44

So there is something about all of this

19:46

that you're really missing. And I would

19:47

just like to I I would love to hear

19:48

Trash's opinion on this one,

19:50

>> which is Oh god,

19:51

>> Trash, you've worked at Netflix now

19:53

since the great fall. Like Trash joined

19:55

and Netflix uh dropped by 60%. Uh

19:58

effectively is what happened. It was

19:59

more that was might have been 70%.

20:02

Anyways,

20:02

>> they heard that he was coming.

20:04

>> Yeah, they heard that he was coming. He

20:05

joins the company. Netflix went from 690

20:08

to 170 or something like that. It was a

20:10

d it was a disastrous moment for us. Uh

20:14

>> do you have like a bunch of like stock

20:16

from when you worked there? That tra was

20:17

did trash

20:19

ruin your retirement?

20:20

>> He did everybody a favor. He helped

20:24

people for a decade. So, thank you trash

20:26

for that. Everybody trash. Everyone give

20:29

trash a clap. This is why he's still at

20:32

Netflix even though

20:32

>> get those options down so they can go

20:34

back up.

20:35

>> Yes, exactly. There you go. Casey

20:36

stoning right there. Anyway, nailed it.

20:39

>> We've been at like you've worked on a

20:40

product that's sensitive to uh any sort

20:43

of code, right? Because the TV platform

20:46

is just it's a very hard platform. It's

20:48

a much slower platform than everything

20:49

else. Now, Trash, have you ever once

20:52

heard anybody at all in any point in

20:55

life ever talk about response times in

20:57

frames?

20:59

No.

21:00

>> Yeah. Casey, so this is something that

21:02

you might not know, but in the web

21:04

world, uh, nobody has ever once thought

21:07

of something in terms of frames. I don't

21:09

like this is a whole novel concept of

21:11

you being like, if something happens, I

21:13

expect next monitor refresh rate

21:15

something to happen.

21:16

>> Like no one's ever said that ever. That

21:18

would that would explain the disconnect

21:21

probably because to me so I like

21:24

obviously I was um raised I don't know

21:28

if that's the correct term

21:29

>> to catch on fire.

21:31

>> Um so I was raised in the era of during

21:35

the the v blink. Yeah. Right.

21:38

>> Yeah it was good prime. Nice vocabulary

21:41

buddy. Okay Casey continue on with

21:43

saying something smart please.

21:44

>> It's not smart it's historical. uh what

21:48

you normally would do, right, is you'd

21:49

try to have it so that you know you

21:51

update your stuff during the vertical

21:53

blank of like a CRT, right? It like the

21:54

scan line comes down, you update your

21:56

stuff and you come back around to the

21:58

top and you need to have everything done

21:59

in that time like for the next Right.

22:01

So, you're always I mean the the the

22:03

phrase racing the beam like made it into

22:05

the title of a book, I think, right? And

22:07

that's what that

22:08

>> was referring to. You're racing the beam

22:10

the like the the actual like uh CRT like

22:13

display beam, right? that the thing that

22:15

excites the phosphorus on the screen um

22:18

of the of a cathode ray tube, right? And

22:20

then went from there to like

22:24

uh in sort of like the Carmarmac era of

22:27

gaming like when like the Quake engine

22:29

kind of ushered in 3D and this sort of

22:31

stuff in in a big way.

22:34

um at that point like I believe he had a

22:37

thing and I don't remember if this was

22:39

like something that he said in like

22:42

person that I remember him saying or

22:44

whether it was something that he posted

22:45

in like a plan file um but I remember

22:48

him being like look if you structure

22:51

your

22:53

update loop in one way where you like do

22:56

your rendering it where you issue your

22:58

rendering you you update the world issue

23:00

rendering and then process input um

23:04

you lose a little bit of time because

23:06

some of the input maybe you could have

23:08

gotten a little bit be like just before

23:11

you were about to submit the the render

23:12

or something like like there was a thing

23:14

where he was talking about that and I

23:15

was always like oh okay yeah I I

23:17

probably should always be very

23:19

thoughtful of like how can I make sure I

23:22

get input as close as possible to

23:25

submission so that I'm introducing the

23:28

least like the little smallest amount of

23:30

latency

23:32

uh especially if you have something like

23:34

uh vsync on where you're going to like

23:36

if you like processed input and then

23:37

waited on vsync then came around and did

23:39

your render now there's an even bigger

23:41

gap between those things right and so uh

23:44

I've always I'm always used to thinking

23:46

of it is frames so input comes in on a

23:48

frame you should see it on the next

23:49

frame as close as I can make it I don't

23:52

want to be the weak link in that chain I

23:53

want it to be the TV that's screwing you

23:55

not me so I've always thought of it that

23:57

way so I always think of it as FPS and

24:00

Especially nowadays when like you know

24:02

when I do ping times on like the network

24:05

here even on this crappy Comcast

24:07

connection that I'm on um most uh

24:10

network on modern broadband internet the

24:13

actual ping time out from the person uh

24:17

to like a local to something that's

24:18

close to them is actually submonitor

24:20

refresh like you can actually get a

24:22

network packet to someone and back uh in

24:25

less time than like a 60 Hz refresh.

24:28

That's how good this stuff has gotten.

24:29

You know, people on fiber are getting

24:31

sub one millisecond ping times to things

24:33

like the no l Google node, right? It's

24:36

incredible. And so nowadays, I just

24:39

think everything should be thought that

24:40

way. Like it's just it's just look the

24:42

fastest we can uh the reason to do it in

24:44

frames. That's the fastest we can get

24:46

something out to the user. Like what's

24:48

the lowest uh uh amount of time this

24:50

monitor can hit? That's what we should

24:52

be shooting for. And sometimes it's

24:54

unrealistic because it's like, okay,

24:56

they're on like some fi north of 500 uh

24:59

hertz monitor. The operation we're doing

25:02

is too heavyweight. So, we got to set a

25:04

more conservative frame target. Totally

25:06

fine. But I I never think of it in terms

25:09

of anything other than that because

25:10

that's our limit. That's what I can give

25:12

you the frames at.

25:16

>> Yeah. I mean to be fair we do

25:18

>> in the even in the web world we do think

25:19

about FPS especially for like

25:21

>> animated heavy websites when you

25:23

noticeably see like jank and it's like

25:24

stuttering that's typically when we'll

25:26

actually take into account like FPS but

25:29

honestly most apps like

25:30

>> aren't really doing any animations it's

25:32

all just async crud apps just waiting

25:34

for something right so it's a more of

25:36

how long this take to load which we'll

25:38

use time like milliseconds verse an FPS

25:42

because that just wouldn't make sense in

25:43

that case for us

25:45

>> will TTF Is that what I'm hearing?

25:47

>> A little bit of that. A little bit of

25:48

time the first bite. Yeah. A little bit

25:50

of that.

25:51

>> I feel like that is sort of a separate

25:53

thing too is like um

25:55

>> you know to me the user should see the

25:57

response instantaneously even if the

25:59

thing takes a little while. So like

26:02

suppose I'm on some network and I'm like

26:04

look it's AWS so you know good luck

26:06

getting this response back in in less

26:09

than 30 milliseconds because like even

26:10

though the data center is is like 2

26:13

milliseconds of of of hop away or

26:16

something as soon as it hits AWS it's

26:18

just grinds to a halt right and like uh

26:21

that's been my experience and it was

26:22

like the the late the time it takes

26:24

light to get to the data center has

26:26

nothing to do with how long it's going

26:27

to take that they are just going to chew

26:29

through those milliseconds doing

26:30

whatever it is that they do uh with like

26:32

their switching and you know virtual

26:34

machine management or whatever it is you

26:35

know I don't work there I have no idea.

26:37

So assuming that you're going to do that

26:38

you're like look we're not going to hit

26:39

60 Hz or 120 hertz because we know this

26:42

thing is going to take like 40

26:43

milliseconds to get back from AWS. I

26:45

still want to show the thing

26:46

immediately. So like for the case of a

26:48

run dialogue let's say for whatever

26:50

reason I can't predict it. I don't know

26:51

the is going to do it. I have to fetch

26:53

their run history from AWS for some

26:55

reason because like it's oh it's a

26:57

shared it's like a synced run history

26:59

across machines. I didn't know they were

27:01

on this machine or some I mean I don't

27:03

know how that doesn't make any sense. I

27:04

should have sunk this ahead of time but

27:05

whatever. Um

27:08

I would fire off that request but

27:09

display the run dialogue on the next

27:11

frame right because I know that by the

27:14

time they're actually able to hit the

27:15

first key that I'll need to search that

27:17

run dialogue for I probably will get at

27:20

least some of that information back. And

27:22

I so I'm covering a little bit of that

27:23

latency and giving the user the instant

27:25

response that I want to give them,

27:27

right? Um and then if if you know the

27:30

response doesn't come back and they do

27:32

hit a key and I'm sitting there and I'm

27:33

like as not loading, then I have to put

27:35

up a little spinner or something, right?

27:37

Just tell them like look AWS is is

27:39

me here. So I get it like you

27:41

know run history not available to WS

27:43

response the little thing.

27:45

>> Um

27:46

>> but you know that's just how I think

27:47

about it. So like I'm not being

27:48

disingenuous. That is literally how I

27:50

think about it. Um, and it pisses me off

27:53

in games, too. Like, if I'm sitting

27:54

there waiting for a loading screen that

27:56

you I'm like, "Guys, you obviously could

27:57

have streamed this in." Like, why wasn't

27:59

this already loaded? Like, what's going

28:01

on? I get mad at that all the time. I'm

28:02

just like, the the goal should be zero

28:04

weight states for the user pretty much

28:06

ever.

28:07

>> So, we we've had a lot of arguments

28:09

about this over over the years. And who

28:12

you and uh my previous team uh shall we

28:16

say? And so one of the one of the big

28:17

things was what's worse, the initial

28:20

loading or inapp loading? Like which one

28:23

actually makes a user more nuts? Uh

28:25

which one's going to cause them to be

28:27

more upset? Would you rather have a

28:28

bunch of small distributed little loads

28:30

throughout the app or would you rather

28:32

have a bigger initial load?

28:35

So in my mind usually so

28:39

I would say that if I find myself in

28:42

that literal position

28:45

then my answer would be how often do

28:47

they load this thing

28:50

but

28:52

before finding myself in that position I

28:53

would have asked the question are you

28:55

sure are you sure that you couldn't find

28:58

a way to make this work because a lot of

29:01

times if people are like oh we have no

29:04

choice choice. But this long initial

29:05

load, I'm like, are you sure? Like, are

29:08

you sure that you actually did

29:10

everything you could to make that

29:12

initial package you needed to get

29:14

started as small as possible? Right.

29:17

>> Well, I'm on team bigger load initially.

29:20

That's

29:20

>> if the app is,

29:21

>> but obviously within a threshold within

29:23

a

29:23

>> if the app is loaded infrequently, then

29:26

if you have to make that trade-off, I

29:28

would say you do that. if the app is

29:29

loaded all the time because you like

29:30

typically load this thing, do a little

29:32

tiny thing, and then close it, then

29:34

you're kind of in this nasty situation

29:35

where it's like, okay, well, I don't

29:37

know. It's it's sort of just as bad,

29:40

right? Like because, you know, so I I

29:43

would say I wouldn't think about those

29:44

things as different. I would just say

29:46

there's frequency of operation and cost

29:49

of operation and you're trying to

29:51

minimize the total of those, right? The

29:53

cost times the, you know, the cost times

29:55

the frequency. And so if the frequency

29:58

of launching this app is very high and

30:00

the frequency of things you do in the

30:01

app is very low, then maybe it would

30:03

make sense to actually try to minimize

30:05

your app load time. But in general, I

30:07

would say like

30:09

99% of the time when someone's like,

30:11

"Oh, I needed to do X, so that's why

30:14

there's a long load time here." I'm

30:15

like, "No, you didn't." Like I can think

30:16

of tons of ways that I could have not

30:18

done it that way, right? Like strip this

30:20

out. Don't do it that way. Have a low

30:22

quality version of that thing you stream

30:24

in first. Right? Like think mega

30:26

texture, right? Or uh level of detail

30:29

would be a better way to think of it,

30:31

right? I know that I have something I

30:34

can display for this thing. It may just

30:36

not be the best looking version of that

30:38

thing. So if I'm caught by surprise, I

30:41

do that right away and then increase its

30:43

resolution when I can, right? Things

30:45

like this uh are are you can typically

30:48

do things to try and make sure that

30:49

you're very responsive. And you know, if

30:51

you then decide like, okay, no, we can't

30:53

do that because this thing has to be

30:54

senely. Sure, you can always paint

30:56

yourself into a quarter where you where

30:57

you absolutely have to do this thing and

30:59

then I agree you do, but I would make

31:01

sure all those avenues are exhausted

31:02

first is I guess what I would say.

31:04

>> Yeah, we do have like some techniques

31:06

that we call or that we coined call like

31:08

progressive enhancement which is

31:09

>> yeah the shittiest thing but if you have

31:11

a good machine then we'll slowly enhance

31:14

your experience right

31:15

>> which I think is fair.

31:17

>> I don't go ahead. Go ahead. No, just to

31:20

try and get that nice responsive feel

31:21

because, you know, um and that's again

31:24

that's just because that's the way I

31:26

like things. I like things to be very

31:27

responsive. Maybe some people just don't

31:29

care. They like they push the right

31:31

button on something, you know, if you

31:33

open up Netflix, you push the rights

31:34

button, it takes a while, kind of

31:36

lagging, it goes, uh I'm like, that

31:38

sucks. Like, someone should fix this,

31:40

right? If someone else might be like, I

31:42

don't know, it was fine, right? And so,

31:43

and so it really depends on who you're

31:45

talking to probably what their

31:46

preference is on those two things,

31:48

right? I don't know. Um, does that make

31:50

sense? Like, you know, some people might

31:51

be fine with that, some people might not

31:52

be.

31:52

>> Yeah. I mean, it's hard to Everyone has

31:55

a different threshold of really to

31:56

tolerate, right?

31:57

>> Yeah.

31:58

>> So, yeah, it's hard like who do you

31:59

optimize for? Like, there's nothing I

32:00

hate worse. I would hate to have a quick

32:03

experience like load or like a quick

32:05

loading experience, but then every time

32:06

I click something, it's like, ah,

32:08

>> exactly.

32:08

>> Now, now we got to now that thing I

32:10

think that's like significantly worse in

32:12

my opinion

32:13

>> because the clicking is more frequent,

32:14

right? It's that's what I say. Like it's

32:15

frequency versus cost. If you're going

32:17

to click a hundred times in this thing

32:18

but only load it once, you don't want

32:20

the hundred things to each take the long

32:23

time and the one thing to be fast,

32:24

right? That's not helping anybody,

32:26

right? So,

32:26

>> right.

32:27

>> Yeah.

32:27

>> That's what all my banking software

32:29

looks like. I like open like my banking

32:30

dashboard. It's just like 20 spinners

32:33

and then I click something else and it's

32:34

like 40 more spinners. I'm like, who's

32:36

making these banking apps? Insane.

32:39

>> Crash has just got so many zeros in his,

32:41

you know, it's just such a full bank

32:43

account. after spinning forever to

32:45

figure out what's in his account.

32:46

>> Progressive

32:48

zero is getting added to trash's bank

32:50

account. It's like,

32:51

>> oh my goodness, we have to widen this

32:53

div. It's crazy.

32:55

>> If I had that many zeros, I would not be

32:56

on this podcast. You know what I'm

32:57

saying? Happy traveler.

33:00

>> That doesn't even make sense. Stretch.

33:03

>> It doesn't.

33:03

>> You're not working right now.

33:04

>> Here's the thing. The wall of Pokemon

33:06

would be bigger. Pokemon would be much

33:08

better.

33:09

>> That's what I'm saying. Aren't you

33:11

having fun hanging out with us? Would

33:13

you still be on the podcast?

33:14

>> Yeah, trash. Trash, you're not paid to

33:17

be on this podcast. What do you mean?

33:20

>> I thought you did it.

33:22

>> Whatever. Whatever. Whatever. I said

33:23

what I said. I don't care.

33:26

>> Uh, red button, blue button, I don't

33:28

know.

33:29

>> I don't even care.

33:33

>> Oh, no.

33:34

>> That was still the best answer I'm

33:35

answering. From now on, when people ask

33:37

that red blue question, I'm giving

33:39

Trash's answer. It's the best answer

33:40

I've ever heard and I loved it. It was

33:42

so good. I don't like it.

33:45

>> I was exactly how much thought the

33:47

question deserved. It was perfect. I

33:49

like I that was a teachable moment for

33:50

me and I have learned from Trash and I

33:52

am a better person now. That's my

33:54

opinion. Anyway,

33:55

>> I really wanted to for the full episode

33:57

just like play I thought about just

33:59

having the edit be it does trash his

34:01

answer and then we play everything else

34:03

on 16x and then it just ends with KCU

34:06

saying

34:07

>> I hated this discussion at the end of

34:10

the episode. It's too fast.

34:14

>> I thought people would enjoy the overall

34:16

conversation, but I did think about like

34:18

publishing the full episode just with

34:19

trash answering and then

34:21

>> it was and then the answer. It was

34:23

freaking perfect, dude. I loved I loved

34:26

it.

34:26

>> M Microsoft has a bit of a hill to climb

34:29

>> because I I'm just going to throw this

34:31

out there. I also get an uh like an

34:34

update just recently that restarts my

34:35

computer like six times before the

34:37

update actually happens.

34:39

>> Yeah.

34:39

>> And I just read an article from

34:41

somewhere where it's just like it's

34:42

actually totally normal that Windows

34:44

needs to up, you know, restart your

34:46

computer 15 times for an update. Like

34:48

this is actually by design. And so I

34:50

think part of the problem that I I

34:51

personally have is that they're like

34:53

look at the run per dialogue performance

34:55

and it's just like well that's something

34:56

I virtually never use

35:00

>> because I just don't I mean I don't do

35:01

development on there so I'm not opening

35:02

something that needs that. Typically I'm

35:04

you know I'm opening a couple things

35:05

that I've pinned. I use Windows in a

35:07

very rookie way. And so it's just like

35:10

none of these improvements really help

35:11

me. I still run into bugs all the time.

35:13

Like right now, for whatever reason,

35:16

we're back into this state where when I

35:17

create a folder, it's goes to the bottom

35:20

of the list and not the top of the list.

35:22

Like all the folders are on the top. I

35:23

create a new one, it goes to the bottom.

35:25

And so I have to leave and come back if

35:26

I want it up at the top again. And it's

35:28

just like it's driving me bonkers again

35:30

that there's so many little things are

35:32

broken and I just want to like lose my

35:34

marbles. And then they're like, "Bro,

35:36

but run dialogue, dog. It's so fast."

35:39

>> But they didn't But they didn't say

35:40

that. What they said is we re we're

35:44

we're putting in a new run dialogue that

35:46

was made with performance top of mind.

35:49

And great news, it's basically the exact

35:52

same speed as the old one, right? That's

35:54

what they said. Like nobody said that it

35:57

actually substantially improved the run

35:59

the performance. So presumably what they

36:02

were trying to say was we added some

36:04

features, right? I'm guessing. I assume.

36:07

I mean I don't know because I don't

36:09

care. This is the other thing that I

36:11

hate about the fact that this tweet got,

36:13

I guess, so many likes that people

36:14

started replying to it with this crap

36:17

about FPS. But anyway,

36:20

um I'm assuming that the idea is they

36:23

added a bunch of features and didn't

36:24

make it slower, which is good, right? I

36:26

mean, like I'm happy that they

36:28

>> first time in a while

36:29

>> didn't do that, but at the same time,

36:31

it's like I wouldn't mention that,

36:35

right? I wouldn't have cited some

36:36

numbers and been like, "Hey, like we're

36:38

so proud of ourselves that we didn't

36:40

slow down a run dialogue." Like I'm

36:42

like, "Yeah, like like what? That's like

36:46

that's like par for the course." I MEAN,

36:49

WHAT ARE YOU TALKING ABOUT? Like of

36:50

course you shouldn't have slowed down

36:52

the time it takes to open the run

36:53

dialogue. That's a blog post now. Like

36:56

what's going on? Right? So that alone

36:58

too is just very frustrating cuz you're

37:00

like now you're getting mad at now

37:02

you're getting mad at me for replying to

37:05

somebody who replied to your thing where

37:08

all you did was say that the run

37:10

dialogue takes 94 milliseconds which is

37:13

a hell of a lot of time for something to

37:15

take. And like how did we get here? You

37:18

know it's ridiculous. This shouldn't

37:19

have even been news. It shouldn't even

37:21

been posted.

37:22

>> Well to be fair the person that got the

37:23

person that most got mad at you was

37:24

actually a writer for something. It

37:26

wasn't that it was like a Odin. They

37:29

could have got Odin a Wikipedia page,

37:31

but instead Casey, you're now getting a

37:34

Wikipedia page being Mr. FPS, you know,

37:37

falsifier.

37:39

>> Um, except it's not false. It is the It

37:41

is the FPS. But yes, uh, like the

37:43

question I have um, there would also be

37:46

like could we, you proposed this trade,

37:50

uh, I believe to Jimmy Wales on the

37:52

previous episode. Let's propose it now.

37:55

I can go back and delete my original

37:58

tweet and post a new tweet where I put

38:01

the millisecond number in place of where

38:03

the FPS number. Now, mind you, my tweet

38:06

had both because I quoted the

38:07

millisecond number. So, it w it wasn't

38:09

that I didn't include that information,

38:12

right? It was that they didn't like the

38:14

even the fact that you could bring FPS

38:16

into it was just this unholy, you know,

38:20

uh absolutely uh ridiculous thing to do.

38:23

But anyway, I'll go back and delete that

38:25

tweet and only mention milliseconds. I

38:27

won't mention FPS anywhere in it in

38:30

exchange for them writing a nice article

38:33

about Odin um and how it's used at

38:36

Django Effects. There we go.

38:38

>> There's our deal.

38:38

>> That's a good deal.

38:39

>> That's a good deal. That's a good deal.

38:40

>> Right. We all Everyone wins.

38:43

>> Everyone.

38:44

>> Um by the way,

38:46

>> I don't know if you know this, but a

38:47

kind of a little update. uh this person

38:49

named Phil, which you can't really quite

38:51

see well on my or the stream can't quite

38:54

see it very well, but Phil over here

38:56

wrote his own version in which takes

38:58

approximately 20 milliseconds to show up

39:01

on screen and so he's able to show a

39:03

dialogue super ultra quick and his own

39:07

handwritten one.

39:08

>> Yeah. But the problem with that is that

39:11

like um I'm just I'm just going to put

39:14

myself in the mind space of the people

39:16

who were replying to my tweet. Okay.

39:18

>> The problem take a moment, Casey. Take a

39:20

take a moment.

39:21

>> The problem with that is is in that

39:23

demonstration doesn't mean anything

39:25

because that person didn't run it on all

39:28

the same machines and take the median.

39:31

>> Yeah.

39:33

>> It doesn't It doesn't matter. It does

39:34

meaningless. It doesn't matter.

39:35

>> It's meaningless cuz he has a different

39:37

monitor.

39:38

>> Also, he's not loading he's not loading

39:40

the run history from Microsoft One Drive

39:42

or whatever the heck it is that this

39:44

thing does, right? So, he's not doing

39:47

the the things I always get. They're all

39:49

ridiculous, but they're that they're

39:50

like um you know, it's not an apples to

39:52

apples comparison. Uh you don't have all

39:55

the features. It's the features. Uh it's

39:58

um it's the plugins. You just don't you

40:01

don't have plugins. Plugins. Everyone

40:02

knows that as soon as there's the

40:04

concept of a plugin, everything is takes

40:07

uh several seconds to happen. Um blah

40:10

blah blah. I think that's what he'll

40:12

people reply with with that crap to that

40:14

person even though he did it right.

40:15

>> So Casey, you're actually missing kind

40:17

of like a really fun part of webdev. Uh

40:19

which goes a little something like this,

40:21

which is all right, we're going to

40:24

rewrite something and we're going to

40:26

rewrite it. And here's our kind of first

40:28

implementation of it. And it is 10 times

40:33

faster, bro.

40:34

>> It's so good. the previous version. Like

40:37

this new version, it's so fast and they

40:39

release it and everyone's like

40:40

high-fiving and then

40:43

>> about 3 months later

40:45

>> after you fully rewritten it, it's

40:47

effectively baseline or worse. Like

40:48

typically it actually goes worse. Like

40:50

this happened with a very major project

40:52

that I saw actually got significantly

40:54

worse memory usage. And so it's just

40:56

like but in the beginning it was so

40:58

good. So, when I see like a run dialogue

41:00

rewrite that came in below budget, I

41:04

mean, you don't realize what this does

41:05

to me. Like, I can't I didn't even think

41:07

it was possible. So, I'm actually very

41:09

impressed.

41:11

>> I mean, like I said, I I don't know. I'm

41:13

just saying what people will say. I I

41:16

don't know. I I

41:17

>> I thought for Oh, go ahead.

41:19

>> No, T, please. I was going to say

41:21

initially when I saw the tweet I thought

41:23

for sure I misread it because I thought

41:25

they were saying the start menu thing.

41:27

The thing that people actually open. You

41:30

know what I'm saying? The one that like

41:31

>> sometimes you press the start thing and

41:34

then it like it just doesn't show up for

41:36

5 seconds and then it shows up. And I

41:38

was like

41:39

>> I was like good for Yes. Yeah. It shows

41:41

me ads for Edge and for Bing and and

41:44

like

41:45

>> I was like wow good for them. a feature

41:47

that a regular everyday person uses.

41:50

They rewrote from scratch and took from

41:52

my experience median of five to 10

41:54

seconds to load it feels like. And they

41:57

brought it down to 90 milliseconds. I'm

41:59

like, great. Good for them.

42:01

>> It's the opposite of that, right? Every

42:03

single version of Windows, it gets

42:04

slower.

42:06

>> The start menu is still bad and the run

42:08

menu that my parents don't know exists

42:12

is

42:12

>> My mom has never seen the run menu. She

42:14

does not know what that even means. Like

42:15

if I were to tell, oh, just use the run

42:17

menu. You'd be like, what is a run menu?

42:19

>> I I'm kind of confused about the run

42:22

menu to be completely honest because um

42:25

>> again, this is kind of like for

42:27

historical reasons. Originally, the

42:30

start menu did not really have the

42:32

concept of like type to execute. So like

42:36

if you look back at like a Windows 95 or

42:38

Windows 2000 XP era start menu then what

42:42

happened if I if I'm remembering

42:44

correctly is typing would be would be

42:48

interpreted as like trying to hotkey

42:50

through that menu. So like you popped up

42:53

the start menu using like uh the super

42:56

key or whatever or the Windows key or

42:58

whatever it would be called. I guess

42:59

>> the co-pilot key now Casey

43:01

>> co-pilot what? Yeah. Right. Um, you push

43:04

that, the start button opens and you

43:05

type a key. I think it just hotkeys

43:08

through that menu. It doesn't start uh

43:11

it didn't originally I at least my

43:13

recollection is it didn't originally

43:15

start accepting those as keystrokes to

43:18

be interpreted as a command of some

43:20

kind. If you now do it, like if I hit

43:22

that button, uh, it it does so like if I

43:26

hit the start menu button and I start

43:28

typing, it does sort of like a Linux C

43:30

style thing where you start typing into

43:32

a kind of ambiguous box that's just

43:34

like, I don't know, I'm going to do

43:35

something with this.

43:36

>> Yeah, the menu effectively.

43:37

>> Effectively, my question is,

43:41

>> why is there even a run menu to begin

43:44

with? Now, isn't that thing like what

43:46

why are there two different things? And

43:48

I'm guessing, and I could be wrong, I'm

43:51

guessing the answer is because the run

43:53

menu is actually going to run the thing.

43:56

Whereas the the box is like we have to

44:00

keep that as like an idiot box. Like it

44:02

has to be a thing where you just type if

44:04

you type in C colon uh back slash uh you

44:08

know, Windows back slashnotepad.exe

44:10

exe into that or something. We have to

44:13

show you ads for our new co-pilot

44:14

improved uh notepad that you or what

44:18

right like it has to it has to do all

44:19

these other businessoriented operations.

44:22

So that can't be the run dialogue. We

44:25

have to have this other run dialogue. Is

44:26

that the explanation? Because I don't

44:28

really know like I don't know why there

44:29

are two.

44:30

>> Yeah, Casey. Unfortunately, you're 100%

44:33

right. It will literally show you

44:36

internet search results in the start

44:39

menu in Windows right now. My Windows

44:42

machine

44:43

for the internet search results. It's a

44:45

thing. Uh

44:47

>> I find Casey

44:48

>> Wait, can I say one more thing about

44:50

that though, which is that Casey,

44:51

unfortunately, you'll be really pleased

44:54

or sad to hear. I don't know. Depending

44:55

on, you know, are we praying on

44:57

Microsoft's downfall? I'm not sure. But

45:00

>> okay,

45:00

>> often times it shows the internet search

45:02

result higher than the local program. In

45:05

my experience on that where you start

45:07

typing something, I start typing slay

45:10

the spire 2 and it doesn't pick the

45:12

game. It's going to pick a web search to

45:14

bring me to slayer 2.com or something

45:17

like that instead and opens it up.

45:18

>> Oh yeah, it does a bunch of stuff.

45:20

>> Edge.

45:21

>> Yeah, trash. Hold it up so we can see.

45:22

Flip flip your, you know, point yourself

45:24

away from the camera. Hold it.

45:25

>> No, you might reveal this one password.

45:26

>> This is This is a work machine. Hold on.

45:28

It might reveal his one password. Don't

45:29

do that. Don't do Don't listen to

45:33

Don't give away your password. Trash.

45:36

>> Oddly enough, I do have my password on

45:38

the screen right now.

45:39

>> I saved it. I save it in place.

45:41

>> No, you don't. Don't say NO. ARE YOU

45:43

KIDDING ME RIGHT NOW?

45:46

>> Oh no.

45:46

>> Was that a joke?

45:47

>> I don't think he's kidding.

45:49

>> Oh no.

45:51

>> You can't admit that. You cannot admit

45:52

that out loud. You just You just

45:54

>> Bro, it's secure.

45:56

>> It's secure.

45:58

trash. I'm just kidding.

46:07

>> All right. So,

46:07

>> Daisy, can I make can I make you even

46:09

more frustrated?

46:10

>> I mean, I I again like I don't care.

46:14

Windows, do whatever you want. I

46:15

switched. I don't care. The frustration

46:17

was the tweets.

46:18

>> Okay. So, that's very immature of you.

46:20

This is my own life.

46:22

>> Mhm. So, one thing that's kind of

46:24

interesting about uh uh what's called

46:27

the start menu is that you can you can

46:29

kind of treat it like a fuzzy finder a

46:31

little bit. So, I can type in like s

46:33

notes and hopefully I get what I'm

46:35

wanting. It doesn't quite work that

46:37

well. It it pulls up results. I can't

46:38

quite figure it out. But the run one is

46:40

definitely not fuzzy findable,

46:42

>> right?

46:43

>> So, the run one you have to type in like

46:44

the correct thing. You have to say the

46:45

program you're going to run,

46:47

>> which I assume is the intent, right?

46:48

like it's trying it's trying to be more

46:51

of a command line like experience which

46:54

is why I this is why I assume that there

46:57

are two which is kind of weird but like

47:00

you know yeah so that's that's the

47:03

that's the interesting one is that you

47:04

get a more fuzzy find plus internet

47:06

results one for one and a no fuzzyfind

47:08

one for the other one and so but the

47:10

updates to the one that nobody know

47:11

really generally most people don't use I

47:13

assume

47:14

>> yeah I'm assuming it's more more for

47:16

people who just like They they back in

47:19

the day they opened the start menu and

47:21

selected run which is how you originally

47:24

got to this or you learned the hotkey of

47:26

win r or something and now that's just

47:28

part of your workflow so we tried to

47:30

keep it which I appreciate them doing

47:31

like they could have just removed it

47:33

like you said very few people probably

47:35

use it in rel relative to their gigantic

47:38

user base but very few people in this

47:40

case is still probably in the hundred

47:41

thousands right because win is so huge.

47:44

Yeah,

47:44

>> I think I most often see it in um let's

47:48

see, Kit Boga videos where the guys are

47:51

trying to scam him and they make him run

47:52

a command.

47:55

That's the time I most often see the run

47:57

menu is they say, "Open up run menu,

47:59

type," and then they say something

48:01

insane to type in there.

48:05

>> By the way, TJ, just so you know, you

48:06

could always disable search results if

48:09

you wanted to.

48:10

>> Oh, I can. I don't have any computers

48:12

left now.

48:14

Okay,

48:16

just in case you wanted to if you know

48:18

it's one of the fantastic features start

48:19

menu. You can disable ads. It's like a

48:22

it's an available option.

48:24

>> We talked about this recently. I

48:25

literally tried to boot up an old

48:27

Windows computer that I had so I could

48:29

have it as a Minecraft machine for my

48:32

wife so that when we play Minecraft

48:34

together, she just has one computer that

48:35

we turn on and then it opens to

48:37

Minecraft. Basically, it got stuck in an

48:40

update loop where I couldn't download

48:42

Minecraft because it was waiting for

48:44

Windows updates, but Windows updates

48:47

couldn't run cuz it was trying to run

48:48

Windows Store problems. And so, they

48:51

fought each other. And I couldn't get an

48:53

update or Minecraft installed on the

48:55

machine. So, I deleted everything and

48:57

installed Linux and put Minecraft on

48:59

there faster than I could get the

49:01

Windows update.

49:02

>> Minecraft. A a Microsoft product. A

49:05

Microsoft product. I had to run the

49:08

Android emulated version of Bedrock

49:11

Minecraft on my Linux machine which I

49:13

installed from scratch faster than I

49:15

could figure out how to get the Windows

49:18

thing to work cuz I had to do the

49:20

because Bedrock one. That's the one that

49:21

we're running for my kid. So anyways,

49:23

it's crazy.

49:24

>> I think Microsoft should just start

49:26

shipping Linux. I think it's over. I

49:28

think they should just

49:29

>> put ruin that too. They should put a

49:33

Windows logo on Linux and call it

49:36

Microsoft Linux or something like that.

49:39

Microsoft Linux

49:41

>> Windows 12. That's all you have to do.

49:43

>> That's just it's Windows 12. Windows 12

49:45

is just Linux and they just and they

49:47

just like like send all their source

49:49

code to the wine developers because as

49:51

far as I'm concerned, it's over.

49:53

>> Like it's just it's over, guys. Like

49:55

it's over.

49:55

>> Instead of Windows Subsystem for Linux,

49:57

it could be window what would be the

49:59

opposite of subsystem? something that

50:01

can other Windows super system. There we

50:04

go. Linux. Yeah,

50:06

>> it's still WSL, but it's also C-pilot.

50:10

>> It's called Copilot WSL because people

50:13

have been trying I mean people have been

50:14

trying for decades to get things fixed

50:17

at this point now and it's just it's too

50:19

late. Like it's just like everyone was

50:21

forced to go do other stuff now. That's

50:23

why this is happening. No one wanted to

50:25

do this. Like like Valve didn't want to

50:28

make Steam OS. Like I didn't want to

50:30

change our machines here to Linux. I was

50:32

fine with Windows. They just they forced

50:35

us to do it by just never caring about

50:37

what any of us think. And so now we're

50:39

gone. I'm not coming back. It doesn't

50:41

matter.

50:43

>> Oh, great question. Can they win you

50:45

back? What would Microsoft have to do to

50:47

win you back?

50:48

>> They can't because I was That's what

50:50

happens. So, when you have a customer

50:54

who's been a customer for, you know, I

50:57

don't know, 30 years or something or 25

50:59

years, I don't I'd have to go count how

51:01

long it was. Um, since since like the

51:06

early 90s probably, I would say, uh,

51:08

when I was like in high school, I think

51:10

I started using Windows, but um, doesn't

51:14

matter like Windows 3.1 and stuff. Uh,

51:17

so the point is when you have a customer

51:20

who's been with you that long and had

51:23

all of their stuff like built on your

51:26

system and was used to it and you know

51:27

that was how they do their work.

51:31

The amount of work you're asking them to

51:33

do to leave is pretty substantial. In

51:36

order to get to that point, right, it's

51:39

not a like it's not a trial separation.

51:42

It's not a like we're just gonna take

51:44

some time to find each other and then

51:46

we'll come back and see if this marriage

51:47

still works. It's none of that. This is

51:50

a like I find you found you screwing the

51:53

babysitter and we're getting divorced

51:55

forever and I will never speak to you

51:56

again and I'm taking the kids. Like

51:58

that's that's how the Windows thing went

52:00

with me and I suspect that's how it went

52:02

with a lot of people. They were so bad

52:06

for so long and so egregiously anti-user

52:10

that the people who left because of that

52:12

are never coming back. Like I'm never

52:14

coming back ever. There's nothing you

52:16

could do to win me back. I will die a

52:19

user of some alternative operating

52:20

system. The question that they would

52:22

need to ask is how do they stop that

52:24

from happening to more people?

52:26

>> That's the only question left for them.

52:28

>> Casey, I I hear all those words you

52:29

said, the babysitter, all that. Okay. Um

52:31

but what if just hear me out here. You

52:33

know, you know how Hollywood stopped

52:35

having good and new ideas?

52:38

What if Windows 7 remastered?

52:45

>> Windows 7 part two.

52:48

>> Windows 7 Performance Edition.

52:51

>> Just throwing it out there. What if we

52:53

went backwards? Well, but the pro here's

52:55

the thing is that's assuming that uh you

52:59

know that's to to continue my analogy

53:01

that's just like saying I've changed

53:04

I what do YOU MEAN LIKE WHAT HOW DO I

53:07

know how do I know you're not going to

53:08

go if I take because now I have to do

53:10

work to switch back to your platform

53:13

what what guarantees do I have that you

53:16

won't just start sucking again

53:17

immediately right and none you've

53:20

demonstrated what kind of company you

53:22

are you've demonstrated how you treat

53:24

your users. You've demonstrated

53:25

institutionally what you think of us,

53:29

which is you don't think of us. You

53:31

don't care. When we repeatedly say you

53:33

need to fix this Windows update

53:34

situation, when we repeatedly say that

53:36

like all of these things are broken, the

53:38

fi like the explorer, if you

53:40

accidentally drag an icon over a network

53:42

share, it pauses for several seconds

53:45

unreoverably. How long has that been in

53:48

there? Right? Don't fix anything. I

53:50

don't care anymore. I don't want to rely

53:53

on you anymore. Right? It's gotten to

53:55

the point where some random people on

53:57

the internet who put together a Linux

54:00

distribution and put up an ISO are more

54:02

reliable to me than you. That is where

54:05

you have gotten right

54:08

in terms of what I think of your ability

54:11

to provide software to me that I can

54:12

rely on. It's over. It's it's it's done.

54:16

There's no way. There's nothing you

54:18

could do. I will, you know, I would go

54:20

start working on Linux to fix it before

54:23

I would go back to Windows.

54:26

>> So, not even XP remaster.

54:27

>> Brutal.

54:29

>> No, no. I It's the It's the It's a loss

54:32

of confidence. Complete loss of

54:34

confidence in the institution, right?

54:36

>> Okay. But what about Windows do?

54:44

>> Oh my gosh. Shut up. Hey guys, if you

54:46

like this episode, you can watch the

54:47

rest of it on the Spotify. And don't

54:50

forget to like and subscribe. Woo!

54:53

See you later.

54:53

>> Boot up today

54:58

errors on my screen.

55:01

Terminal coffee

55:04

and

55:06

living the dream.

Interactive Summary

This episode of the standup features a discussion about recent performance claims made by Microsoft regarding the Windows 11 'Run' dialogue box. The host expresses skepticism about the '94 millisecond' performance improvement metric and the company's decision to promote it as a significant achievement, sparking a debate on how user interface response times should be measured and whether 'frames per second' is a valid metric for UI performance. The conversation also touches on broader frustrations with Windows, including update loops, broken features, and the shift towards alternative operating systems like Linux, as well as the challenges of balancing user experience with technical constraints.

Suggested questions

3 ready-made prompts