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]