[JM]: As you know, Dan, the usual tradition for this show is that we pick a phrase that someone said during the show and use that as the title for most, if not all, of our podcast episodes.
[DJ]: That's true.
[JM]: But the other day, show listener Josh Thomas pointed out, and I'll use his words, well, that's an unfortunate truncation of a podcast title on my car's dashboard.
[JM]: And the title for...
[JM]: This particular episode was modern tech cockroach.
[JM]: And it's the last word that was truncated.
[JM]: So I will leave it to your imagination to guess where that truncation happened.
[JM]: And Josh was kind enough to supply an image of said truncation on his car's dashboard.
[JM]: And I kind of feel like using it as my phone's lock screen now.
[DJ]: that's a little bit egotistical to like have a proof that people are listening to our podcasts on your lock screen.
[DJ]: So you can show it to people and be like, check it out.
[DJ]: I do a famous podcast.
[DJ]: Look, people listen to it on their cars, but I get it.
[JM]: Yeah, it never occurred to me when thinking about the names that we choose for podcast episodes, it never occurred to me that I should be careful about how and where it gets truncated for a display on devices that can't display the whole episode title.
[JM]: And I'm not sure that I'm, even after this experience, going to put that kind of thought into it.
[DJ]: No, you shouldn't put that kind of thought into it, because on the one hand, that's ridiculous.
[DJ]: And on the other hand, I actually see this as bonus content.
[DJ]: I mean, we're here to entertain, right?
[DJ]: So did Josh obtain more or less entertainment from that episode because of the truncation of its title than he would have if you had given it a title whose truncation would not be as fabulous?
[JM]: Well, I know how I would answer that.
[JM]: So yeah, I see your point.
[JM]: All right, moving on to a fun tool that I came across the other day.
[JM]: This site is called codingfont.com.
[JM]: And that's coding, as in to code, at codingfont.com.
[JM]: And if you go to the site, the default view
[JM]: is essentially a tournament style bracket with a bunch of fonts in it that by default don't have titles displayed, meaning you don't know what fonts they are.
[JM]: So resist the temptation before you do anything to check the show name checkbox, because it's a lot more fun if you do this without knowing what the fonts are as you go through them.
[JM]: And just like a championship tournament, you choose between two fonts, which one you like better.
[JM]: And then it goes to the next and the next.
[JM]: And when you get all the way to the end, okay, then it narrows it down to the ones you chose.
[JM]: And then it faces off between two of those and so on and so forth.
[JM]: Just like a March Madness basketball tournament.
[JM]: And eventually you get to the final two and you choose your winner.
[JM]: And then all of the fonts are displayed in terms of which specific ones they were.
[JM]: And the reason that I thought this was interesting is that it helps me understand what it is that I like and what things I don't really like about individual font choices.
[JM]: Things that stood out to me are...
[JM]: For example, the zero, I feel like the way that a zero is displayed in a font that I'm going to use in any kind of technical capacity needs to have some kind of disambiguation between it and an uppercase O.
[JM]: And I was surprised to see that some of these fonts don't actually have
[JM]: what I would consider sufficient differences between the two.
[JM]: Okay, the zero might be slightly narrower, but you can really only tell that when they're displayed side by side.
[JM]: And if you were to see one in isolation, I think a lot of times I'd be hard pressed to know, am I looking at an uppercase O or am I looking at a zero?
[JM]: So if I were ever presented with a font that displayed zeros without a
[JM]: some other kind of ornamentation, I would always just choose the other one without fail.
[JM]: And then you can go a step further and say, okay, well, if there is some kind of distinguishing mark on a zero, what does it look like?
[JM]: Because the two most common variants that I've seen are a diagonal top right to bottom left slash through the zero or a dot in the center of the zero.
[DJ]: So are you a dot man or a slash man?
[JM]: I am a dot man.
[JM]: Hmm.
[JM]: Both of them are effective at communicating that it's a zero.
[JM]: But aesthetically, I just prefer the dot, I just think it looks nicer.
[JM]: And as you look at enough fonts, you start to realize, okay, a lot of these, unsurprisingly look kind of similar.
[JM]: So what things am I going to focus on in order to try to decide between what could be a list here of 40?
[JM]: I don't know how many are in this list, but it's enough.
[JM]: Other things that stood out to me are how an L is displayed compared to an uppercase I or the numeral one.
[JM]: How are curly braces displayed?
[JM]: Another thing I noticed, what the asterisk looks like, because there are asterisks in here that have five points.
[JM]: There's ones that have six points.
[JM]: There are asterisks that are more or less centered vertically.
[JM]: And there are ones that are higher up and that appear more towards the top of the vertical space.
[JM]: Another thing I noticed is that sometimes multiple equal signs in a row would be displayed as contiguous uninterrupted lines.
[JM]: And I didn't really like how that looked.
[JM]: And so I would always choose the other one if I saw that.
[JM]: And then later, I realized only after doing this whole thing, that that was the result of having the ligatures box checked.
[JM]: And I feel like font ligatures in a coding font is a bit of a polarizing topic.
[JM]: I'm not really sure I'm into them.
[JM]: And I probably need to do this over again and uncheck the box.
[JM]: But I have a feeling I would still arrive at the same result.
[JM]: And at the very end, there's this fun trophy image that's displayed along with text that says Certificate of Absolute Awesomeness.
[JM]: Hereby unleashed upon... Drumroll...
[JM]: And for me, it was Hack, which is amusing for me because it's the font that I already have installed, that I already use every day and have for quite a while.
[JM]: So who's surprised that that is the one that I ended up choosing?
[JM]: And it was a close second.
[JM]: The one that Hack beat out was Ubuntu Mono.
[JM]: So it's good to know that if I ever get tired of Hack for some reason, I now at least know what my second choice would be.
[JM]: What about you, Dan?
[JM]: What was the result of your font tourney?
[DJ]: Well, this is interesting because I made very different choices than you did and actually focused on totally different things for the most part.
[DJ]: So I do like the custom ligatures that come with a lot of coding fonts that do things like they render the two characters greater than equals as a greater than sign with a line underneath it the way you'd write it on paper.
[DJ]: I like stuff like that.
[DJ]: So I tended to choose fonts that have that turned on.
[DJ]: I also noticed like I was looking at different things than you were with the exception of the zero, which I did notice.
[DJ]: And I am actually a slash man in that regard, as opposed to a dot man.
[DJ]: There's something visually distinctive about a zero with a slash through it that I like, I suppose.
[DJ]: Possibly also because it matches what I would write on paper, generally, like I write zeros with a slash through them.
[DJ]: But then in terms of what I was looking at, it was almost all like font, weight, and kerning, which to me tells me how clearly I can make out the letters and letter forms.
[DJ]: So I was going for the fonts that have the most distinct appearance to me.
[DJ]: Now what's the most interesting about this, hearing that you ended up with Hack, which coincidentally is the font you're already the most familiar with, I ended up with Fira Code, which is the font that I've been using for years.
[DJ]: So it's very interesting to me because if you'd asked me ahead of time, hey, if you were asked to choose this or this, this or this, this or this, between a bunch of different fonts, do you think you would end up with the font you use all the time?
[DJ]: I'm not sure I would say yes.
[DJ]: You know, I would assume that like there it's not distinct enough that I would that I might pick something else.
[DJ]: But it's very interesting to me that you and I both nonetheless, like, you know, essentially a blind taste test, so to speak.
[JM]: I'm with you.
[JM]: I would not have guessed that I would have picked the same one that I already use.
[JM]: I would have thought for sure there must be.
[JM]: It's not like I it's like I did a comprehensive survey and then ended up with hackers.
[JM]: I don't even recall how I ended up with it.
[JM]: So the idea that I would go through this overabundance of choices and compare them against each other and then end up with the exact same one that I already used was a huge shock.
[JM]: I'm with you.
[DJ]: It's super interesting because it underlines how maybe like what we consider important or what we think that we notice is different from what actually what we're actually considering important.
[DJ]: Because I was looking at all these fonts and going, and again, with the ligature thing, I'm like, I like the ligatures.
[DJ]: So the place where it was the most obvious in the samples was the triple equals sign.
[DJ]: And so I'd always pick the font that had the ligature triple equals sign.
[DJ]: And I don't know how often that happened to be Fira Code because it does have that feature.
[DJ]: But clearly, whatever I thought I was comparing...
[DJ]: When I was comparing these two fonts to each other, it seems like what I was actually comparing was how familiar does this look to the thing that I already am familiar with?
[DJ]: You know, if I was like, well, those letter forms are a little bit too thin or a little bit too, I think what I was actually doing was going, that's a little bit too different from Fira Code.
[JM]: Yeah, I'm sure this is just my old school nature, but there's something about the ligatures that
[JM]: is just weird.
[JM]: Like I can deal because I'm looking at fear of code right now and I can deal with the less than or equal to ligature that I'm looking at now.
[JM]: It's still, it's a little weird, particularly because the bottom line is slanted to be parallel with the bottom slope of the less than symbol isn't, it isn't straight across.
[JM]: So it's stylized in a way and,
[JM]: That to me, it looks a little strange, but I think it's the triple equals signs all is just horizontal lines that it just gets me.
[JM]: I'm like, I don't know.
[DJ]: I agree that one looks much more natural when it's a double equals sign.
[DJ]: But I'm also going to say that this is really JavaScript's fault for requiring a triple equals operator.
[DJ]: So ridiculous.
[DJ]: Whereas programming languages that aren't abominable can generally just get away with a double equals sign for the Boolean equals operator, and then you can just stack two lines on each other, and it looks fine.
[DJ]: What I really like is the not equals, because again, in most programming languages, that's exclamation point followed by an equals sign, and the ligature renders it as an equals with a slash through it, which again is how you would write it on paper.
[DJ]: Yeah.
[DJ]: There's just something I like about those sorts of symbols.
[JM]: Yeah, you know, it never occurred to me that I could just replace the text that's being used here for the comparison.
[JM]: That never crossed my mind because my first thought was, I'm not looking at a whole lot of JavaScript in the first place.
[JM]: I would rather look at Python instead and not look at these horrendous triple equal signs, among other things.
[JM]: But now that we're having this conversation and I'm actually selecting text and typing, I'm like, oh, wait, this thing is not static.
[JM]: I could have just copied and pasted some Python code in here and actually made it into something resembling a real world test.
[DJ]: Yeah, but then you wouldn't have been able to rate curly braces, which are irrelevant to you.
[JM]: They exist.
[DJ]: Oh, yeah.
[DJ]: I guess you use that to define dictionaries.
[DJ]: So you do need them.
[DJ]: Yes.
[DJ]: Semicolons, though.
[DJ]: What about the semicolon?
[DJ]: You're missing those.
[JM]: I don't know if I'd say I'm missing them.
[DJ]: Oh, man.
[DJ]: Just to go down memory lane for a second, because we're two old men, I guess.
[DJ]: When I was in university at the turn of the century, I was once tutoring someone in computer science, and for the life of them, they could not absorb data.
[DJ]: the notion that we were using Java as the programming language, they could not absorb the notion that you had to end statements with semicolons.
[DJ]: They just couldn't.
[DJ]: They could not do it.
[DJ]: So I really hope that person went on to have a flourishing career as a Python developer.
[JM]: For the sake of that person, I hope so too.
[JM]: Yeah, we could do a whole dive down the rabbit hole of significant white space and indentation and all that jazz that Python has championed.
[DJ]: You say championed, but I definitely know people who would use the word inflicted.
[JM]: It is a polarizing choice, one that I personally appreciate.
[DJ]: I will always love the thing about programming languages.
[DJ]: To a certain extent, all languages make the computer do the thing, right?
[DJ]: Like to some extent, it doesn't really matter very much what high level programming language you use.
[DJ]: And yet they are things that invoke so much passion in people.
[JM]: Well, and sometimes for good reason, because I would argue that JavaScript doesn't make the computer do the thing.
[JM]: It makes you do the thing.
[JM]: Case in point, unlike Python, you cannot put a comma at the end of the last element in a list in JavaScript.
[JM]: If you do that, it is a syntax error.
[JM]: And to me, that is the cardinal sin of JavaScript.
[JM]: The amount of my precious human life I have wasted because of some copy-paste thing.
[JM]: And then like, oh, got it.
[JM]: I copied this from up above and then I put it at the end.
[JM]: But now it's a syntax error because there's a comma at the end of it.
[JM]: This is something that Python handles with grace because it understands that we are humans and that copying and pasting is something that we do all the time.
[JM]: And...
[JM]: that it can just handle that.
[JM]: But no, JavaScript is like, sorry, no can do.
[JM]: All right, moving on.
[JM]: In other news, GitHub has announced stacked pull requests.
[JM]: And this is, I think, a feature that most people when they heard about it, if they have spent any time using GitHub and their pull request system, I think this was something that most people were very excited to hear about.
[JM]: Because a common thing that comes up when dealing with pull requests in GitHub is someone will submit a pull request, realize there's some other bug fix or feature that they want to make.
[JM]: And in the interest of keeping pull requests small, they do what I would say is the right thing by putting those pull
[JM]: follow up changes in a separate pull request.
[JM]: The problem is if that second or third or fourth pull request relies on functionality in the previous ones, that if they are not merged in perfect sequential order, say if the first one is merged, and then some other unrelated pull request is merged that touches that same code, then when that
[JM]: original person's second or third or fourth pull request is attempted to be merged, you run into merge conflicts.
[JM]: And the idea here is that you can take a series of changes, you can divide them into small, easily reviewable pull requests, it seems that the idea is you can arrange these in a stack, and then you can merge them all at once in a single click.
[JM]: And I feel like this is something that people have wanted for a long time.
[JM]: It is currently in a private preview, you can sign up for the waitlist if this is something that interests you.
[JM]: And presumably, once this beta period ends, they will release it to the general public.
[JM]: How does your organization, Dan, handle this question of pull requests?
[JM]: And would stacked PRs be something that helps you and your team?
[DJ]: I hope it will, because there's actually a separate issue from the one that you mentioned that we run into a lot, which is we have an approval gate on merging into our production branch.
[DJ]: So you have to get a pull request approved.
[DJ]: So if you create pull request A, it targets the production branch.
[DJ]: And then if you do what you just said, which is you realize, oh, there's some changes in here that depend on A, but they should really go in pull request B.
[DJ]: By default, B will target A and then C will target B.
[DJ]: And you need to get those pull requests approved.
[DJ]: But guess what?
[DJ]: When the base branch changes, in other words, when you merge A into production and the target branch of B becomes production instead of A, you have to re-approve B.
[DJ]: This is a big pain in the butt when you have to like chase your teammates around and like, hey, you know that thing you just approved?
[DJ]: Could you just quickly approve it again?
[DJ]: Because the base branch changed, like...
[DJ]: That is obnoxious.
[DJ]: We were looking at this announcement of stacked PRs and almost want to get the streamers and birthday cake out.
[DJ]: It's not entirely clear whether these solve the problem I just described, but I'm hopeful that they do.
[DJ]: So we'll see.
[DJ]: I think once we get access to this feature, we're very eager to try it out and see if it can alleviate that problem.
[DJ]: I suspect the other impetus for doing this also has to do with
[DJ]: coding agents where one of the big problems that organizations are seeing when they use agents to produce code is you can create so much code so quickly that the cognitive load on reviewing that code so you can integrate it is very large.
[DJ]: So one of the things that stacked PRs could help with in that context is it's even easier for agents to generate a bunch of linked changes than it is for people to do that by hand.
[DJ]: And so this perhaps makes the review task for so-called agentic development easier as well.
[DJ]: I guess we'll see since this is just an announcement, but I am pretty excited for
[DJ]: what it will do to our workflow.
[DJ]: Fingers crossed.
[JM]: I guess given Microsoft's focus on copilot and code generation tools, it's not too surprising to see the agent integration feature mentioned in the same description of this private preview of Stack PRs.
[JM]: And yeah, it will be interesting to see how this ends up getting used in the real world.
[JM]: And I'm curious to see, as an open source maintainer, whether this will make things easier for contributors to the projects that I maintain.
[JM]: As I've mentioned in recent episodes, I've been playing around with jujitsu.
[JM]: And of course, my next question is what the stacked PR landscape looks like for jujitsu.
[JM]: And poking around, it looks like there's at least a half dozen different projects out there that try to provide stacked pull request functionality for jujitsu.
[JM]: But I've never tried any of these.
[JM]: So I'll have to give them a whirl sometime and see if one of them stands out above the others.
[DJ]: What's the relationship between pull requests and jujitsu?
[DJ]: Because my understanding is jujitsu is essentially like an alternative to Git, but pull requests are a feature of GitHub or similar like so-called code forges, right?
[DJ]: Like the pull request isn't inherently part of the actual revision control system.
[DJ]: So how does that work in jujitsu?
[JM]: GitHub definitely pioneered the concept of a pull request.
[JM]: But obviously, that concept exists in GitLab, CodeBurg, and other code forges.
[JM]: I would imagine that all of these search results that I'm looking at right now that relate to jujitsu and stacked pull requests are indeed directly related to GitHub, and are not just a generic way of stacking PRs across
[JM]: multiple git forges.
[JM]: But the concept of how do these tools allow jujitsu to stack PRS with GitHub?
[JM]: I don't have any idea.
[JM]: But at its core, yeah, you're right.
[JM]: The way that jujitsu interacts with, say, GitHub or other git based code forges is using git primitives.
[JM]: I imagine these tools are just making it easier to do
[JM]: the kinds of stacked PRs that GitHub is now talking about without that feature.
[JM]: These tools were developed and shipped before GitHub made these announcements.
[JM]: So I think this was someone's idea of making Jiu-Jitsu do what, at the time, GitHub could not do, natively anyway.
[JM]: Speaking of managing complexity, Dan, how do you manage Windows?
[JM]: I know you use macOS.
[DJ]: Do you use... Well, yeah, that's how I manage Windows.
[DJ]: I avoid Windows by using macOS instead.
[JM]: Much like Chrome, I've always disliked it when someone just usurps some generic term and adds this ambiguous element to something that didn't exist before.
[DJ]: Sorry, you were talking about the windows in my home?
[DJ]: Like the ones that the holes in my walls with glass panes in front of them that emit light into the house?
[JM]: Okay, fair point.
[JM]: I guess everything ends up being a metaphor.
[JM]: So on your Mac system, when you are looking at, say, browser windows, and you've got windows for your text files and umpteen other apps that you have running, how do you manage your windows?
[JM]: Do you use Apple's spaces feature?
[JM]: Do you use any of the other various things they've added over time?
[JM]: How do you manage this complexity?
[DJ]: I use a combination of those things.
[DJ]: I do use multiple spaces, usually if I have a focused or long-running task.
[DJ]: So for example, I use a space for our podcast.
[DJ]: So I usually have a few different windows open while we're podcasting.
[DJ]: This is an unexpected behind-the-scenes featurette in the middle of this show.
[DJ]: But I have like a FaceTime window so we can see and hear each other.
[DJ]: I have our agenda open in text edit and I have audio hijack open to hijack my audio.
[DJ]: And then occasionally I'll have like a browser window so I can play the font code tournament thing.
[DJ]: I put all that stuff in its own space just so it's easy to know like, oh, podcast is over there.
[DJ]: I also really like the window tiling feature where there are a variety of ways to make windows snap into halves or corners of the screen or line up.
[DJ]: One of them will take the left half, the other will take the right half.
[DJ]: I like that a lot for the times where I do want to compare two things to each other or like copy text out of one thing and put it in another thing.
[JM]: This is the new feature that Apple introduced, I think, in Sequoia.
[DJ]: Yeah, that's right.
[DJ]: So you can put your mouse cursor over the green light in the stoplight icons that are in the upper left-hand corner of macOS Windows, and you get this little popover with options for moving, resizing, and arranging windows.
[DJ]: Before that existed, I tended to use a variety of third-party tools that would do the same thing.
[DJ]: I actually think most recently what I used was there's a pretty amazing app called Keyboard Maestro that lets you automate all kinds of stuff on your Mac.
[DJ]: And so I set up a bunch of shortcut keys and I still use them.
[DJ]: because they actually provide more custom functionality than the built-in features do.
[DJ]: So I can actually snap a window to the left or right halves of the screen, but I can also snap windows to the left third and right two thirds of my screen, because I found for certain workflows, I wanted to have like one thin window, like a browser on one side and a text editor on the other.
[DJ]: I'm a big fan of doing window management that way.
[DJ]: Now, in terms of something like I have 25 Safari windows that each have 15 tabs in them, I don't really have a great solution to that.
[DJ]: And I'm pretty sure no solution to that can possibly exist in this universe or any other.
[DJ]: So that one, I mean, if you have any tips for that other than just admit that I'm not going to use most of those tabs and close them, I would love to hear it.
[JM]: I asked this question because I struggle with managing the huge number of windows and tabs that I always have.
[JM]: It's never a situation in which I have just a handful of windows and tabs.
[JM]: It's always way too many.
[JM]: And that's a problem in and of itself that no amount of
[JM]: window and tab management tools will will solve.
[JM]: So reducing the sheer number is one thing.
[JM]: But I have not yet found a tool that sticks for me, I have a tool called moom installed that I got a long time ago.
[JM]: And it was helpful when I used a single MacBook Pro as my computer and connected it to my desktop monitor.
[JM]: And
[JM]: and then disconnected it, because you can define a particular layout for both of those two scenarios.
[JM]: So when you connect it to your display, it will arrange your windows in a certain way.
[JM]: And then when you disconnect it, it will arrange it in a different way for the understandably smaller screen that's built into the MacBook Pro.
[JM]: And that's a really useful feature.
[JM]: And you can arrange things in whatever position you like, and you tap a button, it will remember that position.
[JM]: for both of those screens or however many screens you use.
[JM]: Now that I have a desktop machine that I use primarily and I don't do that connection disconnection dance, I find that I use Moom less in terms of arranging windows and I don't really use spaces aside from full screening a video that I'm watching and
[JM]: switching between that and say everything else.
[JM]: But I hear about people that use different spaces for different setups, different tasks, different things they're doing.
[JM]: And it seems in theory, like something that could be really useful.
[JM]: I just haven't quite figured out a way to make it stick.
[JM]: One thing I saw the other day is if you ever find that switching between spaces is
[JM]: is annoying in terms of the animation.
[JM]: I don't know that I've particularly felt like this is a problem in the past, but if you find that the movement, the way that one space slides out of the way and the other one slides in, if for some reason
[JM]: you find that annoying or you just wish it were instant, there is a post that I came across recently called Native Instant Space Switching on macOS.
[JM]: And it describes a tool called Instant Space Switcher that allows you to reduce this animation and lag to a point where it is at least near instant, if not fully instant.
[JM]: And when I came across this post, it reminded me of a class of tools that I've seen a lot
[JM]: which are tiling window managers, which I think is much more popular on Linux desktops.
[JM]: It seems like i3 is one that I always seem to come across anytime someone is talking about tiling window managers.
[JM]: And when this topic is raised as it relates to macOS, one of the ones that I see mentioned frequently is one called aerospace.
[JM]: And like most of these tools is apparently inspired by i3,
[JM]: And when you're looking at a readme on some GitHub page, it's really hard to understand like, okay, would this solve problems that I have?
[JM]: Would this be useful?
[JM]: There's a link to a 90 second video that shows some of the ways in which aerospace can be used.
[JM]: And I have to say, it definitely piqued my interest because the person who made this video is showing that
[JM]: among other things, a few different windows, and then picking one up, say, say there are three, one on the left, one of the center, one on the right, and grabbing, say the one on the right, and then dragging it to the middle.
[JM]: And then the one in the middle just pops over to the right.
[JM]: So actually reorganizing the windows on the screen, having the other ones just automatically move based on how you're dragging them.
[JM]: I don't think I've seen a tool do that before.
[JM]: I don't think Moom does that.
[JM]: Maybe it does.
[JM]: But that seemed really cool.
[JM]: That seemed like a feature that
[JM]: Would be really handy.
[JM]: So I'm going to try to carve out some time and give this a try.
[JM]: It certainly seems better than a lot of the things that Apple has heaved over the wall.
[DJ]: Yeah.
[DJ]: Where's our tiling window manager, Apple?
[JM]: There's got to be someone amongst the hundreds of thousands of people that work at Apple.
[JM]: There's got to be some folks that come from a Linux desktop background and miss having a tiling window manager.
[JM]: I don't understand how this is not a thing yet in 2026, but here we are.
[DJ]: Right, right.
[DJ]: In the same way that I don't understand why text edit doesn't include like Vim modes.
[DJ]: Come on.
[DJ]: It just seems obvious.
Yeah.
[DJ]: I would not hold your breath for that.
[DJ]: I can just see Craig Federighi saying, guys, if you like Linux so much, why don't you just use Linux?
[DJ]: You know, there's a Linux distro that runs on Apple Silicon Macs now, right?
[DJ]: This is still Craig Federighi speaking.
[DJ]: I'm sure he's a big fan of Asahi Linux.
[DJ]: I'm just imagining like...
[DJ]: I know Apple doesn't do on-stage presentations anymore, which is sad, but I'm imagining Craig Federighi coming out with that kind of good-natured boyish charm of his announcing Asahi Linux support for the Mac in a keynote.
[DJ]: Here it is, guys, the moment you've been waiting for.
[DJ]: Use Linux on your Macs.
[DJ]: I'm retiring as the head of software at Apple.
[DJ]: Goodbye.
[DJ]: And then the trap door opens and he just falls through it.
[JM]: That would definitely make headlines.
[JM]: Yeah.
[DJ]: Gruber would have something to say about it.
[DJ]: That's for sure.
[JM]: For sure.
[JM]: All right.
[JM]: Moving on.
[JM]: I wanted to call attention to an article that I came across called the Open Source Design Stack.
[JM]: And the author starts out this article by saying that the Web...
[JM]: Thanks to SAS has been turned into a mess of aspiring monopolies, subscription models, yearly price hikes, and AI pivots that literally no one asked for.
[JM]: And goes on to say that design tooling has followed a similar path and says that this article could very well have turned into 2000 words of anti-Figma diatribe.
[JM]: But instead, the author decided to focus on things that you could use that aren't yet another SaaS tool as it relates to applications you can use for design purposes.
[JM]: And this article contains alternatives for Notion that are free and open source that you can self host.
[JM]: There's alternatives for video conferencing.
[JM]: drawing in terms of whiteboarding, prototyping.
[JM]: So if this interests you at all, the link will be in the show notes.
[JM]: And when I came across this article and its clear disdain for what Figma has done to the world of design, I couldn't help but look up the stock price for Figma, which IPO'd a year or two ago.
[JM]: I don't remember exactly when it was, but if I have it right, Figma, when it did its initial public offering,
[JM]: Its share price was $122.
[JM]: It is, as of this recording, trading at south of 19 or down about 88% since its IPO, which is yikes.
[JM]: Not great if you were a or are a Figma shareholder.
[DJ]: That's surprising to learn given the ubiquity it seems to have in the design community.
[DJ]: Like Figma feels like one of those tools you see everywhere and hear about everywhere, at least where design is concerned.
[JM]: Yeah, that is quite a drop since it's IPO.
[JM]: And I suppose the market is saying that it doesn't think that Figma's overwhelming popularity is defensible, I guess, is the story that the market is telling here.
[JM]: I don't know.
[JM]: But clearly it is no longer the Wall Street darling that it once was.
[DJ]: I don't use a lot of design tools, but I was happy to read through this blog post and see these alternatives.
[DJ]: And a lot of them look very impressive.
[DJ]: So it's nice to know, you know, stock price, whatever, unless you're a Figma investor, I guess.
[DJ]: But
[DJ]: As someone who's not generally a fan of individual products sort of taking over a market, you know, we're like, oh, well, everyone uses Microsoft Office.
[DJ]: Everyone uses Adobe Creative Cloud.
[DJ]: Everyone uses Figma, etc.
[DJ]: It's nice to see that there are really robust looking alternatives out there.
[DJ]: Whether they're free or not, free and open source is even better.
[DJ]: But I was happy to see this design stack.
[DJ]: Even as someone who isn't principally a designer, it's just nice to see a flourishing ecosystem of software.
[JM]: Absolutely.
[JM]: And one of the tools the author mentions is Excalidraw, which is a tool I've played with before.
[JM]: And Excalidraw is an infinite canvas whiteboarding tool.
[JM]: And I agree with the author's assessment, which is this is done really well.
[JM]: And it's fully open source.
[JM]: Everything that you create in Excalidraw is saved locally to browser storage.
[JM]: And if you ever find yourself with the need for a whiteboarding tool, I highly recommend giving Excalidraw a try.
[JM]: All right, moving on in other news.
[JM]: After investing north of $80 billion into its metaverse platform, Facebook is shutting down its virtual reality experiment called Horizon Worlds.
[JM]: Effective June 15th.
[JM]: It seems that the platform will still exist in some limited mobile form.
[JM]: But the bulk of it has already started being removed as of March 31st.
[JM]: And it sounds like most of it will be gone by mid-June.
[JM]: And I think only a company that is controlled by a single person could survive something like this.
[JM]: Like only a situation like this where the founder controls essentially the whole company could light $80 billion on fire and
[JM]: And then be like, eh, well, that didn't work, so never mind.
[JM]: And still keep that job, still be the person leading that company.
[JM]: Like, I don't see that happening in any other scenario.
[DJ]: I don't know if that's true.
[DJ]: I mean, $80 billion, that's less money than OpenAI loses in a year.
[DJ]: Although, I'll grant you not that much less, but still.
[DJ]: So...
[DJ]: It's a weird commentary on the state of the tech industry that you can hear about a company spending $80 billion on something and then going, that didn't work, forget it.
[DJ]: Incidentally, being able to say we invested in this, but it didn't work, so forget it is a good thing in general.
[DJ]: It's better than continuing to throw good money after bad.
[DJ]: But it is weird to hear about, oh, Facebook invested $80 billion, which is larger than the market cap of most companies.
[DJ]: in this thing.
[DJ]: And now they're just they're not doing it.
[DJ]: And that doesn't strike me as scandalous.
[DJ]: It just strikes me as right, of course, of course, that happened.
[DJ]: Because again, like we live in a world where open AI is like has the highest mark.
[DJ]: I don't know if they have the highest market cap, they have an enormous market cap, despite not only not being profitable, but losing more money than Facebook invested in the metaverse every year.
[DJ]: It just feels like this whole notion of like, oh, well, you know, fiscal responsibility and whatever.
[DJ]: It doesn't feel like that really exists in this space.
[DJ]: So somehow this news, this news did not come as a shock to me.
[DJ]: I'm not sure this news came as a shock to much of anyone.
[DJ]: That's true.
[DJ]: I don't know.
[DJ]: I've literally never even heard the name Horizon Worlds before.
[DJ]: So I heard Facebook was doing some kind of metaverse thing, and then the next thing I heard about it was that they were shutting it down.
[DJ]: So I don't know who out there was using this, and it was anybody.
[JM]: It's been around longer than you may remember, because Zuckerberg announced it during a live stream in October of 2021.
[JM]: So this is well over five years ago at this point.
[JM]: Wow.
[JM]: And to your point...
[JM]: I think the number of people who actually use this and by use this, I mean, tried it more than once.
[JM]: I can't imagine it was more than a few hundred thousand people, which unsurprisingly does not a great business make when you are spending billions of dollars on trying to make it into something profitable.
[DJ]: I'm going to guess that what really happened, like the real motivation for shutting this down was that after five years, someone pointed out that Second Life still exists.
[DJ]: And Facebook was like, oh, crap, I guess we don't need this thing.
[DJ]: And so then so then they shut it down because like Second Life still out there, still going strong after all these years.
[DJ]: Sure.
[JM]: But no one besides you and me have ever heard of Second Life.
[DJ]: Well, no, that's not true.
[DJ]: There's lots of people that are still running around in there spending whatever the currency of it is.
[JM]: Well, some of the commentary when Zuckerberg originally made this announcement, I think foretold this inevitable development.
[JM]: You mean the commentary that was like, but where is everyone's legs?
[JM]: I mean the commentary where people wrote articles with titles like, Zuckerberg announces fantasy world where Facebook is not a horrible company.
[DJ]: I think I missed that one, but it feels like the kind of headline I dreamed once.
[JM]: in which said article says, The future Zuckerberg went on to pitch was a delusional fever dream cribbed most obviously from dystopian science fiction and misleading or outright fabricated virtual reality product pitches from the last decade.
[JM]: In the metaverse, an embodied internet where we are basically inside the computer via a headset or other reality-modifying technology of some sort, rather than hang out with people in real life you could meet up with,
[JM]: them as Casper the Friendly Ghost style holograms to do historically fun and stimulating activities such as attend concerts or play basketball.
[DJ]: Yeah, I'm finding myself unmoved by the promise of that technology.
[DJ]: But when you talk about living inside the computer, what I thought of first, of course, was Tron.
[DJ]: But in Tron, you didn't wear a headset.
[DJ]: I think you were actually like zapped with a laser beam and you somehow became computerified.
[DJ]: I'm pretty sure that was the original.
[DJ]: So I'm curious if when they were developing the metaverse, if Facebook engineers ever zapped anyone with a laser to try to translate them into a virtual machine.
[DJ]: I know there was the Master Control Program, but then there were those other things that flew around and...
[DJ]: Anyway, there's really good soundtracks to Tron.
[DJ]: I think that's what that should be people's takeaway from this is instead of instead of using Facebook's version of the metaverse, Horizon Worlds or whatever, you should listen to the soundtracks to Tron Legacy and Tron Ares because they're great.
[DJ]: They're both great.
[JM]: You know, if Zuckerberg had just licensed that IP from Disney and created a virtual realm where it was just like the world of Tron, like, yeah, I would have been all about that.
[JM]: They might have actually gotten people to use that.
[DJ]: Yeah, at the very least, it would have been slightly more successful than whatever this silly thing they made was.
[JM]: Well, the good news is he's found some other thing to heap a bunch of money into and then pour kerosene on and then flip matches onto.
[JM]: So I'm sure that'll work out well for Facebook investors.
[DJ]: Oh, what?
[DJ]: Has he gotten into NFTs now?
[DJ]: Is that what they're doing?
[DJ]: Is it NFTs?
[JM]: I think NFTs was part of the whole metaverse thing.
[DJ]: Oh, right.
[JM]: I'm referring to his bold vision for the future in which social media is not really social media anymore, but it's a bunch of AI-generated ads that are delivered to you via an increasingly creepy algorithm.
[JM]: You know, that thing.
[DJ]: Are we 100% certain that at some point in the last few years, Mark Zuckerberg wasn't replaced by a large language model?
[DJ]: I did actually hear that Facebook is testing out some AI version of Mark Zuckerberg that you can interact with, so...
[JM]: Yeah, I think that's because he doesn't want to interact with actual humans.
[JM]: And so the idea is if you're an employee and you have a question or want to run something by him, you run it by the AI version of him so that he doesn't have to deal with it because, you know, that fits.
[DJ]: I mean, he's one of the wealthiest people who has ever existed in the entire history of the world.
[DJ]: So if he really didn't want to deal with people that badly, instead of being the CEO of a gigantic company, he could presumably buy an island and then just live on it.
[DJ]: So I guess what I'm saying is stop inflicting yourself on us, Mark.
[JM]: Well, he already bought most of Kauai, so he's halfway there.
[JM]: But don't worry, I'm sure his creepy Ray-Bans with cameras and microphones built into them will...
[JM]: will end up being the thing that saves Facebook.
[DJ]: It will save Facebook, but at what cost?
[JM]: Okay.
[JM]: All right, everyone.
[JM]: That's all for this episode.
[JM]: Thanks for listening.
[JM]: You can find me on the web at justinmayer.com and you can find Dan at danj.ca.
[JM]: Reach out with your thoughts about this episode via the Fediverse at justin.ramble.space.