7: The Forecast For iCloud
00:00:00
◼
►
Is this interesting at all?
00:00:02
◼
►
I don't know.
00:00:05
◼
►
What are we talking about tonight then?
00:00:06
◼
►
I don't know.
00:00:07
◼
►
Is there anything to talk about with this Summly thing?
00:00:09
◼
►
I don't know.
00:00:10
◼
►
I thought your post about David was really interesting.
00:00:15
◼
►
This is obviously mutual admiration of society, but I thought it was very—it was very prescient
00:00:21
◼
►
and impressive that he was smart enough not to reveal his age and then made an oops.
00:00:28
◼
►
And like you said, suddenly every article about Tumblr became about his age rather than
00:00:31
◼
►
the fact that Tumblr was really well done.
00:00:34
◼
►
And that's too bad.
00:00:35
◼
►
But I've never used Summly, so I don't know if it's any good.
00:00:39
◼
►
Apparently you say it's not good.
00:00:41
◼
►
I mean, I don't know what they did in the last six to nine months.
00:00:49
◼
►
They had their whole app that was this whole news browsing thing.
00:00:53
◼
►
That all came about fairly recently.
00:00:55
◼
►
Before all that is when I tried it.
00:00:56
◼
►
So I didn't try any of the new stuff.
00:00:57
◼
►
So I can't really speak to what it was.
00:01:00
◼
►
But originally the whole summarization engine I was really not impressed by.
00:01:07
◼
►
I think it was a reasonable idea to try to do something like that, but it wasn't that
00:01:16
◼
►
Something like that where, okay, so the idea of this thing is to take any web article,
00:01:22
◼
►
news article, whatever the case, and summarize it into like three little one-sentence bullet
00:01:29
◼
►
So the idea is that you don't have to read everything.
00:01:31
◼
►
First of all, as somebody who likes reading things, that's kind of missing the point.
00:01:36
◼
►
But okay, there's some uses for that.
00:01:37
◼
►
I can see that.
00:01:38
◼
►
The problem is that the summaries were so bad.
00:01:42
◼
►
Occasionally it would get maybe one and a half of the three bullet points would make
00:01:47
◼
►
sense, but that was the best I ever saw it do.
00:01:52
◼
►
So it was a way to poorly summarize news stories sometimes.
00:01:58
◼
►
And so to me, I just don't have anywhere where that fits into my life.
00:02:01
◼
►
You guys probably don't remember this because you didn't start using Macs until recently,
00:02:05
◼
►
but back in the classic Mac OS days, Apple made a big stink at one point in its sad decline
00:02:11
◼
►
in the '90s about a system-wide text summarization service, where you could select text and ask
00:02:17
◼
►
it to summarize it, and it would summarize it down to a couple sentences.
00:02:20
◼
►
sounding familiar yet. Yeah, exactly.
00:02:23
◼
►
And this was classic Mac OS. And that feature, it might still be in there. You should go
00:02:27
◼
►
look in Automator and see if there's a summarized text thing. But it predates Mac OS X, my recollection.
00:02:34
◼
►
And yeah, that feature did not set the world on fire.
00:02:39
◼
►
And I don't know what the state of the art is with natural language processing doing
00:02:43
◼
►
summarization. I'm sure there's probably good stuff out there. But the thing with lots of
00:02:49
◼
►
natural language processing or AI-type algorithms is that a lot of times the best they can ever
00:02:57
◼
►
do is like an 80% job. And so there's a lot of cases in the world where that's useful.
00:03:02
◼
►
But usually when you're directly between the data and the human and you're trying to do
00:03:08
◼
►
just this one smart thing that involves language and concepts and very subjective, difficult,
00:03:15
◼
►
complicated things, it's not usually a good idea to expose the AI's output directly
00:03:22
◼
►
to people. Let's say it's 95% good. Five percent is still pretty often. You're still
00:03:29
◼
►
going to hit that a lot.
00:03:31
◼
►
So, Jon, you've talked a lot about speech recognition software because you use it a
00:03:36
◼
►
lot and dictation software. What do you think is the highest acceptable error rate that
00:03:45
◼
►
you would still use it? For summarization or for speech recognition? For speech recognition.
00:03:49
◼
►
Well, speech recognition, I mean, the error rate is pretty high, and I think I'd be willing to put
00:03:57
◼
►
up with a much higher error rate than I currently get. In fact, I think I'd be willing to trade
00:04:01
◼
►
correctness for responsiveness, because when you're trying to speak, you don't want to be
00:04:08
◼
►
waiting. Like, the built-in dictation in OS X is the worst case, because you activate the
00:04:15
◼
►
little thing, and then you see a little blinky cursor in front of you, then you talk,
00:04:18
◼
►
then you have to activate the thing again to say, "Okay, take what I just said and do something with
00:04:25
◼
►
it," and then you stare at the blinky thing, and then a whole bunch of text comes on the screen.
00:04:28
◼
►
And that's when you find out whether it has been totally off the rails. Whereas if it had exactly
00:04:32
◼
►
the same error rate but did it a word at a time, kind of like the difference between Siri and the
00:04:37
◼
►
Google iOS speech searching thing, responsiveness, I think, is more important than correctness in
00:04:45
◼
►
Obviously, if it was 70% error rate, you'd be annoyed, but I think being responsive is
00:04:50
◼
►
more important than being exactly correct.
00:04:52
◼
►
Because Dragon has really, really good accuracy, really high accuracy, but it still frustrates
00:04:57
◼
►
me sometimes when I'm talking faster than the text is appearing and I have to stop.
00:05:01
◼
►
Maybe I don't have to stop, but I do stop to wait to see the last 15 words come splatting
00:05:05
◼
►
out on the screen usually all at once to see that it's on the same page.
00:05:08
◼
►
Because if you don't do that, if you just close your eyes and talk, it will do an amazingly
00:05:13
◼
►
in a while I'll look at something off and I'll go back and I'll read what I, you know,
00:05:17
◼
►
quote unquote, "wrote" by speaking and I'll have no idea what the hell I was saying. And I'll have
00:05:21
◼
►
to like, I'll look at it and try to think of homonyms, you know, like which word that sounds
00:05:25
◼
►
like the words on the page, because when you make your own typos, it's like, oh, I was typing the
00:05:29
◼
►
right word and I screwed up a couple characters, you could figure out what it was you said. But
00:05:32
◼
►
when you do like speachos where it transcribes the wrong thing, it could be so far off semantically.
00:05:39
◼
►
And I've literally had times where I say, I have no idea what the heck I was trying to say here,
00:05:42
◼
►
because the sentence actually makes no sense whatsoever. Even though all the words are spelled
00:05:45
◼
►
correctly in their English words, they don't make any sense. And I don't remember what I was saying,
00:05:49
◼
►
and I got to say the word as written out loud and close my eyes and think of what it sounds like.
00:05:54
◼
►
But I don't think many people would choose to use speech recognition. Let's put it this way.
00:06:00
◼
►
I wouldn't be using it if I didn't have RSI things with typing. I think that's when you'll know
00:06:06
◼
►
speech recognition has really arrived when people who can already type very quickly choose to use
00:06:13
◼
►
speech recognition instead because it's like either equally as fast or, you know, it's so
00:06:19
◼
►
accurate that why would you bother flicking your fingers around, you know? But we're far from that
00:06:24
◼
►
right now. Well, plus it's not a group activity. What I mean by that is if you're working in an
00:06:31
◼
►
an office full of cubicles like John, I presume you do,
00:06:34
◼
►
and I certainly do, if all of us are talking
00:06:37
◼
►
to our computers, that's going to be a bit loud,
00:06:41
◼
►
to say the least.
00:06:42
◼
►
And furthermore, doing the sorts of things
00:06:45
◼
►
that all three of us do, which is write code,
00:06:47
◼
►
which is a far cry from regular prose,
00:06:51
◼
►
I've never imagined nor tried to do speech recognition
00:06:55
◼
►
for writing code, but John, I can't imagine
00:06:57
◼
►
you're writing Perl and regular expressions,
00:07:00
◼
►
which is basically the same thing, using speech recognition.
00:07:03
◼
►
It is not the same thing, and no, I am not
00:07:05
◼
►
using speech recognition for that.
00:07:09
◼
►
Aye, aye, aye.
00:07:11
◼
►
That was a good troll.
00:07:12
◼
►
I do my best.
00:07:14
◼
►
Now, I feel like there's places for this stuff.
00:07:18
◼
►
Like, a lot of people have said that, first of all,
00:07:22
◼
►
there are opportunities for anything
00:07:25
◼
►
that could be considered an assistive technology
00:07:28
◼
►
for people, like dictation is great for people who can't type, and RSI is, you know, a
00:07:35
◼
►
usually mild but still a handicap, and so if you can't or would rather not use your
00:07:42
◼
►
hands to type, then it's great to have alternatives. But the place for a lot of this stuff is,
00:07:50
◼
►
in other contexts, people who don't permanently have a specific disability but who might temporarily
00:07:55
◼
►
have one. For example, when you're driving, you really shouldn't be typing. And when
00:08:01
◼
►
driving you're also theoretically, hopefully partially blind to your computing device.
00:08:08
◼
►
So that's why things like voice command and audio cues can be so useful in a mobile
00:08:13
◼
►
app that you're expected to use while you're in the car. And so Siri is great for that,
00:08:18
◼
►
but Siri is not good enough for me to dictate everything that way. As Jon said, when you
00:08:24
◼
►
you have alternatives, you'll take them, but it's still good to have this thing when
00:08:29
◼
►
you don't have alternatives, or when your alternatives are worse.
00:08:32
◼
►
I'm trying to look up the text summarization service from Classic Mac OS in Google, and
00:08:35
◼
►
I can't find it. All I can find are the references to it existing in Mac OS X. So maybe I'm misremembering,
00:08:40
◼
►
but I could have sworn that this was from Mac OS 8 or whatever. But anyway, if you want
00:08:45
◼
►
to just fire up TextEdit now in Mac OS X, paste a bunch of text in there from an article,
00:08:50
◼
►
select the text, go to the services menu, Summarize will be in there if you didn't deactivate
00:08:53
◼
►
in your pref pane, and you get a little slider that lets you crank it down to one sentence,
00:09:00
◼
►
if you want. So I don't understand how... I don't know anything about this summary thing,
00:09:05
◼
►
except for what I read on Marco's blog and one or two other news stories.
00:09:09
◼
►
And summarization is not the whole thing. I think it was like... It was basically a way to let you
00:09:16
◼
►
consume news without you having to look through all the news. It would try to give you a condensed
00:09:19
◼
►
version, but not, "Am I getting this right?" but not having a human do it, having the computer
00:09:24
◼
►
do it, and summarization would be a part of that.
00:09:28
◼
►
But if it's the summarization part that they were excited about—again, this feature obviously
00:09:33
◼
►
existed for a long time, whether it's in classic Mac OS or not.
00:09:35
◼
►
No one cares that it's there.
00:09:37
◼
►
Is it patent encumbered?
00:09:40
◼
►
I still don't understand why they paid $30 million for it all.
00:09:43
◼
►
I don't understand it at all.
00:09:46
◼
►
And so that's what a lot of the debate has been about. First of all, it's cool to say
00:09:50
◼
►
Yahoo is being stupid because Yahoo's had some pretty bad decades. So everyone's like,
00:09:56
◼
►
"Oh, look at how stupid Yahoo is being."
00:09:59
◼
►
But I don't think it's them being stupid. Usually, if you think a company is being stupid,
00:10:04
◼
►
usually you aren't looking at the whole picture, or there's something that you're
00:10:08
◼
►
missing, or there's some better reason for what they're doing that's better explained
00:10:12
◼
►
than they're idiots.
00:10:15
◼
►
So I think you can—unless the company is RIM, now called BlackBerry—anyway, they
00:10:22
◼
►
actually are idiots.
00:10:23
◼
►
But for the most part, everybody else, when the explanation is, "Oh, they're being
00:10:27
◼
►
stupid," there's usually more to it.
00:10:28
◼
►
So I think in this case, a lot of people have suggested—so here's the deal.
00:10:33
◼
►
They bought suddenly the product and part of the staff for $30 million, most of which
00:10:41
◼
►
I think they said 10% was stock, but all the numbers are actually rumored or from inside
00:10:45
◼
►
sources that are unnamed. The numbers were not officially made public, but everyone's
00:10:49
◼
►
saying $30 million, mostly, in cash. It's a classic textbook, AquaHire. The product
00:10:56
◼
►
is immediately shut down, and Yahoo paid—for this size startup, it's a relatively modest
00:11:02
◼
►
sum for basically three people, for the three most important people by their definition,
00:11:11
◼
►
to work for Yahoo for a minimum of 18 months.
00:11:15
◼
►
So basically they've paid like 10 million ahead
00:11:18
◼
►
for these key people.
00:11:19
◼
►
- And that sounds even more crazy.
00:11:21
◼
►
Now that you're telling me more about this,
00:11:22
◼
►
I'm thinking it sounds even crazier than I thought.
00:11:24
◼
►
So they're shutting down the stupid product
00:11:26
◼
►
that summarizes stuff?
00:11:28
◼
►
- Oh, it's gone.
00:11:29
◼
►
They pulled it from the App Store already.
00:11:30
◼
►
- I don't understand it at all.
00:11:32
◼
►
Like there's no way those three people
00:11:34
◼
►
are worth $30 million.
00:11:36
◼
►
There's just no way.
00:11:37
◼
►
Like I don't know how.
00:11:37
◼
►
- And there's part of the debate
00:11:39
◼
►
that some people are saying that the technology was actually licensed from SRI, the parent
00:11:45
◼
►
company of Siri, before Apple bought it, that the speech recognition, or sorry, the natural
00:11:51
◼
►
language processing technology was actually SRIs, and it was licensed from them, that
00:11:55
◼
►
some people didn't develop that, but then the some people are denying that, so it's
00:11:59
◼
►
unclear what is the truth there, but at least what Yahoo bought, at least what we know that
00:12:03
◼
►
they bought, was they paid $30 million for these three people, one of whom is the second
00:12:09
◼
►
17-year-old kid, Nick—oh, God, I should not try to pronounce his last name.
00:12:14
◼
►
It starts with a D.
00:12:16
◼
►
D. Aloisio, maybe?
00:12:19
◼
►
I'm sorry, Nick.
00:12:20
◼
►
I'm probably butchering that.
00:12:23
◼
►
Nick D. But not Nick Denton.
00:12:27
◼
►
Gosh, this is tough.
00:12:29
◼
►
Anyway, Nick D. Aloisio, sorry.
00:12:33
◼
►
He started this company when he was 15.
00:12:35
◼
►
Now he's 17.
00:12:37
◼
►
So now he's a 17-year-old tech whiz kid millionaire, which of course the press loves to bang on
00:12:41
◼
►
that angle so much.
00:12:43
◼
►
And I kind of ripped them apart yesterday for that, as we were saying at the top of
00:12:48
◼
►
the show about how that was originally a problem at Tumblr because David was so young.
00:12:56
◼
►
So all the stories are about how young this kid is, or about the tech press freaking out
00:13:01
◼
►
that why the heck did they buy this and why the heck did they pay so much.
00:13:04
◼
►
But to bring this back a little bit, a couple weeks ago we had a question from Abhi Beckert.
00:13:11
◼
►
He suggested an interesting topic.
00:13:13
◼
►
He said, "What if Apple bought Yahoo?"
00:13:17
◼
►
And the idea there was Apple needs good server-side and services talent, and Yahoo might have
00:13:27
◼
►
And I thought about this topic for a little bit.
00:13:30
◼
►
Yahoo is still very popular, especially among non-geek demographics, like normal people
00:13:37
◼
►
as we like to say in the geek world, which is probably condescending or somehow weird,
00:13:41
◼
►
but sorry about that.
00:13:42
◼
►
Anyway, I don't know what the right term is.
00:13:45
◼
►
Non-geeks I think is fair.
00:13:49
◼
►
But I think Yahoo is for the most part resting on their previously achieved laurels, and
00:13:55
◼
►
I don't think they've really done a lot in the last decade, maybe, to really get new
00:14:02
◼
►
users and to really grow the company.
00:14:03
◼
►
That's why everyone has said they've been in trouble.
00:14:06
◼
►
That's why it was interesting when they brought in Marissa Meyer, a CEO from Google.
00:14:10
◼
►
That was interesting.
00:14:11
◼
►
But either way, this is a company that needs to make a comeback of some sort.
00:14:16
◼
►
They've also, in the last decade, gone through a lot of layoffs.
00:14:20
◼
►
A lot of very talented people have left or gotten fired or gotten laid off.
00:14:28
◼
►
I don't have any inside sources at Yahoo, but I have to imagine they probably have a
00:14:33
◼
►
talent shortage.
00:14:36
◼
►
If you're really good, you probably were not happy working at Yahoo in the last decade
00:14:41
◼
►
and you probably left or didn't go there in the first place because they've just
00:14:44
◼
►
lost so many good people over the last few years.
00:14:49
◼
►
And they have some good properties like Flickr that we've just seen just languish and stagnate
00:14:55
◼
►
as all the good people have left or they've gotten fired.
00:14:59
◼
►
So Yahoo, talent-wise, I have to imagine is not in good shape.
00:15:05
◼
►
So the other angle people are discussing with the Summly deal is, first of all, Nick D'Aloisio,
00:15:12
◼
►
again I'm sorry, he might be a really good product sensibility person.
00:15:19
◼
►
And that's the kind of person that in one way Steve Jobs was, it's the kind of person
00:15:25
◼
►
certainly that David Karp is at Tumblr.
00:15:27
◼
►
Believe me, he is definitely that kind of person.
00:15:31
◼
►
And that's a very valuable kind of person, just shorthand called "product people."
00:15:40
◼
►
Product people can make or break a company because they make the decisions about what
00:15:44
◼
►
a product should be, and they have the sensibilities to know what people will like and what will
00:15:49
◼
►
work. So if Nick DiAloisio is a really good product person, then it would be valuable
00:15:57
◼
►
to bring him onto Yahoo, because Yahoo needs people like that.
00:16:00
◼
►
Not $30 million valuable. I was trying to think of some sane reason that you'd pay
00:16:04
◼
►
$30 million, and here's what I've come up with, and it's not great, and it's based
00:16:07
◼
►
on no information. One, there's a bidding war. You're not the only one who wants to
00:16:11
◼
►
buy these people. You pay with the market demands. If you want them more than someone
00:16:14
◼
►
else, you just go up, up, up, and we get them in. And two is intellectual property. They
00:16:19
◼
►
They have some stuff that would, you know, it would cost you, it's more important for
00:16:24
◼
►
you to own this intellectual property because it would cost you more to let someone else
00:16:27
◼
►
scoop it up and then you have to license it from them long term.
00:16:29
◼
►
Those are the only two things I can think of.
00:16:31
◼
►
Well, what I'm thinking is, there are two factors here that could have driven the price
00:16:37
◼
►
up a little bit artificially.
00:16:40
◼
►
One is that Yahoo is, again, not in good shape.
00:16:45
◼
►
And you could argue that having a really good product person is very valuable to the company.
00:16:53
◼
►
You could counter-argue that, well, he's only obligated to stay there for 18 months.
00:16:58
◼
►
So, they might—
00:16:59
◼
►
It doesn't matter how good you are.
00:17:01
◼
►
18 months, one thing.
00:17:02
◼
►
And the second thing is unproven.
00:17:04
◼
►
Show me you're a great product person.
00:17:05
◼
►
Where's your great product?
00:17:06
◼
►
Was it this thing that we just can't and no one was really interested in?
00:17:08
◼
►
Because that ain't great.
00:17:09
◼
►
I mean, even Steve Jobs didn't get $30 million the day he arrived at Apple in 1997.
00:17:13
◼
►
he had to kind of sort of A, kick out the old CEO,
00:17:16
◼
►
and B, kind of sort of prove himself before,
00:17:18
◼
►
like they were like, okay, well, you know what I mean?
00:17:20
◼
►
He didn't come out the gate and say,
00:17:21
◼
►
oh, Steve Jobs, you're wonderful,
00:17:23
◼
►
we're gonna immediately let you take over
00:17:24
◼
►
and give you tons and tons of money
00:17:25
◼
►
and shower you with praise.
00:17:27
◼
►
If Steve Jobs has to prove himself,
00:17:28
◼
►
this kid has to as well.
00:17:29
◼
►
Like this is not, you don't pay $30 million
00:17:31
◼
►
for a couple of employees, no matter who they are,
00:17:33
◼
►
even if they literally are the best employees
00:17:35
◼
►
in the entire world.
00:17:36
◼
►
You don't, you just don't pay that much money for it.
00:17:38
◼
►
- Well. - You wouldn't have to.
00:17:39
◼
►
You could get those employees for less money
00:17:42
◼
►
if they didn't know, they obviously know they have something or think or know they have
00:17:47
◼
►
something that's actually worth much more than they would be individually as employees.
00:17:52
◼
►
Maybe Yahoo can't get them for less. Again, Yahoo has a problem, because if you're really
00:17:57
◼
►
good in this industry, do you want to work at Yahoo? Probably not. That's a problem.
00:18:03
◼
►
I think $5 million a head for 18 months would do it.
00:18:06
◼
►
Anyway, one thing I think they can justify the high price by saying, "We're Yahoo.
00:18:11
◼
►
We need people. We need good people.
00:18:13
◼
►
The other thing is Nick DiAloisio, again, I'm sorry,
00:18:17
◼
►
is extremely relentless and really, really good
00:18:22
◼
►
at self-promotion.
00:18:23
◼
►
This guy, I linked to this Gizmodo article,
00:18:27
◼
►
which is really kind of tasteless, honestly.
00:18:29
◼
►
I felt bad even linking, I almost didn't link to it.
00:18:31
◼
►
- Wait, on Gizmodo? Really?
00:18:36
◼
►
- Because when, you know, you gotta keep in mind,
00:18:38
◼
►
this is a teenager, or at least he was.
00:18:40
◼
►
well, he's 18 now, I guess, or 17, whatever.
00:18:42
◼
►
But this is a teenager.
00:18:45
◼
►
If I started a company when I was a teenager
00:18:48
◼
►
and got a whole bunch of publicity
00:18:50
◼
►
and got all over the press and was able to email people
00:18:52
◼
►
who were important in the industry,
00:18:54
◼
►
I don't know that I would have acted that much better,
00:18:56
◼
►
honestly, 'cause when I was a teenager, I was an idiot.
00:18:59
◼
►
And I guess I'm probably going to look back at this time
00:19:02
◼
►
in 10 years and say I was an idiot now,
00:19:04
◼
►
but I at least feel like I'm way less of an idiot now
00:19:07
◼
►
than I was when I was a teenager.
00:19:09
◼
►
So I got to give this kid the benefit of the doubt that, OK, he was 15 when he started
00:19:13
◼
►
all this stuff, and when I was 15 I was an idiot.
00:19:20
◼
►
But he emailed this Gizmodo reporter relentlessly, like every day, making up all this stuff like,
00:19:28
◼
►
"Oh, my boss is going to get on my back if you don't put my app in the Hall of Fame,"
00:19:31
◼
►
or something like that, and everything was marked urgent.
00:19:34
◼
►
So I didn't see that story when it came out, but Nick gave me a similar email barrage about
00:19:41
◼
►
six months later trying to get me to integrate Summly into Instapaver.
00:19:48
◼
►
The emails he sent were...
00:19:50
◼
►
I don't want to be mean to the kid, but it was ridiculous.
00:19:55
◼
►
He would email me multiple times a day on some of these days.
00:19:58
◼
►
Everything was marked super urgent, even though it wasn't urgent, which is just kind of a
00:20:02
◼
►
of a rude thing to do. And he would impose this artificial sense of urgency and everything
00:20:11
◼
►
had to be done quickly, right now, oh my god. A lot like a high pressure car salesman. You
00:20:15
◼
►
know, like really high pressure manipulation, I would say. And really, I was not left with
00:20:22
◼
►
a very good impression of Nick from these emails, just because I felt like I was being
00:20:25
◼
►
manipulated and badgered and annoyed.
00:20:30
◼
►
And clearly, because he did the exact same thing as somebody else, I have to imagine
00:20:33
◼
►
this is just part of his personality where he can badger the crap out of people until
00:20:38
◼
►
they do what he wants.
00:20:41
◼
►
And so, if you look at his company, his company has some fairly prominent investors.
00:20:48
◼
►
He had a promotional video done with Stephen Fry, among other people he did a few things
00:20:55
◼
►
And he has a lot of connections, obviously.
00:20:58
◼
►
And I don't know if he badgered his way in or if he earned them or what.
00:21:01
◼
►
This kid is really, really good at getting people on his side and badgering people into
00:21:07
◼
►
paying attention to him and doing what he wants for his product.
00:21:10
◼
►
So it's very possible that just Yahoo's desperation and that could have been the only two factors
00:21:17
◼
►
that made this price go way higher than we think it probably should have.
00:21:21
◼
►
That seems highly unlikely to me.
00:21:23
◼
►
You didn't get these kids' emails.
00:21:24
◼
►
I saw, I read the articles.
00:21:25
◼
►
Yes, he's enthusiastic and annoying, but there's obviously something there that we don't know
00:21:33
◼
►
or have information about.
00:21:34
◼
►
There's something.
00:21:35
◼
►
It's a bidding war, it's intellectual property, it's obviously not the product because they
00:21:40
◼
►
So it's not that the product has a big user base that they're transferring?
00:21:43
◼
►
No, I don't think that's it either.
00:21:44
◼
►
It's got to be something else.
00:21:47
◼
►
The product had less than a million downloads and no revenue.
00:21:49
◼
►
I mean, because think about it.
00:21:51
◼
►
If you're running a company, you can't hire a superstar person for $10 million a head.
00:21:57
◼
►
All your existing people who are like, "Wait, aren't I a superstar?
00:22:00
◼
►
Why didn't I get $10 million for a team?"
00:22:02
◼
►
You just can't do that.
00:22:03
◼
►
There's got to be something there worth money to the company besides those human beings.
00:22:09
◼
►
I think it's clear.
00:22:10
◼
►
I think you're right that we don't know the whole story here because obviously this still
00:22:14
◼
►
seems ridiculous.
00:22:16
◼
►
But I don't think there needs to be that much more to it for it to be understandable or
00:22:24
◼
►
I don't think they had some kind of awesome super-duper natural language processing technology
00:22:29
◼
►
that Yahoo now owns.
00:22:30
◼
►
I don't think that's it at all, because I saw the technology and it wasn't that compelling.
00:22:33
◼
►
Well, it might just be patents.
00:22:34
◼
►
Like I said, intellectual property doesn't have to actually be awesome.
00:22:36
◼
►
It can be super-duper dumb.
00:22:37
◼
►
In fact, those are the best kind of patents, the super-dumb patents.
00:22:40
◼
►
I don't think they were in business long enough to get a patent issued.
00:22:43
◼
►
The company was only 18 months old.
00:22:44
◼
►
Oh, everybody's got a patent.
00:22:46
◼
►
Well, and I read somewhere today, and I wish I remember where I read this, so this is probably
00:22:50
◼
►
false since I barely remember where I read it, but somebody said that it wasn't even
00:22:56
◼
►
That they—it was like quasi-Siri in that they licensed the tech from someone else and
00:23:01
◼
►
just put a UI in front of it and called it theirs.
00:23:05
◼
►
So I agree with you, Jon, that if it's not the people, then it should be IP, but supposedly
00:23:12
◼
►
the IP isn't theirs anyway.
00:23:14
◼
►
So what gives?
00:23:15
◼
►
I don't know.
00:23:18
◼
►
I don't know.
00:23:19
◼
►
Again, I think John's right.
00:23:22
◼
►
There has to be something else here that has not been reported.
00:23:25
◼
►
Well, and if it's the desperation of Yahoo, something that I've heard or I've read
00:23:30
◼
►
a lot about lately is how desperate Apple is.
00:23:33
◼
►
So how far is Apple from being in this position?
00:23:36
◼
►
And I know that's kind of a ridiculous and absurd thing to ask, but it's also kind
00:23:41
◼
►
of a legitimate thing to ask.
00:23:42
◼
►
I mean, is Apple really where the super incredible mega nerds
00:23:47
◼
►
want to be these days?
00:23:49
◼
►
That's a very good question.
00:23:51
◼
►
I've heard a lot of things, rumors and some things
00:23:54
◼
►
from people in Apple, that they have a lot of problems
00:23:57
◼
►
retaining good talent.
00:23:59
◼
►
Getting good talent-- maybe getting good talent
00:24:01
◼
►
they still are OK with, but retaining good talent,
00:24:04
◼
►
they're having a big problem there.
00:24:06
◼
►
It makes sense that they have trouble retaining,
00:24:08
◼
►
because the way Apple works is if you
00:24:12
◼
►
or a really smart, great performer, lots of talent, can do lots of different things, you're
00:24:19
◼
►
not going to go to Apple and get to do what you want to do.
00:24:23
◼
►
Because the company does so few things, like it's focused, right?
00:24:26
◼
►
So you can help contribute to what may be a big deal, but you're not going to go, "You
00:24:31
◼
►
know, I have this really great idea for this thing," and Apple's going to be like, "No."
00:24:34
◼
►
They shoot down everyone's idea.
00:24:36
◼
►
Only very, very few ideas actually get implemented.
00:24:38
◼
►
So eventually, after you've worked on one or two things that Apple decided to do and
00:24:44
◼
►
you were important in contributing to them or whatever, you will inevitably say, "Well,
00:24:49
◼
►
you know what?
00:24:50
◼
►
But now I want to actually do the thing that I was thinking of that I think is cool."
00:24:52
◼
►
There's no way for you to do that inside of Apple.
00:24:55
◼
►
So you inevitably have to leave.
00:24:56
◼
►
And it's not like the fault of Apple for doing this because they have to be focused as a
00:25:02
◼
►
But if you get really smart and multi-talented people, you can't keep them in this community
00:25:08
◼
►
confined place where they can only contribute to the one or two or three things that are
00:25:12
◼
►
important for Apple to do. They will want to go off on their own, even if it's just
00:25:15
◼
►
like, you know, like, I just want to go off and make letterpress or something. Like, you
00:25:21
◼
►
know, Apple's not interested in that, but maybe you are, and you can't do that with
00:25:24
◼
►
an Apple. And so you're like, "Alright, well, you know, I worked on this, I worked
00:25:28
◼
►
on that, they were great, it's really important work, lots of people use it, but I just want
00:25:31
◼
►
to do my thing." So, I think that's inevitable.
00:25:34
◼
►
I think also you can kind of get some idea that most of the people I know, and maybe
00:25:41
◼
►
this is just the people I've observed because it's who I follow on Twitter or whatever,
00:25:44
◼
►
but most of the people I know who have left Apple have gone to much smaller companies.
00:25:51
◼
►
Oftentimes they've gone to start a startup.
00:25:54
◼
►
And I think it's part of what you said, John.
00:25:56
◼
►
It's part of them wanting to do something on a much smaller scale where they can have
00:25:59
◼
►
a bigger role or make a product that Apple would never make.
00:26:03
◼
►
But I think part of it also is that Apple has created this entire environment, this
00:26:09
◼
►
entire ecosystem of small startups being able to succeed and one person shops being able
00:26:14
◼
►
to succeed on the App Store.
00:26:18
◼
►
And their people being in charge of this stuff or working on the frameworks or working in
00:26:24
◼
►
this world or at least being surrounded by other developers who are working in this world,
00:26:29
◼
►
That has to be very tempting for people who work inside of Apple to be looking at all
00:26:34
◼
►
these other people making probably way more money than they make at their job at Apple
00:26:38
◼
►
and doing really cool things and making products from scratch and having no boss.
00:26:45
◼
►
To watch that from the inside and not be able to participate, that has to be very tempting.
00:26:53
◼
►
I bet that pulls a lot of people out of Apple.
00:26:55
◼
►
But isn't the converse also true in the sense that, let's say I was a middle-of-the-road
00:27:01
◼
►
self-employed iOS developer, and I have a few apps or maybe just one app in the App
00:27:08
◼
►
Store that's popular but not, it's barely self-sustaining.
00:27:13
◼
►
And then Apple says to me, "Hey, why don't you interview with us?"
00:27:16
◼
►
I can't imagine I would be like, "No, I really like being my own person."
00:27:21
◼
►
And it's hard for me to fathom what it's like to be self-employed because I've worked for
00:27:26
◼
►
the man my entire life.
00:27:28
◼
►
But I guess what I'm saying is if I was not a superstar, if I was just a regular Joe who
00:27:34
◼
►
was trying to do his own thing in the app store and Apple said, "Hey, we've seen what
00:27:38
◼
►
you do and we really like it and we'd like you to interview," I got to imagine I'd be
00:27:43
◼
►
thrilled at that opportunity.
00:27:44
◼
►
I would be so beside myself.
00:27:46
◼
►
They want you to move to California, though.
00:27:47
◼
►
How do you feel about it now?
00:27:48
◼
►
Well, and that's a very, very fair point.
00:27:51
◼
►
Because they don't do the telecommuting thing, really.
00:27:54
◼
►
And that's another limiting factor.
00:27:56
◼
►
You want to work for Apple, you've got to live in Appleland, and living in Appleland
00:27:59
◼
►
is expensive, and maybe that's not where your family is, and maybe that's not where
00:28:01
◼
►
you want to live.
00:28:02
◼
►
And if you do live out there, you have a lot of competition for that job.
00:28:08
◼
►
People have a lot of competition for an employer.
00:28:11
◼
►
If you live out there already, then you can go work for any number of big tech companies
00:28:16
◼
►
plus an infinite number of small ones.
00:28:18
◼
►
And that's a really good point. It really honestly is. And I'm hypothesizing, I don't
00:28:25
◼
►
know what any of this is like, but I guess what I'm saying is as much as Apple is arguably
00:28:30
◼
►
bleeding talent, I can't imagine that it's that hard for them to find new talent. That
00:28:35
◼
►
being said, a revolving door is clearly not a sustainable approach. So I don't know, it's
00:28:41
◼
►
an odd thing to think about.
00:28:43
◼
►
Yeah, I think it's not just the people who go there, are a superstar, do something awesome,
00:28:50
◼
►
design the UI for the original iOS or the iPhone OS as it was then known, launch the
00:28:54
◼
►
original iPhone, maybe do one or two other projects and say, "All right, well, now I
00:28:58
◼
►
feel like I have all the talents under my belt to do Brady's basically whatever I want,
00:29:02
◼
►
and I want to be the one in charge."
00:29:03
◼
►
Because you can only have so many chiefs.
00:29:05
◼
►
It's mostly got to be Indians, especially at a company like Apple.
00:29:08
◼
►
You only do a limited number of things, only a limited number of people are in charge.
00:29:11
◼
►
Is this an H1B reference or?
00:29:13
◼
►
Native Americans Marco. I don't know if we're allowed to call them
00:29:18
◼
►
We've taken a turn
00:29:21
◼
►
So like there's there's that feeling that you want to like I want to be the guy who calls the shots, right?
00:29:27
◼
►
And so that those people go off and do that
00:29:29
◼
►
But it's not just the people who are like well I came in at the bottom
00:29:32
◼
►
I learned some stuff and now I'm able to go off on my own
00:29:34
◼
►
It was like, you know, like you said you can make more money
00:29:36
◼
►
My friends are making these hit applications and making tons more money than I am
00:29:39
◼
►
I could be a proprietor of my own business.
00:29:41
◼
►
I could have unlimited income, limited only by my success, not by a review process and
00:29:45
◼
►
like cost of living raises and bonuses and maybe stock options are unlucky.
00:29:49
◼
►
Think about Bertrand, Bertrand Cerlet, who was one of the guys in charge, making presumably
00:29:55
◼
►
tons of money.
00:29:57
◼
►
He didn't leave Apple because he didn't get to be in charge of stuff.
00:30:02
◼
►
He wasn't Steve Jobs, but he was like two or three rungs down from there.
00:30:06
◼
►
There's very few people who have that level of power.
00:30:09
◼
►
And he certainly wasn't, "Oh, well, I'm so bitter that these people are making money
00:30:12
◼
►
in the App Store."
00:30:13
◼
►
He just wanted to go and do something different.
00:30:16
◼
►
And no matter where you are, except maybe if you're at the very, very top of that pyramid,
00:30:21
◼
►
if you have an itch to go do something, you can't do it with an apple if it's not something
00:30:26
◼
►
that Apple wants to do.
00:30:27
◼
►
And so he left to do whatever his secret startup is right now.
00:30:32
◼
►
He didn't retire to sit on the beach and count his money and watch the waves come.
00:30:38
◼
►
He had an intellectual itch, and he wanted to do something, and so he left to do it.
00:30:45
◼
►
That's inevitably going to happen in a company where you hire people who...
00:30:49
◼
►
Because that's what you want in your company, people who could be the Steve Jobs of their
00:30:53
◼
►
own company.
00:30:54
◼
►
But you want them to work for you, and you want to get them as long as you possibly can
00:31:00
◼
►
and get what you can out of them, but I don't think Apple is bitter that they go off and
00:31:03
◼
►
do things on their own. If we have an employee who couldn't leave Apple and go off and
00:31:08
◼
►
do better for themselves, maybe we didn't make the right hire. That's the calculus
00:31:13
◼
►
there. They want all people who could do better outside of Apple, but they want to keep them
00:31:17
◼
►
for as long as they can and get the best work out of them, I guess.
00:31:22
◼
►
I think it's interesting maybe to distinguish. We're talking about how Apple's having
00:31:27
◼
►
trouble getting talent, but that seems to be mostly at the lower levels of the company
00:31:32
◼
►
and the mid-levels of the company. At the upper levels of the company, they seem to
00:31:35
◼
►
have, for the most part, pretty strong loyalty and pretty long-running people there.
00:31:41
◼
►
Well, executives, can a middle manager go off and do their own thing and be as successful
00:31:51
◼
►
as they are as Apple? No, because at a certain point when you get high enough—Bertrand
00:31:54
◼
►
is an exception because he was in the engineering organization, but there are people who are
00:31:57
◼
►
just managers. If you're a long-time manager at Apple, you're going to be making lots
00:32:01
◼
►
of money. Maybe you don't care that you don't get to tell the company what the company
00:32:04
◼
►
gets to do. There's room for middle management everywhere. Those people aren't going to
00:32:09
◼
►
leave voluntarily.
00:32:10
◼
►
Yeah, I guess that's true. If you look at other companies, I think Apple is pretty good
00:32:15
◼
►
at retaining the upper people. I guess the question is, the upper people, obviously,
00:32:23
◼
►
frequent changes there would probably be way more disruptive to the company than frequent
00:32:28
◼
►
changes at the lower levels of the company. Are frequent changes at the lower levels really
00:32:34
◼
►
something that they should be worried about, or should they just keep trying to make the
00:32:38
◼
►
best stuff and keep retaining the upper people and just hope that the lower people keep coming
00:32:45
◼
►
in faster than they're going out?
00:32:47
◼
►
I think they probably need to figure out some way to prolong the really smart people's
00:32:54
◼
►
stay by giving them some way to flex their independence and desire to do something.
00:32:58
◼
►
Like it's totally against Apple's MO to do the computer equivalent of concept cars,
00:33:04
◼
►
or have something like Google Labs, or 20% time.
00:33:07
◼
►
Those are just not in Apple's culture.
00:33:10
◼
►
But Apple culture is so far in the other direction.
00:33:12
◼
►
If you can just give people some outlet within that structure to say, "There is a slim chance,
00:33:19
◼
►
however slim," it's like the lottery, "however slim that you may be able to get us to do
00:33:23
◼
►
your crazy idea."
00:33:25
◼
►
Think of the original Xbox.
00:33:26
◼
►
I think it was J.L.R. and maybe one other person had the idea, "You know what?
00:33:30
◼
►
Microsoft should do a gaming console."
00:33:32
◼
►
And they were not vice presidents when they came up with this idea.
00:33:35
◼
►
They were pretty much rank and file employees who had been there for a while but were not
00:33:39
◼
►
in a position to say Microsoft should make a game console, but they were able to take
00:33:44
◼
►
that idea and pitch it up up up the ladder and eventually convince Microsoft to make
00:33:48
◼
►
a game console and they became a big part of that process.
00:33:51
◼
►
Not like say, oh good, that's a great idea guys, now go back and toil.
00:33:54
◼
►
No, they became, you know, bigwigs in charge of that project.
00:33:58
◼
►
That can happen inside Microsoft, or at least happen once.
00:34:01
◼
►
There are plenty of people in lower positions in Apple whose ideas come to fruition and
00:34:05
◼
►
become a big type of thing, but I'm not sure they go with those ideas up the ladder.
00:34:10
◼
►
So if you could just make some sort of forum within the company for these independent people
00:34:14
◼
►
to come up with something that it's possible to pitch its way up and become the next big
00:34:20
◼
►
pillar on the stool, even if that only happens once every 10 years or something.
00:34:23
◼
►
I don't know.
00:34:24
◼
►
None of us have ever worked for Apple, so we're all just speculating on the outside
00:34:28
◼
►
what it might be like.
00:34:31
◼
►
I think that type of 20% time, however BS it is at Google these days, and Google Labs
00:34:36
◼
►
type things, in the pre-Google+ days, let's say, before Google tried to become maniacally
00:34:41
◼
►
focused, that was a lot of the reason I think a lot of really smart people stayed at Google.
00:34:46
◼
►
Because whether anything actually came to fruition or not, there was the idea that it
00:34:50
◼
►
was a bunch of smart people doing lots of interesting things in all sorts of directions,
00:34:54
◼
►
and why would you leave to go anyplace else?
00:34:56
◼
►
Because here they give you a nice salary, they feed you, they take care of you, you
00:35:00
◼
►
have health insurance, it's a nice job, and you kind of sort of get to do whatever you
00:35:05
◼
►
Who knows that thing, whatever you want, could become the next Gmail, because that's where
00:35:06
◼
►
Gmail came from, right?
00:35:08
◼
►
Or the next Google Reader before, you know.
00:35:11
◼
►
So like that environment within Google, that environment within Google, the pre-Google
00:35:15
◼
►
Plus Google, I think that served as a magnet to pull people into Google and to keep people
00:35:21
◼
►
into Google.
00:35:22
◼
►
Maybe the wrong kind of people, maybe not the kind of people Apple wants, but Apple
00:35:25
◼
►
needs just a tiny little taste of that, a little bit more than they have now, and I
00:35:29
◼
►
that would help them keep people for, say, six months longer.
00:35:33
◼
►
Yeah, hopefully longer than that.
00:35:36
◼
►
But yeah, I think that's wise.
00:35:38
◼
►
I don't know.
00:35:39
◼
►
Casey, what do you think?
00:35:41
◼
►
I agree with everything you said.
00:35:43
◼
►
What's hard for me to reconcile is if you look at the big players in California—and
00:35:48
◼
►
let me hedge heavily by saying I'm an East Coast guy, I've only been to California
00:35:52
◼
►
a handful of times in my life, in fact, at least half of them were for WWDC—I don't
00:35:58
◼
►
what the culture and what the technology sector looks like out there.
00:36:03
◼
►
So I apologize for getting all the following wrong, email Marco.
00:36:06
◼
►
But if you're a really bright engineer and you're really passionate about writing code,
00:36:14
◼
►
where are your options?
00:36:15
◼
►
I mean, you can go to Microsoft, but most people would perceive that as just corporate
00:36:21
◼
►
You can go to Google, which means your entire purpose in life is to sell ads.
00:36:26
◼
►
You can go to Yahoo, which means you're the only bright star in a cloudy sky,
00:36:31
◼
►
which some people might like, but is not my cup of tea.
00:36:34
◼
►
Or you can go to Apple.
00:36:36
◼
►
And at least Apple is devoted to pleasing customers as opposed to telling
00:36:44
◼
►
customers they're out to please them and actually in their eyeballs for
00:36:47
◼
►
advertisements.
00:36:48
◼
►
Does that make sense?
00:36:50
◼
►
Like, I don't see why anyone else would be compelling with the exception, as you
00:36:54
◼
►
guys mentioned of startups, but I don't know, I guess I'm so risk adverse that that doesn't
00:36:59
◼
►
seem that compelling to me either.
00:37:01
◼
►
Well, that's one of the reasons that I think that senior executives stay as well, is because
00:37:04
◼
►
especially if you're a senior executive, like it's the, you know, you want to sell sugar
00:37:08
◼
►
water for the rest of your life or come with me and change the world.
00:37:10
◼
►
Like those executives really feel like they can have the biggest impact on the world by
00:37:17
◼
►
being a regular good old middle manager in Apple, then being a regular good old middle
00:37:23
◼
►
manager at Coca-Cola or GM or Procter & Gamble, because they don't feel like they can go to
00:37:29
◼
►
"Oh, I work for Apple.
00:37:30
◼
►
Yes, I'm a very important person.
00:37:31
◼
►
You know the iPod?
00:37:32
◼
►
You've heard of that?
00:37:33
◼
►
Yeah, that's the company that I work for."
00:37:34
◼
►
You know what I mean?
00:37:35
◼
►
There's all sorts of angles to that, but there really is a chance.
00:37:37
◼
►
And same thing for engineers.
00:37:38
◼
►
To do something that you think will have an impact that used to be Microsoft, that was
00:37:44
◼
►
certainly Google and probably still is Google, because you could say you work for Google,
00:37:47
◼
►
and that like, I don't know, we call it job satisfaction, or feeling like your job is
00:37:51
◼
►
important and can change the world. You're not just toiling away. And I think Apple is
00:37:55
◼
►
just as much a corporate student job as Microsoft or any other place. It's a big corporation.
00:37:59
◼
►
It's like, it is what it is. It's not crazily different than any other large corporation,
00:38:05
◼
►
like say, Valve or something, where it's totally outside the realm of expectations. They have
00:38:08
◼
►
managers and employees and teams, and there may be a couple of things that are different
00:38:12
◼
►
about them. And certainly at the top levels, the company behaves very differently in terms
00:38:15
◼
►
of focus and everything, but to employees, I don't know. I don't think it's that
00:38:23
◼
►
Maybe it's naïve of me, but I feel like Microsoft's purpose in life—maybe up until
00:38:27
◼
►
recently, but Microsoft's purpose in life was to please other companies. And Yahoo's
00:38:33
◼
►
purpose in life is to buy cool things and ruin them. And Google's purpose in life—
00:38:39
◼
►
Google buys cool things and ruins them, too.
00:38:41
◼
►
That's true.
00:38:42
◼
►
And Google's purpose in life is to sell advertisements.
00:38:45
◼
►
And at least Apple's building cool stuff, right?
00:38:50
◼
►
If you're going to choose a corporate stooge job, and I think John, you're right.
00:38:53
◼
►
Apple's more corporate stooge-y than I care to admit.
00:38:56
◼
►
But if you're going to choose a corporate stooge job on the left coast, is Apple not
00:39:01
◼
►
the best option?
00:39:03
◼
►
It also depends on what kind of person you are.
00:39:05
◼
►
Here's the problem we were talking about with Apple and its services.
00:39:09
◼
►
Say you are someone who does something on the server side, data centers, infrastructure
00:39:15
◼
►
type software, you don't want to go work for Apple because Apple has not shown that it
00:39:20
◼
►
values those people or that part of its business.
00:39:23
◼
►
It just wants it to work, doesn't want to hear about it.
00:39:25
◼
►
And the smartest, best server side people are not going to go work.
00:39:29
◼
►
They don't want to work at Apple because they want to be valued.
00:39:31
◼
►
If they go work at Google, they're practically gods.
00:39:34
◼
►
You get to work on GFS version 3 or Spanner or whatever these infrastructure things like
00:39:39
◼
►
Like, those are like serious business.
00:39:42
◼
►
That's the whole company, right?
00:39:44
◼
►
But at Apple, you're just like, we don't want to hear you or know who you are or anything
00:39:49
◼
►
And all we ever hear is that you're screwing up and just make it like, the people who get
00:39:53
◼
►
the glory are either the iPhone interface or I'm designing the next piece of hardware
00:39:56
◼
►
I work on the operating system.
00:39:58
◼
►
Nobody's getting any glory or any fame or any recognition or putting anything in open
00:40:03
◼
►
source or contributing to anything who's working on server-side at Apple.
00:40:07
◼
►
Apple, I think, cannot hire those people.
00:40:09
◼
►
We're talking about like, oh, if you're a client-side programmer,
00:40:13
◼
►
or if you're a designer, yeah.
00:40:15
◼
►
Designers want to go to Apple.
00:40:16
◼
►
Client-side native app people want to go to Apple.
00:40:19
◼
►
But if you're a web developer or server-side person,
00:40:22
◼
►
you don't want to go to Apple, probably.
00:40:24
◼
►
That's not entirely true.
00:40:27
◼
►
I think that's mostly true.
00:40:29
◼
►
But if you happen to be one of the six people on the planet that
00:40:32
◼
►
knows how to do web objects, I think you can--
00:40:35
◼
►
Yeah, it's like COBOL.
00:40:36
◼
►
They're gathering up the COBOL programmers.
00:40:38
◼
►
No, you're right.
00:40:39
◼
►
You're right.
00:40:40
◼
►
But I think that the six people that do WebObjects in the world and an acquaintance of a friend
00:40:47
◼
►
of a friend of a friend does WebObjects and actually lives nearby to where I live, and
00:40:53
◼
►
he works for Apple because, or at least that's my understanding.
00:40:57
◼
►
I could be totally wrong.
00:40:59
◼
►
But my point is if you do one of the things that Apple does that nobody else does, like
00:41:05
◼
►
objects, you can pave your own way.
00:41:08
◼
►
John "Slick" Baum: But I'm saying like, that's why Apple's
00:41:09
◼
►
having trouble hiring the people they need to make their server
00:41:12
◼
►
side stuff better, because hiring a bunch of web objects
00:41:15
◼
►
programmers is not going to help them make their stuff better,
00:41:18
◼
►
right? They want the people who are taking the jobs elsewhere
00:41:20
◼
►
who are going to come up with the next big thing, or at least
00:41:22
◼
►
just bring Apple up to date with like, 10 years ago, tech or I,
00:41:25
◼
►
you know, they're so far behind. And so out in the weeds on this,
00:41:28
◼
►
they just want to get good server side people to do their
00:41:32
◼
►
stuff. And I bet it's not just that maybe they can get the good service-high people. Once the
00:41:37
◼
►
good service-high people get there and they go, the first thing they want to do is, "We've got to
00:41:40
◼
►
get rid of this WebObjects crap. What the hell are you guys doing?" And they'll find out that the
00:41:44
◼
►
culture is like, "No, we can't get rid of the WebObjects. It runs in the iTunes store that sells
00:41:48
◼
►
20 hodgillion songs every three seconds, and you can't break it, and you're not going to
00:41:53
◼
►
rewrite it in something else. Just help us get better, but don't change anything." That type of
00:41:57
◼
►
attitude, that is totally, you know, talk about corporate student jobs, like that's
00:42:02
◼
►
the way it is. I mean, there are realities that have to be dealt with. You can't come
00:42:05
◼
►
in and say, "No, no, no, no, no, like the Apple store, that should not be written that
00:42:09
◼
►
way. You just got to get rid of it and replace it with something else." That's not a big,
00:42:13
◼
►
you know, what's the payoff? So we're going to risk destroying our entire, you know, multi-billion
00:42:18
◼
►
transaction business. From what's the benefit at the end? Oh, that we're not on web. It's
00:42:23
◼
►
all, well, you have to see it. It'll give you a path forward and you'll be able to,
00:42:26
◼
►
like it's so hard to sell those type of projects, right?
00:42:29
◼
►
- Well, that's true. - And so I think
00:42:30
◼
►
those people go there and then realize
00:42:33
◼
►
that they're not gonna be able to change anything
00:42:34
◼
►
and then leave and get a job at Facebook.
00:42:36
◼
►
- And that's true until you have somebody like The Verge
00:42:39
◼
►
writing an article about how crummy iCloud is.
00:42:42
◼
►
- That's not the server-side guy's fault.
00:42:45
◼
►
- Is it not? - No, no.
00:42:47
◼
►
- Well, we'll get to that in a minute.
00:42:48
◼
►
Before that, let me give our sponsor break here.
00:42:50
◼
►
This episode is once again sponsored by Squarespace.
00:42:55
◼
►
Squarespace is just an awesome way to make a website and have it hosted and designed
00:42:59
◼
►
and managed for you.
00:43:00
◼
►
It is fantastic.
00:43:02
◼
►
It's a website hosting platform.
00:43:04
◼
►
You can put up your blog.
00:43:05
◼
►
You can put up a store, a portfolio, a site for your business, a site for your music.
00:43:11
◼
►
Whatever you want to do, you can put it up on Squarespace.
00:43:15
◼
►
Plans start at just $10 a month and really, I mean, it could not be easier.
00:43:19
◼
►
They have a whole bunch of great templates designed by professional designers and if
00:43:24
◼
►
If you want to jump in and customize all the CSS and HTML and JavaScript, you can do all
00:43:29
◼
►
Our site is hosted there, ATP.fm.
00:43:32
◼
►
You can check it out.
00:43:33
◼
►
That's totally a Squarespace site with minimal hacking involved.
00:43:37
◼
►
If you don't want to mess with the hacking, you don't have to.
00:43:40
◼
►
You can just go there and sign up and move stuff around, drag and drop.
00:43:43
◼
►
Everything is hosted.
00:43:44
◼
►
It is just so low needs and awesome.
00:43:48
◼
►
I really can't overstate this enough.
00:43:54
◼
►
website on Squarespace is just so ridiculously easy. It's where I tell everybody in my life
00:43:58
◼
►
who asks me, "Oh, how do I make a site? Where should I host this? Could you help me with
00:44:02
◼
►
this?" I say, "Yes, I can help you. I will tell you to go to Squarespace, and that's
00:44:06
◼
►
it. Go there. That's it." It's like telling people who
00:44:10
◼
►
want tech support, it's like telling them to just get a Mac. Because you know you can give them that directive
00:44:14
◼
►
and they won't come back to you, calling you every five minutes with some problem, and making you fix their computer.
00:44:18
◼
►
Squarespace is that for web hosting and website
00:44:22
◼
►
construction. Trust me, it is awesome. Go check out Squarespace. You can use our
00:44:27
◼
►
coupon code ATP3 for Accidental Tech Podcast in the month of three. That's
00:44:33
◼
►
code ATP3. Use that code at checkout to save 10% and again plans are at $10 a
00:44:39
◼
►
month. You can even sell stuff. You can do commerce. I can't even
00:44:42
◼
►
fit everything they do into one ad break. Believe me, Squarespace is great. You can
00:44:47
◼
►
host any kind of website you want. A beautiful site and you don't have to
00:44:50
◼
►
worry about hosting, you don't have to worry about designing everything from
00:44:54
◼
►
scratch, it's all done for you. It's fantastic. Go to squarespace.com
00:44:58
◼
►
and check it out today. And thanks to Squarespace for supporting us once again.
00:45:02
◼
►
So there's this article on the Verge called "Why
00:45:06
◼
►
Doesn't iCloud Just Work?" and it's getting a lot of attention. And I think
00:45:10
◼
►
this is worth a little bit of discussion here. And there was a great follow-up
00:45:14
◼
►
from Brent Simmons that we'll get to in a little bit. But
00:45:18
◼
►
I mean, what do you think about this article?
00:45:21
◼
►
It basically cites a lot of users and developers
00:45:25
◼
►
basically all saying, we tried to build iCloud sync
00:45:28
◼
►
into our apps, and it just didn't work,
00:45:29
◼
►
and we had to cancel it.
00:45:32
◼
►
The problem I had with it was very few of the developers
00:45:35
◼
►
And I don't blame them, because if it were me,
00:45:37
◼
►
I wouldn't want to be named.
00:45:39
◼
►
I have tremendous respect for-- I
00:45:41
◼
►
think Pasco from Black Pixel was named.
00:45:46
◼
►
I think Justin Williams was named.
00:45:47
◼
►
And I have tremendous respect for those who were named.
00:45:50
◼
►
But I don't think the message was unfair or invalid.
00:45:56
◼
►
Everything I've ever heard from both prominent people whom
00:45:59
◼
►
I follow on Twitter, for example, and even friends
00:46:02
◼
►
whom do this locally, or who do this locally, all of them
00:46:06
◼
►
You said boom too much.
00:46:07
◼
►
Yeah, I know.
00:46:08
◼
►
You saw that feedback, didn't you?
00:46:10
◼
►
Anyway, the people who I know that do this locally,
00:46:13
◼
►
everyone has universally said it's crap.
00:46:16
◼
►
So in the same way that auto layout is either crap or so impossibly difficult to get right
00:46:22
◼
►
that it's effectively crap, it's all crap, I tell you.
00:46:26
◼
►
No, this is much worse than auto layout.
00:46:30
◼
►
It really is.
00:46:31
◼
►
But I mean, so at what point is this wheel squeaky enough for Apple to really fix it?
00:46:35
◼
►
And can they fix it?
00:46:36
◼
►
I know, John, you've talked at length about how you're skeptical whether they can.
00:46:39
◼
►
Well, this is separate issues.
00:46:41
◼
►
That's why I said that the iCloud Core Data thing, and that's specifically what we're
00:46:44
◼
►
talking about here is it's not so much the server side people sort. The server side people
00:46:48
◼
►
have the answer for, yeah, the server side stuff being flaky or whatever. But as far
00:46:54
◼
►
as I can tell from listening to all the same developers and talking to some of them in
00:46:57
◼
►
person and reading all the different articles in their blogs, it's a design problem. It's
00:47:02
◼
►
a high-level, box-level design and also an API design problem. The high-level design
00:47:09
◼
►
is like, is there a way to have 17 different devices with just a bunch of, you know,
00:47:14
◼
►
related objects stored in local databases and get them all to sync together without having,
00:47:19
◼
►
without doing like what Google does, which is like, okay, well, Google has your mail,
00:47:23
◼
►
your email is on their servers, and that is the one source of truth in the entire world.
00:47:28
◼
►
And when you pull it up in your web browser, you're not like synchronizing the state on your
00:47:31
◼
►
web browser for that thing. It's just like, oh, well, I can, there's one central source
00:47:35
◼
►
of truth everywhere and everyone synchronizes with that and all their actions like modified.
00:47:39
◼
►
this is a bunch of local things to do modifications, then they all try to synchronize with each other
00:47:42
◼
►
later, sort of in a peer-to-peer type fashion. And I'm not sure that conceptually and algorithmically
00:47:49
◼
►
they've worked out how that's supposed to work for arbitrary object models. Because with Core Data,
00:47:54
◼
►
you could make up your own object model and make your own relations between things.
00:47:57
◼
►
It's not a fixed schema. It's not schema-less. But they don't know how your application works. So
00:48:06
◼
►
So they're trying to make a general purpose system for any sort of tree of objects that
00:48:12
◼
►
you can modify in any sort of way, and that later go to another thing that has its own
00:48:16
◼
►
tree of objects that's in a different state, modify that one, and then have the two reconcile
00:48:20
◼
►
themselves with each other and have that actually work.
00:48:23
◼
►
Sometimes you don't even know what's supposed to happen.
00:48:26
◼
►
So that's the first problem.
00:48:27
◼
►
The second problem is it looks like the API design that's on top of this conceptual thing
00:48:31
◼
►
doesn't give the developers nice ways to do the things they want, because the problems
00:48:35
◼
►
complicated, like one of the ones they put in the articles. What if someone takes my app,
00:48:39
◼
►
starts doing stuff with it, essentially builds an object model for their data,
00:48:43
◼
►
and then they sign into iCloud? And their iCloud account, they had previously installed this
00:48:48
◼
►
application elsewhere, and they had a bunch of object data from there. How do I reconcile?
00:48:54
◼
►
Do I erase everything that I have and replace it with their iCloud version of this thing? Do I try
00:48:59
◼
►
to merge the two? What if they're not related at all? It is just a nightmarish type problem.
00:49:04
◼
►
And I think conceptually, like, ignore bugs, ignore server availability,
00:49:07
◼
►
ignore service speed, ignore visibility of anything.
00:49:10
◼
►
I just think conceptually, they don't have something that is nailed down
00:49:15
◼
►
that will work 100% of the time.
00:49:16
◼
►
And then layer on top of that, oh, well, you know, there are bugs
00:49:20
◼
►
and there are APIs that there's no hook for me to say,
00:49:23
◼
►
"Hey, tell me when this thing changes."
00:49:25
◼
►
And sometimes it gets corrupted and it gets wedged
00:49:27
◼
►
and you can't tell what's wrong because I have no API to query,
00:49:29
◼
►
is this thing available, is it not available,
00:49:31
◼
►
has new data come in, has new data not come in.
00:49:33
◼
►
Like, it's just failure on top of failure on top of failure, and it's not just one thing.
00:49:37
◼
►
So that's why I think, like, get the best service side people in the world. It's not going to save
00:49:42
◼
►
them from this, because they still have seven other layers of things that have gone wrong with
00:49:45
◼
►
this specifically. And I think the conceptually simpler ones, like the key value storage and
00:49:49
◼
►
document storage, because there's a solid design under there, whether it's like, "Well, last update
00:49:55
◼
►
wins," like in key value, I think key value is less update wins, and something a little more
00:49:58
◼
►
sophisticated for document, it's like a very simple conceptual model, then they can put an
00:50:02
◼
►
an implementation on top of that, which may or may not have a few bugs, but it's okay,
00:50:06
◼
►
and there's enough visibility into it, and you can get stuff done.
00:50:08
◼
►
Like, I mean, we're all developers.
00:50:10
◼
►
You know what it's like when you start programming something, and you didn't think it through
00:50:13
◼
►
conceptually to begin with?
00:50:15
◼
►
There's no amount of typing you can do after that to make it better.
00:50:17
◼
►
You have to just go, "Wait, wait, wait a second.
00:50:19
◼
►
What the hell am I doing here?
00:50:20
◼
►
This is never going to work right.
00:50:21
◼
►
I haven't even thought it through yet.
00:50:23
◼
►
I can't just start blindly typing and putting in weird cases and try to make this work."
00:50:27
◼
►
And that's a situation I think they're in with iCloud Core Data stuff.
00:50:32
◼
►
Yeah, and I think from what I've heard and from what I've seen from other developers,
00:50:35
◼
►
I haven't done much with iCloud. I should say that upfront. The only thing I've done
00:50:38
◼
►
with iCloud was a very basic feature of syncing your position and currently read article in
00:50:44
◼
►
the magazine, which works sometimes.
00:50:46
◼
►
What did you say? Was that key value stuff?
00:50:49
◼
►
Yeah, I just used key value because it's just way easier. Literally, I'm just storing
00:50:54
◼
►
article positions in each article because that's small, and I'm storing, there's
00:50:59
◼
►
that tells me what article you're currently reading. That's it.
00:51:04
◼
►
The main concerns I've heard have been what you said, the core data sync,
00:51:09
◼
►
which is I have this whole database of objects in my app.
00:51:14
◼
►
When iLab was unveiled, I believe Steve Jobs was doing this part of the presentation,
00:51:19
◼
►
he even said, "And it works with the core data.
00:51:24
◼
►
and it just works.
00:51:29
◼
►
I think that got a huge applause because
00:51:30
◼
►
the whole audience was blown away.
00:51:38
◼
►
Because that's a really hard problem.
00:51:38
◼
►
That's amazing.
00:51:40
◼
►
He should have said, "No, not really."
00:51:41
◼
►
Just kidding.
00:51:43
◼
►
And so we were promised that this would work
00:51:45
◼
►
and so a lot of developers relied on that.
00:51:49
◼
►
So the core data sync, that I've always heard
00:51:50
◼
►
has been a complete disaster.
00:51:50
◼
►
But I think-- and the key value storage is fine and everything.
00:51:53
◼
►
Documents-- I don't know a lot of developers who've
00:51:55
◼
►
used the document model, because originally everybody just
00:51:57
◼
►
did either key value or core data if they could.
00:52:01
◼
►
Well, there are things that do documents.
00:52:03
◼
►
And to be unfair to the server side of people,
00:52:07
◼
►
like back in the iOS 5 days, almost nothing worked right.
00:52:10
◼
►
Like, key value is obviously the simplest.
00:52:12
◼
►
And that has mostly-- and document storage mostly worked,
00:52:15
◼
►
but had some kind of annoying bugs and quirks.
00:52:17
◼
►
Even that can be a little bit weird.
00:52:19
◼
►
So all these things were flaky to begin with, but the reason this is coming to a head now
00:52:23
◼
►
is because, all right, these things have had time to stew. iCloud didn't come out three
00:52:28
◼
►
months ago, right? iCloud is not brand spanking new. All these APIs, we gave them the one
00:52:33
◼
►
major version of iOS to mature, the one major version of Mac OS 10 to mature. And now that
00:52:39
◼
►
key value storage and document storage seem to be following the typical path of Apple
00:52:42
◼
►
APIs, and core data is not getting better fast enough.
00:52:48
◼
►
The biggest problem, I have heard that Core Data is
00:52:53
◼
►
the most unreliable part of the iCloud sync stuff,
00:52:57
◼
►
but I think the much bigger problem,
00:53:00
◼
►
which you breezed past a little bit ago,
00:53:02
◼
►
is that everything is tied to the Apple ID
00:53:05
◼
►
that's currently signed in, and that people sign out of
00:53:08
◼
►
Apple IDs and into different Apple IDs on their devices
00:53:11
◼
►
fairly frequently.
00:53:13
◼
►
everyone's not doing it every day,
00:53:14
◼
►
but there's a good number of people who do it regularly.
00:53:17
◼
►
Because-- - And they have APIs
00:53:18
◼
►
for that, they have APIs for it.
00:53:20
◼
►
They're like, oh, and you're gonna keep in mind
00:53:21
◼
►
that when you launch, you may not be in the same Apple ID
00:53:24
◼
►
as when your stuff was made,
00:53:25
◼
►
and you may get this callback
00:53:26
◼
►
that means they changed Apple IDs.
00:53:27
◼
►
And they're aware that this is gonna happen,
00:53:30
◼
►
but they kind of shove it under the carpet of the program
00:53:32
◼
►
and say, oh, and you'll figure out what to do
00:53:34
◼
►
when that happens.
00:53:35
◼
►
Like, what am I supposed to do?
00:53:36
◼
►
In some cases, all the pre-existing data gets deleted,
00:53:40
◼
►
like it was in your local directory.
00:53:42
◼
►
Like, you know, and what if I hadn't synced that
00:53:44
◼
►
and like it's gone now?
00:53:45
◼
►
Like, you don't have, it's like, you know,
00:53:49
◼
►
throwing an exception if you can't, you know,
00:53:50
◼
►
if the disk is full or something.
00:53:51
◼
►
Well, I'll catch that exception.
00:53:53
◼
►
What are you gonna do about it, delete stuff?
00:53:55
◼
►
- Right. (laughs)
00:53:56
◼
►
- Sometimes you can't, there's no sane recovery
00:53:59
◼
►
or there's nothing smart for you to do.
00:54:00
◼
►
That's why I talk about like the conceptually,
00:54:01
◼
►
not like, oh, well we have a callback
00:54:03
◼
►
for when they change things
00:54:04
◼
►
and we'll automatically clean up all the old data
00:54:07
◼
►
and you're ready to go again.
00:54:07
◼
►
I'm like, but wait a second, like from a user perspective,
00:54:10
◼
►
Like, what if you want to do something different?
00:54:12
◼
►
What if you want to tell people that this is happening,
00:54:14
◼
►
that they're going to end up deleting all their local data?
00:54:16
◼
►
And like, I just don't think it's been thought through yet.
00:54:20
◼
►
I mean, and this is all like old data,
00:54:21
◼
►
like with the frustration of the Verge article,
00:54:24
◼
►
it was like, "We talked to Apple, and they don't tell us."
00:54:25
◼
►
Of course they're not going to tell you anything.
00:54:26
◼
►
That's their MO.
00:54:27
◼
►
They're just like total silence,
00:54:28
◼
►
and either at WWDC they're going to come out with like,
00:54:31
◼
►
you know, the API equivalent of the Apology Mouse
00:54:34
◼
►
from Macworld, New York, 2000, you know,
00:54:36
◼
►
where they're, "We're sorry for the puck.
00:54:38
◼
►
"Look under your chair.
00:54:39
◼
►
there's a sane database thinking, you know, like they'll come out.
00:54:43
◼
►
It's kind of, this gives me some hope because MobileMe was a disaster and they had to change
00:54:48
◼
►
the name and you get iCloud. But they have had at least one instance where they had something that
00:54:52
◼
►
was a disaster and they came out with a much better awesome version of it and didn't change
00:54:56
◼
►
the name. And that's FileVault. Where FileVault 1 was just a mess and FileVault 2 kept the same name,
00:55:03
◼
►
but it's totally unrelated other than a name and that it did the same function and is awesome.
00:55:07
◼
►
So, FileVault 2 is awesome, FileVault 1 was terrible.
00:55:09
◼
►
So, if iCloud core data syncing, if this is considered just awful and then something else
00:55:13
◼
►
comes out that's different and they say, "Here's this new thing, just forget about the old
00:55:17
◼
►
thing," they can still call it iCloud, because iCloud is an umbrella term that already covers
00:55:20
◼
►
umpteen different things, and why not just keep changing out the scope?
00:55:25
◼
►
And they have the advantage of not having this user base, like, "Wait, what about all
00:55:29
◼
►
the successful applications built on iCloud and core data syncing?
00:55:31
◼
►
They'll have to rewrite."
00:55:32
◼
►
Oh, there aren't any, don't worry.
00:55:34
◼
►
I think you're right, though.
00:55:39
◼
►
Conceptually, this is a problem.
00:55:42
◼
►
The biggest problem being usually that people who sign in
00:55:48
◼
►
and out of different Apple IDs, what is the app supposed to do about that?
00:55:51
◼
►
I don't think that's the kind of thing that could necessarily be fixed
00:55:54
◼
►
with a revision to the API or a new server-side backend.
00:55:59
◼
►
Remember a year ago, there was a whole debate about the guy whose iPhone alarm went off in the symphony,
00:56:04
◼
►
and it was this whole thing, well, you know,
00:56:06
◼
►
what should the behavior of the alarm be
00:56:09
◼
►
with overwriting the sound switch?
00:56:11
◼
►
And I wrote a big thing back then about it,
00:56:14
◼
►
and my theory was, you know, this is a hard problem
00:56:18
◼
►
because you've told the phone,
00:56:20
◼
►
wake me up at this time no matter what,
00:56:22
◼
►
and you've also told the phone, don't make noise right now,
00:56:25
◼
►
and so you've given it these conflicting directives.
00:56:28
◼
►
- That was the problem with HAL 9000, too.
00:56:31
◼
►
- See, you've given it these conflicting directives,
00:56:33
◼
►
And no matter what choice you make,
00:56:35
◼
►
it's going to anger some portion of the user base that's
00:56:37
◼
►
non-trivial.
00:56:38
◼
►
And so that's kind of a problem with the user at that point.
00:56:41
◼
►
Well, with this, with iCloud syncing,
00:56:45
◼
►
you've made this system where your data is
00:56:50
◼
►
tied to whatever Apple ID is signed in in all your apps.
00:56:54
◼
►
Your data is just tied to that.
00:56:56
◼
►
But a lot of people have different Apple IDs.
00:56:58
◼
►
Some people, like a couple, will share one Apple ID
00:57:01
◼
►
so they don't have to pay for apps twice to be on both of their phones. Some people will
00:57:04
◼
►
have a different Apple ID for being a developer versus being a consumer. There's lots of reasons
00:57:09
◼
►
why people will have different Apple IDs, and Apple does not make it easy to merge them
00:57:15
◼
►
or switch them or anything like that. It's a very common thing.
00:57:20
◼
►
If your app has its own sync platform, then it has some kind of concept of being logged
00:57:26
◼
►
in to that. And so if you change your Apple ID system-wide to go use a certain app or
00:57:33
◼
►
to do a certain thing, and then you launch my note-taking app, whatever, HDCloud Plus,
00:57:39
◼
►
then I don't lose that sync association from your Apple ID because I'm using my own custom
00:57:47
◼
►
sync thing that you've logged into. And if you actually go into my app and want to sync
00:57:53
◼
►
sync with a different thing. You have to go into my app and log out explicitly of that
00:57:57
◼
►
account. And presumably that stuff is all stored server-side, and then you can log in
00:58:01
◼
►
to something else. It's a deliberate user action. Whereas if you're using iCloud syncing,
00:58:05
◼
►
users might not realize, but they probably almost never do
00:58:09
◼
►
realize, that if they log out system-wide of iCloud, then
00:58:13
◼
►
the data in app XYZ is going to be blown away.
00:58:17
◼
►
And the worst part is that that data may be blown away, and that data may never have made it to any other
00:58:21
◼
►
device. It may never have been synchronized, so it's actually gone.
00:58:24
◼
►
And I don't know that the app has any way to tell that.
00:58:27
◼
►
Well, some of these things you could fix with APIs. Say the existing APIs were all completely
00:58:31
◼
►
bug-free, and you got these callbacks, and you were given an opportunity to add new APIs
00:58:37
◼
►
like, "Oh, we're about to change your Apple ID. Maybe they already have this," and you
00:58:39
◼
►
have an opportunity to save this stuff off to the side or whatever. You still end up
00:58:43
◼
►
with situations where like, "What if I do these three changes in this device, do these
00:58:46
◼
►
four changes in that device that are conflicting, these four changes in that device that are
00:58:49
◼
►
conflicting. And they all happen more or less simultaneously. And I turn these two on,
00:58:52
◼
►
then turn those two off, then turn the third one back on, to try to figure out what the state—
00:58:57
◼
►
should I allow modifications to continue? What about when I turn those two back on?
00:59:00
◼
►
Reconciling these all without a single central source of truth like Gmail, where just everyone
00:59:07
◼
►
communicates up to the server and makes modifications there, allowing you to make
00:59:10
◼
►
local modifications and trying to resolve that into a replayable transaction law that results
00:59:16
◼
►
and some sort of consistent thing, you can make something that's provably like it will have a
00:59:21
◼
►
deterministic consistent result. But the odds of that result being what the users expected it to be
00:59:26
◼
►
are probably zero because the users will inevitably issue a series of conflicting
00:59:31
◼
►
instructions. And when the thing's synchronized, no matter what the stuff picks, sometimes it's
00:59:37
◼
►
not going to be what they wanted because they gave conflicting instructions. There is actually no
00:59:41
◼
►
right answer. So that's what I'm saying. The model they're using for core data, arbitrary
00:59:47
◼
►
object graph syncing, even if it's 100% bug-free, is never going to look to users like the magical,
00:59:54
◼
►
"Hey, everything just works." Because they will issue conflicting commands with their actions on
01:00:00
◼
►
their individual devices. And when those devices synchronize, even assuming zero bugs and perfect
01:00:05
◼
►
performance, they're going to be sad that they're going to end up "losing data."
01:00:11
◼
►
Even if you were to say, "No, let me see.
01:00:13
◼
►
You didn't actually lose data because here's how we reconcile things, and you can see these
01:00:16
◼
►
series of conflicting plans can only lead to one thing, and you can't have this and
01:00:19
◼
►
that and have that."
01:00:20
◼
►
And you're like, "Well, but I wanted the other thing.
01:00:21
◼
►
Actually, what I really wanted was a merge of those two."
01:00:24
◼
►
But with me manually picking, it can't know that.
01:00:27
◼
►
So that's never going to make people happy.
01:00:31
◼
►
I'm not sure what the solution there is, except for maybe having...
01:00:36
◼
►
I mean, you can't do what Google does.
01:00:38
◼
►
can't have every single change to your application sending commands up to a server.
01:00:43
◼
►
Google has offline mode in Gmail, too.
01:00:47
◼
►
The reason they work with Gmail, I think, is because they have a defined data model
01:00:50
◼
►
that is not as complicated.
01:00:52
◼
►
And it's an email application with messages and labels and stuff.
01:00:57
◼
►
It's not arbitrarily structured, interrelated data objects in Objective-C that you get to
01:01:03
◼
►
write yourself.
01:01:05
◼
►
And this is a good segue to the Brent Simmons response article.
01:01:08
◼
►
Did you read this yet?
01:01:10
◼
►
It's called "Why Developers Shouldn't Use iCloud Sync, Even If It Worked."
01:01:15
◼
►
I retweeted it.
01:01:17
◼
►
Yeah, I read it as well.
01:01:18
◼
►
And I was going to bring this up as well because—and forgive me for kind of interrupting your tangent—but
01:01:26
◼
►
one of the things that I find very interesting about iCloud is that Aaron and I share the
01:01:31
◼
►
same Apple store ID so we can share the same apps and so on and so forth.
01:01:37
◼
►
We have different iCloud IDs.
01:01:40
◼
►
And thus, if we had, say, a shared grocery list, we can't share a grocery list if we're
01:01:47
◼
►
using iCloud or if that app is using iCloud in the background.
01:01:50
◼
►
And Brent talks a lot about this.
01:01:53
◼
►
iCloud is very personal and not very social.
01:01:56
◼
►
And I hate social because that's about as big a buzzword as "brand."
01:02:01
◼
►
But nonetheless, I feel like there's some amount of truth to that.
01:02:04
◼
►
And Brent brings this up, and I presume Marco, you're about to recap some of the other things
01:02:09
◼
►
But that rang true.
01:02:10
◼
►
I quoted two things.
01:02:11
◼
►
That's one of them.
01:02:13
◼
►
I mean, it's exactly true.
01:02:16
◼
►
And if I were to write…
01:02:17
◼
►
I've thought about writing a very, very simple shared list-keeping app so that Aaron
01:02:24
◼
►
and I can share a grocery list or a packing list or a Home Depot or Lowe's list, but I
01:02:30
◼
►
can't use iCloud for that because we can't share it because we're on different iCloud
01:02:34
◼
►
That's just terrible.
01:02:35
◼
►
What do you use?
01:02:36
◼
►
Do you use Google Docs for that?
01:02:37
◼
►
No, actually we use Wunderlist, which I'm not a tremendous fan of, but it does the job.
01:02:41
◼
►
A lot of people I know use Google Docs for that, and we use Google Calendar to share
01:02:45
◼
►
our calendars.
01:02:46
◼
►
Oh, we do use Google Calendar to share calendars.
01:02:48
◼
►
One of the reasons we do that is because, I mean, I don't think it's been thought of
01:02:53
◼
►
at this kind of deep level, but the reality is that we never worry about Google documents
01:02:58
◼
►
staying in sync.
01:02:59
◼
►
We never worry about Google calendars staying in sync with our various devices, because
01:03:02
◼
►
we always know when we're making changes, we are directly manipulating the state of
01:03:05
◼
►
something on a server somewhere, and it's always in sync.
01:03:10
◼
►
It's never not in sync, because we don't use any offline modes.
01:03:15
◼
►
The downside, of course, is that we can't actually make modifications to our calendar
01:03:19
◼
►
ever offline, but thus far that has not come up.
01:03:22
◼
►
It usually doesn't for most users.
01:03:25
◼
►
That scenario is going to be less and less likely.
01:03:28
◼
►
That conceptual simplicity of how does document sharing with a Google document work, live
01:03:35
◼
►
in real time, always synchronize.
01:03:36
◼
►
That's how it works.
01:03:39
◼
►
And you just don't think about it.
01:03:41
◼
►
That model, it's very difficult to do well and bug-free and fast and all that stuff,
01:03:46
◼
►
but conceptually, it's understandable to people
01:03:49
◼
►
and they come to trust it.
01:03:51
◼
►
Whereas no one, not even developers of the applications,
01:03:54
◼
►
can have any idea how things are working,
01:03:55
◼
►
even with zero bugs.
01:03:56
◼
►
And then like the bugs,
01:03:58
◼
►
there's a couple of things I've read about
01:04:00
◼
►
iCloud Core Data stuff, some of it unpublished as yet.
01:04:03
◼
►
Hopefully it will be published
01:04:05
◼
►
at some point in the future somewhere.
01:04:07
◼
►
The worst part of any of these types of things
01:04:09
◼
►
is when you add on top of all the stuff we talked about,
01:04:12
◼
►
the type of bugs where there's nothing you can do
01:04:15
◼
►
help your user. There's nothing like Apple can do to help your user. Just like things
01:04:20
◼
►
get wedged in a way that even a developer can't be expected to figure out on their own,
01:04:24
◼
►
let alone an individual user. And that's what they were talking about in the Verge article,
01:04:27
◼
►
is like a support time suck. Because sometimes things just get wedged and don't work, and
01:04:32
◼
►
there's no visibility of that. There's not even visibility to the developer unless you
01:04:36
◼
►
can let the developer SSH into your machine and start digging through supposedly hidden
01:04:40
◼
►
directories containing big binary blobs and daemon processes that are hung that are not
01:04:45
◼
►
putting the binary blobs in the right place and just like it's the worst nightmare of
01:04:49
◼
►
trying to debug. At least when you're debugging server-side stuff, at least you have access
01:04:52
◼
►
to the server and you can see what's going on there. This is like the worst of all possible
01:04:56
◼
►
words. It's like every single person literally does have their own little server on their
01:04:59
◼
►
local machine, their own little data store on their machine, and you can't see any of
01:05:03
◼
►
that. And it's talking to Apple servers that you also can't see, all of which have bugs,
01:05:07
◼
►
none of which code you wrote, and you don't even have the source code for it. And good
01:05:10
◼
►
luck debugging that.
01:05:12
◼
►
- That's so true.
01:05:13
◼
►
So Marco, I'm sorry I interrupted you.
01:05:15
◼
►
You were gonna bring up the social aspect
01:05:17
◼
►
and you said you were gonna bring up something else.
01:05:19
◼
►
- Yeah, and yet the other thing is that, you know,
01:05:21
◼
►
Brent says, you know, keep in mind that, you know,
01:05:24
◼
►
iCloud is Apple only.
01:05:25
◼
►
He says, "You may think you'll never want
01:05:27
◼
►
"an Android or browser-based version of your app,
01:05:29
◼
►
"but are you sure, really, really sure?"
01:05:32
◼
►
- Yeah, Marco, are you sure?
01:05:34
◼
►
Sounds familiar.
01:05:36
◼
►
- Well, yeah, and I'm pretty sure about Android.
01:05:38
◼
►
But no, I think this is a very good point that if you're
01:05:45
◼
►
in the iCloud platform business, if your app relies on that,
01:05:49
◼
►
then sure, that's fine if today you only have an iOS platform.
01:05:55
◼
►
But if you really invest heavily in that,
01:05:57
◼
►
you have to be really sure that you're only ever going
01:05:59
◼
►
to have an iOS platform.
01:06:00
◼
►
And I don't think that's a very safe assumption for a lot
01:06:04
◼
►
of things these days.
01:06:05
◼
►
The best part was when he brought up,
01:06:07
◼
►
what about a Mac app that's not sold through the Mac App Store?
01:06:09
◼
►
Because you can't use iCloud there either.
01:06:11
◼
►
They've been forgotten about.
01:06:12
◼
►
They always forget about it.
01:06:13
◼
►
Remember when it was like, oh, well, they're
01:06:14
◼
►
putting iCloud only in the Mac App Store.
01:06:16
◼
►
That'll be like, that's to lure you into the Mac App Store.
01:06:19
◼
►
Now it's like, it's like another repulsor.
01:06:21
◼
►
It's the opposite effect.
01:06:22
◼
►
It's not like saying, well, I really
01:06:25
◼
►
don't want to be in the Mac App Store.
01:06:26
◼
►
But ooh, only the Mac App Store apps
01:06:28
◼
►
get to use this awesome new iCloud API.
01:06:30
◼
►
I guess it is kind of true for key value storage or document
01:06:33
◼
►
But yeah, like it's so incredibly--
01:06:36
◼
►
you choose iCloud, not only are you just choosing Apple's platform, but you're choosing also
01:06:40
◼
►
their sales channels, like irrevocably. Yeah, exactly. And so I think, and you know,
01:06:47
◼
►
obviously on iOS, if you're making an iOS app, you're always stuck in there, and that's
01:06:50
◼
►
fine, but I just think it's unwise to limit yourself unnecessarily. Like, it's one thing
01:06:58
◼
►
to say, "I'm only going to have an iOS app right now," but it's a whole other thing to
01:07:01
◼
►
say I will never have anything but an iOS and Mac App Store app. That's a very, very
01:07:07
◼
►
limiting thing.
01:07:08
◼
►
And Apple can always change this because these are policy decisions. They could say, "Hey,
01:07:11
◼
►
guess what? We have a web API with a JavaScript library. Now you can use iCloud APIs from
01:07:15
◼
►
your web app that you write yourself." That would open up the door.
01:07:17
◼
►
That would change a lot. If Apple ever opened it up to server side or web side interaction,
01:07:23
◼
►
that would open it up tremendously. But I don't think they ever will.
01:07:25
◼
►
They don't understand the web.
01:07:27
◼
►
Why would we ever do that? That makes no sense.
01:07:29
◼
►
Right. There's no immediately obvious benefit to them to do that, and so I don't think they
01:07:34
◼
►
will. I think that would be a big giveaway. They want to lock iCloud down to their devices
01:07:38
◼
►
and their stores, and part of it's just for control, and part of it's so they can make
01:07:43
◼
►
sure that nobody goes crazy and abuses it through the APIs and everything. But whatever
01:07:48
◼
►
the reason, I don't think that's ever going to happen.
01:07:52
◼
►
Brent also points out that for most apps' needs for syncing, it really isn't that hard
01:07:58
◼
►
to write your own server and to run your own server, and it really isn't that expensive,
01:08:02
◼
►
and it really isn't that complicated.
01:08:05
◼
►
You can design server-side stuff to make your life really easy in two key ways.
01:08:11
◼
►
You can make it really cheap to run and scale and low needs, and you can design the app
01:08:16
◼
►
so that if the server is not reachable, the app is still useful.
01:08:22
◼
►
And obviously depending on what you're doing with the server, how useful it can be will
01:08:26
◼
►
vary, but like with Instapaper it was really easy for me to do this because
01:08:30
◼
►
Instapaper is made to be used offline. So if the server
01:08:34
◼
►
is not reachable, the app thinks it's offline, it still works.
01:08:38
◼
►
It works just fine, like you just can't load new stuff into it, but it still works.
01:08:42
◼
►
Everything queues up and once it gets a connection again it works. So like, if Instapaper's
01:08:46
◼
►
server goes down for an hour, which is a pretty major downtime for
01:08:50
◼
►
a web thing, I'll hear about it from a few people.
01:08:54
◼
►
but not nearly as many as you would think because everyone else is still just using
01:09:00
◼
►
the app just fine.
01:09:01
◼
►
There is a big advantage to these types of—what Apple wants to happen with these services
01:09:05
◼
►
does happen a lot.
01:09:07
◼
►
It's easy for you to talk about it because you have server-side development experience,
01:09:10
◼
►
but what if you're just a client-side guy?
01:09:12
◼
►
Maybe you just want someone to take care of that other stuff for you.
01:09:16
◼
►
Those types of APIs allow developers who would otherwise not be able to make these types
01:09:22
◼
►
of products to make them or would otherwise need more people.
01:09:26
◼
►
Some examples might be, "Okay, so Lauren Brick, your genius programmer, great app designer,
01:09:30
◼
►
but he used GameSetter.
01:09:31
◼
►
Well, I guess he doesn't want to write that crap."
01:09:32
◼
►
And if it works, kind of sort of didn't work when he launched his game.
01:09:35
◼
►
But if it eventually sort of works, he doesn't have to do matchmaking.
01:09:39
◼
►
He doesn't have to do accounts and stuff like that.
01:09:40
◼
►
He gets to just write the game part.
01:09:43
◼
►
You with Newsstand.
01:09:44
◼
►
I mean, that's mostly monetary things because you want to get the money and everything.
01:09:47
◼
►
It's not like you couldn't have done that.
01:09:48
◼
►
But hey, you can make an application that does subscriptions, that does something that
01:09:53
◼
►
a native application wouldn't do by using Apple services.
01:09:56
◼
►
And then you went and did the web thing yourself anyway, because of course you can.
01:09:59
◼
►
But that's just an extension of the App Store model, where maybe you don't want to run a
01:10:06
◼
►
You don't want to figure out how to sell things to people and give them the downloads and
01:10:08
◼
►
host and do all this stuff.
01:10:10
◼
►
We'll take over that for you.
01:10:11
◼
►
And Apple wants to take over all those things and provide these infrastructural services,
01:10:16
◼
►
And that's all great when the services actually work and are things that people want done.
01:10:24
◼
►
And I think iCloud is all those things except for the working part and maybe right up to
01:10:30
◼
►
the part where if you were designing your own service to synchronize your stuff, you
01:10:35
◼
►
might design something like key value storage, and you might design something like iCloud's
01:10:39
◼
►
documents in the clouds, and you might design something like Game Center or whatever.
01:10:43
◼
►
Those are functions you can imagine doing.
01:10:44
◼
►
would you undertake on your own to say, you know what?
01:10:47
◼
►
I'm going to provide arbitrary server-side synchronization
01:10:50
◼
►
of core data across multiple devices?
01:10:52
◼
►
I don't think an individual developer would bite that off.
01:10:56
◼
►
They would think of something simpler like the simple--
01:10:58
◼
►
what is that one?
01:10:59
◼
►
The simple node server-side API?
01:11:00
◼
►
Like when third parties created these services,
01:11:03
◼
►
they've looked more like--
01:11:04
◼
►
traditional-- more like modern web services
01:11:08
◼
►
and less like what iCloud core data thing--
01:11:13
◼
►
because they can't do that. They can't have little demons running on everyone's
01:11:16
◼
►
machines, synchronizing. They can't make a demon process on iOS that does all this stuff.
01:11:20
◼
►
They would be forced to do something that is listening on HTTP endpoint that their
01:11:25
◼
►
applications talk to. You know what I mean? They wouldn't be able to do all this crazy stuff that
01:11:28
◼
►
Apple did, and I think Apple just bit off more than it could chew in this case.
01:11:32
◼
►
I mean, this is kind of a problem, as we discussed, I think, two episodes ago,
01:11:37
◼
►
or last episode about iCloud's model to the users, that it is the certain simplification
01:11:44
◼
►
of hiding the file system and doing these things, but it's so limited. I mean, this
01:11:47
◼
►
is kind of like, it sounds like Apple bit off more than they can chew with a lot of
01:11:53
◼
►
parts of iCloud, not just like, "Oh, it doesn't work reliably," but like, "This was a bad
01:11:59
◼
►
Well, I don't know if it was a bad idea, but I just don't know if it's been executed well.
01:12:06
◼
►
And when, John, when you were talking a minute ago,
01:12:09
◼
►
I feel to some degree you're describing me
01:12:11
◼
►
in that I have iOS experience
01:12:13
◼
►
and I have server-side experience,
01:12:15
◼
►
but the thing is I have server-side experience
01:12:17
◼
►
in Microsoft technologies, which are expensive.
01:12:21
◼
►
And if I was to write, say, a grocery shopping list
01:12:25
◼
►
that I could share between multiple people,
01:12:27
◼
►
like Aaron and myself, what are my options?
01:12:30
◼
►
I can't use iCloud because that's tied
01:12:32
◼
►
to a single iCloud ID, so what am I gonna do?
01:12:36
◼
►
I could do like Perl and be like John, or I could do PHP and be like Marco. I could
01:12:41
◼
►
do Python and be terrible according to you two. I could do Ruby, which is also probably
01:12:47
◼
►
-- well, you know what I mean.
01:12:48
◼
►
I don't know Python, but if I was going to learn something else for the web backend stuff,
01:12:52
◼
►
I would learn Python.
01:12:54
◼
►
You can email Marco. But the point I'm driving at is, what do I do? And interestingly, and
01:12:58
◼
►
I think Brent talked about this in a different post, maybe I would go to Azure, and maybe
01:13:03
◼
►
Maybe I would do, and that doesn't necessitate using C#,
01:13:07
◼
►
it doesn't necessitate using .NET,
01:13:09
◼
►
but from what I've gathered,
01:13:10
◼
►
having never played with this,
01:13:12
◼
►
Azure's a pretty decent way to get some sort of quick
01:13:17
◼
►
server side or cloud database without too much effort
01:13:21
◼
►
with an iOS API.
01:13:23
◼
►
And that's just not a place,
01:13:25
◼
►
I don't think that's a position Apple
01:13:26
◼
►
wants themselves to be in.
01:13:28
◼
►
Maybe they don't care, I don't know,
01:13:29
◼
►
but that just doesn't seem right.
01:13:30
◼
►
- You know what you might end up doing,
01:13:31
◼
►
and I've seen people do,
01:13:32
◼
►
This is a low-tech solution to client-side people who don't want to write a big server-side
01:13:37
◼
►
service, but they know they need one, and they're like, "All right, I'll just buy for
01:13:39
◼
►
the grocery list."
01:13:40
◼
►
Look, it's not rocket science.
01:13:41
◼
►
Oh, don't tell me Dropbox.
01:13:42
◼
►
Don't tell me Dropbox.
01:13:43
◼
►
Not Dropbox, but something like, what if I just shove a JSON file up onto S3 and have
01:13:48
◼
►
the thing pull it down and reconcile it?
01:13:51
◼
►
Because it's just a grocery list, how many possible things could go wrong?
01:13:54
◼
►
Worst case scenario, I get the superset of a bunch of changes and there's some extra
01:13:57
◼
►
items that you don't want.
01:13:58
◼
►
I can de-duplicate.
01:14:00
◼
►
When you have a confined problem domain, you can get away with just the most ridiculous,
01:14:05
◼
►
simple possible solution.
01:14:06
◼
►
If you're like, "S3 would be enough.
01:14:08
◼
►
All I need is something other, something not my device, something not that other device,
01:14:12
◼
►
but something in this third place that's always available.
01:14:15
◼
►
And I don't want to make it always available, and that's annoying, and that's really all
01:14:18
◼
►
I need is just a bucket that's shared that's always available, and I'll do everything else
01:14:22
◼
►
myself in client-side code because I can because it's a grocery list app."
01:14:25
◼
►
That's what people end up doing.
01:14:27
◼
►
That's annoying.
01:14:28
◼
►
They would like to not be able to do that.
01:14:29
◼
►
If their needs are satisfied by key value storage, you're like, "Oh, well, everyone's
01:14:33
◼
►
got iCloud, and I know everyone's going to have an Apple ID, and I'm storing, like Mark
01:14:37
◼
►
was saying, your last read position, and it's really easy to reconcile."
01:14:42
◼
►
That's not critical.
01:14:45
◼
►
It's two bits of data.
01:14:46
◼
►
If I don't have it, I can throw it away, and it's no big deal.
01:14:49
◼
►
Or worst case, I can just pick the later one, the zoom that you read from top to bottom.
01:14:54
◼
►
Not having to do that and saying, "I can just use iCloud key value storage," that just makes
01:14:58
◼
►
people smile, like, "Hey, wait, I don't have to do any of that crap. I just want to store
01:15:02
◼
►
a number somewhere, and iCloud key value storage can do that for me." And it's like plists,
01:15:07
◼
►
where when Mac OS X came out and had these property lists, people were using them for
01:15:10
◼
►
everything. But it's like, "Oh, well, I didn't need to design some stupid, like, I'm going
01:15:14
◼
►
to design a C struct, and then I'm going to serialize it with an NS encoder and this kind
01:15:17
◼
►
of thing." No, I just need the store, like, lists of values. Like, I'll just use a plist.
01:15:21
◼
►
And plist mainly goes a little bit crazy, and then you end up trying to make a plist
01:15:26
◼
►
into your entire database, and that's bad. But if you give developers a little tiny bit of
01:15:32
◼
►
cool infrastructure, that makes them happy. But if you keep ramping that up, you say,
01:15:37
◼
►
"You know, we're basically going to do everything for you, and don't worry, it'll work." And it
01:15:41
◼
►
doesn't, then people scale back and say, "You know what? Maybe I should go back to uploading JSON
01:15:45
◼
►
files to S3, because that, at least, I can have some guarantees about it working in a predictable
01:15:51
◼
►
way." Right. It's predictable. It's mostly reliable. And to some degree, it's a known
01:15:56
◼
►
quantity. I completely agree with you.
01:15:58
◼
►
Yeah, and again, if you have simple needs,
01:16:02
◼
►
you can write your own sync stuff, and granted, not everyone's going to get their sync
01:16:06
◼
►
stuff correct, but again, if it's a grocery list and you have to sync stuff,
01:16:10
◼
►
what's the worst that can happen? It's not that bad. And if it's not correct, you can fix it, because you have
01:16:14
◼
►
all the source code and you can throw both ends. Exactly. That's the worst part.
01:16:18
◼
►
If it's going wrong and the demons running on your local Mac are
01:16:22
◼
►
are wedged and are not synchronizing or notifying your applications. You don't control that
01:16:26
◼
►
code. You're not making it run. You don't have the source. You can file bugs into the
01:16:31
◼
►
black hole and just wait patiently for the next major version, but in the meantime, your
01:16:35
◼
►
customers just want their stuff to sync.
01:16:38
◼
►
As Brent pointed out, too—this is such a good article and it's so short, you should
01:16:41
◼
►
read it before we just quote the whole thing—doing the server-side stuff has really gotten so
01:16:48
◼
►
easy in the last five years as so many tools have come out to make it really easy, really
01:16:55
◼
►
cheap. You have to write so little custom code these days. There are great frameworks,
01:17:00
◼
►
there are great services, there are companies that will automatically scale up and down
01:17:05
◼
►
everything. And granted, there are a lot of things that are more complex that will require
01:17:10
◼
►
custom work, but for the most part, for simple needs, for most app developers' needs, you
01:17:15
◼
►
don't need anything bigger than a Linode instance or paying by the cycle on something like Heroku
01:17:22
◼
►
or Azure or S3 or EC2 and the things that use EC2. For most developers' needs, one virtual
01:17:32
◼
►
server somewhere will cover it. And you can write something in whatever framework you
01:17:37
◼
►
find that is understandable to you. And as Brent says, I think this is a very good point,
01:17:43
◼
►
I'm just going to read this whole article. As Brent says, if you could learn Cocoa, you
01:17:47
◼
►
could learn this stuff. Cocoa is so obtuse in so many ways. Web programming, to somebody
01:17:53
◼
►
who does iOS programming, web programming will seem easy by comparison.
01:17:57
◼
►
I just basically don't have to deal with pointers and types. I would rephrase that part of his
01:18:03
◼
►
article. It's not so much that it's so much easier than it was before, or at least rephrase
01:18:07
◼
►
your summary of it. It's that it used to be that for a given amount of effort, you could get a
01:18:14
◼
►
certain result. Now if you put in that same amount of effort, your result will be so much better.
01:18:18
◼
►
The base level has risen so much. It's still going to be complicated. There's lots of stuff to learn
01:18:23
◼
►
and stuff like that. But previously, if you put in a week into getting your server-side stuff,
01:18:28
◼
►
you'd end up with something that looks like someone who had been doing server-side development
01:18:32
◼
►
for a week. But now you have such an incredible leg up with all of these infrastructure and these
01:18:36
◼
►
frameworks, if you put in the week, your end result will be you're standing on the shoulders
01:18:40
◼
►
of giants who've created all this infrastructure for you. You're not staring at a blinking cursor
01:18:45
◼
►
on a bare Linux machine and saying, "Okay, now I guess I start writing a CGI script or something?"
01:18:52
◼
►
You have such a leg up. So it is really complicated, and that's why I think people stay away.
01:18:57
◼
►
It's like anything else. If you are a server-side developer, you take a lot of stuff for granted.
01:19:02
◼
►
But a lot of client-side people are starting from a base of knowledge that doesn't really help them
01:19:05
◼
►
them that much. But if they can follow a tutorial to get some sort of Rails thing up, or even
01:19:10
◼
►
like Node and just to get some sort of Node instance up and, you know, put a little tiny
01:19:14
◼
►
snippet of code like echo some string back, and you can run that instance on a virtual
01:19:18
◼
►
machine that you could scale up, you are so far ahead of where expert server-side developers
01:19:24
◼
►
were in 1993 with your stupid little one-line echo node program, right? Like the things
01:19:29
◼
►
that thing can do, the scalability, performance, and reliability of that are just worlds beyond
01:19:35
◼
►
expert level knowledge from two decades ago. So that's what I think.
01:19:37
◼
►
Even one decade ago. That's where I think, you know, that's what
01:19:40
◼
►
he's getting at is like, even though you don't know anything about this, you will be able
01:19:44
◼
►
to get something up that has good performance, scalability, and reliability, even if you
01:19:49
◼
►
have almost no idea what you're doing, if you just put in a little bit of time. And
01:19:52
◼
►
that was not true many, many years ago. And also remains not true if you were on to have
01:19:57
◼
►
500 million users, which is why Apple's screwed. But you're not going to have 500 million users,
01:20:02
◼
►
And if you do, presumably you can hire some smart people to figure it out for you.
01:20:06
◼
►
Instapaper runs on about 10 servers because it does a lot of stuff for a lot of people.
01:20:10
◼
►
But the magazine runs on the cheapest
01:20:14
◼
►
VPS at Linode. It's $20 a month. The entire service runs
01:20:18
◼
►
on that. My blog, market.org, it serves a good number of page
01:20:22
◼
►
hits these days. That runs on the cheapest VPS at
01:20:26
◼
►
Linode. Again, because it's
01:20:30
◼
►
The stuff that we can get today is so advanced,
01:20:32
◼
►
and everything is so fast.
01:20:34
◼
►
Hardware is so cheap to rent, and bandwidth is so cheap.
01:20:38
◼
►
I've never bought bandwidth separately
01:20:40
◼
►
from any of these things.
01:20:41
◼
►
Like with Instapaper, all the bandwidth is pooled
01:20:42
◼
►
from all the servers, and I've never exceeded that pool.
01:20:45
◼
►
Like just whatever each server comes with,
01:20:47
◼
►
it's all pooled together,
01:20:48
◼
►
and I've never needed to buy more than that.
01:20:51
◼
►
And that's a pretty bandwidth-intensive app.
01:20:53
◼
►
Like, you can do so much now with so little money,
01:20:58
◼
►
and so relatively few servers.
01:21:01
◼
►
And yeah, if you're using one of these crazy hosted things,
01:21:03
◼
►
you don't even have to deal with the individual servers directly.
01:21:07
◼
►
You can just do so much.
01:21:09
◼
►
And the fact is, most iPhone app developers
01:21:12
◼
►
aren't going to need to do some crazy, ridiculous, complex thing
01:21:16
◼
►
during the life of their app.
01:21:17
◼
►
You should finish quoting, but I assume going by memory here,
01:21:20
◼
►
because I don't have the article in front of me.
01:21:21
◼
►
The very bottom part about how-- or maybe this
01:21:24
◼
►
was in someone else's commentary-- Apple's thing
01:21:26
◼
►
about how they want to own and control
01:21:27
◼
►
the important parts of their business.
01:21:29
◼
►
Read that part.
01:21:30
◼
►
Well, anyway, I can't find the exact part.
01:21:34
◼
►
But he said Tim Wood of the Omni Group
01:21:39
◼
►
tweeted the phrase, "own the wheel."
01:21:42
◼
►
Here's the thing.
01:21:44
◼
►
This is Brent's words here.
01:21:45
◼
►
Here's the thing.
01:21:46
◼
►
Half the mobile revolution is about designing and building
01:21:49
◼
►
apps for smartphones and tablets.
01:21:50
◼
►
The other half is about writing the web services
01:21:53
◼
►
that power those apps.
01:21:54
◼
►
How comfortable are you with outsourcing half of your app
01:21:57
◼
►
to another company.
01:21:58
◼
►
Yeah, it was Gruber's commentary that I was remembering.
01:22:01
◼
►
It said, "Don't take Brent's word for it.
01:22:03
◼
►
Consider Tim Cook's doctrine.
01:22:04
◼
►
We believe that we need to own and control the primary technologies behind the products
01:22:09
◼
►
I mean, it's just, if you want to make a great product, you want to have certain things under
01:22:12
◼
►
your control, obviously you don't control everything.
01:22:14
◼
►
You don't control the App Store, you don't control Cocoa, you don't even have the source
01:22:18
◼
►
code for that in most cases, unless it's something that's part of Darwin.
01:22:22
◼
►
So many things are out of your control.
01:22:25
◼
►
And this is what's frustrating, I think, good developers with iCloud is they've accepted
01:22:31
◼
►
the things that are outside their control, the platform, the store, the language, the
01:22:35
◼
►
API, the compiler, lots of things are outside their control.
01:22:39
◼
►
But they always felt like I can wrangle the things that are within my control to make
01:22:43
◼
►
sure my customers have a good experience.
01:22:44
◼
►
And this iCloud thing is like they're between a rock and a hard place because the customers
01:22:47
◼
►
think they want it and are demanding it.
01:22:49
◼
►
They want the sync features and they specifically ask for iCloud by name because it has good
01:22:52
◼
►
PR, and they can't make it work.
01:22:56
◼
►
And that's an uncomfortable situation to be in.
01:22:58
◼
►
Brent didn't have that problem with Glassboard because they controlled that side of it, and
01:23:02
◼
►
it was on them to make it work, and they could make it work, because they controlled everything
01:23:06
◼
►
from top to bottom.
01:23:07
◼
►
They never were going to hit a barrier where they're like, "This isn't behaving in a deterministic
01:23:12
◼
►
It's buggy, and I can't fix the bugs."
01:23:13
◼
►
That was never going to be—it's a blocker, right?
01:23:16
◼
►
They never had those blockers.
01:23:17
◼
►
If it wasn't working right, they would tweak their server-side software.
01:23:19
◼
►
And if you really want to control your destiny to the extent possible, like Brent's article
01:23:26
◼
►
said, why would you give up control over half of your application unless—giving up control
01:23:32
◼
►
is one thing.
01:23:33
◼
►
The other thing is not having to worry about those details.
01:23:35
◼
►
So Lauren gave up control of half of his application to Game Center.
01:23:39
◼
►
If that had not worked out for him, that would have been very bad.
01:23:43
◼
►
And actually, he had a lot of problems with that.
01:23:45
◼
►
I know, but eventually it sorted itself out.
01:23:48
◼
►
I mean, there were scaling problems because no one used Gave Center before letterpress,
01:23:51
◼
►
and it's buggy and weird, but he didn't want to write that stuff himself because that's
01:23:55
◼
►
not what interested him.
01:23:56
◼
►
I think he almost had to.
01:24:00
◼
►
That's the tradeoff he made there.
01:24:02
◼
►
Maybe he regrets it.
01:24:03
◼
►
Maybe the second time he would do the server-side part himself.
01:24:05
◼
►
But that uncomfortable situation where you're giving up control in exchange for, you hope,
01:24:12
◼
►
not having to do that, and if it comes out well, you're like, "Hey, look at all that
01:24:16
◼
►
work I saved.
01:24:17
◼
►
And you know, I got featured on the App Store because I'm using Game Center.
01:24:19
◼
►
And there's other fringe benefits to using, you know, Apple's APIs, right?
01:24:23
◼
►
If it doesn't work out and you can't ship your application,
01:24:25
◼
►
you're rewriting it for the ninth time, then you're sad.
01:24:28
◼
►
And you're like, "Oh, I'm never going to let that happen again.
01:24:30
◼
►
From now on, I'm writing everything from scratch,
01:24:32
◼
►
like Lauren Brikter, who doesn't use UIKit."
01:24:36
◼
►
So to wrap this up, what's going to happen in June
01:24:40
◼
►
or whenever WWDC is with regard specifically to iCloud?
01:24:44
◼
►
I mean, is they going to have a new API?
01:24:46
◼
►
Are they going to say, oh man, everything is finally fixed?
01:24:49
◼
►
And if so, is it going to be real,
01:24:50
◼
►
or is it going to be a bunch of baloney?
01:24:52
◼
►
I mean, what do you guys think?
01:24:54
◼
►
WWDC is all about the new file system, Casey.
01:24:56
◼
►
I don't know if you--
01:24:58
◼
►
And don't forget that I watch on the smart TV.
01:25:01
◼
►
John Saracuz will be so happy.
01:25:03
◼
►
No, but seriously, I mean, do you guys
01:25:05
◼
►
think that they're going to make a big push for iCloud?
01:25:07
◼
►
Are they going to be repentant for it?
01:25:09
◼
►
Are they going to say, oh no, really, for sure?
01:25:13
◼
►
I promise this time it's fixed.
01:25:15
◼
►
I don't know if they have enough time has elapsed for them to be able to, you know,
01:25:20
◼
►
they know they need to do something. I don't know if enough time has passed for them to have
01:25:24
◼
►
actually done it. I don't know if they can come to W3C and say, "Here is the thing, and we have
01:25:29
◼
►
a solution. Is the solution fixing it? Is the solution scrapping and replacing it? Is the
01:25:33
◼
►
solution something in between?" I don't think that enough time has passed for that to happen.
01:25:38
◼
►
All I think they can do when they show up there is hopefully engage the developers,
01:25:43
◼
►
acknowledge the issues and have something for them that improves their lives in some way,
01:25:48
◼
►
while also acknowledging that, because I don't think they're going to come out. It's not like
01:25:51
◼
►
a FileVault 2 thing. We're going to say, "FileVault 1, forget that existed. There's another thing.
01:25:56
◼
►
It's awesome. It works great. You will forget FileVault 1 ever existed." And people go, "Oh,
01:26:01
◼
►
wow. That is awesome. All right." And then they just forget. I don't think there's been enough
01:26:04
◼
►
time that's passed for that because maybe I'm pessimistic, but what was in the Verge story?
01:26:11
◼
►
I think they said they had like four people working on the iCloud stuff or whatever or something
01:26:14
◼
►
You know Apple has smaller teams than anyone thinks they have right? Yeah, and I don't I know how much work
01:26:20
◼
►
Handful of developers can get done in like a year's time and I just I'm not optimistic
01:26:25
◼
►
But them coming down from the mountain with new stone tablets and saying we have solved your problems, you know
01:26:30
◼
►
Not because they don't want to or negligent but just because not enough time has passed. I
01:26:35
◼
►
don't think that
01:26:39
◼
►
My theory that I said earlier about iCloud is that I think there's problems in both the
01:26:44
◼
►
API implementations and problems with just the user conceptual model of iCloud and of
01:26:51
◼
►
where your data is in your apps, how it's tied to the Apple ID that's signed into the
01:26:56
◼
►
I think there are such conceptual problems there that I'm not expecting iCloud as it
01:27:02
◼
►
is named today to ever be fixed.
01:27:05
◼
►
I'm expecting it to happen more like MobileMe, which is some next generation thing will come
01:27:13
◼
►
out in a few years to replace or upgrade iCloud, and it will work differently for the users,
01:27:19
◼
►
not just the developers.
01:27:20
◼
►
I think it'll have to be conceptually different for the user.
01:27:24
◼
►
But won't they keep the name, though?
01:27:26
◼
►
I don't think they'll do the name change.
01:27:27
◼
►
That's what I was talking about, FileVault.
01:27:30
◼
►
Because it already is an umbrella term, and there are parts of iCloud that work okay.
01:27:35
◼
►
don't have to scrap key value storage. You just don't. It's fine. It's all under the umbrella of
01:27:38
◼
►
iCloud. So when you say that iCloud is conceptually... There is no such thing as iCloud. iCloud core
01:27:43
◼
►
data stuff is conceptually bankrupt and needs to perhaps be replaced or modified. And iCloud's
01:27:48
◼
►
conception of, "Hey, when you sign out, we dump all your data that was linked to it," that whole
01:27:52
◼
►
connection between your Apple ID, your iCloud thing, and the data and applications, that can
01:27:57
◼
►
be revised. And all of that, I think, can happen over the course of several years without ever
01:28:01
◼
►
having to have a Mobile Meet iCloud type transition. I think they can keep the name, because it
01:28:06
◼
►
is an umbrella term that really has no relation to—like, why is key value storage and documents
01:28:15
◼
►
in the cloud all under the umbrella of iCloud? No reason. They don't share the same servers.
01:28:19
◼
►
The back ends might be written by entirely different teams with entirely different code.
01:28:23
◼
►
The front end APIs, also entirely different teams. They could be entirely different languages
01:28:26
◼
►
for all we knew. They're all Objective-C, but one could be core found.
01:28:30
◼
►
They're as unrelated as anything else, except for the fact that they're both network services
01:28:34
◼
►
and marketing decided they're going to be under the umbrella of iCloud.
01:28:37
◼
►
So I think Apple has plenty of runway and room to totally change everything about iCloud
01:28:42
◼
►
while still calling it iCloud and just making it look like, "Oh, we're making it better."
01:28:46
◼
►
Yeah, but I think, though, they're going to have to do something that's changing the way
01:28:54
◼
►
way, the whole portion of iCloud that is app storage, like app storing their own data and
01:29:01
◼
►
having that sync somehow.
01:29:02
◼
►
That, I think, is—
01:29:03
◼
►
Well, they'll fix that when they do multiple uses in iOS.
01:29:05
◼
►
Right, yeah, right.
01:29:07
◼
►
I just think that that whole concept, as we talked about in another episode about the
01:29:12
◼
►
file storage thing not necessarily making a lot of sense or being too simple and not
01:29:18
◼
►
really addressing the problem domain well enough, I think the entire iCloud data model
01:29:22
◼
►
for apps has that problem. The entire iCloud data model is too simple, too limited, doesn't
01:29:28
◼
►
really address the real-life problems and usage well enough for a lot of apps.
01:29:32
◼
►
I think we're not going to see that get fixed with the product that we currently know today
01:29:37
◼
►
as iCloud or this section of it. What we will probably instead see is people will start
01:29:42
◼
►
following Brent's instructions of, "We'll just see fewer and fewer apps relying on iCloud,
01:29:47
◼
►
especially from big developers who know better and have the resources to not use it.
01:29:53
◼
►
I tend to agree.
01:29:55
◼
►
And I feel like, just like the both of you said, key value storage, I think that'll
01:30:02
◼
►
I think documents in iCloud will probably carry on.
01:30:05
◼
►
I feel like core data sync in iCloud will go the way of garbage collection.
01:30:11
◼
►
And no matter how you look at it, the forecast for iCloud, it's cloudy.
01:30:16
◼
►
we have to end the show now.
01:30:18
◼
►
- I did that just for you guys.
01:30:18
◼
►
- We are not allowed to keep talking after that.
01:30:23
◼
►
- I knew that was terrible, but I--
01:30:25
◼
►
- I was gonna go eyes on one before,
01:30:27
◼
►
but I restrained myself.
01:30:29
◼
►
- See, that's 'cause you're a professional.
01:30:31
◼
►
- Yeah, we should, we'll end with this awesome song
01:30:33
◼
►
by Jonathan Mann.
01:30:35
◼
►
- How awesome was that?
01:30:36
◼
►
That was seriously fantastic.
01:30:38
◼
►
(upbeat music)
01:30:41
◼
►
♪ Now the show is over ♪
01:30:43
◼
►
♪ They didn't even mean to begin ♪
01:30:46
◼
►
'Cause it was accidental (accidental)
01:30:48
◼
►
Oh, it was accidental (accidental)
01:30:51
◼
►
John didn't do any research
01:30:53
◼
►
Marco and Casey wouldn't let him
01:30:56
◼
►
'Cause it was accidental (accidental)
01:30:59
◼
►
Oh, it was accidental (accidental)
01:31:02
◼
►
And you can find the show notes at ATP.fm
01:31:07
◼
►
And if you're into Twitter
01:31:10
◼
►
You can follow them
01:31:12
◼
►
at c-a-s-e-y-l-i-s-s so that's k-c-l-i-s-s-m-a-r-c-o-a-r-m-n-t-m-a-r-c-o-r-m-n-s-i-r-a-c-u-s-a-c-r-a-c-u-s-a
01:31:28
◼
►
it's accidental, accidental they didn't mean to
01:31:33
◼
►
accidental, accidental tech podcast so long
01:31:41
◼
►
Did you see his follow-up song? I like his second version even better.
01:31:44
◼
►
I didn't see that. He made a second version?
01:31:45
◼
►
Yes, he said, I said the song he made was nice, but it didn't like thematically, whatever.
01:31:52
◼
►
It didn't seem right for the show. And he said, "Well, what would sound right for the show?"
01:31:58
◼
►
I said, "I don't know, bleeps and boops or something?"
01:32:00
◼
►
And so he made one with bleeps and boops, which is also awesome.
01:32:03
◼
►
[MUSIC PLAYING]
01:32:08
◼
►
Thus concludes another thrilling episode
01:32:12
◼
►
The accidental tech podcast is done for the day
01:32:18
◼
►
But have no fear, 'cause they'll return again next week
01:32:23
◼
►
They've tried before, but they can't seem to stay away
01:32:28
◼
►
(upbeat music)
01:32:30
◼
►
- That's awesome.
01:32:43
◼
►
- You'll have to send that around,
01:32:44
◼
►
'cause I did not see that, I had no idea.
01:32:47
◼
►
- Well, I will have to paste one of them in,
01:32:48
◼
►
and we'll give him a good link in the show notes.
01:32:50
◼
►
And thanks to Jonathan Mann,
01:32:52
◼
►
the Song of Day guy on YouTube, for doing this.
01:32:57
◼
►
so i thought i'd law i lost my job when i saw that in the sense that i cannot
01:33:01
◼
►
believe that i'd really been a good way the good way
01:33:04
◼
►
in that i can't believe that somebody on the internet would care enough about
01:33:09
◼
►
a city it's particularly me
01:33:11
◼
►
to to include me slash us in a song that that i i was beside myself excited that
01:33:16
◼
►
we have to make a seat
01:33:17
◼
►
i'm good enough
01:33:19
◼
►
uh... and got started people are
01:33:23
◼
►
people like me
01:33:40
◼
►
People aren't sick of us yet anyway, but eventually people will be sick of us.
01:33:43
◼
►
Then we'll have to do something. It'll take at least 100 episodes, don't you worry.
01:33:48
◼
►
Nobody's going to be sick of us. No one isn't already sick of us. I always wonder if
01:33:54
◼
►
Marco and I, we had our podcast, right? Are we getting the union of the people, or are
01:34:00
◼
►
we getting the intersection for the people who can tolerate me and can tolerate Marco?
01:34:06
◼
►
Is the sum of our parts less than, you know?
01:34:09
◼
►
I think you guys are confused. Really, I'm the big draw, and you two are just riding
01:34:13
◼
►
on my coattails.
01:34:14
◼
►
Yeah. Yep, that's it.
01:34:17
◼
►
What your job is is to make all the people who hate both me and Marco have someone likable.
01:34:22
◼
►
- ...clashing onto the show. - ...on the show.
01:34:24
◼
►
- 'Cause there are those people, and, you know...
01:34:26
◼
►
- Oh, that would be wrong. - So once you start--
01:34:27
◼
►
once Casey starts getting haters of his own, then we'll-- then we'll have a problem.
01:34:30
◼
►
- It's only a matter of time. I mean, you can't do a podcast for-- for that long and not get haters.
01:34:35
◼
►
- He's very likable. He's very likable. - That's true.
01:34:37
◼
►
- Yeah, he's not-- he's not obnoxious like we are, so...
01:34:41
◼
►
- Are you sure? Have we met? Well, did you see somebody, was it earlier today,
01:34:45
◼
►
tweeted about how ugly we all are? - Yeah, well, you know.
01:34:46
◼
►
- Yeah, that was great. - What am I gonna argue?