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: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: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: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: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:48
◼
►
I'm getting kicked out of the country of my birth simply because you don't like my date
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: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
◼
►
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: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: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: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: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: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:24
◼
►
It's the universe of Kevin Federline.
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: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
◼
►
- 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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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:05
◼
►
I mean, even if, even if you a hundred percent admit to it, we'll still elect you president.
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: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: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: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: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: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: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:57
◼
►
Sorry, Jon, do you want to?
02:04:58
◼
►
Go ahead, you beat me to it.
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
◼
►
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.