[JM]: So I have a new toy and it's fun and I'm digging it.
[JM]: And I thought I would share it with you.
[DJ]: Okay.
[DJ]: I'm willing.
[DJ]: Tell me about it.
[JM]: I mentioned in a recent episode that my friend Jeff Triplett had done this demonstration of him doing some vibe coding with Claude Code.
[JM]: And I mentioned that in this demonstration that he used a very cute four key keyboard that he uses seemingly primarily to initiate MacWhisper, his dictation tool of choice.
[JM]: And I think he said he uses it so that when he's on his treadmill desk, he can just have the little four-key keyboard up where he can reach it and push the button, tell Cloud Code what to do, push the button again to signify, okay, I'm done transcribing.
[JM]: Now go off and do code stuff.
[JM]: Now, I don't have a treadmill desk.
[DJ]: Yet.
[JM]: Yet.
[JM]: And I have plenty of keys on the keyboard in front of me with which to invoke whispering, which is the dictation tool that I've been using that I mentioned in a previous episode.
[JM]: But that isn't nearly as much fun as pushing a key on a tiny four key keyboard that I decided I needed to have in my life and now have sitting just above the
[JM]: my trackpad, which has its own conveniences, right, like to be able to just reach up from the other hand, that's not on a keyboard, because I often will have my left hand on my trackpad, and my right hand stays near the keyboard.
[JM]: And this way, if I'm moving the mouse cursor around, and I decided that I want to do something without having to sort of switch hands or
[JM]: or bring my left hand back over to the keyboard in order to invoke the shift command semicolon key combination that is the one that I am using for Whispering.
[JM]: I can just reach up quickly from where the trackpad is, hit the little button, say what I gotta say, hit the button again to end transcription.
[JM]: And I gotta say, I dig this little thing.
[JM]: So thanks to Jeff for recommending it.
[JM]: The brand of this thing follows the same pattern
[JM]: of a lot of products that you may have seen if you spend any time on Amazon.
[JM]: And that is a random string of mostly consonants interspersed with a vowel here or there.
[JM]: It's just totally unpronounceable.
[JM]: I couldn't even try to pronounce this.
[JM]: As usual, there will be a link to this in the show notes.
[JM]: And then you can try to make heads or tails out of the name of this brand.
[DJ]: It's like from quo or something.
[DJ]: I know what you mean when you go.
[DJ]: It's it is a little weird when you go to go to Amazon and there's all these unfamiliar brands with essentially exactly the same product.
[DJ]: And then they do have all these weird names.
[JM]: Think like the name of an Incan or Mayan deity, but 10 times harder to pronounce.
[JM]: And then you'll be getting close to what looks like the Tixitutulal.
[JM]: Yeah, that's my best guess at how to pronounce this word.
[JM]: because it's not really meant to pronounce, right?
[JM]: They just have like a random name generator over the Chinese place that's putting these labels on things that are OEM produced and then slapped with, once again, randomly generated names.
[JM]: So I take this thing out of the box and I realized that it has two USB-C ports on this tiny little keyboard.
[DJ]: One for the first two keys and the other one for the second two keys?
[JM]: Something like that.
[JM]: I assumed at first, and it probably is the case, that the purpose is to be able to choose how you want to orient this thing and where you want to plug it into.
[JM]: So there is a port on the side, like the right side of it, if you are leaving it in its perhaps most common position.
[JM]: orientation of its horizontal, and then there's this port on the right, and then there's a port on the back.
[JM]: But you might decide, I actually want to, I don't know, put this in between my trackpad and my keyboard vertically, to be able to reach it from either hand.
[JM]: I like that they're thinking in the in these terms that you can use it in a way that feels most convenient for you.
[JM]: And that is flexible in that way.
[JM]: My other thought, and I haven't tried this is with two
[JM]: USB-C ports, can you daisy chain it?
[JM]: Can you plug in the keyboard into your computer or your hub and then from the keyboard plug it into some other device?
[JM]: Does that work?
[DJ]: Oh, so I thought where you were going was could you actually build like a regular sized keyboard by just chaining dozens of these together?
[JM]: Well, now I feel like I have to find out.
[JM]: What have you done?
[JM]: Okay, moving on to the key caps.
[JM]: It comes with two sets of key caps.
[JM]: The default assignments are select all, cut, copy and paste.
[JM]: And so those are the keys that come on the keyboard when you take it out of the box.
[JM]: I have no desire to assign these keys to those functions.
[JM]: And so I immediately pulled those off, put on the included set of blank key caps and then proceeded to go to the fairly nicely done web console that of course is built into the keyboard because of course every device now has its own operating system of some kind.
[JM]: And this one is pretty well done in terms of configuring your device from a web console.
[JM]: In this web console, you can configure a surprising number of things.
[JM]: It's not just, okay, assign this key to shift command semicolon.
[JM]: There's this huge long list of key modes where you can say, okay, I want it to do a keyboard command like shift command semicolon or any number of others.
[JM]: You can have it trigger a mouse button click, left, right, middle, button four, button five, button six, buttons that I didn't realize they're...
[JM]: That there are mice that add seven buttons.
[JM]: You can trigger media controls like play, pause, next track, tap, long press.
[JM]: I don't even understand some of the items in this long list of things that you can do.
[JM]: There's a game controller mode.
[JM]: What on earth is that?
[JM]: I have no idea.
[DJ]: It's for controlling games that only have four buttons, I guess.
[DJ]: I'm not sure what those would be.
[JM]: Maybe it says game pad and then there's a key index from zero to 156.
[JM]: This is just cool that you can do all these things.
[JM]: And also, I feel like this thing needs a manual of some kind.
[JM]: And I'm pretty sure that it does not come with one, at least.
[JM]: not one that allows you to understand how to use some of these functions in the detail that I think is called for.
[JM]: But I think my favorite mode of the many modes that you can assign a key to is the one key password mode, which as you might expect, as far as I can tell, means when you go to do something that requires a password, you can push a key and it will insert that password into that field so that you don't have to type it out.
[JM]: And
[JM]: I don't know if I actually have to say this out loud, but for those who don't immediately think, is that good from a security perspective?
[JM]: I'm gonna go with, probably not.
[JM]: Doesn't really strike me as the kind of thing I wanna put into a random,
[JM]: embedded keyboard software web console thing that who knows where that password ends up besides the local device, like besides the embedded storage of the keyboard, who knows where else it goes?
[JM]: Like that doesn't seem like something that I really want to be shared or leaked somewhere else.
[JM]: It doesn't seem like the right thing, like a safe place, you know, to put any passwords, no matter how trivial they are.
[DJ]: So this is a feature where you type your password into the web console of this keyboard, and it stores it in the keyboard's memory, I assume.
[DJ]: And then when you hit a key, it spits it back out.
[JM]: That is correct, and you can store up to 16 passwords via this mechanism.
[JM]: I don't know how you can use 16 passwords when there's only four keys, but in any case, there are space for you to put in 16 passwords.
[DJ]: Sure.
[DJ]: Yeah, I guess you probably shouldn't find that out, because this sounds like a terrible idea.
[DJ]: Please do not use a random four-key keyboard that you bought off Amazon as your password manager.
[DJ]: Not good.
[DJ]: Who knows how it's storing them, too?
[DJ]: Do you think it's doing proper encryption, or is that stuff in plain text?
[JM]: I don't know that you can properly secure it.
[JM]: Like what is it secured with?
[DJ]: You know what I mean?
[DJ]: Well, yeah, you're right.
[DJ]: Exactly.
[DJ]: Like if there's no other like security material, like a key pair or something, then you're right.
[DJ]: Like what?
[JM]: Yeah, there's no authentication to get into the web console.
[JM]: And you can just disconnect this keyboard, connect it to literally any device, push a key, and it will just spit out the password.
[JM]: So I don't see how encryption would help you very much.
[DJ]: That's a good point.
[DJ]: That's a good point.
[DJ]: So don't do this, but instead use this little keyboard as a video game controller.
[DJ]: That's our recommendation.
[JM]: I haven't quite figured out aside from invoking my transcription tool, what I'm gonna use this for, like what am I gonna use the other three keys for?
[JM]: But I'm sure in the coming weeks, I will figure out some good ideas.
[JM]: And before we move on to the next topic, I have to highlight the art form that is Amazon reviews, because this was one of the reviews that as you can imagine, really pushed me over the edge to buying this thing.
[JM]: Yo dudes, this gnarly little four-key keyboard that's totally legit.
[JM]: We're talking all cut, copy, and paste.
[JM]: That's it, bruh.
[JM]: No extra buttons to harsh your mellow.
[JM]: It's like just what you need when you're voicing through your
[JM]: Writing sesh.
[JM]: This setup is so simple, but like so high key efficient, dude, no clutter, no distractions, just you, your keys and the cosmic flow.
[JM]: I mean, it's the ultimate accessory.
[JM]: If you're a chill surfer of the web or riding the wave of creativity, this thing will keep you cruising.
[JM]: Stay lifted, stay productive, my dudes.
[JM]: Then, and then surfer emoji and then whoosh emoji.
[DJ]: Are you kidding?
[DJ]: Like what?
[DJ]: I mean, wow.
[DJ]: I'm actually really upset that I haven't been reading Amazon reviews lately because apparently they're amazing now.
[DJ]: They can be.
[DJ]: So what was the prompts given to chat GPT to produce that text?
[DJ]: It was like review this device in the personality of a like 1963 radio DJ from California.
[DJ]: Is that what that was?
[DJ]: Because like there was a lot of slang in there that felt very unfamiliar to me, but it wasn't actual.
[DJ]: It wasn't the way that like young people talk now.
[JM]: I think the prompt was something along the lines of give me an Amazon review of this product in the style of a 1980s surfer dude like Spicola from Ridgemont High.
[JM]: Spicoli?
[JM]: I think it was Spicoli.
[JM]: Okay, moving on to another tool that I've been using this time, not hardware, but software, and that is the Helium web browser, which I discovered because my friend Henik mentioned it and suggested that it might be worth trying.
[JM]: And I dig it.
[JM]: It is built on unGoogled Chromium.
[JM]: And Chromium is the open source version of Chrome.
[JM]: And unGoogled Chromium is a project to remove some of the things that Google has added to the project that say we may not want.
[JM]: And I've been using ungoogled Chromium for years and have used it as my backup browser.
[JM]: I use Safari as my primary browser.
[JM]: And I thought this would be a good opportunity to kick the tires on Helium.
[JM]: And one of the things that I noticed out of the gates is that it is indeed as advertised very fast, lightweight and has minimal browser Chrome, which is where for those that don't know the term Chrome comes from.
[JM]: Browser Chrome is the bit of user interface around the pane where you actually do your browsing, where the pages appear.
[JM]: And the browser Chrome in Helium is very minimal.
[JM]: They've gone out of their way to give you as much space as possible for your page that you're looking at.
[JM]: And I'd almost say it feels a little too minimal, like it's a little squished.
[JM]: but I appreciate what they're trying to do with it.
[JM]: I love that it comes bundled with uBlock Origin, which is an excellent ad blocking extension.
[JM]: It comes with it out of the box.
[JM]: You don't have to go in and enable it.
[JM]: It just comes with it, period.
[JM]: It blocks by default all third-party cookies and it does its best to prevent browser fingerprinting in terms of minimizing how sites track you as you move across the web.
[JM]: And I'm not ready to make this my daily driver, but it has definitely replaced unGoogled Chromium as my backup browser.
[JM]: So I'm mentioning it today in part because when I unboxed this tiny little keyboard, it said to use Chrome
[JM]: to do the web based configuration, which might be unnecessary because lots of folks say that and then you try it in Safari or Firefox or any other non chromium based browser and it works fine.
[JM]: But in this case, I decided to take them at their word and decided to use helium to do this configuration.
[JM]: And that was a good initial use case for giving this browser a try.
[JM]: So yeah, I dig it.
[JM]: If you
[JM]: use a Chromium based browser, whether that's Chromium, Chrome, Brave, and so many others, I couldn't possibly list them all and feel like you might want to try something that is a bit more lightweight and has lots of excellent privacy related features enabled by default, then give Helium a try.
[JM]: Okay, in other news, the creator of Mastodon has decided to step down as CEO.
[JM]: And if you have a moment, I highly recommend reading his farewell blog post.
[JM]: Because to me, this is a masterclass on how to run a successful technology product and how to bow out of it when you feel the time is right.
[JM]: Everything in this farewell post to me is imbued with humility, sincerity, and a real sense of genuine feeling.
[JM]: It doesn't read like some overly worked over PR ad.
[JM]: release from an organization's marketing department.
[JM]: And everything about it just to me underscores and reinforces my decision to spend most, not just most, but the vast majority of my time on social media using the Fediverse in general and Mastodon in particular.
[JM]: Because to me, the way that he has led this project up until now, and the way that he has bowed out of it, just exudes class.
[JM]: And that's the kind of organization that aligns with my values.
[JM]: It's the kind of person that aligns with my values.
[JM]: And besides just stepping down as CEO, he has handed key intellectual property over to the foundation, the nonprofit organization, thus ensuring a degree of
[JM]: continuity that is unfortunately not particularly common in a lot of open source projects.
[JM]: We've all seen instances where someone created a project, it became popular, and leadership decides to capitalize on that popularity by reasserting some claim over trademarks, logos, and or other intellectual property that the community felt was collectively theirs.
[JM]: So I'm really impressed with how the founder of Mastodon has handled this.
[JM]: And I look forward to hearing about what this person continues to do going forward.
[JM]: And I look forward to continuing to use the Fediverse to interact with folks and share things with them.
[JM]: Okay, moving on.
[JM]: In other news, Apple Podcasts is now generating chapters and timed links.
[JM]: And I want to talk about chapters first, because what this means is, if you aren't already familiar with them, podcast chapters, it's a way of defining chapters
[JM]: the parts of the podcast episode that are separate from one another.
[JM]: And you can specify a timestamp as to when the chapter starts.
[JM]: You can specify a name of the chapter, a title.
[JM]: You can specify chapter art and also links.
[JM]: And from the very first episode of this podcast, we have included custom chapters because we value having chapters in the other podcasts that we listen to.
[JM]: And we want to be able to provide that same functionality and convenience to the listeners of this show.
[JM]: But the unfortunate reality is that very few podcasts actually take the time and effort to do what we do, which is to include chapters for podcast episodes.
[JM]: And what that means is if you're listening to a podcast without chapters, you have no way of navigating through what you're listening to and trying to understand how many different things are they gonna talk about in this episode?
[JM]: And can I jump ahead to the next chapter or the one after that?
[JM]: It's really hard to navigate what you're listening to and understand what the structure is without chapters.
[JM]: But again, most people do not generate them.
[JM]: And so what Apple has decided to do
[JM]: is to use the power of generative software to scan the audio for submitted podcasts that do not include chapters and create chapters for each and every episode.
[JM]: And I have to say, I am very curious to see how this works.
[JM]: Because I think for example, on our show, it's pretty clear when we're moving from one topic to the next.
[JM]: But lots of other shows don't have such clear markers.
[JM]: And so I wonder how this dynamic chapter generation will work in practice.
[JM]: But I probably will never find out because this is something that's going to only affect presumably the Apple Podcasts app, or at least that's how I assume this will work.
[JM]: But I wanted to see what this looks like on the production side from our side.
[JM]: So I logged into Apple Podcasts Connect.
[JM]: which is the web interface for podcast creators where you can manage certain things about how Apple Podcasts treats the show that you're putting out into the world.
[JM]: And the first thing that I saw is that there are new terms and conditions the second you log in, which makes sense because they're doing different stuff now than they did until this announcement.
[JM]: Once you get past the terms and conditions, there is a configuration
[JM]: page called availability, where you can, for example, opt out of these dynamically generated chapters, it's not really clear to me if they're done well, which of course, I have already questioned as to how well that will work.
[JM]: But it's unclear to me why if it is done well, you'd want to opt out of dynamically generated chapters, because they should only go into effect if you aren't already supplying your own.
[JM]: And if you aren't supplying your own,
[JM]: and the dynamically generated chapters work well, then I would say let them be dynamically generated because we all want chapters, at least we who are familiar with them and find them convenient.
[JM]: So I hope that most folks don't bother to go in here and opt out of these things.
[JM]: But again, if this only applies to Apple Podcasts, then I guess it doesn't affect those who use other apps anyway.
[JM]: Presumably if your podcast uses dynamic ad insertion, then I don't see how this will work.
[JM]: Dynamic ad insertion is a technique whereby instead of statically including ad reads in your podcast, you just have these placeholders.
[JM]: And then either when the podcast is downloaded by the podcast player, or perhaps it happens when you push play, I'm not really sure the exact timing of when these ads are inserted.
[JM]: I assume it's when it's downloaded by your podcast app.
[JM]: But in this case, instead of static ads that you included in your podcast itself, it is dynamically pulling in ads from some ad network that the podcast is associated with.
[JM]: And I don't see how this works with dynamically generated chapters because you may not know exactly how long the ad's gonna be and chapter generation is tied to timestamps and that seems like that would mess that up.
[JM]: So I don't see how this works in a dynamic ad insertion
[JM]: world.
[JM]: In this user interface, in Apple Podcasts Connect, you can also opt out of timed links.
[JM]: So let's talk about the timed links.
[JM]: This is a separate thing from the generated chapters, timed links, from what I understand, is if in the podcast, you mentioned, say another podcast, in this case, my understanding is that it will dynamically generate a link to this other podcast that you mentioned,
[JM]: and include it somewhere.
[JM]: I don't quite recall where that is.
[JM]: Perhaps it's in the transcript.
[JM]: Presumably the show notes are still managed by a human that is producing the podcast.
[JM]: And I think this is not just for mentioning other podcasts.
[JM]: If you mention things like music albums, TV shows, anything that exists in Apple's ecosystem,
[JM]: say, for example, Apple TV, Apple Music, something that can be recognized and then linked to, that's where these timed links get generated.
[JM]: And one can opt out of timed links, just like the generated chapters.
[JM]: And to me, I said that before, it's not really clear to me why you'd want to opt out of chapters, but to me, it's a little more clear why you'd want to opt out of timed links.
[DJ]: Yeah, no kidding.
Yeah.
[DJ]: Hey, while I'm hosting this podcast for you, why don't I give your listeners a bunch of incentives to stop listening to it and go purchase content from me instead?
[DJ]: That's what I want in the Apple Podcasts app is just like, hey, I know you guys were enjoying listening to this show, but have you considered watching the third season of Severance?
[DJ]: Give me a break.
[JM]: Yeah, I'm with you.
[JM]: Didn't take me very long looking at this user interface to be like, I'm opting out of this for now until someone tells me, Hey, this is super cool.
[JM]: And there are these clear benefits to having enabled.
[JM]: I say, no, thank you.
[JM]: And we'll just bow out from that feature.
[JM]: This console also mentions transcripts, which I think are also going to be, if they're not already dynamically generated.
[JM]: which is great.
[JM]: And Apple took a different approach with transcripts.
[JM]: These other things like dynamically generated chapters and time links, you can just uncheck a box and opt out of them.
[JM]: You can't do that with dynamically generated transcripts.
[JM]: you have to reach out to Apple and contact them and say, I want to opt out of this if that's something that you want to do for some reason.
[JM]: So they make it a little bit more difficult.
[JM]: There's like this extra hurdle that you have to go to to opt out of dynamically generated transcripts.
[JM]: This makes sense to me because this is an accessibility issue.
[JM]: There are people who need transcripts to be able to effectively consume podcasts.
[JM]: So making it harder for people to opt out of the dynamically generated transcripts makes sense to me.
[JM]: And I see what they're doing here.
[JM]: And it seems like a good idea to handle it the way they're handling it.
[JM]: Speaking of dynamic ad insertion, this is one of those things that feels to me like some pardon me, sleazy marketers idea, like some sleazy marketer came up with the idea of dynamic insertion.
[JM]: And let me
[JM]: explain my feeling about it because of how I usually experience it.
[JM]: I don't listen to a lot of podcasts that have dynamic ad insertion because to me, I don't like it and I would rather just spend my time consuming podcasts that don't do this creepy thing that I don't like.
[JM]: But every once in a while, I'll be listening to a new podcast where I don't know that they're using dynamic ad insertion yet.
[JM]: And this will often happen when I'm traveling.
[JM]: in a country where the predominant language is not English.
[JM]: And the way that dynamic ad insertion works is it often geolocates and serves ads in the language where the geolocation is centered.
[JM]: So I'm listening to a podcast in English and then randomly in the middle of the episode, I'm now listening to insert the mother tongue of the country in which I happen to be in when listening to this podcast.
[DJ]: which you don't necessarily understand, although you are a multilingual person.
[JM]: which I often do not understand.
[JM]: You're right.
[JM]: I speak multiple languages.
[JM]: Sometimes I understand these ads, but sometimes I'm traveling in a country in which the mother tongue is not one that I understand.
[JM]: And these ads are highly, highly annoying.
[JM]: And of course, if there are chapters and there usually aren't, I can just go ahead and skip to the next chapter.
[JM]: But once again, there usually aren't chapters and thus I have to do this manual thing of trying to figure out how to get past this silly ad
[JM]: in some language that I don't understand.
[JM]: And just the idea, right?
[JM]: That they are using the location to target you with ads is just creepy.
[JM]: And so I am just not a big fan of dynamic ad insertion.
[DJ]: No, I don't like it either.
[DJ]: I am under the impression, although someone should fact check me on this, that one of the reasons some podcasts have moved towards dynamic ad insertion is it makes it easier to continue to sell ads against your backlog.
[DJ]: Because if you have 500 shows that you've recorded over the past five years,
[DJ]: and you do have an ad-supported show, you're probably not still making money off the ad you sold in 2020 for that episode, but people are still going back and listening to that episode.
[DJ]: And so then I think dynamic ad insertion is essentially a way to sell new ads against old shows.
[DJ]: And from the perspective of wanting people who make podcasts to be able to pay their rent that way,
[DJ]: I am sympathetic.
[DJ]: But as you say, the actual experience as a listener of dynamic ad insertion sucks.
[DJ]: It's such a weird, jarring thing to have happen.
[DJ]: I have not been against ad-supported podcasts.
[DJ]: I've always felt like my favorite shows do a reasonable job of making the ad reads more
[DJ]: part of the show and not even in a in an artificial way where they shuck and jive about it just you know I'm listening to these people talk to each other and then one of them goes hey and today we're sponsored by insert company here they're not paying us so I'm not actually gonna say who I'm thinking of but
[DJ]: And then they tell you a little bit about them.
[DJ]: And yeah, I tend to use the skip 30 seconds forward button until the ad is over.
[DJ]: On the other hand, I probably have over the years patronized a variety of companies I learned about through ads on podcasts.
[DJ]: At the very least, it is minimally obnoxious.
[DJ]: But the dynamic ad insertion thing means you're listening to your internet friends talk to each other.
[DJ]: And then suddenly there's like some other voice talking about unrelated nonsense, maybe in another language.
[DJ]: And then the sort of geolocation stuff, again, it's very jarring because I'll be listening to a show that I know is like recorded by Americans in America, for example.
[DJ]: And it'll suddenly give me this ad that references the city I live in.
[DJ]: And again, I'm just like, wait, what?
[DJ]: What does the podcast I'm listening to have to do with where I am right now?
[DJ]: It's all just a really good example of all the things we hate about internet advertising now imposed on the world of podcasting.
[DJ]: And again, while I don't begrudge the people who work really hard to make podcasts their need to get paid, this is such a sucky way to do it.
[DJ]: So yeah, we are down on dynamic ads here at Abstractions.
[DJ]: And I hope when you listen back to this episode in the year 2029, there won't be an ironic, jarring, dynamically inserted ad break in it.
[DJ]: But you know, no promises.
[DJ]: We can't predict the future.
[DJ]: It's true, can't.
[JM]: Yeah, and you mentioned before this notion of you could be listening to a podcast episode from eight years ago, and then suddenly some ad gets inserted that's clearly for a product that was released two weeks ago.
[JM]: And that's jarring, right?
[JM]: Like you're listening to something you know is baked in this time period of a long time ago, and then suddenly like, wait, huh?
[JM]: They're advertising something that just came out?
[DJ]: Right.
[DJ]: Like the best would be we're listening to our fellow like Apple nerds talk about the iPhone 6, which came out in, I think, 1975.
[DJ]: And then suddenly, like there's a cut and it's like, buy the iPhone 17 Pro.
[DJ]: It's very confusing.
[JM]: Yeah, I don't feel like I need time traveling podcast episodes or time traveling ads.
[DJ]: No, no.
[DJ]: That's the worst idea for a time travel movie I can think of is that like a portal opens and advertising comes out and annoys the dinosaurs.
[JM]: All right, to discuss a topic that just came up this morning for me, in a GitHub repository, someone submitted a pull request that modifies a Pelican plugin to add the underscore blank target to anchor tags.
[JM]: Now, if you just heard that and you feel like your brain melted because it just sounded like gobbledygook to you, one, I'm sorry.
[JM]: And two, another way to put it is the proposed change makes it so that every link you tap on
[JM]: will open a new browser tab or window depending on how your browser is concerned.
[JM]: But the bottom line is instead of tapping a link and having it go to that page in your existing browser tab, it will open a new one.
[JM]: And this is a technique that I see a lot of people do when you're tapping on links that aren't internal to the site that you're on.
[JM]: So if you're just tapping on a link that goes to another page on the site you're visiting, then it stays in the current tab.
[JM]: But some sites have this set so that if you are tapping instead to a link that's off site, not the site you're visiting, but to some other site, then that link will open into a separate browser tab.
[JM]: And this is a behavior and practice that just drives me insane.
[JM]: To me, it is a huge anti-pattern
[JM]: that again, feels like it was dreamed by some sleazy marketer who decided the best way to get people to stay on our site is if they tap on a link that goes somewhere else, well, we'll have that go into a separate tab.
[JM]: But our tab, the one we actually want them to stay on, well, that will stay open.
[DJ]: I really dislike this anti-pattern that I would generalize as the people who make a thing like a website or a piece of software confusing how important it is to them to how important it is to their user because it is so presumptuous.
[DJ]: To be like, well, since you have come to my website, it is clearly the most important thing in your miserable little life.
[DJ]: And so even though you clicked a link that might take you to some other lesser website, don't worry.
[DJ]: We'll make sure that you don't lose track of what's really important to you.
[DJ]: Come on.
[DJ]: It's just blatantly self-serving.
[DJ]: And I think we'll have more to say in future topics, too, about this concept of apps and sites that are so dedicated to serving themselves instead of you, the user of them, the reason they exist, hypothetically.
[DJ]: And this is a small one, but it is one, especially because automatically opening a link in a new browser tab might be a bad idea for reasons we can get into.
[DJ]: But deliberately opening only links off-site in a new browser tab, that's the thing that really makes me go on a, what is it now, 45-second-long rant about this topic because it's so nakedly like a, no, no, no, you've got to keep our website open.
[DJ]: I mean, yeah, we'll link to other websites, I guess.
[DJ]: But like, obviously, you need to stay here.
[DJ]: No, buddy, I'm sorry.
[DJ]: That's not how the internet works.
[DJ]: It's just not.
[DJ]: Like, if you want my attention back, you're going to have to earn it.
[JM]: As you said, that's not how the internet works.
[JM]: This anti-pattern breaks the fundamental model of the web.
[JM]: And it should just be avoided, period.
[JM]: Because users are the ones that should get to choose how they want to interact with links.
[JM]: And
[JM]: forcing this behavior on site visitors takes that control away from the user.
[JM]: Unfortunately, a lot of folks don't realize that it's easy to open links in new tabs or windows if that's something that you want to do.
[JM]: On Mac OS, for example, you hold down the command key, you tap on a link, that link should open into a new tab.
[JM]: But once this silly blank target is applied to links,
[JM]: The inverse is almost impossible, if not actually impossible to do.
[JM]: If you have it set to open a link in a new tab, as a user, I don't think there's any way for you to say, no, no, I want you to open this in the tab that I'm in.
[JM]: Because, you know, that's how the web works.
[JM]: You can't say, hold down the command key and tap on that link and then have it open inside the same tab that you're in.
[JM]: So that to me is my number one complaint, is that it just takes control away from the user.
[JM]: There are also security concerns with doing this, and I won't go into what those are, but as usual, I'll put a link in the show notes so you can read and try to better understand why this is bad from a security perspective and also how you can mitigate that security concern, at least in one particular context.
[JM]: And there are just numerous ways that this miss feature is a bad idea.
[JM]: It often breaks the back button.
[JM]: So if you open a new tab in this way, or I should say if a link is opened in a new tab against your wishes in this way, often pushing the back button doesn't actually take you back.
[JM]: to where you were.
[JM]: But I think the thing that is silliest is that I have seen people contest the very clear intent of this silly practice.
[JM]: And this idea that users are going to tap on links and go to some other site and not be able to get back.
[JM]: I mean, it's ridiculous.
[JM]: Everyone knows how web browsers work.
[JM]: Everyone knows how a back button works at a minimum.
[JM]: But I've seen people say that in usability tests that they have performed, that opening external content in new tabs or windows makes the problem worse, not better.
[JM]: In other words, this fear of the user's gonna leave my site and not be able to get back is made worse by this practice of opening links in new tabs or windows instead of making it better.
[JM]: Because this practice confuses and annoys users.
[JM]: So not only is this just a practice that is bad from a usability perspective and a security perspective and a user should have control over their own browsing experience perspective, but the purpose, the intent of it is also not achieved.
[JM]: So if you are listening to this and you have influence in how your website behaves, then take this into consideration and perhaps either
[JM]: remove any underscore blank targets that are in your link references or don't add them in the first place.
[JM]: All right, everybody, thanks for listening.
[JM]: I hope you enjoyed the show.
[JM]: You can find me on the web at justinmayer.com and you can find Dan on the web at danj.ca.
[JM]: Reach out and share your thoughts about this episode via the Fediverse at justin.ramble.space.