00:00:00 ◼ ► I think I have fixed the livestream issue from last week, or at least I have changed a livestream issue from last week.
00:00:09 ◼ ► So last week, in the middle of the show, the livestream cut out, and the reason why it had consumed something like seven or eight gigs of RAM, and the server has eight, and so it got killed for the out-of-memory killer.
00:00:19 ◼ ► And I restarted it, and almost everyone was able to rejoin, and it didn't use nearly as much RAM as it did before.
00:00:24 ◼ ► So it sounds kind of like a memory leak, and it didn't seem related to the number of listeners directly, necessarily.
00:00:40 ◼ ► The server checks with the IceCast server, which runs this, like, private admin interface, and gives this XML file back, and the server, my server parses it, and feeds it back through the user, and updates the page.
00:00:51 ◼ ► Anyway, my theory is that that checked the status request, because it was being checked every, like, 15 seconds by every listener on the stream, if there's any leak in that, that was a pretty aggressive amount of checking, and so that might have resulted in it.
00:01:09 ◼ ► Now, over the course of that, like, the second part of the show, after it was killed and restarted, it still got all the way up to about 1.7 gigs of RAM, where it stayed until a half hour ago, so it stayed there all week with no listeners, until a half hour ago when I restarted it.
00:01:24 ◼ ► So, we'll see how it goes so far. Right now, we are at a little under, let's see, we're at a little under 800 megs.
00:01:32 ◼ ► That sounds high to me, so maybe this isn't solved, but we'll see if it continues to grow. Anyway, the fix that I did was I implemented caching on that status value, so that now my server is caching the results it gets from the IceCast server for about 30 seconds.
00:01:47 ◼ ► So, instead of every listener hitting it every 15 seconds, it'll get one or two requests every 30 seconds.
00:01:53 ◼ ► So, we will see if that actually fixes it. It looks so far like maybe it isn't, but we'll find out.
00:01:59 ◼ ► I thought you were just going to have your server return, like, some number in the ballpark with a random offset that would have saved a lot of, you know, would have solved the memory leak.
00:02:08 ◼ ► Did you test the memory leak by, like, just slamming the IceCast server request endpoint, you know, a million times to see if you can make it grow?
00:02:14 ◼ ► I was going to do that, and then I got busy and forgot. But that was the plan. The plan was to actually simulate that.
00:02:25 ◼ ► The other thing is the IceCast server returns XML. You had an opportunity to actually use XML HTTP requests to return HTML, and you didn't take it.
00:02:48 ◼ ► My favorite thing, I don't know if we have this on the schedule for this week. I looked earlier, and we didn't have it on the question list. But a listener wrote in basically asking, like, how do I learn to build websites like this?
00:03:08 ◼ ► The way you build websites like this is you don't use most of the modern crap that people think you need to use.
00:03:18 ◼ ► Well, you're using some modern stuff, and the modern stuff you're using is called a modern web browser.
00:03:22 ◼ ► Because if you threw this website at Netscape Navigator 3.1, it would die horribly, and it would look like nothing.
00:03:28 ◼ ► So you are actually taking advantage of the modern web. You're just taking advantage of it on the client side, not so much on the thing you write on the server or the source code that returns.
00:03:38 ◼ ► Although inline SVG is pretty fancy. If you were trying to tell somebody back in the '90s that you're going to be doing inline SVGs, they'd be like, "Whoa, is that XML?"
00:03:56 ◼ ► There's so much stuff that you used to, years ago, need jQuery and large frameworks for, or these tremendous piles of horrible CSS hacks to achieve certain effects.
00:04:10 ◼ ► Oh yeah, right, back when it was 256. And these days you just don't have so many of those limitations.
00:04:16 ◼ ► A lot of us still act like we do and still blow it up everything like crazy, but it has all become optional now.
00:04:23 ◼ ► And even though most people choose to still blow everything up, you do have the option not to.
00:04:29 ◼ ► And it turns out you could make a site that looks presentable and that looks fairly modern-ish without using a whole bunch of garbage in it.
00:04:38 ◼ ► Like all those stupid effects people do, everything fading in and animating in and scrolljacking and having this big rich effect, you don't need that.
00:04:47 ◼ ► Nobody really wants that. All that is doing is wasting everyone's time and bandwidth and processor power.
00:04:58 ◼ ► As some people pointed out, because the site is so simple, both organizationally but also in the markup, you can view source on it.
00:05:06 ◼ ► It's the old days and you can learn by looking at the source. If you view source and you say, "Imagine that," then you would see the inline SVG's, then maybe you'd learn what SVG's are.
00:05:14 ◼ ► Maybe you see, if you learned HTML way back in the day, and you view source and you see elements like header and article, you're like, "Wait a second. What the hell is the article element that you learned about HTML5?"
00:05:25 ◼ ► And you will actually learn some modern web stuff by looking at it, but you'll also learn that it's not rocket science to make it a reasonable site.
00:05:33 ◼ ► I think the site also avoids a lot of complexity by, do you have any media queries in the CSS at all? I forget.
00:05:40 ◼ ► It's generally not responsive in the sense of sensing the size of the device that it's on and rearranging itself.
00:05:54 ◼ ► And like I said on the store page, which probably won't be up by the time you listen to this in the far future, I use Flexbox there as a sort of half-assed way to get responsiveness out of it where things will rearrange on a smaller screen.
00:06:09 ◼ ► Beyond that, it's about as simple as a website can be, and I think that's instructive because in the old days you could go to any website and view source and learn a lot about it.
00:06:16 ◼ ► And these days, if you go to a website and view source, you'll run away screaming and you won't learn anything.
00:06:20 ◼ ► Speaking of that, I wanted to help out with something. I think it was Twitter. Someone was looking into eBay port scanning people's computer when they go to the web browser. Did you see that story?
00:06:32 ◼ ► So, I didn't dig too far into it to figure out what the deal is entirely, but when you pull up a web page, it can make requests to other URLs through the magic of Ajax we were just talking about.
00:06:52 ◼ ► You think, "Why would a web page try to make a request to my computer? What is it trying to do?" Well, that's essentially what a port scan is because you can put port numbers in the URL and you can, if you want, make requests to localhost at various port numbers to look to see if there's anything listening on them.
00:07:08 ◼ ► And that's what eBay does, and it reports the results back to some other random server. There was a big investigation into this thing, yada yada.
00:07:16 ◼ ► But that's not... I'm setting that aside. I think they're doing it for browser fingerprinting or to check for malware. There's some third-party thing that this is part of.
00:07:35 ◼ ► They don't just have a minimized version of it. It's reobfuscated to make debugging across multiple requests more difficult, and it's got this very janky encryption but not really encryption, obfuscation of the data into these strings that are hashed and XORed.
00:07:51 ◼ ► It's like we used to hear Skype used to be, like the Skype application, like the executable itself was "encrypted" or "scrambled," and all sorts of things you can imagine someone doing in the '80s to try to hide weird stuff from somebody, most of which is not particularly cryptographically secure, but all of which is just that makes it extremely annoying, getting back to the point I was trying to make, to learn anything from it.
00:08:14 ◼ ► Because the source is indecipherable, and it changes on every page request, and there are reasons to minify code and stuff like that, but this is just like, it's not actually secure.
00:08:25 ◼ ► You can decompile it, step through a debugger, do all that stuff. It mostly just makes it impossible to learn from, and I think that's kind of a shame. That's become the norm.
00:08:33 ◼ ► Good source code that happens to be minified will have a source map in it, and you can unminify it, and people can actually learn from it and stuff like that or use a debugger on it, but doing what eBay is doing really has no excuse.
00:08:47 ◼ ► No, everything you guys are saying is completely true, and the more I think about, particularly with web development, the more I wonder, like, how does somebody get started?
00:08:59 ◼ ► And, you know, when I wrote my blog engine in 2014, like, that was when Node was, at least to me, it was relatively new. It probably wasn't actually that new.
00:09:08 ◼ ► And it was still relatively easy to figure out, okay, how does one write a server in Node, and, you know, what package or packages do you need to do that?
00:09:18 ◼ ► And I feel like since my version of Node is so old and ancient, if I were to even just update my existing blog engine to the most modern version of Node, I bet you I would have to rewrite it entirely from scratch because so much has changed.
00:09:34 ◼ ► And I think at some point I will probably rewrite it, and I might even use John Sundell's, what is it, splash or something? I forget the name of his engine. We'll put it in the show notes.
00:09:49 ◼ ► But he has a Swift-based engine that's a static site generator, or I believe it's a static site generator, and it looks really neat.
00:09:56 ◼ ► But anyways, just imagining what it would be like for someone who has never really done this sort of thing to come up to speed when I was a web dev for a large portion of my career.
00:10:11 ◼ ► And even for me, thinking about coming up to speed on all this seems, like, terrifying.
00:10:16 ◼ ► And I ostensibly mostly know the broader pieces as to how the web is held together. I cannot fathom for a high schooler who is just really trying to figure out how to make heads or tails of all this stuff, how does a high schooler do it?
00:10:30 ◼ ► Not because high schoolers are dumb, far from it. It's just that they don't have the 20 years experience that the three or sometimes more that the three of us have in doing this sort of thing.
00:10:41 ◼ ► Well, I think I mentioned this on a past show, maybe it was, I don't remember, it was some AskATP question, but we are, to varying degrees, blessed to have gotten in on the ground floor of an emerging technology.
00:10:56 ◼ ► But that's not always the case. Most people, no matter what their career is, enter into a field where the technology is mature and is complicated, right?
00:11:05 ◼ ► So like I said, when I first started learning the web, I knew everything about the web because there was so little to know. There was nothing. There was no CSS. There was just HTML.
00:11:15 ◼ ► And you could literally learn it all, and you felt like you had seen every website even if you hadn't.
00:11:20 ◼ ► But that's because it was super young, and it matures. People going into civil engineering, they must feel overwhelmed because they're centuries of knowledge in civil engineering.
00:11:30 ◼ ► They're not getting in on the ground floor. Just to do anything, to literally build a single road going from point A to point B, there's so much you need to know.
00:11:38 ◼ ► And that's even before you get into all the tools and everything like that. And computers and the web are like that now.
00:11:43 ◼ ► You're not coming into a brand new field where a single person can fit the entire thing into the head.
00:11:49 ◼ ► You're coming into a field that's well established, that's got a lot of history and a lot of technology involved, and you can eventually get up to speed.
00:11:57 ◼ ► Viewing the source of a website to learn from it, it's one of the beauties of the web that the web pages are sent to us and are interpreted by our browsers.
00:12:06 ◼ ► And that, for most of the history of the web, has been comprehensible, and you can learn from it.
00:12:12 ◼ ► And the degree to which that becomes less comprehensible makes it harder to learn, unnecessarily harder to learn, because it's in the nature of the web that you are sent the source and it's rendered in a browser.
00:12:21 ◼ ► There's no reason that the advanced technology has to eliminate that. Again, I point out source maps, right? Minification is there for a reason.
00:12:34 ◼ ► But anyway, source maps let you get the real source back to do debugging, and that helps people learn from it and it helps developers develop it.
00:12:41 ◼ ► That's the way it should be. Yes, there are advances and things get more complicated, but you can still learn from the source.
00:12:46 ◼ ► And I think that's the beauty of the web, and we should never lose that by shipping binaries over the web or shipping Java applets back and forth or subverting the web, Flash or anything like that.
00:12:57 ◼ ► I think we're doing okay in general. The war for web standards and everything was much more fraught in the early days of the web.
00:13:05 ◼ ► I think now that the standards-based web is strong enough that it can resist most advances. Yes, it gets more complicated, but it's not so much in danger, at least right now, of some proprietary thing coming and sweeping away the open web.
00:13:21 ◼ ► But bad websites do exist, and bad companies that make bad websites do exist. So we just kind of route around them.
00:13:28 ◼ ► Yeah, like Twitter. All right, let's start with some follow-up, and we should mention again that the ATP Store is back. We have some new stuff.
00:13:37 ◼ ► It is open until June 7th. Now, I make this speech every year, and every year somebody says, "Oh, I forgot. I forgot."
00:13:48 ◼ ► So, listeners, if you're interested in, I don't know, maybe an ATP mug, which is brand new, first time we've offered them, maybe one of the sweet, sweet Pro Max Triumph shirts in black or white, with or without wheels, or perhaps a logo shirt or a hoodie, or my beloved polo is back, or a hat or a pin.
00:14:05 ◼ ► If any of these things are interesting, don't delay. If you're driving right now, that's weird that you're leaving the house, but hey, that's cool.
00:14:11 ◼ ► If you're driving right now, maybe pull over or think about where you're going and think, "Ooh, when I arrive at home, I'm going to go straight to my computer, and I'm going to buy some ATP merch."
00:14:20 ◼ ► So, the ATP Store is back, ATP.fm/store, and there are links to all the different things you can order from Cotton Bureau.
00:14:28 ◼ ► We have had some questions with regards to the ATP mug. It is 14 ounces, which is about 400 milliliters, and if that's not a unit of measure that you care about, then I don't know what to do. Just Google it.
00:14:38 ◼ ► But the ATP mug seems like it will be extremely nice. I haven't actually held one in hand.
00:14:44 ◼ ► The Pro Max Triumph shirts are excellent. Remember, the wheels are a little bit more special, so it's an extra four bucks.
00:14:49 ◼ ► The hoodie is extremely comfortable. The logo shirt, the classic logo shirt, is great. I love the polo for back when we went to work.
00:14:59 ◼ ► So, please, if you're willing, go to ATP.fm/store and get yourself some cool swag, some cool merch.
00:15:07 ◼ ► Remember, we are going to be launching a membership thing eventually, but we don't know when, so just keep that in mind if you are trying to apply your funds in a specific place.
00:15:21 ◼ ► This is a great year because if you forget, you're like, "Oh, I forgot. I wanted to order a shirt, but I totally forgot."
00:15:41 ◼ ► Moving on, we have some follow-up. Nick Donnelly wrote, "How are you guys not terrified to use clipboard managers?
00:15:48 ◼ ► How can you be sure that they're not feeding all the passwords back to some server somewhere, changing that Bitcoin address to their own, or doing something else with or without the developer's knowledge?
00:15:58 ◼ ► With password managers, which are usually made by bigger companies, clipboard managers must be about the richest target possible for hackers."
00:16:06 ◼ ► The only remotely secure way for this to work is if it's built into the OS, in Nick's opinion.
00:16:14 ◼ ► You know, this is the same sort of thing, like same sort of conversation we had last episode or whenever it was.
00:16:28 ◼ ► And I don't know about everyone else, but that cup runneth over these days about things I'm willing to stress out about.
00:16:37 ◼ ► And if somebody is going into my clipboard manager and stealing stuff, like, that sucks.
00:16:42 ◼ ► It sucks a lot, but I just don't have the bandwidth or the energy to stress out about that.
00:16:50 ◼ ► It is certainly a big target in the way that, again, yeah, a password manager is also a big target for hacking.
00:16:55 ◼ ► I think one of the things that helps a lot here, first of all, you have just long-standing trust.
00:17:01 ◼ ► You have these clipboard managers are generally made by pretty long-standing developers.
00:17:13 ◼ ► But for the most part, there's a small handful of them, and they're used by a lot of people.
00:17:17 ◼ ► Now, one area that really helps here, the Mac is a platform that has, in some ways, less security than iOS,
00:17:32 ◼ ► Little Snitch is a local firewall-type thing that anytime an app tries to connect out to the network,
00:17:37 ◼ ► you can get an alert, and it will tell you which app is connecting to what, and you can block it or allow it or whatever.
00:17:43 ◼ ► And because of the prevalence of tools like that among the super paranoid or super nerdy,
00:17:48 ◼ ► any popular-ish app that's going to be calling home for any kind of regular purpose, people are going to notice.
00:17:55 ◼ ► One of these apps, like Little Snitch, is going to uncover that, and people will know and they'll talk about it,
00:18:03 ◼ ► And none of these reputable Mac developers who have been doing these things for 10 years or more
00:18:11 ◼ ► So as long as you can trust the vendor, trust the maker of the software you're using to be remotely reputable,
00:18:19 ◼ ► and if they've been around a while, and if a lot of people seem to use it, who seem to know what they're talking about,
00:18:29 ◼ ► if they haven't already emailed us while I was talking, many of the good clipboard managers will also detect
00:18:34 ◼ ► whether you're copying something from a password manager, and will either not store it at all,
00:18:40 ◼ ► or will automatically reset it after a certain amount of time, or they'll store it as the top-most item,
00:18:48 ◼ ► So there are special considerations that many of the clipboard manager apps make for password in particular,
00:18:54 ◼ ► to make it a little bit more secure, and make it so that you aren't accidentally going to reveal a password
00:18:58 ◼ ► as you display your stack of clipboard history, if somebody's looking over your shoulder or something.
00:19:03 ◼ ► Anyway, so that is certainly an area to be concerned about, but fortunately on the Mac,
00:19:08 ◼ ► we've been working with such a wonderful, nerdy power user base, and tools like LittleSnitch,
00:19:19 ◼ ► I mean, it's kind of the same way of like, the only way to be secure if it was built into the OS,
00:19:33 ◼ ► That has happened in the past, where an app like BitTorrent client gets some malware inserted into it or whatever,
00:19:44 ◼ ► but it turns out they fell victim to hacking, and so did you trust that they could defend themselves from hacking?
00:19:50 ◼ ► Again, with things like Apple and Microsoft, you trust that, A, they're not going to do something malicious,
00:20:01 ◼ ► So those things that Marco was talking about, like excluding password manager apps and being smart about passwords,
00:20:06 ◼ ► that's what distinguishes a good clipboard manager from just sort of a middle-of-road one,
00:20:23 ◼ ► when it detects something that looks like a Bitcoin address, you might not be able to catch that.
00:20:36 ◼ ► you'd probably hear about it on our show, but most people don't listen to tech podcasts, right?
00:20:40 ◼ ► So in the end, you're at the whim of a lot of people who do a lot of things that you can't control,
00:20:51 ◼ ► just chasing your own tail about all these different threats in the world, is to try to be sensible.
00:21:04 ◼ ► You don't have to be checking the news every day, but you should be assured that when something happens,
00:21:21 ◼ ► "That thing I installed on your computer is a..." We get along the way we get along, right?
00:21:26 ◼ ► So I don't think clipboard managers are inherently any more scary than any other software
00:21:33 ◼ ► And the final bit here is that everything we're talking about is part of what Apple is trying to help with.
00:21:44 ◼ ► and a lot of those security measures are difficult and annoying, and they're not a cure-all.
00:21:49 ◼ ► The thing with the BitTorrent client that got infected with malware, that was a signed application.
00:21:53 ◼ ► I forget if it was notarized or not, but they don't cure everything, but they sure help.
00:21:59 ◼ ► It used to be that when you downloaded something, that the developer would have a checksum on their website
00:22:10 ◼ ► In the end, it can't stop everything, but it helps the chain of trust between you and this developer
00:22:14 ◼ ► that you ostensibly trust that what you're getting from them is what they are giving you,
00:22:19 ◼ ► and the Mac App Store helps there as well, and then iOS's entire end-to-end system of making sure
00:22:31 ◼ ► So, Nick, the next time you are annoyed by some security thing or some limitation of the App Store,
00:22:52 ◼ ► I saw this and thought of you immediately, John, because it looks like somebody has now made
00:23:00 ◼ ► a better hard drive mount for the Mac Pro's internal SATA port than the one that you bought at half the price.
00:23:13 ◼ ► But it's fascinating to me what this is. So to refresh everyone's memory, this is a bent piece of metal
00:23:22 ◼ ► That's basically it. Like, it's not, you know, it is a physical device, and then it comes with some cables
00:23:26 ◼ ► that connect to SATA connectors, right? And I didn't want to buy it, and eventually I bit the bullet,
00:23:31 ◼ ► and I bought the one from Promise Technologies for $400, but the $400 thing came with an 8-terabyte hard drive,
00:23:38 ◼ ► which is not a $200 value. But either way, it was very expensive, but eventually I just, like, I just got to do this, right?
00:23:44 ◼ ► I gave up waiting for someone to make a cheaper one. Now this one comes out. It's from Sonnet.
00:23:49 ◼ ► It's called the J3i. The Promise one was the J2i, which is weird, because as far as I'm aware,
00:23:55 ◼ ► Sonnet is not the same company as Promise. But if you look at the product, it looks exactly the same as the
00:24:02 ◼ ► Promise J2i, except a couple of minor differences. This one has room mounting points for a 2.5-inch drive
00:24:08 ◼ ► that you can inherently attach to the USB port inside your Mac, right? But otherwise, if you look at the metal
00:24:13 ◼ ► that makes up this thing, it looks the same. And it's like, is there just one, like, the company that makes
00:24:19 ◼ ► the Promise J2i thing, is it just selling its manufacturing capacity to Sonnet, and then Sonnet is taking
00:24:25 ◼ ► less of a profit margin and not including the hard drive? Like, it's literally the same thing. Like, you know,
00:24:31 ◼ ► down to the millimeter, if you look at it, except for maybe the bottom part where the 2.5 is. So I don't understand
00:24:36 ◼ ► how the supply chain and manufacturing works. Like, we all know that, like, when you buy things, especially
00:24:42 ◼ ► electronics, a lot of times multiple companies sell you essentially the same electronics wrapped maybe in a
00:24:47 ◼ ► different plastic case. Or maybe it's literally the same plastic case painted a different color or stamped with
00:24:51 ◼ ► a different stamp. That's just how the world works. But it's weird to see it in the Mac for such a strange little
00:24:55 ◼ ► thing like this. Like, you would think that any company like Sonnet or whatever could make their own bent piece
00:25:01 ◼ ► of metal and sell it for 200 bucks, but make it cheaper or make it plastic, right? We have people 3D printing
00:25:08 ◼ ► these things, right? It seems like the technology to make a bracket essentially for your computer, you could make
00:25:15 ◼ ► it, but instead they're selling the exact same thing, which it's high quality. Like, it's over-engineered for what
00:25:21 ◼ ► it's supposed to do. It seems like if you, you know, what I was waiting for is someone to sell the $50 one, the $70
00:25:27 ◼ ► one, right? I'm glad I got the fancy one because it looks nice with my computer. And this one has red cables, which
00:25:32 ◼ ► I don't think would go with the interior decor of my computer. But yes, I totally would have bought this one if it
00:25:38 ◼ ► had existed at the same time as the $400 one. Even though $200 for a bent piece of metal is not that much more
00:25:46 ◼ ► attractive than $400 for an 8TB hard drive and a bent piece of metal, still it's half the price. And I would have
00:25:52 ◼ ► had to probably buy another hard drive to go in there, but I can probably get an 8TB hard drive for less than $200.
00:25:58 ◼ ► I don't know, I haven't even shopped around. Anyway, this exists and it's weird, but it's not exciting for me
00:26:04 ◼ ► and it's not sad for me because I've been there, done that, it's in my computer, it's installed, I'm fine, I've moved on.
00:26:10 ◼ ► Give me one moment to restart the Icecast server, one second. Did it run out of memory again? Yes.
00:26:17 ◼ ► Alright, I just changed a setting that I think will fix it. Well, it has a chance of fixing it. There's like a
00:26:23 ◼ ► per-client buffer setting that I had set pretty high, so I brought it now back down to the default value.
00:26:29 ◼ ► What was pretty high? So before it was 5MB per user and I brought it down to the default value of 128K per user.
00:26:38 ◼ ► Yeah, okay, it's live, we're live again. Sorry everybody. We did it. You've all got much smaller buffers everybody.
00:26:53 ◼ ► Ever since the beginning of the show I've been kind of just keeping this little, quick little solver calculation of
00:26:58 ◼ ► basically bytes per listener and it just keeps going up. So there does seem to be some kind of leak-like behavior here.
00:27:06 ◼ ► I think by lowering this buffer value I can probably at least bring it down to a level where it might not be noticeable.
00:27:12 ◼ ► Let me give you something that you can and probably should clip from the released version of the show.
00:27:22 ◼ ► Actually I think tabs are probably the right answer. Oh, come on. We've had this talk already.
00:27:28 ◼ ► I know, I know. Anyways, the point is I typically do ATP-related browsing in Chrome. It's one of the few times I use Chrome.
00:27:36 ◼ ► And there are reasons for that that are uninteresting. But suffice it to say I was looking at this Sonnet Fusion link on MacRumors in Chrome.
00:27:43 ◼ ► I realized, holy crap, there are ads festooned all over this page. But I'm running my piehole. Why is that?
00:27:53 ◼ ► I deleted those nodes from the DOM when I put this thing in the tab because I was annoyed at them blinking at me.
00:27:59 ◼ ► It's so bad. So I thought to myself, well that's weird. Why is the piehole working? And so while you were futzing with the livestream, I went over and looked at the piehole and the piehole is working.
00:28:11 ◼ ► Well, so then I went to Safari, which is the browser that we should use and that I normally use.
00:28:25 ◼ ► I know. However you describe it, I don't know if that's accurate, but I know that Chrome definitely has its own internal DNS cache.
00:28:33 ◼ ► And it would certainly appear as though it falls back onto some Google DNS server or something like that.
00:28:43 ◼ ► Or something along those lines when it can't get a result from the local server. Something is going on.
00:28:48 ◼ ► It does honor, it doesn't totally do it because when I was putting in the private IPs for ATP.fm when we were doing the site, it honors Etsy hosts on my computer.
00:28:58 ◼ ► So maybe, does piehole give back no result or does it give back a bad result like 127.001?
00:29:04 ◼ ► I understand the question. I don't recall. I want to say it gives back 0.0.0.0, but I am not confident I'm correct about that.
00:29:12 ◼ ► Yeah, because if it gives back no result, then Google might fall back and say, "Well, if the authoritative DNS server on the network is saying it doesn't know what this is, let me check my servers."
00:29:28 ◼ ► Anyway, I just thought that was mildly amusing because for a second there I was like, "This isn't a big deal."
00:29:34 ◼ ► And then I finally tried loading the exact same URL in Safari and sure enough, it looks great.
00:29:40 ◼ ► All right. Are we all good with the programming now? Marco, would you--no, I guess we all three have had one now.
00:29:48 ◼ ► No, so if it actually kept five megs per user, that would be five gigs when we have a thousand listeners.
00:29:55 ◼ ► So that would actually get pretty close to what it was using. So that could have been the reason.
00:30:01 ◼ ► How do we have so many live listeners? Remember we used to have like a hundred people listening live?
00:30:18 ◼ ► But regardless, I think the regular common amount of live listeners we have is usually around 400.
00:30:30 ◼ ► And before it was saying like 900, so maybe it was keeping connections around for a very long time.
00:30:59 ◼ ► If it goes larger than this value, then it's truncated, and any listeners on it will be kicked off the stream.
00:31:19 ◼ ► So by shortening it down, I basically have like made it reap the resources for dropped off listeners much faster.
00:31:36 ◼ ► is that when I stopped the stream, it lost its source, and that queue probably just paused.
00:32:21 ◼ ► And so this makes a lot more sense if this is the way it's treating connections and listeners in the queue and everything.
00:32:46 ◼ ► I look out my window, and there's two blue circles rolling down where the road should be
00:44:53 ◼ ► So I will put a link in the show notes to the one thing that I have read about Joe Rogan,
00:45:42 ◼ ► But also part of it is something that we got called out on by a couple of people last episode,
00:45:47 ◼ ► is that we have the luxury of not knowing that one of the most popular podcasters in the world
00:46:04 ◼ ► and we can be blissfully unaware that there is someone out there talking to millions and millions of people
00:46:11 ◼ ► In fact, people that we would all recognize as bad. Alex Jones, we all know him, right?
00:46:16 ◼ ► He's terrible, right? Joe Rogan has him on the podcast, and his buddy old pal with him,
00:46:33 ◼ ► but I do know that his show seems to have lots of aspects to it that are extremely harmful, let's say.
00:46:46 ◼ ► that we can afford to not know about it, and we can afford to do an entire episode of a show
00:46:54 ◼ ► And so our ignorance is not necessarily an excuse, but it is a fact, and it is part of the whole thing.
00:47:01 ◼ ► In the same way that Joe Rogan can have people on the show and be old buddy, old pal with them,
00:47:06 ◼ ► and just hang out and talk like two dudes, because everything they talk about doesn't impact them in their position,
00:47:12 ◼ ► that's the same way that we can manage to talk about the business of podcasting and never actually mention Joe Rogan.
00:47:20 ◼ ► And the second thing is, say you're listening to this now, and you listen to Joe Rogan,
00:47:23 ◼ ► and you're saying, "Hey, are you saying I'm a bad person because I listen to Joe Rogan?"
00:47:26 ◼ ► Again, I don't know. I don't listen to his show. For all I know, he does good things and bad things, right?
00:47:31 ◼ ► But I do know that some of the things that he's done should make you maybe think twice about it.
00:47:38 ◼ ► Marco and I both listen to Howard Stern, who has at various times done some very terrible things, right?
00:47:43 ◼ ► No person is entirely good or bad, but it does behoove you to, if you're going to listen to a podcast like Joe Rogan,
00:47:51 ◼ ► to be aware that some of the things he does and says are harmful to people, maybe not you, but to other people.
00:47:57 ◼ ► And in general, say you don't know anything about somebody like, "Well, I don't even listen to that show. I don't know anything about him."
00:48:02 ◼ ► So I can just wipe my hands of it and say, "Well, since I never listen to the show, I'm not going to offer any opinion whatsoever on Joe Rogan."
00:48:08 ◼ ► Because how can I if I don't listen to the show? Wouldn't it be unfair of me to say anything about Joe Rogan?
00:48:12 ◼ ► Or would it be unfair for me to read this article and somehow believe bad things about Joe Rogan?
00:48:19 ◼ ► One of the things that I think is useful to keep in mind is if there's someone in the world who is doing something to harm a particular group,
00:48:25 ◼ ► and that group tells you, "Hey, this guy is saying and doing things that hurt us," it's okay to believe them.
00:48:31 ◼ ► It's okay to say, "Oh, I don't listen to the show, but these people over here say that this guy is doing and saying things that are harmful to them."
00:48:43 ◼ ► There's not a vendetta out to get Joe Rogan because this marginalized group, this incredibly powerful marginalized group,
00:48:49 ◼ ► you know the incredibly powerful lobby of the most downtrodden group is out there trying to stop the most powerful podcaster in the world.
00:48:58 ◼ ► Believe them. So I do believe them. They tell me he's doing and saying things that are harmful to them, and I don't think that's great.
00:49:04 ◼ ► And so I think if you listen to Joe Rogan and enjoy it, maybe read this article, think more critically about what you hear,
00:49:10 ◼ ► listen to what other people have to say about Joe Rogan. Maybe it will change your opinion, maybe it won't.
00:49:15 ◼ ► We're not saying you're automatically a bad person for listening, but it seems like Joe Rogan might be kind of a bad person.
00:49:35 ◼ ► First favorite, of course, is spending his own money. Second favorite activity in the entire world is what, Marco?
00:49:46 ◼ ► Because my poor, adorable, even though it's mostly stationary these days, it's too slow.
00:49:53 ◼ ► It's too slow, too few ports. I think I'm convincing myself to get a 13-inch MacBook Pro.
00:50:02 ◼ ► And let me tell you that I haven't looked at any of the configurations in at least last week, which, given my horrible memory, means I have effectively never looked at them at all.
00:50:11 ◼ ► So I thought we could go kind of sort of John with the Mac Pro style and just go through the configuration page and have a small argument about what configuration I should buy.
00:50:29 ◼ ► Are you going to actually do it, or are you going to waffle for a while and then never do it, and then we'll talk about it again in six months?
00:50:36 ◼ ► Have we skipped over the part where we tell you maybe not to spend money right now, or is it we're just skipping that and we're just saying, "Look, that ship is sailed. It's going to happen."
00:50:45 ◼ ► No, spend money. I don't care. No matter how destitute you are, nobody deserves to use that 12-inch computer the way you're using it.
00:50:52 ◼ ► I know you're like, "Okay, well, finally now it's too slow." It has always sucked. You've just tolerated it because you liked how small it was.
00:51:04 ◼ ► So you might as well get a better computer for your actual work that you actually do all the time.
00:51:08 ◼ ► Well, and so the genesis for this, to more directly answer John's question, is, well, first, yes, you are correct.
00:51:18 ◼ ► And you can tell listeners because of how many sponsors we have in this particular program today.
00:51:23 ◼ ► But that being said, there is a chance that I might need to record, actually a better than halfway decent chance, that I might need to record the WWDC show from Not My House.
00:51:50 ◼ ► I might be going to the beach, which is to say I would be in a similar style to what Marco would potentially be doing, which is to say we will take over a home, just the four of us.
00:52:12 ◼ ► But yeah, if the beach is jam-packed, then we won't be going to the beach, but I think it would do all four of us a lot of good to just have a change of scenery.
00:52:26 ◼ ► Yeah, and to be clear, what I'm doing next week is going to rent a house in a beach town, not to be in crowds.
00:52:38 ◼ ► Second of all, if we are, I'm not sure the beach will be open. And third of all, if it is open and it's jam-packed, then we won't be going to the beach, like not to the physical beach itself.
00:52:51 ◼ ► So, yeah, don't even get me started on all this, because I have had some very tense conversations with both sides of the family about social distancing and what that actually means.
00:53:00 ◼ ► Anyway, so if I decide to buy a 13-inch MacBook Pro sometime before we leave, which would be at the end of next month, and I want to make sure it has time to deliver before we leave toward the middle to end of next month,
00:53:14 ◼ ► and if I want to make sure everything is squared away, there's a lead time on getting these devices, so I need to pull the trigger this week.
00:53:23 ◼ ► So I don't know if I'm going to buy it tonight, but I want to, by the end of this episode, hopefully quicker rather than longer, I want to be able to at least know what it is I should buy.
00:53:32 ◼ ► So what am I going to do with this computer? So occasionally, well, if it's getting used at all, it's more than likely going to be used for Xcode development of apps that are not tiny but are not terribly large either.
00:53:42 ◼ ► I mean, this is not, you know, to pick on a big company that's based here in Richmond or has a huge establishment here in Richmond.
00:53:49 ◼ ► You know, it's not the Capital One app or anything like that. Like, it's Vignette, it's Peek-a-View. These are not massive apps. They're probably not even as big as Overcast, I would assume.
00:53:56 ◼ ► But. Are you using Swift UI? No, I'm not using Swift UI, but I am using a lot of Swift.
00:54:01 ◼ ► Well, yeah, either way, if you're using a lot of Swift, you're going to need a lot more processing power than I use.
00:54:08 ◼ ► Anyway, so in any case, I want to be able to do Xcode development with a reasonable quickness, and I'd like to be able to do, like, I don't know, maybe more than one thing at a time. That would be kind of neat.
00:54:20 ◼ ► So I would like to be able to do that. I would like to be able to use it to do, like, basic, you know, photo or video stuff.
00:54:29 ◼ ► Probably not, like, Final Cut Pro necessarily, but, like, basic photo or video stuff. You know, say if we're on vacation, I want to process, you know, some photos very lightly. I'm not talking, like, Lightroom or Photoshop or anything like that.
00:54:39 ◼ ► Just stuff you can do in, like, Photos or Acorn or Pixelmator or whatever the case may be.
00:54:44 ◼ ► So there's really not that much that I need from it, truth be told. I really love my 2018 iPad Pro.
00:54:52 ◼ ► I love my iMac Pro, so this would definitely be the "if I can ever leave the house to do work again" machine, and probably not that much else.
00:55:02 ◼ ► So I don't think I need anything that's extraordinarily powerful. But that being said, I don't change my laptops like they're my underwear, Marco.
00:55:11 ◼ ► And so I would like to have something that lasts, you know, a few years. Preferably at least two to three years, if not more.
00:55:25 ◼ ► And I don't think I want a MacBook Air, but maybe we should explore that very briefly to begin. Do I want a MacBook Air?
00:55:34 ◼ ► What you're looking for here, to me, the only, you know, you just gave a whole bunch of justifications to try to alleviate, like, the truth is you want a new computer and you can afford it.
00:55:45 ◼ ► What you don't want is a whole bunch of people criticizing you and you feel bad that you can afford it, you feel bad that you don't really need a laptop, but you're gonna buy one anyway,
00:55:53 ◼ ► because you feel a little bit bad about that, but the reality is you're gonna buy it and you're gonna love it and that's that.
00:55:57 ◼ ► And you can afford it and it's fine, so we're gonna do it. Now the only question is then, like, in your case, what you're looking for is not to maximize value.
00:56:12 ◼ ► 'Cause you do care about money to some degree, but you also can spend good money to get a good computer if it's warranted.
00:56:19 ◼ ► It's not about, like, squeezing every dollar to fit below a certain threshold. It's about, like, you wanna make sure you're spending money wisely, right?
00:56:28 ◼ ► And then secondly, you have the incredible luxury here that this is not your primary or only computer.
00:56:35 ◼ ► Because it is not your primary or only computer, you can not go super high-end on things like getting the absolute largest SSD possible, which can be fairly expensive,
00:56:46 ◼ ► or getting, like, the absolute max specs on everything. You don't need it to do primary computer duties all the time.
00:56:54 ◼ ► You need this as a secondary computer that you're gonna use light to moderately on a light to moderate basis, probably,
00:57:01 ◼ ► like, it's not gonna be, you're not gonna be, like, running Final Cut Pro encodes as this has your only computer every day, every workday that you're gonna use it.
00:57:11 ◼ ► You are doing, though, things where CPU performance matters, and this is why you're feeling the pain of your current awful 12-inch computer.
00:57:20 ◼ ► And the reason why, like, the MacBook Air is an exceptional value in Apple's lineup right now.
00:57:26 ◼ ► It is a very good sweet spot, but one area where it falls down is that CPU power is not great.
00:57:33 ◼ ► And also, like, when you spec it up to try to extract more CPU power out of it, it gets very close in price to the well-specced 13 inches.
00:57:42 ◼ ► And it's very similar in size and weight. It is a little bit lighter, it feels a little bit better because of that teardrop shape and because of the slight lightness,
00:57:49 ◼ ► and it doesn't have a touch bar, which is nice. I consider not having a touch bar a feature of the Air, not a shortcoming.
00:57:56 ◼ ► So the Air has a few things going for it, but ultimately, because you're doing things where performance does matter,
00:58:07 ◼ ► Now, among the 13-inch Pro line, there's nothing that matters below the 1799 config, the first one that has four ports.
00:58:17 ◼ ► All the two-port models, skip them. If you were going to get a two-port one, just get an Air. It's a better computer than the two-port ones.
00:58:24 ◼ ► So it also has only two ports. It also has worse processor performance than the four-port one.
00:58:29 ◼ ► So you might as well get the Air if you're going to go the two-port route, because it's probably a better value for the money.
00:58:36 ◼ ► So what you want, though, is probably a four-port one. So let's go into that. You can go 1799 or 1999.
00:58:47 ◼ ► Oh, you got a terabyte. Okay. I'm going to suggest you get a terabyte. I bought a few back in the 2012 era.
00:58:52 ◼ ► I bought a couple that had 256, and I regretted it heavily. That was a pain in the butt for any kind of developer work,
00:58:58 ◼ ► because you're constantly downloading Xcode beta. Now you're out of space. It was a pain.
00:59:03 ◼ ► 512 was where I went for a while, as this is what I should get as a minimum for a laptop.
00:59:15 ◼ ► And a terabyte's really nice, because not only is Xcode and developer stuff and everything just getting larger,
00:59:22 ◼ ► but also in your case, you are going to have this on family trips, and you do tend to bring an entire library of video content on trips.
00:59:34 ◼ ► I think I mentioned last time we talked about this. So I've been getting one terabyte the last couple years on my many laptops,
00:59:40 ◼ ► and usually I have roughly three or four hundred gigs free, which tells me that I'm glad I got the terabyte and not the 512.
00:59:55 ◼ ► And I'm looking at it right now, and it's about half full. So I'm using just back of the napkin around 256 gigs.
01:00:03 ◼ ► And I can't remember a time outside of maybe when I was putting a whole bunch of media on it or something like that.
01:00:15 ◼ ► But I'm slightly leaning toward the one terabyte model for most of the reasons you just said, and also for longevity.
01:00:24 ◼ ► Because again, as much as I snark about your laptop buying tendencies, the truth of the matter is,
01:00:28 ◼ ► however long you do or do not keep your laptops, I would like to be able to keep this one for several years.
01:00:34 ◼ ► And even once I'm done with it, like for example this adorable, once I'm done with it, it will replace the MacBook Air that Aaron has that's been underwater 17 times.
01:00:53 ◼ ► Like if you run out of SSD space, you can't expand that. It's like you can fill it up and then at a certain point, well you're just full now. Period. Hard wall.
01:01:03 ◼ ► If you're running low on RAM, or if you're running low on processor power for a task you're doing, the computer just kind of slows it down.
01:01:10 ◼ ► You can still do things. It's much more of a soft limit. You can still do things, it just might be a little bit slower at it.
01:01:17 ◼ ► But if you slam into a disk size barrier, you're just screwed. There's just nothing you can do about that unless you get into external drives which suck on laptops.
01:01:25 ◼ ► Combine that with the fact that the 512 to 1 terabyte upgrade is only 200 bucks, to me that's a no brainer.
01:01:32 ◼ ► And if you look at the specs of this base 4 port model, there's a couple upgrades you can do.
01:01:37 ◼ ► You can upgrade the CPU for 200 bucks, you can upgrade the RAM for 400, we'll get to that in a minute.
01:01:41 ◼ ► Or you can upgrade the SSD for 200, to me, no question, if you're only going to upgrade one thing on this computer, upgrade the SSD to one terabyte.
01:01:47 ◼ ► Because 200 bucks to give it a lot of headroom for a component that can never be upgraded later and that is a hard wall when you hit it, that to me is easy no brainer.
01:02:03 ◼ ► That's what I was going to ask you about when I was going through this configurator, I didn't know what your storage needs were, but then I saw that one terabyte was 200 bucks extra, it's like a no brainer.
01:02:20 ◼ ► 1799, so I'm saying either way, whatever you're going to get, you want that one terabyte upgrade.
01:02:28 ◼ ► It looks like it's otherwise the same, right? It's the same processor, same graphics, same RAM, yeah everything else is the same, it's just an extra configuration.
01:02:37 ◼ ► What's good about that is that because they're having it as a dedicated SKU that's the same thing but just a bigger hard drive, means that stores will stock this configuration.
01:02:46 ◼ ► If you wanted to change nothing else about this, you can get that 1999 configuration and you could have it like tomorrow or whatever, in a few days instead of a few weeks.
01:02:55 ◼ ► So that actually could be very valuable. Also, when you buy one of these stock configurations like this, you can often get a little bit off by going to a retailer like B&H or Best Buy or whatever.
01:03:06 ◼ ► A lot of times they'll have like maybe 100 or 150 bucks off. So that's a nice little bonus you can get whenever you're going for a non-customized configuration.
01:03:14 ◼ ► And that's why on my 16 inch, I have the 2799 configuration that I paid like $2450 I think, something like that. I got like $300 off because it was just like some sale B&H was having when I had to replace it.
01:03:28 ◼ ► It was wonderful. So I strongly suggest you consider very heavily just stopping right here.
01:03:35 ◼ ► Just taking this 1999 configuration, the stock one they have, I like it better in silver personally but you can go space gray if you really want to.
01:03:47 ◼ ► Because the only other options for you to upgrade would be if you need more than a terabyte, which you don't.
01:03:54 ◼ ► - Or if you want to get a slightly faster processor, but it's, you know, we're talking like 10% faster. It isn't that much faster.
01:04:15 ◼ ► But, and I mean the adorable is fine, he says with no confidence with 16 gigs of RAM. I think I'm pretty darn sure. Now I'm curious. Is it 16?
01:04:27 ◼ ► - But it seems to me like almost all the arguments you made about SSD storage I could also make about RAM.
01:04:36 ◼ ► And even though the $400 really does chap my hind quarters kind of badly, it's just, especially if I wanted to make this thing last, why wouldn't I check that check box?
01:04:47 ◼ ► - Because it's not your primary computer. Because it's more of like a task focused computer.
01:04:53 ◼ ► Like you're not leaving a million things open on this all the time, 24/7. Like you're not leaving all your stuff running on this.
01:04:59 ◼ ► You're using it like to work at a grocery store or whatever. Like whenever that can be a thing.
01:05:04 ◼ ► You're using this like I'm gonna take out the laptop and use Xcode for a while or whatever.
01:05:14 ◼ ► - And so because you're not doing like heavy long term multitasking on it, I think you'll be fine with 16.
01:05:20 ◼ ► I've had 16 on everything until I think, does my 16 inch have 16? I don't even know. I think it has 32, right?
01:05:32 ◼ ► - Regardless, like you'd be fine with 16. Now is 32 better? Yes. Oh, first time follow up, I have 16.
01:05:47 ◼ ► There is a cost to battery life, but I don't think it's a massive one. Like I don't think you would necessarily notice it most of the time.
01:05:53 ◼ ► So what you're really looking for here is $400 of an upgrade fee. That is a significant upgrade fee.
01:06:00 ◼ ► That is a very high price for what this is. Since you don't necessarily need this, or you don't know that you need this,
01:06:09 ◼ ► there is a strong argument that you shouldn't get it. However, you are right. You can never upgrade it later.
01:06:15 ◼ ► And if it turns out that there's something you need to do with this that needs 32 gigabytes of RAM, yeah, you are just stuck.
01:06:21 ◼ ► Like that is a problem. But I would bet there probably isn't, or that would be rare enough,
01:06:27 ◼ ► that a little bit of swapping to the SSD in those rare cases would be tolerable compared to $400.
01:06:44 ◼ ► So it's going to, this is a big thing. Also, keep in mind, because you don't necessarily need to upgrade anything else,
01:06:51 ◼ ► you're talking about $400 and three and a half weeks versus saving $400 and getting it tomorrow or whatever.
01:07:02 ◼ ► It's actually not as great a difference as you said. So if I order the out of the box 1999 one,
01:07:23 ◼ ► Right. However, that definitely does bump uncomfortably into the, it might arrive when I'm already at the beach timeframe.
01:07:29 ◼ ► And the thing is like, it's $400 plus some extra time, even if it isn't that much extra time,
01:07:42 ◼ ► And six months from now, you probably will forget that you even spent $400 on that upgrade.
01:07:47 ◼ ► Like, so if you do buy it, six months from now, it's like that's long gone and forgotten.
01:08:10 ◼ ► And that's not to say, you know, our listeners out there who are, you know, oftentimes developers.
01:10:06 ◼ ► but especially on something that moves, it seems like it's probably a wise idea to do it.
01:10:33 ◼ ► I feel like there's--oh, and the sticky keys that have happened all the time because butterfly.
01:10:49 ◼ ► Remember, it was like eight bucks to do expedited delivery on the iMac Pro or something like that,
01:11:01 ◼ ► Yeah, I think you should. I mean, honestly, whether you get the RAM or not, that's up to you,
01:11:15 ◼ ► Yeah, it has the touch bar. That sucks. But otherwise, it has everything else that you want
01:11:37 ◼ ► and then weep over having spent so much money on this, but I think it needs to happen, especially if...
01:11:41 ◼ ► The reason I hadn't bought it was because I felt like it was a frivolous and silly thing to do
01:11:47 ◼ ► until I realized I could legitimately need this for my work, and not even in the haha-funny way,
01:12:02 ◼ ► it seems like having only the iMac Pro, which by the way seems to be pretty good right now,
01:12:07 ◼ ► knock on glass, but having only the iMac Pro and not being terribly confident in its backup
01:12:14 ◼ ► does not feel like a great place for me to be right now, especially since I can't just walk,
01:12:36 ◼ ► So it seems like, even though this is a terrible time for me personally to be spending a couple thousand dollars on a laptop,
01:12:53 ◼ ► Yeah, this is an important part of your job. Don't feel bad about it. You need this. Just do it.
01:13:09 ◼ ► Yeah, but you'd have to get very physically close to me to kill me, and that would be a poor choice in this particular day and age.
01:13:20 ◼ ► John, tell me about Microsoft's new Fluid Office document and why it's not the same as that garbage that Apple tried to do 10 years, 20 years ago.
01:13:36 ◼ ► and I mean, I keep reading them, and then I reread them, and I think I understand it, but then I don't quite,
01:13:43 ◼ ► so forgive me if I get a lot of these details wrong, but I think we can talk about it in the historical context that Marco just mentioned to maybe make some sense out of it.
01:13:57 ◼ ► This is another play by Microsoft to move more of its functionality sort of online and to the web.
01:14:05 ◼ ► So these are bits of content that you can imagine being created by the various Microsoft Office applications,
01:14:18 ◼ ► I don't know if these details are correct, but anyway, they have a bunch of apps that make things.
01:14:21 ◼ ► Imagine if you could take chunks of that content and have them live on the web, so it's not like you're saving a Word document to your disk.
01:14:30 ◼ ► Instead, these bits of content are saved to a server somewhere, a Microsoft server somewhere,
01:14:36 ◼ ► and then you can embed that content in any other context in any other Microsoft application.
01:14:43 ◼ ► So if you want to send somebody an email in Outlook and have an Excel spreadsheet in it,
01:15:02 ◼ ► and it will also load that Excel spreadsheet from where it lives on the web and have it appear in your email.
01:15:19 ◼ ► So if someone has been changing that content, you will see the changed content in your email.
01:15:36 ◼ ► So the reason it comes up in the context of OpenDoc, which I'll talk about in a second,
01:15:53 ◼ ► and then you'd launch Excel, and when you're in Excel, you're doing spreadsheet things only.
01:15:57 ◼ ► And then if you decided in a Word document you want a graph from your spreadsheet to appear,
01:16:12 ◼ ► I don't even know how well it worked under the covers in terms of if you emailed that document to somebody.
01:16:29 ◼ ► and this is more web world where Office 365 or Microsoft 365, whatever it's called now,
01:16:37 ◼ ► and the content is wherever you need it to be in any combination that you need it to be
01:16:58 ◼ ► But technologically speaking, it is a modern way to make the application less important
01:17:05 ◼ ► and make it easier to mix and match content that you can make with Microsoft's applications.
01:18:21 ◼ ► and if that document needed to have text, you would use an OpenDoc component of a word processor,
01:18:28 ◼ ► and you could write text in the document, and if that document needed to have graphics,
01:18:43 ◼ ► You would pull in tools, and people would make these tools, and you'd just be working on this one rich document,
01:18:47 ◼ ► and you'd be able to select the best graphics editor, the best graphing tool, the best word processor or whatever,
01:18:57 ◼ ► The document you're working on would be filled with content created by these other tools
01:19:01 ◼ ► that are made by a selection of vendors, and the vendors would compete against each other
01:19:14 ◼ ► you'd always be working in your document, and the functionality would sort of gather around it on the outside.
01:19:25 ◼ ► and it was almost going out of business, and they needed to simplify, and so on and so forth.
01:19:29 ◼ ► But even if none of that had been true, I think the biggest reason OpenDoc was doomed to failure
01:19:40 ◼ ► that hadn't been proved out, but in theory you could say, "I can see how this would be better for users
01:19:51 ◼ ► If you are Adobe, you don't want Photoshop's functionality to be just another competing tool
01:19:57 ◼ ► surrounding this OpenDoc container, and you have to compete with other vendors doing similar things.
01:20:06 ◼ ► and you want to have an application where you go to get all your stuff done and that you pay through the nose for.
01:20:18 ◼ ► They didn't want each one of their little components, their vector drawing tool, their bitmap drawing tool,
01:20:27 ◼ ► they didn't want to have that functionality compete with, say, a dedicated company that just does,
01:20:37 ◼ ► Photoshop has that feature within it, but they didn't want to have to compete one-to-one with a three-person company,
01:20:43 ◼ ► and the only thing they make is the world's best machine learning erase a person from a photo tool.
01:20:51 ◼ ► They want to get you into Photoshop and say, "Well, maybe not every single one of the tools in Photoshop is best in class,
01:20:56 ◼ ► but taken as a whole, Photoshop is best in class for image editing. Therefore, pay us lots of money."
01:21:01 ◼ ► And that, I never heard a convincing explanation from Apple, not in the '90s when I was following all this stuff,
01:21:07 ◼ ► and not in the future, of how Apple was going to sell the rest of the industry on this idea.
01:21:17 ◼ ► but you might be able to make a special purpose tool that just has the drawing tool that people need in this context.
01:21:23 ◼ ► And in this context of OpenDoc, you can compete against that tiny fraction of Adobe's functionality.
01:21:29 ◼ ► But in the end, it was building on top of what was then a single platform thing for a minority platform,
01:21:47 ◼ ► like basically the Rhapsody initiative actually before that, they couldn't get people on board.
01:21:56 ◼ ► And so they had to do the Mac OS X initiative with Carbon that allowed them to port their existing code without having to rewrite it all.
01:22:02 ◼ ► And that was a fairly minor thing compared to, hey, Adobe, stop making Photoshop and instead make,
01:22:11 ◼ ► Can someone tell me what the hell the things were called in OpenDoc that weren't the containers?
01:22:14 ◼ ► Anyway, instead of making Adobe Photoshop application, make this OpenDoc component thingy,
01:22:19 ◼ ► and then you'll be one of a rich ecosystem of things that compete for our attention to work on our documents.
01:22:28 ◼ ► So bringing this back around to Fluid, it's slightly different in that the stuff lives on the web,
01:22:53 ◼ ► If we could make one master Office document application that does everything, we would do that,
01:23:00 ◼ ► So instead, let's try to componentize the content and allow us to mix and match more easily,
01:23:04 ◼ ► and because we're in the Internet age, rather than using object linking and embedding in files
01:23:14 ◼ ► where you can edit on the web, you can edit it locally, you can use the applications that we offer,
01:23:18 ◼ ► and also, by the way, have a third-party story which lets other companies participate in this ecosystem.
01:23:24 ◼ ► But I don't think Microsoft is afraid that someone's going to come in and replace Word or PowerPoint
01:23:30 ◼ ► They just want, you know, whatever, Lucidchart or whatever, some small company to be able to make their tool that factors in,
01:23:37 ◼ ► But anyway, I don't think Microsoft is afraid of getting kicked out of its little thing,
01:23:43 ◼ ► It controls the whole Fluid platform, it controls all the hosting, presumably, all the components,
01:23:49 ◼ ► So there is a third-party story here, but Microsoft in the world of Office applications is still very close to a monopoly,
01:23:56 ◼ ► so I don't think they're, you know, the business model is something they don't have to explain to people.
01:24:02 ◼ ► Assuming I get any of this remotely right, the final thing I'm going to add is that my experience with Microsoft's tools
01:24:09 ◼ ► is that they always strike me as, oh, here's a little miniature version of Word in this context.
01:24:29 ◼ ► it feels heavy and slow compared to the sort of more web-native, born-on-the-web, let's say, Google Docs alternatives.
01:24:37 ◼ ► Granted, Excel may have more features than Google Sheets, and Google Docs certainly has fewer features than Microsoft Word,
01:24:44 ◼ ► but Google Docs feels more responsive, better with multiple editors, more collaborative, faster, lighter, like everything about it.
01:24:52 ◼ ► I don't like the feeling of, here comes Microsoft Word, plop, right into your document.
01:24:58 ◼ ► Oh, I get all the tools in Microsoft Word, all the quote-unquote power of Microsoft Word.
01:25:02 ◼ ► Everything is so slow and just difficult and takes a long time to draw, and scrolling is slow, and it just feels heavy.
01:25:15 ◼ ► Especially back then, that was the era of no RAM and constant hard drive grinding for everything.
01:25:20 ◼ ► So I remember the very few times that I tried, like, I can embed a spreadsheet into my Word document.
01:25:34 ◼ ► The thing is, Microsoft has some assets. It has these applications, it has the tools and features that they, you know, the world values.
01:25:44 ◼ ► They want powerful applications to do these individual tasks, but every time they try to mix them together, it's like, you can't,
01:25:53 ◼ ► There's a reason Outlook for years and years has had this little miniature text editing environment that is not the full-fledged Microsoft Word.
01:25:59 ◼ ► And when you bring in the full-fledged Microsoft Word, even if it's through, like, this little square that is, stuff is hosted on the web,
01:26:05 ◼ ► and it's, you know, like, it just feels heavy. Like, and adding, mixing more of those things together does not make the experience lighter.
01:26:12 ◼ ► It only makes it heavier. Maybe it doesn't make it as heavy as OLE, but it just feels sort of slow and clunky and heavyweight.
01:26:21 ◼ ► It doesn't encourage me to use it, unlike, for example, the experience of using Google Docs, especially in the beginning.
01:26:26 ◼ ► Oh, there's this document, and we can all be in at the same time. Hey, I can see you typing, and I'm typing at the same time.
01:26:32 ◼ ► Look at us. We're typing together. I mean, some of you did that ages ago, but, like, the web version of that.
01:26:36 ◼ ► That is the key experience. That little game loop is the key experience of Google Docs, and the fact that you can add comments,
01:26:42 ◼ ► and you can share, and it's, you know, a reasonable, basic, featured text, you know, word processing application.
01:26:50 ◼ ► And you can embed things from, you know, Microsoft. There's a little drawing thing, and you can embed LucidCharts, like I mentioned, because these are the things I use at work, right?
01:27:00 ◼ ► It does feel heavier when you start adding other stuff, but at no point has it ever felt as heavy as merely using a Microsoft Word document on the web, let alone embedding it in other things.
01:27:11 ◼ ► Now, maybe this fluid stuff is faster. It's a new architecture for multiple edits and syncing changes and all that other stuff,
01:27:17 ◼ ► but based on what I've seen pre-fluid of how Microsoft handles simultaneous edits, of how they handle comments, of how they handle tracking changes,
01:27:27 ◼ ► every aspect of the Microsoft experience, though it may have more features than the Google experience, it always feels heavier and slower,
01:27:34 ◼ ► and I think that is a big problem for a Microsoft to tackle. So I really hope this fluid approach lets them lighten up their applications and improve the protocols that previously they couldn't,
01:27:45 ◼ ► because this in some ways is a little bit of a clean break, because I think the fluid stuff is starting off with very limited functionality and limited context, and will expand out from there.
01:27:54 ◼ ► And if they can implement that in an efficient way, it will actually make everybody's life easier, including my life at work. So I hope they succeed, but I'm not particularly optimistic.
01:28:05 ◼ ► So a couple of interesting things about OpenDoc that I didn't know. First of all, one of the code names was apparently Amber, which is terrifying, because that's the code name for SwiftUI.
01:28:16 ◼ ► And additionally, the OpenDoc subsystem was initially released to run on system 7.5 and later on on OS/2 warp 4. Hell yeah.
01:28:34 ◼ ► They were called components, I guess. I'm looking at the Wikipedia page. OpenDoc components. Containers and components, right?
01:28:46 ◼ ► It was a web browser, an OpenDoc-based web browser. Apple made a bunch of OpenDoc. I don't know if they were components or containers.
01:28:53 ◼ ► OpenDoc things they made to demonstrate the technology, and one of them was a web browser.
01:28:57 ◼ ► This was back in the day when the idea of making a web browser wasn't a Herculean undertaking that you can't imagine.
01:29:04 ◼ ► It's like making simple text or a basic text editor. Oh, that would be a good example application.
01:29:14 ◼ ► It's like the most complicated application I ever had on our computer, basically, in terms of features and legacy.
01:29:28 ◼ ► No one was going to use Cyberdog instead of Netscape or whatever the contemporary actual thing was.
01:29:33 ◼ ► I think it was the time when they thought the web was simple. It's like, "Oh, HTML, paragraph tags, bold, italic. I'm done, right?
01:29:52 ◼ ► Okay. Benjamin Charbaugh writes, "I recently bought my family's first house and I'm doing..." Well, congratulations.
01:30:00 ◼ ► I know that you've talked about liking Eero in the past, but with Wi-Fi 6 becoming more mainstream,
01:30:07 ◼ ► I was curious what you three were doing for your home networking these days. How much bandwidth, what routers, etc.
01:30:25 ◼ ► But the truth of the matter is, it really does work really, really well, and I really do like it quite a bit.
01:30:30 ◼ ► I can never get their naming right, though. I'm trying to figure out exactly what I have.
01:30:35 ◼ ► So I have one Eero Pro and two Eero Beacons, and my house is something like 2,200 square feet,
01:31:04 ◼ ► I can never say that I have any particular qualms about it. Via Wi-Fi, it's more than sufficient as well.
01:31:17 ◼ ► The question is, part of the context of this question is like emerging standards, the new Wi-Fi standards.
01:31:23 ◼ ► The mesh network and stuff like that. But the most important thing for me in my house related to networking is that it be reliable.
01:31:37 ◼ ► All my desktop computers are wired, all my game consoles are wired, my television is wired.
01:31:44 ◼ ► It's only a gigabit, right, because I just have gigabit switches and Cat6 cable everywhere or whatever.
01:31:55 ◼ ► But my Internet connection is a gigabit and my internal house network is a gigabit, so it all basically works out.
01:32:03 ◼ ► I have, since I think I got the free Euro thing when they first sponsored as well, but since then I think I've purchased two complete Euro sets.
01:32:11 ◼ ► So I'm on whatever the most current model is. Mostly because I gave them away to family and I just kept upgrading my setup.
01:32:21 ◼ ► The one thing that the Ethernet cable plugs into and two other things I have plugged in elsewhere in the house.
01:32:26 ◼ ► And that's basically enough to cover my house. It's not as fast as the latest standards are going to be.
01:32:32 ◼ ► I bet I could get even faster signals if I put in more of the base stations just because the way my house is set up and the lead that is in my walls apparently.
01:32:45 ◼ ► But it's good enough. Occasionally, just the other day I was watching video on my iPad in my bedroom and it was Netflix and it was breaking up.
01:32:57 ◼ ► So I did a speed test and it was like 150 megabits. So I was like, "Nope. It's not my internet connection. My Wi-Fi is fine."
01:33:07 ◼ ► Since reliability is the biggest concern for me, I don't anticipate upgrading anything until I have a reason to do it.
01:33:16 ◼ ► Eventually, when Wi-Fi 6 becomes mature and all the products roll out or whatever, I will probably replace my Eero with another Eero system that supports the newer standards and has faster Wi-Fi.
01:33:27 ◼ ► But I'm in no hurry to do that. I basically just want it to work and have sufficient speeds for my needs, which is basically can I stream Netflix from any room in the house?
01:33:36 ◼ ► Do my kids not complain about watching YouTube in their bedroom? If everything on that level is fine, I'm not looking to upgrade it.
01:33:45 ◼ ► So my suggestion for dealing with the house is wire everything that you can wire, because wires are great.
01:33:51 ◼ ► And then get a setup that works and don't mess with it until and unless there's a sort of step change in speeds or until your kids can start complaining.
01:34:00 ◼ ► Apparently, they still do sell the pack that I got, which is one Eero Pro and two Eero Beacons for $400, although apparently on sale, three Eero Pros for also $400.
01:34:15 ◼ ► The beacons are super nice because you can just put them on a power outlet and it all just kind of figures itself out from there.
01:34:21 ◼ ► But if you have Ethernet throughout your house, you could do multiple Eero Pros, which is probably an even more robust solution.
01:34:30 ◼ ► All that being said, Marco, you have some completely bananas set up if I'm not mistaken, so why don't you tell us about that?
01:34:37 ◼ ► I have the new nerd standard, well not even new, the modern nerd standard of if you're a super nerd about this stuff, you generally get Ubiquiti gear.
01:34:46 ◼ ► And that's what I have. I have Ubiquiti's, not their new easy consumer mesh thing, I believe they call it Amplify, not that.
01:34:58 ◼ ► So you have the security gateway or edge router as the actual router, which is only a wires only device, and then you plug that into a switch.
01:35:08 ◼ ► And you plug that into your wireless access point or points. You can have multiple access points.
01:35:14 ◼ ► You kind of assemble everything from components. And the total cost of a Ubiquiti system is, you know, it's up there.
01:35:22 ◼ ► You're looking at probably $400 as a minimum to get a nice decent full home set up. It's certainly not inexpensive.
01:35:29 ◼ ► And it's also fairly complex to set up. Now it has gotten a lot easier to set up in recent years.
01:35:35 ◼ ► They now have much better set up wizards and things. And you almost never have to go into super advanced settings for most people's home needs.
01:35:44 ◼ ► But if you have specialized needs, that's there if you need it. Like if you want to jump into a command line and SSH into your switch and change a certain thing, you can do that.
01:35:54 ◼ ► I've been running Ubiquiti gear at my house. I did one big upgrade this past fall where I basically replaced everything with like a faster version of everything.
01:36:05 ◼ ► Before that I had been running the same set up for a number of years. And in both cases, the new set up and the old set up, I've had no problems.
01:36:13 ◼ ► I've never had to reboot the router unless I had like a power outage. It rebooted incidentally as a result of that.
01:36:20 ◼ ► But like I've never had a problem with my Ubiquiti set up that was solved by having to reboot the router. That has never happened.
01:36:28 ◼ ► And with almost anything else I've ever used, with the exception of Eero, which I've used Eero at the beach.
01:36:34 ◼ ► And I also use it, I set up my in-laws with Eero. And I've used it a couple, I think one or two more times besides that.
01:36:41 ◼ ► So that was fine, but I didn't use it for so long that I could honestly say like, "Oh, this never has problems." Because I wasn't using it for like months and years at a time.
01:36:51 ◼ ► But I can say for the Ubiquiti gear, I can say that. I can say like, "I've used this for so long, it is rock solid." And I love it.
01:36:58 ◼ ► That being said, if you aren't a super nerd, you should probably just get something like an Eero or whatever.
01:37:04 ◼ ► I don't follow the MeshRouter business that closely. So if the review sites all say something else is better this month, fine, consider that too.
01:37:11 ◼ ► I can't tell you one way or the other on that. But if you are a super nerd, the Ubiquiti stuff is really cool.
01:37:17 ◼ ► And one thing that's nice about it in regards to upgradability is if some new standard for Wi-Fi comes out,
01:37:25 ◼ ► Ubiquiti is usually not one of the first people to adopt it because they mostly sell to enterprises and enterprises usually don't care about that.
01:37:32 ◼ ► They have different needs that are more about reliability and massive amounts of clients being supported on one AP and stuff like that.
01:37:39 ◼ ► But when Ubiquiti does release access points that use the new standards, you can just replace your access points and not replace your entire router setup and everything.
01:37:49 ◼ ► And so that's a pretty nice thing to have where you have it componentized. Similar to how, for right now, I have some issues with my iMac and it kind of sucks that it's all in one.
01:38:00 ◼ ► And I can't just replace a part of it. I have to bring the entire thing to the beach, et cetera.
01:38:05 ◼ ► And if I had a Mac Pro, I would lose all my money, but I would have a more modularized setup, right?
01:38:11 ◼ ► Ubiquiti stuff is basically the Mac Pro of networking gear. It's a modularized, high-end thing that is a little hard to figure out even what you have to buy.
01:38:21 ◼ ► They're making some advances there, but it's a very complex thing to get into. But once you're into it, it is so rock solid that you will never think about your network.
01:38:32 ◼ ► All that being said, though, again, when it comes to new standards, I'm more with John on this. I don't really usually care that much about when new Wi-Fi stuff comes out.
01:38:42 ◼ ► I'm certainly not usually living on the cutting edge of it because almost all of my high bandwidth devices are wired. I too have gigabit networking wires run throughout different parts of my house.
01:38:54 ◼ ► Anything that can be wired reasonably is wired. The actual wireless use on my network is usually not things like large file transfers.
01:39:03 ◼ ► If I'm doing, like, I need to move this 20 gig folder between my desktop and my Mac Mini for storage or for archival, that's going over wires.
01:39:14 ◼ ► So the Wi-Fi doesn't help me there. Where Wi-Fi does help is when you're using phones and laptops and iPads and stuff like that.
01:39:21 ◼ ► But for all those things, I don't really need cutting edge speed almost ever, and they don't usually support it.
01:39:27 ◼ ► What's much more important to me is range and reliability. If there's some big advance that comes out that can dramatically improve range and reliability, I'm there.
01:39:37 ◼ ► But if it's just about getting peak transfer speeds higher when you're in ideal conditions, which I never am, then I don't really care about that kind of stuff.
01:39:46 ◼ ► I haven't looked too much into Wi-Fi 6 to see what it's actually making better, but I'm not really itching for meaningful changes in this area.
01:39:55 ◼ ► Because everything's pretty fast and reliable for me already with my current setup that's all, I guess, based on AC.
01:40:02 ◼ ► Maybe in a few years, once Wi-Fi 6 gear is really boring and mature, maybe I'll upgrade to it then.
01:40:07 ◼ ► Speaking of componentized things, I actually do have one other component that I neglected to mention, mostly for laziness, but also because it's a way to componentize.
01:40:15 ◼ ► So I have an Eero, and I use that for my Wi-Fi, but I also have the old Airport Extreme that Marco sent me, the last, like, the tall refrigerator proportion one.
01:40:24 ◼ ► No hard drive inside it, but that thing. And that replaced my previous Airport Extreme, which was the flat, pancake, Mac Mini-looking white thing.
01:40:32 ◼ ► And the reason I had been using the Airport Extreme before the days of Mesh Network is because it was reliable and it was app-lish and yada yada yada, and they stopped making it.
01:40:39 ◼ ► The reason I wanted Marco's was because I didn't want to have to set up all my networking stuff again.
01:40:45 ◼ ► I used to be stupid and have all sorts of Mac address validation, and I eventually stopped doing that.
01:40:54 ◼ ► And I have a surprising number of devices set up, and I didn't want to have to reproduce that on the Eero.
01:40:59 ◼ ► I could have, it has all the same features, it's not rocket science. I just didn't want to bother.
01:41:03 ◼ ► So my "router" is still the thing that Marco gave me, the Apple Airport Extreme that I imported my rules from my old Airport Extreme.
01:41:13 ◼ ► That's the thing that hands out the IP addresses, that's the thing that connects to my Fios, you know, all that stuff.
01:41:18 ◼ ► And then the Eero attaches to that, acting purely as, in whatever they call it, bridge mode or whatever, as Wi-Fi.
01:41:25 ◼ ► So I have my own little cobbled together ubiquity system here of like, "Yeah, I have a separate router and I have separate access points."
01:41:31 ◼ ► And it's kind of dumb, and eventually if one of those components dies, the Eero can totally take over.
01:41:37 ◼ ► So all this is to say that you can, you know, if you're cobbling together your home networking out of just stuff you happen to have hanging around, you can do that.
01:41:46 ◼ ► And you know, networking standards such as they are, like this Apple thing didn't know anything about Eero or vice versa, but they all speak protocols and I haven't had a single problem with this setup.
01:41:55 ◼ ► The only thing is occasionally there's some new feature that Eero rolls out that I can't use because I'm in bridge mode.
01:42:00 ◼ ► I feel like Eero is indignant that I'm using it in bridge mode, but I am, and it's fine. It works fine.
01:42:06 ◼ ► I have zero problems with that. I don't even know enough about networking to know exactly how it works.
01:42:11 ◼ ► I just said, "Eero, you don't hand out IP addresses. Let the airport do that." And then everyone just shakes hands and everything works fine.
01:42:22 ◼ ► No, it's the other stuff. It's Unifi. So Amplifi is basically like their version of Eero.
01:42:28 ◼ ► It's like how all the network manufacturers now have basically Eero clones. It's some kind of, you know, easy home mesh system.
01:42:38 ◼ ► Gotcha. Okay, I was trying to tell them apart, and I was looking at the Amplify stuff, and aesthetically it did not look like your aesthetic, but I was going to go with it, so it turns out...
01:42:50 ◼ ► No, it might be good. I don't, like, when I bought my setup initially, that was before they existed, and when I upgraded, I basically wanted to upgrade within the same family of stuff because I knew what it worked.
01:42:59 ◼ ► The hardest thing with Ubiquiti is learning what you have to buy. Like, when you look at their components, you're like, "Okay, well, what is this thing? What's the security gateway? What's the cloud key? What's..."
01:43:10 ◼ ► Like, it's very hard as a newbie to the product line to identify, like, what exactly do I need to have, like, a regular wireless router setup.
01:43:22 ◼ ► And it's not trivial. The answer's not trivial. The new Dream Machine line makes significant improvements in that area, but before that, it was substantially more complicated.
01:43:33 ◼ ► So, I don't necessarily want to go into all that on the show, but would it be fair to say that you'll put links to, perhaps, the bare bones Marko-recommended products in the show notes? Is that a reasonable compromise?
01:43:46 ◼ ► The only thing is that I haven't used a Dream Machine yet. I don't know if it's any good, but if it's good, and it's still a little young to tell, and even the, like, home version, like the non-rackmount version, has a fan, which I don't love.
01:44:01 ◼ ► But if the Dream Machine is good, then that's going to be the new recommendation of, like, just get that, and then maybe an access point or two to add, you know, coverage to your house, because it has a built-in access point, but you can, you know, you can have multiple access points, just like, like, Euro and everything.
01:44:16 ◼ ► So, like, the recommended setup is probably going to be a Dream Machine and one or two additional access points. But it's just too young of a product for me to really know that yet.
01:44:25 ◼ ► All right, cool. Jeffrey Wilkinson writes, "I finally bought a new 16-inch MacBook Pro," that sounds familiar, "and I have had a heck of a time moving my development profile over. It's horrible. Confusing crypto signing keys, trying to export my profile, and even moving over my favorite theme is terrible.
01:44:40 ◼ ► Any advice on moving development machines? I ran into so much trouble that I revoked all my certificates and regenerated them. Things seem to work at the moment, but I'm rattled."
01:44:47 ◼ ► I haven't done this because I've let Xcode manage my certificates and all that for both my apps. I remember going through this at work, and I still have some scars from it.
01:44:59 ◼ ► I don't have anything constructive to recommend. And Marco, are you doing all automatic signing on Xcode, or are you doing your own manual stuff?
01:45:11 ◼ ► That's it, it's CarPlay. So I don't know if they've changed this since last year. Last year at W3C, when I definitely didn't abuse my press pass to go to a lab a couple times, I definitely wouldn't have asked somebody there this one issue of, "I wish that when you have the CarPlay entitlement that you can use Xcode automatic signing."
01:45:32 ◼ ► But as of last summer, I haven't checked since then, I don't know if it's changed, but it probably hasn't. As of last summer, if you had CarPlay, you could not use automatic provisioning.
01:45:43 ◼ ► So I was still doing everything the old way. And that's increasingly hard. It's funny, now when you have an app that has, say, an extension for the watch, an intense extension for Siri, and a Today widget, or whatever they're called,
01:45:58 ◼ ► and you have all these extensions, well, every single one of those extensions has its own provisioning profile.
01:46:03 ◼ ► So when you have to go create a build of your app, or when you have to go renew certificates, I have to generate 11 provisioning profiles for all these different parts of my app.
01:46:13 ◼ ► And I have to do all this every year, because of course they expire after a year, so every year I have to do the whole thing again.
01:46:21 ◼ ► And sometimes, as Jeffrey wrote, sometimes if I have to install to a new computer, sometimes it doesn't come over correctly.
01:46:28 ◼ ► So Xcode has this feature, so basically, anybody who doesn't know, when you're developing iOS apps, there's all these signatures and public and private keys and certificates and everything that you generate,
01:46:38 ◼ ► and you work out with Apple so that they can verify that you are the one who made this app as you're submitting it to them, and you're signing it with your certificate and everything.
01:46:45 ◼ ► And the way this is usually stored is in a series of keys and certificates in your Mac's local keychain.
01:46:51 ◼ ► And so if you want to move that, or export that ability to be able to write applications and sign them correctly from another computer, you have to export that stuff.
01:47:00 ◼ ► And in the early days of doing this, you just had to do it all yourself, and it hardly ever worked, and it was horrible.
01:47:05 ◼ ► In later days, a few years into the App Store, they added this feature to Xcode that you could export developer profile and import developer profile.
01:47:13 ◼ ► It would basically export all that stuff out of your keychain into a package file that you could secure with a password, and then you could move that one file to another computer, open it up, enter the password, and import all that stuff into your keychain.
01:47:25 ◼ ► And that works much of the time, but as with everything with Xcode and signing stuff, not all the time.
01:47:34 ◼ ► And so I have had to do exactly what Jeffrey said, which was sometimes you just can't get it to work right, and you just have to blow it away and revoke all your certificates and start over and make it all fresh.
01:47:45 ◼ ► If Xcode is configured to work automatically, I have found in the few contexts in which I can do that, like I just did a forecast update, which I'll talk about some other time, and that's a simple enough app that I can use the automatic stuff.
01:47:57 ◼ ► And it's glorious. I love whenever I can use automatic stuff, I'm like, "Oh, just check a box and it just worked, it just fixed everything, that's wonderful."
01:48:06 ◼ ► But there are still cases like CarPlay apps and a few other exceptions where certain apps just can't use it.
01:48:13 ◼ ► And when you tell this to Apple people when you've snuck into W2C with your press pass, when you tell this to the Apple people that you can't use it, it kind of blows their minds.
01:48:21 ◼ ► They're like, "Oh, wait, what? Really? You can't use it?" And then they go ask somebody else, "Oh, oh yeah, I guess you can, wow."
01:48:28 ◼ ► It's like they don't realize the pain we're going through necessarily because they don't deal with these things the same way we do.
01:48:33 ◼ ► They don't use the tools in these same ways. It's really a pain to not be able to use the automatic stuff.
01:48:41 ◼ ► There's often problems where if you have two private keys that have the same name or similar names or you've generated two keys on the same machine, two certificates on the same machine for the same company ID, that could be a problem.
01:48:54 ◼ ► Or if it picks the wrong company, that could be a problem. There's all sorts of ways that can go wrong and you have to just blow it away and recreate everything from scratch.
01:49:01 ◼ ► And I wish I had a better answer and I wish I didn't have to do that, but that's the answer.
01:49:05 ◼ ► John, any other thoughts? I have no idea how any of this stuff works and I'm terrified of it not working.
01:49:11 ◼ ► I feel like my Mac Pro is like Nintendo Switch back before the Nintendo Online Service where your Zelda save game was associated with that switch and if you dropped that switch in the ocean you lost your save.
01:49:33 ◼ ► And I have development certificates for doing stuff. Like I made that Safari extension and they changed the way Safari extensions were made at least once.
01:49:41 ◼ ► So I have a bunch of residue of my web developer certificate and my various accounts at various paid levels at different times.
01:49:55 ◼ ► And then I go make a Mac app and I'm like, "So what do I need to do? I already have my Apple developer account and I'm using the same one. There's tons of stuff in my keychain. I don't know what any of it is."
01:50:10 ◼ ► I look at Xcode and I can see, part of it is because I know from watching WWDC for many, many years, but part of it is just the sense, you see the sediments of how it used to be way harder to deal with signing.
01:50:24 ◼ ► And the Xcode has slowly made it easier by adding more sort of management screens and more things that are automated, but still at the edges like where Marco is, you can tell, A, the manual way to do it is still there.
01:50:36 ◼ ► And B, sometimes you need to fall back to that. I have no idea how the manual way works. The automatic way, so far, fingers crossed, has always worked for me.
01:50:45 ◼ ► But I got an email recently that said, "Some of your certificates are going to expire." I'm like, "Please have a link that I click and it renews them or whatever." And it didn't. I'm like, "No, I can't. Your thing is about to expire. Great. Do a new one. Renew."
01:51:01 ◼ ► Like, I don't know. Do the thing. And I don't even know what the consequences are of it not working. Like, if I let them expire, do my apps stop working on everyone's machine? Can I just not make new applications? Can I not build? I don't even know anything.
01:51:15 ◼ ► The good thing is that if everything expires, or if you have to recreate new ones and you go and revoke your old ones from the dev center, the apps that are out there don't stop working. They don't break. But you can't submit new builds until you work that out. So the good thing is, in that worst case scenario, if you have to nuke everything and start over, you're not affecting your customers by doing that.
01:51:36 ◼ ► All you're doing is, "Okay, it's going to take me an extra half hour to get this set up today before I can actually submit a build."
01:51:42 ◼ ► Yeah, you're optimistic. Well, I mean, it's not even clear to me when I'm doing it that that's the case. Like, I hope that's the case. Intellectually, I can imagine it being the case, but I don't actually know. So every step of the way is terrifying.
01:51:55 ◼ ► And when I got that thing about certificates expiring, I don't know why they were expiring. Like, it's not at the same cadence as my developer account. It's some other cadence, because I had generated certificates some other time, and I generated them like, "Where are they? Are they in my keychain? Are they in Xcode?"
01:52:08 ◼ ► I see a bunch of crap in there, including identities of other people's Xcode products that I've opened locally on my computer, and I always have to go in and change the team to my team.
01:52:17 ◼ ► And then, of course, I did the thing where I changed from my name to my LLC name, and there's a bunch of residue of that lurking around. God, I have no idea how it works.
01:52:25 ◼ ► So I had the idea of having to do dev on another machine. This is the first I heard about that identity export thing, so that's great. Now that I know that exists, I would try that, and I would hope it would work.
01:52:37 ◼ ► So all this is to say is that it's clear that Apple has made this a lot easier, and I'm glad they have made it as easy as they have, but it is still, for me, one of the scariest parts of doing development, just because it seems so much less like programming and so much more like, you know, I don't know.
01:52:52 ◼ ► SSL certificates, the thing I at least know a little bit more about, is just as annoying, mostly because it's like, if you're doing SSL certificates all yourself, at least for me as a web developer, fine, like I can do it, but me trying to do SSL certificates through my shared hosting plan ISP through their weird interface, it's too mediated.
01:53:10 ◼ ► And I feel like Xcode came from that place where you have to do a bunch of signing stuff, but it's mediated through tools and servers and systems that you don't control, so it's all about playing by the rules of whatever system they set up.
01:53:23 ◼ ► Like you don't actually control everything from top to bottom, right? And if you make that system good and the Xcode system is apparently, you know, is getting much better, it's okay.
01:53:32 ◼ ► But if that system is creaking anyway or breaks and you can't understand why, the whole delete everything and start over, you know, starts to become your only option.
01:53:40 ◼ ► And honestly, I don't even know how I would do that. Like I suppose if I just deleted everything, delete, delete, then I would just start at the Apple developer website and just start recreating things.
01:53:49 ◼ ► But there's so many different certificates now, like Mac installation, Mac distribution, Apple developer, like it's very confusing.
01:53:58 ◼ ► Again, I don't want to, you know, slam Apple over this being confusing because it is inherently confusing and I think they have made tremendous strides in making it easier, but there's still a ways to go.
01:54:07 ◼ ► Yeah, and I think this might be an unpopular opinion, but I think this is made so much worse by the heavy use of Keychain in this process.
01:54:16 ◼ ► And there's also, there's two different levels of like centralized repositories that are in use here.
01:54:22 ◼ ► Your signing keys and certificates are stored in Keychain, they have to be. Your provisioning profiles are stored in like this hidden Xcode directory.
01:54:33 ◼ ► Like you double hit them to add them to Xcode and then they just disappear there somewhere.
01:54:37 ◼ ► And like it's some, you know, you can find it like at some, you know, buried deep within library directory if you need to find it, but like it's abstracted away from you.
01:54:44 ◼ ► So these two different sources of like centralized repositories on your computer that you can't easily see where it went or how to change it or how to edit it.
01:54:55 ◼ ► If you go into Keychain or that random provisioning profile directory, everything's just a jumbled mess.
01:55:01 ◼ ► You can't see like what belongs to what project, what belongs to what app. It's very hard to tell sometimes.
01:55:06 ◼ ► I think that Keychain is basically the max registry. And I'm sorry for all the people who this is offending.
01:55:15 ◼ ► Keychain is this centralized repository in the system that stuff gets added to and rarely taken out of.
01:55:23 ◼ ► Things can have conflicts, things can have duplicates. Like so many bugs and weird behaviors are related to Keychain.
01:55:37 ◼ ► Windows, the Windows registry has been widely criticized for decades ever since it existed I think in Windows 95 and above.
01:55:45 ◼ ► It's been criticized because it was this centralized place. Before that you were criticized for DLL hell.
01:55:58 ◼ ► And yeah, it turns out you can have conflicts when that happens and you can have duplicates and clutter and all this stuff.
01:56:07 ◼ ► And what I wish for Xcode, the way it does all this stuff, I wish it could just, you could just have a file that had your certificates in it.
01:56:17 ◼ ► Like the way when you're setting up a web server with SSL, like you just have those certificates in files.
01:56:22 ◼ ► And you just point the web server, say use this, here's the certificate file, here's the key file.
01:56:33 ◼ ► Because one of the ways the Xcode system falls down so hard with this is when you have multiple projects or multiple companies.
01:56:39 ◼ ► Or you're a consultancy and you have a lot of different companies you create stuff under.
01:56:43 ◼ ► Or in the context of this question, if you want to move it to a new computer, it causes problems.
01:56:52 ◼ ► It's hard and it's complicated because you're dealing with these centralized registries of Keychain and the provisioning directory in Xcode.
01:57:01 ◼ ► If that was separated out and it just was a file and the Xcode project could contain this file.
01:57:08 ◼ ► And yeah, you know what, for security reasons, encrypt it the same way the export developer profile files are encrypted.
01:57:14 ◼ ► And prompt the developer for the password on first use and store the password in the Keychain.
01:57:20 ◼ ► And for every other use you're referring to that file instead of the centralized registry that for some reason we think is okay because Apple made it.
01:57:39 ◼ ► So many of my problems with Xcode and signing are about using the centralized repository and picking the wrong identity from it.
01:57:47 ◼ ► Because it's trying to do some kind of automated magic from the centralized list of things that might have two or three certificates in it that might be similar but slightly different that were at a different time for different programs.
01:57:56 ◼ ► It's a mess. If they could decentralize that and just make that a part of the project, it would be so much better.
01:58:04 ◼ ► And you could still have all the same security by using that local file encryption and then just storing the password in Keychain.
01:58:11 ◼ ► You'd have all the same security but it would be a lifesaver for all the people who have to work with multiple computers or multiple companies or multiple projects.
01:58:27 ◼ ► Granted, you could say, well, it's only security sensitive stuff should be in there and not the public search or whatever.
01:58:38 ◼ ► I don't want each individual app to implement its own bespoke way to make a package file full of stuff, some of which is secure and then encrypted.
01:58:54 ◼ ► If Xcode, for example, is putting things into the Keychain but then pulling them out later based on heuristics, that's Xcode's fault, not Keychain's fault.
01:59:02 ◼ ► I understand Keychain gets the blame because you've got to go in and like, oh, I've got to delete this old certificate or import this thing that wasn't imported.
01:59:14 ◼ ► Keychain is just a dumb bucket for things and I want there to be a single one of those that presumably is implemented well on the system.
01:59:21 ◼ ► And I don't mind even if stuff in there that's not security related is in there as long as it's associated with the security thing.
01:59:27 ◼ ► You could say there could be more features for more hierarchy in it, like Keychain could use a little bit of attention.
01:59:31 ◼ ► But when it comes to security focused repositories like that, adding features is tricky and you have to do it cautiously.
01:59:41 ◼ ► And so I can see what's linked to what and you can have metadata and there could be a hierarchy.
01:59:54 ◼ ► Yeah, I mean, I think it could definitely be improved, but I think Xcode's use of it is the root of the problem.
02:00:03 ◼ ► And the idea of splitting up the data is part of the problem that you just talked about.
02:00:14 ◼ ► The thing that mixes in here to make it even more confusing is this iCloud Keychain, which in theory makes your Keychain appear in multiple places.
02:00:22 ◼ ► But as with anything related to iCloud and syncing, that's not extremely new, which this isn't.
02:00:28 ◼ ► And especially for things that are secure related, iCloud Keychain, to give an example, this is not a perfect analogy,
02:00:35 ◼ ► but my son was dealing with his Xcode stuff and he wanted to continue working on his Xcode thing somewhere else.
02:00:41 ◼ ► Thankfully, I don't think there's any signing involved because he's not doing stuff up to a store or whatever,
02:00:47 ◼ ► And he had, unbeknownst to me, his account had been created, I think I chose to do this when I set up his account,
02:00:52 ◼ ► I turned on iCloud desktop and documents syncing because I figured, oh, well, this will just let him see the same things he sees on the iMac as he does on the MacBook Air.
02:01:03 ◼ ► He doesn't have any important stuff, it's just some screenshot he's got on the desktop, and it'll be nice if screenshot is on the desktop in both places.
02:01:09 ◼ ► So I turned that on, right? Then he started making Xcode projects and storing them on his desktop.
02:01:14 ◼ ► Oh, no. So then he goes over to the other machine and it's like, is the Xcode project over there?
02:01:20 ◼ ► Because he doesn't know what version control is, and I think we had the conversation before.
02:01:37 ◼ ► And I feel kind of the same way about iCloud Keychain, where it's like, yeah, I know you want to do development over here on this other machine,
02:01:44 ◼ ► but some of the stuff is in that library directory that Xcode put there, but then some of the stuff is in Keychain,
02:01:54 ◼ ► The stuff that Margaret was talking about, like, oh, it's great when Xcode handles it for me, that's what I want.
02:02:02 ◼ ► I just want smarter tooling to say, I can get the lay of the land, you don't have to worry about, for whatever legacy reason,
02:02:11 ◼ ► but just give me like, you know, there is like a management window inside Xcode that says, here's all your stuff.
02:02:19 ◼ ► You've got seven Apple developer accounts, you've got 20 identities and provisioning profiles, and here they all are.
02:02:28 ◼ ► and you can pick among them for each project and like just store it all, and I don't care,
02:02:38 ◼ ► When it doesn't work, then I have to go dig in and say, okay, which thing is here and which thing is there, what do I do?
02:02:44 ◼ ► And I think Apple has shown that it is possible to get to that place where you just don't have to worry about it for the simple to medium cases.
02:02:51 ◼ ► They just need to go a little bit farther and then maybe revisit some of the implementation details,
02:02:56 ◼ ► like the idea of packaging up all that information in some kind of library or whatever,
02:03:06 ◼ ► or maybe just even a bunch of pointers that say, here's how it should be set up, go fetch the stuff from the secure places,
02:03:31 ◼ ► does the increase in people working from home change the math around a Mac version of Overcast?
02:03:40 ◼ ► so I wouldn't have to change my AirPods pairing for podcast listening versus video calls.
02:03:56 ◼ ► So what's holding back Overcast for the Mac right now is a combination of generally low demand,
02:04:05 ◼ ► and the high amount of effort that it will currently take to make a decent Catalyst app,
02:04:11 ◼ ► or the even higher amount that it would take to not use Catalyst and make a direct to AppKit version of it,
02:04:20 ◼ ► The first version of Catalyst proved to be less capable and harder to make a good app with than we had thought.
02:04:29 ◼ ► And at this point of the year, we're so close to WWDC and presumably better versions of Catalyst coming out, probably,
02:04:38 ◼ ► that it doesn't make a lot of sense for me to start investing heavily in a Mac port in March or April or May of this year,
02:04:47 ◼ ► instead of just waiting until June for the new updates and making a better, more informed decision
02:04:58 ◼ ► And if Catalyst version 2 is still terrible, that could inform things in a different way.
02:05:04 ◼ ► If Catalyst version 2 is a heck of a lot better and easier to get certain things that are of nicer usability and nicer quality and things like that,
02:05:17 ◼ ► We're talking about three or four weeks from now that we're going to hear all this new stuff
02:05:21 ◼ ► and be able to start playing with the new betas and everything, so we aren't that far off.
02:05:29 ◼ ► It would have been nice if in mid-March, when all the quarantining really started en masse in the countries that use Overcast the most,
02:05:37 ◼ ► it would have been nice if I would have said, "Oh, I should make the Mac version right now and have it out for this period."
02:05:41 ◼ ► But that takes a long time. I can't do a whole Mac version from zero, which is where I am so far on that front.
02:05:48 ◼ ► I can't do a whole Mac version that's any good in a matter of weeks to be able to get it out in time for people to actually use during the mass quarantine.
02:05:56 ◼ ► I'm not going to let a temporary world condition dramatically change my plans for a major effort to the app.
02:06:06 ◼ ► Because even if I decided today, "Alright, I'm going to go all in on this," by the time I'm done with it, quarantining might be over.
02:06:13 ◼ ► I would be back where I started of, "Well, I just made this app for the very small percentage of people who want it under more normal circumstances."
02:06:21 ◼ ► So basically I haven't changed my plans yet because we're so close to June and because demand is still relatively low even during this,
02:06:29 ◼ ► and because it's such a high effort to get something good that it doesn't change the calculus enough.
02:06:34 ◼ ► Anyway, thanks for your response to this week, Basecamp, and we will talk to you next week.
02:06:40 ◼ ► Now the show is over, they didn't even mean to begin, 'cause it was accidental. (Accidental) Oh, it was accidental. (Accidental)
02:06:52 ◼ ► John didn't do any research, Marco and Casey wouldn't let him, 'cause it was accidental. (Accidental) Oh, it was accidental. (Accidental)
02:07:03 ◼ ► And you can find the show notes at ATP.FM, and if you're into Twitter, you can follow them at C-A-S-E-Y-L-I-S-S,
02:07:17 ◼ ► so that's Casey List M-A-R-C-O-A-R-M, A-N-T, Marco, R-M-E-N, S-I-R-A-C, U-S-A, Syracuse.
02:07:29 ◼ ► Well, it's accidental. (Accidental) They didn't mean to, accidental. (Accidental) Tech podcast so long.
02:07:42 ◼ ► I can't wait to go to the beach. I know I'm actually going to the beach, like the way people think about it,
02:07:47 ◼ ► like I can't wait to just go to the beach town. If I'm gonna be stuck in a house somewhere, I'd rather be stuck in a house there than here.
02:07:54 ◼ ► Those houses are kind of close together. Have you seen where I live? Like all the houses, like, we're not in like, you know, big spread out suburbs here.
02:08:03 ◼ ► I know, it's cramped, I'm just saying. Keep away from people. You don't have any streets even.
02:08:08 ◼ ► There aren't that many people there really, so this is one of the reasons we're going for June in particular, because it's just a lot.
02:08:15 ◼ ► It's kind of easier to quarantine there safely than it is here, and it's much more pleasant to be there.
02:08:21 ◼ ► It's starting to get very hot here, and walking with masks, like walking the dog with a mask is getting fairly unpleasant.
02:08:30 ◼ ► And I'm still going to wear the mask, because I'm not going to be a jerk, but if I can be somewhere that has a more mild climate with more fresh air and bigger expanses of open space,
02:08:42 ◼ ► like when we go on the beach in the morning and late night, it's for the dog walks when we're technically not even allowed to be there with dogs, but nobody cares after a certain time.
02:08:49 ◼ ► There's no one around. I can get way more distance on an off-hours beach in June than I can get walking my dog here in my suburb here.
02:09:00 ◼ ► And all the grocery stores there all deliver, and it's easier to get delivery slots there than here, because it's a much smaller community and everything,
02:09:07 ◼ ► so for actual responsible quarantining, it will actually be in most ways easier to be responsible there than here.
02:09:15 ◼ ► I found a lot of variability, especially in homemade masks, in terms of how comfortable they are to wear and breathe through.
02:09:23 ◼ ► We actually, I think we got a Tom Bihn mask. We have a bunch of commercial masks and ones that we made ourselves.
02:09:36 ◼ ► But yeah, if you have a mask that you're finding increasingly uncomfortable in hot weather, there are other options, like just shop around or try different materials when you're making them yourself.
02:09:46 ◼ ► Again, we're not trying to make something that is actually going to protect you 100% from anything.
02:09:54 ◼ ► And so if you can do better than totally unmasked with a material that does not feel like you're suffocating in 90 degree weather, go with that, because you'll be more likely to wear it.
02:10:01 ◼ ► Yeah, I have two recommendations. So number one, I agree with you, we also have the Tom Bihn masks. They are very nice, but they are pretty warm.
02:10:14 ◼ ► The good thing is that the medical industry figured out a long time ago how to make masks that are tolerable in all conditions.
02:10:22 ◼ ► And now you can actually start getting in reasonable quantities with reasonable shipping times, regular medical procedure masks.
02:10:34 ◼ ► They're not as protective as N95 masks, but you shouldn't be buying those anyway, although there's an asterisk on that that I'll get to in a moment.
02:10:41 ◼ ► But they're like, they're the kind of like a dental hygienist wears when they're cleaning your mouth.
02:10:49 ◼ ► The good thing is they're much easier to get and you don't have to feel so bad buying packs of procedure masks that you're like denying them from a hospital worker, for instance.
02:11:06 ◼ ► Those procedure masks are much more comfortable than cloth masks because they're thinner and they're not as hot.
02:11:18 ◼ ► Another option that you can do, which I don't know if this is controversial, I apologize if it is.
02:11:30 ◼ ► Now, again, I'm so sorry if I'm getting any of this wrong or if this is highly offensive to anybody.
02:11:34 ◼ ► The gist, as far as I know, the gist of this is that KN95 is China's version of the same certification functionally as N95.
02:11:59 ◼ ► KN95, because it's the China standard, I think the FDA wasn't allowing it or whatever here.
02:12:14 ◼ ► But as a home user, if you can get those, that's probably going to be significantly more protective than a cloth mask.
02:12:21 ◼ ► And because they're made for medical use and they're made out of whatever, the foam and cloth stuff,
02:12:26 ◼ ► instead of just like, you know, stuff you make a t-shirt out of, like what you get from the cloth masks,
02:12:37 ◼ ► And I only won one once. I had to go into a medical facility to get an allergy shot finally.
02:12:42 ◼ ► So I figured maximum protection. If I'm going into a medical center, I want maximum protection right now.
02:13:06 ◼ ► So I don't know if I'm like taking it from somebody who could use it in greater need than what I have by buying them.
02:13:13 ◼ ► Like the way you're not supposed to buy, you know, the N95s because those are in short supply, people need them.
02:13:22 ◼ ► Anyway, that's something to look into. You know, either get the procedure masks, like the big, the square ones with the ripples,
02:13:31 ◼ ► Those are going to be generally much better and more comfortable to use in hot weather than any of the cloth ones that you'll find from anybody.
02:13:38 ◼ ► My wife made some masks out of some old bedsheets that we had that we weren't using anymore that had just been stored in a box.
02:13:49 ◼ ► But the downside to that is if you, old bedsheets that have been in a box in the attic for a long time have a tendency to smell kind of musty.
02:13:57 ◼ ► So you really don't want to put that next to my face. The good thing is it lets me know that, you know, one of the symptoms of infection is that you lose your sense of smell.
02:14:05 ◼ ► I'm like, well, at least I know I'm not infected because I can definitely smell these musty bedsheets and I think I'll pass on this mask.
02:14:20 ◼ ► And also don't forget the eyewear component as well. This is an area that I keep forgetting to actually get some kind of safety goggles that I can wear if I have to go to a medical facility or something.
02:14:39 ◼ ► Yeah, I apologize to every staff member until I'm like, I'm so sorry, these are the only glasses I have.