Hey folks, I'm a super busy guy and you probably are too. You probably have a lot going on with kids going back to school, maybe some new projects at work. You've got open source stuff you're doing or a blog or a podcast or who knows what else, right? But you've got stuff going on and if you've got a lot of stuff going on, it's really hard to do the things that you need to do in order to stay healthy. And one of those things, at least for me, is eating healthy. So when I'm in the middle of a project or I just got off a call with a client or something like that, a lot of times I'm running downstairs, seeing what I can find that's easy to make in a minute or two, and then running back upstairs. And so sometimes that turns out to be popcorn or crackers or something little. Or if not that, then something that at least isn't all that healthy for me to eat. Uh, the other issue I have is that I've been eating keto for my diabetes and it really makes a major difference for me as far as my ability to feel good if I'm eating well versus eating stuff that I shouldn't eat. And so I was looking around to try and find something that would work out for me and I found these Factor meals. Now Factor is great because A, they're healthy. They actually had a keto line that I could get for my stuff and that made a major difference for me because all I had to do was pick it up, put it in the microwave for a couple of minutes and it was done. They're fresh and never frozen. They do send it to you in a cold pack. It's awesome. They also have a gourmet plus option that's cooked by chefs and it's got all the good stuff like broccolini, truffle butter, asparagus, so good. And, uh, you know, you can get lunch, you can get dinner. Uh, they have options that are high calorie, low calorie, um, protein plus meals with 30 grams or more of protein. Anyway, they've got all kinds of options. So you can round that out, you can get snacks like apple cinnamon pancakes or butter and cheddar egg bites, potato bacon and egg, breakfast skillet. You know, obviously, if I'm eating keto, I don't do all of that stuff. They have smoothies, they have shakes, they have juices. Anyway, they've got all kinds of stuff and it is all healthy and like I said, it's never frozen. So anyway, I ate them, I loved them, tasted great. And like I said, you can get them cooked. It says two minutes on the package. I found that it took it about three minutes for mine to cook, but three minutes is fast and easy and then I can get back to writing code. So if you want to go check out Factor, go check it out at factormeals. Head to factormeals.com slash JSJabber50 and use the code JSJabber50 to get 50% off. That's code JSJabber50 at factormeals.com slash JSJabber50 to get 50% off.
Hey folks, I'm a super busy guy and you probably are too. You probably have a lot going on with kids going back to school, maybe some new projects at work. You've got open source stuff you're doing or a blog or a podcast or who knows what else, right? But you've got stuff going on and if you've got a lot of stuff going on, it's really hard to do the things that you need to do in order to stay healthy. And one of those things, at least for me, is eating healthy. So when I'm in the middle of a project, or I just got off a call with a client or something like that. A lot of times I'm running downstairs, seeing what I can find that's easy to make in a minute or two, and then running back upstairs. And so sometimes that turns out to be popcorn or crackers or something little, or if not that, then something that at least isn't all that healthy for me to eat. Uh, the other issue I have is that I've been eating keto for my diabetes and it really makes a major difference for me as far as my ability to feel good if I'm eating well versus eating stuff that I shouldn't eat. And so, um, I was looking around to try and find something that would work out for me and I found these factor meals. Now factor is great because a, they're healthy. They actually had a keto, uh, line that I could get for my stuff. And that made a major difference for me because all I had to do is pick it up, put it in the microwave for a couple of minutes and it was done. Um, they're fresh and never frozen. They do send it to you in a cold pack, it's awesome. They also have a gourmet plus option that's cooked by chefs and it's got all the good stuff like broccolini, truffle butter, asparagus, so good. And you can get lunch, you can get dinner. They have options that are high calorie, low calorie, protein plus meals with 30 grams or more protein. Anyway, they've got all kinds of options. So you can round that out, you can get snacks like apple cinnamon pancakes or butter and cheddar egg bites, potato bacon and egg, breakfast skillet, you know obviously if I'm eating keto I don't do all of that stuff. They have smoothies, they have shakes, they have juices, anyway they've got all kinds of stuff and it is all healthy and like I said it's never frozen. So anyway I ate them, I loved them, tasted great and like I said you can get them cooked. It says two minutes on the package. I found that it took it about three minutes for mine to cook, but three minutes is fast and easy and then I can get back to writing code. So if you want to go check out Factor, go check it out at factormeals, head to factormeals.com slash JSJabber50 and use the code JSJabber50 to get 50% off. That's code JSJabber50 at factormeals.com slash JSJabber50 to get 50% off.
CHARLES MAX_WOOD: Hey everybody and welcome to another episode of JavaScript Jabber. This week on our panel we have Amy Knight.
AIMEE_KNIGHT: Hey hey from Nashville.
CHARLES MAX_WOOD: AJ O'Neill.
AJ_O’NEAL: Yo yo yo coming at you live from the pleasantest of groves.
CHARLES MAX_WOOD: Dan Shapir.
DAN_SHAPPIR: Hi from Tel Aviv where it's winter for a change.
CHARLES MAX_WOOD: I'm Charles Max Wood from devchat.tv and this week we're talking to Bruce Lawson. Bruce, do you want to introduce yourself?
BRUCE_LAWSON: Hello everybody. Pip pip. I'm from Blighty which translates as hello I'm from England. And I have been on the web scene for many a year, which is why I look this bad. So you listeners be glad this isn't a podcast. Oh, I've been webbing since 2002, I think, and been involved in web standards for that amount of time, which is why I'm this shriveled husk of a man that you hear.
DAN_SHAPPIR: Well, I've got four years of web advantage over you then.
CHARLES MAX_WOOD: Wow.
When I'm building a new product, G2i is the company that I call to help me find a developer who can build it. G2i is a hiring platform run by engineers that matches you with React, React Native, GraphQL, and mobile developers that you can trust. Whether you are a new company building your first product or an established company that wants additional engineering help, G2i has the talent you need to accomplish your goals. Go to g2i.co to learn more about what G2i has to offer. In my experience, G2i has linked me up with experienced engineers that can fit my budget and the G2i staff are friendly and easy to work with. They know how product development works and can help you find the perfect engineer for your stack. Go to g2i.co to learn more about G2i.
AJ_O’NEAL: So speaking of shriveled husk of a man, your vocabulary is very posh, I think. So I'm going to stop you like a hundred times to ask you what the heck you're saying.
BRUCE_LAWSON: There's already problems.
AJ_O’NEAL: 10 things that I don't know what they mean.
BRUCE_LAWSON: The poshness is put on, but I'm actually the official HTML5 advisor to Meghan Markle.
AJ_O’NEAL: I don't know what those people are.
AIMEE_KNIGHT: No, that's hilarious.
BRUCE_LAWSON: You don't know who Meghan Markle is?
AIMEE_KNIGHT: I know, come on, royal family, please, here.
CHARLES MAX_WOOD: It's okay, he'll only be a royal advisor for so long and then...
AIMEE_KNIGHT: Although, now I'm getting mistaken. Wait, Meghan Markle is not Harry, because they're not really the royal family anymore, right?
BRUCE_LAWSON: They're royal family, but they're not his or her royal highness, I believe. I'm a Republican with a small R, so I'm I'm not really terribly sure. I say a small...
AIMEE_KNIGHT: Wait, but is Harry... Who is the one that was the actress?
BRUCE_LAWSON: That's Meghan Markle.
AIMEE_KNIGHT: Is it? Okay. So super derailed here. So is she like going to a boot camp now?
AJ_O’NEAL: She doesn't need to because I'm her HTML5 employee.
AIMEE_KNIGHT: Oh, she's got like the best of the best mentors.
BRUCE_LAWSON: Oh, what that woman can do with semantics. Honestly, it is... It's something else. She don't need no JavaScript, Amy, because she has the script. The semantics of HTML5 on her side.
AIMEE_KNIGHT: That leads me to a really good question, but I kind of want to hold it for later.
BRUCE_LAWSON: Sure. Do you want more questions?
AJ_O’NEAL: I'll jump right in.
BRUCE_LAWSON: Go.
AJ_O’NEAL: What's all this about people staring at their navels?
BRUCE_LAWSON: Ah, yes, it's a term of people getting terribly introspective about entirely the wrong things, because...
AJ_O’NEAL: And that's JavaScript?
BRUCE_LAWSON: No. My thesis today is that we get too hung up on tooling frameworks. I've been to too many conferences where people will have religious wars about mobex and redux and people don't pay enough attention to what the web's really made of, which is HTML. And that is to the detriment of users and performance.
AJ_O’NEAL: Fight me.
CHARLES MAX_WOOD: But HTML is easy, right? Unordered lists. Ordered lists, divs, spans, pretty much it, right?
BRUCE_LAWSON:Nooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
AJ_O’NEAL: Obviously, one's a section, the other's an article. Duh. One begins with an A, the other begins with an S. Sections are inside of articles?
BRUCE_LAWSON: Oh, gosh. Listeners, hear this. That is me thumping, thumping AJ and Chuck for willfully winding me up. Okay, so HTML is ordered lists and lists. Those are good things. It's also hyperlinks rather than span with some JavaScript masquerading as a link. But it's really useful things like buttons, which I know...
DAN_SHAPPIR: Oh yeah, input tag.
BRUCE_LAWSON: The buttons, the marvelous things that keyboard focusable by default. You don't have to have any JavaScript to submit them.
AJ_O’NEAL: But where would you put your ARIA tags?
BRUCE_LAWSON: Well, this is the thing. Bruce's infallible law of ARIA built in beats bolt on bigly. Only use ARIA if you can't find an HTML tag that builds that stuff in for you.
CHARLES MAX_WOOD: Did you mean bigly? They knew I liked you.
AJ_O’NEAL: But they'll call me a sinner on Twitter and throw me into the hellfire if I don't use ARIA tags for everything.
BRUCE_LAWSON: Absolutely not. I'll tell you what, there's WebAIM, it's an accessibility consultancy out of Utah, I believe. They did automated testing on the top million homepages found that 95% of them have an accessibility problem, many of which are very low-hanging fruit. But there's a direct correlation. The more ARIA on a page, the worse it is for accessibility because people misuse it. They're taking a div, styling it to look like a button adding a tabindex to make it keyboard focusable, adding an ARIA role of button, which you don't need to with a button because it has that role built in, then they're listening for the enter key or the space bar, and they're doing all of this stuff and maybe putting the wrong ARIA role on it and making it all collapse in a calamitous heap when they could have just used button. But the trouble is, they're all obsessed with the framework and taking things off the shelf. There are some great React frameworks, but there's also some dreadful ones that really are just vomiting out divs with spurious ARIA on them. Instead of using native HTML elements which have all of these things built in and given to you, Bruce's infallible law of ARIA, built-in beats bolt-on bigly.
CHARLES MAX_WOOD: All right, so let me back you up for just a minute. So you're talking about semantic HTML and yeah, you know, I kind of poked you in the eye a little bit with that, but you know, yeah, we've got article. I'm going to tell you a little bit of a story. I was working on a Vue app and I wanted a footer on my page. And so of course I tried to create a footer component and Vue said, you can't do that because footer means something in HTML. And so how do we know? I guess I'm looking for motivation to actually learn semantic HTML. And then how do you actually know what you're supposed to use where? Cause it sounds like it, you know, I mean, use a div everywhere is simple, but it sounds like you might be better off. You know, you've kind of made your point. I don't know, using the tags, is they're meant to be used?
BRUCE_LAWSON: Well, the learning semantic HTML, I used to be, uh, before I discovered the web back in, uh, in the times when dinosaurs ruled the earth and Mozart used to go around on a penny farthing, I used to be a kindergarten teacher. So I studied language acquisition in young children. By the time a child is two years old, he or she knows 100 words. By the time he or she's two and a half, he or she knows 250 words. There's 150 elements in HTML. All I'm asking is for the average developer to have a greater HTML vocabulary than an average two-and-a-half-year-old child be better than a toddler. That's all I require.
CHARLES MAX_WOOD: Yeah, I feel bad.
AIMEE_KNIGHT: I feel like people are going to take offense to that.
BRUCE_LAWSON: Good. Let them. Because as HTML advisor to a member of the royal family, I have 24-7 security, so whatever. Bring it on.
DAN_SHAPPIR: I do want to mention, as someone who does use frameworks and does know a lot of other people who use frameworks, that frameworks aren't antagonistic to semantic HTML by definition.
CHARLES MAX_WOOD: Right.
DAN_SHAPPIR: Just the way that they're often used, or like, you know, people focus on certain things to the detriment of other things, but you can definitely use semantic HTML with modern frameworks.
AIMEE_KNIGHT: I have a question here too. I don't know, Bruce, do you want to speak to that first, and then I'll pop in after?
BRUCE_LAWSON: What Dan said, basically. Yes, there is no reason why your MyFooter component can't wrap everything in a footer element and therefore a screen reader user can press one key and jump straight to the footer. There's no reason why you can't write your footer component to use an actual footer rather than a div class equals footer. But frameworks have encouraged people to assume that it's an off-the-shelf solution. And all they need to do is knit it together with a bit of script. And what people should do is be examining the libraries that they choose to use to make sure that the, the HTML that's vomited out is more than divs and spans.
DAN_SHAPPIR: I think there's another aspect here. I think that people are looking at the semantic information in the wrong place. So when you have a component in your JavaScript file that's called footer, let's say with a capital F or my footer or underscore footer or whatever, then you kind of feel like that's semantic enough and the fact that I'm using divs is just a technicality. So you actually view the HTML that you're generating as almost as a side effect rather than the core of what you're actually doing. I think that's another reason for that.
BRCE: educating or finding people who are motivated enough to know what they're looking for when they're choosing a library. I mean there's a great library written by an old friend of mine called Tenon UI. It's MIT-licensed. Every single component in that library has been tested with people with different assistive technologies including voice command, including screen reader users, including people with motor difficulties, so they can only use the keyboard. You could just as easily take that as you could the React Bootstrap library, which has a nav component that is only made with divs rather than a nav element. And the reason it matters is every screen reader gives you a single key that you can press, which would jump to the main content of a page. So if you're looking at a page and you've already heard all the 150 menu items down the side and you don't want to hear them again, the ability to press M and jump straight to the main content is really pretty useful to you. But it only works if somebody's written a main tag around their main content. And frankly, writing angle bracket M-A-I-N, close angle bracket, is better than D of class. It's shorter. I mean, obviously, if you're worried about three bytes worth of shorter, you're doing a pretty good job with performance and other aspects. But it's not a difficult thing to do. It's having the mindset to do it or else having the knowledge in order to check the libraries you're already using to make sure they use that stuff. And we're all open-source people. So if you see a library that's on GitHub that has a my footer that's around a div of class equals footer, change it to footer class equals footer. Okay, you've got a needless bit of repetition, but if they're applying with their CSS using the class of footer, but you've given it a footer tag, then a screen reader user or whatever can immediately jump to that footer or past that footer, which is not likely because it's usually at the end. But if something's written in a nav, they can jump straight to the nav, or they get told. This region is a nav and they press another button to go to the end of the nav. It's free to you as a developer to do this. They're super useful to the person who needs it and entirely transparent to the majority of the people who come to your app who don't need it. Wow. I've wagged my finger. Sorry. You're all asleep.
CHARLES MAX_WOOD: I think it's funny because you sound like AJ when he talks about JavaScript.
AIMEE_KNIGHT: question as far as like framers go and stuff and this is like a real world thing that I've actually been digging into last week and this week. So I've been looking at our lighthouse score and just different performance things and that led me to like researching some different things for lazy loading images and as of Chrome 76 was like back last summer there's actually like a new attribute you can apply to an image tag and a picture tag and it's the loading attribute. So I talk about frameworks and stuff like that because I didn't even know that this existed. Now, obviously, like you're going to have to have poly fields for other browsers because they don't, I don't think that others support it yet, but like it brought to mind something to me, which is just like, we are using, you know, frameworks and stuff like that. But I think because of that, we don't necessarily keep up to date on like the web standards that are evolving. And like how much less CSS or JavaScript you could load on your page just by keeping up to date with like these attributes and stuff. Because I mean, even CSS gets a bad rap, I'd say HTML gets an even worse rap. People just kind of like learn it once and forget it.
BRUCE_LAWSON: I mean, the situation's changing all the time. I'm glad you mentioned the picture tag, because that was something I dreamed up in 2011. And we fought to get it into browsers. Because there was a need for it, you know, retina retina screams have come on board and there was no way of sending different DPI images to different devices. So we dreamed up the picture tag and got it added. And I think it was in all browsers in around 2016, 2017, but I still meet people for whom it is a revelation. No, I don't. When did that come in?
CHARLES MAX_WOOD: Yeah, I was going to say what was the difference, but you kind of explained it.
BRUCE_LAWSON: And these people are cutting edge developers I meet on conference stages who haven't kept up with the development of the absolute fabric of the web, which is HTML. Because they know everything about Svelte, Vue, React, Mobex, Redux, Bootstrap, and the Stash Hubpack, Git, JS. And I submit to you, esteemed panel, that it's more important to your end users or the end users of the stuff you build, that you know things like the picture element, things like the lazy load attribute, things like main, a footer, nav, than ease that you know the intricacies of Webpack.
DAN_SHAPPIR: Yeah, I totally agree. I mean, frameworks come and go, but HTML is like the core of the web, you know? When HTML is gone, well, so is likely is the web. Which brings me back to my question. So you've mentioned quite a number of tags. Maybe you can give a quick rundown of tags that people who want to know semantic HTML should know but probably don't know. So like 5, 10, 6, whatever number you feel like.
BRUCE_LAWSON: Sure. So on every page or every web page, might be different if you're making something super appy like Google Maps. I would argue that you would always want to have a header and that will encapsulate the logo, which is probably a link back to your home page. If it's not on the home page, it will have the H1 that is the title of this page. It may or may not have a nav, which is a horizontal nav inside the header. That's up to you. And the reason for that is that screen readers will say, region header, and then the punter can press a button and jump straight over that. I'd argue that your primary navigation, not every bit of navigation, not the forward and back, if unpaginated stories, but the main nav should be wrapped in a nav, N-A-V, easy to type and div, and inside that you probably have an unordered list. And the reason for that is that the assistive technology will say region navigation, list of 20 items, item one, item two, item three, end of navigation region. And again, every screen reader will have a button that you can click to go either straight to that or to the end of it. Then I'd argue that you wrap your main content in the main element. Yes, you can have div role equals main. But Maine doesn't need a roll of Maine because it's built-in and built-in beats bolt on bigly. Remember this folks. And then probably if I had a list of YouTube videos or I had a list of products or I had a list of blog posts or I had a list of attractive fire-length leather boots, I've just been searching for some, you have a list of foodstuffs. Each one of those will be in an article. Because an article isn't an article like a newspaper article. An article is an article like an item of clothing, an independent, discreet thing. Not only will that, of course, you can style all these terms.
AJ_O’NEAL: So articles go in sections, not sections go in articles?
BRUCE_LAWSON: I wouldn't use section because it doesn't do anything. So it's purely hypothetical.
AJ_O’NEAL: You tricked us.
BRUCE_LAWSON: Well, no. My article about whether I should use the article or section said, don't bother with section because it doesn't do anything. But article, if somebody's looking at your site with an Apple watch, the Apple watch, because it's only got a tiny display, it will hunt for an article element in your page. And it has a built-in default display to make it look nice. Yes. If you have div ID equals article it will display, but not as nicely as if you've wrapped it in an article element. And then finally, I would have a footer element. Make sure every link is actually an A, href equals, not a spam pretending to look like a link. Make sure every button that does something is actually a button element. And make sure that every image has alternate text, unless it's purely decorative, in which case it should have alt equals quote, quote. And then you have got yourself past 90% of the problems that trip up people with assistive technologies. The most common one is lack of color contrast.
AJ_O’NEAL: Oh gosh, flat design. I hate it so much. Oh.
DAN_SHAPPIR: I wanted to mention something. You know, we keep going back to accessibility and screen readers and this might cause people to assume that this stuff is really only important for people with disabilities, but that's totally not the case. I'll give some other examples. So you actually gave the Apple watch example as a benefit for people who, you know, don't have this, not don't necessarily have disabilities. I can also say that, for example, another aspect of HTML five, probably the first thing in HTML five was, uh, all the, all the stuff they've done for forms. And, you know, when you specify, for example, that the form has type of an email, instead of just text and then using JavaScript to do the form validation, then you also get the benefit of your mobile device opening up a proper keyboard that has the symbols that you would probably want when writing an email like the app or dot com or something like that which is something that you can't do with javascript so being semantic in the html is not just a benefit for people who have disabilities it's also definitely a benefit for essentially everybody I just like to use the keyboard to navigate sometimes because it's faster. It's always annoying to me when I have to use the mouse instead. So that's another example. Or my eyesight isn't what it used to be. So whenever I encounter a webpage that fights against me and doesn't let me actually zoom the text or zoom everything, that really annoys the heck out of me. So all of these are examples of people who are abusing HTML in a way that's not only detrimental to people who may have disabilities, but it's literally detrimental to everybody.
BRUCE_LAWSON: I know our listeners can't see us, but neither you or me are going to see 30 again. I shall soon be, you know, 32. And like anybody who stares at a screen for 10 hours a day, my eyesight is getting worse.
AJ_O’NEAL: Like anyone who ages every year.
BRUCE_LAWSON: Yeah. Which I intend to do for the foreseeable future. Your very elegant, thin gray font on a white background is enormously.
AJ_O’NEAL: How many times do you find yourself? How many times do you find yourself selecting text just to read it?
BRUCE_LAWSON: Because you get better contrast.
CHARLES MAX_WOOD: Oh, now you're making me feel old. Cause I do that on my phone.
AJ_O’NEAL: I've talked with designers about this and they're like, but it looks so pretty. That's like, well, but if you're not on a 4k retina Mac display. Let's say you're on a $300 laptop from Best Buy, you literally just see gray. There are no letters, none.
BRUCE_LAWSON: Well, when somebody says it looks so pretty, I always just say, I think you would look prettier with a black eye. I don't, I don't. And I hasten to add gentle listeners, I'm not in any way advocating punching designers.
AJ_O’NEAL: I am.I'm advocating country.
BRUCE_LAWSON: Lovely people. Anyway, they won't be here, you know, it's because they probably haven't got out of bed yet. But...
AJ_O’NEAL: I barely got out of bed. I got out of bed for this. Right?
BRUCE_LAWSON: I'm the man worth getting out of bed for. That's nice.
AJ_O’NEAL: Oh my gosh.
DAN_SHAPPIR: Or getting into bed with.
BRUCE_LAWSON: But, thank you, Dan. Thank you, Dan. But Dan's absolutely right. I mean, if you're on a phone or something like an Apple Watch and you're asked to enter an email address and somebody hasn't said input type equals email. So you have to press something else to find the at symbol. It's annoying. You can say input type equals tell, and then you get just numbers. So more bigger key, bigger virtual keys, easier for everybody. And then you can go further and you can say input type equals pattern and give a regex. And the browser by itself will say this isn't the right format.
all kinds of uses for semantics because you're telling them you're telling the machine what to expect and every browser has a default display for these things. Unfortunately, every designer doesn't like the date picker so they want to make their own in JavaScript.
DAN_SHAPPIR: Yeah, I have to say something about this because I recently read an article that kind of contrasted the new React hooks to the old style quote unquote of React components like we did way back when in 2017 with the class
BRUCE_LAWSON: way back then
DAN_SHAPPIR: and what they actually use for the example was to do form validation now i have to say that the article was well written and it helped me understand books better was to literally disable the built-in form validation that you have in HTML so that it will get out of the way of the JavaScript. And it annoyed me immensely. And it especially annoys me because I know that people who use this article, which I said was well written, but who use this article to learn the technology will actually go and apply it and then use JavaScript instead of the built-in HTML form validation when HTML form validation was the first thing that was added to HTML5. It wasn't just the first.
CHARLES MAX_WOOD: I was going to say form validation. I want to chime in real quick though. You said date. And so of course I go, look, there's an input type date and it has a built-in date picker and I'm sitting there going, how much time did I spend banging my head against the wall to get that stupid JavaScript date picker to work the right way?
AJ_O’NEAL: , but you you spend equal time banging your head against the wall to get the browser native date picker work the right way because it's different in every browser. It's a different size. If it's a different, it's a different style. It's a different user experience. So I'd have to say the built-in date picker is something that still needs love. I think there's a lot of things that have gone a long way, but combo boxes and date pickers, we don't have any good option in a browser for those. That's sorry.
CHARLES MAX_WOOD: I cut you off, Bruce,
BRUCE_LAWSON: but I'm going to disagree with AJ there.
AJ_O’NEAL: Yes. I mean, you're wrong, but you can disagree. Yeah.
BRUCE_LAWSON: Date pickers look different in every browser. Okay. So do file upload boxes. But if I'm using Safari on my iPhone, I would rather every, but every website's date picker look like Safari on an iPhone's date picker than every website make their own one. And then marketing come in and say, ah, but corporate colors, it has to be magenta and indigo. And somebody else says corporate colors, it must be, you know, heliotrope and golden rod.
AJ_O’NEAL: I agree with you there, except corporate colors are always red and black. Always, unless it's a small company. Even Google was doing red and black for a while. I think they switched back to the rainbow, but IBM, big blue went red and black. Oracle's always anyway.
BRUCE_LAWSON: And so that's the fault of the bloody designers.
AJ_O’NEAL: Well, it has, it's, it's human psychology, which, well, there's, there's another point I want to, I want to bring up in just a second, but I, so I agree with you. I agree with you that it would be better if people that don't know what they're doing and can't create a date picker would just use the date picker that's built in, especially on mobile. Cause I do think that on mobile, I mean, I only use iPhone. I know the Android story has been really bad for, you know, like Android one, two, three, four, but I think that now we're like Android 12, 15 or something now and I think it's caught up or surpassed iPhone in many ways.
BRUCE_LAWSON: Oh, better than the iPhone in every respect.
AJ_O’NEAL: So I agree there, but on the desktop, the date pickers are atrocious and you get different things back like the time zone, the time format. It's just so I agree with you on the phone though.
BRUCE_LAWSON: I agree with you, AJ. And the reason is, is I used to work for Opera. So I used to work for a browser vendor. And we were the first to implement the HTML5 form inputs. In fact, these things predate HTML5. The pilot project for HTML5 was called Web Forms 2. That's where all of HTML5 came out of. But I will absolutely acknowledge what my friend Jeremy Keith said about the Opera date pickers. They have been smitten with an ugly stick, he said. And that's because people who write great C++ don't necessarily make things look pretty. Now you may be the exception, and I'm not a designer. Look at this shriveled husk of a man in front of you, but that is largely, I think, a fault of the browser engineers not necessarily having the best design chops
AIMEE_KNIGHT: to say something here too. This actually comes out of a GDE meeting that I had this morning which is Google Developer Expert if people aren't familiar with that acronym. So yeah they were actually talking about the date picker specifically and I suspect part of the issue is too that depending on like which browser they're gonna implement something and it'll be like a year and a half to two years until people are actually using it. So that feedback cycle I think definitely is a problem because we're not really able to like the people who would be leveraging these things that the, that the browsers are building. We're not able to like give feedback in a timely manner where people can iterate on it because by the time it starts getting out, you know, used in the wild, they've like moved on like long moved on from it.
AJ_O’NEAL: I feel like that's a little bit of BS though. I'm going to call BS on that because all you got to do is go to the most popular jQuery plugin and look at the issues. There's your feedback before it even happens. Right. People have already voted. They've already decided what works well. And you might look at the jQuery plugin and be like, wow, this thing has way too many options, whatever, but that gives you a base point to know this is what. And Google knows this, right? Cause they've got this thing that crawls all these web pages. They do all these tests for backwards compatibility. Google has probably more internal knowledge on what date picker people are using than anyone else in the world, because they have the entire internet on their servers, right? I just have a hard time believing that they can't say, Oh yeah, well, we know for fact that, you know, 99% of websites are using one of these two date pickers. Why don't we create something ugly and different?
AIMEE_KNIGHT: Yeah. You have a point there. I wonder if that's just like, you know, communication across teams. Cause I imagine those are very, very, very different teams that one team to like gain that knowledge and then one team building the date picker.
AJ_O’NEAL: The same thing with the built-in style sheets, right? Like we know that sans serif fonts should be used in general for digital print and that you use a serif font in digital print for a header, which is reverse because on, on paper you have little, uh, you know, imperfections. So you use a serif font for the print and you use, uh, for the general paragraph and you use, um, sans serif font for the headers. So, I mean, like, but browsers don't have good default styles and they never have, and they probably never will this is one of these mind-boggling problems of why do we need CSS zero and all that crap? Like these things have been known for a long time. Why aren't the browsers just doing this? I guess that's not a discussion for here because none of us are really in control of that or.
BRUCE_LAWSON: Well, actually, AJ, you've hit upon a point which is endlessly fascinating for the 0.001% of the world who care about the history of how the semantics got made. But I think in 2003, something like that there was a discussion on what became the HTML5 mailing list saying that all these new semantic tags that were being invented like article, header, footer, are not going to be used by people because they don't have any UI. So somebody suggested, and this is kind of genius, somebody suggested that the default browser style sheet for a header should be a slightly different color than the normal background color and likewise for the footer. And by default, but overrideable, a nav should be a left-hand column and an article should be slightly indented so that people would see what the purpose of these tags were, but obviously like anything else, you don't like the default H1 style, you override it. So it would give it a rudimentary UI so that people would understand the purpose. And I think there's, I think, I kind of wish we'd gone that way back then. So people mucking about with the new tags would have instantly gone, okay, if I stick a nav just by automatically, it's floated off into the left column. Great. If I use a header, I automatically get a, a visible region that tells me what this is for. But in the end, that didn't happen. And I think that did slow adoption of lots of the new HTML5 semantics.
AJ_O’NEAL: Well, I mean, that's as ridiculous as if we created, um, you know, that we've got the tell input and the email input. What if we decided that we weren't going to have anything change on the keyboard pop-ups? I mean, it's sad. It's sad because you've got people fighting against each other, people that like want to do good. And it's sad that something like that not just fell through the cracks, but like jumped into the gorge.
Springboard offers the first online self-paced software engineering bootcamp with a job guarantee. Become a software engineer or get your money back. You'll be mentored by senior software engineer or technical leader who has worked at companies like Microsoft, Intuit and Amazon. Springboard has helped graduates increase their salary by an average $25,000 a year. Make a risk fee investment in yourself and apply now. For a limited time, use the code jabber unique to our podcast listeners to get $500 off the course that's springboard.com.
BRUCE_LAWSON: My friend, Alex Russell, who's like a sinister mastermind at Google, he basically has the mantra that we were any new tag that doesn't have some kind of default UI, even if that's only default style is destined not to ever be used by developers. So I lament the fact that we didn't give those default styles. But going back to accessibility and a yes, Dan, I've been banging on about it. It's not the only reason to have semantics, but for somebody who's an assistive technology user, there is a default UI to the main elements, the ability to jump straight to it or jump over it, there is a default UI to a header and a footer and a nav element, there's default UI to a button. You can activate it with space or enter. You and me, I'm assuming that nobody on this call is blind. We don't notice that default UI, but for the people who need the extra help, there's a default UI there that is transparent to us and absolutely vital to them.
AJ_O’NEAL: So I'm gonna go back here as well. So I'm going to say something I never do, which is say something controversial.
BRUCE_LAWSON: No.
AJ_O’NEAL: So when we talk about accessibility, almost always, almost 100% of the time, it becomes a moral argument of what we are morally obligated to do for people that had circumstances that are different than our own and expanding our consciousness, becoming higher beings, the virtues of compassion, et cetera. That's a religion. That's not a technology. Right. And I like when we drive the conversation towards things like how the Apple watch works and how the iPhone works and how the Android system works, like, et cetera. I think that's like super productive because you don't have to get on the religious bandwagon in order to, to partake and, and enjoy the benefit. And it's not that I'm against working towards accessibility, but rather I look at this from the frame of what's driven us to where we are. It's economic factors, right? Like why do people learn the react instead of learning HTML and JavaScript? Because it has a higher return of investment for a bootcamp. Why does it return a higher return on investment for a bootcamp? Because they get kickback from either people being hired or people's testimonials saying that they got hired. So why are they getting hired? Because we need more developers to lay bricks because we just, we, we have way, we don't, there's not going to be enough architects, there's not going to be enough talent. So we need people that know how to copy and paste from Stack Overflow and copy and paste from react and build a website. And why do we need that? Because we have lots of SaaS businesses that are only expected to grow to a hundred million dollars and then sell to some other business like Google and whatever, and the product is not something that's going to have longevity. It's meant to be around for a couple of years to service the people that have the most money that are going to spend the most to grow the value of the business so that they can then sell it to Google or Apple or Amazon. So when you look at why are things the way they are, and I, you know, and I could be over, I'm definitely oversimplifying and I could be outright wrong, but my suspicion is that things are the way they are because of economic factors driving them and no matter how many moral arguments we make to a listener base of 10, 20, 30, 40, 50,000 people, we're never going to create a change that benefits the people on the moral side of the argument unless we're really clear about connecting it with the economic side of the argument, which I think we've done a great job on the show today. But my hope is that when we have these conversations, we always, you'll find a way to bring it back to that economic center, because the economic is what's going to help the moral end. The moral end is not necessarily going to help the economic end.
DAN_SHAPPIR: I do want to mention something before you answer that, Bruce. I do want to mention what I kind of said before, is that these things are not contradictory. I mean, you learn React all you want. That doesn't preclude you from learning like 150 tags that make up semantic HTML
AJ_O’NEAL: but it's not going to be taught to you in what you're paying for. That's the trouble.
DAN_SHAPPIR: Here, I think the web is kind of a victim of its own success. You know, there's the robustness principle, which talks about, you know, to quote, be conservative in what you do and liberal in what you accept from others, which is kind of being a key. Um, um, uh, what would I say? Like key to how the web was built and also to the success of the web and having the internet at large. And unfortunately, it also meant that you can build really, really bad HTML and browsers will accept it. I mean, you know, we could envision an HTML where if you didn't have a main tag or didn't have a footer tag or whatever, then maybe the browser will just break.
AJ_O’NEAL: HTML4.
BRUCE_LAWSON: No, that was XHTML2 in which if you didn't form everything properly, the browser would break.
DAN_SHAPPIR: Yeah, but obviously that failed. It was too rigid. And also it was kind of trying to retrofit something on an existing system. And again, I'm not advocating that this is what should be done. I'm just saying that in many ways, the web is kind of also a victim of that. Because it means that you can build a website with just divs all the way down, and it will work. And the user who's just...You know, just using a regular old web browser and on a desktop or whatever, they don't care because it looks fine to them, maybe.
AJ_O’NEAL: And also like what Chuck was saying earlier, you can use something once, like a footer that's only supposed to be used once, but your framework can say, well, this particular component can be templated multiple times, therefore,
BRUECE: Well, going back to what Ajay was saying about the economic arguments because I do accessibility consultancy. It used to be that people were coming to me because they were worried about the risk of litigation. And you know, I like earning money, so I'll take people's money to help them not be sued. But increasingly, I'm getting clients who are finding that there are economic benefits of being accessible. I'll just put a link into our chat listeners, so I'm getting their show notes. Over Christmas in the UK, there was something on the national TV news, and it was talking about the move from high street retail to people buying things online. And of course, people, often people with disabilities like to buy things online because they might have mobility problems or they might be blind, so it's a lot harder to go to the supermarket. And there's a thing on the news about inaccessible websites, because this was a problem for many disabled people. Because apparently what they call the purple pound, which is like the pink pound, but it's the disposable income that the disabled population have in the UK, is £274 billion a year. And many of those people are unable to shop at xyz.com. But if abc.com is selling the same things and they can shop, they will buy it. There are whole forums devoted to people saying, oh, this supermarket website's more accessible than that one, and they're getting a higher share of that $274 billion. There's also some research came out of Switzerland a year or two ago, and I can send you a link. They had three different websites, one of which was very inaccessible, one of which was moderately accessible, and one of which was very accessible. And they tested them with participants who did not have a disability but asked them to rate them on ease of use, aesthetics, perceived trust, and a few other criteria that I recall. And across the board, the site that was most accessible was perceived to be more usable, a better user experience, faster, et cetera, by people who were not disabled.
AJ_O’NEAL: And that was accessible, not in terms of framework with ARIA tags, but in terms of like, true real world use case type study?
BRUCE_LAWSON: Yes, yes, yeah.
AJ_O’NEAL: I don't find that surprising because you make fewer mistakes, it's going to work better, it's gonna be faster, it's gonna load faster.
CHARLES MAX_WOOD: Well, and your browser knows where everything is, just like with the regular screen reader. The other thing that I see here though with this is that, I mean, I've been wanting to do accessibility work on like devchat.tv and stuff. And the issue that I've always run into is that it's a massive undertaking to understand ARIA tags. And so I'm looking at this semantic HTML and looking at things from, you know, kind of the economic business case, right? Cause I want people to be able to come to the website and listen to podcasts and things like that. And the more I look at this, I'm going, okay, well, this is something that I can approach, right? This is something that I can understand. And so I don't have to go and memorize all the different ARIA tags and what they mean and how to use them and all of the inconsistencies that come with that, I can look at semantic HTML, and I can get a long way toward that and get what I want.
BRUCE_LAWSON: You can get a long way towards it. In the WebAIM, Millium homepages, the vast majority of accessibility issues were low-hanging fruit. By far, the biggest one was insufficient contrast. Then there was images without alternate text, buttons without any text inside them. So maybe somebody's got a button and it's an image and there's no alternate text. So there's nothing actually for a user who doesn't know whether they're clicking launch nuclear device or cancel launching nuclear device. So obviously they don't press it. Yes, ARIA is useful if you're doing some highly complex interactive widgets, you know, like a massively sortable tables where the displays update every time you press one thing. But for the vast majority of sites, you're going to get by just with semantic HTML and taking care of the colors to make sure their contrast is correct. Maybe a sprinkling of ARIA is useful. You know, if you're all divved. And changing those divs is going to be particularly onerous or you can't do it because it's an ancient CMS or whatever. Yes, you can put div role equals main rather than a main tag and it will do the same. But as it does the same, I would argue, just use the right semantic HTML tag and have done with it because then you haven't got to worry.
AJ_O’NEAL: I really do wish the XHTML stuff took off. It makes the web so much easier for everyone. Like, yes, a lot of people would have had to fix their PHP frameworks that are just templating text with no respect to HTML, but those ones would just not opt into XHTML. I wish that in order for the video tag to work, you were required to have parsable HTML on the page, because overnight, everybody would have made their... They would have figured out what was wrong with their frameworks in about a period of two weeks. The whole world would have changed.
BRUCE_LAWSON: I suspect you're right, but that's not what happened. As HR people say across the world, dispiritingly, we are where we are.
AJ_O’NEAL: Well, if you've got any muscle, next time some cool tag gets introduced, like, well, there's some tags that only work if you have, or some tags or features that only work if you are on a secure site. So if you don't have a valid SSL certificate that's been accepted by the user, then...The feature doesn't work. And I think that's amazing. And likewise, none of the crypto stuff in JavaScript will work unless you're already on HTTPS because they don't want you trying to build weird stuff without having the basics. And that's awesome.
DAN_SHAPPIR: One thing that might actually push us in the right direction, it's interestingly, we're kind of lucky in that the success of this huge company, which is called Google, is kind of tied to the success of the web which is kind of forcing them to push the web in right directions, not necessarily because of any, you know, actually, not because of any altruistic ideals, but because it's just more profitable for them that way. And it seems that very often, you know, they actually make it easier for properly built pages to rank better sometimes. So, and certainly, for example, if you look at, you know, we kind of discussed, I don't remember if it was during the show or before the show we talked about, Amy I think mentioned Google Lighthouse and Google PageSpeed Insights, the tool that you can use to measure page performance. They're literally tied to the amount of JavaScript that you put on the page. So, you know, if you have little JavaScript, you're going to get a good score. You have a lot of JavaScript, you're going to get a poor score. So all of these things are hopefully, are indeed actually kind of pushing us toward better HTML. I think, I hope.
AJ_O’NEAL: So, uh, kind of on that note, kind of tangent, how do you feel about the new Google search and the new algorithm and the new layout and everything now that it's been out for a week?
DAN_SHAPPIR: Yeah. But realistically, when you're looking at the Google algorithm, nobody really knows what's in the Google algorithm anymore. I think I don't think the Google engineers even know what's inside the Google algorithm anymore. It's basically it's, it's, and if, if they, if somebody still does,
AJ_O’NEAL: we know one thing. It's geared towards making them more money.
DAN_SHAPPIR: Yeah, but, but really what that, and that's again, going back to my, my initial statement, making them more money aside from the AdWords, which they put more and more sponsored links above your actual search results, but those aren't actually the results of the search. They have nothing actually to do with SEO. You just purchase, you know, placement. Yeah. The actual search results, you know, it's becoming like this artificial intelligence, Skynet sort of a thing and nobody really knows what it does inside anymore. But I definitely do think that having properly semantic content is going to help whatever it is that Google is throwing at it to better understand the content and structure of your page.
BRUCE_LAWSON: Indubitably, we haven't touched upon microdata today, but microdata is like a way of extending HTML5 to say, hey, this article is not only an article, food recipe or it is a movie review or it is a blog post. And then you can add attributes, you know, like date published, who authored it. And last April, Google published case studies with real numbers about how using that microdata allowed its algorithms to better understand what the content was about. And so surface it higher in search engines. I agree with Dan. I mean, I don't love Google. I'm a DuckDuckGo user, so I have no idea they'd change their algorithm or their display. But Google's prioritization of performance and responsive so it looks good on mobile devices has done well. And it is just a fact of physics that if you're sending 250k of React down the wire before your page loads. It's going to be slower. And I'm not dissing React. Say what you like about React. It has brought about a fabulous renaissance in the design of loading spinners. But nevertheless, it is, nevertheless, if you are slowing down your client's websites, so making it go down less in the search engine results and costing people in lower-income countries lots of money because they pay disproportionately more money for their data. I'm not waving Bruce's moral stick at you. You're doing a disservice to your clients and to your clients' clients. I'm not anti-JavaScript. Some of the best things in the world use JavaScript. I'm against covering up your inadequate knowledge of the basic foundational technology of the web using loads of JavaScript to cover up your inadequate knowledge.
AJ_O’NEAL: So right now I live in medium-density housing and it's a neighborhood where there's a lot of programmers, people that are a little bit techie, maybe too techie for their own good because of that, instead of letting their router choose the auto channel half of these people are setting their routers channel to channels that don't support what their router is. Like basically anything other than channel one or 11, a modern router can't perform well at and generates lots of noise. So with my like 300 megabit per second access point, I get about two megabits per second during the worst part of the day when other people are using their routers on adjacent colliding channels like four and three and seven. And so here I am in Utah, which is a tech hub. I get good internet. Like my base internet is 75 megabits down and a paltry five megabits up. Terrible. If you ever have to upload anything to YouTube. And now I'm wired in because I ran a hundred feet of ethernet through the house to where the thing connects, which is in the most, you know, non-optimal location. So like I'm wired in, but everyone else in this neighborhood pretty much during the worst part of the day, their web connection is two megabits per second because their routers are all conflicting with one another because, and my parents live in a place where they have satellite internet and that's about what they get if that. So I think that it's really important to point out if you live outside of Austin, Texas, Silicon Valley or Boston, there's a good chance that you have internet that is not always 100% perfect. And those people that are in those areas developing the web apps for everyone else, they don't see that it's not just the third world countries. It's anywhere where you don't have fiber in a wired connection or someone who manages your wifi for you, for your complex or for your building that puts it on the correct settings.
BRUCE_LAWSON: Well, I mean, get this, I'm quoting these stats from memory, but to afford 500 megabytes a month of mobile internet, you have to work for one hour at national average wage in Germany. You have to work for six hours at national average wage in the US. You have to work for 28 hours at the national average wage in Brazil. So that's for 500 megamons. So if you're sending down 300k of React to show me a loading spinner and an attractive picture of your tech startup's ping pong hub. Cool, but you are actually making a customer in Brazil do more hours of work.
AJ_O’NEAL: And well, the person in Brazil is probably not buying your product, but I am maybe I buy products.
DAN_SHAPPIR: I would like just to tell you that for us at Wix, Brazil is one of the most rapidly growing Geos that we're focusing on. So definitely a lot of business is starting to come from these places. I mean, you have to grow somewhere and, uh, you know, it's not just the USA anymore, you know,
AJ_O’NEAL: Let me be more specific. I'm thinking people that are listening to this podcast are at, you know, some medium-sized business, their customers are probably not in Brazil. Some of them are, but that's what I'm drawing there.
DAN_SHAPPIR: Well, you just gave an example yourself of the fact that, you know, where you live, internet can be a problem.
AJ_O’NEAL: Oh, yeah, yeah, yeah. That's what I'm saying. My purpose in this is to steer away from the moral argument of, oh, the poor people in Brazil, and steer back towards the economic argument of, but it's not just the poor people in Brazil.
BRUCE_LAWSON: Well, here's an example that I've used from time to time. There was a dating app in New York that was targeted at Orthodox Jewish people for whom going out one-on-one, wasn't consistent with the more conservative values. So it was a group dating app. It was five guys, five girls, go to the movies or whatever. And they didn't get enough signups. They had like 50,000 people sign up and it wasn't taking off. And then they noticed they were getting 50,000 signups a week in Pakistan, Bangladesh and India. And of course they subsequently realized this dating model that they thought was only appropriate to metropolitan conservative Jewish people, was absolutely aligned with conservative Sikhs, Muslims, and Hindus in those territories. And so these three Jewish guys who set it up, who had never been away from New York State, moved over to Mumbai and rebranded and became India's biggest dating app. You never ever know where your next customers are coming from.
AJ_O’NEAL: I love that story. That's awesome.
Hey folks, this is Charles Maxwood and I just launched my book, the Max Coders guide to finding your dream developer job. It's up on Amazon. We self published it. I would love your support. If you want to go check it out, you can find it there. The Max Coders guide to finding your dream developer job. Have a good one. Max out.
CHARLES MAX_WOOD: All right. I'm going to push this to picks cause we've been going for a while. We're going to have to have you back Bruce and dive into this some more.
BRUCE_LAWSON: Thank you for having me. It's been a pleasure.
CHARLES MAX_WOOD: Amy, why don't you start with picks?
AIMEE_KNIGHT: I think I'm going to go with just a post pointing to people about the lazy load attribute that I was discussing earlier, only because I thought that was pretty cool. So I'm going to drop a post from Addy Asmani talking about that.
CHARLES MAX_WOOD: Nice. I need to check that out too. Dan, do you have some picks for us?
DAN_SHAPPIR: Yes, I do have a couple. You know, since you raised lazy load, actually lazy load does have a couple of interesting behaviors associated with it. I actually even looked at how it's implemented inside of the Chromium code, and might be worthwhile to have a discussion about that as well sometime. It might not always behave the way that you expect it to behave. That said, so I have actually two picks. So Alex Russell from Google was mentioned, I think, Bruce, that you mentioned him. So I'm actually going to pick a talk that he gave at a conference where I also spoke, and I think you emceed. The JS camp in Romania.
BRUCE_LAWSON: That's right.
DAN_SHAPPIR: His talk was kind of depressing. The title was the mobile web MIA, but I think it's an awesomely important talk to watch. Interestingly, Alex said that this is a talk he hates giving and hope he doesn't have to give anymore, but unfortunately, it seems like the subject isn't really getting fixed and it's directly tied to the subject that we've been discussing today. So I'll link to that. Another thing that I wanted to link to was this excellent site that provides really interesting reading lists and materials almost on a, well, once a week essentially. It's bruslawson.co.uk.
AJ_O’NEAL: Great site.
DAN_SHAPPIR: And especially again, if you want to see semantic HTML in action, just go to that site and do a view source. It's very informative. So those would be my picks for today.
BRUCE_LAWSON: Oh, thanks, Dan.
CHARLES MAX_WOOD: Awesome. AJ, what are your picks?
AJ_O’NEAL: All right. So I got a couple of good ones today. I'm actually reiterating some ones from before, but that's all good. So first off, I've had this blue yeti microphone forever and I always see Chuck cause you know, we can see each other on this, the zoom chat and he's always got it like cool hanging suspended and just looks like a boss. And I've always had mine kind of positioned like a foot and a half away behind my computer screen, maybe two and a half feet away. I rarely hear myself on the podcast, uh, believe it or not. And so I was doing some work the other day and realized that I sounded like crap and watched a little video on how to set up the Blue Yeti and I did not understand that it is not shotgun style where the top of the mic is what you're supposed to speak into. It's actually the part that's covering it. The mic is actually facing the logo. And so I watched this video that explained that and how to set it up and now...Hopefully I sound a lot better today than I normally do. Still think the Samsung Go mic is great, but the video I'm linking to in the pics has got good sound tips that'll help you no matter what you're doing. Also, I'm gonna pick the Canon T4i, otherwise known as the 600D. That's the model number that no matter whether in Europe, America, or Canada, it's called the same thing, whereas the T4i, I think is North America-specific branding. Anyway, it's an old camera. It's like eight years old. It's almost identical to the T3i and really, really almost identical to the T5i because it has HDMI out, which the T3i doesn't. And then there's the T6i and the T7i is now the latest generation. But if you do anything with pictures or video and you don't, you know, you're not ready to drop $1,200 on a camera, I would highly, highly, highly, cannot highly enough recommend getting on eBay and buying an old used T3i, T4i, or T5i. I think T4i is kind of the best mix of value versus price because you can get it for under 250 bucks. And then the lens is really more important than the camera is, and the camera technology hasn't changed that much. So I bought this, another pick is this $40 course on the T4i, T5i, and T3i. You can pick which one you have. And so I got the camera for less than 250 bucks. It was 215 in my case. I bought the course for 40 bucks. Then I bought a couple of lenses because I wanted to play around. And so that was like 100 bucks per lens. I got some of the cheaper best-rated lenses like the must-have best value lenses. And I've been going through the course and playing around the camera and I just, I cannot tell you what a difference it makes to just have a little tiny bit of fundamental knowledge about the exposure triangle of ISO, which is ISO by the way, not ISO, aperture and shutter speed. And I just feel, I just feel so awesome. I like became a pro photographer overnight with just, uh, you know, less money than what a phone costs or, or about the same as what a point-and-shoot consumer camera would cost. I'm loving it. I mean, just it's awesome. And then in that vein, really short filmic pro and pro movie. If you're doing stuff on an iPhone and I think also pro cam pay five bucks to get one of the apps that lets you actually access the iPhone's features. No, you can't adjust aperture. There's a lot of things you can't adjust because it's not a real camera, but gosh, there's a lot of stuff you can. And again, night and day difference between using the Apple app and using an app. Once, you know, learn a tiny, tiny, tiny bit about what a setting means and you can make a great difference. And then again, magic lantern, which is something you can load on an old Canon camera, like the T three, I T four, I T five, I, and give it basically a software update that brings it up to some of the features that a T6i or T7i have.
CHARLES MAX_WOOD: Awesome. It's Canon, right? I'm going to jump in here with a pick or two. So I think I've mentioned on the show before that I've been doing some screencasting. I've been working on a product called Codenear and it's part of a challenge that I put together called a hundred days of view. So I'm learning Vue.js. Incidentally, it was funny because. You know, some stuff went down the entire panel on the views on view podcast left. And so I thought, well, I better learn views so that I can, uh, you know, help make the show run. And then we wound up getting just a huge influx of awesome hosts. And so, you know, it's not been as crucial for me to understand view, but at the same time, I still want to complete the challenge. So I've been working through it. So anyway, you can go check it out on YouTube and I'll put a link to the playlist in the show notes. I have to remember to go in and update the playlist periodically and add the new videos in. But anyway, it's been kind of interesting to me to, okay, now I need this feature in. Okay, now I've got this working. And it turns out that I need this information in a couple of other places. So now I've got to pull in something like Vuex, which uses the redux pattern and stuff like that. And now I'm looking at it and thinking, okay, how can I build semantic HTML into this? And you know make that so that it's easier for people to use if they want to use it. You know, so I might wind up doing another video on that. Thanks, Bruce. So yeah, anyway, it's been a ton of fun. I'm using OBS to send it out. I'm using it restream.io to actually get it out to multiple channels. So what it is is the streaming services like Vimeo or YouTube or Facebook, they'll give you an RTMP link that you can use to stream to. And the problem is, is like OBS and friends will only stream to one at a time. But if you pay for restream.io and my account is like 20 bucks a month, you can stream up to like five locations. So when I stream, I just set my title in restream and then I turn around and stream to them. And then it goes out to Twitch and YouTube and Facebook. And I think it notifies Twitter and puts the video on LinkedIn. So Yeah, anyway, it's, it's been pretty awesome to just have that as a capability for what I've been doing and I've, I've really been happy with it. So anyway, definitely go check those out. Bruce, do you have some picks or shout outs you want to make?
BRUCE_LAWSON: Uh, nothing tech, but I've been very impressed with a noisy, but highly melodic Tokyo based shoegaze band called Taffy, T-A-F-F-Y. If you want wall of sound guitars, but helium vocals a la Debbie Harry and Blondie about peaches and dogs and bicycles, taffy.
CHARLES MAX_WOOD: Nice. Awesome. Well, I think that's it. Thanks for coming, Bruce. This was a lot of fun.
BRUCE_LAWSON: Thank you for having me everybody. And thank you for listening folks at home. Bruce L on the Twitter's or brucelawson.co.uk. I'm available for weddings and bar mitzvahs.
CHARLES MAX_WOOD: Nice.
BRUCE_LAWSON: Not funerals. They're too depressing.
DAN_SHAPPIR: How about Brits?
BRUCE_LAWSON: Yeah, yeah. Or just barbecues, Dan. Oh, but you invited me before and then you're sitting there.
AJ_O’NEAL: So, so is that like, you know, at these weddings and funerals, you do speeches on HTML, you know, like congratulate the bride and groom and say, we wish you a new webpage that it will be beautiful and have all of its head and footer in Maine.
BRUCE_LAWSON: I have in my time written geeky songs about web technology, like a rounded corner instead of like a rhinestone cowboy and stuff like this. So, you know, do you want an HTML-themed wedding?
DAN_SHAPPIR: We should probably put links to a couple of these videos as well. They're pretty awesome, I have to say.
AJ_O’NEAL: Are they like, is this like Jonathan Colton level, Geek Awesome music?
BRUCE_LAWSON: I couldn't possibly comment because I'm English and therefore terribly modest.
CHARLES MAX_WOOD: Awesome. All right, well, I got to jump off. This was fun.
BRUCE_LAWSON: Thank you ever so much. It's 10 minutes to seven here. So my internet's going to grind to a halt because everybody in the UK is going to turn on Netflix.
CHARLES MAX_WOOD: Yeah.
BRUCE_LAWSON: As a Lovisto, Rock and Roll and Web standards.
CHARLES MAX_WOOD: Bye.
Bandwidth for this segment is provided by Cashfly, the world's fastest CDN. To deliver your content fast with Cashfly, visit c-a-c-h-e-f-l-y dot com to learn more.