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