PodSearch

ATP

95: The Bear Wakes Up and Bites You

 

00:00:00 ◼   ► Like everything in life, it is one FFmpeg command,

00:00:03 ◼   ► but it'll take you three hours to figure out

00:00:05 ◼   ► what that command actually is.

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

00:00:08 ◼   ► (electronic beeping)

00:00:09 ◼   ► All right, so you wanna do a little follow-up?

00:00:11 ◼   ► - Follow-up.

00:00:12 ◼   ► - As soon as I said that, I was like,

00:00:14 ◼   ► oh God, that sounded a lot like the prompt.

00:00:16 ◼   ► - Just the way you said it.

00:00:17 ◼   ► - I know.

00:00:18 ◼   ► All right, let's do that again.

00:00:20 ◼   ► Hey, so you wanna do a little bit of follow-up?

00:00:22 ◼   ► - Follow-up. - Got it, did it again!

00:00:23 ◼   ► God!

00:00:24 ◼   ► This is the worst.

00:00:25 ◼   ► All right, somebody else talk.

00:00:26 ◼   ► - Don't phrase it as a question, Casey.

00:00:29 ◼   ► All right, let's do some follow up.

00:00:30 ◼   ► Ah, see, you're right, that's the key.

00:00:32 ◼   ► John, you're so smart.

00:00:33 ◼   ► Anyway, so let's talk about Crossy Road

00:00:37 ◼   ► and in-app purchases and top grossing lists.

00:00:40 ◼   ► And I'm not sure which one of you put this

00:00:42 ◼   ► in the show notes, but it was not me.

00:00:43 ◼   ► - It was me.

00:00:45 ◼   ► We were talking about the financial prospects

00:00:47 ◼   ► for Crossy Road, indirectly talking

00:00:49 ◼   ► about the financial prospects.

00:00:51 ◼   ► And Joe F. Tweet was one of the first people to tweet

00:00:53 ◼   ► that when we're looking at the top grossing lists,

00:00:55 ◼   ► he says those ads won't show up

00:00:57 ◼   ► as part of the top grossing, only in-app purchases will.

00:01:01 ◼   ► And I think it's also because that they appear

00:01:03 ◼   ► to be third-party ads and not ads

00:01:05 ◼   ► through Apple's iAd system.

00:01:06 ◼   ► I don't know if you did like Apple's iAds,

00:01:09 ◼   ► if that would contribute to top grossing,

00:01:11 ◼   ► but certainly if you're getting paid through a third party

00:01:14 ◼   ► for the ads and your thing, that won't contribute.

00:01:18 ◼   ► Although it's kind of interesting that the Apple doesn't,

00:01:21 ◼   ► as far as I know, ask for a 30% cut of ads

00:01:24 ◼   ► that you run that are not through Apple.

00:01:26 ◼   ► - Yeah, I'm actually kind of surprised

00:01:27 ◼   ► they allow that at all.

00:01:29 ◼   ► I think the only reason they do is because

00:01:32 ◼   ► people were doing ads in their app before iAd existed,

00:01:35 ◼   ► and I think Apple doesn't really care that much about iAd

00:01:38 ◼   ► to really force that to be the case.

00:01:41 ◼   ► But yeah, it is kind of weird.

00:01:43 ◼   ► You can't do a third-party credit card processing thing

00:01:46 ◼   ► for in-app purchase,

00:01:48 ◼   ► but they allow you to have third-party ads.

00:01:50 ◼   ► - Yeah, that does make a lot of sense.

00:01:52 ◼   ► Not that that ever happens with Apple and their rules.

00:01:55 ◼   ► And then would you like to talk about our friend of the show, Steve Lubitz, and what

00:02:00 ◼   ► he had to tell us?

00:02:01 ◼   ► Yeah, so shortly after we recorded last week's show, we talked a lot about Crossy Road and

00:02:05 ◼   ► its monetization strategy.

00:02:07 ◼   ► The game has changed a little bit of its monetization strategy, and Steve wrote in with one aspect

00:02:13 ◼   ► of that, that you could buy what they call a coin doubler.

00:02:17 ◼   ► You earn coins at a faster rate, and you get a bonus, 1,000 coins for $3.99.

00:02:23 ◼   ► That's buying the piggy bank.

00:02:24 ◼   ► So there is something that doesn't change the gameplay in sort of getting an extra life

00:02:29 ◼   ► or walking on water or slowing down time when the train is coming or anything like that.

00:02:34 ◼   ► It changes parts of the game that are part of monetization.

00:02:39 ◼   ► So when I saw this I said, "Okay, this is like a power-up.

00:02:43 ◼   ► Earn coins faster, right?

00:02:45 ◼   ► But what can you do with those coins?

00:02:47 ◼   ► You're just using them to get more chances at the gumball machine to get your characters."

00:02:53 ◼   ► One thing we didn't mention on the last show,

00:02:54 ◼   ► speaking of the characters,

00:02:55 ◼   ► is that the Gumball Machine is random,

00:02:57 ◼   ► and it doesn't care, like any Gumball Machine,

00:02:59 ◼   ► doesn't care what things you already have.

00:03:01 ◼   ► So as you accumulate players from the Gumball Machine,

00:03:05 ◼   ► you'll end up getting duplicates.

00:03:06 ◼   ► You know, you get another crazy old Ben for the 15th time.

00:03:10 ◼   ► So it's not like you're going to inevitably

00:03:11 ◼   ► get all the characters,

00:03:12 ◼   ► and I don't even know if the Gumball Machine

00:03:14 ◼   ► vends all the characters.

00:03:15 ◼   ► Some of them maybe purchase only.

00:03:17 ◼   ► But they added a bunch of new characters.

00:03:19 ◼   ► They added a thing where you can try out a new character

00:03:22 ◼   ► for a short period of time,

00:03:23 ◼   ► and then at the end of that time,

00:03:24 ◼   ► they let you buy it at a discounted rate.

00:03:27 ◼   ► All sorts of new things are showing up

00:03:28 ◼   ► in updates to this thing.

00:03:29 ◼   ► They're further emphasizing the thing that was always there,

00:03:32 ◼   ► I think the little share sheet that lets you share

00:03:34 ◼   ► like a screenshot of your score and your death.

00:03:36 ◼   ► Now that is much more prominent and makes you notice it.

00:03:38 ◼   ► It's either more prominent or it didn't exist before.

00:03:40 ◼   ► I certainly didn't even know it existed before

00:03:42 ◼   ► 'cause I'm not looking for a share button.

00:03:43 ◼   ► And now it's more in my face.

00:03:45 ◼   ► And not only do I see it in the game,

00:03:46 ◼   ► but I see things that other people post.

00:03:48 ◼   ► So anyway, the monetization strategy of Kowarski Road

00:03:52 ◼   ► fluid and is moving more towards

00:03:55 ◼   ► Things that are slightly more aggressive about getting you to to buy things than it was before I

00:04:01 ◼   ► And I don't think that's because the developer is desperate for money

00:04:04 ◼   ► Because all these things are still pretty mild in the grand scheme of things. They're not

00:04:09 ◼   ► They're they're not punitive. It's still entirely, you know

00:04:14 ◼   ► for fun and

00:04:17 ◼   ► Not you know pay to win type of gameplay still, you know

00:04:20 ◼   ► Even with the coin double nothing affects the actual game which is avoiding being hit by cars and falling in the water and being hit

00:04:25 ◼   ► by trains

00:04:27 ◼   ► If it ever makes that turn, I'm sure we will note it on the program

00:04:30 ◼   ► But I'm pretty confident now especially with seeing cross your own climb the charts that they're doing just fine with this game

00:04:35 ◼   ► Yeah, in fact. I mean it's been a pretty big difference so in I would say the changes

00:04:41 ◼   ► they're making are working to bring them more money because

00:04:43 ◼   ► They've made a pretty large jump in the top grossing chart since last week like when we were talking

00:04:49 ◼   ► They were somewhere around the 200 range of top grossing and now they're like in the 60s

00:04:54 ◼   ► So they did whatever they're doing, you know, the changes they're making are working to bring them in more money

00:05:00 ◼   ► That's more proportional to the actual downloads. Okay. I don't know the timing though

00:05:03 ◼   ► I don't know if they started climbing the charts before or after they rolled out these changes

00:05:07 ◼   ► I don't know the specifics so it could just be you know gaining traction from word-of-mouth and and you know, I

00:05:12 ◼   ► It's so hard to say anyway, it's still a good game. You should still check it out

00:05:16 ◼   ► Tiff is now totally hooked and yeah, I hopped over her name earlier. Yeah

00:05:20 ◼   ► She's very mad at you for continuing to move your score forward to pass hers

00:05:26 ◼   ► I just I stopped moving it for once I became the number one in my game centralist

00:05:30 ◼   ► So I beat my son's score be Jason store and now I'm really played that much. Oh goodness. What is your current score?

00:05:35 ◼   ► My score is depressing as I was trying to be Jason score like it

00:05:38 ◼   ► You know

00:05:39 ◼   ► I couldn't get him to accept my son's friend request so this I can maybe didn't want to accept the request of someone whose score

00:05:45 ◼   ► know would be above his so I'm like all right I'm gonna have to beat it and his score was like 193

00:05:49 ◼   ► and I got 191 and I had that for a while and then I got 192 I had that for a while and boy there's

00:05:56 ◼   ► nothing worse than than seeing yourself die when you're like one hop away from tie and two hops

00:06:01 ◼   ► away from yeah anyway and then I eventually got 216 and I'm depressed by the 216 because when I

00:06:06 ◼   ► got the 216 my death was super stupid I just got I was just so happy that I had won it was like okay

00:06:11 ◼   ► Now I don't really need to go any farther and I could have gone much farther. It was a stupid death

00:06:15 ◼   ► So I'm kind of off that I've gone back to desert golf

00:06:17 ◼   ► Golfing yeah, whatever. I still haven't tried that one, but I am enjoying crossy road more than I probably should it is a good game

00:06:26 ◼   ► So we should probably talk about what Daniel Jalkitt said about push notification spam filtering Marco

00:06:32 ◼   ► Did you get a chance to read this earlier today? I read this ten minutes ago

00:06:35 ◼   ► yeah, so what what we were talking about last episode and

00:06:38 ◼   ► What Daniel was kind of replying to was what especially Marco had talked about with regard to push notification spam and

00:06:46 ◼   ► And how the three of us really didn't come up with a terribly awesome way

00:06:51 ◼   ► To for Apple to filter the spam or take action on the spam and so one of the things we talked about was well

00:06:57 ◼   ► maybe we could they could enlist users to

00:07:00 ◼   ► To help filter the spam and notify Apple of it

00:07:05 ◼   ► And so Daniel had an interesting point,

00:07:07 ◼   ► and I'm gonna read from this post

00:07:08 ◼   ► that we'll put in the show notes.

00:07:09 ◼   ► "Apple can still use its unique role

00:07:11 ◼   ► "as the creator of all things iOS to devise a system

00:07:13 ◼   ► "through which they would themselves

00:07:15 ◼   ► "be virtually subscribed to all unremarkable notifications

00:07:18 ◼   ► "from a particular app's developer.

00:07:20 ◼   ► "Think about the worst notification spam you've seen.

00:07:21 ◼   ► "In my experience, it's not super personalized.

00:07:24 ◼   ► "In fact, it's liable to be an inducement

00:07:26 ◼   ► "to keep using the app, to advance in a game,

00:07:28 ◼   ► "to become more engaged, et cetera.

00:07:30 ◼   ► "I think Apple would collect a ton of useful information

00:07:32 ◼   ► "about spamming developers if they simply arranged

00:07:34 ◼   ► that every app on this app store is capable of sending push notifications included among

00:07:38 ◼   ► its list of registered devices a pseudo-device in Cupertino whose sole purpose was to receive

00:07:44 ◼   ► notifications, scan them for spammy keywords, apply Bayesian filters, and flag questionable

00:07:49 ◼   ► developers.

00:07:50 ◼   ► I think it's a really good idea.

00:07:52 ◼   ► That seems like it would be hard as crap to put together, but it is a very interesting

00:07:57 ◼   ► point.

00:07:58 ◼   ► I mean, when you are in control of the entire ecosystem, you probably can get away with

00:08:01 ◼   ► with doing something like that.

00:08:02 ◼   ► And I was curious to hear what you guys thought.

00:08:04 ◼   ► - See, it's a really good idea.

00:08:06 ◼   ► So what you said earlier in the post

00:08:08 ◼   ► is like one of the problems is they can't just run

00:08:10 ◼   ► these kind of filter server side

00:08:12 ◼   ► because everything's encrypted end to end.

00:08:14 ◼   ► So in order to see the content of a message,

00:08:16 ◼   ► you have to be one of the recipients of the message.

00:08:20 ◼   ► And that's actually not entirely true.

00:08:25 ◼   ► When you send a push notification request,

00:08:29 ◼   ► you send it over SSL, but the server on the other side

00:08:33 ◼   ► has the decryption key and you're just sending

00:08:34 ◼   ► a JSON dictionary.

00:08:36 ◼   ► So your server is not encrypting that data

00:08:39 ◼   ► separately from SSL.

00:08:40 ◼   ► That encryption is happening after it gets

00:08:43 ◼   ► into Apple's hands.

00:08:44 ◼   ► So Dana's assumption early on is actually not correct

00:08:48 ◼   ► that they could be doing the server side if they wanted to

00:08:50 ◼   ► without having this big pseudo device.

00:08:52 ◼   ► I think there's two problems with it.

00:08:54 ◼   ► Number one, it would have to,

00:08:57 ◼   ► it would almost certainly be abused

00:09:00 ◼   ► and worked around very quickly.

00:09:02 ◼   ► For instance, developers could start using different schemes.

00:09:06 ◼   ► So for instance, background refresh,

00:09:09 ◼   ► you can just send whatever you want

00:09:11 ◼   ► as the payload of a silent notification

00:09:13 ◼   ► for background refresh that doesn't show

00:09:15 ◼   ► any text to the user.

00:09:17 ◼   ► Then you can have your app generate a local notification

00:09:21 ◼   ► based on whatever you want

00:09:22 ◼   ► that says whatever you want from that.

00:09:24 ◼   ► That's actually how I send all of mine.

00:09:26 ◼   ► every overcast notification is messageless.

00:09:29 ◼   ► It is a content available notification.

00:09:31 ◼   ► And then the app wakes up, performs a sync,

00:09:34 ◼   ► and then for any new podcast episodes it finds,

00:09:38 ◼   ► it shows a notification from their title.

00:09:40 ◼   ► So all of the text that is being shown to the user

00:09:44 ◼   ► in push notification is not going through Apple servers

00:09:47 ◼   ► and will require the app to be launched to generate.

00:09:51 ◼   ► And of course, developers would very quickly

00:09:53 ◼   ► work around this kind of system if it was in place.

00:09:56 ◼   ► they would show the text in different ways.

00:09:59 ◼   ► They would respond to silent notifications,

00:10:01 ◼   ► or they would encrypt the messages

00:10:03 ◼   ► and then decrypt them with a custom scheme

00:10:04 ◼   ► with the app or whatever.

00:10:06 ◼   ► So that method wouldn't entirely work.

00:10:09 ◼   ► What would work better,

00:10:11 ◼   ► and what would actually be a prerequisite

00:10:15 ◼   ► to having that kind of setup at all,

00:10:18 ◼   ► is if Apple cared.

00:10:20 ◼   ► That's the biggest problem here,

00:10:21 ◼   ► is that it really seems like Apple

00:10:23 ◼   ► doesn't care about this problem

00:10:25 ◼   ► by their complete inaction and complete seeming inability

00:10:30 ◼   ► and unwillingness to enforce this rule

00:10:33 ◼   ► and then to even break it themselves

00:10:34 ◼   ► with one of their teams.

00:10:35 ◼   ► I think it's very clear that Apple simply doesn't think

00:10:39 ◼   ► this is a problem because when Apple thinks something

00:10:41 ◼   ► is a problem, it tends to get attention,

00:10:42 ◼   ► it tends to get addressed.

00:10:45 ◼   ► And then when Apple, you know,

00:10:46 ◼   ► Apple has kind of this tunnel vision sometimes

00:10:48 ◼   ► where whatever they care about,

00:10:51 ◼   ► whatever the hot thing is at that moment,

00:10:53 ◼   ► it gets this laser focus, they do crazy things,

00:10:56 ◼   ► it gets remade or gets massive progress made on it,

00:10:59 ◼   ► and then it gets left alone untouched for 10 years.

00:11:02 ◼   ► And I think this is one of those things where like,

00:11:05 ◼   ► like this is an area of the App Store

00:11:07 ◼   ► that they just don't care about,

00:11:08 ◼   ► like much of the App Store, honestly.

00:11:10 ◼   ► I mean, most of the App Store does not see rapid change.

00:11:13 ◼   ► The policies sure don't.

00:11:15 ◼   ► And I think it's just very clear this is a problem,

00:11:19 ◼   ► this is a problem to geeks like us

00:11:22 ◼   ► and people who are as picky as me,

00:11:25 ◼   ► but Apple does not think this is a problem

00:11:27 ◼   ► because if they thought it was a problem,

00:11:29 ◼   ► they would be doing more to enforce the rule,

00:11:31 ◼   ► and they're not.

00:11:31 ◼   ► - I think there's another reason why

00:11:33 ◼   ► the Jockut proposed solution, ignoring encryption,

00:11:36 ◼   ► ignoring fake local notifications, stuff like that,

00:11:39 ◼   ► even if all those workarounds didn't exist,

00:11:42 ◼   ► this would still require Apple to do two things.

00:11:47 ◼   ► One thing that Apple doesn't like to do

00:11:49 ◼   ► and one thing that they're not very good at.

00:11:51 ◼   ► The thing they don't like to do

00:11:52 ◼   ► is this would require them to essentially log all push notifications, right?

00:11:57 ◼   ► Yeah.

00:11:58 ◼   ► And or store them in some way so that you could verify that they were sent for some, you know,

00:12:02 ◼   ► they would have to store some window of time.

00:12:04 ◼   ► And the reason that we had to store them is because the second thing that I don't think they'd be very good at is

00:12:09 ◼   ► figuring out if something is in

00:12:11 ◼   ► violation of the guidelines by looking at the content computer wise, you know, spam detection and

00:12:17 ◼   ► To do that. Well, it's not easy to do that. Well and do it fast at the same time

00:12:22 ◼   ► So it's not like they could watch up all the traffic as it goes by

00:12:25 ◼   ► Categorize it a spam or not spam and then discard it because what if they got it wrong and they want to retrain their filter

00:12:31 ◼   ► Or whatever so it would have to be stored for some period of time

00:12:33 ◼   ► so even if they could man-in-the-middle everything decrypt everything because they control the key servers and all this other stuff like

00:12:39 ◼   ► Undo all their end-end encryption look at the content great now you're looking at all the push notice

00:12:44 ◼   ► Oh, and by the way, simulate user activity

00:12:47 ◼   ► so that you get the push notifications

00:12:48 ◼   ► that are in response to you using the application

00:12:51 ◼   ► or not using the application

00:12:52 ◼   ► or having used it within a certain period of time.

00:12:55 ◼   ► You'd have to do a hell of a lot to make a fake thing

00:12:59 ◼   ► that behaves in a way that is sure to trigger

00:13:02 ◼   ► all of these spammy push notifications.

00:13:04 ◼   ► Then you're just left with a pile of push notifications

00:13:06 ◼   ► that you have to look at

00:13:07 ◼   ► and determine which ones are legitimate.

00:13:08 ◼   ► And that's hard for humans to do.

00:13:09 ◼   ► I mean, app reviewers can't even determine

00:13:11 ◼   ► if an app is legitimate.

00:13:12 ◼   ► And you're expecting a computer

00:13:14 ◼   ► in a few milliseconds to figure out if a push notification is in violation of the no promotions

00:13:19 ◼   ► rule. So that's why I keep coming back to the only solution to this has to involve some

00:13:25 ◼   ► kind of reporting by recipients. You know, I have received this spam push notification

00:13:33 ◼   ► report this application or disable notifications and maybe like, you know, I was trying to

00:13:37 ◼   ► think of all less intrusive UIs for doing this that wouldn't bother regular people.

00:13:43 ◼   ► when you turn off push notifications for an app,

00:13:46 ◼   ► it may ask you if that, you know,

00:13:48 ◼   ► if that app has ever sent you push notifications

00:13:50 ◼   ► or if it had sent you a push notification recently,

00:13:52 ◼   ► like within the past five minutes,

00:13:53 ◼   ► it may ask you, are you disabling notifications?

00:13:55 ◼   ► Because for one of these five reasons,

00:13:57 ◼   ► and you can say spam, whatever, you know,

00:14:00 ◼   ► like some kind of thing like that,

00:14:01 ◼   ► that only some nerd will see that's heavily gated

00:14:04 ◼   ► on the thing that we all do,

00:14:06 ◼   ► which is something sends you notification,

00:14:08 ◼   ► you realize you forgot to turn it off,

00:14:09 ◼   ► you immediately go to system preferences,

00:14:12 ◼   ► whatever the hell they call it in iOS settings.

00:14:14 ◼   ► And it's a gear icon, it's killing me.

00:14:16 ◼   ► It's in both places now.

00:14:17 ◼   ► (laughing)

00:14:19 ◼   ► And you immediately go to turn it off.

00:14:21 ◼   ► And you know, iOS can detect that sort of pattern

00:14:24 ◼   ► and can throw up something that says, you know,

00:14:26 ◼   ► kind of like those annoying unsubscribe things

00:14:28 ◼   ► like you've successfully unsubscribed.

00:14:30 ◼   ► Did you unsubscribe because

00:14:31 ◼   ► and you never want to answer the questions?

00:14:32 ◼   ► Well, if you're angry because something sent you spam,

00:14:34 ◼   ► I know I would click the little thing

00:14:36 ◼   ► or tap the little thing that says,

00:14:38 ◼   ► yeah, I just disabled it 'cause it sent me an ad

00:14:40 ◼   ► or something that looked like an ad.

00:14:41 ◼   ► And that'll have tons of false positives

00:14:43 ◼   ► from people who are just angry

00:14:44 ◼   ► they got notifications, period.

00:14:45 ◼   ► But the volume of hundreds of millions of iOS users

00:14:48 ◼   ► is enough that they could do these in graphs and say,

00:14:50 ◼   ► all right, this looks like a spammy app,

00:14:52 ◼   ► let's maybe investigate it.

00:14:54 ◼   ► And have five people a week just run that app on their phone

00:14:56 ◼   ► and see if it sends them an ads.

00:14:57 ◼   ► And, you know, yeah, and talk about this last show.

00:15:00 ◼   ► Apple has all the power here.

00:15:02 ◼   ► They can totally stop this.

00:15:04 ◼   ► Like they're not powerless to, you know,

00:15:06 ◼   ► all they have to do, like Margo said,

00:15:09 ◼   ► is care about it a little bit.

00:15:10 ◼   ► And then they can, at their leisure, do almost anything,

00:15:15 ◼   ► almost any possible sort of end-user solution,

00:15:18 ◼   ► really, really lightweight,

00:15:20 ◼   ► and their volumes will make it such

00:15:21 ◼   ► that it'll become super clear

00:15:22 ◼   ► what the popular app that is spamming people is.

00:15:25 ◼   ► You're never gonna get the obscure app

00:15:26 ◼   ► that's spamming people

00:15:27 ◼   ► because seven people haven't installed,

00:15:28 ◼   ► but you'll get the popular app that's spamming people,

00:15:30 ◼   ► and then you send them a nice little note and say,

00:15:32 ◼   ► "Hey, I noticed your app is spamming people.

00:15:33 ◼   ► "Maybe stop that."

00:15:35 ◼   ► And they will stop, and if they don't,

00:15:36 ◼   ► their app has gone out of the store.

00:15:38 ◼   ► It's just, you know, having such incredible power

00:15:41 ◼   ► of everything that's in the App Store,

00:15:42 ◼   ► it's just like they're wasting it by not using it for good.

00:15:45 ◼   ► - Oh yeah, I mean this is, you know,

00:15:48 ◼   ► as we get into the App Store discussion,

00:15:50 ◼   ► I'm sure I'll bring this up again,

00:15:51 ◼   ► but there are so many areas

00:15:52 ◼   ► in which they could use this for good.

00:15:54 ◼   ► For example, the way the new Twitter app scans URL schemes

00:15:59 ◼   ► and maybe process listing, I don't know,

00:16:01 ◼   ► but they scan for the apps you have installed

00:16:04 ◼   ► and they send that list of apps that you have installed

00:16:07 ◼   ► to Twitter and Twitter uses that to advertise to you.

00:16:11 ◼   ► This is a pretty big privacy violation.

00:16:13 ◼   ► People on iOS generally expect,

00:16:16 ◼   ► because the way iOS works in most ways

00:16:19 ◼   ► is that apps are sandboxed

00:16:21 ◼   ► and can't read data from other apps.

00:16:22 ◼   ► They can't even see other apps.

00:16:24 ◼   ► They can't even tell what you have installed,

00:16:26 ◼   ► conceptually at least.

00:16:28 ◼   ► In practice, there are two ways to tell

00:16:29 ◼   ► if you have an app installed.

00:16:30 ◼   ► One is if the app registers for any URL schemes,

00:16:34 ◼   ► then you can check for those,

00:16:36 ◼   ► whether they're registered or not,

00:16:38 ◼   ► and the second is there's a low level,

00:16:41 ◼   ► some kind of assist control function,

00:16:42 ◼   ► something like that, I don't know which exactly one it is,

00:16:44 ◼   ► but there's a low level POSIX function

00:16:46 ◼   ► to get the list of running process names.

00:16:49 ◼   ► And so if you pull that list on a regular basis,

00:16:53 ◼   ► the chances are you're gonna catch a lot of apps

00:16:55 ◼   ► the user has installed in their currently running state,

00:16:57 ◼   ► and so you'll eventually build up a list

00:16:59 ◼   ► of what apps they have installed

00:17:00 ◼   ► based on their process names.

00:17:01 ◼   ► That function, I'm not sure there's a good reason

00:17:05 ◼   ► for that to exist on iOS or to return valid data.

00:17:10 ◼   ► It wouldn't surprise me if in the future,

00:17:13 ◼   ► similar to the way that Apple basically

00:17:15 ◼   ► removed MAC address access from those low-level

00:17:18 ◼   ► system calls in iOS, I think seven did that,

00:17:23 ◼   ► where the call is still there, you can call it,

00:17:25 ◼   ► but it just returns all zeros for a MAC address now.

00:17:28 ◼   ► Similar for that, I don't think there's a reason

00:17:31 ◼   ► why iOS needs this function to return valid process names

00:17:35 ◼   ► to the app that's calling it.

00:17:37 ◼   ► There's no XPC that's app controlled or anything like that.

00:17:40 ◼   ► So if there's a good reason, please let us know once.

00:17:44 ◼   ► (laughing)

00:17:45 ◼   ► - That's not how this works.

00:17:47 ◼   ► - Yeah, I know.

00:17:47 ◼   ► (laughing)

00:17:48 ◼   ► I don't think there's a reason for that.

00:17:50 ◼   ► So I think privacy-wise,

00:17:53 ◼   ► I think Apple should care about this problem

00:17:55 ◼   ► because I think the list of apps you have installed

00:17:57 ◼   ► should be considered private information,

00:18:01 ◼   ► personal information that any one app

00:18:03 ◼   ► shouldn't be able to get a list of apps on your phone.

00:18:06 ◼   ► URL schemes, though, that's a trickier one.

00:18:08 ◼   ► So some apps, they have URL schemes in place

00:18:11 ◼   ► for various workflow things.

00:18:12 ◼   ► There's various reasons why you'd wanna have

00:18:16 ◼   ► and publish a URL scheme, and if you're gonna do that,

00:18:19 ◼   ► I guess there's no real way around that,

00:18:22 ◼   ► around your app being discovered.

00:18:24 ◼   ► On the other hand, there's a lot of apps

00:18:26 ◼   ► that have URL schemes in place for other reasons,

00:18:28 ◼   ► like some OAuth SDK thing, the Facebook login thing,

00:18:33 ◼   ► some plugin or component of your app requires

00:18:37 ◼   ► some kind of work around, like where it kicks you

00:18:39 ◼   ► to some other app, you sign in and then it kicks you

00:18:41 ◼   ► back to your app, and so you have to have a URL scheme

00:18:44 ◼   ► to make that work.

00:18:45 ◼   ► And so a lot of apps have URL schemes

00:18:46 ◼   ► that really aren't using them for any other purpose

00:18:48 ◼   ► besides that sort of thing.

00:18:50 ◼   ► iOS 8 and the new extension system makes a whole lot

00:18:53 ◼   ► of that unnecessary.

00:18:55 ◼   ► So I would actually suggest, and I say this

00:18:58 ◼   ► as one of the designers of X-Callback URL,

00:19:01 ◼   ► I would suggest that URL schemes possibly be deprecated

00:19:04 ◼   ► in the future and removed later after that.

00:19:06 ◼   ► I think that there are better ways around that problem

00:19:08 ◼   ► that they've designed in iOS 8.

00:19:10 ◼   ► If Apple seems to think that it's okay for apps

00:19:13 ◼   ► to have a list of 10,000 known URL schemes

00:19:15 ◼   ► and scrape all your apps and send them to a server

00:19:18 ◼   ► and advertise to you based on that,

00:19:19 ◼   ► which is what they're currently permitting Twitter to do,

00:19:22 ◼   ► if Apple thinks that's okay, that's gonna continue

00:19:24 ◼   ► and that's gonna be in every analytics package

00:19:26 ◼   ► in every scammy ad package for iOS,

00:19:31 ◼   ► and it's gonna become very standard of practice

00:19:32 ◼   ► for apps to spy on your other apps

00:19:34 ◼   ► and report those back to their shady companies.

00:19:38 ◼   ► And that's really not good.

00:19:38 ◼   ► I really don't like that at all.

00:19:40 ◼   ► And so I think as URL schemes become dramatically

00:19:45 ◼   ► less necessary with iOS 8,

00:19:47 ◼   ► maybe the way forward is not to have them

00:19:50 ◼   ► to remove that possible area of abuse.

00:19:53 ◼   ► Secondarily, Apple could just have a rule

00:19:55 ◼   ► that they actually enforce that says,

00:19:58 ◼   ► you can't collect lists of apps from your device

00:20:00 ◼   ► and send them to your servers.

00:20:01 ◼   ► Like, that could just be a rule.

00:20:03 ◼   ► They don't seem to care though.

00:20:06 ◼   ► - Don't you get the feeling like, again,

00:20:08 ◼   ► we have no visibility into what anyone is actually thinking,

00:20:10 ◼   ► so we just have to guess and there's void information.

00:20:13 ◼   ► But that like, there's this tiered system

00:20:16 ◼   ► in terms of developers.

00:20:18 ◼   ► Externally, you're all the same, but internally to Apple,

00:20:21 ◼   ► if the Twitter app starts doing something spammy,

00:20:24 ◼   ► Apple's reaction, I would imagine,

00:20:26 ◼   ► is not to send a generic email from some person that

00:20:31 ◼   ► says your app's gonna be pulled in two weeks

00:20:33 ◼   ► if you don't stop doing this,

00:20:34 ◼   ► like what they do to other people, you know what I mean?

00:20:36 ◼   ► Instead, someone much higher level has a nice,

00:20:40 ◼   ► friendly phone call with someone higher level on Twitter

00:20:42 ◼   ► and they have a discussion about it,

00:20:43 ◼   ► because it's Twitter, what are they gonna do?

00:20:44 ◼   ► Pull the Twitter app?

00:20:45 ◼   ► I mean, yeah, eventually they would if there was some sort

00:20:47 ◼   ► of actual disagreement, I'd totally believe

00:20:49 ◼   ► they would pull the Twitter app,

00:20:50 ◼   ► but you get handled a little bit differently

00:20:52 ◼   ► when you're Twitter.

00:20:53 ◼   ► I know they pulled path for pulling all your contacts and everything but path that was not as big as Twitter and

00:20:58 ◼   ► Like I mean, they're nice to everybody like they're it's not like they're they're mean to other people and nice to Twitter

00:21:04 ◼   ► But it I just get the feeling

00:21:06 ◼   ► based on nothing other than

00:21:09 ◼   ► seeing their actions externally without knowing what's going on in the box and maybe hearing a little bit about sort of the

00:21:14 ◼   ► The treatment and who gets picked to you know, come two weeks early and do a demo for a keynote or whatever

00:21:20 ◼   ► Not every not every developer is treated the same, and I think this is appropriate in general, but it goes against the sort of egalitarian

00:21:26 ◼   ► Idealistic story of the App Store where you know anybody can play and all the rules are the same for everybody

00:21:32 ◼   ► It's not quite doesn't seem like from the outside that it's quite the same for everybody, so I don't

00:21:38 ◼   ► For all we know Apple has already talked to Twitter and say we would really prefer you not to get a list of apps

00:21:44 ◼   ► It's not like we're gonna play you from the store. We know you have schedules

00:21:48 ◼   ► just tell us that in the next version you'll fix this and give us a rough timeline and

00:21:51 ◼   ► we'll say okay and then we won't say anything about it publicly and everything will be fine.

00:21:56 ◼   ► It's totally plausible to me that that could be happening inside Apple but of course we

00:21:59 ◼   ► don't know.

00:22:00 ◼   ► So why don't you tell us about something we do know, Marco?

00:22:04 ◼   ► We do know that we were sponsored this week by a new sponsor, it is Oscar.

00:22:09 ◼   ► Oscar is a new kind of health insurance company.

00:22:11 ◼   ► They use technology to guide you to better care.

00:22:13 ◼   ► It's at highoscar.com/atp.

00:22:17 ◼   ► it's high, like, you know, hi, hi, oscar.com/ATP.

00:22:21 ◼   ► So most health insurers have, you know,

00:22:23 ◼   ► other big corporations as their primary customers,

00:22:25 ◼   ► not individuals and families, and it really shows.

00:22:28 ◼   ► Oscar only offers plans for individuals and families.

00:22:32 ◼   ► They're focused on the needs of the individual.

00:22:34 ◼   ► They put people first,

00:22:35 ◼   ► and they've transformed health insurance

00:22:37 ◼   ► from scary and overwhelming to friendly and simple.

00:22:40 ◼   ► Buying health insurance for yourself

00:22:42 ◼   ► is a pretty intimidating process.

00:22:43 ◼   ► I've gone through it myself a number of times.

00:22:46 ◼   ► Some of which were before the Affordable Care Act.

00:22:48 ◼   ► And let me tell you, that was terrifying.

00:22:50 ◼   ► Because before the Affordable Care Act,

00:22:53 ◼   ► there were all these risks that you would take

00:22:55 ◼   ► that aren't there anymore where it's like,

00:22:56 ◼   ► you have to understand all these different numbers

00:22:58 ◼   ► and all these different conditions

00:22:59 ◼   ► and you always have to ask yourself like,

00:23:00 ◼   ► well, in which ways could this bankrupt me?

00:23:02 ◼   ► Like, unfortunately, most of those things are now illegal.

00:23:05 ◼   ► But there's still a whole bunch of like crazy numbers

00:23:08 ◼   ► you gotta understand and everything.

00:23:10 ◼   ► Oscar makes it as easy as possible.

00:23:12 ◼   ► Oscar, they have these clear, honest language

00:23:15 ◼   ► around their plans.

00:23:16 ◼   ► There's only a few plans to choose from

00:23:17 ◼   ► and they're all pretty much the same plan,

00:23:19 ◼   ► just like how much deductible do you want.

00:23:21 ◼   ► And they had this beautifully designed website

00:23:23 ◼   ► that's easy to use, full of information,

00:23:25 ◼   ► and very, very clear.

00:23:27 ◼   ► You would not believe how bad

00:23:29 ◼   ► other health insurance websites are,

00:23:31 ◼   ► unless you've used them, in which case

00:23:32 ◼   ► you know exactly what I'm talking about.

00:23:34 ◼   ► And Oscar also offers great customer service

00:23:37 ◼   ► via phone or email, which again, is extremely unusual

00:23:41 ◼   ► for health insurance companies.

00:23:43 ◼   ► Oscar plans include benefits like free checkups,

00:23:46 ◼   ► some free generic drugs, free primary care doctor visits,

00:23:50 ◼   ► specialists without referrals,

00:23:51 ◼   ► you don't have to get a referral first, huge time saver.

00:23:54 ◼   ► But the coolest benefit that they have, I think,

00:23:56 ◼   ► they have a 24/7 doctor on call service.

00:24:00 ◼   ► So anytime, day or night, you can request a phone call

00:24:04 ◼   ► and a board certified practitioner will call you

00:24:06 ◼   ► in a few minutes who can help you with many questions

00:24:09 ◼   ► and ailments right over the phone

00:24:10 ◼   ► and they can even issue common prescriptions

00:24:13 ◼   ► all right over the phone and that service is free.

00:24:15 ◼   ► There's no copay, there's no limit.

00:24:17 ◼   ► That service is free for Oscar members.

00:24:19 ◼   ► You can get 24/7 doctors on call.

00:24:22 ◼   ► That's incredible.

00:24:23 ◼   ► Starting in January, Oscar members can receive credit

00:24:26 ◼   ► of up to $240 a year for reaching daily walking goals.

00:24:29 ◼   ► These goals are tailored to you

00:24:30 ◼   ► based on your previous level of activity.

00:24:32 ◼   ► If you wanna participate in this,

00:24:33 ◼   ► Oscar will give you a little wearable thing

00:24:35 ◼   ► and then you track your progress right in their app.

00:24:38 ◼   ► Whether you're entirely healthy or you or someone

00:24:40 ◼   ► in your family has a complicated medical condition,

00:24:42 ◼   ► OSCAR's plans will cover you.

00:24:44 ◼   ► You can buy their insurance through the new health

00:24:46 ◼   ► insurance marketplaces if you're in most of Northern New

00:24:48 ◼   ► Jersey or the parts of New York that are in and around

00:24:50 ◼   ► the city like Westchester, Rockland, Suffolk, Nassau.

00:24:54 ◼   ► So check their website to see if they cover you.

00:24:56 ◼   ► Again, that's most of Northern New Jersey

00:24:58 ◼   ► and Metro New York.

00:24:59 ◼   ► Hi, oscar.com/atp will show you more about that

00:25:02 ◼   ► and let you just type in a zip code.

00:25:04 ◼   ► You can get a quote in like two seconds.

00:25:05 ◼   ► You just type in like a zip code in your age basically

00:25:07 ◼   ► and that's it.

00:25:09 ◼   ► Because of the way the healthcare marketplaces work,

00:25:10 ◼   ► You can only sign up from now through February, so hurry up.

00:25:14 ◼   ► There's these tier deadlines, so if you sign up

00:25:17 ◼   ► in the next couple days by December 15th,

00:25:19 ◼   ► you can get insurance for January 1st.

00:25:21 ◼   ► If you sign up by January 15th,

00:25:23 ◼   ► you'll get insurance for February 1st.

00:25:25 ◼   ► Hurry up if you're into this.

00:25:26 ◼   ► This is not the kind of thing you want to delay on.

00:25:29 ◼   ► If you need to buy health insurance for yourself

00:25:30 ◼   ► and/or your family, this is a great way to do it.

00:25:33 ◼   ► Oscar is a novel approach to an industry

00:25:35 ◼   ► that hasn't been innovative in decades.

00:25:37 ◼   ► To learn more about their plans or to get a quote,

00:25:39 ◼   ► visit highoscar.com/ATP or call,

00:25:43 ◼   ► they have a special number just for ATP listeners,

00:25:46 ◼   ► 1-844-OSC-R-98.

00:25:49 ◼   ► So thanks a lot to OSCAR for sponsoring our show.

00:25:51 ◼   ► Man, buying health insurance does suck.

00:25:54 ◼   ► - It sucks even if you're employed at a regular job

00:25:57 ◼   ► like Jon and I are, it's still a pain in the butt.

00:26:00 ◼   ► - You know, so the self-employed thing

00:26:01 ◼   ► is definitely more difficult and usually more expensive.

00:26:04 ◼   ► But the one big downside of employer provided

00:26:07 ◼   ► is that you usually have little or no choice.

00:26:11 ◼   ► So you don't get to shop around.

00:26:12 ◼   ► What if I liked Oscar and think it's awesome?

00:26:14 ◼   ► Well, tough luck.

00:26:15 ◼   ► You can, you know,

00:26:16 ◼   ► you can't forego the employer funded one

00:26:19 ◼   ► because it's always so much cheaper

00:26:20 ◼   ► 'cause they contribute some money to it,

00:26:22 ◼   ► but you have so few choices.

00:26:24 ◼   ► - You should grit your job.

00:26:25 ◼   ► (laughing)

00:26:28 ◼   ► - Yeah, yeah.

00:26:29 ◼   ► - All right, so anyway,

00:26:30 ◼   ► so we're still not happy with the App Store, are we Marco?

00:26:34 ◼   ► - I thought we were past all this.

00:26:36 ◼   ► I really did.

00:26:37 ◼   ► You know, there was a time when the App Store first came out

00:26:40 ◼   ► and over the first couple of years it was out,

00:26:43 ◼   ► we had a bunch of bumpy rejections

00:26:45 ◼   ► from Apple figuring out its policies,

00:26:47 ◼   ► developers figuring out what Apple wanted,

00:26:49 ◼   ► Apple at first being pretty bad

00:26:51 ◼   ► about communicating their policies

00:26:52 ◼   ► and then later getting less bad at it.

00:26:54 ◼   ► Overall, App Review is a good idea.

00:26:57 ◼   ► Overall, I support App Review

00:27:00 ◼   ► and overall, I think it has benefited customers

00:27:03 ◼   ► and developers at Apple.

00:27:05 ◼   ► But there are still these dark patches

00:27:08 ◼   ► and there are still times when it seems like

00:27:12 ◼   ► Apple is a little bit too,

00:27:15 ◼   ► I wouldn't necessarily say power hungry,

00:27:17 ◼   ► but they seem to be too strictly or overreaching

00:27:22 ◼   ► in their rule enforcement in a way that doesn't seem

00:27:25 ◼   ► to benefit anybody, possibly even including Apple.

00:27:29 ◼   ► That they're not seemingly looking out

00:27:32 ◼   ► for any kind of clear user benefit.

00:27:35 ◼   ► There's no major reason why, at least that we can see,

00:27:39 ◼   ► why Apple needs to enforce certain rules

00:27:42 ◼   ► or wants to enforce certain rules.

00:27:44 ◼   ► And there are a lot of rules they enforce

00:27:46 ◼   ► that are unwritten.

00:27:47 ◼   ► And this is the biggest problem,

00:27:50 ◼   ► this is one of the things that's going on now

00:27:52 ◼   ► around these notification center widgets.

00:27:54 ◼   ► And there seems to be this disconnect.

00:27:56 ◼   ► These are two different parts of Apple,

00:27:58 ◼   ► two very, very distantly separated parts of Apple.

00:28:01 ◼   ► So on one end you have Craig Federighi

00:28:03 ◼   ► and his organization making the software

00:28:06 ◼   ► and making the SDKs and adding these great abilities

00:28:10 ◼   ► to the OSs.

00:28:11 ◼   ► But developer relations and all parts

00:28:14 ◼   ► of developer relations, including app review,

00:28:17 ◼   ► are all buried deeply in Phil Schiller's organization.

00:28:21 ◼   ► So these are very separate parts of Apple.

00:28:23 ◼   ► And I think what we're seeing here,

00:28:26 ◼   ► we've seen some speculation over the last couple days

00:28:29 ◼   ► from a couple of blogs.

00:28:30 ◼   ► In fact, I'm a Stratechery member, Ben Thompson's site, Stratechery.

00:28:36 ◼   ► I'm one of his premium members, and so I get his daily updates, and I highly recommend

00:28:41 ◼   ► these daily updates.

00:28:42 ◼   ► They're extremely good.

00:28:43 ◼   ► He is one of the smartest writers in our business right now, and he wrote one today basically

00:28:48 ◼   ► saying, along with a few other things I've seen recently, that it sure seems like maybe

00:28:53 ◼   ► there's some friction here between Shiloh's organization and Federighi's organization.

00:28:58 ◼   ► I don't know enough about it to say any more than that,

00:29:00 ◼   ► but I think looking from the outside,

00:29:01 ◼   ► it does certainly seem like these two different parts

00:29:03 ◼   ► of Apple are not on the same page on everything.

00:29:06 ◼   ► And something is going wrong there.

00:29:08 ◼   ► There's some kind of friction or communication breakdown

00:29:11 ◼   ► or different priorities.

00:29:13 ◼   ► Something is going wrong there because we have the massive,

00:29:18 ◼   ► as we said this past summer at WBC,

00:29:20 ◼   ► the massive love letter to developers

00:29:22 ◼   ► that Apple basically had this past summer,

00:29:24 ◼   ► saying look at all this great new stuff,

00:29:26 ◼   ► all these walls we're lifting,

00:29:27 ◼   ► All these things you thought we'd never do,

00:29:29 ◼   ► well we did 'em.

00:29:30 ◼   ► All these things you thought your apps could never do,

00:29:32 ◼   ► now you can do them.

00:29:34 ◼   ► Now, months later, after this stuff is out

00:29:36 ◼   ► and in consumers' hands and these OSes are out,

00:29:39 ◼   ► and people actually start trying to do things with them,

00:29:41 ◼   ► we're seeing so many problems and rejections

00:29:45 ◼   ► from the app review side of things.

00:29:47 ◼   ► Oh, and by the way, also a third division

00:29:51 ◼   ► is the App Store editorial team, which is under ADQ.

00:29:55 ◼   ► So you have the people who make the SDKs,

00:29:58 ◼   ► the people who pick which apps are featured

00:30:00 ◼   ► to be great examples of what apps should be doing,

00:30:03 ◼   ► and then the people making the policies

00:30:04 ◼   ► of actually enforcing those rules,

00:30:06 ◼   ► those are all three different organizations

00:30:07 ◼   ► under three different SVPs inside Apple,

00:30:10 ◼   ► and who apparently have different viewpoints on things.

00:30:13 ◼   ► - I don't know if you could say that the development

00:30:15 ◼   ► is in conflict with any of those other two.

00:30:18 ◼   ► You could say that App Review and App Store Auditorial

00:30:22 ◼   ► are at best just not communicating with each other

00:30:26 ◼   ► and doing embarrassing things.

00:30:27 ◼   ► But engineering, their responsibility is in cooperation

00:30:32 ◼   ► with whatever their product design thing

00:30:35 ◼   ► or whoever's designing what the product's gonna do.

00:30:37 ◼   ► Engineering's job is to implement it

00:30:40 ◼   ► and maybe, I don't know if the product design

00:30:41 ◼   ► is under that umbrella, but probably.

00:30:43 ◼   ► Anyway, they create the APIs

00:30:45 ◼   ► and every API they create, there's some expectation

00:30:49 ◼   ► is like, we're just going to make something possible.

00:30:52 ◼   ► But although you may be able to do a thing with these APIs--

00:30:56 ◼   ► for example, read all the contacts

00:30:57 ◼   ► and email them to your server.

00:30:59 ◼   ► Like the people who made those APIs,

00:31:00 ◼   ► it's not their fault that you can do that.

00:31:02 ◼   ► It's like, we're going to implement these features.

00:31:04 ◼   ► We're going to make these APIs that make features possible.

00:31:07 ◼   ► I don't know if--

00:31:09 ◼   ► I don't think Craig Vitteri sees it as his responsibility

00:31:12 ◼   ► to worry about-- and whatever APIs we make,

00:31:15 ◼   ► obviously some developer is going

00:31:16 ◼   ► to use those APIs to do something

00:31:18 ◼   ► that App Review is going to reject.

00:31:20 ◼   ► And that does not necessarily imply a conflict

00:31:22 ◼   ► between Craig Federighi and the App Review section

00:31:25 ◼   ► of the organization.

00:31:27 ◼   ► I don't think he would say that he sees it as his role

00:31:30 ◼   ► to make those decisions because they aren't his decisions.

00:31:32 ◼   ► There are features that they want developers to be able

00:31:35 ◼   ► to add to their products that are made possible by his APIs.

00:31:38 ◼   ► There are also things that people can do with the APIs

00:31:41 ◼   ► that the engineering side makes

00:31:43 ◼   ► that are gonna be against App Review.

00:31:44 ◼   ► And that is the way it's always been.

00:31:47 ◼   ► Anecdotes about like well, I showed this to an engineer in the you know in the labs the WWDC and they thought it was awesome

00:31:53 ◼   ► Yeah, they probably do think it's awesome

00:31:56 ◼   ► But again, they they know they're not in charge of app review and they're excited to see someone using their API to do something cool

00:32:03 ◼   ► but I all but I still don't think that it implies a conflict between engineering and the rest the organization I think the

00:32:09 ◼   ► the only thing we can say for sure is the

00:32:13 ◼   ► embarrassing lack of communication between

00:32:15 ◼   ► editorial and app review in terms of promoting an application and then pulling it while it's under promotion like that's just

00:32:21 ◼   ► That's the type of thing that shouldn't happen if those things communicate with each other better. So

00:32:24 ◼   ► There could be a conflict between it's a natural like we're geeks out here

00:32:29 ◼   ► we're like if something is possible and and we can't think of a reason why we shouldn't do it, it should be allowed and

00:32:35 ◼   ► that's sort of a

00:32:38 ◼   ► Sort of Apple engineers mindset a true engineers mindset would be like, you know

00:32:42 ◼   ► well the Linux thing if it's possible everyone should be allowed to do it is free, you know,

00:32:45 ◼   ► anarchy for all. The Apple mindset if it's possible and if we think about it and we can't

00:32:50 ◼   ► think of a reason to stop it then it should be possible. So it's probably true that if you were

00:32:55 ◼   ► to poll the entire organization the vast majority of the people who work in engineering in Apple

00:32:59 ◼   ► would say yes that should be possible and no I would never poll the pcalc you know thing for

00:33:04 ◼   ► for putting a calculator in that today view, but I'm hesitant to turn it into a vice president

00:33:13 ◼   ► versus vice president internal turf war type battle.

00:33:16 ◼   ► Oh yeah, that's why I'm careful to say that it's under these people's organizations.

00:33:21 ◼   ► We don't know if Schiller is involved with these decisions personally or if Federighi

00:33:25 ◼   ► is mad about these decisions personally or anything like that, but what we can clearly

00:33:29 ◼   ► see is that these parts of Apple are not working together correctly.

00:33:35 ◼   ► And it's so bad that it's leaking out that it's publicly visible.

00:33:39 ◼   ► But do you think, like I said, I think this is the correct working of engineering and

00:33:44 ◼   ► App Review, in that engineering makes the APIs and App Review decides if the things

00:33:48 ◼   ► developers are using them for are allowed.

00:33:51 ◼   ► Our complaint is that App Review is making decisions that we don't agree with.

00:33:55 ◼   ► And that conflict with editorial.

00:33:56 ◼   ► - Yeah, and like I said, that could just,

00:33:59 ◼   ► I'm willing to chalk that up to lack of communication.

00:34:02 ◼   ► - Well, but that's a pretty big thing,

00:34:04 ◼   ► because see, and this is coming at a particularly bad time

00:34:08 ◼   ► for Apple, because right now, in this time,

00:34:12 ◼   ► late 2014, the last couple weeks of 2014,

00:34:15 ◼   ► the Apple Watch is coming out soon,

00:34:18 ◼   ► iPad sales are not that great,

00:34:20 ◼   ► it is harder than ever to make money in the App Store,

00:34:22 ◼   ► and Android is massive.

00:34:25 ◼   ► And Android just released a major update,

00:34:28 ◼   ► the whole paper thing, whatever they call it,

00:34:30 ◼   ► material design, like the Android 5.0,

00:34:32 ◼   ► that's actually getting pretty good reviews from people.

00:34:35 ◼   ► So what we have is, Apple is enforcing all these rules,

00:34:39 ◼   ► they've been enforcing all these rules for years,

00:34:41 ◼   ► and they have this crazy position of power

00:34:43 ◼   ► because there was really no other place to go

00:34:47 ◼   ► if you wanted to make any reasonable money developing apps.

00:34:49 ◼   ► I mean, some people make money on Android,

00:34:52 ◼   ► it's possible to, but it's historically been harder.

00:34:55 ◼   ► As hard as you think it is on iOS to make money,

00:34:58 ◼   ► it's historically been even harder on Android.

00:35:00 ◼   ► And a lot of things just weren't as good on Android.

00:35:04 ◼   ► But that gap is closing.

00:35:05 ◼   ► And I'm not sure it ever will close, period.

00:35:08 ◼   ► I don't think it will anytime soon.

00:35:10 ◼   ► But it's a lot smaller than it's ever been before.

00:35:13 ◼   ► Meanwhile, at the exact same time,

00:35:14 ◼   ► you have the iPad not doing particularly well,

00:35:18 ◼   ► relative to how it was doing.

00:35:21 ◼   ► You have immense competition in the App Store

00:35:24 ◼   ► that drives prices way, way down

00:35:26 ◼   ► and makes it very hard to make any money.

00:35:28 ◼   ► And you have this new platform, the watch,

00:35:31 ◼   ► that you're expected to develop for in parallel.

00:35:35 ◼   ► And this is combining to make it a tougher sell

00:35:39 ◼   ► than it previously has been to be an iOS developer.

00:35:42 ◼   ► You have now more platforms you need to target,

00:35:45 ◼   ► there's more work for you to do.

00:35:47 ◼   ► You might have to do adaptive layout

00:35:50 ◼   ► to make resizable iPad apps,

00:35:51 ◼   ► if that ever ships, like we talked about before.

00:35:54 ◼   ► So there's more and more work to be a current,

00:35:58 ◼   ► up-to-date, responsible iOS developer.

00:36:00 ◼   ► There's more and more work than there's ever been before.

00:36:02 ◼   ► The alternative of Android development is less bad

00:36:07 ◼   ► than it used to be relative to iOS development.

00:36:09 ◼   ► And you're making less money on iOS than you've ever made before.

00:36:14 ◼   ► This is not a good time for Apple to add more reasons

00:36:17 ◼   ► for developers to become disillusioned with the platform.

00:36:20 ◼   ► This is strategically a really terrible time for that

00:36:24 ◼   ► because Apple needs fantastic developers

00:36:27 ◼   ► to do two big things for it.

00:36:29 ◼   ► It needs good developers to push the boundaries

00:36:32 ◼   ► to make the iPad a better general computing device

00:36:35 ◼   ► than it is, and it needs developers to make great apps

00:36:38 ◼   ► for this new watch coming out in the spring.

00:36:40 ◼   ► And on some level, there's always gonna be more developers.

00:36:43 ◼   ► You can always say, well, there's more people waiting.

00:36:46 ◼   ► When you guys all leave, more people will come in.

00:36:48 ◼   ► There's always gonna be a fresh batch,

00:36:49 ◼   ► like the entertainment industry,

00:36:50 ◼   ► lots of industries work that way.

00:36:52 ◼   ► That's true, but if you want the best developers

00:36:56 ◼   ► making the best apps, and if you want

00:36:59 ◼   ► the boundaries to be pushed, if you want,

00:37:01 ◼   ► what Apple said in WWDC, they said,

00:37:04 ◼   ► on a number of occasions, we can't wait

00:37:06 ◼   ► to see what you do with this stuff.

00:37:09 ◼   ► And then they see what we do with it,

00:37:10 ◼   ► and they tell us, oh, you can't do half of that.

00:37:12 ◼   ► - As long as you do what they want you to do.

00:37:14 ◼   ► - Right, I mean, they need good developers

00:37:17 ◼   ► to push the boundaries and to make fantastic software

00:37:20 ◼   ► that is sustainable and that takes advantage

00:37:23 ◼   ► of the platform and that pushes it

00:37:25 ◼   ► and makes it useful for people

00:37:26 ◼   ► and it makes people buy their devices

00:37:28 ◼   ► and stick with their ecosystem.

00:37:30 ◼   ► They need us right now more than their actions say.

00:37:35 ◼   ► - Yeah, if we had to pick out things that are in conflict,

00:37:38 ◼   ► it's not that engineers conflict

00:37:40 ◼   ► with any of the non-engineering parts,

00:37:42 ◼   ► but it's the broad trends within Apple

00:37:45 ◼   ► in sort of the post-jobs era

00:37:46 ◼   ► that in the recent years, and especially in this most recent year, 2014, engineering's

00:37:52 ◼   ► reorganization, which has gone through a lot of growing pains and change of leadership,

00:37:58 ◼   ► and Steve Jobs goes and Forrestal goes and things are realigned, and there are new people,

00:38:02 ◼   ► and Johnny Ives elevated and all that stuff.

00:38:04 ◼   ► All of that rejiggering has culminated in an engineering organization that, like you

00:38:09 ◼   ► said, Marco, and like I said in my Yosemite review and everything, an engineering organization

00:38:15 ◼   ► that does things that previously it had refused to do,

00:38:18 ◼   ► but that had been widely desired

00:38:22 ◼   ► by their constituent developers

00:38:24 ◼   ► and indirectly by their customers.

00:38:26 ◼   ► That is the overall trends in engineering

00:38:28 ◼   ► in the last year or so.

00:38:29 ◼   ► And it's the result of all,

00:38:31 ◼   ► you have to think it's the result

00:38:32 ◼   ► of all these reorganizations that whoever was opposing this

00:38:34 ◼   ► is either not in power, not in the company anymore,

00:38:36 ◼   ► or lost an argument, right?

00:38:38 ◼   ► And now suddenly engineering is doing things

00:38:40 ◼   ► that are directly beneficial to developers

00:38:44 ◼   ► and indirectly beneficial so far to customers,

00:38:47 ◼   ► 'cause customer is one of these things too.

00:38:49 ◼   ► Whereas app review has not undergone, as far as I know,

00:38:53 ◼   ► such an organizational change,

00:38:55 ◼   ► and is instead acting the way it has always acted

00:38:58 ◼   ► sort of in cycles where a lot of the time it's dormant

00:39:01 ◼   ► and sleeping, and then sometimes the bear wakes up

00:39:03 ◼   ► and bites you.

00:39:04 ◼   ► And we've had fits of that, you know, it's gone in cycles

00:39:09 ◼   ► and why is it awake now?

00:39:10 ◼   ► Why is it sleeping other times?

00:39:12 ◼   ► Hard to say, but one thing you can say is

00:39:15 ◼   ► it has not undergone the same transformation

00:39:17 ◼   ► that the engineering organization has gone through.

00:39:19 ◼   ► It's App Store is not suddenly letting in things

00:39:21 ◼   ► that it previously let in.

00:39:22 ◼   ► It is not suddenly being more reasonable,

00:39:25 ◼   ► being more transparent, you know,

00:39:27 ◼   ► explaining itself better.

00:39:29 ◼   ► Like the only thing you can say

00:39:30 ◼   ► for the app reorganization is that they have cut down

00:39:32 ◼   ► on wait times, that consistently the trend has been,

00:39:35 ◼   ► you know, don't have ridiculous wait times for things

00:39:38 ◼   ► with a few bumps in the road for like releases

00:39:40 ◼   ► where the Mac apps have to be delayed forever

00:39:42 ◼   ► and stuff like that.

00:39:43 ◼   ► - Usually it's about a week still.

00:39:44 ◼   ► And you'd be able to say it's about a week

00:39:47 ◼   ► for the last five years.

00:39:49 ◼   ► - Right, so the overall trend,

00:39:50 ◼   ► like if you look at the entire history of the app store,

00:39:52 ◼   ► is that they have moved that metric

00:39:53 ◼   ► to be better in a way that developers like

00:39:57 ◼   ► and that indirectly benefits customers,

00:39:58 ◼   ► which is the same sort of yardstick

00:40:00 ◼   ► I was using in engineering.

00:40:01 ◼   ► And so it's all the more glaring

00:40:03 ◼   ► when engineering is suddenly doing things

00:40:06 ◼   ► that everyone would have said are no-blame,

00:40:08 ◼   ► and doing them in a cautious way,

00:40:09 ◼   ► doing them in a good Apple way,

00:40:10 ◼   ► but making positive progress

00:40:12 ◼   ► where we say, you know, iOS 8 is better for developers

00:40:15 ◼   ► than iOS 7 was and so on and so forth.

00:40:18 ◼   ► Whereas App Review just does not seem

00:40:20 ◼   ► to be making any progress.

00:40:21 ◼   ► And I'm not familiar with the internal organization

00:40:24 ◼   ► of App Review or that side of the organization,

00:40:26 ◼   ► but if it has undergone any sort of transformation

00:40:30 ◼   ► or change in leadership that is,

00:40:34 ◼   ► that sort of parallels the engineering one,

00:40:35 ◼   ► I'm not aware of it.

00:40:36 ◼   ► And if it hasn't undergone that,

00:40:37 ◼   ► then that entire organization looks to me

00:40:40 ◼   ► like a typical corporate organization with people who are in power who are

00:40:43 ◼   ► stubborn who are wrong and who can't be convinced by their underlings right like

00:40:47 ◼   ► and you just stuck it's like well I disagree with you and I'm your boss the

00:40:50 ◼   ► end the other interesting thing to go back just a half step to what Marco was

00:40:55 ◼   ► saying is that not only our developers feeling like we got a little bit of a

00:41:02 ◼   ► bait-and-switch from WWDC because I believe Marco you did and I know I wrote

00:41:06 ◼   ► blog posts on the way back from WWDC about how you know we finally got all

00:41:11 ◼   ► the things we've been asking for we finally got all the things we wanted and

00:41:14 ◼   ► you know it's so I don't remember who was that said it first but it's like

00:41:18 ◼   ► Lucy and and Charlie Brown with the football you know and so here it is we

00:41:22 ◼   ► got all the things we want oh just kidding and and so developers are

00:41:27 ◼   ► obviously furious but a lot of users that I speak to just regular people who

00:41:33 ◼   ► not developers, they're getting more and more frustrated with Apple too.

00:41:36 ◼   ► It started with Apple Maps being crap and Google Maps not being available.

00:41:42 ◼   ► And then it continued to buggy iOS 7 that all of a sudden looks different and people

00:41:48 ◼   ► keep telling me how iOS 8 is buggy.

00:41:50 ◼   ► And to be honest, I haven't really had any particular issues.

00:41:53 ◼   ► But that being said, it seems like a lot of people I know who used to be really into all

00:41:59 ◼   ► things Apple maybe aren't. And that's a tough place to be. And so here it is, Apple is in

00:42:09 ◼   ► a position where they really shouldn't be pissing off their developers, not only for

00:42:12 ◼   ► the developer's sake, but also for users' sake.

00:42:15 ◼   ► Do you have any actual, any non-geeky user friends who talk to you about applications?

00:42:21 ◼   ► Are you just talking about the luster of Apple's gone off, or are you talking about users who

00:42:25 ◼   ► notice the transmit can't send things to iCloud Drive anymore?

00:42:27 ◼   ► No, no, no, no, the former, where the luster,

00:42:30 ◼   ► how it's always infallible, they always work.

00:42:33 ◼   ► - But that luster goes in cycles too,

00:42:34 ◼   ► that's just the typical celebrity type,

00:42:36 ◼   ► build 'em up, tear 'em down.

00:42:38 ◼   ► I don't attach anything particular to that,

00:42:40 ◼   ► because the cycle for that is practically yearly

00:42:44 ◼   ► at this point.

00:42:44 ◼   ► Yearly everybody loves Apple,

00:42:46 ◼   ► and yearly everybody hates it.

00:42:47 ◼   ► It seems to be getting faster.

00:42:49 ◼   ► - Oh yeah, although to be fair,

00:42:51 ◼   ► one thing that does definitely impact customers

00:42:53 ◼   ► is when an app is approved with a certain feature,

00:42:56 ◼   ► they buy it, they use that feature,

00:42:57 ◼   ► and then they have to remove that feature

00:42:59 ◼   ► because of Apple's policy after the fact.

00:43:01 ◼   ► - That's why I was asking, I was asking if people,

00:43:03 ◼   ► if people noticed that, like,

00:43:04 ◼   ► do they read the release notes?

00:43:05 ◼   ► Do they just get mad at the developer?

00:43:07 ◼   ► Like, does that blame even land on Apple?

00:43:08 ◼   ► Or do people, do the type of features

00:43:10 ◼   ► that get removed in that way,

00:43:11 ◼   ► are they below the notice of people?

00:43:13 ◼   ► Because, you know, the feature

00:43:15 ◼   ► that was removed from transmit,

00:43:16 ◼   ► people who use transmit are already probably kind of geeky,

00:43:20 ◼   ► and maybe they read the release notes.

00:43:22 ◼   ► I'm trying to think if there's like a mass market example,

00:43:24 ◼   ► like if the Facebook app could do something

00:43:25 ◼   ► that everybody thought was great and then Apple removed it.

00:43:28 ◼   ► Maybe that would get some notice,

00:43:30 ◼   ► but I've never heard any person who uses iOS

00:43:34 ◼   ► complain to me that an app was updated

00:43:35 ◼   ► and a feature was removed.

00:43:37 ◼   ► - I have, but it was not at all because of Apple.

00:43:40 ◼   ► Everyone I know is furious about you not being able

00:43:45 ◼   ► to send messages in the standard Facebook app anymore,

00:43:48 ◼   ► and you have to download a different Facebook Messenger app

00:43:51 ◼   ► in order to send messages.

00:43:52 ◼   ► - Oh yeah, no, I remember that, yes.

00:43:53 ◼   ► And that was and that blame landed on Facebook and that totally was Facebook as they decided to split their own stupid app

00:43:58 ◼   ► so whatever but

00:44:00 ◼   ► Yeah, I guess they would notice that because that is a that's sort of cutting an application in half into into two pieces

00:44:05 ◼   ► but for for features that are

00:44:09 ◼   ► Banned because of app store rules. I don't know like I mean it just may just be the people I come in contact

00:44:16 ◼   ► It's not big. It's not that big of a deal like

00:44:19 ◼   ► Again, a lot of these issues are magnified for us because of the the circles we travel in

00:44:23 ◼   ► the Apple losing its luster type thing is more likely a tertiary effect of what Arco was talking about where it's like

00:44:30 ◼   ► Apple needs developers to help drive its platform forward and

00:44:34 ◼   ► Developers are trying to drive it forward and every time they go, you know, take a step too far Apple

00:44:40 ◼   ► You know snaps the weapons as well. Not that far

00:44:42 ◼   ► We don't want you to make that too useful

00:44:43 ◼   ► Right like but we have to think about this for a cup for six months or nine months or we have some senior repeat

00:44:48 ◼   ► who really thinks we should never, ever do that.

00:44:50 ◼   ► So we're never gonna let you do that.

00:44:52 ◼   ► It's like, how do you, you become gun shy.

00:44:55 ◼   ► You become, you know, sort of like,

00:44:56 ◼   ► there's many, many articles from developers

00:44:59 ◼   ► expressing their reservations about using new APIs.

00:45:02 ◼   ► Like even in best case, it's just like,

00:45:04 ◼   ► let's lay off this new API for a year

00:45:06 ◼   ► and see how many people invested in it for a year

00:45:09 ◼   ► and get their app rejected.

00:45:10 ◼   ► And then maybe we'll get the lay of the land

00:45:12 ◼   ► and sort of divine with chicken bones

00:45:14 ◼   ► and other, you know, dice and stuff and figure out,

00:45:17 ◼   ► I think this will probably be okay.

00:45:18 ◼   ► We'll work on this for six months and see.

00:45:21 ◼   ► It's making developers more cautious

00:45:22 ◼   ► and really they should be blazing their way forward

00:45:24 ◼   ► and making apps that, you know, like the stupid line,

00:45:27 ◼   ► you know, the apps that Apple hasn't even thought of before.

00:45:30 ◼   ► Show us your amazing apps.

00:45:31 ◼   ► It's just like, you get the feeling

00:45:33 ◼   ► that in some Apple executives' mind,

00:45:35 ◼   ► they're like, make amazing apps

00:45:37 ◼   ► exactly the way I'm envisioning my mind

00:45:38 ◼   ► that I'm not gonna tell you about.

00:45:40 ◼   ► I have a picture in my mind

00:45:41 ◼   ► of what an amazing app would be like.

00:45:42 ◼   ► I'm not gonna tell you what that picture is.

00:45:44 ◼   ► Go make it and if you don't, I'm gonna reject your app.

00:45:46 ◼   ► Like that's, it's a chilling effect on development.

00:45:49 ◼   ► And so like, if customers are gonna notice anything,

00:45:53 ◼   ► it's gonna be this multi-year delayed thing

00:45:55 ◼   ► from developers being more cautious to use APIs

00:45:57 ◼   ► and then bring out apps later

00:46:00 ◼   ► and without more interesting features.

00:46:01 ◼   ► And all you need is, you know,

00:46:04 ◼   ► I was thinking of, Marco already brought this up,

00:46:07 ◼   ► but like, what does it take for someone to switch?

00:46:09 ◼   ► What does it take for someone to say,

00:46:10 ◼   ► well, screw this, I'm gonna undevelop for Android now.

00:46:13 ◼   ► They need to be able to make money doing it.

00:46:14 ◼   ► And some structural issues probably need to be sorted out

00:46:19 ◼   ► so they become less of a deterrent.

00:46:20 ◼   ► Like for an iOS developer,

00:46:22 ◼   ► even with all the devices that are out there now,

00:46:24 ◼   ► you have to think fragmentation and install base

00:46:27 ◼   ► of the most recent version are a huge drag

00:46:31 ◼   ► on switching over to Android

00:46:32 ◼   ► because you just have to wait for so long

00:46:34 ◼   ► for the 5.0 to be everywhere.

00:46:38 ◼   ► And then you have to deal with so many more devices

00:46:40 ◼   ► that you have to wait for some sort of consolidation.

00:46:42 ◼   ► - Well, but even that is not nearly as bad

00:46:44 ◼   ► it used to be though.

00:46:45 ◼   ► Like they did this crazy thing,

00:46:46 ◼   ► I don't know the crazy details of it,

00:46:47 ◼   ► but they did this crazy thing a couple years ago

00:46:49 ◼   ► where they started bundling all the APIs together

00:46:51 ◼   ► into the Google Play services which can self update.

00:46:54 ◼   ► - I was thinking like hardware recommendations

00:46:55 ◼   ► and the screen sizes and CPU and GPU combinations,

00:46:59 ◼   ► stuff like that, again.

00:47:00 ◼   ► - It's a problem for really just games.

00:47:02 ◼   ► Like for apps it's a lot less of a problem

00:47:04 ◼   ► because the GPUs stop mattering as much for apps than games.

00:47:08 ◼   ► - Well I know but like the reason,

00:47:09 ◼   ► I'm not just thinking of games,

00:47:10 ◼   ► what I'm thinking of is in terms of

00:47:12 ◼   ► what kind of applications are going to drive the platform

00:47:15 ◼   ► forward and do amazing things that no one had ever thought of.

00:47:17 ◼   ► And those are always the ones that push the system.

00:47:19 ◼   ► And it's easier-- right now, it's

00:47:20 ◼   ► easier to make those on iOS because you have a better

00:47:24 ◼   ► idea of what you're going to be aiming at

00:47:26 ◼   ► and the install basis on a more recent version.

00:47:28 ◼   ► So if you're going to do something amazing in advance,

00:47:30 ◼   ► you can make more money doing it on iOS, and it will be easier.

00:47:33 ◼   ► What will it take for those people

00:47:34 ◼   ► to bail and go to Android and try to do the same thing?

00:47:36 ◼   ► Because that's what you don't want to happen

00:47:37 ◼   ► is someone to come up with a new app idea that hasn't existed.

00:47:40 ◼   ► Let's take BitTorrent as an example,

00:47:42 ◼   ► because pretend BitTorrent didn't exist

00:47:44 ◼   ► and someone came up with that idea and all our phones were,

00:47:47 ◼   ► this is a terrible idea 'cause it would kill your battery.

00:47:48 ◼   ► But anyway, some type of application

00:47:52 ◼   ► that does something that would not be allowed

00:47:54 ◼   ► on the App Store, but that has a user benefit,

00:47:58 ◼   ► like users really like this application

00:47:59 ◼   ► and this application would not be possible in iOS

00:48:01 ◼   ► and it happens to land on Android first.

00:48:03 ◼   ► And everybody's like, well, I would get an Apple phone,

00:48:05 ◼   ► but only Android has insert whatever this killer app is.

00:48:09 ◼   ► That's Apple's worst nightmare.

00:48:12 ◼   ► If Twitter came out today and was only available in Android

00:48:14 ◼   ► because Apple didn't allow SMS access or some crazy thing,

00:48:19 ◼   ► whatever, you don't want-- you want to have that app.

00:48:23 ◼   ► You want to have-- even if it's something as stupid as Flappy

00:48:25 ◼   ► Bird, and even though I'm sure there was on Android too

00:48:27 ◼   ► and everything, you want to be the platform where

00:48:31 ◼   ► the great new thing happens.

00:48:32 ◼   ► And you can't plan for the great new thing.

00:48:34 ◼   ► And you don't know where it's going to come from.

00:48:35 ◼   ► And you don't know who's going to make it.

00:48:36 ◼   ► And you don't know when it's going to appear.

00:48:38 ◼   ► But you do know that the more you restrict your platform,

00:48:41 ◼   ► But the higher the chances that this thing will appear only someplace else.

00:48:45 ◼   ► Well, and it has a lot to do with also who is using your platform.

00:48:49 ◼   ► You know, like somebody in the chat pointed out, it was Hi Endian in the chat pointed

00:48:53 ◼   ► out, like, you know, a lot of times the gotta have it apps that are only on one platform,

00:49:00 ◼   ► a lot of times that's not because of technological limitations.

00:49:03 ◼   ► It's because the developer happened to use that platform or the most early adopters are

00:49:07 ◼   ► on that platform.

00:49:08 ◼   ► For the most part, that platform today is iOS,

00:49:10 ◼   ► and it has been iOS for a while.

00:49:13 ◼   ► I think since the iPhone was launched, it's been iOS.

00:49:16 ◼   ► But that's not guaranteed to always be the case.

00:49:20 ◼   ► Like Instagram launched on iOS first,

00:49:22 ◼   ► because that's just what you did in 2010

00:49:24 ◼   ► or whenever it launched.

00:49:25 ◼   ► Today, I don't think anything would launch Android first,

00:49:30 ◼   ► but it would be increasingly difficult

00:49:32 ◼   ► for a service to get really big and be iPhone only today.

00:49:36 ◼   ► because the expectation gets higher every year

00:49:39 ◼   ► that you should be on both of those platforms

00:49:41 ◼   ► at the same time.

00:49:42 ◼   ► I would, you know, I'm still fine being iOS only

00:49:44 ◼   ► 'cause I'm just one guy and I'm not trying

00:49:45 ◼   ► to take over the world and make a billion dollars

00:49:46 ◼   ► from Facebook stock, but I couldn't recommend

00:49:49 ◼   ► to like a big VC-backed company that wants explosive growth,

00:49:53 ◼   ► I couldn't recommend to them that you should go

00:49:55 ◼   ► iOS only necessarily.

00:49:57 ◼   ► I think at this point you gotta have both.

00:49:59 ◼   ► And it's only a matter of time.

00:50:00 ◼   ► Once you've reached this point where we can say,

00:50:03 ◼   ► well, you know, you really should be looking

00:50:05 ◼   ► at both platforms.

00:50:06 ◼   ► It's only a matter of time before something big happens

00:50:10 ◼   ► on Android first.

00:50:12 ◼   ► And I don't think we're near that point yet.

00:50:14 ◼   ► I think we're still a few years off

00:50:15 ◼   ► from that being very likely.

00:50:17 ◼   ► But the direction we're going, that will eventually happen.

00:50:21 ◼   ► And I don't think Apple really cares about that.

00:50:24 ◼   ► Or that I think they're in denial,

00:50:26 ◼   ► or I think they, either they don't think it will happen,

00:50:29 ◼   ► or they don't think it will be very important.

00:50:31 ◼   ► And I think they're wrong on both of those

00:50:33 ◼   ► if they're making those assumptions.

00:50:35 ◼   ► - Well, the other thing Apple has going forward

00:50:36 ◼   ► in that area, and it seems to be their strategy so far,

00:50:39 ◼   ► this is kind of a game console's analogy,

00:50:41 ◼   ► is they just gotta sell a lot of consoles.

00:50:43 ◼   ► Like, no matter how annoying your platform is,

00:50:46 ◼   ► one knob that can always turn is,

00:50:50 ◼   ► let's just sell a bazillion friggin' iOS hardware devices.

00:50:53 ◼   ► 'Cause if we sell, we need to keep selling those,

00:50:56 ◼   ► 'cause if we don't sell enough,

00:50:57 ◼   ► those would be like Windows Phone

00:50:58 ◼   ► and it'll make anything for us.

00:50:59 ◼   ► And we just need to maintain some kind of,

00:51:02 ◼   ► within some kind of striking distance of Android's market share so that it doesn't become that

00:51:07 ◼   ► big of a deal.

00:51:08 ◼   ► Because if Apple had 15% market share, it wouldn't matter how awesome their platform

00:51:12 ◼   ► is, it wouldn't matter how permissive their app review rules are, they would be like Windows

00:51:15 ◼   ► Phone.

00:51:16 ◼   ► It would be like, "Yeah, that's nice, whatever.

00:51:17 ◼   ► You have some good developers, you make some good apps, but it's not enough."

00:51:20 ◼   ► So they need to make good hardware and sell a lot of it.

00:51:22 ◼   ► And so far, they've been doing pretty good on that.

00:51:24 ◼   ► So it's giving them the room to screw up an app review without as many consequences because

00:51:31 ◼   ► is just like, well, like I said with Android,

00:51:34 ◼   ► no matter how annoying it is,

00:51:35 ◼   ► Android has such a massive market share

00:51:36 ◼   ► that if you are going to be

00:51:39 ◼   ► one of the biggest companies in the world,

00:51:40 ◼   ► you have to address it,

00:51:41 ◼   ► because it doesn't matter how bad Android is,

00:51:43 ◼   ► you just have to.

00:51:44 ◼   ► It's like, it's more than half the market.

00:51:45 ◼   ► You gotta go do it.

00:51:46 ◼   ► And Android is, Apple is only a contender

00:51:50 ◼   ► because it's got a lot of market share,

00:51:52 ◼   ► a big market share, and it's perceived as being better

00:51:55 ◼   ► and having customers who are more willing

00:51:57 ◼   ► to spend money and so on and so forth.

00:51:59 ◼   ► - Yeah, I mean Apple definitely has a larger share

00:52:01 ◼   ► of the most desirable customers for most people right now.

00:52:04 ◼   ► And they have for a while.

00:52:06 ◼   ► But I think the percentage share of that

00:52:09 ◼   ► goes down every year for Apple.

00:52:11 ◼   ► I don't know that for sure, I'm just guessing.

00:52:13 ◼   ► And I still think they have a pretty healthy lead,

00:52:15 ◼   ► but again, it's like, if you look at the sum of all of this,

00:52:20 ◼   ► of why somebody would develop for iOS only or first,

00:52:24 ◼   ► there used to be a lot of very strong reasons.

00:52:26 ◼   ► There were a bunch of apps out there,

00:52:28 ◼   ► There were a bunch of,

00:52:30 ◼   ► like this is where people look to get apps.

00:52:32 ◼   ► There was a bunch of money to be made potentially.

00:52:35 ◼   ► All the early adopters use this platform.

00:52:37 ◼   ► You personally use this platform.

00:52:38 ◼   ► You like this platform.

00:52:40 ◼   ► There's so many great things you can do

00:52:41 ◼   ► only on this platform or easiest on this platform.

00:52:44 ◼   ► All those advantages,

00:52:46 ◼   ► or at least most of those advantages still exist today.

00:52:49 ◼   ► All of them are weaker though than they used to be.

00:52:52 ◼   ► Every time Apple does a chilling effect kind of thing,

00:52:56 ◼   ► like with App Review,

00:52:57 ◼   ► It drops that barrier lower and lower and lower.

00:53:02 ◼   ► And again, it's a slow progression.

00:53:04 ◼   ► No single one of these factors

00:53:07 ◼   ► is totally collapsing suddenly.

00:53:09 ◼   ► They're all just lowering slowly over time.

00:53:12 ◼   ► And I fear that this is gonna catch Apple by surprise

00:53:17 ◼   ► if one day there starts to be some spillover

00:53:19 ◼   ► and Apple just misses it or they didn't see it coming.

00:53:24 ◼   ► And then what happens after that?

00:53:26 ◼   ► What happens when a few prominent iOS developers

00:53:30 ◼   ► really do switch to Android and really start making

00:53:32 ◼   ► really good stuff on Android and not on iOS?

00:53:35 ◼   ► I don't think we're very far away from that happening.

00:53:37 ◼   ► I think that starts to happen this coming year.

00:53:40 ◼   ► And I don't know what happens after that.

00:53:42 ◼   ► But I think the barriers that Apple built around itself

00:53:46 ◼   ► are substantially lower and weaker

00:53:49 ◼   ► than I think Apple thinks they are.

00:53:51 ◼   ► - You think in the next year someone's prominent developer

00:53:54 ◼   ► is gonna bail?

00:53:55 ◼   ► Definitely. Yeah.

00:53:57 ◼   ► Like who? I don't think so.

00:53:59 ◼   ► I mean... I think with the watch coming, there's a lot...

00:54:01 ◼   ► that's a lot to distract people. I agree.

00:54:03 ◼   ► You know, that... well, what... that happened with the

00:54:05 ◼   ► iPad. I remember like when... right before

00:54:07 ◼   ► the iPad came out was when

00:54:09 ◼   ► the Nexus One came out.

00:54:11 ◼   ► And a whole bunch of iOS developers were

00:54:13 ◼   ► like, "Oh man, the Nexus One,

00:54:15 ◼   ► that's kind of interesting." And then Google sent a bunch of them for

00:54:17 ◼   ► free, so a lot of people, including me, I should disclose.

00:54:19 ◼   ► And I started to think,

00:54:21 ◼   ► "Oh, I wonder if I should make Instapaper's website

00:54:23 ◼   ► better on this, maybe eventually I'll make an app for it someday, and then Apple announced

00:54:27 ◼   ► the iPad like a month later and then we all got distracted by the iPad for three years.

00:54:33 ◼   ► That might happen with the watch.

00:54:35 ◼   ► Maybe Apple's banking on that, maybe Apple's assuming that will happen with the watch.

00:54:38 ◼   ► I'm not entirely sure it will.

00:54:41 ◼   ► I think, first of all, you know, watch kit in year one is going to be pretty limited

00:54:46 ◼   ► in what you can even do with it and what kind of apps even make sense to have a watch app.

00:54:51 ◼   ► Not to mention, if you think Apple is being,

00:54:54 ◼   ► you know, controlling and arbitrary and capricious

00:54:56 ◼   ► with the App Store rules with today widgets,

00:54:59 ◼   ► you haven't seen anything yet.

00:55:00 ◼   ► 'Cause wait 'til the watch comes out

00:55:02 ◼   ► and they start denying apps for that

00:55:04 ◼   ► for things that we consider invalid or stupid reasons

00:55:07 ◼   ► or they start enforcing inconsistent rules for that.

00:55:10 ◼   ► Believe me, there's gonna be a lot of that going on.

00:55:12 ◼   ► (laughs)

00:55:13 ◼   ► Like, I'm actually honestly a little,

00:55:16 ◼   ► and there's another thing too,

00:55:17 ◼   ► I think a lot of developers

00:55:19 ◼   ► are gonna draw that same conclusion

00:55:20 ◼   ► and they're gonna see the stuff that Apple's pulling now

00:55:23 ◼   ► with the iOS 8 things and today widgets and stuff,

00:55:26 ◼   ► and they're gonna look at this new SDK we got

00:55:28 ◼   ► with the watch game and be like,

00:55:29 ◼   ► "Well, should I really spend the next three months

00:55:31 ◼   ► "developing a watch kit thing,

00:55:33 ◼   ► "or should I just wait and see how the market shakes out,

00:55:35 ◼   ► "because we're gonna see a whole bunch of app review BS

00:55:39 ◼   ► "next spring when this comes out.

00:55:41 ◼   ► "We're gonna see a lot of app review BS

00:55:42 ◼   ► "over the first few months."

00:55:44 ◼   ► - Yeah, but when the watch first comes out though,

00:55:46 ◼   ► there's the gold rush, like you said, with the iPad.

00:55:48 ◼   ► If you're one of the first apps available

00:55:50 ◼   ► does X on the watch, you get a massive,

00:55:53 ◼   ► a massive leg up on everybody else.

00:55:54 ◼   ► You always want to be there when a new device,

00:55:56 ◼   ► especially a new category of device,

00:55:58 ◼   ► like the iPad, like the iPhone.

00:56:00 ◼   ► So I don't think that's going to dissuade many people

00:56:03 ◼   ► who think they have a shot at being there on the launch.

00:56:05 ◼   ► - Maybe, but again, though, there's also,

00:56:07 ◼   ► there's not a whole lot you can do

00:56:09 ◼   ► with the WatchKit apps quite yet.

00:56:11 ◼   ► - It doesn't matter.

00:56:12 ◼   ► You can charge 99 cents for your app

00:56:14 ◼   ► that has watch integration and you get 99 cents

00:56:16 ◼   ► or 70, whatever, 69.9.

00:56:19 ◼   ► - Well, it's not really that cut and dry though, right?

00:56:21 ◼   ► Because you need to have a standalone app first

00:56:25 ◼   ► in order to have a WatchKit app.

00:56:26 ◼   ► And presumably many of the WatchKit apps

00:56:30 ◼   ► will be built upon standalone apps

00:56:32 ◼   ► that presumably you've already paid for

00:56:34 ◼   ► unless you pull a Tweety too.

00:56:36 ◼   ► I don't know, in any case,

00:56:37 ◼   ► let's talk about something else that's really cool.

00:56:39 ◼   ► - It's Backblaze.

00:56:40 ◼   ► We are sponsored once again by Backblaze,

00:56:42 ◼   ► our friends that are in the online backup business.

00:56:44 ◼   ► Now, let me tell you about online backup.

00:56:46 ◼   ► You need this, your family needs this,

00:56:48 ◼   ► everyone you know needs this.

00:56:49 ◼   ► Casey needs this, John needs this, everybody needs this.

00:56:53 ◼   ► Let me tell you, you need online backup.

00:56:54 ◼   ► It's amazing because there are so many catastrophes,

00:56:57 ◼   ► minor disasters, problems that can happen,

00:57:00 ◼   ► that can take out your data on your computer

00:57:02 ◼   ► and any drives that are physically connected to it

00:57:06 ◼   ► or any drives that are in your house with it.

00:57:09 ◼   ► Things like fires, floods, power surges, theft,

00:57:12 ◼   ► all sorts of problems that can happen

00:57:15 ◼   ► that would take out your data with it.

00:57:16 ◼   ► Even just like human error sometimes.

00:57:18 ◼   ► There's a lot of human error you can do.

00:57:20 ◼   ► If your backup is a RAID array, you're so screwed.

00:57:23 ◼   ► Remember, RAID is not a backup.

00:57:25 ◼   ► Anyway, so you want online backup, trust me.

00:57:29 ◼   ► When you go, if you're visiting your family

00:57:31 ◼   ► this holiday season, if you see your parent

00:57:34 ◼   ► or grandparent or sibling's computer without online backup,

00:57:38 ◼   ► give them the gift of installing backplays for them.

00:57:40 ◼   ► So online backup is really, really important.

00:57:44 ◼   ► To use John Gruber's words, if you don't have it,

00:57:45 ◼   ► you're nuts, you should really, really get online backup.

00:57:48 ◼   ► And Backblaze is by far the best one that I have tried.

00:57:52 ◼   ► And I used it long before they were a sponsor of the show.

00:57:55 ◼   ► I've been using it for years.

00:57:56 ◼   ► I tried two other ones recently

00:58:00 ◼   ► and was very disappointed in both of them

00:58:03 ◼   ► for my network drive needs.

00:58:05 ◼   ► Believe me, Backblaze is the one you want.

00:58:08 ◼   ► Backblaze is unlimited and unthrottled

00:58:11 ◼   ► and you get it for just five bucks a month.

00:58:13 ◼   ► So literally this unlimited disk space,

00:58:15 ◼   ► no matter how much you have.

00:58:16 ◼   ► To combine between me and Tiff,

00:58:17 ◼   ► I think we have something like six terabytes now

00:58:20 ◼   ► in Backblaze, it's a lot.

00:58:22 ◼   ► Unlimited disk space, five bucks per month per computer.

00:58:25 ◼   ► Backblaze is amazing, they have iOS and Android apps

00:58:28 ◼   ► to access and share all your backed up files

00:58:29 ◼   ► so you can access your files on the go,

00:58:32 ◼   ► you can do single file restores if you want,

00:58:34 ◼   ► if you're like on a laptop and you forgot a file at home

00:58:37 ◼   ► and you're on vacation somewhere,

00:58:38 ◼   ► you can get to your files that way.

00:58:40 ◼   ► Backblaze runs natively on your Mac,

00:58:42 ◼   ► it is not like a weird Java app or anything,

00:58:44 ◼   ► It's a native Mac OS X app founded by ex-Apple engineers.

00:58:48 ◼   ► Runs native on your Mac, runs native on Yosemite.

00:58:52 ◼   ► They're always up to date with new OS releases.

00:58:54 ◼   ► I've never had Backblaze break on me with an upgrade.

00:58:57 ◼   ► There's no add-ons, there's no gimmicks,

00:58:58 ◼   ► there's no extra charges.

00:58:59 ◼   ► Really, five bucks a month for unlimited, unthrottled,

00:59:02 ◼   ► fully native online backup for the Mac.

00:59:04 ◼   ► It really is the simplest online backup program to use.

00:59:08 ◼   ► Just install it and it does the rest.

00:59:09 ◼   ► So really, this holiday season,

00:59:11 ◼   ► go to your loved ones, install Backblaze.

00:59:13 ◼   ► Someday they will thank you for that.

00:59:15 ◼   ► Maybe not immediately.

00:59:16 ◼   ► They're gonna wonder what you're doing immediately.

00:59:18 ◼   ► Someday they will thank you for that.

00:59:19 ◼   ► Thanks a lot to Backblaze for sponsoring our show once again.

00:59:22 ◼   ► - All right, any other thoughts on the App Store stuff

00:59:25 ◼   ► before we move along?

00:59:26 ◼   ► - There's always, it's like follow up.

00:59:28 ◼   ► It's like there's always gonna be thoughts on the App Store.

00:59:30 ◼   ► Never ending pit of thoughts.

00:59:32 ◼   ► - My final thought I think is that

00:59:34 ◼   ► it's within Apple's power and they have done it before

00:59:38 ◼   ► to smooth over the worst of these misfires

00:59:41 ◼   ► by talking directly to the effective developers

00:59:44 ◼   ► until they're roughly satisfied.

00:59:46 ◼   ► And that is simultaneously the best and the worst thing

00:59:49 ◼   ► that can happen.

00:59:50 ◼   ► It's the best thing in that people come out of it happy.

00:59:54 ◼   ► We get the features we want.

00:59:56 ◼   ► Everyone comes to a compromise.

00:59:57 ◼   ► Everyone walks away satisfied.

00:59:58 ◼   ► It's the worst thing that could happen,

00:59:59 ◼   ► and then it doesn't address the structural problem, which

01:00:02 ◼   ► causes these bear attack flare-ups from App Review

01:00:05 ◼   ► and has for years and years.

01:00:06 ◼   ► So I don't know if we should just be hoping for a larger

01:00:09 ◼   ► crisis, which will become a Christ-tunity for us to, for, for Apple to actually fix

01:00:14 ◼   ► the problems that ail it, or we should be hoping for just for, you know, the, the bad

01:00:20 ◼   ► decisions to be reversed and to go back to the sleeping bear.

01:00:22 ◼   ► Yeah, we'll see. I mean, I don't know. It's just, it seems like such a silly problem to

01:00:27 ◼   ► have, but whatever. Speaking of silly problems to have, let's talk about time commitments.

01:00:35 ◼   ► And I wanted to talk about a couple things.

01:00:39 ◼   ► First is FastText is not for sale anymore.

01:00:42 ◼   ► What?

01:00:43 ◼   ► I pulled it today.

01:00:44 ◼   ► There goes your M3.

01:00:45 ◼   ► I know, right?

01:00:46 ◼   ► Tens of people a day are going to be disappointed by this.

01:00:48 ◼   ► Haha, that'd be a good day.

01:00:51 ◼   ► Now I pulled it for a handful of reasons, and there's a point here, but it's going

01:00:55 ◼   ► to take me a second to get there.

01:00:57 ◼   ► I pulled it because…

01:00:59 ◼   ► Aqua hire?

01:01:00 ◼   ► Yeah, that's totally it.

01:01:03 ◼   ► I pulled it because I feel like I'm kind of kidding myself in thinking that I'm going

01:01:12 ◼   ► to find the time to get it updated for iOS 7 and given that we're already months into

01:01:20 ◼   ► iOS 8, that's kind of getting ridiculous.

01:01:24 ◼   ► I'm getting to the point that I'm feeling guilty every time I do see a sales day of

01:01:28 ◼   ► more than zero, which is most days, although if it's more than five, I'm doing a happy

01:01:32 ◼   ► dance.

01:01:34 ◼   ► I'm feeling guilty about selling someone something that's so dated and knowing deep down in my

01:01:42 ◼   ► heart of hearts that the likelihood of me updating it is not good.

01:01:48 ◼   ► And as John Chigie assumed in the chat, I'm really getting over that being a joke now.

01:01:55 ◼   ► And to be honest, it deserves to be a joke.

01:01:57 ◼   ► It is kind of ridiculously funny, and it's absurd that we are on iOS 8 and I have not

01:02:02 ◼   ► yet updated for iOS 7.

01:02:05 ◼   ► But in the end of the day, it occurred to me that it's really serving no good purpose.

01:02:10 ◼   ► It served its purpose, which was for me to prove to myself that I could get something

01:02:14 ◼   ► in the App Store, and I did.

01:02:16 ◼   ► And I am still proud of that accomplishment, but I'm no longer really proud of the way

01:02:21 ◼   ► the app is today.

01:02:23 ◼   ► And it's a little better on my phone because I've updated most of the issues for iOS 7

01:02:28 ◼   ► and 8.

01:02:29 ◼   ► I still have a couple of lingering bugs that I haven't had time to look at.

01:02:32 ◼   ► But – and I was talking to Erin about it earlier today.

01:02:36 ◼   ► I don't – I can't imagine a time where I'm going to look at her – and now we're

01:02:40 ◼   ► getting a little into analog territory.

01:02:42 ◼   ► But I can't imagine a time where I'm going to look at her and say, "You know what?

01:02:45 ◼   ► Rather than spending time with you and Declan, let me go and hole myself up in the office

01:02:49 ◼   ► and fight with AutoLeo."

01:02:50 ◼   ► That is a bar that you can apply to almost anything else in life and decide that it's

01:02:55 ◼   ► something that you shouldn't do.

01:02:56 ◼   ► But anyway, why not just leave it there and have it be free?

01:02:59 ◼   ► I could, but then it's still going to be, "Oh, haha, you still haven't updated it yet."

01:03:05 ◼   ► And I'm just, I'm over that because it's true and ridiculous.

01:03:09 ◼   ► Like, I'm grumpy about it, I think, because I know it's true.

01:03:13 ◼   ► Like if it was like the "Who the hell is Casey?"

01:03:15 ◼   ► joke, I still find that kind of funny because it's hopefully not really true anymore.

01:03:20 ◼   ► And so I've gotten past it.

01:03:21 ◼   ► But--

01:03:22 ◼   ► You're more famous than us now.

01:03:23 ◼   ► I don't know about that.

01:03:24 ◼   ► But anyway, but in this case, it is true.

01:03:28 ◼   ► And that's just-- I'm feeling super guilty about it.

01:03:34 ◼   ► Have you done a lot of open source development or contributing to open source projects?

01:03:39 ◼   ► Not really.

01:03:40 ◼   ► I mean, I have Camel out on GitHub, which I actually wanted to talk about as well.

01:03:44 ◼   ► But in terms of contributing to like massive open source projects, I haven't.

01:03:49 ◼   ► because the couple times I have and Pigeon is an example which is the multi-protocol

01:03:55 ◼   ► IAM client or library if nothing else.

01:03:59 ◼   ► This is the library that runs ADM, ADM, whatever you call it on the Mac.

01:04:02 ◼   ► Is that the name of the library?

01:04:03 ◼   ► I thought it was LibPurple.

01:04:04 ◼   ► It was the AIM library and Pigeon is the client.

01:04:11 ◼   ► You are correct.

01:04:12 ◼   ► It's LibPurple and Pigeon is the client.

01:04:13 ◼   ► You're absolutely right.

01:04:14 ◼   ► Anyways, I looked into contributing to, I actually may not have even been LibPurple,

01:04:19 ◼   ► it might have been Adium, and I started looking at this code and went, "I have no idea what

01:04:25 ◼   ► the hell's going on here."

01:04:27 ◼   ► And I found that in a couple of open source projects I've briefly considered contributing

01:04:31 ◼   ► to, the code was so crazy complex that, and I feel like I'm pretty good at what I do,

01:04:38 ◼   ► But it was so esoteric and wild that I realized it was not even worth jumping in.

01:04:45 ◼   ► And so I have, in short, I haven't really contributed to any established open source

01:04:50 ◼   ► projects, no.

01:04:51 ◼   ► I bring that up because in this implied time commitments of open source projects, which

01:04:56 ◼   ► is the subheading here under this topic, what I was thinking of is my open source projects

01:05:03 ◼   ► that I started myself or published somewhere or contributed to that I did years and years

01:05:08 ◼   ► ago and most of them are all still out there and they are far worse off than fast text,

01:05:12 ◼   ► believe me.

01:05:13 ◼   ► They are far, far, like things that I haven't worked on in a decade or more and were never

01:05:20 ◼   ► very good because they're written by, you know, the much younger version of myself,

01:05:25 ◼   ► right?

01:05:26 ◼   ► And I mean before I even get into the time commitment things, like that there's code

01:05:30 ◼   ► out there with my name on it that's terrible, that I'm embarrassed by, but I don't pull

01:05:34 ◼   ► it because it's like, that's sort of part of the open source thing.

01:05:36 ◼   ► It's like, I write the source code, I put it up there, and it's free for anyone to grab

01:05:41 ◼   ► and use.

01:05:43 ◼   ► Am I working on it?

01:05:44 ◼   ► No.

01:05:45 ◼   ► Am I adding features?

01:05:46 ◼   ► No.

01:05:47 ◼   ► Am I fixing bugs?

01:05:48 ◼   ► That's a bigger discussion, but it's super low priority, but it would never occur to

01:05:53 ◼   ► me to take it down.

01:05:56 ◼   ► And maybe it's like Casey said, where he doesn't have enough distance from it either, like

01:06:00 ◼   ► who is Casey thing where it's not true,

01:06:02 ◼   ► or you feel that these complaints are founded.

01:06:06 ◼   ► If someone complained to me that one of my CPAN modules

01:06:09 ◼   ► is a piece of crap, I would agree with them,

01:06:11 ◼   ► as Casey seems to agree that FastX

01:06:13 ◼   ► is out of date at this point.

01:06:15 ◼   ► But it wouldn't drive me to pull it.

01:06:18 ◼   ► I would, like, I don't think I have,

01:06:22 ◼   ► I don't think there is an implied commitment for me

01:06:25 ◼   ► to continue to maintain for free this open source code

01:06:29 ◼   ► that I wrote in 1997, right?

01:06:31 ◼   ► I mean, although to be fair, the context is different of having an app in the App

01:06:34 ◼   ► Store versus having a CPAN module available.

01:06:37 ◼   ► But if it's free, if it's for charge--

01:06:39 ◼   ► I understand that, because you're charging people money,

01:06:40 ◼   ► you feel bad about that.

01:06:41 ◼   ► But if it's free, then it's exactly like the open source code in the sense

01:06:46 ◼   ► that, well, whatever, you get what you're paid for.

01:06:49 ◼   ► You didn't like it.

01:06:49 ◼   ► It was a crappy app.

01:06:50 ◼   ► Delete it from your phone.

01:06:51 ◼   ► You didn't pay a dime for it, right?

01:06:52 ◼   ► If you don't like the software, it looks great to you, and you download it,

01:06:55 ◼   ► delete it from your disk.

01:06:56 ◼   ► Fine.

01:06:57 ◼   ► It's the same type of thing.

01:06:59 ◼   ► And the reason in case he said he was pulling it is because he felt he felt bad or guilty when people would complain that

01:07:05 ◼   ► The app wasn't updated and it's like yeah, the app's not updated

01:07:07 ◼   ► I'm not doing fast text anymore, but fast text that I did do is there if it stops working on iOS

01:07:13 ◼   ► Then yeah, pull it or mark it as only working on the old diver like eventually it will age out if you don't modify it

01:07:18 ◼   ► Right unlike most open source software because Unix never changes like it'll it'll more or less continue to work

01:07:23 ◼   ► right, or if it doesn't people just stop complaining about it, but

01:07:27 ◼   ► Anyway, that's how I feel about my older projects is that I feel the same way as Casey does

01:07:32 ◼   ► Embarrassed by them embarrassed by they're not being not being updated

01:07:35 ◼   ► You know and and I feel the same way about future putting more time into it

01:07:40 ◼   ► Am I going to know because I have many other things that I'm doing with my time these days

01:07:43 ◼   ► But I but my decision given all of those things is not to pull it but just to leave it there

01:07:49 ◼   ► Festering I guess on the internet

01:07:51 ◼   ► No, I mean like I totally get this

01:07:54 ◼   ► I mean I went through some of the same things with bug shot

01:07:57 ◼   ► Bug shot does not work on the new iPhones for some reason and I I don't even know why I never really listen to

01:08:05 ◼   ► The I haven't I haven't spent five minutes on it. It could be a five minute fix. I don't know

01:08:09 ◼   ► the reason why it doesn't work is less important than the reason why I'm not working on it, which is that

01:08:15 ◼   ► It made no money like it basically no money. It made I think

01:08:21 ◼   ► dollars the vast majority of which was the very first month.

01:08:27 ◼   ► That's no money?

01:08:28 ◼   ► Oh, you're adorable.

01:08:29 ◼   ► No, well.

01:08:30 ◼   ► Well, you tell me how much money my CPAN modules.

01:08:31 ◼   ► Let me tell you how much money FastText has made.

01:08:33 ◼   ► I don't think I've…

01:08:35 ◼   ► But I win.

01:08:36 ◼   ► I win at zero dollars.

01:08:37 ◼   ► You do.

01:08:38 ◼   ► You do.

01:08:39 ◼   ► But I don't have the numbers in front of me, so I don't want to lie.

01:08:41 ◼   ► But I am extraordinarily confident it's less than a thousand dollars.

01:08:45 ◼   ► And I'm pretty confident it was at or less than 500.

01:08:50 ◼   ► over the course of, I think, four years

01:08:51 ◼   ► it's been in the store.

01:08:53 ◼   ► - Okay, well, regardless, I feel like a jerk,

01:08:56 ◼   ► but it made that amount of money up front,

01:09:00 ◼   ► and then it just stopped making money.

01:09:02 ◼   ► Like, it was down to, and I remember there was even

01:09:05 ◼   ► a brief time when we were comparing Bugshot

01:09:06 ◼   ► to Fasttech sales there, and they were fairly comparable.

01:09:09 ◼   ► So, like, it had a good month, and then it was over.

01:09:14 ◼   ► So, the fact is, it didn't work on iOS 8

01:09:17 ◼   ► on these new devices, and whether it's the OS

01:09:19 ◼   ► of the devices, I don't even know.

01:09:21 ◼   ► It wasn't even worth spending 15 minutes on

01:09:22 ◼   ► because if I'm going to make Bugshot continue as a product,

01:09:27 ◼   ► I would want to do a proper update to it for iOS 8,

01:09:31 ◼   ► which would mean full photo library integration

01:09:34 ◼   ► so that you could, for instance, annotate a screenshot

01:09:37 ◼   ► and then delete it from your camera roll,

01:09:39 ◼   ► which you can't do in the current version

01:09:40 ◼   ► 'cause you couldn't do that with the old SDK.

01:09:41 ◼   ► Things like be an extension so that you could,

01:09:44 ◼   ► they have the photo editing extension type.

01:09:46 ◼   ► why isn't Bugshot a photo editing extension?

01:09:49 ◼   ► So I would want to do that to it.

01:09:51 ◼   ► I would want to make it a proper updated app

01:09:54 ◼   ► if I'm gonna keep it in the store and keep it working

01:09:56 ◼   ► and keep it running as a product.

01:09:58 ◼   ► And the fact is, it just doesn't make enough money,

01:10:01 ◼   ► it never made enough money to make that really worth doing.

01:10:04 ◼   ► And so when I look at how do I wanna spend this time,

01:10:09 ◼   ► which is what you were saying, which I'm getting back to,

01:10:11 ◼   ► when you look at do I wanna spend this evening of coding,

01:10:15 ◼   ► Fixing Bugshot, which should really be

01:10:18 ◼   ► at least a couple of weeks of coding

01:10:19 ◼   ► to really do what I would want with it.

01:10:21 ◼   ► So do I wanna spend the next two weeks of coding time

01:10:23 ◼   ► fixing Bugshot or improving Overcast,

01:10:27 ◼   ► which is making money and which is

01:10:29 ◼   ► seemingly a more deserving source of my time?

01:10:32 ◼   ► Or if I'm throwing around two weeks of coding time,

01:10:36 ◼   ► should I even try a whole different app,

01:10:37 ◼   ► maybe some crazy thing for the watch?

01:10:39 ◼   ► Should I try a whole new product

01:10:41 ◼   ► to give that a chance to succeed?

01:10:43 ◼   ► So I made the decision, it was not worth me putting

01:10:47 ◼   ► any more time into it, I didn't want to put

01:10:48 ◼   ► any more time into it because it simply wasn't interesting

01:10:51 ◼   ► and it wasn't going to pay off.

01:10:54 ◼   ► And the things I wanted to do with it

01:10:57 ◼   ► were never gonna be worth doing with it.

01:10:59 ◼   ► And so Casey, first of all, I feel like a jerk

01:11:02 ◼   ► for ever making fun of you now, but second of all--

01:11:05 ◼   ► - But it was deserved, well, deserved just maybe

01:11:08 ◼   ► of poor choice of words, but it was accurate.

01:11:11 ◼   ► - I mean, it wasn't meant to be insulting,

01:11:12 ◼   ► it was meant to be funny, you know.

01:11:13 ◼   ► So now I feel like a jerk and I'm sorry,

01:11:14 ◼   ► but I don't wanna make you feel bad,

01:11:16 ◼   ► but I totally understand what you're saying,

01:11:19 ◼   ► which is like, you can't foresee a time

01:11:22 ◼   ► where you're gonna choose to spend your time doing that

01:11:25 ◼   ► instead of anything else with your work or family.

01:11:28 ◼   ► And I get that, I totally get that.

01:11:30 ◼   ► Like, if that's your reason, I totally support it

01:11:33 ◼   ► because I've made those same kind of decisions

01:11:36 ◼   ► and I think you should be making those kind of decisions.

01:11:38 ◼   ► - Did you pull Bugshot or is it free?

01:11:41 ◼   ► - I pulled it.

01:11:42 ◼   ► I made it free a few months after I released it

01:11:45 ◼   ► when it was clear, maybe six months after I released it.

01:11:48 ◼   ► It became very clear after a while

01:11:49 ◼   ► it was making between zero and three sales a day,

01:11:53 ◼   ► even at a dollar.

01:11:54 ◼   ► It was doing very badly.

01:11:56 ◼   ► And so I eventually, I'm just like,

01:11:58 ◼   ► ah, screw it, I'll just make it free.

01:11:59 ◼   ► - So why did you pull it after it was free?

01:12:01 ◼   ► - It stopped working.

01:12:02 ◼   ► - Oh, well, so there you go.

01:12:04 ◼   ► Marco's strategy I endorse.

01:12:05 ◼   ► Make it free, when it stops working, pull it.

01:12:08 ◼   ► 'Cause then you're basically,

01:12:09 ◼   ► you're not putting any more time into it.

01:12:10 ◼   ► But something like Bugshot,

01:12:11 ◼   ► Just because Marco's not interested in putting a time in,

01:12:13 ◼   ► it doesn't make it all of a sudden not a useful application,

01:12:15 ◼   ► especially for the poor, like someone was saying,

01:12:18 ◼   ► you know, this idea of when your app,

01:12:20 ◼   ► when you're not gonna put any more time in your apps,

01:12:22 ◼   ► leaving them on the store as free as bags

01:12:23 ◼   ► that clutters the store.

01:12:24 ◼   ► No, that's exactly the kind of clutter I want.

01:12:26 ◼   ► When I'm looking for an app and like,

01:12:28 ◼   ► I just want something quick and free,

01:12:30 ◼   ► I want it to be an app that a good developer has abandoned.

01:12:33 ◼   ► Maybe it's not the best app, maybe it's an iOS 6,

01:12:35 ◼   ► but it's not gonna be filled with ads.

01:12:36 ◼   ► It's actually gonna do something useful.

01:12:37 ◼   ► It's not gonna be filled with, you know,

01:12:39 ◼   ► spammy reviews that somebody paid for.

01:12:41 ◼   ► I would love to stumble upon Bugshot

01:12:43 ◼   ► as a free screenshot annotation app that I needed in a pinch,

01:12:46 ◼   ► then stumbling on the 8,000 other free apps,

01:12:48 ◼   ► which are probably not even screenshot apps at all,

01:12:50 ◼   ► but some kind of like secret portal to, you know,

01:12:54 ◼   ► some sort of online gambling thing or something, who knows?

01:12:58 ◼   ► So I would say that you should consider

01:13:03 ◼   ► putting Fast Text back as free

01:13:05 ◼   ► until it stops working and then pull it.

01:13:06 ◼   ► Don't put any more time into it if you don't want to,

01:13:08 ◼   ► but if someone is looking for an app

01:13:09 ◼   ► does what fast text does and they stumble upon fast text, it's not filled with that,

01:13:14 ◼   ► it's not filled with malware, they'll download it for free, it'll do what it does, if they

01:13:17 ◼   ► don't like it they'll delete it, fine.

01:13:19 ◼   ► I think you did put work into it, it does do something, it is functional, why not let

01:13:25 ◼   ► people benefit from it?

01:13:27 ◼   ► Even though you may feel bad about not updating or whatever, but I wouldn't spend time feeling

01:13:32 ◼   ► bad about that because you're just making a choice about what to do with your time.

01:13:35 ◼   ► So one of the reasons is I feel like it's calling attention to something that isn't

01:13:41 ◼   ► my best work, which I know you talked about with your CPAN modules, but I don't know.

01:13:48 ◼   ► As I've gotten older and as I've gotten to be some kind of internet persona, I take a

01:13:57 ◼   ► lot of pride in the things that I put out into the internet.

01:14:04 ◼   ► And while camel, for example, the blogging software that I wrote that powers caseylist.com,

01:14:10 ◼   ► it's not terribly great code, but it's not terribly bad code and it works.

01:14:16 ◼   ► And honestly, I'm pretty proud of my website and maybe some people read it, maybe they

01:14:21 ◼   ► don't, maybe some listeners will read it and be like, why is he proud of this?

01:14:25 ◼   ► And that's okay.

01:14:26 ◼   ► I mean, if you don't get it, that doesn't matter to me because I'm proud of it and I'm

01:14:29 ◼   ► not proud of fast text anymore.

01:14:31 ◼   ► And

01:14:32 ◼   ► But see, don't you think that's the way it should be?

01:14:33 ◼   ► Like I've always considered it a badge of honor, a desirable trait.

01:14:39 ◼   ► If you are a programmer, you should always look back at the code you wrote in the past

01:14:43 ◼   ► and think it's bad.

01:14:44 ◼   ► Because if you don't, that means you're not getting any better.

01:14:46 ◼   ► So if you look at the code you wrote last year, you should find problems with it now

01:14:49 ◼   ► that you didn't find then.

01:14:50 ◼   ► If you look at the code that you wrote five years ago, it should look disgusting.

01:14:54 ◼   ► If it was 10 years ago, it should look like nonsense and you can't even believe you were

01:14:58 ◼   ► the same person who wrote it.

01:14:59 ◼   ► That should be true for the life of a working programmer.

01:15:03 ◼   ► So the fact that you are no longer proud of FastTech as a product, as a pile of source

01:15:08 ◼   ► code, as a whatever, shows that you are making progress.

01:15:10 ◼   ► That if you were to make it now, you would do it better.

01:15:12 ◼   ► You would see things in it now that are more wrong or that could be done.

01:15:18 ◼   ► I don't think that should dissuade you.

01:15:20 ◼   ► And yes, it's not your best work.

01:15:21 ◼   ► Yes, it's bad that someone might Google your name and stumble across this thing and not

01:15:25 ◼   ► see the date on it.

01:15:26 ◼   ► And it's the same thing with the CPAN module.

01:15:28 ◼   ► Someone stumbles across my largest giant pile of public pro code and looks at it and it's

01:15:32 ◼   ► all crap and decide that I'm a crap programmer, that's like, I guess I'm willing to take that

01:15:38 ◼   ► risk that they don't see the dates and or whatever, especially since this is all other

01:15:41 ◼   ► topics we can get to and a bit of, especially since I am still actually maintaining that

01:15:46 ◼   ► code on like you're deciding not to maintain fast text, but I don't think you should feel

01:15:50 ◼   ► bad about just because you're not proud of it.

01:15:51 ◼   ► I think, I think all your applications, all your endeavors, you should look back on and

01:15:56 ◼   ► say that is no longer up to my standards.

01:16:01 ◼   ► And I do.

01:16:03 ◼   ► And I mean, I was, and here's the comedy of all this, how I know I made the right call

01:16:07 ◼   ► is I had like half an hour to fiddle around tonight.

01:16:10 ◼   ► And I ended up adding a feature to camel rather than futzing with fast text.

01:16:16 ◼   ► And so that's how I knew that I probably made the right call.

01:16:19 ◼   ► But I agree with you.

01:16:22 ◼   ► And and even as I was looking at camel earlier tonight, I looked at it and thought, Oh, God,

01:16:27 ◼   ► I should really refactor like half of this.

01:16:29 ◼   ► But I feel like with fast text, it's sort of advertising that I'm not good at what I'm

01:16:40 ◼   ► sort of supposed to be good at to be a part of this show.

01:16:43 ◼   ► Same thing as my C-band modules.

01:16:44 ◼   ► What Perl code of mine can you see?

01:16:46 ◼   ► You can see old code that's bad.

01:16:48 ◼   ► What code can't you see?

01:16:49 ◼   ► All the code I write for my employers.

01:16:51 ◼   ► I think it's a little different.

01:16:54 ◼   ► To me, I find it a little different though because your Perl code does not directly relate

01:16:59 ◼   ► to the things that you're known for on the internet.

01:17:01 ◼   ► It's not like you're, I mean, the best analogy

01:17:04 ◼   ► I can think of is like old crappy system seven reviews

01:17:08 ◼   ► that are still out on, which I know you never wrote,

01:17:09 ◼   ► but just hypothetically that you.

01:17:11 ◼   ► - Well, if you wanna go for that,

01:17:13 ◼   ► my old OS X reviews are terrible.

01:17:15 ◼   ► The writing is terrible.

01:17:16 ◼   ► I cannot even look at them.

01:17:18 ◼   ► I've said this before and I don't know why

01:17:21 ◼   ► I'm the only person on the internet pointing this out

01:17:22 ◼   ► because it's the worst thing I've ever said

01:17:24 ◼   ► but people won't seem to notice.

01:17:26 ◼   ► I use smileys in some of them.

01:17:28 ◼   ► colon close parentheses in the middle of the text do you understand that that's

01:17:35 ◼   ► and that's what I'm known for there's always ten reviews and they're out there

01:17:38 ◼   ► and the writing is terrible the content is terrible it's just I don't even want

01:17:44 ◼   ► to think about it but am I gonna pull those reviews no you can release special

01:17:47 ◼   ► editions that have all the crap removed it a much new crap added people keep

01:17:51 ◼   ► asking for you know a collection of them and I'm like that would mean that I

01:17:55 ◼   ► I would have to make hard decisions about, you know, I was like, oh, George Lucas special

01:17:59 ◼   ► edition.

01:18:00 ◼   ► Do I take out the smileys?

01:18:01 ◼   ► Like what order on the line?

01:18:03 ◼   ► Clean up the matte lines and the dust and scratches.

01:18:07 ◼   ► The smileys count as matte lines.

01:18:08 ◼   ► I think so.

01:18:09 ◼   ► Goodness.

01:18:10 ◼   ► So I mean, I understand your point.

01:18:13 ◼   ► To me, it just seems different probably because it's me and not you.

01:18:18 ◼   ► So I just look at it differently.

01:18:20 ◼   ► But I understand your point about making it free.

01:18:23 ◼   ► And that's actually something I hadn't really thought about.

01:18:26 ◼   ► And maybe I'll do that, maybe I won't, I don't know.

01:18:29 ◼   ► But I feel like it calls attention to something.

01:18:34 ◼   ► I guess what I'm trying to say is the CPAN modules you have to kind of seek out, whereas

01:18:40 ◼   ► I think if I were a random person looking to figure out who the three of us are, for

01:18:47 ◼   ► you they would find your OS X reviews, which granted the older ones may not be great, but

01:18:51 ◼   ► The newer ones are just freaking phenomenal.

01:18:54 ◼   ► And for Marco, they'll find a laundry list of successful applications and projects.

01:18:59 ◼   ► And Business Insider blog posts.

01:19:02 ◼   ► Well there's that too.

01:19:04 ◼   ► But for me, I don't want someone to stumble upon fast text and judge me based on that.

01:19:11 ◼   ► And I guess in summary, maybe it's just plain pride.

01:19:14 ◼   ► But I don't know, I just felt like the right answer was to pull it.

01:19:17 ◼   ► I got bad news for you, Casey.

01:19:20 ◼   ► In several years you're going to say the same thing about the podcast we're recording right

01:19:24 ◼   ► now.

01:19:25 ◼   ► And it will be the thing you're known for most widely in the internet.

01:19:29 ◼   ► That's very true.

01:19:30 ◼   ► That's very true.

01:19:31 ◼   ► I mean, I feel like this is true of everything.

01:19:34 ◼   ► If you're getting better at things, which most of us do continue to get better things

01:19:37 ◼   ► as we get older, especially things not having to do with physicality, you will look back

01:19:44 ◼   ► on what you've done previously, even if it's the thing you're most known for, and think

01:19:49 ◼   ► it is not up to your standards and that you could do better now or find things wrong with

01:19:52 ◼   ► it that you didn't find wrong with it now.

01:19:54 ◼   ► I think you should be proud of FastX.

01:19:55 ◼   ► If I had an app on the App Store, I would leave it there until it broke.

01:19:58 ◼   ► I think making it go free is entirely understandable, but I would definitely leave it out there

01:20:06 ◼   ► just to sort of like prove to the world that, like you said, I did make an iOS app once

01:20:11 ◼   ► and it does work and it did do things and here it is.

01:20:14 ◼   ► And maybe you just change how you refer to it on sort of your online resume.

01:20:17 ◼   ► in the same way you say like in my little section on my website, like retired podcasts,

01:20:22 ◼   ► podcasts that I'm no longer doing, right?

01:20:23 ◼   ► I don't know.

01:20:24 ◼   ► I don't think you should feel as bad as you do, but you know, you got to do what you got

01:20:29 ◼   ► to do.

01:20:30 ◼   ► I also think you should put feet on the icon, put it back in for a day and then pull it.

01:20:34 ◼   ► Do you want me to sell it for you?

01:20:36 ◼   ► Fast tax?

01:20:37 ◼   ► Yeah, sure.

01:20:38 ◼   ► If you can get me more than 20 bucks.

01:20:39 ◼   ► Sell it to Marco.

01:20:40 ◼   ► We need a reversal here.

01:20:41 ◼   ► I mean, he needs to buy something instead of selling it.

01:20:43 ◼   ► Yeah, right.

01:20:44 ◼   ► - Well, why don't you tell us Marco about something

01:20:46 ◼   ► that's awesome and then I'd like to talk a little bit

01:20:49 ◼   ► about like what John was referring to earlier,

01:20:52 ◼   ► which is the implied time commitment

01:20:54 ◼   ► of open source projects,

01:20:56 ◼   ► which is a kind of different animal.

01:20:58 ◼   ► - We are sponsored finally this week

01:21:00 ◼   ► by our friends at Igloo.

01:21:01 ◼   ► Igloo is an intranet you will actually like.

01:21:04 ◼   ► It's built with easy to use apps like shared calendars,

01:21:06 ◼   ► Twitter like micro blogs, file sharing,

01:21:08 ◼   ► task management and more.

01:21:10 ◼   ► Igloo is everything you need to work better together

01:21:12 ◼   ► in one very configurable cloud platform.

01:21:15 ◼   ► Go to igloosoftware.com/atp to sign up.

01:21:19 ◼   ► It's free for up to 10 people

01:21:21 ◼   ► and very reasonably priced after that.

01:21:22 ◼   ► It's incredible.

01:21:23 ◼   ► If you need an intranet for a group of 10 people or fewer,

01:21:26 ◼   ► just go do it, it's free forever.

01:21:27 ◼   ► Fantastic.

01:21:28 ◼   ► igloosoftware.com/atp.

01:21:30 ◼   ► With igloos responsive design,

01:21:33 ◼   ► your intranet already works like a champ

01:21:34 ◼   ► on virtually any device, iOS, Android, even Blackberry.

01:21:38 ◼   ► You can review a document, post a project update,

01:21:40 ◼   ► or change to mid settings all right from your phone.

01:21:43 ◼   ► Plus, when you design your igloo,

01:21:44 ◼   ► any change you make to the look and feel

01:21:46 ◼   ► carries across all the devices,

01:21:47 ◼   ► 'cause all the designs are responsive

01:21:49 ◼   ► and customizable to you.

01:21:50 ◼   ► In fact, their file preview engine

01:21:52 ◼   ► is also fully HTML5 compatible,

01:21:54 ◼   ► so if one of your coworkers uploads a proposal

01:21:56 ◼   ► or a JavaScript file or a document,

01:21:58 ◼   ► you can preview that inline, add comments,

01:22:00 ◼   ► upload new versions, or assign action items

01:22:03 ◼   ► all right from your phone,

01:22:04 ◼   ► even if it doesn't support Flash or Java

01:22:06 ◼   ► or anything like that, 'cause it's all HTML5.

01:22:09 ◼   ► So Igloo was recently featured in the Gartner Magic Quadrant.

01:22:13 ◼   ► If you're a business, you know what this means.

01:22:15 ◼   ► If you're a customer, this might sound like gibberish,

01:22:18 ◼   ► but trust me, it's good.

01:22:20 ◼   ► Gartner's famous Magic Quadrant

01:22:22 ◼   ► for social software included Igloo.

01:22:24 ◼   ► They appear for the sixth consecutive year

01:22:26 ◼   ► alongside tech giants like Microsoft, IBM,

01:22:28 ◼   ► Google, VMware, Salesforce.com, and SAP.

01:22:31 ◼   ► In a report that values the viability of the vendor,

01:22:34 ◼   ► Igloo is praised for their responsiveness

01:22:36 ◼   ► and customer experience.

01:22:38 ◼   ► If your company has a legacy intranet built on SharePoint,

01:22:41 ◼   ► your own portal technology,

01:22:42 ◼   ► you definitely should give Igloo a try.

01:22:43 ◼   ► They're really cool, fantastic intranet,

01:22:46 ◼   ► really an intranet you will actually like.

01:22:47 ◼   ► And anybody who's ever had to use a corporate intranet

01:22:50 ◼   ► before, that's a pretty bold statement.

01:22:51 ◼   ► And they follow through with it.

01:22:53 ◼   ► It's really great.

01:22:54 ◼   ► So check out Igloo, go to igloosoftware.com/atp

01:22:58 ◼   ► to sign up.

01:22:59 ◼   ► And it's free to use with up to 10 people

01:23:01 ◼   ► and very reasonably priced after that.

01:23:03 ◼   ► Really free for up to 10 people.

01:23:05 ◼   ► You might as well do it.

01:23:05 ◼   ► There's no downside.

01:23:06 ◼   ► Go try it.

01:23:08 ◼   ► Free for up to 10 people.

01:23:08 ◼   ► Go to igloosoftware.com/atp.

01:23:11 ◼   ► Thanks a lot.

01:23:12 ◼   ► - So the other thing I wanted to talk about

01:23:15 ◼   ► is the implied time commitments of open source software.

01:23:20 ◼   ► And I first became affected by this

01:23:25 ◼   ► when I open sourced Camel,

01:23:27 ◼   ► which again is the Node.js based blogging platform

01:23:31 ◼   ► that I use to power my website.

01:23:33 ◼   ► And I got enough attention from it

01:23:36 ◼   ► that a handful of people had forked it

01:23:39 ◼   ► and had issued poll requests

01:23:43 ◼   ► and or made various comments on GitHub.

01:23:45 ◼   ► And I noticed that a lot of times

01:23:50 ◼   ► I just didn't have the time

01:23:53 ◼   ► to handle these in a timely manner.

01:23:55 ◼   ► And apparently I'm trying to squeeze the word time

01:23:57 ◼   ► into the sentence 34 times.

01:23:59 ◼   ► Anyway, I see what I did there, meow.

01:24:02 ◼   ► So anyhow, occasionally there were instances

01:24:07 ◼   ► where people would issue a poll request,

01:24:09 ◼   ► wait a day or two, and then poll or rescind the poll request

01:24:14 ◼   ► saying, "Oh, I guess you didn't like this."

01:24:16 ◼   ► - Those people are jerks.

01:24:17 ◼   ► - Well, kinda, yeah.

01:24:19 ◼   ► But nevertheless, at the same time, I feel, or felt,

01:24:24 ◼   ► especially when there was a little more activity

01:24:26 ◼   ► a couple months back, a few months back,

01:24:28 ◼   ► I felt this overwhelming burden put on me

01:24:32 ◼   ► to get through these pull requests in a timely manner.

01:24:37 ◼   ► And I probably shouldn't have,

01:24:39 ◼   ► and this comes back to what John was saying earlier,

01:24:42 ◼   ► but nevertheless, I felt huge amounts of guilt

01:24:45 ◼   ► and this burden because I wasn't getting

01:24:47 ◼   ► through these pull requests quickly enough.

01:24:50 ◼   ► And it was something I totally did not expect.

01:24:53 ◼   ► And it's a wonderful, wonderful thing

01:24:56 ◼   ► in that people care enough to be issuing these pull requests.

01:25:00 ◼   ► But at the same time, I was not prepared for it.

01:25:01 ◼   ► I kind of thought in my head that I was going to just throw it out into the internet and

01:25:08 ◼   ► then kind of walk away and never look back.

01:25:10 ◼   ► And turns out that's not really the case.

01:25:13 ◼   ► Yeah, so the thing that I'm struggling with is similar only over a longer timeline.

01:25:18 ◼   ► And now you can tell me what you think I should do about this.

01:25:22 ◼   ► So I've got these C-band modules out there.

01:25:24 ◼   ► Most of them nobody uses anymore, which is kind of the ideal that Casey was looking for.

01:25:27 ◼   ► You throw it out there and no one looks at it again.

01:25:32 ◼   ► And I have something like my first one actually

01:25:35 ◼   ► from the 90s, probably doesn't even work anymore.

01:25:37 ◼   ► But no one downloads it, so nobody knows that, so it's fine.

01:25:40 ◼   ► But I do have a couple that people are still using.

01:25:43 ◼   ► And what you did back in the day,

01:25:44 ◼   ► and what you probably still do today,

01:25:45 ◼   ► when you had a CPAIM module that became popular,

01:25:48 ◼   ► is you made a website for it,

01:25:49 ◼   ► you hosted the source code somewhere

01:25:50 ◼   ► where you had a bug tracker,

01:25:53 ◼   ► you put it in version control,

01:25:55 ◼   ► you gave out commit bits to the repository

01:25:56 ◼   ► for people who you wanted to contribute to the project.

01:25:58 ◼   ► You started a mailing list and like, you just,

01:26:00 ◼   ► you built up this ecosystem around it.

01:26:03 ◼   ► - Pre GitHub.

01:26:04 ◼   ► - Yeah.

01:26:05 ◼   ► - Yeah, well, this is, this is, yeah, way before GitHub.

01:26:06 ◼   ► Like this was before SourceForge.

01:26:08 ◼   ► Like when SourceForge came, it was like, wow,

01:26:09 ◼   ► this whole website does all this stuff for you.

01:26:11 ◼   ► So one of the actual time commitments

01:26:16 ◼   ► of having an open source project like this

01:26:18 ◼   ► is that I have had to move those things

01:26:22 ◼   ► to new places when the old places go away

01:26:24 ◼   ► become crappy like SourceForge has. All right, so I move from SourceForge to Google Code.

01:26:29 ◼   ► I'll probably move from Google Code to GitHub. Move version control from CVS to subversion. Now

01:26:34 ◼   ► I'm starting to show my age here. I should probably move from subversion to Git, which

01:26:41 ◼   ► I probably will do eventually. And those are things it's like, at the time you have those decisions,

01:26:47 ◼   ► it's like, well, I could just leave it there forever, but maybe the mailing list broke,

01:26:51 ◼   ► or maybe something's not working, or maybe nobody uses CVS anymore.

01:26:54 ◼   ► So do I not put any more time in and just, you know, like remove it from the internet or just

01:27:01 ◼   ► like let it die? Or do I put in the day or two to move these things? And historically I've decided

01:27:07 ◼   ► that it's worth putting in the time to do these conversions and to move the stuff around

01:27:12 ◼   ► or whatever. And the second part of it is, so you've got this, especially with like the mailing

01:27:16 ◼   ► list, you've got a mailing list that's kind of like an implicit support channel where people

01:27:20 ◼   ► will post questions and the man was so low volume that the only person on the

01:27:24 ◼   ► man was who can answer them is me and over the course of a decade literally

01:27:28 ◼   ► this is manilis there which is degenerated to I give free support for a

01:27:33 ◼   ► module that I haven't worked on in years right so people ask a question and

01:27:37 ◼   ► literally the only person who answer is me and do I should I spend time

01:27:42 ◼   ► answering these people they're not my customers they're not giving any money

01:27:45 ◼   ► do I have any commitment to help these people with their programming problems

01:27:48 ◼   ► which often have nothing to do with my module.

01:27:51 ◼   ► Not really.

01:27:52 ◼   ► And so I struggle with the guilt of like,

01:27:54 ◼   ► do I just not answer anyone's questions anymore

01:27:56 ◼   ► and that's how this mailing list dies?

01:27:57 ◼   ► Do I shut down the mailing list?

01:27:59 ◼   ► Or do I spend the five minutes to answer a question?

01:28:02 ◼   ► And then the final thing, which Casey was getting to,

01:28:04 ◼   ► is the equivalent in the Google code world,

01:28:07 ◼   ► using Subversion and Google code instead of Git and GitHub,

01:28:10 ◼   ► of pull requests and bug reports.

01:28:12 ◼   ► Someone reports a bug.

01:28:13 ◼   ► Someone reports a bug and provides a patch.

01:28:15 ◼   ► Someone makes a feature request.

01:28:17 ◼   ► Feature requests, I'm pretty OK with just ignoring

01:28:19 ◼   ► at this point.

01:28:20 ◼   ► It's like, well, yeah, if you want, then implement it.

01:28:22 ◼   ► But then what if they go off and implement it?

01:28:24 ◼   ► If they implement it and send me a patch,

01:28:26 ◼   ► then I have to get with, like, Casey, where it's like, well,

01:28:29 ◼   ► I probably wouldn't add that feature myself.

01:28:31 ◼   ► Or maybe I would add it, but I would

01:28:32 ◼   ► do it in a different way.

01:28:34 ◼   ► And the same thing with bug fixes.

01:28:36 ◼   ► They send a patch with a bug fix and a test and everything

01:28:40 ◼   ► else and documentation.

01:28:41 ◼   ► And it's like, it just always takes some time

01:28:43 ◼   ► to clean those things up, put them in, test them,

01:28:45 ◼   ► cut a new release, so on and so forth.

01:28:46 ◼   ► And my decision so far has been,

01:28:48 ◼   ► I will incorporate bug fixes.

01:28:50 ◼   ► If you report a bug that's reproducible

01:28:52 ◼   ► and you have a test case,

01:28:53 ◼   ► I will fix that bug to figure out what it takes to fix it.

01:28:56 ◼   ► So I won't add features for the most part,

01:29:00 ◼   ► unless you send a feature tied up in a little bow,

01:29:02 ◼   ► I'll spend the, you know, 15 minutes,

01:29:04 ◼   ► half an hour, an hour to get it integrated.

01:29:06 ◼   ► Or for a module that I myself don't use anymore,

01:29:09 ◼   ► that is terrible and that no one should really use,

01:29:11 ◼   ► that, you know, that is really old,

01:29:13 ◼   ► that has source code that I can barely look at anymore.

01:29:17 ◼   ► But I mean, I don't know what's driving me

01:29:20 ◼   ► to put any time into it, and yet I am.

01:29:22 ◼   ► And so I almost feel like that I'm like a slave

01:29:25 ◼   ► to the lingering popularity of a once popular set

01:29:30 ◼   ► of Perl modules that I just, I don't know how to,

01:29:34 ◼   ► like sometimes I find myself thinking

01:29:36 ◼   ► when I get a message in the email list

01:29:38 ◼   ► and someone makes some demand or whatever,

01:29:39 ◼   ► I'm like, why don't you just implement it yourself?

01:29:41 ◼   ► Like if you're so hot and bothered to do this,

01:29:43 ◼   ► like, you know, I'd be like,

01:29:45 ◼   ► "Why should I answer this question for you?

01:29:47 ◼   ► "Why should I fix this?"

01:29:48 ◼   ► But you get resentful.

01:29:49 ◼   ► Like it's not their fault.

01:29:50 ◼   ► Like I don't act on these instincts,

01:29:52 ◼   ► but you feel like, and I'm your free servant, why?

01:29:56 ◼   ► Like it's like a stack overflow of one.

01:29:58 ◼   ► Like it's stack overflow,

01:29:59 ◼   ► but I'm the only person giving the answers, right?

01:30:01 ◼   ► And like I said, a lot of the time it's, you know,

01:30:04 ◼   ► it's from either something simple

01:30:05 ◼   ► where they don't understand something

01:30:06 ◼   ► basically about programming

01:30:07 ◼   ► or like the insanely most complex thing.

01:30:09 ◼   ► I've got this and that and the other thing,

01:30:11 ◼   ► and they're all tied together like this,

01:30:12 ◼   ► and I'm doing this and that and that,

01:30:12 ◼   ► and I would like to be able to do this,

01:30:14 ◼   ► and you think of a way I can do this,

01:30:15 ◼   ► and it's like, are you kidding?

01:30:16 ◼   ► That's what I do for a job, I get paid to do that.

01:30:19 ◼   ► That is a very complicated problem

01:30:20 ◼   ► that we would have to have a whiteboard

01:30:21 ◼   ► and like days to sit down to figure out,

01:30:24 ◼   ► and it's like, oh, answer for free for me

01:30:25 ◼   ► on this mailing list.

01:30:27 ◼   ► So I'm in a bad situation with these things,

01:30:30 ◼   ► and I'm mostly dealing with it

01:30:32 ◼   ► by doing the minimal work necessary

01:30:34 ◼   ► to make myself not feel guilty,

01:30:35 ◼   ► which means actually fixing bugs,

01:30:36 ◼   ► because hey, people are using these things.

01:30:38 ◼   ► And if I don't want to fix bugs,

01:30:39 ◼   ► Like my final out is to hand off this module to someone who cares like, you know

01:30:43 ◼   ► It's the equivalent of Marco selling his stuff to someone who wants to continue the thing

01:30:47 ◼   ► Is there somebody who wants to take over a maintainer ship of this? Here you go go with it

01:30:52 ◼   ► And I won't do that because I still have some tiny bit of pride and like this was once a pretty good thing

01:30:56 ◼   ► I spent a long time implementing and writing tests and documentation and it still kind of works sort of and you know

01:31:03 ◼   ► I don't know. I just don't feel like I want to give it up because I don't know

01:31:08 ◼   ► So anyway, I don't know how to deal with that situation.

01:31:12 ◼   ► It's a constant source of guilt and potential time suckage.

01:31:15 ◼   ► - Now Marco, how have you dealt with FC model?

01:31:18 ◼   ► Because that's probably the most active

01:31:20 ◼   ► of anything we've described, I would guess.

01:31:22 ◼   ► - Well, recently, I mean, probably the most used thing

01:31:26 ◼   ► I've ever done is BugshotKit,

01:31:28 ◼   ► which I haven't touched in a long time.

01:31:30 ◼   ► And again, for many of the same reasons

01:31:32 ◼   ► that I haven't touched Bugshot.

01:31:34 ◼   ► In fact, much of Bugshot's code is in BugshotKit,

01:31:36 ◼   ► but it's mostly because I did it, it worked,

01:31:40 ◼   ► I used it for a while, I no longer use BugshotKit

01:31:43 ◼   ► in my own app, 'cause I just don't really need

01:31:45 ◼   ► that kind of integration of testing and stuff anymore,

01:31:48 ◼   ► and that's it, so I haven't touched it in a long time,

01:31:51 ◼   ► and it doesn't really need anything,

01:31:53 ◼   ► it generally works, and all the code is pretty simple,

01:31:56 ◼   ► and if you need it to do something,

01:31:57 ◼   ► you can just do it yourself in your own app.

01:31:59 ◼   ► I do occasionally get pull requests on BugshotKit.

01:32:02 ◼   ► If it's something really trivial that's an obvious,

01:32:06 ◼   ► minor improvement or minor bug fix, I'll just accept it.

01:32:09 ◼   ► If it's more than that, I'll usually just sit on it

01:32:11 ◼   ► and forget to do it for a month, and then eventually,

01:32:14 ◼   ► it'll become so ridiculously outdated that, you know,

01:32:17 ◼   ► there's no point in accepting it, kind of like old emails.

01:32:20 ◼   ► With FC model, it's different though.

01:32:22 ◼   ► So there really isn't a group of people out there

01:32:25 ◼   ► wandering around looking at like your open source library

01:32:28 ◼   ► that does some really specific thing

01:32:32 ◼   ► that they don't need to do,

01:32:33 ◼   ► or that does some really general thing

01:32:35 ◼   ► like your utility library.

01:32:37 ◼   ► Like I have my utility library open source

01:32:38 ◼   ► like so many people do.

01:32:40 ◼   ► Nobody uses it, nobody looks at it.

01:32:42 ◼   ► I get no pull requests on it.

01:32:44 ◼   ► Like it gets no activity because there's not a whole lot

01:32:47 ◼   ► of people looking around for your utility library.

01:32:49 ◼   ► (laughing)

01:32:51 ◼   ► So it just like there's not a lot of value to that

01:32:53 ◼   ► for most people.

01:32:54 ◼   ► To get pull requests, you know, they don't just come

01:32:57 ◼   ► from the pull request fairies, like they come from people

01:33:00 ◼   ► who are using your code, people who need the code

01:33:02 ◼   ► you've written, who value it, the code for which

01:33:05 ◼   ► there aren't a lot of alternatives,

01:33:06 ◼   ► or there aren't a lot of big, well-known alternatives,

01:33:10 ◼   ► and that they need to be modified in some way,

01:33:14 ◼   ► and then the percentage of those people

01:33:16 ◼   ► who actually go through with the modification,

01:33:18 ◼   ► or at least filing a bug report with you,

01:33:20 ◼   ► or asking you about it, rather than just ripping it out

01:33:22 ◼   ► and doing something else, or fixing it quietly themselves

01:33:25 ◼   ► and never submitting it back to you.

01:33:26 ◼   ► So for most projects, most open source projects,

01:33:29 ◼   ► the reason why you probably get no pull requests,

01:33:30 ◼   ► because just having open source something

01:33:33 ◼   ► doesn't inherently make it useful to enough people

01:33:38 ◼   ► that they will start using it

01:33:39 ◼   ► and submitting improvements to you.

01:33:41 ◼   ► I do completely agree with Jon

01:33:43 ◼   ► that it is kind of annoying though

01:33:45 ◼   ► when somebody submits a pull request

01:33:46 ◼   ► that is well-intentioned,

01:33:49 ◼   ► but either something that I wouldn't do

01:33:50 ◼   ► or something I would have done differently.

01:33:52 ◼   ► - Well, ignoring even pull requests,

01:33:53 ◼   ► what if someone sent you an email,

01:33:55 ◼   ► because you don't have a mailing list for FC model

01:33:57 ◼   ► or any of these things as far as I know,

01:33:58 ◼   ► sent you an email and said,

01:33:59 ◼   ► "Hey, I was using your whatever, your utility library,

01:34:01 ◼   ► "FC model, bug jacket, whatever, and I was trying to do X,

01:34:04 ◼   ► "and I couldn't quite figure out a way to do it.

01:34:05 ◼   ► "I tried to do this and it didn't quite work,

01:34:07 ◼   ► "and I thought maybe you could do that,

01:34:09 ◼   ► "but I'm not sure if I'm using your own.

01:34:10 ◼   ► "Can you help me?"

01:34:11 ◼   ► What would you do with that email?

01:34:13 ◼   ► - I wouldn't respond, probably,

01:34:14 ◼   ► unless it was a really quick response.

01:34:16 ◼   ► - You would not respond at all?

01:34:18 ◼   ► - I would treat it like any other support email.

01:34:19 ◼   ► I mean, I get so much email,

01:34:20 ◼   ► I can't spend like a half hour responding to that.

01:34:23 ◼   ► - Yeah, that's what I'm saying.

01:34:25 ◼   ► Like, that type of email, all right,

01:34:26 ◼   ► And imagine if you got like maybe three of those a week for a decade.

01:34:30 ◼   ► Like it starts to wear on you.

01:34:33 ◼   ► I just feel like like because you feel so bad.

01:34:36 ◼   ► Like I'm the king of ignoring people's emails, right?

01:34:40 ◼   ► I don't know about that.

01:34:40 ◼   ► But even I even I start to feel bad because it's like,

01:34:44 ◼   ► especially with programming questions.

01:34:46 ◼   ► And it happens on Twitter too.

01:34:49 ◼   ► It's like I could get the answer to this question often by at this point.

01:34:55 ◼   ► It might as well be someone else's code because I don't

01:34:57 ◼   ► remember it anymore.

01:34:58 ◼   ► Like, you could figure out-- you could--

01:34:59 ◼   ► the answer to the question could be,

01:35:01 ◼   ► you can't use my utility library to do that because it

01:35:02 ◼   ► doesn't work that way.

01:35:04 ◼   ► And then you feel like now you're

01:35:04 ◼   ► in a conversation with them.

01:35:05 ◼   ► They're going to be like, well, can you add that feature?

01:35:07 ◼   ► And then your only answer is like, no,

01:35:09 ◼   ► because I'm not spending time on that and I don't want it.

01:35:11 ◼   ► And then it's like, you just wasted--

01:35:12 ◼   ► you already wasted more time than you

01:35:14 ◼   ► wanted to spend on this.

01:35:15 ◼   ► And that's the best case, trying to get out as fast as possible.

01:35:18 ◼   ► The worst case is you don't know the answer,

01:35:20 ◼   ► and you'd have to investigate.

01:35:21 ◼   ► And you're like, why am I investigating this guy's

01:35:23 ◼   ► programming problem?

01:35:24 ◼   ► You know what I mean?

01:35:26 ◼   ► Just because you wrote FC model,

01:35:27 ◼   ► does that mean that there is implicit support contract

01:35:30 ◼   ► with everyone who tries to use FC model?

01:35:32 ◼   ► Do you have to provide them support?

01:35:33 ◼   ► - No.

01:35:34 ◼   ► - I don't think you do, but if you don't,

01:35:36 ◼   ► you end up looking like a jerk.

01:35:37 ◼   ► If you reply and say, sorry, this library is not supported.

01:35:40 ◼   ► They're gonna be like, I demand my money back.

01:35:42 ◼   ► What are they gonna say?

01:35:42 ◼   ► But they will think you're a jerk.

01:35:45 ◼   ► - FC model is actually a really good example

01:35:47 ◼   ► of everything working very, very well.

01:35:49 ◼   ► So the quick version is,

01:35:51 ◼   ► It's a very thin, lightweight model layer.

01:35:55 ◼   ► Instead of using something like Core Data,

01:35:57 ◼   ► it's basically sticking a very thin layer

01:35:59 ◼   ► around on top of SQLite, and you can do things

01:36:01 ◼   ► like the database would.

01:36:04 ◼   ► I use this because I'm a jerk, and I don't like Core Data,

01:36:06 ◼   ► and I like to write everything myself.

01:36:08 ◼   ► So I wrote this thing.

01:36:10 ◼   ► FC model has what appears to be very few users.

01:36:14 ◼   ► I would guess the number of people building apps

01:36:18 ◼   ► with it is probably less than 10.

01:36:20 ◼   ► It is a very small group of people.

01:36:23 ◼   ► But of those, like three or four of them

01:36:27 ◼   ► actually actively submit pull requests,

01:36:31 ◼   ► and they're actually really good.

01:36:32 ◼   ► And usually we'll discuss something,

01:36:34 ◼   ► like before a substantial change,

01:36:36 ◼   ► we'll discuss it in an issue, and then I'll write the fix,

01:36:38 ◼   ► 'cause I'm a control freak.

01:36:40 ◼   ► But when people have submitted so many

01:36:42 ◼   ► little tiny bug fixes and little improvements here and there,

01:36:45 ◼   ► they're only a few lines long, and that's all great.

01:36:48 ◼   ► - But you still are supporting it then,

01:36:49 ◼   ► Because when someone says, hey, I was trying to do this thing

01:36:52 ◼   ► and it didn't work or it would be cool if it did this,

01:36:54 ◼   ► you are providing support because your support

01:36:56 ◼   ► is engaging in a discussion with them about the feature,

01:36:58 ◼   ► getting at the heart of what it is that they want,

01:37:00 ◼   ► and then you maintaining ownership by essentially saying,

01:37:03 ◼   ► well, this is how I would do it and this is what I would do

01:37:05 ◼   ► and then implementing that.

01:37:07 ◼   ► So it's a support function.

01:37:08 ◼   ► You're essentially implementing features at their request

01:37:11 ◼   ► maybe just not exactly the way they did

01:37:13 ◼   ► and talking to them and answering their questions about it.

01:37:15 ◼   ► - Well, I am, well, but if it's like a

01:37:17 ◼   ► how does this work question,

01:37:18 ◼   ► usually I don't answer those.

01:37:19 ◼   ► And sometimes somebody else will, which is really nice,

01:37:22 ◼   ► but I don't get a lot of those, 'cause again,

01:37:24 ◼   ► not a lot of people use this.

01:37:26 ◼   ► - And the people who use it know what they're doing,

01:37:27 ◼   ► like it's not a bunch of beginners flooding in

01:37:28 ◼   ► who like, I just started writing my first iOS app

01:37:31 ◼   ► and I stumbled across your thing,

01:37:32 ◼   ► can you tell me how to use it?

01:37:33 ◼   ► - Right, because they're not gonna be looking

01:37:35 ◼   ► for something like this, they're gonna be using Core Data,

01:37:37 ◼   ► 'cause that's what all the tutorials use,

01:37:38 ◼   ► and that's fine, they shouldn't be using something

01:37:40 ◼   ► like this probably.

01:37:40 ◼   ► - And Core Data is much simpler than your module,

01:37:42 ◼   ► so it'll be fine.

01:37:43 ◼   ► - Right, so, yeah, right. (laughs)

01:37:47 ◼   ► What's great about this though is,

01:37:49 ◼   ► the reason why I'm engaged with it,

01:37:51 ◼   ► the reason why I react to the pull requests

01:37:54 ◼   ► and I improve it, is purely selfish.

01:37:57 ◼   ► It's because I use it in Overcast

01:37:59 ◼   ► and I will probably use it in any near future apps

01:38:02 ◼   ► that I would write as well.

01:38:03 ◼   ► Not that I'm starting anything,

01:38:04 ◼   ► this is not a product announcement,

01:38:05 ◼   ► just if I would start something new,

01:38:06 ◼   ► I'd probably use it again.

01:38:07 ◼   ► That's why I pay attention

01:38:10 ◼   ► because it's improving my app too.

01:38:13 ◼   ► And my needs for Overcast drive FC models development.

01:38:18 ◼   ► The bugs I run into, I fix an FC model, et cetera.

01:38:23 ◼   ► The performance issues I run into, I fix there,

01:38:25 ◼   ► everyone gets it.

01:38:26 ◼   ► - So this is the honeymoon period

01:38:27 ◼   ► when you're still using it for your own work.

01:38:28 ◼   ► I had several years of that too.

01:38:30 ◼   ► It was like my CPAN modules, for the most part,

01:38:32 ◼   ► were written for jobs I had at the time

01:38:35 ◼   ► so that I could write them, put them up,

01:38:36 ◼   ► and then get the benefits I was able to convince

01:38:39 ◼   ► the various people who I work for

01:38:40 ◼   ► that there is a benefit in open sourcing

01:38:42 ◼   ► this part of the product

01:38:43 ◼   ► because I will get usage from other people,

01:38:45 ◼   ► bug reports from other people,

01:38:46 ◼   ► and like, you know, the open source model.

01:38:48 ◼   ► And it worked for the years that the software was relevant,

01:38:51 ◼   ► but as it became less relevant and sort of aged out,

01:38:53 ◼   ► I stopped using it, other people stopped using it,

01:38:56 ◼   ► and now it's like in zombie form.

01:38:57 ◼   ► Right now, FC model is new, relevant,

01:38:59 ◼   ► extremely relevant in light of the various weird,

01:39:02 ◼   ► you know, iCloud Core data things that were going on, right?

01:39:04 ◼   ► And which motivated its existence.

01:39:06 ◼   ► And that, you know, so it's definitely in the period

01:39:10 ◼   ► where you are reaping the benefit of this being a module

01:39:14 ◼   ► that is, I mean, it's not widely used,

01:39:15 ◼   ► you use it like 10 active people,

01:39:17 ◼   ► but it's useful to you, even if you were the only user,

01:39:20 ◼   ► you would like to have it out there

01:39:21 ◼   ► just in case someone happens to stumble across it

01:39:24 ◼   ► and find some bug or whatever.

01:39:26 ◼   ► Even the talking to the bear thing,

01:39:29 ◼   ► where say nobody ever looks at the source code,

01:39:32 ◼   ► but the mere act of you publishing it,

01:39:33 ◼   ► like the mere act of you publishing a blog post

01:39:35 ◼   ► will suddenly cause you to find a typo that you didn't see

01:39:38 ◼   ► when you've been staring at it for the previous hour

01:39:39 ◼   ► when it was in your unpublished state.

01:39:42 ◼   ► - Oh yeah, I mean, FC model is probably the best code

01:39:46 ◼   ► in Overcast, by a long shot.

01:39:48 ◼   ► - And would you say that's because of the contributions?

01:39:50 ◼   ► - No, 'cause he had to show it to people,

01:39:52 ◼   ► so he had to clean it up to make it look not embarrassing.

01:39:54 ◼   ► - I mean, it's both.

01:39:55 ◼   ► I mean, one thing the contributions have really helped with

01:39:58 ◼   ► is the contributions will often be by very good

01:40:02 ◼   ► COCO programmers who have been around much longer

01:40:03 ◼   ► than I have at this, or are just better than me at it.

01:40:07 ◼   ► and they will use a convention

01:40:10 ◼   ► that I didn't even know existed.

01:40:12 ◼   ► Like instead of doing preprocessor defines

01:40:15 ◼   ► for string constants, they'll do the extern thing.

01:40:17 ◼   ► Or like using NSEnum instead of defining an enum

01:40:20 ◼   ► the old C way so that some autocomplete thing works better.

01:40:23 ◼   ► Like there's little things like that

01:40:25 ◼   ► that I pick up from the pull requests,

01:40:27 ◼   ► then I start doing that everywhere.

01:40:29 ◼   ► So it's like I'm working with a bunch of smart people

01:40:31 ◼   ► who are slowly and subtly improving my own skills

01:40:34 ◼   ► by showing me cool things I could do

01:40:35 ◼   ► that I didn't even realize I could do

01:40:36 ◼   ► or showing me better ways of doing things,

01:40:38 ◼   ► in various, you know, oftentimes in very small ways,

01:40:40 ◼   ► but over time that builds up.

01:40:42 ◼   ► I mean, FC model is really, like,

01:40:45 ◼   ► it is by far the only successful open source thing

01:40:48 ◼   ► I've ever done, and the most successful open source thing

01:40:51 ◼   ► I've ever done.

01:40:52 ◼   ► Everything else I've ever open sourced

01:40:53 ◼   ► has been really minimally benefited anybody, including me.

01:40:58 ◼   ► And you know, John, you're right,

01:41:00 ◼   ► FC model is in the honeymoon phase now,

01:41:01 ◼   ► 'cause I'm using it.

01:41:02 ◼   ► I stopped using BugshotKit, and so BugshotKit is languishing,

01:41:05 ◼   ► and it will probably never get an update again.

01:41:08 ◼   ► If I ever stop using FC model,

01:41:10 ◼   ► the project will probably die at that point,

01:41:12 ◼   ► or somebody else can take it over if they want to,

01:41:13 ◼   ► but probably nobody would want to, and that would be it.

01:41:18 ◼   ► But right now I'm still using it,

01:41:20 ◼   ► and I suspect I'll be using it for a while.

01:41:23 ◼   ► So yeah, so right now I'm fine.

01:41:26 ◼   ► - Yeah, so I guess my way out is

01:41:27 ◼   ► I just have to get better at ignoring.

01:41:31 ◼   ► I don't know if I can ever ignore bug reports, though.

01:41:33 ◼   ► I can probably ignore questions, feature requests, stuff

01:41:39 ◼   ► like that.

01:41:39 ◼   ► Although that'll be sad, because people will-- I don't know.

01:41:43 ◼   ► It'll be sad.

01:41:44 ◼   ► But bug reports, how can I ignore them?

01:41:48 ◼   ► I can let them just pile up.

01:41:50 ◼   ► This bug, I just feel like I have to fix it.

01:41:53 ◼   ► Especially because it still works, though.

01:41:57 ◼   ► It's still working software.

01:41:59 ◼   ► It's a shame to let working software become unworking just

01:42:01 ◼   ► because of one minor thing. I don't know, I will probably just continue to limp along

01:42:06 ◼   ► with the stuff. Like, I keep hoping that people will lose interest entirely, but they don't.

01:42:10 ◼   ► People still sign up for the mailing list, and like, you know, I don't understand. I'm

01:42:17 ◼   ► conflicted.

01:42:19 ◼   ► Thanks a lot to our sponsors this week. Oscar, Backblaze, and Igloo, and we will see you

01:42:24 ◼   ► next week.

01:42:25 ◼   ► [MUSIC]

01:42:35 ◼   ► Oh it was accidental.

01:42:37 ◼   ► Accidental.

01:42:38 ◼   ► John didn't do any research.

01:42:40 ◼   ► Margo and Casey wouldn't let him.

01:42:43 ◼   ► Cause it was accidental.

01:42:45 ◼   ► Accidental.

01:42:46 ◼   ► Oh it was accidental.

01:42:47 ◼   ► Accidental.

01:42:48 ◼   ► And you can find the show notes at ATP.FM.

01:42:53 ◼   ► And if you're into Twitter, you can follow them at

01:42:59 ◼   ► C-A-S-E-Y-L-I-S-S, so that's Casey Liss, M-A-R-C-O-A-R-M,

01:43:07 ◼   ► Auntie Marco Arment, S-I-R-A-C, USA, Syracuse.

01:43:14 ◼   ► It's accidental.

01:43:16 ◼   ► It's accidental.

01:43:17 ◼   ► They didn't mean to.

01:43:20 ◼   ► Accidental.

01:43:21 ◼   ► Accidental.

01:43:22 ◼   ► Tech podcast so long.

01:43:27 ◼   ► So John, you got a PS4.

01:43:30 ◼   ► - Yeah, what did I get?

01:43:31 ◼   ► Last Week Sometime?

01:43:32 ◼   ► I knew I was going to get one eventually,

01:43:34 ◼   ► and I kept telling myself,

01:43:36 ◼   ► I will get one when there's a game that I wanna play,

01:43:38 ◼   ► and of course I would love for that game

01:43:39 ◼   ► to be Last Guardian,

01:43:40 ◼   ► but you know, I figured,

01:43:41 ◼   ► surely there'll be some other game

01:43:42 ◼   ► that I wanna play before that.

01:43:44 ◼   ► When The Last of Us Remastered came out,

01:43:46 ◼   ► I thought that might be the game,

01:43:47 ◼   ► but I had just very recently played

01:43:49 ◼   ► the non-remastered one, the PS3,

01:43:51 ◼   ► so that didn't make me buy a PS4.

01:43:53 ◼   ► And I don't know what made me buy one now.

01:43:54 ◼   ► I think it's kind of my tradition

01:43:56 ◼   ► pre-Christmas present to myself that I give myself before Christmas so I don't have to wait for Christmas so I can play with it in the vacation before Christmas.

01:44:04 ◼   ► That's a long title, but that has become a tradition in my family that I buy myself something that I wanted and give it to myself before Christmas morning so I can play with it while I'm on vacation.

01:44:15 ◼   ► And so the PS4 fit the bill for that because I was going to get one anyway.

01:44:20 ◼   ► But I didn't really know what kind of games I was going to get for it, and so I just got a mix of

01:44:25 ◼   ► Download a lot of downloadable tiles because I didn't want to bother getting discs shipped to me or whatever

01:44:29 ◼   ► And and I still think that they load faster off the hard drive

01:44:33 ◼   ► I don't if that's not true. Please don't tell me because I like to keep my illusions, but

01:44:36 ◼   ► Uh, yeah, I you know, so I downloaded a bunch of stuff

01:44:40 ◼   ► And what am I playing? I'm not playing anything all that exciting. I got destiny. My son is already addicted to that

01:44:46 ◼   ► Destiny is exactly what I thought it would be. It's fine

01:44:49 ◼   ► The controller just destroys my hands playing Destiny, the analog sticks are still in the

01:44:54 ◼   ► wrong spot, you gotta use all four triggers at the same time, it is an ergonomic nightmare

01:44:58 ◼   ► for me.

01:44:59 ◼   ► I really need to limit my time playing the game, which is a shame because I find it fun.

01:45:02 ◼   ► I think Destiny is pretty well done.

01:45:03 ◼   ► I don't know why I got such terrible reviews, I guess people have higher expectations, but

01:45:07 ◼   ► I consider it more of a long-term investment and my son is really enjoying it, so when

01:45:11 ◼   ► I saw reviews like 6.5 out of 10 for Destiny, maybe it was buggier on launch, maybe just

01:45:16 ◼   ► people have higher expectations, but it fully satisfies everything that I thought it would

01:45:20 ◼   ► be.

01:45:21 ◼   ► It's not really my type of game, but anyway.

01:45:24 ◼   ► But what mostly is annoying about the PS4 is, and I knew this going in, is that it is

01:45:31 ◼   ► not going to be a drop-in replacement for my PS3 because Sony concentrated so heavily

01:45:36 ◼   ► on the game features that they're seemingly like obstinately opposed to doing media center

01:45:44 ◼   ► type stuff, like they don't sell a Bluetooth like remote for it, not you know like a remote

01:45:50 ◼   ► remote that looks like a TV remote.

01:45:53 ◼   ► So you have to use the game, if you want to use it as your own Blu-ray player, like my

01:45:58 ◼   ► PS3 has always been my Blu-ray player, if you want to use your PS4 as your Blu-ray player,

01:46:02 ◼   ► you have to use the controller and that is ridiculous.

01:46:04 ◼   ► I'm not going to have the controller sitting there on the end table so I can control, it's

01:46:07 ◼   ► just, I just won't do that.

01:46:09 ◼   ► There are third-party remotes that you can buy but all of them had temporal views and

01:46:13 ◼   ► a lot of them use an IR interface connected to the USB thing and it's like, "Sony, can

01:46:17 ◼   ► you just make a remote? Like, charge some stupid ridiculous amount for it. I'll buy

01:46:21 ◼   ► it. I just want a remote."

01:46:22 ◼   ► They used to, didn't they? For the PS3?

01:46:24 ◼   ► Yeah, the PS3 has a Bluetooth remote that works with the PS3. I'm pretty sure it doesn't

01:46:28 ◼   ► work with the PS4. If it does work with the PS4, someone in the chat room, tell me and

01:46:32 ◼   ► I will...

01:46:33 ◼   ► I control my PS3 with the Logitech Harmony thing because that has a Bluetooth interface

01:46:37 ◼   ► and that can do it and it works great.

01:46:39 ◼   ► Yeah, if I can find if anyone knows they want to send feedback to show a Bluetooth remote that works with the ps4 natively without

01:46:45 ◼   ► Any weird drivers and that works well, that's fine

01:46:48 ◼   ► And as someone in the chair, I'm just pointing out my very next point

01:46:50 ◼   ► No, DLNA support for you know streaming video off all the various houses devices in my house that can do that

01:46:56 ◼   ► And so, you know forget about like having a Plex app or anything like that

01:47:01 ◼   ► Just the basic media center type stuff. It can play blu-rays

01:47:05 ◼   ► You can play blu-ray movies on it, and I bet it's a pretty okay blu-ray player although when I was researching this

01:47:10 ◼   ► I saw a lot of people complaining with the very first version of the ps4 software

01:47:13 ◼   ► But the blu-ray player wasn't even as good as the ps3 one so I still have my ps3 attached

01:47:18 ◼   ► I still use it as my blu-ray player

01:47:20 ◼   ► I don't really use it for DLNA that much as my TV does it now natively so I don't want to turn them on the

01:47:24 ◼   ► ps3 if I don't have to but

01:47:26 ◼   ► Depending on where video comes from and what format it's in sometimes

01:47:31 ◼   ► I have to use PS3 media server. Sometimes I have to use the PS3 to stream for someplace else. Sometimes I can stream for my TV.

01:47:37 ◼   ► But I get a lot of things attached to my TV now.

01:47:41 ◼   ► Like if I can't get rid of my PS3 when I get rid of my PS4 and I can't get rid of my Wii

01:47:46 ◼   ► when I get my Wii U because the Wii still plays GameCube games as GameCube connectors. Like I

01:47:49 ◼   ► got five game consoles to take into my TV plus Apple TV, you know, plus TiVo plus I'm running at inputs here.

01:47:57 ◼   ► So, as I really hope that the media center type capabilities of the PS4 get better, but

01:48:04 ◼   ► right now it's disappointing to me that I can't make a clean upgrade.

01:48:07 ◼   ► It's also disappointing that the shape of the PS4, if you put a PS3 on top of the PS4

01:48:12 ◼   ► it doesn't look right to me, it looks like the front of the PS4 is all slanty and it

01:48:17 ◼   ► doesn't make a pleasing shape.

01:48:18 ◼   ► And of course you can't put the PS4 on top of the PS3 because it's curved like a George

01:48:21 ◼   ► Foreman grill so it'll skitter off.

01:48:24 ◼   ► And the PS4 doesn't have feet on the bottom, it has these three little rubber curve things

01:48:29 ◼   ► in a kind of a tripod that elevate the PS4 barely off the surface, but because the air

01:48:34 ◼   ► and the air intakes are not on the bottom.

01:48:37 ◼   ► So you could have the thing flush, but if you put it on top of another piece of AV equipment,

01:48:40 ◼   ► it will be blocking the holes more or less on the thing that it's on top of.

01:48:43 ◼   ► So I had to buy some clear rubber feet to elevate it to let air get to the devices underneath

01:48:46 ◼   ► it.

01:48:47 ◼   ► Oh, and I'm out of ethernet ports by the TV, so I had to buy a new switch, and it's just,

01:48:53 ◼   ► You know, at least I'm not out of plugs in the power strip yet, but I'm getting close.

01:48:56 ◼   ► Do you have a thing with missing feet?

01:48:59 ◼   ► I was just about to say that, get out of my head.

01:49:01 ◼   ► What, missing feet?

01:49:02 ◼   ► What do you mean?

01:49:03 ◼   ► Fast text icon, dude.

01:49:04 ◼   ► Oh, yeah.

01:49:05 ◼   ► All right, fine.

01:49:06 ◼   ► Yeah, so anyway, the controller is an improvement over the PS3 one, but the button layout is

01:49:11 ◼   ► still wrong.

01:49:12 ◼   ► The sticks are still in the wrong spot.

01:49:14 ◼   ► The triggers are better, but not that much better.

01:49:18 ◼   ► And those controllers are expensive, like 50 bucks each.

01:49:20 ◼   ► Oh, and the touchpad thing that they added is not a good touchpad, but it does make text

01:49:25 ◼   ► input slightly less painful because you can use the touchpad to move the little cursor

01:49:29 ◼   ► around onto the key things.

01:49:31 ◼   ► Would you ever consider stacking the PS4 with a non-Sony system to make it stack better

01:49:38 ◼   ► with your step?

01:49:39 ◼   ► Or does it have to be stacked with the PS3?

01:49:40 ◼   ► No, I would stack it with anything that I could stack with, but you've seen my setup

01:49:44 ◼   ► there's not a lot of room in that little shelf there.

01:49:45 ◼   ► There's only two possible places it can go, under the PS3 or on top of my receiver.

01:49:49 ◼   ► under the ps3 it looked weird and on top of my receivers where it is now, but

01:49:53 ◼   ► I get some feet to elevate it up second question

01:49:56 ◼   ► Would you consider daisy chaining two receivers to get like seven more HDMI inputs? No, I don't daisy chain them

01:50:03 ◼   ► You can just get a switching box

01:50:04 ◼   ► So the switching box are terrible is why I got that I got this this receiver because I was trying to find a balance of

01:50:09 ◼   ► I would have got the Sony receiver that had 10 HDMI inputs

01:50:12 ◼   ► but all there's just this huge threat of horror stories about it blanking out and having all sorts of problems so like I

01:50:19 ◼   ► I should link to that thread, it's gone off for like 40 pages of people complaining to Sony and them trying to fix it.

01:50:23 ◼   ► Anyway, I'm glad I didn't get that one.

01:50:25 ◼   ► So I got this one that had all the features that I wanted and had six HDMI ports, but one of them is on the front.

01:50:30 ◼   ► Ah, my TV has what, four or three? Like I still have options.

01:50:34 ◼   ► Like I try to connect the consoles directly to the TV to reduce input lag.

01:50:37 ◼   ► So I have, I still have enough options for the devices I have. I'm not out of ports.

01:50:41 ◼   ► Like I'm close to being out of ports on the receiver,

01:50:44 ◼   ► But I can connect both of the console both of the console the current gen consoles well the ps4 and the Wii U

01:50:50 ◼   ► Directly to the TV and the Wii is to connect directly TV for input lag reasons, so I'm not really out of forts, but

01:50:56 ◼   ► Next generation of consoles are gonna have to make some hard decisions about what to do because I won't be getting into TV by then

01:51:03 ◼   ► If I can help it. Yeah, but that's probably gonna be how many years away though. It's probably a while off right? Yeah

01:51:07 ◼   ► I know I was I was pleasantly surprised by the general speediness and UI of like that

01:51:13 ◼   ► I mean, I think the ps3 UI is I mean, it's not good, but it's it's understandable and the ps4 UI is a

01:51:19 ◼   ► Mild evolution of that. It looks a little bit more spammy and in my face, but it's fast. It works got on my Wi-Fi nicely

01:51:28 ◼   ► Could use the LAN port like I didn't have any weird problems with anything. It pretty much just worked download speeds were reasonable

01:51:36 ◼   ► You know downloading stuff from the store work fine

01:51:38 ◼   ► I guess like it is much better at this stage in its life than the ps3 was at this stage is like I can tell

01:51:43 ◼   ► you that

01:51:45 ◼   ► So I still endorse it over the Xbox one as a game system and not just because I have latent Microsoft tape but also because it

01:51:53 ◼   ► And I and for the people the doubters in the chat room I still believe last guardian will ship I still believe can't stop me

01:52:01 ◼   ► [BLANK_AUDIO]