The Bear Wakes Up and Bites You

Episode 95 • Released December 11, 2014 • Speakers detected

Episode 95 artwork
00:00:00 Marco: Like everything in life, it is one FFmpeg command, but it'll take you three hours to figure out what that command actually is.
00:00:07 Casey: Yeah, yeah, yeah.
00:00:09 Casey: All right, so you want to do a little follow-up?
00:00:12 Casey: Follow-up.
00:00:13 Casey: As soon as I said that, I was like, oh, God, that sounded a lot like the prompt.
00:00:16 Casey: Just the way you said it.
00:00:17 Casey: I know.
00:00:18 Casey: All right, let's do that again.
00:00:20 Casey: Hey, so you want to do a little bit of follow-up?
00:00:22 Casey: Follow-up.
00:00:22 Casey: God, I did it again!
00:00:23 Casey: God!
00:00:24 Casey: This is the worst.
00:00:25 Casey: All right, somebody else talk.
00:00:26 Casey: Don't phrase it as a question, Casey.
00:00:29 Casey: All right, let's do some follow-up.
00:00:30 Casey: Ah, see, you're right.
00:00:31 Casey: That's the key.
00:00:32 Casey: John, you're so smart.
00:00:34 Casey: Anyway, so let's talk about Crossy Road and in-app purchases and top grossing lists.
00:00:40 Casey: And I'm not sure which one of you put this in the show notes, but it was not me.
00:00:43 John: It was me.
00:00:45 John: We were talking about the financial prospects for Crossy Road, indirectly talking about the financial prospects.
00:00:51 John: And Joe F. was one of the first people to tweet that when we're looking at the top grossing lists, he says those ads won't show up as part of the top grossing.
00:00:59 John: only in-app purchases will um and i think it's also because that they appear to be third-party ads and not ads through apple's iad system i don't know if how if you did like apple's iads if that would contribute to your top grossing but certainly if you're getting paid through a third party for the ads and your thing uh that that won't contribute although it's kind of interesting that the apple doesn't as far as i know ask for a 30 cut of uh ads that you run that are not through apple
00:01:26 Marco: Yeah, I'm actually kind of surprised they allow that at all.
00:01:29 Marco: I think the only reason they do is because people were doing ads in their app before iAd existed.
00:01:35 Marco: And then and I think Apple doesn't really care that much about iAd to really force that to be the case.
00:01:41 Marco: But yeah, it is kind of weird.
00:01:42 Marco: Like you can't do a third party credit card processing thing for in-app purchase, but they allow you to have third party ads.
00:01:50 Casey: Yeah, that doesn't make a lot of sense.
00:01:52 Casey: Not that that ever happens with Apple and their rules.
00:01:56 Casey: And then would you like to talk about our friend of the show, Steve Lubitz, and what he had to tell us?
00:02:01 John: Yeah, so shortly after we recorded last week's show, we talked a lot about Crossy Road and its monetization strategy.
00:02:07 John: The game has changed a little bit of its monetization strategy, and Steve wrote in with one aspect of that.
00:02:14 John: You could buy what they call a coin doubler.
00:02:17 John: You earn coins at a faster rate, and you get a bonus 1,000 coins for $3.99.
00:02:23 John: That's buying the piggy bank.
00:02:24 John: So there is something that...
00:02:26 John: doesn't change the gameplay and you know sort of getting an extra life or walking on water or slowing down time when the train is coming or anything like that it changes the monetization it changes parts of the game that are part of monetization so when i saw this i said okay this is you know this is like a power-up earn coins faster right but what can you do with those coins you're just you know using them to get more chances at the gumball machine to get your characters and one thing we didn't mention on the last show speaking of the characters is that
00:02:56 John: the gumball machine is random and it doesn't care like any gumball machine doesn't care what things you already have so as you accumulate uh players from the gumball machine you'll end up getting duplicates you're like you know you get another uh crazy old ben for the 15th time so it's not like you're going to inevitably get all the characters and i don't even know if the gumball machine vends all the characters some of them may be purchased only
00:03:16 John: They added a bunch of new characters.
00:03:19 John: They added a thing where you can try out a new character for a short period of time.
00:03:23 John: And then at the end of that time, they let you buy it at a discounted rate.
00:03:26 John: All sorts of new things are showing up and updates to this thing.
00:03:29 John: They're further emphasizing the thing that was always there.
00:03:32 John: I think the little share sheet that lets you share like a screenshot of your score and your death.
00:03:36 John: Now that is much more prominent and makes you notice it.
00:03:38 John: It's either more prominent or it didn't exist before.
00:03:40 John: I certainly didn't even know it existed before because I'm not looking for a share button.
00:03:43 John: And now it's more in my face.
00:03:45 John: And not only do I see it in the game, but I see things that other people post.
00:03:48 John: So anyway, the monetization strategy of Crossy Road is fluid and is moving more towards things that are slightly more aggressive about getting you to buy things than it was before.
00:04:01 John: And I don't think that's because the developer is desperate for money.
00:04:05 John: Because all of these things...
00:04:07 John: are still pretty mild in the grand scheme of things.
00:04:09 John: They're not punitive.
00:04:12 John: It's still entirely, you know, for fun and not, you know, pay-to-win type of gameplay.
00:04:19 John: Still, you know, 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 by trains.
00:04:27 John: If it ever makes that turn, I'm sure we will note it on the program.
00:04:31 John: But I'm pretty confident now, especially with seeing Crossy Road climb the charts, that they're doing just fine with this game.
00:04:36 Marco: Yeah, in fact, I mean, it's been a pretty big difference.
00:04:39 Marco: So I would say the changes they're making are working to bring them more money because they've made a pretty large jump in the top grossing chart since last week.
00:04:49 Marco: Like when we were talking, they were somewhere around the 200 range of top grossing, and now they're like in the 60s.
00:04:55 Marco: So whatever they're doing, the changes they're making are working to bring them in more money that's more proportional to the actual downloads they're getting.
00:05:02 John: I don't know the timing, though.
00:05:04 John: I don't know if they started climbing the charts before or after they rolled out these changes.
00:05:07 John: I don't know the specifics.
00:05:08 John: So it could just be, you know, gaining traction from word of mouth.
00:05:11 John: And, you know, it's so hard to say.
00:05:14 John: Anyway, it's still a good game.
00:05:15 John: You should still check it out.
00:05:17 Marco: Tiff is now totally hooked.
00:05:18 Marco: Yeah, I hopped over her name earlier.
00:05:20 Marco: Yeah, she's very mad at you for continuing to move your score forward past hers.
00:05:26 John: I just stopped moving it forward once I became the number one in my game center list.
00:05:30 John: So I beat my son's score, I beat Jason's score, and now I haven't really played that much.
00:05:33 Casey: Oh, goodness.
00:05:34 Casey: What is your current score?
00:05:36 John: My score is depressing because I was trying to beat Jason's score.
00:05:38 John: Like, you know, I couldn't get him to accept my son's friend request.
00:05:42 John: So maybe he didn't want to accept the request of someone whose score, you know, would be above his.
00:05:46 John: So I'm like, all right, I'm going to have to beat it.
00:05:48 John: And his score was like 193 and I got 191.
00:05:51 John: And I had that for a while.
00:05:52 John: And then I got 192.
00:05:53 John: I had that for a while.
00:05:56 John: And boy, there's nothing worse than seeing yourself die when you're like one hop away from Ty and two hops away from, yeah, anyway.
00:06:03 John: And then I eventually got 216 and I'm depressed by the 216 because when I got the 216, my death was super stupid.
00:06:08 John: I just got, I was just so happy that I had won.
00:06:11 John: It was like, okay, now I don't really need to go any farther.
00:06:13 John: And I could have gone much farther.
00:06:14 John: It was just a stupid death.
00:06:15 John: So I'm kind of off that.
00:06:17 John: I've gone back to desert golf.
00:06:19 John: Golfing.
00:06:21 Casey: Yeah, whatever.
00:06:22 Casey: I still haven't tried that one, but I am enjoying Crossy Road more than I probably should.
00:06:25 Casey: It is a good game.
00:06:27 Casey: So we should probably talk about what Daniel Jalkit said about push notification spam filtering.
00:06:32 Casey: Marco, did you get a chance to read this earlier today?
00:06:34 Casey: I read this 10 minutes ago.
00:06:35 Casey: Yeah, so what we were talking about last episode and what Daniel was kind of replying to was what especially Marco had talked about with regard to push notification spam and how the three of us really didn't come up with a terribly awesome way for Apple to filter the spam or take action on the spam.
00:06:56 Casey: And so one of the things we talked about was, well, maybe they could enlist users to help filter the spam and notify Apple of it.
00:07:05 Casey: And so Daniel had an interesting point, and I'm going to read from this post that we'll put in the show notes.
00:07:10 Casey: Apple can still use its unique role as the creator of all things iOS to devise a system through which they would themselves be virtually subscribed to all unremarkable notifications from a particular app's developer.
00:07:20 Casey: Think about the worst notification spam you've seen.
00:07:22 Casey: In my experience, it's not super personalized.
00:07:24 Casey: In fact, it's liable to be an inducement to keep using the app, to advance in a game, to become more engaged, etc.
00:07:30 Casey: I think Apple would collect a ton of useful information about spammy developers if they simply arranged that every app on this app store is capable of sending push notifications included among its list of registered devices, a pseudo device.
00:07:42 Casey: I think it's a really good idea.
00:07:52 Casey: That seems like the hardest crap to put together.
00:07:55 Casey: But it is a very interesting point.
00:07:57 Casey: I mean, when you are in control of the entire ecosystem, you probably can get away with doing something like that.
00:08:02 Casey: And I was curious to hear what you guys thought.
00:08:04 Marco: See, it's a really good idea.
00:08:06 Marco: You know, so what he said earlier in the post is like one of the problems is they can't just run these kind of filter server side because everything's encrypted end to end.
00:08:14 Marco: So in order to see the content of a message, you have to be one of the recipients of the message.
00:08:19 Marco: And that's actually not entirely true.
00:08:25 Marco: When you send a push notification request, you send it over SSL, but the server on the other side has the decryption key and you're just sending a JSON dictionary.
00:08:36 Marco: So your server is not encrypting that data separately from SSL.
00:08:41 Marco: That encryption is happening after it gets into Apple's hands.
00:08:44 Marco: So his assumption early on is actually not correct that they could be doing the server side if they wanted to without having like this big pseudo device.
00:08:53 Marco: I think there's two problems with it.
00:08:54 Marco: Number one, it would have to it would almost certainly be abused and worked around very quickly.
00:09:03 Marco: For instance, developers could start using different schemes.
00:09:06 Marco: So, for instance, background refresh.
00:09:08 Marco: You can just send whatever you want as the payload of a silent notification for background refresh that doesn't show any text to the user.
00:09:17 Marco: Then you can have your app generate a local notification based on whatever you want that says whatever you want from that.
00:09:24 Marco: That's actually how I send all of mine.
00:09:26 Marco: Every overcast notification is message list.
00:09:29 Marco: It is a content available notification.
00:09:30 Marco: And then the app wakes up
00:09:32 Marco: performs a sync, and then for any new podcast episodes it finds, it shows a notification from their title.
00:09:41 Marco: So all of the text that is being shown to the user in push notification is not going through Apple servers and will require the app to be launched to generate.
00:09:50 Marco: And of course, developers would very quickly work around this kind of system if it was in place.
00:09:56 Marco: They would show the text in different ways.
00:09:59 Marco: They would respond to silent notifications or they would encrypt the messages and then decrypt them with a custom scheme with the app or whatever.
00:10:06 Marco: So that method wouldn't entirely work.
00:10:09 Marco: What would work better and what would actually be a prerequisite to having that kind of setup at all is if Apple cared.
00:10:20 Marco: That's the biggest problem here is that it really seems like Apple doesn't care about this problem by their complete inaction and complete seeming inability and unwillingness to enforce this rule and then to even break it themselves with one of their teams.
00:10:35 Marco: I think it's very clear that Apple simply doesn't think this is a problem because when Apple thinks something is a problem, it tends to get attention.
00:10:42 Marco: It tends to get addressed.
00:10:44 Marco: And then when Apple – you know, Apple has kind of this tunnel vision sometimes where whatever they care about, whatever the hot thing is at that moment, it gets this laser focus.
00:10:54 Marco: They do crazy things.
00:10:56 Marco: It gets remade or gets massive progress made on it.
00:10:59 Marco: And then it gets left alone, untouched for 10 years.
00:11:02 Marco: And I think this is one of those things where like –
00:11:05 Marco: This is an area of the App Store that they just don't care about, like much of the App Store, honestly.
00:11:10 Marco: Most of the App Store does not see rapid change.
00:11:13 Marco: The policies sure don't.
00:11:15 Marco: I think it's just very clear this is a problem to geeks like us and people who are as picky as me, but Apple does not think this is a problem because if they thought it was a problem, they would be doing more to enforce the rule, and they're not.
00:11:31 John: I think it's another reason why the Jockett proposed solution, ignoring encryption, ignoring fake local notifications, stuff like that.
00:11:40 John: Even if all those workarounds didn't exist, this would still require Apple to do two things.
00:11:48 John: One thing that Apple doesn't like to do and one thing that they're not very good at.
00:11:51 John: The thing they don't like to do is this would require them to essentially log all workarounds.
00:11:55 John: push notifications, right?
00:11:57 John: Yeah.
00:11:58 John: And or store them in some way so that you could verify that they were sent for some, you know, they would have to store some window of time.
00:12:05 John: And the reason they would have to store them is because the second thing that I don't think they'd be very good at is figuring out if something is...
00:12:11 John: in violation of the guidelines by looking at the content computer wise you know spam detection and to do that well it's not easy to do that well and do it fast at the same time so it's not like they could watch up all the traffic as it goes by categorize it as spam or not spam and then discard it because what if they got it wrong and they want to retrain their filter or whatever so it would have to be stored for some period of time 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:40 John: Undo all of their end-to-end encryption.
00:12:42 John: Look at the content.
00:12:43 John: Great.
00:12:43 John: Now you're looking at all the push notifications.
00:12:45 John: Oh, and by the way, simulate user activity so that you get the push notifications that are in response to you using the application or not using the application or having used it within a certain period of time.
00:12:54 John: All the...
00:12:55 John: You'd have to do a hell of a lot to make a fake thing that behaves in a way that is sure to trigger all of these spammy push notifications.
00:13:04 John: Then you're just left with a pile of push notifications that you have to look at and determine which ones are legitimate.
00:13:08 John: And that's hard for humans to do.
00:13:09 John: I mean, app reviewers can't even determine if an app is legitimate.
00:13:12 John: And you're expecting a computer in a few milliseconds to figure out if a push notification is in violation of the no promotions rule.
00:13:20 John: Um, so that's why I keep coming back to, uh, the only solution to this has to involve some kind of, uh, reporting by recipients.
00:13:29 John: Uh, you know, I have received the spam push notification, report this application or disable notifications.
00:13:36 John: And maybe like, you know, I was trying to think of all, uh, less intrusive UIs for doing this.
00:13:41 John: that wouldn't bother regular people maybe uh when you turn off push notifications for an app it may ask you if that you know if that app has ever sent you push notifications or if it had sent you a push notification recently like within the past five minutes it may ask you are you disabling notifications because this for one of these five reasons and you can say spam whatever you know like some kind of thing like that that only some nerd will see that's heavily gated on
00:14:05 John: the, the thing that we all do, which is something sends you a notification.
00:14:08 John: You realize you forgot to turn it off.
00:14:09 John: You immediately go to system, uh, system preferences, whatever the hell they call it in iOS settings.
00:14:14 John: And, uh, it's a gear icon.
00:14:16 John: It's killing me.
00:14:16 John: It's in both places now.
00:14:19 John: And you immediately go to turn it off.
00:14:21 John: And, uh,
00:14:22 John: you know ios can detect that sort of pattern and can throw up something that says you know kind of like those annoying unsubscribe things like you've successfully unsubscribed did you unsubscribe because and you never want to answer the questions well if you're angry because something sent you spam i know i would click the little thing or tap the little thing that says yeah i just disabled it because it sent me an ad or something that looked like an ad and that'll have tons of false positives from people who are just angry they got notifications period but the volume of hundreds of millions of ios users is enough that you know they could do these in graphs and say all right
00:14:51 John: This looks like a spammy app.
00:14:52 John: Let's maybe investigate it and have five people a week.
00:14:55 John: Just run that app on their phone and see if it sends them in ads.
00:14:57 John: And, you know, yeah, I'm talking about this last show.
00:15:00 John: Apple has all the power here.
00:15:02 John: They can totally stop this.
00:15:04 John: Like they're not powerless to, you know, all they have to do, like Marco said, is care about it a little bit.
00:15:10 John: And then like they can at their leisure.
00:15:14 John: do almost anything almost any possible sort of end user solution really really lightweight and their volumes will make it such that it'll become super clear what the popular app that is spamming people is you're never going to get the obscure app that's spamming people because seven people haven't installed but you'll get the popular app that's spamming people and then you send them a nice little note and say hey i noticed your app is spamming people play maybe stop that
00:15:35 John: And they will stop.
00:15:36 John: And if they don't, their app has gone out of the store.
00:15:38 John: It's just, you know, having such incredible power over everything that's in the app store, it's just like they're wasting it by not using it for good.
00:15:47 Marco: Oh, yeah.
00:15:47 Marco: I mean, this is, you know, as we get into the app store discussion, I'm sure I'll bring this up again.
00:15:51 Marco: But there are so many areas in which they could use this for good.
00:15:54 Marco: For example, the way the new Twitter app scans URL schemes and maybe process listing, I don't know.
00:16:01 Marco: But they scan for the apps you have installed and they send that list of apps that you have installed to Twitter and Twitter uses that to advertise to you.
00:16:11 Marco: This is a pretty big privacy violation.
00:16:13 Marco: People on iOS generally expect because the way iOS works in most ways is that apps are sandboxed and can't read data from other apps.
00:16:22 Marco: They can't even see other apps.
00:16:24 Marco: They can't even tell what you have installed conceptually at least.
00:16:27 Marco: In practice, there are two ways to tell if you have an app installed.
00:16:31 Marco: One is if the app registers for any URL schemes, then you can check for those, whether they're registered or not.
00:16:38 Marco: And the second is there's a low-level, some kind of assist control function, something like that.
00:16:43 Marco: I don't know which exactly one it is, but there's a low-level PostEx function to get the list of running process names.
00:16:48 Marco: And so if you pull that list on a regular basis, the chances are you're going to catch a lot of apps the user has installed in their currently running state.
00:16:57 Marco: And so you'll eventually build up a list of what apps they have installed based on their process names.
00:17:03 Marco: That function, I'm not sure there's a good reason for that to exist in iOS or to return valid data.
00:17:09 Marco: It wouldn't surprise me if in the future, similar to the way that Apple basically removed MAC address access from those low-level system calls in iOS, I think 7 did that, where the call is still there.
00:17:24 Marco: You can call it, but it just returns all zeros for a MAC address now.
00:17:27 Marco: Similar to that, I don't think there's a reason why iOS needs this function to return valid process names to the app that's calling it.
00:17:37 Marco: There's no XPC that's app controlled or anything like that.
00:17:40 Marco: So if there's a good reason, please let us know once.
00:17:44 Marco: Yeah.
00:17:45 Marco: That's not how this works.
00:17:47 Marco: Yeah, I know.
00:17:48 Marco: I don't think there's a reason for that.
00:17:51 Marco: So I think privacy-wise, I think Apple should care about this problem because I think the list of apps you have installed should be considered private information, personal information that any one app shouldn't be able to get a list of apps on your phone.
00:18:06 Marco: URL schemes, though, that's a trickier one.
00:18:08 Marco: So some apps, they have URL schemes in place for various workflow things.
00:18:13 Marco: You know, there's various reasons why you'd want to have and publish a URL scheme.
00:18:17 Marco: And if you're going to do that, I guess there's no real way around that, around your app being discovered.
00:18:24 Marco: On the other hand, there's a lot of apps that have URL schemes in place for other reasons, like some OAuth SDK thing, the Facebook login thing.
00:18:34 Marco: Some plugin or component of your app requires some kind of workaround, like where it kicks you to some other app, you sign in, and then it kicks you back to your app.
00:18:43 Marco: And so you have to have a URL scheme to make that work.
00:18:45 Marco: And so a lot of apps have URL schemes that really aren't using them for any other purpose besides that sort of thing.
00:18:49 Marco: iOS 8 and the new extension system makes a whole lot of that unnecessary.
00:18:55 Marco: So I would actually suggest, and I say this as one of the designers of xCallbackURL, I would suggest that URL schemes possibly be deprecated in the future and removed later after that.
00:19:06 Marco: I think that there are better ways around that problem that they've designed in iOS 8.
00:19:11 Marco: If Apple seems to think that it's okay for apps to have a list of 10,000 known URL schemes and scrape all your apps and send them to a server and advertise to you based on that, which is what they're currently permitting Twitter to do,
00:19:21 Marco: If Apple thinks that's okay, that's going to continue.
00:19:24 Marco: And that's going to be in every analytics package and every scammy ad package for iOS.
00:19:31 Marco: And it's going to become very standard of practice for apps to spy on your other apps and report those back to their shady companies.
00:19:38 Marco: And that's really not good.
00:19:39 Marco: I really don't like that at all.
00:19:40 Marco: And so I think...
00:19:43 Marco: As URL schemes become dramatically less necessary with iOS 8, maybe the way forward is not to have them to remove that possible area of abuse.
00:19:53 Marco: Secondarily, Apple could just have a rule that they actually enforce that says you can't collect lists of apps from your device and send them to your servers.
00:20:01 Marco: That could just be a rule.
00:20:04 Marco: They don't seem to care, though.
00:20:06 John: Don't you get the feeling like, again, we have no visibility into what anyone is actually thinking, so we just have to guess in this void information, but that there's this tiered system in terms of developers.
00:20:18 John: Externally, you're all the same, but internally to Apple, if the Twitter app starts doing something spammy,
00:20:24 John: Apple's reaction, I would imagine, is not to send a generic email from some person that says, your app's going to be pulled in two weeks if you don't stop doing this, like what they do to other people.
00:20:36 John: You know what I mean?
00:20:36 John: Instead, someone at a much higher level
00:20:39 John: has a nice friendly phone call with someone higher level on Twitter and they have a discussion about it.
00:20:43 John: Because it's Twitter.
00:20:44 John: What are they going to do?
00:20:44 John: Pull the Twitter app?
00:20:45 John: I mean, yeah, eventually they would if there was some sort of actual disagreement.
00:20:48 John: I totally believe they would pull the Twitter app.
00:20:50 John: But you get handled a little bit differently when you're Twitter.
00:20:53 John: I mean, I know they pulled Path for pulling all your contacts and everything, but Path was not as big as Twitter.
00:20:58 John: And, like, I mean, they're nice to everybody.
00:21:01 John: Like, it's not like they're mean to other people and nice to Twitter.
00:21:04 John: But I just get the feeling, based on nothing other than,
00:21:09 John: seeing their actions externally without knowing what's going on in the box and maybe hearing a little bit about sort of the, the treatment and who gets picked to, you know, come two weeks early and do a demo for a keynote or whatever.
00:21:21 John: Uh, not every, not every developer is treated the same.
00:21:23 John: And I think this is appropriate in general, but it goes against the sort of egalitarian idealistic story of the app store where, you know, anybody can play and all the rules are the same for everybody.
00:21:33 John: It's not quite, it doesn't seem like from the outside that it's quite the same for everybody.
00:21:37 John: So I don't, I've,
00:21:39 John: 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:45 John: It's not like we're going to pull you from the store.
00:21:47 John: We know you have schedules.
00:21:48 John: Just tell us that the next version you'll fix this and give us a rough timeline and we'll say, OK, and then we won't say anything about it publicly and everything will be fine.
00:21:55 John: It's totally plausible to me that that could be happening inside Apple.
00:21:58 John: But of course, we don't know.
00:22:00 Casey: So why don't you tell us about something we do know, Marco?
00:22:04 Marco: We do know that we were sponsored this week by a new sponsor.
00:22:07 Marco: It is Oscar.
00:22:09 Marco: Oscar is a new kind of health insurance company.
00:22:11 Marco: They use technology to guide you to better care.
00:22:13 Marco: It's at highoscar.com slash ATP.
00:22:17 Marco: That's high like, you know, high.
00:22:18 Marco: highoscar.com slash ATP.
00:22:21 Marco: So most health insurers have, you know, other big corporations as their primary customers, not individuals and families.
00:22:27 Marco: And it really shows.
00:22:28 Marco: Oscar only offers plans for individuals and families.
00:22:32 Marco: They're focused on the needs of the individual.
00:22:34 Marco: They put people first and they've transformed health insurance from scary and overwhelming to friendly and simple.
00:22:40 Marco: buying health insurance for yourself is a pretty intimidating process i've gone through it myself a number of times uh some of which were before the affordable care act and let me tell you that was terrifying because before the affordable care act there were all these uh all these risks that you would take that aren't there anymore where it's like you have to understand all these different numbers and all these different conditions and you always have to ask yourself like well in which ways could this bankrupt me like unfortunately most of those things are now illegal but there's still a whole bunch of like crazy numbers you got to understand and everything
00:23:10 Marco: oscar makes it as easy as possible oscar they have these clear honest language around their plans there's only a few plans to choose from and they're all pretty much the same plan just like how much deductible do you want um and they had this beautifully designed website that's easy to use full of information and very very clear you would not believe how bad other health insurance websites are unless you've used them in which case you know exactly what i'm talking about
00:23:34 Marco: And Oscar also offers great customer service via phone or email, which, again, is extremely unusual for health insurance companies.
00:23:43 Marco: Oscar plans include benefits like free checkups, some free generic drugs, free primary care doctor visits, specialists without referrals.
00:23:51 Marco: You don't have to go to a referral first.
00:23:52 Marco: Huge time saver.
00:23:54 Marco: But the coolest benefit that they have, I think,
00:23:56 Marco: They have a 24-7 doctor on call service.
00:24:00 Marco: So anytime, day or night, you can request a phone call and a board certified practitioner will call you in a few minutes who can help you with many questions and ailments right over the phone.
00:24:11 Marco: And they can even issue common prescriptions all right over the phone.
00:24:14 Marco: And that service is free.
00:24:15 Marco: There's no copay.
00:24:16 Marco: There's no limit.
00:24:17 Marco: That service is free for Oscar members.
00:24:19 Marco: You can get 24-7 doctors on call.
00:24:22 Marco: That's incredible.
00:24:23 Marco: Starting in January, Oscar members can receive credit of up to $240 a year for reaching daily walking goals.
00:24:29 Marco: These goals are tailored to you based on your previous level of activity.
00:24:32 Marco: If you want to participate in this, Oscar will give you a little wearable thing and then you track your progress right in their app.
00:24:38 Marco: Whether you're entirely healthy or you or someone in your family has a complicated medical condition, Oscar's plans will cover you.
00:24:44 Marco: You can buy their insurance through the new health insurance marketplaces if you're in most of northern New Jersey or the parts of New York that are in and around the city like Westchester, Rockland, Suffolk, Nassau.
00:24:54 Marco: So check their website to see if they cover you.
00:24:56 Marco: Again, that's most of northern New Jersey and metro New York.
00:24:59 Marco: HiOscar.com slash ATP will show you more about that and let you just type in a zip code.
00:25:04 Marco: You can get a quote in like two seconds.
00:25:05 Marco: You just type in like your zip code and your age basically and that's it.
00:25:08 Marco: Because of the way the healthcare marketplaces work, you can only sign up from now through February.
00:25:13 Marco: So hurry up.
00:25:14 Marco: There's these tier deadlines.
00:25:16 Marco: So if you sign up in the next couple days by December 15th, you can get insurance for January 1st.
00:25:21 Marco: If you sign up by January 15th, you'll get insurance for February 1st.
00:25:25 Marco: Hurry up if you're into this.
00:25:26 Marco: This is not the kind of thing you want to delay on.
00:25:29 Marco: If you need to buy health insurance for yourself and or your family, this is a great way to do it.
00:25:33 Marco: Oscar is a novel approach to an industry that hasn't been innovative in decades.
00:25:37 Marco: To learn more about their plans or to get a quote, visit high Oscar dot com slash ATP or call.
00:25:43 Marco: They have a special number just for ATP listeners.
00:25:46 Marco: One eight four four Oscar ninety eight.
00:25:49 Marco: So thanks a lot to Oscar for sponsoring our show.
00:25:52 Marco: Man, buying health insurance does suck.
00:25:53 Casey: It sucks even if you're employed at a regular job like John and I are.
00:25:58 Casey: It's still a pain in the butt.
00:26:00 John: You know, so the self-employed thing is definitely more difficult and usually more expensive.
00:26:04 John: But the one big downside of employer provided is that you usually have little or no choice.
00:26:11 John: So you don't get to shop around.
00:26:12 John: What if I liked Oscar and think it's awesome?
00:26:14 John: Well, tough luck.
00:26:17 John: You can't forego the employer funded one because it's always so much cheaper because they contribute some money to it.
00:26:22 John: But you have so few choices.
00:26:24 Marco: You should grit your job.
00:26:27 Casey: All right.
00:26:29 Casey: So anyway, so we're still not happy with the App Store, are we, Marco?
00:26:34 Marco: I thought we were past all this.
00:26:36 Marco: I really did.
00:26:37 Marco: You know, there was a time when the App Store first came out.
00:26:40 Marco: And over the first couple of years it was out, we had a bunch of bumpy rejections from Apple figuring out its policies, developers figuring out what Apple wanted, Apple at first being pretty bad about communicating their policies and then later getting less bad at it.
00:26:54 Marco: Overall, app review...
00:26:56 Marco: is a good idea.
00:26:57 Marco: Overall, I support AppReview.
00:27:00 Marco: And overall, I think it has benefited customers and developers and Apple.
00:27:06 Marco: But there are still these dark patches.
00:27:09 Marco: And there are still times when it seems like...
00:27:12 Marco: Apple is a little bit too, I wouldn't necessarily say power hungry, but they seem to be too strictly or overreaching in their rule enforcement in a way that doesn't seem to benefit anybody, possibly even including Apple.
00:27:29 Marco: They're not seemingly looking out for any kind of clear user benefit.
00:27:35 Marco: There's no major reason why, at least that we can see, why Apple needs to enforce certain rules or wants to enforce certain rules.
00:27:44 Marco: And there are a lot of rules they enforce that are unwritten.
00:27:48 Marco: And this is the biggest problem.
00:27:50 Marco: This is one of the things that's going on now around these Notification Center widgets.
00:27:54 Marco: And there seems to be this disconnect.
00:27:56 Marco: These are two different parts of Apple, two very, very distantly separated parts of Apple.
00:28:01 Marco: So on one end, you have Craig Federighi and his organization making the software and making the SDKs and adding these great abilities to the OSs.
00:28:12 Marco: But developer relations and all parts of developer relations, including AppReview, are all buried deeply in Phil Schiller's organization.
00:28:21 Marco: So these are very separate parts of Apple.
00:28:23 Marco: And I think what we're seeing here, we've seen some speculation over the last couple of days from a couple of blogs.
00:28:30 Marco: In fact, I'm a Stratechery member, Ben Thompson's site, Stratechery.
00:28:36 Marco: I'm one of his premium members.
00:28:37 Marco: And so I get his daily updates.
00:28:41 Marco: And I highly recommend these daily updates.
00:28:42 Marco: They're extremely good.
00:28:43 Marco: He is one of the smartest writers in our business right now.
00:28:46 Marco: And he wrote one today basically saying, you know, saying along with a few other things I've seen recently that it sure seems like maybe there's some friction here between Schiller's organization and Federici's organization.
00:28:58 Marco: And I don't know enough about it to say any more than that.
00:29:00 Marco: But I think looking from the outside, it does certainly seem like these two different parts of Apple –
00:29:04 Marco: are not on the same page on everything.
00:29:07 Marco: And something is going wrong there.
00:29:08 Marco: There's some kind of friction or communication breakdown or different priorities.
00:29:14 Marco: Something is going wrong there because we have the massive, as we said this past summer at WBDC, the massive love letter to developers that Apple basically had this past summer saying, look at all this great new stuff.
00:29:26 Marco: All these walls we're lifting, all these things you thought we'd never do, well, we did them.
00:29:30 Marco: All these things you thought your apps could never do, now you can do them.
00:29:33 Marco: Now, months later, after the stuff is out and in consumers' hands and these OSs are out and people actually start trying to do things with them, we're seeing so many problems and rejections from the app review side of things.
00:29:48 Marco: Oh, and by the way, also a third division is the App Store editorial team, which is under ADQ.
00:29:55 Marco: So you have the people who make the SDKs, the people who pick which apps are featured to be great examples of what apps should be doing, and then the people making the policies of actually enforcing those rules.
00:30:06 Marco: Those are all three different organizations under three different SVPs inside Apple and who apparently have different viewpoints on things.
00:30:13 John: I don't know if you could say that the development is in conflict with the other two.
00:30:18 John: You could say that AppReview and AppStore Editorial are at best just not communicating with each other and doing embarrassing things.
00:30:27 John: But engineering, their responsibility is in cooperation with whatever they're sort of
00:30:34 John: product design thing or you know whoever's designing what the product's going to do engineering's job is to you know implement it and maybe i don't know if the product design is under that umbrella but probably anyway they create the apis and
00:30:46 John: And every API they create, there's some expectation is like, we're just going to make something possible.
00:30:52 John: But although you may be able to do a thing with these APIs, for example, read all the contacts and email them to your server, like the people who made those APIs, it's not their fault that you can do that.
00:31:02 John: It's like, we're going to implement these features.
00:31:04 John: We're going to make these APIs that make features possible.
00:31:07 John: I don't know if, you know, I don't think Craig Federighi sees it as his responsibility to worry about, you know, whatever APIs we make, obviously some developer is going to use those APIs to do something that AppReview is going to reject.
00:31:20 John: And that does not necessarily imply a conflict between Craig Federighi and the AppReview section of the organization.
00:31:26 John: I don't think he would say that he sees it as his role to make those decisions because they aren't his decisions.
00:31:33 John: There are features that they want developers to be able to add to their products that are made possible by his APIs.
00:31:38 John: There are also things that people can do with the APIs that the engineering side makes that are going to be against AppReview.
00:31:44 John: And that is the way it's always been.
00:31:47 John: anecdotes about like well i showed this to an engineer in the you know in the labs at wwdc and they thought it was awesome yeah they probably do think it's awesome but again they they they know they're not in charge of app review and they're excited to see someone doing using their api to do something cool but i all but i still don't think that it implies a conflict between engineering and the rest of the organization i think the the only thing we can say for sure is the
00:32:13 John: embarrassing lack of communication between editorial and app review in terms of promoting an application and then pulling it while it's under promotion like that's just that's the type of thing that shouldn't happen to those things communicate with each other better so there could be a conflict between it's a natural like we're geeks out here and 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 that sort of uh
00:32:38 John: a sort of apple engineer's mindset a true engineer's mindset would be like you know well the linux thing if it's possible everyone should be allowed to do it is free you know anarchy for all the apple mindset if it's possible and if we think about it and we can't think of a reason to stop it uh then it should be possible so it's probably true that if you were to pull the entire organization the vast majority of the people who work in engineering in apple would say yes that should be possible no i would never pull the p calc uh you know thing for putting a calculator in that today view um
00:33:05 John: But, you know, I'm hesitant to turn it into a vice president versus vice president internal turf war type battle.
00:33:16 Marco: Oh, yeah.
00:33:16 Marco: That's why – I mean I'm careful to say that it's under these people's organizations.
00:33:20 Marco: I mean there's – like we don't know if Schiller is involved with these decisions personally or Federighi is mad about these decisions personally or anything like that.
00:33:27 Marco: But what we can clearly see –
00:33:30 Marco: is that these parts of Apple are not working together correctly.
00:33:34 Marco: And it's so bad that it's leaking out that it's publicly visible.
00:33:39 John: I mean, but do you think, like I said, I don't know, I think this is the correct working of engineering and AppReview, in that engineering makes the APIs and AppReview decides if the things developers are using them for are allowed.
00:33:51 John: Our complaint is that AppReview is making decisions that we don't agree with.
00:33:54 John: Right, and that conflict with editorial.
00:33:56 John: I'm willing to chalk that up to lack of communication.
00:34:02 Marco: That's a pretty big thing.
00:34:04 Marco: This is coming at a particularly bad time for Apple because right now, in this time, late 2014, the last couple weeks of 2014, the Apple Watch is coming out soon.
00:34:18 Marco: ipad sales are not that great it is harder than ever to make money in the app store and android is massive and android just released a major update the whole paper thing whatever they call it material design all like the android 5.0 that's actually getting pretty good reviews from people
00:34:35 Marco: So what we have is Apple is enforcing all these rules.
00:34:40 Marco: They've been enforcing all these rules for years, and they have this crazy position of power because there was really no other place to go if you wanted to make any reasonable money developing apps.
00:34:49 Marco: I mean, some people make money on Android.
00:34:51 Marco: It's possible to, but it's historically been harder.
00:34:55 Marco: As hard as you think it is on iOS to make money, it's historically been even harder on Android.
00:35:00 Marco: And a lot of things just weren't as good on Android.
00:35:03 Marco: But that gap is closing, and I'm not sure it ever will close, period.
00:35:08 Marco: I don't think it will anytime soon, but it's a lot smaller than it's ever been before.
00:35:13 Marco: Meanwhile, at the exact same time, you have the iPad not doing particularly well relative to how it was doing.
00:35:21 Marco: You have immense competition in the App Store that drives prices way, way down and makes it very hard to make any money.
00:35:28 Marco: And you have this new platform, the Watch, that you're expected to develop for in parallel.
00:35:35 Marco: And this is combining to make it a tougher sell than it previously has been to be an iOS developer.
00:35:42 Marco: You have now more platforms you need to target.
00:35:45 Marco: There's more work for you to do.
00:35:47 Marco: You might have to do adaptive layout to make resizable iPad apps if that ever ships, like we talked about before.
00:35:54 Marco: So there's more and more work to be a current, up-to-date, responsible iOS developer.
00:36:00 Marco: There's more and more work than it's ever been before.
00:36:03 Marco: The alternative of Android development is less bad than it used to be relative to iOS development.
00:36:10 Marco: And you're making less money on iOS than you've ever made before.
00:36:13 Marco: This is not a good time for Apple to add more reasons for developers to become disillusioned with the platform.
00:36:20 Marco: This is strategically a really terrible time for that because Apple needs fantastic developers to do two big things for it.
00:36:29 Marco: It needs good developers to push the boundaries to make the iPad a better general computing device than it is.
00:36:36 Marco: And it needs developers to make great apps for this new watch coming out in the spring.
00:36:40 Marco: And on some level, there's always going to be more developers.
00:36:43 Marco: You can always say, well, there's more people waiting.
00:36:46 Marco: When you guys all leave, more people will come in.
00:36:48 Marco: There's always going to be a fresh batch, like the entertainment industry.
00:36:50 Marco: Lots of industries work that way.
00:36:51 Marco: That's true.
00:36:54 Marco: But if you want the best developers making the best apps, and if you want the boundaries to be pushed, if you want... What Apple said in WWDC, they said on a number of occasions, we can't wait to see what you do with this stuff.
00:37:08 Marco: And then they see what we do with it and they tell us, oh, you can't do half of that.
00:37:12 Marco: As long as you do what they want you to do.
00:37:14 Marco: Right.
00:37:15 Marco: I mean, they need good developers to push the boundaries and to make fantastic software that is sustainable and that takes advantage of the platform and that pushes it and makes it useful for people and it makes people buy their devices and stick with their ecosystem.
00:37:30 Marco: They need us right now more than their actions say.
00:37:35 John: Yeah, if we had to pick out things that are in conflict, it's not that the engineers conflict with any of the non-engineering parts, but it's the broad trends within Apple in sort of the post-jobs era is that in the recent years, and especially in this most recent year, 2014, engineering's reorganization, which has gone through a lot of growing pains and change of leadership, and Steve Jobs goes and Forrestal goes and things are realigned and they're new people and Johnny Ive is elevated and all that stuff.
00:38:04 John: All that rejiggering
00:38:05 John: has culminated in an engineering organization that, like you said, Marco, and like I said in my Yosemite review and everything,
00:38:13 John: An engineering organization that does things that previously it had refused to do, but that had been widely, you know, desired by their constituent developers and indirectly by their customers.
00:38:26 John: That is the overall trend in engineering in the last year or so.
00:38:29 John: And it's the result of all... You have to think it's the result of all these reorganizations that whoever was opposing this is either not in power, not in the company anymore, or lost an argument, right?
00:38:38 John: And now suddenly engineering is doing things that...
00:38:41 John: are that are directly beneficial to developers and indirectly beneficial so far to customers because customers one of these things to whereas app review has not undergone as far as I know such an organizational change and is instead acting the way it has always acted sort of in cycles where a lot of time it's dormant and sleeping and then sometimes the bear wakes up and bites you
00:39:04 John: And we've had fits of that.
00:39:07 John: You know, it's gone in cycles.
00:39:09 John: And why is it awake now?
00:39:10 John: Why is it sleeping other times?
00:39:12 John: Hard to say.
00:39:13 John: But one thing you can say is it has not undergone the same transformation that the engineering organization has gone through.
00:39:19 John: App Store is not suddenly letting in things that it previously let in.
00:39:22 John: It is not suddenly...
00:39:24 John: being more reasonable being more transparent you know uh explaining itself better like the only thing you can say for the app review organization is that they have cut down on wait times that consistently the trend has been you know don't have ridiculous wait times for things with a few bumps in the road for like releases where the mac apps have to be delayed forever and stuff like that but usually it's about a week still and it's it's you can you'll be able to say like it's it's about a week for like the last five years
00:39:49 John: Right.
00:39:49 John: So like the overall trend, like if you look at the entire history of the app store is that they have moved that metric to be sort of better in a way that developers like and that indirectly benefits customers, which is the same sort of yardsticker was using in engineering.
00:40:01 John: And so it's all the more glaring when engineering is suddenly doing things that seem, you know, that everyone would have said are no blame or doing them in a cautious way, doing them a good app way, but making positive progress where we say.
00:40:13 John: You know, iOS 8 is better for developers than iOS 7 was and so on and so forth, whereas AppReview just does not seem to be making any progress.
00:40:21 John: And I don't I'm not familiar with the internal organization of AppReview or that side of the organization, but if it has undergone any sort of transformation or change in leadership that is.
00:40:33 John: This sort of parallels the engineering one, I'm not aware of it.
00:40:36 John: And if it hasn't undergone that, then that entire organization looks to me like a typical corporate organization with people who are in power, who are stubborn, who are wrong, and who can't be convinced by their underlings, right?
00:40:47 John: And you're just stuck.
00:40:48 John: It's like, well, I disagree with you and I'm your boss at the end.
00:40:51 Casey: The other interesting thing to go back just a half step to what Marco was saying is that not only are developers feeling like we got a little bit of a bait and switch from WWDC, because I believe, Marco, you did.
00:41:05 Casey: And I know I wrote blog posts on the way back from WWDC about how.
00:41:10 Casey: We finally got all the things we've been asking for.
00:41:12 Casey: We finally got all the things we wanted.
00:41:14 Casey: I don't remember who it was that said it first, but it's like Lucy and Charlie Brown with the football.
00:41:22 Casey: And so here it is.
00:41:22 Casey: We got all the things we want.
00:41:23 Casey: Oh, just kidding.
00:41:26 Casey: Yeah.
00:41:26 Casey: And so developers are obviously furious, but a lot of users that I speak to, just regular people who are not developers, they're getting more and more frustrated with Apple too.
00:41:36 Casey: It started with Apple Maps being crap and Google Maps not being available.
00:41:41 Casey: And then it continued to buggy iOS 7 that all of a sudden looks different.
00:41:47 Casey: And people keep telling me how iOS 8 is buggy.
00:41:50 Casey: And to be honest, I haven't really had any particular issues.
00:41:53 Casey: But that being said, it seems like a lot of people I know who used to be really into all things Apple maybe aren't.
00:42:03 Casey: And that's a tough place to be.
00:42:05 Casey: And so here it is.
00:42:06 Casey: Apple is...
00:42:08 Casey: is in a position where they really shouldn't be pissing off their developers, not only for the developer's sake, but also for user's sake.
00:42:16 John: Do you see any do you have actual any non geeky user friends who talk to you about applications?
00:42:21 John: Are you just talking about like the luster of Apple's gone off?
00:42:24 John: Are you talking about users who notice the transmit can't send things to iCloud Drive anymore?
00:42:28 Casey: No, no, no, no, no.
00:42:28 Casey: The former where the luster, how it's always infallible.
00:42:32 Casey: They always work.
00:42:33 John: But that luster goes in cycles, too.
00:42:34 John: That's just the typical, you know, celebrity type.
00:42:36 John: Build them up, tear them down.
00:42:38 John: Like, I don't I don't attach anything particular to that because, I mean, that the cycle for that is practically yearly at this point.
00:42:44 John: yearly everybody loves apple and yearly everybody hates it like it's it seems to be getting faster you know oh yeah although you know to be fair one thing that does definitely impact customers is when an app is approved with a certain feature they buy it they use that feature and then they have to remove that feature because of apple's policy after the fact that's why i was asking i was asking if people if people notice that like do they read the release notes do they just get mad at the developer like does that blame even land on apple or do people
00:43:09 John: Do the type of features that get removed in that way, are they below the notice of people?
00:43:13 John: Because, you know, the feature that was removed from Transmit, people who use Transmit are already probably kind of geeky and maybe they really release notes.
00:43:22 John: I'm trying to think if there's like a mass market example, like if the Facebook app could do something that everybody thought was great and then Apple removed it, maybe that would get some notice.
00:43:30 John: But I've never heard any person who uses iOS complain to me that an app was updated and that feature was removed.
00:43:36 Casey: I have, but it was not at all because of Apple.
00:43:40 Casey: Um, everyone I know is furious about you not being able to send messages in the standard Facebook app anymore.
00:43:48 Casey: And you have to download a different Facebook messenger app in order to send messages.
00:43:52 John: Oh yeah, no, I remember that.
00:43:53 John: Yes.
00:43:53 John: And that was, and that blame landed on Facebook and that totally was Facebook because they decided to split their own stupid app.
00:43:58 John: So whatever.
00:43:59 John: But, uh,
00:44:01 John: Yeah, I guess they would notice that because that's sort of cutting an application in half into two pieces.
00:44:07 John: But for features that are banned because of App Store rules, I don't know.
00:44:13 John: I mean, it may just be the people I come in contact.
00:44:17 John: It's not that big of a deal.
00:44:19 John: Again, a lot of these issues are magnified for us because of the circles we travel in.
00:44:24 John: The Apple losing its luster type thing is more likely a tertiary effect of what Marco was talking about, where it's like Apple needs developers to help drive its platform forward.
00:44:34 John: And
00:44:35 John: developers are trying to drive it forward, and every time they go, you know, take a step too far, Apple, you know, snaps the whip and says, whoa, not that far.
00:44:42 John: We don't want you to make that too useful.
00:44:44 John: Right.
00:44:44 John: But we have to think about this for six months or nine months, or we have some senior VP who really thinks we should never, ever do that, so we're never going to let you do that.
00:44:52 John: It's like, how do you...
00:44:54 John: You become gun-shy.
00:44:55 John: There's many, many articles from developers expressing their reservations about using new APIs.
00:45:02 John: Even in best case, it's just like, let's lay off this new API for a year and see how many people invested in it for a year and get their app rejected.
00:45:10 John: And then maybe we'll get the lay of the land and sort of divine with chicken bones and other dice and stuff and figure out, I think this will probably be okay.
00:45:18 John: We'll work on this for six months and see.
00:45:21 John: It's making developers more cautious and really they should be blazing their way forward and making apps that...
00:45:27 John: like the stupid line you know the apps that apple hasn't even thought of before show us your amazing apps it's just like you get the feeling that in some apple executives mind they're like make amazing apps exactly the way i'm envisioning my mind that i'm not going to tell you about yeah i have a picture in my mind of what an amazing app would be like i'm not going to tell you what that picture is uh go make it and if you don't i'm going to reject your app like that's it it's a chilling effect on on development and so like
00:45:51 John: If customers are going to notice anything, it's going to be this multi-year delayed thing from developers being more cautious to use APIs and then bring out apps later and without more interesting features.
00:46:01 John: And all you need is, you know, I was thinking of, Marco already brought this up, but like, what does it take for someone to switch?
00:46:09 John: What does it take for someone to say, well, screw this, I'm going to develop for Android now.
00:46:13 John: they need to be able to make money doing it and some structural issues probably need to be sorted out so they become less of a deterrent like for an ios developer even with all the devices that are out there now you have to think fragmentation and install base of the most recent version
00:46:29 John: are a huge drag on switching over to android because you just have to wait for so long for you know the you know 5.0 to be everywhere and then you have to deal with so many more devices you have to wait for some sort of consolidation but even that is not nearly as bad as it used to be though
00:46:45 Marco: Like they did this crazy thing.
00:46:46 Marco: I don't know the crazy details of it, but they did this crazy thing a couple of years ago where they started bundling all the APIs together into the Google Play services, which can self-update.
00:46:54 John: I was thinking like hardware limitations in the screen sizes and CPU and GPU combinations.
00:47:00 Marco: Again, it's a problem for really just games.
00:47:02 Marco: Like for apps, it's a lot less of a problem because the GPUs stop mattering as much for apps than games.
00:47:08 John: Well, I know, but like the reason I'm not just thinking of games, what I'm thinking of is in terms of
00:47:12 John: What kind of applications are going to drive the platform forward and do amazing things that no one had ever thought of?
00:47:17 John: And those are always the ones that push the system.
00:47:19 John: And it's easier.
00:47:20 John: Right now, it's easier to make those on iOS because you have a better idea of what you're going to be aiming at and the install basis on a more recent version.
00:47:28 John: So if you're going to do something amazing in advanced, you can make more money doing it on iOS and it will be easier.
00:47:33 John: What will it take for those people to bail and go to Android and try to do the same thing?
00:47:36 John: Because that's what you don't want to happen is someone to come up with a new app idea that hasn't existed.
00:47:40 John: Let's take BitTorrent as an example, because like pretend BitTorrent didn't exist.
00:47:44 John: And someone came up with that idea and all our phones.
00:47:47 John: This is a terrible idea because it would kill your battery.
00:47:48 John: But anyway, some some type of some type of application that does something that would not be allowed on the app store.
00:47:55 John: But that has a user benefit, like users really like this application and this application would not be possible on iOS.
00:48:01 John: And it happens to land on Android first.
00:48:03 John: And everybody's like, well, I would get an Apple phone, but only Android has insert whatever this killer app is.
00:48:10 John: That's Apple's worst nightmare.
00:48:11 John: Like if Twitter came out today and was only available in Android because Apple didn't allow
00:48:16 John: something didn't allow like sms access or some crazy thing that you know whatever you don't want you don't want you you want to have that app you want to have like even if it's something as stupid as flappy bird and even though i'm sure that was on android too and everything like you want to be the platform where the great new thing happens and you can't plan for the great new thing and you don't know where it's going to come from and you don't know who's going to make it and you don't know when it's going to appear but you do know that the more you restrict your platform uh the higher the chances that this thing will appear only someplace else
00:48:45 Marco: Well, and it has a lot to do with also who is using your platform.
00:48:49 Marco: You know, like somebody in the chat pointed out, it was high-ending in the chat pointed out, like, you know, a lot of times the gotta-have-it apps that are only on one platform, a lot of times that's not because of technological limitations.
00:49:03 Marco: It's because the developer happened to use that platform or the most early adopters are on that platform.
00:49:08 Marco: And for the most part, that platform today is iOS and it has been iOS for a while.
00:49:12 Marco: I think since the iPhone was launched, it's been iOS.
00:49:16 Marco: But that's not guaranteed to always be the case.
00:49:20 Marco: Like Instagram launched an iOS first because that's just what you did in 2010 or whenever it launched.
00:49:26 Marco: Today, I don't think anything would launch Android first, but it would be increasingly difficult for a service to get really big and be iPhone only today.
00:49:36 Marco: Because the expectation gets higher every year that you should be on both of those platforms at the same time.
00:49:42 Marco: I'm still fine being iOS only because I'm just one guy and I'm not trying to take over the world and make a billion dollars from Facebook stock.
00:49:47 Marco: But I couldn't recommend to a big VC-backed company that wants explosive growth, I couldn't recommend to them that you should go iOS only necessarily.
00:49:57 Marco: I think at this point you've got to have both.
00:49:59 Marco: And it's only a matter of time.
00:50:00 Marco: Once we've reached this point where we can say, well, you really should be looking at both platforms, it's only a matter of time before something big happens on Android first.
00:50:12 Marco: and i don't think we're near that point yet i think we're still a few years off from that being very likely but the direction we're going that will eventually happen and and i don't think apple really cares about that or that i don't i think they're in denial or i think they either they don't think it will happen or they don't think it will be very important and i think they're wrong on both of those if they're making those assumptions
00:50:35 John: Well, the other thing Apple has going for in that area, and it seems to be their strategy so far, this is kind of a game consoles analogy, is they're just going to sell a lot of consoles.
00:50:44 John: No matter how annoying your platform is, one knob that can always turn is, let's just sell a bazillion freaking iOS hardware devices.
00:50:53 John: Because if we sell, we need to keep selling those.
00:50:56 John: Because if we don't sell enough of those, it would be like Windows Phone and it will make anything for us.
00:50:59 John: And we just need to maintain...
00:51:01 John: some kind of, within some kind of striking distance of Android's market share so that it doesn't become that big of a deal.
00:51:07 John: Because if Apple had 15% market share, it wouldn't matter how awesome their platform is.
00:51:12 John: It wouldn't matter how permissive their app review rules are.
00:51:14 John: They'd be like Windows Phone.
00:51:15 John: It'd be like, yeah, that's nice, whatever.
00:51:17 John: You have some good developers, you make some good apps, but it's not enough.
00:51:20 John: So they need to make good hardware and sell a lot of it.
00:51:22 John: And so far, they've been doing pretty good on that.
00:51:24 John: So it's giving them the room to screw up in app review.
00:51:29 John: without as many consequences because it's just like well you know like i said with android no matter how annoying it is android has such massive market share that if you are going to be a one of the biggest companies in the world you have to address it because it doesn't matter how bad or it is you just have to it's like it's more than half the market you've got you got to go do it um and android is all apple is only a contender because it's got a lot of market share a big market share and it's perceived as being better and having customers who are more willing to spend money and so on and so forth
00:51:59 Marco: Yeah, I mean, Apple definitely has a larger share of the most desirable customers for most people right now.
00:52:05 Marco: And they have for a while.
00:52:06 Marco: But I think the percentage share of that goes down every year for Apple.
00:52:11 Marco: I don't know that for sure.
00:52:12 Marco: I'm just guessing.
00:52:13 Marco: And I still think they have a pretty healthy lead.
00:52:15 Marco: But again, it's like if you look at the sum of all of this, of why somebody would develop for iOS only or first,
00:52:24 Marco: There used to be a lot of very strong reasons.
00:52:26 Marco: There were a bunch of apps out there.
00:52:28 Marco: There were a bunch of like this is where people look to get apps.
00:52:32 Marco: There was a bunch of money to be made potentially.
00:52:34 Marco: All the early adopters use this platform.
00:52:37 Marco: You personally use this platform.
00:52:39 Marco: You like this platform.
00:52:40 Marco: There are so many great things you can do only on this platform or easiest on this platform.
00:52:44 Marco: All those advantages or at least most of those advantages still exist today.
00:52:49 Marco: All of them are weaker, though, than they used to be.
00:52:52 Marco: Every time Apple does a chilling effect kind of thing, like with AppReview, it drops that barrier lower and lower and lower.
00:53:02 Marco: And again, it's a slow progression.
00:53:04 Marco: No single one of these factors is totally collapsing suddenly.
00:53:09 Marco: They're all just lowering slowly over time.
00:53:12 Marco: And I fear that this is going to catch Apple by surprise if one day there starts to be some spillover and Apple just misses it or they didn't see it coming.
00:53:25 Marco: And then what happens after that?
00:53:26 Marco: What happens when a few prominent iOS developers really do switch to Android and really start making really good stuff on Android and not on iOS?
00:53:34 Marco: I don't think we're very far, far away from that happening.
00:53:37 Marco: I think that starts to happen this coming year.
00:53:40 Marco: And and I don't know what happens after that.
00:53:42 Marco: But I think the barriers that Apple built around itself are substantially lower and weaker than I think Apple thinks they are.
00:53:51 John: You think in the next year, someone's prominent developers are going to bail?
00:53:56 Marco: definitely yeah like who i don't think so i mean i think with the watch coming there's a lot that's a lot to distract people i agree you know that well what that happened with the ipad i remember like when right before the ipad came out was when um the nexus one came out and a whole bunch of ios developers were like oh man the nexus one that's kind of interesting and then google sent a bunch of them for free so a lot of people including me i should disclose um
00:54:21 Marco: And I started to be, I wonder if I should make newspapers website work better on this.
00:54:24 Marco: Maybe eventually I'll make an app for it someday.
00:54:27 Marco: And then Apple announced the iPad like a month later.
00:54:29 Marco: And then we all got distracted by the iPad for three years.
00:54:33 Marco: That might happen with the watch.
00:54:35 Marco: Maybe Apple's banking on that.
00:54:36 Marco: Maybe Apple's assuming that will happen with the watch.
00:54:38 Marco: I'm not entirely sure it will.
00:54:41 Marco: I think, first of all, WatchKit in year one is going to be pretty limited in what you can even do with it and what kind of apps even make sense to have a Watch app.
00:54:51 Marco: Not to mention, if you think Apple is being controlling and arbitrary and capricious with the App Store rules with today widgets...
00:54:59 Marco: You haven't seen anything yet.
00:55:00 Marco: Because wait until the watch comes out and they start denying apps for that for things that we consider invalid or stupid reasons or they start enforcing inconsistent rules for that.
00:55:10 Marco: Believe me, there's going to be a lot of that going on.
00:55:13 Marco: I'm actually honestly a little... And there's another thing too.
00:55:17 Marco: I think a lot of developers are going to draw that same conclusion and they're going to see the stuff that Apple's pulling now with the iOS 8 things and today widgets and stuff.
00:55:26 Marco: And they're going to look at this new SDK we got with WatchKit and be like, well, should I really spend the next three months developing a WatchKit thing?
00:55:33 Marco: Or should I just wait and see how the market shakes out?
00:55:35 Marco: Because we're going to see a whole bunch of app review BS next spring when this comes out.
00:55:41 Marco: We're going to see a lot of app review BS over the first few months.
00:55:44 John: Yeah, but when the watch first comes out, though, there's the gold rush, like you said, with the iPad.
00:55:48 John: If you're one of the first apps available that does X on the watch, you get a massive, massive leg up on everybody else.
00:55:54 John: You always want to be there with a new device, especially a new category of device like the iPad, like the iPhone.
00:56:00 John: So I don't think that's going to dissuade many people who think they have a shot at being there on launch.
00:56:05 Marco: Maybe, but again, though, there's also, there's not a whole lot you can do with the WatchKit apps quite yet.
00:56:11 John: It doesn't matter.
00:56:11 John: You can charge 99 cents for your app that has watch integration and you get 99 cents or 70, whatever.
00:56:18 John: 69.9.
00:56:19 Casey: Well, it's...
00:56:20 Casey: It's not really that cut and dry, though, right?
00:56:21 Casey: Because you need to have a standalone app first in order to have a WatchKit app.
00:56:27 Casey: And presumably, many of the WatchKit apps will be built upon standalone apps that presumably you've already paid for unless you pull a Tweety 2.
00:56:36 Casey: I don't know.
00:56:36 Casey: In any case, let's talk about something else that's really cool.
00:56:39 Marco: It's Backblaze.
00:56:40 Marco: We are sponsored once again by Backblaze, our friends that are in the online backup business.
00:56:44 Marco: Now, let me tell you about online backup.
00:56:46 Marco: You need this.
00:56:47 Marco: Your family needs this.
00:56:48 Marco: Everyone you know needs this.
00:56:49 Marco: Casey needs this.
00:56:50 Marco: John needs this.
00:56:51 Marco: Everybody needs this.
00:56:53 Marco: Let me tell you, you need online backup.
00:56:54 Marco: It's amazing because there are so many catastrophes, minor disasters, problems that can happen that can take out your data on your computer and any drives that are physically connected to it or any drives that are in your house with it.
00:57:09 Marco: Things like fires, floods, power surges, theft, all sorts of problems that can happen.
00:57:15 Marco: that would take out your data with it even just like human error sometimes like that's you know there's there's a lot of human error you can do like if your backup is a raid array you're you're so screwed remember raid is not a backup uh anyway so you want online backup trust me when you go if you're visiting your family this holiday season if you see you know your your parent or grandparent or siblings computer
00:57:36 Marco: Without online backup, give them the gift of installing Backblaze for them.
00:57:41 Marco: So online backup is really, really important.
00:57:44 Marco: To use John Gruber's words, if you don't have it, you're nuts.
00:57:46 Marco: You should really, really get online backup.
00:57:48 Marco: And Backblaze is by far the best one that I have tried.
00:57:53 Marco: And I used it long before they were a sponsor of the show.
00:57:55 Marco: I've been using it for years.
00:57:56 Marco: I tried two other ones recently and was very disappointed in both of them for my network drive needs.
00:58:04 Marco: believe me backblaze is the one you want backblaze is unlimited and unthrottled and you get it for just five bucks a month so literally this unlimited disk space no matter how much you have to combine between me and tiff i think we have something like six terabytes now in backblaze it's a lot
00:58:21 Marco: unlimited disk space five bucks per month per computer backblaze is amazing they have ios and android apps to access and share all your backup files so you can access your files on the go you can do single file restores if you want if you're like on a laptop and you forgot a file at home and you're on vacation somewhere you can get to your files that way backblaze runs natively on your mac it is not like a weird java app or anything it's a native mac os 10 app founded by x apple engineers um
00:58:49 Marco: runs native on your mac runs native on yosemite um they're always up to date with new os releases i've never had backblaze break on me with an upgrade um there's no add-ons there's no gimmicks there's no extra charges really five bucks a month for unlimited unthrottled fully native online backup for the mac um it really is the simplest online backup program to use just install and it does the rest so really this holiday season go to your loved ones install backblaze
00:59:13 Marco: Someday they will thank you for that.
00:59:15 Marco: Maybe not immediately.
00:59:16 Marco: They're going to wonder what you're doing immediately.
00:59:17 Marco: Someday they will thank you for that.
00:59:19 Marco: Thanks a lot to Backblaze for sponsoring our show once again.
00:59:22 Casey: All right.
00:59:22 Casey: Any other thoughts on the App Store stuff before we move along?
00:59:26 Marco: There's always... It's like follow-up.
00:59:28 Marco: It's like there's always going to be thoughts on the App Store.
00:59:30 Marco: Never-ending pit of thoughts.
00:59:33 John: My final thought, I think, is that...
00:59:35 John: It's within Apple's power, and they have done it before, to smooth over the worst of these misfires by talking directly to the affected developers until they're roughly satisfied.
00:59:46 John: And that is simultaneously the best and the worst thing that can happen.
00:59:50 John: It's the best thing in that people come out of it happy.
00:59:54 John: We get the features we want.
00:59:55 John: Everyone comes to a compromise.
00:59:57 John: Everyone walks away satisfied.
00:59:58 John: It's the worst thing that can happen, and then it doesn't address the structural problem, which causes these
01:00:02 John: bear attack flare-ups from app review and has for years and years so i don't know if we should just be hoping for a larger crisis which will become a crisis tunity for us to for apple to actually fix the problems that ail it or we should be hoping for just for you know the the bad decisions to be reversed and to go back to the sleeping bear
01:00:23 Casey: Yeah, we'll see.
01:00:24 Casey: I mean, I don't know.
01:00:25 Casey: It seems like such a silly problem to have, but whatever.
01:00:30 Casey: Speaking of silly problems to have, let's talk about time commitments.
01:00:34 Casey: And I wanted to talk about a couple things.
01:00:38 Casey: First is Fast Text is not for sale anymore.
01:00:42 Casey: What?
01:00:43 Casey: I pulled it today.
01:00:44 Casey: There goes your M3.
01:00:45 Casey: I know, right?
01:00:46 Casey: Tens of people a day are going to be disappointed by this.
01:00:49 Casey: That'd be a good day.
01:00:51 Casey: Now, I pulled it for a handful of reasons, and there's a point here, but it's going to take me a second to get there.
01:00:57 Casey: I pulled it because... Aquihire?
01:01:01 Casey: Yeah, that's totally it.
01:01:03 Casey: I pulled it because I feel like...
01:01:06 Casey: I'm kind of kidding myself in thinking that I'm going to find the time to get it updated for iOS 7.
01:01:18 Casey: And given that we're already months into iOS 8, that's kind of getting ridiculous.
01:01:24 Casey: I'm getting to the point that I'm feeling guilty every time I do see a sales day of more than zero, which is most days, although if it's more than five, I'm doing a happy dance.
01:01:33 Casey: I'm feeling guilty about selling someone something that's so dated and knowing deep down in my heart of hearts that the likelihood of me updating it is not good.
01:01:47 Casey: And as John Chigi assumed in the chat, I'm really getting over that being a joke now.
01:01:55 Casey: And to be honest, it deserves to be a joke.
01:01:57 Casey: It is kind of ridiculously funny.
01:01:59 Casey: And it's absurd that we are on iOS 8 and I have not yet updated for iOS 7.
01:02:05 Casey: But in the end of the day, it occurred to me that it's really serving no good purpose.
01:02:10 Casey: It served its purpose, which was for me to prove to myself that I could get something in the App Store.
01:02:15 Casey: And I did.
01:02:16 Casey: And I am still proud of that accomplishment.
01:02:19 Casey: But I'm no longer really proud of the way the app is today.
01:02:23 Casey: And it's a little better on my phone because I've updated most of the issues for iOS 7 and 8.
01:02:29 Casey: I still have a couple of lingering bugs that I haven't had time to look at.
01:02:32 Casey: But...
01:02:33 Casey: And I was talking to Aaron about it earlier today.
01:02:35 Casey: I don't I can't imagine a time where I'm going to look at her and now we're getting a little into analog territory, but I can't imagine a time I'm going to look at her and say, you know what, rather than spending time with you and Declan, let me go and hold myself up in the office and fight with AutoLeo.
01:02:50 John: That is that is a bar that you can apply to almost anything else in life and decide that it's something that you shouldn't do.
01:02:56 John: But anyway, why not just leave it there and have it be free?
01:02:59 Casey: I could, but then it's still, it's still going to be, Oh, ha ha.
01:03:03 Casey: You still haven't updated it yet.
01:03:05 Casey: And I'm just, I'm over that because it's true and ridiculous.
01:03:09 Casey: Like I'm grumpy about it.
01:03:11 Casey: I think because I know it's true.
01:03:13 Casey: Like if it was like the, who the hell is Casey joke?
01:03:15 Casey: I still find that kind of funny because it's so hopefully not really true anymore.
01:03:19 Casey: And so I've gotten past it.
01:03:21 Casey: Um, but you're more famous than us now.
01:03:23 Casey: I don't know about that, but anyway, but, but in this case it is true.
01:03:28 Casey: Um,
01:03:28 Casey: And, and that's just, it's, I'm, I'm feeling super guilty about it.
01:03:34 John: Have you done a lot of open source development or contributing to open source projects?
01:03:39 Casey: Not really.
01:03:39 Casey: I mean, I have camel out on the, on GitHub, which I actually wanted to talk about as well.
01:03:44 Casey: Um, but in terms of contributing to like massive open source projects, I haven't mostly because the couple of times I have in, um,
01:03:52 Casey: Pidgin is an example, which is the multi-protocol IM client or library, if nothing else.
01:03:59 Casey: This is the library that runs Adium, Adium, whatever you call it on the Mac.
01:04:04 John: Is that the name of the library?
01:04:07 John: I thought it was LibPurple.
01:04:08 John: It was the AIM library and Pidgin is the client.
01:04:10 Casey: You are correct.
01:04:11 Casey: It's LibPurple and Pigeon is the client.
01:04:13 Casey: You're absolutely right.
01:04:14 Casey: Anyways, I looked into contributing to, I actually may not have even been LibPurple.
01:04:19 Casey: It might've been Adium.
01:04:21 Casey: And I started looking at this code and went, I have no idea what the hell's going on here.
01:04:26 Casey: And I found that in a couple of open source projects I've briefly considered contributing to, the code was so crazy complex that, and I feel like I'm pretty good at what I do, but it was so esoteric and wild that I realized it was not even worth jumping in.
01:04:45 Casey: And so I have, in short, I haven't really contributed to any established open source projects now.
01:04:51 John: I bring that up because in this implied time commitments of open source projects, which is the subheading here under this topic, what I was thinking of is my open source projects that I started myself or published somewhere or contributed to.
01:05:06 John: that i did years and years ago and most of them are all still out there and they are far worse off than fast text believe me they are far far like things that i haven't worked on in a decade or more and were never very good because they were written by you know the much younger version of myself right and
01:05:24 John: And I mean, before I even get into the timekeeping things like that, there's code out there with my name on it that is terrible that I'm embarrassed by, but I don't pull it because it's like that's sort of part of the open source thing is like I write the source code, I put it up there and it's free for anyone to grab and use.
01:05:43 John: Am I working on it?
01:05:44 John: No.
01:05:45 John: Am I adding features?
01:05:46 John: No.
01:05:46 John: Am I fixing bugs?
01:05:47 John: That's a bigger discussion, but it's super low priority, but it would never occur to me to take it down.
01:05:55 John: And maybe it's like Casey said, where he doesn't have enough distance from it either, like the who is Casey thing where it's not true.
01:06:02 John: Or, you know, you feel that these complaints are founded.
01:06:06 John: If someone complained to me that one of my CPAN modules is a piece of crap, I would agree with them, as Casey seems to agree that FastEx, you know, is out of date at this point.
01:06:16 John: But it wouldn't drive me to pull it.
01:06:18 John: I would...
01:06:18 John: like i don't think i have uh i don't think there is an implied commitment for me to continue to maintain for free this open source code that i wrote in 1997 right i mean although to be fair the context is different of having an app in the app store versus having a cpan module available but don't but if it's free but if it's for charge i understand that because you're charging people money you feel bad about that but if it's free
01:06:43 John: then you know it's exactly like the open source code and and the sense that like well you know whatever you get what you paid for you didn't like it it was a crappy app delete it from your phone you didn't pay a dime for it right if you don't like the software it looks cruddy you and you download it delete it from your disc fine you know it's it's the same type of thing it's and the reason casey said he was pulling it is because he felt he felt bad or guilty when people would complain that the app wasn't updated and it's like
01:07:06 John: Yeah, the app's not updated.
01:07:07 John: I'm not doing fast text anymore.
01:07:09 John: But fast text that I did do is there.
01:07:12 John: If it stops working on iOS, then yeah, pull it or mark it as only working on the older version.
01:07:16 John: Like eventually it will age out if you don't modify it, right?
01:07:19 John: Unlike most open source software because Unix never changes.
01:07:21 John: Like it'll more or less continue to work, right?
01:07:24 John: Or if it doesn't, people just stop complaining about it.
01:07:27 John: Anyway, that's how I feel about my older projects is that I feel the same way as Casey does, embarrassed by them, embarrassed by their not being updated, you know, and I feel the same way about future, putting more time into it.
01:07:40 John: Am I going to?
01:07:41 John: No, because I have many other things that I'm doing with my time these days.
01:07:43 John: But my decision, given all of those things, is not to pull it, but just to leave it there.
01:07:49 John: Festering, I guess, on the internet?
01:07:53 Marco: No, I mean, I totally get this.
01:07:54 Marco: I mean, I went through some of the same things with Bugshot.
01:07:58 Marco: Bugshot does not work on the new iPhones for some reason.
01:08:02 Marco: And I don't even know why.
01:08:03 Marco: I never really looked into the... I haven't spent five minutes on it.
01:08:07 Marco: It could be a five-minute fix.
01:08:08 Marco: I don't know.
01:08:09 Marco: The reason why it doesn't work is less important than the reason why I'm not working on it, which is that it made no money, basically no money.
01:08:19 Marco: It made, I think, $3,500, the vast majority of which was the very first month.
01:08:26 Casey: That's no money?
01:08:27 Casey: Oh, you're adorable.
01:08:28 John: No, well... Let me tell you how much money my CPAN modules have made.
01:08:31 Casey: Let me tell you how much money Fast Text has made.
01:08:33 Casey: I don't think I've... But I win.
01:08:35 John: I win at $0.
01:08:36 Casey: You do.
01:08:37 Casey: You do.
01:08:38 Casey: But I don't have the numbers in front of me, so I don't want to lie.
01:08:41 Casey: But I am extraordinarily confident it's less than $1,000.
01:08:45 Casey: And I'm pretty confident it was at or less than $500 over the course of, I think, four years it's been in the store.
01:08:52 Marco: Okay, well, regardless, I feel like a jerk.
01:08:56 Marco: But it made that amount of money up front, and then it just stopped making money.
01:09:02 Marco: It was down to... And I remember there was even a brief time when we were comparing Bugshot to Fast Tech sales, and they were fairly comparable.
01:09:10 Marco: So it had a good month, and then it was over.
01:09:14 Marco: So the fact is it didn't work on iOS 8 on these new devices.
01:09:18 Marco: And whether it's the OS or the devices, I don't even know.
01:09:21 Marco: It wasn't even worth spending 15 minutes on because if I'm going to make Bugshot continue as a product, I would want to do a proper update to it for iOS 8, which would mean...
01:09:32 Marco: Full photo library integration so that you could, for instance, annotate a screenshot and then delete it from your camera roll, which you can't do in the current version because you couldn't do that with your SDK.
01:09:41 Marco: Things like be an extension so that they have the photo editing extension type.
01:09:47 Marco: Why isn't Bugshot a photo editing extension?
01:09:49 Marco: So I would want to do that to it.
01:09:51 Marco: I would want to make it a proper updated app if I'm going to keep it in the store and keep it working and keep it running as a product.
01:09:58 Marco: And the fact is, it just doesn't make enough money.
01:10:01 Marco: It never made enough money to make that really worth doing.
01:10:04 Marco: And so when I look at how do I want to spend this time, which is what you were saying, which I'm getting back to, when you look at like, do I want to spend this evening of coding fixing bug shot, which should really be, you know, at least a couple of weeks of coding to really do what I would want with it.
01:10:21 Marco: So, you know, do I want to spend the next two weeks of coding time fixing Bugshot or improving Overcast, which is making money and which is, you know, seemingly a more deserving source of my time?
01:10:32 Marco: Or if I'm throwing around two weeks of coding time, should I even try a whole different app, maybe some crazy thing for the watch?
01:10:39 Marco: You know, should I try a whole new product to give that a chance to succeed?
01:10:43 Marco: Um, so I made the decision.
01:10:45 Marco: It was not worth me putting any more time into it.
01:10:48 Marco: I didn't want to put any more time into it because it simply wasn't interesting and it wasn't going to pay off.
01:10:54 Marco: Um, and the things I wanted to do with it were never going to be worth doing with it.
01:10:59 Marco: And so for, and so Casey, first of all, I feel like a jerk forever making fun of you now.
01:11:03 Marco: Um, but, but second of all,
01:11:05 Marco: But it was deserved.
01:11:06 Marco: Well, deserved is maybe a poor choice of words, but it was accurate.
01:11:11 Marco: I mean, it wasn't meant to be insulting.
01:11:12 Marco: It was meant to be funny, you know.
01:11:13 Marco: So now I feel like a jerk, and I'm sorry.
01:11:15 Marco: But I don't want to make you feel bad.
01:11:16 Marco: But I totally understand what you're saying, which is, like, you can't foresee a time where you're going to choose to spend your time doing that instead of anything else with your work or family.
01:11:28 Marco: And I get that.
01:11:29 Marco: I totally get that.
01:11:30 Marco: Like, if that's your reason, I totally support it.
01:11:33 Marco: Because...
01:11:35 Marco: i've made those same kind of decisions and i think you should be making those kind of decisions did you did you pull did you pull bug shot or is it free i pulled it i made it free a few months after i released it when it was when it was clear maybe six months after i released it it became very clear after a while it was making like between zero and three sales a day even at a dollar it was like it was doing very badly and uh and so i eventually i'm just like screw it so why did you pull it after it was free it stopped working
01:12:02 John: Oh, well, so there you go.
01:12:03 John: That's the Marco strategy I endorse.
01:12:05 John: Make it free.
01:12:06 John: When it stops working, pull it.
01:12:08 John: Because then you're basically, you're not putting any more time into it.
01:12:10 John: But like for something like Bugshot, just because Marco's not interested in putting a time in it doesn't make it all of a sudden not a useful application, especially for the poor, like someone's saying, you know, this idea of when your app, when you're not going to put any more time in your apps, leaving them on the store as free as bags that clutters the store.
01:12:24 John: No, that's exactly the kind of clutter I want.
01:12:26 John: When I'm looking for an app and like, I just want something quick and free.
01:12:30 John: I want it to be an app that a good developer has abandoned.
01:12:33 John: Maybe it's not the best app.
01:12:34 John: Maybe it's an iOS 6, but it's not going to be filled with ads.
01:12:36 John: It's actually going to do something useful.
01:12:37 John: It's not going to be filled with, you know, spammy reviews that somebody paid for.
01:12:41 John: I would love to stumble upon Bugshot as a free screenshot annotation app that I needed in a pinch than stumbling on the 8,000 other free apps, which are probably not even screenshot apps at all, but some kind of like...
01:12:51 John: secret portal to uh you know some sort of online gambling thing or something who knows so i i i would say that you should consider putting fast text back as free until it stops working then pull it don't put any more time into you don't want to but if someone is looking for an app that does what fast text does and they stumble upon fast text it's not filled with that it's not filled with malware they'll download it for free it'll do what it does if they don't like it they'll delete it
01:13:18 John: fine.
01:13:19 John: Like, I think, you know, you did put work into it.
01:13:22 John: It does do something.
01:13:23 John: It is functional.
01:13:24 John: Why not let people benefit from it?
01:13:27 John: Even though you may feel bad about not updating or whatever, but I don't, you know, I wouldn't spend time feeling bad about that because you're just making a choice about what to do with your time.
01:13:35 Casey: So one of the reasons is I feel like it's calling attention to something that isn't my best work, which I know you talked about with your CPAN modules, but
01:13:45 Casey: I don't know.
01:13:46 Casey: I just, as I've gotten older and as I've gotten to be some kind of internet persona, I take a lot of pride in the things that I put out into the internet.
01:14:03 Casey: And
01:14:03 Casey: And while Camel, for example, the blogging software that I wrote that powers caseylist.com, it's not terribly great code, but it's not terribly bad code and it works.
01:14:16 Casey: And honestly, I'm pretty proud of my website.
01:14:19 Casey: And maybe some people read it.
01:14:21 Casey: Maybe they don't.
01:14:21 Casey: Maybe some listeners will read it and be like, why is he proud of this?
01:14:25 Casey: And that's okay.
01:14:25 Casey: I mean, if you don't get it, that doesn't matter to me because I'm proud of it.
01:14:29 Casey: And I'm not proud of fast text anymore.
01:14:31 Casey: And
01:14:31 John: But see, don't you think that's the way it should be?
01:14:33 John: Like, I've always considered it a badge of honor, a desirable trait.
01:14:39 John: If you are a programmer, you should always look back at the code you wrote in the past and think it's bad.
01:14:44 John: Because if you don't, that means you're not getting any better.
01:14:46 John: So if you look at the code you wrote last year, you should find problems with it now that you didn't find then.
01:14:50 John: If you look at the code that you wrote...
01:14:52 John: five years ago it should look disgusting if it was 10 years ago it should look like nonsense and you can't even believe you were the same person who wrote it like that should be true for the life of a working programmer so the fact that you are no longer proud of fast tech as a product as a as a pile of source code as a whatever shows that you are making progress that if you were to make it now you would do it better you would see things in it now that that are you know that are more wrong or that could be done you know i mean like
01:15:18 John: I don't think that should dissuade you.
01:15:20 John: And yes, it's not your best work.
01:15:21 John: Yes, it's bad that someone might Google your name and stumble across this thing and not see the date on it.
01:15:26 John: And it's the same thing with the CPAN module.
01:15:27 John: Someone stumbles across my largest giant pile of public Pro code and looks at it as all crap and decides that I'm a crap programmer.
01:15:35 John: That's like...
01:15:36 John: I guess I'm willing to take that risk that they don't see the dates and or whatever, especially since this is a whole other topic that we can get to in a bit, especially since I am still actually maintaining that code, unlike you're deciding not to maintain fast text.
01:15:49 John: But I don't think you should feel bad about just because you're not proud of it.
01:15:52 John: I think I think all your applications, all your endeavors, you should look back on and say that is no longer up to my standards.
01:16:01 Casey: And I do.
01:16:02 Casey: And I mean, I was, and here's the comedy of all this, how I know I made the right call is I had like half an hour to fiddle around tonight.
01:16:10 Casey: And I ended up adding a feature to camel rather than futzing with fast text.
01:16:16 Casey: And so that's how I knew that I probably made the right call.
01:16:19 Casey: But, um,
01:16:20 Casey: I agree with you.
01:16:22 Casey: And, and even as I was looking at camel earlier tonight, I looked at it and thought, Oh God, I should really refactor like half of this.
01:16:29 Casey: But I, I feel like with fast text, it's, it's,
01:16:35 Casey: Sort of advertising that I'm not good at what I'm sort of supposed to be good at to be a part of this show.
01:16:43 John: Same thing as my C-band modules.
01:16:44 John: What Perl code of mine can you see?
01:16:46 John: You can see old code that's bad.
01:16:48 John: What code can't you see?
01:16:49 John: All the code I write for my employers.
01:16:51 Casey: Uh, I think it's a little different to, well, to me, I find it a little different though, because your Perl code does not directly relate to the things that you're known for on the internet.
01:17:01 Casey: It's not like you're, I mean, the best analogy I can think of is like old crappy system seven reviews that are still out on, which I know you never wrote, but just hypothetically that.
01:17:11 John: Well, if you, if you want to go for that, my old OS 10 reviews are terrible.
01:17:16 John: The writing is terrible.
01:17:16 John: I cannot even look at them.
01:17:18 John: I just, I,
01:17:18 John: I've said this before and I don't know why I'm the only person on the internet pointing this out because it's the worst thing I've ever said but people don't seem to notice I use smileys in some of them colon close parentheses in the middle of the text do you understand that that's what I'm known for there's always 10 reviews and they're out there and the writing is terrible the content is terrible it's just I don't even want to think about it but am I going to pull those reviews no
01:17:46 Marco: You can release special editions that have all the crap removed and a bunch of new crap added.
01:17:50 John: People keep asking for, you know, a collection of them.
01:17:54 John: And I'm like, that would mean that I would have to make hard decisions about, you know, it's like George Lucas special edition.
01:18:00 John: Do I take out the smileys like right over the line?
01:18:03 John: Clean up the matte lines and the dust and scratches.
01:18:05 John: The smileys count as matte lines.
01:18:08 John: I think so.
01:18:09 Casey: Goodness.
01:18:10 Casey: So, I mean, I understand your point.
01:18:13 Casey: To me, it just seems – it seems different probably because it's me and not you.
01:18:18 Casey: And so I just look at it differently.
01:18:20 Casey: But I understand your point about making it free.
01:18:23 Casey: And that's actually something I hadn't really thought about.
01:18:25 Casey: And maybe I'll do that.
01:18:27 Casey: Maybe I won't.
01:18:28 Casey: I don't know.
01:18:29 Casey: But it just – I feel like –
01:18:32 Casey: I feel like it calls attention to something.
01:18:35 Casey: I guess what I'm trying to say is the CPAN modules, you have to kind of seek out.
01:18:39 Casey: Whereas I think if I were a random person looking to figure out who the three of us are, for you, they would find your OS X reviews, which granted the older ones may not be great, but the newer ones are just freaking phenomenal.
01:18:54 Casey: And for Marco, they'll find a laundry list of successful applications and projects.
01:18:59 Casey: And Business Insider blog posts.
01:19:01 Casey: Well, there's that, too.
01:19:03 Casey: But but but for me, I don't want someone to stumble upon fast text and judge me based on that.
01:19:11 Casey: And I guess in summary, maybe it's just plain pride.
01:19:14 Casey: But I don't know.
01:19:15 Casey: I just I felt like the right answer was to pull it.
01:19:18 John: I got bad news for you, Casey.
01:19:19 John: In several years, you're going to say the same thing about the podcast we're recording right now.
01:19:26 John: And it will be the thing you're known for most widely in the internet.
01:19:29 Casey: That's very true.
01:19:30 Casey: That's very true.
01:19:31 John: I feel like that's just true of everything.
01:19:33 John: If you're getting better at things, which most of us do continue to get better at things as we get older, especially things not having to do with physicality.
01:19:43 John: you will look back on what you've done previously, even if it's the thing you're most known for, uh, and think it is not up to your standards and that you could do better now or find things wrong with it that you didn't find wrong with it now.
01:19:54 John: I think you should be proud of fast X. If I had an app on the app store, I would leave it there until it broke.
01:19:59 John: I think making it go free is entirely understandable, but, uh, I would definitely leave, I would leave it out there just, just to sort of like,
01:20:08 John: Prove to the world that, like you said, I did make an iOS app once and it does work and it did do things and here it is.
01:20:14 John: And maybe you just change how you refer to it on sort of your online resume.
01:20:18 John: Same way you say like in my little section on my website, like retired podcasts, podcasts that I'm no longer doing.
01:20:23 John: Right.
01:20:24 John: I don't know.
01:20:25 John: I don't think you should feel as bad as you do, but, you know, you got to do what you got to do.
01:20:29 John: I also think you should put feet on the icon, put it back in her day, and then pull it.
01:20:35 Casey: Do you want me to sell it for you?
01:20:37 Casey: Fastex?
01:20:37 Casey: Yeah, sure.
01:20:37 Casey: If you can get me more than 20 bucks.
01:20:39 John: Sell it to Marco.
01:20:40 John: We need a reversal here.
01:20:41 John: He needs to buy something instead of selling it.
01:20:43 Casey: Yeah, right.
01:20:45 Casey: Well, why don't you tell us, Marco, about something that's awesome.
01:20:47 Casey: And then I'd like to talk a little bit about like what John was referring to earlier, which is the implied time commitment of open source projects, which is a kind of different animal.
01:20:58 Marco: We are sponsored finally this week by our friends at Igloo.
01:21:01 Marco: Igloo is an intranet you will actually like.
01:21:04 Marco: It's built with easy-to-use apps like shared calendars, Twitter-like microblogs, file sharing, task management, and more.
01:21:10 Marco: Igloo is everything you need to work better together in one very configurable cloud platform.
01:21:15 Marco: Go to igloosoftware.com slash ATP to sign up.
01:21:19 Marco: It's free for up to 10 people and very reasonably priced after that.
01:21:22 Marco: It's incredible.
01:21:23 Marco: If you need an intranet for a group of 10 people or fewer...
01:21:26 Marco: Just go do it.
01:21:27 Marco: It's free forever.
01:21:27 Marco: Fantastic.
01:21:28 Marco: igloosoftware.com slash ATP.
01:21:32 Marco: With Igloo's responsive design, your internet already works like a champ on virtually any device, iOS, Android, even BlackBerry.
01:21:38 Marco: You can review a document, post a project update, or change mid-settings all right from your phone.
01:21:43 Marco: Plus, when you design your Igloo, any change you make to the look and feel carries across all the devices because all the designs are responsive and customizable to you.
01:21:50 Marco: In fact, their file preview engine is also fully HTML5 compatible, so if one of your coworkers uploads a proposal or a JavaScript file or a document, you can preview that inline, add comments, upload new versions, or assign action items all right from your phone, even if it doesn't support Flash or Java or anything like that, because it's all HTML5.
01:22:09 Marco: So Igloo was recently featured in the Gartner Magic Quadrant.
01:22:13 Marco: If you're a business, you know what this means.
01:22:15 Marco: If you're a customer, this might sound like gibberish, but trust me, it's good.
01:22:20 Marco: Gartner's famous Magic Quadrant for social software included Igloo.
01:22:24 Marco: They appear for the sixth consecutive year alongside tech giants like Microsoft, IBM, Google, VMware, Salesforce.com, and SAP.
01:22:31 Marco: In a report that values the viability of the vendor, Igloo is praised for their responsiveness and customer experience.
01:22:38 Marco: If your company has a legacy intranet built on SharePoint or old portal technology, you definitely should give Igloo a try.
01:22:44 Marco: They're really cool, fantastic intranet, really an intranet you will actually like.
01:22:48 Marco: And anybody who's ever had to use a corporate intranet before, that's a pretty bold statement.
01:22:52 Marco: And they follow through with it.
01:22:53 Marco: It's really great.
01:22:54 Marco: So check out Igloo.
01:22:55 Marco: Go to igloosoftware.com slash ATP to sign up.
01:22:59 Marco: And it's free to use with up to 10 people and very reasonably priced after that.
01:23:03 Marco: Really, free for up to 10 people.
01:23:05 Marco: You might as well do it.
01:23:05 Marco: There's no downside.
01:23:07 Marco: Go try it.
01:23:08 Marco: Free for up to 10 people.
01:23:09 Marco: Go to igloosoftware.com slash ATP.
01:23:11 Marco: Thanks a lot.
01:23:13 Casey: So the other thing I wanted to talk about is...
01:23:16 Casey: The implied time commitments of open source software.
01:23:21 Casey: And I first became affected by this when I open sourced Camel, which again is the Node.js based blogging platform that I use to power my website.
01:23:33 Casey: And I got enough attention from it that a handful of people had forked it and had issued poll requests and or made various comments on GitHub.
01:23:46 Casey: And I noticed that a lot of times I just didn't have the time to...
01:23:53 Casey: To handle these in a timely manner.
01:23:55 Casey: And apparently I'm trying to squeeze the word time into the sentence 34 times.
01:23:59 Casey: Anyway.
01:24:00 Casey: Nice.
01:24:01 Casey: See what I did there?
01:24:01 Casey: Meow.
01:24:02 Casey: So anyhow, occasionally there were instances where people would issue a poll request, wait a day or two, and then like poll or rescind the poll request saying, oh, I guess you didn't like this.
01:24:16 Casey: Those people are jerks.
01:24:17 Casey: Well, kind of, yeah.
01:24:19 Casey: But nevertheless, at the same time, I feel or felt, especially when there was a little more activity a couple of months back, a few months back, I felt this like overwhelming burden put on me to get through these pull requests in a timely manner.
01:24:37 Casey: And I probably shouldn't have.
01:24:39 Casey: And this comes back to what John was saying earlier.
01:24:41 Casey: But.
01:24:43 Casey: Nevertheless, I felt huge amounts of guilt and this burden because I wasn't getting through these poll requests quickly enough.
01:24:50 Casey: And it was something I totally did not expect.
01:24:53 Casey: And it's a wonderful, wonderful thing in that people care enough to be issuing these poll requests.
01:25:00 Casey: But at the same time, I was not prepared for it.
01:25:01 Casey: I kind of thought in my head that I was going to just throw it out into the internet and then kind of walk away and never look back.
01:25:10 Casey: And turns out that's...
01:25:12 John: not really the case yeah so but the thing that i'm struggling with is similar only over a longer timeline and now uh you can tell me what you think i should do about this so i i've got these c-band c-band modules out there most of them nobody uses anymore which is kind of the ideal that casey was looking for you're like you throw it out there and uh you know and no one looks at it again and like i have something like my first one actually from the 90s probably doesn't even work anymore but no one downloads it so nobody knows that so it's fine
01:25:39 John: Um, but I do have a couple that people are still using and what you did back in the day and what you probably still do today when you had a CPAM module that became popular is you made a website for it.
01:25:49 John: You hosted the source code somewhere where people could, you had, where you had a bug tracker, you put it in version control, you gave out commit bits to the repository for people who you wanted to contribute to the project.
01:25:58 John: You started a mailing list and like you just, you built up this ecosystem around it.
01:26:03 John: Pre-GitHub.
01:26:04 John: This is way before GitHub.
01:26:06 John: This is before SourceForge.
01:26:08 John: When SourceForge came, I was like, wow, this whole website does all this stuff for you.
01:26:12 John: One of the actual time commitments of having an open source project like this is that I have had to
01:26:21 John: move those things to new places when the old places go away or become crappy like source for chess all right so i moved from source forage to google code i'll probably move from google code to github uh move version control from cvs to subversion now i'm starting to uh show my age here uh i should probably use from move from subversion to git uh which i probably will do eventually and those are things it's like
01:26:46 John: At the time you have those decisions, it's like, well, I could just leave it there forever.
01:26:50 John: But maybe the mailing list broke or maybe something is not working or maybe nobody uses CVS anymore.
01:26:55 John: So do I not put any more time in and just, you know, like remove it from the Internet or just like let it die?
01:27:02 John: Or do I put in the day or two to move these things?
01:27:06 John: And historically, I've decided that it's worth putting in the time to do these conversions and to move the stuff around.
01:27:13 John: or whatever.
01:27:13 John: And the second part of it is, especially with the mailing list, you've got a mailing list that's kind of like an implicit support channel where people will post questions and the mailing list is so low volume that the only person on the mailing list who can answer them is me.
01:27:26 John: And over the course of a decade, literally, there's this mailing list there which has degenerated to, I give free support for a module that I haven't worked on in years, right?
01:27:36 John: So people ask a question and literally the only person who will answer is me.
01:27:40 John: And do I should I spend time answering these people?
01:27:43 John: They're not my customers.
01:27:44 John: They're not giving me any money.
01:27:45 John: Do I have any commitment to help these people with their programming problems, which often have nothing to do with my module?
01:27:51 John: Not really.
01:27:51 John: And so I struggle with the guilt of like, do I just not answer anyone's questions anymore?
01:27:56 John: And that's how this mailing list dies.
01:27:57 John: Do I shut down the mailing list?
01:27:59 John: Or do I spend the five minutes to answer a question?
01:28:02 John: And then the final thing, which Casey was getting to, is the equivalent in, you know, the Google Code world, using subversion in Google Code instead of Git and GitHub, of pull requests and bug reports.
01:28:12 John: Someone reports a bug.
01:28:13 John: Someone reports a bug and provides a patch.
01:28:16 John: Someone makes a feature request.
01:28:17 John: Feature requests, I'm pretty okay with just ignoring at this point.
01:28:20 John: It's like, well, yeah, if you want, then implement it.
01:28:22 John: But then what if they go off and implement it?
01:28:24 John: If they implement it and send me a patch, then I have to get with, like, Casey, where it's like...
01:28:28 John: Well, I probably wouldn't add that feature myself, or maybe I would add it, but I would do it in a different way.
01:28:33 John: And the same thing with bug fixes.
01:28:36 John: They've sent a patch with a bug fix and a test and everything else and documentation.
01:28:41 John: And it's like it just always takes some time to clean those things up, put them in, test them, cut a new release, so on and so forth.
01:28:47 John: And my decision so far has been I will incorporate bug fixes.
01:28:50 John: If you report a bug that's reproducible and you have a test case, I will fix that bug or figure out what it takes to fix it.
01:28:56 John: So I won't add features.
01:28:58 John: uh for the most part unless you send a feature in a tied up in a little bow i'll spend the you know 15 minutes half an hour an hour to get it integrated all for a module that i myself don't use anymore that is terrible and that no one should really use that you know that is really old that has source code that i can barely look at anymore but
01:29:18 John: I mean, I don't know what's driving me to put any time into it, and yet I am.
01:29:22 John: And so I almost feel like that I'm like a slave to the lingering popularity of a once popular set of Perl modules that I just, I don't know how to
01:29:34 John: like sometimes I find myself thinking when I get a message to the email list and someone makes some demand or whatever, I'm like, why don't you just implement it yourself?
01:29:41 John: Like if you're, if you're so hot and bothered to do this, like, you know, I feel like saying, why should I answer this question for you?
01:29:47 John: Why should I fix this?
01:29:48 John: But like you get, you get resentful.
01:29:49 John: Like it's not their fault.
01:29:50 John: Like I don't, I don't act on these instincts, but you feel like, and I'm your free servant.
01:29:55 John: Why?
01:29:56 John: Like it's like a stack overflow of one, like a stack overflow, but I'm the only person getting answers.
01:30:01 John: Right.
01:30:01 John: And, and like I said, a lot of the time it's, you know,
01:30:04 John: it's it's from either something simple where they don't understand something basic about programming or like the insanely most complex thing i've got this and that and the other thing and they're all tied together like this and i'm doing this and that and that and i would like to be able to do this and you think of a way i can do this it's like are you kidding that's what i do for for a job i get paid to do that that is a very complicated problem that we have to have a whiteboard and like days to sit down to figure out and it's like oh answer for free for me in this mailing list
01:30:27 John: And just so I'm in a bad situation with these things and I'm mostly dealing with it by doing the minimum work necessary to make myself not feel guilty, which means actually fixing bugs because, hey, people are using these things.
01:30:38 John: And if I don't want to fix bugs, like my final out is to hand off this module to someone who cares.
01:30:43 John: Like, you know, it's the equivalent of Marco selling his stuff to someone who wants to continue the thing.
01:30:48 John: Is there somebody who wants to take over maintainership of this?
01:30:51 John: Here you go.
01:30:51 John: Go with it.
01:30:52 John: And I won't do that because I still have some tiny bit of pride in like, this was once a pretty good thing.
01:30:56 John: I spent a long time implementing and writing tests and documentation, and it still kind of works, sort of.
01:31:03 John: And, you know, I don't know.
01:31:04 John: I just don't feel like I want to give it up because I don't know.
01:31:08 John: So anyway, I don't know how to deal with that situation.
01:31:12 John: It's a constant source of guilt and potential time suckage.
01:31:15 Casey: Now, Marco, how have you dealt with FC Model?
01:31:18 Casey: Because that's probably the most active of anything we've described, I would guess.
01:31:23 Marco: Well, recently, I mean, probably the most used thing I've ever done is Bugshot Kit, which I haven't touched in a long time.
01:31:30 Marco: And for many of the same reasons, I haven't touched Bugshot.
01:31:33 Marco: um in fact much of bug shots code is in bug shot kit but uh it's mostly because you know it i did it it worked i used it for a while i no longer use bug shot kit in my own app because i just don't really need that kind of integration of testing and stuff anymore and uh that's it so i haven't touched it in a long time and it doesn't really need anything it generally works and you know all the code is pretty simple and if you need it to do something you can just do it yourself in your own app
01:31:59 Marco: I do occasionally get pull requests on bug shot kit I if it's something really trivial that's an obvious you know minor improvement or minor bug fix I'll just accept it if it's more than that I'll usually just sit on it and forget to do it for a month and then eventually it'll become so ridiculously outdated that you know there's no point in accepting it.
01:32:18 Marco: Kind of like old emails.
01:32:20 Marco: With FC model, it's different though.
01:32:22 Marco: So there really isn't a group of people out there wandering around looking at like your open source library that does some really specific thing that they don't need to do.
01:32:33 Marco: Or that does some really general thing like your utility library.
01:32:37 Marco: Like I have my utility library open source like so many people do.
01:32:40 Marco: Nobody uses it.
01:32:41 Marco: Nobody looks at it.
01:32:42 Marco: I get no pull requests on it.
01:32:44 Marco: Like it gets no activity because...
01:32:46 Marco: There's not a whole lot of people looking around for your utility library.
01:32:50 Marco: So there's not a lot of value to that for most people.
01:32:54 Marco: To get pull requests, they don't just come from the pull request fairies.
01:32:58 Marco: They come from people who are using your code, people who need the code you've written, who value it, the code for which there aren't a lot of alternatives or there aren't a lot of big, well-known alternatives.
01:33:10 Marco: and that they need to be modified in some way, and then the percentage of those people who actually go through with the modification or at least filing a bug report with you or asking you about it rather than just ripping it out and doing something else or fixing it quietly themselves and never submitting it back to you.
01:33:26 Marco: So for most projects, most open source projects, the reason why you probably get no pull requests is because...
01:33:32 Marco: Just having open source something doesn't inherently make it useful to enough people that they will start using it and submitting improvements to you.
01:33:42 Marco: I do completely agree with John that it is kind of annoying, though, when somebody submits a pull request that is well-intentioned, but either something that I wouldn't do or something I would have done differently.
01:33:52 John: Well, ignoring even pull requests, what if someone sent you an email because you don't have a mailing list for FC model or any of these things, as far as I know, sent you an email and said, hey, I was using your whatever, your utility library, FC model, bug jacket, whatever.
01:34:03 John: And I was trying to do X and I couldn't quite figure out a way to do it.
01:34:06 John: I tried to do this and it didn't quite work.
01:34:07 John: And I thought maybe you could do that, but I'm not sure if I'm using your own.
01:34:10 John: Can you help me?
01:34:12 John: What would you do with that email?
01:34:13 Marco: I wouldn't respond, probably, unless it was a really quick response.
01:34:16 John: You would not respond at all?
01:34:18 Marco: I would treat it like any other support email.
01:34:20 Marco: I get so much email, I can't spend a half hour responding to that.
01:34:24 Marco: That's what I'm saying.
01:34:25 John: Imagine if you got maybe...
01:34:28 John: three of those a week for a decade like it starts to wear on you i just feel like like because you feel so bad like i i'm the king of ignoring people's emails right uh i don't know about that but even even i even i start to feel bad because it's like especially with programming questions
01:34:47 John: Uh, and it happens on Twitter too.
01:34:50 John: It's like, I could get the answer to this question often by, at this point, I, it might as well be someone else's code because I don't remember it anymore.
01:34:58 John: Like you could figure out, you could, the answer to the question could be, you can't use my utility library and do that because it doesn't work that way.
01:35:03 John: And then you feel like now you're in a conversation with them.
01:35:05 John: They're gonna be like, well, can you add that feature?
01:35:07 John: And then your only answer is like, no, because I'm not spending time on that and I don't want it.
01:35:11 John: And then it's like, it's like you just wasted, you already wasted more time than you wanted to spend on this.
01:35:15 John: And that's the best case trying to get out as fast as possible.
01:35:18 John: The worst case is you don't know the answer and you'd have to investigate.
01:35:22 John: And you're like, why am I investigating this guy's programming problem?
01:35:24 John: You know what I mean?
01:35:25 John: Like, just because you wrote FC model, does that mean that there is implicit support contract with everyone who tries to use FC model?
01:35:32 John: Do you have to provide them support?
01:35:33 John: No.
01:35:34 John: Like, I don't think you do.
01:35:35 John: But if you don't, you end up looking like a jerk.
01:35:37 John: If you reply and say, sorry, this library is not supported.
01:35:40 John: You're like, I demand my money back.
01:35:42 John: Like, what are they going to say?
01:35:42 John: But they will think you're a jerk.
01:35:44 Marco: FC model is actually a really good example of everything working very, very well.
01:35:49 Marco: So the quick version is it's a very thin, lightweight model layer.
01:35:55 Marco: Instead of using something like Core Data, it's basically sticking a very thin layer around on top of SQLite and you can do things like the database would.
01:36:03 Marco: I use this because I'm a jerk and I don't like core data and I like to write everything myself.
01:36:08 Marco: So I wrote this thing.
01:36:10 Marco: FC model has what appears to be very few users.
01:36:15 Marco: I think I would guess the number of people building apps with it is probably less than 10.
01:36:20 Marco: It is a very small group of people.
01:36:23 Marco: But of those, three or four of them actually actively submit pull requests, and they're actually really good.
01:36:32 Marco: And usually we'll discuss something before a substantial change.
01:36:36 Marco: We'll discuss it in an issue, and then I'll write the fix because I'm a control freak.
01:36:40 Marco: But when people have submitted so many little tiny bug fixes and little improvements here and there, they're only a few lines long, and that's all great.
01:36:48 John: But you still are supporting them because when someone says, hey, I was trying to do this thing and it didn't work or it would be cool if it did this, you are providing support because your support is engaging in a discussion with them about the feature, getting at the heart of what it is that they want.
01:37:00 John: And then you maintaining ownership by a center saying, well, this is how I would do it and this is what I would do and then implementing that.
01:37:07 John: So it's a support function.
01:37:08 John: You're essentially...
01:37:09 John: implementing features at their request maybe just not exactly the way they did and talking to them and answering their questions about it well i am except well but if it's like a how does this work question usually i don't answer those and sometimes somebody else will which is really nice but uh usually i don't get a lot of those because again not a lot of people use this and the people who use it know what they're doing like it's not a bunch of beginners flooding in who like i'm i just started writing my first ios app and i stumbled across your thing can you tell me how to use it
01:37:33 Marco: Right, because they're not going to be looking for something like this.
01:37:36 Marco: They're going to be using Core Data because that's what all the tutorials use, and that's fine.
01:37:38 Marco: They shouldn't be using something like this, probably.
01:37:41 Marco: And Core Data is much simpler than your module, so it'll be fine.
01:37:43 Marco: Right.
01:37:44 Marco: So, yeah, right.
01:37:47 Marco: What's great about this, though, is the reason why I'm engaged with it, the reason why I react to the pull requests and I improve it, is purely selfish.
01:37:57 Marco: It's because I use it in Overcast.
01:37:59 Marco: And I will probably use it in any near future apps that I would write as well.
01:38:03 Marco: Like, not that I'm starting anything.
01:38:04 Marco: This is not a product announcement.
01:38:05 Marco: Just if I would start something new, I'd probably use it again.
01:38:09 Marco: That's why I pay attention because it's improving my app too.
01:38:13 Marco: And my needs for Overcast drive FC Models development.
01:38:19 John: um the bugs i run into i fix an fc model etc the performance issues i run into i fix there everyone gets it so this is the honeymoon period when you're still using it for your own work i had several years of that too it was like my cpan modules for the most part were written for jobs i had at the time so that i could write them put them up and then get the benefits i was able to convince the various people who i work for that there is a benefit in open sourcing this part of the product because i will get usage from other people bug reports from other people like
01:38:47 John: You know, the open source model and it worked for the years that the software was relevant.
01:38:51 John: But as it became less relevant and sort of aged out, I stopped using it.
01:38:55 John: Other people stopped using it.
01:38:56 John: Now it's like in zombie form.
01:38:57 John: Right now, FC model is new, relevant, extremely relevant in light of the various weird, you know, iCloud core data things that were going on.
01:39:04 John: Right.
01:39:04 John: And which motivated its existence.
01:39:08 John: And that, you know, so it's definitely in the period where you are reaping the benefit of this being a module that is, I mean, it's not widely used.
01:39:16 John: You said like 10 active people, but it's useful to you.
01:39:19 John: Even if you were the only user, you would like to have it out there just in case someone happens to stumble across it and find some bug or, you know, whatever.
01:39:26 John: Even the talking to the bear thing where, say, nobody ever looks at the source code, but the mere act of you publishing it, like the mere act of you publishing a blog post, will suddenly cause you to find a typo that you didn't see when you had been staring at it for the previous hour when it was in your unpublished state.
01:39:42 Marco: Oh, yeah.
01:39:43 Marco: I mean, FC model is probably the best code in Overcast by a long shot.
01:39:48 Casey: And would you say that's because of the contributions?
01:39:50 Marco: No, because he had to show it to people.
01:39:52 Marco: So he had to clean it up to make it look not embarrassing.
01:39:54 Marco: I mean, it's both.
01:39:55 Marco: I mean, like one thing the contributions have really helped with is like...
01:40:00 Marco: The contributions will often be by very good Cocoa programmers who have been around much longer than I have at this, or just better than me at it.
01:40:07 Marco: And they will use a convention that I didn't even know existed.
01:40:12 Marco: Like instead of doing preprocessor defines for string constants, they'll do the extern thing.
01:40:17 Marco: Or like using nsenum instead of defining an enum the old C way so that some autocomplete thing works better.
01:40:23 Marco: Like there's little things like that that I pick up from the pull requests.
01:40:27 Marco: Then I start doing that everywhere.
01:40:29 Marco: So like it's like I'm working with a bunch of smart people who are slowly and subtly improving my own skills by showing me cool things I could do that I didn't even realize I could do or showing me better ways of doing things.
01:40:38 Marco: in various you know and oftentimes in very small ways but over time that builds up i mean fc model is really as like it is by far the only successful open source thing i've ever done uh and and the most successful open source thing i've ever done everything else i've ever open sourced has been really minimally benefited anybody including me um and you know john you're right fc model is in the honeymoon phase now because i'm using it um i stopped using bug shot kit and so bug shot kit is languishing and it will probably never get an update again
01:41:07 Marco: If I ever stop using FC model, the project will probably die at that point or somebody else can take it over if they want to, but probably nobody would want to.
01:41:16 Marco: And that would be it.
01:41:19 Marco: But right now I'm still using it and I suspect I'll be using it for a while.
01:41:23 Marco: So yeah, so right now I'm fine.
01:41:26 John: Yeah, so I guess my way out is I just have to get better at ignoring.
01:41:31 John: I don't know if I can ever ignore bug reports, though.
01:41:33 John: I can probably ignore... I can probably ignore questions, feature requests, you know, stuff like that.
01:41:39 John: Although that'll be sad because that'll, you know, people will... I don't know.
01:41:43 John: It'll be sad.
01:41:45 John: But...
01:41:45 John: bug reports like how can how can i ignore them i can't let them just pile up like yeah there's a bug i just feel like i have to fix it especially because like you know it's but it still works though like it's still working software and it's like it's a shame to let working software become unworking just because of one
01:42:03 John: Minor thing.
01:42:04 John: I don't know.
01:42:04 John: I will probably just continue to limp along with the stuff.
01:42:07 John: I keep hoping that people will lose interest entirely, but they don't.
01:42:10 John: People still sign up for the mailing list.
01:42:13 John: I don't understand.
01:42:16 Marco: I'm conflicted.
01:42:19 Marco: Thanks a lot to our sponsors this week, Oscar, Backblaze, and Igloo, and we will see you next week.
01:42:28 John: Now the show is over.
01:42:29 Casey: They didn't even mean to begin because it was accidental.
01:42:34 John: Accidental.
01:42:35 John: Oh, it was accidental.
01:42:37 John: Accidental.
01:42:37 John: John didn't do any research, Marco and Casey wouldn't let him, cause it was accidental, it was accidental, and you can find the show notes at atp.fm.
01:42:53 Marco: And if you're into Twitter, you can follow them at C-A-S-E-Y-L-I-S-S.
01:43:02 Casey: So that's Casey Liss, M-A-R-C-O-A-R-M-E-N-T-M-A-R-C-O-R-M-E-N-T-M-A-R-C-O-R-M-E-N-T-M-A-R-C-O-R-M-E-N-T-M-A-R-C-O-R-M-E-N-T-M-E-S-I-R-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C
01:43:19 Casey: So, John, you got a PS4.
01:43:30 John: Yeah, when did I get it?
01:43:31 John: Last week sometime?
01:43:32 John: I knew I was going to get one eventually, and I kept telling myself I will get one when there's a game that I want to play, and of course I would love for that game to be Last Guardian, but surely there'll be some other game that I want to play before that.
01:43:44 John: When The Last of Us Remastered came out, I thought that might be the game, but I had just very recently played
01:43:49 John: the non-remastered one, the PS3, so that didn't make me buy a PS4.
01:43:53 John: And I don't know what made me buy one now.
01:43:54 John: I think it's kind of my tradition 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 John: 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 John: And so the PS4 fit the bill for that because I was going to get one anyway.
01:44:20 John: But I didn't really know what kind of games I was going to get for it.
01:44:23 John: And so I just got a mix of a lot of downloadable titles because I didn't want to bother getting discs shipped to me or whatever.
01:44:30 John: And I still think that they load faster off the hard drive.
01:44:33 John: If that's not true, please don't tell me because I like to keep my illusions.
01:44:36 John: So I downloaded a bunch of stuff.
01:44:42 John: and what am i playing i'm not playing anything all that exciting i got i got destiny my son is already addicted to that destiny is exactly what i thought it would be it's fine the controller just destroys my hands playing destiny the analog sticks are still in the wrong spot you got to use all four triggers at the same time it is an ergonomic nightmare for me i really need to limit my time playing the game which is a shame because i find it fun i think destiny is pretty well done i don't know why i got such terrible reviews i guess people have higher expectations but i i consider it more of a long-term investment and my son is really enjoying it so
01:45:11 John: when I saw reviews like 6.5 out of 10 for destiny, maybe it was buggy or on launch.
01:45:15 John: Maybe just people have higher expectations, but it fully satisfies everything that I thought it would be.
01:45:21 John: It's not really my type of game, but anyway.
01:45:23 John: Um, but, but, but mostly is annoying about the PS4 is, and I knew this going in, uh,
01:45:30 John: is that it is not going to be a drop-in replacement for my ps3 because sony concentrated so heavily on the game features that they're seemingly like obstinately opposed to doing media center type stuff like they don't sell a bluetooth like remote for it not you know like a remote remote that looks like a tv remote so you have to use the game if you want to use it as your your own uh
01:45:57 John: blu-ray player like my ps3 has always been my blu-ray player if you want to use your ps4 as your blu-ray player you have to use the controller and that is ridiculous i'm not going to have the controller sitting there on the end table so i can it's just i just won't do that there are third party remotes that you can buy but all of them had terrible reviews and a lot of them use an ir interface connected to the usb thing and i was like sony
01:46:17 John: Can you just make a remote?
01:46:18 John: Like charge some stupid ridiculous amount for it.
01:46:20 John: I'll buy it.
01:46:21 John: I just want a remote.
01:46:22 Marco: They used to, didn't they?
01:46:23 John: For the PS3?
01:46:24 John: Yeah, the PS3 has a Bluetooth remote that works with the PS3.
01:46:27 John: I'm pretty sure it doesn't work with the PS4.
01:46:29 John: If it does work with the PS4, someone in the chat room, tell me.
01:46:33 Marco: I control my PS3 with the Logitech Harmony thing because that has a Bluetooth interface and that can do it.
01:46:38 Marco: And it works great.
01:46:39 John: Yeah, if I can find, if anyone knows, if they want to send feedback to the show, a Bluetooth remote that works with the PS4 natively without any weird drivers and that works well, that's fine.
01:46:48 John: And as someone in the chat room just pointed out my very next point, no DLNA support for, you know, streaming video off all the various devices in my house that can do that.
01:46:57 John: and so you know forget about like having a plex app or anything like that just the basic media center type stuff it can play blu-rays 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 i saw a lot of people complaining with the very first version of the ps4 software that the blu-ray player wasn't even as good as the ps3 one so i still have my ps3 attached i still use it as my blu-ray player i don't really use it for dlna that much as my tv does it now natively so i don't want to turn on the ps3 if i don't have to but
01:47:27 John: Depending on where video comes from and what format it's in, sometimes I have to use PS3 media server.
01:47:33 John: Sometimes I have to use the PS3 to stream from someplace else.
01:47:36 John: Sometimes I can stream from my TV.
01:47:39 John: But I get a lot of things attached to my TV now.
01:47:42 John: 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 when I get my Wii U because the Wii still plays GameCube games and has GameCube connectors, I've got five game consoles taken to my TV plus Apple TV plus TiVo plus
01:47:56 John: I'm running at inputs here.
01:47:57 John: So as I really hope that the media center type capabilities of the PS4 get better.
01:48:04 John: But right now it's disappointing to me that I can't make a clean upgrade.
01:48:07 John: And it's also disappointing that the shape of the PS4, if you put a PS3 on top of a PS4, it doesn't look right to me.
01:48:14 John: It looks like the front of the PS4 is all slanty.
01:48:16 John: and it doesn't make a pleasing shape and of course you can't put the ps4 on top of the ps3 because it's curved like a george foreman grill so it'll skitter off and the ps4 doesn't have feet on the bottom it has these three little rubber curve things in a kind of a tripod that elevate the ps4
01:48:32 John: barely off the surface but because the air and the air intakes are not on the bottom so you could have the thing flush but if you put it on top of another piece of av equipment it will be blocking the holes more or less on the thing that it's on top of so i had to buy some clear rubber feet to elevate it to let air get to the devices underneath it
01:48:48 John: Oh, and I'm out of Ethernet ports by the TV, so I had to buy a new Switch, and it's just, you know, at least I'm not out of plugs in the power strip yet, but I'm getting close.
01:48:57 Casey: Do you have a thing with missing feet?
01:48:59 Casey: I was just about to say that.
01:49:01 Casey: Get out of my head.
01:49:01 Casey: What?
01:49:02 Casey: Missing feet?
01:49:02 Casey: What do you mean?
01:49:03 Casey: Fast text icon, dude.
01:49:04 Casey: Oh, yeah.
01:49:05 Casey: All right, fine.
01:49:07 John: So anyway, the controller is an improvement over the PS3 one, but the button layout is still wrong.
01:49:12 John: The sticks are still in the wrong spot.
01:49:14 John: The triggers are better, but not that much better.
01:49:17 John: And those controllers are expensive, like 50 bucks each.
01:49:21 John: Oh, and the touchpad thing that they added is not a good touchpad, but it does make text input slightly less painful because you can use a touchpad to move the little cursor around onto the key things.
01:49:31 Marco: Would you ever consider stacking the PS4 with a non-Sony system to make it stack better with your stuff?
01:49:38 Marco: Or does it have to be stacked with the PS3?
01:49:40 John: No, I would stack it with anything that I could stack it with.
01:49:43 John: But you've seen my setup.
01:49:44 John: There's not a lot of room in that little shelf there.
01:49:45 John: There's only two possible places it can go.
01:49:47 John: Under the PS3 or on top of my receiver.
01:49:49 John: And under the PS3, it looked weird.
01:49:51 John: And on top of my receiver is where it is now.
01:49:53 John: But I get some feet to elevate it up.
01:49:55 John: second question would you consider daisy chaining two receivers to get like seven more hdmi inputs no you don't daisy chain them you can just get a switching box so the switching box are terrible is why i got the i got this this receiver because i was trying to find a balance of i would have got the sony receiver that had 10 hdmi inputs but all there's just this huge threat of horror stories about it blanking out and having all sorts of problems so like
01:50:19 John: I should link to that thread.
01:50:20 John: It's gone on for like 40 pages of people complaining to Sony and them trying to fix it.
01:50:23 John: Anyway, I'm glad I didn't get that one.
01:50:25 John: So I got this one that had all the features that I wanted and it had six HDMI ports.
01:50:29 John: But one of them is on the front.
01:50:31 John: My TV has, what, four or three?
01:50:33 John: Like, I still have options.
01:50:34 John: Like, I try to connect the consoles directly to the TV to reduce input lag.
01:50:38 John: So I still have enough options for the devices I have.
01:50:40 John: I'm not out of ports.
01:50:42 John: Like...
01:50:42 John: I'm close to being out of ports on the receiver, but I can connect both of the consoles, the current-gen consoles, well, the PS4 and the Wii U, directly to the TV.
01:50:52 John: And the Wii U is connected directly to the TV for input lag reasons, so I'm not really out of ports.
01:50:56 John: But next generation of consoles, I'm going to have to make some hard decisions about what to do, because I won't be getting a new TV by then if I can help it.
01:51:03 John: yeah but that's probably going to be how many years away though it's probably a while off right yeah i know i i was i was pleasantly surprised by the general speediness and ui of like the 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 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 it
01:51:29 John: you could use the land port.
01:51:30 John: Like I didn't have any weird problems with anything.
01:51:33 John: It pretty much just work.
01:51:34 John: Download speeds were reasonable, you know, downloading stuff from the store work fine.
01:51:39 John: 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 you that.
01:51:44 John: Um,
01:51:46 John: So I still endorse it over the Xbox One as a game system, and not just because I have blatant Microsoft tape, but also because of it.
01:51:54 John: And for the people, the doubters in the chat room, I still believe Last Guardian will ship.
01:51:59 John: I still believe.
01:52:00 John: Can't stop me.

The Bear Wakes Up and Bites You

00:00:00 / --:--:--