Dave and Chris talk podcasts they're enjoying, a brief making money on the web segment, and your questions about styling old elements, encrypted media, and how to keep your boss out of your code.
CloudBees Rollout is where developers come to ship changes at will. When you have a solution to manage feature flags at scale, you’re empowered to continuously and intelligently roll out changes as soon as they are code complete on any platform - even mobile. Decouple development from code releases for real-time change control. Roll back only the changes you want. Toggle features. Use multi-variate flags for A/B testing and nix misbehaving features with a kill switch.
If you build bigger and fancier apps and website, you might be interested to know that Netlify recently launched Monorepo support - one of their long-standing feature request among their customers. Before, there was no easy way to use the same repository and deploy it across multiple Netlify sites.
When you specify a base directory for your site, Netlify's build engine will only publish and deploy a build if there are changes in that directory.
Interested in sponsoring?
- 00:47 Dave the pilgrim
- 01:45 Dave's secret MP3 story
- 04:06 Podcast listening suggestions
- 20:29 Making money on the web segment
- 35:17 Sponsor: Cloudbees Rollout
- 36:11 We need new elements and ways to style old elements
- 41:59 Sponsor: Netlify
- 43:58 Encrypted media extensions
- 55:46 My boss wants to code - what do I do?
MANTRA: Just Build Websites!
Dave Rupert: Hey there, Shop-o-maniacs. You're listening to another episode of the ShopTalk Show. I'm Dave Rupert. I don't have anything clever today. Chris - Chris Coyier is here, too. Hey, Chris. How are you?
Chris Coyier: That's shocking to me as, weeks and weeks ago, you were doing a Halloween voice and today is literally the day of Halloween and you have--
Dave: Oh, well, that we are recording.
Chris: I know.
Dave: Okay. Let me try it again.
[Speaking in a hillbilly voice] Hey, I'm Dave "Thanksgiving is coming up" Rupert.
Dave: [Continues speaking in a hillbilly voice] It's already Thanksgiving about time when you're listening to this. I'm a pilgrim. [Laughter]
Chris: Nailed it. Nailed it. Yeah.
Chris: You're right, though. It'll be a couple weeks because we're going to air the live show from JAMstack Conf that we did the show the week before this.
Chris: Listeners, you've already listened to that. I hope you enjoyed it. It was fun for us. [Laughter]
Dave: It was fun and there's a video, too, of some jokes that did not quite translate or whatever, but it was fun, a fun time.
Chris: Ah, yeah, to audio-only, but we'd be remiss if we didn't send it out to the old RSS feed as well that has a special piece of XML in it that links to an MP3, which is what makes a podcast. Did you all know that, listeners? Podcasts are just RSS, which is just XML. [Laughter]
Dave: God's language.
Dave: [Stammers] Can I tell you a story? Can I tell you a secret story? I have some bootleg MP3s, right?
Dave: Some bootlegs of Ursula Franklin talking. Okay? No one tell the FBI about this, okay?
Dave: Ursula Franklin is this technologist, but from oldie days, almost pre-Web days.
Dave: Just the way she thinks about technology, and Ethan Marcotte got me onto this and may or may not have procured some bootleg MP3s of talks that she's given. All I've been thinking about is, "I'm just going to handwrite an RSS feed and I'm going to just chuck it on Netlify at some bogus URL, whatever, Stomping Dragon, or whatever, and just have a bootleg RSS feed that I can listen to these MP3s, these five, seven talks over and over and over in a podcasting app." You know what I mean?
Chris: Yeah, because the minute that it's a valid RSS feed, you can just give anybody the URL to it and any one of these podcast apps can suck it in and listen to it there.
Dave: Yeah. I'm thinking about a bootleg MP3, secret RSS empire. I'm just going to have these little apps, little podcast for me of old stuff because I can't listen to it at my desk. That's a limitation of my brain. When I was sitting at my desk trying to listen to a podcast, no information gets ingested and no work gets ingested. It has to be on walks, driving, or whatever. 2X is kind of a requirement too. I can' t just listen to these--
Chris: You just get a bunch of UX out of doing it this way. You already have the MP3.
Chris: It could be argued that it's like, "Dave, just listen to the MP3. That technology exists," but RSS just brings that BYOUX.
Dave: Yeah, you get some superpowers, so I'm going to -- anyway. I'm going to have some bootlegs. Hey.
Chris: Mm-hmm. Mm-hmm. It's like dark podcast, like people have dark Twitters, you know.
Dave: Dark podcast. Yeah, it's like the alt accounts or the, yeah, dark Web, dark money, dark podcast. It's the new podcast venture.
Chris: I like it. I like it.
Dave: Secret. You can pay me. You could pay me a million, jillion dollars.
Chris: Do you listen to anything else good lately? You know. Now that my arms are getting a little better, I can actually -- it's funny because you'd think, why would a podcast--?
Dave: (Indiscernible) [Laughter]
Chris: Yeah, really. Why would your arms have anything to do with walking? You think you could walk the whole time? I kind of could, but you swing your arms when you walk and it wasn't particularly comfortable, so I was off.
Dave: I'm sure there's a blood flow thing, right? You move your arm and it's like, ow.
Chris: Yeah, right, or it brings more attention to the party that you just don't want. Yeah, but I'm back on the treadmill now. I'm not doing frickin curls yet. I'm just not cleared for that stuff yet, but I can walk, which means a lot more podcasting recently. I've been just listening to all kinds of stuff.
Dave: Well, you know, I've been listening to D&D podcast, the McElroy Brothers. They do Adventure Zone.
Dave: They just finished a big arch called Amnesty, and it's about playing D&D in a small town in West Virginia. Well, they're playing D&D, but it's kind of like a monster hunter, Buffy the Vampire style arch where they play. It's set in West Virginia or Appalachia, so it was pretty awesome. I liked it quite a bit. I also loved Buffy, so that was very easy for me to get into.
Then somebody showed me The Daily. Have you heard of The Daily?
Chris: Oh, yeah.
Dave: The New York Times, The Daily.
Chris: We listen to that. That's one of the ones that me and my wife listen to together a lot of times because she listens to more podcasts than anybody I know on earth - just veraciously. In fact, her New Years' resolution was to listen to less of them because it was too much.
Dave: I'm with Miranda on that.
Dave: I've got to cut out some e-books. I waste so much damn time. I've read like 50 books this year, listened to 50 books this year. It's way too much, dude. I need to pull back and just chill.
This Daily is so neat because it's just like--
Chris: Yeah, it's the New York Times and they put it out, literally, every single day. It's high quality, though. Really good.
Dave: It's only 30 minutes. It's high quality and it just goes into one story for 30 minutes.
Dave: I just think that's cool. I'm not going to listen to every one, but it's just stuff that I'm interested in, so I'll just kind of poke around at. Because it's one story, it's like if you've ever listened to Marketplace or something like that. It's like 15 minutes, but it's like 72 stories in 15 minutes and you're just like, "What did I just listen to?" But this one is just one little tangent a day.
Chris: Yeah, it's worth listening to.
Dave: Somebody turned me on to that.
Chris: You know Vox does the same thing: Today, Explained.
Dave: Oh, really?
Chris: It's � almost.
Dave: Okay. I could see that.
Chris: Well, that's good. That's good. I'm 50/50 on tech/non-tech podcasts. I almost wish there were more good tech podcasts. Maybe we'll expand. Not that there's -- there are just some but whatever. Without being a dingus about it, there are some I like and some I don't. Sorry.
Dave: Yeah. [Laughter] I don't want to spoil my video game podcast called
Dave: I recently got into watching this one guy play City Skylines. It's a SIM City kind of game.
Dave: He only does the traffic management part, so people send him their busted up cities and he just fixes the traffic in cities over and over and over. I've watched 40, 50 of these videos.
Chris: Oh, my God, Dave.
Dave: I'm obsessed, and it's so Zen. It's so therapeutic to just watch somebody fix something.
Chris: Send me one.
Dave: Oh, my gosh, dude.
Chris: I want in on this.
Dave: I will. [Stammers] The answer is always the same. It's just roundabouts and--
Chris: Yeah, roundabouts are good.
Dave: [Laughter] It's roundabouts and public transit all day, all day long.
Chris: I remember back in SIM City it was all about getting the trains going. That was usually the answer.
Dave: Yeah. I've downloaded this game since and now I'm just like, oh, here's how I waste my time now.
Chris: That's nice. I bid on -- you know Apple released the Apple Arcade and it's like $5 a month or something like that. I was like, I never frickin play games. I'm the worst gamer ever. Why would I sign up for this?
Somehow, just maybe the Apple fanboyism or whatever it is convinced me to do it. It is kind of nice that I can go in there and there are a ton of games, more than I'll ever play, and I pay nothing for them. There's no upsell crap in them, and so I actually am pretty into it. I got into What the Golf? That was pretty fun. You ever do that where--?
Dave: Yeah, that's kind of cool.
Chris: It was fun, but Mini Motorways reminds me of what you were just talking about, which is kind of like you're building roads to deal with cars that want to get from A to B, but there are different objectives, like the yellow cars want to go to the yellow buildings. That kind of stuff.
Dave: Yeah. How do you get them to do that? Mini Metro -- was it Mini Metro was another game like that? It's basically like you just play in a subway. You build a subway based on people, demands, and stuff like that.
Chris: My favorite one I downloaded was called Assemble. It was just this beautiful story of a woman who rolls into this town with her own story, but she fixes things. Puts up flyers that's like, I'll fix your stuff, and people she interacts with along the way. Then at some point, you get dropped into the fix-it mode and it's like these 3-D objects that you spin around and have to de-assemble and reassemble to fix them. It's a very satisfying experience doing it.
Chris: But mixed with a nice story, you know, so it's kind of cool. I think it might be from the same people as Us Too or whatever from the castle.
Dave: Monte McVanity?
Chris: Yeah, I think it's Monte McVanity. I could be wrong, but I think that might be.
Dave: They're good at stories.
Chris: But on the podcast thing, of course, I'm just a long-timer, This American Life super-super-duper fanboy, and the latest one where they went to Hong Kong to do the protest show was real good.
Dave: Oh, wow.
Chris: Yeah, just brought some perspective to it that I didn't have because I'm terrible at politics and news. I never know what's going on. Sorry, world.
Dave: No, it is interesting because some stuff I feel very caught up on. I am 100% tracking impeachment and conspiracy theories around that.
Dave: But then it's like Hong Kong stuff, it's like, man, I know there are like five demands, but I don't know what they are. This stuff would be -- I would love a digest like that.
Chris: Just one kind of mini thing that I found interesting was, there's this concept of the Cursed Generation, which is like people that were born there around 1997. I don't know the truth of all this or whatever. There's a lot of really younger people who are more like just learning Mandarina and being like, whatever, China is here now and we're just kind of slowly morphing, going China. Then the older generation, the parents of a lot of these protester kids, which are these circa born 1997 people, are kind of just like, "Don't make waves. Everything will be fine if you just chill out and do your job. Uh, what are you doing?" It's this middle ground people that are the most pissed about what's happening.
Dave: I could see that because you have a taste of both, right?
Chris: It was like that was the year that it was inked, I guess, this long-term deal.
Dave: British Hong Kong.
Dave: Yeah, Chinese Hong Kong, so yeah.
Chris: Then, of course, the real story is, they are philosophically pissed about wanting to maintain their freedom and stuff but, on the ground, they're just pissed at the cops. You know?
Dave: Right. Right, like sometimes it's just -- because, as I understand it, the facemask thing, right?
Dave: It's just like, don't look at me. I don't want to be tracked or whatever, which I can totally empathize.
Chris: Yeah. Yeah. Then there's bigotry the other direction too. There are some interviews in there that were just like, "So, what do you think of mainline Chinese people?" They're like, "They're filthy and gross and I don't like them." You know?
Dave: That's not--
Chris: [Laughter] Well, but it's -- I didn't mean to say, like, oh� But I just mean the podcast itself paints the picture in a way that is typical of that show. They do a good job.
On the tech side, I was intrigued the other week when we saw DHH get all mad and Automattic took, what was it, $300 million, a massive investment from Salesforce. I'm sorry to switch directions so heavily here but it's podcasting. That's what we're going to do.
Dave: Hey, tech news. Tech news. Beep-beep-beep.
Chris: The story is always complicated when you talk about WordPress because there's WordPress.org, the open-source project that is its own beast. Then there's WordPress.com, which is the Automattic thing, which runs WordPress multisite, but is owned by Automattic and is for profit in a different way. It's confusing, but it's always been that way. It's just the way it is.
Automattic is not just WordPress.com. They have a whole suite of products. Anyway, the investment was -- that's Matt Mullenweg's thing. The investment was to Automattic, so it's related in some way in that Automattic people contribute to WordPress.org too, but not as much. I don't know. What is it, 10% or something of the workforce, maybe less?
Anyway, Mullenweg is interviewed six ways to Sunday about stuff like this always. There was one moment where he was -- people are always astounded at how much of the Web WordPress powers, which is over a third these days by most metrics that look at it.
Chris: Matt said something like, "It's a great number. Why isn't it 80%?" I don't know the quote or what he was quoted in or whatever it was, but it was something like, "Wouldn't it be cool if we were 85%?" or whatever.
I'm misquoting him there and I think DHH saw that too and was just like, that's the grossest -- you know how strongly opinionated that dude is about absolutely everything. He's just like, "That's the grossest, most monopolistic garbage I've ever heard in my life," and then invites him on the show to talk about it and does not mince his words on the podcast about it either, but the two chat it out and have a really great conversation, I think, about all of that. That's just one of the topics they talk about, but they both agree and butt heads on a number of things, which made for just damn good listening, really.
Dave: Mm-hmm. Yeah. No, I actually listened to this. I think he tweeted it out this week or something and I stayed up late at night to listen to it.
Dave: Because I'm cool, right? [Laughter] But it was cool because I thought DHH made some really good points because he says, "You take investment and now you're beholden to that stakeholder. Now you have a market whatever objective to appease Salesforce in this situation."
Chris: Right, who probably did invest in you in the first place because you spun the tale of, "What if we had 85% market share of the entire Internet?"
Chris: That's probably why they said yes to begin with.
Dave: Yeah and then, from that, Salesforce was like, "Yes, we want to buy a piece of 85% of the Internet," you know, which totally, like, that's smart business, I guess. Then that probably -- let's say WordPress doesn't do it. I don't know, but now there's probably pressure to IPO or something like that with big rounds like this. I think DHH's argument was sort of like it changes the nature of the product and sort of, I guess, the classic, "You've solve out," scenario. But it sort of changes the nature or kind of what you're trying to do with the product. He cites a bunch of examples like Flickr getting bought by Yahoo or stuff like that.
Chris: Yeah, but it wasn't just a shit turns bad when big money gets involved, but that any consolidation of power is bad.
Dave: Yeah. Yeah, and Matt's sort of purview or look on it was, that's mostly true. Any consolidation of power tends to be bad, but a lot of them don't have an open-source ethos, aren't open-source from default.
Chris: Yeah, that's what Matt kept falling back on is, like, "But we're different because, quite literally, everything we do is open-source."
Dave: I don't necessarily want a Web where WordPress is 80% of the websites, but maybe it actually does work for 80% of the websites. All this to say, I don't think I want that, but I think he's right in that I think WordPress is better than something else. Even WordPress's biggest critique is the GPL. Its commitment to GPL is like, "That's ludicrous. You can't make money off of that."
[Laughter] But they're like, "Yeah. No, we are GPL to the core. Everything is free and, if you use any of this, you have to say that that's free." It's definitely different. Does that make sense? I don't know if we have an example.
Chris: Right, because DHH, the whole time, was kind of trying to be like, "You think just because you're open-source you're different and you're wrong. It's just superficially different. It's still a consolidation of power and it's still bad for all the same reasons." Matt is like, "No, that's not quite true."
The conversation is more nuanced than that. I don't think we're bringing any incredible insight to this. Mostly, our recommendation here is, just go listen to it because it is quite good. It's like a panel at a conference where instead of everybody agreeing, they disagree, and it just makes for good popcorn listening.
It's good popcorn listening anyway, but it is highly prescient to what's going on. They compare it to, of course, the Chrome and Edge situation and that thing is fascinating too. It was so easy to paint it as it was happening as, "This is terrible for the diversity of the Web because we're losing browser engine." I remember I was frickin out to dinner with Matt as this was happening. He was like, "But do not forget about the fact that we're losing a closed source operating system and getting a whole bunch of engineers moving over to work on an open-source operating system." That's significant.
In a way, if the diversity of the Web might -- in a sense, it is dropping. There is a notch down because we have one less browser engine. But if we abstract up from that and be like, okay, we're consolidating around this one engine or at least forks of this engine that diversity then can come in another flavor, which is forks of an open-source environment. Maybe there's just as much diversity, but they share a common core. That's just a nice way to paint that.
Dave: I think that could totally happen. In my brain I'm thinking, "Oh, what if you made WordPress have caching first party?" It's not BYO caching or whatever. That would actually be kind of a compelling product, or some sort of JAMstackable WordPress kind of thing.
Chris: Sure. Sure. If you think there's no innovation to happen in Web browsers outside of how they render, you're wrong. There are a million things you could do and it's interesting to see more of it.
We talk so much about Web monetization around here.
Chris: It was almost an idea to make it a regular segment, which I don't hate that idea of.
Dave: How much XRP have I earned this week?
Dave: I'll pull up my XRP stats here while we're talking.
Chris: Well, here's something related to all this. It's been coming up more and more lately, mostly because I think Alex Russell is just extra mad at Apple lately for resurfacing this idea that you can't run anything but WebKit, essentially, on an iPhone and how stifling that is for the Web. Well, there's still a little bit of -- even though that's true, you can still make a browser and have it, of course, run WebKit behind the scenes. There's Firefox for iOS. It just doesn't run the Firefox engine. It just runs WebKit2. People use it and like it to some degree because then you can log into your Firefox account, all your bookmarks are synced, and it does some special UI stuff.
Anyway, the reason I brought up Web monetization is because there is this thing, a Puma Browser, which you can install that and then it puts the stuff on top of WebKit such that the Web monetization stuff works with it. If that's very important to you, you have that. That's just an example of some kind of innovation light, I guess, that happens to Web browsers.
Chris: Without having to fork the entire engine.
Dave: Sure. Yeah, I guess the problem there is extensibility. It's not default, like you need to�.
Chris: Yeah, there are still problems.
Dave: Then I can't use Puma as my in-app browser when I'm in Facebook and I click a link.
Chris: Ah, good point. Good point, yeah.
Dave: Actually use Facebook. That's terrible. [Laughter]
Chris: I mean it was right at the moment where I was starting to get mad about it too. I'm like, is it about time that Apple opens this up? My gosh. All the other platforms allow it. It just seems silly that somebody pointed me to this Chrome mishap thing where there is some version of Chrome on some system where it really borked some really low-level system files at the operating system level, like the installation of Chrome got its fingers in there and did some crap to root files that broke some stuff.
It was the story that you read it and you're like, "Okay, if Apple watches this type of thing happen," and Chrome was really irresponsible in how they handled that, it's no wonder that they're not allowing that type of low-level access on the iPhone. When you're in a situation where you can have this power, clearly you use it and meddle in places you shouldn't be. I don't know. I just think those type of mishaps by Chrome set us back.
Dave: Yeah. Yeah, I mean Chrome kind of more "move fast, break things," you know. I was digging into, yesterday. I was looking at design systems, right?
Dave: What kind of components exist in every design system? I just think they should all be in the browser. [Laughter]
Chris: This is also in the water, right? We heard a little bit about this from Nicole at JAMstack, right?
Dave: Yeah. Yeah, and I think Jen Simmons has been echoing that from the Firefox side, too.
Dave: The big blowout this summer was around Toast, right? Chrome was basically like--
Chris: That was a fun one. Yeah.
Dave: Yeah, it was like May 12th or something. The timeline is very rapid, but it was like, "I have an idea. Okay, June, intent to implement," or whatever. [Laughter] People were just like, "Whoa! What?"
Chris: Right, and the Toast element, again, is this notification that pops up to tell you, "Oh, hey, your disk usage is low," or, "Your grandma texted you," or something.
Dave: It's like an on-page notification.
Dave: File saved, grandma texted, or you have a new message in this other channel you're not looking at right now.
Chris: It's true that it's an okay idea, right? It already exists. It's not something that they invented. They're just saying a lot of people do this. Let's ship a custom element that has that kind of styling and behavior of one.
Dave: But it is also very Android material designed. Windows has a Toast pattern.
Dave: But it is sort of like, "Material design has a Toast. Let's put a Toast in the Web." All to say, I think an on-page notification sort of with ARIA built-in, like alerts, "polite, urgent," whatever.
Dave: What are the ARIA: polite and aggressive, or something? Anyway, I'm blanking right now. All that stuff kind of built-in or programmable through props would be awesome. I think it's a good idea. I think the way they went about it is kind of weird. Inside that, there's another element proposed on the same sort of track called Switch, which is like a toggle switch.
Dave: That you see in Apple UIs and all kinds of UIs.
Dave: It seems helpful for the Web, right?
Dave: I think that'd be cool.
Chris: It's like a fancy checkbox, sort of.
Dave: It's a fancy checkbox. Actually, the programming is kind of like a range slider from zero to one. Those are the two options, but it has a button kind of around it. If you click the input, it just goes from zero to one and one to zero, back.
Dave: It's kind of just like a range slider because all of it is WebKit thumb or whatever. That's the styling interface is through the thumb.
Chris: Okay. Okay, so was this quite literally also a Google thing or this came from a different company?
Dave: This was another Google thing.
Dave: I think, literally, the same repo, so it's this idea of standard elements, like STD-switch and STD/Toast.
Chris: Yeah. This is an important distinction, right, is that these are not -- we're not talking about an alteration to a core Web element. They're just like bonus elements or something, right?
Dave: It has, like--
Chris: is it using built-in modules? Is that the idea?
Dave: I think it was kind of like, "We're going to sneak these in somewhere that you can access them through this STD: elements sort of path of some kind.
Chris: They've been playing with this also with that key-value storage thing, the local storage replacement. If you want to use that, it's a built-in module.
Dave: That is so cool, but I can also just, like -- I think it's a good distribution mechanism, possibly, but, also, hey, we need to have conversations before you start stuffing things in a browser. As an author, I need a way to Polyfill this for other browsers. I can't just, like, standardelement/switch is not, that's not in Firefox right now and I don't know when they're going to put that in there. It's not in WebKit. It's not in Mobile Safari, so this doesn't work for me and I worry this is like a giant vendor prefixing kind of situation. [Laughter] It's vendor prefixing but with elements.
Chris: That's a good way to put it. Yeah, maybe it is. I'm trying to watch stuff like that. I think I even asked you. You had more examples than I did. It seems like you have to have a watchful eye over browsers on what they just ship out the door and I didn't have a lot of good examples of browsers actually doing it in a really dangerous way.
If one browser were to just ship some new CSS thing totally un-prefixed or not behind a flag, that's the moment in which all the sirens need to go off. Like, "Oh, my God! I can't believe you just did that. You shipped an unflagged thing that was all by yourself and now authors are going to use it, but it doesn't work in Firefox. We're just back to the dark ages. That's just not how things work anymore. Slow your role."
There are no good examples to point to that are that clear, but there are little baby examples of things. You had more of them than I did. There are some Web component stuff that happened like that.
Dave: Yeah, I mean my favorite, link rel import; that just got shipped and Polymer, a whole framework leveraged it. Now it's like, well, Firefox is like, "We're not doing it." Now it's like you have to back off of it. Thankfully, that feature was Polyfillable or whatever so it could work in other browsers. That feature is kind of getting rolled back, so stuff like that.
In a monoculture or whatever, things could just go out like the standard switch. You think of a new kid joining. They're like, "What? Free switch elements? Perfect. I'm going to use it." [Laughter] It's like, "Oh, no! Don't use that. It doesn't work everywhere."
Chris: I guess it should be said that this interesting import mechanism for these things, they can still just ship it and it's still the same problem as it was even if it was an actual standard element.
Dave: Yeah, a standard. Yeah. Yeah, I mean it would technically be the same problem. Details had this problem for a while. I think details, it's different, too, when you're talking about form controls because form controls have to work.
Chris: Yeah, right.
Dave: There needs to be something that works under the hood. With these, though, like detailed summary. It just fell back to HTML. You had an unexpanded accordion instead of an accordion or whatever. Now, I see myself wanting to use details and stuff kind of all over the place, so I really need to be careful because I don't know. I'm sure Adrian Roselli is going to write a blog post about how I'm using it wrong. [Laughter] But I have to be careful and make sure that I Polyfilled it and stuff like that. I'm just kind of talking, but I think it's really important.
Just how browsers are going to release these things, I'm just generally concerned, I guess. I don't even know how we got to this topic. Maybe about monocultures and owning everything. Yeah, I don't know.
I have one more. The Toast element, it came out. I was like, "Whoa! Process foul. [Laughter] Scale it back." But had it been a tabs element or an accordion element, I would have been like, "Perfect."
Dave: "Ship it. Everyone needs it." But because it was Toast and somewhere--
Chris: Yeah. Yeah.
Dave: --an Android-only kind of thing, I was like, "Nah."
Chris: I expect that this will develop. There's the right momentum behind these standard elements that I expect that we'll see it. Although, I think, a year or two years ago, I would have assumed that at this point that even container queries has come and gone as a solved problem. We are nowhere on that problem. Although, I've been hearing it talked about a little bit more and more.
Dave: Have you tried Resize Observers? It's basically the same thing. [Laughter]
Chris: Yeah, but I think the new vibe is like, "Well, we can allow it under really strict conditions," so we'll see what happens there.
Dave: What was it: contain?
Chris: Yeah, containment.
Dave: Contain X or contain--
Chris: Also that you might have to put a style tag within the element in order to do it, which I was like, that's actually fine with me because I like that scoped approach styling that just never took off.
Chris: Yeah, I frickin think scope styles is a big deal. I'm ready to die on that hill. I like scope styles. Scope me, baby.
Dave: Oh, man. Scope. We could have probably avoided this whole CSS and JSS whole thing with scope size. I don't know. If we had a mechanism that worked in most browsers, it would have been great.
Chris: Yeah, I agree.
Dave: A lot of dev energy went into solving this local component level styles and we already had a thing, but now we don't.
Dave: That's also--
Chris: There are some ancient blog posts on CSS-Tricks about that. By scope styles, I mean literally a style tag with angle brackets around it and an attribute that says, "Scoped."
Chris: It used to exist, believe it or not.
Dave: It used to exist.
Chris: It got ripped away.
Dave: Well, and that goes back to this "shipping too fast" thing, right?
Dave: That was maybe too much of an invention for the time. I'm thinking with the whole Web components, ShadowDOM v1.
Chris: Think of how beautiful it was, though. Oh, my God. You didn't have to do anything special. Now they're like, "Well, we have ShadowDOM now." ShadowDOM is frickin complicated.
Dave: How many episodes have we tried to pierce the ShadowDOM verbally?
Dave: It's hard. It's hard to understand, hard to explain, and hard to comprehend.
Chris: Developer experience thing is a big deal. If it's so hard, people aren't going to do it. Some people are whatever, but it's like that with container queries too. It's great to get it a little bit, but way less people are going to do it if it isn't really easy to do. A container query that just works in regular CSS, people will use the crap out of it.
Chris: A container query that's too weird and has all these caveats won't get used.
Dave: What is it about humans here? This is a humanities podcast. What is it about humans that when there's a problem with something, we encounter a problem and we're like, "Oh, that's that thing's fault, not my fault"? [Laughter] "I understand it. It's that thing's fault. I'm done. I'm out. It's not me. It's that thing." What is it? There's probably a thing, like a bias kind of thing, like a confirmation bias sort of thing.
Dave: I'm going to look it up. I think I know it, but I forgot the name of it. The bias where you think you're always right.
Chris Enns: This episode is brought to you by CloudBees Rollout. CloudBees Rollout is where developers come to ship changes at will. CloudBees Rollout allows you to manage feature flags at scale so that you're empowered to continuously and intelligently roll out changes as soon as they are code complete on any platform, even mobile. You can decouple development from code releases for real-time change control and rollback only the changes you want. CloudBees Rollout also allows you to deploy features to different segments of your user base, segment by any property or attribute, and create static and dynamic segments. You can also use multivariate flags for A/B testing and nix misbehaving features with a kill switch.
You can check out the 14-day free trial and experience how CloudBees Rollout can help you rock every release. Follow the link in your podcast player right now or visit Rollout.io for your 14-day free trial. Our thanks to CloudBees Rollout for sponsoring this episode of the podcast.
Chris: You made a point about form controls needing to work. Not only do we need new elements, but we need ways to style the old elements that aren't so bad. Sometimes, we learn how to do something and we're like, "Well, that's just the way it is, so that's it forever." For example, styling a checkbox. It's not that hard to do these days.
So many people do it that it's kind of entered our front-end developer brain a little bit like, "Oh, well, you just hide the checkbox and you replace it with an element or a label that's attached." It's a pseudo-element on the label or something, so the click handler behaves the same way. Then you use the check selector to target it when it's in that particular state and apply your own styling. Fine. That's neat or whatever.
Dave: You've visually hidden the actual checkbox.
Chris: Right, but still position it over top of the original. That's a Sarah Swaydan trick, which I love--
Dave: Oh, neat.
Dave: --because some people visually explore on a touchscreen to find something like a checkbox. If you put it off the page, they won't be able to find it because there's a little haptic feedback when you actually find a checkbox.
Chris: Just make it opacity zero and place it on top of the custom checkbox--
Chris: --because then you can still find it with your finder, which is cool.
Dave: Next level.
Chris: Yeah, I learned that at a SmashingConf. That was a cool trick.
Dave: That's why you go to conferences.
Chris: Anyway, you know another way to do it is standardize some frickin styles so we can style them ourselves without weirdness.
Dave: Which I think the Edge team is starting to work on, at least for Chrome.
Chris: Right. Right, that's what's encouraging to me. They looked at data and said, "Okay, people want tabs." Dave Rupert, he wants tabs.
Dave: I have emailed them dozens of times.
Chris: Yep. Absolutely. I want tabs too. Tabs would be a great one, and accordions and whatever else. But their data shows that the stylable thing that people want the most is form controls and they want select, specifically. Selects are the worst things to style.
Chris: Then what does that mean exactly? Style what? Control what? They have all this great research kind of led by Nicole and Greg Whitworth. It turns out you can kind of style the outside of it. Scott Jehl and the Filament Group have this great demo of cross-browser, being able to really style what it looks like on the outside. Then you open it up and it's still just browser Chrome.
Chris: Aesthetically, the outside is fine but the inside is what people, more people, actually want to style. In fact, styling the outside was the third most asked for thing. What people really wanted is to build a style what that dropdown menu looks like and where to put it. You could put actual custom HTML in there, not just a string, or that you could style it with CSS.
You can programmatically update it as servers requests are made. Right now, if you touch that HTML element, it'll close itself, so you can't touch it without a closing. People hate that.
The biggest one, though, is search. People want to fuzzy search in there; be able to type in something in the middle of a string and have it show, and not just jump to a result, but show a filtered set of results, almost like data list works like.
People have all these requests for it. What's cool about all those requests is, you can kind of do all of them without breaking, fundamentally, what a select is. It's just some exposed styling and behavioral stuff, but it will still behave like a select. I was thinking, well, what about multi-select? Don't people want that too? I want to be able to open a select and pick two cities that I want to live in, or something.
Dave: Yeah. That does break selects. You can't do that because that's a fundamental thing that select doesn't do. That's a moment where you're like, okay, STD multi-select then as a custom component does make sense because it's different.
Chris: It's a different UX experience. I like the distinguishing features there. Toast makes sense because it's just a div with some behavioral stuff. I like standard elements when it does something new and above and beyond that doesn't exist right now. If it's just a matter of styling, like expose some controls for how a checkbox works, that would be nice. I almost don't think we need a switch element because a switch only has two values and it's just a checkbox.
Chris: Expose something allows me to style a checkbox like a toggle.
Dave: Yeah. No, I mean, yeah, it'd be cool if we could -- yeah, I don't know. I mean I think, I guess, most people -- I think people still do. They'll reach for whatever, NPM install, bootstrap, custom checkbox, or whatever.
Dave: I, Dave Rupert, want to get out of that situation and encourage people to be like, "Yeah, it's only five things. Just style it yourself. Just write your own CSS file for once." I think we're just in such a -- "Oh, here's a problem. I'll just NPM and fix it." That's good and get your job done. I don't want to stop you from that, but some of the stuff isn't super hard.
I want it to be where it's not hard. That's why I want tabs and dialog so that when people make them, it's not just inaccessible crud on the page. I want people to have a primitive, a browser primitive that they can style and customize to make look cool, but we don't have that yet.
Chris Enns: This episode is brought to you by Netlify. Now, I personally love Netlify because it makes it super easy to build and launch JAMstack style sites using Gatsby, 11ty, and other fun tech.
If you build bigger and fancier apps and websites, you might interested to know that Netlify recently launched mono repo support. It was one of their longstanding feature requests among their customers. Before this, there was no easy way to use the same repository and deploy it across multiple Netlify sites.
Now, what is a mono repo, you might ask, as I did? A mono repo is a repository that contains multiple sites or apps, each in its own subdirectory. Using a single repository for multiple projects can help you more easily track and manage the elements they have in common.
How does it work? When you specify a base directory for your site, Netlify's build engine will only publish and deploy a build if there are changes in that directory. In an event where no changes are detected, your build would be automatically canceled. This makes it really simple to manage and deploy multiple sites from one repository.
They also introduced a new config option: build.ignore. It will allow you to skip builds triggered for sites that observe no change in content. This new config option makes splitting your mono repo into multiple Netlify sites much more efficient.
If you want to learn more, be sure to check out Netlify's new and improved support docs. You can check them out at Netlify.com. Our thanks to Netlify for sponsoring this episode.
Chris: Well, while we're on all this interesting browser standard stuff, like we tend to get derailed on for a while, I think this was the oldest question in our list of questions that users sent in. This was probably sent in years ago. Sorry.
Andrew Potler wrote in. He was wondering about, specifically, there's the W3C proposed standard called Encrypted Media and encrypted media extensions. He writes in, "I hadn't heard much about it outside of this episode of Reply All." Let's see when that Reply All was published. It was probably a long time ago. March 2nd, 2017, so not that long ago, but two years ago. [Laughter]
It's hard to distill what they discuss in the episode, but he's just saying that W3C is proposing a standard that would encrypt media in a black box sort of way that wouldn't allow anyone to look at the encryption or poke holes in it to see if there are problems. They spoke to, like, Netflix, YouTube, and all this stuff because, of course, media, meaning like audio and video, and shipping it in an encrypted way instead of an unencrypted way.
Obviously, Netflix is pretty into an idea like that. They have to in some way. They can't just make OrangeisNewBlackseason2ep5.mp4 and just let you download it. That's probably not a super good business model for them. They need to solve this on the Web anyway, somehow.
I think back a couple years ago. There was a lot of discussion about, like, well, should we keep forcing people to download a Flash player because they do solve this problem, or a Silver Lite player because they solve this problem? Should the Web standards bodies that get into this? Do you remember all that?
Dave: Yeah, it was definitely a contentious point. I think the biggest contention was maybe when Firefox was like, "Yeah, we're going to build encrypted media extension," and Boing Boing and anti-BRM people were very, very upset, Cory Doctorow types, and rightly so.
You say the Web is an open platform, but then you're like, "But if you're a box office movie, you get the secret platform. You get paid only codes."
Chris: Right. It's a little weird, but you can see it on both sides, right? Obviously, Netflix needs to work on the Web. It's a big deal for the Web. They need something like this.
If you're Firefox the business, Mozilla the business, and you're just going to say, "No, we're not going to solve that problem for you," then you're like, "How good of a business are you?"
Dave: Right. Yeah. Yeah.
Chris: Well, what happened? This was two years ago. I'll tell you what happened.
Dave: It's in every browser.
Chris: It frickin happened.
Dave: Yeah, it happened.
Chris: Yeah, and Netflix uses it and YouTube uses it.
Dave: You can see it, occasionally. You'll Web inspect Netflix or whatever and there's no video tag or the video tag is blah-blah-blah, but it's not. You try to go to that blob or whatever and it's not going to be a 7-gigabyte blog on your page. It's just a reference to a URL that you can't access directly. Only that page with that credential or whatever can access it.
Chris: Mm-hmm. The fallout was fascinating. It was the EFF pieces out of the W3C. They're like, "This is so bad for the Web. I'm gone."
Chris: But then Tim Berners-Lee was saying, "You'd think I'd be against this, but I'm actually for it," which was a weird twist. It was a fascinating little story. Two years later, it's kind of like, did the Web die? No. Was it good for the Web? I don't know. You can't A/B test history.
Dave: Well, and I think where it gets sort of shady is encrypting certain images or something or this image only works on tumbler or something like that. That's maybe not a technology that exists right now, but it could.
GIFs, what if Giffy is like, "F you all. All these GIFs we have, they're all encrypted now. They only work from Giffy and Giffy.com, situations we white list, or whatever"? That sucks. [Laughter] Imager could do the same thing. PDFs would be another one.
Dave: What if you had to EME on PDFs and then you're like, "Okay. Now all this knowledge is locked up." Then I can also -- you can Google any book in the world and get a free download copy somewhere on the Internet. I could probably look for a practical SVG here and get a couple bootlegs. You know what I mean?
Chris: In fact, just a couple of weeks ago, we cease and desisted somebody that was doing that, which normally I don't care and don't do that, but A Book Apart does it. They have a system for it and it worked immediately. Anyway, I don't know. It was just a little side story. Yeah.
Dave: Well, and they have to. That's like the copyright law, in America at least, is if you don't protect it, you lose it. That sucks, but that's how it goes. All to say, it's probably a net win that we can watch Netflix and YouTube however we want, but I wonder if it's a net loss for remix culture and stuff like that.
Chris: Yeah, it's hard to say.
Dave: I think about this a lot, like when I buy a movie on iTunes, Microsoft, or whatever store. I don't actually own it. I just own an "all you can watch" pass, season pass. I paid $20 for an "all you can watch" season pass for one file on the Internet. I paid $20 for that. That seems stupid. I don't own it like a DVD. It's not like a physical thing I own. It's just an "all you can watch" pass on a website, on one website, basically.
Chris: Yeah. If you want to watch it on another website, you've got to pay for it.
Dave: Ugh, you've got to pay another $20 for that.
Chris: There is some evidence that not doing it this way also works. I remember I was astounded that this happened, but I remember when iTunes--this is a lot of years ago now--just removed all DRM from all downloads of music from the store of iTunes.
Chris: Now if you buy a song for $0.99 from iTunes, you just get it. If I want to send it to Dave, I send it to you and it just works, which is just bizarre because, of course, for a long time they also were all locked up and you couldn't do that.
Their bet was, "Why bother with all this crap when people are going to buy it anyway because what you're buying is the UX of how convenient that is, like, oh, I want that song. Click. Now I have it." They're going to sell just as many that way or perhaps more because it's not all garbaged up and complicated.
I think the DRM stuff isn't just a one-off. I think it causes extended confusion, slipperiness, and problems. You buy a new phone and it gets weird. You lose the device and it gets weird. It's not just a one-off problem. It's this persistent problem. If you just rip it all away, the UX is so much better that perhaps you even sell more.
They haven't turned their back on it, as far as I know, so there's some evidence there. It's like Netflix is so convenient. You're not paying for -- if I could just Torrent -- I could Torrent Orange is the New Black, but I don't because it's so much more convenient to just open Netflix and frickin watch the show. You'd think if they removed all DRM it probably wouldn't hurt them significantly, I wouldn't think.
Dave: Yeah, you pay $9 and you don't have to go through the Torrenting experience. Yeah, to be honest, I don't want those things on my hard drive. I don't want disposable shows or whatever.
Dave: Sometimes you get forced to buy something. I bought the Mr. Rogers documentary and I own it. Nope, I own just a season pass to a file.
Dave: For $14.99 and that's okay. I'll probably watch it a few times in my lifetime, but not really. You know what I mean?
Chris: Yeah, it's tricky how tied to platform it is. I should say, I'm not an expert in any of this stuff. I'm just speaking as a consumer and lightly informed technologist on all this. There probably are big things that we're missing here. Very sorry. Please feel free to yell at us over email.
I've been an Apple ecosystem nerd forever, so my Apple TV, which is exclusively what we use on our TV at home, is just full of stuff.
Chris: We use Netflix, Hulu, and HBO NOW. We've got the whole suite of things because I think all of them together are cheaper than a basic cable plan anyway, and now we have premium, great, whatever we want to watch that's in the cultural zeitgeist, whatever. I have no problem paying for all that stuff.
In fact, I think we even have some live TV because Hulu offers it and we have the Hulu plan that does it, so I can watch a little college football on Saturdays if I want to, which I do once in a while. Altogether, it's cheaper than a damn college [sic] plan.
Dave: Mm-hmm. I like cable.
Chris: Ooh, Castle Rock is out on Hulu, which I'm excited about. That was good.
Chris: Do you watch that?
Chris: It's like a Steven King universe show that was good. I liked the first season of it a lot a lot, and I was excited that they actually made a second season on Hulu. Now I just thought about Hulu for a minute.
Chris: The point of all this is, what happens when--? Most of our stuff, though, most of the money in investment has been in purchasing, through the iTunes store, shows and movies over a decade or longer, whatever. The day it launched, I'm sure I bought a movie. I'm just that kind of nerd.
It's great now. I can go into our movie section. We have quite the library of movies in there, but that's totally -- there is a day that that will just be gone. Wouldn't you think?
Dave: No. I mean probably, or you pay Apple or whoever $20 or $2 a movie to just get the cloud pass. You know? You don't need that hard drive.
Chris: What is going to happen? When I'm a 60-year-old man, am I going to still have access to the fact that I bought Short Circuit on the iTunes music store when I was 26 years old? Am I?
Dave: Oh, you're going to have it.
Chris: That would be--
Dave: I don't know. That's the thing. I don't know. Who knows?
Chris: I just kind of assume it's no.
Dave: I think that's sort of the problem with DRM in general is, you end up -- it's only a thing that works on a thing as long as that thing exists. There may be, like, let's say Apple closes their video. They're like, "Oh, it's not profitable anymore. We're selling off ours." Although, they just launched a whole TV channel, so probably not any time soon. But let's say they're like, "Oh, these movies are a competitor to us, so now we're going to shut down our movie division," Apple Movies, or whatever. Do you just -- what do you do? Do you just lose it? Yeah, I don't know if you lose the file.
I bet somebody comes through and is like, "Okay, we're Movie Warehouse and you can sign up for a Movie Warehouse account. We bought all the Apple. You can transition."
I know Microsoft Groove, which you probably never used, but it was really good, transitioned people over to Spotify. I guess there will probably be a handoff in the future.
Chris: Huh. Yeah.
Dave: That's how that goes.
Chris: Yeah. Yeah, possibly. Like SmugMug owns Flickr or the greatest tech acquisition of all time, how Pinboard owns Delicious.
Dave: Yeah, finally.
Chris: Literally the greatest thing that's ever happened in tech.
Dave: Oh, boy. Do you want to do one more question here?
Chris: We have a few minutes. Why not knock something out? Do you want to pick something to talk about?
Dave: Yeah, let's see here. Danny Webber, "I've been reading a lot about bosses wanting to start coding and now it's happened to me. He's always wanted to. He's always commented on how he thinks he could do it when I show him something, but I brush it off, you know, like, 'Hey, okay. Sure.' I spent a decade doing this stuff and he thinks he can spend a week and start pitching in. I'm mortified. Am I overreacting? Should I entertain him and hope it's just a phase he's going through? He's a nice enough guy and a great boss, so I don't want to, like, not slagging that off, but how to accommodate the code that is entering into the project. I pointed him to Udemy courses and now he's messing around with Angular CLI and it feels like he's getting pretty good, so what do I do?"
Maybe we should bleep out his name just in case his boss listens to this. [Laughter] What do you do when the boss learns to code, Chris?
Chris: I think it's kind of a hilarious sounding situation where you show him something in a meeting or something and he's like, "I could do that!"
Dave: Oh, yeah.
Chris: What?! That's a weird reaction, originally. You're like, "What, are we not going to talk about the thing that I'm showing you? You're going to talk about how presumably easy it was for me to do and how you could do it?" That is straight-up prickery like, "Screw you."
Dave: Yeah, there's some hubris afoot, right?
Chris: Yeah. [Laughter]
Dave: Like, "What are you guys doing? Coding? I could do that." [Laughter]
Chris: Yeah. Yeah.
Dave: Like me showing up to a basketball court. "What's this, basketball? I got it."
Dave: "Pass me the ball."
Dave: "Pass me the ball."
Chris: Yeah, and then your first shot actually goes in and then you're like, "See."
Dave: "See. Told you. Told you all. Easy. How much -- you all practice? I don't need to practice."
Chris: He's learning Angular, it sounds like. Okay. Fine, though. If it's your boss being like, "I'm actually interested in a little bit of a role transition here and I think I could be useful to the team in more ways than just doing this ship," or, "I'm actually learning to code because I want to be talk and communicate with you in a better way."
There are all these healthy ways you could approach it, but the way you've painted this. Oops. Sorry if we shouldn't be using your name.
Dave: We'll bleep your last name, for sure.
Chris: Then it doesn't sound like that. It sounds like, if not nefarious, then accidentally nefarious in a bad way kind of thing. It's whatever. If your boss wants to get into coding then there needs to be a -- it needs to be talked about in some kind of normal, healthy way.
The worst thing that can happen is that he starts undervaluing what you do or slows down the whole project because now you're just trying to accommodate his code, as you put it. Can't you paint that picture back and be like, "You know how we used to move fast on stuff and now we move slow," because, you know, you have to pass the ball to Dave on the basketball team once in a while."
Dave: I would say something like that, like, "Hey, I want you to learn. I think it's always good to learn." That's me, Dave Rupert, talking. I think it's always good that somebody wants to learn and pick up a skill.
For me, too, having a manager that at least sort of understands technical limitations is huge. I mean to the point where I may not work with another manager who doesn't not understand technical limitations. Do you know what I mean? If somebody is just like, "Hey, build that thing," and you're like, "Dude, that thing costs. That's going to be the next five, ten years." "Yeah, I think it'd be a really cool feature."
Ah, I can't do that. I can't just spend time on bad ideas and then, when I try to explain the bad idea, somebody is like, "I don't get it. It seems easy." That's maybe the problem our friend is in.
I think it's good that people are learning. I think having a technically-minded proficient manager is really good. I do think you should have that tough conversation of, like, "Hey, I am up for this. I can teach you how to code. We can sit down and have mentoring or reviews and stuff like that, but this is going to impact my productivity because now I have to do more time in code reviews and things like that."
There's a tradeoff. Just ask, "Do you want to do this on the production code or would you like to do this on a side project, like noncritical things that we can do in our spare time or you can pay me to do in the spare time?" You don't owe this guy anything. [Laughter] Yeah.
Maybe that's it, too. Don't put him on the production thing. If he's starting to pitch in, he should do it on the side, side, side project.
Chris: There you go.
Dave: Like the low impact thing that can go wrong. I think that would be my thought.
Chris: It's like putting the shoulder -- making � be the manager all of a sudden.
Dave: Yeah, it's flipping the script. I mean now you're the senior dev, like the whatever technical lead.
Chris: Who has to manage their manager? That's not cool. [Laughter]
Dave: It's weird. It breaks the hierarchy a bit, like the organization structure a bit. Maybe there's another manager that you could talk to. If it's just the boss, maybe it is a very shallow company, so maybe you don't have many options. I don't know. I just would have that candid conversation. I want you to learn. We should do learning, but it's not free, and so it's going to slow us down in code reviews, fixes, and things like that.
Chris: That's the point.
Dave: All right, well, hopefully, that helped and, hopefully, you enjoyed this episode, Shop-o-maniacs. Thank you for listening in your podcatcher of choice. Be sure to star, heart, favorite it up. That's how people find out about the show. Follow us on Twitter, @ShopTalkShow, for tons of tweets a month. If you hate your job, head over to ShopTalkShow.com/jobs and get a brand new one because people want to hire people like you. Chris, do you have anything else you'd like to say?
Check out all jobs over on the Job Board. If you'd like to post a job, you can do that here, and have it mentioned on ShopTalk for a small additional charge.