PodSearch

ATP

510: It's Occupied by Bears

 

00:00:00 ◼   ► So I have something to show the two of you.

00:00:02 ◼   ► - Oh, this is always ominous.

00:00:04 ◼   ► - Check our Slack.

00:00:05 ◼   ► (gasping)

00:00:07 ◼   ► - Oh my God, I'm so happy, I'm so happy.

00:00:10 ◼   ► (electronic beeping)

00:00:13 ◼   ► So I'm looking at a screenshot, a very, very small,

00:00:16 ◼   ► very heavily cropped screenshot from Xcode.

00:00:19 ◼   ► On the right hand side, it's a bunch of green diamonds

00:00:22 ◼   ► that have check marks in them.

00:00:24 ◼   ► And on the left, test value conversions, a function,

00:00:27 ◼   ► testOpenDB function, testQueries function,

00:00:30 ◼   ► testHeavyWorkload function, et cetera, et cetera.

00:00:31 ◼   ► Oh my God, I'm so proud of you.

00:00:33 ◼   ► - Now I don't know anything really

00:00:35 ◼   ► about writing tests in Xcode, but--

00:00:38 ◼   ► - That makes two of us.

00:00:39 ◼   ► - Are they supposed to all begin with the word test?

00:00:41 ◼   ► - I think they have to.

00:00:42 ◼   ► - I don't remember if it's required or not,

00:00:44 ◼   ► but it is certainly the convention.

00:00:45 ◼   ► - It certainly makes your life easier if they do,

00:00:47 ◼   ► because you get wonderful UI integration

00:00:51 ◼   ► where you can just click and run one of them

00:00:52 ◼   ► and stuff like that.

00:00:53 ◼   ► You get the little green check marks, it's fun.

00:00:55 ◼   ► - Well, this is extremely exciting.

00:00:56 ◼   ► - So this is the FC model replacement

00:01:00 ◼   ► that does not have a name or does have a name?

00:01:01 ◼   ► - Oh it does.

00:01:02 ◼   ► - Okay, are we sharing that name or no?

00:01:04 ◼   ► - Eh, not yet, it doesn't really matter.

00:01:05 ◼   ► - That's fine.

00:01:06 ◼   ► - It's buttDB, I'm calling it buttDB.

00:01:08 ◼   ► (laughing)

00:01:09 ◼   ► Well I feel like, I don't like when components

00:01:13 ◼   ► that I have to write just have really generic names

00:01:15 ◼   ► like model or database.

00:01:18 ◼   ► This is kind of the convention now with Swift

00:01:20 ◼   ► or with SwiftUI where you'll have something

00:01:23 ◼   ► that's just called like view list.

00:01:26 ◼   ► And I find it's very difficult to search for that,

00:01:30 ◼   ► both in your own code and for like,

00:01:32 ◼   ► you know, if you're searching for Stack Overflow answers

00:01:33 ◼   ► on how to do something or you know, whatever.

00:01:35 ◼   ► I prefer having names that are not just generic words,

00:01:38 ◼   ► that actually mean something,

00:01:40 ◼   ► whether they're prefixed like FC model,

00:01:43 ◼   ► or whether it's like some kind of other unique name,

00:01:45 ◼   ► like it's something where like you can easily search for it

00:01:48 ◼   ► in your own code or on Google or whatever,

00:01:50 ◼   ► and you can find answers.

00:01:51 ◼   ► So that's, so I'm not gonna,

00:01:53 ◼   ► like there's a bunch of SQLite wrappers for Swift

00:01:56 ◼   ► They're just called things like SQLite.

00:01:58 ◼   ► It's like, well, that's going to be hard to search for.

00:02:01 ◼   ► In my app, because Switch class is an application switcher,

00:02:06 ◼   ► and I have a class that represents an application.

00:02:08 ◼   ► And I call it the class app.

00:02:09 ◼   ► And the only reason I get away with that

00:02:11 ◼   ► is because all of Apple's classes have NS.

00:02:14 ◼   ► It's NS application or NS app or whatever.

00:02:18 ◼   ► So I get to use app because of the legacy of Objective-C

00:02:21 ◼   ► and the way the name spacing worked there.

00:02:22 ◼   ► but I'm reminded of one of the accidental booby trap,

00:02:27 ◼   ► bear trap, accidental pitfalls that lies lurking

00:02:31 ◼   ► in the Perl programming language.

00:02:33 ◼   ► I know everyone is saying, yeah, among the many.

00:02:36 ◼   ► If you're writing like a little test thing

00:02:39 ◼   ► where you're like, oh, I just want to try something out

00:02:41 ◼   ► and you just make up class names or whatever,

00:02:43 ◼   ► if you call your classes foo and bar and whatever,

00:02:45 ◼   ► you're fine.

00:02:46 ◼   ► But if you have the misfortune to decide,

00:02:49 ◼   ► I'm gonna name a class A, B, C, and D,

00:02:51 ◼   ► You know what I mean?

00:02:52 ◼   ► There already is a B class, and it's kind of important

00:02:55 ◼   ► to the way Perl works.

00:02:56 ◼   ► And so you can be like, why?

00:02:58 ◼   ► Why isn't this working right?

00:02:59 ◼   ► And what is it doing?

00:03:00 ◼   ► Because of course, Perl will let you put whatever you want

00:03:02 ◼   ► into the B namespace.

00:03:03 ◼   ► But guess what?

00:03:04 ◼   ► The B namespace is occupied, and it's occupied by bears.

00:03:08 ◼   ► B does not stand for bear.

00:03:09 ◼   ► No, that's too bad.

00:03:12 ◼   ► I don't even know enough about how

00:03:13 ◼   ► Swift namespacing works to know how they get away with this.

00:03:15 ◼   ► I'm assuming all the names are scoped to the module

00:03:17 ◼   ► or some crap like that.

00:03:18 ◼   ► But I just go with the Swift convention.

00:03:20 ◼   ► They're gonna call their things in SwiftUI View

00:03:22 ◼   ► and stuff like that.

00:03:23 ◼   ► Well, I'm calling my thing App.

00:03:24 ◼   ► Deal with it.

00:03:25 ◼   ► (laughing)

00:03:27 ◼   ► - So there is a possibility,

00:03:29 ◼   ► since this is the week of Thanksgiving here in America,

00:03:33 ◼   ► there's a possibility that this show will be presented

00:03:35 ◼   ► to unwilling and uninterested family members.

00:03:38 ◼   ► And so I think we should try to keep the contents,

00:03:42 ◼   ► stuff that I think anyone could at least understand,

00:03:45 ◼   ► if not appreciate.

00:03:46 ◼   ► So with that in mind, tell me more about these unit tests.

00:03:49 ◼   ► Are you excited you wrote them?

00:03:51 ◼   ► Did you enjoy it?

00:03:52 ◼   ► Do you think it's a waste of time?

00:03:54 ◼   ► Are we throwing them away?

00:03:56 ◼   ► Do you feel gross?

00:03:57 ◼   ► Like, what are your thoughts?

00:03:59 ◼   ► - So I, the only other time I've ever written unit tests

00:04:04 ◼   ► was for FC model, my outgoing database layer.

00:04:07 ◼   ► - Yeah, yeah.

00:04:08 ◼   ► - Because this is the perfect case for unit tests

00:04:10 ◼   ► because it is a--

00:04:12 ◼   ► - It absolutely is.

00:04:12 ◼   ► - It is a small component that is very important,

00:04:16 ◼   ► very low level in the app, also very easily testable.

00:04:20 ◼   ► And it doesn't take a lot of complexity to test this

00:04:24 ◼   ► because you don't have to wait on things like user input.

00:04:27 ◼   ► There's no UI to speak of.

00:04:28 ◼   ► There's no weird time-based anything.

00:04:31 ◼   ► Nothing's based on external content.

00:04:33 ◼   ► It's the easiest thing in the world to test

00:04:36 ◼   ► relative to what you could be testing.

00:04:38 ◼   ► So that being said, I've also done a fairly,

00:04:40 ◼   ► the new version of this is actually even smaller

00:04:46 ◼   ► and simpler than FC model because a lot of it

00:04:49 ◼   ► is no longer necessary.

00:04:51 ◼   ► A lot of it, I've made different design choices

00:04:53 ◼   ► 'cause I made FC model eight, nine years ago,

00:04:56 ◼   ► something like that.

00:04:56 ◼   ► Things are different now.

00:04:57 ◼   ► We have more knowledge.

00:04:58 ◼   ► I'm a better programmer.

00:05:00 ◼   ► It's a different world.

00:05:01 ◼   ► Different things are in fashion with coding.

00:05:04 ◼   ► I've made different choices,

00:05:04 ◼   ► so it's much smaller and simpler,

00:05:06 ◼   ► and I'm also able to rely on a lot of Swift stuff.

00:05:09 ◼   ► Like for instance, the serialization of the model classes

00:05:13 ◼   ► is all just done with Codable.

00:05:15 ◼   ► like it's all just using the build encodable stuff.

00:05:17 ◼   ► The protection of the database,

00:05:19 ◼   ► 'cause you can't share SQLite handles concurrently,

00:05:22 ◼   ► so the protection of that is all just done with an actor,

00:05:24 ◼   ► a Swift actor.

00:05:25 ◼   ► - Oh, that's super cool.

00:05:25 ◼   ► - It's all accessed via async, unless you're on the actor.

00:05:29 ◼   ► So it's just, you know, it's using a lot of modern Swift

00:05:31 ◼   ► stuff to make things quite simple.

00:05:34 ◼   ► So I actually, in developing these tests

00:05:37 ◼   ► over the last few days, I actually have found a couple

00:05:40 ◼   ► of small bugs that I made.

00:05:41 ◼   ► - Look at that, I'm so proud of you, that's exciting.

00:05:44 ◼   ► I think I sound sarcastic, but I genuinely mean it.

00:05:46 ◼   ► That's so exciting.

00:05:47 ◼   ► - Yeah, and this is the point of making tests,

00:05:51 ◼   ► and again, I think in most of my own development time,

00:05:55 ◼   ► when things are much harder to test,

00:05:57 ◼   ► whether it's worth it has a different calculus.

00:06:01 ◼   ► But this, whether it's worth it is a low bar

00:06:04 ◼   ► because it's so easy to test.

00:06:06 ◼   ► I think what I'm gonna have the most trouble with

00:06:09 ◼   ► is just making sure I come up with good tests,

00:06:12 ◼   ► 'cause I'm not good at this.

00:06:14 ◼   ► And a lot of the tests that I've made so far,

00:06:18 ◼   ► they actually are testing multiple things.

00:06:21 ◼   ► In this one, I'll use a column that can be nil,

00:06:23 ◼   ► and this one I'll use, or null,

00:06:25 ◼   ► and this one I'll use a column that can't be null,

00:06:27 ◼   ► and it's like, it's actually,

00:06:28 ◼   ► that could be a separate test,

00:06:30 ◼   ► but I don't wanna be that verbose if I don't have to be,

00:06:33 ◼   ► and it's like, well, if I can just have this

00:06:35 ◼   ► use this table type and have this use this table type

00:06:37 ◼   ► in two different tests,

00:06:38 ◼   ► then I'm kinda covering that as well.

00:06:39 ◼   ► That's probably not best practice.

00:06:41 ◼   ► Whether that matters remains to be argued, I guess.

00:06:44 ◼   ► But there are errors like that where it's like,

00:06:47 ◼   ► I probably should be making a much larger number

00:06:51 ◼   ► of much smaller tests.

00:06:53 ◼   ► But I guess I'll get to that.

00:06:55 ◼   ► - No, I think what you're doing makes sense.

00:06:57 ◼   ► Like, actually, the unfortunate answer is

00:07:00 ◼   ► that you actually need to do both.

00:07:01 ◼   ► You need to make the small number of individual

00:07:03 ◼   ► very isolated, you know, pure unit tests.

00:07:07 ◼   ► But then you also need a bunch of higher level tests

00:07:11 ◼   ► like what you're kind of would naturally make now.

00:07:13 ◼   ► You can make your life a little bit easier

00:07:14 ◼   ► by sort of programmatically generating

00:07:16 ◼   ► the both of these things,

00:07:18 ◼   ► sort of make it a data-driven approach.

00:07:19 ◼   ► - Oh God. - I'm not sure how easy

00:07:20 ◼   ► Swift makes that, but like--

00:07:22 ◼   ► - John, John, you're scaring them off.

00:07:23 ◼   ► You're scaring them off.

00:07:24 ◼   ► - Oh no, but it's like, so what you're doing is like,

00:07:26 ◼   ► oh, I'm gonna make a class for like, you know,

00:07:29 ◼   ► like a store and a product and like,

00:07:31 ◼   ► you just make dummy things

00:07:33 ◼   ► to like test your database thing or whatever.

00:07:35 ◼   ► You make dummy tables, right?

00:07:36 ◼   ► And you make simple dummy tables to do stuff.

00:07:37 ◼   ► And you're like, well, I'll make sure I have some tables

00:07:39 ◼   ► with numbers and some tables with strings and blobs

00:07:41 ◼   ► and I'll cover all my bases, right?

00:07:43 ◼   ► But that's kind of the artisanal hand rolled test

00:07:46 ◼   ► where you're making up these little, you know,

00:07:49 ◼   ► test tables and columns and stuff like that,

00:07:50 ◼   ► hoping you cover all the bases.

00:07:52 ◼   ► And then the little tiny test would be like,

00:07:54 ◼   ► oh, instead of doing that,

00:07:55 ◼   ► I'm just going to test every individual feature.

00:07:57 ◼   ► Quick make table A1 that has a column that's an integer,

00:08:00 ◼   ► that has a column with an integer that's null,

00:08:01 ◼   ► has a column with an integer with a default value,

00:08:03 ◼   ► has a column with an integer.

00:08:04 ◼   ► And you just, you know, like sort of programmatically

00:08:06 ◼   ► loop over all those things, making, you know,

00:08:08 ◼   ► table, T1, column A1, blah, blah, blah.

00:08:11 ◼   ► And then the final thing is programmatically generating

00:08:14 ◼   ► a bunch of tables that cover all the bases

00:08:16 ◼   ► that are more complicated, right?

00:08:18 ◼   ► Like essentially the equivalent of your store product,

00:08:20 ◼   ► blah, blah, blah.

00:08:22 ◼   ► Big tables, lots of columns, foreign keys,

00:08:24 ◼   ► representative of all the stuff you wanna test,

00:08:26 ◼   ► but also programmatically generated.

00:08:28 ◼   ► But for your library that you're using,

00:08:30 ◼   ► it just in your app, it's not an open source project,

00:08:32 ◼   ► what you're doing now is I think the correct middle path

00:08:35 ◼   ► like, "Ah, just cover the functionality I need."

00:08:39 ◼   ► Because in the end, since it's not a big open source project and you're going to stop once

00:08:42 ◼   ► you hit all the features that you need for your product, you'll probably cover everything

00:08:46 ◼   ► with just the test that you make.

00:08:48 ◼   ► And they will continue to serve the function of like, later on when you do some performance

00:08:54 ◼   ► optimization and you run your test, you'll be like, "Oh, I broke something because now

00:08:57 ◼   ► my test fails and I wouldn't have known that because I thought I was just doing something

00:09:01 ◼   ► clever but when I want to run my test it breaks."

00:09:02 ◼   ► So I think you're getting like 90% of the value just from doing what you're doing right now

00:09:07 ◼   ► Cool. Yep. I agree wholeheartedly and I think this is

00:09:11 ◼   ► Whether or not you choose to do this in the future for most things because you already made the great point that you know

00:09:17 ◼   ► It's not exactly easy for a lot of general, you know iOS development, but for this sort of stuff

00:09:24 ◼   ► It's it's utterly perfect as you said in and I would hope that as you continue to do this even just for FC model 2

00:09:31 ◼   ► then I hope you stick with it and as you find bugs, you know, as you're moving up the stack and using this in Overcast or whatever,

00:09:38 ◼   ► as you find bugs, you know, in the interaction between Overcast and FC model 2,

00:09:43 ◼   ► then I would hope that you would write a unit test that covers that bug.

00:09:47 ◼   ► So this way you know

00:09:48 ◼   ► you will never have a regression on this because this unit test is there as your parachute and as long as you

00:09:53 ◼   ► occasionally remember to run the unit test,

00:09:56 ◼   ► it will always tell you, "Oh, hold on,

00:09:58 ◼   ► You just screwed this other thing up from six months ago that you really didn't want to screw up again

00:10:03 ◼   ► That's why you wrote another test for it

00:10:04 ◼   ► and that that that is a really powerful feeling and even though I actually very rarely write unit tests as much as I I

00:10:10 ◼   ► try to speak the gospel but when I do I'm always happy for it because

00:10:15 ◼   ► It is not infrequent that I'll make a change, you know over here on my right hand side

00:10:20 ◼   ► So to speak and then something way the hell over on my left hand side says, excuse me. Excuse me

00:10:25 ◼   ► I just broke do you want to fix me too, please?

00:10:27 ◼   ► And it's a really, really nice, comforting feeling,

00:10:32 ◼   ► knowing that you have that parachute of awareness

00:10:35 ◼   ► that will tell you that, hey,

00:10:37 ◼   ► everything is still on the up and up

00:10:38 ◼   ► to the best that we can tell.

00:10:40 ◼   ► And I really care for it for that.

00:10:42 ◼   ► Writing test is not glamorous.

00:10:44 ◼   ► It's not terribly fun.

00:10:45 ◼   ► It's kind of busy work.

00:10:47 ◼   ► But for me, for this sort of a thing particularly,

00:10:51 ◼   ► I find the juice is worth a squeeze.

00:10:53 ◼   ► And I hope that you do,

00:10:55 ◼   ► even just for these sorts of projects,

00:10:57 ◼   ► and even if not, you know, overcast proper.

00:11:00 ◼   ► - So one thing I'm also doing with this,

00:11:02 ◼   ► which I think will help me remember to run the tests,

00:11:06 ◼   ► I'm using this opportunity to also learn

00:11:09 ◼   ► Swift package manager, and I'm making,

00:11:11 ◼   ► I've already made it a Swift package.

00:11:14 ◼   ► I don't quite know how to use that yet,

00:11:17 ◼   ► but I'm no longer editing like a test project,

00:11:22 ◼   ► I'm actually directly editing the package itself,

00:11:25 ◼   ► and just, you know, like running the test,

00:11:26 ◼   ► modifying the files within the package and everything,

00:11:29 ◼   ► 'cause it's all built in there.

00:11:30 ◼   ► I don't know if you've ever worked on a Swift package.

00:11:32 ◼   ► It's actually pretty nice in Xcode.

00:11:33 ◼   ► - Yeah, yeah, yeah.

00:11:34 ◼   ► - And it's one of those things where there's no real manual.

00:11:37 ◼   ► So you just, you do what we always do with that,

00:11:39 ◼   ► with all Apple modern developer stuff.

00:11:40 ◼   ► It's like you search the web and you find like a

00:11:43 ◼   ► Hacking with Swift article or something.

00:11:44 ◼   ► And you find some article of like,

00:11:46 ◼   ► how to use Swift package manager,

00:11:47 ◼   ► and it tells you all like the init commands

00:11:49 ◼   ► and what all the different lines do.

00:11:50 ◼   ► And eventually I'm like, hey, I wonder if I can just,

00:11:54 ◼   ► can I open this .swift, this package of .swift file,

00:11:58 ◼   ► if I open this in Xcode, does it do anything cool?

00:12:00 ◼   ► And it turns out, yes, it does everything.

00:12:02 ◼   ► That's how you're supposed to be doing it.

00:12:04 ◼   ► So anyway, yeah, it's been interesting.

00:12:08 ◼   ► I'm using this as an opportunity to learn lots of new stuff

00:12:11 ◼   ► and hopefully bring my skills

00:12:13 ◼   ► and then after that my app forward

00:12:16 ◼   ► from having been stuck in the past for a very long time.

00:12:19 ◼   ► Do you plan to use this as the girders,

00:12:24 ◼   ► the underpinnings of the Fire Island app,

00:12:27 ◼   ► or is this strictly for Overcast?

00:12:29 ◼   ► - No, the Fire Island app doesn't really

00:12:30 ◼   ► need a database locally.

00:12:31 ◼   ► It's just pulling stuff off a website and showing it.

00:12:34 ◼   ► So it doesn't need it, but this is for Overcast

00:12:37 ◼   ► and whatever I do in the future.

00:12:39 ◼   ► I hope, my intention with this is for this library

00:12:44 ◼   ► to last me my entire Swift programming career,

00:12:48 ◼   ► however long that is.

00:12:49 ◼   ► it's such a foundational building block

00:12:51 ◼   ► of your local database layer.

00:12:54 ◼   ► I have my web version of this

00:12:56 ◼   ► that powers all of my backends in PHP.

00:12:59 ◼   ► I've been using that same thing for over a decade.

00:13:03 ◼   ► As long as I use PHP to make a web backend,

00:13:06 ◼   ► I have no reason not to use that library.

00:13:08 ◼   ► This is hopefully my Swift version of that.

00:13:11 ◼   ► As long as it makes sense for me to be writing

00:13:15 ◼   ► local SQLite databases with Swift,

00:13:18 ◼   ► I hope to be doing it with this library.

00:13:20 ◼   ► So I'm taking the time to really get things right

00:13:22 ◼   ► and frankly I'm really happy with it so far.

00:13:24 ◼   ► Like I haven't, the only thing is I haven't used it

00:13:26 ◼   ► at the application level yet and I think it will be annoying

00:13:29 ◼   ► sometimes to have to do everything through an actor

00:13:32 ◼   ► and have to do everything in an async context.

00:13:34 ◼   ► That will be annoying.

00:13:36 ◼   ► - It will be.

00:13:37 ◼   ► I think it was the right call, what you've done,

00:13:40 ◼   ► but it will be annoying because as with RxBeforeIt

00:13:43 ◼   ► or in CombineAfter, once you start going async await

00:13:47 ◼   ► and especially once you start really embracing actors,

00:13:49 ◼   ► it has this tendency to like spread like a virus

00:13:52 ◼   ► throughout all your code.

00:13:53 ◼   ► And after a while you get mostly used to it,

00:13:56 ◼   ► but it is a little gross in that regard.

00:13:59 ◼   ► That being said, I think that all the other things

00:14:03 ◼   ► that come with it, all the protections,

00:14:04 ◼   ► all the safety, et cetera,

00:14:06 ◼   ► and how it is reasonably straightforward

00:14:08 ◼   ► to make sure that you're not doing anything dumb,

00:14:11 ◼   ► I think all that's worth it.

00:14:13 ◼   ► But you're right, it does tend to kind of infect everything,

00:14:16 ◼   ► which is a little bit of a bummer.

00:14:18 ◼   ► - I'm gonna make a feature pitch for you

00:14:19 ◼   ► while you're in there working on this library.

00:14:22 ◼   ► Add, throw in some kind of metrics or telemetry

00:14:26 ◼   ► for your debug mode where you can basically like

00:14:29 ◼   ► log in time every single query you run, all right?

00:14:32 ◼   ► And obviously you're not gonna run that

00:14:33 ◼   ► in the release version of your app, most likely,

00:14:37 ◼   ► but since you're down there in the library now

00:14:39 ◼   ► and it knows when it runs any query

00:14:41 ◼   ► and no one else is running queries except for this library,

00:14:44 ◼   ► make a way to track literally every single one

00:14:46 ◼   ► them with all the timing and stat information you can because that will probably help you

00:14:50 ◼   ► when your app feels slow and you can't figure out why or especially with the actor stuff

00:14:54 ◼   ► you can't figure out is there a log jam of like backup of requests or does one request

00:14:58 ◼   ► take a long time and it was hogging the actor, you know, with the database handle not being

00:15:03 ◼   ► able to be used concurrently, you do potentially have a bottleneck there and being able to

00:15:07 ◼   ► sort of trace that back to the origin of like who put this query in and which query is slow,

00:15:11 ◼   ► it will probably be really useful.

00:15:13 ◼   ► And it's not, you know, you can do it in a janky way because who cares, whatever, it's

00:15:16 ◼   ► it's just your library, but you're right at that

00:15:20 ◼   ► focal point of all of the database activity right now.

00:15:23 ◼   ► You're in that code right now, so I suggest adding it

00:15:26 ◼   ► 'cause it can be handy.

00:15:27 ◼   ► - Yeah, smart, yeah, I already have a thing where

00:15:28 ◼   ► it can just log every query, which has been very helpful

00:15:31 ◼   ► during development, but yeah, you're right,

00:15:32 ◼   ► actually timing it is a good idea as well.

00:15:35 ◼   ► - Well, this is awesome.

00:15:36 ◼   ► This is Thanksgiving gift from you to me,

00:15:38 ◼   ► just telling me that you've been--

00:15:40 ◼   ► - It's the gift he gives himself.

00:15:41 ◼   ► Unit tests are the gift you give yourself.

00:15:44 ◼   ► - Yep, that's right.

00:15:45 ◼   ► The only downside is that I still have to also figure out

00:15:48 ◼   ► how can this be accessed from Objective-C?

00:15:51 ◼   ► Right.

00:15:54 ◼   ► - Yikes.

00:15:55 ◼   ► - It's gonna be ugly.

00:15:56 ◼   ► - Do you need it to?

00:15:57 ◼   ► How much of Overcast still remains in Objective-C?

00:16:01 ◼   ► - Almost the entire bottom of it.

00:16:03 ◼   ► Almost the entire data layer.

00:16:05 ◼   ► And there's different subsystems of Overcast

00:16:08 ◼   ► that are written in Objective-C

00:16:09 ◼   ► that need to access the database.

00:16:11 ◼   ► For instance, one of them is my full text search engine.

00:16:13 ◼   ► I wrote all that also using, based on SQLite,

00:16:16 ◼   ► but I wrote all that in JETVC now.

00:16:18 ◼   ► I could rewrite that.

00:16:19 ◼   ► It would be a lot less code if I rewrote it in Swift

00:16:21 ◼   ► with modern stuff and with this.

00:16:23 ◼   ► I could save a bunch of code, but again,

00:16:27 ◼   ► it's just like how much is it worth rewriting something

00:16:30 ◼   ► that already works?

00:16:32 ◼   ► I hopefully eventually will do that,

00:16:33 ◼   ► but I don't wanna have to do that

00:16:35 ◼   ► before I start using this as my main data store.

00:16:38 ◼   ► So there are ways around it.

00:16:39 ◼   ► I could theoretically, what's actually compatible,

00:16:43 ◼   ► FC model and the new engine both use

00:16:47 ◼   ► the SQLite update hook function to detect

00:16:51 ◼   ► if the table is changed through some other means

00:16:53 ◼   ► that is not them and fire off the like,

00:16:56 ◼   ► something has changed listeners.

00:16:58 ◼   ► And so I could theoretically maybe have FC model

00:17:02 ◼   ► and this new engine both accessing the same database.

00:17:05 ◼   ► - Oh, yikes.

00:17:06 ◼   ► - I shouldn't be doing that.

00:17:07 ◼   ► I hope not to need to do that.

00:17:09 ◼   ► - No, why, why is that not bad?

00:17:11 ◼   ► That's the whole point of a database,

00:17:14 ◼   ► it's okay to have multiple interfaces to the same tables.

00:17:17 ◼   ► - I mean, yeah, it's not great if you can avoid that

00:17:20 ◼   ► with SQLite, it's not great to have it.

00:17:22 ◼   ► - I feel like it's a bit of a code smell,

00:17:23 ◼   ► to have multiple things accessing.

00:17:25 ◼   ► Like, you're right, it's not inextricably wrong,

00:17:28 ◼   ► it's just not wrong, but it's just,

00:17:31 ◼   ► I don't know, it smells bad, you know?

00:17:33 ◼   ► - Yeah, so what I'm probably gonna do is

00:17:35 ◼   ► I'm probably going to make a separate file

00:17:40 ◼   ► that is only the Objective-C interface

00:17:42 ◼   ► that is its own entire set of separate classes

00:17:45 ◼   ► to access this stuff.

00:17:46 ◼   ► And it'll have completion handlers, that kind of stuff.

00:17:49 ◼   ► And just have that be this own separate file off to the side

00:17:54 ◼   ► that when the time comes, I don't need it anymore,

00:17:58 ◼   ► I can get rid of it.

00:17:59 ◼   ► - I'd be very curious to hear an update

00:18:01 ◼   ► if you do go to the route of at least trying

00:18:04 ◼   ► to get the old Objective-C stuff to talk with FC model two,

00:18:09 ◼   ► that's all async await and all that, and actors.

00:18:12 ◼   ► Like I don't know off the top of my head

00:18:14 ◼   ► what the model, or that's a loaded term,

00:18:17 ◼   ► I don't know what the like best operating procedures are

00:18:21 ◼   ► for doing that sort of thing.

00:18:21 ◼   ► I don't know if there's even a story about it at all.

00:18:24 ◼   ► - Oh, there is.

00:18:25 ◼   ► I remember seeing on Twitter recently,

00:18:26 ◼   ► there was some people were discussing this

00:18:27 ◼   ► and there was some person who I believe works at Apple

00:18:30 ◼   ► was mentioning that,

00:18:32 ◼   ► We're talking about Swift calling Objective-C.

00:18:34 ◼   ► And I think the person was saying that actually basically

00:18:38 ◼   ► putting Objective-C wrappers around what

00:18:40 ◼   ► is Swift under the covers has become common practice at Apple

00:18:43 ◼   ► in terms of--

00:18:45 ◼   ► I think it was the argument about is Apple writing

00:18:47 ◼   ► Objective-C APIs versus Swift APIs.

00:18:48 ◼   ► And this person was like, a surprising amount of time.

00:18:51 ◼   ► We write the functionality in Swift,

00:18:52 ◼   ► and then we wrap it in a candy coating of Objective-C.

00:18:56 ◼   ► And so you think you've got this Objective-C API,

00:18:58 ◼   ► but really it's just a thin wrap around the Swift code

00:19:00 ◼   ► that we actually wrote.

00:19:01 ◼   ► it's possible somehow.

00:19:02 ◼   ► - Totally, but when you start talking async await

00:19:05 ◼   ► or combine, which isn't relevant in this case, it gets--

00:19:07 ◼   ► - Well, but he was just gonna do it

00:19:09 ◼   ► with completion handlers, right?

00:19:10 ◼   ► He's doing stuff under the covers to hide the fact

00:19:13 ◼   ► that it is doing all of that async stuff

00:19:15 ◼   ► and just presenting it to the Objective-C world

00:19:17 ◼   ► as the old style, like, you're gonna get a callback

00:19:19 ◼   ► when I'm done. - Yeah, that's fair.

00:19:20 ◼   ► - Yeah, like, I could theoretically, like,

00:19:22 ◼   ► block the actor waiting for it,

00:19:24 ◼   ► but I really don't wanna have to,

00:19:26 ◼   ► I mean, chances are, unfortunately,

00:19:28 ◼   ► chances are I probably will at some point have to do that,

00:19:30 ◼   ► where I will need to fetch something synchronously,

00:19:33 ◼   ► or I'll need to fetch something outside of an async context,

00:19:37 ◼   ► just for some API or some functionality.

00:19:39 ◼   ► This is why, this is no small feat to switch over to this.

00:19:42 ◼   ► This is gonna be a long process that's going to involve

00:19:46 ◼   ► significant rewrites of significant parts

00:19:48 ◼   ► of the app and the UI.

00:19:50 ◼   ► And this is why this has been such a long time coming,

00:19:53 ◼   ► that I know how big of a project this is.

00:19:55 ◼   ► And it's not gonna be done anytime soon.

00:19:58 ◼   ► So what I'm gonna start doing is using this library

00:20:01 ◼   ► for certain subsystems of the app

00:20:04 ◼   ► that are totally separate from the main database.

00:20:06 ◼   ► So for instance, part of the app I have the ability

00:20:09 ◼   ► to track what your data usage is,

00:20:12 ◼   ► like by podcast and by episode.

00:20:14 ◼   ► If you go into the settings screen,

00:20:16 ◼   ► there's a data usage area.

00:20:17 ◼   ► And that's basically just its own little SQLite database.

00:20:20 ◼   ► And that whole thing is, I think it's already in Swift.

00:20:23 ◼   ► At least if not, it's close.

00:20:25 ◼   ► That would be fairly easy to move forward.

00:20:28 ◼   ► However, it's not necessarily SwiftUI,

00:20:30 ◼   ► and it's just, this is all intertwined.

00:20:34 ◼   ► It's like, I'm making this whole thing to make SwiftUI

00:20:38 ◼   ► and that whole era of the app better and more modern

00:20:41 ◼   ► and easier and faster and everything else,

00:20:43 ◼   ► make things more responsive,

00:20:45 ◼   ► having fewer scroll hooks and stuff like that.

00:20:47 ◼   ► Like there's all sorts of reasons I'm doing this,

00:20:49 ◼   ► but it's so much easier to write a new app

00:20:53 ◼   ► around this new way of doing things

00:20:55 ◼   ► than to adapt an old app to it.

00:20:58 ◼   ► So it's gonna be a while,

00:20:59 ◼   ► and it's gonna involve significant rewrites

00:21:01 ◼   ► before I can actually have this thing

00:21:02 ◼   ► be my only data store.

00:21:04 ◼   ► We are brought to you this week by Backblaze.

00:21:08 ◼   ► Unlimited cloud backup for Macs and PCs

00:21:11 ◼   ► for just seven bucks a month.

00:21:13 ◼   ► There is no catch, there is no gotcha,

00:21:15 ◼   ► there are really no limits.

00:21:17 ◼   ► Seven bucks a month, unlimited space for your Mac and PC.

00:21:20 ◼   ► Any drive that is in it or plugged into it,

00:21:23 ◼   ► they will back up.

00:21:25 ◼   ► So basically anything but network drives,

00:21:26 ◼   ► which is really great.

00:21:27 ◼   ► You could have, I have had, multiple terabytes

00:21:31 ◼   ► of either internal and/or external drives on one computer.

00:21:34 ◼   ► I believe I was once backing up eight terabytes

00:21:37 ◼   ► from one computer to Backblaze,

00:21:38 ◼   ► and it was still that same seven bucks a month.

00:21:42 ◼   ► I love Backblaze, it's a great backup service.

00:21:44 ◼   ► They have nearly two exabytes of data storage

00:21:47 ◼   ► under their management.

00:21:48 ◼   ► They've restored 55 billion files.

00:21:50 ◼   ► And what's great about them is that this is cloud backup,

00:21:52 ◼   ► so anything that happens to your desk

00:21:55 ◼   ► or your physical computer or your physical office or house

00:21:57 ◼   ► doesn't affect their backup.

00:21:59 ◼   ► So you are protected on so many levels

00:22:01 ◼   ► from things like fires and floods

00:22:03 ◼   ► and data loss and viruses and stuff

00:22:05 ◼   ► because whatever happens to your internal office stuff

00:22:08 ◼   ► won't reach them.

00:22:09 ◼   ► It's just wonderful.

00:22:10 ◼   ► They have all these features like web restore.

00:22:12 ◼   ► You can restore single files or whole directories

00:22:14 ◼   ► or your entire thing.

00:22:16 ◼   ► If that's too much to do over the web,

00:22:18 ◼   ► they have a program where you can have a hard drive

00:22:20 ◼   ► mailed to you and then if you return that hard drive

00:22:23 ◼   ► back to them, they don't charge you for it.

00:22:26 ◼   ► It's just amazing.

00:22:27 ◼   ► See for yourself at backblaze.com/atp.

00:22:31 ◼   ► You gotta get started with Cloud Backup

00:22:32 ◼   ► and you will not regret it.

00:22:34 ◼   ► It is not only a great insurance for your data,

00:22:37 ◼   ► but it's great convenience when you need something,

00:22:39 ◼   ► you know, if you happen to be traveling

00:22:41 ◼   ► and you want something off your home computer,

00:22:42 ◼   ► you can just pull it off Backblaze.

00:22:43 ◼   ► It's super great.

00:22:44 ◼   ► See for yourself once again, backblaze.com/atp.

00:22:48 ◼   ► All sorts of great features they've added.

00:22:49 ◼   ► They now have a program, you can increase

00:22:51 ◼   ► retention history to a year for just two bucks more a month,

00:22:55 ◼   ► it's a great service.

00:22:56 ◼   ► Backblaze.com/ATP, seven bucks a month,

00:22:59 ◼   ► unlimited cloud backup for Mac and PC.

00:23:01 ◼   ► Thank you so much to Backblaze for sponsoring our show.

00:23:04 ◼   ► - All right, let's do some follow up.

00:23:09 ◼   ► Hey, a lot of people were really upset

00:23:12 ◼   ► that in Ventura, network locations went away.

00:23:16 ◼   ► And I was vaguely familiar with this being a thing,

00:23:20 ◼   ► but I never used it and I don't know much about it.

00:23:23 ◼   ► So I guess, Jon, could you kind of give me

00:23:25 ◼   ► the two-second overview of what this was

00:23:28 ◼   ► and then tell me about some new news

00:23:29 ◼   ► we've gotten about it, please?

00:23:31 ◼   ► - Yeah, I didn't use this feature much,

00:23:33 ◼   ► but it reminded me of, I think it was called

00:23:35 ◼   ► Location Manager back in Classic and Mac OS.

00:23:37 ◼   ► Basically, the idea is when I have my computer,

00:23:39 ◼   ► think of it as laptop, right?

00:23:40 ◼   ► When I have my computer in a particular location,

00:23:42 ◼   ► I want the networking setup to be different.

00:23:44 ◼   ► So when I'm in the office, I wanna be on the VPN

00:23:48 ◼   ► and have this thing set up this way.

00:23:50 ◼   ► When I'm at home, I want to be on my home Wi-Fi

00:23:52 ◼   ► and all sorts of other stuff like that.

00:23:54 ◼   ► - Well, yeah, there's a great app called Control Plane

00:23:57 ◼   ► that did this years and years and years ago.

00:23:59 ◼   ► Not to say it was better, worse, or different,

00:24:01 ◼   ► but it was a similar idea.

00:24:02 ◼   ► You could set default printers,

00:24:04 ◼   ► and I think you could set Wi-Fi networks

00:24:06 ◼   ► and all sorts of random stuff.

00:24:07 ◼   ► - Yeah, I think this is just for networking, though.

00:24:09 ◼   ► But anyway, in Ventura, like a couple of things

00:24:12 ◼   ► that we have talked about in the past,

00:24:13 ◼   ► they disappeared from system settings.

00:24:15 ◼   ► It used to be in System Preferences in the Network pane,

00:24:17 ◼   ► and then it was no longer in system settings.

00:24:19 ◼   ► So this story on the Robservatory says that,

00:24:23 ◼   ► well, two things.

00:24:24 ◼   ► One, if you had network locations and you run Ventura,

00:24:27 ◼   ► you can still find them.

00:24:28 ◼   ► Apparently in the Apple menu, if you go to location,

00:24:32 ◼   ► you'll see the locations that you entered

00:24:35 ◼   ► back before Ventura still listed there, right?

00:24:37 ◼   ► But two, if you want to add, delete, or modify locations,

00:24:42 ◼   ► even though there's no GUI to do it,

00:24:44 ◼   ► kind of like what were we talking about before?

00:24:45 ◼   ► There was no GUI and there was a command line.

00:24:47 ◼   ► It was the scheduled startup and shutdown stuff.

00:24:50 ◼   ► Just like that, there is a command line thing

00:24:53 ◼   ► you can use from the terminal to mess with this.

00:24:55 ◼   ► The command is called network setup.

00:24:57 ◼   ► I tried to find a URL to an online man page

00:25:00 ◼   ► of network setup and there's a bunch of them

00:25:02 ◼   ► from sites that are not Apple.

00:25:04 ◼   ► Apparently Apple no longer has webpage versions

00:25:08 ◼   ► of all the man pages that are part of Mac OS/Darwin

00:25:11 ◼   ► or whatever, but anyway, we'll link you to the article.

00:25:13 ◼   ► It shows the relevant options to the command

00:25:16 ◼   ► where you can list locations, create a location,

00:25:18 ◼   ► delete a location, so on and so forth.

00:25:19 ◼   ► So I'm not so sure,

00:25:21 ◼   ► but since they left all the functionality in there,

00:25:23 ◼   ► is it just they didn't get time

00:25:24 ◼   ► to implement this in the GUI?

00:25:26 ◼   ► Or they decided it's not important enough to have a GUI

00:25:29 ◼   ► and the people who really care about it

00:25:30 ◼   ► will just use the command line?

00:25:32 ◼   ► But yeah, this is the second feature

00:25:33 ◼   ► that's like that in Ventura

00:25:34 ◼   ► and I'm not sure what Apple is trying to say with this.

00:25:37 ◼   ► - It's not just those two.

00:25:38 ◼   ► First of all, I could have sworn in maybe--

00:25:40 ◼   ► - Oh, it was the date format too, your thing.

00:25:42 ◼   ► - That's exactly what I was gonna bring up.

00:25:44 ◼   ► But before we get there, I thought that Snell had gotten something from Apple saying yes

00:25:51 ◼   ► or no, whether it was deliberate or not, but I don't remember what the answer was.

00:25:55 ◼   ► I might be making this up entirely.

00:25:58 ◼   ► That might have been about Ventura 13.0, like Apple just saying, "No, we didn't forget to

00:26:02 ◼   ► put it in 13.0, we intentionally didn't."

00:26:04 ◼   ► But that really doesn't say anything about, "All right, but what about for the future?"

00:26:08 ◼   ► The fact that the functionality is there with the command line tool, in 14.0, does it stay

00:26:13 ◼   ► the same as it is like now or do they make a GUI for it or do they remove the command

00:26:16 ◼   ► line tool? That's the mystery that we'll see.

00:26:19 ◼   ► Yeah, and then you had brought up and I was about to do the same. So I'm known as the

00:26:24 ◼   ► petulant Fahrenheit guy because Fahrenheit's better than Celsius. But what people don't

00:26:29 ◼   ► seem to understand is that I don't have any particular love for any other imperial measure.

00:26:34 ◼   ► Like all of them are garbage. Feet, dumb, pounds, stupid. They're all terrible. Every

00:26:38 ◼   ► single one of them is terrible. My perfect world, when I am king, I will say metric all

00:26:43 ◼   ► the things except ambient air temperature. If you want to put the oven in Celsius, that's

00:26:48 ◼   ► fine. I don't care. But outside temperatures in Fahrenheit, dammit, that's what makes the

00:26:52 ◼   ► most sense. Anyway, one of the things that Americans get completely wrong is that we

00:26:56 ◼   ► do month to year, not day month years. So, what's day, the 21st, 20th, something like

00:27:01 ◼   ► that? I don't even know. It's all blur. It's 21st. So Americans would write 11/21/22, which

00:27:07 ◼   ► is dumb. It should be 21/11/22. Why? Because you get the most specific thing first, which

00:27:15 ◼   ► is the day, then the slightly less specific thing next, that's the month, and the least

00:27:20 ◼   ► specific thing last, that's the year. At this point, all the nerds are getting very upset

00:27:25 ◼   ► at me, "Oh, you have to 8601 or 18 or whatever, no, it's 8601. You have to 8601 everything,

00:27:30 ◼   ► that's the only true form of the..." Okay, sure, if you're storing file names, then yes,

00:27:35 ◼   ► go year first, but for anything else,

00:27:38 ◼   ► when you're not in like a database,

00:27:39 ◼   ► or if it's not a file name,

00:27:42 ◼   ► the year is almost always contextually obvious.

00:27:44 ◼   ► So start with the day, man.

00:27:46 ◼   ► Day, month, year, that's the way it should be.

00:27:49 ◼   ► - Disagree, year, month, day.

00:27:51 ◼   ► - We've talked about this before,

00:27:52 ◼   ► and like regardless of the logic of Casey's argument,

00:27:56 ◼   ► whether you agree with it,

00:27:57 ◼   ► the fact is that he lives in America,

00:27:59 ◼   ► and by doing this, he's essentially,

00:28:01 ◼   ► speaking of booby traps, like the bee package in Pearl,

00:28:04 ◼   ► It's like people who have a QWERTY keyboard, but they use Dvorak key layout.

00:28:09 ◼   ► Their computer is booby-trapped.

00:28:10 ◼   ► So Casey's computer and life are booby-trapped because any other person who lives in the

00:28:16 ◼   ► same country or was raised in the same culture as him, sits down at his computer, is going

00:28:20 ◼   ► to be bamboozled by any ambiguous date because they're all going to think it's month, day,

00:28:26 ◼   ► year, because why wouldn't it be?

00:28:28 ◼   ► We're in America.

00:28:29 ◼   ► But no, it's a trap.

00:28:31 ◼   ► unless the day is over 12, you're not gonna be able to figure it out from context.

00:28:35 ◼   ► So his whole computer is screwed up and he should not do this.

00:28:39 ◼   ► Even if I agree with him, which I don't, that it's the better system, he should move to

00:28:42 ◼   ► a country where everybody does it so his life isn't booby-trapped.

00:28:45 ◼   ► Oh, I see.

00:28:47 ◼   ► I see.

00:28:48 ◼   ► I'm getting kicked out of the country of my birth simply because you don't like my date

00:28:51 ◼   ► format.

00:28:52 ◼   ► That's right, because it's like driving on the other side of the road.

00:28:55 ◼   ► It's like, "I think everyone should drive on the left side of the road."

00:28:57 ◼   ► Well, you have to go to another country for that.

00:28:58 ◼   ► Don't do it here.

00:28:59 ◼   ► - But that's also, that's wrong.

00:29:01 ◼   ► That's demonstrably wrong.

00:29:02 ◼   ► You should be on the right side of the road.

00:29:04 ◼   ► - I'm setting aside whether it's right or wrong,

00:29:06 ◼   ► you like it or you don't.

00:29:07 ◼   ► You have to go with the flow in terms of conventions.

00:29:11 ◼   ► That's why they're conventions.

00:29:13 ◼   ► Anyway, go on.

00:29:15 ◼   ► This is not the point of the story.

00:29:16 ◼   ► The point of the story is that Mac OS

00:29:18 ◼   ► ill-advisedly gave you a way

00:29:20 ◼   ► to booby-trap your life in this manner.

00:29:22 ◼   ► - Yeah, well, so it used to be that you could dig into,

00:29:25 ◼   ► like, I forget exactly where it was in systems preferences,

00:29:27 ◼   ► almost at settings, but in system preferences,

00:29:29 ◼   ► could dig into somewhere in region settings.

00:29:31 ◼   ► And they had these little pills that you could drag around

00:29:33 ◼   ► and format things in whatever bananas way you wanted,

00:29:37 ◼   ► including putting year--

00:29:38 ◼   ► why would you put year first for regular use?

00:29:40 ◼   ► For files, sure.

00:29:41 ◼   ► For databases, sure.

00:29:42 ◼   ► But--

00:29:43 ◼   ► And to be clear, what you're doing

00:29:44 ◼   ► is you're telling Mac OS, hey, when you display a date,

00:29:48 ◼   ► how should you display it?

00:29:49 ◼   ► Correct.

00:29:49 ◼   ► It was like a little construction kit, where

00:29:51 ◼   ► you had each element, and you could--

00:29:53 ◼   ► a little GUI for saying, I want to have the year, then the day,

00:29:56 ◼   ► then the month.

00:29:57 ◼   ► I want to have the month, then the day, the year.

00:29:58 ◼   ► whatever way you wanted to do it.

00:29:59 ◼   ► I think you could even put whatever characters

00:30:01 ◼   ► you wanted between it, like slashes or hyphens, right?

00:30:03 ◼   ► Yeah, so that's what you're talking about.

00:30:05 ◼   ► This is a GUI that was in Mac OS X

00:30:07 ◼   ► since pretty early on and disappeared in Ventura.

00:30:11 ◼   ► - Yes, and also your folklore.org

00:30:13 ◼   ► references acknowledged.

00:30:14 ◼   ► Anyway, so it used to be that you could

00:30:17 ◼   ► drag these pills around, do what you wanted,

00:30:18 ◼   ► and then I went, I actually was about to write

00:30:21 ◼   ► a bug report for, I believe they were a past sponsor

00:30:23 ◼   ► of Banktivity, which is my financial management software,

00:30:26 ◼   ► and 'cause I realized all of a sudden

00:30:27 ◼   ► in the last couple of months,

00:30:29 ◼   ► it's no longer honoring day, month, year.

00:30:32 ◼   ► - But you only realize that

00:30:33 ◼   ► after the 12th day of the month, right?

00:30:34 ◼   ► - No, stop it.

00:30:35 ◼   ► So anyway, I just hadn't really paid close attention to it.

00:30:38 ◼   ► Then I could, well, this ain't right.

00:30:40 ◼   ► It happened a couple months ago.

00:30:41 ◼   ► They must've made some sort of, wait a second.

00:30:44 ◼   ► Where else can I look and see, oh no.

00:30:47 ◼   ► Oh no, the whole system's wrong.

00:30:49 ◼   ► Oh no, this must be something with insurance.

00:30:51 ◼   ► So I went to go into system settings

00:30:53 ◼   ► and look at what the situation was

00:30:55 ◼   ► and sure enough, I couldn't find it.

00:30:57 ◼   ► And what do you do up until a week ago?

00:30:59 ◼   ► What do you do when you have these sorts of problems?

00:31:01 ◼   ► Well, you ask about it on Twitter.

00:31:02 ◼   ► And some very helpful people on Twitter said,

00:31:04 ◼   ► "Yes, you're right, it's gone."

00:31:06 ◼   ► But a handful of people pointed me

00:31:09 ◼   ► to a handful of different places.

00:31:10 ◼   ► And lo and behold, there are some defaults,

00:31:13 ◼   ► write commands that you can do

00:31:15 ◼   ► in order to set Apple ICU date format strings.

00:31:19 ◼   ► And if you set four of them,

00:31:23 ◼   ► then you can get things just the way you want them,

00:31:25 ◼   ► which is the correct way, which is day, month, year,

00:31:27 ◼   ► despite what these heathens say.

00:31:29 ◼   ► So yeah, I'll put a link in the show notes

00:31:30 ◼   ► so you can check that out.

00:31:31 ◼   ► - And same question about this one.

00:31:33 ◼   ► Is that, are those, you know,

00:31:35 ◼   ► PLIS keys gonna go away in, you know, Mac OS 14?

00:31:38 ◼   ► Or are they gonna be there forever?

00:31:39 ◼   ► We'll see.

00:31:40 ◼   ► - We are brought to you this week by Memberful,

00:31:44 ◼   ► the easiest way to sell memberships to your audience.

00:31:47 ◼   ► Memberful is a great option.

00:31:49 ◼   ► It's used by some of the biggest creators on the web

00:31:51 ◼   ► because selling memberships is a great way

00:31:54 ◼   ► to build a new revenue stream, to diversify your revenue,

00:31:57 ◼   ► and frankly to serve your audience in ways

00:31:59 ◼   ► that they might want, like extra bonus content.

00:32:01 ◼   ► Maybe your business and financial situation

00:32:03 ◼   ► has changed in the past year,

00:32:04 ◼   ► maybe you need a proven solution that's quick to launch,

00:32:06 ◼   ► you can stabilize your business and grow.

00:32:08 ◼   ► Memberful allows you to build sustainable,

00:32:10 ◼   ► recurring revenue through membership.

00:32:12 ◼   ► And they handle all the hard stuff for you,

00:32:15 ◼   ► so you can focus on what you do best

00:32:17 ◼   ► and earn revenue quickly.

00:32:19 ◼   ► They have everything you need to run a membership program,

00:32:20 ◼   ► including optimized checkout, analytics,

00:32:23 ◼   ► free trial support, Apple Pay support,

00:32:25 ◼   ► gift subscriptions, member management, so much more.

00:32:28 ◼   ► That's really kind of a pain in the butt to build yourself.

00:32:30 ◼   ► They have all of that built in

00:32:32 ◼   ► and they seamlessly integrate with the tools you already use

00:32:36 ◼   ► with lots of fully managed integrations

00:32:38 ◼   ► with the most popular services and tools out there.

00:32:40 ◼   ► So you probably don't even have to do that much

00:32:42 ◼   ► to integrate them.

00:32:43 ◼   ► And if you want, of course, they have great support

00:32:45 ◼   ► to help you get going, help you integrate it,

00:32:47 ◼   ► help you optimize your membership.

00:32:49 ◼   ► But one thing I love about them is that

00:32:51 ◼   ► they align themselves with you incentive wise.

00:32:54 ◼   ► And so they don't wanna take control of your membership,

00:32:56 ◼   ► they don't wanna take all your money,

00:32:58 ◼   ► they make money when you make money

00:33:00 ◼   ► and they want you to succeed.

00:33:02 ◼   ► And you always have access with Memberful

00:33:05 ◼   ► to your audience, all of your branding,

00:33:08 ◼   ► and your membership.

00:33:08 ◼   ► Payments even go directly to your own Stripe account,

00:33:11 ◼   ► which I love.

00:33:12 ◼   ► So get started for free with Memberful

00:33:14 ◼   ► with no credit card required at memberful.com/atp.

00:33:19 ◼   ► Once again, memberful.com/ATP to get that free trial go,

00:33:23 ◼   ► no credit card required.

00:33:24 ◼   ► Thank you so much to Memberful for making it super easy

00:33:27 ◼   ► to run membership programs and for sponsoring our show.

00:33:30 ◼   ► - Tell me about man pages and preview, please.

00:33:36 ◼   ► - This just came up because I was trying to find a link

00:33:38 ◼   ► for the show notes of like a nice apple.com URL

00:33:42 ◼   ► for the man page for network setup,

00:33:44 ◼   ► and I came across another thing that was related

00:33:47 ◼   ► in my travels, which was people complaining about another regression in Ventura where

00:33:52 ◼   ► preview no longer renders postscript files, which you might not care about because when

00:33:57 ◼   ► do I encounter a postscript file, but a lot of people, like the man command that shows

00:34:01 ◼   ► manual pages could spit out postscript and you could just pipe it to the preview thing

00:34:06 ◼   ► and people had aliases set up that are just like, "Oh, I don't want to read a man page

00:34:08 ◼   ► in the terminal in a monospace font.

00:34:10 ◼   ► I want to read it in proportional font and rich text."

00:34:13 ◼   ► I have this thing that runs command on man pages and then spits out PostScript and then

00:34:20 ◼   ► I just pipe it to an open command and open the preview app.

00:34:24 ◼   ► And that's not working because preview can't render PostScript in Ventura, which is kind

00:34:28 ◼   ► of cruddy, but anyway, time marches on.

00:34:29 ◼   ► Well, you could also generate manual pages as PDFs in Ventura, so you just need to change

00:34:35 ◼   ► your alias.

00:34:36 ◼   ► So people who have never done this are interested in trying it out, we'll put a link to this

00:34:40 ◼   ► I just posted scriptingos10.com, unfortunate domain name there, but scriptingos10.com where

00:34:47 ◼   ► it shows you how to set up an alias.

00:34:50 ◼   ► Like everything else, it just assumes that you run Bash or something similar, but if

00:34:55 ◼   ► you're weird like me, you can adapt it to whatever shell you happen to run.

00:34:58 ◼   ► And then you too can run man commands from the terminal and have them open in preview

00:35:04 ◼   ► as PDFs.

00:35:05 ◼   ► Tell me about your iPhone cases.

00:35:08 ◼   ► got my second, I ordered two iPhone cases and the second one finally arrived.

00:35:12 ◼   ► I got the Ryan London case a while ago and it's been on my phone ever since.

00:35:17 ◼   ► And I also ordered around the same time the Bullstrap case.

00:35:20 ◼   ► These are both black leather iPhone 14 Pro cases with an open bottom, which is the way

00:35:26 ◼   ► I like it.

00:35:28 ◼   ► And the Ryan London one was cheaper.

00:35:30 ◼   ► The Ryan London one, I forget, I think when I ordered it maybe it was around $50, it's

00:35:33 ◼   ► currently $54.

00:35:35 ◼   ► The bull strap case, when I ordered it, was $85.

00:35:39 ◼   ► And I didn't order a bull strap case for my last phone, but a lot of people had said that

00:35:42 ◼   ► oh they make really high quality leather cases, you should check it out, blah blah blah.

00:35:45 ◼   ► The reason I avoided it last time is because I had found my Olexar case that had the buttons

00:35:50 ◼   ► that didn't stick out so far, and it was like, you know, 20 bucks or whatever, since reduced

00:35:56 ◼   ► to $5.50.

00:35:57 ◼   ► And I loved that case.

00:35:58 ◼   ► But this time I couldn't find anything like that, so I'm just going to have to deal with

00:36:01 ◼   ► the bulging buttons.

00:36:02 ◼   ► So I ordered two cases that both looked like they had bulging buttons, but they were both

00:36:05 ◼   ► leather cases with bare bottoms.

00:36:08 ◼   ► Bull strap case finally came.

00:36:10 ◼   ► I've had the Ryan London case on my phone for a month or whatever now since I got it.

00:36:17 ◼   ► And I was like when the bull strap case comes am I going to swap it or maybe I'll just look

00:36:20 ◼   ► at it and see if I think it's any better than the Ryan London case.

00:36:26 ◼   ► And when I got it and unpacked it and held it next to my phone which has the Ryan London

00:36:30 ◼   ► case on it. I'm pretty sure that these are literally the same case like whoever

00:36:37 ◼   ► manufactures these. Like it's like one factory is making these things the only

00:36:43 ◼   ► difference is that the bull strap case had it like it like an embossed bull on

00:36:47 ◼   ► the back of it and the Ryan London case has a little embossed like I don't know

00:36:52 ◼   ► if it's an R symbol a little embossed circle on the the edge the side near the

00:36:56 ◼   ► bottom but like the buttons were the same everything was in the same position

00:37:01 ◼   ► the folds and creases in the leather it looked the same they smelled the same

00:37:06 ◼   ► they feel the same I think these are the same case I don't know why the bull

00:37:11 ◼   ► strap one took forever to come I don't know why the bull strap one was so much

00:37:14 ◼   ► more expensive but I didn't put it on it's just I'd put it upstairs as a

00:37:18 ◼   ► backup case because in the end of the Rhineland one doesn't have anything on

00:37:21 ◼   ► the back and I'm much more likely to feel something on the back than I would

00:37:25 ◼   ► be to feel the Ryan London thing that's like on the lower left corner of the thing.

00:37:30 ◼   ► So if you're interested we'll put links to both in the show notes.

00:37:33 ◼   ► By the way the bull strap case has been price reused to $68 but I would say if you want

00:37:37 ◼   ► a leather case with an open bottom and you don't mind the bulging buttons, Ryan London

00:37:42 ◼   ► case number one choice the bull strap case is identical.

00:37:47 ◼   ► I don't get that reference but I'm sure it is.

00:37:50 ◼   ► My cousin Vinny on the...

00:37:51 ◼   ► It's identical.

00:37:53 ◼   ► You got a clap in the middle.

00:37:54 ◼   ► - I haven't seen it as many times as you.

00:37:58 ◼   ► - And hey, I'll use this as an opportunity to tell you

00:38:01 ◼   ► if you haven't heard what we're talking about,

00:38:04 ◼   ► you can go to ATP.fm/join

00:38:05 ◼   ► and you can hear our ATP Movie Club episodes

00:38:08 ◼   ► including the one where we discussed My Cousin Vinny.

00:38:10 ◼   ► All right, let's talk Mastodon for a little bit

00:38:13 ◼   ► because that is where all the cool kids are going, I guess?

00:38:17 ◼   ► - I believe you're referring to the fetaverse.

00:38:19 ◼   ► I think we're supposed to call it that now.

00:38:21 ◼   ► - Is that right?

00:38:22 ◼   ► Are you being serious or are you trolling me?

00:38:23 ◼   ► Or both?

00:38:24 ◼   ► It's the universe of Kevin Federline.

00:38:27 ◼   ► Oh no.

00:38:27 ◼   ► - Oh wow, deep cut, deep cut.

00:38:29 ◼   ► - The Fediverse, yeah.

00:38:30 ◼   ► - Wow, all right, anyway.

00:38:31 ◼   ► - Did I get his first name right?

00:38:33 ◼   ► I don't know, they just popped out of my head.

00:38:34 ◼   ► - No, that's the Britney Spears' acts, right?

00:38:35 ◼   ► - Yeah, that's what I thought, all right, anyway.

00:38:37 ◼   ► - I'm with you, I'm right there with you.

00:38:38 ◼   ► - '90s kids would know.

00:38:39 ◼   ► - Yep, yep, yep.

00:38:40 ◼   ► So anyway, so I do have an account.

00:38:42 ◼   ► I think I had just made it last week when we had spoken,

00:38:46 ◼   ► which actually, as we record this,

00:38:48 ◼   ► was just like four or five days ago.

00:38:49 ◼   ► But anyway, I haven't yet tooted on Mastodon,

00:38:53 ◼   ► which I think I heard rumblings are changing the name,

00:38:55 ◼   ► but whatever, that doesn't really bother me.

00:38:56 ◼   ► - Wait, that's really what we're supposed to say?

00:38:58 ◼   ► Tooted? - Yes.

00:38:59 ◼   ► - Isn't that like farting? - Yes.

00:39:02 ◼   ► - Why, oh God.

00:39:03 ◼   ► - They use a trumpet symbol and not a butt to get around.

00:39:06 ◼   ► (laughs)

00:39:07 ◼   ► - Yeah, okay, everyone knows what that means.

00:39:09 ◼   ► - I mean, this is the perfect exemplar of why

00:39:12 ◼   ► I just don't think that anything here

00:39:14 ◼   ► has been properly considered, but--

00:39:17 ◼   ► - Tooting is fine.

00:39:18 ◼   ► Is it any more or less silly than tweeting,

00:39:23 ◼   ► which Twitter didn't even come up with on its own?

00:39:26 ◼   ► - It's a little, I mean, I suppose that in time,

00:39:30 ◼   ► if Mastodon sticks around as the thing

00:39:32 ◼   ► that we're all talking about,

00:39:33 ◼   ► we will forget about how dumb it sounds, these words.

00:39:37 ◼   ► But at the moment, look, if something is going

00:39:41 ◼   ► to replace Twitter for a bunch of people,

00:39:44 ◼   ► it has to have a little bit of coolness to it.

00:39:47 ◼   ► And I think this is a massive challenge

00:39:49 ◼   ► for Mastodon in general,

00:39:50 ◼   ► because for all of its advantages, it's not cool.

00:39:54 ◼   ► And I think that doesn't help.

00:39:56 ◼   ► - But it is fun.

00:39:58 ◼   ► - Is it?

00:39:58 ◼   ► - Yeah, the little elephant thing is fun.

00:40:01 ◼   ► The word toot is fun.

00:40:03 ◼   ► I mean, like the branding and the sort of like

00:40:05 ◼   ► the look and feel of the UI and all that stuff.

00:40:08 ◼   ► And all the third-party apps,

00:40:09 ◼   ► which we'll get to in a little bit,

00:40:11 ◼   ► lots of them have variations in the word toot

00:40:12 ◼   ► because it's fun, just like lots of Twitter apps

00:40:15 ◼   ► variations on bird stuff. Sure, well okay, so we're already getting off in the weeds,

00:40:19 ◼   ► and I'm going to try to bring us back, and I think this was my fault, but nonetheless,

00:40:22 ◼   ► I do have an account on Mastodon.social. I have not yet tweeted, posted, tooted, what have you.

00:40:26 ◼   ► Part of the reason I haven't done anything yet is because Mastodon.social is constantly

00:40:31 ◼   ► not working, or at least in my experience over the last week, damn near any time I tried to look

00:40:36 ◼   ► at what was going on on Mastodon, the Fediverse, whatever, almost every time it was impossibly

00:40:43 ◼   ► difficult to get a response from Mastodon.social. Now, I sympathize that this is a very thankless

00:40:48 ◼   ► job. They probably weren't prepared for the load that they are receiving. We're going to talk a

00:40:52 ◼   ► little bit more about that in a moment. But I don't know, my opening experience to Mastodon is,

00:40:59 ◼   ► okay, the first thing you need to do is to decide which server to join, which we talked about last

00:41:04 ◼   ► week. And that is fraught to begin with. But leaving that aside, then you get there and the

00:41:09 ◼   ► server is often broken, which is fraught. And then you have these really, really clunky

00:41:16 ◼   ► usernames with @caseyless, @mastodon.social, which are just aesthetically kind of yucky.

00:41:22 ◼   ► And I don't know, I agree with what you're saying, Marco. Like, yes, the branding is

00:41:27 ◼   ► kind of cool, I guess, and different. But the experience, to me, is just so deeply uncool.

00:41:36 ◼   ► And I'll be the first to tell you, maybe it's my own ignorance, maybe I just haven't seen

00:41:39 ◼   ► the light and haven't seen what makes this so much better than Twitter. And I was looking

00:41:43 ◼   ► at some feedback we got from last episode and a lot of people were like, "Well, it's

00:41:47 ◼   ► nothing like Twitter. It's totally different than Twitter." Okay. But in what way is that

00:41:53 ◼   ► true? Because I clearly don't understand. And if it's just by federation, like, okay,

00:41:59 ◼   ► that's an implementation detail. I don't really consider that to be very, very different.

00:42:05 ◼   ► I don't know. It's one of those situations where I'm looking at the sky and these grumbly Mastodon monkeys are like,

00:42:11 ◼   ► "Oh no, the sky's green, baby!" And I'm looking at the sky and I'm like, "Well, that looks pretty blue to me."

00:42:15 ◼   ► And I don't know if I'm right or wrong. Like, I might be the wrong one, who knows?

00:42:18 ◼   ► But I don't know. John, can you explain this to me or can you do something to make Mastodon make more sense in my head?

00:42:24 ◼   ► Well, so the multiple accounts thing, I talked about this last week that I had, you know, five or six accounts that I created in 2017.

00:42:32 ◼   ► Mastodon accounts on different servers and that kind of I mean it kind of presented a problem with me for my

00:42:38 ◼   ► Experience on Mastodon of like well, I should probably pick one of these

00:42:43 ◼   ► Right to actually use but which because the problem is other people had found them because they do have a reasonable

00:42:51 ◼   ► Federated search feature where if you type in my last name, you'll get a bunch of hits

00:42:54 ◼   ► You'll get more hits than are me because there are other accounts that are like I don't know what they are

00:43:00 ◼   ► Like I think somebody set up in a Heroku instance that had a bunch of like proxy accounts that

00:43:04 ◼   ► represent other people, tons of people come up in that search thing, and there are other

00:43:07 ◼   ► people who are just like have the same name as me or have like old fake impersonation

00:43:12 ◼   ► accounts, but some of them are, most of them are legitimate accounts that I set up for

00:43:15 ◼   ► myself and they were accumulating followers.

00:43:18 ◼   ► And I don't want people following an account that I'm not using because they're just going

00:43:22 ◼   ► to be disappointed because nothing's going to happen there.

00:43:24 ◼   ► So I had to figure out how to solve that problem sort of first and foremost.

00:43:27 ◼   ► And by the way, since last week, I did get a Syracuse at Mastodon.social.

00:43:31 ◼   ► So if you're wondering which one is the quote unquote real me, there are like six

00:43:34 ◼   ► or seven real me's, but the one I'm currently as of the recording of this

00:43:38 ◼   ► episode intending to use is Syracuse@Mastodon.social.

00:43:42 ◼   ► It's you're the agent Smith of Mastodon.

00:43:44 ◼   ► I swear.

00:43:45 ◼   ► Yeah.

00:43:46 ◼   ► Well, so then I had to, so I had to pick which one I was going to use, right?

00:43:50 ◼   ► The reason I picked Mastodon.social is because my scant knowledge that I had at

00:43:55 ◼   ► time which I think is currently true is that Mastodon.social is run by the people who make

00:44:01 ◼   ► Mastodon or are responsible for Mastodon or whatever.

00:44:05 ◼   ► So I figure of all these sites that exist that are Mastodon things, they have the most

00:44:11 ◼   ► skin in the game.

00:44:12 ◼   ► Because any one of those other sites could be like, "Ah, I'm sick of this, I don't want

00:44:15 ◼   ► to do it."

00:44:16 ◼   ► But the people who started and run and created Mastodon are the most motivated to not go,

00:44:21 ◼   ► "Ah, forget it.

00:44:22 ◼   ► I'm sick of running a server. It's too much. I can't handle the moderation or whatever because they have the most skin in the game

00:44:28 ◼   ► Does that mean mastodon.social is the right server for me? Does that mean I?

00:44:31 ◼   ► Agree with or even know anything about the moderation policies or whatever beyond what they say on the website and their conduct

00:44:38 ◼   ► You know their policy thing we'll get to all that detail in a little bit. I don't know

00:44:43 ◼   ► I don't know if I made the right choice, which is why I am NOT doing

00:44:47 ◼   ► One of the things that it is possible to do which is oh you can just say all these other accounts

00:44:52 ◼   ► you can just migrate them all and point them to the one that you care about.

00:44:55 ◼   ► But by doing that, you essentially shut them down and put them into kind of like a locked mode,

00:45:00 ◼   ► those other ones, and I don't want to do that because they're all my hedges

00:45:03 ◼   ► against me having made the wrong choice about what server.

00:45:06 ◼   ► And obviously I'm weird and paranoid and about backups or whatever and other people,

00:45:10 ◼   ► other people will face the confusion of what, you know, server they should choose,

00:45:14 ◼   ► and they'll hear from their friends where they think they should go or whatever,

00:45:17 ◼   ► but they're probably not as paranoid as I am in terms of like having backups

00:45:20 ◼   ► Of like well, what if I made the wrong choice? I want to have I want to basically

00:45:24 ◼   ► I want to reserve my name and other places as well

00:45:25 ◼   ► So if I made the wrong choice of a server, I don't have to get you know, my last name one, two, three, four five

00:45:30 ◼   ► It's some other server. So I'm keeping all those other accounts the best thing I could come up with to

00:45:37 ◼   ► Try to indicate that

00:45:40 ◼   ► Well, I try it wanted to indicate two things one

00:45:42 ◼   ► which one of these accounts that come up when you search for me are really me right like that I actually own and control and

00:45:48 ◼   ► And two, which one is the one that I'm actually using?

00:45:51 ◼   ► So on the first problem, I think Mastodon does something smart

00:45:54 ◼   ► here.

00:45:55 ◼   ► If the people currently or previously running Twitter

00:45:59 ◼   ► had a clue, they would have done this ages ago because it is

00:46:02 ◼   ► a fairly straightforward thing to do.

00:46:04 ◼   ► When you set up your Mastodon account,

00:46:05 ◼   ► you have arbitrary name value pairs

00:46:07 ◼   ► that you can put that's like information about you.

00:46:09 ◼   ► So the one I chose to put is website is the name,

00:46:12 ◼   ► and the value is the URL of my website

00:46:15 ◼   ► because I have a website.

00:46:16 ◼   ► It's not hard to have one.

00:46:17 ◼   ► Frequent sponsors of our program will allow you to make a website for yourself under a

00:46:21 ◼   ► domain name that you control.

00:46:22 ◼   ► You should do that if you're listening to a tech podcast.

00:46:24 ◼   ► It's a reasonable thing to do.

00:46:25 ◼   ► And I have a website.

00:46:27 ◼   ► When you do that, they say, oh, and by the way, if you shove this snippet of HTML on

00:46:31 ◼   ► your website, we will crawl your website, find the snippet of HTML, and say, aha, you

00:46:36 ◼   ► must own and control that site.

00:46:38 ◼   ► Because if you didn't, there's no way you could have put the snippet of HTML on your

00:46:41 ◼   ► site, setting aside injection attacks or whatever.

00:46:45 ◼   ► And if you do that, when someone goes to your profile on Mastodon, they'll see a little

00:46:50 ◼   ► green checkmark next to the URL that says, "This person isn't just listing this website.

00:46:55 ◼   ► They have enough control over this website that they can influence the content of it,

00:46:58 ◼   ► so we're pretty sure that is that person's website, right?"

00:47:01 ◼   ► So because you know me and you know hypercritical.co is my website, and you see a Mastodon account

00:47:06 ◼   ► with hypercritical.co as the website in a green checkbox, in theory, unless someone

00:47:10 ◼   ► hacked me, I'm the only person who could have put that checkmark there.

00:47:13 ◼   ► So any Mastodon account where you see website,

00:47:16 ◼   ► hypercritical.co, green check mark, that's me.

00:47:19 ◼   ► So I basically self-verified, right?

00:47:21 ◼   ► This is something that lots of services do,

00:47:23 ◼   ► speaking of DNS last week or whatever.

00:47:25 ◼   ► When you do a lot of DNS stuff,

00:47:26 ◼   ► you can put a DNS text record,

00:47:28 ◼   ► or you put something on your website

00:47:30 ◼   ► so they can validate when you're setting up

00:47:31 ◼   ► an SSL certificate that they want you to prove

00:47:33 ◼   ► that you own the domain that you get

00:47:34 ◼   ► in the SSL certificate for.

00:47:36 ◼   ► This technique is used frequently.

00:47:37 ◼   ► Is it as thorough as showing a government ID

00:47:43 ◼   ► to a department in Twitter?

00:47:44 ◼   ► Probably not, but boy is it better than nothing.

00:47:48 ◼   ► And the best thing about it is it's self-service.

00:47:51 ◼   ► Now it's self-service for nerds

00:47:52 ◼   ► because most people don't have their own websites,

00:47:54 ◼   ► but hey, you're listening to ATP, you should do this.

00:47:56 ◼   ► So I think this is a good system for tech nerds

00:48:00 ◼   ► to moderately self-verify,

00:48:03 ◼   ► and it helps me solve that first problem

00:48:05 ◼   ► of which one of these are really me.

00:48:07 ◼   ► - Wait, can we, let me just interrupt you there.

00:48:09 ◼   ► I stumbled upon this when I was setting up

00:48:11 ◼   ► Mastodon profile, and I could not agree more that I think this is extremely smart. And

00:48:16 ◼   ► yeah, maybe it won't work for like celebrities or whatever. But for the purposes of nerds,

00:48:21 ◼   ► like you said, I think this is very clever, very simple, and does a pretty good job of

00:48:27 ◼   ► accomplishing what a blue tick does on Twitter with some amount of certainty and confidence.

00:48:33 ◼   ► And I really, really dig this. And I really think that this is an extremely clever and

00:48:38 ◼   ► easy way to show some form of validation that an account is who they say they are.

00:48:45 ◼   ► I really, really think this was smart.

00:48:47 ◼   ► Yeah, and if it's good enough for SSL certificates, which people trust, like, "Oh, this is really

00:48:51 ◼   ► Apple.com because it's the real SSL certificate owned by Apple," blah, blah, blah, that's

00:48:55 ◼   ► basically how TLS verification...

00:48:57 ◼   ► There are higher levels of verification that you pay more money for and that are more thorough,

00:49:01 ◼   ► but in the end, controlling your DNS records and controlling your actual website enough

00:49:05 ◼   ► to put random codes or values in there is how automated systems validate ownership of

00:49:15 ◼   ► domains.

00:49:16 ◼   ► The second problem is, "Okay, I've got five accounts.

00:49:18 ◼   ► You can see they're all me because they've got the green check mark against my URL.

00:49:20 ◼   ► Which one am I actually using?"

00:49:22 ◼   ► And my solution for that was to change my avatar image on all the accounts that I'm

00:49:26 ◼   ► not using to be my face with a big red buster through it, like a red circle with a line

00:49:32 ◼   ► through it.

00:49:33 ◼   ► And now, cash propagation and federation being what it is, it might take a while for that

00:49:37 ◼   ► to propagate, but now if you search for Syracuse, you should see one of my smiling faces with

00:49:41 ◼   ► nothing over it, and then a bunch of other of my smiling faces with a big red circle

00:49:45 ◼   ► on the line through it.

00:49:46 ◼   ► Which doesn't mean they're not me, it just means, not this one.

00:49:48 ◼   ► Don't follow this one, because I'm not using that one.

00:49:50 ◼   ► I'm not shutting it down, I'm not forwarding it to the other one yet, because it's my hedge

00:49:54 ◼   ► against me having made a terrible choice about what server I'm going to be on.

00:49:57 ◼   ► But anyway, if this all sounds overly involved, this is part of the problem and also part

00:50:05 ◼   ► of the advantage of Mastodon.

00:50:07 ◼   ► The problem is, I don't know where to set up my thing, the advantage is if you make

00:50:10 ◼   ► the wrong choice, in theory you can just make another choice in the future.

00:50:17 ◼   ► I don't have advice on what people should do.

00:50:19 ◼   ► Again, my choice of Mastodon at social based on them having the most skin in the game may

00:50:22 ◼   ► not be what you would use to choose.

00:50:26 ◼   ► It would be like, in theory, you can make a choice based on which place you think you

00:50:32 ◼   ► will find the most pleasant, right?

00:50:36 ◼   ► Do the moderators and the rules that are set up in this instance fit with what I want?

00:50:41 ◼   ► To give the example that people are passing around because it was such a horror story,

00:50:44 ◼   ► did you know some instances don't allow cursing?

00:50:46 ◼   ► If you want to be on an instance where they don't allow cursing, that one might be for

00:50:51 ◼   ► you, right?

00:50:52 ◼   ► But maybe you should know a little bit more about the people who are running it because

00:50:54 ◼   ► they might have other opinions that you don't agree with. And if you want one where you

00:50:58 ◼   ► can post porn like that, you probably have to find one that allows that and be aware

00:51:02 ◼   ► whether they don't. It's just like anything else. But it is currently at the young state

00:51:08 ◼   ► we're at now, before the Gmail, Yahoo, and Hotmail of the Mastodon world have come into

00:51:14 ◼   ► being, it's just kind of a bunch of people guessing or going where their friends are.

00:51:18 ◼   ► So that's kind of how I ended up where I am.

00:51:21 ◼   ► So I did a search for "Syracusa," looked for people, and I see one, two, three, four, five,

00:51:26 ◼   ► six accounts, only one of which has a buster through it, which is, by the way, I never

00:51:30 ◼   ► knew that was what that was called, so thank you for that.

00:51:32 ◼   ► I don't know if that's what it's called, but it might have just been from Ghostbusters.

00:51:36 ◼   ► Oh, gotcha.

00:51:37 ◼   ► Right, right, right.

00:51:38 ◼   ► Well, anyways, I only see one of them with the circle and a slash, every other one.

00:51:42 ◼   ► Well, of the others, one of them is the same picture with gray, like a completely grayscale

00:51:48 ◼   ► background.

00:51:49 ◼   ► One of them is the default avatar.

00:51:51 ◼   ► One of them looks identical to your real one,

00:51:54 ◼   ► and then one of them is also the avatar.

00:51:56 ◼   ► - Yeah, what I found when changing these avatars

00:51:59 ◼   ► is the propagation of the new avatar across apps

00:52:03 ◼   ► and whatever is slow.

00:52:05 ◼   ► Like, it's, you know, whatever.

00:52:08 ◼   ► I don't know if the apps are caching it,

00:52:09 ◼   ► if there's something in between that's caching,

00:52:11 ◼   ► instances are caching it.

00:52:12 ◼   ► Someone in the chatroom said I'm not at mastodon.social.

00:52:14 ◼   ► I am, that's what I'm saying.

00:52:15 ◼   ► The one I'm using, we'll put a link in the show notes.

00:52:17 ◼   ► - Veracusa and Mastodon.social, that one,

00:52:20 ◼   ► as of the recording right now,

00:52:21 ◼   ► is the one I am actually using.

00:52:24 ◼   ► - So this is what, I mean, the Federation thing,

00:52:26 ◼   ► so what gives me hope with all of this

00:52:31 ◼   ► is not Mastodon itself being massively successful

00:52:36 ◼   ► in the future, I think that might happen,

00:52:40 ◼   ► it probably won't happen.

00:52:41 ◼   ► I think they're having a great influx now.

00:52:44 ◼   ► I still have some doubts, like, you know,

00:52:46 ◼   ► App.net really burned me in the sense that

00:52:50 ◼   ► that was a time when we thought we were gonna

00:52:52 ◼   ► really move a lot of people off Twitter

00:52:54 ◼   ► and we moved some people off Twitter for a little while

00:52:56 ◼   ► and then it just kind of all fell apart, it wasn't enough.

00:52:59 ◼   ► This, I think we have a much better chance this time

00:53:02 ◼   ► of actually doing something meaningful

00:53:04 ◼   ► and pulling people off of Twitter permanently

00:53:07 ◼   ► and having something much bigger than App.net ever was.

00:53:10 ◼   ► Like I think we have a good chance here.

00:53:13 ◼   ► But it's just so hard to say like,

00:53:16 ◼   ► okay, well, hey, let's all move to Mastodon.

00:53:18 ◼   ► And the first question is, which Mastodon?

00:53:21 ◼   ► And it's just that throws a huge wall

00:53:24 ◼   ► up in everyone's faces that makes it

00:53:25 ◼   ► very difficult to get into,

00:53:27 ◼   ► very difficult for a large community to form.

00:53:30 ◼   ► And look, Mastodon is not brand new.

00:53:33 ◼   ► It didn't just launch, it's been around for a few years.

00:53:35 ◼   ► And it seems to have had some success

00:53:38 ◼   ► doing smaller groups of people talking with each other.

00:53:42 ◼   ► having special interest servers or certain groups of friends

00:53:46 ◼   ► or certain groups of people, whatever it is,

00:53:48 ◼   ► creating a bunch of small places.

00:53:50 ◼   ► And that's fine, that's a useful feature to have,

00:53:53 ◼   ► it's a useful role to serve.

00:53:55 ◼   ► But if you're gonna try to create what Twitter is and was,

00:53:59 ◼   ► which is the one big place where lots of people are,

00:54:03 ◼   ► and we can all microchat together

00:54:07 ◼   ► in this real-time, short text way,

00:54:09 ◼   ► Twitter was the place where everyone was.

00:54:13 ◼   ► I don't see Mastodon reaching that point

00:54:15 ◼   ► because it isn't just one place.

00:54:18 ◼   ► And to them, that's a feature.

00:54:20 ◼   ► And I understand why it's a feature,

00:54:22 ◼   ► but I don't see it happening.

00:54:23 ◼   ► What does give me hope in that area

00:54:27 ◼   ► is this whole ActivityPub thing,

00:54:30 ◼   ► where Mastodon is one piece of software

00:54:35 ◼   ► that communicates over ActivityPub,

00:54:36 ◼   ► which is the standard that kind of is the backbone

00:54:40 ◼   ► of federated social microblogging.

00:54:43 ◼   ► Well, they aren't the only way to do ActivityPub.

00:54:45 ◼   ► So micro.blog supports it,

00:54:46 ◼   ► which I believe you mentioned last week.

00:54:48 ◼   ► And so you can actually use micro.blog

00:54:52 ◼   ► to follow Mastodon accounts and vice versa.

00:54:55 ◼   ► There was a message earlier today on Twitter

00:54:59 ◼   ► from Matt Mullenweg of Automattic, who owns Tumblr,

00:55:04 ◼   ► saying that they're trying to get that done

00:55:06 ◼   ► really soon on Tumblr, where Tumblr would itself

00:55:09 ◼   ► also be an activity pub, I assume host and supplier,

00:55:14 ◼   ► I guess, publisher.

00:55:15 ◼   ► So if they do that, then Tumblr could also publish

00:55:18 ◼   ► in and out of this world, like this network.

00:55:20 ◼   ► So the concept of activity pub could be bigger

00:55:25 ◼   ► than Mastodon, it could be like the difference

00:55:27 ◼   ► between WordPress and RSS.

00:55:30 ◼   ► Where like, you can publish a blog using WordPress,

00:55:33 ◼   ► You can also publish a blog using anything else

00:55:36 ◼   ► and just publish an RSS feed and people can

00:55:39 ◼   ► consume and subscribe to anything

00:55:41 ◼   ► that publishes an RSS feed,

00:55:42 ◼   ► whether it's a WordPress blog or any other engine.

00:55:45 ◼   ► ActivityPub seems to be that for social networks.

00:55:47 ◼   ► Now, I think there's a lot of challenges

00:55:50 ◼   ► to getting that kind of thing to meaningful scale.

00:55:53 ◼   ► A lot of challenges that are not easy

00:55:56 ◼   ► and might never be solved.

00:55:58 ◼   ► But I think that is more promising to me

00:56:03 ◼   ► than Mastodon itself being the one thing that takes off.

00:56:07 ◼   ► I don't think that's super likely.

00:56:11 ◼   ► I think Mastodon will be great the way it is now.

00:56:14 ◼   ► I don't see it scaling bigger, but hey, I could be wrong.

00:56:17 ◼   ► - So just to make it clear to the people

00:56:20 ◼   ► when you were complaining about the instances,

00:56:22 ◼   ► when you pick your instance, you can still see things

00:56:25 ◼   ► and follow people who are on other instances.

00:56:27 ◼   ► That's what makes it federated, right?

00:56:29 ◼   ► There are consequences that you choose the instance

00:56:31 ◼   ► because you're sort of putting yourself under the control of the people who administer that

00:56:34 ◼   ► instance and there are different rules in that instance and instances can de-federate

00:56:38 ◼   ► other instances, but in general the idea is you're not just seeing things from that instance,

00:56:42 ◼   ► you're seeing things from that instance.

00:56:43 ◼   ► And you know, with the ActivityPub you can see things from Tumblr or whatever.

00:56:46 ◼   ► On the subject of scalability, like ActivityPub, kind of like RSS, is just a tiny part of that

00:56:53 ◼   ► equation when it comes to scaling, you need something to implement the federation, as

00:57:01 ◼   ► As in, okay, so a bunch of people are posting,

00:57:03 ◼   ► are, you know, publishing activity pub.

00:57:05 ◼   ► I follow a bunch of different people

00:57:07 ◼   ► who are spread all over the internet,

00:57:08 ◼   ► all, and, you know, how do I see all their stuff

00:57:13 ◼   ► in a timely manner and how does my stuff get to them, right?

00:57:16 ◼   ► That's what Mastodon does as a piece of software, right?

00:57:18 ◼   ► Whether it's just talking to itself

00:57:20 ◼   ► or other instances or whatever, it implements that, right?

00:57:23 ◼   ► And related to scalability, looking at,

00:57:27 ◼   ► this is a post on nora.code, which is a cool URL,

00:57:30 ◼   ► Someone took a look at a Mastodon instance they were running that was having problems

00:57:35 ◼   ► and having a lot of experience scaling web applications. When I look at this it tells me a lot about how Mastodon is currently architected

00:57:42 ◼   ► and what the potential scalability of this arrangement is. And I can tell you they are very similar to where Twitter was

00:57:51 ◼   ► in the very very early bad old days of the failed world. This is not an architecture that can scale to Twitter's size.

00:57:59 ◼   ► And you may be saying, well, that's the whole point.

00:58:02 ◼   ► It doesn't need to.

00:58:02 ◼   ► We'll have millions and millions of tiny mass data instances

00:58:05 ◼   ► that each only need to be able to deal

00:58:07 ◼   ► with just a small number of people that are on them.

00:58:09 ◼   ► And so scaling isn't a problem.

00:58:11 ◼   ► First, I would say that's not true

00:58:12 ◼   ► because once the activity on activity pub

00:58:16 ◼   ► reaches a certain level, no matter how few people you have

00:58:18 ◼   ► on an instance, if they all follow a bunch of celebrities,

00:58:21 ◼   ► you got a big problem there in terms

00:58:22 ◼   ► of the explosion of the number of messages and follows

00:58:25 ◼   ► and followers and all that other stuff,

00:58:26 ◼   ► or if they each host one celebrity, I'd say.

00:58:29 ◼   ► But two, like just architecturally,

00:58:31 ◼   ► if you look how they're, you know,

00:58:33 ◼   ► it may not be obvious by looking at this big techno thing

00:58:36 ◼   ► here or whatever, but there's a reason

00:58:38 ◼   ► Twitter totally re-architected from what it was

00:58:41 ◼   ► in the early days to what it is today.

00:58:42 ◼   ► Because you can't scale to Twitter size without doing that.

00:58:45 ◼   ► And as I said last week, I think it is inevitable

00:58:48 ◼   ► that people will congregate on larger instances.

00:58:51 ◼   ► You will not get a million instances with 10 people.

00:58:54 ◼   ► You'll get one instance with five million people,

00:58:56 ◼   ► one instance with three million people,

00:58:58 ◼   ► and then a long tail, right?

00:58:59 ◼   ► Like it's not, you know, it's not gonna be 100% centralized

00:59:03 ◼   ► 'cause that's the whole point of this,

00:59:04 ◼   ► but people will congregate.

00:59:05 ◼   ► There's just no avoiding it,

00:59:07 ◼   ► which leads to a bunch of other problems.

00:59:08 ◼   ► So anyway, this is not the fault of Mastodon.

00:59:11 ◼   ► I think they have come a long way in what they've done,

00:59:13 ◼   ► but looking at this,

00:59:15 ◼   ► looking at the way they have this set up

00:59:16 ◼   ► and the different queues and the tweaking of,

00:59:19 ◼   ► you know, database connections,

00:59:20 ◼   ► every number in this post is tiny, right?

00:59:24 ◼   ► Tiny and the parts of it that seem not to be able

00:59:27 ◼   ► to be broken down any further or to be parallelized any further, it's bad.

00:59:35 ◼   ► This is not going to scale to millions of people and anyone massed on an instance unless

00:59:39 ◼   ► they really really change the way they're doing the software.

00:59:43 ◼   ► It's probably not as bad as early Twitter because I think early Twitter didn't even

00:59:46 ◼   ► have queues for stuff or whatever.

00:59:47 ◼   ► So to the credit of Mastodon, they're ahead of that.

00:59:52 ◼   ► So you mentioned Mastodon as social is feeling slow.

00:59:57 ◼   ► Well they've had a huge influx of people and so they need to deploy more hardware.

01:00:02 ◼   ► But Mastodon as an application is not easily horizontally scalable.

01:00:07 ◼   ► So they might have to get bigger instances and start scaling vertically and it's a bit

01:00:12 ◼   ► of a problem.

01:00:13 ◼   ► I think they will weather the current storm but if growth continues they will hit a limit

01:00:18 ◼   ► and it will be similar to the limit that Twitter hit where, you know, failwales are falling

01:00:23 ◼   ► from the sky and they have to really just say we're going to do our stuff in a different

01:00:29 ◼   ► way.

01:00:30 ◼   ► And Twitter was able to do that because they had tons of money from, I'm assuming venture

01:00:34 ◼   ► capital, but eventually advertisers as well, to pay good developers to come and make the

01:00:40 ◼   ► Twitter that exists today, which is way, way more scalable than the old one was.

01:00:44 ◼   ► Where does that money come from for Mastodon?

01:00:46 ◼   ► They have a Patreon, but it's peanuts compared to the amount of money that Twitter put into

01:00:51 ◼   ► re-architecting Twitter.

01:00:53 ◼   ► So it's difficult.

01:00:54 ◼   ► Same thing with Tumblr.

01:00:55 ◼   ► Tumblr wants to do ActivityPub.

01:00:57 ◼   ► It's kind of easy to publish that, but if you want to be part of the Fediverse and follow

01:01:00 ◼   ► things that, you know, your Tumblr thing, you want to follow people on various Mastodon

01:01:04 ◼   ► instances and other people on Tumblr, they are signing up for the same problem.

01:01:07 ◼   ► Presumably, Tumblr is better positioned because they are much bigger scale than Mastodon has

01:01:11 ◼   ► ever been.

01:01:13 ◼   ► But it's still a hard problem.

01:01:14 ◼   ► It's still not trivial.

01:01:15 ◼   ► You know, and I guess Tumblr has money somehow through automatic or whatever where they can pay for this, but

01:01:20 ◼   ► I'm not saying these are insurmountable problems. They're surmountable. Twitter surmounted them, but I they they give me concern

01:01:27 ◼   ► And then the other side of scalability aside from technical is human scalability

01:01:32 ◼   ► This is what I was getting at last week was saying that

01:01:34 ◼   ► Any mass set on instance that continues to grow will have all the same problems as Tumblr as Twitter

01:01:39 ◼   ► I don't know. I keep saying Tumblr some examples of that. This is back from 2018

01:01:44 ◼   ► I think I remember the story when it happened, but I'd forgotten and it came back up again.

01:01:48 ◼   ► Will Wheaton, a Star Trek person, an actor, apparently got sort of chased off a Mastodon

01:01:55 ◼   ► instance in 2018 because his account kept getting reported by people who didn't like

01:01:59 ◼   ► him, and the admin basically said, "I don't really blame you, but I'm going to shut down

01:02:05 ◼   ► your account just because it's too much of a hassle because people are constantly yelling

01:02:08 ◼   ► at me to get rid of your account."

01:02:10 ◼   ► Another thing, Mastodon Technology, a place where I had a Mastodon account since 2017,

01:02:14 ◼   ► is shutting down because the person who was running it just can't handle running it anymore

01:02:17 ◼   ► because life goes on and they were doing it themselves and putting their time and energy

01:02:22 ◼   ► into it and it's a pretty thankless job.

01:02:24 ◼   ► I'll put a link to that post where you can read about that person's reasoning.

01:02:29 ◼   ► And then finally, co-founder of Dreamwith.org, Dream W-I-D-T-H, and the former head of Trust

01:02:36 ◼   ► and Safety at LiveJournal from around 2002, if people remember LiveJournal, posted an

01:02:41 ◼   ► interesting Twitter thread that includes the bare minimum for evaluating whether or not

01:02:49 ◼   ► to sign up for a new service.

01:02:51 ◼   ► It's seven items.

01:02:52 ◼   ► So if this person who has vast experience in trust and safety with an actual large growing

01:02:57 ◼   ► community says, "How do I know whether I should even look at signing up for this account?"

01:03:01 ◼   ► They need to have these seven things.

01:03:03 ◼   ► And we'll put a link to the thread that you can read in more detail, but I'll just hit

01:03:05 ◼   ► the bullet points.

01:03:06 ◼   ► One, the terms of service and policy

01:03:09 ◼   ► are publicly available and prominently linked,

01:03:11 ◼   ► and you can look at them without having to have a login.

01:03:13 ◼   ► Two, the terms of service does not contain

01:03:14 ◼   ► a binding arbitration clause

01:03:16 ◼   ► or a class action preclusion clause.

01:03:19 ◼   ► There's lots of nasty stuff

01:03:20 ◼   ► you can put in the terms of service.

01:03:21 ◼   ► You wanna at least look for the obvious things

01:03:23 ◼   ► that we know are bad and that they're not there.

01:03:25 ◼   ► Three, that the ownership is clearly and easily identifiable.

01:03:27 ◼   ► Who runs this thing?

01:03:28 ◼   ► Who owns it?

01:03:29 ◼   ► How are they organized?

01:03:33 ◼   ► Who are these people that I'm giving my information to?

01:03:36 ◼   ► Four, the people who run the place

01:03:37 ◼   ► don't believe in the real name policies

01:03:40 ◼   ► because they don't have the mistaken notion

01:03:43 ◼   ► that the real name policy is for end of use.

01:03:44 ◼   ► That's not true, they don't.

01:03:46 ◼   ► Five, that the team that runs the thing

01:03:48 ◼   ► is public about where their funding came from,

01:03:50 ◼   ► what their business plan is,

01:03:51 ◼   ► and what form of corporate structure they've chosen and why.

01:03:54 ◼   ► Six, that they have a registered DMCA designated agent

01:03:58 ◼   ► in the US or the equivalent in the EU

01:04:00 ◼   ► to deal with copyright stuff.

01:04:01 ◼   ► and seven, the information available pre-sign up

01:04:04 ◼   ► doesn't indicate that they believe abuse prevention

01:04:06 ◼   ► can be achieved with one or two simple tricks.

01:04:08 ◼   ► Basically just saying like, do these people look like

01:04:11 ◼   ► they have done the minimum amount

01:04:13 ◼   ► to sort of understand what they're signing up for?

01:04:15 ◼   ► Most Mastodon instances probably don't clear this hurdle,

01:04:18 ◼   ► and what I would say is, this is from the perspective

01:04:21 ◼   ► of somebody who ran Trust and Safety LiveJournal, right?

01:04:24 ◼   ► If you run a tiny instance with seven of your friends,

01:04:26 ◼   ► you don't need to worry about any of this, who cares, right?

01:04:28 ◼   ► But if you run an instance that you have any notion

01:04:31 ◼   ► of growing beyond a small handful of people,

01:04:35 ◼   ► and communities tend to do that if they gain a popularity,

01:04:39 ◼   ► you're signing up for dealing with all this stuff.

01:04:41 ◼   ► And you can read the thread, you could read

01:04:43 ◼   ► this person's other thread where they describe

01:04:45 ◼   ► what it was like to learn all this on the job

01:04:48 ◼   ► at LiveJournal and how harrowing it was.

01:04:50 ◼   ► I would warn you that you probably don't wanna read

01:04:53 ◼   ► that thread if you're upset by the horrors

01:04:57 ◼   ► that other humans can inflict on each other on the internet.

01:04:59 ◼   ► But that's what's waiting for you

01:05:02 ◼   ► at the end of anything even approaching Twitter-like scale.

01:05:06 ◼   ► And when there's a commercial company doing it,

01:05:09 ◼   ► they have a profit motive, they can hire people,

01:05:11 ◼   ► and even then it's difficult,

01:05:12 ◼   ► because the people who have to do all the trust

01:05:14 ◼   ► and safety stuff is a hard job.

01:05:15 ◼   ► Content moderation just kind of grinds people up.

01:05:18 ◼   ► But if you make a site on the internet

01:05:21 ◼   ► where millions of people can come and post content,

01:05:23 ◼   ► like their own, what they call user-generated content,

01:05:26 ◼   ► you're signing up for a whole host of problems that you cannot even imagine.

01:05:29 ◼   ► And so it's almost like if you want to run a little mass on an instance for you

01:05:33 ◼   ► and your friends, you better not let anybody else in.

01:05:35 ◼   ► And even one of your friends might end up being a jerk about it. Right.

01:05:38 ◼   ► And or one of your friends,

01:05:39 ◼   ► one of your friends posts a screenshot from major league baseball,

01:05:42 ◼   ► and then you get a lawyer sending you a letter telling you,

01:05:44 ◼   ► you need to shut down your mass on an instance.

01:05:45 ◼   ► And you're like, it was just 10 people. What the heck is going on?

01:05:48 ◼   ► Not, you know, there's scalability in terms of tech stack,

01:05:53 ◼   ► but then there's scalability in terms of,

01:05:55 ◼   ► I want to run an establishment where humans gather

01:05:58 ◼   ► and communicate on the internet,

01:06:01 ◼   ► and both of those are really difficult to wrangle.

01:06:04 ◼   ► - And that I think, that's what has me most concerned

01:06:07 ◼   ► about Mastodon, that frankly, I don't think

01:06:10 ◼   ► they're bringing in enough money to make it possible

01:06:13 ◼   ► to pay a large enough trust and safety team

01:06:16 ◼   ► to deal with that correctly.

01:06:18 ◼   ► Like, I really don't.

01:06:19 ◼   ► - But when you, you said this a couple times,

01:06:21 ◼   ► you keep saying Mastodon.

01:06:22 ◼   ► There is a company that makes the software

01:06:24 ◼   ► and runs Mastodon.social,

01:06:25 ◼   ► but every other Mastodon instance that is not run by them

01:06:29 ◼   ► are their own, is their own entity.

01:06:32 ◼   ► Who knows what their, do they have a business model?

01:06:34 ◼   ► Where does their money come from?

01:06:35 ◼   ► Who's running that server?

01:06:35 ◼   ► Like it's a piece of software that anybody can take and run,

01:06:38 ◼   ► which is again, the beauty and the promise of it,

01:06:40 ◼   ► but also means that you have to make these judgments

01:06:43 ◼   ► about every single one of those things.

01:06:44 ◼   ► So Mastodon has some responsibility

01:06:46 ◼   ► because they're sort of running the biggest instance

01:06:49 ◼   ► and making the software,

01:06:50 ◼   ► But they have no responsibility or control

01:06:52 ◼   ► over those other instances that are out there.

01:06:55 ◼   ► - Yeah, and that's its own set of issues.

01:06:58 ◼   ► But that's largely the federation goal.

01:07:00 ◼   ► But yeah, that's, any of these mass-owned instances

01:07:05 ◼   ► that get significantly sized,

01:07:07 ◼   ► I think they're gonna have this significant challenge

01:07:10 ◼   ► of like, it was one thing when it was mostly a bunch of

01:07:14 ◼   ► nerds from Germany using it,

01:07:15 ◼   ► who I'm sure were all very polite.

01:07:18 ◼   ► Now it's another thing when a whole bunch

01:07:20 ◼   ► of Twitter refugees are looking for a place to go,

01:07:23 ◼   ► many of whom you don't really want on your service.

01:07:25 ◼   ► (laughs)

01:07:26 ◼   ► And it's only going to be harder and harder.

01:07:30 ◼   ► If Mastodon succeeds, which it seems to be already

01:07:34 ◼   ► succeeding in capturing a bunch of Twitter refugees,

01:07:37 ◼   ► it's almost like getting a bunch of toxic waste

01:07:39 ◼   ► to be installed on your property.

01:07:40 ◼   ► It's like, well, I don't really want this burden, thanks.

01:07:44 ◼   ► In many ways, it's not what you want,

01:07:46 ◼   ► And most Mastodon instances are not going to have

01:07:50 ◼   ► either the money or the person hours or the willpower

01:07:55 ◼   ► to be able to deal with the amount of crap

01:07:58 ◼   ► that will rain down upon them

01:08:00 ◼   ► from running a social site that big.

01:08:02 ◼   ► - Yeah, so the end of this thread here,

01:08:05 ◼   ► the statement from the person who was posting it

01:08:07 ◼   ► from a live journal, say,

01:08:08 ◼   ► "Failing any one of these seven issues

01:08:10 ◼   ► is a proxy for governance, knowledge, and judgment issues

01:08:13 ◼   ► that, in my opinion, are highly unlikely to be resolved

01:08:15 ◼   ► before someone gets hurt.

01:08:16 ◼   ► And so again, this is based on the premise

01:08:18 ◼   ► that your instance grows.

01:08:20 ◼   ► And the person is saying, if your instance keeps growing,

01:08:23 ◼   ► eventually, whether you know it or not,

01:08:27 ◼   ► you will be partially responsible for somebody

01:08:30 ◼   ► getting hurt.

01:08:30 ◼   ► Because someone is on there, and their abusive ex finds them,

01:08:33 ◼   ► and they get doxxed, and you don't deal with it fast enough.

01:08:36 ◼   ► And then someone goes to someone's house and kills them,

01:08:38 ◼   ► and it's like, you feel guilty about that.

01:08:40 ◼   ► And it's like, I didn't sign up for this.

01:08:41 ◼   ► I just wanted to have a place to talk about baseball

01:08:43 ◼   ► with my friends or something.

01:08:44 ◼   ► You know my baseball master and like this is this is not the fault of Mastodon

01:08:48 ◼   ► this is true of an IRC server of a slack you make of a discord you make of like of

01:08:53 ◼   ► Anything that you can think of a web bulletin board that you make like just any kind of place online that you sort of

01:09:00 ◼   ► Create and run where humans communicate each other these problems are you know tail as old as time, right?

01:09:06 ◼   ► It is it's not new and it is not the fault of Mastodon that's doing this

01:09:09 ◼   ► But this is the challenge that

01:09:11 ◼   ► Mastodon through the popularity of it as a destination for Twitter refugees

01:09:15 ◼   ► Each one of those instances is signing up to a varying degrees to these type of challenges and they're they're difficult challenges and usually

01:09:23 ◼   ► To tackle them in any way there needs to be

01:09:26 ◼   ► like a

01:09:29 ◼   ► Countervailing factor live journal the people running that wanted to run a service where people could be online

01:09:33 ◼   ► A business where people could be online and talk to each other and have their live journals or whatever

01:09:38 ◼   ► So the countervailing factor is there we're running a business and that one of the difficult parts of the business is content moderation and dealing

01:09:45 ◼   ► With abuse and so on and so forth, but in the end we're trying to build a business here

01:09:48 ◼   ► We we collect money we get paid. This is our living

01:09:50 ◼   ► Same thing with Twitter whether it fell backwards into it or whatever from ODO and making podcast stuff

01:09:56 ◼   ► They decided they're gonna make a business called Twitter

01:09:59 ◼   ► It's going to eventually be a public company and they're gonna make money from it and they're gonna use that money to pay content moderate

01:10:05 ◼   ► Like that's the countervailing factor.

01:10:07 ◼   ► And then there are the hobby ones.

01:10:08 ◼   ► Oh, it's just gonna be 10 people, it's not a big deal.

01:10:11 ◼   ► It's never gonna be a big deal.

01:10:12 ◼   ► We're never gonna let more than 10 people.

01:10:13 ◼   ► We're just gonna do this.

01:10:14 ◼   ► And we can participate just as equally

01:10:16 ◼   ► in the Fediverse as anyone else.

01:10:18 ◼   ► We can follow all our celebrities

01:10:20 ◼   ► on the big famous servers,

01:10:21 ◼   ► but we have our own server with our own domain name,

01:10:24 ◼   ► and it's just literally gonna be me and my 10 friends

01:10:26 ◼   ► or my family server or whatever, right?

01:10:28 ◼   ► Or if you want it to go down to the individual level,

01:10:30 ◼   ► you could have individual servers, right?

01:10:32 ◼   ► That I feel like is the promise of federation

01:10:35 ◼   ► that you can avoid all of this by keeping your little area

01:10:39 ◼   ► owned and controlled by you or someone that you know closely,

01:10:42 ◼   ► but still participate in the larger thing.

01:10:44 ◼   ► But someone's got to run the larger thing.

01:10:47 ◼   ► And if it's not going to be you with your little family instance

01:10:49 ◼   ► or whatever, where are the celebrities going to be?

01:10:52 ◼   ► What instance are they going to be on?

01:10:53 ◼   ► Who's going to run that?

01:10:54 ◼   ► And how are they going to fund that?

01:10:55 ◼   ► And a Patreon, which it looks well-funded for a Patreon

01:10:59 ◼   ► for an open source project, but it is not well-funded

01:11:01 ◼   ► for something that is ever going to have a fraction

01:11:03 ◼   ► of the traffic of Twitter.

01:11:05 ◼   ► So it is a challenge that remains.

01:11:07 ◼   ► Like I'm not, you know,

01:11:08 ◼   ► this is not a condemnation I'm asking on.

01:11:10 ◼   ► I'm just trying to kind of lay the groundwork

01:11:12 ◼   ► for the people who are enthusiastic about it to say,

01:11:15 ◼   ► this is where things will inevitably,

01:11:18 ◼   ► these are the problems that will have to be tackled

01:11:19 ◼   ► for this to continue to grow.

01:11:22 ◼   ► If it doesn't continue to grow and it stays the same,

01:11:23 ◼   ► it is the size it is,

01:11:25 ◼   ► then we'll just have the current problems,

01:11:26 ◼   ► which already we have instances where

01:11:28 ◼   ► the moderators make a decision that's a mistake

01:11:31 ◼   ► and then people get angry about it

01:11:32 ◼   ► and then they threatened to de-federate from each other.

01:11:34 ◼   ► Lots of sites were threatening to de-federate

01:11:37 ◼   ► the biggest site, mastodon.social,

01:11:39 ◼   ► because they didn't agree with some moderation decisions.

01:11:42 ◼   ► You know, warring factions like that,

01:11:44 ◼   ► that's again, not new on the internet.

01:11:47 ◼   ► Warring BBSs, warring IRC servers, warring IRC channels.

01:11:51 ◼   ► You know, I'm gonna block you, you're gonna block me,

01:11:54 ◼   ► I'm not gonna accept your thing,

01:11:55 ◼   ► you're not gonna accept my,

01:11:56 ◼   ► and that's at the current scale.

01:12:00 ◼   ► And the current scale is small, right?

01:12:03 ◼   ► And you know, saying all this is probably not making people

01:12:06 ◼   ► want to set up a Macedon instance at all,

01:12:10 ◼   ► because it just sounds like a headache, and it kinda is.

01:12:12 ◼   ► That's why I'm saying there has to be a counterbalance,

01:12:15 ◼   ► something on the other side of it to balance that out

01:12:18 ◼   ► to make it worthwhile.

01:12:19 ◼   ► Another example of this is a New York Times story today.

01:12:21 ◼   ► The headline is, "Chaos on Twitter Leads a Group

01:12:24 ◼   ► of Journalists Who Started an Alternative."

01:12:25 ◼   ► So a bunch of journalists made like a Macedon instance,

01:12:28 ◼   ► I think it was, I don't know, maybe it was cohost,

01:12:29 ◼   ► I forget, it was either Massa Narcos, anyway.

01:12:32 ◼   ► They made an instance and they're like,

01:12:33 ◼   ► boy, running Insta is a pain and trying to verify people

01:12:36 ◼   ► and dealing with moderation.

01:12:37 ◼   ► It's just a bunch of journalists.

01:12:39 ◼   ► And it's like, we don't have time for this.

01:12:41 ◼   ► We should just be doing our journalism job, right?

01:12:43 ◼   ► The service that Twitter was providing

01:12:45 ◼   ► was being the big giant company that you can get mad at

01:12:48 ◼   ► that somehow found a way to fund itself

01:12:49 ◼   ► with venture capital and or advertisements

01:12:52 ◼   ► while you could just get mad at their dumb decisions,

01:12:53 ◼   ► but at least you didn't have to run the place.

01:12:55 ◼   ► - Yeah, it's like, nobody wants to run this.

01:12:58 ◼   ► Like, it is such a can of worms.

01:13:01 ◼   ► It is such a burden to try to run a social network.

01:13:04 ◼   ► Like, it's funny, like, a friend earlier in a Slack group

01:13:07 ◼   ► kind of joked, like, would I ever go back to Tumblr

01:13:09 ◼   ► like to work there?

01:13:11 ◼   ► And I said, no way.

01:13:13 ◼   ► Because like, you know, I mean, I

01:13:15 ◼   ► hadn't worked there since 2010, so it's been quite a long time.

01:13:20 ◼   ► But even at the scale we were at back then,

01:13:23 ◼   ► we were like, you know, we were getting calls

01:13:25 ◼   ► from high school principals, occasional police departments

01:13:29 ◼   ► with disputes or posts that they wanna be taken down

01:13:32 ◼   ► or whatever, and that was back then at basically no scale

01:13:35 ◼   ► compared to where social networks have gone since then.

01:13:37 ◼   ► It was disheartening to have to,

01:13:39 ◼   ► and most of it didn't even make it

01:13:41 ◼   ► to a place where I would even see it.

01:13:43 ◼   ► We had a whole support staff handling it when I left,

01:13:46 ◼   ► but I would occasionally, one would pass over my desk

01:13:49 ◼   ► or I'd have to go delete something,

01:13:50 ◼   ► and it was just so disheartening.

01:13:53 ◼   ► The actual reality of running a social network today

01:13:58 ◼   ► is so much more involved.

01:14:00 ◼   ► There are different legal requirements,

01:14:01 ◼   ► there are different cultural expectations,

01:14:03 ◼   ► there are different governments and law enforcement groups

01:14:07 ◼   ► that demand some kind of channel to reach you

01:14:10 ◼   ► and to deal with things.

01:14:11 ◼   ► And it is so complicated, it is so hairy and fraught.

01:14:16 ◼   ► There is no good option on many of the decisions

01:14:18 ◼   ► you have to make as the new Twitter owner is finding out.

01:14:22 ◼   ► and it's just such a mess.

01:14:25 ◼   ► Nobody wants to do that unless there is some massive upside

01:14:29 ◼   ► like you are a giant social company funded

01:14:32 ◼   ► by giant venture capitalists and you're gonna have

01:14:35 ◼   ► some kind of big ad play down the road.

01:14:37 ◼   ► That's what makes it worth these companies doing it

01:14:40 ◼   ► and not even always then.

01:14:42 ◼   ► So that's why I worry like if any of these smaller ones

01:14:47 ◼   ► actually get meaningful like traction

01:14:49 ◼   ► and get a whole bunch of people using them

01:14:51 ◼   ► and they start getting with celebrities and everything,

01:14:53 ◼   ► it just causes so many problems for them.

01:14:56 ◼   ► And I really worry about their own longevity.

01:15:00 ◼   ► - Yeah, and the attacks, the attack vectors

01:15:02 ◼   ► and the powers that are working against you

01:15:04 ◼   ► are way more sophisticated than they were,

01:15:06 ◼   ► because now it has been proven to be a valuable thing

01:15:09 ◼   ► to leverage these networks for nefarious ends.

01:15:12 ◼   ► Even just the sort of harassment campaigns

01:15:15 ◼   ► and the post-Gamergate playbook of how bad actors come in,

01:15:20 ◼   ► in and mess people up, right? That's way more sophisticated and way easier to just pick up that

01:15:27 ◼   ► playbook and run it. And on the flip side, trust and safety as a profession has become

01:15:32 ◼   ► more sophisticated as well to combat that. Those are a lot of the people that are on fire from

01:15:38 ◼   ► Twitter, by the way. But then again, if you're going to sign up for this, you need to recruit

01:15:45 ◼   ► those people, hire them, and try to make the right decisions. And I always keep saying this

01:15:50 ◼   ► this every time we talk about this, this is the promise of federation that the individual

01:15:54 ◼   ► companies will have the opportunity to do this differently and better.

01:15:58 ◼   ► They were not stuck with just the billionaire and his whims or previously the board of directors

01:16:04 ◼   ► of Twitter and their whims, right?

01:16:06 ◼   ► That we have multiple chances to get this right.

01:16:08 ◼   ► But law of averages, most of them are going to get it wrong in increasingly spectacular

01:16:14 ◼   ► ways, albeit on a smaller scale.

01:16:15 ◼   ► So it is difficult.

01:16:17 ◼   ► Here is an interview in Time Magazine with the creator of Mastodon, Yujin Rocco.

01:16:26 ◼   ► It's short, there's not much there, but you can take a look at it.

01:16:30 ◼   ► It's just somebody who was dissatisfied with Twitter and wanted to do something better

01:16:33 ◼   ► and started this project around 2016-ish.

01:16:36 ◼   ► It's a pretty big open source success story.

01:16:38 ◼   ► Like I said, it's come a long way since I signed up for all those accounts in 2017.

01:16:44 ◼   ► But the scale problems remain, and the human problems are just lurking around the quarter

01:16:50 ◼   ► wanting to mess people up.

01:16:53 ◼   ► Then you did a tour of about 305 client apps.

01:16:57 ◼   ► So do you want to tell me what the winner is?

01:16:59 ◼   ► Yeah, so first I'll put a link to a very long post by Anna Nicholson that reviews a bunch

01:17:05 ◼   ► of Mastodon clients.

01:17:08 ◼   ► So a blog post, we'll put links to the clients as well.

01:17:11 ◼   ► There's also someone made a Google Sheet.

01:17:13 ◼   ► I'm not sure who created this.

01:17:14 ◼   ► Google Sheet that has a feature comparison with just a little checkbox of like, do you

01:17:17 ◼   ► have this feature yes/no of a whole bunch of different clients.

01:17:21 ◼   ► I tried to find as many Mastodon clients as I could and tried them out since we last recorded.

01:17:27 ◼   ► I had the interesting experience of someone would suggest a client for me and I would

01:17:32 ◼   ► go look for it in the App Store and instead of the button saying buy or get, it would

01:17:36 ◼   ► say open because it was already installed on my phone.

01:17:40 ◼   ► the other alternative is, I just got the cloud icon

01:17:42 ◼   ► with a downward pointing arrow, which is like,

01:17:44 ◼   ► you already own this app, you just need to download it.

01:17:46 ◼   ► Someone suggested a Mac app, and I went to the,

01:17:49 ◼   ► same thing happened on the Mac App Store,

01:17:51 ◼   ► I'm like, wait a second, I hit Command + Space,

01:17:52 ◼   ► I just launched it, it was already installed.

01:17:54 ◼   ► And that's how I found some of my accounts,

01:17:55 ◼   ► I found some of those accounts that I'd forgotten about,

01:17:57 ◼   ► I launched the Mac app that I was trying out,

01:17:59 ◼   ► and I already had registered accounts,

01:18:01 ◼   ► oh, I missed that one, it was like MSDN.io,

01:18:04 ◼   ► whatever it is, anyway.

01:18:06 ◼   ► But the apps have all gotten better since then.

01:18:08 ◼   ► So first there's the official client,

01:18:09 ◼   ► It's called Mastodon.

01:18:10 ◼   ► It's on iOS.

01:18:11 ◼   ► The official client, it's pretty OK.

01:18:14 ◼   ► I like the idea of the official client,

01:18:16 ◼   ► because at least I kind of know, again, the people who make it

01:18:18 ◼   ► are motivated to have Mastodon succeed,

01:18:21 ◼   ► and they probably aren't using it to Bitcoin mine on my phone.

01:18:25 ◼   ► Probably.

01:18:26 ◼   ► Yeah.

01:18:26 ◼   ► There's Metatext, highly recommended.

01:18:29 ◼   ► They remind me a lot of Twitter apps, because these are apps

01:18:31 ◼   ► that a single developer can make,

01:18:32 ◼   ► and there's an API for it.

01:18:34 ◼   ► And each one does stuff a little bit differently.

01:18:37 ◼   ► Mammoth, which is currently in beta, shows a lot of promise,

01:18:40 ◼   ► but it's just not feature complete yet.

01:18:42 ◼   ► Like the preference screen, 90% of the things

01:18:43 ◼   ► don't do anything there yet,

01:18:44 ◼   ► but I do like the look of it so far.

01:18:47 ◼   ► Tuskr is also in TestFlight beta.

01:18:49 ◼   ► I like some stuff about that app.

01:18:51 ◼   ► There's Toot, T-O-O-T with an exclamation point.

01:18:53 ◼   ► There's Tootle.

01:18:54 ◼   ► There's also Toot with three O's, Toot,

01:18:58 ◼   ► which is open source and cross platform.

01:19:01 ◼   ► I looked at the source code for Toot, by the way.

01:19:03 ◼   ► I think it's React Native,

01:19:04 ◼   ► 'cause it's like basically the whole app

01:19:05 ◼   ► is written in TypeScript kind of,

01:19:07 ◼   ► or maybe it's not React Native,

01:19:07 ◼   ► maybe it's just literally React in a web view.

01:19:09 ◼   ► I couldn't quite figure it out.

01:19:10 ◼   ► It's like Objective-C,

01:19:11 ◼   ► and then there's like this React thing that runs inside it.

01:19:14 ◼   ► There's Mast, M-A-S-T, Mercury,

01:19:18 ◼   ► and something called Fede, which is a Mastodon client,

01:19:21 ◼   ► and also a Pleroma, P-L-E-R-O-M-A.

01:19:26 ◼   ► I didn't get a chance to look up what that is,

01:19:27 ◼   ► but I was assuming it's another federated thingy.

01:19:31 ◼   ► And then Mac apps, I could only find two, which is typical.

01:19:34 ◼   ► There's Mastonaut, which is the one I already had installed.

01:19:37 ◼   ► And then there's Hyperspace Desktop,

01:19:39 ◼   ► which looks kind of web view.

01:19:41 ◼   ► So all these applications, they all kind of look like

01:19:44 ◼   ► what Twitter clients look like in the early days

01:19:46 ◼   ► before the more mature competitors kind of settled in.

01:19:50 ◼   ► - They all feel like web views.

01:19:52 ◼   ► - Well, some of them do,

01:19:53 ◼   ► but I think they've learned a lot from Twitter clients.

01:19:55 ◼   ► They are somewhat constrained by the API.

01:19:58 ◼   ► Most of them aren't doing things

01:20:00 ◼   ► that the API don't allow you to do.

01:20:03 ◼   ► They do have widely varying performance based on like,

01:20:05 ◼   ► some of it is, yeah, is your server slow?

01:20:07 ◼   ► But some of it is also like how skilled are you

01:20:09 ◼   ► as an iOS developer of making the app feel snappy,

01:20:11 ◼   ► making me feel like I don't have to constantly pull

01:20:14 ◼   ► to refresh, like preemptively getting things

01:20:16 ◼   ► when I'm gonna read the next one,

01:20:18 ◼   ► how well do they all handle threading and all that stuff.

01:20:21 ◼   ► People ask, which one do you like, which is your favorite?

01:20:25 ◼   ► I don't have a favorite.

01:20:25 ◼   ► I've honestly been using all,

01:20:27 ◼   ► like every single app that I listed there,

01:20:29 ◼   ► I used each one of those at least once per day

01:20:31 ◼   ► since we last recorded.

01:20:33 ◼   ► I just jumped from one to the other

01:20:35 ◼   ► and I honestly can't decide.

01:20:36 ◼   ► None of them do everything that I want,

01:20:38 ◼   ► but each one of them does something vaguely interesting.

01:20:42 ◼   ► The only one that I really can't use

01:20:44 ◼   ► is unfortunately Mastinaut because they don't,

01:20:46 ◼   ► as far as I can tell, in Mastinaut,

01:20:47 ◼   ► there's no way to show in notifications just my mentions

01:20:50 ◼   ► and I don't wanna see a list of like follows and faze.

01:20:52 ◼   ► I just wanna see mentions

01:20:53 ◼   ► and I don't think there's a way to do that in Mastinaut,

01:20:55 ◼   ► so that's a big gap,

01:20:56 ◼   ► but most of the other ones I can get the job done.

01:20:58 ◼   ► And then of course there's the web client,

01:21:00 ◼   ► which is pretty flexible and reasonable

01:21:02 ◼   ► if you wanna go that route.

01:21:04 ◼   ► - Can we, as a member perk,

01:21:05 ◼   ► can we have a isolated recording of John saying toots

01:21:10 ◼   ► as it uses like a text message alert?

01:21:13 ◼   ► - And this is not all of them, by the way.

01:21:14 ◼   ► I'm sure there are more.

01:21:15 ◼   ► Like if you just search for toot tootle Mastodon

01:21:19 ◼   ► like on the App Store, there's more.

01:21:20 ◼   ► There's more all the time, right?

01:21:21 ◼   ► It's just, it is fun to go through a bunch of apps

01:21:25 ◼   ► and try them out again.

01:21:27 ◼   ► One of my favorites, I think it's, which one is it?

01:21:29 ◼   ► is it's either two to two.

01:21:31 ◼   ► One of them decided that the way it's gonna do

01:21:33 ◼   ► like account switching, you know,

01:21:35 ◼   ► 'cause you have more than one account,

01:21:37 ◼   ► is they put a little sort of quarter circle

01:21:39 ◼   ► in the lower right corner of the screen,

01:21:41 ◼   ► and you rotate that quarter circle,

01:21:44 ◼   ► and the entire rectangle of your phone screen

01:21:46 ◼   ► rotates with it, like it's like a fan.

01:21:48 ◼   ► - Oh, that's kinda cool.

01:21:49 ◼   ► - I don't know where they came up with that.

01:21:50 ◼   ► I don't think it's a particularly good idea, but it's fun.

01:21:52 ◼   ► - Oh, I think that, I mean, having not used it,

01:21:54 ◼   ► it sounds neat. - It's super fun.

01:21:56 ◼   ► It feels good to do, it looks stupid,

01:21:58 ◼   ► and I don't think it's the right thing to do,

01:22:00 ◼   ► but it's fun to try an app

01:22:02 ◼   ► that does something a little bit different.

01:22:04 ◼   ► - What was it, was it Path

01:22:05 ◼   ► that had that really clever menu in the bottom right

01:22:07 ◼   ► where it would explode out?

01:22:08 ◼   ► - It's like a radial menu, right?

01:22:10 ◼   ► - Yeah, yeah, yeah, yeah.

01:22:11 ◼   ► I really liked Path for the 15 minutes it existed.

01:22:14 ◼   ► So, you know, RIP.

01:22:14 ◼   ► - That could be your day social network

01:22:16 ◼   ► and your night social network.

01:22:17 ◼   ► - Yeah. (laughs)

01:22:19 ◼   ► - Reference acknowledged.

01:22:20 ◼   ► Yeah, 'cause that was the Path guy, right?

01:22:21 ◼   ► - Yes.

01:22:22 ◼   ► - I forget which one it is.

01:22:23 ◼   ► Maybe it's Tusker, maybe, oh, God, I need to launch it.

01:22:26 ◼   ► They all have icons with elephants on them,

01:22:28 ◼   ► so you can't even tell the difference,

01:22:28 ◼   ► but something to do interesting stuff with threading

01:22:30 ◼   ► where on the avatar icon,

01:22:31 ◼   ► it'll show like dots to be like nodes in a graph.

01:22:33 ◼   ► You could tell like a programmer was making this UI

01:22:35 ◼   ► of like, I think of it as a graph with nodes,

01:22:37 ◼   ► so I'm gonna show it that way.

01:22:39 ◼   ► Yeah, not sure that one works either,

01:22:40 ◼   ► but it's interesting.

01:22:42 ◼   ► All right, and so here's the kicker to all of this.

01:22:44 ◼   ► While this is going on and I'm here trying Mastodon

01:22:46 ◼   ► and going all these instances and messing with stuff,

01:22:48 ◼   ► and by the way, I'm also participating in Mastodon,

01:22:50 ◼   ► replying to people, posting things,

01:22:51 ◼   ► reading things that other people do.

01:22:53 ◼   ► Oh, I forgot to mention one final thing.

01:22:55 ◼   ► If you would like to become a Twitter refugee

01:22:58 ◼   ► and find a Mastodon server somewhere,

01:22:59 ◼   ► but you're like, but how do I know where all of my,

01:23:02 ◼   ► the people I used to follow on Twitter,

01:23:04 ◼   ► how do I know where they are so I can find them again?

01:23:06 ◼   ► The convention that has developed is that

01:23:09 ◼   ► the people who leave Twitter, or not leave Twitter,

01:23:12 ◼   ► but like become Twitter refugees

01:23:14 ◼   ► or are trying to go to Mastodon,

01:23:15 ◼   ► they put somewhere in their bio

01:23:17 ◼   ► or somewhere in their like Twitter information,

01:23:19 ◼   ► they put their Mastodon address,

01:23:21 ◼   ► either in the @ whatever @Mastodon.social form

01:23:25 ◼   ► or in just a URL form.

01:23:27 ◼   ► And then there are a bunch of free online tools

01:23:30 ◼   ► that will, using the Twitter API,

01:23:32 ◼   ► find the list of people you follow, scrape all their bios,

01:23:36 ◼   ► look for something that looks like a Mastodon address,

01:23:38 ◼   ► and find them and present them to you.

01:23:39 ◼   ► So we'll put a link to one in the show notes.

01:23:41 ◼   ► It's feddyfinder.glitch.me.

01:23:42 ◼   ► There's a bunch of other ones that it links to

01:23:44 ◼   ► in the explanation page.

01:23:46 ◼   ► And you just enter your Twitter info and authorize it,

01:23:49 ◼   ► and it will show you, here's all the people we could find

01:23:51 ◼   ► and where they are.

01:23:52 ◼   ► you'll see that like 90% of them are Mastodon.social,

01:23:55 ◼   ► seven of them are on this one, five of them are on this one,

01:23:57 ◼   ► and one person is on this one.

01:23:58 ◼   ► And you can then follow them if you're logged in

01:24:00 ◼   ► to your Mastodon account.

01:24:01 ◼   ► That's how I've been building up my Mastodon follows,

01:24:03 ◼   ► try to make my Mastodon timeline like my Twitter one

01:24:06 ◼   ► by following people, the same people who I followed

01:24:08 ◼   ► on Twitter essentially.

01:24:10 ◼   ► - Yeah, I've been trying that same thing because,

01:24:12 ◼   ► I mean, here's the thing too, it's like,

01:24:13 ◼   ► this is another challenge I've been having with Mastodon,

01:24:15 ◼   ► it's like, okay, suppose I get into it.

01:24:18 ◼   ► Suppose people are moving there in readable numbers.

01:24:21 ◼   ► Suppose I figure out the app situation.

01:24:23 ◼   ► Those are all big supposes, but we'll move on for now.

01:24:25 ◼   ► How do I find people?

01:24:27 ◼   ► 'Cause here's the, I mean look,

01:24:28 ◼   ► I've created so many new accounts

01:24:31 ◼   ► on so many new social networks and old social networks

01:24:33 ◼   ► over the last week or two,

01:24:36 ◼   ► but then it's like, all right, now what?

01:24:38 ◼   ► The next step is, all right, find people to follow,

01:24:40 ◼   ► and I don't wanna start a whole new social network

01:24:44 ◼   ► from scratch, I wanna follow the people

01:24:46 ◼   ► that I already follow.

01:24:47 ◼   ► I've been curating my list of 197 people I follow

01:24:51 ◼   ► on Twitter for years, like, you know,

01:24:53 ◼   ► I wanna follow most of them.

01:24:56 ◼   ► And yeah, so I do these tools and it finds,

01:24:59 ◼   ► I mean, I think I found,

01:25:00 ◼   ► I ran the Feta Finder thing last night,

01:25:02 ◼   ► I think I found like 15 people

01:25:04 ◼   ► out of my 200 people following,

01:25:06 ◼   ► so it's not zero, which is good,

01:25:09 ◼   ► but it's not a lot, and it's hard to know like,

01:25:13 ◼   ► just how to balance multiple social networks.

01:25:17 ◼   ► Like, how am I, what am I supposed to post where?

01:25:20 ◼   ► Nobody likes a cross poster, so I'm not gonna just

01:25:22 ◼   ► auto cross post everything.

01:25:24 ◼   ► So how do you do these things?

01:25:26 ◼   ► How do you find people?

01:25:28 ◼   ► And it's really hard to start over, to start from scratch.

01:25:31 ◼   ► You know, when a major social network of this style

01:25:35 ◼   ► has not launched in quite a while,

01:25:37 ◼   ► so most of us have never had to make this kind of move,

01:25:41 ◼   ► or have never made this kind of move recently.

01:25:43 ◼   ► Like, we're out of practice, we don't know

01:25:45 ◼   ► how to find each other, we don't know how to communicate.

01:25:46 ◼   ► If Twitter goes offline tomorrow, I mean,

01:25:49 ◼   ► and at this point nothing would surprise me

01:25:50 ◼   ► in that department, but if they went offline tomorrow,

01:25:54 ◼   ► we would be so confused, we would have no idea

01:25:56 ◼   ► where to find anybody, and this is a very hard thing

01:25:59 ◼   ► to bootstrap, so I don't know, it's just,

01:26:02 ◼   ► there's so many challenges to moving this,

01:26:04 ◼   ► and I am a little encouraged by just how much momentum

01:26:09 ◼   ► there is behind this now, like, there is so much momentum

01:26:13 ◼   ► behind people leaving Twitter now, and frankly,

01:26:16 ◼   ► I'm spreading a lot of bets around.

01:26:20 ◼   ► I signed up on whatever that new one was,

01:26:24 ◼   ► whatever that new network is that everyone's trying out.

01:26:25 ◼   ► Like today I signed up for that.

01:26:27 ◼   ► - That's what I was getting at before,

01:26:28 ◼   ► speaking of momentum.

01:26:29 ◼   ► So I mean, I just, it was talking about

01:26:30 ◼   ► all this Mastodon stuff, right?

01:26:32 ◼   ► And then kind of out of nowhere,

01:26:34 ◼   ► starting like a day or two ago,

01:26:37 ◼   ► what I started to see in my Twitter timeline mostly

01:26:40 ◼   ► was tons of people I follow saying,

01:26:42 ◼   ► "Hey everybody, come over here."

01:26:45 ◼   ► And where they were going over to was hivesocial.app.

01:26:49 ◼   ► The Hive app is an iPhone app called Hive.

01:26:52 ◼   ► They don't have a website or anything like that.

01:26:54 ◼   ► I don't know if it's Android, but it's certainly on iOS.

01:26:56 ◼   ► It's called Hive.

01:26:57 ◼   ► And tons of people, mostly in the gaming quadrant

01:27:00 ◼   ► of the people that I follow on Twitter,

01:27:02 ◼   ► they were all like, hey, everybody, come over to Hive.

01:27:05 ◼   ► Everyone's going over to Hive.

01:27:06 ◼   ► It was gamers and game-adjacent artists, right?

01:27:10 ◼   ► I'm out.

01:27:12 ◼   ► And what does Hive look like?

01:27:14 ◼   ► It looks kind of like Twitter.

01:27:15 ◼   ► It's like an app and you follow people and whatever, right?

01:27:17 ◼   ► But what the hell is Hive?

01:27:19 ◼   ► All right, and it was so sudden and such a like,

01:27:24 ◼   ► and not just like the few random weird people

01:27:26 ◼   ► that I follow, but like big famous people

01:27:28 ◼   ► in the gaming industry were like,

01:27:30 ◼   ► here's my new Hive, come over to Hive, see me on Hive.

01:27:33 ◼   ► I'm like, where did this come from?

01:27:35 ◼   ► I don't have an answer to this as of Monday,

01:27:38 ◼   ► November 21st when we were recording this.

01:27:40 ◼   ► I don't know how Hive came out of nowhere.

01:27:42 ◼   ► The only explanation I saw is one Destiny YouTuber I followed did a video about it and

01:27:48 ◼   ► his explanation was, "Well, there used to be a gaming department at Twitter that would

01:27:56 ◼   ► do promotional stuff with people in the games industry.

01:28:01 ◼   ► They were like a liaison for Twitter for the gaming industry, so if you wanted to do something

01:28:04 ◼   ► gaming related on Twitter or have a Twitter space or promote a tweet or whatever, you

01:28:07 ◼   ► would work with them."

01:28:09 ◼   ► And Elon of course fired everybody.

01:28:10 ◼   ► That whole department is gone.

01:28:12 ◼   ► And so the people who used to communicate with them were like, "Well, it seems like

01:28:18 ◼   ► there's no more support for gaming at Twitter.

01:28:21 ◼   ► Therefore, let's go over to Hive.

01:28:24 ◼   ► Hive as far as I've been able to determine is a perfectly pleasant, although a little

01:28:30 ◼   ► bit janky iOS app written by two people."

01:28:33 ◼   ► Oh, wow.

01:28:35 ◼   ► And I'm like, "Okay, I don't have anything else written by two people.

01:28:38 ◼   ► We make a bunch of apps written by one person."

01:28:40 ◼   ► But how in the world, like I almost feel bad for them, how in the world did this giant

01:28:45 ◼   ► critical mass of everyone go over to Hive happen for an app that is run by two people?

01:28:50 ◼   ► If you think Mastodon.social is going to have scaling problems, at least they have like

01:28:54 ◼   ► a team of people and like, you know, people doing content moderation.

01:28:57 ◼   ► This is two people for the entire service and the app?

01:29:02 ◼   ► And it's not, it's not federated, it's not in the Fediverse, it's not ActivityPub, it's

01:29:06 ◼   ► It's not related to Mastodon.

01:29:07 ◼   ► It is literally just kind of like a Twitter clone, but a slightly different idea in the

01:29:12 ◼   ► app.

01:29:13 ◼   ► My first impression of the app was I did what I always do, which is I got to go get my username,

01:29:17 ◼   ► right?

01:29:18 ◼   ► So I rush out.

01:29:19 ◼   ► I get the Hive app, which I didn't have installed.

01:29:21 ◼   ► I install it.

01:29:22 ◼   ► I try to sign up.

01:29:23 ◼   ► It says you can sign up with Apple ID, maybe with Google, and also you can sign up with

01:29:27 ◼   ► email, and I always sign up with email.

01:29:29 ◼   ► And I tried to sign up with email for like 10 minutes.

01:29:32 ◼   ► Could not do it.

01:29:33 ◼   ► First it wouldn't accept my password.

01:29:35 ◼   ► I had to manually tweak the password because I had a bunch of different password rules

01:29:39 ◼   ► so I couldn't use the password manager to do it so I had to make up a garbage password.

01:29:46 ◼   ► It would never highlight the button that would let me hit next.

01:29:49 ◼   ► Some people were saying there's a secret rule that wasn't listed that you had to have some

01:29:52 ◼   ► special character that they didn't tell you that you had to have to get in it but I think

01:29:54 ◼   ► their server was just so.

01:29:55 ◼   ► So I signed up with Apple ID.

01:29:57 ◼   ► So anyway, I got my username signed up with Apple ID and then I went there and there's

01:30:01 ◼   ► a bunch of people that I knew and I followed them and they started following me and that's

01:30:04 ◼   ► when I started to look into this place, like, "What is this? I have no idea. Like, is

01:30:09 ◼   ► there some venture capitalist that is behind Hive that, like, paid a bunch of people to

01:30:12 ◼   ► get the ball rolling on it?" But, like, and I think I just saw them post that they

01:30:15 ◼   ► had a million people. A two-person company for an app and a service has a million people.

01:30:21 ◼   ► Anyway.

01:30:22 ◼   ► I mean, in all fairness, like, you know, that was Tumblr for a while, but we very quickly

01:30:27 ◼   ► needed to hire a third person who was support. And support became community management as

01:30:32 ◼   ► as well and that department expanded way faster.

01:30:35 ◼   ► Like it was for a long time, it was me and David

01:30:39 ◼   ► and then our support staff.

01:30:41 ◼   ► And that's how it stayed for a while.

01:30:44 ◼   ► - You didn't even have an iOS app though.

01:30:45 ◼   ► You just had the service,

01:30:46 ◼   ► which I guess you had the website too, but like they--

01:30:48 ◼   ► - At that time iOS apps didn't exist yet.

01:30:50 ◼   ► This was like 2007.

01:30:51 ◼   ► - So yeah, so Hive has an iOS app

01:30:54 ◼   ► that someone had to write,

01:30:55 ◼   ► but then there's the service behind it somewhere

01:30:57 ◼   ► that the iOS app talks to

01:30:59 ◼   ► that runs this thing with the million people.

01:31:01 ◼   ► Like, and maybe, you know--

01:31:02 ◼   ► - I mean, that's very possible.

01:31:05 ◼   ► I can tell you, I mean, I kind of do that for Overcast.

01:31:08 ◼   ► That's a very possible,

01:31:09 ◼   ► obviously it's a very different problem.

01:31:11 ◼   ► That's a possible thing to do,

01:31:12 ◼   ► but where that will fall down scaling-wise

01:31:16 ◼   ► is not the servers for a million people, that's fine.

01:31:19 ◼   ► Where it will fall down scaling-wise is the people side,

01:31:21 ◼   ► the community management, the trust and safety,

01:31:24 ◼   ► abuse, copyright stuff, that's where it's tough.

01:31:27 ◼   ► - 'Cause the two people are just needed

01:31:30 ◼   ► to do the iOS app and the service.

01:31:31 ◼   ► So who is handling, who's watching the zoo, right?

01:31:35 ◼   ► Who is gonna handle the content that is gonna flow

01:31:38 ◼   ► into your service from a million people?

01:31:41 ◼   ► That is a non-trivial problem.

01:31:43 ◼   ► Anyway, it's kind of interesting that like, you know,

01:31:45 ◼   ► this is an opportunity, like Twitter,

01:31:48 ◼   ► Twitter is, there is uncertainty surrounding Twitter,

01:31:51 ◼   ► let's say, right?

01:31:52 ◼   ► So that's an opportunity for competitive services

01:31:55 ◼   ► to potentially find their market, find their niche, right?

01:31:58 ◼   ► Like maybe Hive becomes the place

01:32:00 ◼   ► that the gaming industry hangs out, right?

01:32:03 ◼   ► And maybe some other app,

01:32:04 ◼   ► and it doesn't have to be part of the Fediverse,

01:32:07 ◼   ► or part of Mastodon or whatever,

01:32:08 ◼   ► maybe they're just happy to have their one little place.

01:32:10 ◼   ► In the same way, like DeviantArt was a place,

01:32:12 ◼   ► like a website where artists hang out,

01:32:14 ◼   ► and there's all sorts of,

01:32:15 ◼   ► I mean, the LiveJournal I think still exists,

01:32:16 ◼   ► but all sorts of websites and communities

01:32:19 ◼   ► that exist on the internet for smaller subsets

01:32:21 ◼   ► of sort of self-selected communities,

01:32:24 ◼   ► or interest groups, or whatever.

01:32:26 ◼   ► Even as down to something as simple

01:32:27 ◼   ► as like the MacRumors forums,

01:32:28 ◼   ► or the Ars Technica web forum,

01:32:30 ◼   ► back when every website had to have a web forum,

01:32:32 ◼   ► which was its own headache to deal with

01:32:34 ◼   ► at a much smaller scale,

01:32:35 ◼   ► but it would select for people,

01:32:37 ◼   ► the Ars Technica forum was filled with people

01:32:38 ◼   ► who read Ars Technica, including me.

01:32:40 ◼   ► A very self-selected group, narrow interests,

01:32:44 ◼   ► small number of people, headache to manage, right?

01:32:48 ◼   ► And Hive could end up being like that.

01:32:50 ◼   ► But anyway, I was just surprised

01:32:52 ◼   ► that the Hive sort of came out of nowhere

01:32:54 ◼   ► and had such incredible momentum from a source

01:32:57 ◼   ► that I have not yet determined.

01:32:58 ◼   ► But it got me roped into it.

01:33:01 ◼   ► And it does have some interesting features like this.

01:33:03 ◼   ► You can set yourself up to say,

01:33:04 ◼   ► I'm available to answer questions

01:33:05 ◼   ► and people can ask you questions and then you respond.

01:33:08 ◼   ► That's just fancy dressing around the ability

01:33:10 ◼   ► to tweet and reply essentially, in Twitter terms.

01:33:14 ◼   ► But it's a clever affordance for doing that within the app.

01:33:19 ◼   ► And it's filled with, kind of like Mastodon,

01:33:21 ◼   ► it's filled with new people.

01:33:22 ◼   ► And new people are, it's fun when new people are arriving

01:33:25 ◼   ► and they want to introduce themselves and people say hi.

01:33:27 ◼   ► And you know, it's, it's kind of all in that phrase. So I feel like that's a,

01:33:30 ◼   ► a fun time, you know, before the Nazis arrived.

01:33:33 ◼   ► Uh, yeah, yeah, yeah. Um,

01:33:38 ◼   ► we should very briefly talk specifically about Twitter. Hopefully very,

01:33:42 ◼   ► very briefly. Um, I wanted to point, uh,

01:33:45 ◼   ► everyone to a couple of different websites,

01:33:48 ◼   ► which I thought were very funny and interesting.

01:33:49 ◼   ► The first was a post called the fraudulent King by Ed Z. Um,

01:33:53 ◼   ► and I was going to read some snippets from it,

01:33:54 ◼   ► but I'll just leave it as an exercise for listener to go read that.

01:33:57 ◼   ► but it is a absolutely delightful,

01:33:59 ◼   ► it is a delightful take down of King Elon

01:34:03 ◼   ► and to some degree his disciples,

01:34:06 ◼   ► but it was very, very well done and I thought it was funny.

01:34:08 ◼   ► And then in the spirit of Web3 is going great,

01:34:11 ◼   ► we also have Twitter is going great,

01:34:12 ◼   ► which is a running list of all the different disasters

01:34:16 ◼   ► that are happening over at Twitter these days,

01:34:18 ◼   ► which is both hilarious and sad.

01:34:21 ◼   ► And then some people have gotten really, really concerned

01:34:24 ◼   ► that Twitter is about to get into a big fight with Apple.

01:34:27 ◼   ► What's going on with that, Jon?

01:34:28 ◼   ► Well, yeah, so this is something that people

01:34:31 ◼   ► who were inside Twitter and are now outside Twitter

01:34:33 ◼   ► have been saying is like, you might not

01:34:35 ◼   ► realize this from the outside, but we were constantly

01:34:37 ◼   ► wrangling with app review, surprise, surprise,

01:34:40 ◼   ► because Apple would complain to us about stuff

01:34:43 ◼   ► that's on Twitter.

01:34:44 ◼   ► Apple does have policies about what can be in apps

01:34:47 ◼   ► that you sell on the App Store.

01:34:49 ◼   ► And those policies have always been tricky

01:34:52 ◼   ► if your app is essentially a front end to a community

01:34:55 ◼   ► where users post arbitrary content,

01:34:57 ◼   ► because they're like, "Look, we just make the app."

01:34:59 ◼   ► Or, "We're not, like, when we give you the app to review,

01:35:03 ◼   ► like, we don't, you know, can you just review the app

01:35:05 ◼   ► and not review what people post?"

01:35:06 ◼   ► And they're like, "Well, if you made an app

01:35:08 ◼   ► but everybody posts porn there,

01:35:09 ◼   ► we're gonna tell you you can't have your app

01:35:11 ◼   ► because we don't allow porn apps on the App Store."

01:35:13 ◼   ► And they're like, "Well, but we don't, it's not,

01:35:15 ◼   ► we don't want porn, just sometimes people sneak porn in

01:35:18 ◼   ► before we can remove it."

01:35:19 ◼   ► And Apple's like, "Well, you have to do better on that."

01:35:21 ◼   ► And there's been lots of runarounds

01:35:22 ◼   ► with various applications saying, like,

01:35:24 ◼   ► that Apple is not happy with the content moderation policies or mechanisms this app implements

01:35:28 ◼   ► therefore you can't go on the App Store.

01:35:30 ◼   ► And Twitter itself, over the years, has apparently had lots of run-ins with Apple, where either

01:35:36 ◼   ► Apple itself, bigwigs writ large, or some random reviewer just like the rest of us,

01:35:41 ◼   ► they get some random app reviewer that says "your app is rejected because I launched Twitter

01:35:45 ◼   ► and I saw porn and…"

01:35:47 ◼   ► I'm sure you guys always have porn, but whatever the complaint is, I saw hate speech

01:35:50 ◼   ► or something soliciting money for gambling,

01:35:54 ◼   ► whatever the policies of the day are on the App Store.

01:35:57 ◼   ► And then Twitter would have to work through that,

01:35:58 ◼   ► say, "Okay, we'll work with you, Apple,

01:36:00 ◼   ► "'cause we're another big company,

01:36:02 ◼   ► "and we can actually get humans

01:36:02 ◼   ► "to communicate about App Review."

01:36:04 ◼   ► - It's even worse than I saw it.

01:36:06 ◼   ► It's, "I searched for this,

01:36:08 ◼   ► "and therefore was able to find it."

01:36:10 ◼   ► Like, the app reviewers will search for things,

01:36:12 ◼   ► like porn or whatever,

01:36:14 ◼   ► and then they will dig in the app and say,

01:36:15 ◼   ► "I searched for this, I was able to find it.

01:36:17 ◼   ► "I shouldn't even be able to find it."

01:36:18 ◼   ► - I mean, and obviously, porn is on Twitter.

01:36:20 ◼   ► like, where people don't know, it's not, Twitter allows it,

01:36:23 ◼   ► and so obviously they worked out something with Apple,

01:36:24 ◼   ► but that whole relationship, it is a relationship

01:36:27 ◼   ► between two big companies that has allowed Twitter

01:36:30 ◼   ► to remain on the App Store,

01:36:32 ◼   ► and allowed Twitter to ship updates.

01:36:34 ◼   ► If there is another run-in like that,

01:36:36 ◼   ► I have a feeling that Elon Musk will not be

01:36:38 ◼   ► as politically adept as the previous Twitter management

01:36:42 ◼   ► when it comes to negotiating with Apple

01:36:44 ◼   ► about what Apple wants to allow on the App Store.

01:36:48 ◼   ► So nothing has happened related to this as far as I know.

01:36:50 ◼   ► It's just people leaving Twitter saying,

01:36:52 ◼   ► hey, we did this over the years.

01:36:54 ◼   ► I'm kind of wondering how that's gonna go down

01:36:57 ◼   ► now that Elon is in charge.

01:36:58 ◼   ► 'Cause one, he's pretty much gutted content moderation.

01:37:00 ◼   ► Two, even if he hadn't done that,

01:37:02 ◼   ► he's got a different idea about the rules.

01:37:03 ◼   ► And three, his ability to negotiate with people

01:37:08 ◼   ► is not proven to be particularly robust, let's say.

01:37:13 ◼   ► 'Cause Apple is big,

01:37:17 ◼   ► and they want to have their way,

01:37:19 ◼   ► and Elon wants to have his way,

01:37:20 ◼   ► and they both have lots of money,

01:37:22 ◼   ► and they're both pretty stubborn,

01:37:23 ◼   ► and so if that happens, it'll be interesting.

01:37:26 ◼   ► And related to Elon, there was another story,

01:37:28 ◼   ► I don't know if we have the link for the show,

01:37:29 ◼   ► it's I think it was on The Verge.

01:37:30 ◼   ► He had an all-hands meeting reportedly,

01:37:34 ◼   ► and basically said, "Hey, the layoffs are done,

01:37:36 ◼   ► "we're not firing any more people,

01:37:37 ◼   ► "and in fact, we're even hiring."

01:37:38 ◼   ► And I thought that was, you know,

01:37:40 ◼   ► (laughing)

01:37:41 ◼   ► a perfect capper for his fairly ridiculous

01:37:44 ◼   ► personnel decisions over his first month or so,

01:37:47 ◼   ► running Twitter. Now they want to hire people because they probably fired some people they

01:37:51 ◼   ► shouldn't have, so they need to get good people, and he really wants people who are good at

01:37:55 ◼   ► writing code, because as I think our discussion today has established, the biggest problem

01:37:59 ◼   ► Twitter faces is the ability to write good code.

01:38:01 ◼   ► Oh my god. Did you see, apparently he's also demanding that everyone send him status reports

01:38:07 ◼   ► every Friday afternoon. So he's asking every employee to email him every Friday afternoon

01:38:13 ◼   ► with what they've done for the, it's like,

01:38:14 ◼   ► so he wants like 2,700 emails a week to arrive on a Friday

01:38:18 ◼   ► that he's gonna somehow go through?

01:38:20 ◼   ► - Yeah, this is, I mean, this is where I like,

01:38:22 ◼   ► when I was talking about like the companies that he has

01:38:24 ◼   ► that must be filled with people who understood

01:38:26 ◼   ► how to sort of navigate his management style, let's say.

01:38:30 ◼   ► And I feel like the move, if I was there--

01:38:32 ◼   ► - You're being very kind.

01:38:34 ◼   ► - If I was there, the move would totally be,

01:38:36 ◼   ► just send them a funny meme.

01:38:38 ◼   ► That's all he wants to see.

01:38:39 ◼   ► He'd see it and he'd laugh and he'd be like,

01:38:41 ◼   ► hey, I like this guy.

01:38:42 ◼   ► Like that's the move.

01:38:43 ◼   ► - No, see, I'd be worried about,

01:38:45 ◼   ► like you don't wanna stand out to him though, in any way.

01:38:48 ◼   ► Like if you want, for some reason,

01:38:50 ◼   ► if you're stuck working for this jerk,

01:38:51 ◼   ► you wanna probably be under the radar a bit.

01:38:53 ◼   ► Like you want to be able to show him if he ever asks,

01:38:56 ◼   ► here's what I do, but you never want to be noticeable to him.

01:39:01 ◼   ► - But I feel like he wants to notice you.

01:39:02 ◼   ► I feel like he is gonna go through all 2,700 on the first

01:39:04 ◼   ► day and like complain if your status support isn't good.

01:39:07 ◼   ► Whereas if you send him a funny meme,

01:39:08 ◼   ► he'll just chuckle and move to the next one

01:39:09 ◼   ► and think that's a cool dude.

01:39:10 ◼   ► - Really?

01:39:11 ◼   ► - No, no, no, no, no, no, no, no, no, no, no, no.

01:39:12 ◼   ► - I mean, it's a risk. - I think John's right.

01:39:14 ◼   ► - I think it's a risk, and it's a risk I wouldn't take

01:39:16 ◼   ► if I wanted that job.

01:39:17 ◼   ► - I mean, just look at how he interacts with, like,

01:39:19 ◼   ► the worst of likely, you know, the worst people on Twitter,

01:39:24 ◼   ► many of whom he has reinstated after being kicked off

01:39:26 ◼   ► for good reasons.

01:39:26 ◼   ► He loves talking to those guys.

01:39:29 ◼   ► Just, yeah, he just eats it up.

01:39:31 ◼   ► - It's unbelievable to me, I really,

01:39:33 ◼   ► I shouldn't be encouraging us to talk about this anymore,

01:39:36 ◼   ► but here we go.

01:39:37 ◼   ► It's unbelievable to me how quickly

01:39:41 ◼   ► and how readily apparent it is that he is just not a good dude.

01:39:46 ◼   ► Like, I know we kind of knew this already,

01:39:48 ◼   ► but I don't know, maybe it's because --

01:39:50 ◼   ► I should only speak for myself, but I looked at Tesla,

01:39:54 ◼   ► and I looked at SpaceX, and I looked at Starlink

01:39:56 ◼   ► and, you know, all these different things,

01:39:58 ◼   ► with the exception of the Boring Company,

01:40:00 ◼   ► that he had done that, like,

01:40:01 ◼   ► looks like he's doing good work.

01:40:03 ◼   ► Like, Tesla, as a company,

01:40:05 ◼   ► certainly has pushed the world forward.

01:40:07 ◼   ► I think that's without question.

01:40:08 ◼   ► SpaceX, from what little I understand,

01:40:10 ◼   ► pushed the world forward. And yet, the more time he spends at Twitter, the more I think

01:40:17 ◼   ► that, A, he's a garbage human, and B, all these companies succeeded in spite, not because

01:40:22 ◼   ► of him. And it's so hard to tell from the outside, like who really knows? Maybe I have

01:40:26 ◼   ► this dead wrong, but...

01:40:27 ◼   ► - No, but he's showing us, like before we could say, like, you know, if we heard, like

01:40:32 ◼   ► before he was all over Twitter, if we would have heard from someone, "Oh, this guy is

01:40:37 ◼   ► you know, really hard to work for. Think about, and I know this is a tired comparison and

01:40:41 ◼   ► not apt for so many reasons, but think about what we think of Steve Jobs. Steve Jobs is

01:40:45 ◼   ► never on Twitter. So what we think of Steve Jobs is informed solely by his public events

01:40:52 ◼   ► and the stories we heard from people who worked with him. And that's a much smaller exposure

01:40:58 ◼   ► surface. Now we have all these idiot billionaires and celebrities and politicians making fools

01:41:04 ◼   ► of themselves on Twitter all the time for us to see right there in the open. And it

01:41:08 ◼   ► reveals them to be these jerks/idiots in various ways that kind of ruins the mystique of who

01:41:15 ◼   ► they were. Before Twitter, we would never have known that. Before social networking

01:41:20 ◼   ► was a major thing, they weren't exposing their personalities in all these ways. So with him,

01:41:27 ◼   ► had it not been for him being so hooked on Twitter and promoting himself there and being

01:41:33 ◼   ► a kind of a crap poster there.

01:41:35 ◼   ► Like, if not for that, we would never have known

01:41:39 ◼   ► that this guy was this jerk.

01:41:42 ◼   ► We would just think like, oh yeah,

01:41:43 ◼   ► we heard he's a little hard to work for.

01:41:44 ◼   ► Sometimes he does weird things in the press, but you know.

01:41:47 ◼   ► - Well, there's also the,

01:41:48 ◼   ► we would have heard the stories that are,

01:41:50 ◼   ► stories that we tend to,

01:41:51 ◼   ► that are above and beyond anything we ever heard

01:41:53 ◼   ► about Steve Jobs, I think.

01:41:54 ◼   ► Wasn't his story where he was trying

01:41:56 ◼   ► to solicit sexual favors from someone on a private jet

01:41:58 ◼   ► and promised to buy them a horse if they did it.

01:42:00 ◼   ► Like, I think that was Elon Musk.

01:42:01 ◼   ► Sorry if I'm getting it wrong, but like,

01:42:03 ◼   ► even just the stories that have leaked out of private things

01:42:08 ◼   ► have put him in a category beyond even the worst

01:42:12 ◼   ► of Steve Jobs, which is denying his paternity

01:42:15 ◼   ► of his daughter and being a terrible boss

01:42:17 ◼   ► and being super terrible to some people

01:42:19 ◼   ► who work for him, right?

01:42:20 ◼   ► - Yeah, but still, I feel like Nat,

01:42:22 ◼   ► like in this era of all these celebrities and politicians

01:42:25 ◼   ► and billionaires being on Twitter,

01:42:28 ◼   ► Like, they are just constantly making asses of themselves

01:42:32 ◼   ► and he is at the top of the list.

01:42:34 ◼   ► Like, if he was never on Twitter,

01:42:37 ◼   ► I think he would be so much better off.

01:42:40 ◼   ► Like, he would have a much better reputation,

01:42:43 ◼   ► he would have far less drama to deal with,

01:42:45 ◼   ► he wouldn't constantly step in it the way he does.

01:42:50 ◼   ► Like, I think Twitter has done a great disservice for him

01:42:54 ◼   ► and vice versa. (laughs)

01:42:56 ◼   ► because he just, he's the kind of person who like,

01:43:01 ◼   ► having less access between the public and him

01:43:05 ◼   ► is good for him, and instead he just is ramping it up.

01:43:09 ◼   ► - Yep, it's just unbelievable how quickly

01:43:13 ◼   ► and how effectively and adeptly

01:43:17 ◼   ► he has ruined his own reputation.

01:43:20 ◼   ► And here again, I just don't understand

01:43:23 ◼   ► the people that are still clinging to him,

01:43:25 ◼   ► like some sort of Messiah or something that like, Oh, he's playing, you know,

01:43:29 ◼   ► seven D chess. You'll see. You'll see. Maybe possibly,

01:43:34 ◼   ► but golly, I would be flabbergasted if, if he really is playing 40 chess.

01:43:38 ◼   ► I've a link from the verge around this story. It's from a,

01:43:41 ◼   ► also from may of this year,

01:43:42 ◼   ► space X reportedly paid $250,000 to corrupt Elon Musk's sexual misconduct.

01:43:46 ◼   ► The flight attendant claimed he touched her inappropriately and asks for more

01:43:49 ◼   ► erotic massage. Um, yeah, those types of stories. Like good guy. Good guy. Yeah.

01:43:54 ◼   ► So it's kind of like, you know, this is part of the entire problem of everything.

01:43:58 ◼   ► Like, oh, well, every powerful male is sexually assaults people from time to time.

01:44:03 ◼   ► And we just ignore it.

01:44:03 ◼   ► Oh, it's totally fine.

01:44:04 ◼   ► No big deal.

01:44:04 ◼   ► Right.

01:44:04 ◼   ► Exactly.

01:44:05 ◼   ► I mean, even if, even if you a hundred percent admit to it, we'll still elect you president.

01:44:08 ◼   ► It's fine.

01:44:09 ◼   ► No one cares about sexual assault.

01:44:10 ◼   ► Um, and sadly, uh, enough people have that attitude that it continues to be a thing that we don't even talk about it and just goes beneath our notice.

01:44:18 ◼   ► And we spend our time talking about, yeah, but is he good for the company?

01:44:22 ◼   ► We are sponsored this week by Collide.

01:44:24 ◼   ► Collide is an endpoint security solution

01:44:27 ◼   ► that uses the most powerful untapped resource in IT,

01:44:30 ◼   ► end users.

01:44:31 ◼   ► When you're trying to achieve security goals,

01:44:33 ◼   ► whether it's for a third party audit or your own compliance

01:44:36 ◼   ► standards, the conventional wisdom

01:44:37 ◼   ► is to treat every device like Fort Knox.

01:44:40 ◼   ► Old school device management tools like MDMs

01:44:42 ◼   ► force disruptive agents onto employee devices,

01:44:45 ◼   ► thus slow down performance and treat privacy

01:44:47 ◼   ► as an afterthought.

01:44:48 ◼   ► And that way of doing things turns IT admins and end users

01:44:52 ◼   ► into enemies. And it creates its own security problems because users end up turning to shadow

01:44:56 ◼   ► IT just to do their jobs. So Collide does things differently. Instead of forcing changes

01:45:01 ◼   ► on users, Collide sends them security recommendations via Slack. It will automatically notify your

01:45:06 ◼   ► team if their devices are insecure and give them step-by-step instructions on how to solve

01:45:11 ◼   ► the problem. By reaching out to employees with a friendly Slack DM and educating them

01:45:15 ◼   ► about company policies, Collide can help you build a culture in which everyone contributes

01:45:20 ◼   ► to security because everyone understands how and why you do it.

01:45:24 ◼   ► For IT admins, Collide provides a single dashboard that lets you monitor the security of your

01:45:29 ◼   ► entire fleet whether they're running on Mac, Windows, or Linux.

01:45:32 ◼   ► You can see at a glance which employees have their disks encrypted, their OS up to date,

01:45:37 ◼   ► their password manager installed, anything else you might need.

01:45:39 ◼   ► So this makes it easy to prove compliance to your auditors, customers, and leadership.

01:45:44 ◼   ► So that's Collide.

01:45:46 ◼   ► centered cross-platform endpoint security for teams that slack. You can meet your compliance

01:45:51 ◼   ► goals by putting users first. Visit collide.com/ATP to find out how. If you follow that link,

01:45:58 ◼   ► they'll hook you up with a goodie bag, including a t-shirt, just for activating a free trial.

01:46:03 ◼   ► That's collide, K-O-L-I-D-E, dot com slash ATP, collide.com/ATP. Thank you so much to

01:46:11 ◼   ► to Collide for sponsoring our show.

01:46:13 ◼   ► [MUSIC PLAYING]

01:46:16 ◼   ► All right, let's move along.

01:46:18 ◼   ► And let's just go straight to some Ask ATP.

01:46:20 ◼   ► Starting with Dominic Lemire, Dominic

01:46:23 ◼   ► writes, "I've been using the built-in Apple apps, especially

01:46:25 ◼   ► AirPlay, on my TV for the last few years.

01:46:27 ◼   ► And I'm wondering why this is not something most people want

01:46:30 ◼   ► or demand from their TV manufacturers.

01:46:32 ◼   ► Working in the set-top box industry,

01:46:33 ◼   ► I know firsthand how HDMI CEC is an interoperability nightmare.

01:46:36 ◼   ► I prefer having everything built into the TV for simplicity

01:46:39 ◼   ► and tighter integration.

01:46:40 ◼   ► I don't have to mess around with matching frame rates. Last year I decided to try the Apple TV 4K to see what I'm missing.

01:46:45 ◼   ► It is snappier, but other than that, I didn't feel like it was worth the extra clutter and complexity.

01:46:49 ◼   ► I'd be curious to hear what you two have to say about this, but to start, I do have a

01:46:54 ◼   ► semi-modern LG TV we bought at the end of 2019 and

01:46:58 ◼   ► for a little while when I still had the 1080 Apple TV connected to it, I was often using

01:47:06 ◼   ► The the TV apps because especially for like Disney Plus I had no no 4k input into my TV

01:47:14 ◼   ► but eventually I got the 4k Apple TV, you know the prior generation the one that brought the new remote and

01:47:20 ◼   ► It was like a breath of fresh air

01:47:23 ◼   ► It was like, you know, oh, this is so much better because it's it's exactly that everything is snappier

01:47:28 ◼   ► It's consistent way more consistent. It just works better my TV

01:47:33 ◼   ► I don't have connected to Ethernet, although I could have, and the Apple TV is connected to Ethernet,

01:47:38 ◼   ► so it's more responsive in that regard. Just everything is better.

01:47:41 ◼   ► And I also really, really like that the Apple TV has become basically the entire television to me.

01:47:48 ◼   ► I don't have a TiVo.

01:47:49 ◼   ► I no longer have any sort of DVR that's not run through the Apple TV because I use

01:47:54 ◼   ► sponsor channels. The Apple TV is the TV unless we're playing the Switch or the Wii. And

01:48:00 ◼   ► HDMI CEC, I have been and continue to be a HDMI CEC unicorn, probably because I only really have the Apple TV

01:48:08 ◼   ► connected to my TV. And so I think, for my money, especially now that it's gotten cheaper,

01:48:13 ◼   ► it's so much better than the TV apps and so much peppier and snappier and so much

01:48:20 ◼   ► just so much better in every measurable way that I would much prefer that over using the TV.

01:48:26 ◼   ► I could live with just the TV apps, but I would very much prefer not to.

01:48:31 ◼   ► Let's start with Marco, who I think will probably have a similar answer to me, and then Jon,

01:48:34 ◼   ► you can correct the two of us.

01:48:35 ◼   ► Yeah, I mean, I've, like, my stupid Samsung Frame TV has, you know, fairly modern apps

01:48:43 ◼   ► in it.

01:48:44 ◼   ► My old LG OLED does not really, it's modern-ish, but not enough.

01:48:49 ◼   ► But the Samsung Frame TV is fine with all of its apps, but I just don't want to use

01:48:54 ◼   ► them.

01:48:55 ◼   ► I could if I had to, if there was no Apple product

01:48:58 ◼   ► in this category, I would use the apps on my TV

01:49:02 ◼   ► the same way I used to use cable boxes.

01:49:03 ◼   ► Like, yeah, I can use these things,

01:49:06 ◼   ► but I just prefer the way the Apple product works.

01:49:09 ◼   ► I think it is nicer, it fits my preferences

01:49:14 ◼   ► and expectations better.

01:49:16 ◼   ► I even, I hate to say this, I even like the remote better,

01:49:20 ◼   ► because the Samsung remote is just that bad.

01:49:22 ◼   ► (laughs)

01:49:24 ◼   ► But I just like it better.

01:49:26 ◼   ► And if these products didn't exist, I'd be fine.

01:49:29 ◼   ► I would live with the TV the same way I did

01:49:31 ◼   ► before the Apple TV existed.

01:49:34 ◼   ► But fortunately, I don't have to make that choice.

01:49:36 ◼   ► - Jon, what's the right answer?

01:49:38 ◼   ► - Yeah, so there's a couple things here.

01:49:39 ◼   ► One, obviously, is modularity.

01:49:41 ◼   ► You're probably gonna keep a TV for a while,

01:49:44 ◼   ► but technology marches on and you can,

01:49:46 ◼   ► if you're a sucker like us, keep your place

01:49:47 ◼   ► in the Apple TV puck to get better and better performance.

01:49:50 ◼   ► So just having it as a separate concern

01:49:52 ◼   ► and not welded together.

01:49:53 ◼   ► Maybe in the beginning when you first get your TV,

01:49:55 ◼   ► you don't care that much about it,

01:49:57 ◼   ► but over time it pays dividends.

01:49:59 ◼   ► Two, TV manufacturers, most of them are heavily incentivized

01:50:02 ◼   ► to spy on you like crazy.

01:50:05 ◼   ► If you don't like having your television report back

01:50:08 ◼   ► to somebody exactly what you're watching

01:50:09 ◼   ► for how long constantly as part of the way they make money

01:50:12 ◼   ► off of the television that they sold you

01:50:13 ◼   ► for just barely over how much it costs them to make it,

01:50:16 ◼   ► you might wanna use a box attached to your TV

01:50:18 ◼   ► and not let your TV onto the network.

01:50:20 ◼   ► So if you're concerned at all about privacy,

01:50:22 ◼   ► Apple in particular, but in general, anything that is outside your TV that has a understandable

01:50:26 ◼   ► profit, understandable way to make money besides spying on you, is probably a better move.

01:50:31 ◼   ► And finally, especially with the Apple TV, the most recent one, the grunt, the CPU and

01:50:38 ◼   ► GPU power inside an Apple TV is head and shoulders above what it is inside any television.

01:50:44 ◼   ► Television have dedicated chips to deal with the video signal processing, but the thing

01:50:47 ◼   ► they have left over to run your apps is so much wimpier than the hardware that's in an

01:50:53 ◼   ► Apple TV and probably has less RAM available to it and slower storage. And it shows in the apps,

01:51:00 ◼   ► right? From the day you get them, no matter how much money you pay for a TV, and I just paid a

01:51:04 ◼   ► lot of money for a TV, there is no built-in television that has an interface as snappy as

01:51:10 ◼   ► the Apple TV because the hardware is just not as powerful, right? And that's on day one of me buying

01:51:17 ◼   ► like an extremely expensive television is just going to get worse over time, right?

01:51:20 ◼   ► Not that I think Apple TV is slow by any means, but you know, it's the Apple TVs will keep getting

01:51:26 ◼   ► faster. My TV is going to stay exactly the same, right? And as for HDMI CC, it continues to be my

01:51:32 ◼   ► enemy. My most recent thing is that I had to watch a movie for a podcast I was doing. We did an

01:51:37 ◼   ► episode of the incomparable and I'm watching the movie. I have it on Blu-ray. I finally get to use

01:51:40 ◼   ► my fancy blu ray player and something about the Apple TV, if you have an Apple TV and

01:51:47 ◼   ► you have a position where you can see its little white light on the front of it, you'll

01:51:51 ◼   ► see that the white light goes off, like it goes to sleep when you're not using it, right?

01:51:55 ◼   ► But sometimes the white light comes on and it wakes up to do something.

01:51:59 ◼   ► Is it doing app updates?

01:52:01 ◼   ► Why is it waking up?

01:52:02 ◼   ► I don't know.

01:52:03 ◼   ► But through the magic of HDMI CEC, when it wakes up, my TV/receiver/who knows what in

01:52:08 ◼   ► in my giant setup says, oh, it looks like you just powered on your Apple TV.

01:52:12 ◼   ► You probably want me to change inputs to Apple TV because you want to watch that now.

01:52:16 ◼   ► It did that while I was watching my Blu-ray.

01:52:19 ◼   ► I'm watching my Blu-ray and then the Apple TV wakes up and my TV goes, oh, I'm going

01:52:22 ◼   ► to change it, but better the Apple TV.

01:52:24 ◼   ► But then as it's changing input, the Blu-ray player says, no, I'm playing a movie.

01:52:28 ◼   ► And then it switches back and then they fight each other.

01:52:30 ◼   ► And then I have to, I was so close to just unplugging the Apple TV.

01:52:33 ◼   ► In the end, I just had to manually put the Apple TV to sleep.

01:52:36 ◼   ► So it stopped leaving me alone.

01:52:37 ◼   ► I think, unlike what this was called back in the day

01:52:40 ◼   ► on my Panasonic Plasma, it was like smart beer

01:52:43 ◼   ► or whatever, something or other.

01:52:44 ◼   ► I don't even think I can turn HDMI CEC off now.

01:52:47 ◼   ► I think it's just on everywhere

01:52:48 ◼   ► and I just have to deal with it.

01:52:50 ◼   ► Not a good standard, don't like it.

01:52:53 ◼   ► Works for me.

01:52:54 ◼   ► - Yeah, it works here.

01:52:55 ◼   ► - Yeah, never connect more than one thing

01:52:56 ◼   ► to your television.

01:52:57 ◼   ► - Yeah, it works great.

01:52:58 ◼   ► That's exactly, that's the secret.

01:53:00 ◼   ► - And even then, I think it doesn't work reliable

01:53:02 ◼   ► all the time because you have some people

01:53:04 ◼   ► who literally only have one thing connected to their TV

01:53:05 ◼   ► it's still sometimes as wonky stuff. Well buy better TVs, Jon. Nougat Machine

01:53:09 ◼   ► writes, "What are the ethics of using an Xfinity Wi-Fi hotspot out in public

01:53:13 ◼   ► given the very high chance it's being served up to you by another customer

01:53:16 ◼   ► leasing an Xfinity powered cable modem and using up their precious resources

01:53:20 ◼   ► without their knowledge? If you're a customer with your own modem or you

01:53:23 ◼   ► lease theirs but have done the magic incantation to opt out of this

01:53:28 ◼   ► quote-unquote feature, does that affect the moral calculus?" I don't know. I mean

01:53:32 ◼   ► if this is a perk of being an Xfinity customer, it might be the only perk of being an Xfinity

01:53:39 ◼   ► customer, so I guess run with it, man. I don't know, what do you think, Jon?

01:53:43 ◼   ► Yeah, I'm saying like this is the way the Xfinity thing works. Everyone who's paying for it

01:53:47 ◼   ► understands that. You're not doing anything for anybody by not using this feature. If you need to

01:53:55 ◼   ► use it, use it. And other people are certainly going to use yours because that's part of what

01:53:59 ◼   ► what they're paying for. You are a collective of Xfinity people who are all providing free

01:54:04 ◼   ► Wi-Fi hotspots to all the other Xfinity customers. That's what you're paying for. Use what you

01:54:09 ◼   ► paid for. I think it's a crappy experience all around. It's a crappy experience letting

01:54:14 ◼   ► other people use your Wi-Fi, and it's a crappy experience using other people's because it

01:54:17 ◼   ► tends to be slow. But that's the system you're in, and if you're stuck with it because you

01:54:22 ◼   ► can't get any better cable provider, that's another problem with the competitive landscape

01:54:26 ◼   ► of telecom in America.

01:54:27 ◼   ► or lack thereof.

01:54:29 ◼   ► Chris Wright asks, "As we're generating increasingly more digital media every single day,

01:54:33 ◼   ► do you think that data storage could become a scarce resource?

01:54:36 ◼   ► How could this problem be avoided and what is the endgame for digital hoarding?"

01:54:40 ◼   ► For me, the endgame is I run out of space on my Synology and my Synology--

01:54:44 ◼   ► I don't know if I mentioned this on the show--my Synology is no longer going to be--

01:54:48 ◼   ► or our Synologies will no longer be getting software updates starting very soon.

01:54:53 ◼   ► I forget exactly when, so I think I am staring down the barrel of

01:54:57 ◼   ► Finally after nine years and having this thing running pretty much 24/7 for nine years

01:55:04 ◼   ► I think I'm finally staring down the barrel of having to replace it. So

01:55:08 ◼   ► That's gonna probably happen at some point next year or maybe Santa will bring me something great. Who knows does Santa bring Synology?

01:55:15 ◼   ► Hey, it depends on if you ask very nicely and how if you whether you've been a good boy or not this year

01:55:20 ◼   ► Anyway, Marco, I maybe Santa isn't bringing your Synology

01:55:24 ◼   ► but do you think data storage problems will,

01:55:25 ◼   ► or data storage will ever become scarce?

01:55:28 ◼   ► - I don't think so.

01:55:30 ◼   ► I mean, I haven't been following the developments

01:55:32 ◼   ► enough recently in like hard drive density

01:55:34 ◼   ► and flash density and everything,

01:55:35 ◼   ► like how fast we're progressing there,

01:55:37 ◼   ► but it seems like hard drives are pretty giant.

01:55:42 ◼   ► Like as long, and it seems like as long as you don't care

01:55:44 ◼   ► about speed, then you can get effectively infinite storage

01:55:49 ◼   ► for not that much money.

01:55:50 ◼   ► Now, you know, there are certain things like,

01:55:53 ◼   ► like as Chris asked, we are generating more stuff over time.

01:55:58 ◼   ► Like per person, the digital footprint is getting larger

01:56:01 ◼   ► and that's largely due to mobile phone cameras.

01:56:05 ◼   ► And that's going to continue to get better over time.

01:56:09 ◼   ► It's a highly competitive, highly fast moving industry

01:56:14 ◼   ► where phone cameras are gonna keep shooting

01:56:16 ◼   ► bigger, higher resolution pictures,

01:56:18 ◼   ► we're gonna keep shooting more and more video clips

01:56:20 ◼   ► and things like that.

01:56:21 ◼   ► So we are gonna keep generating more data,

01:56:24 ◼   ► but I think storage is so vast,

01:56:28 ◼   ► I don't think we're gonna run out of it anytime soon.

01:56:30 ◼   ► - John, on an infinite time scale,

01:56:32 ◼   ► will we ever run out of storage?

01:56:34 ◼   ► - Yeah, so storage, like, so Moore's Law

01:56:37 ◼   ► will eventually run out.

01:56:38 ◼   ► Moore's Law is the doubling of transistor density

01:56:40 ◼   ► every 18 months, whatever, yada yada.

01:56:43 ◼   ► But it's talking about transistors,

01:56:44 ◼   ► but lots of people look at Moore's Law and say,

01:56:47 ◼   ► well, you know, transistor or not,

01:56:51 ◼   ► we can't keep making things smaller forever.

01:56:53 ◼   ► Like there is a limit to the smallest size of a thing

01:56:56 ◼   ► that we are aware of that can be manipulated, right?

01:56:59 ◼   ► And there's, right?

01:57:00 ◼   ► So that's the limit lurking out somewhere in the distance.

01:57:04 ◼   ► Storage mostly follows that same path.

01:57:07 ◼   ► The difference is that I feel like storage is,

01:57:09 ◼   ► it's easier to move down that path,

01:57:12 ◼   ► slightly easier to move down that path in storage, right?

01:57:14 ◼   ► Because for transistors in like CPUs and stuff,

01:57:17 ◼   ► And you may be thinking, "Oh, transistors are used in memory too," but just hear me

01:57:21 ◼   ► out.

01:57:22 ◼   ► Transistors for CPUs and stuff, those are delicate little things that have to be arranged

01:57:27 ◼   ► just so, so they can switch correctly and avoiding leakage current and all sorts of

01:57:31 ◼   ► other things.

01:57:32 ◼   ► So it's not so easy to keep making those smaller.

01:57:34 ◼   ► It's very difficult to keep making things smaller and smaller.

01:57:37 ◼   ► We've had to come up with new arrangements of the little parts in them, so they're not

01:57:40 ◼   ► even shaped like they were back when they were a little bit bigger.

01:57:43 ◼   ► And that's a really hard problem.

01:57:45 ◼   ► For storage, you do have the problem of how small of a particle we can get, but we're

01:57:49 ◼   ► not even close to that.

01:57:51 ◼   ► But instead it's the easier problem of "I just need something to store something."

01:57:55 ◼   ► So far we're using similar technology to CPU stuff, as transistors and various things like

01:58:00 ◼   ► that.

01:58:01 ◼   ► But there's lots of research and studies of how to store things essentially without using

01:58:08 ◼   ► transistors.

01:58:09 ◼   ► I think you've probably seen the stories in science journals or news articles over the

01:58:13 ◼   ► past couple of decades of using DNA to store data, using bacteria, using all sorts of organic

01:58:20 ◼   ► things, and it's always a big headline story.

01:58:22 ◼   ► It's like, "Look how much data we stored in this tiny little bit of organic matter.

01:58:27 ◼   ► It's incredibly efficient.

01:58:28 ◼   ► It's way more efficient than transistors."

01:58:30 ◼   ► And the molecules that make up DNA are not the size of subatomic particles.

01:58:35 ◼   ► You can see them in a microscope, right?

01:58:38 ◼   ► But they're pretty darn small, and they're actually very densely packed.

01:58:41 ◼   ► So I feel like it's going to be harder to travel down the Moore's law path of CPU than

01:58:48 ◼   ► it will be to travel down that path in storage, just because I think when storage hits the

01:58:53 ◼   ► wall of the transistors, it has another route.

01:58:56 ◼   ► It can say, "Well, I don't really need transistors to store stuff."

01:58:58 ◼   ► If it can figure out how to store things in DNA or whatever, bacteria or whatever, other

01:59:03 ◼   ► thing like that, maybe that is a viable route where logic will get hung up on figuring out

01:59:09 ◼   ► how to make the next shrink and storage will continue to progress.

01:59:13 ◼   ► So I'm pretty optimistic that storage will continue to progress and progress.

01:59:18 ◼   ► And as I've said in many shows in the past, most of the things we put in storage are things

01:59:22 ◼   ► that are absorbed by our senses.

01:59:25 ◼   ► Eventually we will reach the point of diminishing returns with at least two-dimensional video

01:59:30 ◼   ► just like we already have with audio.

01:59:33 ◼   ► And so our storage needs actually will, not that they'll cap out because we'll always

01:59:36 ◼   ► need more and more storage, but I think the curve will bend a little bit as we start saturating

01:59:41 ◼   ► human sensory resolution, so to speak.

01:59:45 ◼   ► Thanks to our sponsors this week, Memberful, Collide, and Backblaze.

01:59:50 ◼   ► And thanks to our members who support us directly.

01:59:51 ◼   ► You can join at atpz.fm/join.

01:59:54 ◼   ► We will talk to you next week.

01:59:56 ◼   ► [MUSIC PLAYING]

01:59:59 ◼   ► Now the show is over.

02:00:01 ◼   ► They didn't even mean to begin.

02:00:03 ◼   ► 'Cause it was accidental, oh it was accidental John didn't do any research, Marco and Casey

02:00:13 ◼   ► wouldn't let him 'Cause it was accidental, oh it was accidental

02:00:20 ◼   ► And you can find the show notes at ATP.fm And if you're into Twitter, you can follow

02:00:29 ◼   ► Follow them @CASEYLISS

02:00:34 ◼   ► So that's Kasey Liss, M-A-R-C-O-A-R-M

02:00:38 ◼   ► Auntie Marco Armin, S-I-R-A-C

02:00:43 ◼   ► USA, Syracuse

02:00:46 ◼   ► It's accidental (it's accidental)

02:00:49 ◼   ► They didn't mean to

02:00:51 ◼   ► Accidental (accidental)

02:00:54 ◼   ► ♪ Tech podcast so long ♪

02:00:57 ◼   ► - So it is, as previously mentioned,

02:01:01 ◼   ► Thanksgiving week here in America,

02:01:03 ◼   ► and we should probably share some things

02:01:06 ◼   ► that we're thankful for.

02:01:07 ◼   ► And if one of you would like to start, you certainly can,

02:01:10 ◼   ► but I figured I would start to give you too some time

02:01:12 ◼   ► to think about it since I'm springing this on you.

02:01:14 ◼   ► - You totally are.

02:01:15 ◼   ► You're springing this on there like someone's mom

02:01:17 ◼   ► at a Thanksgiving dinner,

02:01:18 ◼   ► once everyone who was at the dinner,

02:01:19 ◼   ► it's not even your house, you're over at your friend's house

02:01:22 ◼   ► and the mom says, "We're all gonna go around the table

02:01:23 ◼   ► and say what we're thankful for. That's you.

02:01:24 ◼   ► Yep, that's me right now. So what am I thankful for?

02:01:27 ◼   ► Obviously I need to pander, but I also mean it. I am

02:01:31 ◼   ► very incredibly thankful for our listeners

02:01:34 ◼   ► and doubly so for our members, but even if you can't be a member, I still

02:01:40 ◼   ► love you and I am extremely thankful for all of

02:01:42 ◼   ► you. As I get ever older, it's more and more

02:01:47 ◼   ► clear to me, or it's, I always knew it, but it

02:01:51 ◼   ► becomes more and more obvious and apparent that time is everyone's most precious resource.

02:01:57 ◼   ► And especially as we've all kind of reset our priorities over the last couple of years,

02:02:04 ◼   ► it is a big ask for us to ask of all of you to spend two to three hours of your time with

02:02:11 ◼   ► us each week, or if you're using a great podcast like Overcast, maybe an hour and a half to

02:02:16 ◼   ► two hours. I don't know. Depends on how fast you listen and how great

02:02:21 ◼   ► the smart speed is. But nevertheless, it is a lot to ask of you to spend two to three

02:02:28 ◼   ► hours with us every week. And it really means a lot to all three of us that you do that. And this is

02:02:33 ◼   ► whether or not you're a member or anything else. And for anyone who has pitched the show to a

02:02:38 ◼   ► friend of theirs, well, it's about nerdy stuff, but they're fun nerds. I don't know how you would

02:02:44 ◼   ► pitch our show, but nevertheless, I deeply appreciate, all of us deeply appreciate that.

02:02:48 ◼   ► And if you are a member, we deeply appreciate that as well. If you've ever bought merch, even if

02:02:52 ◼   ► you bought merch almost 10 years ago now and never again, I still appreciate you. So thank you for

02:02:56 ◼   ► that. And selfishly, I'm extremely thankful for myself and my family's health. Somehow we still

02:03:03 ◼   ► have not yet had COVID enter the house. I'm sure it is imminent. It could be any day now. Declan

02:03:09 ◼   ► actually had a little bit of a fever today and so far he has tested negative, but for all I know,

02:03:13 ◼   ► He might be afflicted with it as we speak, but so far so good.

02:03:18 ◼   ► But on the grand scheme of things, we are healthy.

02:03:20 ◼   ► We are all as vaccinated and as vaccinated as we can possibly be at this time.

02:03:25 ◼   ► So I'm super thankful for that.

02:03:26 ◼   ► But since this is a nerdy show, let's talk about some nerdy stuff that I'm thankful for,

02:03:29 ◼   ► and then I'll shut up and move on to one of you two.

02:03:31 ◼   ► I'm really thankful for when stuff actually does just work.

02:03:35 ◼   ► And I'm going to be thankful.

02:03:38 ◼   ► I'm in a thankful mood, so I'm not going to talk about things that used to just work

02:03:41 ◼   ► and don't anymore.

02:03:42 ◼   ► But the things that really do just work and just some random smattering of things

02:03:46 ◼   ► Wire guard the VPN that I use

02:03:50 ◼   ► Really does just work

02:03:52 ◼   ► Tailscale is also very very good a former sponsor of us

02:03:56 ◼   ► It's the less fiddly version of wire guard and is also excellent. I

02:04:00 ◼   ► Used docker for a bunch of stuff

02:04:02 ◼   ► I've spoken about on the show and for some things that I haven't spoken about on the show

02:04:06 ◼   ► If you know, you know

02:04:08 ◼   ► Docker is extremely good and very useful

02:04:12 ◼   ► Obviously, my Sonos system I'm still utterly in love with.

02:04:15 ◼   ► I brought up the Synology earlier.

02:04:17 ◼   ► I couldn't go through this segment without mentioning

02:04:19 ◼   ► Plex, so here it is.

02:04:22 ◼   ► And of course, I'm super thankful for that.

02:04:24 ◼   ► And as I mentioned earlier, channels, especially once I

02:04:27 ◼   ► went to the cable card version, which I know did not

02:04:29 ◼   ► win Jon over, but losing the physical DVR and going to a

02:04:35 ◼   ► cable card-based channel setup has really made watching TV a

02:04:38 ◼   ► lot better in my house and my world.

02:04:40 ◼   ► So I know those are mostly, with the exception of the listeners, mostly, and I guess health,

02:04:46 ◼   ► mostly inconsequential, but I'm still thankful for them, and they're fun, nerdy things.

02:04:49 ◼   ► So I don't know which one I, if one of you wants to volunteer, feel free, otherwise I

02:04:53 ◼   ► will put someone on the hot seat.

02:04:55 ◼   ► I can go first.

02:04:56 ◼   ► Second.

02:04:57 ◼   ► Sorry, Jon, do you want to?

02:04:58 ◼   ► Go ahead, you beat me to it.

02:05:00 ◼   ► You're up.

02:05:01 ◼   ► All right.

02:05:02 ◼   ► So setting aside everything that Casey said about how awesome all of our members and listeners

02:05:07 ◼   ► are because that is true and we've covered that recently too. So I appreciate all of

02:05:11 ◼   ► you and you're awesome and thank you for letting us do this ridiculous thing that people pay

02:05:15 ◼   ► us money for. So that's amazing. In the tech world, I'll keep it fairly short, I am really

02:05:23 ◼   ► thankful for the frickin' Mac. The Mac is back. The Mac had some really bad years and

02:05:30 ◼   ► they appear to be over. And right now, the Mac is in a really good place where there's

02:05:37 ◼   ► tons of different options available on the Mac, different sizes, different, you know,

02:05:43 ◼   ► physical characteristics, different performance characteristics. And they're all really good.

02:05:48 ◼   ► There are great options for pretty much any needs that you could have. And the number

02:05:55 ◼   ► of trade-offs to get them is lower than ever.

02:05:59 ◼   ► Again, that's why I'm still using a laptop as my desktop,

02:06:03 ◼   ► even though a technically better desktop exists

02:06:07 ◼   ► that I could buy, I don't even want it.

02:06:09 ◼   ► My laptop is great, and it's just like,

02:06:10 ◼   ► there's so many, like, every Mac they sell right now

02:06:14 ◼   ► is great, and Mac OS is, you know,

02:06:17 ◼   ► I have my design qualms with Mac OS here and there,

02:06:21 ◼   ► but for the most part, most of the most egregious bugs

02:06:25 ◼   ► and bad behaviors have been fixed.

02:06:27 ◼   ► So I'm just very happy with the Mac,

02:06:30 ◼   ► and I'm so happy that it's been getting a lot of investment

02:06:33 ◼   ► on Apple's side recently, and again,

02:06:36 ◼   ► even design quibbles aside,

02:06:38 ◼   ► it's really in a much better place than it was,

02:06:40 ◼   ► and that matters a lot to me because this is where I do

02:06:43 ◼   ► the vast majority of my computing,

02:06:44 ◼   ► both for work and pleasure, and I just love the Mac,

02:06:48 ◼   ► and I'm really happy it's in a good place.

02:06:51 ◼   ► - Now that you've stolen all the answers,

02:06:54 ◼   ► I'll give the short first.

02:06:56 ◼   ► I have one, you know, I'll echo what you both said,

02:06:59 ◼   ► one heartfelt thing and one silly thing.

02:07:01 ◼   ► So the heartfelt thing is obviously, you know,

02:07:03 ◼   ► I left my job this year.

02:07:05 ◼   ► I left my jobby job to do this full time.

02:07:08 ◼   ► It's been about seven and a half months.

02:07:09 ◼   ► I'll probably mention this again when I come to a full year,

02:07:11 ◼   ► but seven and a half months, so far so good.

02:07:14 ◼   ► And why?

02:07:14 ◼   ► It's because of all you people who are listening.

02:07:16 ◼   ► Again, listening members are not buying

02:07:18 ◼   ► my stupid chicken hat, whatever it is that you're doing

02:07:20 ◼   ► to make this life possible for me.

02:07:23 ◼   ► So far so good, seven and a half months in.

02:07:26 ◼   ► I will see how everything goes at tax time

02:07:28 ◼   ► 'cause there's still the end of the year accounting

02:07:31 ◼   ► to see how everything's going, but fingers crossed.

02:07:34 ◼   ► Thank you very much for making this possible for me to do.

02:07:38 ◼   ► Because it's been a big change in my life

02:07:41 ◼   ► and it's been very scary and so far it's going okay.

02:07:43 ◼   ► And the second much more frivolous thing is,

02:07:46 ◼   ► I'm thankful for my fancy TV.

02:07:47 ◼   ► Even though the price has been reduced $1,000

02:07:50 ◼   ► since I bought it.

02:07:51 ◼   ► - Oh, that's so brutal.

02:07:53 ◼   ► $10,000 I don't care. I was happy to spend that money to get the TV when I did because I'm very happy with it

02:08:00 ◼   ► You know fighting with HDMI CC aside

02:08:02 ◼   ► Everything I watch in it. I love my family doesn't care

02:08:05 ◼   ► But I think my TV is great and I think I made the right choice

02:08:09 ◼   ► And I think all that waiting was right kind of like my Mac Pro here

02:08:13 ◼   ► I'm even though other people look at this person purchase and it doesn't make any sense to them

02:08:17 ◼   ► It makes sense to me. And so I feel like I have you know

02:08:20 ◼   ► Things continue to go well with this TV. It will be like this

02:08:24 ◼   ► Well, maybe not like this back row like my 2008 Mac Pro my plasma before it

02:08:28 ◼   ► I bought the right TV at the right time for me

02:08:31 ◼   ► I almost thought about putting it on my like good products page

02:08:34 ◼   ► I have a page on my website where like I think there's a product that really you know

02:08:38 ◼   ► People deserve to know about but honestly, it's more like my Mac Pro

02:08:41 ◼   ► I shouldn't really put it on that page because most people probably shouldn't buy it

02:08:44 ◼   ► But boy if you want a really nice TV, the Sony a95k is a really nice TV. It does all the things

02:08:50 ◼   ► I thought it would do and it looks amazing. I love it.

02:08:53 ◼   ► Despite the fact that it doesn't work for beans with HDMI CEC.

02:08:56 ◼   ► Well, that's just HDMI CEC. It's not the television's fault. It's not the television's fault that

02:09:01 ◼   ► my freaking Apple TV keeps waking up and saying, "Hey everybody, I'm here. I don't know why

02:09:05 ◼   ► I'm waking up, but I'm up again."

02:09:08 ◼   ► Happy Thanksgiving, everybody.

02:09:09 ◼   ► [BEEPING]