126: The Web Kind of Happens to You


00:00:00   John, how's the renovation going?

00:00:02   Oh, it's going.

00:00:04   A bunch of stuff is done.

00:00:06   A bunch of stuff still needs to be done.

00:00:08   Sometimes it rains.

00:00:10   [laughter]

00:00:12   This is like a description of life.

00:00:14   Yeah. Basically.

00:00:16   I'm just trying to now, like,

00:00:18   make my peace with the fact

00:00:20   that things are not done to my standards

00:00:22   and it's like, just, you know,

00:00:24   just let it go. It's fine.

00:00:26   Have you met a human being, much less a contractor,

00:00:28   Contractor that can complete anything to your standards like how does that why does that go for you at work?

00:00:32   I allowed myself to do some amount of nagging and some amount of

00:00:36   Asking for things to be redone in a better way, but at a certain point you have to be like look

00:00:39   Just it is what it is

00:00:41   Just go forward

00:00:43   Friday they're doing the front door

00:00:45   I think so that'll that'll be that that involves a lot of

00:00:48   Potential detail work and a lot of potential for me to be disappointed in what ends up happening

00:00:52   But that's the way you look at this is there not a lot of potential for you to be delighted

00:00:56   It's a lot of potential for you to be disappointed.

00:00:59   - Oh yeah, no, forget about delight.

00:01:01   And then finally, like painting at the end.

00:01:03   And I'm hoping, even the painting, I'm like,

00:01:04   "Boy, like, you know, will the prep work

00:01:07   "be done to my satisfaction?"

00:01:08   Almost certainly not.

00:01:09   (laughing)

00:01:10   - The prep work?

00:01:11   You don't even--

00:01:12   - Surface prep, surface prep, like,

00:01:13   'cause they're not stripping all the paint off it.

00:01:15   They just wanna paint the trim and get out of there,

00:01:17   but I want to, you know, anyway, I have demands.

00:01:21   - Really?

00:01:22   I had no idea.

00:01:23   - I mean this in the nicest way.

00:01:24   Like I just, I can't imagine being you.

00:01:28   - No, you would have complaints about some of these things too

00:01:31   because sometimes you make a cut in the wrong spot.

00:01:35   Sometimes something isn't square when it should be.

00:01:37   Sometimes corners don't meet up the way they're supposed to.

00:01:39   Anybody can look at them, can see if that's not right.

00:01:41   This is the question of, does it bother you?

00:01:43   And sometimes you just gotta just let it go

00:01:46   and just be like, all right, whatever.

00:01:48   Well, anyway, I'm very particular.

00:01:52   - How does this work out for you at work?

00:01:53   given that you're so particular,

00:01:55   how do you continue to have coworkers?

00:01:57   Or do you just do everything single handed?

00:01:58   - It's great for programming.

00:01:59   The computer is really particular too.

00:02:01   You tell it to do the wrong thing.

00:02:03   It just does whatever, you know,

00:02:04   you have to really get it exactly right.

00:02:07   'Cause if you don't, it don't work.

00:02:09   So you wanna talk about Safari being the new IE some more?

00:02:14   - Nope.

00:02:15   - There were actually a couple of things about

00:02:16   that I wanted to get to this week.

00:02:17   - Well, you should have put it in the follow up then.

00:02:20   - Hold on.

00:02:22   See how easy it is?

00:02:24   For those who are listening, Marco just typed into the show notes, in the very first entry of the follow-up section, "Safari is the new IE FU."

00:02:35   Yes. You don't need the FU because it's in that section as we're done.

00:02:39   [laughter]

00:02:41   And John has deleted the letters "FU," oh god, and then added a sub-bullet, "Marco Talks."

00:02:48   Yes.

00:02:49   So, since I will blindly read the document, it appears, Marco, that we have some follow-up

00:02:56   with regard to Safari's new IE. Would you like to tell us about that?

00:02:59   >> Yeah, sure. First of all, we did get a good email, actually just like an hour ago,

00:03:03   from somebody named Lauren, who says, "Don't be so dismissive of web applications. I work

00:03:09   in Ocean Freight. My job involves using a wide variety of web apps almost exclusively."

00:03:14   He or she goes on to list a whole bunch of different things that are all like, "I believe

00:03:18   these would be called line of business applications. Is that a fair judgment of all this stuff?

00:03:23   You know, talking about how like, you know, they're all in Windows machines, they use

00:03:28   this like internal tracking app to do all this other stuff and then also talking about

00:03:32   things like, you know, the general public accessing government websites and everything.

00:03:36   So improvements to web functionality are very much appreciated by all this stuff and also

00:03:41   I should not be dismissive of web apps. And I think this is the perfect example of where

00:03:47   cross-platform, you know, write once, run anywhere,

00:03:51   universal accessibility kind of applications

00:03:53   to make perfect sense.

00:03:55   Like any kind of line of business thing where

00:03:58   you are a bank and your employees have to use

00:04:01   a management system from all the different branches

00:04:03   to, you know, conduct business and enter information

00:04:06   from customers and check on systems.

00:04:08   Make that a web app, that's great.

00:04:10   That is, the web is very good at that kind of thing.

00:04:13   And I'm not arguing in, whatever I've been arguing

00:04:16   about this, I'm not arguing that the web apps,

00:04:19   or that the web is useless today,

00:04:23   or that it has no place in the market.

00:04:25   Only that, you know, that native apps have replaced

00:04:28   quite a lot of it, and are probably the new hotness.

00:04:31   You know, in the same way, like, visual basic apps

00:04:34   for a long time were line of business apps,

00:04:36   you know, before web apps were really a big thing.

00:04:38   And it was never like a huge, you know,

00:04:41   massive amount of the software business

00:04:43   in like the parts anyone knew about.

00:04:46   but it was still like there was big business to be had there

00:04:48   but it wasn't, you know, Adobe wasn't writing

00:04:50   Photoshop in Visual Basic.

00:04:52   You know, web apps serve a lot of that same role

00:04:55   where there is a lot of usefulness to them.

00:04:58   There's tons of applications for which

00:05:01   that is the right choice.

00:05:02   But most of those are gonna be boring types of things

00:05:05   that are, you know, internal to companies

00:05:07   or, you know, government websites and stuff like that.

00:05:09   Like it's this kind of stuff that,

00:05:11   there's not a lot of action happening there.

00:05:13   It doesn't get a lot of consumer attention

00:05:15   And if you're launching a new consumer-focused service

00:05:20   or consumer-focused application, that probably

00:05:23   isn't the right choice today.

00:05:24   So that's mostly the angle I was coming from on that.

00:05:26   I think the difference is not so much

00:05:28   that they're boring or anything.

00:05:29   It's the difference of the customers.

00:05:31   So individual persons, like consumers,

00:05:33   they have a different value system

00:05:36   than governments, really big corporations, or whatever.

00:05:40   Because those large entities made up of lots of people,

00:05:44   There is institutional knowledge there.

00:05:47   No one person has to be smarter, wiser, have forethought.

00:05:50   There's a lot of institutional knowledge,

00:05:52   and there's a lot of experience with this type of thing.

00:05:55   If you are a very large company that's

00:05:57   been around for any amount of time,

00:05:58   you've been burned by a vendor, whether it's

00:06:00   like having based your entire company on Visual Basic

00:06:03   and having Microsoft change things around,

00:06:05   or having their priorities changed,

00:06:07   or doing everything in Java and then having Sun

00:06:09   get bought by Oracle.

00:06:10   Every big company has been burned by--

00:06:12   Lotus Notes.

00:06:12   - Yeah, by some proprietary system

00:06:15   owned and controlled by a single company.

00:06:17   And so they kind of,

00:06:18   they act with different set of criteria.

00:06:22   They're like the most important thing to us

00:06:24   is not to get tied down to a single venture,

00:06:27   to sort of be masters of our own destiny,

00:06:29   to not let this thing,

00:06:30   which is supposed to be like a supporting thing

00:06:32   that helps us run our business,

00:06:34   do we really wanna be super tied?

00:06:37   Like you said, let us know it's to IBM.

00:06:38   Are they a trustworthy partner?

00:06:40   Are their priorities aligned with our priorities?

00:06:43   Or are they just trying to sell us something?

00:06:45   Like getting entangled with other big companies

00:06:47   and making your company's fate rely on some other company's

00:06:50   fate is something they want to avoid.

00:06:53   So big companies are very incentivized to find a solution

00:06:56   that they--

00:06:58   that gives them options.

00:07:00   So if you do it on the web, it doesn't mean you're still

00:07:02   going to have to develop.

00:07:03   You're going to have to migrate all your users from one

00:07:05   browser to another.

00:07:06   And things are going to break.

00:07:07   And maybe if you did everything on IE6 with ActiveX controls,

00:07:09   you realize you were actually kind of tying yourself

00:07:11   to Microsoft anyway or whatever.

00:07:12   But that is a very different value system than consumers.

00:07:15   Individual consumers are not making these judgments

00:07:17   like I don't want most of them.

00:07:19   I mean, we know the people who are,

00:07:20   like I don't wanna tie myself to one company

00:07:22   or you know everybody.

00:07:23   The vast majority of individual consumers

00:07:25   just don't think that way.

00:07:26   They're just like, is it easy to use?

00:07:28   Can I understand it?

00:07:29   Is it nice?

00:07:30   Is it convenient?

00:07:31   Is it popular?

00:07:32   Have I heard about it?

00:07:33   So on and so forth.

00:07:34   So that I think is the biggest difference.

00:07:35   And it's not so much that the things they're using

00:07:37   more or less boring than consumer applications because sometimes they're really interesting

00:07:41   and sophisticated depending on like you know the business they're in. and even things like

00:07:46   government like government stuff i guess it's kind of boring by definition but that stuff can

00:07:50   be super important. so much government stuff has moved to the web as opposed to moving to

00:07:55   you know visual basic applications or whatever and i'm sure every parts of the government probably

00:07:59   went through that phase where microsoft did convince them that like oh yeah no if you do this

00:08:03   everyone has a Windows PC and it will be fine and the government learns like that's not a great

00:08:07   plan either right so I think that that heavily influences the value of a solution based on like

00:08:15   what your criteria are and I think Marco is right that like you know all the people who complained

00:08:20   about Marco I don't think anyone denied the overall trend of like you know and you said in

00:08:25   the last show we had the sort of web 2.0 phase where the consumer facing sort of interesting

00:08:30   things that got written about that are interesting to individuals was all a new website, a new

00:08:35   fancy website. And now we're in sort of the app era, all the things that we write about

00:08:39   are apps. And maybe 10 years from now it'll be something else. But like, that is definitely

00:08:43   something that's going through, you know, a transition in a cycle and a trend. But the

00:08:48   web stuff, the value it has to large entities and to anyone who doesn't want to hitch their

00:08:54   star to some other company whose interest may or may not be aligned with them, continues

00:08:58   to be a viable thing and like I said in the last show, I don't think anyone's saying the

00:09:02   web is going to go away.

00:09:04   The web will probably be around as long as email because once something goes out there

00:09:10   that's as widespread as the web and that is as decentralized as the web, lots of people

00:09:14   are incentivized to keep that being a thing.

00:09:18   If suddenly the web was dwindling because all consumers were using apps or whatever,

00:09:23   Many large entities and companies and governments and everything are highly incentivized to

00:09:28   make the web still be a thing because they don't want to be, you know, can you imagine,

00:09:33   especially if Apple's the only game in town, Apple does not want to do what the enterprise

00:09:37   wants to do.

00:09:38   Enterprise needs its own thing.

00:09:39   Yeah, I mean, Apple getting that role would be the worst for everybody, including Apple.

00:09:45   Apple just wouldn't take it.

00:09:46   They'd be like, "Whatever, if you can figure out how to use it."

00:09:49   They do, they have the corporate thing where you can send out, "Hey, you can push this

00:09:52   application to all your employees and IBM wants to make iPad apps for everybody."

00:09:59   They're moving in that direction, but I have to think that it's the same thing all over.

00:10:05   As good as IBM's iPad apps may be, I'm not saying it's a bad solution for everybody.

00:10:11   If you have some factory and they can give all your employees iPads and use this application

00:10:15   to run your business, that's probably good, but boy, it's ticking time bomb.

00:10:20   There's a time limit on that.

00:10:21   At some point, either iPads aren't going to be a thing, Apple's not going to be a thing,

00:10:25   that OS is not going to be a thing, your apps won't run on the new version of the OS, it's

00:10:29   just a matter of time.

00:10:30   Whereas the web, you know, no one's decisions can make your crap stop working immediately.

00:10:38   You just know that I'm signing up to keep my web apps working year after year after

00:10:42   but hopefully that will not be as drastic as like, you know, if IBM totally changes

00:10:47   strategy or the Apple-IBM partnership goes away or Apple decides that they're not making

00:10:51   iPads anymore because they can't sell them and they're doing everything with VR goggles

00:10:54   or whatever.

00:10:55   Right.

00:10:56   And most of these web standards that are, you know, pushing the envelope now are things

00:11:01   that this massive class of applications generally doesn't really need.

00:11:06   I mean, and that isn't to say they can't be made better by them, but much of the time

00:11:12   they actually can't.

00:11:13   - Well, it's a leading indicator.

00:11:14   Like these technologies are not going to be relevant

00:11:17   to the enterprise for many, many years.

00:11:18   But the only way anything ever becomes relevant

00:11:20   to the enterprise is it's been around for many, many years

00:11:22   and everyone's implemented.

00:11:23   And this is the third implementation in every web browser.

00:11:25   And it's like, okay, now finally enterprise.

00:11:28   I mean, it took so long just to get off IE6.

00:11:30   Like for the longest time, I was like,

00:11:30   "If it doesn't work on IE6, I don't care."

00:11:32   And while that was going on,

00:11:34   every other browser was getting better and better and better.

00:11:36   So when IE6 finally went away,

00:11:37   mostly because Microsoft sort of killed it itself

00:11:39   when it realized it has to start moving again,

00:11:42   Everybody else had technologies that had been worked out

00:11:46   in the market for so many years, that by the time

00:11:49   the enterprise woke up and installed IE7 and IE8,

00:11:52   or maybe gave people Chrome or Firefox or something,

00:11:55   like wow, look at all this great new web tech,

00:11:57   where did this come from?

00:11:57   Well, it had been developing the whole time

00:11:59   when you were stuck in IE6.

00:12:00   So I think all this web tech, you think,

00:12:03   oh, it's not relevant to current enterprise apps.

00:12:05   It's gonna be relevant to enterprise apps in five years

00:12:08   if any of these things actually gain widespread adoption.

00:12:11   So that's sort of true.

00:12:12   So I'm glad you brought up IE6, because as someone who writes websites for other companies

00:12:17   for a living, I don't know if Marco's characterization of line of business apps on the web earlier

00:12:24   was 100% the way I see it.

00:12:27   The reason I see companies deploying line of business apps to the web is because of

00:12:32   easy deployment, not necessarily because the technology of the web in and of itself is

00:12:37   superior.

00:12:39   And so I cannot tell you the amount of times that, up until very recently, like you were

00:12:43   saying John, we would be asked to do a website, either an internal like intranet or sometimes

00:12:49   a public website, and we would ask, "Okay, well what are the browser requirements?"

00:12:53   Well, the most modern version of Firefox plus one back, the most modern version of Chrome

00:13:00   plus one back, and the most modern version of Safari plus one back, oh, and all the way

00:13:05   back to IE6.

00:13:06   What?

00:13:07   Why?

00:13:08   Well, you don't understand. All of our computers, our standard build for all of our computers,

00:13:14   is still rocking IE6, because our security department has an approved IE7 through IE14

00:13:19   or whatever they're on now. So yeah, you have to make this work on IE6 too. What? So

00:13:24   I think the reason they do this is because they want to have a way, businesses want to

00:13:29   have a way to very easily deploy software to their users, particularly line of business

00:13:34   software. And so the easiest way to deploy that software is to not really deploy it at all and

00:13:39   just put it on a web server and tell people go to this URL. And thus, that's why we were always

00:13:45   targeting IE6 for the longest time is because all of these standard builds on all these computers

00:13:50   were on ancient versions of IE and typically Windows XP, sometimes even today. And so because

00:13:56   of that, we would have to support these old versions of IE. And all of that was about

00:14:02   deployment. It's not about being available everywhere in the sense that the web is available

00:14:07   everywhere. That probably didn't make sense. What I'm saying is it was just about getting

00:14:12   this software onto their users' machines, and the easiest way to do that is to put it

00:14:17   on the web and target whatever browser they're using. That's why all these old government

00:14:21   websites, like you were saying, Jon, all target IE6 is because that's what the government

00:14:25   was using, and why all of these old websites were using ActiveX controls. Again, you referred

00:14:30   to that briefly, Jon. All of this stuff was because the only thing that these companies

00:14:35   cared about was the stuff that they themselves were using. And so there was no incentive

00:14:40   to make it better for anyone else, except very recently when they started to realize,

00:14:48   "Well, having a really crappy website, that's kind of a detriment. We should really pay

00:14:52   attention to this stuff."

00:14:53   **Matt Stauffer:** Yeah, they move slower, but I'm assuming right now you see far fewer

00:14:58   instances of IE6 just because Microsoft is moving on.

00:15:02   They're killing it as best they can.

00:15:04   They're force installing newer versions of IE, they're stopping support of OSes that

00:15:07   could run IE, hell they're trying to kill 7 and 8 and 9 as fast as they can as well.

00:15:11   So Microsoft is moving again and people are going to have to catch up.

00:15:15   But yeah, it's the same reason we do all the igloo ads.

00:15:18   Internet software, frequently companies are not incentivized to make their internet good.

00:15:22   So it just moves slower.

00:15:23   It doesn't mean that it's never going to get better, it doesn't mean that like, it just

00:15:26   means that for a really long time everyone else's web apps are going to be way better

00:15:30   than yours because no one cares about the intranet. But at a certain point it just becomes

00:15:33   embarrassing and ridiculous and some executive somewhere is going to realize they can get

00:15:39   a lot of points by making everyone in the company better by bringing their intranet

00:15:44   site or their line of business web application up to the standards of five years ago or ten

00:15:48   years ago and everyone will be like, "Wow, this is so much better!" Because it will be

00:15:51   because they'll stop using ActiveX controls and frames and whatever the hell they're using

00:15:55   to do their intranet site.

00:15:57   So that's a slow motion type of thing, but they could just as easily be using, be deploying

00:16:03   everything as Java applets or maybe because they do control both ends of it, they can

00:16:08   do all sorts of crazy things.

00:16:10   Like they could do a Citrix thing and run Windows apps that you can access from everywhere.

00:16:14   Like enterprises have been known to do many, because they control both ends.

00:16:19   It's not like they have to say, "We just need this to be available everywhere and easy to

00:16:22   deploy."

00:16:23   the companies will sell you that are, you know,

00:16:26   don't have to install any software.

00:16:27   People just click this icon on their desktop

00:16:28   and they can get your app

00:16:29   and it's automatically up to date.

00:16:30   It doesn't have to be the web,

00:16:32   but I like to think that enough companies have been burned

00:16:35   by the proprietary solutions now

00:16:36   that the web has a certain appeal

00:16:38   that the other solutions don't.

00:16:39   And even going as far as say the web

00:16:42   and also nothing like ActiveX in the web.

00:16:45   Like we're not gonna do everything in Flash.

00:16:46   We're not gonna do everything in Adobe Air.

00:16:47   We're not gonna do it in ActiveX

00:16:49   because we've learned that that is a mistake.

00:16:51   We're just going to stick to the plain old web.

00:16:54   It's good enough for everything else we do on the web

00:16:58   as consumers.

00:16:58   Our site will be crappier.

00:16:59   It will be older.

00:17:00   It will be uglier.

00:17:02   But it won't be based on anything

00:17:04   that we have to pay like an annual fee

00:17:06   to some other enterprise company for,

00:17:08   unless you're running everything off IAS, then I'm sorry.

00:17:11   That's my every day, Jon.

00:17:13   Ask me what our intranet is at our company that,

00:17:17   among other things, does intranets for other companies.

00:17:20   It's got to be SharePoint, right?

00:17:21   - What version, Jon?

00:17:22   - Oh, I have no idea.

00:17:23   I don't try not to go to our SharePoints.

00:17:25   I didn't even know there were versions.

00:17:27   Like, is it the doing years for SharePoint, like 2013?

00:17:30   - Oh, keep going.

00:17:31   - I don't know how old it goes back.

00:17:33   - Yeah, well, it goes back to 2007,

00:17:35   but we are mostly on 2010.

00:17:37   This is in the year 2015.

00:17:40   - That's pretty good, I think.

00:17:41   - Is it usually, by Microsoft standards,

00:17:44   was the version 2010 actually introduced in 2009?

00:17:46   - It's like car model years, yeah.

00:17:47   - I think that's true.

00:17:49   I don't remember off the top of my head.

00:17:50   totally understand what you're asking, I don't recall. But I do believe 2013 was introduced

00:17:55   in 2013. And as with all things, you know, so SharePoint 2007 was, I think that having

00:18:03   my nails ripped out would have been a more pleasurable experience than coding for SharePoint

00:18:08   2007. SharePoint 2010, in three years, made it just barely livable enough that I didn't

00:18:16   immediately quit my job when they said,

00:18:18   "Oh, you have a SharePoint 2010 project to do."

00:18:21   And supposedly 2013 is decent,

00:18:23   so I hear from the people that do SharePoint all the time.

00:18:29   - Well, it's like desktop Linux.

00:18:30   It's always getting better.

00:18:31   - It's always getting better.

00:18:33   - Now, our first sponsor this week,

00:18:34   I am actually serious, this is not a joke,

00:18:37   our first sponsor this week is Igloo.

00:18:39   - Nice.

00:18:40   - Igloo is an internet you will actually like.

00:18:43   Igloo lets you share news, organize your files,

00:18:46   coordinate calendars and manage projects all in one place.

00:18:49   And that place is not SharePoint.

00:18:52   igloosoftware.com/atp.

00:18:54   Now, you are probably at your job, you the public,

00:18:58   I know Casey and John, this is true for you,

00:18:59   your intranet is probably something terrible.

00:19:01   It's probably built on SharePoint or something like that.

00:19:04   The world of intranets out there is pretty rough,

00:19:07   except for igloo.

00:19:08   Igloo really takes the best of the modern consumer

00:19:12   web technologies and brings them into a corporate safe internet private environment. And so

00:19:19   you can have things like Twitter like microblogging and annotations on coordinated document editing

00:19:26   and stuff like that. You can do all this stuff right inside of your internet in your company

00:19:30   privately for you. They have a huge upgrade recently that revolves around document tracking,

00:19:37   how you interact with documents, how you gather feedback, you can track changes, comment on

00:19:42   people stuff. They can get, now somebody wrote in, last time I talked about read receipts

00:19:48   for documents and somebody said it's supposed to be read receipts. Is that, which one am

00:19:53   I supposed to be saying here?

00:19:54   - I think I would have said read, but I flip-flopped back and forth.

00:19:57   - Okay, well, whether it's read receipts or read receipts, Igloo offers read read receipts

00:20:04   on documents so that you can do things like you can make sure that certain recipients

00:20:09   have read and acknowledged new policies or disclosures, any kind of, you know, handbook

00:20:14   kind of thing. This is often useful for HR purposes, regulatory purposes, stuff like

00:20:19   that. All these things that companies that are real companies, unlike what I do, have

00:20:22   to actually deal with. And you can also just, you can do an amazing amount of functionality

00:20:27   with Igloo. Things like, you know, as I said, viewing annotating documents, all of that

00:20:31   is built on HTML5. There is no Flash, it's not Java, there's no plug-ins, it is all HTML5.

00:20:38   And so this allows you to work with all that functionality of viewing, editing Office documents,

00:20:42   stuff like that, all the tracking, all the microblogging. All of that works on mobile

00:20:46   devices, on every device. So they even make it work on Blackberries. It works on everything.

00:20:51   And everything is fully responsive. So all the layouts work on any screen size. New screens

00:20:57   come out, it already works. And they also, you know, you can customize your Igloo intranet

00:21:01   to give it whatever design you want. If the marketing department wants their own color

00:21:06   scheme they can have it. It does all that for you. Sign up for a free trial today at

00:21:11   igloosoftware.com/atp. And if you have a group that is 10 or fewer people, it's actually

00:21:18   free, like indefinitely, forever. Give it a try. There's also a free trial. So even

00:21:23   if you have a bigger group, give it a try. Free trial, no reason not to. If your company

00:21:27   has a legacy internet that looks like it was built in the 90s or in "2010", you should

00:21:32   definitely give igloo a try. igloosoftware.com/atp.

00:21:36   Thanks a lot to igloo for sponsoring once again.

00:21:39   - And for all the people who think this was planned,

00:21:41   like we led into this with the internet talk,

00:21:43   you do not understand how the show works.

00:21:45   - No. (laughing)

00:21:47   - We are not that deliberate.

00:21:49   - You vastly overestimate our organization.

00:21:52   - So speaking of organization,

00:21:53   one more thing I wanted to talk about.

00:21:54   Websites, I don't think deserve

00:21:57   all of the abilities of native apps.

00:22:00   for one key reason.

00:22:02   There is no app review for websites,

00:22:04   and you frequently visit websites accidentally

00:22:08   or without opting into certain behavior.

00:22:11   The web kind of happens to you as you're browsing around.

00:22:14   You click a link, you don't know where it's going.

00:22:16   And so this link opens up,

00:22:18   and whatever page you open is now executing code

00:22:21   on your computer, hopefully not native code.

00:22:23   Whatever websites can do,

00:22:27   they can do to people who didn't opt in,

00:22:30   who didn't even choose, you know what,

00:22:32   I wanna go to this website,

00:22:33   'cause they could just be following a link,

00:22:35   or it could even be a script running

00:22:37   on somebody else's page,

00:22:38   or an iframe embedded on someone else's page.

00:22:40   So there's all these considerations.

00:22:42   You have to have way tighter security for web stuff,

00:22:46   and you have to have much stronger restrictions.

00:22:49   And in an environment like we have in iOS,

00:22:51   where apps go through this review process,

00:22:53   which I know is controversial,

00:22:55   but I think even though it is imperfect,

00:22:58   I think it is definitely a net win.

00:23:00   Apps go through this review process

00:23:02   and that's great for consumers

00:23:05   because so much crap we are protected from.

00:23:08   - Don't you think the iOS philosophy is the reverse of that?

00:23:11   It's the idea that apps should have

00:23:15   the same restrictions as websites,

00:23:17   not that websites should be more restricted than apps

00:23:19   because it used to be apps can do anything

00:23:20   and their websites are held in their little box.

00:23:23   And the iOS innovation is, let's put a box around apps too.

00:23:26   They're sandboxed, they can't see the things,

00:23:28   they can't get your little location data unless they ask,

00:23:30   they have to have entitlements, and the review process

00:23:32   is part of that or whatever.

00:23:33   It seems almost like they're taking apps

00:23:35   and putting them in a box, and websites are always in a box,

00:23:38   and the websites are trying to get out of their box,

00:23:39   and the apps, I don't know, are they happy

00:23:41   in their little box?

00:23:41   It seems like they're trying to make their box bigger too.

00:23:43   But they might meet in the middle,

00:23:45   where you can imagine them having a similar set

00:23:48   of capabilities with a similar set of restrictions

00:23:50   in that like an app can't get, I mean, right now,

00:23:52   For example a website can't get your location data without asking because that's something they built into Safari if they ever did enable any

00:23:57   Of these like oh you could spawn background jobs or you know the local storage it pops up a dialogue

00:24:01   This is not a perfect system

00:24:03   It's not as fancy as apps, but it took a long time for us to even get like the whole you know managing app

00:24:08   Notifications and apps storage and which apps can use my location when I'm in the app when I'm not in the app

00:24:13   It seems like the controls for both of these things for both the web and the apps are

00:24:18   Evolving that apps are way ahead with the sophistication of the controls on stuff

00:24:21   And that's what you brought in last show

00:24:23   Like you can't just let a web app do this because they're just the controls aren't in place

00:24:26   - there's no place you can go in settings to decide which website can do what and whatever but already the websites are

00:24:32   Pretty well confined and that was one of the complaints like oh, I don't want to pop up a dialogue

00:24:36   Well apps don't want to pop up dialogues when they ask for location - but guess what they have to like

00:24:39   So I think I think we're figuring out

00:24:41   You know, even though you opt in to downloading apps

00:24:45   They're figuring out how to contain software.

00:24:48   That's actually a topic we ever get to in the El Capitan root list stuff.

00:24:51   How to contain software in a safe way.

00:24:53   And the web started out well, much more contained than native apps.

00:24:58   And at this point, the sophistication of how to contain apps on iOS is well ahead of where

00:25:03   it is for web apps.

00:25:05   Yeah.

00:25:06   Also, one issue that we heard from a few people on, which is worth discussing, is browser

00:25:12   choice on iOS.

00:25:14   And so this is a bit of a multifaceted issue.

00:25:17   There's two main problems that people have.

00:25:20   You know, on the desktop, you can write a browser

00:25:23   using any rendering engine you want,

00:25:25   and you can ship it to people, and that's it.

00:25:27   On iOS, that is actually forbidden.

00:25:29   On iOS, you are not allowed to render web content

00:25:34   with anything other than the built-in WebKit.

00:25:37   And so, Chrome, for instance, I mean, let's be honest,

00:25:41   when everybody says we want browser traction on iOS,

00:25:43   but they're really saying that they want Chrome to be better on iOS. And there are a lot of

00:25:47   things like if Safari drags its feet on implementing some new standard, chances are Chrome and

00:25:52   iOS also won't have it because it's that part of the rendering engine that it's sharing

00:25:56   from the system. So that's one problem. The other problem is that on the desktop you can

00:26:01   set your default browser or your default mail client or your default calendar app. iOS does

00:26:06   not have the concept of default apps for these types of things. So in iOS the default app

00:26:12   is always the built-in system app for those kind of roles. And so you can't say, "If I

00:26:18   click a link in an email message, open it up in Chrome automatically." You can't do

00:26:23   that. It'll always open up in the system default browser of Safari first. And anything that

00:26:30   just calls open URL on a random web URL, same thing. It'll just open up in Safari, even

00:26:34   if you use Chrome.

00:26:35   That's one of the things that we didn't get in iOS 8 that we're still waiting for, by

00:26:38   the way.

00:26:39   - Yeah, and so I'm curious, like, you know,

00:26:42   on the desktop, we have that system,

00:26:44   and it pretty much works fine.

00:26:46   I'm curious, though, what would be the reasons on iOS

00:26:50   to never bring that over?

00:26:51   Like, at this point, it seemed like that might be

00:26:54   a conscious decision that they're just not doing,

00:26:57   and I can think of a few reasons,

00:26:58   from Apple's point of view, why not.

00:27:00   One of the biggest to me, I mean, you know,

00:27:02   you can argue things like security and everything,

00:27:04   those are weaker arguments once we have proper

00:27:06   technological sandboxing in place, as we just discussed,

00:27:09   But what about for the web rendering, like JavaScript?

00:27:12   I think security is still a valid reason for JavaScript

00:27:15   because of the incredible contortions they go through

00:27:17   to get plain old JavaScript to run quickly

00:27:19   with the whole just-in-time compilers.

00:27:20   And they basically are turning it into native code.

00:27:23   And if you can exploit that engine--

00:27:26   because like you said, people can be redirected to websites.

00:27:29   And if someone finds an exploit where they can somehow

00:27:33   send a payload in a web page that confuses the JavaScript

00:27:37   engine in some third-party browser and causes code execution.

00:27:41   Or they basically just have to say, like they do now, third-party web engine, you can make

00:27:46   your own web browser fine, but you can't do what we do with our JavaScript engine.

00:27:49   So basically you're dooming every JavaScript engine to be slow, except for ours.

00:27:53   We get to do the fancy potentially insecure thing, but there's just one of that and we

00:27:57   fix the bugs and no one else can make one.

00:27:59   In fact, they don't even let you do interpreters, right, except for Lua or whatever, or games.

00:28:04   So I think security is still potentially an issue for stupid, slow JavaScript that they

00:28:09   try to make fast, so your choice is—like I said, I don't think you're even allowed

00:28:12   to have an interpreter.

00:28:13   I don't remember the exact rules.

00:28:14   But I think security is still a reasonable answer for the web browser.

00:28:18   But I would set aside the web browser and pick my pet peeve.

00:28:21   It's like, why can't I pick a different default email application?

00:28:24   I don't want to use Apple Mail.

00:28:25   I don't want to enter any accounts there and get every single application when it wants

00:28:28   to send mail, sends me to that account.

00:28:30   Email does not seem like something that needs a just-in-time compiler or some native—it's

00:28:33   It's just an app.

00:28:34   Just define a protocol, let people have a third-party mail application.

00:28:37   Right.

00:28:38   Well, for the email side, you lose the security reasons.

00:28:41   And I think your security reason there is very good.

00:28:43   And by the way, there's this huge misconception that Chrome is not allowed to be as fast as

00:28:47   Safari.

00:28:48   That used to be the case.

00:28:49   That stopped being the case a year ago, at least, whenever WKWebView was.

00:28:53   I think a year ago.

00:28:54   Anyway.

00:28:55   Yeah, but it has to use Apple's.

00:28:56   At that point, it's just using Apple's engine straight up.

00:28:58   Right.

00:28:59   Well, it always was.

00:29:00   Just before, there was only UIWebView, which wouldn't do the JavaScript thing because it

00:29:02   was in process. WKWebView is way more restricted from what the app can access. Like, if you

00:29:09   have a font loaded in your app, UIWebView will show it. WKWebView won't because it doesn't

00:29:15   have access because it's running out of process. That's why it's allowing you to have that

00:29:20   native JavaScript compilation because all the stuff that's happening in that WebView

00:29:23   is not happening in your app's process.

00:29:25   And because parsing fonts that have illegal values in them is apparently a terrible security

00:29:29   hole, I'm going to find a good--did you see that article today?

00:29:32   - I just saw the headline.

00:29:33   - Oh, that's so bad.

00:29:35   - So, but you know, for mail clients,

00:29:37   they don't have that kind of thing, you're right.

00:29:38   There is a cost with mail clients of integration.

00:29:42   So one of the iOS APIs is to show

00:29:46   a mail compose sheet in an app.

00:29:48   So to put up a sheet, when somebody says shared,

00:29:50   shared a mail, whatever, put up a sheet

00:29:51   that you can pre-populate the subject,

00:29:54   you can add attachments, you can do all this stuff

00:29:56   that you can do some of that with a mail too,

00:29:58   like the subject, but you can't do much

00:30:01   with the attachments and body and stuff like that

00:30:03   very easily with mailto URL.

00:30:05   So like some of that they actually wouldn't be able to do

00:30:08   if there was a choice.

00:30:10   So you can see areas like that where there is like some

00:30:15   reason where you can say well for integration reasons

00:30:18   it would kind of suck if the system API would only work

00:30:23   if their default mail client was mail app.

00:30:26   - Well they would have to define like a, you know,

00:30:28   to be conformant, you know, suitable.

00:30:31   Like they're not good at this.

00:30:33   It's just like the same pipe dream is saying,

00:30:35   I would like to replace the Finder.

00:30:36   I just tell me what sort of Apple events

00:30:38   I have to respond to,

00:30:39   to be a conforming Finder replacement, you know?

00:30:41   And like with an email app, maybe it's much more limited.

00:30:44   Like, but just, you could, you could dictate,

00:30:46   you could pretty well dictate, please, you know,

00:30:50   respond to these messages, support this API,

00:30:52   support these URL port,

00:30:53   like whatever the Apple wants to do

00:30:55   to be a full fledged mail app replacement,

00:30:57   you know mail applications would conform to it

00:31:00   'cause it shouldn't be too onerous.

00:31:02   But you gotta leave something for iOS 15 or whatever.

00:31:06   They did a lot of stuff in iOS 8

00:31:08   that we thought they wouldn't do.

00:31:09   And I think we were so dazzled that no one really cared

00:31:12   that they didn't do the let you pick your default app.

00:31:14   - Right, and they might do that in the future.

00:31:15   I mean, you said they certainly could,

00:31:17   but the more I look at this,

00:31:19   there's also, there's issues of,

00:31:22   first of all, there's competitive issues.

00:31:23   Obviously, when people say,

00:31:25   I wanna choose my own email app,

00:31:27   they're not looking to choose Eudora.

00:31:29   They're looking to choose Gmail.

00:31:30   And when they say my own browser, they're looking at Chrome.

00:31:34   This is all Google stuff they wanna switch to.

00:31:37   Then that does not, I'm sure that is not lost on Apple.

00:31:39   - It could be Outlook.

00:31:40   Like Microsoft bought Outlook.

00:31:42   - Oh, that's true.

00:31:43   - Whatever the app used to be.

00:31:45   And I just read an interview, they were saying,

00:31:47   Outlook for iOS is the best Gmail client.

00:31:49   And it may very well be because Google's Gmail client

00:31:52   for iOS is not that great.

00:31:53   But because, again, because email is more or less

00:31:55   an open protocol and because so far Gmail supports

00:31:58   IMAP and POP, there is some, and so does Apple

00:32:02   for that matter, that's why you can have

00:32:03   a different email client, because email is an open protocol

00:32:05   and you don't need to, it's not like Exchange,

00:32:07   well even Exchange, Apple has Exchange support, sort of.

00:32:10   It's like we're almost there with the mail apps.

00:32:13   I don't have to use Apple's applications,

00:32:15   just that every time I tap a link I go to Apple's.

00:32:17   - Well and now, the great thing is, before,

00:32:20   when apps were all writing their own share sheets

00:32:22   and we got this mail compose view controller,

00:32:24   I don't know, iOS 5 maybe?

00:32:26   You know, the app had to write, okay,

00:32:29   here's a shared email option,

00:32:31   use the built-in system thing that has all these features,

00:32:33   all this functionality.

00:32:34   Now, everyone's just switching to the default share sheet,

00:32:37   which includes mail, and can also include

00:32:39   any other mail app that you have installed,

00:32:41   if they have an extension.

00:32:43   So now, the need for choosing your own mail app

00:32:47   is going down as more apps implement these share sheets,

00:32:51   the system share sheet,

00:32:53   'Cause now you can just plug into that from any app.

00:32:57   - Yeah, you still have like mail tool links.

00:32:59   I don't know, do mail tool links even work on web pages?

00:33:01   But anyway, yeah, the share sheet does help.

00:33:04   It definitely does, but there's still many things

00:33:06   in the system, including parts of Apple's thing

00:33:08   that will chuck you into the mail app,

00:33:09   'cause it's like, oh, you wanna send an email?

00:33:11   And you know, share sheet is a more democratic process,

00:33:16   that's true, if only you would remember

00:33:17   where the hell I dragged the icons in.

00:33:19   (laughing)

00:33:20   - Did they fix that in nine?

00:33:21   you've run out of the beta, you're too responsible.

00:33:23   - Here's the thing about that,

00:33:25   that the whole, like, it doesn't take much

00:33:27   to make people give up trying to arrange crap.

00:33:29   Like, you know, the whole spatial thing.

00:33:30   Like if Springboard didn't remember where you put your icons

00:33:32   no one would arrange their home screens,

00:33:34   but it does, so you do.

00:33:35   ShareSheet was supposed to remember where you put things

00:33:38   and everyone dragged them around

00:33:40   when they first got the ability to do it

00:33:41   and then realized it doesn't keep track of what you do

00:33:42   and then everyone just gave up.

00:33:43   And I haven't tried it again either.

00:33:44   Like I've just given up, right?

00:33:46   And so maybe when nine comes out,

00:33:47   I'll give it one more try,

00:33:48   but it's very easy to be discouraged.

00:33:50   Like I spent time thinking about what should be

00:33:52   the first, second, and third one in the share sheet,

00:33:55   and then I realized the next time it comes up,

00:33:56   it scrambled again.

00:33:57   I'm never gonna try again.

00:33:58   It's like, well, that was a waste of my time.

00:34:01   - Yeah.

00:34:02   - All right, tell us about TRIM.

00:34:05   - Finally, our first real follow-up topic.

00:34:07   - Yeah, why does follow-up take so long?

00:34:09   I know Marco put things in follow-up.

00:34:11   - That's what happens.

00:34:12   - Eric wrote in to tell us about,

00:34:14   we're talking about that, TRIM on SSDs.

00:34:16   So there's another way that SSDs can deal

00:34:20   with not knowing which space has been freed up

00:34:23   and knowing which things can be erased.

00:34:25   And that's over provisioning.

00:34:27   Over provisioning is something I think all SSDs do

00:34:29   to some degree.

00:34:30   When you buy an SSD that's like 500 gigs,

00:34:32   you don't get a bunch of chips in there that are 500 gigs,

00:34:35   you get more than that.

00:34:36   That's for a variety of reasons.

00:34:37   One, the cells wear out if you use them a lot,

00:34:39   so you have to have some extras left over

00:34:41   because when you wear out a section of them,

00:34:42   it's like, all right, well those are worn out,

00:34:44   but I have these new ones here that are fresh.

00:34:46   And part of what the firm are supposed to be doing

00:34:48   wear leveling to try to wear them out evenly or whatever.

00:34:50   But the other thing you can do with over-provisioning, especially if it's massively over-provisioned,

00:34:54   like 20 or 30% over-provisioned, like the "enterprise class" SSDs are, is that you can

00:34:59   use that empty space and then when the drive is idle, it can just sort of shift things

00:35:04   around and compact them.

00:35:06   And as it shifts things around and compacts them, it makes larger regions where it knows

00:35:09   that there's nothing because it has moved everything from that space into another space.

00:35:12   Like even when the drive is "full", there's still this empty block where you can move

00:35:16   things around.

00:35:17   that empty block you can erase because you know you just moved everything out

00:35:21   of it and then that's the whole point of trim like we didn't get into this we got

00:35:24   into this in the first time we talked about trim but I realized we talked

00:35:26   about trim like two times and haven't gone over this like it is slower to

00:35:29   write to an area of an SSD that has that has to be erased first that you don't

00:35:34   know it's not already cleared right so it's much faster to say oh this is

00:35:39   already cleared I can write to it directly instead of having to copy

00:35:42   everything out clear it write everything back plus the little part that you added

00:35:45   or whatever. So if you have this big empty region and if during idle time your SSD can shift crap around to make sure that big empty

00:35:51   region is always there and it can clear that empty region so it knows if some new data comes in it can write it directly to

00:35:56   that empty region without reading it in and writing it back out or anything

00:36:00   that is a win. So that is a potential other way to get to deal with not having trim is just just have way more

00:36:09   Flash memory than you need and then hope you have enough idle time

00:36:14   For the firmware to shift stuff around to keep a large section of ready-to-go

00:36:18   area where you can write too quickly and

00:36:21   Tell us about your egregious error about half-life. Yeah, if I thought about a few more seconds, I would remember

00:36:27   They ported it to the source engine a while back like

00:36:30   In my mind, it's like well, that's not the real half life

00:36:33   That's just when they ported to the source engine like the real one was you don't want the original game

00:36:37   looks worse. Anyway, Half-Life is available for the Mac on the source engine. You can

00:36:42   buy it on Steam. We'll put a link in the show notes. Go ahead and play it now. Fifteen

00:36:48   years after we wanted to play it.

00:36:51   I played Counter-Strike, the original Counter-Strike, briefly, and I remember thinking it was really

00:36:56   hard. And I know the whole of the internet is now judging me and my inability to play

00:37:00   games. That's fine. But I played an inordinate amount of Counter-Strike when I was in college.

00:37:07   I played a crap load of Counter-Strike.

00:37:09   I loved that game.

00:37:11   - It's a good game.

00:37:12   You can play Team Fortress 2 now.

00:37:14   It's the, well, is it the spiritual successor?

00:37:16   It's a successor, kind of, sort of.

00:37:18   (laughing)

00:37:19   - I even saw, even that, like I would do the weird way

00:37:22   to play Counter-Strike.

00:37:23   Like I would just buy like the one really weird gun,

00:37:27   like the scout sniper rifle that was terrible,

00:37:30   and just try to get a kill with it,

00:37:31   because that was harder and more interesting to me

00:37:34   than just mowing everybody down.

00:37:35   I don't know. I'm a terrible gamer.

00:37:37   Not as bad as I am, but that's okay.

00:37:39   Mark will be rocking the Nolan and Beyond in Destiny.

00:37:41   I don't...

00:37:43   You keep tweeting these Destiny things and...

00:37:45   It sounds like it's all made up, doesn't it?

00:37:47   There's bands from Canada that Marlin talks about.

00:37:49   Yeah, like it looks like

00:37:51   a Markov generator

00:37:53   makes these tweets. I have no idea

00:37:55   what you're talking about.

00:37:57   All these words, it's like... I think that's a sentence.

00:37:59   And I think it's English.

00:38:01   It's great for Twitter because

00:38:03   Bungee makes up all these basically proper nouns, makes a ton of proper nouns

00:38:07   that are very compact, that everyone knows what you're talking about, and that

00:38:10   abbreviations of them are also clear. But to other people those proper nouns mean

00:38:15   nothing because they're just made up words, so it is a high percentage of

00:38:18   made-up words per sentence.

00:38:21   Yeah, when you tweet about these things I

00:38:23   wonder if like my brain is blue screen of deathing or something because I

00:38:28   I cannot compute what you have talked about."

00:38:31   And then I'm like, "What thing has happened on the internet that I'm not privy to?"

00:38:35   And then I get all concerned that there's something important that I'm missing and,

00:38:38   "Oh no, it's not important, it's just Destiny."

00:38:40   Yeah, there is a potential that Tiff could get into Destiny.

00:38:43   I know it didn't take when I showed it to her when she was over here, but at some point

00:38:46   she could wander over into it on her own, like with no one, you know, putting it in

00:38:49   her face and just try it.

00:38:52   It has the capacity to suck you in.

00:38:53   I don't know if she's susceptible to it, but it could happen.

00:38:55   Well, we don't even have a PS4.

00:38:57   - Well, that can happen in two seconds, you kidding?

00:38:59   (laughing)

00:39:01   PS4 could be on its way to your house right now.

00:39:02   You can do Amazon same day delivery.

00:39:04   - Wow.

00:39:05   So anyway, our second sponsor this week is MailRoute.

00:39:09   So MailRoute, what they are is they are basically

00:39:12   a mail proxy service.

00:39:14   So you point your MX record of your domain,

00:39:17   you point that at MailRoute servers.

00:39:19   They filter out spam and viruses,

00:39:21   and then they deliver to your real mail server

00:39:24   the filtered out mail.

00:39:25   And so I have, oh man, I have used email services

00:39:30   for so long, I've tried my own spam filtering solutions,

00:39:34   I've tried using fast mails built in ones,

00:39:36   I use fast mails as my host, I once set up my own server

00:39:40   with Spam Assassin and stuff like that.

00:39:42   Not only were none of those as easy as mail route,

00:39:44   none of them were as effective as mail route.

00:39:46   So to give you some idea of how effective this is,

00:39:49   last week I got a spam message, and I noticed.

00:39:53   (laughing)

00:39:54   because it was so unusual to get any spam.

00:39:58   It's not like you still get three or four a day.

00:40:01   I get zero a day.

00:40:02   It was surprising and noticeable

00:40:05   that I got one spam message that got through.

00:40:08   That's how good mail route is.

00:40:09   And by the way, I haven't seen one since.

00:40:11   So I really am incredibly impressed

00:40:16   at how good mail route is.

00:40:17   I've always heard from Gmail people,

00:40:20   I'm looking at you two,

00:40:21   I've always heard from Gmail people

00:40:23   They have the best spam filtering and--

00:40:25   - Oh no, you never heard that from me.

00:40:26   It's good, but it ain't the best.

00:40:28   - Honestly, I can say this is the best.

00:40:29   I mean, granted I haven't seen Gmail,

00:40:32   but like how do you beat zero?

00:40:34   Like that's really hard to beat.

00:40:36   Well excuse me, now it's one.

00:40:37   One spam message in months.

00:40:40   So really, I can't say enough good things about mail route.

00:40:44   If you are like me and don't wanna give Google

00:40:46   all of your mail and information

00:40:50   and kind of buy into that whole ecosystem,

00:40:51   if you prefer to be non-Google for that like I do.

00:40:54   Like I use Fastmail, you can use any IMAP post you want.

00:40:58   The great thing is with MailRoute,

00:40:59   you can bring world-class spam filtering service

00:41:02   to any email host.

00:41:04   Any domain you control, any domain you own

00:41:07   that you get email on, you can put MailRoute in front of it

00:41:10   and really eliminate spam.

00:41:11   It's incredible how well it works.

00:41:13   It's very customizable too.

00:41:15   If you wanna be less aggressive with your filtering.

00:41:17   And so I have, so they have a thing

00:41:19   they will email you this digest every couple of days or whatever you set it to of messages

00:41:25   they think are probably spam that they have withheld from you but that they are not quite

00:41:29   sure about. And there's just little links you can click to say, "All right, this is

00:41:32   fine. This is fine if they catch anything in there." Almost nothing legitimate ever

00:41:37   gets caught in there for me. And it's great to have it all summarized in one email that

00:41:41   just gets sent out once every couple of days so that way I know I'm really not missing

00:41:45   anything that's even close to legitimate if it is important, but I don't have to go through

00:41:49   those constantly every day. And if it does catch something, you just click the little

00:41:53   whitelist link and it's never a problem again. So it's great. I am very impressed with MailRout.

00:41:57   It is easy to set up, reliable, and trusted by the largest universities and corporations

00:42:02   as well as a bunch of individuals like me. They support LDAP, Active Directory, TLS,

00:42:07   mail bagging, outbound relay, everything you'd want from anybody handling your email. So

00:42:12   to the remove spam from your life for good,

00:42:14   go to mailroute.net/ATP for a free trial.

00:42:18   And if you use this link, mailroute.net/ATP,

00:42:21   you will get 10% off the lifetime of your account.

00:42:24   So 10% off not just the first month or year, whatever,

00:42:27   every month, 10% off for the lifetime of your account.

00:42:30   Go to mailroute.net/ATP.

00:42:33   Thanks a lot to MailRoute.

00:42:34   Remove spam and viruses from your life for good.

00:42:37   - All right, so now that Jon has moved away

00:42:41   from his beloved iPod Touch because he thought that Apple had abandoned him in the same way

00:42:48   they have abandoned him with his god-awful file system.

00:42:52   Ding.

00:42:53   It turns out that things have changed.

00:42:56   Jon, what happened today?

00:42:57   Jon Streeter They did abandon me.

00:42:59   They abandoned me for years.

00:43:01   They released new iPods, but, you know, too little, too late, Apple.

00:43:05   Steven McLaughlin Well, I wouldn't say too—I mean, for you—

00:43:07   Jon Streeter Oh, for me.

00:43:08   We're just talking about me.

00:43:09   But anyway, yeah, they released new ones and, what is this, Steve Trout and Smith said,

00:43:14   I don't know, I haven't confirmed this, that the new iPods are iPod 7, 1, like the model

00:43:19   number, and the last one was iPod 5, 1.

00:43:22   What happened to iPod 6, 1?

00:43:25   Where did that one go?

00:43:27   That was the secret one they withheld to make me buy an iPhone.

00:43:30   That was entirely, it was actually a big plan at Apple just to get you, because you were

00:43:34   like this thorn in their side, this guy would not buy an iPhone.

00:43:37   Yep.

00:43:38   Yeah.

00:43:39   I'm thinking about why they can that like I think I have a reason that they skipped, you know

00:43:45   But if this is true that you know, or basically why did they not release an iPod touch for such a long time?

00:43:50   Why was this big long gap? I was at the fifth generation iPod touch and it just lingered on and on

00:43:54   Well, the lingering is like we know that Apple would just keep selling a thing

00:43:57   Even if not a lot of people buy it because it's like well, we're good at making it

00:43:59   We know how to make it. It doesn't change the the cost of parts presumably goes down up to a certain point

00:44:05   Why not keep selling them?

00:44:06   But every time we saw sales numbers that were in any way possible to slice and dice so that you could isolate the iPod touch numbers

00:44:12   They were low they were super duper low

00:44:14   You know, we know the iPod numbers were going down and the iPod touch was part of that and it's like, you know

00:44:20   We're not selling a lot iPod touches so I can understand them saying is this a thing we're gonna do

00:44:24   Should we bother making any iPod touch like maybe they were making one said should we even bother updating it?

00:44:29   Should we just keep selling the current one?

00:44:31   Do we think this new one will bump our numbers enough to be worth the cost of you know changing our manufacturing

00:44:36   And making more expensive product

00:44:37   We just want this product where the margins just keep going up and up again up to a point, but

00:44:41   You know maybe make most of the insides

00:44:44   But they can probably get all the parts for that cheaply so the fifth gen iPod touch by the time

00:44:47   They were done selling it like they dropped the price a little I think but boy that was must have had

00:44:52   Some great margins and low volume, and I guess they did the math and said there's no point in releasing

00:44:57   releasing an iPod 6 comma 1 because it's not going to increase our sales enough to offset the

00:45:01   You know the the difference in cost of parts and everything

00:45:06   but I guess they came around and said

00:45:08   they finally decided look we they're we they're not going to have the iPod touch anymore and everyone's got to get phones or

00:45:13   It's important for us to have a product in this in this range

00:45:16   Even if it doesn't sell a lot of it because it's kind of like an entry

00:45:18   You know an entryway product for young people or you know, give it to your kids

00:45:22   But you don't want to buy them a phone or something like that. And I think that was the wise choice

00:45:25   And so here we have it, iPod 7,1 with an A8 processor,

00:45:30   in the same form factor as it was before,

00:45:32   no more little lanyard strap, new colors.

00:45:36   This is sort of the Apple coming out,

00:45:39   kind of like with the Mac Pro and saying,

00:45:41   no, we still are gonna make a Mac Pro,

00:45:43   and no, we still are gonna make the iPod Touch.

00:45:45   And it seems like a pretty good iPod Touch, right?

00:45:47   - Yeah, I mean, what's interesting is

00:45:49   they shipped it with the A8,

00:45:52   and I think this might be a little hint

00:45:54   as to why they shipped it anyway,

00:45:55   but going back a sec, they shipped it with the A8

00:45:58   and historically, with the exception

00:46:01   of the very first iPod Touch,

00:46:02   all the other ones have kind of been a generation behind

00:46:05   in their CPU core, and in this, they shipped the same core,

00:46:09   just clocked a little bit lower,

00:46:13   but the same CPU as the current iPhone.

00:46:16   Now granted, the current iPhone is not gonna be

00:46:18   the current iPhone in a few months,

00:46:20   but this is still significant that everyone expected

00:46:23   if they were going to do an iPod update anytime soon,

00:46:26   it would go to maybe the A7 chip.

00:46:28   And it went to the A8 instead.

00:46:30   And so that is significant, even though it is clocked

00:46:32   a little bit lower than the iPhone's.

00:46:34   Matthew Panzorino ran some tests, he said it's 1.1 gigahertz.

00:46:38   The iPhone 6 is 1.4, so close.

00:46:42   Granted, it's not gonna be as fast as,

00:46:45   but still, for 200 bucks, that's really cool.

00:46:48   - I think it makes sense because my prediction

00:46:50   is there will be another fairly long gap

00:46:54   before this is updated again.

00:46:55   So it's like, this is a product line we're gonna have,

00:46:57   we think it's important to have this product line,

00:46:59   let's give it the most longevity possible

00:47:02   by sticking essentially last generation chip.

00:47:05   I know it's the current one now, but like you said, Mark,

00:47:07   the new phones are coming with the A9 and everything,

00:47:09   so this is kind of like, okay,

00:47:11   we've ramped up on the A8 enough

00:47:12   that we're not supply constrained

00:47:14   for our products that we really care about.

00:47:15   There's enough A8s left over

00:47:17   for the amount of iPod touches we're gonna sell,

00:47:18   Pretty soon our flagships are gonna be A9 anyway.

00:47:20   So let's give us an A8.

00:47:22   That will give it the most possible longevity.

00:47:24   So we don't have to revise it next year.

00:47:25   'Cause if they put an A7 in it,

00:47:27   it would be aging much more rapidly.

00:47:28   The A8 is a big bump up and it maybe gives an extra year,

00:47:33   an extra year or two that they can let it sit there.

00:47:35   'Cause I don't think it's as important

00:47:37   for the iButt Touch to be updated every single year

00:47:40   given its sales volume and its place in the lineup.

00:47:43   - Right, and so I think if you think back to

00:47:46   why does this product still exist,

00:47:48   but wasn't updated for three years.

00:47:50   And I think there's a couple of potential reasons for this.

00:47:53   Number one, what you said,

00:47:54   it really does not sell very well.

00:47:56   Relative to, I mean, it's a decent business,

00:47:59   it's like the same thing where people say,

00:48:01   "Well, if you look at the iPad by itself,

00:48:02   "it's bigger than McDonald's," or whatever.

00:48:04   It's a good business in isolation,

00:48:06   but compared to Apple's overall business,

00:48:08   it's a very tiny part of it.

00:48:10   And so that, and even, you know, compared to iOS user,

00:48:14   iOS usage numbers, like I know with my app,

00:48:17   the usage numbers of iPod touches are just vanishingly small

00:48:21   compared to all the iPhones.

00:48:22   It's like almost no one uses an iPod touch for my app.

00:48:26   And I think most developers I've talked to,

00:48:28   I think you could say very similar things.

00:48:30   Now of course it does tend to skew younger

00:48:32   'cause a lot of kids get them.

00:48:33   So maybe if you have like a game that appeals to kids,

00:48:35   maybe your numbers will be different.

00:48:36   But for the most part, it does not sell in large volumes

00:48:40   relative to iPhones and iPads.

00:48:42   And I think another part of maybe why

00:48:43   they were kind of letting it languish for a while,

00:48:45   then maybe why the six was cancelled this the iPod six comma one. Maybe that

00:48:49   may be the reason that was cancelled if assuming it existed. I think maybe they

00:48:54   were trying to see if they could move this this demand or this role in the

00:48:58   lineup to the iPad mini because if you think about like what the iPod touch is

00:49:04   for an iOS device for people who who don't have or can't have or just for

00:49:10   whatever reason are not going to get an iPhone and when it was when it was

00:49:15   there was no iPad. Now, or you know, once the iPad came out, it was very clear that,

00:49:22   you know, a lot of the people who would buy an iPod touch, especially people buying them

00:49:25   for kids, a lot of that usage was moving towards iPads, especially for things like games. And

00:49:31   I think what we've seen over the last few years is the iPad kind of petering out or

00:49:36   at least leveling off to some degree there. And the iPod touch is still very hot for that

00:49:42   use of kids games and developers test devices

00:49:45   and stuff like that, it's very useful for that.

00:49:47   And I think maybe they were trying to see if the iPad

00:49:51   could take that over and it just didn't pan out that way.

00:49:55   - You know, I was thinking as you were talking,

00:49:57   especially when you said that none of your users

00:50:01   are on iPod Touches, I thought to myself,

00:50:03   well that seems crazy because of kids, like you were saying.

00:50:06   And I was just thinking about it,

00:50:07   and I haven't been chronicling this in my head

00:50:11   because I hadn't really been thinking about it until today.

00:50:14   But as I reflect on going out to eat

00:50:17   at a regular restaurant, like a Panera Bread, let's say,

00:50:20   or just going about my day outside of work,

00:50:25   on the weekends, whatever, I'm thinking back to,

00:50:27   well, what are kids using when their parents

00:50:30   just want them to shut up and let mom and dad eat?

00:50:34   And to my recollection,

00:50:35   they're either using their parents' phones

00:50:37   or they're using iPads that seem to be dedicated

00:50:41   for kid use.

00:50:42   And so I think you're onto something,

00:50:43   and that maybe answers the question,

00:50:45   why did Apple not really care for,

00:50:47   what was it, two years, three years?

00:50:49   How long was it?

00:50:49   - Three.

00:50:50   - Why did Apple not care for three years?

00:50:52   Which, by the way, is insane, but anyway.

00:50:55   You know, maybe that's because, to your point, Marco,

00:50:58   nobody's really buying these.

00:50:59   If they want something that's a portable kid device,

00:51:03   just like you said, they're getting an iPad Mini,

00:51:04   and certainly my reflection on what I see day to day

00:51:08   is that they're buying iPad Minis.

00:51:10   That's one reason why they might have done this now

00:51:13   as opposed to any other time.

00:51:14   Another, I think, big reason, they also recently

00:51:17   quietly killed the original iPad Mini that used the A5 CPU.

00:51:21   So this, the iPod Touch was the last A5 iOS device,

00:51:24   and not cutting Apple TVs, that's kind of a different story,

00:51:27   but this was the last A5-based iOS device that was for sale.

00:51:30   And now they have no more A5s left.

00:51:33   They are also now all 64-bit once the 5C

00:51:37   falls off the lineup, right?

00:51:38   Is the 5C still even sold?

00:51:40   Is that the free one right now?

00:51:42   - I thought so.

00:51:42   - Well, that's the other thing I've been saying about this,

00:51:44   they probably had to make this hardware anyway

00:51:45   if they're gonna make a 6C in the same form factor as a 5C.

00:51:48   This is basically a 6C with no phone.

00:51:50   - Exactly, and so they're gonna have some economies

00:51:54   of scale here, even though this is a way smaller scale

00:51:57   than the 6C will likely sell,

00:51:58   but assuming they have a 6C, it'll have basically this,

00:52:02   I bet it'll have these same guts,

00:52:04   just with the phone hardware added to it,

00:52:06   and if they've managed to squeeze that

00:52:09   into a $200 product here, getting a little bit more

00:52:13   hardware for the phone features, and maybe a slightly

00:52:16   better camera into the 6C, which might even have

00:52:20   this size screen, we don't even know that.

00:52:22   That would be a nice high margin product to keep

00:52:26   their margins up while still being able to be

00:52:28   the cheap phone in the lineup, and they would have,

00:52:30   you know, they'd have fewer parts that are being

00:52:32   manufactured together.

00:52:33   So that's, it would be a net win operationally

00:52:36   and profit-wise almost certainly as well.

00:52:39   But also, software-wise, they want to go all 64-bit.

00:52:42   I am guessing that iOS 10 does not support 32-bit operating

00:52:47   system or 32-bit CPUs.

00:52:48   Isn't it already a requirement for,

00:52:50   like, you have to upload a 64-bit app for something?

00:52:53   What is the carrot they were dangling for there

00:52:55   or the stick?

00:52:56   You have to have a 64-bit binary for any submission

00:52:59   after, like, this past January or something.

00:53:01   It was a while ago now.

00:53:03   But you can still have a 32-bit thing as well.

00:53:04   Yes.

00:53:05   But also, this year, you can now-- if you want to,

00:53:08   you can now ship only 64-bit for the first time.

00:53:11   I think with iOS 9, I believe it's the first time

00:53:13   you can do that where now you can say,

00:53:15   "You know what, now my app only runs on 64-bit devices

00:53:18   "before you could not do that."

00:53:19   And so now they're gonna have the whole lineup,

00:53:22   as far as I know, except maybe definitely not the 5C,

00:53:24   but once the 5C's gone, then they'll have the whole lineup

00:53:28   now running 64-bit chips that also can run Metal.

00:53:32   So this is all, like, you know, what they did to the Mac,

00:53:35   moving a bunch of stuff to Metal for El Capitan,

00:53:38   They can now do that to iOS next year with iOS 10

00:53:41   and move a whole bunch of stuff to requiring Metal,

00:53:43   and if they then just don't have any devices

00:53:46   that can't run Metal, they can do that.

00:53:48   So that can be power savings next year,

00:53:50   that can be performance increases,

00:53:51   so there's a whole bunch of reasons to do this.

00:53:54   And all of this is predicated on the entire

00:53:57   currently active for sale lineup

00:54:00   having 64-bit chips that can run Metal.

00:54:02   - Did they say at this year's WWDC

00:54:06   that in either OS X or iOS that core animation is now running on Metal?

00:54:11   Yeah, I think they're already doing the thing where like if Metal is available,

00:54:16   like they have a dual code path for a lot of the stuff, even in iOS 9, where if Metal is available,

00:54:21   they will use it and if not, they'll fall back to the other way. I don't know if it's pervasive,

00:54:24   and like Marco said, there's a big win to be had of like not even supporting the other code path.

00:54:28   Like if you could just say, "Okay, well iOS 10, you know, is Metal everywhere, it doesn't support

00:54:34   OpenGL doesn't run on devices that couldn't run Metal.

00:54:38   - It'll be interesting though also to see

00:54:39   if they go this way, and if iOS 10 is 64-bit only,

00:54:44   is there still the ability to run applications

00:54:47   that haven't been updated since this requirement

00:54:49   that are only 32-bit?

00:54:51   Because right now, the way the phone works now

00:54:55   is if you run an app that does not have a 64-bit version

00:54:58   of its binary, which basically means it hasn't been updated

00:55:00   since this past January or earlier,

00:55:02   and the developer was really irresponsible for the year before that. If you have an app

00:55:08   that is only 32-bit binary, the system has to load a whole bunch of 32-bit frameworks

00:55:12   into memory just for that app. Having one 32-bit app running has an abnormally large

00:55:19   cost associated with it for resource usage on your phone. Whereas if all your apps are

00:55:24   64-bit and there are no 32-bit apps loaded, you then save that giant chunk of memory and

00:55:29   whatever performance and battery cost comes with that.

00:55:31   - Yeah, you know, what Apple could do to help that is

00:55:33   maybe put more RAM in its devices.

00:55:35   Over time, over like a multi-year period,

00:55:38   that that number could change anyway.

00:55:39   - Over an infinite time scale.

00:55:40   So-- - I'm saying like

00:55:41   a couple years. - Yeah, right.

00:55:43   Anyway, so now, if they go 64-bit only with iOS 10,

00:55:48   would this be the first time that they would actually

00:55:52   cut off compatibility with running old apps?

00:55:56   'Cause with iOS, if they've never done that,

00:55:57   you can have an app that hasn't been updated since 2008,

00:56:00   you can still run that on an iPhone 6 Plus today.

00:56:03   It won't look very good, but it will run.

00:56:05   And part of the app store's appeal, on paper at least,

00:56:10   is that it has this giant library of apps.

00:56:12   And I'm sure lots of people, myself included,

00:56:15   I still very occasionally need to use

00:56:18   some kind of obscure ancient app

00:56:20   that's still, you know, that is giant on the current phones

00:56:23   and has the iOS 6 keyboard and everything

00:56:25   and has been updated forever.

00:56:27   If you lose the ability to run all those,

00:56:28   it'll kind of hurt.

00:56:30   Do you think they'd do that?

00:56:31   >> BRIAN KARDELL-MORROWSKI They're gonna, like, maybe not next year,

00:56:33   but like, if only to not have to support, like, the old ARM 7 instruction set and to

00:56:38   be able to be like, you know, all 7s and 7q or whatever the hell they come up with next.

00:56:43   Like, to be able to, you know, like, they're still supporting thumb, right?

00:56:47   The little ARM 4, like, the little tiny one?

00:56:51   Like, wasn't there, like, two—on the original iPhone, wasn't there two instruction sets

00:56:54   that you could use?

00:56:55   Like, they would just love to ditch that silicon.

00:56:57   Like, you know, it's just a, they'll do it eventually.

00:57:02   iOS 10 might be like a nice round number turning point.

00:57:04   I feel like it'll be two more years before they pull the trigger on that.

00:57:09   But who knows, Apple, you know, one or two years I think is a reasonable time frame for

00:57:12   them deciding to can all those ancient apps that haven't been updated.

00:57:15   Because really, like, they've had time.

00:57:17   It's like, it's kind of like the whole 30 pin connector thing, like where anyone, anyone

00:57:21   complaining about that, it's like, you know, they kept that connector for almost a decade,

00:57:25   I think.

00:57:26   is a reasonable amount of time.

00:57:28   I know it might seem like, well, it may have been a decade,

00:57:30   but I just got an iPad last year,

00:57:31   and I bought all these cables.

00:57:32   And that's, yeah, you're right.

00:57:34   Sometimes someone buys it just the year before the transition.

00:57:36   That's a bummer for you.

00:57:37   But in the grand scheme of things,

00:57:39   if your same binary has been running since day one

00:57:41   of the App Store on iOS 2.0, I think

00:57:44   it's OK now for us to say, OK, well, you didn't update it

00:57:46   in how many years it's been?

00:57:48   Six years since the App Store?

00:57:51   Seven?

00:57:52   Yeah.

00:57:53   Yeah, I mean, that's fine.

00:57:54   That is a reasonable window.

00:57:56   So I could say this year or next year,

00:57:58   I would not be surprised to see them doing that.

00:58:00   And they'll do it basically in line with like,

00:58:03   when do we have the system on a chip design

00:58:05   that reaps the benefits from dropping

00:58:07   all these instruction sets?

00:58:08   That's the time it'll happen.

00:58:10   - Well, any other thoughts on the touch?

00:58:12   - Yeah, unlike the poor suckers who get phones,

00:58:15   if you get an iPod touch,

00:58:16   you can pick from 16, 32, 64, and 128.

00:58:20   Still the same crazy price range between them, but whatever.

00:58:23   - Well, no, 32 is only 50 bucks more.

00:58:24   So they actually, like they inserted 32

00:58:26   where it would go in the phone pricing if it was there.

00:58:29   So you have 16 as the base, 64 for $100 more.

00:58:32   In the middle, you have 32, $50 more.

00:58:35   - I know, but it's like, if you do the actual curves,

00:58:37   like how much does this much flash memory actually cost?

00:58:39   Like it just, it doesn't make, anyway.

00:58:41   It's nice that there's a 32 in there.

00:58:43   It would be nicer if they dropped the 16,

00:58:45   but if any product can justify the 16, it's this.

00:58:48   It's the cheapest, you know, like the 199,

00:58:51   you're gonna give it to your kid, like whatever.

00:58:53   they're like this is the only product,

00:58:54   they should still be selling with 16 gigs of memory in it.

00:58:58   But it's nice that they have a 32 in there.

00:59:01   Just in time for 32 to become like

00:59:03   actually a little bit too small as well.

00:59:04   - (laughs) Right.

00:59:06   Well and keep in mind, there have been a lot of changes

00:59:09   recently that are really making it easier

00:59:13   to have smaller capacity devices.

00:59:14   So, I thought a photo library is a huge one,

00:59:17   'cause then your photos don't have to live

00:59:18   on your phone anymore or on your iPod.

00:59:21   And with all the iOS 9 stuff with app thinning

00:59:25   and all this stuff like that, that's all designed

00:59:28   for minimizing disk space usage of your apps.

00:59:30   - Yeah, although it's gonna be a huge lag time on that

00:59:32   because how long is it gonna take for people to pick that up?

00:59:34   They have the download on demand

00:59:36   for downloading game levels on demand

00:59:38   and the app slicing and app thinning,

00:59:39   like all that stuff should just massively reduce things

00:59:42   if developers actually use them.

00:59:44   And then like, I don't know what the lag time's

00:59:45   gonna be on using them.

00:59:46   I hope game developers are incentivized to do it

00:59:48   because a lot of time no one's gonna buy

00:59:51   you know, Infinity Blade version 17, if it's like three gigs and you know,

00:59:55   everyone with a 16 gig, every kid with a 16 gig device,

00:59:57   it's just not going to have room for a three gig game.

00:59:59   But if you can download it in 200 megs and just download levels on demand,

01:00:03   I mean, I worry about like, you know, when I watched that session WVC,

01:00:08   they kept showing like, Oh, you can look how small your app is.

01:00:12   And then we'll download this thing on demand. You know,

01:00:15   it didn't seem like there was a progress API.

01:00:18   It didn't seem like there was a callback

01:00:19   where you could show a progress bar.

01:00:21   It didn't seem like there was anything.

01:00:22   It just seemed like what your game would have to say

01:00:23   is put up a static screen that says,

01:00:25   "Loading level, please wait."

01:00:27   And if it's a 500 meg level and they're on cellular,

01:00:32   forget it, right?

01:00:32   But if they're on Wi-Fi and the Wi-Fi is slow

01:00:34   or the server, like, I worry about the viability.

01:00:37   But anyway.

01:00:38   - And also, lots of kids go long spans during the day

01:00:41   where they are not connected to any network

01:00:43   with an iPod touch.

01:00:43   - Right, yeah.

01:00:44   They'll be disappointed when they advance

01:00:46   to the next level and realize they can't play

01:00:47   the next level.

01:00:48   Until they get home that night.

01:00:50   That API looks like one of those, that whole API for on-demand downloading looks like one

01:00:53   of those APIs that will be better next year.

01:00:55   After everyone tries it and realizes there's insufficient amount of resolution, so to speak,

01:01:02   of like, "How can I get hooks into this API to provide a good user experience to let people

01:01:07   know what's going on and to do reasonable things and not make it look like my game is

01:01:12   broken when in reality it's just either in the process of downloading a giant level or

01:01:17   failed to download a giant level, you know.

01:01:19   - Well, or if you look at it from the perspective

01:01:21   of the game publishers, there's very little reason

01:01:25   for them to adopt it.

01:01:26   It solves a problem that Apple has,

01:01:29   but it doesn't really solve a problem developers have

01:01:30   unless you really are trying to ship a five gig game.

01:01:33   - Well, these games are big.

01:01:34   Like I said, Infinity Blade's already like one or two gigs,

01:01:37   and it's just not gonna fit on a 16 gig device

01:01:40   because the kids will fail them,

01:01:40   and so they can't buy your game,

01:01:42   or they'll buy it and regret it

01:01:44   and be angry that they can't use it.

01:01:46   People want you to tap their link and get their game on your device and play your game,

01:01:50   especially if it's a free-to-play.

01:01:52   They get no money then.

01:01:53   You've got to launch it, right?

01:01:55   I think game developers are incentivized to do some stuff.

01:01:58   But even just plain old App developer, I really hope that people do the app thinning and slicing

01:02:03   stuff.

01:02:04   Because it seems like, from Apple's perspective, like, "Look how easy we made it for you.

01:02:07   Just tag things and do this, and we'll automatically put the version, and we'll have the different

01:02:12   binaries."

01:02:13   That should be a win.

01:02:14   all it takes is for people to rebuild their apps for iOS 9 and upload new versions of

01:02:19   them. And I hope that will happen for all the apps that I care about because they're

01:02:22   all like sort of actively maintained by people that are just going to do this anyway as a

01:02:25   matter of course.

01:02:26   I'm just so happy that I don't have to do any of those APIs because Overcast is like

01:02:29   four megs.

01:02:30   You should do them anyway. You could be like two megs.

01:02:33   Do them, well do them for what assets?

01:02:36   Yeah, yeah, yeah.

01:02:38   Anyway, our final sponsor this week is Squarespace. Squarespace, build it beautiful. Go to the

01:02:44   squarespace.com to sign up. Use offer code ATP to get 10% off your first purchase.

01:02:49   Let's face it, most of you probably know what Squarespace is. They're a place you go to make

01:02:54   a website. So many of us need websites. So many of our friends and family needs websites. So many

01:03:00   of our hobby projects need websites. Restaurants we go to, businesses we patronize, they all need

01:03:04   websites. And the world of making websites in the past has often been overwrought, over complicated,

01:03:11   over certainly overpriced and you know you have to deal with installing hosted

01:03:16   CMS's or finding a host hoping that host doesn't go down dealing with you know

01:03:21   all the server stuff if you host it yourself it's hosting websites has been

01:03:26   challenging in the past and then what you end up getting is the system that

01:03:31   maybe you wrote it yourself if you're a programmer like us maybe you're using

01:03:34   someone else's system and you go to you go to try to do something and it's like

01:03:37   "Oh, now the cool new thing this year is these galleries that pop up and have the things

01:03:43   in little light boxes. That's the cool thing this year." And you can go try to do that

01:03:46   and, "Oh, I can't do that on my setup. I have to go upgrade the whole thing or change to

01:03:51   a different system." It's a big pain. With Squarespace, they take care of everything

01:03:55   for you. It is all hosted by them and they are not only extremely modern and up to date

01:04:01   with everything that you can do on a website today that you might want to do fashion-wise,

01:04:06   culture wise, style wise, mobile, commerce, they have so much stuff built in. But also,

01:04:12   as time goes on, as the web gets more mature, as new technology come around, new devices

01:04:17   come out that you want to support, Squarespace just starts supporting it. They do it all

01:04:21   for you. They add those things as time goes on. So you don't have to keep upgrading your

01:04:27   site to different software or moving to a different host or anything. It's all right

01:04:31   there at Squarespace. They do it all, they host it all for you. Your site at Squarespace

01:04:35   looks professionally designed. Regardless of your skill level, you don't have to be

01:04:39   a coder to use it. If you are a coder, you can inject your own custom code, you can do

01:04:43   lots of customization, and if you, you can just like drag around colors, change fonts

01:04:49   and everything without any coding at all if you want to. Everything is intuitive and easy

01:04:52   to use. They have state of the art technology powering the site and your servers to ensure

01:04:57   security and stability. You don't have to worry about your site getting hacked and spam

01:05:01   comments being posted all over it or anything like that. They handle all of that for you.

01:05:05   It's trusted by millions of people around the world and some of the most respected brands

01:05:09   in the world. So Squarespace starts at just $8 a month. If you sign up for a year, you

01:05:14   get a free domain name and you can start your free trial today. This is a real free trial.

01:05:19   There is no credit card required. It's a real free trial. Go to squarespace.com. Use

01:05:23   offer code ATP to get 10% off. Start a real free trial today and just build a site. Just

01:05:29   Just try it, build a site.

01:05:30   That's how I got into it.

01:05:31   Before, when I had to make some sites in the past,

01:05:34   I tried one time, I just tried doing it on Squarespace,

01:05:37   and I was done in like an hour.

01:05:38   It was crazy how fast it was.

01:05:40   And I had never even used it before that,

01:05:42   and I was done in an hour.

01:05:43   So give it a try, check it out, it is great.

01:05:45   Squarespace.com, offer code ATP to get 10% off.

01:05:49   Squarespace, build it beautiful.

01:05:51   - Couple more things on the iPod touches before we move on.

01:05:54   - What are the other colors?

01:05:55   - Yeah, that's one thing I'm gonna bring up.

01:05:56   The only black one is Space Gray.

01:05:58   All the other ones are white on the front.

01:06:00   - Oh, I didn't notice that.

01:06:02   - Honestly, I think the colors look pretty good.

01:06:04   - The color, yeah, I do like them.

01:06:05   I like these colors.

01:06:06   This lineup of colors is more appealing to me

01:06:09   than the past lineup of colors.

01:06:10   I don't like anything with the white front.

01:06:12   I like how it looks like as a product,

01:06:13   but I don't like looking at it.

01:06:14   So it's kind of disappointing to me

01:06:15   that now there's only one with the black front.

01:06:18   - Yeah, I'm with you on that.

01:06:20   And I wish there were more color options,

01:06:23   but the ones they have I think look good.

01:06:25   - Black and gold, at least.

01:06:26   Come on, guys.

01:06:28   Well, they're not gonna do black and space gray.

01:06:30   Space gray is the new black, Jon.

01:06:31   - No, I mean like a gold back and then black on the front.

01:06:35   - Oh.

01:06:35   - All I'm talking about is the front.

01:06:37   All the fronts are white except for the model

01:06:38   that is space gray on the back.

01:06:40   - Is that how the iPhone is?

01:06:42   Does the gold iPhone have a black front?

01:06:43   - Maybe it is.

01:06:44   Obviously they don't have 17 colors for the iPhone,

01:06:47   so maybe you don't notice.

01:06:48   And maybe this has been this way

01:06:49   with the iPod Touch in the past as well,

01:06:51   which is why I keep buying the space gray ones.

01:06:53   But it's still, I worry,

01:06:55   The black one being the sole one there that it's only a matter of time before they are not that I'm buying this myself anyway

01:07:01   But anyway, both of my kids have they have ones that are different colors on the back

01:07:05   But both of them are black on the front because both well one was originally bought for me and then one was bought

01:07:09   For my kids directly and when I bought it, I remember thinking I can't believe I'm buying this iPod touch

01:07:15   That's like two and a half years old

01:07:17   Real-time follow-up the the gold

01:07:19   iPhone has the white front. However, the gold MacBook one

01:07:25   has the black bezel.

01:07:27   - Well, you know, that's.

01:07:29   - I know.

01:07:30   - I wonder if they did it, like if they made a MacBook

01:07:33   with white around the screen.

01:07:35   No, I don't like white around the screen.

01:07:38   I do like how it looks.

01:07:39   Like that blue one with the white looks great.

01:07:41   The red one with the white looks great.

01:07:42   Like it looks great in product shots.

01:07:44   I just don't want to look at it as a screen.

01:07:45   But other people like it, so there you go.

01:07:46   But anyway, cool colors, no lanyard,

01:07:48   which I think they discovered that nobody wants

01:07:51   to put a strap around their wrist ever.

01:07:54   I wonder what percentage of kids use the little wrist strap on the Wii when they're using those Wii remotes like

01:07:59   Parents probably make them do this

01:08:00   I don't destroy their TVs by chucking the remote out or whatever

01:08:03   But I can honestly say that I never saw anyone in real life with the wrist strap

01:08:08   Connected to their iPod touch and though I had an iPod touch with the wrist strap

01:08:12   I never put it on my wrist. I think it's still in the box. Did you ever fling it at your TV?

01:08:16   No, I did not. Okay. Yeah, that's a cost savings. It's a space savings

01:08:22   You don't have that little moving part which is kind of fun to play with the little clicky

01:08:25   you know lanyard thing in and out and out but

01:08:27   Yeah, that's an interesting experiment that apparently didn't pan out because if it had panned out you'd be seeing those little things on all

01:08:33   Their products instead of just being on one for this weird three-year period and then going away

01:08:37   And the final thing that much no, I'm not getting an iPod touch

01:08:41   I have the main reason is of course. I have the phone now. We've already got like the family plan

01:08:46   They pay for and everything were asking am I gonna go back to a flip phone?

01:08:49   I'm not, but I think the biggest thing keeping me on my iPhone is that I'm now used to the

01:08:54   bigger screen. Like when I pick up my kids' devices, I can't imagine using that tiny little

01:08:58   thing. I'm now used to it. My hand is used to it. I'm used to the extra space. I'm used

01:09:01   to the extra pixels. I can't go back again. So congratulations, Apple.

01:09:07   Thanks, Obama.

01:09:10   Right.

01:09:11   So are you going to get one of the brand new iPod Nanos or iPod Shuffles?

01:09:16   New question mark, right?

01:09:17   I think it's actually not even a question anymore.

01:09:20   I think it's just not new.

01:09:22   I'm pretty sure that's confirmed.

01:09:24   - Is it a soft, is there different software on them maybe?

01:09:27   - No, there's different colors.

01:09:28   I believe that is literally the only change.

01:09:31   - Yeah, I was trying to look into this,

01:09:32   but like honestly I had no,

01:09:34   I was looking at the tech specs and like,

01:09:35   I don't remember what the old ones were.

01:09:37   It's kind of disappointing to me that,

01:09:39   like there are many areas that both of these products

01:09:41   could be improved in both hardware and software.

01:09:44   Just through like experience of like having this been

01:09:46   in the market for a long time,

01:09:47   people using them, knowing which buttons are hard to press,

01:09:50   how is it weird to hold, what materials you could do better,

01:09:52   what seam tends to open up over time,

01:09:55   which parts of the OS are slow or don't support a thing,

01:09:57   but it's like, just the product is not selling enough

01:10:00   for them to make those changes, I guess.

01:10:02   So it's just more of the same in different colors.

01:10:05   I think it's still a good idea to sell these products.

01:10:08   New colors is a way to get more people to buy them.

01:10:12   It's another sort of starter product for like a little kid

01:10:14   who wants to listen to music.

01:10:16   you're not gonna buy them a Sony Walkman, right?

01:10:18   You're gonna go buy them a little iPod,

01:10:19   a little cheap iPod, you don't care too much

01:10:21   if they send it through the laundry

01:10:23   or destroy it, especially like a shuffle

01:10:24   they're like 50 bucks or whatever.

01:10:27   It's good that these products are gonna line up.

01:10:28   I think of all of the iPod Nanos and shuffles

01:10:31   they've ever made, these are not the best versions.

01:10:34   - Yeah, I think I agree.

01:10:36   What's interesting though is that these are officially

01:10:40   like updated in quotes,

01:10:42   but they can't use Apple Music tracks.

01:10:45   Like if you download something from Apple Music,

01:10:47   so anything downloaded from Apple Music is DRM'd

01:10:49   and it's kind of time bombed so that you are not supposed

01:10:52   to be able to play Apple Music tracks

01:10:54   if you end your subscription to Apple Music.

01:10:56   iPods, I guess they decided through the DRM,

01:10:59   like they can't really guarantee that an iPod

01:11:03   will have its clock set properly

01:11:05   or that it'll really ever check in once it's synced

01:11:07   or anything like that, so.

01:11:09   - Do they even have clocks?

01:11:10   Like, I mean, they don't have wireless.

01:11:12   Like, well, they have FM radios or whatever,

01:11:14   It's basically because they can't validate the files like if you if you've got your Apple music files onto your iPod nano

01:11:19   they would they would either never play which is the current option or

01:11:22   Play forever because as long as you just don't plug your iPod nano into anything. Those are basically the only choices

01:11:29   So yeah, I'll put a link in the show. It's Serenity wrote about this whole thing

01:11:33   Like it's not surprising that if you're you know

01:11:35   streaming files that relying you having a subscription

01:11:38   cannot go on devices that can't confirm that you have a

01:11:40   subscription. These things have no way to tell if you have a subscription." And they

01:11:43   could have updated them to "no." They could have updated them, but that would have been,

01:11:47   I guess, more time and effort and technology and software that they're willing to invest

01:11:51   in this product line.

01:11:52   Yeah. And if Gruber's right, that the reason the Nano still has the iOS 6 look to its fake

01:12:01   iOS UI, Gruber's sources say that there's literally nobody left in the team. Apparently

01:12:07   team that did that was poached for the watch team. And so there's basically just nobody

01:12:12   who can work on it right now. And that sounds plausible. And because, you know, imagine

01:12:16   if you're if you work at Apple, like you do you really want the job of updating the iPod

01:12:20   nano software every three years to look more like fake iOS? Like that's probably not a

01:12:24   great thing to be working on if you can help it.

01:12:27   Yeah, the ADP tips are wants us to know that if you have trusted time on the device that

01:12:30   you can still use that and there'd be you know, if you tried to reset the time it would

01:12:33   invalidate things and so on and so forth. But all of that I would assume would require

01:12:37   investment in software at the very least and possibly also hardware that doesn't exist.

01:12:42   And so they're not going to do that investment?

01:12:44   They're not going to add a way for these devices to know?

01:12:47   Maybe he's saying they already have this feature?

01:12:49   It just seems like any kind of investment in changing the feature set of these products

01:12:54   was just not in the cards for this revision.

01:12:56   Changing the colors is something they can just do in manufacturing, done and done.

01:13:00   So the iPod Nano is $150.

01:13:03   16 gigs.

01:13:05   For 50 bucks more, you get the iPod Touch.

01:13:08   Now granted, it is a larger device,

01:13:10   but otherwise, why does the Nano still exist?

01:13:15   Why would anybody get the Nano for 150 bucks

01:13:19   if for 50 bucks more, you get the same capacity

01:13:21   in a full-blown, pretty good iOS device?

01:13:24   - Smaller, lighter, simpler, has an FM radio.

01:13:27   I mean, you know.

01:13:28   It's not a big area, it's not a growth market,

01:13:32   but the shuffle, I'm assuming you're excluding that one,

01:13:35   is you're like, oh, well the shuffle is so damn small

01:13:37   that if you want something that's like microscopic

01:13:38   and weighs nothing, this is your only option.

01:13:40   - The shuffle sucks, but the shuffle has always sucked.

01:13:43   I've owned multiple shuffles in my life, they've all sucked.

01:13:46   They, it's a terrible device, it is awful.

01:13:49   - I like the, remember the stick of gum one,

01:13:50   the original one?

01:13:51   - It's two gigs still?

01:13:53   - Yeah, they're all, yeah, they're all the same size.

01:13:54   - Yes, I had the stick of gum one, that was one of them.

01:13:56   - I'm sad that one broke, 'cause I loved that one.

01:13:58   I thought that was a very clever design.

01:13:59   I mean, obviously it's way too big by modern standards,

01:14:02   but back then, like, I really like that design.

01:14:04   I like the fact that it had a little thingy-wonder on your neck, I like the little stick of gum

01:14:08   thing, and it was nice and lightweight.

01:14:11   I like the shuffle before they pulled in the margins and sort of wrapped the shuffle more

01:14:16   tightly around that circular control, because that one had a place for you to put your fingers

01:14:20   to open the little chomper, like the little clamp on the back, without accidentally hitting

01:14:25   the previous track button, you know?

01:14:28   This one is just too small to do anything with.

01:14:30   That circular button on the shuffle has never really been great, but it does have the advantage

01:14:33   that it's super microscopic.

01:14:35   Remember the one that was like the Trident gum

01:14:36   that had no buttons on it?

01:14:38   - Yeah, that was short-lived for good reason.

01:14:41   - Those were the days.

01:14:42   Yeah, there's a lot of interesting innovation

01:14:44   in like how small we can make this.

01:14:46   It's just kind of sad to see it not, you know,

01:14:49   like this is it, this little square

01:14:50   that you clip onto things.

01:14:51   Anyway, it's not that bad.

01:14:52   But so why does the Nano exist?

01:14:53   I think it is different enough.

01:14:55   I, you know, I think it's differentiated.

01:14:57   It's differentiated from the shuffle by having a screen

01:14:59   and a place where you can do stuff.

01:15:01   And it's differentiated from the iPod by being,

01:15:03   I think from the perspective of people who want to jog with it or something, the Nano

01:15:07   is the size that you could, like, that you wouldn't notice it.

01:15:11   It's still, I think, below the threshold of, you know, even if not so much from weight,

01:15:16   but just from like having a big playing card-sized stiff thing strapped to your body somewhere,

01:15:21   whereas the Nano I think is down in the range of, you know, more towards the shuffle end

01:15:26   of things where you can find someplace in obtrusive to shove it.

01:15:29   You wouldn't even have to buy like a dedicated case for it, I would imagine, but maybe you'd

01:15:32   want to anyway the shuffle to me is the I'm going to do some sort of aggressive

01:15:39   working out with this and I don't want to break any other device and if I do

01:15:42   break this is not the end of the earth the nano though I agree with you guys

01:15:46   it's kind of a weird gray area and the only thing I can think of is what if

01:15:51   it's for a kid who doesn't necessarily isn't necessarily old enough to be able

01:15:56   to handle or maybe you don't want them to handle a full-on iOS device but you

01:16:02   like the iPod touch, but maybe this is sort of a halfway that's more interesting and allows you,

01:16:08   affords you some amount of control, yet is still not a full-on iPod touch.

01:16:14   **Matt Stauffer** It keeps the kid off the internet, basically. They want to listen to music.

01:16:17   It allows parents to delay facing the inevitable, which is how do I handle my child who has access

01:16:24   to the internet? Lets them push it off for a couple more years. Although they still have to

01:16:29   I love the deal with, "Mom, can you put this music

01:16:32   "on my iPod, please?"

01:16:33   Because they have no way to get music on it

01:16:34   without, you know, connecting to iTunes,

01:16:37   for crying out loud.

01:16:38   - Yep.

01:16:39   - I'm asking this honestly.

01:16:40   Do kids still care about music?

01:16:42   - Yeah, they do.

01:16:44   - I honestly didn't know, because it seems like music

01:16:47   is very generational, but also that in recent generations,

01:16:50   we are actually like moving more away from it,

01:16:53   if that makes sense.

01:16:53   Like music is becoming less important

01:16:55   as the generational cultural entertainment media, I guess.

01:17:00   I don't know, does that make sense?

01:17:03   - Seems about the same.

01:17:04   Like, you know, your kids one day will come home

01:17:06   and they will know a pop song

01:17:08   that you have never played or heard of

01:17:10   and they know all the words to it.

01:17:11   Like, how did this happen?

01:17:12   You know, that's, they have peers, they have, you know,

01:17:16   they find out about music, they get interested in music,

01:17:19   they eventually have demands for songs that they want

01:17:22   on their iPods and yeah, it's still a thing.

01:17:25   Alright, fair enough.

01:17:27   Thanks a lot to our three sponsors this week,

01:17:29   Squarespace, Igloo, and MailRoute,

01:17:31   and we will see you next week.

01:17:34   (upbeat music)

01:17:36   Now the show is over, they didn't even mean to begin

01:17:41   'Cause it was accidental (accidental)

01:17:44   Oh, it was accidental (accidental)

01:17:47   John didn't do any research, Marco and Casey wouldn't let him

01:17:52   'Cause it was accidental (accidental)

01:17:54   Oh, it was accidental (accidental)

01:17:57   And you can find the show notes at ATP.fm

01:18:02   And if you're into Twitter, you can follow them @C-A-S-E-Y-L-I-S-S

01:18:11   So that's Kasey Liss, M-A-R-C-O-A-R-M

01:18:16   Auntie Marco Arment, S-I-R-A-C-U-S-A-C-R-A-C-U-S-A

01:18:23   It's accidental

01:18:26   They didn't mean to

01:18:29   Accidental

01:18:31   ♫ Tech podcast so long

01:18:35   - What's going on in Overcast these days?

01:18:38   We haven't heard much about it.

01:18:39   - Oh man, I mean I'm working my butt off on it basically.

01:18:43   - So like a couple hours a day?

01:18:45   - Yeah, pretty much, yeah.

01:18:46   Maybe half hour, 45 minutes.

01:18:49   I'm working on a big 2.0, and I'm still like,

01:18:53   I mean I've said this on Twitter a couple times,

01:18:55   it's not news that I'm working on 2.0.

01:18:58   For me, 2.0 will have a few big new features,

01:19:01   but it's mostly about kind of nailing down

01:19:05   all the different parts.

01:19:07   Like this week I was working on,

01:19:10   drum roll please, the downloader, as usual.

01:19:13   - Really? - Uh-huh.

01:19:15   So I finally figured out there's,

01:19:18   one of the problems that people keep reporting to me

01:19:20   is that storage usage just seems to just keep growing

01:19:25   over time for any given installation.

01:19:27   It's temp files that are created

01:19:29   by the background download system.

01:19:31   the background download process in iOS, which I hate with a passion, there are temp files

01:19:36   that that generates, and then if a download is interrupted for any reason, like if you

01:19:41   force quit the app or if the app crashes or sometimes even just if the download fails

01:19:45   and then it retries again, it's creating a new file and starting over again, and the

01:19:51   old file just gets abandoned. It just like, so the old temp file, where it was downloaded

01:19:56   to or was partially downloaded to is never deleted.

01:19:59   And I actually discovered this behavior months ago.

01:20:02   And I issued a fix back then to basically scan

01:20:07   for these temp files and any temp file

01:20:09   that was above a certain age that hadn't been touched

01:20:12   for like a couple days or something, I would delete.

01:20:14   That caused lots of problems.

01:20:17   'Cause the download system does not expect

01:20:18   its files to be deleted from under itself.

01:20:21   And they're also downloaded through this undocumented

01:20:22   location that you're not really supposed to know about

01:20:24   inside your app sandbox.

01:20:25   they also recently moved that location to a different location. That's the problem.

01:20:30   So now all of a sudden I thought I had this problem under control and now people are saying,

01:20:34   "Oh, it's, you know, all the space usage." It's mostly because of that. It's mostly because

01:20:38   they moved the location of these files. So now I'm scanning the old directory, not the

01:20:43   new one, and so I have to go look at that again and, you know, obviously change where

01:20:49   it's deleting, but also then now test to make sure it's not messing with up too badly. When

01:20:52   it does delete them, you know, make sure that the downloader doesn't then have weird behavior

01:20:57   or crash when it finds that its files are gone. It's a whole ordeal. The background

01:21:03   download system is just incredibly unreliable for me. I know some developers seem to have

01:21:09   good luck with it. It has been insanely unreliable for me in all of my usage of it so far.

01:21:15   You download more things and I think probably for more creaky servers like because, you

01:21:20   You know, tons of things you're downloading all the time is practically the whole point

01:21:24   of your application, and I've seen lots of really slow downloads from wherever people

01:21:28   are hosting their podcasts, so it's a formula to exercise a downloader.

01:21:31   But if everything is in the caches folder, like, there are jobs, I assume, that are wandering

01:21:37   through iOS, like purging the caches folder when you're under disk pressure.

01:21:41   There's nothing that you can do as an app developer to try to say, "Hey, system!

01:21:46   If you would like to come by and reclaim space from my caches folder, please do that now.

01:21:51   I don't think you can trigger it. It automatically triggers when disk space is actually filling

01:21:56   up. And then that's when if you've ever spotted an app that says that where the icon is dimmed

01:22:01   out for a minute and under it it replaces the title with the word "cleaning...", that's

01:22:05   what it's doing. It's deleting all the cache and temporary files from that app sandbox

01:22:11   in order to reclaim disk space. So I'm working on stuff like that. I also overhauled the

01:22:14   the artwork system because it was not only buggy,

01:22:16   but it was causing bad scrolling performance

01:22:19   on the main list of episodes that everybody

01:22:21   was complaining about and they were right,

01:22:22   so I fixed that.

01:22:24   There's a couple of sources of common crashes

01:22:28   that I fixed and most importantly,

01:22:30   there's been a bug for months, literally,

01:22:33   like since I think February, there's been a bug for months,

01:22:37   where you would occasionally,

01:22:39   if you manually reordered a playlist,

01:22:42   Sometimes that ordering would be reset back to the default ordering of whatever that playlist

01:22:46   is, you know, whatever the sort method is for it. So your custom ordering would be lost.

01:22:51   And this drives people crazy, understandably. It drives me crazy. It happened to me too.

01:22:56   It drives me crazy. Because it is kind of a form of data loss. It's really annoying.

01:23:01   It's like, you know, I organized this a certain way and now it's just undid it. And this took

01:23:05   me months to find this bug. And it turns out to be a concurrency bug in the way--so basically,

01:23:12   getting into the weeds for a brief minute here.

01:23:15   Overcast data storage layer is built on a library

01:23:19   that I wrote that's open source called FC model.

01:23:21   And it's basically a little model layer

01:23:24   between SQLite and you.

01:23:27   And so it does not use core data, it uses FC model,

01:23:31   which kind of replaces core data in the role here.

01:23:35   And in the initial design of FC model,

01:23:38   instances of your models in memory were unique.

01:23:41   so that if you requested post ID one from one thread

01:23:45   and then some other thread also requested post ID one,

01:23:48   if the first one was still in memory,

01:23:50   the second one would just get another pointer

01:23:52   to the same object.

01:23:53   So that there was only one post with ID one

01:23:57   in memory at any given time.

01:23:59   So if you modified that, it would be the same

01:24:02   between all the places it was being accessed.

01:24:05   Like if you modified a value on it and didn't save it yet,

01:24:08   you would get that from everywhere.

01:24:10   In practice, that caused a bunch of weird concurrency issues

01:24:14   and weird potential bugs, weird actual bugs.

01:24:17   So this past February, I switched it

01:24:20   so that if you requested ID one from one thread

01:24:23   and then requested ID one from somewhere else,

01:24:25   those got separate copies.

01:24:27   And so all writes were being done separately

01:24:29   and there were some things in place

01:24:31   to make sure it wouldn't get stale data

01:24:33   here and there and everything.

01:24:33   But basically, I changed the way that worked.

01:24:36   And that has, for the most part, it didn't cause

01:24:41   any problems and it solved a few other problems.

01:24:44   Unfortunately, the playlist reordering bug

01:24:47   is caused by this and I haven't quite nailed down

01:24:50   the details yet because it has taken me months

01:24:54   to have this happen in a debugger once.

01:24:56   - That is the worst.

01:24:58   - Yeah, 'cause it's this weird concurrency related bug

01:25:02   and it's very hard to reproduce.

01:25:04   And I've asked people for months, like,

01:25:06   if you find a way to reliably reproduce this, please tell me.

01:25:10   Maybe just throw in some sleep calls

01:25:12   now that you know that you're pretty sure that you know where

01:25:13   it is.

01:25:14   You can confirm it by throwing in some sleep calls

01:25:16   to induce the race.

01:25:17   Well, the one time I caught it in the debugger,

01:25:19   I got a pretty good idea that it was

01:25:21   due to this model being unique in memory kind of thing.

01:25:26   Pretty sure it was from that.

01:25:27   Anyway, so now I have a different branch of my FC model

01:25:32   now called Unique 2 that goes back to the unique in memory model system.

01:25:38   >> Why don't you just use optimistic locking with the one where they're not unique?

01:25:41   >> I don't think I know what optimistic locking is.

01:25:43   >> It's like you version everything and then when you go to do the update, you say, "Do

01:25:46   this update," but only do the update if the version is the version that it was when I

01:25:51   read it. And if it's not, then you know you have a conflict, you know you lost a race

01:25:54   and then you have to resolve it in some way. But basically like instead of checking every

01:25:57   single time, because two guys got a thing. One guy's going to write first. And if you're

01:26:00   not the guy who got to write first,

01:26:02   when you write your thing, you could be overwriting

01:26:03   the other guy's changes.

01:26:04   So you do the, I mean, it's the SQL thing,

01:26:06   like update blah, blah, blah, blah,

01:26:07   where blah, blah, blah, and ID equals blah, blah, blah,

01:26:09   and you see zero rows updated, you're like,

01:26:11   oh, actually, I thought I read and then wrote it back,

01:26:14   where really someone else wrote back,

01:26:15   so I have to reread and incorporate those changes

01:26:16   before I can write back.

01:26:17   It's just, you know, like, or you gotta go

01:26:19   the Brent Simmons route and only do updates

01:26:21   to your model from a single thread.

01:26:22   - Right, well, so database access has always been serialized

01:26:26   onto one thread.

01:26:27   You could use, you could read them from anywhere,

01:26:29   but it was all being serialized behind the scenes

01:26:31   on a serial queue.

01:26:33   So you couldn't actually be doing

01:26:35   simultaneous reads and writes,

01:26:37   but you could hold onto things that weren't quite saved

01:26:40   and have it be changed under you and everything.

01:26:41   And then I did, a few months back,

01:26:44   I did change it so that writes were all being done

01:26:48   inside serial blocks too, so that rather than saying

01:26:51   model.name equals Bob, model save,

01:26:55   instead of that you would say model reload and save

01:26:57   in this block, and then in the block you would say name equals Bob or whatever. And so those

01:27:02   were all serialized as well. So that way, and it was literally reload and save. Like

01:27:06   you would first do a select, then do your changes, then save them back automatically

01:27:12   on a serial thread. So it should have solved that problem. And I think it solved it in

01:27:17   lots of places, but I guess something was still happening that it wasn't quite getting

01:27:21   it everywhere. So the new system, the unique two, also does the Brent Simmons thing where

01:27:28   now it's all just happening on the main thread. And for a while I thought there is no way

01:27:33   I should have database stuff on the main thread that will cause UI performance problems and

01:27:39   everything and I have such big databases for some of these, some users, there's no way

01:27:43   I can afford that. So I just never tried it. And then last week I tried it and it turns

01:27:47   out it's fine and there are so many problems it solves having all the database stuff on

01:27:53   the main thread first of all it's fast enough doesn't matter at all second of all lots of

01:27:58   places where there was UI lag before from blocking on a database on like a massive database

01:28:03   operation like that like the initial sync a lot of times you know you think you're offloading

01:28:07   it to this background thread then the background thread triggers an update that posts notification

01:28:14   and the UI says, oh, the data changed,

01:28:16   I have to reload the data to show my UI.

01:28:19   So then it's blocking the UI anyway

01:28:22   while it's waiting for that reload to come through.

01:28:25   So it turns out the whole idea of getting these operations

01:28:28   off the main thread in practice

01:28:30   usually didn't solve the problem

01:28:32   because usually the UI was still blocked

01:28:34   waiting for the database thread to finish what it was doing.

01:28:37   Anyway, so once you move things to the main thread,

01:28:40   all the database stuff, then it like, oh my God,

01:28:43   it becomes so much simpler once again. Brent Simmons is right. Brent Simmons is

01:28:49   usually right and when it comes to stuff like this, he's really usually right and

01:28:54   so with this, like if you make a change on the main thread, what happens with so

01:28:59   many changes, as I said, is the UI responds to the notification and does

01:29:04   something, updates something. When all that's happening on the main thread, it

01:29:08   removes so many like dispatch async calls and so many, oh well, you know, so many

01:29:13   potential deadlocks of well the database did this now update update the UI reflect

01:29:17   this than the UI calls in the database again there's some it's just solved so

01:29:21   many problems so anyway this is very long and boring but that is why the

01:29:25   playlist reordering bug happened I made that change a week ago in development

01:29:29   and it used to hit me every few days it hasn't hit me once since so I'm pretty

01:29:35   sure I got it and it sure looks like the rest of the app still works fine but

01:29:39   I'm reserving saying that definitively,

01:29:43   but it sure looks like I'm not having any other problems.

01:29:47   - I think I asked you about this before,

01:29:48   but now it's even more relevant

01:29:49   if you're doing your database access on the main thread.

01:29:51   Do you use any of the SQLite pragmas

01:29:54   to fiddle with the defaults to make it faster?

01:29:56   - I do, yeah.

01:29:57   I started doing that about six months ago.

01:30:00   - Do you turn off the synchronous thing?

01:30:02   - Let me see.

01:30:03   - The thing that makes it like,

01:30:04   the thing that says like really seriously flush it to disk

01:30:06   before you're done, turning it off says like,

01:30:08   It'll say, yep, no, I'm totally done when really it isn't.

01:30:10   But because we're using Flash--

01:30:13   I mean, that's the risky one.

01:30:14   That's the dangerous one.

01:30:15   And then I guess temp store memory instead of temp store

01:30:18   disk or whatever.

01:30:18   But some of those make a big difference--

01:30:20   or used to make a big difference back when I was screwing

01:30:22   with SQLite.

01:30:23   And so once you're doing it on the main thread,

01:30:25   it's probably worthwhile to revisit the pragma page

01:30:27   and see if there's anything else you could tweak.

01:30:29   I would probably not recommend the synchronous one

01:30:31   because you don't want to corrupt your database

01:30:32   because then you're SOL.

01:30:33   But--

01:30:34   I am doing synchronous off and journal mode memory.

01:30:38   - There you go, well, you're living the dangerous life.

01:30:40   I mean, I guess a power failure is like,

01:30:42   it's just, yeah, that's, it's a battery-powered device,

01:30:46   it can't get unplugged, I guess, but you know.

01:30:49   - Well, and also, this is just data that,

01:30:50   this is basically an offline cache

01:30:53   of something that's synced to the web.

01:30:55   So, you know, if local database gets corrupted somehow,

01:30:59   which is very unlikely, as you said,

01:31:00   but if it gets corrupted and it can't be opened,

01:31:03   then it just re-downloads from the web.

01:31:05   So it's not like I'm,

01:31:07   I'm not losing meaningful user data here.

01:31:09   - Jon, what was the occasion that you had

01:31:11   for fiddling with SQLite out of curiosity?

01:31:13   - Web applications, database backed web applications.

01:31:16   And the database that backs them

01:31:17   has been all sorts of things at various times SQLite.

01:31:20   Yeah.

01:31:21   And I, and you know, if you're just doing something,

01:31:24   you don't, you wanna do database stuff with,

01:31:27   especially in languages that have sort of a uniform interface

01:31:29   to any database, it's just a question of picking the driver,

01:31:32   like Perl does and like many other languages do.

01:31:34   You're just like, well, I'll prototype this with SQLite,

01:31:36   'cause then you don't have to worry about starting a server

01:31:38   and doing all that crap.

01:31:39   You're just, you know, it's just convenient.

01:31:41   I mean, hell, even if you just do SQLite,

01:31:43   you know, in memory database,

01:31:44   like it's a great way to just prototype something.

01:31:46   It doesn't even litter your file with disk.

01:31:47   You can just tell it database name,

01:31:49   and don't give it a file name,

01:31:51   and it will just do everything in memory.

01:31:53   That's neat.

01:31:55   (beep)