611: React! TypeScript! Jobification! Drupal!

Download MP3

Dave & Chris and thoughts on career advice that worked 3 years ago but isn't as helpful now, marking tests with ChatGPT, is taking a Drupal job in 2024 a good idea, Chris got #gear sniped, P3 color follow up, the confusing File System APIs, and where did all the lightboxes go?



Chris Coyier and Dave Rupert in silly sunglasses and a sign that says Shawp Tawlkk Shough DOT COM

Chris Coyier and Dave Rupert

This episode is with just Chris & Dave, ShopTalk Show's hosts. Chris is the co-founder of CodePen and creator of CSS-Tricks, and Dave is lead developer at Paravel.

Time Jump Links

  • 00:18 Countdown news
  • 00:56 Meta guest commentary
  • 02:43 Career porn thoughts
  • 08:42 Marking tests with ChatGPT
  • 14:47 Should I take a Drupal based job?
  • 23:04 #Gear purchase: air blower edition
  • 28:44 P3 Color follow up
  • 40:01 The Many, Confusing File System APIs
  • 45:29 In 2024, are lightboxes still a thing?

Episode Sponsors 🧡


[Banjo music]

MANTRA: Just Build Websites!

Dave Rupert: What?


Dave: Sorry. Oh, geez! Whoa! Yikes.

Chris Coyier: Whoa!

Dave: Whoa! Uh... Hey there, Shop-o-maniacs. You're listening to another episode of the ShopTalk Show, a podcast all about front-end Web design and development. I'm Dave Rupert and with me is Chris Coyier. Hey, Chris.

Chris: That's going to be my new hobby is to drop some news to you during the countdown of when the show starts. [Laughter]

Dave: Yeah. You're like... You're like... As it's counting down, you're like, "Famous celebrity died."


Dave: It's like, "What?!"

Chris: What?!

Dave: What?!! So, anyway.

Chris: Yeah.

Dave: Hey...

Chris: Yeah. I guess we don't know when this airs, so it could be old news or something. It's not really--

Dave: Yeah. Just saying.

Chris: Uh... Yeah, yeah. Just a normal episode here. I do have a list of people to invite. I know nobody cares, but they're going to be. They'll be great guests.

I like it when we pick. Not that there's some third party forcing us to pick. But it's not some news event, necessarily. It's just us being like, "Hey, that looks interesting." That's what I want to do.

Dave: Yeah. Yeah. We've been on the press tour before, and that's okay. It's fine. It's nice to talk about tech when it's happening.

I think it's no secret. We tend to just talk to people we like and who are posting interesting things and doing interesting work.

Chris: Yeah, there you go.

Dave: There's really no mystery, right? [Laughter] There's not.

Chris: No, and I think analytics, in this case, would influence my decision-making there just out of vanity. But I have to report regularly the number of downloads for this show when we sell an ad or basically when BuySellAds sells an ad.

They're always like, "How many downloads did it get?" They're constantly tapping my shoulder to provide that number. The number is always the same.

Dave: Mm-hmm.

Chris: There's no... We get the same downloads no matter what we talk about, who we have on, when it's published, anything. Obviously, it varies between a couple hundred or so. But it's not like we're like, "Well, if we say React in the title, we get double the listeners." It's like absolutely not. It really doesn't matter.

Dave: It doesn't impact it at all.

Chris: No.

Dave: That's why this episode is called "React! TypeScript! Jobification!"

Chris: [Laughter] Yeah. Anybody that listens to this show is guaranteed a job.

Dave: Guaranteed a job listening to ShopTalk, the podcast.

Chris: Yeah.


Dave: Yeah, I think about career porn a lot. Do you know? Is this phrase okay to talk about? Is it safe for work?

Chris: I think so. I don't know.

Dave: I see streamers and stuff, and I'm not throwing anyone under the bus or anything, but there's a lot of, like, "If you just keep working and apply yourself, you're going to get a job, man."

I'm like, "Maybe last year."

Chris: [Laughter]

Dave: This year sucks, dude. You know? It's such a... There's just all this... There's been an interesting... Michael Chan lost his job and has been very transparent about looking for work. I think that's pretty cool. But there's been... I don't know.

I come across all this, like, "Just work hard and you'll get a job," and it's like that's very cool advice for last year. Everything is different now, I feel like.

Chris: Yeah. It makes me sad to even think about it. We certainly experience it in our Discord people going on that journey.

I'm in a recent new Slack with a bunch of authors talking about stuff. They're like... I think of all of them as, like, famous, essentially. You know?

Dave: Mm-hmm.

Chris: Like, "Look at you, top of your field, writing books." And it's like... I don't know what the percentage is, but there are plenty of people in there just being like, "Man, I'm looking."

Dave: Yeah. Yeah.

Chris: I'm like, "You're looking? That sucks." [Laughter]

Dave: Yeah.

Chris: There are no guarantees in this dang old world.

Dave: No, that's just it. I think the scale of this year has been hard and thousands, I guess, tens of thousands of people have been laid off.

Chris: Yeah.

Dave: The competition is real thick. If somebody wants a left-handed person who speaks Portuguese and knows TypeScript, they can find that person. They just have to wait around.

I've been thinking of it as asymmetry. They have all the cards and power. They can just wait around for the exact right person who meets their weird niche needs.

Chris: Yeah.

Dave: Yeah. It's bizarre whereas two years ago, somebody might have been like, "Dude, we've got to get people coding. We've got to get this thing done."

Now it's like, "Well, we're out of ideas. We're just waiting for AI to give us ideas." [Laughter]

Chris: Hmm...

Dave: That's what it feels like.


Chris: Maybe. It feels to me like it's going to come back, but I just can't promise that anymore. How would I know?

Dave: Yeah.

Chris: I'm just some idiot.

Dave: Well, it always has. There's always been an upside--

Chris: Yeah.

Dave: --to the downside, and stuff like that. Yeah, I don't know. This one... Yeah, I don't know. I don't mean to be... I know there are record numbers of jobs adding to the - whatever - U.S. economy and all that stuff.

Chris: Yeah.

Dave: I'm not red pilled or anything like that. But the tech market is just really in a weird state, and I think that's because money froze up and everyone is buckling down. I think it's a hard situation.

Chris: Probably. Yeah, it got cool to do layoffs. Then usually the flipside of a layoff is like, "Oops, did too many." We just haven't seen that happen yet.

Then AI definitely throws a wrench in things, too. People waiting around to be like, "Maybe we don't... Can this thing do people's jobs?"

Dave: Well, I saw this thing. This week or next week - or something - my kids take star tests, like the Texas standardized test. Right?

Chris: Okay.

Dave: Every couple of years.

Chris: Yeah.

Dave: There's a multiple choice section of it. Then there's a written portion of it. I just saw in the Texas Tribune (kind of an independent news rag here in Texas) -- oh, and has Miranda worked with them? I feel like she has maybe.

Chris: The Texas Tribune?

Dave: Yeah.

Chris: I definitely know people there because she was so involved in journalism and journalism organizations.

Dave: Yeah.

Chris: I don't know if she worked directly for the Tribune, but definitely we have mutual friends through her work in that.

Dave: Overlap work. Yeah.

Chris: Yeah.

Dave: Okay. Cool. Anyway, it's a pretty good, independent news organization. Really big on, like, data and just providing accountability and stuff like that.

Chris: Mm-hmm.


Dave: They did this... Sorry. I'll do the testing story, but I'll just give... I'll come back to that.

One thing they did was they used AI. I saw this post where they used AI to basically find and calculate all of these uncapped wells, natural gas wells, in Texas, like degrading or uncapped wells that are just spewing methane. Right?

They found out there's something -- I don't even know -- millions of these wells just barfing methane into the atmosphere.

Chris: That's hard to think about. I understand what they're doing and that there was an outcome. But a lot of people think of -- me included in this -- AI now as a large language model, so you type in some stuff and it comes back. That can't look at methane output from geographical locations, so I don't understand. Or they think of, like, "Oh, it can make an image."

Dave: Well, and it's probably machine learning is what it was. They taught a machine how to--

Chris: They gave it a ton of data.

Dave: Here's what an ugly, uncapped... Here's a list of known things. Here are satellite photos. And here's what a broken well looks like. It was probably something like that, more machine learning style.

Chris: Oh... I see, so the model is their own. Anyway, go on.

Dave: Oh, no. Well, so, anyway, they do cool stuff with data. They're kind of like... New York Times does cool data, they do that but on a Texas level, right?

But anyway, they had this article about how they're going to grade the Texas Education Association or Agency. TEA has decided to grade the STAR tests using AI, using ChatGPT.

Chris: Oh... Well, I can see that being pretty controversial.

Dave: Right?

Chris: It reminds me of the weapons of mass destruction data - or whatever that book is -- where it was like, "The problem with doing stuff like that is there needs to be a really clear model for fixing when it's wrong because it's going to be wrong because we know AI is wrong all the time." If you're going to say something like that, I want it to be in the next paragraph what you're going to do when it's wrong.

Dave: Well, and their thing is you can challenge the AI bot for $50. And if you win your case, you get the $50 back. But if you lose the case, you owe $50.

I'm fine. I'm sure we'll be there one day. But ChatGPT came out like two years ago. [Laughter]

Chris: Just shocked.

Dave: And we're just going to put millions of kids in the line of fire here? That seems so upside down. I'm not... Yeah. Yeah, it's just wild to me what... the rapid decisions that are happening. I forgot how we got here. But anyway--

Chris: [Laughter] How did we get here?

Dave: How did we get here?

Chris: How did you get to talking about the Tribune?


Dave: I was talking about OJ Simpson. [Laughter] Anyway, it's called... I just read a book called The Coming Wave by Mustafa Suleyman who is currently the CEO of AI at Microsoft. He just got this new job, created the CEO of AI.

He used to be a part of Google's Deep Mind, the AlphaGo bot that they made that beat the Go player and made everyone not want to play Go anymore. This book is actually really good. I would recommend it. I thought it was going to be--

I know Microsoft is making big bets with AI and stuff like that. I thought this was going to be very, like--

Chris: Right. Do they want him publishing a book that says, "I don't know about this AI stuff"? You know that it's going to be AI-positive going into it, right?

Dave: Yeah, well, that's why I thought it was going to be very cheerleader.

Chris: Yeah.

Dave: Very, like, "Hey, this is awesome, dude." But it's actually way more of... The whole book is almost about this whole idea of containment, like, "We have this new tool that can do a lot of stuff. And it's going to," based on his trending lines, "going to get more powerful and be more adopted by more businesses and things."

He actually wrote this before he was CEO of AI at Microsoft. "It's going to be more powerful, more used, more adopted in everyday life."

Chris: Doesn't that seem like, "Of course, it is. Why is that interesting?"

Dave: Well, I think the argument is it's sort of inevitable that this is going to be overtake everything. And so, the whole book is just about containment, this idea of, like, "We need to make sure bad actors don't get this and use this in bad ways. We need to make sure it's safe for humans. We need to make sure the output is correct, good, and stuff like that, and that it's not used for malicious purposes."

Chris: That's the Sam Altman model, too, right? You just say that you're going to do that and then you just do whatever you want.

Dave: Sort of. Yeah. Yeah. A) I think it's good you have ethicists or people who care about that in the AI sphere. I just thought it was going to be a total, like, "Check out how awesome this is." [Laughter] You know? But it was way more level-headed than I thought.

Yeah, I don't know. There's... I have millions of questions. But then seeing the Texas Education be like, "We're going to use this tool," I don't know.

I sort of wish Sam Altman would come out and be like, "Hey. Don't." [Laughter] Or "Maybe not. This is -- I don't know, man."

Chris: Oh, like in a situation like that. Could an AI leader who has got some actual clout see a use case for AI and say, "Please stop it." I've never seen it once. Not to say that it never has because I'm just one guy. It's not like I read every AI news. In fact, honestly, I see AI news and I will tune out a little bit at this point because, for some reason--

Dave: A little white noisy. Yeah.

Chris: --it hasn't become that interesting to me. But I would read that article or that would make extra headlines outside of just AI circles, I think. To see something like that would be nice.

Dave: Yeah. Yeah. I don't know.

Chris: I mean I don't even know the details of the Texas thing, but just based on the few facts that you spit out, I'm like, "Absolutely not."

The other part is like, what were you doing before? Were you using human beings to grade the tests?

Dave: Oh, that's where it was. Yeah, they were using human beings. Now they said--

Chris: Now they don't want to.

Dave: This is how I got to it. Yeah, that's too expensive. They're going to save $15 million by not, which Texas--

Chris: Need. Right.

Dave: Libertarian taxpayers are like, "Yeah, that's awesome!" But now 4,000 graders don't have a job, like a seasonal job, you know, for the tests. They went from 6,000 graders to 2,000 graders - or something like that.

Chris: Right. Now all they need is the person that collects the $50. They'll hand-grade those.

Dave: Yeah. They need a Stripe account, yeah, to hand-grade those. Right? And so, who could afford the $50 to get a challenge?

Chris: The challenge is especially crazy to me.

Dave: Rich people. [Laughter] People with an extra $50. [Laughter] Oh, man. I don't know. Oh, man. I just don't know anymore.


Chris: Well, here's a question from Max K. about this job thing (a little bit) that maybe I can imagine us answering this question differently in different years and at different times.

Dave: Sure.

Chris: What he says is, "I've been offered an interview for a position as a Drupal developer at a big university."

Dave: Take it.


Chris: Yeah. I don't think we need to keep reading.

Dave: Okay. Done.

Chris: Yeah.

Dave: Sorry. Yeah.

Chris: Yeah. Show up with bells on. You know?

Dave: Yeah.

Chris: "I've never used Drupal but, reading online, it seems well dead." You know. I don't know about that. I don't think it's dead. I don't know that it's huge. I don't know how competitive it is anymore.

You used to kind of think about, like, what kind of market share do each of the big kind of PHP CMSs have.

Dave: Mm-hmm.

Chris: I feel like they were in second place at one point (in my career anyway). And tech doesn't move that fast. The fact that you said "big university" tracks to me. I always thought Drupal, for some reason, had good inroads with universities and schools.

Dave: Universities, newspapers, yeah.

Chris: Yeah. I don't know what particular features it was, but sometimes it's not necessarily features. Sometimes it's just culture and stuff that leads to that. So, it's not surprising to me that it has that.

But yeah, Max, straight up, you could replace Drupal with any other word and Dave and I right now might just be like, "Yeah, go for it, man." You know?

Dave: Mm-hmm.

Chris: They want to give you some money to do some work. Sounds great. Hey, at least you're not a line cook at Applebee's like I was for many years.

There's still always a part in the back of my head that's like, "I could do that if I had to." I don't want to but I'd rather be a Drupal developer at some university.

Dave: Time out. Can you make a blooming onion?

Chris: [Laughter]

Dave: Like if I needed one right now, you could just whip it up for me?

Chris: I could, I think.

Dave: Oh, my gosh!

Chris: Yeah.

Dave: That's awesome. Anyway--

Chris: [Laughter] Yeah.

Dave: [Laughter]

Chris: I was more like the meat guy.

Dave: Oh, okay. Yeah.

Chris: There was three.... There was three. There was the person in the middle who was... They probably made $0.50 more an hour or something because they kind of brought all the dishes together.

Dave: Mm-hmm.

Chris: But also had their own things they did. Then the meat guy was just on the grill constantly.

Dave: Right.

Chris: Making the fajitas and all that stuff. And then there's the fryer side, too. It was like fryers and desserts.

Dave: The fryer guy, yeah.

Chris: And it all came together in the middle. I never did multiple jobs. I was just meat only all the time.

Dave: I was the meat guy at McDonald's, which is not as complicated as Applebee's. It's just put patties on the thing.

Chris: Yeah.

Dave: [Laughter] And put the squisher on it. But yeah. Anyway, it's interesting.

Chris: Yeah. They still need the squisher person. You'd think if anybody was going to AI up some stuff, it'd be that. But I just did it. I said AI when really I just mean a robot.

Dave: Yeah.

Chris: It has nothing to do with AI. You know?

Dave: Yeah. It could be a mechanical robot, a mechanoid.

So, Drupal at a university, I would actually say Drupal is sort of a neutral choice to me. I think you're there. You're using Drupal. It's going to live for a long time because a lot of people are using it and there's probably a lot of horizontal mobility working for different universities if you know Drupal.

And a university is going to move a lot slower than a startup. So, that would be the big thing. Are you prepared for that phase, that lifestyle where things are just kind of a lot slower? That would be a question, the bigger question for me.

If Drupal ends up sticking and not upgrading and not updating and not doing good for years or whatever, then guess what. You're part of the person who gets to move the needle inside a big university. You get to say--

Chris: Yeah, possibly. That'd be cool.

Dave: "Let's go to Drupal headless and move our whole stack to SvelteKit," or something. Then maybe you are then... The Drupal parts become very background or maybe you get them off of Drupal or something and you find the better thing. I don't know what the better thing is. Probably Craft CMS.

Yeah. I think if it sounds okay to you, if it sounds like a good move, I would consider it.

Chris: Yeah. For sure.

Dave: My sentiment, just from following tech, is probably similar. It's not dead. It's just not hustling and bustling. They had a big -- what was it -- Drupal 8 upgrade. I think they're on Drupal 9, if I'm wrong. I could be wrong there.

Chris: I think they're on 10 now, or at least that's what their website says.

Dave: Ten now? Okay.

Chris: But you can tell that they're talking to... They're done talking to the public. Now they talk to existing Drupal users. It feels that way to me.

You're like, "Oh, Drupal 10. Let me see. Oh, wow. A big marketing page. What's included in Drupal 10?" Let me tell you, Dave. The Claro administration theme replacing 7. Olivero default them replacing Bartik.

They're not talking to me, Chris Coyier. I have no idea what these words are.

Dave: Yeah, that means nothing to me. Yeah.

Chris: Yeah.

Dave: Yeah.

Chris: They're not interested in telling me why I should use Drupal. It doesn't seem like it, anyway. Maybe that's unfair. But yeah.

And the website just seems a little sloppy. You know? I think that matters in this world. You go to their website and you're like, "You've been around for a long time and this is what you got design-wise?" It's just blah. It's not good.

Dave: You need to punch it up a bit. I agree. Punch it up a bit.

Chris: A library... I feel like the most tiny little new JavaScript library that does one tiny little nothing these days has a website that's three times as beautiful as this. [Laughter] You know what I mean?

Dave: Yeah.

Chris: I don't know. Maybe that's jerk league, but that's what I feel like.

Dave: Yeah. Drupal runs the MLS (Major League Soccer) website. You know what I mean? It's not dummies who are choosing Drupal. You know what I mean?

Chris: No.

Dave: Big organizations are choosing Drupal for very specific reasons. I don't know. I think it's still fine, unless it's not fine. Unless somebody has a reason it's not fine. But you know I didn't know it was on Drupal 10. I think that's cool.

Chris: Yeah, they're trucking along just fine. Take the job. Innovate. Whatever.

Dave: Drupal probably just needs more people talking about Drupal, and that could be you. You know what I mean?

Chris: There you go. You've said that recently. That's become a little Dave catchphrase, hasn't it?

Dave: Yeah.

Chris: When an organization or a library or something does good work, sometimes they just don't talk about it enough.


Dave: Yeah, that's probably my biggest takeaway from Luro, like starting my own company, is people don't know.

At Paravel, we always had this saying, which is going to sound offensive, but "People don't give a shit." Right? Everyone is too busy. Everyone is too in their own head doing their own thing, fielding emails, taking meetings. Everyone is too busy to care.

And so, they're not going to go to your website and read about it. You have to constantly be sharing the cool things about your thing, your framework, your blog, your whatever.

Chris: Mm-hmm.

Dave: You have to keep advocating for the things you like. That's even... I say that to myself, too. There are cool things about Web components that I want to tell people about and I just forget or just don't. And so, if you like something, you should talk about it. Then other people will know about it. Then it'll get picked up. Yeah.

People just don't care, and people are too busy to care.


Chris: Yeah. Oh, fascinating. Well, you gear-channeled me the other day. I'm pretty susceptible to it, generally. But we have a gear channel in the Discord, and the joke is -- that we mentioned, I think, on here -- that if you post something with any doubt or question that you may or may not buy the thing, that you will be pressured into it. But you tend to pressure yourself, too, a little bit.

Dave: Yeah, you'll be peer pressured into buying whatever is in... you know. Whatever. and so, I posted... [Laughter] Do you want to say what I posted? You can go because you actually bought it. I just asked the question.

Chris: I just think it's an amazing piece of technology in the world. But I can't even tell you who makes it. SDF. It's just some Chinese brand of something, right?

Dave: Yeah. Yeah. [Laughter]

Chris: To not keep people in disbelief here, all it does is blow air. It's an air blower. It just shoots air out of it.

Dave: It's an air blower, yeah.

Chris: Right?

Dave: Yeah.

Chris: But I had it in my head. I don't know if this used to be true or it never was true and my brain is just broken or something. But they sell canned air.

Dave: Mm-hmm. Mm-hmm.

Chris: You press the button down and it shoots air out of it, and it gives you that kind of WD-40 long red hose thing that sticks out of the nozzle of it.

Dave: Mm-hmm.

Chris: I always kind of liked that because you can stick that thing down in your keyboard (if you have a keyboard that isn't...). I know these days a lot of people have low-profile keyboards and stuff that it probably doesn't help that much. But if you need to get some air down into a crevasse--

Dave: Mm-hmm.

Chris: Boy, nothing like canned air to do it. Then the can gets all cold and stuff. I just love it. I find it very satisfying. But I am showed with guilt over it. [Laughter] I'm like, "What kind of resources on planet Earth went into me getting this jar of air?"

Dave: Yeah. Yeah, I don't think it's actually good for the environment or anything.

Chris: Oh, I'm sure it's not.

Dave: Yeah.

Chris: Then you just throw it away because it's - whatever.

Dave: Yeah. Yeah, yeah.

Chris: So, when you posted this, I'm like, "Oh, I've been wanting to get some canned air because, actually, I have some pretty practical uses for it." One, I have that kind of keyboard that you need to get the little crumbs out of and crap because I'm a filthy animal and eat at my desk at least a couple of times a week.

Dave: Mm-hmm.

Chris: And worse, I have a desk where it's a glass top but the top, it's a piece of metal and then a piece of glass (separated by little gummy bears or whatever in the middle). Sometimes, little crumbs and crap get in between.

Dave: Mm-hmm. Mm-hmm.

Chris: I'm looking at tons of them right now. I really need to take the glass off of this desk and clean it and then put it back together. I like to do it once a year. But it really needs it right now, but I'm like, "Hmm... But does it? Or can I shoot air in between the two things and solve this problem?"


Chris: The answer, unfortunately, is A) this device is amazing, the one you posted. For some reason, it comes in Nickelodeon colors.

Dave: Yeah.

Chris: It looks like a little gun that's orange, lime green, and deep purple, just like Nickelodeon.

Dave: Oh, I saw that, and that's what got me. That's what almost nerd sniped me was, like, "Can I pull off the Nickelodeon aesthetic?" Like, "Yeah!"


Dave: The super soaker vibe, you know.

Chris: Yeah.


Chris: It looks great. They have one in black, too. But I was like, "Why?" It looks amazing in the Nickelodeon colors.

Dave: No. No, you don't need the... yeah.

Chris: And so, what it is, it's a big battery pack, so it feels heavy in your hand. But the fricken' motor on it just cooks.

Dave: Really?

Chris: It's just unbelievable how fast it spins a little fan, and it just feels like, yeah, of course, they've got... There's nothing breakthrough about it other than probably these motors, this level of battery power, and a motor like this probably just is relatively new to the word. Plus, it was like $80 or something, too. This isn't like a $10 thing.

Dave: No, there's....

Chris: But I was like, "I'll never buy canned air again." Now I have this thing, which charges via USBC.

Dave: Ooh... Ooh...

Chris: And now it'll shoot air forever. Now, it cannot shoot air out of the little WD-40 red hose thing.

Dave: Ooh...

Chris: That's the downfall of this thing, so I can't actually get air in the perfect thing that I just described, getting the crumbs out between the glass and the desk. It does a little, but it can't really get in there like canned air can.

Dave: Fine tooth, yeah, yeah.

Chris: Which is a bummer because that was the number one thing I wanted this for. But now that I have it, I also just think it's really fun to have a high-power fan in my hand, so I don't know. [Laughter] No regrets.

Dave: Yeah. Oh, man. I'm so tempted. Now that we've talked about it, everyone is going to buy them all. Then they're going to be... Now I'm--

Chris: Yeah.

Dave: I might have to pull the trigger before this goes up.

Chris: It's not on Temu either, man. It's just on regular old Amazon.

Dave: Yeah. Oh, man. I'm tempted. I'm super tempted. It would be great.

Chris: I'm basically an environmentalist at this point.

Dave: Yeah. I wonder if you could 3D print a tighter nozzle, a new nozzle to--

Chris: I think it could. I just have a feeling that it's on purpose.

Dave: Yeah. Yeah.

Chris: The way the motor is, it can't actually push air through that tiny thing. I think it would lose too much juice.

Dave: Mm-hmm. Mm-hmm.

Chris: It's amazing how much air it puts out, but I don't think... For some reason, I just don't think it can do the tiny-tiny hose thing.

Dave: Well, I don't know.

Chris: Maybe it can.

Dave: But it looks like Nickelodeon, so it looks like it's from Double-Dare. It's like, "Surprise. You win on Double-Dare."

Chris: There you go.

[Very loud air blowing]


Dave: Oh, my God! [Laughter]

Chris: [Laughter]

Dave: That was so fast! Oh, man!


Chris: Enjoy, baby. This thing is amazing.

Dave: Wow! Oh, my God. That was so fast.

Chris: [Laughter]

Dave: Oh, man. Yeah, it looks like a prize you win on Double-Dare. It's fricken' great, dude. Oh!


Chris: I have another little follow up, too. I don't remember if it was on this show. It probably was and probably a number of times. P3 color, display P3, everybody knows what that is, right?

Dave: Mm-hmm. Mm-hmm. Yeah.

Chris: It's a wider color. I always want to say the correct word. It's not necessarily a model because model just colors... A color space, I guess.

Dave: Yeah.

Chris: More colors in it than the RGB or SRGB is. That's just such a big deal. I feel like we've talked about that a number of times on this show. You can have redder reds and oranger oranges and greener greens and stuff. It opens up the color space wider, and it's so cool. It's just going to be the default going forward.

CSS has caught up now. You can use these colors, but you have to use the color function or LCH or OKLCH or LAB or something because, unfortunately, HEX colors and RGB and HSL (and these ones that we've lived with for a very long time), they can't use it. They just can't. Bummer, right?

But I think we'll just get more and more muscle memory for using the new color functions because one of the things that they do is unlock the P3 color space and they're ready in case P3 someday gets even wider and there's some new color model that's even bigger than P3 is. Those functions are ready to adapt to them, as I understand it.

Dave: Mm-hmm. Mm-hmm.

Chris: That's great. I think more and more and more and more of us are going to use P3 colors building websites going forward. In fact, we even surmised at one point that perhaps websites that don't do that will look a little drab, potentially, especially when they're trying to look bright and exciting. If you were going to launch a new product and the brand color was intentionally exciting yellow and you didn't use P3, it would be weak sauce.

Dave: Yeah. Yeah.

Chris: Anyway, okay, so that's going on. This all leads up to my thing. It's like, "Why haven't color pickers caught up to this yet, like, at all?"

Dave: Mm-hmm. Mm-hmm.

Chris: The OS-level ones or third-party add-ons and stuff, they just can't select colors in P3. If you are hovering over a P3 color being used on the Web or a common source of them is, like, you've taken a photograph with your iPhone or Android phone - or whatever. It will be definitely producing JPEGs with colors in that range. That stuff happened first.

Dave: Mm-hmm. Mm-hmm.

Chris: Before the Web technologies caught up to it. So, if you use a color picker over that, probably a bunch of those colors are going to be in that P3 extended color space. But your color picker is just going to snipe it back down into SRGB space, which sucks. What's with that? Get on it, color pickers.

Dave: Yeah.

Chris: Especially because there's some money in it. If you have the best color picker that is the first one to support P3 colors, you've got my $5 - or whatever it is. [Laughter] You know?

Dave: Mm-hmm. Mm-hmm.

Chris: I think it was Greg posted something in the Discord with the updates for xScope. I don't think he was talking about this specifically, but I saw that some of their features talked about P3 in different ways. But I was like, "Ooh, I wonder if it can actually--" Does it have a color picker built into xScope?

xScope is this icon factory tool that does lots of stuff. It's not just a color picker, but it happens to have a color picker in it as part of its loop tool.

Wouldn't you know it, Dave. They do have Display P3 as one of the color formats that you can pick from. So, kind of cool. And I tested it out.

A way to test it out is just go to a website like that's spitting out P3 colors. Make sure you have selected a color in that advanced space, which is easy to do on that website. Then hover over it with xScope and hit their little keyboard command for copying the color. And sure enough, it copies it and it even copies it in a CSS-friendly format. It uses the color function to do it.

Dave: Ooh...

Chris: I tested it and it works great, so kind of cool. I don't love xScope, I'm afraid. It's a little heavy-handed for me. There are like ten tools built into it, and I just don't need any of them, really.

Dave: Mm-hmm. Yeah. Yeah.

Chris: Although, I could give it a minute. There are little, interesting ones in there, like a Unicode character selector. It's like, "Meh. I have my own little ways for doing that. But I could see using yours if I really wanted to."

But there's a lot of stuff for measuring what's happening on the screen and stuff that I'm like, "I'm not that deep into visual design that I need that stuff." But hey, gold star. First color picker I've ever seen that can do P3 colors.

Dave: Yeah. I wonder--

Chris: Well done.

Dave: Yeah. This is interesting because it gives it in P3, right? Color, the color function, remind me what that does again. That'll basically put it into--

Chris: You have to tell it what color model you want.


Dave: It'll basically backwards compat. Yeah, you're saying this is a P3 color with these numbers. But it'll basically figure out what's the closest one if the monitor doesn't support P3. Is that right?

Chris: Yeah. All of them can do that.

Dave: Okay.

Chris: That's not unique to color. We're talking about color(), like a function in CSS. You've maybe never used it. A lot of people just don't even know that it exists. But I think it's been there for quite a while.

It's just a very generic function, so it forces you to say, "Okay, I'm declaring a color." Then you have to (not optionally) tell it what color space you're using. Then you provide the values after that.

It's like, why would you use that? Because all the color spaces have their own little function, too.

Dave: Mm-hmm.

Chris: Why would you say color() SRGB and then provide the RGB values when you could just say RGB and then put the values in there. It's a little bit useless in that way. But the reason you may have used it is the very first browser to support P3 colors was Safari, and Safari didn't ship a P3 function.

Dave: Hmm...

Chris: If you wanted to use P3 colors on Safari, you had to use the color function and then say, "Display P3." Interestingly, that's what xScope copies into, or I guess that's why we started talking about this.

Dave: Yeah. Okay.

Chris: But that's the way they do it because there is no just Display P3 function in CSS. For some weird reason that I don't understand or like, you just can't do that. You have to use something else.

Dave: Interesting. Yeah.

Chris: Yeah.

Dave: I mean, yeah, because I almost, too, wanted an OKLCH. I'm just thinking of, like--

Chris: Yeah. That. Yes, please.

Dave: RGB has worked for so long as, like, "This is how many reds, this is how many blues, and this is how many greens are in the color." It's in HEX format.

Chris: Yeah.

Dave: But we have zero to 255. OKLCH, I feel like -- this is me -- is more like, "Cool. I want this lightness. I want this amount of color chroma or vibrancy," whatever that is.

Chris: Yeah. It's like the HSL of the new color spaces.

Dave: I want this hue on the wheel. And so, I feel like that's way more idiomatic of, like, I'm trying to express a color and you figure out what color is closest to that.


Chris: Yeah, exactly, which that is not something that LAB has. That's another one of these. LAB actually has some cool attributes, like, if you ask me, if you had to pick one that does the best job at gradient interpolation, I think LAB has OKLCH beat a little bit. But looking at the three values of LAB, not intuitive.

Dave: Sure, sure, sure. Yeah. Yeah, it is. It's nonsense to me. I'm trying to even think what they mean. It's like lightness albedo or something.


Dave: Blue, or something like that. I don't know. It's weird. Yeah, I don't get it.

Chris: It may not even have been an intention of it. They're like, "This isn't for you. This is for colors," or whatever.

Dave: People who build pixels, like individual pixels. Yeah. [Laughter]

Chris: Yeah, which is fine. I guess design engineers, we could use that term--

Dave: Mm-hmm. Mm-hmm.

Chris: --will probably be more and more comfortable as time goes on in understanding the different color models and functions and spaces and all that and picking the right one when needed.

Dave: Mm-hmm.

Chris: It's not going to be all the time. But if you have part of your muscle memory, you just happen to know, because gradients are part of people's muscle memory now, aren't they? They are to me. If I need to do a left-to-right or top-to-bottom gradient, I don't even need to look it up. I know how to do that.

I need to look it up sometimes when I'm like, "Oh, yeah. I need to rotate it," like, where does the degrees go again - or something? Or radial gradients are still a little illusive to me. I'm like, "Okay. I need a circle in the top right corner. What is that again?" I'm like, "Oh, no. I actually don't need to enforce the circleness. I want it to be more ovular and make its way all the way to the bottom left corner. What's the syntax for that?" I definitely have to look it up.

Dave: Mm-hmm. Mm-hmm.

Chris: But there's just one little thing that you can now add to that syntax that says, "Okay. But what color space do you want to use also?" or model. I'm using the wrong word.

You can just say in a gradient now, "Well, use OKLCH," or use OKLAB or something.

Dave: Mm-hmm.

Chris: You can just say that. It's just a little extra keyword you can chuck in the gradient, and I don't think it's unreasonable to think that a design engineer role or a CSS specialty type of person will just know that they can do that and use it when appropriate.

Dave: Yeah. I do think there's that role is very necessary. CSS is moving so much and so rapidly and changing all the time. We need people who kind of follow it, keep up on it, and then also kind of understand these kind of niche concepts.

I don't want everyone to waste their brain space on understanding the different color spaces. But somebody needs to know it.

Chris: Yeah.

Dave: I'm happy if that somebody is me. Let me do that for you.

Chris: There you go. Yeah. Rock-n-roll. Yeah. Certain things just become just part of the general industry knowledge of how it works. Nobody is like, "Should I use margin here?" just to name something really obvious in CSS. People just generally get that.

I think some of this new CSS stuff, I don't know if color spaces will be one of those things, but gap has already kind of gotten there.

Dave: Yeah.

Chris: That was relatively new and now people are just like, "Yeah. Yeah. Gap. Got it." Certain things just become part of the general knowledge of what you should know and use.

Fascinating, Sir Dave. What do we got here? I think you dropped a link in here from our buds at Cloud Four.


Dave: Cloud Four, yeah. Speaking of things, APIs that are oppressively confusing [laughter], this was a really good post from Scott Vandehey from Cloud Four about the file API.

Chris: Which one, Dave? [Laughter]

Dave: Yeah, so that's the trick is there's about 12, I feel like. [Laughter]

Chris: Oh, well, he says there's the file API, the file API again, the file system access API, the file system and file writer API, the file reader API, the file list API, the file system API, and the file API, and then a file reader API again, and the file entry sync API - or something. That's just like, "Holy buckets!"

Dave: Yeah.

Chris: That's a lot of them. Why would you use one of these at all? What's the simplest use case? Is it to pick a file from my computer? No, that's just an input of type file, right?

Dave: Well, that would be one. But let's say you're making a Markdown editor in HTML and you want to write to disk instead of write to the cloud. Or you're making your own spreadsheet application. You want to write a CSV to disk every time somebody hits save instead of writing to - whatever - a database in the cloud.

Chris: Uh-huh. Uh-huh.

Dave: That's where the file API or file... Yeah, that's where the file API tries to exist. Then there's file reader API where if you're trying to... If you use input type file and you don't want to send that to another server, you're not sending that blob to another server, you want to actually interact with the contents of that file. You want to parse a Word Doc or a PDF or something, that's the file reader API.

There are different kinds of things you're trying to do with files. These APIs try to solve them. And then a lot of them, like the ones where there are three named all the same, sometimes there's been different generations of these file APIs where they have tried to solve the problem but it didn't get adopted in another browser or it's sort of like broken or something like that.

There's a lot. Then there are file list APIs and stuff like that. That's getting a directory of files and stuff like that.

Chris: Yeah.

Dave: Yeah.


Chris: It seems kind of important. For example, I think everybody knows there are various versions of VS Code in the browser. That could not exist if these APIs didn't exist. It wouldn't be a functional piece of--

Dave: VS Code is probably the perfect example. There may be some trickery that can happen through Electron - or whatever - where it uses Electron's API, like Node API or something like that. But yeah, this stuff wouldn't exist just like that.

Chris: No.

Dave: Yeah.

Chris: Right. And if they really nail this, there'll be more websites that use it. Unfortunately, it's so complicated it probably has already pushed away untold people that could have benefited from it potentially. But oh well. I'm sure it'll settle out eventually - maybe.

Dave: Yeah. Yeah, I mean I thought this was cool just because it was a deep dive, a nerdy deep dive on stuff.

Chris: Yeah.

Dave: On all the different same named things, and so I think it's worth reading to kind of know that this is a possibility for you and your website.

Chris: Yeah. I will think of it immediately the next time I need to use one of these APIs and, like, "Oh, I better go read the lay of the land post."

Dave: Yeah. And so, I think the file system API is sort of the one right now. But then there's also, in a lot of them, you have to kind of do through an origin trial, I think. Somehow some of those features come through that, so you're not a bad actor. They could revoke your API key if you were. Yeah, your mileage is going to vary here. But I think there's also a chance it adds fingerprinting and stuff like that, so it'll never make it past security, which is fair enough, too.

Chris: Yeah. Because these things can be kind of scary, too. You're like, "Oh, I'm sorry. I can go to a website and it can read files off my computer?"

Dave: Right.

Chris: That sounds horrible. You know? [Laughter]

Dave: Yeah.

Chris: But it's all very permissions-oriented and scoped and stuff. But it would pay to understand all that. I don't think I've heard any horror stories about it or anything. It feels like it's pretty straightforward in granting access.

Dave: People that are doing it are people who need to. Does that make sense? [Laughter]

Chris: Yeah.

Dave: There are people who are writing for a reason, reading your file system for a reason. Sort of like a VS Code kind of situation.

Chris: Yeah.

Dave: Anyway, definitely check it out.

Chris: Yeah. Good article. That's good blogging, team. Good job.

Are blogs still a thing? Get out of here.

Dave: Are blogs still a thing? Yeah. just find something complicated and pull the thread, man. Pull the thread. [Laughter]


Chris: Yeah. Nick Nolte writes in. We'll just finish up with this one, I think, probably, because it's a fun question, I think.

"In 2024, right now, are lightboxes still a thing?" There are probably people listening that are like, "What is a lightbox?" It was an early Web term or something. It mostly means modal, I think. Is that what you think?

Dave: Yeah. Yeah. I mean... yeah. It mostly would be a modal.

Chris: What a weird word. How did that come to be?

Dave: Yeah, it was sort of like in 2009, every image on your website needed to be in a lightbox of some kind.

Chris: Yeah.

Dave: And you'd click an image, for example. But it could be an iframe. It could be all kinds of things showing up in this lightbox. But you click an image, and then you click left and right arrows and go to the next image. It was kind of a fast way to speed through images.

Chris: It could do that. That would be an additional feature.

Dave: Right. Right.

Chris: Right. But basically, if you clicked it, it just opened a bigger version of itself on the thing.

Dave: Yes. Yes.

Chris: Then Dave is saying, "Well, it could animate to do that." It could have a cool black background or something - maybe. It could be paginated or whatever, so you could go to the next thing, too.

Dave: The best one was the panic one that zoomed in and had the little black X.

Chris: Yeah, you wanted the zoom.

Dave: Oh, God. That was so cool.

Chris: Yeah.

Dave: Anyway...

Chris: Yeah. Yeah, and you needed to be able to close it and all that. And I'm sure it had... I'm sure, at the time, accessibility was in much worse... Despite what Jacob Nielsen might tell you, it was in much worse shape than it was then, so who knows what it was harming in that sense.

Dave: Right. Right.

Chris: But yeah. Are they still a thing now? I think that's a fascinating question because I think there probably was a period after that where people were like, "What if images didn't do that?"


Chris: We lived through that for a long time, too.

Dave: Yeah.

Chris: Not that they're back, necessarily. But I think of my own use of them, and I'm like, "Yeah, I think it's settled down to a reasonable level." If you're shopping on Amazon, yeah, it's still there to some degree.

Dave: Mm-hmm. Mm-hmm.

Chris: Or there's some kind of way of viewing images bigger, and that's reasonable because it's shopping. I feel like the shopping experience still leans heavily on them. That's fine to me.

All the personal use otherwise, too, is just that I have Jetpack installed on my WordPress blog and I like their little gallery feature sometimes. I just do nothing at all but drag some images onto my blog post. And it just kind of naturally has that experience, and I just don't mind it. I haven't cared enough to force it to not do that. I'm like, "That's fine," especially because my blog layout is such that it's center-constrained. So, it's probably not even a thousand pixels wide - or so. That means that when I put an image in there, unless I really specifically have it be this kind of breakout of grid experience, that's as big as it can be. I figured, "Hey, what the hell. If somebody has got a bigger monitor, let them click it and see it even bigger."

The irony being that's still there on mobile. I always think that's hilarious to me when there's a lightbox on modal that sometimes when you open the lightbox, the design is such that the image that you clicked on is actually smaller when it's....

Dave: Yeah. Yeah, has more padding, right?

Chris: Yeah. [Laughter]

Dave: Yeah. Yeah. Bravo.

Chris: Well, that didn't work.

Dave: Yeah. I do. I wish there was more because sometimes... You know the eyesight is going bad. I'm in bifocal territory, so I'm zooming in.

Chris: Yeah.

Dave: Tapping in to see things and stuff like that. Sometimes I wish I could get that zoomed in. But I would say I think a few things are against lightboxes. We don't just put 14-megabyte images on the homepage anymore.

Chris: Right.

Dave: It used to be you just put it on there small, like in a grid, a gallery grid, and then you'd click that image and that would be the image that would get huge.

Chris: That's a good point.

Dave: We don't do that anymore.

Chris: Otherwise, the animation isn't going to work really because, as it got bigger, then it would be expanding and exhibiting that nature of when you force a JPEG to be wider than its original source. It's all blurry and crappy. If you take a thumbnail and you animate it bigger, it's going to look like crap. But not if it's a 14-megabyte JPEG.

Dave: Nope. It works every time when it's a 14-megabyte JPEG.

Chris: Yeah.

Dave: So, we don't do that no more. Right?

Chris: Right.

Dave: Then I would also say tablets and phones, man. The fact that most, I would say, if you have the dexterity, you can zoom in. You can pinch zoom in to any photo in the world now.

Chris: Right.

Dave: That sort of has killed the effect of having to manually kind of offer that to people. It's sort of almost like... What am I trying to say? The idioms of the operating system got good enough to do that. In fact, I'm looking at posts on my site. I can double tap on my trackpad, like two-finger double tap, and it'll full scale that image to that width. It works the same with videos. You can double tap, two tap a video, and it'll go pseudo full screen. It'll just pinch-zoom into that width.

I think pinch zoom and gestures have changed the game for lightbox as well.

Chris: That's a good point. Yeah. I would definitely err on not using them. You should use them when you really know you need them.

Dave: I think galleries could use them. I think if I were making Flickr today, I'd still probably have it. But then also, image carousels, just putting the image big and having left and right arrows is also a very popular, probably better situation (even though carousels are terrible).

Chris: Yeah. I guess it's only really relevant when you know that you're displaying the image smaller than an ideal experience might be for that image.

Dave: Yeah. I said panic earlier, but panic had it on their Coda website, I think. Then they put it on all their websites. That was cool because you were looking at a screenshot of an app, a desktop application. You'd zoom in, and then you'd see the whole thing, like full desktop size almost. It really gave you a sense of what was going on. I feel like that was very helpful. You just saw a small version of it and then you get a big version.

I think maybe the trend, too, is just make that image as big as possible in the layout. Apple does that now. It's, "Oh, you want to see the iPhone? Cool. Here it is really big. We're not going to make you pinch zoom in to see the iPhone." Maybe we've just gotten better at Web design.

Chris: Yeah, maybe that's it. That's a very positive way... thought, I think. I think it's true that just as a whole, things tend to get better.

Dave: Mm-hmm. Yeah.

Chris: The choices that we make. I mean we're shipping too much JavaScript and stuff, but I would say the experience on your average website is just better now.

Dave: Yeah. I think it's easier to make a nicer experience, and I think just the collective hive mind of what's good is up there, too.

Chris: Yeah. Thanks, developer evangelists.

Dave: Yeah. We quit putting sounds on web pages. Good for us. [Laughter] We could maybe use more sounds.

Chris: Right. And we stopped using 10-pixel Verdana locked into that size.

Dave: Yeah. Look at us.

Chris: And using tables for layout. Yeah. Whatever. We've done lots of smart stuff.

Dave: We're doing good.

Chris: Look at us.

Dave: Despite what Jacob Nielsen says. Hey!

On that note, we should wrap it up. Thank you, dear listener, for making good websites. We really appreciate that. And we appreciate you listening to the show. Tell a million friends so Chris is wrong about the number of stats we get. Just a million, a cool mill would be cool - downloads.

Then... But how you can really make an impact is head over to the Discord, join the Discord,, because we'd love to have you. Chris, do you got anything else you'd like to say?

Chris: Oh...