26: Three Phones Ago
00:00:00
◼
►
You guys should both turn off your hands and you should do the sweat lodge thing with me
00:00:02
◼
►
and we'll start to have visions.
00:00:03
◼
►
That'll be the best episode ever.
00:00:07
◼
►
It is indeed the Friday night, the 9th of August and we are recording early because
00:00:12
◼
►
one of the three of us is disappearing for a week again.
00:00:15
◼
►
But after this, we should actually be recording on a regular schedule and everyone keeps bemoaning
00:00:20
◼
►
the fact that our schedule changes a lot and I don't really blame them.
00:00:24
◼
►
And people will ask, "Well, why don't you have the schedule on the website?"
00:00:28
◼
►
And the problem is 99% of the time it's Wednesdays at 9 Eastern US time.
00:00:33
◼
►
Well, that's not entirely true because we're only 25 episodes in, 26 now, and there's
00:00:39
◼
►
been a lot more than a quarter of one episode that's been non-scheduled.
00:00:43
◼
►
You know what I mean.
00:00:44
◼
►
That's the default.
00:00:45
◼
►
Wednesday at 9 is the default.
00:00:46
◼
►
That is the default.
00:00:47
◼
►
So when it's not the summertime and when everyone's not going on crazy vacations
00:00:50
◼
►
all the time, well, at least when two of the three hosts aren't going on crazy vacations
00:00:54
◼
►
all the time.
00:00:57
◼
►
Your life is a crazy vacation.
00:00:59
◼
►
Yeah, thank you.
00:01:03
◼
►
The chat room wants me to comment-- thank you from Apollozac in the chat room-- wants
00:01:07
◼
►
me to comment on the Beta Instapaper web redesign.
00:01:10
◼
►
Do you guys see this yet?
00:01:11
◼
►
I leaned to it earlier today.
00:01:12
◼
►
I saw that it existed.
00:01:13
◼
►
I haven't looked at it.
00:01:14
◼
►
And you know what?
00:01:15
◼
►
We haven't had--
00:01:16
◼
►
There you go.
00:01:17
◼
►
There's the topic.
00:01:18
◼
►
There's one topic.
00:01:19
◼
►
We haven't had enough reviews telling us that this is the Marco show.
00:01:20
◼
►
I know, really.
00:01:21
◼
►
So let's keep going.
00:01:22
◼
►
Well, you guys aren't helping me out right now.
00:01:23
◼
►
Here's something to talk about.
00:01:24
◼
►
This has nothing to do with Marco.
00:01:26
◼
►
This is somebody else's product now.
00:01:27
◼
►
This is the first time that I don't have a new app
00:01:30
◼
►
to announce on the show in weeks.
00:01:33
◼
►
Oh, look at me.
00:01:34
◼
►
I'm so smart.
00:01:34
◼
►
I'll start writing one now.
00:01:35
◼
►
By the end, you'll have something.
00:01:36
◼
►
I was writing one earlier today.
00:01:38
◼
►
Another new one?
00:01:39
◼
►
No, the big one.
00:01:41
◼
►
I've been working on it.
00:01:42
◼
►
I've had a very solid week working on it,
00:01:44
◼
►
doing a whole lot of low-level stuff.
00:01:48
◼
►
I thought you were done with the low-level stuff.
00:01:50
◼
►
Well, there's more.
00:01:52
◼
►
I was done with part of it.
00:01:54
◼
►
Oh, my goodness.
00:01:55
◼
►
Anyway, so Instapaper Beta.
00:01:58
◼
►
I knew they were moving everything to AWS,
00:02:02
◼
►
and now looking at what they've done,
00:02:05
◼
►
they've been doing a heck of a lot more than that,
00:02:07
◼
►
and I'm really happy to see this.
00:02:08
◼
►
I mean, this was way faster than I expected
00:02:11
◼
►
for this level of work.
00:02:13
◼
►
And so they unveiled today a beta that's,
00:02:18
◼
►
I would say about, it looks on the surface,
00:02:22
◼
►
I haven't had that much time to poke around with it,
00:02:24
◼
►
but it looks like it's probably about two thirds done,
00:02:27
◼
►
or three quarters done even.
00:02:29
◼
►
And it is really, really good.
00:02:33
◼
►
And it's just the web interface right now.
00:02:35
◼
►
They say updates for the apps are coming.
00:02:38
◼
►
And I believe them, because I see this,
00:02:40
◼
►
and they really delivered.
00:02:41
◼
►
I mean, this is really good.
00:02:43
◼
►
And the web interface, as I wrote in my little post about it,
00:02:46
◼
►
the web interface was always my biggest embarrassment
00:02:49
◼
►
about Instapaper, because I knew it was terrible.
00:02:52
◼
►
It looked terrible.
00:02:53
◼
►
It worked pretty poorly.
00:02:56
◼
►
But not only am I a terrible web designer in most cases, but I also was not motivated
00:03:02
◼
►
to ever improve it.
00:03:03
◼
►
Because, well, the short version is all the money was in iOS.
00:03:08
◼
►
And I always used iOS.
00:03:10
◼
►
And so for something that made very little money directly with just the web interface,
00:03:17
◼
►
and a web interface that I hardly ever saw, I just was not motivated to really ever improve
00:03:22
◼
►
And that's one of the problems when you have a one person company.
00:03:29
◼
►
One of the problems is like if that one person isn't that interested in working on something, it generally doesn't get done.
00:03:36
◼
►
And so now it's multiple people doing what's right for the product and what's great for everybody instead of just what they want to work on.
00:03:42
◼
►
And it's really looking good. What do you guys think?
00:03:46
◼
►
I think it looks good. I will say I can only imagine how much of, I can't think of a better
00:03:53
◼
►
word than a relief or perhaps a vindication that this is the first major change that I'm
00:04:00
◼
►
aware of, Tint's to Paper, since you've sold it. And how good must that make you feel that
00:04:06
◼
►
you now have a data point that says they're not going to ruin it? And not to say that
00:04:10
◼
►
I expected Betaworks to, but now you have empirical evidence that says they're not going
00:04:15
◼
►
ruin it and in fact it's already getting better. And that's got to make you feel,
00:04:17
◼
►
pardon the really bad pun, but like a million bucks. You know, it must make you feel really
00:04:23
◼
►
good that this is already trending up. Oh, totally. Because, you know, before,
00:04:27
◼
►
when I was selling it, you know, when I was in the process of selling it, I thought, you know,
00:04:31
◼
►
I talked about this on the show, so I'm not going to go into too much depth here, but I thought,
00:04:34
◼
►
the worst that can happen really is that they neglect it. But I'm neglecting it. And I've been
00:04:40
◼
►
been neglecting it for like a year or two, so the worst that can happen is that they
00:04:45
◼
►
just keep neglecting it. So it's not that bad, because obviously I've been neglecting
00:04:48
◼
►
it for a while and it's been okay. And now, yeah, now this is concrete evidence that they're
00:04:54
◼
►
not just neglecting it. So like, that was the worst case scenario. Now, yeah, you're
00:04:57
◼
►
right, it has, you know, everywhere to go now, it's going to go up. That doesn't
00:05:01
◼
►
make sense. You know what I mean? Apply the appropriate metaphor, please.
00:05:07
◼
►
John, would you like to absolutely destroy it now that we've both been talking positively
00:05:13
◼
►
I didn't mind the old web interface that much.
00:05:15
◼
►
It wasn't anything nice to look at.
00:05:17
◼
►
It was just there and didn't really have much pizazz or style, but it did what it was supposed
00:05:23
◼
►
And I used the web interface a surprising amount, because a lot of stuff that I would
00:05:26
◼
►
instapaper were things that either I didn't want to watch on a phone or couldn't watch
00:05:31
◼
►
on an iPad because they involved Flash, or it was like a 1080p trailer for a movie and
00:05:35
◼
►
I wanted to see it on my big screen.
00:05:37
◼
►
So I did spend a lot of time with the web interface, and it's just showing me a bunch
00:05:42
◼
►
The only thing that really annoyed me about the web interface were encoding problems,
00:05:45
◼
►
where you get a capital "A" with a hat on top of it or something when you have a double-encoded
00:05:51
◼
►
UTF-8 thing that's poorly escaped.
00:05:53
◼
►
But you never know whose fault that is.
00:05:54
◼
►
I think I complained about it to Marco a couple times.
00:05:56
◼
►
But other than that—
00:05:57
◼
►
It was in the title, right?
00:05:58
◼
►
I don't remember.
00:05:59
◼
►
Yeah, probably in the title.
00:06:01
◼
►
But the new web interface is nice.
00:06:03
◼
►
It's a little bit like if you can kind of see, "Oh, I don't know which technologies
00:06:09
◼
►
they're using, but those look like—I wonder if they use bootstraps for that.
00:06:13
◼
►
And I think I've seen that icon set before."
00:06:16
◼
►
But all the animations are nice, all the interface is nice.
00:06:18
◼
►
And the fact that Instapaper's look was kind of black and white, I'm not going to
00:06:25
◼
►
say it's easy for them to come up with a new design, but they didn't have to do
00:06:28
◼
►
sorts of lavish graphics and custom images of wood at high resolution for all the sorts
00:06:35
◼
►
of things. If that had been Instapaper's style, it would have been more difficult. Here, they
00:06:39
◼
►
could go with a straightforward design with nice typography with black on white, and it
00:06:43
◼
►
totally fits with the brand. So I give thumbs up to the web thing. I give it thumbs down
00:06:47
◼
►
to all the instability that has gone on since you sold this thing. I don't know if it's
00:06:51
◼
►
because of the AWS move or whatever, but I've hit read later or tapped it or held down on
00:06:57
◼
►
it or done it in the different places that I do it and gotten either a really, really,
00:07:02
◼
►
really long pause or a time out or a service is not available way more between the time
00:07:07
◼
►
you sold it now than the entire rest of the history of Instapaper.
00:07:10
◼
►
I'm assuming it's because they're moving into AWS, but that made me sad.
00:07:13
◼
►
If I'm reading something and Instapaper is down, even if it's down for five minutes now,
00:07:17
◼
►
I've got to remember five minutes from now to come back and hit the same link.
00:07:21
◼
►
So I hope they get through that instability and we can get back up to the old Marco level
00:07:28
◼
►
stability which was very rarely down and only occasionally slow.
00:07:33
◼
►
Yeah, I haven't really asked them about that.
00:07:35
◼
►
I've only hit a problem like once in this time and maybe it's just because when we're
00:07:38
◼
►
hitting them, I don't know.
00:07:40
◼
►
I would imagine one of the differences among us is that you probably wake up a lot earlier
00:07:45
◼
►
And so that might put you in a different usage zone.
00:07:49
◼
►
But I've only hit a couple of problems, or like one problem
00:07:53
◼
►
over the whole course of it.
00:07:55
◼
►
But as far as I know, it's problems
00:07:57
◼
►
that are probably because they were moving at AWS.
00:08:00
◼
►
And I'm really surprised how quickly
00:08:04
◼
►
they were able to do that move and how well it's gone.
00:08:08
◼
►
Because so much of when I'm running servers
00:08:11
◼
►
is about knowing the intricate details of exactly how much I
00:08:17
◼
►
can get away with performance-wise in certain characteristics or on certain servers or in
00:08:22
◼
►
certain software. And by shifting things to AWS, you dramatically change the foundation
00:08:28
◼
►
of what everything is. Like the assumptions you've made about characteristics, like my
00:08:33
◼
►
database servers were mostly SSDs. As far as I know, AWS still doesn't offer that, do
00:08:41
◼
►
Oh, I wouldn't know.
00:08:43
◼
►
I don't know either, but certainly I know that if they do offer it, it's probably,
00:08:50
◼
►
it probably isn't simple or maybe complete. But, so like, I would make assumptions like,
00:08:57
◼
►
"Alright, well this server's gonna have, always have at least this much RAM. This server's
00:09:00
◼
►
gonna always be 64-bit. This server's gonna always have really fast disks. And this one's
00:09:05
◼
►
always gonna have tons of CPU cores." And so I was making all those assumptions all
00:09:09
◼
►
all that time, and to shift it to a system that
00:09:14
◼
►
works completely differently is a heck of a thing to do.
00:09:20
◼
►
And I also had, I think, about 11 servers when I sold it.
00:09:25
◼
►
And those were 11 pretty high-end servers.
00:09:27
◼
►
The number of AWS instances required to replace them
00:09:30
◼
►
has to be more than that.
00:09:33
◼
►
And so that-- I can't even imagine
00:09:37
◼
►
the scale of the work that is.
00:09:38
◼
►
And the reason they did it was because they host all their stuff on AWS, so they know
00:09:42
◼
►
it really, really well.
00:09:45
◼
►
And so that's a very good reason to do it.
00:09:48
◼
►
But I think it really shows how good they are that they were able to do that kind of
00:09:53
◼
►
move with so little downtime, really, for what that is.
00:09:57
◼
►
I mean, moving to not only a different host, like moving all of your servers to a different
00:10:02
◼
►
host, not only that, but moving them to a different type of host, that's a big job.
00:10:07
◼
►
The search still doesn't work in the beta 2, it just gives a 502 error so something's
00:10:12
◼
►
not hooked up there.
00:10:13
◼
►
But the search works in the old ones, so it's not like the search is down entirely.
00:10:17
◼
►
I don't know if this is accurate or not.
00:10:21
◼
►
Somebody on Twitter said that they're rewriting it in Python.
00:10:25
◼
►
And I know that somebody had mentioned the possibility of that to me once, and I said,
00:10:31
◼
►
"Yeah, do whatever you want, I don't care."
00:10:34
◼
►
But they might be doing that also.
00:10:37
◼
►
I haven't even asked them again, because I don't really
00:10:39
◼
►
care, honestly.
00:10:41
◼
►
I haven't really asked them, but that might be part of this.
00:10:46
◼
►
Like maybe the beta is all a Python engine,
00:10:49
◼
►
and the old site is still running the old PHP code.
00:10:52
◼
►
I don't know.
00:10:53
◼
►
Certainly I don't have any problem with that,
00:10:55
◼
►
because I respect Python as a language.
00:10:56
◼
►
I don't know it very well, but I've always
00:10:58
◼
►
said that if I was going to learn another web scripting
00:11:00
◼
►
language today, it would probably be Python.
00:11:02
◼
►
So yeah, good for them. I think it's working really well.
00:11:05
◼
►
Instapaper is a small enough application that it's not crazy to think of rewriting it,
00:11:10
◼
►
because how many screens and how many features it has.
00:11:12
◼
►
And it's hidden behind an API, like a web interface,
00:11:15
◼
►
so as long as you maintain the same HTTP endpoints
00:11:19
◼
►
and the same protocol between them, and they're redoing the native apps anyway.
00:11:23
◼
►
But the point is, it's small enough that I feel like if they had a team
00:11:26
◼
►
who knows how to use these technologies well, and they're like,
00:11:28
◼
►
"I know exactly how I do Instapaper and how I would shard everything
00:11:31
◼
►
I would implement all the different services, and there's like four things you can do with
00:11:34
◼
►
it. You can read later. You got a text parser. You got this, you got that. There's enough
00:11:38
◼
►
pieces where you can hold it all in your head. It's not like somebody said, "I'm going to
00:11:42
◼
►
rewrite this operating system in Java." It's not that level of undertaking. So I think
00:11:48
◼
►
it's a reasonable thing for them to do, especially if that's what they have the expertise in,
00:11:50
◼
►
if they've already staffed up to do that.
00:11:52
◼
►
Exactly. And you're right. The way I handed it off, the web code base is really, really
00:11:59
◼
►
simple. And in fact, I handed it off in kind of a messy state,
00:12:03
◼
►
because I was kind of halfway transitioned between two text
00:12:06
◼
►
So there was the old one and the new one,
00:12:08
◼
►
both coexisting in various different places,
00:12:09
◼
►
and it was kind of a mess.
00:12:12
◼
►
So sorry to anyone over there, if you're listening,
00:12:15
◼
►
if you had to clean that up.
00:12:18
◼
►
But yeah, I mean, the web code base really
00:12:21
◼
►
is not that complicated.
00:12:22
◼
►
And so they can rewrite it in whatever they want,
00:12:26
◼
►
and it's not really that big of a deal.
00:12:28
◼
►
The iOS app, of course, is where most of the code is.
00:12:31
◼
►
But you can't rewrite that in anything else except, I guess,
00:12:36
◼
►
What is that?
00:12:41
◼
►
It's good times.
00:12:42
◼
►
You know, it's funny hearing you guys say that.
00:12:43
◼
►
Oh, yeah, you can rewrite it.
00:12:45
◼
►
Because I keep flashing back to Spolsky's article
00:12:48
◼
►
from years and years ago about rewriting something
00:12:51
◼
►
and how no matter how simple you think it will be,
00:12:54
◼
►
it always ends up being a terrible disaster.
00:12:56
◼
►
I'm hugely paraphrasing of course, but it keeps reminding me of that.
00:13:03
◼
►
The other thing I keep wondering or thinking to myself is, and I don't know if this is
00:13:07
◼
►
a worthwhile topic or not, but at what point do you choose familiarity over anything else?
00:13:15
◼
►
So in other words, they may be more familiar with AWS and Python, but no matter how you
00:13:21
◼
►
slice it, they bought, Betaworks bought, something that was successful and functional.
00:13:27
◼
►
And is familiarity more important to their team, which it appears it is, or is keeping
00:13:35
◼
►
what works more important?
00:13:36
◼
►
And I wrestle with this a lot when I write code, and you can also extrapolate this to
00:13:40
◼
►
be, is writing code in a clear way better than writing code in a clever and perhaps,
00:13:48
◼
►
Maybe not succinct is the best word, but you know if you could take a hundred fifty line function
00:13:54
◼
►
Let's say and do some really clever stuff and get it down to 50 lines
00:13:58
◼
►
but it's a lot harder to understand is that really a net win or not and
00:14:02
◼
►
And to me as the older I get the more
00:14:05
◼
►
I think you know familiarity really is important and really is worth fighting for and
00:14:11
◼
►
I found that I'm using less clever tricks in my code than I would have in the past
00:14:16
◼
►
because I don't know if I'm gonna remember what it was I was thinking in a month,
00:14:20
◼
►
let alone a co-worker have any idea what I was doing in a week.
00:14:25
◼
►
I don't know if you guys have anything interesting to add to that, but...
00:14:28
◼
►
When you're buying a company or a product or whatever,
00:14:32
◼
►
if you have the intention to go forward with that product,
00:14:36
◼
►
to make new versions of that product, add features and everything,
00:14:39
◼
►
you have to make sure that you have the ability to do that.
00:14:44
◼
►
If you buy something in PHP and Objective-C and you have nobody who knows PHP and Objective-C
00:14:49
◼
►
and nobody who knows iOS APIs, well, A, that was probably not a great idea to purchase
00:14:53
◼
►
that, but B, you need to do one of two things.
00:14:56
◼
►
Either get people those expertise or change it to something that your people already have
00:15:00
◼
►
expertise in.
00:15:01
◼
►
And like Marco said, with the iOS app, they're going to get people who are familiar with
00:15:05
◼
►
iOS or they probably already have them.
00:15:06
◼
►
You can't change the language, basically.
00:15:08
◼
►
Maybe they could change it to C# or something like that, but in general, that decision is
00:15:12
◼
►
made for them.
00:15:13
◼
►
We bought an iOS app.
00:15:14
◼
►
we've got to make sure we have people who understand the iOS APIs, and they probably
00:15:17
◼
►
already do, so we're good there.
00:15:18
◼
►
And on the website, they bought something that was written in PHP, but like I said,
00:15:22
◼
►
it was small enough and simple enough that it's not that big a deal.
00:15:24
◼
►
They could get expertise in PHP and go forward and enhance the application in PHP, but I
00:15:29
◼
►
bet they already have people who know how to do web stuff in Python really well.
00:15:34
◼
►
And they have to do something so that they can add features and enhance this application,
00:15:41
◼
►
it's probably more efficient for them to rewrite the whole thing in Python, because they have
00:15:48
◼
►
like an army of people who know Python, and they think they can rewrite it really quickly.
00:15:51
◼
►
Like Marco does, he's got his framework for web applications and stuff like that.
00:15:55
◼
►
He's got a box of tools in PHP, so when it comes time for him to do something on the web,
00:15:59
◼
►
it's much faster for him to just take out his toolbox with these tools that he's worked on
00:16:02
◼
►
and put something together. So they probably have a toolbox full of Python things, and they're
00:16:07
◼
►
familiar with various Python frameworks, and they have their own in-house things,
00:16:10
◼
►
things that would never say, like, "Oh, I know exactly how I do Instapaper. I do this,
00:16:13
◼
►
that, and the other thing, and it's small enough that they can do it."
00:16:16
◼
►
The Joel article was one of those things where he wanted to explain all the reasons why you
00:16:22
◼
►
might not want to rewrite something, and he did, and I think he explained them pretty
00:16:25
◼
►
well. But as time goes on and memories fade or whatever, it becomes like, "Oh, that's
00:16:32
◼
►
the article where he said you should never, ever, ever rewrite anything," which of course,
00:16:34
◼
►
any sort of absolutist position, like you should always rewrite or never rewrite, it's
00:16:37
◼
►
not going to be—people are going to argue with it, and that's going to be the straw
00:16:40
◼
►
man that they're going to disagree with.
00:16:42
◼
►
I think he did a good job of highlighting why—like, the value in old code.
00:16:47
◼
►
But every situation is different, and you have to decide, given your situation and the
00:16:52
◼
►
parameters and the requirements that are put upon you and what you actually want to do
00:16:56
◼
►
going forward, what you're going to do.
00:16:58
◼
►
And so the thing I think he used as an example was Netscape being rewritten to become Mozilla
00:17:03
◼
►
and everything.
00:17:05
◼
►
First of all, no one's thinking, "Oh, Netscape is a simple application.
00:17:08
◼
►
That won't be hard to read, right?"
00:17:10
◼
►
Web browsers?
00:17:11
◼
►
Those aren't complicated, right?
00:17:12
◼
►
That'll be no problem.
00:17:13
◼
►
They knew that it was complicated.
00:17:15
◼
►
But with 20/20 hindsight, you can say, "Look, that codebase, that old Netscape codebase,
00:17:20
◼
►
was not going anywhere.
00:17:21
◼
►
It was basically going to be a dead end.
00:17:23
◼
►
It would not exist today no matter how much work they put into it."
00:17:26
◼
►
Even though there was tremendous value in, "Look at all the stuff we debugged, and look
00:17:29
◼
►
at all those little tricky things we did to make sure that it worked with weird mail
00:17:34
◼
►
because there was a mail client built into it and how it worked with NNTP and all these
00:17:38
◼
►
nuances of talking to news servers and dealing with the web as it has existed in 1993.
00:17:43
◼
►
All that stuff had value, but the value by now is either gone or pointless because
00:17:48
◼
►
the web browsing engine world has gone so far. And if they hadn't rewritten it, they would be
00:17:52
◼
►
completely irrelevant now. And as it stands, they probably are due for another rewrite or something
00:17:57
◼
►
because their engine, Gecko and Mozilla and everything, is kind of looking like the old grandfather
00:18:02
◼
►
grandfather next to WebKit and Blink and all these fancy new things.
00:18:05
◼
►
So people are saying, "Now, Joel, you wrote that article, but look, if they hadn't rewritten
00:18:10
◼
►
everything they'd be completely irrelevant, and they're almost irrelevant now even though
00:18:13
◼
►
they did rewrite everything."
00:18:14
◼
►
So the time comes when you need to cut your losses and move on, but I think the value
00:18:21
◼
►
in that article is explaining why old code has good qualities that you might not see
00:18:29
◼
►
when all you could see is how disgusting it is and how you wish you could rewrite it all.
00:18:32
◼
►
Oh, yeah. I mean, there's definitely, like, a very common programmer immaturity that you
00:18:37
◼
►
see where you, like, a programmer is assigned to take over a project, whether they were
00:18:41
◼
►
hired in, like, as, like, a new lead on it or they're looking at someone else's code
00:18:48
◼
►
who, you know, was previously there. Almost always, young programmers want to rewrite
00:18:53
◼
►
it their way. And that's generally a pretty immature and inefficient position to take,
00:19:00
◼
►
know, because it's easier for you to start poking around and say, "Oh, this whole thing
00:19:06
◼
►
is a mess. This is not going to work. It's terrible. This previous person who wrote this
00:19:10
◼
►
was an idiot, and we've got to rewrite everything from scratch." And, you know, you're right.
00:19:16
◼
►
In the real world, like the Jell article is pretty good advice most of the time. Obviously,
00:19:23
◼
►
there's exceptions to everything. The example he used of Netscape was, of course, a very
00:19:28
◼
►
extreme example. Netscape is a, and was, a tremendous code base. It's absolutely tremendous,
00:19:35
◼
►
doing so many things. And so obviously rewriting that was a pretty big ordeal. Rewriting a
00:19:42
◼
►
pretty simple web service that doesn't do a whole lot on the web service end is not
00:19:46
◼
►
that hard. And so, you know, I mean, I wrote Instapaper, the first version, in like one
00:19:52
◼
►
night and built on it from there part-time, but the website was never really a big time
00:20:00
◼
►
So rewriting that is very, very different from rewriting Netscape.
00:20:04
◼
►
So two quick questions for you.
00:20:06
◼
►
In a very qualitative and off-the-cuff way, would you say that it seems clear that the
00:20:14
◼
►
Instapaper website, you would say, is not very complex?
00:20:17
◼
►
And I'm thinking mostly about the text parser.
00:20:20
◼
►
strikes me as though it would be pretty complex, but it seems to me like you're waving it
00:20:24
◼
►
off as not that bad. Is that fair to say?
00:20:26
◼
►
The text parser really isn't that bad. It's really not that complex. You would be surprised
00:20:31
◼
►
how easy it is to do a pretty good job parsing out body text.
00:20:35
◼
►
All right. And then with that in mind, how much code smell would you say the codebase
00:20:41
◼
►
had? Like you said you were half-baked between a major rewrite, and that obviously induces
00:20:47
◼
►
a little bit of stench, if you will, but would you say that generally speaking it was in
00:20:50
◼
►
pretty good shape aside from that?
00:20:52
◼
►
The text parser was in bad shape, but everything else was pretty solid, as far as I remember.
00:20:57
◼
►
Honestly, I spent some little time working on the website. I barely even remember the
00:21:00
◼
►
code, but yeah, it was...
00:21:03
◼
►
We can tell.
00:21:04
◼
►
Yeah. One thing that, one other direction I want to take this conversation briefly is,
00:21:09
◼
►
there was this great article, I pasted the link in the chat room a few lines ago, by
00:21:13
◼
►
by James Haig, and I'll put a link in the show notes.
00:21:16
◼
►
And it's called Organizational Skills Beat Algorithmic Wizardry.
00:21:22
◼
►
And he was first talking about, like, you know, all the crap about brainteaser tech
00:21:26
◼
►
interviews, which are terrible. And then he has this one line that I love.
00:21:30
◼
►
When it comes to writing code, the number one most important skill is how to keep a
00:21:34
◼
►
tangle of features from collapsing under the weight of its own complexity.
00:21:39
◼
►
And, you know, he goes on to say, to a great
00:21:43
◼
►
extent, the act of coding is one of organization,
00:21:45
◼
►
refactoring, simplifying, figuring out how to remove extraneous
00:21:48
◼
►
manipulations here and there. And it's, that's a fantastic
00:21:53
◼
►
bit of wisdom there, because so many times, what
00:21:57
◼
►
makes me want to rewrite parts of my own
00:21:58
◼
►
code or modules or even entire apps, which is
00:22:02
◼
►
pretty rare, but, you know, what makes me want
00:22:04
◼
►
to rewrite stuff like that is tricks and optimizations
00:22:08
◼
►
and complexities that I implemented forever ago
00:22:10
◼
►
and have since forgotten how they work.
00:22:13
◼
►
And it's like you're competing with yourself from the future
00:22:18
◼
►
when you're writing code.
00:22:19
◼
►
And it's really, really easy to, oh, you see something here
00:22:24
◼
►
that, oh, we could do this cool little thing if we just
00:22:27
◼
►
add this little bit of complexity here,
00:22:28
◼
►
this little weird hack here that it's not pretty,
00:22:32
◼
►
but it'll work and it'll achieve this cool thing.
00:22:34
◼
►
Well, then six months from now, you get to that.
00:22:36
◼
►
you see that and you see, "Oh, I don't know how this works. This thing's a mess. We've
00:22:39
◼
►
got to rewrite the whole thing."
00:22:42
◼
►
Casey's question from before about doing clever things in code or whatever, I think most programmers
00:22:49
◼
►
go through that phase of where you don't understand the clever thing, then you do understand the
00:22:52
◼
►
clever thing, then you start to invent your own clever things. I try to get myself away
00:22:59
◼
►
from looking at the code at that level because what I've found is that the most important
00:23:04
◼
►
I have to ask about the block or the method or the whatever, the module or whatever class
00:23:11
◼
►
that I'm looking at or whatever, is what is this code supposed to do?
00:23:17
◼
►
And that question should be phrased in some very clever or flowery way and put into a
00:23:24
◼
►
big giant poster shoved in front of you like the old IBM Think poster.
00:23:28
◼
►
Because almost any time anyone is having a programming problem, aside from me having
00:23:33
◼
►
to teach them how debugging works, which is surprising.
00:23:35
◼
►
Our programmers don't know, and I don't know how they get their jobs done, is that question.
00:23:41
◼
►
So say you're in there and you've got this clever bit that does some clever thing and
00:23:44
◼
►
it's got some loops and some lines and some variables and you're like, "I don't know what
00:23:47
◼
►
the hell this thing is doing."
00:23:48
◼
►
If you know what the function it's in is doing, like I know the purpose of this function,
00:23:53
◼
►
either because it's documented or it's named well or both or you just know what it is because
00:23:57
◼
►
you wrote it recently and you say, "The job of this function is it takes this input, it
00:24:00
◼
►
it gives you this output, I know what its job is, I know where it fits into the whole
00:24:04
◼
►
block diagram of my thing."
00:24:06
◼
►
And you're like, "Well, of course I know that.
00:24:09
◼
►
I always know when I'm looking at a couple lines of function."
00:24:13
◼
►
Of course, everyone knows what this function does.
00:24:15
◼
►
But as you work on code for a long time, and especially if you're not constantly thinking
00:24:18
◼
►
about this, you will find yourself in the midst of a function, and someone will ask
00:24:22
◼
►
you, "What is this function supposed to do?"
00:24:24
◼
►
It doesn't matter.
00:24:25
◼
►
It gets called, and then I'm in here and I have to do this thing.
00:24:28
◼
►
Like, "Wait, wait, wait, wait, no, it matters.
00:24:30
◼
►
say it doesn't matter. This just gets called when this happens, and eventually, I'm very
00:24:34
◼
►
deep in the call stack here, but this thing gets called, and I'm like, "What is this job?
00:24:37
◼
►
What is this supposed to be doing? What is the job of this function?" It's like, "Well,
00:24:40
◼
►
usually it just takes this and puts it there and processes this and turns it into that
00:24:43
◼
►
and flips that on." But sometimes, if this thing is also on, and you're like, "Whoa,
00:24:47
◼
►
if you can't explain to me what this function does," and it's like, what it does is affect
00:24:51
◼
►
it by all this global state, and it's got lots of conditionals, and it behaves in several
00:24:56
◼
►
different ways, and it's deeply intertwined with other things, and it's all mixed in with
00:24:59
◼
►
the GUI and it depends on the state of the database or what orientation the device is
00:25:05
◼
►
You're like, "This function is not well.
00:25:07
◼
►
You've lost sight of this."
00:25:08
◼
►
In the beginning, maybe it was a simple function, but to make your application work, you continue
00:25:11
◼
►
to screw up to the point where now I ask you, "What does this function do?"
00:25:14
◼
►
And you have to tell me a story that's three hours long.
00:25:17
◼
►
So that's your problem.
00:25:18
◼
►
It's not the clever line where you're doing some sort of bit field masking and some sort
00:25:21
◼
►
of clever thing where you're sharing some variable and trying to reuse memory from a
00:25:26
◼
►
previous incarnation and do some caching.
00:25:28
◼
►
That's not your problem.
00:25:30
◼
►
Your problem is you don't know what the heck this freaking function does.
00:25:32
◼
►
If you knew what it did, then by all means do the most crazy, clever, awesome way that
00:25:36
◼
►
you could do it, and then have an awesome unit test to make sure that that crazy, clever
00:25:39
◼
►
way works exactly the same as the boring way.
00:25:42
◼
►
Then you're fine.
00:25:43
◼
►
Then go nuts.
00:25:44
◼
►
But that, I find, is the problem.
00:25:45
◼
►
And that's just functional.
00:25:46
◼
►
Keep moving up.
00:25:47
◼
►
What is this class supposed to do?
00:25:48
◼
►
How do these things interact with each other?
00:25:49
◼
►
What's the relationship between these things in the program?
00:25:53
◼
►
How many of them should there ever be?
00:25:56
◼
►
What are the assertions you can make about them, about what states they should be?
00:25:58
◼
►
If this one is in a state, then that one has to be in that state.
00:26:01
◼
►
Those are the questions that you have to keep in your mind.
00:26:05
◼
►
The broader you can get that picture nailed down, the simpler it is.
00:26:08
◼
►
I don't know if you've had this experience, maybe with a really simple application or
00:26:11
◼
►
something where you have—or maybe an application that you've written 100 times.
00:26:15
◼
►
I bet people who are writing or teaching courses have this, where you're like, "I'm going
00:26:19
◼
►
to do a canonical pet store example," or something.
00:26:22
◼
►
If you have a design that really is the correct design from the beginning, coding itself becomes
00:26:26
◼
►
mechanical, almost boring, because all you're doing is like, I know exactly what
00:26:29
◼
►
this function has to do, what it has to do is not complicated, I'm gonna write it,
00:26:33
◼
►
it's completely straightforward, maybe there's a couple of nuances and clever
00:26:36
◼
►
ways to do it, but who cares, and it just falls out, your program just falls out of
00:26:40
◼
►
you, because if you have the design correct, implementation is trivial, you
00:26:44
◼
►
know, once you know any language more or less, or any API, that's rarely the case.
00:26:49
◼
►
Usually you don't have the design done to that level, especially if you're doing
00:26:51
◼
►
some of the first time, so you keep having to go back and revise and revise,
00:26:54
◼
►
And if you don't constantly think about what is this thing supposed to do? What does this class do?
00:26:59
◼
►
What does this function do? What does this method do? What is its job?
00:27:01
◼
►
And the answer isn't simple enough you to say I know exactly what I have to do then you have a problem
00:27:05
◼
►
Like that's why I think Margo's text parser is a reasonable thing to fiddle with because we know what its job does, right?
00:27:11
◼
►
It takes a web page and it gives you back text
00:27:13
◼
►
It doesn't have all the crap all around like you can write a fancier explanation, but that's what it does
00:27:17
◼
►
It's simple input output operation. What happens in there can be extremely complex and cool and interesting or whatever
00:27:22
◼
►
But in the grand scheme of things, that's a pretty simple function with very few side
00:27:30
◼
►
And you're right.
00:27:31
◼
►
When I'm talking about competing with yourself in the future and trying to understand what
00:27:34
◼
►
you wrote and buckling under complexity, I'm not talking about how you shift the bits over
00:27:43
◼
►
here within this function.
00:27:44
◼
►
You're right.
00:27:45
◼
►
I don't care.
00:27:46
◼
►
I am talking about all the crazy—everything you said, the global state, things that are
00:27:50
◼
►
weirdly intertwined, that have weird dependencies, that is like, you know, it works in your head
00:27:55
◼
►
while you're writing it because you know all that stuff. It's in your memory. But then,
00:28:00
◼
►
you know, in a month, you're going to forget how that works, and something's going to be
00:28:04
◼
►
breaking in a weird way, or you're going to have to add something to it, and that's going
00:28:08
◼
►
to break in a weird way, and you'll have no idea how this whole system works.
00:28:11
◼
►
Yeah, you just want to get it to work. Like, when you know when you get in that state,
00:28:14
◼
►
you're like, "I just want to hit the button and see that thing appear. Like, I just want it to
00:28:17
◼
►
work, right? And so you're putting code, you're just putting code wherever you need to put
00:28:20
◼
►
code to make it work. You land some place, some variables in set, you put the code right
00:28:23
◼
►
there to say, "Set that variable right here," without thinking, you know, like, "Is this
00:28:27
◼
►
the place where I should be doing this?" Because, you know, every program rolls into that crap,
00:28:30
◼
►
because everyone reaches that threshold, like, "Oh, I'm so close to this thing working. If
00:28:34
◼
►
I could just, ooh, if I just put a conditional there, the thing would work. Is that the right
00:28:38
◼
►
place to put that conditional? Why do you need to do that check?" No one wants to ask
00:28:41
◼
►
those questions. They just want to see, they want to click the button, they want to see
00:28:44
◼
►
thing appear.
00:28:45
◼
►
And everybody does that to some degree.
00:28:47
◼
►
You multiply that by the number of programs and the complexity of the program, and if
00:28:50
◼
►
you're not constantly revising your view of the world and constraining your code to say,
00:28:55
◼
►
"Is this the right place for this code?"
00:28:58
◼
►
Maybe there is no right place for this code, which reflects a problem in our design that
00:29:01
◼
►
we didn't foresee.
00:29:02
◼
►
So now it's time to go back to the giant block level and say, "Okay, maybe we need to redo
00:29:05
◼
►
these blocks."
00:29:06
◼
►
And nobody wants to think about that.
00:29:07
◼
►
You're like, "But I'm so close.
00:29:08
◼
►
If I just put this conditional here, I'm so close, it'll be fine."
00:29:12
◼
►
And I'll put a comment on the top of it.
00:29:13
◼
►
it'll be fine. That's why when other people, when you look at, you know, hell is other
00:29:17
◼
►
people's code, when you look at someone else's code, you're like, oh, this needs to be rewritten.
00:29:21
◼
►
It's because that person maybe didn't do such a good job of keeping their handle on things.
00:29:24
◼
►
And you look at these functions, and you see this function does ten different things, and
00:29:27
◼
►
the name has very, very tenuous connection with the content of the code that I see in
00:29:32
◼
►
there. And it makes you want to rewrite it, you know.
00:29:34
◼
►
You know, it's funny, the way you're describing things, I unsurprisingly agree with everything
00:29:39
◼
►
you said, it's almost like the five whys of developing code.
00:29:43
◼
►
You know, why did I write this method?
00:29:45
◼
►
Okay, why is this method part of this class?
00:29:48
◼
►
Why is this class part of this namespace
00:29:50
◼
►
or part of this module and so on and so forth?
00:29:53
◼
►
And you certainly make a very interesting point.
00:29:55
◼
►
And I think that intrinsically,
00:29:57
◼
►
that's what developers tend to do,
00:29:59
◼
►
but doing it more explicitly and deliberately
00:30:04
◼
►
certainly can't do anything but help.
00:30:07
◼
►
Yeah, that was one of the many topics I think I never got to in Hypercritical, was like,
00:30:12
◼
►
what makes a good programmer?
00:30:13
◼
►
And this article that Marco threw the link in for is very similar to it.
00:30:17
◼
►
My contention is—well, this gets more touchy-feely—but one of the things that—there's lots of good
00:30:24
◼
►
good programmers, right?
00:30:25
◼
►
There are, you know, the classic good programmer like John Carmack or whatever, who's just
00:30:29
◼
►
like a genius, really good at math, can do very clever algorithmic things.
00:30:34
◼
►
That's what we think of as like, "Oh, he's an amazing programmer," right?
00:30:37
◼
►
And there's definitely a place for that.
00:30:38
◼
►
But another kind of very good programmer is-- again, I don't want to get a touchy-feely
00:30:42
◼
►
feel of things-- but people are motivated to avoid things that make them uncomfortable.
00:30:50
◼
►
And if disorder makes you uncomfortable, that will be a strong motivator for you to make
00:30:58
◼
►
things ordered in your life.
00:30:59
◼
►
People who are discomforted by things that are messy or disordered, they usually say
00:31:04
◼
►
say obsessive-compulsive, but that's totally the wrong word for it. I don't know what the
00:31:07
◼
►
right word for it is. But you know, they have websites where they show a line of pencils
00:31:10
◼
►
where one pencil is poking out. The type of people who are annoyed by that pencil poking
00:31:14
◼
►
out and want to push it back down, everyone's annoyed by it a little bit. But some people
00:31:17
◼
►
are made much more uncomfortable by that pencil poking out than other people are. The more
00:31:22
◼
►
you have that feeling, that it makes you physically uncomfortable for your books on your bookshelves
00:31:29
◼
►
not to be aligned, or for things to be out of place. Like I said, everyone has it in
00:31:33
◼
►
in some degree, but some people have to do a higher degree.
00:31:36
◼
►
That is another kind of good programmer.
00:31:37
◼
►
If you find someone who is really, really uncomfortable
00:31:40
◼
►
when things aren't indented properly,
00:31:42
◼
►
you would think like, oh, what makes me a good programmer
00:31:44
◼
►
is my technical skill and I'm good with algorithms
00:31:46
◼
►
and I know about user interface.
00:31:47
◼
►
But really, an entire class of programmers,
00:31:49
◼
►
what makes them good programmers is their complete inability
00:31:53
◼
►
to tolerate things being out of order.
00:31:54
◼
►
And that extending always like,
00:31:56
◼
►
this class should not be doing this.
00:31:58
◼
►
That's not the responsibility of this method
00:31:59
◼
►
to do this at all.
00:32:01
◼
►
That state should not be touched by here.
00:32:02
◼
►
there should be an abstraction between this and that. You shouldn't reach into that to
00:32:05
◼
►
go to that. Every single one of those things, once you get some knowledge of programming,
00:32:09
◼
►
becomes like that pencil poking up, and you just cannot tolerate it. All the way down
00:32:12
◼
►
to the simple things like inconsistent indenting. Like, I know programmers who have no problem
00:32:16
◼
►
with inconsistent indenting. Spaces, tabs, random curly-braced styles, like it's just
00:32:20
◼
►
a giant mess. That's not common. I think programmers are more towards the "can't stand it when
00:32:25
◼
►
their books aren't lined up on the shelf." But that skill, like, it's not a skill, but
00:32:30
◼
►
That sort of personality disorder, I don't know, mental impairment, being physically
00:32:38
◼
►
uncomfortable to a degree that's outside the realm of the norm by disorder makes you a
00:32:43
◼
►
better programmer of a particular kind.
00:32:46
◼
►
And people want to think that their superpower is derived from their amazing strength or
00:32:51
◼
►
their super speed or their great intellect and don't want to think that the thing that
00:32:54
◼
►
makes them a good programmer is the thing that handicaps them in the rest of their regular
00:32:59
◼
►
Not to a debilitating degree, but that's—and again, obsessive compulsive is an entirely
00:33:02
◼
►
different thing.
00:33:03
◼
►
I don't know what the thing is I'm talking about, I don't know what the real term is,
00:33:06
◼
►
but some of the—that's like turning, you know, finding a silver lining in things that
00:33:14
◼
►
are mentally wrong with you.
00:33:15
◼
►
And it's definitely the case with me.
00:33:16
◼
►
I don't like disorder, and I think it makes me a better programmer.
00:33:20
◼
►
And I think every programmer has that to some degree.
00:33:23
◼
►
Oh, definitely.
00:33:24
◼
►
All right, well, before we continue, let's take a break to thank our first sponsor this
00:33:29
◼
►
week. It's a new sponsor this week. It is Warby Parker. Warby Parker was founded
00:33:34
◼
►
with a rebellious spirit and a lofty objective to create boutique quality
00:33:38
◼
►
classically crafted eyewear at a revolutionary price point. So this is
00:33:42
◼
►
what it is. They sell glasses online and they do it really really well. They
00:33:48
◼
►
believe glasses should not cost as much as an iPhone. They have prescription
00:33:52
◼
►
glasses including prescription lenses that start at just $95. They also have a
00:33:56
◼
►
a titanium collection starting at just $145. All glasses include anti-reflective and anti-glare
00:34:02
◼
►
coatings at no additional cost. They include a hard case, a cleaning cloth, it's a really,
00:34:07
◼
►
really great product. And they make home buying easy and risk-free. They have this thing called
00:34:12
◼
►
the Home Try-On Program. And what they do is you go to their site and you pick out up
00:34:16
◼
►
to five frames to try out. And they have all these sorts of tools on their site. You can
00:34:22
◼
►
do things like have an image of your face that it then wraps on, it maps the glasses
00:34:27
◼
►
onto your face, you can preview it there. Or, so for the home try-on, for free, online,
00:34:34
◼
►
easy, risk-free, the home try-on, you pick five frames you want to try on in person and
00:34:38
◼
►
they mail them to you. You pick whatever you want, if you want one of those, you can go
00:34:42
◼
►
buy it, you send them right back, and then they send it to you with a prescription. It's
00:34:46
◼
►
really great. Now, when they booked this spot, they offered the three of us free
00:34:53
◼
►
glasses if we wanted to try it out. So they had us try out the home try on and
00:34:56
◼
►
and you know so we could see how good of a product this was. We could tell you
00:35:00
◼
►
about it. And I don't wear glasses but my wife does and she's famous on the
00:35:05
◼
►
internet so I'm actually, Tiff is here, so is Hops, but Hops will be quiet I
00:35:09
◼
►
think. Tiff is here and she's going to actually be joining this and doing the
00:35:13
◼
►
rest of the sponsor read for me because she had a whole experience with him that
00:35:16
◼
►
really quite good. So, here's Tiff. Hi! Yeah. Hey, there we are. How are you? I'm
00:35:23
◼
►
good. Hi, everyone. Hello. So, we're all Warbies, huh? Yeah, well, I am, and it sounds
00:35:29
◼
►
like you are, John. I got the home try-ons and I ordered my pair, but they haven't
00:35:33
◼
►
come yet. Ah. Okay. So, you're a little behind me. Now, Tiff, have yours come in yet?
00:35:37
◼
►
They have. I got them yesterday. Are they or are they not spectacular? I am so impressed.
00:35:42
◼
►
Like when I got that box, it is such high quality.
00:35:46
◼
►
I'm just ridiculously impressed.
00:35:48
◼
►
'Cause I just recently bought new glasses
00:35:50
◼
►
maybe like a month ago for the first time in 15 years,
00:35:54
◼
►
which is crazy.
00:35:55
◼
►
And they were way expensive.
00:35:57
◼
►
And when I finally got them, they ended up not fitting.
00:36:00
◼
►
So having this experience was perfect
00:36:04
◼
►
for kind of fixing the bad purchase I had before,
00:36:07
◼
►
which ended up costing so much more money
00:36:09
◼
►
than the Warby Parkers did.
00:36:11
◼
►
So what about you?
00:36:12
◼
►
I got a pair of sunglasses actually, so I have terrible eyes, but my eyes are so bad
00:36:17
◼
►
that I actually have to wear contacts.
00:36:19
◼
►
And I'm not going to get into the specifics about it, but I got a pair of non-prescription
00:36:23
◼
►
sunglasses and I did the home try-on thing.
00:36:26
◼
►
And one of the great things about the home try-on thing is you can say as I did, "Well,
00:36:30
◼
►
you know what, self?
00:36:31
◼
►
Let's reach a little and go out of our comfort zone and have Warby Parker send a pair of
00:36:37
◼
►
glasses that maybe you wouldn't have picked out if you just saw them on the rack."
00:36:40
◼
►
maybe something a little trendier than you're used to.
00:36:43
◼
►
And so I got these five pairs of sunglasses and I tried them all on and I ended up actually
00:36:49
◼
►
choosing one that was a little bit out of my comfort zone.
00:36:52
◼
►
And I got the final set about a week ago and I love them.
00:36:56
◼
►
They're really well built, really nice, and I have absolutely no complaints.
00:37:00
◼
►
And granted I'm kind of compelled to say that, but it really is genuinely true.
00:37:03
◼
►
Now John, you said you have or have not gotten yours.
00:37:06
◼
►
I got my Trion ones.
00:37:08
◼
►
The great thing about the Trion box is you pick five glasses, isn't that number?
00:37:12
◼
►
And I don't think there's an option to pick fewer or anything.
00:37:15
◼
►
And five is a good number because, like Casey said, it does make you pick like...
00:37:18
◼
►
Because you can usually pick your top three, and then after that you're like, "Well, I'm
00:37:21
◼
►
pretty sure I'm going to like one of these three that I picked, right?"
00:37:24
◼
►
"But I have two more slots to fill," and you pick weirder stuff.
00:37:26
◼
►
I did the same thing.
00:37:29
◼
►
And the other thing that impressed me is on the website, if you don't want to do the home
00:37:32
◼
►
of Trion, they have the thing where you can upload a picture of yourself and try it on.
00:37:35
◼
►
And I'm like, "Okay, there's gonna be something, I'll upload a picture and I'll paste a copy of the glasses over my face and it'll look stupid and I won't be able to tell if I'll like them."
00:37:42
◼
►
But they do this thing, I don't know how it works, they must be doing face detection, figuring out where your pupils are and then scaling it.
00:37:48
◼
►
And they have a floating 3D version of the glasses frames, so you can rotate it and angle it so that it matches how your face is in the photo.
00:37:58
◼
►
And it hides the little things that go over your ears so they don't overlap your face and everything.
00:38:03
◼
►
It's really impressive.
00:38:05
◼
►
I think I almost could have picked them out just
00:38:07
◼
►
from the website using the little 3D thing.
00:38:09
◼
►
I would really love to know how that works.
00:38:11
◼
►
I think it might be flash.
00:38:12
◼
►
I don't know what technology they're using behind it.
00:38:14
◼
►
But I was really impressed by that.
00:38:15
◼
►
But yeah, the fact that they're going to send you the glasses,
00:38:17
◼
►
you don't even have to bother with that if you don't want to.
00:38:20
◼
►
You get the glasses, and yeah, just take off the box
00:38:23
◼
►
and sit in front of the mirror, put on one, put on another one.
00:38:25
◼
►
And the great thing is I'm ordering sunglasses as well.
00:38:27
◼
►
They gave me sunglass lenses in my sunglasses.
00:38:29
◼
►
So it wasn't just empty-- sometimes at the eyeglass
00:38:32
◼
►
places, like it's just an empty frame with nothing in them or they're clear or whatever.
00:38:36
◼
►
These had actual sunglass, you know, like not prescription, right, because these are
00:38:39
◼
►
just a try-on pair, but you could see how they would look on you as sunglasses, which
00:38:42
◼
►
was nice. So I did pick the, you know, three pair that I thought I would like and the two
00:38:47
◼
►
exotic pair, and I ended up picking one of the ones I thought I would like because I
00:38:50
◼
►
guess I'm a boring person, but it was fun to try them out. And I didn't end up with
00:38:54
◼
►
the ones that I thought would be like my clear number one, like I don't need to do these
00:38:57
◼
►
five things, I know I'm going to like this one. I ended up picking like my third one.
00:39:01
◼
►
See, I did a second round of home try-ons because I was so excited about the sunglasses.
00:39:05
◼
►
I'm like, "Okay, I'm going to get a pair of regular glasses as well."
00:39:09
◼
►
And I only picked three for my home try-on.
00:39:12
◼
►
And so Warby Parker took it upon themselves to see the styles that I liked and that I
00:39:17
◼
►
picked and they filled in the rest of the other two in the box.
00:39:22
◼
►
And when I got them, I ended up picking one of the pairs that the Warby Parker people
00:39:27
◼
►
had picked for me, which was pretty impressive.
00:39:29
◼
►
So I thought that that was a really cool feature.
00:39:31
◼
►
So you can pick fewer than five, but they'll fill in for you.
00:39:36
◼
►
And they ended up making a better choice than even I did.
00:39:39
◼
►
They know you better than me.
00:39:40
◼
►
Who would pick fewer than five?
00:39:41
◼
►
Who would not?
00:39:42
◼
►
You have five slots.
00:39:43
◼
►
You fill them all.
00:39:44
◼
►
Say, "Hey, just give me a..."
00:39:45
◼
►
Well, this is my second round.
00:39:46
◼
►
So I had already done five.
00:39:48
◼
►
And then so I was going to do, I'm like, "Ah, there's three more."
00:39:51
◼
►
On the second round, you picked one of the ones that picked you.
00:39:53
◼
►
So you picked like altogether seven pairs of glasses and you didn't pick any, or no,
00:39:58
◼
►
eight pair of glasses, and you didn't pick any of your own eight. You picked the two
00:40:02
◼
►
that they gave you.
00:40:04
◼
►
Wow. That's pretty impressive.
00:40:05
◼
►
Yeah. So, yeah. They did a fantastic job. And Marco's hovering behind me, so I think
00:40:10
◼
►
he wants to get back on the air, but maybe I won't let him.
00:40:14
◼
►
Shove him out of the way. Nobody likes him anyway.
00:40:16
◼
►
Aw, poor Marco.
00:40:17
◼
►
No, I'm just kidding. Oh, thanks, Tiff. I appreciate the cameo.
00:40:22
◼
►
All right. Thank you, guys.
00:40:24
◼
►
She needs to get her own mic.
00:40:26
◼
►
I know. We should get her her own mic.
00:40:29
◼
►
I only have one mic. I'll have to rig that up.
00:40:31
◼
►
If only you had sold something recently so you can afford another.
00:40:35
◼
►
Anyway, let's finish this spot. So, a few more things I have to say.
00:40:38
◼
►
So, yeah. So, Warby Parker, they price their glasses affordably
00:40:43
◼
►
because they believe glasses are like a fashion accessory.
00:40:45
◼
►
And if each pair doesn't cost you like hundreds and hundreds of dollars,
00:40:49
◼
►
then you can afford to have more than one if you want to.
00:40:52
◼
►
And they know that not everybody can afford glasses.
00:40:55
◼
►
a whole lot of people in need who need glasses
00:40:57
◼
►
and who can't afford them.
00:40:59
◼
►
They have a great program called Buy a Pair, Give a Pair,
00:41:02
◼
►
where for every pair of their glasses sold,
00:41:05
◼
►
they also donate a pair to people in need.
00:41:08
◼
►
And that's really cool.
00:41:09
◼
►
And it's just so-- ultimately, they're
00:41:12
◼
►
a fantastic glasses company.
00:41:13
◼
►
They make high quality products.
00:41:14
◼
►
Tiff was also-- I don't think she mentioned.
00:41:16
◼
►
She's also very impressed by their quality
00:41:18
◼
►
relative to her expensive, professional ones from before.
00:41:22
◼
►
She said they're actually better in most ways
00:41:24
◼
►
than the one she got from her eye doctor.
00:41:26
◼
►
So very, very happy with this company.
00:41:29
◼
►
And so go to warbyparker.com.
00:41:32
◼
►
That's W-A-R-B-Y, parker, dot com.
00:41:35
◼
►
And when you order the home try-ons, do it, you know,
00:41:41
◼
►
When you order the final pair that you want to buy,
00:41:44
◼
►
use our coupon code ATP.
00:41:46
◼
►
And that'll get you free three-day shipping.
00:41:49
◼
►
So again, use coupon code ATP when
00:41:51
◼
►
you make your final purchase.
00:41:52
◼
►
and it'll get you free three-day shipping.
00:41:54
◼
►
So thanks a lot to Warby Parker.
00:41:57
◼
►
Great glasses company, thanks for sponsoring the show.
00:42:01
◼
►
- Apologies that took forever,
00:42:02
◼
►
but they really are that good.
00:42:03
◼
►
- Oh yeah, that's all right.
00:42:03
◼
►
I figured it was fun.
00:42:05
◼
►
And I even ran the idea by them of having Tiff Cummings.
00:42:07
◼
►
I'm like, look, and they have sunglasses and stuff,
00:42:09
◼
►
but I already have three pairs of sunglasses.
00:42:13
◼
►
Tiff was like, do you really need another one?
00:42:14
◼
►
And she actually really needed the glasses,
00:42:17
◼
►
'cause her existing ones that she'd just gotten
00:42:18
◼
►
were not fitting her at all.
00:42:20
◼
►
And so I ran it by them, the idea of having heard the ad read.
00:42:24
◼
►
They're like, yeah, sure, that's great.
00:42:26
◼
►
They're a fun company.
00:42:26
◼
►
So anyway, thanks a lot to them.
00:42:29
◼
►
I wanted to talk a little bit about an offshoot of the topic
00:42:32
◼
►
that we had right before the break about code,
00:42:36
◼
►
long-term health, and when things get too complex
00:42:39
◼
►
and they kind of buckle under their own weight.
00:42:44
◼
►
So the Instapaper web app, as we discussed, was very simple
00:42:46
◼
►
and didn't have too many of those problems.
00:42:48
◼
►
The iOS app, though, I'm afraid might, because on so many--
00:42:53
◼
►
I mean, this paper iOS app was in the App Store on day one.
00:42:56
◼
►
So the first bits of code were written for iOS 2.
00:42:59
◼
►
And most of the current code was written for iOS 3.
00:43:04
◼
►
And I've matured it over time to add features here and there.
00:43:09
◼
►
But the core code base, as is today,
00:43:13
◼
►
there's still some view structure in there from iOS 3.
00:43:18
◼
►
And there were some modern features
00:43:19
◼
►
that I never took advantage of, things like child view
00:43:22
◼
►
controllers, view controller containment, all that stuff
00:43:24
◼
►
that was introduced in, I think, five.
00:43:26
◼
►
I never even took advantage of that.
00:43:29
◼
►
And back then-- and the list of things
00:43:32
◼
►
that this applies to gets smaller every OS release.
00:43:35
◼
►
But over time, there's always been UI characteristics
00:43:40
◼
►
or effects that I've wanted to achieve.
00:43:44
◼
►
And the API, for whatever reason, didn't expose them.
00:43:48
◼
►
So you'd basically have to fake it or hack it somehow.
00:43:52
◼
►
And over time, Instapaper built up quite a lot
00:43:55
◼
►
of those for various things.
00:43:56
◼
►
And a lot of it was to its great advantage.
00:44:00
◼
►
Things like the iBook-style pagination,
00:44:04
◼
►
there was an API for that.
00:44:06
◼
►
But the structure of it made it almost impossible
00:44:09
◼
►
to use in any reasonable way with a web view.
00:44:13
◼
►
And of course, actually in iOS 7,
00:44:16
◼
►
I think they even said it on one of the slides.
00:44:18
◼
►
They've added pagination to web views.
00:44:20
◼
►
It's just a flag you can set.
00:44:22
◼
►
So one line of that will replace thousands
00:44:25
◼
►
of lines of Instapaper code.
00:44:27
◼
►
But over time, that really made Instapaper's iOS code base
00:44:35
◼
►
And there are a few hacks in there
00:44:37
◼
►
that are pretty uncomfortable.
00:44:39
◼
►
And so now I'm working on this new big app.
00:44:43
◼
►
And it's actually going to be a Business Insider Reader.
00:44:46
◼
►
That's the new app.
00:44:48
◼
►
So I'm working on this new app.
00:44:50
◼
►
And what I'm trying to do in the UI
00:44:54
◼
►
is avoid those kind of hacks as much as I can.
00:45:00
◼
►
If I want a certain really cool feature, rather than saying,
00:45:05
◼
►
oh, yeah, let me invest two weeks
00:45:08
◼
►
into making this tremendous pile of hacks
00:45:10
◼
►
that I'm going to hate in six months
00:45:12
◼
►
when I have to go back and change something
00:45:13
◼
►
and is going to have all these weird side effects
00:45:15
◼
►
because I just have to do that one feature.
00:45:18
◼
►
Rather than doing that, I'm trying--
00:45:20
◼
►
and this is actually pretty hard because I love doing
00:45:23
◼
►
those crazy hacks at the time--
00:45:25
◼
►
but I'm really trying to lean more towards just doing
00:45:31
◼
►
the 80% solution, doing whatever the UI affords me
00:45:35
◼
►
the ability to do easily, whatever the API allows
00:45:38
◼
►
in an easy way, just do that. And don't get into this giant pile of hacks style of,
00:45:44
◼
►
"Got to achieve this one crazy feature by doing this big pile of hacks."
00:45:48
◼
►
I don't know. What do you think? I don't know if that's realistic. Part of the reason
00:45:54
◼
►
I did it with Instapr was that A, it was cool; B, it got pressed; and C, it was a huge competitive
00:45:58
◼
►
advantage. I don't know. Maybe doing that sometimes is a good idea.
00:46:03
◼
►
Yeah, I think you can't avoid it because it makes you stand out.
00:46:08
◼
►
Maybe there's a brief honeymoon period with iOS 7 where merely just doing the standard
00:46:11
◼
►
UI in iOS 7 is enough for the day one launch, but all those things that InstaVapor did that
00:46:17
◼
►
made it different, it's branding.
00:46:19
◼
►
It's branding for your application, and even if it's just like, "Boy, I wish that could
00:46:22
◼
►
slide out instead of just appearing," and there's no way to do that.
00:46:26
◼
►
Well, if I make it a totally different element or if I do something with custom core animation
00:46:29
◼
►
layers instead of just using the UIKit navigation controller that does whatever it wants to
00:46:36
◼
►
It'll just add that extra little bit of difference there.
00:46:40
◼
►
And those little things add up and make your application stand out as, "Oh, this is not
00:46:44
◼
►
just a bunch of standard controls and widgets interacting in exactly the same way as they
00:46:48
◼
►
would in some demo application.
00:46:50
◼
►
It's got a little extra."
00:46:51
◼
►
And you have to find the balance between a little extra or a letterpress, right?
00:46:56
◼
►
So that's the continuum, right?
00:46:59
◼
►
And clearly, you're not even approaching full brick there, right?
00:47:03
◼
►
But you were saying, "Well, maybe InstaPaper, I saw what that was like when it lived over
00:47:08
◼
►
the course of three entire major releases of iOS, and it got a little creaky.
00:47:12
◼
►
So maybe just try to start out with as few of those as you can.
00:47:15
◼
►
Maybe just use one.
00:47:16
◼
►
There's just one effect or element or transition that I can't get that I'm going to do in a
00:47:23
◼
►
And it's something that people will see a lot, and it will distinguish my application.
00:47:25
◼
►
but I'm going to hold off on being like, "Boy, I really wish that I could get that
00:47:29
◼
►
thing to do that, but oh well, the thing that it does now is fine." Or, "I really
00:47:33
◼
►
wish that was a little bit different, but I'll just use the regular collection class."
00:47:36
◼
►
And even though the regular collection class doesn't display, doesn't reshuffle or show
00:47:40
◼
►
the titles the way I want, or wouldn't it be great if the title could fly on? All that
00:47:44
◼
►
stuff is going to annoy you about using Apple standard controls, especially the ones that
00:47:47
◼
►
are immature. But if you just sort of grin and bear it and pick your battles and maybe
00:47:50
◼
►
pick one or two places in the first version where you do fancy stuff, and then just wait.
00:47:55
◼
►
Like you said, if you wait long enough, maybe it'll get built in.
00:48:00
◼
►
The people who waited until page turning was built in, maybe had a competitive disadvantage.
00:48:04
◼
►
But there are other instances where people didn't have a competitive disadvantage if
00:48:09
◼
►
they just waited for some sort of navigation controller feature to appear, and you had
00:48:13
◼
►
hacked it in in version two and it appeared in version three.
00:48:16
◼
►
That was maybe not a worthwhile hack for something that most people didn't even know was a fancy
00:48:22
◼
►
Well, and it's also about where you're making these fancy hacks.
00:48:26
◼
►
So, for example, the iPad version of Instapaper had what basically was a collection view before
00:48:32
◼
►
there was a UI collection view.
00:48:33
◼
►
Isn't that right?
00:48:34
◼
►
It was called IP fake grid view.
00:48:35
◼
►
Yeah, exactly.
00:48:37
◼
►
And so, what I'm driving at is you could do something fairly wild with UI collection view
00:48:42
◼
►
that isn't standard but is supported.
00:48:47
◼
►
And that's a very fine line but a very important one.
00:48:49
◼
►
So here it is, you're taking UI Collection View, which is a completely standard component,
00:48:54
◼
►
but you're doing a wild, I don't remember what they call it, like a layout or whatever,
00:48:58
◼
►
you're doing a really wild custom layout in order to do something interesting.
00:49:02
◼
►
And if you look at WWDC 2012, when they were talking about the collection view, they did
00:49:07
◼
►
some unbelievably clever and trick things with the collection view with not a lot of
00:49:12
◼
►
code just by doing a custom layout.
00:49:14
◼
►
And so maybe the right answer is you choose easy and intelligent places to make these
00:49:19
◼
►
custom wild things happen that are kind of supported. Or maybe you just do some really
00:49:23
◼
►
wild stuff with core animation that isn't off the reservation, if you will, but it's
00:49:28
◼
►
different. And by doing it in places that are sort of designed to have this flexibility,
00:49:33
◼
►
then maybe that'll prevent some of that creakiness in the future.
00:49:37
◼
►
Yeah, like anything that supports views. Do something fancy in your view. And that is
00:49:43
◼
►
probably more maintainable than saying, "The thing that controls these views, that's
00:49:47
◼
►
that's where I'm going to do the fancy stuff, you know.
00:49:50
◼
►
- Yeah, exactly.
00:49:51
◼
►
I mean, that, like, 'cause you know,
00:49:52
◼
►
a lot of what, a lot of those hacks that I did
00:49:55
◼
►
over the years were things like transitions.
00:49:57
◼
►
And, and to some extent, the fake grid view was actually,
00:50:02
◼
►
honestly, the fake grid view was not that bad
00:50:05
◼
►
because it was self-contained.
00:50:06
◼
►
As you're saying, Jon, it's like,
00:50:08
◼
►
it was, it was, you know, it mimics a table view.
00:50:11
◼
►
In fact, it actually was a table view subclass,
00:50:13
◼
►
which is its own breed of craziness.
00:50:15
◼
►
and it worked like a table view. The data source, the delegate all worked the exact
00:50:19
◼
►
same way. It was actually pretty black boxy, so it wasn't really a problem.
00:50:27
◼
►
And you didn't have to write UI Collection View. You didn't have to say, "Oh, this
00:50:29
◼
►
is a completely flexible Collection View, and you can use it in any orientation with
00:50:32
◼
►
any number of rows and heights, and you can delegate the views to anything that wants
00:50:36
◼
►
to populate them." You didn't have to make that. You just had to make something
00:50:39
◼
►
that worked for Instapaper, which narrowly constrains what you have to do. So you can
00:50:43
◼
►
make your grid view work, you're not on the hook to make a general purpose collection
00:50:46
◼
►
view that works in a million different contexts.
00:50:48
◼
►
Right, exactly. So, you know, that really wasn't one of the hacks. The bigger hacks
00:50:53
◼
►
came from things like transitions. And, like, especially more on the iPhone. On the iPad,
00:50:59
◼
►
I was doing a lot more of my own custom UI. A very common practice, though, for programmers
00:51:05
◼
►
making iOS stuff is you want to generally stay within UIKit for a lot of uses, but then
00:51:12
◼
►
then you hit some kind of weird limitation, some kind of edge
00:51:17
◼
►
Probably it's in UI bar button item.
00:51:20
◼
►
And you hit some kind of edge case,
00:51:22
◼
►
and you're like, well, if I want this to do this thing,
00:51:26
◼
►
then I have to not even use UI toolbar.
00:51:29
◼
►
Or I have to re-implement my own button.
00:51:31
◼
►
Or something on a pretty large scale like that.
00:51:35
◼
►
And if you say yes to even a couple of those things,
00:51:38
◼
►
it starts getting kind of insane.
00:51:40
◼
►
And then if you start saying yes to things
00:51:42
◼
►
that involve multiple views and multiple controllers,
00:51:46
◼
►
like navigational structures or transitions,
00:51:49
◼
►
then it can start getting pretty hairy pretty quickly.
00:51:52
◼
►
And every OS release that comes out,
00:51:56
◼
►
this becomes easier to do in a supported or at least a cleaner
00:52:00
◼
►
You know, iOS 7 supports all sorts of cool new stuff
00:52:02
◼
►
to make a lot of these hacks either unnecessary
00:52:05
◼
►
or substantially better and more maintainable.
00:52:08
◼
►
And-- but there's always going to be that bleeding edge
00:52:12
◼
►
of things that aren't supported.
00:52:13
◼
►
And there's going to be-- I think
00:52:17
◼
►
it's a lot like when making this PaperWebApp,
00:52:21
◼
►
Instapaper itself was a collection
00:52:22
◼
►
of very, very simple things with two hard things, the text
00:52:27
◼
►
parser and the Kindle format thing.
00:52:29
◼
►
Those were two hard things, and I wrapped it
00:52:31
◼
►
with a bunch of easy things.
00:52:33
◼
►
If the number of crazy things that you're doing
00:52:35
◼
►
is pretty small, and everything else you're doing
00:52:37
◼
►
is pretty easy, then that is a competitive advantage.
00:52:40
◼
►
And you can get away with it.
00:52:41
◼
►
It's a matter of balancing those.
00:52:44
◼
►
So in my new app, I have this one really crazy low-level
00:52:49
◼
►
feature that I really want to do.
00:52:51
◼
►
But it's one of those things where it hits an edge of UIKit,
00:52:54
◼
►
and I'm going to have to do a lot of work
00:52:56
◼
►
to make that work right.
00:52:57
◼
►
And I'm weighing now, should I maybe
00:53:01
◼
►
shift version 1 without it?
00:53:03
◼
►
Because it's going to be so much work for one feature.
00:53:07
◼
►
But it's a pretty nice feature.
00:53:08
◼
►
You know, so it's, it's, it's always this battle in my head of like, do I do this?
00:53:13
◼
►
Do I not do this?
00:53:14
◼
►
I don't know.
00:53:14
◼
►
Yeah, it's a tough thing.
00:53:17
◼
►
And, and especially early on, you know, you don't know, you don't know when to say no
00:53:22
◼
►
yet a lot of the times, and, and what I hear you saying earlier to turn this into
00:53:26
◼
►
the Joel Spolsky, uh, rerun show is, you know, the kind of the broken windows thing
00:53:31
◼
►
where if you allow yourself early on to go a little bit wild, then the next time you
00:53:38
◼
►
have the question, "Well, can I get a little bit wild with this?
00:53:41
◼
►
I already did it before.
00:53:42
◼
►
Why not do it again?"
00:53:43
◼
►
It's a slippery slope.
00:53:45
◼
►
Especially if you're early on in development, as I know you are, it's better, in my opinion,
00:53:51
◼
►
in most cases, to try to stay as stock as possible and as simple as possible so that
00:53:56
◼
►
don't allow yourself to go absolutely crazy from the foundation up.
00:54:02
◼
►
Alright. Do we want to talk about something else that's awesome or do we want to wait
00:54:07
◼
►
another minute?
00:54:08
◼
►
We do. Let's do it now while there's a gap.
00:54:10
◼
►
Our second awesome thing is yet another new sponsor. I believe they're new to our show.
00:54:14
◼
►
They're not new to my site or me as a person, but they're Igloo, also known as Igloo Software.
00:54:20
◼
►
So Igloo is an intranet you'll actually like. Now, I don't know of anybody who, at least
00:54:26
◼
►
anybody who's never seen Igloo before. I don't know of anybody who has any kind of positive
00:54:31
◼
►
association with the word intranet. Generally these are horrible internal corporate sites
00:54:36
◼
►
that you're forced to use at your job that are badly made, badly maintained, barely work,
00:54:42
◼
►
and require you to use IE6 or some craziness like that. Nobody likes their intranet. Unless
00:54:48
◼
►
they're Igloo customers, because Igloo actually makes an intranet that you will like and that
00:54:53
◼
►
that your workers were like.
00:54:55
◼
►
You can share content quickly with all sorts of built-in apps.
00:54:58
◼
►
They have blogs, they have calendars, file sharing,
00:55:01
◼
►
forums, they have Twitter-like micro blogs, Wikis.
00:55:05
◼
►
And everything can be social.
00:55:06
◼
►
You can comment on any type of content.
00:55:08
◼
►
You can @reply, you can @mention your coworkers Twitter style.
00:55:12
◼
►
You can follow content for updates.
00:55:14
◼
►
You can tag things.
00:55:15
◼
►
You can group things.
00:55:16
◼
►
You can add on rooms.
00:55:18
◼
►
You can have mini igloos for certain teams,
00:55:20
◼
►
certain divisions to work in.
00:55:21
◼
►
The whole thing, all these features are very, very easy.
00:55:25
◼
►
It's drag and drop.
00:55:27
◼
►
It has responsive design.
00:55:28
◼
►
It uses beautiful typekit fonts.
00:55:30
◼
►
These people will really know their stuff.
00:55:32
◼
►
And it's like they're applying all the awesome, modern,
00:55:37
◼
►
progressive design and features that we get on the consumer
00:55:40
◼
►
web to the internet world.
00:55:41
◼
►
And that's extremely rare.
00:55:44
◼
►
So they're doing it all for you.
00:55:46
◼
►
Plus, Igloo has enterprise-grade security.
00:55:52
◼
►
You can start using it right away.
00:55:54
◼
►
It's free to use up to 10 people.
00:55:55
◼
►
That's pretty cool.
00:55:56
◼
►
If you have a staff of 10 people or less, it's totally free.
00:55:59
◼
►
So go start using it today.
00:56:01
◼
►
And when it grows, it's only $12 per person per month.
00:56:04
◼
►
For a business, this is extremely affordable,
00:56:07
◼
►
way cheaper than developing your own,
00:56:09
◼
►
and it's just so much better.
00:56:11
◼
►
It's worlds better than most people's internets.
00:56:13
◼
►
So go to igloosoftware.com/atp.
00:56:17
◼
►
That's igloosoftware.com/atp.
00:56:20
◼
►
Start building your igloo today.
00:56:21
◼
►
Free to use up to 10 people.
00:56:24
◼
►
Thanks a lot to igloo software.
00:56:25
◼
►
They're a fantastic sponsor.
00:56:27
◼
►
They sponsored lots of great podcasts.
00:56:28
◼
►
They actually listen to the shows, which is pretty great.
00:56:31
◼
►
And so they've done inside jokes on some of the shows.
00:56:35
◼
►
In fact, let me go to this page.
00:56:38
◼
►
And sure enough, it says, welcome ATP listeners up top.
00:56:41
◼
►
And they're fans.
00:56:43
◼
►
They're fans of our stuff.
00:56:45
◼
►
They appreciate what we do.
00:56:46
◼
►
So give them a shot.
00:56:48
◼
►
igloosoftware.com/atp.
00:56:50
◼
►
Thanks a lot to Igloo for making awesome intranets
00:56:53
◼
►
and sponsoring our show.
00:56:56
◼
►
They should have a program where they send people
00:56:58
◼
►
to your office to convince the powers that be that they should
00:57:01
◼
►
get rid of their client.
00:57:02
◼
►
Because that is often the-- I wish
00:57:04
◼
►
I could get rid of my intranet and replace it with Igloo,
00:57:06
◼
►
but I can't.
00:57:06
◼
►
Because I'm in a 2,000 person company,
00:57:08
◼
►
and I'm one employee, right?
00:57:09
◼
►
So it's like, they just have a team that says,
00:57:11
◼
►
"Look, you need to change."
00:57:12
◼
►
Because I wish, I wish we didn't have to use
00:57:15
◼
►
the things we're using.
00:57:16
◼
►
- Oh, they also have a sandwich video.
00:57:19
◼
►
I mean, come on, how cool is that?
00:57:20
◼
►
- How can you go wrong with a sandwich video?
00:57:22
◼
►
- Yeah, so check them out, they're awesome.
00:57:24
◼
►
Man, internets. - If nothing else,
00:57:25
◼
►
go watch the sandwich video.
00:57:26
◼
►
- Internets are so bad usually.
00:57:28
◼
►
Oh man, I mean, this is one of those problems.
00:57:31
◼
►
It's like when we have hover advertising,
00:57:34
◼
►
it's like everyone has seen terrible domain registrars.
00:57:36
◼
►
Well, everyone has seen terrible internets.
00:57:39
◼
►
Without revealing too much, only recently was I able to do something without using Java
00:57:45
◼
►
in my web browser on my internet.
00:57:47
◼
►
Remember Java in the browser?
00:57:50
◼
►
Only recently was there a non-Java way to do it.
00:57:53
◼
►
I'm like, "Yes!"
00:57:54
◼
►
Small victories.
00:57:55
◼
►
I actually recently wished for Java in the browser to work again.
00:57:58
◼
►
For some reason, my machine just doesn't work anymore.
00:58:00
◼
►
I don't know if I installed it from one of the security things recently or what.
00:58:06
◼
►
my LiveFish.com fish show downloader.
00:58:10
◼
►
Like every time there's a fish tour, I buy it,
00:58:13
◼
►
and then every night of the concert,
00:58:15
◼
►
I can go download the show from that night.
00:58:17
◼
►
And they have a Java multi-file downloader thing,
00:58:20
◼
►
and that hasn't worked.
00:58:22
◼
►
So I've had to hold that option and just click all the links
00:58:25
◼
►
It's really a hard life.
00:58:27
◼
►
Like an animal.
00:58:28
◼
►
Yep, exactly.
00:58:29
◼
►
It's too bad you can't write a program to automate that for
00:58:32
◼
►
I thought about actually writing-- or at least
00:58:34
◼
►
trying to find a Safari extension.
00:58:36
◼
►
I'm sure somebody--
00:58:38
◼
►
Not just Safari extensions.
00:58:39
◼
►
Just do the ghetto way where you copy and paste the source
00:58:42
◼
►
and run it through a thing and make a bunch of--
00:58:46
◼
►
I could do that, but there might be some kind of weird session
00:58:48
◼
►
I don't know.
00:58:49
◼
►
Because it's all authenticated because it's at the bottom.
00:58:52
◼
►
Grab your cookie jar.
00:58:55
◼
►
I've done it many times trying to grab WWDC things,
00:58:57
◼
►
grab Apple videos.
00:58:58
◼
►
And every time I do it, I'm like,
00:58:59
◼
►
you know, I should have a tool that does this,
00:59:01
◼
►
not bother to do it the crappy way again.
00:59:02
◼
►
Just paste into BB Edit and repeatedly hold down
00:59:05
◼
►
insane chords that involve like three or four modifiers at the same time that I've nonetheless
00:59:11
◼
►
memorized to grind the files up into bits and then throw in a double score data token
00:59:17
◼
►
and start writing pro code on top of it and make a series of scripts to process it.
00:59:23
◼
►
Actually what this really should be is a bookmarklet because then you're running right in the context
00:59:26
◼
►
of the page.
00:59:27
◼
►
It'd be really, really easy to make that.
00:59:28
◼
►
Yeah, and you could write it in JavaScript too.
00:59:31
◼
►
All right, so what else do we want to talk about?
00:59:34
◼
►
John, I know you had an interesting topic you wanted to bring up.
00:59:37
◼
►
Yeah, this was LinkedIn Daring Fireball, I think, today.
00:59:40
◼
►
I think that's where I got it from.
00:59:42
◼
►
And the title of the story is "Regular people have no idea how to manage photos on their
00:59:46
◼
►
phone," which is not really so much what I want to talk about.
00:59:49
◼
►
I want to talk about the points that were gotten to at the end of this thing.
00:59:53
◼
►
I don't even know who wrote it.
00:59:54
◼
►
Bradley Chambers.
00:59:55
◼
►
Yeah, okay, Bradley Chambers.
00:59:57
◼
►
And he's talking about the problem with photo management on your phones.
01:00:00
◼
►
People just buy phones and they take pictures with them.
01:00:04
◼
►
I think about this with all my relatives and non-technical friends who have phones.
01:00:10
◼
►
What do they think about?
01:00:11
◼
►
They own a phone, right?
01:00:13
◼
►
And they're taking pictures with it.
01:00:14
◼
►
Sometimes they're pictures that they care about, like pictures of their kids or at their
01:00:16
◼
►
soccer game or their son scoring his first goal.
01:00:20
◼
►
They're important memories, right?
01:00:22
◼
►
Did they ever think about what happens if you drop your phone out your car window when
01:00:27
◼
►
you're driving or something?
01:00:29
◼
►
What happens if you spill coffee on it?"
01:00:31
◼
►
I think they don't think those photos are gone forever.
01:00:34
◼
►
I think they just think the photos are magically safe, or maybe they don't.
01:00:38
◼
►
I don't even know what regular people think about this.
01:00:39
◼
►
But the bottom line is that Apple doesn't take care of you or your data to the degree
01:00:45
◼
►
that I think it should.
01:00:47
◼
►
This was way back when I first started writing on the FatBits blog on Ars Technica years
01:00:52
◼
►
and years ago.
01:00:53
◼
►
One of the first things I wrote about was this problem that Apple has made these devices
01:00:58
◼
►
and encouraged everyone, even back in the Digital Hub days, to put your most precious
01:01:03
◼
►
possessions—precious non-living possessions—on their hardware, and then they don't care
01:01:09
◼
►
what the hell happens to it after that.
01:01:11
◼
►
Not that it's that bad, but I think there should be more concern about taking care of
01:01:17
◼
►
Because seriously, if your house burns down, your family and your pets all get out alive,
01:01:22
◼
►
the first thing that you care about, other than hoping you had some kind of insurance,
01:01:25
◼
►
is probably like your family photos or your movies, because those things can't be replaced.
01:01:28
◼
►
You can buy a new car, you can buy new furniture, you can build a new house, as long as everyone
01:01:31
◼
►
is safe, but you can't recreate those photos.
01:01:36
◼
►
We have all these devices to make these memories.
01:01:39
◼
►
What's keeping them safe?
01:01:40
◼
►
And unless you're a nerd and have this crazy backup regime and know exactly where the problems
01:01:45
◼
►
are, your stuff is completely vulnerable.
01:01:49
◼
►
And we're so close now to having a technology where Apple or any other company could take
01:01:53
◼
►
care of us, and yet they don't.
01:01:54
◼
►
And so the problem with the photos on your phone is you start taking pictures and you
01:01:58
◼
►
keep going, and once you get past like a thousand pictures, or whatever the limit of, what is
01:02:04
◼
►
it, five gigabytes free they give you in iCloud, those photos may only be on your phone.
01:02:11
◼
►
And if you drop your phone in the ocean, you lost all the photos that weren't in the last
01:02:15
◼
►
thousand that are in PhotoStream or something.
01:02:17
◼
►
That's if you, assuming you got through the process and got us up in PhotoStream or whatever,
01:02:21
◼
►
I don't know if people just assume that Apple's still carrying their pictures, but at this
01:02:23
◼
►
point, Apple should be taking care of everything. Apple's devices should be designed in such
01:02:29
◼
►
a way that if they're network-connected devices, that if you smash your computer with the hammer,
01:02:32
◼
►
and if your house burns down, if you throw your iPhone in the ocean, your data should
01:02:36
◼
►
still be available. And I'm not saying Apple needs to make that happen for free, but they
01:02:41
◼
►
need to figure out some way to make it happen. And back when I wrote about this on FatBits
01:02:44
◼
►
ages ago, it was like I was saying that every single computer should come with at least
01:02:47
◼
►
two hard drives, but you shouldn't tell people that there's two in there, and all your data
01:02:50
◼
►
should be redundant at all times, right?
01:02:53
◼
►
Because hard drive failure was a big problem.
01:02:55
◼
►
Online backups weren't tenable back then because people didn't have fast enough internet connections.
01:02:58
◼
►
So they're saying, "Look, at least make it so that if someone's hard drive dies, they
01:03:01
◼
►
don't lose all the picture of their kids.
01:03:02
◼
►
Always have double."
01:03:03
◼
►
And who can afford to do that?
01:03:05
◼
►
Apple is the only company.
01:03:06
◼
►
Because everyone else had razor-thin margins, but Apple maybe could build it into the price
01:03:09
◼
►
of their devices or whatever.
01:03:12
◼
►
And at the end of this article, it has a suggestion that's like, again, may not be economically
01:03:16
◼
►
feasible, but it would be nice, and it's the same type of thing.
01:03:19
◼
►
Make iCloud free for the total size of all active devices.
01:03:24
◼
►
So if you have a 16 gigabyte iPhone or a 32 gigabyte iPad, you should get 48 gigabytes
01:03:29
◼
►
of iCloud for backup.
01:03:30
◼
►
So at the very least, every single byte of data that's on your phone and your iPad can
01:03:33
◼
►
be backed up.
01:03:34
◼
►
And if you buy a new iPad and it's 32 gigabytes, boom, you get another 32 gigabytes of storage.
01:03:39
◼
►
Make that the default.
01:03:41
◼
►
If possible, make it free.
01:03:42
◼
►
If you can't make it free, build it into the price of the device.
01:03:45
◼
►
They're already premium-priced devices.
01:03:48
◼
►
If Apple would commit to this, they could be the vendor that gets the reputation like,
01:03:52
◼
►
"Oh yeah, Apple costs more," but you won't have to worry about losing your data.
01:03:56
◼
►
They keep it.
01:03:57
◼
►
They protect it all for you.
01:03:58
◼
►
They'll keep it backed up.
01:03:59
◼
►
You don't have to worry about monthly fees and all these other things and worrying about
01:04:04
◼
►
your backup things.
01:04:05
◼
►
You can buy an iPhone, take pictures with it, chuck it into a fire, go to the Apple
01:04:10
◼
►
store, get a new iPhone.
01:04:11
◼
►
Whether you have to buy it or not, don't worry.
01:04:12
◼
►
Your pictures will be there.
01:04:13
◼
►
Apple does not have that reputation.
01:04:14
◼
►
Nobody has that reputation now, but the first person to get that reputation, it will be
01:04:18
◼
►
be worth a lot to people because I think most people are using these devices and using their
01:04:23
◼
►
computers and stuff, and all their digital memories are completely vulnerable and could
01:04:28
◼
►
be destroyed at any moment.
01:04:29
◼
►
And they're just crossing their fingers hoping it doesn't happen.
01:04:31
◼
►
You know, you're absolutely right.
01:04:33
◼
►
And I had a friend call me maybe a month or two ago, and he said, "Oh, my wife, I think
01:04:39
◼
►
we're going to get a new iPhone."
01:04:41
◼
►
And of course, this was just a month or so ago.
01:04:44
◼
►
And I said, "Oh my God, no.
01:04:46
◼
►
The 5S is coming out soon.
01:04:47
◼
►
What are you thinking?"
01:04:48
◼
►
And so he said, "Well, she's out of space."
01:04:51
◼
►
"It's okay, well, try to take stuff off her phone then."
01:04:54
◼
►
"Well, she's got so many pictures on there."
01:04:57
◼
►
"Well, I mean, depending on how many pictures
01:04:59
◼
►
you're talking about, that may or may not be the problem."
01:05:00
◼
►
"Well, and she also, she takes a lot of video."
01:05:02
◼
►
"Oh." - Oh, boy.
01:05:04
◼
►
- "Oh, goodness."
01:05:05
◼
►
And so it took talking to both,
01:05:09
◼
►
well, they're both my friends,
01:05:10
◼
►
but talking to my friend, the husband who called me
01:05:12
◼
►
and his wife, it took a while talking to them
01:05:15
◼
►
and saying, "No, no, no, you've gotta get this stuff
01:05:17
◼
►
your phone because not only is it not secure on your phone like John is saying, but it's
01:05:21
◼
►
taking up a crud load of space, especially 1080 video. I mean, 30 seconds of video is
01:05:25
◼
►
like 8 gazillion gigs. And so you have to get that off your phone. There's no need to
01:05:30
◼
►
buy a new phone just for that.
01:05:31
◼
►
And then where are they going to put it? The next question you're going to be is going
01:05:34
◼
►
to say, "Okay, well, when I take it off my phone, where do I put it?" And it used to
01:05:38
◼
►
be at least you could assume they had a personal computer, put it onto your personal computer.
01:05:41
◼
►
But that's just another place where it can die because you put it on your personal computer
01:05:44
◼
►
and then that person's computer's hard drive is going to die in t-minus two and a half
01:05:47
◼
►
years. And what's going to happen is you know they're not doing backups, right? And they're
01:05:50
◼
►
probably not even doing time machine because they didn't want to buy a second hard drive
01:05:53
◼
►
and hook it up.
01:05:55
◼
►
Ugh. Like, there's no-- you want them to be taken care of. You want to be able to just
01:05:59
◼
►
tell them, like, you could-- like, you know, what kind of computer should I buy? Get a
01:06:01
◼
►
Mac, right? You want to be able to say, what should I do about backups? You want to be
01:06:04
◼
►
able to say something like, are you signed up for iCloud on all your devices? Yes, then
01:06:09
◼
►
you're fine. But you can't say that. There's nothing you can say to them. You have to have,
01:06:12
◼
►
have a seven-hour conversation about backup strategies that's going to make their eyes
01:06:15
◼
►
glaze over. And even at the end of it, you're going to be going back home wondering, "Are
01:06:18
◼
►
they ever going to do anything that I suggested? Are they going to forget about it? Is their
01:06:21
◼
►
time machine drive not going to be mounted and they're not going to notice for six months
01:06:24
◼
►
and they're going to lose all..." We, as technical people trying to support less technical people,
01:06:30
◼
►
don't have any peace of mind about this. And in reality, we're so close to having... We
01:06:34
◼
►
have basically the technology and it's just an economic problem and a problem of will.
01:06:40
◼
►
Google has come the closest with the Chromebook initiative.
01:06:43
◼
►
That presentation they originally did on the Chromebook, despite the fact that just using
01:06:46
◼
►
a really expensive but nice-looking laptop that only has a web browser is not appealing
01:06:51
◼
►
yet to people and is kind of limiting, they had the right idea with like, "Take your Chromebook,
01:06:56
◼
►
run it over the steamroller.
01:06:57
◼
►
Don't worry about it.
01:06:58
◼
►
Get a new Chromebook.
01:06:59
◼
►
Type in your stuff.
01:07:00
◼
►
Everything is back.
01:07:01
◼
►
You didn't lose a thing.
01:07:02
◼
►
As long as we had time to upload it, you're fine."
01:07:04
◼
►
Well, but hold on, though.
01:07:06
◼
►
That's a big problem.
01:07:08
◼
►
Time to upload.
01:07:09
◼
►
- Well, I know.
01:07:09
◼
►
- Yeah, think about that.
01:07:10
◼
►
That's one of the big problems holding this up right now.
01:07:12
◼
►
It isn't just about there's no web services
01:07:14
◼
►
that are highly integrated that are doing all this for you
01:07:16
◼
►
for low cost or for free.
01:07:18
◼
►
That isn't the main problem.
01:07:20
◼
►
The main problem is think about how many people own iPhones
01:07:25
◼
►
or devices like iPhones who are in a situation
01:07:30
◼
►
or have a home connection or have data caps
01:07:33
◼
►
in which uploading things to cloud backup,
01:07:36
◼
►
uploading photos and videos to cloud backup
01:07:38
◼
►
on a regular basis is impractical.
01:07:41
◼
►
You don't have to always upload it.
01:07:42
◼
►
Think about when we did the transporter spot.
01:07:45
◼
►
We have the technology to do most of those things.
01:07:47
◼
►
If you could just say, "Buy a bunch of these things and stick them around your house like
01:07:49
◼
►
potted plants, and put one in your office and give one to your friend."
01:07:54
◼
►
If it was just easy enough for you to do it, we're close.
01:07:57
◼
►
We're really, really close to being economically feasible for someone who can afford an iPhone
01:08:01
◼
►
to never have any excuse to lose their data.
01:08:03
◼
►
Even if it's not cloud, cloud would be the third tier.
01:08:06
◼
►
The second tier is have a computer system that's redundant.
01:08:10
◼
►
The other tier is have a bunch of little network-attached wireless storage nodes around your house.
01:08:16
◼
►
It's like a caching hierarchy where on the device is good, and then when you get back
01:08:19
◼
►
home to your 802.11ac wireless that's super-duper fast that everyone's going to have in five
01:08:26
◼
►
years or whatever it's going to take for that to start to penetrate, that'll go to your
01:08:29
◼
►
little transporter-type devices or your time capsule or whatever.
01:08:32
◼
►
Then the next thing is it'll be uploading to iCloud when you're asleep, and if you have
01:08:36
◼
►
have your slow connection, it will like, you know, we're almost there. It's just a
01:08:40
◼
►
matter of like working out a system and then some company committing to it and
01:08:43
◼
►
saying, "You know what? We're going to be responsible for protecting your data." Not
01:08:46
◼
►
saying things like, "When you're coming to the Genius Bar, make sure you have a
01:08:49
◼
►
backup," and knowing everyone's gonna look at that and go, "Yeah, whatever," and then
01:08:53
◼
►
be pissed when all the data's gone, when their computer gets repaired. Like, I'm
01:08:56
◼
►
sure it happens all the time to them, and I, like, it's in Apple's interest as like
01:08:59
◼
►
the premium vendor and the guy who makes the hardware and software, and now they
01:09:02
◼
►
have web services to get there before someone else does and figure this thing out.
01:09:07
◼
►
Well, it's more than that too, though, isn't it?
01:09:10
◼
►
Because say you're on a vacation.
01:09:13
◼
►
Say when Marco and Tiff and Erin and I were in Germany, what if I took a whole bunch of
01:09:17
◼
►
pictures on my iPhone because I'm not a photographer and I don't have a fancy-pants camera.
01:09:22
◼
►
I take a whole bunch of pictures on my iPhone, which at this point are irreplaceable.
01:09:25
◼
►
I may or may not have had access to any network connection, but particularly Wi-Fi.
01:09:32
◼
►
And all of a sudden now all those pictures are gone because Marco ran over my phone with
01:09:38
◼
►
But you have access to each other.
01:09:39
◼
►
So you should be able to, if a family—this gets into the whole thing about families—if
01:09:42
◼
►
you guys all go on a trip together, you should be able to enter into an arrangement whereby
01:09:46
◼
►
all of your own things are transferred among yourself in the little circle of the ad hoc
01:09:50
◼
►
network that is your people there.
01:09:52
◼
►
So if you drop your phone, "Oh, don't worry.
01:09:54
◼
►
I've got all your pictures.
01:09:55
◼
►
They got pulled down onto my MacBook Air," or some percentage of them.
01:10:01
◼
►
The technology is there for all these things to work.
01:10:03
◼
►
It's just a question of working out the interface and the decision to do it.
01:10:06
◼
►
It shouldn't be like that your device is Little Island and that you guys could go on a week-long
01:10:12
◼
►
vacation with no internet access and as soon as you drop your phone, all those pictures
01:10:17
◼
►
We should be able to stop that from happening in some way.
01:10:20
◼
►
Yeah, I don't know.
01:10:23
◼
►
There's always this balance between ease of use for regular people and getting around
01:10:30
◼
►
all these edge cases.
01:10:31
◼
►
So the ways to get around all these edge cases usually involve local hardware, where you
01:10:38
◼
►
have either a time machine disk or a time capsule.
01:10:41
◼
►
And by the way, why don't iPhones back up to time capsules?
01:10:43
◼
►
But OK, that's a separate question.
01:10:46
◼
►
So you have things like that to avoid the whole bandwidth and data cap issue.
01:10:52
◼
►
But those things are all things that regular people are often going to either not think
01:10:57
◼
►
they need and therefore not buy because it's expensive or they're not going to do it right
01:11:02
◼
►
in the way that like I'm sure everyone listening to the show has at some point had a friend
01:11:08
◼
►
or relative say, "Oh, well, I lost files. My hard drive, can you help me get them back?"
01:11:13
◼
►
And you say, "Oh, okay, yeah. Did you have a backup?" And they say, "Yes." And you go
01:11:16
◼
►
over to their house and they're here. All my files were on my backup drive. You get
01:11:24
◼
►
it, yeah, it's sinking in. You know these people?
01:11:28
◼
►
Where they buy an external hard drive, because the laptop drive is too small,
01:11:32
◼
►
so they buy an external hard drive, and that just becomes the place where they put all their files.
01:11:36
◼
►
And they think it's a backup drive, because it's an external hard drive. And they call
01:11:40
◼
►
it a backup, and they think of it as a backup, but it's just one hard drive with their files on it.
01:11:44
◼
►
I just, I tuned out as soon as you said you had friends
01:11:48
◼
►
that had backups that are normal people. Yeah, no one ever has backups.
01:11:52
◼
►
- People call external drives backup drives.
01:11:55
◼
►
- Well now I'm with you, but I was still trying
01:11:57
◼
►
to process the thought of a regular person,
01:11:59
◼
►
not a nerd, saying yes, I do have a backup.
01:12:01
◼
►
- Anyway, so you have those people,
01:12:03
◼
►
or you have the people who,
01:12:06
◼
►
if you try to make it work for all these edge cases,
01:12:09
◼
►
'cause the other problem is that these modern devices,
01:12:11
◼
►
the cameras keep getting better,
01:12:13
◼
►
so you have these devices that you mentioned with the video.
01:12:16
◼
►
You can't just tell a regular person,
01:12:17
◼
►
oh, well all your photos will be backed up
01:12:19
◼
►
in low resolution for a little while,
01:12:21
◼
►
but your videos mostly won't be
01:12:23
◼
►
because they're 400 megs each and that's impractical.
01:12:27
◼
►
So you get around that stuff by having local stuff
01:12:29
◼
►
that avoids the network.
01:12:30
◼
►
Once you involve the network though,
01:12:32
◼
►
it can be easy and automatic for everyone.
01:12:34
◼
►
So you either have local stuff that is expensive
01:12:38
◼
►
and can be easily misconfigured or screwed up
01:12:41
◼
►
that can back up everything or internet-based stuff
01:12:46
◼
►
that can be automatic and foolproof
01:12:49
◼
►
but you have that problem of bandwidth and data caps,
01:12:52
◼
►
and therefore usually can't back up everything.
01:12:55
◼
►
- Well, like I said, we're so close.
01:12:57
◼
►
It's kind of like when we just barely got the technology
01:13:00
◼
►
to do digital distribution of audio,
01:13:02
◼
►
because MP3 came out,
01:13:03
◼
►
but we still couldn't really do movies or TV, right?
01:13:05
◼
►
And even today, audio is like, no problem.
01:13:08
◼
►
We throw around songs, they're tiny files,
01:13:11
◼
►
they're easy to go.
01:13:12
◼
►
The bandwidth and the memory capacity and computing,
01:13:15
◼
►
everything totally went past audio.
01:13:17
◼
►
but for video, we're like, you can buy TV shows,
01:13:21
◼
►
but we can't really store them all,
01:13:22
◼
►
and we can't really have a big hard drive,
01:13:25
◼
►
so some of them will stream, and we can kinda stream 1080p,
01:13:27
◼
►
but it doesn't look like we're just on the edge
01:13:29
◼
►
of being able to handle video,
01:13:31
◼
►
and for things like video you record yourself in 1080p,
01:13:33
◼
►
that's probably outside the realm of what we can handle,
01:13:35
◼
►
but we're right on the cusp,
01:13:37
◼
►
and I think it's okay to start with,
01:13:39
◼
►
we can only do songs, but only crazy people
01:13:42
◼
►
are downloading videos on the internet,
01:13:43
◼
►
like back in the Napster days, right?
01:13:45
◼
►
just doing it for songs is a big win, and it lets you sort of work out the kinks of
01:13:51
◼
►
how things go, so that eventually, 10, 15 years later, when feature-length movies start
01:13:57
◼
►
to become possible, TV is like, "Oh, well, we kind of already worked this stuff out with
01:14:00
◼
►
the iTunes Music Store," and it's like a natural extrapolation to do movies.
01:14:06
◼
►
For backups, we should have been traveling the same road, but haven't been. It needs
01:14:10
◼
►
to be ambient, like Wi-Fi. Wi-Fi, wireless networking with a technology that nobody could
01:14:14
◼
►
and now everybody can use it.
01:14:16
◼
►
And how do we go from something that nobody uses to something that's like,
01:14:19
◼
►
"Oh, just every coffee shop has Wi-Fi, everyone has Wi-Fi."
01:14:22
◼
►
How do you get on the Wi-Fi?
01:14:24
◼
►
If you told somebody back in the early days of computer networking
01:14:26
◼
►
that regular people were going to be able to walk into a building
01:14:30
◼
►
and get on the network, they'd be like, "You can't get on the network.
01:14:32
◼
►
You need a network administrator to help them,
01:14:34
◼
►
and they're going to configure the network stack on their operating system?
01:14:37
◼
►
No, they're not going to do that."
01:14:39
◼
►
You work it out until you get to a system that people can use.
01:14:43
◼
►
There's an investment in deep technology that Apple is not really doing, Google is
01:14:50
◼
►
kind of doing, that makes that possible.
01:14:53
◼
►
It's not like one company came up with this wireless network and a spread everywhere.
01:14:56
◼
►
Wi-Fi and those Wi-Fi standards, that is deep, deep technology that you can't just like,
01:15:00
◼
►
"Well, we sort of came up with something in six months and I think this is how we're
01:15:04
◼
►
going to do wireless networking."
01:15:06
◼
►
You have to have really smart people think about it for a long time and go through a
01:15:09
◼
►
process and get hardware vendors on board and revise, revise, revise over and over again.
01:15:15
◼
►
And then finally, eventually, 10, 15, 20 years later, you reach the promised land.
01:15:20
◼
►
You can't just say, "Well, we're going to do backups and we'll have some device out
01:15:24
◼
►
there and it will copy stuff and it'll make this photo stream service and we'll have iPhoto
01:15:28
◼
►
upload to it so we'll have the iPhoto team work on it."
01:15:30
◼
►
You've got to think of it as the overall problem and say, "We need some sort of tiered storage
01:15:37
◼
►
architecture that works on any device, and we're going to take the next five years to
01:15:41
◼
►
develop this architecture, and we're going to start small, and it's going to be like
01:15:44
◼
►
peer-to-peer between our devices, and it's also going to be pushing things up to the
01:15:48
◼
►
highest level they can get, and encrypted and shared, and maybe we'll have a new file
01:15:52
◼
►
system of some kind mixed in there so you can send efficient block diffs between—I
01:15:57
◼
►
don't even want to talk about it. But that kind of deep core technology, you've got
01:16:03
◼
►
to work on that for years before you get any bang out of it. If you don't work on it,
01:16:07
◼
►
All you're going to have is these half-assed solutions that, like Marco said, you end up
01:16:09
◼
►
having edge cases that you think no one's going to be able to handle.
01:16:13
◼
►
You can't just sit around waiting magically for us to have gigabit upload bandwidth from
01:16:17
◼
►
everywhere into a magic cloud that, you know, I guess maybe that will come eventually.
01:16:22
◼
►
But we're close enough now, like photos, I think, is the thing, you could handle people's
01:16:27
◼
►
Maybe you can't handle their videos.
01:16:28
◼
►
Maybe their videos are still screwed on because they're just too darn big and the ability
01:16:31
◼
►
to record video outpaced our other stuff.
01:16:34
◼
►
But I think Apple and everybody else are dropping the ball on this, and we really need a solution.
01:16:39
◼
►
With the hardware that's here, this stuff could work.
01:16:42
◼
►
We just don't have the software to do it, and that's a failure of the software guys,
01:16:47
◼
►
Well, I also wonder if we don't have the impetus to do it.
01:16:50
◼
►
What I mean by that is I almost feel like we need computer hardware, specifically mass
01:16:57
◼
►
storage, to be less reliable in order to force regular people to care enough to demand these
01:17:03
◼
►
things. Yeah, like that's work for Google, because they had so many servers that you
01:17:07
◼
►
just have to build expecting them to fail, and that's not the case with individual hardware.
01:17:11
◼
►
Right, and it's like the argument that the only way we'll get more efficient cars is to make gas
01:17:16
◼
►
four times more expensive than it is. It's a similar thing where if hard drives failed
01:17:21
◼
►
constantly, then people would know, "I'm going to need four copies of these pictures, because I know
01:17:27
◼
►
one or two of the four are going to die in the next six months." Yeah, we need personal chaos
01:17:31
◼
►
monkeys. You know about the chaos monkey? Yeah, Netflix, right?
01:17:33
◼
►
Yep, yep. Love that.
01:17:36
◼
►
Every company should have a chaos monkey. And I'm not sure if it's like, Netflix still
01:17:39
◼
►
does it, or it was a one-time thing, or it was a PR stunt, or they really have a thing
01:17:42
◼
►
like that. But for people who don't know, the chaos monkey is, within Netflix, the idea
01:17:46
◼
►
that they have something intentionally going around screwing up their systems to test that
01:17:51
◼
►
their redundancies work. So they don't wait for things to fail. They have an active program
01:17:55
◼
►
or series of programs that go around and break stuff in their own data centers to prove to
01:18:00
◼
►
themselves that, "Okay, if this type of machine goes down, we're okay. If three of
01:18:05
◼
►
these go down, we're okay. If this switch dies, we're okay." And they're doing it
01:18:08
◼
►
to themselves intentionally all the time to sort of build up their immune system.
01:18:12
◼
►
So if you had a person who came into your house at night and smashed one of your devices
01:18:16
◼
►
or randomly erased one of your hard drives, and the guy came once every two months, you
01:18:22
◼
►
would very quickly figure out some way. Either you would figure out some way to develop a
01:18:25
◼
►
system or you would demand from all your vendors, "Look, Apple, the chaos monkeys
01:18:30
◼
►
coming to my house every night and destroying things. You guys have got to come up with
01:18:32
◼
►
a better system to protect my data because I'm losing all the pictures of my baby."
01:18:36
◼
►
And that's where it's got to come from. It's got to come from the consumers. Well, that's
01:18:41
◼
►
what leadership is, I guess. It shouldn't have to come from the consumers. Apple should
01:18:44
◼
►
be leading here. They're in a position to do this type of thing. They should be thinking
01:18:48
◼
►
about it and doing it instead of being the putzes that they are that still make it impossible
01:18:52
◼
►
for one family to share a single iPhoto library like sane people want to do. But they're not.
01:18:58
◼
►
And yeah, so if it came from the other direction, that would really help as well.
01:19:02
◼
►
But as things stand, if you're hard-wired guys every three years, human memory is such
01:19:05
◼
►
that you'll be like, "No, I think I might have had those on optical to somewhere," or
01:19:08
◼
►
you just give up and like, "Well, I think I posted most of those to Facebook, and I'll
01:19:12
◼
►
never look at them again."
01:19:13
◼
►
I don't know what's going to happen when all these people are like 80 years old, 50 years
01:19:17
◼
►
from now, and they want to see the picture of when their kid was one year old.
01:19:20
◼
►
Will they have them anymore?
01:19:21
◼
►
Because they won't have the physical photo albums that our parents did, right?
01:19:24
◼
►
Like, "We'll go to our parents' house.
01:19:26
◼
►
We can look at those books."
01:19:27
◼
►
That's a really good point, though. You're right. I've heard from a lot of people who
01:19:32
◼
►
have lost phones or whatever. They say, "Oh, well, we still have the ones that we posted
01:19:37
◼
►
to Facebook." That's a very, very common reaction and kind of mental insurance policy
01:19:44
◼
►
for a lot of people. I wonder what happens 20 years from now when Facebook shuts down.
01:19:50
◼
►
Oh, absolutely.
01:19:51
◼
►
Or you have them on Facebook, but they're terrible quality because they're recompressed,
01:19:56
◼
►
And good luck finding them 30 years from now if you go back 30 years in time.
01:20:01
◼
►
I think I tweeted that 30 years ago.
01:20:03
◼
►
Yeah, right?
01:20:04
◼
►
Well, the thing that stuns me is I'll have people, friends, relatives, acquaintances
01:20:10
◼
►
that will have catastrophic data loss, bad, bad data loss.
01:20:16
◼
►
And you know what they do differently after that happens?
01:20:19
◼
►
Not a thing.
01:20:20
◼
►
Because what can they do?
01:20:22
◼
►
What is their recourse?
01:20:23
◼
►
Like they're already buying like the best, quote unquote.
01:20:26
◼
►
They're buying Apple stuff and they were using them in like the way they see them used in
01:20:31
◼
►
Apple commercials and they still lost all their data.
01:20:33
◼
►
So like they don't have the tools to fix that.
01:20:36
◼
►
They shouldn't have to fix it.
01:20:37
◼
►
That's what I'm saying.
01:20:38
◼
►
Like Apple should be providing a way to make it as easy for them to have their data protected
01:20:43
◼
►
as it is for them to take their phone and do a coffee shop and get on the network.
01:20:47
◼
►
And I completely agree.
01:20:48
◼
►
But I guess what I'm driving at is it seems like the moment data loss happens, your average
01:20:52
◼
►
consumer says, "Eh, I guess that's gone now," and that's that, and there's no more discussion.
01:20:58
◼
►
And it's like a natural disaster. It's like, "Well, what can you do? There's an earthquake.
01:21:01
◼
►
What can you do to prevent earthquakes?" To regular people, technology is basically just
01:21:05
◼
►
like the weather. Well, you can complain about it, but at a certain point, you're like, "Well,
01:21:09
◼
►
obviously, this is unchangeable law of the universe that we're going to lose data."
01:21:12
◼
►
Right. Well, because most people who are adults today have grown up having all sorts of computer
01:21:17
◼
►
failures. And most people don't use Macs, and even people who do use Macs still have
01:21:23
◼
►
failures. They just have maybe fewer of them or different ones.
01:21:26
◼
►
But most people have grown up using some kind of crappy computers with crappy software,
01:21:31
◼
►
and where things were very constrained and expensive and unreliable. And so almost everyone
01:21:38
◼
►
who's an adult today has at some point had a computer that had to be wiped, or that had
01:21:43
◼
►
a hard drive fail or something, somehow the computer was forced to be wiped and started
01:21:48
◼
►
So to them, it's like they're in an abusive relationship with technology where they're
01:21:53
◼
►
just like, "Well, yeah, okay.
01:21:55
◼
►
I guess that's just what happens with computers.
01:21:59
◼
►
They don't know that it doesn't have to be that way.
01:22:03
◼
►
Yeah, and I don't quite understand why, again, Apple of all companies hasn't jumped
01:22:10
◼
►
on this more because they're all about figuring out what real people's problem are. That's
01:22:16
◼
►
why iOS and the iPad and stuff are so successful because they had the vision of like, people
01:22:20
◼
►
hate that crap about installing and uninstalling stuff. People hate trying to find software
01:22:24
◼
►
by doing a Google search and stuff. We just had one store and you tap a button and a little
01:22:28
◼
►
icon appears. If you don't like it, you put the little X in, it goes away. That's what
01:22:33
◼
►
people want. They did that. They did that great. Everything about the iPad is so much
01:22:37
◼
►
better than the Mac in terms of throwing it in front of someone who's not a technical
01:22:40
◼
►
person saying, "Here, go nuts." They can browse the web, they can send email, they can play
01:22:44
◼
►
games, it's fun, it's exciting, and they even lower the price. It's cheaper than a Mac.
01:22:49
◼
►
But this whole thing about keeping your data, they still have all those commercials about,
01:22:52
◼
►
"Oh, look how beautiful it is when you take a picture of your children and all these memories
01:22:56
◼
►
and you're having these happy times and laughing with your friends and making videos and all
01:23:00
◼
►
that stuff is going to be gone and start the clock," because they're not doing anything
01:23:04
◼
►
to help you protect it long term. Maybe they think you're not supposed to protect it.
01:23:08
◼
►
Maybe you're just supposed to enjoy it in the moment, look at it, and then let it disappear
01:23:12
◼
►
when you buy a new phone or you drop it in the ocean. But they don't mention that in
01:23:15
◼
►
the commercial. They don't show that experience. Like, "Remember that time we went to Paris?
01:23:19
◼
►
Let's look at those pictures. Oh, that was three phones ago. I don't have those anymore."
01:23:25
◼
►
We're running long. Should we be good?
01:23:27
◼
►
One more thing. Is this really the kind of thing you'd think Apple would tackle? I mean,
01:23:31
◼
►
This is like a big web service, big data backend.
01:23:34
◼
►
Maybe that's why they haven't been good at it.
01:23:36
◼
►
But I'm saying they're good at looking beyond the way things
01:23:40
◼
►
are done now to do-- like Casey said, the five whys,
01:23:43
◼
►
and get all the way down to the root root problem.
01:23:45
◼
►
People don't want to deal with any of this stuff.
01:23:47
◼
►
Let's just solve their actual problem.
01:23:49
◼
►
Their actual problem is I want to browse the web.
01:23:51
◼
►
I want to send email.
01:23:52
◼
►
And the iPad can let them do that
01:23:53
◼
►
without all sorts of complications and concepts
01:23:56
◼
►
that existed on the Mac that complicated that.
01:23:58
◼
►
They're good at cutting through that stuff.
01:24:00
◼
►
And so this is another case where, well, backup is difficult, and we have all these problems,
01:24:06
◼
►
and how are we going to pay for this, and where are we going to store it, and maybe
01:24:09
◼
►
people don't have upload bandwidth, and they have caps or whatever.
01:24:13
◼
►
Like a time machine was a good step in that direction, but that's a last century step,
01:24:17
◼
►
even though time machine wasn't the last century.
01:24:21
◼
►
Apple is the kind of company who has the margins and the control over hardware and solver,
01:24:25
◼
►
and also usually the vision to not worry about the technical details and just figure out
01:24:30
◼
►
what people want and make it happen. That's why, I think.
01:24:33
◼
►
Yeah, but you're forgetting that so much of this hypothetically relies on really strong
01:24:37
◼
►
internet services, which we've all discussed ad nauseam, that is not Apple's thing.
01:24:41
◼
►
I know, but they haven't really even attempted it. It also depends on deep technology and
01:24:47
◼
►
core standards and building infrastructure, which Apple's also not good at, especially
01:24:52
◼
►
when it comes to data storage. So yes, this is in many of Apple's blind spots. But I feel
01:24:57
◼
►
I feel like I would have rather seen them three years ago come out with Apple's new
01:25:02
◼
►
cloud file system. It's everywhere at once, and it would be a terrible product and not
01:25:06
◼
►
work, but at least they had the right idea of, "We are going to completely abstract
01:25:11
◼
►
storage on all levels and do this crazy multi-hierarchy thing," and understand it as a core OS feature,
01:25:16
◼
►
not as a GUI feature of a major version of iOS or OS X. It has to be a feature like the
01:25:23
◼
►
kernel or the file system. It has to be at that level or at the web service level. And
01:25:27
◼
►
I haven't even attempted that.
01:25:28
◼
►
They haven't made any run at it.
01:25:29
◼
►
Like, PhotoStream is the closest they've come,
01:25:31
◼
►
and that's like one little appendage hanging off
01:25:33
◼
►
a couple of applications on iOS and the Mac
01:25:36
◼
►
that's kind of weird, and you could only recently
01:25:38
◼
►
delete things from it, and no one understands how it works,
01:25:40
◼
►
and it's not clear to people what the mental model is,
01:25:42
◼
►
and it sure as hell doesn't apply to anything
01:25:43
◼
►
except for the photos that you manage
01:25:45
◼
►
from those particular applications.
01:25:47
◼
►
They're not even going for the big solution and failing.
01:25:50
◼
►
Maybe they know their limitations,
01:25:52
◼
►
and they're just like, we have to nibble about this
01:25:53
◼
►
from the edges.
01:25:55
◼
►
I don't know.
01:25:56
◼
►
I still don't know what PhotoStream backs up and what it doesn't back up.
01:26:01
◼
►
Just assume it backs up nothing.
01:26:03
◼
►
That's what technical people do.
01:26:04
◼
►
I remember for six months, PhotoStream just showed me black rectangles in iPhoto.
01:26:10
◼
►
They were my photos because they were the right number, and I could tell from the orientations
01:26:13
◼
►
that they should have been my photos, but they were just completely black.
01:26:15
◼
►
I'm like, "Well, I'm not going to trust that."
01:26:18
◼
►
Do you have the full resolution copies in PhotoStream, or does it have smaller resolutions?
01:26:22
◼
►
I don't even want to think about it.
01:26:23
◼
►
It's so confusing.
01:26:24
◼
►
Alright, let's wrap it up.
01:26:27
◼
►
Now I think we're done.
01:26:28
◼
►
Thanks a lot to our two sponsors this week, Warby Parker and Igloo Software.
01:26:32
◼
►
And we'll see you next week.
01:26:34
◼
►
Now the show is over, they didn't even mean to begin, 'cause it was accidental.
01:26:42
◼
►
Oh, it was accidental.
01:26:44
◼
►
John didn't do any research, Marco and Casey wouldn't let him, 'cause it was accidental.
01:26:53
◼
►
It was accidental.
01:26:57
◼
►
And you can find the show notes at ATP.fm.
01:27:01
◼
►
And if you're into Twitter, you can follow them at
01:27:07
◼
►
C-A-S-E-Y-L-I-S-S
01:27:11
◼
►
So that's Kasey Liss M-A-R-C-O-A-R-M
01:27:15
◼
►
Auntie Marco Arment S-I-R-A-C
01:27:20
◼
►
USA, Syracuse, it's accidental They didn't mean to, accidental
01:27:31
◼
►
Tech podcast so long
01:27:36
◼
►
Did you see this link someone posted? I'll put it again in the...
01:27:40
◼
►
I have so many mavericks things to talk about but I'll just wait, just write it
01:27:45
◼
►
Ivericks? What is this?
01:27:47
◼
►
scroll down. What do you think? So, for people who are actually listening to this, it's the
01:27:53
◼
►
Stu Does Design, which looks like Studio Design, but it's not. It's Stu Does Design OS X Iverix
01:27:59
◼
►
concept and it's basically an iOS 7 style redesign of Mac OS X. Yeah. This whole site
01:28:06
◼
►
should have a big banner on top that says, "Not this year." Yeah. I actually don't think
01:28:11
◼
►
it's terrible, though I feel like the menu bar is totally out of place given the rest
01:28:16
◼
►
to the screen.
01:28:18
◼
►
Ah, thank you, Sam the Geek.
01:28:21
◼
►
Oh, I wasn't looking at the screen.
01:28:23
◼
►
That makes more sense for, you know, Johnny Ive.
01:28:26
◼
►
Yeah, I mean, there are parts about this I don't like, but overall I think it looks fine.
01:28:31
◼
►
Do you think Apple will go in an iOS 7-like direction with—
01:28:34
◼
►
I don't see why the Mac has to look anything like iOS.
01:28:37
◼
►
I can see it being redesigned, but I don't see any reason that it has to look anything
01:28:42
◼
►
Did the Mac's buttons ever look like iOS's buttons?
01:28:46
◼
►
Maybe they came close at a certain point,
01:28:48
◼
►
but they weren't recessed like the iOS 6 buttons were
01:28:52
◼
►
with a little shadow on top of them.
01:28:53
◼
►
They were on top.
01:28:55
◼
►
- I mean, I would say that OS X never really looked
01:28:57
◼
►
that much like iOS and vice versa.
01:28:59
◼
►
- Yeah, I mean, you can redesign something.
01:29:01
◼
►
You don't have to redesign it to look exactly
01:29:02
◼
►
like your other thing.
01:29:03
◼
►
It can just be a fresh redesign.
01:29:05
◼
►
- But familiarity is never a bad thing,
01:29:08
◼
►
especially in UI design.
01:29:09
◼
►
- Yeah, that's true.
01:29:10
◼
►
I have a whole section in my review about that topic.
01:29:14
◼
►
- But you don't need, you know,
01:29:16
◼
►
John Gruber wrote a nice big thing about this
01:29:17
◼
►
right before the iOS 7 unveiling of the keynote.
01:29:21
◼
►
It was like the night before,
01:29:22
◼
►
two days before, something like that,
01:29:23
◼
►
about how people are trained
01:29:27
◼
►
on how to use interfaces these days,
01:29:29
◼
►
and you don't really need something to look
01:29:31
◼
►
exactly like a button for people to figure out
01:29:34
◼
►
that it's a button, stuff like that.
01:29:35
◼
►
And something like this, you don't need OS X
01:29:39
◼
►
to have the same visual style as iOS for people
01:29:42
◼
►
who don't know how to use it.
01:29:44
◼
►
Just give it similar behavior.
01:29:46
◼
►
Like, oh, there are things you can click
01:29:48
◼
►
on that behave like buttons.
01:29:50
◼
►
There are labels.
01:29:50
◼
►
There are lists and structures and other ways to present data
01:29:55
◼
►
and to deal with it.
01:29:57
◼
►
You don't need it to look exactly the same.
01:29:59
◼
►
It can have its own totally different visual theme,
01:30:01
◼
►
and people will figure it out.
01:30:03
◼
►
I mean, look at how many people use Hot Dog Stand in Windows 3.1
01:30:05
◼
►
and still figure out how to use it.
01:30:08
◼
►
That said, though, a straight up, exactly iOS 7 style
01:30:11
◼
►
redesign of the OS X GUI, I think it would work fine.
01:30:16
◼
►
Because the iOS 7 style, there's not much to it.
01:30:21
◼
►
Look at the notification thing, where
01:30:23
◼
►
it's showing a notification dialogue.
01:30:24
◼
►
You're like, yep, notification dialogue.
01:30:26
◼
►
It's got buttons.
01:30:27
◼
►
The iOS 7 can see that the buttons go edge to edge instead
01:30:30
◼
►
of being inset.
01:30:32
◼
►
But you can still tell they're buttons.
01:30:36
◼
►
The window controls being the little outline circles instead of the other things.
01:30:39
◼
►
I mean, they're a little close together, but there's details.
01:30:42
◼
►
Nobody knows what those do anyway.
01:30:44
◼
►
It doesn't look crazy.
01:30:46
◼
►
It looks reasonable.
01:30:47
◼
►
No, it doesn't look bad.
01:30:48
◼
►
But I'm not saying, "Oh, I don't look at it and say, 'Oh, man, I can't wait for the
01:30:52
◼
►
Mac to look at that.'"
01:30:53
◼
►
I would like any kind of cool-looking Mac redesign, but it doesn't have to be this.
01:30:58
◼
►
So even though it's only been two days, how's the review?
01:31:02
◼
►
I wish the OS would work better so that I could review it.
01:31:07
◼
►
That is the review.
01:31:08
◼
►
That's the review.
01:31:10
◼
►
I don't know what their schedule is like because they're putting out builds and things
01:31:15
◼
►
How can I write about them if they don't work?
01:31:18
◼
►
I'll try to use the iOS Beta 5.
01:31:22
◼
►
Every time you touch something, any touch interaction running one of your own apps,
01:31:28
◼
►
it logs a debug message to the console that they left turned on.
01:31:32
◼
►
Yeah, I saw a chalk solution. Just increase the program counter.
01:31:36
◼
►
Yeah, the solution was to patch over fprintf.
01:31:40
◼
►
It's like, obviously they're shipping these betas out on some kind of
01:31:44
◼
►
minimal testing, or at least less testing schedule
01:31:48
◼
►
where like, you know, they're...
01:31:52
◼
►
If they ship that out, leaving this extremely common
01:31:56
◼
►
debug print statement in there that's annoying every single iOS developer this week.
01:32:01
◼
►
Obviously, what else are they leaving in there in these data builds?
01:32:04
◼
►
I think I told the story in Hypercritical once, but I had a Cisco VPN client downloaded
01:32:08
◼
►
from the official Cisco website, not a beta, not anything like that, on OS X that would
01:32:13
◼
►
log a base64 dump of the data it sends and receives.
01:32:18
◼
►
All the data it sends and receives.
01:32:20
◼
►
And so I installed it, and I'm on the VPN, I'm doing things, and I hear my hard drive
01:32:24
◼
►
drive going tick, tick, tick, tick, tick.
01:32:26
◼
►
And I look in the console log, I'm like, this is before tons of memory and before syslog
01:32:32
◼
►
had changed to this database format anyway.
01:32:35
◼
►
And there it was, there was all the data.
01:32:36
◼
►
So it's like, well, when I'm connected to the VPN, it is going to just abuse my hard
01:32:40
◼
►
drive a tick at a time by writing out little bits of data that eventually gets flushed
01:32:45
◼
►
That's awful.
01:32:46
◼
►
That's things people will ship, who knows.
01:32:48
◼
►
But you know, for Mavericks, I wanted to write about iBooks yesterday and today.
01:32:53
◼
►
But it is not in a state where I can use it to do things to write about.
01:32:59
◼
►
Today I spend a long time trying to purchase a book.
01:33:02
◼
►
It's just buggy.
01:33:04
◼
►
This is the very first.
01:33:07
◼
►
So now I'm in this annoying, uncomfortable state where I'm—and I'm terrified to
01:33:11
◼
►
make screenshots of anything because, you know, should I go nuts making screenshots
01:33:16
◼
►
of everything now and then have to redo them all, or should I just wait until the very
01:33:20
◼
►
last minute and just do them in a scramble?
01:33:22
◼
►
I hate this time. I'm going to say I'm like 70% done with the writing, which is not 70% done with
01:33:29
◼
►
the production of this thing. Naturally. Can we make the opening soundbite? I spent a lot
01:33:33
◼
►
of time trying to buy a book. Yeah. Just that. It was not good.
01:33:38
◼
►
Now I have a very important question. Was Tiff listening live in another room and came running
01:33:44
◼
►
in at the 11th hour, or was she actually hearing only one side of the conversation in the office
01:33:49
◼
►
for the hour we spent before the Warby Parker spot.
01:33:53
◼
►
- Neither of those.
01:33:54
◼
►
When I knew the spot was coming up,
01:33:56
◼
►
I sent her a iMessage saying, "Come in now."
01:34:00
◼
►
I told her to expect it about 25 minutes in.
01:34:02
◼
►
- How'd that work out?
01:34:03
◼
►
- It was about 30 minutes in, so that was pretty good.
01:34:05
◼
►
- I thought it was a lot more than that.
01:34:06
◼
►
- No, no, it was like 30, 35, something like that.
01:34:08
◼
►
So I sent her a message saying, "Hey, come on in now."
01:34:11
◼
►
And a minute later, she was here,
01:34:13
◼
►
so she watched me listen to John for about 45 seconds.
01:34:18
◼
►
And then I passed it over to her. It was pretty easy.
01:34:22
◼
►
Then that was all she could take.
01:34:25
◼
►
Not true. Oh man, I've seen not a lot of feedback about the last episode since it's only been
01:34:30
◼
►
out for a few hours, but everyone has said, "Oh my god, Syracuse Rant, I want it in my
01:34:34
◼
►
ears immediately."
01:34:35
◼
►
See, that was like my mellow. I had mellowed. That was not ranty. That was like...
01:34:40
◼
►
It was moderate rant.
01:34:41
◼
►
Yeah, it was like a wistfully looking back on a bad experience.
01:34:46
◼
►
Wow. What's Ranti like?
01:34:49
◼
►
Ranti is when I talk about TiVo or file systems problem.
01:34:53
◼
►
It was a good edge cases show. They did a whole show on file systems.
01:34:57
◼
►
I haven't heard that yet. Everyone was mentioning you and
01:35:00
◼
►
linking to it and stuff. Yeah. It covered a lot of the same ground but then went forward
01:35:04
◼
►
more past what I had talked about when I talked about hypercritical
01:35:08
◼
►
because more things have transpired although not much in the Apple world.
01:35:11
◼
►
What else is going on? Anything? I don't know. We recorded the last episode
01:35:15
◼
►
two days ago, so nothing's different now. I know, yeah, it's true. Except somebody's
01:35:20
◼
►
going on vacation all next week. I don't know who, yeah, John! No, not me, I'm all done.
01:35:27
◼
►
Back to the grind. Yeah, so Erin doesn't know where we're going tomorrow. She knows we're
01:35:32
◼
►
going but she doesn't know where. We'll see how this works out. It should be fun, but
01:35:36
◼
►
we'll see how this works out. I'm a little scared. She's extremely easygoing so it should
01:35:39
◼
►
be fine, but I'm a little scared. I'm gonna get you guys back by not being here the entire
01:35:45
◼
►
What are you going to be doing? You have no job. You have nothing to do.
01:35:52
◼
►
Almost every weekend in September or October, I'm doing something. It's crazy. Those
01:35:57
◼
►
months are insanely booked for me.
01:35:58
◼
►
I'm going to record on Wednesdays. It's fine.
01:36:00
◼
►
I see. No problem.
01:36:02
◼
►
The funny thing is I think I'm only going to miss one Wednesday. It's going to be
01:36:07
◼
►
the easiest vacation schedule for this show ever. Although it might be a problem if I'm
01:36:11
◼
►
I'm trying to actually ship my app around that time,
01:36:13
◼
►
which I'm almost definitely not going to.
01:36:15
◼
►
- So you don't think you're gonna be there on day one?
01:36:18
◼
►
- I would give that like a 20% chance at this point,
01:36:21
◼
►
maybe even less.
01:36:22
◼
►
The more I do with it, the more I want to do with it,
01:36:26
◼
►
and I know I'm gonna obviously have that problem
01:36:28
◼
►
of taking forever and never shipping version one,
01:36:32
◼
►
but the bigger thing is I'm way behind
01:36:34
◼
►
on even getting the basics done.
01:36:35
◼
►
And some of it's going faster than I expected,
01:36:37
◼
►
some of it's going slower than I expected.
01:36:40
◼
►
I'm still too far out to say whether I will be able
01:36:45
◼
►
to get out there for day one,
01:36:47
◼
►
whether it's even gonna be possible.
01:36:49
◼
►
But I'm guessing looking at it now it's not.
01:36:51
◼
►
'Cause what if day one is late September?
01:36:56
◼
►
That's what, six weeks away?
01:36:59
◼
►
I mean, it's pretty close, you know?
01:37:02
◼
►
Like, there's, and I still,
01:37:04
◼
►
I'm still working on the naming issue.
01:37:07
◼
►
I still don't have the company for 'em
01:37:08
◼
►
'cause I'd like to give the company
01:37:09
◼
►
same name as the product. And therefore I don't have the stupid "done" number yet,
01:37:16
◼
►
so I can't get the Apple developer account yet, so I can't get all my final certificates
01:37:19
◼
►
done and it makes it harder to test things like push notifications. All these things
01:37:24
◼
►
that, no matter how much I work my butt off right now, these things all take blocks of
01:37:30
◼
►
time that have to be done in a certain sequence. And so the reality of me getting this out
01:37:35
◼
►
there in any kind of shippable 1.0 state within six weeks, it's pretty much zero. Plus, you
01:37:42
◼
►
should probably submit it like two weeks before the actual release date of the OS, and that's
01:37:48
◼
►
assuming you get approved on the first try.
01:37:49
◼
►
Yeah, more than two weeks, you're assuming it's going to be bounced back at least once.
01:37:53
◼
►
Exactly, yeah. Any new app, you've got to assume you're going to be rejected. So, the
01:37:58
◼
►
chances of me getting it out there for iOS 7's release are pretty much nil. I mean, the
01:38:04
◼
►
would have to be almost done right now for that.
01:38:07
◼
►
You'd have to have it pretty much ready to go,
01:38:11
◼
►
ready to be in the app store on day one.
01:38:13
◼
►
You'd have to have all the code effectively done now.
01:38:17
◼
►
It would have to be in a very advanced beta.
01:38:18
◼
►
And if it's not in a very advanced beta today,
01:38:22
◼
►
you're probably not getting it out there for day one.
01:38:25
◼
►
- Yeah, that's fair.
01:38:26
◼
►
So when are you gonna put it out,
01:38:27
◼
►
like March of next year then?
01:38:29
◼
►
- I'm shooting for fall as well,
01:38:33
◼
►
but depending on whose definition of fall.
01:38:35
◼
►
Like, I wanna get it out there for this fall.
01:38:38
◼
►
I don't, again, I don't know how realistic it'll be
01:38:42
◼
►
to hit any particular month.
01:38:43
◼
►
I'm thinking October, November is probably more reasonable.
01:38:49
◼
►
- Gotta have it there for the holidays.
01:38:50
◼
►
People get their new iPhones and iPads for Christmas,
01:38:52
◼
►
they can install your app.
01:38:54
◼
►
- Yeah, but you have a busy October for sure,
01:38:55
◼
►
'cause I'm involved with half of your October.
01:38:59
◼
►
- So between September and October,
01:39:01
◼
►
I'm going to two conferences that are very far away each.
01:39:06
◼
►
I'm going to an anniversary trip,
01:39:09
◼
►
'cause it's our fifth anniversary this year,
01:39:11
◼
►
and I'm going to our driving trip,
01:39:14
◼
►
which is gonna be awesome.
01:39:16
◼
►
That's all, that's like, what was that, four major trips?
01:39:20
◼
►
Yeah, four major trips within two months.
01:39:24
◼
►
- Where are you going for your anniversary thing?
01:39:25
◼
►
Are you willing to share?
01:39:25
◼
►
- Upstate, a little resort that we like.
01:39:29
◼
►
- Yeah, we went there on our wedding night, it's cute.
01:39:31
◼
►
So yeah, I'm cramming all this stuff into that time, plus maintaining the blog, the
01:39:40
◼
►
show, and the general baseline workload that I have to do every week.
01:39:47
◼
►
It's going to be a rough fall, I think, or at least a rough early fall.
01:39:52
◼
►
By November or so, I should have an easier schedule, right in time for the holidays and
01:39:57
◼
►
all the family travel that goes along with that.
01:39:59
◼
►
I can help you out by just telling you, Marco, that actually you only have five vacation
01:40:02
◼
►
days left this year, so you'll have to adjust your plans to account for that.
01:40:07
◼
►
Imagine if Marco had a real J-O-B job. Oh, man.
01:40:10
◼
►
I did a couple of times.
01:40:13
◼
►
Mm-hmm. Now everyone's confused about what the driving thing is. I feel like we should
01:40:19
◼
►
just let them be confused.
01:40:20
◼
►
Yeah, let them be confused. We'll take pictures and post them somewhere.
01:40:24
◼
►
It involves driving. That's your hint.
01:40:26
◼
►
Yeah, that's your big hint.
01:40:27
◼
►
And John refused to come.
01:40:28
◼
►
I didn't refuse, I chose not to.
01:40:31
◼
►
Don't even get me started about John.
01:40:33
◼
►
There are items on either side of these things, and I weigh the pros and cons and I make a decision.
01:40:40
◼
►
There's not a refusal to do an obviously good thing, nor is it a rejection of an obviously bad thing.
01:40:45
◼
►
So angry at you, John. And I'm only slightly kidding.
01:40:48
◼
►
Guess how many vacation days I have left this year?
01:40:50
◼
►
Oh, after all, I have booked? I only have one. How many do you have?
01:40:54
◼
►
Not counting booked, but actually my wife just booked I think the rest of my vacation
01:40:59
◼
►
I think she just bought plane tickets.
01:41:01
◼
►
After she booked it, she said, "Okay, how many vacation days do you have left?"
01:41:04
◼
►
And I really should have gotten the other order.
01:41:07
◼
►
I believe I'm more or less booked up.
01:41:08
◼
►
I think I have to keep two in my back pocket for like one day this winter I'll be sick,
01:41:15
◼
►
and one day I may be panicked and have to take a day off work to do emergency Mac OS
01:41:21
◼
►
10 review scrambling.
01:41:22
◼
►
Hopefully I won't have to use that one.
01:41:26
◼
►
Well, I'm still mad at you either way.
01:41:28
◼
►
But then kids get sick and then you have to stay home with the kids and sometimes you
01:41:31
◼
►
can be working from home and sometimes you can't depending on how sick the kid is and
01:41:34
◼
►
taking him to the doctor and yeah.
01:41:37
◼
►
Limited vacation days.
01:41:38
◼
►
It's like RTS where you have limited resources.
01:41:41
◼
►
You can't just mind for more though.
01:41:43
◼
►
No, you cannot just mind for it.
01:41:45
◼
►
We need more ore!
01:41:46
◼
►
Yeah, we should do titles before I fall asleep.
01:41:49
◼
►
I like three phones ago.
01:41:51
◼
►
It nicely encapsulates some of the themes that we talked about.
01:41:56
◼
►
It's kind of interesting.
01:41:58
◼
►
That might be the nicest opinion you've ever had about a title.
01:42:01
◼
►
I mean, that's what I'm always looking for in a title, is something that I can look at
01:42:06
◼
►
and remind me of what we--like, the Thrustmaster one, I'm not sure if that will remind me of
01:42:10
◼
►
what we talked about in the previous show.
01:42:12
◼
►
Although, I never had a Thrustmaster, but I wanted one.
01:42:15
◼
►
They were definitely very cool.
01:42:16
◼
►
Well, the only reason I got it was because Dad decided he wanted one.
01:42:19
◼
►
Ah, it's a secret.
01:42:20
◼
►
So yeah, it wasn't mine, but I was the only one who used it.
01:42:24
◼
►
That was during the time that Dad loved getting us a random, fun piece of electronics and
01:42:30
◼
►
thought he would use them, and then never ever did.
01:42:32
◼
►
I never did.
01:42:33
◼
►
I told this to my son explicitly.
01:42:34
◼
►
I said, "Look, the only reason you have all these video games is because I like playing
01:42:38
◼
►
video games.
01:42:39
◼
►
These are my games, and I let you play them."
01:42:41
◼
►
So if you really liked the harmonica or something, I'd get you a harmonica, but I wouldn't spend
01:42:46
◼
►
the amount of money.
01:42:47
◼
►
You know what I mean?
01:42:49
◼
►
you are getting the advantage of overlapping with my hobbies and these are my game systems and these are my games and that's why you
01:42:55
◼
►
can't play a lot of them because he's asked like he wants to play the Last of Us and stuff and like
01:42:58
◼
►
That's a grown-up game like it's kind of sad because you would think he's like he's the kid who has everything he gets every modern
01:43:04
◼
►
You know as soon as the Zelda comes out he gets it every time the new Nintendo system was out he gets it
01:43:08
◼
►
But they're not his they're mine. He doesn't have anything
01:43:10
◼
►
He's got every Lego known to man, I guess that he does have those those are his but that's kind of because I want them
01:43:17
◼
►
Yeah, exactly, the truth comes out.
01:43:19
◼
►
But they are his. The Legos are his, the video games are mine.