Dance Palace
John:
I was always just thinking this file system would save me.
John:
I just thought like, well, I'll just, I'll stick it out and there'll be a new file system here probably next year.
John:
And I've been thinking that for a lot of years now.
Marco:
Well, I spent this morning trying to parallelize the lame MP3 encoder.
Marco:
Why?
Marco:
why not because it's a very hard problem that hasn't been solved since like the early 2000s and i often need to encode our show mp3 which takes probably i don't know 90 seconds to encode it's it's a surprisingly long time uh for a modern computing task like that and that annoys me and so i figured why don't i spend the afternoon seeing if i can parallelize the the mp3 encoder and
Marco:
And there are faster encoders than the LAME encoder.
Marco:
And I know... This is hard for me to talk about because I know that the word LAME is really not a nice word to say.
Marco:
But it's kind of like the GIMP photo editor.
Marco:
Also not a nice word to say.
Marco:
And for whatever reason, these open source projects name themselves these acronyms without regard to what those words mean and how they hurt people.
Marco:
So I'm sorry in advance.
Marco:
But it's called the LAME MP3 encoder.
Marco:
And it is... I have tested...
Marco:
many different encoding options for podcast audio from mp3 aac the heaac all like the the mp3 pro like all like the the add-on like spectral things to these formats and simple joint stereo with the lame mp3 encoder is by far the the highest quality and at the best bit rates that i have that i have found uh it's really it's really quite good so problem is mp3 encoding is very difficult to parallelize uh at least while also doing it well
Marco:
And so that's what I'm kind of trying to do here.
Casey:
Just for ATP.
Marco:
Well, I mean, ideally, I would ship this to other people as well.
Marco:
Maybe open source it or maybe just embed it into my pre-production tool that I have to at some point hopefully maybe release.
Marco:
So it could be very helpful because one of the problems is we've basically hit a wall of single-threaded performance on modern computers.
Marco:
We're not really getting much better at that.
Marco:
And that's one of the only tasks that I do on a regular basis on my computer where I'm just dying for more gigahertz on one core.
Marco:
So if I can eliminate that, that makes me happier with my computers and it makes me happier with potential future iMacs and Mac Pros and MacBooks and things because I can encode our show four or eight times faster, fast enough that it doesn't matter anymore.
Casey:
That makes sense.
Casey:
Well, good luck.
Casey:
I mean, I'd love to see that happen because I think it would make a lot of people very happy.
Casey:
But God, that sounds like a royal pain in the hindquarters.
Marco:
It really is.
Marco:
The one saving grace of this is that, you know, normally if you're dealing with like a non-trivially sized open source project, or heck, even a trivially sized one, usually it's just dependency hell.
Marco:
And usually it is so hard to get to the point where you can even build the thing, let alone like
Marco:
trying to make changes and try to test things.
Marco:
It is such a pain because they all depend on these weird, crazy libraries that you don't have or that are hard to install on Mac OS X or something.
Marco:
It's such a pain usually.
Marco:
Lame is actually really simple.
Marco:
There's not much to it.
Marco:
It's not very many files.
Marco:
As far as I know, there's no...
Marco:
external dependencies except maybe like you know basic libc stuff that everything has so it's pretty it's really actually quite pleasant to work on uh so kudos to the lame project is this all c or c plus plus it's all c which is also nice because i i don't really know a lot of c plus plus um so to have something to be pure c is is also kind of a welcome uh a welcome change
Casey:
Yeah, it's like back a few jobs ago.
Casey:
Back when you actually had a job.
Marco:
Yeah, exactly.
Marco:
I still like C a lot.
Marco:
I mean, I recognize that working in C nowadays, it's like having a classic car that you work on in your garage.
Marco:
It's really fulfilling and it's really nice and cool if that's your personality type.
Marco:
But I really would...
Marco:
be hard pressed to justify using it for like quote real work uh anymore but but i really do enjoy working with it uh in the on you know on the occasion that i need to work on it fair enough i mean anything's better than pearl or php am i right so anyway we should do some follow-up um the sierra mac pro support
Casey:
This is not good times for John Syracuse.
John:
It's not so bad times either.
John:
Marco's theory was that it was because of the instructions.
Marco:
Yeah, my theory was the hardware encryption instructions that Intel has added over time, but it turns out, nope.
John:
Well, I mean, we didn't get any official word on it, but talking to a whole bunch of people, hey, why do you think they dropped support for this computer or that computer?
John:
The general consensus was that
John:
They just drop support for computers that are old because it's a pain in the butt to keep supporting them.
John:
And there's lots of things that are a pain to keep supporting.
John:
If you do anything to the OS that changes sort of the driver model or that requires drivers to be even just recompiled or changed in some subtle way, supporting old hardware like, say, the airport card that could be put into my 2008 Mac Pro,
John:
That's kind of a pain, and you don't want to bother with that.
John:
But the big one, I think, is video drivers, because there is usually some participation from the video card vendor, whether it be AMD, ATI, or NVIDIA, in the creation of the drivers for OS X for these various GPUs.
John:
and apple doesn't want to keep doing that and usually if you were to go to amd and say hey we're making a new version of the operating system can you help us or either help us to or do entirely on your own drivers for uh that work with the sierra kernel and this ancient 2008 mac pro i don't think they're keen to do that but anyway um lots of reasons why you might want to support old hardware uh and yeah no no specific uh smoking gun for any particular hardware feature
John:
uh that is not supported and adding uh adding to this pile of uh support for the idea that it's just because it's old is that 2009 mac pros are also not supported contrary to what i had hoped on the last show so that means my work mac can't run sierra either
John:
What are you going to do?
John:
I'm going to wait until the new... It's almost as if you have to buy a new computer.
John:
Everyone gets laptops at work now, so I'm going to wait until the new MacBook Pros come out.
John:
And then I'm going to wait another month, and then I'm going to get a new computer at work.
Marco:
Now, you do realize that the new MacBook Pros will almost certainly have the arrow key layout that you hate.
John:
i'm not going to use that keyboard i mean it's just going to be sitting off to the side with a screen that i never look at connected to an external screen like i'm just using it as a weird shaped mac mini that's my plan because i only have one screen at work and it's not a great screen but whatever it's fine so i'll keep doing that i'm probably i want to get the 15 inch so i can put it in mirrored uh display mode that's how much i'm not going to use a second screen just so my windows and crap won't move when i disconnect the monitor it'll be the same res on both you know what i mean
John:
That's my current plan.
Marco:
I love that your current plan clearly didn't even consider another Mac Pro.
John:
Well, work would never buy that for me.
John:
My Mac was the first Mac at the entire company, and I had to get special dispensation to get it, and it was way more expensive than the $400 piece of crap Dell laptops they were getting everybody back then.
John:
Mine was the cheapest possible Mac Pro you could get in the minimum configuration, and it was like $1,500, and it took so much for them to choke that down.
John:
uh nowadays they're better about buying macs if you want one and they'll buy you know 13 inch or 15 inch macbook pro and that's what i plan on getting but uh no the mac pro is not an option neither is an iMac for that matter
Casey:
Would you get an iMac over a MacBook Pro if you had the choice?
Marco:
Yes, I would.
Marco:
Is the base model 5K iMac not price competitive with the 15-inch MacBook Pro?
John:
I don't think it's price.
John:
I think it's... You don't understand big corporations.
John:
They just want to do things the way they want to do them, and they want regularity and uniformity, and they don't want you to be a special snowflake who wants a specific computer.
John:
They only...
John:
have and support and know and understand two kinds of computers on the Mac side.
John:
And it's whatever.
John:
I don't know.
John:
I mean, maybe I'll ask about it, but.
Casey:
No, this is exactly my experience.
Casey:
Like my company gets leased Macs and I think they're two year leases.
Casey:
And basically your choices are MacBook Pro.
Casey:
If you do some sort of development work, I believe a MacBook Air, if you don't, or some sort of God awful Dell.
Casey:
And those are actually might be an HP, some awful God, some sort of God awful PC, but it's one of those three.
Casey:
And if you want anything else under the sun, well, tough nogies, because the help desk does not want to support it.
Casey:
So I'm right there with you, John.
Casey:
Now, to be fair, my MacBook Pro is very nice.
Casey:
I have no complaints.
Casey:
I'm just saying that that is the way corporate America works.
Casey:
You must conform.
Casey:
You must be one of the people in that 1984 commercial.
Casey:
You must be a...
John:
a faceless number in the crowd that is using one of the blessed computers i miss the days when i was unsupported too because when i was the first mac in the company like all right but you're gonna be totally unsupported i'm like yes that's exactly what i want i want to be totally unsupported don't touch my computer ever do nothing to it unfortunately now that macs are officially supported i am beset on all sides by terrible things like add your mac to the active directory network no
John:
Run Symantec Antivirus on your Mac.
John:
That's real important.
John:
Run these other applications in the background that will grind your CPU to death as it does who knows what.
John:
It's really terrible.
Marco:
I have one question.
Marco:
Do you have to install Adobe Acrobat?
John:
I don't have to, but it could be installed on my behalf silently in the background any day I come to work.
John:
Who knows what's happened to my computer because it's not under my control.
John:
They just force install software on it whenever they want.
John:
None of that software makes my experience of using the computer better.
John:
But supposedly now I'm protected from viruses.
John:
Yeah, whatever.
Casey:
I can't believe you stand for anyone else having any sort of access to your computer.
Casey:
Like, I understand that you have no choice.
Casey:
I totally get that.
Casey:
But you, of all people, allowing that vulnerability, if you will, I am stunned that you stand for that.
John:
It's rough, but what can you do?
John:
Like I said, you have no choice.
John:
The final bit is, like, how sad is this really?
John:
It's not really that sad.
John:
I installed Sierra on my 2008 Mac Pro, and it runs fine because I have an aftermarket GPU.
John:
The installer is a little bit cranky about it, but if you just, like, I'm installing on an external disk at this point because I'm not going to install it on my main system.
John:
It's the first developer release.
John:
So I installed it on an external hard drive using my 2011 MacBook Air, and then I just deleted a single file from the thing, system library, core services, platform support.plist.
John:
No, I renamed it or whatever.
John:
uh and then my mac pro 2008 boots from it just fine um and it runs fine as far as i can tell so i don't think it'll be that big a deal i may end up doing the same thing with my mac at work although i'm sure corporate it will love that but uh it'll you know i could try that right before i give up and say okay fine get me the new uh
Casey:
laptops or whatever but anyway if you have a 2008 mac pro and other unsupported computer uh cr might work for you if the set of hardware you have is not the stock set of hardware that came with that computer so now hold on a second so you generally do some amount of work at home on a semi-regular basis is that correct so you're doing that on your personal machine because you have a mac pro at work and a mac pro at home right
John:
yeah so that's cool with you like it's just an external hard drive it's just i have i have like seven hard drives connected to my computer like four internal and three external and half them are turned off most of the time the other ones are unmounted most of the time it's really easy to just put a beta os on an external drive and then i just reboot and boot off that drive and it's fine i immediately unmount all my other drives when i launch and it's like it's not it's not a concern
Casey:
Right.
Casey:
No, I'm not on Sierra at all.
Casey:
I'm on a general level.
Casey:
You you have put you have infected your home computer with work related things is my point.
John:
Well, no, because I just remote desktop into my Mac at work to do stuff.
Casey:
OK, so you have infected it with some sort of VPN connection.
John:
I have infected the VPN software is installed for me to get on the VPN enough to remote desktop.
Casey:
I got you.
Casey:
OK, so any of the development isn't really, strictly speaking, happening locally.
John:
And really, it's not even happening on my Mac either.
John:
I mean, and from then I'm just SSHing into, you know, like it's I'm not unlike you, I'm not actually doing development on my Mac, really.
John:
I mean, except for like the web browsers that are on all the actual code and everything else is on servers.
Casey:
You know, gotcha.
Casey:
All right.
Casey:
That's actually fairly fascinating.
Casey:
I did not know that.
Casey:
OK, anything else about the Mac Pro support?
Casey:
It will never end.
Casey:
Anything else today?
Casey:
All right.
Casey:
The talk show live.
Casey:
This was recorded Tuesday.
Casey:
I'm sorry, Tuesday before this passed.
Casey:
God knows by the time this thing is released, it was probably two months ago.
Casey:
But anyway, the Tuesday that WWDC was going on, there was the talk show again this year.
Casey:
Was it two years ago that we were guests, I think?
Casey:
And then the only reasonable conclusion after having this impossibly awesome and attractive trio on stage is to have Phil Schiller, who followed up last year.
Casey:
And then this year, what are you going to do?
Casey:
Well, why not have Phil Schiller and...
Casey:
Craig Federighi.
Casey:
And we were all there.
Casey:
We were sitting in the front row and it was amazing.
Casey:
And I cannot say enough good things about this talk show.
Casey:
If you are not a regular talk show listener, if you're one of the 10 people that do not listen to the talk show but do listen to this show, I cannot encourage you enough to listen to this episode of the talk show.
Casey:
We'll have a link in the show notes.
Casey:
It is excellent.
Casey:
There's also a video.
Casey:
which was very good from what I've gathered.
Casey:
I haven't actually watched it myself.
Casey:
But seeing Craig and Phil talk to each other and talk to the audience and talk to John Gruber, all of the above, was amazing.
Casey:
And there's a few line items that we'd like to go through about that.
Casey:
But one of the things that made me kind of laugh and really that I loved about it and made me love Craig Federighi even more was as the talk show was going on,
Casey:
Craig on the surface looked comfortable, but if you really looked at him for more than a second, you realize he is not in love with what he's doing right now.
Casey:
Not that John was doing anything wrong, not that Phil was doing anything wrong, but you could just tell that Craig was like,
Casey:
A little nervous and not entirely comfortable with what was going on.
Casey:
And he was leaning forward a lot.
Casey:
I did the same thing when we were on the talk show at DubDub.
Casey:
He kept leaning forward and then putting his elbow on his knee and propping his head up.
Casey:
And then I think he realized that that kind of looks a little weird.
Casey:
for those in the audience.
Casey:
Then he would try to casually put his arm down, which I'm sure if we looked at the video of me on stage, I probably did this 35 times.
Casey:
But there was a lot of that.
Casey:
But the thing that struck me the most was when John Gruber talked about something developer-related, not only did Craig have impossibly good answers for all the questions, sometimes more forthcoming than maybe he should have, but he sat...
Casey:
bolt upright every time and he was so confident and so sure of himself and it was so awesome to see and god i love that guy so much
Marco:
Yeah, it was such a good show.
Marco:
It really was.
Marco:
You can think about what kind of show would you expect to have where Apple executives give an interview?
Marco:
And if you think about it just like that, you might think, well, there's going to be going over PR talking points and everything.
Marco:
And certainly, some of what they say is PR talking points, but...
Marco:
Most of it isn't.
Marco:
I was on the talk show this week.
Marco:
I don't think it's out yet, but I basically reviewed the show for John on his own show because I knew he wouldn't do it himself.
Marco:
So forgive the repetition here, but I think one of the best things I liked about it, first of all, is that we got to see two Apple executives interacting with each other.
Marco:
And you never see that.
Marco:
Even people in Apple hardly ever see that.
Marco:
And so to see that in this context, these two people who clearly have known each other for a very long time and have worked together for a very long time, two people on top of their game, I mean, Phil and Craig are really excellent at their jobs.
Marco:
And they both have incredibly deep knowledge about the stuff that we care about and the stuff that Gruber would be asking questions about at WWDC.
Marco:
So I was thinking, we were kind of speculating beforehand, oh, who's he going to have this year?
Marco:
Who's he going to have this year?
Marco:
And one of the ideas is, what if he has Tim Cook?
Marco:
Having Tim Cook would be really a great badge of honor.
Marco:
It would be a really noteworthy thing.
Marco:
But I think having Phil and Craig is actually a better set for that audience for that time.
Marco:
Because Phil is really, in many ways, it seems like he is kind of like the head of product direction on some level.
Marco:
And it seems to be kind of a shared role in Steve's absence of
Marco:
um you know johnny obviously has something to do with it i think tim still probably has something to do with it as well and who knows who else but it seems like a lot of that falls on phil so just product decisions in general also phil is the head of the app store now so again like very relevant to this audience and then you have uh federighi who is you know yes we knew he was the executive in charge of software engineering stuff but
Marco:
but i don't think a lot of us knew quite how much of an engineer he is and also you know not only does he have deep technical chops but he also has deep knowledge of like specific implementation details of the stuff they're doing now so it's not like he ascended into this into like this ivory tower and is just like dictating things down to his minions to have them do all the work and he's just being a figurehead he's clearly still very much involved in those decisions and
Marco:
and very, very, very technical down to deep levels and able to explain that very well.
Marco:
So to have that combo of the product guy and the app store guy in Phil and then to have Craig as the technical head is really, I think, the perfect combo to have at WWDC.
Marco:
Plus, I think their personalities work really well, both in general and also with John Gruber being the interviewer.
Marco:
So overall, I would much rather have them than have Tim in that context.
Marco:
And I think it was as good as it could possibly have gone.
Marco:
I think it was great.
John:
I mostly agree with that Tim would have been more boring, but I've been thinking about it more since WWC week.
John:
Like, it really does depend on the topic that you're interested in.
John:
You know, if I mentioned Johnny Ive, obviously, if you're going to have a bunch of questions about design stuff, he's the guy you want.
John:
And Phil is not going to be able to give you much there, and neither is Craig for that matter, because, like,
John:
You know, product design, whether it be hardware or software, is Johnny's domain.
John:
And a lot of the decisions that are made there, you know, I would imagine that they could add some insight into them, but you want the man himself if you want to get that information.
John:
So there's Johnny set aside.
John:
And then Tim, after Apple comes out with the car, the guy you want to talk to is Tim Cook.
John:
until you know like the deep car people because your main question is why has apple chosen to make a car and the person who can answer that best is tim cook right because that's a decision at his level so i would actually like to see tim cook at some point uh but for the topics i was interested in this year and most years yeah i'd rather hear from craig uh and to a lesser extent phil because i'm much more interested in the technical and less interested in the app store stuff but uh at wwc like you said a lot of people are interested in app store exactly
John:
The reason the talk show live is a topic in the follow up here is because I was adding items to the follow up of bits and pieces and I realized most of them were information from the talk show live.
John:
The main reason I would suggest people listen to it is that it has information that you probably won't see elsewhere because, you know, again, Phil and Craig were on there and they didn't just say things that were already said at WWDC.
John:
They didn't just say things that have already been said by Apple PR.
John:
They provided new information and some of it I thought was interesting and you won't know it unless you,
John:
Listen to that or listen to these two tidbits that I pulled out of it.
John:
The first one is about an iOS 10, how you can get rid of the Apple apps.
John:
Like if you don't want the stock apps or the tips app or whatever, you don't have to hide them in a folder anymore.
John:
You can now delete them, but they aren't actually deleted as many people speculated and has been speculated for a long time before the future even appeared.
John:
They're not actually removed from the system, even though when you delete them, you can go to the store and then redownload them.
John:
But as I think it was Craig said on stage, that download will run suspiciously fast because they haven't actually been removed from your computer.
John:
All the app store is saying, oh, yeah, I'll redownload those for you.
John:
And then it just reveals them again.
John:
And a bunch of reasons were given for actually leaving them on the system.
John:
You will delete, I think, the documents and data associated with it, but you won't delete the actual executable.
John:
So that was interesting tidbit.
John:
And the other one is relevant to a couple of stories and tweets that have been going around about the current beta of the App Store ad service, where people can try it out for free now.
John:
And all you do at this point is say, yes, I want to opt my app into the ad service.
John:
I don't know.
John:
Can you do the keywords and everything as well?
Marco:
But anyway, I looked around and couldn't find anything else to do.
Marco:
So I opted my app in.
Marco:
But I think that just means that Apple will like kind of shove it on top of search results sometimes.
Marco:
But I don't think I have any controls over that.
John:
Yeah, it's like the automated one where they said, if you don't want to pick your keywords and doing that stuff, just we'll figure it out for you.
John:
And so one of the little controversies that spun up on Twitter was, I think it was someone from Tweetbot was saying they searched for Tweetbot, like the actual name of their application.
John:
And the number one hit to the ad at the top of the search results was an ad for Twitterific.
John:
And it looks like, oh, Twitterific has purchased the Tweetbot keyword.
John:
But they haven't because you can't even do that at that point.
John:
And they didn't.
John:
And that brings up the whole topic that we discussed before about buying someone else's trademark as a keyword.
John:
So if you have an application, if you were, you know, the maker of Twitterific and you wanted to buy the word, the keyword tweet bot, could you do that?
John:
That was addressed by Phil Schiller and the talk show live.
John:
And he said that they are explicitly allowing this.
John:
I think this is a direct quote from the transcript says you can use someone else's brand in your AdWords that you want.
John:
uh as we thought about it that is more likely to benefit the small developer than the big developer and the idea is that if you have a well-known brand if you're like clash of clans or something um you're not going to buy a keyword for some tiny little application that doesn't tiny little similar game that doesn't sell a lot of copies but if you make a game that's similar to clash of clans and you want to break into the market and really right now you don't have any customers maybe you buy the clash of clans keyword that is the theory behind this and phil articulates it
John:
uh as in the most straightforward manner as you're going to get uh and it was surprising to a lot of people and we'll see how it plays out in real life but from the perspective of app developers especially app developers who sort of are on an even footing it seems like a pretty scummy thing to do to buy your competitor's trademark so i think a lot of people are not going to do it because it seems rude
John:
And I would imagine the companies that would do it are exactly the companies that are big because they have no scruples and aren't run by an individual who is answerable to their practices.
John:
And they have a marketing department who's measured on how well they boost sales.
John:
And so I think this is going to happen a lot.
John:
And I'm not entirely convinced that it's going to benefit the small developer more than the big developer.
John:
But we'll see.
John:
And again, Phil talked directly about this issue when questioned about it on Talk to Live.
Marco:
So check it out.
Marco:
I think there's a number of issues and factors that go into this.
Marco:
What exactly is a small developer?
Marco:
Because I think who this will actually hurt most are people like Twitterific and Tweetbot and maybe Overcast, where kind of like medium-sized developers were like, we're not big enough for the Clash of Clans people to bid on our keyboards because who cares?
Marco:
We are nothing compared to what they get, and we're also not related.
Marco:
But...
Marco:
But other people who make apps that are related to podcasting or related to Twitter would very easily bid on the medium-sized apps in their category and on those keywords.
Marco:
So I view myself as a small developer in the grand scheme of things.
Marco:
But a lot of people view Overcast as a big app in the category relative to their app.
Marco:
So I think when Phil says he thinks this will benefit small developers, I don't think he's talking about people like Overcast and Tweetbot and Twitterific.
Marco:
I think he's talking about little things that most of us have never heard of that happen to be in these same categories.
Marco:
He's right that it would probably benefit them.
Marco:
The kind of thing where if you search for Twitter or whatever, you get...
Marco:
a couple of Twitter apps, and then you get a whole bunch of what looks like just garbage and spam, and it's like, you know, photo rotation apps for Twitter, stuff like that, you know, that kind of stuff.
Marco:
It's going to be that kind of app, I think, that could benefit from this, not medium-sized apps like Twitterific, Tweetbot, Overcast.
Marco:
The other problem here is – and I think there's two other problems here.
Marco:
One is that we've had kind of like down-low keyword spam issues in iTunes Connect since the beginning of the App Store.
Marco:
The apps have a keywords field that they can enter keywords into for search, and those have historically been used pretty strongly for relevance in search, more so than the description that is publicly shown.
Marco:
The problem is these keywords are not publicly visible anywhere.
Marco:
And so there's kind of no downside for an app to put its competitors or other large apps' names in those keywords.
Marco:
And Apple has a rule against this.
Marco:
But in practice, that rule is only really enforced and enforceable against large trademark like Disney.
Marco:
So it'd be hard to put Disney in your keywords and get accepted through app review.
Marco:
But...
Marco:
If another Twitter app puts Tweetbot in its keywords, that is way more likely to get in and to get through.
Marco:
And historically, that has been seemingly very badly enforced by AppReview.
Marco:
And Phil even kind of said something along the lines of like, we're going to be trying to step that up.
Marco:
Something to that degree.
Marco:
And then thirdly, the problem is the name of... If you put down Overcast as your keyword, and you might search for the word Overcast to test this out,
Marco:
and then my app shows up below some ad and you might think this is horrible my app is not called overcast in the app store my app is called overcast colon podcast player and if you look at almost every other instance of this of this kind of like you know ad doing what seems like the wrong thing like
Marco:
tweetbot is not just named tweetbot twitterific is not just named twitterific so it's called like you know tweetbot for twitter twitterific twitter clients stuff like that like we've we've you know in in the last couple years we've all kind of succumbed to having to add keywords to our app names because quite simply it works better and the search has been horrible and it's been one of the only ways you're
John:
you all gave up on the search improving you're like you know what forget we will mangle we will mangle the name of our application because there's no other way to come up in the search results i mean i remember when twitterific did it years ago like it was a sad day because it just really uglies up the name but the problem was people would search for twitter and just twitterific would be 700 results down like the relevance was so bad even though it was a popular third-party twitter client and when someone searches for twitter it would be a good idea to show them the you know
John:
well-reviewed popular frequently updated twitter clients and instead it's like no twitter doesn't appear anywhere in your name or it does but it's just a prefix and like the fact that twitterific didn't show up in the search result for twitter until way low down that's just sad so i would hope that as part of this effort to like police the keywords for trademarks uh more often and stuff they will also improve the search to the point where you don't have to name mangle essentially anymore but uh we'll see
Marco:
Well, the other thing is, with Overcast, I tried not name-mangling, but I launched Overcast fairly late in the App Store relative to these other apps.
Marco:
There was already an app named exactly the string Overcast.
Marco:
In fact, I even contacted the developer and tried to buy it from him, and he agreed, and we had agreed to actually transfer this app to me just so I could delete it and reuse the name, but the app used iCloud, and so we couldn't transfer it.
John:
Why didn't you just pay him to rename it?
Marco:
Somehow, we kind of dropped the ball on continuing the conversation.
Marco:
So it probably just fell apart just through apathy.
Marco:
But there is an app called Overcast.
Marco:
I believe the seller's name is Willis Ingersoll, something like that.
Marco:
And it's like a file transfer app for cloud services.
Marco:
And the App Store, even though the World of Trademark allows for the same name to be used in different industries and different contexts, the App Store doesn't, unless you do weird tricks with international titles.
Marco:
So it sometimes does, but usually doesn't.
Marco:
It's a mess.
Marco:
It's such a mess.
Marco:
So this is like, you know, the combination of lots of longstanding app store problems results in this like mediocre situation we have with titles with keywords after them, along with, you know, the new ads not matching things exactly.
Marco:
Probably.
Marco:
Yeah, it's going to be interesting.
Casey:
Let's talk about Apple Photos and the John Syracuse controller search.
John:
Yeah, that was my quality metric.
John:
Well, the original problem that I had was that I couldn't find a picture of my PlayStation 4 controller in Apple's Photos application.
John:
This is before iOS 10, before WWDC.
John:
So I put all my photos into Google Photos, and amazingly, Google Photos was able to find it just by me typing the word controller.
John:
And, of course, Apple announced similar photo search for iOS 10 and...
John:
mac os sierra and uh i speculated on last show that it would not be able to find controller by me typing controller because apple is not good at that type of thing and google is so now having installed uh oh actually i haven't installed it many other people have installed i've installed mac os sierra but i haven't installed ios 10 many other people have installed all these betas onto their iphones because they're very brave people
John:
And they have taken my exact pictures of the controller.
John:
They pulled them from Twitter and put them into their photo libraries and done the search to see if we would find it.
John:
And it doesn't find it if you type controller, but because Apple search, Apple's photo search works a little bit differently, or at least presents a different UI than Google photo search.
John:
It does find it when you type control stick or I think also gamepad.
John:
And this brings up the UI that Apple rises.
John:
As you type, it shows like category results as if it puts things into buckets.
John:
And indeed, it does.
John:
Kayin has a blog post that lists out all of the buckets that it has, has something like 4000 buckets to put things in.
John:
There's a lot of stuff in there.
John:
uh dance palaces banana chair lifts wait what's a dance palace yeah seriously i don't know i'm just reading some of the keywords here orchid kiln it's got kiln that's a good one polos blocks pulley trikes trumpets tuba bass horn i mean like it's got huge amounts of things but basically
John:
If you type a word that is not one of the words on this list, it won't find it.
John:
So as you type, it's showing you the words that begin with or contain these things.
John:
So it's a little bit different UI, but it's trying to lead you to its notion of those things.
John:
So if you start typing controller and you see control stick, you probably tap that one.
John:
so good job uh apple photos so far on finding the controller that i didn't think you would ever find because that's that's good photo recognition because the controller was upside down uh that's not an easy search and it's a pretty obscure category on the other hand someone also said that apple's photo search stinks because it couldn't find birthday pics or babies or pictures of a couch so i don't know if their thing just hadn't indexed everything yet or those things aren't among the keywords or anything like that but
John:
We'll see as this rolls out.
Marco:
But you can find all your dance palaces.
Marco:
If you have pictures of dance palaces, it will find that before it will find your couch.
John:
Not quite sure what would come up for dance palace.
John:
But yeah, I have my entire photo library in Google Photos and also my entire photo library in Apple's Photos.
John:
So when these things release for real, I can do A-B tests right next to each other with the exact same library and do a little bake-off.
John:
And when that happens, I will definitely...
Marco:
have some results but so far so good for apple it is more impressive than i thought it would be i'm looking up what a dance palace is our first sponsor tonight is fracture go to fracture me.com and check it out with code atp10 for 10 off fracture is a company that prints photos in vivid color directly onto panes of glass it looks fantastic the colors pop like you won't believe and it comes in a nice solid foam backing that's ready to mount right out of the package so here's how this works
Marco:
It looks just like a complete picture.
Marco:
You don't have to frame it.
Marco:
You don't have to do anything else to it.
Marco:
It is a complete picture.
Marco:
It is a rectangle or square of glass with your photo printed right behind the front layer of glass.
Marco:
And then behind that is a little tiny bit of foam board so that you can hang it easily because then things can hook into the foam board without having to scratch the glass or the ink layer.
Marco:
so it just looks fantastic it looks very modern and clean and i have these all over our house our office uh they're everywhere people always compliment them they make great gifts they make great keepsakes you can get your photos and actually print them and actually have a physical representation so you can remember this photo for more than like the two days that it sits in your facebook feed or whatever
Marco:
Check it out.
Marco:
The prices are very reasonable for Fractures.
Marco:
They start at just $15 for their small square size, which is great for Instagram prints.
Marco:
And they also make non-square rectangles.
Marco:
They are awesome.
Marco:
Again, they make fantastic gifts.
Marco:
We've given them as gifts many times.
Marco:
These prints look fantastic from Fracture.
Marco:
So check it out today at FractureMe.com and use code 10% off with the code ATP10.
Marco:
I recommend them.
Marco:
They're great.
Marco:
Check out Fracture.
Marco:
Thanks a lot.
Casey:
All right, so some slightly late-breaking news before we recorded.
Casey:
The Thunderbolt display, the thing that I've been lusting after since September 2011 when it was brand new, which was the last time it was updated anyway.
Marco:
Even that was a minor update over the LED display that came out right before it.
Casey:
Yeah, fair enough.
Casey:
The Thunderbolt display has been discontinued.
Casey:
Sad times.
Casey:
So at this point, Apple does not sell an external display.
John:
It did have a minor update where they started shipping the MagSafe 1 to 2 adapter in the box.
Casey:
It's a hardware change, right?
Casey:
Something like that.
Marco:
So they never actually gave it the MagSafe 2 natively?
Marco:
They just kind of shipped through this $8 adapter in the box?
Casey:
yeah excuse me i believe that adapter is ten dollars thank you very much sorry you're right you're right so this is uh somewhat sad times uh if you fancied having a non-retina external display that's very pretty to look at and presumably for non-retina being very very pretty to to see what's on the screen as well however does this make us think that maybe a retina display is coming soon maybe with a gpu built in
Casey:
I don't know.
Casey:
I would think so.
Casey:
But it seems odd to me that they would discontinue without having something to replace it.
John:
Maybe they just don't sell enough of them.
John:
Maybe they can't get that screen from the vendor anymore because it's so terrible because the pixels are the size of boulders.
John:
I don't know.
John:
Did you read Apple's official statement that I put in the notes?
Casey:
Yeah, it was really short, wasn't it?
Casey:
Where did it go?
Casey:
We are discontinuing the Apple Thunderbolt display.
Casey:
It will be available through Apple.com, Apple's retail stores, and Apple authorized resellers while supplies last.
Casey:
There are a number of great third-party options available for Mac users.
Marco:
it's kind of surprising that they even gave a statement about it like that they that they caught any attention to it at all i mean usually when apple discontinues a product like you know it's like one that's not very important they just kind of quietly remove it from sale like it's i think it's unusual it's usually a clear replacement when they do that that's like they remove the old one and there's always the new one and this is a little bit weird where they're removing the old one without a new one to replace it
John:
I still put the odds at greater than 50% that there will be replacement for this product.
Casey:
Oh, yeah.
John:
Just because it's such a gimme.
John:
They have the screen.
John:
It's in the 5e iMac.
John:
We've been staring at it for a long time.
John:
You put it in a case, you just ship it.
John:
But maybe that's not ready yet, and maybe it's part of a hardware announcement, and for whatever reason...
John:
I don't think they sell a lot of Thunderbolt displays.
John:
It's a $1,000 monitor that is not worth $1,000 at this point.
John:
You could argue about it when it was first introduced, but it is a really nice monitor.
John:
And back before, there were no options for 27-inch retinas when it was introduced in 2011.
John:
So it was good whether it was worth $1,000, who knows.
John:
But at this point, it's definitely not worth $1,000.
John:
So they must not have been selling a lot of them.
John:
And as they note, you know, while supplies last, they need to get rid of all this inventory.
John:
Maybe it takes this long to get rid of the inventory at the rate that they sell.
John:
Like maybe they have a lot of Thunderbolt displays hanging around and they did the math and said...
Marco:
if we want these flushed out of the inventory by the time we introduce the 5k external display we need to discontinue it now and just let them sell out the rest of them it would also help by the way apple if you lowered the price because that's a way that you can sell things faster but i know you don't do that no i mean i think it's more likely that like you know the the rumors were all really clear and the timing makes a lot of sense that like the the new sky lake based macbook pros were supposed to be out by now and it seemed like they were probably delayed because of various intel issues like
Marco:
Every time we mention Skylake and laptops, we usually hear from people who tell us that Skylake chips that would be appropriate for the 15-inch were kind of out in the PC world, and they actually had tons of problems.
Marco:
It seemed like Intel might have partly maybe recalled them or something.
Marco:
There were some problems with them that the manufacturers were having even after they'd shipped.
Marco:
So it seems like there's some kind of unexpected Intel delay that caused the MacBook Pros to most likely be delayed.
Marco:
So it seems like if Apple's going to release a new 5K display, it would need Skylake most likely to drive it.
Marco:
So that they were probably planning on releasing the 5K external display that succeeded this Thunderbolt display at the same time as new MacBook Pros that were all supposed to already be out by now.
Marco:
So chances are they probably gave the order months ago to stop taking these component orders, stop making these things, stop manufacturing these.
Marco:
And then this delay happened sometime in the meantime.
Marco:
This was probably just like, the replacement product was supposed to be out by now, and it might be done, but there's no computer that can drive it yet.
Marco:
So they're not going to release a display with no computer that can drive it.
Marco:
So they kind of held the display for the MacBook Pro, which got delayed.
Marco:
So now they just have like, well, we already told the manufacturing line to stop making these, and we're not going to start it back up again, because that's crazy.
Marco:
So I'm guessing we're just in this weird hole in the middle of this like...
Marco:
These weird delays cause this operations hole to happen, and it'll make sense in a few months or whenever the new MacBook Pros come out.
John:
And by the way, I think the reason they're going to make this product is everyone's like, maybe they're just not going to sell external displays.
John:
The reason they'll make it is because the margins have to be pretty darn good.
John:
Oh, yeah.
John:
They're probably going to sell it for the same kind of margin.
John:
Thunderbolt display, like I said, it was a $1,000 monitor in an age when you could get monitors with, sometimes monitors with the exact same panel in them for less money if you knew the right weirdly numbered Dell thing or whatever to buy.
John:
Like, good healthy margins on those.
John:
And Apple sells mostly laptops for people who buy Macs.
John:
uh and people with laptops often want a really big external display like they don't want an external display that's like 17 inches but if people who want an external display they want a really big one and so apple should sell you a really big one because it's you know the same reason they sell battery cases for crying out loud if there's this is a product that people want and we can sell it at high margin and it can look nice and johnny ive won't won't be upset by someone connecting a disgusting looking dell monitor to their beautiful macbook pro
John:
Like all signs point towards Apple continuing to sell one really big, really expensive, high margin external monitor.
John:
And all signs point to me buying one once I can hook it up to a computer.
Marco:
We are also sponsored this week by Hover.
Marco:
We go to hover.com and use promo code APFS at checkout for 10% off your first purchase.
Marco:
Hover is a great place to buy domain names.
Marco:
So when you have a great idea for your project or blog or startup, whatever, you need to give it a great domain name.
Marco:
And finding that name is very, very easy with Hover.
Marco:
And of course, they make it very easy to then buy it and manage it.
Marco:
And I use Hover for tons of my domains and it's great.
Marco:
They have over 400 domain extensions to end your domain with.
Marco:
You know, all the classics like .com, .net, some of the new kind of narrow ones like design and tech, and some of the weird kind of jokey ones like .pizza and .ninja.
Marco:
Now, new this week, they just launched .store.
Marco:
And this is one of the rare occasions where there's a name that is straightforward.
Marco:
It's not goofy or amateurish like .ninja and .pizza.
Marco:
You can build a real business on something that ends in .store.
Marco:
This is a very rare occasion where brand new real estate has opened up that ends in a domain extension that is not dumb.
Marco:
So it's wide open because it just opened up.
Marco:
So go to Hover.com.
Marco:
Go get a .store name.
Marco:
And you have a very, very good chance now because it's brand new of getting a really good one.
Marco:
So whether it's .store or any of the other 400 domain extensions out there, you can find the perfect domain name for your idea at Hover.
Marco:
Go to hover.com and use promo code APFS at checkout, which stands for, I believe, Apple Platform File System, APFS at checkout to save 10% off your first purchase.
Marco:
Thanks to Hover for sponsoring our show.
John:
john tell us about apple file system where are you getting the platform part from apple platform file system somebody said that i thought i'd heard that as well a lot of people said a lot of things but i'm like is that from official i haven't heard any official thing i think it's just for apple anyway there's a wwc session that is entirely open to the public session 701 we will put a link in the show notes so that if you're interested in apple file system you can
John:
Yeah.
John:
one is all right so apfs as we saw in the state of the union is is like a will be a developer preview and i think a lot of people were confused by that like okay everything's developer preview right but no when sierra ships for real like the final version of ships to customers apfs will be included in sierra as a developer preview as in you will get the official release version of sierra and part of it of that product will be provisional developer level support for apfs so uh
John:
What does that mean for, you know, how far in the future is APFS?
John:
As they said in the State of the Union, APFS has developed a preview this year and coming in 2017.
John:
But what does that even mean?
John:
A slide in session 701 had these words on it, and we'll see how this rolls out.
John:
APFS will be the default file system for all Apple products in 2017.
John:
So that is pretty unequivocal except for the part where it says 2017.
John:
So default faucet system for all Apple product means if you buy an Apple product after whatever this point is, it will be formatted with APFS.
John:
That includes all iPhones, all iPads, all Macs, everything.
John:
That's the implication of this statement.
John:
In 2017, it could mean anything.
John:
It could mean starting January 1st, 2017.
John:
It could mean starting December 31st, 2017.
John:
So there's a big range in when this could happen.
John:
uh but it is a clear pretty clear statement of intent in a publicly available video from official apple spokespeople that their goal is 2017 not just that oh you'll be able to format as apfs but the default will still be hfs plus or only on max or whatever nope every single product every single device that has a file system across the entire product range at some point this is their goal anyway we'll see if they meet it so that seemed to me like an ambitious goal but i'm also kind of excited about it because as we all know 2017 is the year of the file system
John:
Um, and I hope they take their time because that's a little bit, I'm a little bit scared for them.
John:
Like that means like when, when the next iPhone comes out or whatever, the 2017 iPhone, all of those millions and millions of iPhones all going to be formatted with APFS.
John:
I really hope that goes well.
John:
Um, you know, or I suppose they could say, okay, well again, if they go to December 31st, 2017, then next year's iPhone will ship with HFS plus.
John:
And then December 31st, starting then all the products will be formatted that way.
Casey:
So in case anyone at Apple, anyone who knows any of the Apple file system people is listening right now, consider that John Syracuse, your friend and mine, has been asking for a new file system for years, has been begging for
Casey:
for a new file system.
Casey:
And as he just said, you guys, you know, Apple has said in 2017, I would just like to point out that John Syracuse's birthday happens to be the very last day of 2017.
Casey:
If you just decided, you know, maybe that would be the appropriate day to flip the switch and hit the big red button, that would be a pretty solid birthday present, a much better present than I've ever gotten, John.
Casey:
Just throwing it out there, guys.
Casey:
You run with it.
John:
Yeah, I think they're going to go before that.
John:
And my impression is that this date, even though it seems ambitious to us, is not really that ambitious from the perspective of Apple, who has been working on this file system for a long time, obviously.
John:
Like, they didn't just announce it and they started working on it last week, right?
John:
So the impression I get from WWDC is that...
John:
2017 is not rushing it and really they've got the whole year it's like you know it's a relaxing expanse of time in which they can plan their rollout of this new file system and i really hope that's true because if so that's exactly how you want to do this uh the second tidbit that was in this wwc session which i'm sure everyone knows by now because it's been on all the apple news sites uh is the question of if you don't buy a new piece of hardware you know which comes with apfs but you have an existing
John:
piece of hardware how do you uh get apfs like i can only think about it from the perspective of a mac because i don't imagine they're going to let people like reformat their iphones like if you restore your iphone in 2017 in the post apfs world is it reformatted with apfs i doubt it but certainly for the mac we know this is a straightforward situation the way you could do it is you back up your entire hard drive you erase it you reformat it as apfs and you restore your hard drive on it you can do a time machine you can do a super duper with lots of different solutions to doing this
John:
All those should be possible.
John:
But in the 701 presentation, WDOTC, Apple said that they have something else in mind, and that is in-place conversion of your volume format from HFS Plus to APFS.
John:
So you've got a Mac.
John:
This file system comes out in 2017.
John:
It's officially released.
John:
All the new hardware you buy comes with it.
John:
You're like, I want to try that new file system.
John:
What do I do?
John:
Well, first of all, I would advise you to make a backup anyway, and maybe two backups and maybe three backups.
John:
But you won't have to erase your disk.
John:
You'd be able to take your existing disk that's formatted with HFS Plus and do a thing and reboot.
John:
And when it comes back, all your data will still all be there.
John:
you won't have erased it and it will be an APFS volume.
John:
And the, the concept of this is freaking people out a lot.
John:
I think I talked about the old Alsoft plus maker thing that would do the same conversion for, from HFS to HFS plus in place.
John:
And that was terrifying because if it's screwed up in the middle, you were left with nothing.
John:
Um,
John:
The situation with APS is a little bit different, and you shouldn't actually be as terrified as you are.
John:
If you've ever seen from, I don't know, was this on ATP or maybe it was hypercritical, the BTRFS demo of a similar type of in-place conversion, it's the same type of deal.
John:
Because of the way this volume format works, it's actually...
John:
fairly safe so here's here's the process and here's why it will not probably destroy your data although definitely make backups so the first thing it's going to do is going to unmount your volume so obviously you can't be booted from your volume to uh reformat you have to be booted from the recovery partition or something like that or whatever um but anyway once it's unmounted no more changes are happening to this volume that you're going to convert so you don't have to worry about chasing after some other change and it's not going to happen live like the uh
John:
what we call the file vault conversion where you can encrypt a disk while you're using it, which is kind of magical.
John:
This is like unmounted.
John:
All right.
John:
Next thing is it's going to write all the APFS metadata structures, all the little pointers to where does this file begin?
John:
Where does it end?
John:
How many blocks are in it?
John:
What is the file called?
John:
What are all the dates about the file?
John:
It's going to write all that metadata to the free space on the HFS plus volume.
John:
So you can only do this conversion if you have enough free space to fit the metadata.
John:
I don't know how much it's going to take, but you do need some free space and hopefully you're, you're just isn't filled to the brim anyway.
John:
So it's writing just to the free area.
John:
So at any point during this process, when it's writing all this metadata, when it's reading your HFS plus volume, finding out where everything is, what everything is called, what all the dates are, what all the permissions are, all the ownership, all everything about these files, all the different forks, all the extended attributes, all that stuff.
John:
And it's writing that metadata out in APFS format to the free space,
John:
if at any time something bad happens during this like someone yanks the plug in your computer your hfs plus volume is fine because if you reboot into it it doesn't care what's in the free space like there's garbage in the free space it's free space on the hfs plus volume nothing is wrong with it it's perfectly fine this is the majority of the time it spends is looking at all your things and writing all the metadata for all the things on your file system when it's finally finished doing that
John:
all it needs to do is this is sort of the critical section when things can go wrong and the critical section should be very very short it's basically delete the hfs plus super block update the partition type to be apfs put the correct uuid in there and you're done like you just have to sort of do a switcheroo in the front of the whole file system say okay now you're not hfs anymore now you're apfs and then you reboot and that critical section of when something can go wrong like if they were halfway through and i bet even that probably
John:
is fairly well protected because uh well i guess once you would delete the hfs plus super block you're kind of screwed but anyway this is a very small window of time when something can go wrong all the rest of the time during the conversion everything is fine and i bet you could probably restore the hfs plus super block if you were clever enough or some recovery program could do that as well because again you haven't touched any of the actual data
John:
Your actual files has not been modified.
John:
The HFS plus metadata has not been modified.
John:
None of that stuff has changed.
John:
It's sitting exactly where it was.
John:
All you got to do is change sort of the thing that tells you where everything else in the file system is.
John:
The super block is metadata about the whole file system that tells it, you know, how big the file system is and where all the other metadata structures are and all that stuff.
John:
and by the way speaking of the apss uu id the thing that tells it like what volume type this is one other tidbit that was sort of alluded to in state of the union and i think in the 701 thing is that if you have an aps volume and you try to mount it on uh on like an older mac operating system it'll say this disk is unreadable do you want to initialize it all that business
John:
But if you try to do that on El Capitan, it won't do that.
John:
Not because El Capitan has secret support for APFS, but just because it recognizes the UUID, and so it won't offer to erase it for you.
John:
And that's, I guess, to try to prevent people from accidentally erasing their newly converted disk when they don't realize that that prompt asking them to erase it was actually asking them to erase the disk they just converted.
John:
So that's kind of clever.
John:
And that's another secret thing you would never have known if you're not going to be searching the El Capitan binaries for a UUID because you'd never find it because it's all nonsense.
John:
anyway um i assume that i will do this in-place conversion again after making many many backups but both in theory and in practice this conversion method of writing new metadata structures to free space pointing at the data in where it already exists is fairly well established and not something crazy that apple came up with on its own um and so i'm pretty confident that this will actually work and it will seem like magic
Casey:
That's pretty high praise.
Casey:
I am very impressed.
Casey:
Why does it have the P in the name?
Casey:
Why not AFS?
John:
Oh, yeah.
John:
So that's a question I asked some of the file system people at WWDC.
John:
And it's as we speculate, like they can't use AFS because that's already Andrew file system.
John:
And you can go through every letter in the alphabet.
John:
A lot of them are taken already, or every combination of two letters are either taken or nonsensical.
John:
APFS is not great as an acronym, but it's probably better than AFS.
John:
It's probably better than IFS, which I think is also already taken.
John:
Lots of the cool letters like ZFS and XFS are also already taken.
John:
My complaint was, why isn't it a cool name?
John:
Why isn't it like, forget about the four-letter acronym or give it whatever four-letter, three- or four-letter abbreviation that you want.
John:
Why doesn't it have a cool name?
John:
Like, I don't know, like Thunder FS.
John:
Swift or, you know, Grand Central Dispatch or whatever, like with the trains.
John:
Yeah, like you come up with a cool marketing name for it.
John:
And the upshot seems to be that file systems are not something that most users know about.
John:
Certainly on iPhones, no one knows what the heck their file system is.
John:
And even on Macs, people don't know.
John:
The only time people are likely to encounter is if you're on a Mac and you go to disk utility or something, you're trying to format a new disk.
John:
Or like if you get info on a disk and you see in the get info window.
John:
But especially when you format a new disk, it says like, oh, how do you want to, what volume format do you want to use for this disk?
John:
And disk utility, I think, can do a bunch of different formats.
John:
Or even, you know, OS X can, OS X, whatever that operating system is called.
John:
Yeah, Mac OS.
John:
Yeah.
John:
It can mount a lot of different things.
John:
It can mount like fat, EX fat, and like all these weird, you know, all the weird CD file systems and stuff.
John:
Sometimes if you present a user with this pop-up menu of like, you know, what volume format do you want to make this or what volume format is this?
John:
They don't know what all those things mean.
John:
They don't know what HFS Plus means.
John:
They don't know what Apple extended, journaled, whatever case.
John:
They don't know what those things mean at all.
John:
So the goal of AFS, and it's a reasonable goal, is to put an entry on that list that is absolutely clear that that's the one that they want.
John:
And so if you have a pop-up menu and you're formatting a disk and you don't know what the hell you want to pick and you see one called Apple File System, you're going to pick that one.
John:
Because you're like, all right, this is an Apple.
John:
I see a logo in front of me.
John:
There's one in the corner of the screen.
John:
I guess I want Apple file system.
John:
And you know what?
John:
That'll be the right answer.
John:
You do want Apple file system.
John:
You do not want, you know, Apple extended journaled, whatever you want.
John:
Apple file system.
John:
So...
Marco:
as boring as it may be it makes sense from a user's perspective that a users should never have to see this but b when they do see it they have no idea what all those weird names mean they just want to pick the one that says apple faucets well but don't you think there might be like a problem like well that one has a plus this one sounds deluxe like the more words that like it sounds like that's the deluxe cool option like i guess maybe i want the what whatever journaling means that's i like journaling
John:
that's the, that's a, the prosumer problem that maybe those people, you know, they're, they're the worst enemy, but regular people are just going to pick the safest one.
John:
They're not going to say maybe, I don't know what journal mean, but that one's maybe better.
John:
What about extended?
John:
That's better.
John:
And what about X fat?
John:
I like that one.
John:
Cause it's got an X EX in it.
John:
Uh, I think they're just going to pick Apple process.
John:
Anyway, it's a boring name, but it is certainly a straightforward name and it is a forward looking name in that Apple feels like, yes, this is the Apple file system.
John:
Now,
John:
30 years from now when this is old and busted they might have a problem because what do you call the next one but for now apple file system works and because they can't use a fs a pfs is the awkward abbreviation for apple file system honest question do you honestly think that when this file system is outdated we will still even have the option to format our own partitions it's like look at ios ios doesn't give us any options
John:
You're still going to have to read the APS-formatted volumes.
John:
I don't know.
John:
The question is whether the Mac will still be around then because you don't see volumes on iPads and Apple TV or the Watch or iPhones.
John:
So we'll see.
John:
Maybe they're out.
Marco:
I mean, at this point, I think we're lucky that we even still have disk utility.
Marco:
I mean, barely.
Marco:
But I think we're lucky that we have it at all.
Marco:
I'd be surprised if...
Marco:
if we still have the ability to format disks the way we want to and format partitions the way we want to in even 10 years.
John:
Yeah, well, it could be.
John:
If the file system continues to be pushed towards the geeky side of things, then they're free to do whatever they want, like sort of like Grand Central Dispatch is the marketing name, but Lib Dispatch is the library name on disk.
John:
It's just a clear separation between the names they present in the marketing and the actual names that programmers know them by, so it may become less important.
Marco:
Finally, in 30 years, when this file system is outdated and being replaced by the next file system, can we get together when you are, what, 72, 71 at that point and do a podcast then with a bell in it?
Marco:
By then, I plan to be living like a king in Patagonia.
Marco:
They will probably have the internet there, and microphones will probably still exist.
Marco:
I like throwing in yet another reference that you guys don't get.
Casey:
I knew enough to know it was a reference, but I also knew I did not get it.
John:
Partial credit.
Casey:
I'll take it.
Casey:
All right.
Casey:
Do you want to start running through some of the features?
Casey:
Do you want me to prompt this?
Casey:
How would you like to proceed, sir?
John:
In this part, I'm going to talk a little bit about file names, but I thought this would be a good opportunity to find out how much you guys know about Unicode.
Casey:
Not nearly enough.
Casey:
I've read the Spolsky thing on Unicode and string handling, and I've already forgotten all of it.
John:
Marco, do you come across this at all?
John:
You probably don't, because NSString takes care of this for you, and you don't even care what the internal representation is.
John:
What about in PHP land?
John:
Do you deal with any of this stuff when you do web things, dealing with Unicode and text and everything?
John:
I know a lot about Unicode, yes.
John:
All right.
John:
Well, so this will be new to Casey and maybe new to some people, but I think we have to go over a little bit of the basics before I explain what the deal is.
John:
Talking about this in the context of APFS is because files have names and directories have names, right?
John:
So when you talk about a file path, which usually doesn't show up in...
John:
mac operating system or any place else um that entire thing is presented as a string and certainly file names are presented in strings and you would think this is a straightforward thing like that nobody thinks about oh of course like files have names like that's fine uh but names are strings and strings are fiendishly complicated and it actually matters from the perspective of the file system because it has to do a lot of stuff with strings so the i guess the easiest way for people to understand this uh is that
John:
unicode is a standard for defining all the different uh things that go into making a string uh and things in unicode are identified by code points that have numbers right and there's the numbers go up really high all right they start they start low and go up really really high because there's lots and lots of things that you can put into strings and languages in the united states um
John:
And the other thing to understand is that when you write something out to disk or store it in memory or whatever, we tend to break things up into bytes.
John:
And we had a lettering system in America and the sort of Western world called ASCII that defined a very small number of...
John:
uh numbers that corresponded to things that can be in a string and it each one of them fit into a single byte so all you know a through z one through you know zero through nine all the punctuation characters or whatever they all fit into one byte size 255
John:
possible combinations and everybody was happy until we realized that there were other characters and other languages that didn't fit in this right so when they came up with unicode they tried to be nice and give ascii all the same numbers that it always had for compatibility reasons but they just keep going from there and a certain point you get up to numbers unicode code points that are way higher than 255
John:
and when it comes time for you to write them to disk what do you do with those you can't just write them out as the big numbers in a series of bytes because the first byte of the number might look like a capital letter p or something right because it's the same you know what i mean so they have come up with a series of encoding systems where when you got this big number that does not fit into a single byte and you can't write the way you would write that number out in a
John:
We need some way to encode these things.
John:
One of the ways to encode it is instead of writing one code point every byte, write one code point every 32 bits.
John:
So you have a huge space for each one.
John:
So your capital letter A, instead of taking up a single byte, takes up what is 32.
John:
four bytes eight bytes yeah eight bytes four bytes yeah there you go it's eight times four i'll get it in a second anyway um but that would be incredibly wasteful because now all of a sudden if you're writing something in ascii text it would take up four times as much room that's not good right
John:
There's also, we could do it in 16.
John:
Can we do it in 16?
John:
Well, we actually have more Unicode code points that fit into 16 bits.
John:
But I think for a while, maybe they all fit in.
John:
I think NSString uses this encoding called UTF-16 internally.
Marco:
Yeah, I believe the very first version of Unicode that they did all fit in.
Marco:
And then, you know, once we started realizing, oh, there's other parts of the world and like ancient scripts and different combining things and there's all sorts of new stuff now.
Marco:
Don't forget emoji.
Marco:
Yeah, that all came later, yeah.
John:
but it's important yeah that's not great either but it also takes up a lot of room um and the one that's in most common use these days is called utf-8 which is a pretty clever encoding scheme where ascii gets to be exactly the way it normally is like so you know one byte one byte for each character and all the ones that are bigger they have these unique sequences
John:
of multiple bytes you can have one you know two bytes three bytes four bytes i think even up to five bytes all of these are so that all the leading bytes are not mistaken for plain old ascii characters or whatever and that's the most common encoding we use and this is relevant because when you create a file name first of all people don't want to use a file system where you can only create file names in ascii because that would be annoying for people who speak languages other than english and even annoying for english speakers because you can have curly quotes and stuff um
John:
but you need to write this you need to have the stuff in memory and you needed to write it out to disk so you need some sort of representation and that's exactly what encoding is doing unicode is they take these unicode code points these big numbers possibly very large numbers and write them out in a series of bytes in a way according to some standard right uh
John:
The additional complication here in Unicode is that Unicode code points, I've been trying to say this and trying to say thingy in other words, instead of saying character or letter, because it's way more complicated than that.
John:
So a Unicode code point might be like the capital letter A, and that's something that everyone understands.
John:
But a Unicode code point might also be something called combining acute accent.
John:
that when this unicode code point follows another letter it combines to make what looks like one thing on your screen so if you did the lowercase letter e plain old ascii lowercase letter e followed by unicode code point 301 which by the way is a number bigger than 255
John:
called combining acute accent you would get the e with the little line pointing up into the right on top of it the acute accent so you're going to write the word cafe c-a-f-e combining acute accent you get the word cafe with the e with the little thing over it right but you can write that same thing cafe c-a-f and then e with a little thing over in a different way you could write c-a-f just like in the ascii and then you can include unicode cone point e9 that's in hex and
John:
Latin small letter E with a cute.
John:
In other words, Unicode has two ways for you to write something that looks the same on the page.
John:
And I'm not sure what the original motivation is.
John:
That's probably because you could use combining characters in more flexible ways than including every possible combination.
John:
But sometimes combinations are convenient to include.
John:
This adds yet another wrinkle, which is you can write the same thing in Unicode in multiple different sequences of code points.
John:
that's a problem for something like a file system it's not a problem for like if you're if you're writing a report or printing a page or even making a web page but it's a problem for file systems because file systems need to write file names out to disk like to store them in the metadata somewhere um and in general file systems don't want you to be able to have a file with the quote unquote same name in the same place ignoring file name extensions which just make this a mess but
John:
If you wanted to make a file called CAFE and then you want to make another file called CAFE, you wouldn't want them both to be existing in the same folder staring you in the face.
John:
And like, how can these files both be?
John:
They both have the same exact name.
John:
But if you were to merely write out the encoded bytes for this thing, whether it's UTF-32, UTF-8, UTF-16, whatever encoding format the file system chooses.
John:
If you were to just write them out like that, one application could make C-A-F, Latin small letter E with acute, and one application can make C-A-F-E combining acute accent.
John:
And as far as the file system is concerned, the sequence of bytes of these files is different.
John:
So when it diffs them, it says, nope, there's no file with this name.
John:
I'll just make this file.
John:
But when you open the folder, you'd see two files called cafe.
John:
And that is bad.
John:
um and i haven't even got into case sensitivity but as you can see in case in a case sensitivity uh case insensitive situation they have the file system has the same problem is there already a file with this name yes or no and that's where you would factor in okay well is there a file with this name but with like the capitalized letters lowercase you know ignoring case but ignoring that entirely just for plain old case sensitive whatever there's multiple ways you can write the same word and unicode handles that by a system it calls what is it called normalization
John:
different uh normalized forms of unicode it has a bunch of different forms we'll link to them in the show note uh what it basically comes down to is should we try to break apart every character into its smallest possible pieces decompose them you want to have the lowercase e and then the the combining accent or should we try to compose them all
John:
into their canonical form by squishing the e with the combining accent into the latin small letter e with acute um or should we do different combinations of them in different orders a whole bunch of different normalized forms the file system if it wants to well i was gonna say the file system has to pick one of these but it doesn't it could it could just uh you know do what i said and say i will accept whatever bytes you give me and i have no idea what they mean and i will just put them in the file system or it could pick one of these normalized forms you pick a normalized form then it doesn't matter what the application gives you
John:
it will always be canonicalized when it goes to the file system so this is what hfs plus does but of course hfs plus being a very old file system does not use any of the unicode normalized forms it uses a variant of those normalized forms that has changed in different versions of the operating system if you look at tech note one one five zero from apple which apparently is not no longer online so we'll link to like another version of it
John:
it uses kind of decomposed form except for a whole bunch of ranges that it changes to be compatible with like the mac greek encoding and it excludes a bunch of things it's really really confusing um but anyway in hfs plus if you try to make two files uh called cafe and i wrote of course a little pro script to test this out
John:
and you try those two different ways to do it the e with the combining accent and then the e with the little hat uh already combined doesn't matter what you write the hfs plus will be like oh yep i totally made that file for you but when you read that file back in and look at the file name it will have changed it to the uh the normalized form that hfs plus wants so you will not make two separate files if you try to make one file with that one one name and one file with the other name you will just overwrite the same file twice uh you like hfs plus
John:
does not take your file name for what it is.
John:
It does something to it first, or rather the driver for HOS Plus does to be compliant with the file system, right?
John:
This is one of the reasons that a lot of Unix nerds have, and I think Linus Torvalds had a big rant about it, but I couldn't find it on the internet, have complained about HOS Plus.
John:
I gave you what the file name is.
John:
It's supposed to be this.
John:
And you said, no, I totally made that file for you.
John:
And then later, when I try to read that file and look at its name, it's not what I told you.
John:
And that's bad for things like Git or Linux, for that matter, or other things that deal with files.
John:
They don't expect that to happen.
John:
The sort of Unix-style approach is, here's a sequence of bytes that makes up this file's name.
John:
Make that file.
John:
And then later, when I read that file, I'm going to look at its name, and it better be that.
John:
And I better be able to look it up with that name, and the name that comes on the disk better be with the bytes that I gave you.
John:
And if it doesn't, your file system is broken.
John:
But...
John:
as i hopefully explained if you do that it's very easy for applications to make names that look exactly the same in the user interface cafe and cafe like they are indistinguishable they are exactly the same pixel for pixel because you can't see the bytes that make up the unicode string you shouldn't care about them and to users to be able to make the same file with the same name with apparently the same name that seems like a bug it seems like something shouldn't happen which cafe file is the one that i want they both have the same name i don't know
John:
um so you can't do that and that's why apple doesn't do that apfs now has to make some decisions about this what should apfs do for file names should it do it the hfs plus way exactly probably not because that's got years and years of baggage floating around in it from the fact that it existed before unicode i think or even when or maybe just it came out when unicode was very young i think hfs plus hfs predates unicode but not hfs plus but anyway um
John:
doing what hres plus does would be best for compatibility but it would also be slightly crazy i don't think apple wants to maintain their weird mapping tables forever uh with their different uh you know non-standard normalized forms should it do what uh many linux file systems do and many other processes do which is i take no position on file names that's not my concern you gave me a sequence of bytes and that's the file name i will write that out to the file system later when you read it you will get back that sequence to bytes i'm
John:
I don't know what a sequence of bytes means could mean anything.
John:
I have no idea what that stuff is.
John:
But anyway, here's what you said.
John:
My understanding is that that's what APFS does today.
John:
So if you run my little pro script on APFS, you can make two files that apparently are both named cafe, but they're actually different sequences of bytes because one uses the combining acute accent and the other one uses the E with a little accent already composed on it.
John:
uh and by the way i think i think it might be well anyway when you if you were to do this when i did it in pearl i had to choose how to encode the file name uh and i chose utf-8 i think you can't the the api well i'm using pearl so it has different rules about that but the bottom line is when you somebody has to pick the byte representation all right you can't give it a sequence of bytes
John:
for your string and use unicode code point e9 or unicode code point 301 because they don't fit in a byte so you have to figure out a way to fit them in a byte and that's what unicode encodings are and so i picked utf-8 if i had given it utf-16 i'm assuming it would have stored utf-16 and given me back utf-16 and so on for all the other different encoding things so
John:
As far as I can tell, APFS is a bag of bytes.
John:
That means it's case sensitive because bag of bytes means you gave me these bytes.
John:
Here are these bytes.
John:
And so if another file comes along and wants to write cafe with a lowercase C instead of a capital C, it's a different sequence of bytes.
John:
File system says, nope, no file with that name.
John:
Here you go.
John:
I think this will I don't know.
John:
I don't think this is the official position because APS is not done.
John:
You can't even boot from it right now.
John:
It's obviously not finished.
John:
This is what I'm going to be looking for in the coming months and in the rest of 2017.
John:
What will be the policy in APFS?
John:
Will they add case and sensitivity?
John:
Once you decide to add case and sensitivity, you have to make some decisions.
John:
At the very least, you have to make decisions about encoding because you can't compare case on two things.
John:
Like if someone writes one file name in UTF-16 and one file name in UTF-8,
John:
Something in the system has to understand that.
John:
You can't do case comparisons with strings encoded in different ways.
John:
Or maybe you just straightforwardly compare it as if, I don't know, it doesn't make sense.
John:
Case comparisons, you have to have an awareness of the encoding, right?
John:
So if they ever want to make a case-insensitive version of APFS, they need to decide, here's how file names are encoded.
John:
uh and then beyond that they have to make a decision about normalization do we do normalization at all uh if you don't do normalization you can get into these weird situations where you have files with apparently the same name you could handle this all at the framework level handle it all on coco handle it all and you know uh whatever higher level frameworks you get so on and so forth um
John:
uh i don't know if that's something that apple will do and it's not i think this is not a minor decision because what you decide to do here has implications that ripple down through history as we saw with the hfs plus one after you make this decision it's not easy to change it uh i suppose you could go with case sensitive now and do case insensitive later but kind of like the opposite of what hfs did going with case insensitive from the beginning and making a case sensitive variant but
John:
Anyway, this I think is one of, to me, the most important decisions that has not yet been made for APFS.
John:
And since it will probably happen before next year's WRC, the only way we'll be able to tell whether it's made is looking at the APFS documentation online and continuing to run tiny test programs from languages other than Apple's frameworks to see what does the file system accept.
John:
I don't know what the right position.
John:
I don't have a particular position here.
John:
Only I just want them to make a decision and for it to be a reasonable one.
Casey:
And that's what I was about to ask is that you don't necessarily have a preference between normalized and not normalized.
Casey:
You just want to see that there is a a declared statement as to how it's going to work.
John:
Yeah, and like a philosophical, some sort of philosophical statement of support, because in many respects, making the file system itself just be bag of bytes, which is you gave me bytes, I stored them, is very straightforward.
John:
It's the easiest to test.
John:
It is the simplest.
John:
It's the fastest.
John:
You can do really fast comparisons with it.
John:
It's everything you want from a performance perspective.
John:
If you were like, say, on the file system team and you wanted to make a really fast file system.
John:
But from a user's perspective, it doesn't solve user problems.
John:
It doesn't solve user problems that HFS Plus does.
John:
I don't know if you can solve it all at the framework level.
John:
I have to think that you can't really at the framework level entirely because...
John:
I don't know, like there's so many different ways and so many different programs that can write files to disk and not all of them go through your frameworks.
John:
Right.
John:
And it's it's madness to have some file names in UTF-16, some file names in UTF-8, some normalized, some denormalized, some a weird mix.
John:
That seems untenable to me from just the basic perspective of how do I correctly check whether a file exists?
John:
the file name blah how do i check whether that exists it's like well how many different ways can you write this you know the only way i can check for this because the file system knows nothing about encoding i say hey file system do you have a file name cafe uh and the file system's like all right well what sequence of bytes do you want me to check for nope i don't have one with that sequence of bytes you have to think is there another way that i can write cafe
John:
I could write it in UTF-32 with a combining accent.
John:
Do you have this sequence of bytes?
John:
And the file system would say, nope, don't have that sequence of bytes.
John:
And the application is like, hmm, maybe they did it in UTF-16, but with a Latin small letter E with a Q on it.
John:
And like, that's untenable, right?
John:
And so as scary as it is for the file system to make decisions about this, because they're just, they're very difficult to change after the fact.
John:
If it doesn't, then every file system API...
John:
Needs to either be incredibly thorough or make it so that you can potentially create files with apparently the same name from the user's perspective.
John:
And I think that's not healthy either.
John:
So I don't know.
John:
It could be that we don't care about any APIs except for the Cocoa ones because we don't care what people going straight through the C APIs or writing Python scripts or whatever we're doing.
John:
All we care about is the things that go through AppKit and UIKit.
John:
And then you could have it be bag of bites.
John:
I don't know.
John:
But but I can hear arguments on either side of it.
John:
But the fact that nothing has been said so far and the fact that it just does bag of bites now doesn't really tell me anything about their position.
John:
It just tells me they didn't get to that part yet.
John:
Because I think if they had got to it, it would have been in that presentation.
John:
Like the presentation was for developers to say, test your application on APFS.
John:
They did tell them to test it based on the case sensitivity part.
John:
And that makes some sense because Apple has shipped a case-sensitive file system for a long time.
John:
And a lot of applications break on case-sensitive file systems like Adobe's applications and Microsoft's applications.
John:
All apps that were created in the days before the Mac could even have a case-sensitive file system.
John:
Many of them believe not attempt to open files or libraries and stuff by file paths that do not match the case of the actual files on disk.
John:
You would think that those are the type of bugs that would have been fixed long ago.
John:
But the bottom line is Mac users don't run case sensitive file systems for the most part.
John:
iOS luckily has always had case sensitive file systems.
John:
But anyway, case sensitive is separate from whether things are normalized.
John:
um so i think if apple was committed to bag of bytes file naming they would have maybe mentioned that in the file system session but i'm not sure but anyway it's it's a thing i think about a lot and i have concerns
Marco:
our final sponsor this week is backblaze backblaze is unlimited native online backup for mac and pc go to backblaze.com slash atp for a no credit card required no risk free 15 day trial now backblaze is the best online backup that isn't in the script i don't know if they can say that but i can say that because i've used many online backup programs and services
Marco:
And Backblaze is by far the best one that's worked out for me and my favorite one.
Marco:
And I've been using them since long before they were a sponsor.
Marco:
I have them backing up my computer, TIFF's computer, even my mom's computer.
Marco:
I have them backing up something like 6 terabytes of my data.
Marco:
It is so solid.
Marco:
It has literally never caused us a problem for the, I don't know, four or five years I've been using them.
Marco:
I highly recommend having online backup, especially if you're going to be playing around with the file system on your computer.
Marco:
You should really have online backup to save your butt if you do anything stupid or if your local backups are all corrupted by bit rot from HFS+.
Marco:
So check out Backblaze today, backblaze.com slash ATP for that risk-free 15-day free trial.
Marco:
Backblaze has a bunch of other cool features too.
Marco:
So for instance, you can of course restore your files on the web.
Marco:
You can download files as a big zip file.
Marco:
You can even have them overnight UA hard drive with all your data if it's like a ton of data and it would take too long to download.
Marco:
And if you return the hard drive back to them within 30 days, you get a refund on the price of the hard drive.
Marco:
So it's a very effective way to restore a ton of data at once.
Marco:
And not only that, on the other side, if you want to just restore one file, you can do that in the web interface or their iOS or Android apps.
Marco:
So one great use for this is if you're on your phone, or let's say you're traveling and you only have your laptop or something, and you want to file it from your home computer, you can do this with Backblaze because Backblaze has all your files.
Marco:
It's just automatically there running, backing up everything.
Marco:
You don't really have to think about it, which, by the way, is how a backup should work.
Marco:
If you have to think about it, it's not really a backup.
Marco:
So with Backlit, you can log in and just restore one file if you forgot a file on a trip or something like that.
Marco:
It is incredibly convenient.
Marco:
I've done this probably five or six times now because it doesn't happen often.
Marco:
But when it does happen, I'm so glad I have it.
Marco:
And that's kind of the story of online backup.
Marco:
You won't usually need to use it, but you'll be really glad you've had it on those few times that you do use it.
Marco:
Just $5 a month for unlimited space, unthrottled speeds per computer.
Marco:
So $5 per month per computer.
Marco:
It is a great deal.
Marco:
Unlimited space.
Marco:
So check it out today.
Marco:
Go to backblaze.com slash ATP, and our listeners get a 15-day free trial.
Marco:
Backblaze.com slash ATP.
Marco:
Thanks a lot.
John:
Do you guys have any opinions on, before we move on, case sensitivity?
Marco:
Yay or nay?
Marco:
Wow.
Marco:
So for the two questions that you've basically posed here, I think the file system should, on the topic of bag of bytes versus at least normalizing to some degree, whether you normalize for Unicode normal forms, for combining characters and things,
Marco:
Or at least whether you normalize for character encoding.
Marco:
I think encoding is an obvious win.
Marco:
You should absolutely normalize for character encoding.
Marco:
And whatever encoding they pick, I'm less concerned about that.
Marco:
If you pick UTF-8, cool.
Marco:
Whatever encoding they want to pick, that's fine.
Marco:
But I think it is a clear win that the encoding should be normalized for file system access.
Marco:
Whether or not normalizing forms of characters and case sensitivity, I mean, that's kind of two different degrees of the same kind of thing.
Marco:
That I am less confident on, but my inclination would be... I think the era of case insensitivity is probably over, but I would say that...
Marco:
If I were designing a system, and having heard no other arguments except for your large amount of them, I think the Cocoa APIs should be responsible for normalizing or not normalizing the name case and combining characters-wise.
Marco:
That the low-level C APIs and the raw interface of the file system should not perform that kind of messing with characters.
John:
Should the file system throw a fatal error if the encoding is incorrect?
John:
Like if you give an invalid UTF-8 sequence, should that just not work?
John:
Or should it dutifully write those to disk anyway?
Marco:
Yeah, because if it doesn't do that, then you have the same problems before where you can write a name and then you go to read that name and it's not there.
Marco:
So I can see why that could be a problem.
Marco:
So maybe yes, maybe the answer is that if you try to have an invalid sequence in the name that you give it, then maybe it does error out.
Marco:
I don't know.
John:
I mean, because it's basically a question of like, so say they pick UTF-8, which is exactly what they'd pick because that's what everyone picks because all the other encodings are stupider.
John:
If they pick that, then they could just say, oh, when you write your file names to APFS, you should write them in UTF-8.
John:
And then if you don't do it, that's your own stupid default.
John:
In other words, it is a policy, not an implementation enforcement.
John:
And so then later, when some other program tries to... In other words, if you wrote it with an invalid UTF-8 sequence, and then later your program tried to read it with that same invalid UTF-8 sequence, it would find it.
John:
But it would be garbage, and then any other API that's trying to compare files or whatever would just...
John:
you know fail in weird ways because you have not even written a valid utf-8 sequence and when it does it like if you tried to say is there a file called cafe it would be like nope don't see it uh because you just wrote an invalid sequence the other one is to have the the file system enforced at the you know at the driver level and in all the various operating systems if you pass some file name down through the system down through the bsd layers at some point we're going to look over your entire sequence and confirm is this a valid utf-8 sequence and if it's not boom everything blows up forget it nothing works or you know whatever
John:
and i don't know i think checking for checking that it's valid utf-8 shouldn't take long and should be fairly straightforward because we're not dealing with large volumes of data so that's that's what i think they would go with if they make that decision that will essentially be impossible to write an invalid utf-8 sequence to a file name which could also break applications like everything every decision they make aside from make it work exactly like hfs plus is going to break applications and make it work exactly like hfs plus is the one decision that i think is entirely wrong
Marco:
I mean, heck, in this day and age, it wouldn't have been reasonable to have an actual Intel hardware instruction to validate a sequence of UDFA characters.
John:
Yeah, because the rules aren't that complicated.
Marco:
No.
John:
I mean, you don't even have to see where it corresponds to a defined code point in the Unicode Center.
John:
That's more difficult to do, certainly in hardware.
Marco:
No, it's just like bit masking.
John:
Yeah.
John:
But anyway, I suspect that's probably what they'll end up being doing.
John:
But case sensitivity, I think, is still a weird issue because...
John:
I think users of computers, even just on iOS, where you're not really ever prompted to write a file name, but certainly on the Mac, having two files called, like, I don't know, like, you know, Xmas, and then you write a file called Xmas, but you decide to capitalize the X, and you end up with two files, you know, you thought you were overriding the previous one, I don't know, that just...
John:
case insensitivity i think is more like how how regular people think computers work case sensitivity is how programmers think computers work for sure so i'm sure that it would be very popular with programmers but i mean or maybe not because like i said the fact that there are still mac applications that only work on case insensitive file systems due to eminently fixable errors in their source code uh it's like that's never going to change unless you force it to change so i don't know casey you have opinions
Casey:
Yeah, you know, I think that of all the places you want to have the Wild West, the file system is not it.
Casey:
And I think that forcing and encoding makes sense.
Casey:
I agree with you mostly that users expect case insensitivity, but
Casey:
But I don't know.
Casey:
I think what with the Internet running on Unix for the most part and URLs generally being case sensitive, I think that people are starting to become more comfortable with that.
Casey:
So if I had a vote, I would say enforce something like UTF-8.
Casey:
If you write something that's garbage or not UTF-8 encoded, barf all over it and do so violently.
Casey:
And I would favor case sensitivity by default.
Casey:
That's my vote.
John:
I don't think anyone's in favor of normalization, but like I said, you end up in weird situations.
John:
So I would suspect if they don't touch normalization of the file system level, then they do it all at the API level.
John:
But then it's just it's pretty easy to make fairly absurd situations where I bet you could pick some word or phrase that has a huge number of possible combinations, like in some language that uses accents on its characters.
John:
And just, you know, the number of possible permutations goes up pretty quickly as you add the accented characters.
John:
Then you can make a folder full of literally hundreds of files that all appear to have exactly the same name in the finder.
John:
That's something you can't do in HFS+.
John:
And it's something that you shouldn't be able to do, but will be able to do with the file system, even if they pick an encoding, but they don't pick a normalization.
John:
So...
John:
that's that's what i'm thinking about that's because it's not it's not a straightforward problem it's not an obvious answer though clearly apple will do this there is no easy answer i never thought we'd talk this long about the detailed implementations of dealing with file names in a file system it's more just about unicode and even though right you know you and i both know it having dealt with it but i can tell you the first five times i dealt with unicode i still didn't understand it only on the sixth time you know like i if you have never heard anything about unicode
Marco:
hearing what i just said about all the the code points normalization is not going to sink in but it's it's weird and if you don't know about it and think about it when dealing with strings you will eventually be sad no i mean dealing with unicode in my experience is a lot like uh parenting in that the more you the more experience you get in the area the more you realize that you will just always be wrong and there are no good answers
John:
Wow.
John:
Well, I mean, there's one thing is just understanding the standards, which I think is difficult enough.
John:
And then once you understand the standards, then you realize no matter what I pick, there are downsides.
John:
And then then the real sad realization is that you realize all the play.
John:
If you're a programmer, you realize.
John:
all the places in your program where text is coming in without the encoding specified and you're like i don't i don't even know what the right thing to do is what who how is this going to be encoded this is just bytes coming across some sort of you know reading out of a disk a file on disk or coming across the network and then you end up like rippling outwards and asking all of your input sources hey uh could you tell me what encoding you're using and they say encoding what
John:
and then you realize you basically have an intractable problem where especially if you're accepting input from the wider world that it doesn't come tagged along with what encoding it is and you don't know how to make sense of it unless you know the encoding so you kind of have to i can detect the encoding through a bunch of heuristics or i can guess or i can try to enforce downstream that you should only give it to me in this encoding and then you find out how many people are actually sending you things that don't conform or all of a sudden you get a bunch of utf-16 or
John:
shift gist and you have oh this is terrible text is terrible we should communicate through a series of ones and zeros it'd be much easier wow i never i've never heard shift gist discussed in a podcast i don't think i ever will again oh yeah but my first big normalization project was like i would have killed for utf-8 like that's that's how bad it was before unicode things were worse let's just put it that way
Marco:
I mostly avoided having to deal with these issues over time with my various web servers.
Marco:
You're right that in native apps, you don't generally have to deal too much with this.
Marco:
On the web, you've got to deal with it all the time.
Marco:
The easiest thing on the web is to just make all your pages serve UTF-8, serve themselves as UTF-8, which would then make all browsers default to sending you UTF-8 in forms.
John:
Only the modern world will make your browsers do that.
John:
In the old world, you could
John:
do whatever you want with your web pages but people in japan we're gonna be sending you things in a different encoding and it doesn't matter if you put utf-8 as the you know like that was great when browse just finally started to honor the encoding of the page yeah but that i mean that was most of my career has been after i mean like when we were building tumblr in 2006 that was the case so it's it's been okay
Marco:
And then the only time I really had to think about Unicode on web stuff recently is when Emoji came around and I had to alter all my MySQL tables to be the UTF-8 MB4 character set, which was annoying.
Marco:
But after that, it was fine.
John:
My SQL made some Unicode mistakes.
John:
The best part of the web and encoding is, even coming to case sensitivity, is the old URL that we increasingly don't see in our address bar.
John:
The hostname part is not case-sensitive, whatever you think that means.
John:
The encoding for URLs is, I think it is basically limited to ASCII, but there's this way you can encode Unicode code points with this special escape sequence-y thing.
Marco:
In the hostname, there is.
John:
in the rest of the url god knows what's going on there in the host name there's a special international domain extension thing but that has a bunch of security problems actually right of course and then and then like you said for the rest of the url like it's it's kind of the wild west and it's the worst that half of the string is case sensitive and half of it isn't again whatever the hell you think case sensitive means urls are still a problem um but in that respect the body of your html documents is blessedly normalized at this point
John:
Because like you said, most modern browsers honor the encoding.
John:
Anyway, text is hard.
Casey:
All right.
Casey:
Well, speaking of things that are hard, how about data integrity?
John:
Yeah, I touched on this last time.
John:
This is the one feature I wanted from APFS that it did not deliver.
John:
And we're speculating about why that might be or if it really was the case.
John:
Data integrity, just a quick review, is basically the idea that if a program writes some data to disk, later reads that data back, the data that it originally wrote should be the data that it gets back.
John:
And that could be a day later, a year later, 10 years later.
John:
If that's not the case, because hardware is fallible, you would like the file system to know, hey, you asked for these bytes, but it turns out that since they were written, they have been screwed up.
John:
So restore from backup or solve this problem in other ways.
John:
ZFS and some other file systems have a way to make multiple redundant copies of the same data.
John:
And when they detect this error, they can fix it.
John:
uh because they have a good copy and a bad copy and they will just ignore the bad copy and use the good copy and write another copy of the good one or whatever um all that stuff is expensive because it means you have to write out checksums with all of your data and you have to sort of do end-to-end checksums so that everyone is sure yep i'm sending you this and here's the checksum yep i got that and here's the checksum i'm writing the disk making sure everything is all good you know
John:
uh that's what uh that's a feature of zfs it's a very important and uh wonderful feature of zfs but it has a cost associated with it both in terms of computation of computing all those checksums and and also uh dependency because you can't really be done writing the data until you've also made sure all the data was written correctly and then also written the checksum and made sure that you know so there's lots of dependencies that are inherent in that uh and mostly i wanted it for the the case of bit rot as in over long periods of time i write out my family's photos and
John:
to disk and i make backups of that disk and i push that up to backblaze and it's on time machine and i'm doing super duper clones and if some of those bits are flipped because of errors in the hardware all i'm doing is copying those now corrupted bits over and over and over again over the years to different backups uh you know the incremental backups don't go on forever there's a window of time you know before they'll fit on the disk and the same thing with backblaze they don't think they keep your backups forever and ever and ever every different version um
John:
So eventually you will just be propagating the corruption over the years until 20 years later when you try to look at some baby picture, your favorite baby picture is all messed up and all scrambled in JPEG because a bunch of bits flipped and you don't know which ones.
John:
That's what I'm trying to protect against.
John:
And APFS does not provide that feature, does not have the option to write out checksums with all of its file data.
John:
Now, APFS is a flexible file system intentionally designed to be extensible without breaking backwards compatibility.
John:
This feature can conceivably be added in the future.
John:
Hell, it could be added before 2017.
John:
They got a whole year, right?
John:
But it's not there right now, and that's a little bit disappointing.
John:
It does write checksums for metadata.
John:
Metadata is like, here's what the file's name is, here's all the dates, the ownership, the permissions, and here's where each individual piece of this file data is on the disk so you know where to go get it.
John:
I keep saying disk, but you know what I mean.
John:
And it writes checksums for metadata.
John:
I mean, there's good reasons to do that, mostly because this file system, like many others, tries to...
John:
Doesn't do always consistent on-disk representation, but it comes close.
John:
It wants to know, did I finish this operation?
John:
So if someone yanks out the plug to your computer and it was in the middle of writing a file, what you want to happen when you reboot is either the entire file is there or none of the file is there.
John:
And checksums on metadata could conceivably help with that because what you're going to do is you're going to
John:
write the data and write the metadata but if the metadata is not complete like if we're not we didn't finish if we're not done then you just ignore all of that it's all invalid and the file basically isn't there you have a consistent file system don't worry about that partially written file or that partially written metadata or whatever and how do you tell whether the metadata is partially written well if all your metadata has checksums when you're looking at that piece of metadata
John:
uh you can look at it and do the checksum and say does the checksum match the metadata and if it does it's complete and if it doesn't you know you can do that with journaling and stuff but uh apfs does not use journaling journaling is a relatively expensive way to do the same thing where you sort of write out what you plan to do then you do it then you write out that you're done and that's how it can tell whether you finished an operation or not um and metadata is in general more important than data because if you screw up the metadata you could hose your entire disk like screwing up the metadata for an entire directory and then everything under it becomes invisible or whatever
John:
um and metadata is really small and the checksums are really fast on it so there's no real performance hit so apfs does do checksums with metadata does not do it with data this is a topic that came up a lot at wwdc talking to other people who had up the other file system nerds who would also talk to people on the file system team about uh apfs and uh i think i think this was a very uh
John:
popular feature suggestion hey it would be great if apfs had data integrity or the question why doesn't apfs have data integrity and a lot of the the reasons are you know things that i said that is potentially expensive um one of the reasons that i heard was that ssds do their own checksumming internally which is true they do because they have to deal with the uh
John:
pretty startlingly unreliable nature of flash storage uh you know all sort of memory chips are inherently at the bottom tiny little analog devices that are a little bit scary when you find out how they work and ssds are no different ssds
John:
have over-provisioning where they have many more memory cells than they're going to use and there's actually a tiny little operating system in there that's trying to distribute all this stuff to all the storage and they wear out if you use them too much it's very very complicated but they do copious not just checksums but also error correcting code so if they find a bit flip because of some analog error or whatever they can fix it uh before returning the data so that's one of their stopgaps is like hey spinning disks don't do that so much but they're going out and ssds do the checksums
John:
Yeah.
John:
that they're a little bit better off than everyone else but it doesn't really help with bit rot if i write all my family photos to one terabyte ssd they get there successfully and then five years later i have no idea if those bits are flipped the faust system can't tell me because it doesn't know what bits were originally written all it can read do is read them and say here's what i've got on disc is that what you wrote five years ago beats the hell out of me i don't know so i've been thinking about possible other solutions if apple never builds in data integrity apfs and
John:
and one of them is something that i think there's an hfs plus program that does this already a user space solution just scan all your files checks on them write out the checksum someplace else and then if anything goes wrong with either the checksum or the data itself the two won't match anymore and you will know that your file is corrupted and you can restore it from backup so it's sort of like
John:
user space manual process of scanning all the files that you care about and writing out the checksums and periodically scanning them all again and making sure the check comes all match and if any of them don't match then restoring from your presumably good backup you know so it's basically protecting against bit rot by actively doing some process periodically hoping that you don't propagate whatever corruption has appeared into all of your incremental backups you will know about the error in enough time to restore from your backups um
John:
And that's kind of a heavyweight solution.
John:
I forget what the name of the HFS Plus program that does that.
John:
Clusters, maybe?
John:
Or maybe that's just the compression one.
John:
Anyway, I'll try to look up for the show notes.
John:
Of course, if you're a programmer and you think about this problem for more than a few seconds...
John:
you realize that there is a big race condition here where if you're trying to read a file and checksum it and then write out that checksum, what if between the time that you read that file and the time that you wrote the checksum, something modified that file?
John:
What if it modified it while you were in the middle of reading it?
John:
uh your your checksum and your file won't match and it will appear as if corruption occurred so you could do a thing where you just say okay after if i read the file i kind of calculate the checksum then i write the checksum after i write the checksum i'll read the file again and if it doesn't match the checksum i won't assume it's corrupt i'll just try to do it again you're just racing yourself over and over again until you get a matching set and you're like oh finally i got a matching set but you're not solving the race condition that way it's essentially a a
John:
an intractable race condition without help from some other part of the system without help for example a way to say i want to stop anything else in the system from writing to this file and in general operating systems don't provide ways to do it provide advisory locking uh but it's very difficult to stop anything else from writing to the system writing to a particular file uh in general
John:
luckily both hfs plus and i assume apfs include a feature that can help with this i don't know why i was added to hfs plus but it's been there for a couple years now i think uh and it is what is it called it's called the the right generation counter you can get this on any file today on your mac and hfs plus if you call get adder list it's called the constant and the get adder list man pages and
John:
adder common gen count it is a according to documentation non-zero monotonically increasing generation count for this file system object so it's for all file system objects not just files and it's basically a number that goes up anytime anything happens to a file so all you got to do is store both the checksum and the generation count and
John:
And then you will know this checksum is for this generation count of the file.
John:
And if anything in the entire system does anything to that file, that number will go up and you'll know your checksum is invalid.
John:
So in the future, when you're checking for corruption, you won't be confused and say, oh, no, I've detected corruption because you will know that, yeah, the checksum doesn't match the file data.
John:
But that checksum was for generation count number five.
John:
And the file is currently on generation count number seven.
John:
So it's time for you to recompute a checksum.
John:
So it is a system guaranteed way for you to match up the checksum and the generation count.
John:
uh and the content of the file and that is very handy and it makes me think that uh i'm gonna pull a marco here like i should write my first mac program which is a file that just does these check zones and use it because i mean i'm gonna say i could write it in pearl but i totally could write it in pearl but no like an actual mac program that does this
John:
It's really straightforward.
John:
The only real problem is where you write the checksums.
John:
You could write them to extended attributes.
John:
That seems kind of antisocial to me.
John:
You could write them to a separate database, but it better be able to handle millions of things.
John:
But anyway, I'm actually thinking about this.
John:
A program, a simple program that you point at a subdirectory that does a bunch of checksums for it and periodically scrubs it and tells you if anything has gone corrupt.
John:
i think a a local sqlite database would be a pretty good way to do that you're saying that because you have never inserted more than a million rows in a sqlite database i have and i can tell you it falls over badly even like a simple because that would just be like you know a string key well god knows how you'd represent the file name but however you'd represent the file name a string key and and a checksum you don't know how to do the file name but you can do uh that you have a unique id for the file that's another thing you can get from hfs plus right
John:
So you're just basically storing like two integers?
John:
Yeah, it doesn't do well.
John:
If you try to do a graph like of inserting, maybe, I never tried it with pure integers.
John:
I've always had some string in there.
John:
But once you get into the millions, the inserts start slowing way, way, way down.
John:
I know this from experience.
Marco:
Can you provide a custom value to be the row ID?
Marco:
Oh, to get rid of the sequence?
Marco:
Yeah, get rid of one integer.
Marco:
If you can provide a custom value to the row ID, then each row would only have effectively one column.
John:
yeah i don't know why it's slow maybe it's maybe i had indexes on it but anyway i did it for like data that was like a couple of integers and a couple of strings and i left the you know the row id and in the millions disaster on you it becomes unusable like it's fine in tens of thousands it's okay in hundreds of thousands but once you get into millions and this was maybe like three years ago so maybe things are improved but anyway there there are solutions to this it's not an impossibility that's what i'm saying i'll just start an appealist it'll be fine
Marco:
So for whatever it's worth, I'm pretty sure there is some kind of optimization where if you, I think if you provide some kind of like big int column instead of the row ID, I think it'll use that as the row ID or there's something like that.
Marco:
You have to look at the documentation to be sure.
John:
Yeah, there's a lot of optimization to SQLite, you know, to make it sort of less safe but faster.
John:
Yeah.
John:
But doing an extended attributes would be entirely straightforward, but I'm not sure that's the best solution, especially if you have only read permission to the files and you can't write extended attributes to them.
John:
Anyway, I'll have to think about it, because extended attributes is totally the way to do it.
John:
Time Machine, by the way, does keep checksums with all of its files and has for many years.
John:
I forget where it stores them, probably in extended attributes, but who knows.
John:
But anyway, in Time Machine, it owns the entire area that it's writing to, so it doesn't have to worry about permissions issues.
John:
um but anyway that could be a limitation of the program hey uh if it can't check some a bunch of files i'll just tell you when it's done yeah you pointed me this directory and it turns out they were you know 7 000 files that i could not check some because i can't write to them i don't know i've been thinking about it a little bit it is the world's most boring program but in the absence of file system support for bit rot detection we need some solution and
John:
Since it's technically possible on HFS Plus too, because like I said, this feature, this generation write counter is on HFS Plus now.
John:
It's just that I've never really thought about doing it, as I always assumed the file system would come and save me.
John:
But if that doesn't turn out to be the case, I take matters into my own hands.
Marco:
I mean, if there's ever an app that would be perfect for today's John Syracuse to make and publicize, I mean, I can't think of something that would be better.
John:
Yeah, I mean, the other solution, as many people will tell you, oh, just use FreeNAS to make a ZFS NAS and put all your data on that.
John:
And that would be a solution.
John:
Nobody wants to do that.
John:
My Synology supports BTRFS now, which I think has data checksumming, but my Synology doesn't support it.
John:
So maybe when a NAS eventually dies and I replace it, I'll buy one with ZFS and that'll solve the problem, but...
John:
In the meantime, I may experiment with this someday.
Marco:
Well, and the best thing is, you'll get Sherlocked in like two years when they add data integrity.
John:
Exactly.
John:
So the full developer experience.
John:
Yeah, exactly.
John:
Just when I finally get it working, they'll be like, now APFS has data integrity.
Marco:
Yeah, get rejected from the Mac App Store because it won't be sandboxable at all.
Marco:
Yeah.
Marco:
It'll be perfect.
Marco:
Try to sell.
Marco:
There will be some competitor that will sell theirs for less.
John:
Like I said, I think there's already a program that does this for HFS+.
John:
And presumably that same program will work on APFS.
John:
I forget what the name of the program is.
John:
But yeah, this is not a new idea.
John:
I think this is already implemented in an application.
John:
I just...
John:
can't remember the name which is probably why i don't have it installed or like seriously though when i think about it's like why haven't you done this before why aren't you running the hfs plus one that does this i was always just thinking this file system would save me i just thought like well i'll just i'll stick it out uh and there'll be a new file system here probably next year and i've been thinking that for a lot of years now finally finally came no data integrity
Casey:
All right.
Casey:
What else is going on in Apple file system?
Casey:
Tell me about space sharing.
John:
Is there more?
John:
Yeah, we got to save that for, but I just wanted to get a data entry.
John:
That's why I shuffled around.
John:
We'll save the other details for the rest of the show.
John:
These are the main points I wanted to get to that weren't discussed.
John:
We'll talk about space sharing and atomic cones and snapshots next week, probably.
Casey:
Alrighty.
Marco:
Thanks a lot for our three sponsors this week.
Marco:
Fracture, Hover, and Backblaze.
Marco:
And we will see you next week.
John:
Now the show is over.
Marco:
They didn't even mean to begin.
Marco:
Because it was accidental.
Marco:
Accidental.
Marco:
Oh, it was accidental.
John:
Accidental.
Marco:
John didn't do any research.
John:
Margo and Casey wouldn't let him.
John:
Cause it was accidental.
John:
It was accidental.
John:
And you can find the show notes at ATP.FM.
John:
And if you're into Twitter...
John:
You can follow them at C-A-S-E-Y-L-I-S-S, so that's Casey Liss, M-A-R-C-O-A-R-M-E-N-T, Marco Arment, S-I-R-A-C-U-S-A, Syracuse.
Marco:
It's accidental, they didn't mean it.
Casey:
So are we talking about TiVo?
John:
I'm still in the notes.
John:
I don't think I forgot about that.
John:
We're going to get to it someday.
Marco:
We're never going to talk about TiVo.
John:
No, we are.
John:
We are going to talk about TiVo.
Marco:
By the time we get to it, people are going to care even less than they do now.
Marco:
And that's pretty impressive, really, when you think about it.
Marco:
I don't care.
Casey:
You will be the only one.
John:
When Apple buys, what the hell is that name?
John:
I keep saying Rovio, but it's not the Angry Birds Company.
John:
I believe so.
John:
When Apple buys them, then all of a sudden we'll care.
Casey:
Well, then we will talk about it.
Casey:
Until then, don't see the point.
Casey:
But to be fair, I have nothing else to talk about, so whatever.
Marco:
I discovered during our show that you can... I don't know when this became possible, but mail.app on the Mac now supports flagging where the flags can be any color of this list of multiple colors.
Casey:
Yeah, it's been that way for a while, I thought.
Casey:
How long have...
Marco:
I've always just hit command shift L or whatever it is to set the flag.
Marco:
I've never known there were multiple flags.
Marco:
Now I can make my crappy email filing system even worse by making all the flagged messages that I never get back to.
Marco:
Now I can make them different colors that I never get back to.
Casey:
And color your shame.
Casey:
Yep.
Casey:
Wow.
Casey:
You know, if you never get back to them, maybe it's not worth flagging them.
John:
yeah that's probably right no that's not that's not how that works he's flagging them because he thinks he has to get back to them and by saying because i failed to they must not have been important but that's not true one of them could be like pick up adam from daycare it's like well i never did it so i guess that one's not important let me unflag it
Marco:
Well, the good thing is when you are as crappy and as slacking as I am with dealing with email and responding to email, most email removes the need to respond to it if you just don't do it for like two weeks.
John:
Yeah.
Marco:
But on the other hand, I'm probably losing a lot of friends and colleagues by doing this.
Marco:
So it's definitely not free.
Casey:
Sending email to Marco is sending an email into a black hole.
Casey:
It's sending it to DevNull.
John:
We'll just come up with a new topic for a future show.
John:
Let me write this in.
John:
What?
John:
What?
John:
Email?
John:
Email handling.
Marco:
Yeah, no one's ever done a podcast on that before.
John:
I know, but it sounds like you guys have very different systems.
John:
I think it's worth talking about.
John:
You're assuming I have a system.
John:
Exactly.
John:
That's right.
John:
This is a whole show.
John:
I'm writing it.
Marco:
Yeah, my collection of hacks is not really something I would describe as a system.
Marco:
It is more just like a gradual progression of shame.
John:
i know wait you're adding it in to the show notes how we handle email future topic screen time for kids is also i don't know if it's still in the document but that's also a topic that i think we should get to that might be a threshold of ancient history but it doesn't say ancient your kids just get older and they get more screens declan's going to be getting into screen time now adam is already into screen time
John:
It's a good topic.
John:
It's a whole show.
Casey:
Yes, because that's what we need to do as a parenting show.
John:
Yes, not parenting.
John:
It's tech-related.
John:
It's tech-related parenting stuff.
Marco:
We should do the parenting show right after doing the email show to really ensure that we get the most emails.
John:
Oh, God.
John:
People love these topics.
John:
Technology is part of their lives, and part of technology, as Casey will tell you, is your feelings about it.
Casey:
Are you still on episode five of Analog?
John:
sure i i think i think i listen to like random random episodes like i'm not i'm not going you know every once in a while there's a random episode that people say i have to listen to so i listen to it but yeah sequentially yeah i listen to all of them because i'm a good friend thank you marco exactly you're the one who cares you have a lot of free time that that too because you're retired or something oh goodness i actually have a
Marco:
Well, you know, I'm going on vacations.
Marco:
No, I'm just... So busy.
Marco:
I mean, I'm busy trying to parallelize an MP3 encoder from the early 2000s.
Marco:
I think it's a sign of not being busy.
Marco:
I think that's what that is.
Marco:
This is also just kind of like a procrastination tactics to avoid me having to dive into the iOS 10 stuff quite yet.
John:
I was going to say, what are you not doing that's making you parallelize the MP3 encoder?
Marco:
I have a lot of big things to do on Overcast for iOS 10.
Marco:
Just the obvious stuff, like rewriting the Watch app for watchOS 3 and looking into all the new widget and notifications stuff everywhere.
Marco:
It's just going to be a lot of work like that and some big projects that even just starting them is kind of daunting.
Marco:
I haven't had a lot of good work time in the last few days, so I've been kind of just chipping away at side projects and administrative work here and there just in the time I have.
John:
You've been too busy in the bouncy house.
Marco:
Yeah.
Marco:
Well, that's one of the side projects is bouncing.
John:
That'll really take time out of your schedule.
John:
Like, sorry, I would be doing development now, but the house is not going to bounce itself.