71: Security By Guilt
00:00:00
◼
►
If you'd only put feet on the fast tech logo, that would have been your ticket to financial freedom.
00:00:05
◼
►
Oh, God, you're the worst. I hate you so much.
00:00:08
◼
►
You know, it's so obvious now that Casey's error was making fast techs have too many features.
00:00:13
◼
►
If it had just simply sent the word "yo" to everybody, he'd be a millionaire now.
00:00:16
◼
►
Little did I know.
00:00:17
◼
►
You thought too big, you're like, "Oh, I gotta have a way to configure different messages and send them all on buttons."
00:00:21
◼
►
No! Just send the word "yo." Push notification. Done and done.
00:00:27
◼
►
Seriously, how can the Valley take themselves seriously?
00:00:31
◼
►
That was a product of the Valley, I assume, right?
00:00:33
◼
►
I think Marco was the one who compared it to Million Dollar Homepage.
00:00:38
◼
►
Million Dollar Homepage still wins because of that venture capital money.
00:00:40
◼
►
Like he has to actually spend that to try to grow the business or whatever.
00:00:43
◼
►
The Million Dollar Homepage guy just got the money and it's his free and clear.
00:00:47
◼
►
He does not have to invest it into a business.
00:00:49
◼
►
He's not expected to hire employees to get off the space.
00:00:52
◼
►
The venture capital money this guy got comes with massive strings attached and he will
00:00:56
◼
►
never be able to fulfill what these people want because he's stupid and his business
00:01:00
◼
►
is stupid. So the million dollar homepage guy still wins for the best business plan
00:01:05
◼
►
of any business in the entire universe. I continue to try to think of some equivalent.
00:01:12
◼
►
Many have tried.
00:01:13
◼
►
Yeah, God, that guy. He's the smartest person in the world. In case he had had to come up
00:01:20
◼
►
with the idea he would have tried to do it with WebSockets and then it wouldn't have
00:01:24
◼
►
It's just a web page. That's it. Your financial investment risk is, even when he did it, like
00:01:32
◼
►
in 1995, like his total financial investment in a static web page, like hosting it and
00:01:37
◼
►
paying for bandwidth, it must have been like, let's say $100 against a million in income.
00:01:46
◼
►
Can we make this the intro?
00:01:47
◼
►
Oh, I was already planning on doing that, yeah.
00:01:50
◼
►
That guy, man.
00:01:52
◼
►
Even if the intro is like five minutes long before we actually get to the real show, I'm
00:01:56
◼
►
okay with that.
00:01:58
◼
►
No one knows what Million Dollar Homepages are, do they, these days?
00:02:02
◼
►
Yeah, they can look it up, for God's sakes.
00:02:03
◼
►
It isn't that hard to find.
00:02:04
◼
►
Is it still up?
00:02:06
◼
►
It was guaranteed to be up for a certain amount of time, right?
00:02:08
◼
►
Yep, it's still up.
00:02:10
◼
►
It's still fast.
00:02:11
◼
►
He's selling posters of it.
00:02:12
◼
►
It's a genius.
00:02:14
◼
►
Yeah, it didn't…
00:02:17
◼
►
It probably doesn't lose all of its data if the server crashed.
00:02:20
◼
►
You guys are so mean to me.
00:02:21
◼
►
My goodness.
00:02:22
◼
►
I have to admit, there's one aspect of it that I guess he had to do something.
00:02:25
◼
►
Assuming he didn't program this, he would have to put in the pixels that they paid for
00:02:29
◼
►
in their places, right?
00:02:30
◼
►
Yeah, I'm pretty sure he did it manually, because otherwise it's kind of a layout issue.
00:02:34
◼
►
The boxpacking problem, right?
00:02:37
◼
►
So there is some small component of labor, but I'm sure the bed of money he was laying
00:02:42
◼
►
on made that labor more valuable.
00:02:45
◼
►
God, this is so old.
00:02:47
◼
►
And he had to make the image map and the links to it, I guess.
00:02:50
◼
►
So he had to write HTML and click buttons in an image editor.
00:02:54
◼
►
Oh yeah, because this was long before anything more useful than that.
00:02:57
◼
►
Oh, he's got a mouse over on it now too.
00:02:58
◼
►
This is advanced technology.
00:02:59
◼
►
He really put a lot of time and effort into this.
00:03:03
◼
►
So I just expanded the—I did inspect element on Safari and I expanded the map element and
00:03:10
◼
►
I think I just crashed Safari.
00:03:13
◼
►
The best part is he's got like fake tooltips for I guess the days before browsers didn't
00:03:16
◼
►
do automatic tooltips.
00:03:17
◼
►
And you see the fake one and the real one.
00:03:19
◼
►
like the fake one follows the cursor but the real one lags behind it and it's just…
00:03:23
◼
►
How many hits a day do you think this gets?
00:03:24
◼
►
I mean, the only bad thing is that he, I guess, he's kind of small because a million dollars
00:03:27
◼
►
doesn't really last that long. I'm sure he's already gone through this money or
00:03:29
◼
►
whatever, but it's a hell of a start for like starting your adult life at 20 whatever
00:03:33
◼
►
years old he was.
00:03:35
◼
►
And so like, and unfortunately, he's now in the same situation as the rest of the world
00:03:38
◼
►
is like, "I need another idea that's like that." If he had done a $10 million homepage,
00:03:41
◼
►
he would have been a lot more comfortable.
00:03:42
◼
►
Wait, so you see this layout and you see how it's like all loud because he, you know,
00:03:46
◼
►
didn't control who bought.
00:03:49
◼
►
Yeah, so it's like visually very loud, right?
00:03:51
◼
►
- Yeah, looks like the web in the 90s.
00:03:53
◼
►
- Yeah, his new web, his new venture, com.com.
00:03:57
◼
►
- C-O-M or C-A-L-M?
00:04:00
◼
►
- They probably spent a million dollars in that domain.
00:04:04
◼
►
As per his Twitter account,
00:04:05
◼
►
he is the founder and CEO of com.
00:04:07
◼
►
- I'll bet he is.
00:04:09
◼
►
- It's not loading as quickly as the million dollar home.
00:04:10
◼
►
- No, it isn't.
00:04:11
◼
►
- Maybe, did we just like take it down
00:04:12
◼
►
with three simultaneous requests?
00:04:14
◼
►
- It's got a little water background
00:04:16
◼
►
No, I'm seeing a cloud background.
00:04:18
◼
►
I got water.
00:04:19
◼
►
Prepare for your two-minute session.
00:04:21
◼
►
Choose your preferred nature.
00:04:22
◼
►
Some BS relaxation thing.
00:04:25
◼
►
Your other day idea was better.
00:04:26
◼
►
We're both BS.
00:04:28
◼
►
Yeah, but one makes people send him money.
00:04:31
◼
►
The site was guaranteed to be online at least through August 26, 2010.
00:04:36
◼
►
However, the aim is to keep the site online forever or as long as humanly possible.
00:04:40
◼
►
I love how he's still got the sold-out banner.
00:04:42
◼
►
Yeah, right?
00:04:43
◼
►
Just in case you still wanted to buy things.
00:04:46
◼
►
out and the minimum purchase was 10 by 10 or $100 yeah it was a dollar pixel
00:04:50
◼
►
so he that's that was his only thing is that he thought a little bit small
00:04:54
◼
►
because anyone who bought this like I guess he probably did you get some
00:04:56
◼
►
private individuals but mostly it's gonna be businesses and businesses are
00:05:00
◼
►
willing to spend way more than $100 on BS boondoggles like this even back then
00:05:05
◼
►
were they yo yeah definitely like I mean that's I'm not saying you could have got
00:05:09
◼
►
thousands but you could have got you know 300 or 500 easy cuz a hundred a
00:05:14
◼
►
100 is under the petty cash threshold even of most businesses in the 90s, you know.
00:05:19
◼
►
Type of site, Pixel advertising.
00:05:21
◼
►
It's on Wikipedia.
00:05:23
◼
►
Were there many others?
00:05:25
◼
►
As opposed to non-Pixel advertising.
00:05:26
◼
►
Oh, so you click on Pixel advertising and you end up back on the million dollar homepage
00:05:32
◼
►
redirected from Pixel advertising.
00:05:35
◼
►
Aye yai yai.
00:05:37
◼
►
Marco, buy me an M3.
00:05:40
◼
►
All right, let me do some extraordinarily quick follow-up.
00:05:44
◼
►
The showbot is back, and if I was more prepared, which I'm not because this show is accidental,
00:05:50
◼
►
I've had some people contributing to it.
00:05:54
◼
►
And I know Jeremy Banks put a lot of work into it.
00:05:57
◼
►
Kyle Cronin did, and Brad Schoet, who runs the showbot that actually works, he has also
00:06:04
◼
►
contributed.
00:06:05
◼
►
And I'm probably forgetting some people here and there, and for that I'm deeply
00:06:07
◼
►
and I really mean that because I didn't pull up GitHub before we started.
00:06:12
◼
►
But yes, the showbot is back. Weave, and by "we" I mean everyone but me,
00:06:17
◼
►
has made some pretty good improvements to it. We'll see how long it lasts.
00:06:22
◼
►
We are currently about two minutes into recording and it hasn't quite died yet.
00:06:26
◼
►
But it's been a really, all kidding aside, it's been a really cool thing to see people issuing pull requests.
00:06:33
◼
►
requests. The only bad thing about putting something that's semi-popular on the internet
00:06:38
◼
►
and open-sourcing it is that, unbeknownst to me, when people actually pay attention,
00:06:43
◼
►
which I'm not used to, you actually have some sort of implied time commitment to like
00:06:48
◼
►
look at poll requests and figure things out.
00:06:50
◼
►
That's a good topic for a show. Do you have an implied time commitment to do that? Obviously
00:06:57
◼
►
you think you do, but do you actually? That's not for today's topic, but save it.
00:07:01
◼
►
I was gonna say we could use the standard
00:07:03
◼
►
Standard consulting term and we could put that in the parking lot for now. What wait, hold on. That's a real thing. Mm-hmm
00:07:10
◼
►
Oh, I spent all day in meetings and I'm
00:07:12
◼
►
I'm about to cry. What is wrong with you people? I
00:07:15
◼
►
Regret to say that I do know about the parking lot. Only Marco doesn't know
00:07:20
◼
►
Oh my god, what? Oh this you're you've already broken my brain. We're like three minutes into the show
00:07:27
◼
►
That's it. I'm done. I can't say anything else. Wait, Google IO didn't do it?
00:07:31
◼
►
No, that you just broke my brain more than Google IO did. That's really saying something.
00:07:36
◼
►
You're welcome. You know, you should have been doing KC all this time and you haven't figured it out now
00:07:41
◼
►
I will give you the hint to help you along that path
00:07:43
◼
►
even though you're being dragged down it by other people. As soon as you had the chat room filled with people who were attacking your
00:07:48
◼
►
bot and everything and how it's gonna help improve it and help you improve your code and be educational and entertaining for everyone involved
00:07:55
◼
►
you should have immediately tried to enlist a faction of people who
00:07:59
◼
►
For on your side because it's very easy to get programmers on your side when presented with a problem like hey a bunch of other
00:08:06
◼
►
People are attacking this program help me make it stronger at least half of the people who are attacking probably would have said oh
00:08:13
◼
►
I'd like to be on the defense side at this game. You know what I mean and gaming parlous
00:08:17
◼
►
Do you wanna be attackers or defenders? You haven't done that it's been happening to you people have been saying here
00:08:21
◼
►
Let me help you out with your bot
00:08:22
◼
►
But I think you would have been successful even on the very first show saying I know people are going to attack this and if you
00:08:28
◼
►
want to be on the defense side join me and then you could get a power dynamic going and I bet it would be a
00:08:34
◼
►
Much more fair fight. Well, and that's true
00:08:38
◼
►
But we've had like I said some volunteers come out of the woodwork and make some really excellent changes
00:08:44
◼
►
A couple of them have started were looking at putting like memcached in front of it or some some equivalent thereof
00:08:51
◼
►
I haven't had the time to look into the specifics of the more
00:08:55
◼
►
invasive, but I mean that in a good way.
00:08:58
◼
►
Edits that have been made to the show, but oh there are automated tests now, which I also haven't looked into yet.
00:09:03
◼
►
But one of my cronies, and again I mean that in a good way, has added automated testing and
00:09:10
◼
►
at some point I plan on turning that on so that as things get checked into master
00:09:14
◼
►
and pushed into master and so on automated tests will run.
00:09:19
◼
►
We did have somebody contribute some Regex and specifically call you out and say, in a happy way, saying,
00:09:26
◼
►
"Oh, I don't know if this is up to John quality, but nevertheless I did something." I think it was around the suggest checking.
00:09:33
◼
►
Checking for the exclamation point S. By the way, do you guys say bang S or would you say exclamation point?
00:09:39
◼
►
Wait, why does it have to be a Regex? It's just two characters that always are the same.
00:09:42
◼
►
Well, but it could be exclamation point S or it could be exclamation point suggest.
00:09:47
◼
►
Yeah, but they both begin with exclamation point S.
00:09:49
◼
►
Well, that's the way I looked at it, but apparently if you find yourself in the presence
00:09:54
◼
►
of anyone who's ever touched Perl in their lives, then their hammer is made of regex
00:10:00
◼
►
and everything looks like a nail.
00:10:01
◼
►
You want to be permissive in what kind of input you take in, because humans are writing
00:10:05
◼
►
it, so you have to allow for variable amounts of spacing, and inevitably you have to extract
00:10:08
◼
►
the part that is not the command, and that is the title, and you're going to want to
00:10:11
◼
►
do things with the title, like normalize it for deduplication purposes and trim out multiple
00:10:15
◼
►
space runs for the official version that you display and all that good stuff and that's
00:10:19
◼
►
exactly what regular expressions are for. If you're a C programmer and you're stepping
00:10:22
◼
►
through the string of character at a time, I feel bad for your son as they say.
00:10:28
◼
►
Now, I have two questions. With all these improvements to the Showbot, question number
00:10:33
◼
►
one, is it rate limited?
00:10:36
◼
►
Yes. Somebody added some modicum of rate limiting. I haven't been paying super close attention,
00:10:42
◼
►
which comes back to what John said we should put in the parking lot, or what I said we
00:10:46
◼
►
should put in the parking lot.
00:10:47
◼
►
But anyways, there is a modicum of rate limiting and there's still no persistence.
00:10:53
◼
►
So when this inevitably goes down, we're going to lose all our titles.
00:10:59
◼
►
So I hope the actual showbot is still around.
00:11:02
◼
►
Brad Schoetz's showbot.
00:11:03
◼
►
But anyway, so I've turned a new leaf.
00:11:06
◼
►
A friend of the show, Chris Harris, originally from the other media, now he's with Glide
00:11:11
◼
►
publishing. He wrote me a very nice email saying in so many words, "Yes, it's annoying,
00:11:17
◼
►
but it makes for good programming, so deal with it." So I'm going to try to put on
00:11:23
◼
►
my happy face. When the Showbot inevitably goes down in like 10 minutes, I'm going
00:11:27
◼
►
to probably end up really ticked off again. But standing here now, I'm going to put
00:11:31
◼
►
on my happy face.
00:11:33
◼
►
So yeah, I bet the guy who wrote you in with like the—we were IMing about a particular
00:11:36
◼
►
known bug that could take out the Showbot very quickly—the person who wrote in to
00:11:40
◼
►
to you about that probably now feels bad about exploiting it and won't. So you've sort of
00:11:45
◼
►
got that person on your side because it's no fun anymore, because if you know about
00:11:49
◼
►
the bug and he told you about the bug and he knows it's not fixed, it's not as fun to
00:11:52
◼
►
exploit it to bring the thing down.
00:11:54
◼
►
Right, security by guilt.
00:11:56
◼
►
Someone on the chatroom said, "Well, attacking is always more fun than defending." That's
00:12:01
◼
►
like level one. Level two is that defending is more fun than attacking because the attackers
00:12:06
◼
►
all think they're hot, but really if you're a defender, that shows you're better than
00:12:09
◼
►
all the attackers, you know, it's the white hat, black hat thing. I feel like white hat
00:12:16
◼
►
is the next level up from black hat, because everyone wants to be black hat, I'm going
00:12:19
◼
►
to crack into things, but to be a white hat, you are saying that you are better than any
00:12:23
◼
►
potential black hat, which is an even more boastful statement.
00:12:27
◼
►
And we died. Gone.
00:12:28
◼
►
That was it. Let me see if I— It doesn't mean that other people didn't
00:12:31
◼
►
also know that, known bug, and weren't on your side.
00:12:35
◼
►
Let's see, where did I, I see a stack trace, unspecified,
00:12:38
◼
►
oh, apparently there was just some sort of error
00:12:40
◼
►
in the web socket.
00:12:42
◼
►
All right, you guys stall while I put up a gist
00:12:43
◼
►
so people who actually know what the crap they're doing
00:12:46
◼
►
can diagnose this.
00:12:48
◼
►
- Our first sponsor this week is a new sponsor.
00:12:50
◼
►
Yeah, right?
00:12:51
◼
►
I'm getting good at this sometimes, maybe occasionally.
00:12:54
◼
►
Our new sponsor this week is Raiz Labs,
00:12:57
◼
►
it's R-A-I-Z-L-A-B-S, Raiz Labs.
00:13:00
◼
►
They are a full service development firm
00:13:02
◼
►
with offices in Boston and San Francisco.
00:13:04
◼
►
They've been around for about 10 years now,
00:13:07
◼
►
and they've been crafting great mobile products
00:13:09
◼
►
for a variety of companies, big and small.
00:13:11
◼
►
It's up from well-known brands like Macy's and Bloomingdale's
00:13:14
◼
►
and B&H Photo Video to local startups like Sunsprite,
00:13:17
◼
►
the creator of the first solar-powered
00:13:18
◼
►
personal sun exposure tracker.
00:13:21
◼
►
The company got its start by shipping one of the very first
00:13:22
◼
►
several hundred apps in the app store called Runkeeper.
00:13:25
◼
►
It's actually been there since the beginning.
00:13:27
◼
►
It's a Boston-based GPS fitness tracking app.
00:13:29
◼
►
Anyway, Raizelabs wants to change the world
00:13:32
◼
►
with great software.
00:13:33
◼
►
They care about crafting quality products
00:13:35
◼
►
and they are looking for others that share this mentality.
00:13:38
◼
►
See, this sponsorship's actually a job listing.
00:13:40
◼
►
They are actively hiring for experienced mobile developers,
00:13:43
◼
►
iOS and Android in both Boston and San Francisco
00:13:47
◼
►
to engineer beautiful apps and influence product direction
00:13:49
◼
►
for well-known Fortune 500 companies
00:13:52
◼
►
and exciting new startups.
00:13:53
◼
►
They're also looking for talented designers
00:13:56
◼
►
to help craft a memorable experience for users
00:13:58
◼
►
as well as product managers.
00:14:00
◼
►
You'll be working with enthusiastic and supportive peers
00:14:03
◼
►
in a trust-based work environment.
00:14:05
◼
►
I wonder if they have a parking lot.
00:14:07
◼
►
If a place doesn't have a parking lot,
00:14:10
◼
►
can they still use that phrase?
00:14:12
◼
►
- 'Cause they're in major metro areas,
00:14:14
◼
►
they might not even have a parking lot,
00:14:15
◼
►
'cause those are, you know, they're in dense areas.
00:14:17
◼
►
Anyway, we'll just assume they don't use that phrase,
00:14:20
◼
►
'cause they seem like good people.
00:14:21
◼
►
So, you'll be working with enthusiastic
00:14:23
◼
►
and supportive peers in a trust-based work environment.
00:14:26
◼
►
They also have unique vacation and referral programs.
00:14:29
◼
►
Their vacation policy is unlimited, unmetered,
00:14:32
◼
►
It can be summed up in four words, "In team we trust."
00:14:36
◼
►
How much time you take off is up to you.
00:14:38
◼
►
They also have this referral program where anyone who refers a talented individual to
00:14:41
◼
►
RaizLabs will receive a four-day all-expenses paid vacation for two.
00:14:46
◼
►
You can learn about that at raizlabs.com/trip.
00:14:48
◼
►
They also have hack days every two weeks.
00:14:50
◼
►
The only requirement is that you must demo or present whatever you've learned.
00:14:54
◼
►
And they're involved in the iOS community with sponsoring events such as AltConf and
00:14:58
◼
►
Drinks on Tap.
00:14:59
◼
►
So check out RaizLabs.
00:15:00
◼
►
They're looking for good people.
00:15:01
◼
►
If you want to work there, get in touch.
00:15:03
◼
►
Go to Raizlabs, R-A-I-Z-L-A-B-S, .com/ATP.
00:15:08
◼
►
Once again, that's Raiz with a Z, raizlabs.com/ATP.
00:15:12
◼
►
Thanks a lot to Raizlabs for sponsoring the show,
00:15:14
◼
►
and check 'em out if you want a good job.
00:15:16
◼
►
- All right, so Jeremy Banks in the chat
00:15:18
◼
►
is one of the people who has dedicated
00:15:22
◼
►
not insignificant amount of time to improving the showbot,
00:15:25
◼
►
and apparently one of the many branches and pull requests
00:15:28
◼
►
that is out there that I haven't had a chance to look at
00:15:31
◼
►
fixes this problem, which is to say that I wasn't catching or handling errors in
00:15:37
◼
►
WebSockets. Now, of course, that error probably shouldn't have happened in the first place,
00:15:40
◼
►
but eventually that exception just bubbled up and brought everything to its knees. So
00:15:44
◼
►
that, I believe, is what happened. But it's event-driven.
00:15:48
◼
►
Right. And it's scalable. This is how it scales.
00:15:51
◼
►
Well, WebSockets are a little bit weird, but your point is not unreasonable. But anyway,
00:15:54
◼
►
we could—we don't need to talk about the showbot anymore. It lasted, what, 10 minutes? That's not
00:15:58
◼
►
Not even. It's an improvement. It's getting worse every week. It lasted 15 last week.
00:16:02
◼
►
Oh, yeah, you're right.
00:16:04
◼
►
I did my best trying to stall for time by guilting people into not bringing it down,
00:16:07
◼
►
but it's not working. It's only worked for so long.
00:16:10
◼
►
Do we have any actual other follow-up? I mean, we have like this, you know,
00:16:14
◼
►
four pages worth in the document, but are we actually going to read this or what?
00:16:17
◼
►
I put one item at the very top. I mean, it could be a topic, too. I just figured we would talk
00:16:21
◼
►
about Google I/O, but then Casey said he didn't even watch it, so I'm not sure what we'll talk
00:16:24
◼
►
about today, but I had one Apple WWDC sort of related topic, so it's kind of follow-up.
00:16:30
◼
►
Well, you know, follow-up is the essence of experience design. The primary actions are
00:16:37
◼
►
inflection points that transform the whole design. Their emphasis makes core functionality
00:16:42
◼
►
immediately apparent and provides waypoints for the user. That's not the worst one, though. The
00:16:47
◼
►
one that DHH tweeted was, I think that was, because I read that like six times and I'm like,
00:16:54
◼
►
There's not even—is there a verb in the sentence anywhere? It was just—
00:16:57
◼
►
Well, for what it's worth, I did at least look at a couple of recaps to see the general gist of what
00:17:03
◼
►
was said, and I watched one of their, like—what is this silly term they have for design? Material-based
00:17:09
◼
►
design or something like that? "A material metaphor is the unifying theory of a rationalized
00:17:14
◼
►
space and a system of motion. Our material is grounded in tactile reality, inspired by our
00:17:21
◼
►
study of paper and ink, yet open to imagination and magic."
00:17:25
◼
►
The thing that scared me when he tweeted that, because the tweet was something like, "Apple
00:17:31
◼
►
has some high-minded knowledge or BS language essentially in their copy sometimes, but this
00:17:38
◼
►
really takes the cake." And I'm like, "That's from an Apple website?" Because I thought
00:17:41
◼
►
he was saying that, "Yeah, Apple says some crazy stuff sometimes, but look at this, this
00:17:45
◼
►
is the worst thing they've ever done." And I was looking at it, I'm like, "What
00:17:49
◼
►
page could that possibly be from? That can't be from an Apple site, and I was relieved
00:17:53
◼
►
to learn that it was not from an Apple site, but it was from a Google site. Yeah. Not great.
00:18:00
◼
►
No, but I will say the literally two or two and a half minute video that they have on
00:18:05
◼
►
their new design site where they don't really say much of anything, I don't think, but they
00:18:10
◼
►
show the kind of idea behind the look and feel of, what is this, Android L. But anyway,
00:18:18
◼
►
that actually looked good to me.
00:18:19
◼
►
And a lot of it looked a lot like iOS, and some of it didn't.
00:18:22
◼
►
But I thought it looked good.
00:18:24
◼
►
I thought the Apple video, they're
00:18:26
◼
►
a little introverted for iOS.
00:18:27
◼
►
That would look better.
00:18:28
◼
►
But it's not like--
00:18:30
◼
►
we could do the whole show talking about how Google is
00:18:32
◼
►
worse at giving keynotes than Apple.
00:18:34
◼
►
But really, it doesn't matter that much
00:18:37
◼
►
how good the keynote is or how good the copy
00:18:40
◼
►
and marketing on their site matters a little bit more
00:18:43
◼
►
because that's persistent.
00:18:45
◼
►
But in terms of why do this thing, why do this material UI,
00:18:51
◼
►
Google has been trying for the past several years
00:18:54
◼
►
to address its perceived and, I think, actual shortcoming
00:18:57
◼
►
in user interface by saying it should look less
00:19:00
◼
►
like a bunch of programmers slapped something together
00:19:02
◼
►
and more like there were designers involved.
00:19:05
◼
►
And it's been a slow, long process,
00:19:06
◼
►
and this is the next step in it, to try to unify Google's user
00:19:11
◼
►
interface across all the things that have user interface
00:19:14
◼
►
to give a family resemblance or whatever.
00:19:17
◼
►
Don't you think that's a good idea?
00:19:19
◼
►
I mean, you can argue whether it should
00:19:20
◼
►
be unified across everything from watches to televisions,
00:19:23
◼
►
but Apple kind of has a common design language
00:19:27
◼
►
across everything that it does, even if they're not
00:19:29
◼
►
as similar as this material UI is supposed to be.
00:19:34
◼
►
- Yeah, I mean, I definitely think it's,
00:19:36
◼
►
they're going in a good direction.
00:19:38
◼
►
They're going in a direction they need to go in.
00:19:40
◼
►
A lot of the things they talked about
00:19:42
◼
►
while they were full of this blowhard in the clouds
00:19:45
◼
►
language, and who knows what they were sniffing
00:19:48
◼
►
over there when they came up with some of this,
00:19:49
◼
►
but the design, the actual design below all this BS
00:19:53
◼
►
looks pretty good to me, but it's easy,
00:19:56
◼
►
we can't really judge yet, it's way too early to judge
00:20:00
◼
►
because we don't really know how this will be in practice,
00:20:03
◼
►
and the three of us will probably never know
00:20:04
◼
►
'cause we'll probably never use it regularly
00:20:06
◼
►
to even see it, but it's easy to give a good demo
00:20:11
◼
►
give a good demo.
00:20:12
◼
►
- Well wait, is it easy?
00:20:14
◼
►
Is it easy to give a good demo?
00:20:16
◼
►
- Fair point.
00:20:17
◼
►
There's gonna be some challenges with this,
00:20:19
◼
►
like every design language,
00:20:21
◼
►
especially every trendy looking design language.
00:20:24
◼
►
One of the things I noticed immediately
00:20:27
◼
►
was it seems extremely reliant
00:20:29
◼
►
on fairly undiscoverable gestures.
00:20:33
◼
►
And you can say that about a lot of iOS stuff as well,
00:20:36
◼
►
but it seemed like this was especially so in that direction.
00:20:39
◼
►
That's a little bit scary to me,
00:20:41
◼
►
just from a usability perspective.
00:20:42
◼
►
Anything that revolves around like,
00:20:44
◼
►
oh well you can just pinch this out
00:20:46
◼
►
and drag here and move this thing around.
00:20:48
◼
►
Well, it has to be pretty clear to people,
00:20:51
◼
►
what can move, what can't, what is draggable, what can't.
00:20:53
◼
►
If there's something like a pinch or a drag
00:20:55
◼
►
that can expose pretty good functionality,
00:20:57
◼
►
how do you ever figure that out?
00:20:59
◼
►
That's always tricky with gesture-based interfaces
00:21:02
◼
►
and that's going to be a challenge here too.
00:21:05
◼
►
That being said, again I think it's too early to tell
00:21:09
◼
►
because anybody can, well, almost anybody
00:21:11
◼
►
can make a good demo.
00:21:13
◼
►
It's even easier to make a good video.
00:21:16
◼
►
It's much harder to actually predict
00:21:18
◼
►
how this will be once it's integrated
00:21:21
◼
►
through the whole system and once apps start integrating it.
00:21:23
◼
►
And none of the three of us know enough about Android
00:21:25
◼
►
to even know what the main problems these days are.
00:21:29
◼
►
- Well, not having used it is no reason
00:21:31
◼
►
to not pick up things that you don't like about it.
00:21:33
◼
►
So at least two things to complain about from the,
00:21:36
◼
►
and the first complaint is to actually complain
00:21:38
◼
►
about all recent visual redesign things,
00:21:43
◼
►
is that iOS does it, Google's doing it with this,
00:21:47
◼
►
everybody who does some sort of UI refresh
00:21:50
◼
►
feels this need, is it peer pressure,
00:21:52
◼
►
or is it just like, this is not new to computer interfaces,
00:21:55
◼
►
I guess this has always been there.
00:21:56
◼
►
They want some kind of theme or metaphor
00:22:00
◼
►
to anchor their design, which is a common thing,
00:22:02
◼
►
but in user interfaces on mobile devices and stuff,
00:22:07
◼
►
Like, the metaphor that Google used was,
00:22:11
◼
►
don't just think of it as a bunch of pixels.
00:22:12
◼
►
Think of the pixels not just having X and Y coordinates,
00:22:15
◼
►
but also Z coordinates, and down to the point
00:22:17
◼
►
where in the demo they're like, in your UI,
00:22:19
◼
►
you'll essentially give Z layering to all of your things,
00:22:23
◼
►
and then our user interface library will make them
00:22:26
◼
►
look like they have that Z layering by applying shadows
00:22:28
◼
►
and rendering them real time and all this stuff or whatever.
00:22:30
◼
►
But that metaphor, like that you need this metaphor,
00:22:33
◼
►
that it's like pieces of paper and they're stacked,
00:22:35
◼
►
and they have a z-index or like Apple where it's like translucent things sliding past
00:22:38
◼
►
each other and it's a layered thing.
00:22:41
◼
►
Those metaphors are important in that they inform the user interface, but it seems like
00:22:45
◼
►
maybe, I don't know who's worse about this, Apple or Google, like they take that design
00:22:51
◼
►
and they go beyond just having this be a way that humans who look at the screen can understand
00:22:56
◼
►
what's supposed to happen.
00:22:57
◼
►
And they just get lost in it and think that everything in their user interface has to
00:23:03
◼
►
inform and reinforce that metaphor
00:23:05
◼
►
for the sake of the metaphor, not for like, it flips.
00:23:09
◼
►
Instead of the metaphor being,
00:23:10
◼
►
this is how we're gonna get people to understand
00:23:11
◼
►
how to use our device, it becomes,
00:23:13
◼
►
the metaphor is the goal,
00:23:15
◼
►
and every part of our user interface has to reinforce
00:23:17
◼
►
and build on that metaphor,
00:23:19
◼
►
right down to being clever expansions of that metaphor
00:23:21
◼
►
and doing stuff like that.
00:23:22
◼
►
And it's like they lose the forest of the tree.
00:23:23
◼
►
So every time I see one of these videos
00:23:25
◼
►
that explains what the underlying thing is
00:23:27
◼
►
and then spends the rest of the video
00:23:28
◼
►
showing how everything folds into an underlying thing,
00:23:31
◼
►
I'd rather have them show me how the metaphor makes the interface more understandable to
00:23:36
◼
►
people instead of showing me how every part of the user interface conforms to the metaphor.
00:23:40
◼
►
So that's one thing.
00:23:41
◼
►
And again, you can't tell until we use it, but I can tell from the presentations that
00:23:44
◼
►
this is how they're presenting their UI.
00:23:48
◼
►
And the second thing—what is the second thing, I feel like?
00:23:50
◼
►
What's his name?
00:23:51
◼
►
The guy who forgot the third thing, but I can't remember the second thing.
00:23:55
◼
►
It'll come to me in a second.
00:23:59
◼
►
I'll get it in a second.
00:24:00
◼
►
So they only spent about the first 45 minutes or so talking about new stuff that was going
00:24:06
◼
►
into Android.
00:24:08
◼
►
Do I have that roughly right?
00:24:09
◼
►
And then the rest of it was some of these new initiatives, like the Android Wear, Android
00:24:14
◼
►
TV, Android in your vehicles, whatever their Android car, Android drive, what are they
00:24:19
◼
►
Auto Android, is that right?
00:24:21
◼
►
Android Auto, other way.
00:24:23
◼
►
It seemed like, so the first 45 minutes, here's what's new in Android, basically.
00:24:27
◼
►
You know, if you're into Android, that's probably very relevant.
00:24:29
◼
►
And I think what got people to say it was so boring, because in the first part of it
00:24:34
◼
►
everybody was quite interested in all that.
00:24:35
◼
►
And I wasn't watching it live, but I was watching the Twitter response, and yeah, the
00:24:40
◼
►
first part of it seemed pretty strong.
00:24:41
◼
►
And then they get into this hour and a half more, two hours more, of talking about various
00:24:49
◼
►
new hardware integration initiatives.
00:24:54
◼
►
What's bad about that is that none of these things are actual products yet, or very few
00:24:57
◼
►
of them are.
00:24:58
◼
►
it's all about the promise of what you can maybe do with this in the future.
00:25:02
◼
►
Like when Apple, you know, Apple unveiled the health book, health kit thing, home kit,
00:25:10
◼
►
and they didn't even mention CarPlay, or if they did it was very quick in this keynote,
00:25:16
◼
►
because I think it was, didn't it launch last year? Didn't they initially launch
00:25:21
◼
►
CarPlay last year? Anyway.
00:25:22
◼
►
- But they had a Ferrari.
00:25:25
◼
►
- Right. But they didn't give it a whole lot of time in the keynote because there's
00:25:28
◼
►
much really to say yet. It's, "Hey, we have this new thing. We hope people make devices
00:25:34
◼
►
for it basically and we hope you make apps for it once these devices exist. Good luck
00:25:38
◼
►
with that and moving on." And that's what they did this year with HealthKit and HomeKit
00:25:42
◼
►
because there really was not much to say. Google devoted three quarters of their keynote
00:25:47
◼
►
to that. And so I think that's why it was so boring because it's a lot like a CES
00:25:54
◼
►
keynote at that point. CES keynotes are famously, especially when Microsoft would give them
00:25:59
◼
►
our HP or whoever, they would always be famously full of vaporware. It would always be this
00:26:04
◼
►
crazy stuff that kind of maybe sounds interesting during the demo and kind of sounds possibly
00:26:11
◼
►
impossible or stretching the limits of what consumer products can be or can do realistically.
00:26:16
◼
►
And then six months later they get cancelled and they were never released or they come
00:26:21
◼
►
out and they're really disappointing and they flop badly in the market because they were
00:26:24
◼
►
nothing like what they were going to be demoed like in the keynote.
00:26:28
◼
►
And it's hard to look at Google's rest of their keynote and not make a parallel there
00:26:34
◼
►
because it seems like almost everything they announced after the first 45 minutes was like
00:26:39
◼
►
here's a bunch of new stuff that in the best case scenario might come out fairly soon and
00:26:45
◼
►
might be kind of cool. But we're depending on a lot of other people for that to happen
00:26:49
◼
►
And in the meantime, here's some pretty terrible smartwatches
00:26:52
◼
►
to tide you over.
00:26:54
◼
►
I think that's a little bit harsh because, A,
00:26:56
◼
►
this is Google's-- part of Google's strategy
00:26:58
◼
►
is that they make a platform that other hardware maker--
00:27:01
◼
►
other people can build products on.
00:27:02
◼
►
Like, that's their thing.
00:27:03
◼
►
I mean, you could say you don't like that thing as much
00:27:05
◼
►
as Apple's thing, but that is certainly their thing.
00:27:07
◼
►
So to expect Google to come out and have products
00:27:11
◼
►
behind every single one of these things
00:27:12
◼
►
that their software platform provides
00:27:15
◼
►
is probably-- expect them to be too much like Apple.
00:27:18
◼
►
but the things that they show,
00:27:21
◼
►
like the idea that we've got this platform,
00:27:23
◼
►
the platform works obviously in phones and tablets,
00:27:26
◼
►
here's how the platform works on television,
00:27:28
◼
►
here's how it might work on a watch.
00:27:30
◼
►
I didn't like the watches either,
00:27:33
◼
►
but it is showing that their platform works there.
00:27:36
◼
►
And the TV stuff looked pretty good to me.
00:27:38
◼
►
Certainly, they have shown an ability
00:27:41
◼
►
to have a single platform that spans all those devices
00:27:45
◼
►
better than Apple has,
00:27:46
◼
►
because Apple has its platform, it's got its desktop platform,
00:27:50
◼
►
and its tablet and phone platform, and its TV platform,
00:27:52
◼
►
and there's no unified story that includes all of them.
00:27:57
◼
►
And you could say, well, we don't
00:27:59
◼
►
want it to be unified across the Mac and iOS devices, which
00:28:03
◼
►
But the TV thing already runs iOS,
00:28:05
◼
►
but it doesn't even run apps.
00:28:06
◼
►
Like, they're not extending that platform out there.
00:28:09
◼
►
So I think that Google is out ahead of Apple
00:28:11
◼
►
in terms of having a unified platform across all
00:28:13
◼
►
their products.
00:28:13
◼
►
It just so happens that they're not
00:28:14
◼
►
responsible for making all their products because their whole deal is they let other people build on them and so on and so forth
00:28:18
◼
►
But the TV stuff that they showed that looks a hell of a lot better than the Apple TV
00:28:22
◼
►
You I don't don't you guys think yeah, I didn't see very much of it
00:28:25
◼
►
But it's the one or two images I saw looked very good and the Apple TV is starting to look a little dated
00:28:31
◼
►
But to go back just a step what's so bad about these watches? I'm I don't I mean I'll tell you what's bad about the watches
00:28:37
◼
►
Oh, so let me finish my thought
00:28:40
◼
►
But I genuinely would love to hear what you have to say because I'm looking at these pictures that are on the verge of the which
00:28:45
◼
►
One is this moto 360 and I don't see an issue with the circular display
00:28:50
◼
►
Gigantic that's the round one right okay? Well hold yes, it's around one now hold on now
00:28:53
◼
►
The one thing I was gonna say is I have the tiniest
00:28:56
◼
►
Risks that any man has ever had in in the history of mankind and so I think this thing would look ridiculous on me
00:29:02
◼
►
But let's assume for a moment that I didn't have little teeny tiny wrists. I don't see what's so bad about this
00:29:08
◼
►
I think it looks okay. It looks a lot better than a pebble.
00:29:10
◼
►
We are also sponsored this week by our friends at Squarespace. They are back once again.
00:29:15
◼
►
Now we're going to do something a little bit different this week. Squarespace recognizes
00:29:19
◼
►
that they have supported lots of podcasts, big and small. They really fund a lot of them
00:29:25
◼
►
and we all thank them very much for that. They want to be in the forefront of helping
00:29:29
◼
►
this medium reach the next level. But for this ad read, they wanted to try something
00:29:32
◼
►
different, something fun. Now our friend Jonathan Mann, also known as Song of the Day Mann,
00:29:37
◼
►
Jonathan Mann, who wrote our theme song,
00:29:39
◼
►
which you've possibly heard before,
00:29:41
◼
►
if you've ever listened to the end of our show,
00:29:42
◼
►
or let's be honest, the middle of our show.
00:29:45
◼
►
If you've ever listened,
00:29:46
◼
►
so Jonathan Mann wrote our awesome theme song.
00:29:49
◼
►
He also recently, he was tired of hearing
00:29:51
◼
►
the same Squarespace reads over and over again.
00:29:53
◼
►
So he wrote a Squarespace sponsorship song.
00:29:57
◼
►
♪ It's the all in one platform ♪
00:30:02
◼
►
♪ Makes it fast and easy to create ♪
00:30:05
◼
►
You can start with 20 highly customizable
00:30:09
◼
►
10 plays to make your own professional website
00:30:13
◼
►
Or online portfolio
00:30:15
◼
►
Industry leading support
00:30:18
◼
►
At just $8 a month, whoa
00:30:21
◼
►
You know the drill, you know where to go
00:30:24
◼
►
Squarespace, get started today
00:30:26
◼
►
Make the website that you wanna make
00:30:29
◼
►
Squarespace, so easy and fast
00:30:32
◼
►
They fund all your favorite podcasts
00:30:34
◼
►
They fund all your favorite podcasts to start your free trial
00:30:40
◼
►
No credit card required or responsive design
00:30:45
◼
►
Every device, every time, all the options you need
00:30:50
◼
►
To create a unique website, they're constantly improving
00:30:56
◼
►
The platform and the tools, and it's awesome
00:31:00
◼
►
♪ Squarespace, get started today ♪
00:31:03
◼
►
♪ Make the website that you wanna make ♪
00:31:06
◼
►
♪ Squarespace, so easy and fast ♪
00:31:09
◼
►
♪ They fund all your favorite podcasts ♪
00:31:12
◼
►
♪ They fund all your favorite podcasts ♪
00:31:17
◼
►
- You can start a free trial with no credit card required.
00:31:19
◼
►
Start building your website today.
00:31:21
◼
►
When you decide to sign up for Squarespace,
00:31:23
◼
►
make sure to go to squarespace.com
00:31:25
◼
►
and use the offer code ATP to get 10% off
00:31:28
◼
►
your first purchase and to show your support for our show.
00:31:30
◼
►
Once again, use Koopa code ATP to get 10% off.
00:31:34
◼
►
Thank you very much to Squarespace and to Jonathan Mann.
00:31:37
◼
►
Thanks to Squarespace for sponsoring our show.
00:31:38
◼
►
Thanks to Jonathan Mann for being awesome.
00:31:40
◼
►
Squarespace, a better web starts with your website.
00:31:43
◼
►
Now, John, why do smartwatches suck?
00:31:47
◼
►
- I don't know what smartwatches in general,
00:31:49
◼
►
but the ones they showed at this Google thing,
00:31:51
◼
►
and I didn't watch all the smartwatch demo,
00:31:53
◼
►
but I watched enough to see what they're doing essentially.
00:31:56
◼
►
And I had just talked about how it was a good idea
00:31:57
◼
►
that Google had a platform that spanned
00:32:00
◼
►
little screens to big screens and how that was a strength for them. But I remain unconvinced
00:32:06
◼
►
that the correct way to do a smartwatch is to take your user interface that you have
00:32:09
◼
►
on your phones and your tablets and your TVs and continue to shrink it until it's on your
00:32:13
◼
►
wrist and then tap and swipe your way through a series of UIs that are custom made to fit
00:32:16
◼
►
on a very tiny screen. Because that just doesn't look like a good time for me. That doesn't
00:32:21
◼
►
look like something that's useful. You have to compromise. Certain UI elements and staples
00:32:26
◼
►
just don't work on a small screen, like table views and stuff start to become ridiculous
00:32:30
◼
►
when you can see two items at once.
00:32:32
◼
►
And you know, it's just, I don't think that's the right solution for a screen that small.
00:32:36
◼
►
In the same way that the right solution for a screen the size of a television isn't merely
00:32:40
◼
►
like a tablet UI made larger, right?
00:32:44
◼
►
It's something entirely different, never mind that you're not even touching it.
00:32:47
◼
►
It just doesn't seem like there's enough room down there if you just say, "Oh, I'll just
00:32:49
◼
►
take my regular Android OS and just make it smaller.
00:32:52
◼
►
And I'll keep the elements the same size so they're still touchable, but if there's not
00:32:57
◼
►
room for a particular element, I just won't put that on there and I'll just have small
00:33:00
◼
►
things and you'll swipe and you'll tap.
00:33:02
◼
►
Swiping and tapping on something that's small just looks like a non-starter to me.
00:33:06
◼
►
I mean, I've had the small iPod Nanos with the little touch screen and everything and
00:33:10
◼
►
it's just not, it doesn't work for me.
00:33:12
◼
►
So I think there is another solution to things that big.
00:33:16
◼
►
Maybe it doesn't involve screens at all.
00:33:17
◼
►
If it does, maybe they behave in a different way.
00:33:20
◼
►
it's just a matter of putting different UI elements
00:33:22
◼
►
on that screen that don't exist in any form on any
00:33:24
◼
►
of the larger screens.
00:33:26
◼
►
So that's why I think these watches are duds.
00:33:30
◼
►
To some extent, I can see why Google
00:33:32
◼
►
pushes this whole one interface scalable to every device size
00:33:36
◼
►
thing, because they have to.
00:33:37
◼
►
Because that's the environment of Android hardware.
00:33:39
◼
►
They kind of have to do that in general.
00:33:44
◼
►
I do agree, though.
00:33:45
◼
►
It's going to be a pretty painful approach for developers
00:33:49
◼
►
to try to actually fulfill the promise of that
00:33:51
◼
►
and try to actually make like one interface
00:33:54
◼
►
that magically scales to all these different sizes
00:33:55
◼
►
and doesn't suck on any of them.
00:33:56
◼
►
- I think it's custom UI for the phone.
00:33:59
◼
►
I'm just saying like the elements that are involved,
00:34:01
◼
►
buttons, regions that you scroll,
00:34:03
◼
►
controls for doing things.
00:34:05
◼
►
I mean, I guess they don't have text input
00:34:06
◼
►
because it's mostly speech or whatever,
00:34:08
◼
►
but just I'm assuming that you have to write a custom UI
00:34:11
◼
►
for this and that they have custom controls for it,
00:34:13
◼
►
certainly for things like the circular screen
00:34:14
◼
►
and all that stuff.
00:34:15
◼
►
just the elements that are involved in the user interface,
00:34:20
◼
►
things that you tap, things that you slide,
00:34:22
◼
►
things that you scroll through,
00:34:23
◼
►
I don't think there's enough room
00:34:25
◼
►
for that type of interface in a thing that small.
00:34:27
◼
►
And I'm basing this mostly actually
00:34:29
◼
►
by using the touchscreen iPods
00:34:31
◼
►
that have the very small touchscreens.
00:34:33
◼
►
It just doesn't feel good at that size.
00:34:36
◼
►
- The big problem that we've seen
00:34:37
◼
►
with almost all of the smartwatches
00:34:38
◼
►
that have come out so far,
00:34:39
◼
►
from the Pebble to these new ones,
00:34:41
◼
►
it's all about the screen.
00:34:44
◼
►
And the screen is never big enough to be useful,
00:34:49
◼
►
but never small enough to make for a good watch.
00:34:51
◼
►
And that's why I think that really,
00:34:53
◼
►
the whole idea of a smartwatch,
00:34:55
◼
►
it might not be possible to make a good one.
00:34:59
◼
►
Certainly not with today's technology,
00:35:01
◼
►
but maybe even ever.
00:35:02
◼
►
Like there's just fundamental limits of like,
00:35:05
◼
►
the ideal watch does not have a giant screen,
00:35:08
◼
►
but the ideal touch screen is big.
00:35:10
◼
►
And so it's very hard to rectify that conflict design-wise.
00:35:14
◼
►
You know, even if you could make it like infinitely thin
00:35:18
◼
►
and light and give it infinite battery life,
00:35:20
◼
►
you still have the issue of, you know,
00:35:22
◼
►
we need to somehow maximize it,
00:35:24
◼
►
but also minimize the size of the screen.
00:35:26
◼
►
- See, I don't know if you're right about that.
00:35:27
◼
►
Because, so I have a couple of friends
00:35:30
◼
►
that are watch collectors,
00:35:32
◼
►
and I think I probably would be one of those people
00:35:36
◼
►
if A, I wasn't cheap,
00:35:38
◼
►
And B, I didn't have the tiny wrists
00:35:41
◼
►
that we spoke about earlier.
00:35:42
◼
►
But like, for example, a Rolex is a relative,
00:35:45
◼
►
well, the average stereotypical Rolex is fairly large.
00:35:49
◼
►
And like my one friend really, really loved Panerai watches,
00:35:53
◼
►
which I'd never heard of until I'd spoken to him about it,
00:35:55
◼
►
but they're very pretty, I believe Italian watches.
00:35:57
◼
►
And they're huge, they're freaking enormous.
00:36:00
◼
►
And like Clarkson and Hammond on top here,
00:36:02
◼
►
if memory serves, they're both big into watches.
00:36:04
◼
►
And typically wear these physically very, very large watches.
00:36:09
◼
►
Right, because Top Gear presenters are the real fashion leaders of the world.
00:36:12
◼
►
But that's the point, though, that all these people who are wearing these watches are wearing
00:36:16
◼
►
them for fashion reasons, not for utilitarian reasons, and they don't... how long do they
00:36:21
◼
►
spend looking at the face of those watches?
00:36:24
◼
►
Let alone pawing at the face of those watches.
00:36:27
◼
►
Zero time pawing at the face of the watches.
00:36:29
◼
►
Very short amount of times looking at the face of the watches.
00:36:31
◼
►
They're mostly wearing them as a piece of jewelry, as a fashion accessory, not as a
00:36:36
◼
►
utilitarian thing.
00:36:37
◼
►
So none of these things qualify as fashion accessories, because they're ugly, especially
00:36:40
◼
►
the square one looks terrible, the circle one looks humongous, I guess if you are a
00:36:44
◼
►
giant person it is proportional to you, but then you'll have equivalently giant sausage-like
00:36:49
◼
►
fingers and won't be able to use it anyway.
00:36:51
◼
►
But the idea that anyone's going to spend any amount of time turning their wrist towards
00:36:54
◼
►
themselves and staring at their wrist and pawing at it with their finger to get stuff
00:36:57
◼
►
done, it's like they'll just turn their wrist back down, take out their phone.
00:37:05
◼
►
ago people on the street weren't holding a rectangle staring at it with their
00:37:08
◼
►
head down. Now you walk around a city street everyone's got little rectangles
00:37:11
◼
►
out and they're staring at them. So that is a change in behavior. So it's
00:37:13
◼
►
conceivable that a couple years from now instead of everyone holding little
00:37:16
◼
►
rectangles everyone is staring at their wrists as if they're trying to tell what
00:37:18
◼
►
time it is but all can't tell time. Like boy I can only tell time in a digital closet
00:37:22
◼
►
and they're just staring at it and they're studying it but really what they're
00:37:24
◼
►
doing is like reading Twitter on their wrist. I guess that's conceivable but it
00:37:27
◼
►
still seems to me that that's not the... the smartwatch is not just a phone
00:37:32
◼
►
strapped to your wrist smaller. I think that is the wrong solution for smartwatches and
00:37:36
◼
►
no matter how good technology gets, what if we can make it as thin as a piece of paper?
00:37:40
◼
►
If it's still watch size, I don't want to be holding it up looking at it or pawing at
00:37:44
◼
►
it with my finger. I think there is a role for something smart that's on your wrist.
00:37:47
◼
►
I'm just, I just don't think the role is like a tiny little phone on your wrist.
00:37:51
◼
►
Right, so maybe, maybe the solution then, you know, because I think you're right. You
00:37:55
◼
►
know, so maybe the solution really is not to leave the interaction to the watch, to
00:38:00
◼
►
leave the watch really just be like a very, you know, as small as possible, a
00:38:04
◼
►
just a display. It could be an output device for notifications. "Oh, I'm late
00:38:09
◼
►
for my meeting" or you know voice input quickly and then it would start sounding
00:38:13
◼
►
off directions to your Bluetooth headset to tell you where to turn as you walk
00:38:15
◼
►
through. Like there are uses that I can see for it. I'm not saying a smart
00:38:19
◼
►
watch is dumb. A smart watch is a good idea. It's just that what these guys keep
00:38:22
◼
►
making is tiny phone on my wrist. Right, whereas if like if you if you give up on
00:38:27
◼
►
the idea that you should be pawing at your watch all the time. If the watch's primary
00:38:32
◼
►
purpose is to give you information at a quick glance and then you leave the interaction
00:38:37
◼
►
up to taking the phone into your pocket, which is better suited for the job in almost every
00:38:41
◼
►
case anyway, then you can make the watch substantially simpler and you can make the display much
00:38:46
◼
►
smaller and you can then, I mean it doesn't even need to be a touch screen.
00:38:50
◼
►
I'm not getting one.
00:38:52
◼
►
You don't even have an iPhone yet.
00:38:55
◼
►
I don't have a watch.
00:38:58
◼
►
Well, that's true.
00:38:59
◼
►
Of the three of us, I'm the only one who actually wears
00:39:00
◼
►
a watch, aren't I?
00:39:02
◼
►
I wore a watch in middle school.
00:39:03
◼
►
I wore a watch up until around the time I got an iPhone,
00:39:06
◼
►
and then I stopped wearing a watch,
00:39:08
◼
►
and then I just recently started again.
00:39:10
◼
►
I remembered my second thing.
00:39:12
◼
►
Tell us about your second thing.
00:39:14
◼
►
We're also sponsored-- just kidding.
00:39:17
◼
►
So we were talking about the material UI,
00:39:20
◼
►
and I was talking about the metaphor,
00:39:22
◼
►
taking too much prominence, both in a Google and Apple thing.
00:39:24
◼
►
The second thing is that's unique to what Google showed for their material thing, they
00:39:27
◼
►
only showed a little bit of it, was that they've decided to do something that I thought more
00:39:34
◼
►
touch user interfaces would do, and the fact that no one has done it that much until Google
00:39:41
◼
►
demoed it is surprising to me, but maybe everybody knows something that Google doesn't, and that
00:39:45
◼
►
thing is showing feedback for your touch as a matter of course, as a matter of like, with
00:39:52
◼
►
the expectation that when you touch or do anything
00:39:54
◼
►
in the interface, the interface response
00:39:55
◼
►
lets you know you've done it.
00:39:57
◼
►
Now, that type of feedback is really important
00:39:59
◼
►
in regular user interfaces with a mouse and everything
00:40:02
◼
►
because it's indirect in a way.
00:40:05
◼
►
So you put your cursor over a button, you click the button,
00:40:07
◼
►
you want the button to highlight,
00:40:08
◼
►
and you want it to highlight on mouse down,
00:40:10
◼
►
and you want it to do something different on mouse up.
00:40:12
◼
►
You want to feel like you're pressing it.
00:40:13
◼
►
So they used to have 3D type interfaces
00:40:16
◼
►
where the buttons look puffy in earlier versions
00:40:18
◼
►
of Windows and Mac, and even today to some degree as well.
00:40:22
◼
►
and it lets you know that you were successful, that something was happening.
00:40:25
◼
►
If you just had a user interface where there were buttons and you clicked them and nothing happened
00:40:29
◼
►
and then eventually the dialogue went away, you might not be sure which button you clicked.
00:40:32
◼
►
The same thing with the menus that come down on the Mac.
00:40:35
◼
►
When you select a menu item on the original Mac, the menu item you selected would flash on and off a few times
00:40:41
◼
►
before the menu went away because they want you to know, yeah, you were trying to get that menu item,
00:40:44
◼
►
you did get that menu item, in fact it was adjustable on the original Mac to be like one flash, two flash, or three flashes or whatever.
00:40:50
◼
►
Visual feedback, what's going on.
00:40:52
◼
►
Touch elements do the same thing,
00:40:53
◼
►
like in iOS when you touch a button,
00:40:55
◼
►
it may invert or whatever like that.
00:40:57
◼
►
But the material UI seems to go much farther
00:41:00
◼
►
in that it's almost giving you the kind of thing
00:41:02
◼
►
you see on a screen in presentations
00:41:03
◼
►
where they want you to show where the person is touching.
00:41:05
◼
►
You can't see their finger 'cause they're using a device,
00:41:07
◼
►
but the device's screen is being projected.
00:41:09
◼
►
So they have like those little circles
00:41:10
◼
►
like that appear in the iOS simulator or whatever.
00:41:12
◼
►
But this is part of the OS,
00:41:14
◼
►
that you get a little circle
00:41:15
◼
►
with like little ripply lines coming out of it.
00:41:17
◼
►
And then when you select an element,
00:41:18
◼
►
a little ripple goes across the element to show that it's selected.
00:41:21
◼
►
Very heavy-handed feedback to let people know that,
00:41:25
◼
►
"Yes, I registered your touch. Yes, it touched this item, and here it is."
00:41:29
◼
►
And not just on individual items or buttons, but if they touch almost anywhere,
00:41:32
◼
►
like they were shown on the dial pad, you see the little ripples appear where you hit the dial pad.
00:41:36
◼
►
Not just like the one-button ripples, but where your finger touched.
00:41:39
◼
►
If you touched in the upper left of the one, a little ripple appears there.
00:41:42
◼
►
And I can't decide if this is brilliant or terrible.
00:41:45
◼
►
Part of me that makes me think it might be brilliant is I've seen a lot of people use
00:41:51
◼
►
touch interfaces and not be sure whether their touches are doing anything.
00:41:55
◼
►
Now, granted, most of the time that's because they're using a touch device that is not as
00:41:58
◼
►
responsive as a top-end iOS device, like say some cruddy Android thing where the interface
00:42:03
◼
►
is slow and they'll stab at it a few times or hit the same button multiple times or try
00:42:09
◼
►
it and then take their finger off and try it again because it didn't register that time.
00:42:13
◼
►
That must be frustrating for them.
00:42:15
◼
►
So if Android is the OS of choice for underpowered devices with non-responsive UIs, having really
00:42:22
◼
►
heavy-handed visual feedback to let people know when their touch was registered and where
00:42:28
◼
►
the device thinks they touched and what thing they just selected might be an excellent idea.
00:42:33
◼
►
But on the other hand, I think it would drive me insane because the whole point of a great
00:42:37
◼
►
touch interface is that it should feel like manipulating a physical thing.
00:42:41
◼
►
Scrolling should stick to my finger, touching the button should immediately highlight it
00:42:44
◼
►
like it should be direct manipulation.
00:42:47
◼
►
I don't need this indirection.
00:42:48
◼
►
But if the indirection is there because everything
00:42:49
◼
►
is too slow, then maybe this kind of interface
00:42:52
◼
►
is a good idea.
00:42:53
◼
►
And what it makes me think is that if the world
00:42:55
◼
►
of Android users gets used to this eventually,
00:42:57
◼
►
in four years when everybody's using this interface,
00:43:00
◼
►
they will find a device that does not do this,
00:43:03
◼
►
even if the device is super responsive to be inferior,
00:43:05
◼
►
because they'd be like, oh, I like the one
00:43:06
◼
►
that shows me where I touched.
00:43:08
◼
►
Does that sound crazy that that would be something
00:43:10
◼
►
that eventually people could latch onto and think is great?
00:43:13
◼
►
No, I mean, I think what we're seeing this year,
00:43:16
◼
►
what we saw a lot from Apple,
00:43:18
◼
►
and I think what Google has always been doing to some degree
00:43:22
◼
►
and is continuing to do like this,
00:43:24
◼
►
we're seeing the platforms try to differentiate
00:43:28
◼
►
themselves further so that they lock people in
00:43:31
◼
►
more effectively because, you know,
00:43:34
◼
►
not a lot of people leave iOS for Android,
00:43:36
◼
►
but a lot of people have left Android for iOS,
00:43:39
◼
►
and certainly Google wants to stop that,
00:43:41
◼
►
and certainly Apple wants to make the reverse
00:43:43
◼
►
less likely to happen in the future.
00:43:45
◼
►
And so we're seeing things like Apple building up
00:43:50
◼
►
a whole bunch of hype around things like CloudKit
00:43:53
◼
►
and the cloud services,
00:43:54
◼
►
the things that don't appear on Android,
00:43:56
◼
►
Google doing similar things with the levels of integration
00:43:59
◼
►
they can get, what they can permit app developers to do,
00:44:01
◼
►
and now something like that,
00:44:03
◼
►
certainly it could be a strategic thing like that.
00:44:06
◼
►
It probably wasn't, I mean it's probably like,
00:44:09
◼
►
I'm sure somebody thought about that
00:44:10
◼
►
after they came up with it and said,
00:44:11
◼
►
"Oh, this also has a side benefit of being, you know, some potential lock-in."
00:44:15
◼
►
I wouldn't view it as lock-in. It's just like, if it's a feature that people like,
00:44:20
◼
►
and they come to associate it with that category of product, right? In the same way that essentially
00:44:26
◼
►
people came to associate a rectangle with a screen on it as what a smartphone looks
00:44:30
◼
►
like, and everyone else had to make rectangles with screens on them because that's what
00:44:34
◼
►
people thought of a smartphone because the iPhone defined the category. Giving people
00:44:38
◼
►
something that they react to strongly that makes them feel comfortable with the device,
00:44:43
◼
►
makes them feel comfortable using the device, makes them feel familiar and friendly.
00:44:47
◼
►
It's not lock-in like, "Oh, I wish I could leave, but I can't because the other devices
00:44:51
◼
►
don't have this feature."
00:44:53
◼
►
It's that they like it, and they try to go to something else and say, "I missed that
00:44:58
◼
►
I missed the ripples.
00:44:59
◼
►
It makes me feel..."
00:45:00
◼
►
They might not be able to articulate it, but it's weird because, like I said, I think I
00:45:05
◼
►
I would hate that feature, but I think a lot of people might like it, and I think Apple
00:45:10
◼
►
would never do anything like that, never that heavy-handed.
00:45:14
◼
►
And so Google may have just done something brilliant, or people will hate it, and then
00:45:17
◼
►
Google will turn it off.
00:45:19
◼
►
Or no apps will ever use this new UI except for the five things that Google makes, and
00:45:22
◼
►
it will continue to be a crazy fragmented world over there, but we'll see.
00:45:25
◼
►
I think you're reading way too much into this.
00:45:27
◼
►
Aaron had a touchscreen phone with a slide-out keyboard, which is not a smartphone.
00:45:32
◼
►
It wasn't like a Blackberry or anything like that.
00:45:34
◼
►
It was just a phone that had a touch screen and a slide out keyboard.
00:45:37
◼
►
This is right before she got her first iPhone, uh, around the same time.
00:45:40
◼
►
I was begging her to let me get her an iPhone, but she didn't think it was worth it.
00:45:44
◼
►
That's a different discussion for another time.
00:45:45
◼
►
Anyway, the point is that thing had tactic feedback in so far as I think that's the right word, but anyway, it would vibrate a little bit when you touched it.
00:45:54
◼
►
And I believe it like had a little white spot on the screen where you touch the screen.
00:46:00
◼
►
And she didn't think anything of it as soon as she got her iPhone that neither of those
00:46:05
◼
►
"features" air quotes were there.
00:46:07
◼
►
But that was so long ago.
00:46:09
◼
►
That phone must have been so awful and so unresponsive.
00:46:12
◼
►
And the vibration is just pointless because it's not telling you anything because it's
00:46:15
◼
►
not telling you where you did it.
00:46:16
◼
►
But that's a bigger leap from pre-iPhone smartphone to iPhone yet.
00:46:21
◼
►
No matter what the old ones had, even the physical keyboards that people held on for
00:46:24
◼
►
the longest time, eventually it's like, "All right, just give up.
00:46:27
◼
►
No more physical keyboards."
00:46:28
◼
►
So everyone was one over with that.
00:46:30
◼
►
But I think the gap between a modern Android device and a modern iPhone is small enough
00:46:35
◼
►
that this is like, especially with all the things that I kept showing, I know they say
00:46:38
◼
►
this every year, but hey look we made our user interface more responsive.
00:46:42
◼
►
Eventually it's going to be true just because hardware gets better and better in these things.
00:46:45
◼
►
And everything they showed looked pretty darn smooth.
00:46:47
◼
►
So I'm thinking that the gap is small enough that differentiators like this, if they prove
00:46:54
◼
►
popular may be a problem for Apple in terms of getting people to come over. Just like
00:47:00
◼
►
the big screens are, in the same way like the big gigantic screens that we thought,
00:47:03
◼
►
"Oh, I don't ever want to screen like that." People love them. They love the big
00:47:06
◼
►
screens. So Apple is essentially forced to field larger screen phones, we all assume,
00:47:10
◼
►
this fall because that's what people love.
00:47:13
◼
►
You know, you're right. It's going to be just like the BlackBerry keyboard and the
00:47:16
◼
►
millions upon millions of people that are clinging to that. Also, a real-time follow-up.
00:47:20
◼
►
I think I might have said "tactic." I meant "haptics," so thanks to the chatroom
00:47:23
◼
►
for correcting me, and thank you for the 35 people that are listening to this after the
00:47:27
◼
►
fact and have already emailed me to correct me.
00:47:29
◼
►
I thought you meant tactile, but anyway.
00:47:31
◼
►
That too. I think I kind of combined those in my head, but anyways.
00:47:35
◼
►
We are also sponsored by our friends at lynda.com. Go to lynda.com/atp to learn more. lynda.com
00:47:44
◼
►
helps you learn and keep up to date with your software, pick up brand new skills, or explore
00:47:48
◼
►
new hobbies with easy to follow, professionally produced video tutorials.
00:47:52
◼
►
Whether you want to learn a new programming language, create a graceful user experience
00:47:56
◼
►
for your website, or get your first code up and running with Objective C, Linza.com offers
00:48:01
◼
►
thousands of video courses in a variety of topics.
00:48:04
◼
►
They have over 2,400 courses, they're taught by industry experts, and they add more every
00:48:10
◼
►
They have courses for all experience levels, whether you're beginner or advanced.
00:48:14
◼
►
They have general and specialty topics,
00:48:16
◼
►
and you get all of this for one low monthly price
00:48:19
◼
►
of just $25, and that gives you unlimited access
00:48:22
◼
►
to the entire lynda.com library,
00:48:24
◼
►
just 25 bucks a month for unlimited access.
00:48:27
◼
►
So they have all sorts of things.
00:48:28
◼
►
They have things like programming languages.
00:48:30
◼
►
You can learn PHP if you really want to.
00:48:32
◼
►
I would advise against it, but you can do it.
00:48:35
◼
►
The good thing is it's much easier than Node, Casey,
00:48:38
◼
►
'cause my PHP Showbot has stayed up.
00:48:40
◼
►
- It's easier to create something functional.
00:48:42
◼
►
it's not easier to actually learn.
00:48:45
◼
►
- Okay, so if you wanna learn Node, you can do that too.
00:48:49
◼
►
You can even learn Perl if you're completely crazy.
00:48:51
◼
►
And if you, otherwise, if you wanna learn applications,
00:48:54
◼
►
you can learn some of the Adobe Creative Cloud apps.
00:48:56
◼
►
You know, Adobe just released updates
00:48:58
◼
►
to the Creative Cloud stuff with new versions
00:49:00
◼
►
of their apps like Photoshop and Illustrator
00:49:01
◼
►
and stuff like that.
00:49:03
◼
►
Lynda.com works with software companies
00:49:05
◼
►
to get you updated video training the same time
00:49:07
◼
►
that the updated versions are released.
00:49:09
◼
►
So they probably, I haven't checked tonight,
00:49:11
◼
►
but they probably already have all the new Adobe stuff up there already.
00:49:14
◼
►
You can also learn Final Cut Pro, Logic Pro, you know, you can learn video editing, learn
00:49:18
◼
►
audio editing.
00:49:19
◼
►
If you want to make your own podcast, go into the Logic stuff and see.
00:49:22
◼
►
It's really cool.
00:49:23
◼
►
They have, and they probably even have other stuff on podcasting if you don't want to use
00:49:27
◼
►
They have a huge library.
00:49:28
◼
►
So these courses are produced by professionals at the top of their field, and you can watch
00:49:32
◼
►
them anywhere.
00:49:33
◼
►
You can watch them on your computer, on your tablet, on your mobile device, and they're
00:49:37
◼
►
broken up into these bite-sized pieces.
00:49:39
◼
►
So if you only have 15 minutes at a time to watch something,
00:49:42
◼
►
you can do that.
00:49:43
◼
►
You can watch a 15 minute chunk.
00:49:44
◼
►
As you're watching, the transcript scrolls behind the side
00:49:47
◼
►
and you can click to different points in the transcript.
00:49:49
◼
►
It'll jump to that point in the video.
00:49:51
◼
►
So it's very easy to find what you need to skim,
00:49:53
◼
►
to pause, to slow down, to go back,
00:49:55
◼
►
if you miss something or you want some clarification.
00:49:58
◼
►
The presentation here is simply fantastic.
00:50:00
◼
►
So check it out.
00:50:01
◼
►
You can get a seven day free trial
00:50:03
◼
►
by going to lynda.com/atp.
00:50:07
◼
►
That is linda with a Y dot com slash ATP.
00:50:10
◼
►
Thanks a lot to Linda for sponsoring our show once again.
00:50:13
◼
►
- We need to get Apple to send WWDC videos to linda.com
00:50:16
◼
►
'cause I would love to be able to click on a spot
00:50:17
◼
►
in a transcript, 'cause Apple's got the transcripts, right?
00:50:20
◼
►
I mean, there's that guy who took the transcripts
00:50:21
◼
►
and made that ASCII WWDC site where you can search them.
00:50:24
◼
►
We just need to put it all together.
00:50:25
◼
►
Linda style, I want a transcript on the left,
00:50:27
◼
►
a video on the right, and we're able to click
00:50:28
◼
►
on the transcript and have it jump to the spot
00:50:29
◼
►
in the video, that would make my life so much easier.
00:50:31
◼
►
- Oh yeah, or even like I was thinking,
00:50:32
◼
►
I've been like noodling in my head
00:50:34
◼
►
on another idea I'll never have time to do,
00:50:36
◼
►
but I would love to just make an app,
00:50:38
◼
►
just make probably a Mac app
00:50:40
◼
►
that it would be like you're watching the videos
00:50:42
◼
►
and you could like start the ones you want to watch,
00:50:45
◼
►
it would keep track of the ones you did watch,
00:50:47
◼
►
you could search for topics, search for APIs.
00:50:50
◼
►
- The WWDC app does that now, doesn't it?
00:50:53
◼
►
- The official app keeps track of what you watch,
00:50:54
◼
►
keep track of your playback position across devices.
00:50:56
◼
►
- Oh really?
00:50:57
◼
►
Well I guess only if you watch in the app,
00:50:58
◼
►
I never even tried.
00:51:01
◼
►
All right, well I'm glad I didn't make it.
00:51:02
◼
►
- But it doesn't do the transcript thing,
00:51:04
◼
►
that's what I'm saying, it's the next step.
00:51:05
◼
►
Yeah, like why can't you just hit Command F
00:51:07
◼
►
and go right to something?
00:51:10
◼
►
Like you have to like browse through the titles
00:51:11
◼
►
and figure out what do they call the, you know,
00:51:13
◼
►
the accessibility section this year?
00:51:14
◼
►
Like what do they call that?
00:51:16
◼
►
- That's why note taking is still a big thing for me, WWDC,
00:51:18
◼
►
because the slides have like seven words on them
00:51:20
◼
►
and the person on stage speaks important information
00:51:23
◼
►
that's not in the slides.
00:51:24
◼
►
And it was particularly bad this year, I thought,
00:51:26
◼
►
where all the real information was spoken.
00:51:28
◼
►
It wasn't even like hinted at in the slides.
00:51:30
◼
►
The slide would have like one word on it
00:51:32
◼
►
and then the guy would talk for 10 minutes,
00:51:33
◼
►
like, oh, this is the stuff.
00:51:34
◼
►
So I had to write that down.
00:51:35
◼
►
because you can't, for research purposes,
00:51:38
◼
►
I can't go back to the video and watch it in real time.
00:51:40
◼
►
It takes forever, I have to have the notes.
00:51:43
◼
►
- Well, that's the other thing too.
00:51:44
◼
►
One thing that's extremely valuable
00:51:46
◼
►
with watching these videos is the variable speed playback
00:51:49
◼
►
in QuickTime Player 7.
00:51:51
◼
►
And I'm probably like VLC and everything else does too,
00:51:52
◼
►
but I think QuickTime X does not do it.
00:51:55
◼
►
So you can, just like a podcast,
00:51:58
◼
►
you can play these videos at like 1.5x and it helps a lot
00:52:01
◼
►
'cause the WVDC sessions are pretty slowly paced
00:52:04
◼
►
because they want everyone in a room full of people,
00:52:07
◼
►
many of whom English is not their first language,
00:52:09
◼
►
they want everyone to understand it
00:52:11
◼
►
and to be able to keep up in a giant room.
00:52:14
◼
►
And that's very different when you're watching a video
00:52:16
◼
►
at home, and especially if you're looking
00:52:19
◼
►
for something specific or waiting for something specific
00:52:21
◼
►
that you know they mentioned or that you think
00:52:22
◼
►
they might have mentioned and you wanna skip around a bit
00:52:24
◼
►
and play through sections fast,
00:52:26
◼
►
and it's so nice to be able to do that.
00:52:30
◼
►
- Yeah, I remember the earlier I said it wasn't,
00:52:33
◼
►
Making fun of Google's inability to do presentations is not a productive avenue, but since we're
00:52:37
◼
►
talking about WWDC, the most obscure, out of the way, in the tiny little room in the
00:52:43
◼
►
corner of Moscone about some API and framework that nobody uses except 10 people, that person's
00:52:49
◼
►
presentation and demos were better than everything at Google I/O.
00:52:53
◼
►
If they're an engineer who is not a professional presenter at WWDC, at the very least goes
00:52:59
◼
►
through some sort of regime where they make them make your slides comprehensible to the
00:53:02
◼
►
point where they work on everything they say, where they make sure the demos are tight,
00:53:06
◼
►
where they get them done.
00:53:08
◼
►
It just amazed me how the Google I/O presenters, for the most part, did not even get the basics
00:53:14
◼
►
They rambled, their slides had too much stuff on them, they tried demos that didn't work
00:53:18
◼
►
Even if the demos had worked well, they wouldn't be demonstrating anything worth demonstrating.
00:53:22
◼
►
It was not a good showing.
00:53:24
◼
►
I mean, I don't think that's important except for in the sort of, you know, fun, giggly
00:53:28
◼
►
Twitter snark-type nature of the thing, but it's at a certain point Google should get better at that.
00:53:33
◼
►
Do you think they really care?
00:53:35
◼
►
They do. They're trying. You can tell. The early parts of the presentation, I thought,
00:53:39
◼
►
were together. Like when—what's his name? Sundar? I can't remember his last name,
00:53:44
◼
►
such as the P. When he was up there talking about Android, the slides had bullet points
00:53:48
◼
►
that were important. He would address each one of them. There wasn't too much going on.
00:53:52
◼
►
Like, it was straightforward and to the point, but it just started meandering and things
00:53:58
◼
►
started going wrong.
00:53:59
◼
►
And like I said, even if every demo that had gone wrong had gone perfectly, I still don't
00:54:03
◼
►
think those are the right demos to have, especially not in the keynote.
00:54:06
◼
►
Hey, real time follow up from Sam the Geek in the chat room.
00:54:12
◼
►
Apparently, QuickTime Player X does have variable speed playback.
00:54:16
◼
►
It's in the extremely discoverable position of option clicking the fast forward button.
00:54:22
◼
►
Yeah. How does anybody even know that? I have no idea. I saw Underscore do it on the plane,
00:54:27
◼
►
and I was like, "Wait, how did that just happen?" And then he had to show me, because, like
00:54:31
◼
►
you said, I had no idea what it was. QuickTime Player X doesn't have the most important feature,
00:54:34
◼
►
which is get the freaking controller off of my video! The most important feature. Not
00:54:42
◼
►
still missing, which is why I still have QuickTime Player 7 installed, and that's what I still
00:54:46
◼
►
use. Alright, is there anything else on Google I/O? They say 60 frames per second this year.
00:54:52
◼
►
They also say this year is the year of desktop Linux.
00:54:55
◼
►
- Right, and Duke Nukem Forever finally came out.
00:54:59
◼
►
- Yeah, actually it did. - It did.
00:55:02
◼
►
- And then Android TV iteration nine is here,
00:55:05
◼
►
and so that's gonna set the world aflame.
00:55:07
◼
►
- I mean, eventually they're gonna have to
00:55:09
◼
►
get those in some TVs.
00:55:10
◼
►
I mean, man, the previous Google TV,
00:55:14
◼
►
and somebody in the chat, I'm sorry, I forget who,
00:55:16
◼
►
and it's too far up to scroll now,
00:55:17
◼
►
but somebody in the chat pointed out,
00:55:19
◼
►
it's kinda confusing, like the branding between,
00:55:21
◼
►
okay, what's Google, what's Android, what's Chrome?
00:55:24
◼
►
You know, they have, and you know, John,
00:55:26
◼
►
you mentioned earlier that Google is better
00:55:28
◼
►
at having this like cohesive cross-device experience,
00:55:31
◼
►
and honestly, I don't think that's the case.
00:55:32
◼
►
I mean, if you look at things like, you know,
00:55:34
◼
►
the Chromecast and Chromebooks, and versus Android,
00:55:38
◼
►
versus Google services, like it's pretty fragmented,
00:55:42
◼
►
- The naming of the things is bad, but first of all,
00:55:45
◼
►
if we're just comparing against Apple,
00:55:46
◼
►
which is what I'm doing, they win on TV
00:55:47
◼
►
because Apple doesn't have a way for third parties
00:55:49
◼
►
to do anything on TV, so Google wins by default,
00:55:51
◼
►
Right? Even if you're ignoring, like, that I think also Google's interfaces that they showed on their television are better than Apple TV ones.
00:55:57
◼
►
Apple TV is not a platform for anybody except for selected Apple partners, so they went there.
00:56:02
◼
►
And the second thing is, Google's big thing is web apps and stuff.
00:56:06
◼
►
And so that's their platform. You may not like it, you may think native apps are better,
00:56:10
◼
►
but they're working hard to make, you know, like this new UI, for example, is available to web apps at 60 frames per second in Chrome,
00:56:17
◼
►
and Chrome runs on all of their devices from the Chromebooks too. You can run it on your phone,
00:56:21
◼
►
you can run on your tablet, it runs on your television. Like that's their unifying force.
00:56:25
◼
►
And Android runs on most of these things except for the Chromebooks, but their whole thing is
00:56:29
◼
►
web app, native app, doesn't matter. It's going to look the same if it comes from Google.
00:56:33
◼
►
We're telling you that we think it's going to perform the same with 60 frames per second
00:56:37
◼
►
animation. That's their strategy. And I give them the win over Apple because Apple has nothing on
00:56:42
◼
►
television except for this box that only does selected things and they don't just
00:56:48
◼
►
don't have that unification across platforms. Like I said, the iOS OS X split
00:56:52
◼
►
is going to get a lot better in Yosemite and iOS 8 but that's not quite here yet
00:56:56
◼
►
but even there this split is much larger than the split between I think the
00:57:01
◼
►
Chrome OS and Android simply because Google is a web company and their whole
00:57:04
◼
►
big thing is web apps and they shouldn't they shouldn't be second-class citizens
00:57:08
◼
►
to native apps they continue to be but Google is really hammering on making
00:57:12
◼
►
that not be the case. And if it's gonna not be the case somewhere, the first place
00:57:16
◼
►
it's gonna not be like that is on Google's platforms, because Google is highly motivated
00:57:19
◼
►
to make web apps feel and look just as good as native apps.
00:57:23
◼
►
You know, something we skipped before we leave Google I/O is apparently Gmail has a RESTful
00:57:29
◼
►
API now. Yeah, I put that on the notes because everyone's
00:57:32
◼
►
freaking out about it. Yeah, everyone's freaking out saying that
00:57:35
◼
►
this is going to replace IMAP, and I'm the first person to say that, yeah, I would not
00:57:41
◼
►
assume that Gmail IMAP support will be there for very much longer. In fact, I made a prediction.
00:57:47
◼
►
I forget exactly what time interval I said. I think within two or five years, I was pretty
00:57:51
◼
►
sure that CalDAV and Gmail IMAP would both be discontinued or sunset or whatever phrase
00:57:57
◼
►
they would use. But they say, I know with this particular case of the Gmail API, I know
00:58:02
◼
►
that Google has actually explicitly said this is not supposed to replace IMAP.
00:58:08
◼
►
Of course, they can say whatever they want. But I think in this case, they're probably
00:58:10
◼
►
telling the truth that they probably do not intend this thing to replace IMAP. But what
00:58:14
◼
►
this probably will do though is maybe hasten the ability for them to just IMAP in a marketable
00:58:24
◼
►
way. Because they hate IMAP access, they really do. I'm sure they can't wait to get rid of
00:58:30
◼
►
it. I mean there's really like, if you think about all the ways that Google operates, makes
00:58:38
◼
►
money, innovates, you know, Gmail and IMAP have never gotten along very well.
00:58:43
◼
►
It's, IMAP support in Gmail has always been pretty flaky and unreliable and slow and very
00:58:48
◼
►
limited because a lot of Gmail's features just don't fit in the model of what IMAP is
00:58:53
◼
►
and, and how IMAP has to represent the mailboxes and everything.
00:58:56
◼
►
And there's always like the hack of like the, the all messages mailbox and all sorts of
00:59:00
◼
►
crazy stuff that just, it, it just causes problems.
00:59:03
◼
►
And, and so, uh,
00:59:04
◼
►
You say all that and I know that there's some amount of truth there, but I use Google apps for my domain and I use IMAP and maybe I'm just not a Gmail power user, but I almost never have any problems.
00:59:18
◼
►
I really don't.
00:59:19
◼
►
And I agree with you that that it's contrary encounter to the way they make money, which is for me to be on the website looking at their ads.
00:59:27
◼
►
But I'm never on the website.
00:59:30
◼
►
Very rarely on the website, on the Gmail website,
00:59:33
◼
►
because I have no particular need for it.
00:59:35
◼
►
I don't particularly fancy the web interface.
00:59:38
◼
►
I know, or last I heard, Jon, I know you do, and that's fine.
00:59:41
◼
►
But I am just fine with the iOS Mail app.
00:59:45
◼
►
I'm just fine with Mailbox on the Mac.
00:59:47
◼
►
And I use IMAP constantly for Google Apps,
00:59:51
◼
►
and I really don't have any big problems.
00:59:55
◼
►
I think, like Marco said, IMAP has never
00:59:57
◼
►
been a good fit for the way Google does email.
00:59:59
◼
►
Oh, certainly not.
01:00:00
◼
►
So when I first saw this API, I was excited
01:00:02
◼
►
because of what I thought it meant
01:00:04
◼
►
was that Google was finally getting rid of IMAP.
01:00:06
◼
►
And I think the reason Google should get rid of IMAP
01:00:09
◼
►
or slowly phase it out is not to cut off third party clients
01:00:12
◼
►
or whatever.
01:00:13
◼
►
In fact, that's the reason they'll probably
01:00:14
◼
►
have to keep it around forever just
01:00:16
◼
►
if they want to continue to support customers and clients
01:00:19
◼
►
that use IMAP.
01:00:20
◼
►
But just because it's a poor fit for their mail service.
01:00:24
◼
►
Their mail acts in a different way
01:00:27
◼
►
than IMAP expects mail to act.
01:00:29
◼
►
and I like the way Gmail acts.
01:00:30
◼
►
So I was like, all right, well, so fine.
01:00:32
◼
►
Keep IMAP around for the legacy clients,
01:00:34
◼
►
make a new fancier API that works the way Gmail works,
01:00:37
◼
►
and they make it faster,
01:00:39
◼
►
make it not just a better match semantically,
01:00:41
◼
►
but you'll be able to do things with higher performance
01:00:44
◼
►
like search or bulk operations and all this good stuff.
01:00:47
◼
►
But then I looked at documentation,
01:00:49
◼
►
and in the first couple paragraphs of documentation,
01:00:52
◼
►
it says, "Note, the Gmail API should not be used
01:00:54
◼
►
"to replace IMAP for full-fledged email client access."
01:00:58
◼
►
So that's straightforward right there
01:01:00
◼
►
and the very first thing in the Gmail API documentation.
01:01:02
◼
►
If you're writing what they consider it,
01:01:03
◼
►
what they call a full fledged email client,
01:01:05
◼
►
don't use this, use IMAP.
01:01:07
◼
►
So that's a shame, like then now just like,
01:01:09
◼
►
oh, this is just a way for applications
01:01:11
◼
►
that wanna do something with mail
01:01:13
◼
►
to be able to send mail through your Gmail account.
01:01:15
◼
►
And it's nice because you can only ask for permission
01:01:17
◼
►
to send, not to read, and then your app can send out
01:01:20
◼
►
through Gmail using this API instead of doing, you know,
01:01:23
◼
►
like I think it's a good idea to have this API,
01:01:25
◼
►
but it becomes much less interesting
01:01:27
◼
►
when they're saying write out.
01:01:28
◼
►
it is not for making an email client.
01:01:29
◼
►
So that alone means that IMAP has to,
01:01:32
◼
►
either IMAP has to stay around for a much longer time,
01:01:34
◼
►
or eventually Google phases out IMAP and says,
01:01:37
◼
►
no, you have to go through the web UI.
01:01:38
◼
►
But I think it would be difficult for Google
01:01:41
◼
►
to go back on IMAP at this point.
01:01:44
◼
►
- You know, this is kind of a left turn here,
01:01:46
◼
►
and I had a possibly different thought the other day.
01:01:50
◼
►
You look at things like the proliferation of apps
01:01:55
◼
►
taking over from websites for where modern interaction
01:01:58
◼
►
and computing is really happening these days.
01:02:01
◼
►
Combine that with Android with its Intents,
01:02:04
◼
►
Windows 8 with its contract,
01:02:05
◼
►
and now iOS 8 with its extension system.
01:02:09
◼
►
Are APIs necessary anymore?
01:02:17
◼
►
- Because, I mean, for web services,
01:02:19
◼
►
if you want to interact with something
01:02:21
◼
►
that's not on the same device as you are,
01:02:24
◼
►
Like HTTP APIs for things like everything.
01:02:27
◼
►
Reading Twitter, posting to Twitter, getting email.
01:02:32
◼
►
Any of the existing native code systems
01:02:34
◼
►
for allowing one application on the same machine
01:02:38
◼
►
to communicate to another don't apply to--
01:02:40
◼
►
I mean, the unifying principle of Google
01:02:43
◼
►
is that they would instead say the opposite,
01:02:45
◼
►
and that everything should be like a web app,
01:02:47
◼
►
and everything should communicate
01:02:48
◼
►
through RESTful APIs, even if it's on the same machine.
01:02:50
◼
►
And really, it shouldn't matter where your thing is hosting it.
01:02:52
◼
►
everything should all be the web and blah, blah, blah.
01:02:54
◼
►
That's obviously not the path that Apple's going down
01:02:56
◼
►
or Google that matter for Android,
01:02:58
◼
►
but APIs are definitely still a thing,
01:03:01
◼
►
both remote and local.
01:03:03
◼
►
- Well, think about how many of those instances
01:03:05
◼
►
you just mentioned.
01:03:06
◼
►
I mean, certainly, there's always gonna be some
01:03:08
◼
►
that can't be done this way,
01:03:10
◼
►
but think about how many of the things you just mentioned
01:03:12
◼
►
could be like, rather than call in the Gmail API,
01:03:16
◼
►
just the user will probably have the Gmail app on their phone
01:03:19
◼
►
'cause they use Gmail, so just call it to the Gmail app
01:03:21
◼
►
and have it do something and then kick back to you
01:03:23
◼
►
or whatever.
01:03:24
◼
►
- What does the Gmail app do?
01:03:25
◼
►
It calls the Gmail API 'cause the Gmail servers
01:03:27
◼
►
are on the other side of an HTTP connection.
01:03:29
◼
►
- Well sure, okay, I mean public APIs obviously.
01:03:32
◼
►
Like public web service APIs,
01:03:34
◼
►
do those really need to be a major thing anymore?
01:03:38
◼
►
Could you plausibly launch a new web service today
01:03:42
◼
►
that has some kind of social everything
01:03:45
◼
►
without an API, I mean people do all the time,
01:03:47
◼
►
but how far could you go without having an API
01:03:50
◼
►
And are we at a point now where having an API
01:03:54
◼
►
is the exception, not the rule?
01:03:55
◼
►
Because five or 10 years ago, everything had to have an API.
01:03:59
◼
►
That was what people did.
01:04:00
◼
►
And you wouldn't become big if you didn't have an API.
01:04:03
◼
►
I do think that's still true, though.
01:04:05
◼
►
Twitter is a great example, which got big based on its API
01:04:07
◼
►
and now wants to essentially cut everybody off from it.
01:04:09
◼
►
But they wouldn't have gotten big without the API.
01:04:11
◼
►
So I don't know.
01:04:12
◼
►
I think that avenue to getting big,
01:04:15
◼
►
I think it's still required to get big.
01:04:17
◼
►
If you have some great thing, but you say,
01:04:20
◼
►
but there's no API, but we've made selected private libraries
01:04:23
◼
►
that use an API that you're not allowed to use,
01:04:25
◼
►
and you can put those libraries or apps on your devices
01:04:27
◼
►
and kind of like, I don't think you would get big like that.
01:04:29
◼
►
It would be like not being free in the beginning
01:04:32
◼
►
and charging everybody tons of money.
01:04:33
◼
►
I think the tractor to get big is to try to at least
01:04:36
◼
►
make a show of, look, we're part of the community
01:04:38
◼
►
and you can interoperate with us and we have this great API
01:04:40
◼
►
and really encouraging people to build on you.
01:04:42
◼
►
Yeah, sure, if you've got a service and we've got a service,
01:04:45
◼
►
our services should talk to each other, we should integrate,
01:04:47
◼
►
it'll be great, we'll have these great synergies,
01:04:49
◼
►
And then when you get big, then you can start turning the screws and cutting everybody off
01:04:51
◼
►
and charging money for API access and all those wonderful things that we love to hate.
01:04:56
◼
►
So are you saying Marco that, let's take an example, that you're in a Twitter app and
01:05:02
◼
►
or let's take Instagram perhaps, you're in Instagram and you want to tag a photo with
01:05:07
◼
►
a location and you want to do that using the Foursquare API rather than have some sort
01:05:14
◼
►
of view within the Instagram app, you could dump out to the Foursquare extension that
01:05:22
◼
►
lets you search and then the Foursquare extension will take the location that you've selected
01:05:27
◼
►
and punt it back to Instagram.
01:05:29
◼
►
Is that sort of what you're envisioning?
01:05:30
◼
►
Basically, yeah.
01:05:31
◼
►
Like, I'm looking at this from the perspective not of, you know, what's best for everybody
01:05:36
◼
►
technically but what's most likely to be best for everyone business-wise and what are
01:05:40
◼
►
they most likely to do.
01:05:42
◼
►
And you can look, you know, John, what you just said about how APIs are kind of the requirement
01:05:48
◼
►
for good growth, I'm not sure that's true anymore. I mean, look at big services that
01:05:53
◼
►
have launched in the last five years. Many of them don't have an API. Many of them launched
01:05:58
◼
►
without one and now have one that's kind of half-assed or even like extremely restricted.
01:06:04
◼
►
Like even Google Plus, Google's own service, I mean, this is not a good example because
01:06:07
◼
►
'cause it kind of failed, but even Google+
01:06:11
◼
►
launched with a very limited read-only API.
01:06:14
◼
►
And if it, did it even have that at first?
01:06:18
◼
►
Anyway, I know when they launched the API,
01:06:19
◼
►
whether it was at launch or not,
01:06:20
◼
►
when they launched the API, it was read-only,
01:06:22
◼
►
and I think it might still be.
01:06:24
◼
►
Instagram, perfect example, got huge,
01:06:27
◼
►
and they had a very limited API
01:06:28
◼
►
that I believe was usually read-only
01:06:30
◼
►
for almost everybody at the beginning.
01:06:32
◼
►
And it's easy, you know, APIs have a big problem.
01:06:35
◼
►
This is the problem Twitter faced.
01:06:37
◼
►
which is it becomes very hard to monetize
01:06:40
◼
►
if you become a dumb pipe, unless you do,
01:06:44
◼
►
sometimes you can do creepy things,
01:06:45
◼
►
but for the most part, if your API is mostly
01:06:50
◼
►
an accessory to your service and people still keep coming
01:06:53
◼
►
to you and using your apps and your website
01:06:55
◼
►
for the primary interaction with your service, that's fine.
01:06:58
◼
►
But if the API becomes your service and people are really
01:07:01
◼
►
only interacting with you through the API,
01:07:03
◼
►
it's very challenging to run a business that way
01:07:05
◼
►
for certain business models and certainly anything free
01:07:08
◼
►
and ad-based.
01:07:09
◼
►
And so, I think we can look back at the golden era
01:07:13
◼
►
of web APIs in the mid-2000s when everything had an API
01:07:16
◼
►
and everyone was talking about them as being
01:07:19
◼
►
the big requirement.
01:07:20
◼
►
We can look back at that time and we can say,
01:07:22
◼
►
actually in retrospect, that was kind of a problem.
01:07:25
◼
►
A lot of those APIs that used to be free and naive
01:07:29
◼
►
are now super locked down and limited.
01:07:32
◼
►
And it's pretty easy to see that that was kind of
01:07:35
◼
►
giving away too much of the farm.
01:07:37
◼
►
Whereas now, I'm sorry if I'm mixing metaphors there.
01:07:40
◼
►
Whereas now we have this other way where you,
01:07:45
◼
►
the service provider, can have these apps
01:07:47
◼
►
on these different platforms.
01:07:48
◼
►
You don't need to cover that many of them.
01:07:50
◼
►
You can have these apps on these different platforms
01:07:52
◼
►
that all have these ways to kind of offer API-like services
01:07:56
◼
►
to other apps without actually giving up the farm,
01:07:59
◼
►
without actually losing that much control.
01:08:00
◼
►
and while keeping everything locked down in private
01:08:04
◼
►
for the most part behind the scenes.
01:08:05
◼
►
- Well, there's a line between not having an API
01:08:09
◼
►
and becoming an API only pipe.
01:08:11
◼
►
Like, and we see Twitter at that continuum
01:08:14
◼
►
and in the beginning it was like, yeah, sure,
01:08:15
◼
►
everybody build on Twitter,
01:08:17
◼
►
everyone make your own crazy clients.
01:08:18
◼
►
We want all sorts of different clients.
01:08:19
◼
►
We want, you know, any place you can talk to our API,
01:08:24
◼
►
it'll do, and then they, you know, becoming the dumb pipe
01:08:26
◼
►
where most people's interaction with Twitter
01:08:27
◼
►
was not through anything that Twitter controlled.
01:08:29
◼
►
That's one extreme, but the other extreme
01:08:30
◼
►
is not having one at all.
01:08:31
◼
►
Twitter still has an API, right?
01:08:34
◼
►
At the very least, they would have some kind of API
01:08:36
◼
►
for like embedding tweets
01:08:38
◼
►
and putting little controls and buttons.
01:08:39
◼
►
I mean, you could say, "Oh, that's not an API,"
01:08:40
◼
►
but it is, it's a public API.
01:08:41
◼
►
I put this mark down on your page,
01:08:43
◼
►
so post to this URL,
01:08:45
◼
►
make these buttons run this JavaScript.
01:08:47
◼
►
Like there has to be an API,
01:08:50
◼
►
just doesn't have to be like,
01:08:52
◼
►
you want to encourage people
01:08:53
◼
►
to integrate with your product.
01:08:55
◼
►
You don't necessarily want to encourage people
01:08:56
◼
►
to become your product.
01:08:58
◼
►
And so I think the API use,
01:09:00
◼
►
People have learned, like you said, don't become a faceless API because then you become
01:09:04
◼
►
app.net, right?
01:09:06
◼
►
Don't let everyone else define the experience of using your product.
01:09:09
◼
►
It's the same way as Apple taking control of its dev tools.
01:09:12
◼
►
Don't let MetroWorks and CodeWarrior and Powerplant become the face of your platform because then
01:09:17
◼
►
you've lost control.
01:09:19
◼
►
But I think you have to have some kind of web-based API if you want to interoperate
01:09:23
◼
►
with the wider world because you're never going to hit every platform.
01:09:26
◼
►
And realistically speaking, the little libraries and apps that you make for all the different
01:09:30
◼
►
platforms are going to have to be hitting an API anyway.
01:09:32
◼
►
And if they can hit it, then other people are going to hit it.
01:09:34
◼
►
And do you really want to get into some kind of security war
01:09:37
◼
►
about having secret API endpoints that people have to figure out how to hack into?
01:09:41
◼
►
And so they're just going to use OAuth or something anyway.
01:09:43
◼
►
Anyone can do it.
01:09:44
◼
►
You know, it's just a matter of getting an API key and then they extract it.
01:09:47
◼
►
It's just I think APIs will still be here.
01:09:50
◼
►
But I think you're right that the lesson has been learned by several people in a painful way.
01:09:54
◼
►
Don't make your API the only thing you offer,
01:09:57
◼
►
because then other people will become your product for you.
01:09:59
◼
►
But is that so bad? I mean, there's sponsored posts in Instagram and Twitter and whatnot.
01:10:05
◼
►
I haven't seen them pushed on me in Tweetbot, for example, but there's nothing stopping
01:10:09
◼
►
them from being pushed on me, right?
01:10:11
◼
►
I think we're in the minority of people who are not using the official—as crazy as it
01:10:15
◼
►
is for us to think about—
01:10:16
◼
►
Sure. No, you're right.
01:10:17
◼
►
—that we don't use the official Twitter app, but I bet—what did you say? What do
01:10:22
◼
►
you think? Most people who use Twitter at all use the official Twitter app on their
01:10:26
◼
►
mobile devices?
01:10:27
◼
►
No question.
01:10:28
◼
►
Like we are an oddity because we were there early, we don't look at Twitter that way,
01:10:32
◼
►
and Twitter thus far to Twitter's credit has been like, okay, you know, they shut the
01:10:39
◼
►
We are in a little room together with our limited API tokens from the apps that were
01:10:42
◼
►
there in the beginning and no one bothers us and they just don't have to worry about
01:10:47
◼
►
us and all our growth is with those other people.
01:10:49
◼
►
They could have said, you know what, third party stuff is turned off, now you have to
01:10:53
◼
►
use the official client.
01:10:54
◼
►
And I don't think it actually would have hurt them that much because all of us would have
01:10:57
◼
►
left and been pissed. Maybe the problem is all of us might have like all gone to App.net
01:11:00
◼
►
and actually made that a viable platform or something, but in the grand scheme of things,
01:11:04
◼
►
we don't matter. And so I'm glad that Twitter is not shoving stupid crap down our throats,
01:11:09
◼
►
but I'm kind of sad that like we're never going to get like multiple images or these
01:11:13
◼
►
other features they're adding. And now...
01:11:15
◼
►
Well, they got that already. That's in Tweetbot now.
01:11:20
◼
►
I thought that wasn't even available to third-party clients.
01:11:21
◼
►
Well, you can view multiple images. I don't know if you can post them.
01:11:24
◼
►
Yeah, well, anyway, they're adding features, and they don't care if it's available for
01:11:28
◼
►
their legacy third-party ones.
01:11:30
◼
►
So it doesn't surprise me that they're not making us choke down ads, because who cares
01:11:35
◼
►
We're off in the corner somewhere, and it's probably the best move for them not to anger
01:11:38
◼
►
us anymore and just allow us to stew in our little private third-party Twitter clients.
01:11:43
◼
►
All right, anything else we need to talk about?
01:11:46
◼
►
Oh, there's a little bit of talk that we kind of skipped over about Swift and Apple.
01:11:52
◼
►
I think, Jon, this was mostly you.
01:11:53
◼
►
Do you want to touch on that?
01:11:55
◼
►
- Actually, I want to talk about ART briefly first,
01:11:58
◼
►
before the Swift thing.
01:11:59
◼
►
ART was in the thing.
01:12:00
◼
►
ART is not a new thing.
01:12:01
◼
►
It's something that they introduced in KitKat,
01:12:03
◼
►
but now it's official for their new OS.
01:12:06
◼
►
This will be their new runtime that they're using
01:12:08
◼
►
instead of the previous Dalvik virtual machine.
01:12:11
◼
►
This is them refining.
01:12:12
◼
►
I mean, not that I'm saying this is their answer
01:12:15
◼
►
to Swift and iOS and the A7 and all that stuff,
01:12:19
◼
►
but they're feeling pressure to have a more performant,
01:12:23
◼
►
less battery-sucking engine underneath their platform.
01:12:27
◼
►
So the language they use is Java for development.
01:12:30
◼
►
They had their own Java virtual machine
01:12:31
◼
►
that they wrote themselves,
01:12:32
◼
►
which is kind of novel called Dalvik
01:12:34
◼
►
that they've had for many, many years.
01:12:36
◼
►
This new one is a new virtual machine
01:12:39
◼
►
that is better about memory management
01:12:41
◼
►
and has fewer stalls for garbage collection,
01:12:44
◼
►
shorter stalls for garbage collection,
01:12:46
◼
►
produces better code that runs faster
01:12:48
◼
►
on all the CPUs they target.
01:12:50
◼
►
I think they listed ARM, X86, and MIPS.
01:12:53
◼
►
And they showed a bunch of performance figures
01:12:55
◼
►
showing how this is better.
01:12:56
◼
►
So I'm glad to see that Google is making progress
01:13:00
◼
►
on sort of the fundamental lowest level of that platform
01:13:03
◼
►
to make their applications faster.
01:13:06
◼
►
And it shows the advantages that they
01:13:09
◼
►
have of having a memory safe language in a virtual machine,
01:13:12
◼
►
and that this change, this fairly radical change
01:13:14
◼
►
under the cover, does not require any changes in anyone
01:13:18
◼
►
who wrote their application using Java.
01:13:20
◼
►
If you use their API and wrote the thing,
01:13:22
◼
►
You don't have to know or care about this.
01:13:23
◼
►
They just made your runtime faster.
01:13:24
◼
►
Whereas compare this to Apple,
01:13:26
◼
►
which has made the Objective-C runtime faster
01:13:29
◼
►
many times over, but you don't have to relink your app
01:13:31
◼
►
against it or use certain features like fast enumeration.
01:13:34
◼
►
You have to change your source code to use them.
01:13:36
◼
►
I guess, you know, when they improve Objective-C message
01:13:38
◼
►
and everyone gets the benefit when they recompile
01:13:40
◼
►
against the new libraries,
01:13:41
◼
►
but then it was only available at 64-bit and blah, blah, blah.
01:13:44
◼
►
Anyway, I'm glad to see Google making progress there,
01:13:47
◼
►
mostly because I like the idea
01:13:49
◼
►
of virtual machine-based languages.
01:13:52
◼
►
I guess I'll probably have more to say about that when I do the Swift section of my OS X review.
01:13:56
◼
►
How's that coming, by the way?
01:14:00
◼
►
Slowly, as always. Slowly and painfully.
01:14:04
◼
►
Thanks a lot to our three sponsors this week. Raiz Labs, Squarespace, and
01:14:08
◼
►
Lynda.com. And we will see you next week.
01:14:12
◼
►
Now the show is over
01:14:16
◼
►
They didn't even mean to begin, cause it was accidental
01:14:20
◼
►
Oh it was accidental John didn't do any research
01:14:26
◼
►
Marco and Casey wouldn't let him Cause it was accidental
01:14:30
◼
►
It was accidental And you can find the show notes at ATP.FM
01:14:39
◼
►
And if you're into Twitter You can follow them at
01:14:44
◼
►
C-A-S-E-Y-L-I-S-S, so that's Casey Liss, M-A-R-C-O-A-R-M
01:14:52
◼
►
E-N-T, Marco Arment, S-I-R-A-C-U-S-A, Syracuse
01:15:00
◼
►
It's accidental (It's accidental)
01:15:03
◼
►
They didn't mean to, accidental (Accidental)
01:15:08
◼
►
Tech podcast, so long
01:15:13
◼
►
I could have fit the Swift thing in before the song.
01:15:15
◼
►
You know, you can tell how unprofessional we are because here it is, I queue up
01:15:20
◼
►
Jon to talk about A, he talks about B, and then before we get back to A, we end the show.
01:15:26
◼
►
Can it fit in the after show? It can be like, follow down?
01:15:29
◼
►
I can throw it in. It's a reward for the people who keep listening. This is still on topic,
01:15:35
◼
►
but hey, you made it through the song and here we are on the other side.
01:15:38
◼
►
This is your reward.
01:15:39
◼
►
Yeah. It was something I've been thinking about since WWDC, about how Apple is being more open
01:15:46
◼
►
with things. And I've seen things from Apple since WWDC that I had not seen from Apple in years and
01:15:53
◼
►
years and years, maybe not ever in the second Steve Jobs era, like after '97. And that is the
01:16:00
◼
►
the phenomenon of Apple employees saying, in a more or less official capacity, something
01:16:09
◼
►
that Apple is going to do in the future.
01:16:11
◼
►
Yeah, we saw that today, which I think you're about to bring up.
01:16:15
◼
►
And not just today.
01:16:16
◼
►
I've seen it many times since WWDC.
01:16:19
◼
►
And I keep seeing it, which is blowing my mind.
01:16:21
◼
►
The one today was Mike Ash did a blog post about Swift.
01:16:24
◼
►
Chris Latner responded to the blog post and said, "That thing you were complaining about,
01:16:29
◼
►
we're gonna change that.
01:16:30
◼
►
Which is basically talking about an unannounced product.
01:16:33
◼
►
And I've seen that multiple times about nerdy technology
01:16:37
◼
►
is not like, oh, we're making a watch.
01:16:38
◼
►
They're not gonna say that, right?
01:16:39
◼
►
But about nerdy technology is the only developers
01:16:42
◼
►
care about, but developers are willing to say,
01:16:44
◼
►
oh yeah, that API doesn't exist for whatever,
01:16:47
◼
►
but we're gonna introduce it before GM.
01:16:50
◼
►
Or that feature you asked for, we're doing that right now,
01:16:53
◼
►
not sure when it's gonna be done.
01:16:55
◼
►
That's, you know, Apple does not comment on future products.
01:16:57
◼
►
but apparently Apple now comments on future technologies.
01:17:00
◼
►
I mean, WWC being open,
01:17:01
◼
►
anyone being able to watch the videos,
01:17:02
◼
►
and actual Apple engineers saying what is,
01:17:06
◼
►
this is not exciting or surprising
01:17:09
◼
►
to anyone who deals with any company other than Apple,
01:17:11
◼
►
but historically Apple engineers would never say anything,
01:17:14
◼
►
even in like the most obscure little thing,
01:17:16
◼
►
like I think this argument to this method
01:17:19
◼
►
should accept nil and it shouldn't be an error.
01:17:22
◼
►
And you just have to sit there and wait
01:17:23
◼
►
until eventually your bug was closed
01:17:25
◼
►
or just a release comes out
01:17:26
◼
►
and that's in the release notes.
01:17:28
◼
►
Instead today, an Apple engineer will say,
01:17:30
◼
►
yeah, we're in the process of doing that.
01:17:32
◼
►
It'll be in the next build.
01:17:34
◼
►
I guess that has happened to some degree,
01:17:35
◼
►
like on the dev forums and past builds and stuff like that.
01:17:38
◼
►
But this is about something big,
01:17:39
◼
►
like Swift is bigger than just one obscure API.
01:17:41
◼
►
Swift is a whole language.
01:17:42
◼
►
And on the dev forums, for example,
01:17:45
◼
►
people are complaining about missing features
01:17:46
◼
►
in the Swift language and people who are writing Swift
01:17:49
◼
►
are coming on the dev forums and saying,
01:17:51
◼
►
you're right, that feature is missing.
01:17:52
◼
►
We're adding it now.
01:17:53
◼
►
It will be there soon.
01:17:54
◼
►
Like, talking about future products,
01:17:56
◼
►
it's just blowing my mind that this is happening.
01:17:58
◼
►
And any second I expect a black helicopter to come in
01:18:00
◼
►
and close the thread and delete the post
01:18:03
◼
►
and nuke everything.
01:18:04
◼
►
And so that's the Dev Forum,
01:18:05
◼
►
so we're technically under an NDA,
01:18:06
◼
►
which is why I wasn't talking about details.
01:18:08
◼
►
This was on a public blog post.
01:18:10
◼
►
I forget, what was the thing that he was talking about
01:18:12
◼
►
in there, was the, oh, array semantics being crazy,
01:18:14
◼
►
which they are.
01:18:15
◼
►
I mean, it was vague, it was like,
01:18:17
◼
►
we know they're crazy, we're gonna try to fix it.
01:18:20
◼
►
Yay, thumbs up, see, was that that hard apple?
01:18:22
◼
►
Did the world end?
01:18:23
◼
►
You know, and like if they don't fix it,
01:18:25
◼
►
is everyone gonna go on there,
01:18:26
◼
►
"Well, I totally expected you to fix
01:18:28
◼
►
"the crazy array semantics because I saw that comment
01:18:30
◼
►
"in that blog post, but you didn't fix it, I hate you Apple."
01:18:32
◼
►
Like that's the thing that they're protecting against.
01:18:34
◼
►
And I suppose that could happen if Yosemite ships
01:18:38
◼
►
and iOS 8 ships and Swift's array semantics
01:18:40
◼
►
are still crazy pants, then people are gonna like cite
01:18:42
◼
►
that blog post and say, "We can't trust you Apple,
01:18:44
◼
►
"you say things, but then don't do them."
01:18:45
◼
►
I don't know, I just assume they're just gonna do it
01:18:48
◼
►
and everything will be fine.
01:18:49
◼
►
But it is definitely weird to see that
01:18:53
◼
►
and definitely a change for Apple.
01:18:54
◼
►
- So what's the downside to it for them?
01:18:57
◼
►
- I just said the downside.
01:18:58
◼
►
The downside is if they don't do this thing,
01:19:00
◼
►
then crazy people will be all cranky.
01:19:02
◼
►
- But is that really why they didn't do it
01:19:05
◼
►
for all this time?
01:19:06
◼
►
- Yeah, 'cause you can't predict the future.
01:19:08
◼
►
They don't do it for all this time
01:19:09
◼
►
because if they say something
01:19:10
◼
►
and then they're not able to deliver it,
01:19:11
◼
►
it breaks trust, so they just say nothing.
01:19:13
◼
►
- Yeah, I guess, but to your point
01:19:17
◼
►
about developer tools that are coming, who cares?
01:19:22
◼
►
Like I just, I don't really see the need
01:19:26
◼
►
for all the secrecy up until this point.
01:19:28
◼
►
I applaud the opening up that they've been doing lately,
01:19:32
◼
►
but I don't know, it just seems like a pretty weak reason
01:19:35
◼
►
to be so unbelievably secretive.
01:19:38
◼
►
It seems to me like the reason they were secretive
01:19:39
◼
►
is because they felt like it was cool to be secretive.
01:19:42
◼
►
If you're secretive about products,
01:19:43
◼
►
you're gonna be secretive about everything.
01:19:44
◼
►
- Well, it's not just about, it's not a cool factor,
01:19:47
◼
►
but like, it's, you know, like someone just put
01:19:49
◼
►
in the chat room, under-promise and over-deliver.
01:19:51
◼
►
It's the safe bet.
01:19:52
◼
►
You will not disappoint people, you will only surprise them.
01:19:57
◼
►
Because the only way you disappoint somebody
01:19:59
◼
►
is by saying you're gonna do something
01:20:00
◼
►
and then not doing it.
01:20:01
◼
►
If you never say anything and you don't do it,
01:20:03
◼
►
you haven't disappointed anyone
01:20:04
◼
►
because they should have had no reason
01:20:05
◼
►
to expect that you were going to do something.
01:20:07
◼
►
But if you say you're gonna do something and don't do it,
01:20:09
◼
►
then people are disappointed.
01:20:10
◼
►
- But is that really true?
01:20:11
◼
►
I mean, I know the market isn't really
01:20:13
◼
►
the best judge of anything.
01:20:15
◼
►
However, anytime Apple doesn't release a TV or a watch,
01:20:20
◼
►
the market has a fit about it,
01:20:22
◼
►
and they've never said anything
01:20:23
◼
►
about doing any of those things.
01:20:25
◼
►
- I think that would be a counter example,
01:20:26
◼
►
because Tim Cook kept saying,
01:20:27
◼
►
"We're gonna enter a new product category."
01:20:29
◼
►
So yeah, as soon as he says that, like a year ago,
01:20:31
◼
►
every time Apple does anything
01:20:32
◼
►
and doesn't enter a new product category,
01:20:34
◼
►
people will say, "You said you're gonna enter
01:20:36
◼
►
"a new product category, and you did something, anything,
01:20:39
◼
►
"and the thing involved in that
01:20:41
◼
►
"did not enter a new product category,
01:20:43
◼
►
"therefore I hate you now, Apple."
01:20:45
◼
►
The larger the feature,
01:20:49
◼
►
the less you'd want to say stuff like this.
01:20:51
◼
►
If you're talking about this API is available,
01:20:56
◼
►
but it's iOS 7 only.
01:20:59
◼
►
And if someone from Apple were to say,
01:21:01
◼
►
actually we're gonna backport that to iOS 6 too.
01:21:03
◼
►
People would be like, oh yeah, that's awesome,
01:21:05
◼
►
I can't wait until that happens.
01:21:06
◼
►
My app will be able to run on iOS 6 and 7
01:21:08
◼
►
and use this cool new API.
01:21:09
◼
►
And then the OS comes out and they say,
01:21:11
◼
►
sorry, we didn't get time to backport that to iOS 6
01:21:13
◼
►
and now we're never going to.
01:21:14
◼
►
People would hate Apple, they'd be like,
01:21:15
◼
►
oh, you said you were going to,
01:21:17
◼
►
I planned my business around it,
01:21:18
◼
►
you've destroyed my livelihood, so on.
01:21:20
◼
►
Or so they just say nothing, and they say,
01:21:22
◼
►
file a bug if you'd like to see that,
01:21:23
◼
►
and it's on iOS 6 or whatever.
01:21:25
◼
►
They don't make any promises, they just don't say anything.
01:21:28
◼
►
Every time you ask them a question,
01:21:29
◼
►
they say this API is available for iOS 7.
01:21:31
◼
►
But is it gonna be on iOS 6?
01:21:33
◼
►
This API is available for iOS 7.
01:21:34
◼
►
That's the old Apple way,
01:21:35
◼
►
and there are serious upsides to that.
01:21:38
◼
►
But at a certain point, it becomes ridiculous.
01:21:40
◼
►
As you get tinier and tinier,
01:21:41
◼
►
like are you gonna fix this typo in the documentation?
01:21:44
◼
►
It's no skin off Apple's back to say,
01:21:46
◼
►
yes, we're going to fix that typo in the documentation.
01:21:48
◼
►
In fact, I'm fixing it right now.
01:21:49
◼
►
You should see it in the next build.
01:21:50
◼
►
Like that's always been under the line, like no big deal.
01:21:53
◼
►
But once you move from typos up until, you know,
01:21:56
◼
►
API features, API availability, language features,
01:22:00
◼
►
that's starting to get into some serious territory.
01:22:02
◼
►
And you know, this is the new Apple, I think.
01:22:06
◼
►
- And I applaud it.
01:22:07
◼
►
And I think Marco had said,
01:22:09
◼
►
or one of us had said right before WWDC
01:22:13
◼
►
that we didn't really know crap about what was coming.
01:22:15
◼
►
We knew HealthKit, which we thought was HealthBook,
01:22:19
◼
►
and there were like one or two other things,
01:22:20
◼
►
but certainly nobody knew Swift was coming,
01:22:22
◼
►
and that made it so much more enjoyable.
01:22:24
◼
►
I'm not saying Apple shouldn't be secretive
01:22:27
◼
►
about product launches.
01:22:28
◼
►
I'm talking like you are, John, about this,
01:22:30
◼
►
and I'm gonna call it minutia, but perhaps it isn't,
01:22:34
◼
►
but stuff that, for the most part,
01:22:36
◼
►
really isn't gonna make or break anyone.
01:22:37
◼
►
And yes, you just had an example
01:22:40
◼
►
of where it could break someone,
01:22:41
◼
►
but I don't know, I'm surprised it took this long
01:22:44
◼
►
for them to open up? Well, it's a continuum, like the one I think of also, a 64-bit carbon,
01:22:48
◼
►
which they said they were going to have and then changed their mind on. And that's just like a
01:22:53
◼
►
bummer. It wasn't like they didn't have it almost all done, is my understanding, and it wasn't like
01:22:57
◼
►
they didn't plan on doing it. They did plan on doing it. They did say they were going to do it,
01:23:01
◼
►
but they changed their mind the next year, and that did really seriously affect people.
01:23:05
◼
►
And, you know, secrecy wouldn't have saved them there, because that was sort of like they said
01:23:10
◼
►
said at WWDC that they're going to have OS 1010 and iOS 8. Those are speaking about future
01:23:16
◼
►
products, but we assume that those will actually arrive, that they won't say, "You know what,
01:23:20
◼
►
never mind about iOS 8." It seems like a safe bet, but technically that's exactly the same
01:23:25
◼
►
thing. "We do not have this for you now. It is not completed, but we will." And making
01:23:29
◼
►
a comment about a feature in Swift, like saying, "We agree that the array semantics are stupid.
01:23:36
◼
►
We are working on them, and we plan to have the better version of them available before
01:23:39
◼
►
or any of our operating systems ship.
01:23:43
◼
►
That's a pretty concrete statement about something that's going to happen.
01:23:46
◼
►
It's probably not much more concrete than saying iOS 8 is coming and we're going to
01:23:50
◼
►
ship it and here's the rough timeframe.
01:23:53
◼
►
But it is definitely a change.
01:23:55
◼
►
Like normally they would just let the blogs all complain about stuff in Swift and secretly
01:24:00
◼
►
be over there saying all these people are complaining about, you know, feature X, whereas
01:24:04
◼
►
we know that feature X has been checked in two weeks ago and we're just like testing
01:24:08
◼
►
it out now and it'll ship in the next seed and won't those people be pleasantly surprised.
01:24:11
◼
►
But now those people can actually go onto the internet and tweet at the people like,
01:24:15
◼
►
"I just totally did that. Don't worry, it's coming."
01:24:16
◼
►
And what else is going on? I think there's an M3 at the local dealer. I haven't actually
01:24:24
◼
►
gone by yet, but I—
01:24:26
◼
►
Yeah, because my car's actually going in Monday anyway. So I'll see you then. And then I'll
01:24:31
◼
►
probably steal it and then get arrested and that'll be the end of ATP.
01:24:34
◼
►
Why do you keep doing it with you in jail?
01:24:37
◼
►
All I know is I want an M3 really bad.
01:24:41
◼
►
Luigi follow only the Ferrari.
01:24:45
◼
►
I didn't do my pop culture reference to this show.
01:24:47
◼
►
I stuck it in at the end.
01:24:50
◼
►
Because I've seen that movie a million times.
01:24:52
◼
►
Marco has children.
01:24:53
◼
►
Soon Casey will too.
01:24:55
◼
►
A million times.
01:24:57
◼
►
I know every line of that movie because I've seen it a million times.
01:25:01
◼
►
You want to scream it from the top someplace very high.
01:25:05
◼
►
I hear you now.
01:25:06
◼
►
You see, I was going to say that how could that movie possibly get old, but I know enough
01:25:11
◼
►
to know that any movie could probably get old.
01:25:13
◼
►
Well, it's actually a pretty good movie.
01:25:15
◼
►
I mean, I think that's one of the reasons why adults love Pixar movies so much is because
01:25:19
◼
►
if your kids are going to make you watch the same movie every single day for three months,
01:25:23
◼
►
it might as well be a pretty decent one.
01:25:25
◼
►
Yeah, you don't know how bad it can get.
01:25:27
◼
►
I mean, you're probably protecting yourself from it.
01:25:29
◼
►
And the thing is, Cars, people say it's not one of the better Pixar movies, and maybe
01:25:35
◼
►
I kind of agree there, but lots of people who don't have kids dislike it much more than I do because now in retrospect
01:25:40
◼
►
the memory of cars is entirely tied up with the memory of my son when he was young and watching that movie a lot and
01:25:45
◼
►
I think the same thing will happen to Marco and that
01:25:46
◼
►
That gives the movie a fondness that it wouldn't have had if you had just seen it on your own
01:25:50
◼
►
Just wait until Adam gets older and you remember when he was a little peanut and he would watch the movie over and over again
01:25:55
◼
►
I love cars cars - is freaking terrible though. I haven't seen cars - because I heard it was terrible
01:26:01
◼
►
So I'm just like I'm not even buying that on the Apple TV. I'm just leaving that off.
01:26:05
◼
►
Don't do it. And the worst part is Michael Caine is in it, and I love Michael Caine, but the movie was still terrible.
01:26:12
◼
►
The movie's not terrible. Like you don't know terrible until you've seen like Dora the Explorer or something like that.
01:26:17
◼
►
I mean terrible, just a whole other thing. The movie is just, meh. It's just there. It's alright.
01:26:20
◼
►
Yeah, that's alright.
01:26:22
◼
►
I'll have to put that one in the parking lot for now.
01:26:24
◼
►
Exactly. You want to do titles on one of the functional show bots, which means not mine?
01:26:29
◼
►
Yeah, how about put that in the parking lot for now?
01:26:31
◼
►
Obsessed with the business speak terminology.
01:26:36
◼
►
Oh, it's just I can't like what planet is everyone on?
01:26:40
◼
►
Marco to put things in perspective I
01:26:43
◼
►
Went to a client today at what time was it about?
01:26:50
◼
►
For a 10 o'clock demo that demo lasted half an hour. I spent half an hour
01:26:55
◼
►
dealing with
01:26:59
◼
►
security-related things because it's a new client, so I had to get fingerprinted.
01:27:03
◼
►
I had to go swear that I had antivirus on my computer. Then I needed to prove that I had
01:27:08
◼
►
antivirus on my computer. Then I spent from 1130 till 5 in consecutive meetings talking about the
01:27:19
◼
►
work that has been done and the work that needs to be done. My God. That was from 1130 until 5
01:27:24
◼
►
in the evening.
01:27:26
◼
►
When does the ScrummerFall standoff happen?
01:27:29
◼
►
Actually the end of, so it was a retrospective, which is part of Agile, and then it was sprint
01:27:35
◼
►
planning, which is part of Agile.
01:27:37
◼
►
But the problem is this is for a large government entity and I don't think most of the business
01:27:43
◼
►
people in the room, these are our own internal business people, had had a lot of experience
01:27:48
◼
►
with doing Agile software projects.
01:27:51
◼
►
And so it's really kind of scrummerful at best.
01:27:56
◼
►
And that's just bad.
01:27:59
◼
►
So back to titles.
01:28:01
◼
►
Did they have a parking lot?
01:28:02
◼
►
No, not today actually.
01:28:04
◼
►
How about a basement?
01:28:05
◼
►
Do you like put things in the basement ever?
01:28:08
◼
►
Just the parking lot?
01:28:09
◼
►
What about like, you know, back behind the dumpster?
01:28:11
◼
►
Like is there…
01:28:14
◼
►
Is there an alley even?
01:28:16
◼
►
You can't like throw something off the fire escape?
01:28:18
◼
►
You've got the same metaphor as an iOS development basement UI, you know, just speaking of basement.
01:28:23
◼
►
Same, it's the same stuff.
01:28:25
◼
►
The hamburger basement metaphor.
01:28:26
◼
►
Exactly, it's the same exact thing. Why is that terminology okay, but this terminology is not?
01:28:30
◼
►
Because we are right.
01:28:31
◼
►
Oh my god, that is the most Marco statement I've ever heard.
01:28:34
◼
►
In my defense, I don't like the hamburger basement metaphor.
01:28:37
◼
►
But you use it because it's a way to communicate with other people a shorthand.
01:28:40
◼
►
That's exactly what buzzwords and lingo are supposed to do.
01:28:43
◼
►
you can say this and then be assured that everyone who you're talking to knows what you mean without you having to explain it the long way.
01:28:48
◼
►
There was some time where I mentioned Hamburger Basement on Twitter a few months back
01:28:53
◼
►
and I got the best responses from people who didn't know what that was.
01:28:58
◼
►
And they were fulfilling your role now saying, "Is there an alley?" Blah, blah, blah. Anyway.
01:29:03
◼
►
I actually like Breaking Bots. I don't think it should necessarily be the show title, but it is pretty funny.
01:29:08
◼
►
necessarily be the show title, but it is pretty funny.
01:29:10
◼
►
- I'm also a big fan of I'm Not Getting One.
01:29:13
◼
►
There's actually two of them, One With A Period,
01:29:15
◼
►
One Without, if you combine their ratings,
01:29:16
◼
►
it's probably even better.
01:29:17
◼
►
- So you could up the working show bot's features
01:29:20
◼
►
by doing better normalization
01:29:22
◼
►
and getting rid of trailing periods.
01:29:26
◼
►
- Fair enough.
01:29:26
◼
►
I'll get to that as soon as I can keep the thing running
01:29:29
◼
►
for more than 10 frickin' minutes.
01:29:30
◼
►
- You got one more show, Casey.
01:29:33
◼
►
This is like that old website, Give Up and Use Tables,
01:29:37
◼
►
which is like, start a timer for you
01:29:39
◼
►
to try to do things back in the bad old days of CSS
01:29:41
◼
►
when you couldn't do lots of stuff with CSS.
01:29:44
◼
►
You get one more show and then Marco and I
01:29:46
◼
►
are gonna force you to stop using WebSockets.
01:29:48
◼
►
- And then four shows after that, you gotta use Perl.
01:29:51
◼
►
- 'Cause realistically speaking,
01:29:53
◼
►
we should've stopped using WebSockets
01:29:56
◼
►
before you started using them for a show bot,
01:29:58
◼
►
'cause there's no reason to use them
01:29:59
◼
►
except for technical curiosity.
01:30:01
◼
►
So we'll give you now, we'll give you a couple weeks
01:30:02
◼
►
to say, okay, you just wanna do this,
01:30:03
◼
►
'cause you're just playing with things,
01:30:04
◼
►
you wanna use WebSockets 'cause they're neat and cool,
01:30:06
◼
►
fine, go ahead.
01:30:07
◼
►
But at a certain point, we just say, look, just make it work.
01:30:10
◼
►
Stop using WebSockets.
01:30:11
◼
►
But if you think about it, it's the right answer.
01:30:14
◼
►
No, it is not.
01:30:15
◼
►
A persistent connection to the clients is like, no,
01:30:18
◼
►
it is not the right answer.
01:30:19
◼
►
Well, it actually is useful because it gives you
01:30:21
◼
►
the immediate feedback when new stuff comes in.
01:30:23
◼
►
You don't need immediate-- people
01:30:25
◼
►
are staring at the show about, I need
01:30:26
◼
►
to see if someone has changed a vote right now.
01:30:29
◼
►
The latency on people looking at show voting
01:30:33
◼
►
does not need to be real time.
01:30:34
◼
►
This is not like a game or a simulation
01:30:37
◼
►
where we need feedback constantly.
01:30:39
◼
►
It's not the appropriate technology for this purpose.
01:30:41
◼
►
You could have a five minute refresh interval
01:30:44
◼
►
and it would be fine.
01:30:45
◼
►
It's just a show bot.
01:30:46
◼
►
It's not a real time 3D application.
01:30:49
◼
►
- John, the last time I said it's just a show bot,
01:30:52
◼
►
it was about hardening said show bot
01:30:54
◼
►
and we all saw how that ended.
01:30:55
◼
►
- But the WebSockets are fighting against you in that area.
01:30:58
◼
►
Like they're making it worse.
01:31:00
◼
►
It's a technology that either is not mature enough or,
01:31:03
◼
►
I mean, it seems like the libraries we're dealing with
01:31:05
◼
►
aren't mature enough because if they were,
01:31:06
◼
►
you wouldn't be having all these problems.
01:31:08
◼
►
- I just can't imagine what the heck is going on
01:31:11
◼
►
behind the scenes here that's causing even the worst,
01:31:15
◼
►
crappiest, slowest VPS in the universe
01:31:18
◼
►
to overload and crash.
01:31:20
◼
►
- It's not overloading, it's just throwing an exception
01:31:21
◼
►
that nobody catches and then it kills it.
01:31:23
◼
►
- Well, so then, well, then WebSockets aren't the problem.
01:31:25
◼
►
- But it is because the exceptions are coming
01:31:27
◼
►
from within WebSockets.
01:31:29
◼
►
- As a third-party library, it's throwing an exception
01:31:32
◼
►
that I guess you didn't expect.
01:31:33
◼
►
I forgot what the specifics of the bug were,
01:31:34
◼
►
Wasn't it a bug in the actual WebSockets library?
01:31:36
◼
►
- I just repasted the gist,
01:31:38
◼
►
and it's very vague where the actual problem is,
01:31:42
◼
►
but that's all right.
01:31:45
◼
►
- All right, does C# have exceptions case?
01:31:47
◼
►
Are you just not accustomed to having to catch exceptions
01:31:49
◼
►
and deal with them?
01:31:50
◼
►
- You know, there's no need to be cruel, John.
01:31:52
◼
►
- I'm just saying like,
01:31:54
◼
►
- Just wrap the whole thing and try catching,
01:31:56
◼
►
at least keep the thing from going down.
01:31:58
◼
►
- Well, generally, I would prefer for this situation
01:32:03
◼
►
to die violently and tell me exactly what's going on.
01:32:05
◼
►
And I think actually we got in a pretty big fight
01:32:08
◼
►
with Marco about this.
01:32:09
◼
►
- Yes, well no, it's like,
01:32:11
◼
►
turning it into, yes, turning it into fatal errors.
01:32:14
◼
►
You're not turning warnings into fatal errors,
01:32:16
◼
►
you're not doing anything with fatal errors.
01:32:19
◼
►
And I think it's fine, for example,
01:32:20
◼
►
if you have a multi-process model
01:32:21
◼
►
to let your Apache child die because it had a fatal error,
01:32:24
◼
►
because the whole server doesn't go away then.
01:32:26
◼
►
- Right, you don't lose all of your data.
01:32:28
◼
►
- The parent will just spawn another child
01:32:30
◼
►
and the day will go on.
01:32:31
◼
►
But when it's single process,
01:32:33
◼
►
and you're not catching exceptions,
01:32:35
◼
►
and one comes along, your single process goes away.
01:32:38
◼
►
And that's--
01:32:39
◼
►
- Oh, we agree, we agree.
01:32:40
◼
►
But my point is just that
01:32:42
◼
►
if the error was something more specific,
01:32:44
◼
►
like oh, somebody tried to send
01:32:46
◼
►
10,000 byte thing over this web socket,
01:32:50
◼
►
then I could take action on that,
01:32:53
◼
►
and thus harden the system a little better.
01:32:55
◼
►
Then what I'm going to do, however,
01:32:57
◼
►
since I didn't get useful feedback is,
01:32:59
◼
►
I'm going to add a try catch, if you will,
01:33:02
◼
►
or at least handle this error message, or error event,
01:33:06
◼
►
and then call it a day, because clearly I'm not
01:33:09
◼
►
getting anything useful from it.
01:33:11
◼
►
Well, it's like when, I mean, in any web server,
01:33:13
◼
►
if the client sends invalid method type, or whatever,
01:33:17
◼
►
you could make an HTTP request that's malformed,
01:33:20
◼
►
and your server should handle, yeah, garbage client connected
01:33:22
◼
►
to me, he sent me something that looked kind of like an HTTP
01:33:24
◼
►
request, but actually was invalid,
01:33:26
◼
►
because the method it used doesn't actually exist,
01:33:28
◼
►
and this header, or it sent this method,
01:33:31
◼
►
but it didn't have the required headers,
01:33:32
◼
►
but it claimed it was HTTP 1.1.
01:33:34
◼
►
Like, either your library, or if you're not your library,
01:33:38
◼
►
then at least your app has to be resilient
01:33:40
◼
►
to people sending you garbage,
01:33:41
◼
►
and you would think that would be the job of the library.
01:33:43
◼
►
Like, if you're writing something on Apache platform
01:33:46
◼
►
or using mod PHP or something like that,
01:33:48
◼
►
you're assuming that Apache's gonna handle
01:33:50
◼
►
like the crazy invalid request,
01:33:51
◼
►
and it's never even gonna get to the point
01:33:53
◼
►
where it executes your PHP,
01:33:54
◼
►
'cause Apache's gonna return a 500 error
01:33:56
◼
►
and trigger your error page handling
01:33:57
◼
►
or whatever you want to do before it even gets to your thing.
01:33:59
◼
►
But the WebSockets library is not doing that for you.
01:34:01
◼
►
And we don't even know if it's because people are sending
01:34:03
◼
►
malformed WebSocket requests.
01:34:05
◼
►
It could just be a bug in the library
01:34:06
◼
►
and people are sending perfectly valid WebSocket requests
01:34:09
◼
►
and this is choking on it.
01:34:10
◼
►
Either way, it's not good for your server
01:34:13
◼
►
and if you just did everything the old fashioned way
01:34:14
◼
►
with HTTP and Ajax, you wouldn't be having this problem.
01:34:18
◼
►
- That's possibly true.
01:34:19
◼
►
And I'd like to address something from the chat.
01:34:21
◼
►
Somebody said, "I don't understand how Casey
01:34:24
◼
►
"could be a professional programmer."
01:34:26
◼
►
And I think it's important to realize that,
01:34:29
◼
►
A, I'm working in technologies
01:34:31
◼
►
that I'm not typically used to working in,
01:34:33
◼
►
insofar as node and web sockets,
01:34:35
◼
►
but B, and more importantly,
01:34:36
◼
►
this is something I threw together for fun
01:34:38
◼
►
in not a lot of time.
01:34:40
◼
►
I'm not being paid to do this,
01:34:43
◼
►
and I'm not doing this for my job.
01:34:46
◼
►
I'm doing this just for grins and giggles,
01:34:48
◼
►
and just to learn.
01:34:50
◼
►
And a lot of the things that I'm fighting,
01:34:52
◼
►
like people deliberately being malicious,
01:34:54
◼
►
are things that I don't often run into
01:34:57
◼
►
in my day-to-day work.
01:34:58
◼
►
And so I would have put in a crap load more time
01:35:02
◼
►
being defensive in my programming
01:35:05
◼
►
instead of being defensive right now.
01:35:07
◼
►
And making sure all of these things
01:35:10
◼
►
were considered and taken care of
01:35:11
◼
►
and things of that nature.
01:35:13
◼
►
But A, I didn't spend the time on it.
01:35:16
◼
►
B, I still don't think I should,
01:35:18
◼
►
but the chat room is a bunch of pains in my butt.
01:35:21
◼
►
And C, this is not like my normal job.
01:35:24
◼
►
normal job, I'm paid to consider all of these possibilities and to spend the time to get all
01:35:31
◼
►
this right. And this is something I threw together in a sum total of like three or four hours.
01:35:36
◼
►
So it's very different. I would say, let's not pretend this is not the way that—the person who
01:35:41
◼
►
said that comment strikes me as someone who is not a programmer, because that's not to pretend
01:35:44
◼
►
this isn't the way that all programming happens. It just may not happen in public, but this is how
01:35:48
◼
►
you write a program, guys. You try it, you find out how it's broken, you fix it. Like, this is the
01:35:53
◼
►
the process of programming is just that he's doing it sort of in public, where
01:35:57
◼
►
it was normally all this would be happening on your local computer as you
01:36:00
◼
►
write it and try to use it and it crashes and you write something else
01:36:02
◼
►
and you try to use it and it screws up and like that's called programming. Do
01:36:05
◼
►
you think it would work better if you were running antivirus software on your
01:36:09
◼
►
Mac? Yeah that antivirus thing like I mean I understand why people do that but
01:36:14
◼
►
that's so insane to me that like people would insist that you have antivirus
01:36:18
◼
►
software on your Mac. I wonder if they make this if the same requirement
01:36:21
◼
►
Do you have antivirus software on that iPhone?
01:36:23
◼
►
I'm sorry, it's not qualified.
01:36:25
◼
►
We can't use that.
01:36:26
◼
►
Well, I mean, again, this is a government entity, and I don't know if you—well,
01:36:30
◼
►
Jon, you should know better than me even that government entities are things that are associated
01:36:34
◼
►
with the government.
01:36:35
◼
►
They tend to have just piles and piles and piles and piles and piles of red tape, much of which
01:36:40
◼
►
is not understood by the people that enforce it.
01:36:43
◼
►
Yeah, but they do change.
01:36:44
◼
►
Like, my wife works in a place that has crazy requirements, and it used to be that you couldn't
01:36:48
◼
►
You couldn't bring any device that had a camera anywhere.
01:36:51
◼
►
You couldn't bring a camera or anything that had a camera on it.
01:36:53
◼
►
And then when phones started to have cameras, you couldn't bring any of the cameras, any
01:36:56
◼
►
phones with cameras in because that's a camera, right?
01:36:59
◼
►
But at a certain point, all phones have cameras.
01:37:01
◼
►
And then it's untenable to tell people, "I'm sorry, you can't bring your phone to work."
01:37:05
◼
►
And so they had to change the rules and say, "Okay, well, it's obvious that we can't..."
01:37:08
◼
►
It was an in-between period.
01:37:09
◼
►
They'd be like, "Well, BlackBerry makes a special model that doesn't have phones in
01:37:12
◼
►
them for enterprise, and that's what we're going to force everyone to use."
01:37:15
◼
►
Yeah, whatever.
01:37:17
◼
►
But now it's like, even the government has to eventually recognize, you know, and so
01:37:23
◼
►
And they said, "Okay, well, there's certain areas where you can't bring your phone or
01:37:26
◼
►
any camera, because we assume your phone has a camera, but you can bring your phone to
01:37:29
◼
►
work and send and receive phone calls with it."
01:37:32
◼
►
So eventually, you know, they'll catch up.
01:37:34
◼
►
Like, I bet they don't require you to have antivirus software on your iOS device, but
01:37:37
◼
►
I bet in 2007 they sure did, and were sad when you told them that makes no sense.
01:37:43
◼
►
Yeah, but a place that I worked that did a lot of government contracting, for a long
01:37:48
◼
►
time the official stance was you may not have a camera phone.
01:37:51
◼
►
And this is right when, just like you said, when phones with cameras started becoming
01:37:55
◼
►
prevalent and I believe they changed the policy.
01:37:59
◼
►
But yeah, it's a tough thing.
01:38:00
◼
►
It's a lot of stuff that Marco doesn't have to deal with and probably doesn't have
01:38:04
◼
►
the patience for.
01:38:05
◼
►
And sometimes I wonder if I do too.
01:38:07
◼
►
Yeah, I don't think I could do that.
01:38:10
◼
►
I've never been in a job that had that kind.
01:38:12
◼
►
except for my internship at Nationwide in college. But otherwise, I've never been
01:38:17
◼
►
at a job that had—because I've always been at these small companies where I could
01:38:20
◼
►
pretty much have whatever I wanted on my computer.
01:38:22
◼
►
Well, but that's the thing is for my company, I found it extremely egregious when they instituted
01:38:29
◼
►
a "you have to change your password every 90 days" policy. And I'm not trying to
01:38:34
◼
►
get into a security discussion about why that's important or good or bad.
01:38:36
◼
►
I'm at 60 days, Casey, right now, in 2014.
01:38:40
◼
►
Right, so I was really upset when that happened, but I mean my computer is wide open.
01:38:47
◼
►
I can do whatever the crap I want with it.
01:38:49
◼
►
The problem is that because I do consulting, when we work for and with clients, we have
01:38:55
◼
►
to, generally speaking, not always, we usually roll with their rules.
01:38:59
◼
►
And their rules, when you work with either large government entities or large financial
01:39:03
◼
►
services companies as my company tends to do have tremendously strict and difficult
01:39:10
◼
►
rules. So it's not that all the real world is bad Marco it's just some parts.
01:39:15
◼
►
Just the parking lots. Just the parking lots. Are we done here? Yeah so buy me an M3. Let's
01:39:23
◼
►
go back to the important stuff. Get right on that. You know I'll suffer through black
01:39:29
◼
►
just for you. Yeah. What other color would you pick? Mustard, mustard yellow. It's the
01:39:36
◼
►
official metallic mustard. It's the official German color. Yeah, I think that should be
01:39:41
◼
►
the deal is if I get to buy you an M3, I get to pick the color and you have to drive it.
01:39:46
◼
►
Oh no, that's fine. Just give me the right transmission for Christ's sakes. Did you see,
01:39:50
◼
►
by the way, and speaking of the most recent car and driver, more stuff for you, Casey,
01:39:53
◼
►
was that they have the 30 cars under $30,000 section. I don't know if I've gotten this
01:39:57
◼
►
one yet. It's got the white car snark, 30 cars under 30. What the hell's on the cover?
01:40:03
◼
►
It's got hot hatchback story. I don't remember what's on the cover. Nothing interesting.
01:40:07
◼
►
But anyway, my car's right in there and 30 cars under 30. You should read what they say
01:40:10
◼
►
about it. They love it. No, they're wrong. They're not. I think they called it nearly
01:40:16
◼
►
perfect. They're definitely wrong. Not even you agree with that. They said nearly. Alright,
01:40:25
◼
►
I've built my M3, I think.
01:40:27
◼
►
- Is it like 75 grand?
01:40:29
◼
►
- 75, 250, Marco.
01:40:33
◼
►
- There are too many options on these BMWs.
01:40:35
◼
►
How do you get like zero choices for anything?
01:40:38
◼
►
So it's like, well, I guess I'm getting this interior color
01:40:40
◼
►
and this and that, like now looking at these leather colors,
01:40:43
◼
►
trim colors, BMW individual leather and trim,
01:40:46
◼
►
it's like, I don't know what combinations look good.
01:40:47
◼
►
This is the problem with supercars.
01:40:48
◼
►
They let you pick everything
01:40:49
◼
►
'cause they're gonna hand build it for you anyway
01:40:50
◼
►
and you're paying them half a million dollars.
01:40:52
◼
►
But I'd be like, I don't know what looks good together.
01:40:54
◼
►
It's your job to decide what colors and trims look good together because then you end up
01:40:58
◼
►
with rich people just picking random combinations and now you've got a half a million dollar
01:41:02
◼
►
car with nothing that matches in it.
01:41:04
◼
►
All right, now that I'm depressed because I don't want to spend $73,825 or $968 a month
01:41:12
◼
►
on a M3, I'm going to go to bed.
01:41:14
◼
►
Also, you would never actually pay their listed lease price.
01:41:17
◼
►
You can negotiate way lower than that.
01:41:18
◼
►
Yeah, I know, but still.
01:41:22
◼
►
Just Marco, go ahead and buy one for me.
01:41:23
◼
►
I'll drive it in black.
01:41:24
◼
►
I might even I might even accept it if it had the stupid DCT
01:41:29
◼
►
That sounds like you're changing your mind a little bit on the DCT that see that sounds a lot like
01:41:33
◼
►
No, I'd be willing to suffer through is what I'm saying. I would not choose it myself
01:41:38
◼
►
No, but I'm saying like that that sounds a lot like you know, this fish isn't really that bad
01:41:42
◼
►
I kind of like this one song like it sounds like you're changing finally like I'm winning you over there
01:41:47
◼
►
I was I'm proud to tell you that I
01:41:50
◼
►
Continue to not know and have never known the title of any fish song would not recognize any fish songs
01:41:56
◼
►
Have I heard them and despite you two continuing to discuss fish songs by title now?
01:42:00
◼
►
I also do not remember any of the fish songs. What are you talking about? I don't won by title
01:42:04
◼
►
I I wouldn't recognize fish if I heard them on the radio. I do not know a single title of a single song
01:42:09
◼
►
Dave Matthews, unfortunately, I know they're fear their top 40 hits you you've mispronounced fortunately is my curse
01:42:17
◼
►
What mispronouncing fortunately?
01:42:20
◼
►
No, and knowing that Dave Matthews exists and knowing some of their songs.
01:42:24
◼
►
[BLANK_AUDIO]